/*
 * Q3-D 모바일 퍼스트 견적 폼.
 * 기존 Global Form namespace를 유지하고 360/375/390/412/430px을 기준으로 한다.
 * 계산·가격·거리 권위는 서버 estimate-core.v1에 있다.
 */

:root {
    --hs-estimate-bg: #f5f6f8;
    --hs-estimate-surface: #ffffff;
    --hs-estimate-border: #e5e7eb;
    --hs-estimate-text: #111827;
    --hs-estimate-muted: #6b7280;
    --hs-estimate-primary: #2563eb;
    --hs-estimate-primary-weak: #eff6ff;
    --hs-estimate-danger: #b91c1c;
    --hs-estimate-danger-weak: #fef2f2;
    --hs-estimate-warning: #c2410c;
    --hs-estimate-warning-border: #f59e0b;
    --hs-estimate-warning-weak: #fff7ed;
    --hs-estimate-success: #166534;
    --hs-estimate-radius: 12px;
    --hs-estimate-space-2: 8px;
    --hs-estimate-space-3: 12px;
    --hs-estimate-space-4: 16px;
    --hs-estimate-space-6: 24px;
    --hs-estimate-bottombar-h: 72px;
    --hs-estimate-summary-h: 82px;
}

.hs-estimate,
.hs-estimate * { box-sizing: border-box; }

/*
 * 2026-09-22 버그수정 — .hs-estimate-row2/row3 같은 유틸리티 클래스가 display:grid/flex를
 * 무조건 지정해서, 같은 요소에 [hidden] 속성이 있어도(예: CARGO 전용 data-cargo-only 행을
 * YONGDAL에서 숨김) 브라우저 기본 UA 스타일([hidden]{display:none})과 저작 스타일의
 * 우선순위가 동률(0-1-0)이라 클래스 규칙이 이겨서 실제로는 계속 보이던 문제.
 * (증상: YONGDAL 화면에 CARGO 전용 "받는 고객명/전화번호"가 보임 — data-cargo-only는
 * 정상 hidden 처리됐지만 .hs-cargo-recipient-row의 .hs-estimate-row2{display:grid}가
 * 시각적으로 덮어씀.) 이 한 줄이 모든 [hidden] 요소에 대해 항상 이기게 만든다 — 앞으로
 * 어떤 display:grid/flex 유틸리티 클래스와도 이 종류의 회귀가 재발하지 않는다.
 */
[hidden] { display: none !important; }

.hs-estimate {
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    background: var(--hs-estimate-bg);
    color: var(--hs-estimate-text);
    font-family: Pretendard, "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", Arial, sans-serif;
    font-size: 15px;
    line-height: 1.5;
    padding-bottom: calc(var(--hs-estimate-bottombar-h) + var(--hs-estimate-summary-h) + 24px);
}

.hs-estimate a { color: var(--hs-estimate-primary); text-decoration: none; }
.hs-estimate button,
.hs-estimate input,
.hs-estimate select,
.hs-estimate textarea { font: inherit; }
.hs-estimate button { min-height: 44px; }
.hs-estimate input,
.hs-estimate select,
.hs-estimate textarea { max-width: 100%; }

.hs-estimate-header {
    position: sticky;
    top: 0;
    z-index: 30;
    background: var(--hs-estimate-surface);
    border-bottom: 1px solid var(--hs-estimate-border);
    padding: var(--hs-estimate-space-3) var(--hs-estimate-space-4);
}
.hs-estimate-brand {
    display: flex;
    align-items: center;
    gap: var(--hs-estimate-space-2);
    margin-bottom: var(--hs-estimate-space-3);
}
.hs-estimate-brand-logo {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: var(--hs-estimate-primary-weak);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    color: var(--hs-estimate-primary);
    flex: none;
}
.hs-estimate-brand-name { font-size: 15px; font-weight: 700; }
.hs-estimate-progress-meta {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--hs-estimate-space-2);
    margin-bottom: var(--hs-estimate-space-2);
    font-size: 13px;
}
.hs-estimate-progress-meta span:first-child { color: var(--hs-estimate-primary); font-weight: 700; }
.hs-estimate-progress-meta span:last-child { color: var(--hs-estimate-muted); }
.hs-estimate-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.hs-estimate-step {
    min-width: 0;
    text-align: center;
    font-size: 11px;
    color: var(--hs-estimate-muted);
    padding: 5px 2px 6px;
    border-bottom: 3px solid var(--hs-estimate-border);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.hs-estimate-step--active {
    color: var(--hs-estimate-primary);
    font-weight: 700;
    border-bottom-color: var(--hs-estimate-primary);
}
.hs-estimate-step--done { color: var(--hs-estimate-text); border-bottom-color: #93c5fd; }
.hs-estimate-progress-error {
    color: var(--hs-estimate-danger);
    background: var(--hs-estimate-danger-weak);
    border-radius: 8px;
    padding: 6px 8px;
    margin: 8px 0 0;
    font-size: 12px;
}
.hs-estimate-progress-error--warning {
    color: var(--hs-estimate-warning);
    background: var(--hs-estimate-warning-weak);
    border: 1px solid rgba(245, 158, 11, .34);
}

.hs-estimate-body {
    flex: 1;
    width: 100%;
    max-width: 680px;
    margin: 0 auto;
    padding: var(--hs-estimate-space-4);
}
.hs-estimate-panel { display: block; }
.hs-estimate-logical-panel { display: none; }
.hs-estimate-logical-panel--active { display: block; }

.hs-estimate-card {
    background: var(--hs-estimate-surface);
    border: 1px solid var(--hs-estimate-border);
    border-radius: var(--hs-estimate-radius);
    padding: var(--hs-estimate-space-4);
    margin-bottom: var(--hs-estimate-space-3);
}
.hs-estimate-card h2 { margin: 0 0 var(--hs-estimate-space-3); font-size: 18px; }
.hs-estimate-card h3 { margin: 0 0 var(--hs-estimate-space-3); font-size: 15px; }

.hs-estimate-field { margin-bottom: var(--hs-estimate-space-3); }
.hs-estimate-field:last-child { margin-bottom: 0; }
.hs-estimate-field label {
    display: block;
    font-size: 13px;
    color: var(--hs-estimate-muted);
    margin-bottom: 4px;
}
.hs-estimate-field input,
.hs-estimate-field select,
.hs-estimate-field textarea {
    width: 100%;
    min-height: 44px;
    padding: 9px var(--hs-estimate-space-3);
    border: 1px solid var(--hs-estimate-border);
    border-radius: 8px;
    background: var(--hs-estimate-surface);
    color: var(--hs-estimate-text);
}
.hs-estimate-field textarea { resize: vertical; min-height: 96px; }
.hs-estimate-field--invalid input,
.hs-estimate-field--invalid select,
.hs-estimate-field--invalid textarea { border-color: var(--hs-estimate-danger); background: var(--hs-estimate-danger-weak); }
.hs-estimate-field--warning input,
.hs-estimate-field--warning select,
.hs-estimate-field--warning textarea { border-color: var(--hs-estimate-warning-border); background: var(--hs-estimate-warning-weak); }
.hs-estimate-field--warning label { color: var(--hs-estimate-warning); }
.hs-estimate-field--warning:focus-within { border-radius: 8px; box-shadow: 0 0 0 3px rgba(245, 158, 11, .16); }
.hs-estimate-field--warning input:focus,
.hs-estimate-field--warning select:focus,
.hs-estimate-field--warning textarea:focus { outline: 2px solid rgba(245, 158, 11, .35); outline-offset: 1px; }
.hs-estimate-field-error { display: none; color: var(--hs-estimate-danger); font-size: 12px; margin: 4px 0 0; }
.hs-estimate-field--invalid .hs-estimate-field-error { display: block; }
.hs-estimate-field--warning .hs-estimate-field-error { display: block; color: var(--hs-estimate-warning); }
.hs-estimate-check-label,
.hs-estimate-check-row label {
    display: flex !important;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    color: var(--hs-estimate-text) !important;
    font-weight: 400;
}
.hs-estimate-check-label input,
.hs-estimate-check-row input { width: 20px; height: 20px; flex: none; }
.hs-estimate-check-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.hs-estimate-row2 { display: grid; grid-template-columns: 1fr; gap: var(--hs-estimate-space-3); }

.hs-estimate-note {
    color: var(--hs-estimate-muted);
    background: var(--hs-estimate-primary-weak);
    border-radius: var(--hs-estimate-radius);
    padding: var(--hs-estimate-space-3);
    margin: 0 0 var(--hs-estimate-space-3);
    font-size: 12px;
}
.hs-estimate-room-tabs {
    display: flex;
    gap: var(--hs-estimate-space-2);
    overflow-x: auto;
    padding-bottom: var(--hs-estimate-space-2);
    margin-bottom: var(--hs-estimate-space-3);
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}
.hs-estimate-room-tab {
    flex: none;
    min-height: 44px;
    padding: 8px 14px;
    border: 1px solid var(--hs-estimate-border);
    border-radius: 999px;
    background: var(--hs-estimate-surface);
    color: var(--hs-estimate-text);
    cursor: pointer;
    font-size: 13px;
    white-space: nowrap;
}
.hs-estimate-room-tab--active { background: var(--hs-estimate-primary); border-color: var(--hs-estimate-primary); color: #fff; }
.hs-estimate-room-tab-badge { display: inline-block; min-width: 16px; margin-left: 4px; font-size: 11px; }
.hs-estimate-item-list { display: flex; flex-direction: column; gap: var(--hs-estimate-space-2); }
.hs-estimate-item {
    display: flex;
    align-items: center;
    gap: var(--hs-estimate-space-2);
    flex-wrap: wrap;
    padding: var(--hs-estimate-space-3);
    border: 1px solid var(--hs-estimate-border);
    border-radius: var(--hs-estimate-radius);
    background: var(--hs-estimate-surface);
}
.hs-estimate-item--selected { border-color: var(--hs-estimate-primary); background: var(--hs-estimate-primary-weak); }
.hs-estimate-item > label { min-height: 44px; flex: 1 1 150px; }
.hs-estimate-item-name { flex: 1; font-size: 14px; }
.hs-estimate-item-controls {
    display: flex;
    align-items: center;
    gap: var(--hs-estimate-space-2);
    flex: 1 1 180px;
    justify-content: flex-end;
    flex-wrap: wrap;
}
.hs-estimate-item-custom-name {
    width: 100%;
    min-height: 44px;
    padding: 8px;
    border: 1px solid var(--hs-estimate-border);
    border-radius: 8px;
    font-size: 13px;
}
.hs-estimate-qty { display: flex; align-items: center; gap: 4px; }
.hs-estimate-qty button {
    width: 44px;
    height: 44px;
    padding: 0;
    border-radius: 8px;
    border: 1px solid var(--hs-estimate-border);
    background: var(--hs-estimate-surface);
    cursor: pointer;
    font-size: 18px;
}
.hs-estimate-qty input {
    width: 48px;
    min-height: 44px;
    text-align: center;
    padding: 4px;
    border: 1px solid var(--hs-estimate-border);
    border-radius: 6px;
}
.hs-estimate-mini-select {
    min-height: 44px;
    padding: 6px 8px;
    border: 1px solid var(--hs-estimate-border);
    border-radius: 6px;
    font-size: 12px;
}

.hs-estimate-calc-panel,
.hs-estimate-sticky-summary {
    background: var(--hs-estimate-surface);
    border: 1px solid var(--hs-estimate-border);
    border-radius: var(--hs-estimate-radius);
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}
.hs-estimate-calc-panel {
    position: sticky;
    bottom: calc(var(--hs-estimate-bottombar-h) + var(--hs-estimate-summary-h) + 12px);
    padding: var(--hs-estimate-space-3);
    margin-top: var(--hs-estimate-space-3);
}
.hs-estimate-calc-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--hs-estimate-space-2); }
.hs-estimate-calc-item { min-width: 0; text-align: center; }
.hs-estimate-calc-item b { display: block; font-size: 16px; color: var(--hs-estimate-primary); overflow-wrap: anywhere; }
.hs-estimate-calc-item span { font-size: 11px; color: var(--hs-estimate-muted); }
.hs-estimate-calc-status { font-size: 12px; color: var(--hs-estimate-muted); text-align: center; margin: 8px 0 0; }
.hs-estimate-calc-status--error { color: var(--hs-estimate-danger); }

.hs-estimate-photo-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--hs-estimate-space-2); }
.hs-estimate-photo-slot {
    position: relative;
    min-width: 0;
    aspect-ratio: 1 / 1;
    border: 1px dashed var(--hs-estimate-border);
    border-radius: var(--hs-estimate-radius);
    overflow: hidden;
    background: var(--hs-estimate-bg);
    display: flex;
    align-items: center;
    justify-content: center;
}
.hs-estimate-photo-slot img { width: 100%; height: 100%; object-fit: cover; }
.hs-estimate-photo-status {
    position: absolute;
    left: 4px;
    right: 4px;
    bottom: 4px;
    padding: 2px 4px;
    border-radius: 4px;
    background: rgba(255,255,255,.9);
    text-align: center;
    font-size: 11px;
}
.hs-estimate-photo-remove,
.hs-estimate-photo-retry {
    position: absolute;
    z-index: 2;
    min-width: 44px;
    min-height: 44px;
    border-radius: 999px;
    cursor: pointer;
}
.hs-estimate-photo-remove {
    top: 2px;
    right: 2px;
    border: none;
    background: rgba(17,24,39,.7);
    color: #fff;
}
.hs-estimate-photo-retry {
    right: 2px;
    bottom: 2px;
    border: 1px solid var(--hs-estimate-danger);
    background: #fff;
    color: var(--hs-estimate-danger);
    font-size: 11px;
}
.hs-estimate-photo-add {
    min-height: 120px;
    aspect-ratio: 1 / 1;
    border: 1px dashed var(--hs-estimate-border);
    border-radius: var(--hs-estimate-radius);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--hs-estimate-muted);
    cursor: pointer;
    background: var(--hs-estimate-surface);
    font-size: 24px;
}
.hs-estimate-photo-note { font-size: 12px; color: var(--hs-estimate-muted); margin: var(--hs-estimate-space-2) 0 0; }

.hs-estimate-summary-list { display: grid; gap: 8px; }
.hs-estimate-summary-row {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 8px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--hs-estimate-border);
    overflow-wrap: anywhere;
}
.hs-estimate-summary-row strong { color: var(--hs-estimate-muted); font-size: 12px; }
.hs-estimate-summary-row span { font-size: 13px; }
.hs-estimate-payload-preview {
    background: #0b1220;
    color: #d1e2ff;
    border-radius: var(--hs-estimate-radius);
    padding: var(--hs-estimate-space-3);
    font-size: 11px;
    overflow: auto;
    white-space: pre-wrap;
    max-height: 280px;
}
.hs-estimate-receipt-list {
    display: grid;
    grid-template-columns: 90px minmax(0, 1fr);
    gap: 8px 12px;
    margin: 16px 0;
}
.hs-estimate-receipt-list dt { color: var(--hs-estimate-muted); font-size: 13px; }
.hs-estimate-receipt-list dd { margin: 0; overflow-wrap: anywhere; }
.hs-estimate-receipt--consultation { border-color: #f59e0b; }
.hs-estimate-receipt--error { border-color: var(--hs-estimate-danger); }

.hs-estimate-sticky-summary {
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: calc(var(--hs-estimate-bottombar-h) + env(safe-area-inset-bottom));
    z-index: 25;
    min-height: var(--hs-estimate-summary-h);
    padding: 10px 12px;
}
.hs-estimate-sticky-summary[hidden] { display: none; }
.hs-estimate-sticky-title { display: flex; justify-content: space-between; gap: 8px; font-size: 12px; color: var(--hs-estimate-muted); }
.hs-estimate-sticky-amount { font-size: 17px; font-weight: 700; color: var(--hs-estimate-primary); }
.hs-estimate-sticky-detail { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 10px; margin-top: 4px; font-size: 11px; }
.hs-estimate-sticky-detail span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.hs-estimate-bottombar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    min-height: var(--hs-estimate-bottombar-h);
    display: flex;
    gap: var(--hs-estimate-space-3);
    align-items: center;
    padding: 8px var(--hs-estimate-space-4) calc(8px + env(safe-area-inset-bottom));
    background: var(--hs-estimate-surface);
    border-top: 1px solid var(--hs-estimate-border);
    z-index: 40;
}
.hs-estimate-btn {
    flex: 1;
    min-height: 44px;
    padding: 9px var(--hs-estimate-space-4);
    border-radius: var(--hs-estimate-radius);
    border: 1px solid var(--hs-estimate-border);
    background: var(--hs-estimate-surface);
    color: var(--hs-estimate-text);
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
}
.hs-estimate-btn--primary { background: var(--hs-estimate-primary); border-color: var(--hs-estimate-primary); color: #fff; }
.hs-estimate-btn--primary:disabled,
.hs-estimate-btn:disabled { opacity: .5; cursor: not-allowed; }
.hs-estimate-btn:focus-visible,
.hs-estimate input:focus-visible,
.hs-estimate select:focus-visible,
.hs-estimate textarea:focus-visible { outline: 2px solid var(--hs-estimate-primary); outline-offset: 2px; }

@media (max-height: 560px) and (max-width: 899px) {
    .hs-estimate { padding-bottom: calc(var(--hs-estimate-bottombar-h) + 16px); }
    .hs-estimate-sticky-summary { position: static; min-height: 0; margin: 8px 12px calc(var(--hs-estimate-bottombar-h) + 8px); }
    .hs-estimate-body { padding-bottom: 0; }
}

@media (min-width: 900px) {
    .hs-estimate-body { max-width: 800px; padding: var(--hs-estimate-space-6) var(--hs-estimate-space-4); }
    .hs-estimate-row2 { grid-template-columns: 1fr 1fr; }
    .hs-estimate-calc-grid { grid-template-columns: repeat(4, 1fr); }
    .hs-estimate-photo-grid { grid-template-columns: repeat(5, 1fr); }
    .hs-estimate-bottombar { justify-content: center; }
    .hs-estimate-bottombar > * { max-width: 220px; }
    .hs-estimate-sticky-summary { left: 50%; right: auto; width: min(760px, calc(100% - 32px)); transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* GUT2424 benchmark layer: the CORE-facing namespace above remains intact. */
html, body { margin: 0; min-width: 320px; background: #f4f7fb; }
.hs-estimate { --hs-estimate-primary: #2563eb; --hs-estimate-primary-weak: #eff6ff; background: linear-gradient(180deg, #f8fbff 0, #f4f7fb 300px); padding-bottom: 112px; }
.hs-estimate-header { padding: 18px max(16px, calc((100vw - 920px) / 2)); box-shadow: 0 2px 14px rgba(15, 23, 42, .04); }
.hs-estimate-brand { max-width: 920px; margin: 0 auto 16px; gap: 12px; }
.hs-estimate-brand-logo { width: 36px; height: 36px; border-radius: 10px; background: #e8f0ff; color: #1d4ed8; font-size: 18px; }
.hs-estimate-brand-name { display: block; font-size: 17px; color: #0f172a; }
.hs-estimate-brand-sub { display: block; color: #64748b; font-size: 12px; font-weight: 400; margin-top: 2px; }
.hs-estimate-progress-meta { max-width: 920px; margin: 0 auto 8px; }
.hs-estimate-steps { max-width: 920px; margin: 0 auto; }
.hs-estimate-step { font-size: 12px; padding-top: 7px; }
.hs-estimate-body { max-width: 920px; padding: 28px 16px 0; }
.hs-estimate-card { border-color: #dfe6f0; border-radius: 14px; padding: 22px; box-shadow: 0 8px 24px rgba(15, 23, 42, .035); }
.hs-estimate-card--intro { padding: 28px 24px; border: 0; background: linear-gradient(135deg, #12356a 0, #2563eb 100%); color: #fff; box-shadow: 0 14px 28px rgba(37, 99, 235, .18); }
.hs-estimate-card--intro h1, .hs-estimate-card--intro h2 { margin: 5px 0 8px; color: #fff; font-size: 26px; letter-spacing: -.03em; }
.hs-estimate-card--intro p { margin: 0; color: rgba(255,255,255,.82); font-size: 14px; }
.hs-estimate-kicker { display: block; color: #60a5fa; font-size: 11px; font-weight: 800; letter-spacing: .12em; }
.hs-estimate-card--intro .hs-estimate-kicker { color: #bfdbfe; }
.hs-estimate-card h2, .hs-estimate-card h3 { color: #0f172a; }
.hs-basic-section h2 { margin-bottom: 18px; font-size: 19px; }
.hs-estimate-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.hs-estimate-section-heading h2, .hs-estimate-section-heading h3 { margin: 3px 0 0; }
.hs-route-badge, .hs-photo-policy { flex: none; color: #1d4ed8; background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 999px; padding: 5px 10px; font-size: 11px; font-weight: 700; }
.hs-estimate-field label { color: #334155; font-weight: 700; }
.hs-estimate-field label i { color: #dc2626; font-style: normal; }
.hs-estimate-field label small, .hs-estimate-card h3 small { color: #94a3b8; font-size: 11px; font-weight: 500; }
.hs-estimate-field-help { color: #64748b; font-size: 12px; margin: 4px 0 0; }
.hs-estimate-field input, .hs-estimate-field select, .hs-estimate-field textarea { border-color: #d7e0eb; border-radius: 9px; background: #fff; }
.hs-estimate-field input:focus, .hs-estimate-field select:focus, .hs-estimate-field textarea:focus { border-color: #60a5fa; box-shadow: 0 0 0 3px rgba(37, 99, 235, .1); outline: 0; }
.hs-estimate-field--warning input, .hs-estimate-field--warning select, .hs-estimate-field--warning textarea { border-color: #f59e0b; background: #fff7ed; box-shadow: none; }
.hs-estimate-field--warning label { color: #c2410c; }
.hs-estimate-field--warning .hs-estimate-field-error { color: #c2410c; }
.hs-estimate-route { display: grid; grid-template-columns: minmax(0, 1fr) 56px minmax(0, 1fr); align-items: center; gap: 10px; }
.hs-location-card { min-width: 0; padding: 18px; border: 1px solid #d7e3f2; border-radius: 13px; background: #fbfdff; }
.hs-location-card:nth-of-type(3) { border-color: #c8d8f0; background: #fff; }
.hs-location-card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 16px; }
.hs-location-card h3 { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 18px; }
.hs-location-mark { display: inline-flex; width: 26px; height: 26px; align-items: center; justify-content: center; border-radius: 50%; background: #2563eb; color: #fff; font-size: 12px; }
.hs-address-search { min-height: 40px; padding: 0 13px; border: 0; border-radius: 8px; background: #2563eb; color: #fff; font-size: 13px; font-weight: 700; cursor: pointer; }
.hs-route-arrow { display: flex; flex-direction: column; align-items: center; justify-content: center; color: #2563eb; }
.hs-route-arrow span { font-size: 34px; line-height: 1; font-weight: 800; }
.hs-route-arrow small { margin-top: 3px; color: #64748b; font-weight: 700; }
.hs-consent-card { padding: 16px 20px; background: #f8fbff; }
.hs-consent-card .hs-estimate-field { margin: 0; }
.hs-consent-copy { color: #334155; font-size: 12px; line-height: 1.55; margin-bottom: 10px; }
.hs-consent-copy > strong { color: #1e3a8a; }
.hs-consent-copy > strong + br { line-height: 1; }
.hs-consent-copy a { color: #2563eb; text-decoration: underline; }
.hs-consent-policy-link--missing { color: #94a3b8; font-size: 11px; }
.hs-consent-copy > strong:not(:first-child) { color: #0f172a; }
.hs-consent-policy { display: block; margin-top: 3px; color: #94a3b8; font-size: 10px; }
.hs-estimate-process {
    position: relative;
    overflow: hidden;
    width: min(100%, 364px);
    box-sizing: border-box;
    margin: 14px auto 18px;
    padding: 10px;
    border: 1px solid rgba(148, 163, 184, .28);
    border-radius: 14px;
    background: linear-gradient(145deg, #fff 0%, #f8fbff 58%, #eef4ff 100%);
    box-shadow: 0 8px 18px rgba(30, 64, 175, .08), inset 0 1px 0 rgba(255, 255, 255, .9);
}
.hs-estimate-process::before {
    content: "";
    position: absolute;
    top: -24px;
    right: -18px;
    width: 74px;
    height: 74px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(96, 165, 250, .2), rgba(96, 165, 250, 0) 70%);
    pointer-events: none;
}
.hs-estimate-process-head { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 7px; }
.hs-estimate-process-head h3 { margin: 0; color: #0f172a; font-size: 12px; font-weight: 900; letter-spacing: -.02em; }
.hs-estimate-process-status { flex: 0 0 auto; padding: 3px 7px; border: 1px solid #bfdbfe; border-radius: 999px; background: rgba(239, 246, 255, .9); color: #1d4ed8; font-size: 10px; font-weight: 800; line-height: 1.2; white-space: nowrap; }
.hs-estimate-process-list { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; }
.hs-estimate-process-list li { position: relative; display: flex; min-width: 0; min-height: 46px; flex-direction: column; align-items: center; justify-content: center; gap: 3px; padding: 2px 3px; text-align: center; }
.hs-estimate-process-list li:not(:last-child)::after { content: ""; position: absolute; z-index: 0; top: 13px; left: calc(50% + 14px); width: calc(100% - 28px); height: 1px; background: #dbe5f4; }
.hs-estimate-process-list li.is-complete:not(:last-child)::after { background: linear-gradient(90deg, #60a5fa, #bfdbfe); }
.hs-estimate-process-dot { position: relative; z-index: 1; display: inline-flex; flex: 0 0 25px; width: 25px; height: 25px; align-items: center; justify-content: center; border: 1px solid #dbe5f4; border-radius: 50%; background: #fff; color: #94a3b8; font-size: 9px; font-weight: 900; line-height: 1; box-shadow: 0 2px 5px rgba(15, 23, 42, .06); }
.hs-estimate-process-copy { display: flex; min-width: 0; flex-direction: column; align-items: center; gap: 1px; }
.hs-estimate-process-copy strong { overflow: hidden; color: #334155; font-size: 10px; font-weight: 900; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.hs-estimate-process-copy small { overflow: hidden; max-width: 100%; color: #94a3b8; font-size: 9px; font-weight: 600; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.hs-estimate-process-list li.is-complete .hs-estimate-process-dot { border-color: #93c5fd; background: #eff6ff; color: #2563eb; }
.hs-estimate-process-list li.is-complete .hs-estimate-process-copy strong { color: #1e3a8a; }
.hs-estimate-process-list li.is-current .hs-estimate-process-dot { border-color: transparent; background: linear-gradient(145deg, #2563eb, #1d4ed8); color: #fff; box-shadow: 0 0 0 3px rgba(96, 165, 250, .2), 0 5px 10px rgba(37, 99, 235, .25); }
.hs-estimate-process-list li.is-current .hs-estimate-process-copy strong { color: #0f172a; }
.hs-estimate-process-list li.is-current .hs-estimate-process-copy small { color: #64748b; }
.hs-estimate-process-list li.is-skipped .hs-estimate-process-copy strong { color: #94a3b8; }
.hs-estimate-process-list li.is-skipped .hs-estimate-process-dot { border-style: dashed; color: #cbd5e1; }
.hs-estimate-check-label { align-items: flex-start; gap: 10px; }
.hs-estimate-check-label input { margin-top: 2px; accent-color: #2563eb; }
.hs-estimate-check-label span { display: grid; gap: 3px; }
.hs-estimate-check-label span small { color: #64748b; font-size: 11px; }
.hs-basic-action, .hs-detail-action { margin: 16px 0 32px; text-align: center; }
.hs-basic-action p, .hs-detail-action p, .hs-mode-secondary p { margin: 0 0 9px; color: #64748b; font-size: 12px; }
.hs-estimate-btn--wide { width: min(100%, 420px); min-height: 56px; font-size: 16px; }
.hs-estimate-btn--secondary { background: #fff; border-color: #cbd5e1; color: #334155; }
.hs-mode-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 16px 0; }
.hs-mode-card { display: grid; justify-items: start; gap: 7px; min-height: 186px; padding: 22px; border: 1px solid #d7e3f2; border-radius: 14px; background: #fff; color: #0f172a; text-align: left; cursor: pointer; box-shadow: 0 8px 18px rgba(15, 23, 42, .04); }
.hs-mode-card:hover, .hs-mode-card--active { border-color: #2563eb; box-shadow: 0 0 0 3px rgba(37, 99, 235, .1), 0 10px 22px rgba(37, 99, 235, .08); }
.hs-mode-card--recommended { border-color: #93c5fd; background: linear-gradient(145deg, #eff6ff, #fff); }
.hs-mode-icon { font-size: 26px; }
.hs-mode-card strong { font-size: 19px; }
.hs-mode-card em { color: #2563eb; font-size: 12px; font-style: normal; font-weight: 800; }
.hs-mode-card > span:last-child { color: #64748b; font-size: 13px; line-height: 1.55; }
.hs-mode-secondary { margin: 22px auto 8px; text-align: center; }
.hs-mode-secondary button { min-width: 240px; }
.hs-estimate-item-list { gap: 8px; }
.hs-estimate-item { border-color: #d9e3ef; border-radius: 10px; }
.hs-estimate-item--selected { border-color: #60a5fa; background: #f4f8ff; }
.hs-estimate-room-tabs { scrollbar-width: none; }
.hs-estimate-room-tabs::-webkit-scrollbar { display: none; }
.hs-estimate-calc-panel { position: static; margin: 12px 0 0; border-color: #bfdbfe; background: #eff6ff; box-shadow: none; }
.hs-estimate-calc-item b { color: #1d4ed8; }
.hs-detail-action { display: flex; align-items: center; justify-content: center; gap: 12px; }
.hs-detail-action p { margin: 0; }
.hs-estimate-photo-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.hs-estimate-photo-slot { border-color: #b9c9dd; }
#hsPhotoAddBtn { width: 100%; margin-top: 12px; }
.hs-payload-details summary { cursor: pointer; color: #475569; font-weight: 700; }
.hs-consent-confirm { margin: 0; color: #166534; font-size: 13px; }
.hs-estimate-receipt { max-width: 620px; margin: 18px auto; border-color: #bbf7d0; }
.hs-estimate-receipt h2 { margin-top: 6px; }
.hs-address-layer { position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center; padding: 18px; background: rgba(15, 23, 42, .55); }
.hs-address-layer[hidden] { display: none; }
.hs-address-panel { width: min(100%, 520px); height: min(680px, 92vh); overflow: hidden; border-radius: 14px; background: #fff; box-shadow: 0 24px 60px rgba(15, 23, 42, .24); }
.hs-address-head { display: flex; align-items: center; justify-content: space-between; min-height: 52px; padding: 0 16px; border-bottom: 1px solid #e2e8f0; }
.hs-address-head strong { color: #0f172a; }
.hs-address-head button { min-height: 36px; padding: 0 10px; border: 1px solid #cbd5e1; border-radius: 7px; background: #fff; color: #475569; cursor: pointer; }
.hs-address-frame { height: calc(100% - 52px); }
.hs-estimate-bottom-hidden .hs-estimate-bottombar { display: none; }
.hs-estimate-bottom-hidden .hs-estimate-sticky-summary { bottom: 16px; }

@media (max-width: 767px) {
    .hs-estimate { padding-bottom: calc(var(--hs-estimate-bottombar-h) + var(--hs-estimate-summary-h) + 24px); }
    .hs-estimate-header { padding: 14px 16px; }
    .hs-estimate-brand { margin-bottom: 12px; }
    .hs-estimate-body { padding: 16px 12px 0; }
    .hs-estimate-card { padding: 17px; border-radius: 12px; }
    .hs-estimate-card--intro { padding: 22px 18px; }
    .hs-estimate-card--intro h1, .hs-estimate-card--intro h2 { font-size: 22px; }
    .hs-estimate-route { grid-template-columns: 1fr; gap: 5px; }
    .hs-route-arrow { flex-direction: row; gap: 6px; min-height: 32px; }
    .hs-route-arrow span { font-size: 27px; transform: rotate(0deg); }
    .hs-location-card { padding: 15px; }
    .hs-location-card-head { align-items: stretch; }
    .hs-location-card h3 { font-size: 17px; }
    .hs-address-search { min-height: 42px; }
    .hs-mode-grid { grid-template-columns: 1fr; }
    .hs-mode-card { min-height: 0; padding: 18px; }
    .hs-estimate-photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hs-estimate-section-heading { gap: 8px; }
    .hs-detail-action { align-items: stretch; flex-direction: column; }
    .hs-detail-action p { order: -1; }
    .hs-estimate-step { font-size: 10px; }
    .hs-estimate-brand-sub { max-width: 245px; }
    .hs-estimate-process { width: 100%; margin: 12px 0 16px; padding: 11px; }
    .hs-estimate-process-copy strong { font-size: 10px; }
    .hs-estimate-process-copy small { font-size: 9px; }
}

@media (max-width: 420px) {
    .hs-estimate-process-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 0; }
    .hs-estimate-process-list li:not(:last-child)::after { display: none; }
}

@media (min-width: 768px) {
    .hs-estimate-bottombar { left: 50%; right: auto; width: min(760px, calc(100% - 32px)); transform: translateX(-50%); border: 1px solid var(--hs-estimate-border); border-bottom: 0; border-radius: 14px 14px 0 0; box-shadow: 0 -5px 18px rgba(15, 23, 42, .05); }
}

/* Compact desktop control-panel layout. Keep the mobile-first CORE skin above
 * and scope this layer to the benchmark form namespace only. */
.hs-estimate { padding-bottom: 88px; }
.hs-estimate-header {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-areas: "brand meta" "steps steps" "error error";
    column-gap: 28px;
    row-gap: 7px;
    padding: 10px max(20px, calc((100vw - 1440px) / 2 + 20px));
}
.hs-estimate-brand { grid-area: brand; max-width: none; margin: 0; }
.hs-estimate-brand-logo { width: 32px; height: 32px; font-size: 16px; }
.hs-estimate-brand-sub { display: none; }
.hs-estimate-progress-meta { grid-area: meta; max-width: none; margin: 0; justify-content: flex-end; align-self: center; gap: 16px; }
.hs-estimate-steps { grid-area: steps; max-width: none; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 7px; }
.hs-estimate-step { padding: 4px 2px 5px; font-size: 11px; }
.hs-estimate-progress-error { grid-area: error; margin: 0; }
.hs-estimate-content-shell { display: grid; grid-template-columns: minmax(0, 1fr) 308px; gap: 20px; align-items: start; width: min(100%, 1440px); margin: 0 auto; padding: 14px 20px 48px; }
.hs-estimate-body { max-width: none; padding: 0; }
.hs-estimate-card { margin-bottom: 10px; padding: 16px 18px; border-radius: 12px; box-shadow: 0 5px 16px rgba(15, 23, 42, .025); }
.hs-estimate-card--intro { padding: 8px 0 12px; border: 0; background: transparent; color: #0f172a; box-shadow: none; }
.hs-estimate-card--intro .hs-estimate-kicker { color: #2563eb; }
.hs-estimate-card--intro h1, .hs-estimate-card--intro h2 { margin: 4px 0 2px; color: #0f172a; font-size: 24px; }
.hs-estimate-card--intro p { color: #64748b; font-size: 13px; }
.hs-basic-section h2 { margin-bottom: 12px; font-size: 17px; }
.hs-estimate-section-heading { margin-bottom: 10px; }
.hs-estimate-field { margin-bottom: 9px; }
.hs-estimate-field label { margin-bottom: 3px; font-size: 12px; }
.hs-estimate-field input, .hs-estimate-field select, .hs-estimate-field textarea { min-height: 40px; padding: 6px 10px; border-radius: 8px; }
.hs-estimate-field textarea { min-height: 82px; }
.hs-estimate-row2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.hs-estimate-row3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.hs-estimate-row4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }
.hs-estimate-row5 { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 9px; }
.hs-work-type-row { align-items: start; }
.hs-direct-control { display: flex; align-items: center; gap: 6px; min-width: 0; }
.hs-direct-control > select, .hs-direct-control > input { min-width: 0; flex: 1 1 0; width: 100%; }
.hs-direct-control > input[hidden] { display: none; }
.hs-subtype-field .hs-estimate-field-help { min-height: 0; margin-top: 3px; font-size: 11px; }
.hs-move-time-field { max-width: calc(33.333% - 6px); }
.hs-location-card { padding: 13px; border-radius: 11px; }
.hs-location-card-head { margin-bottom: 10px; }
.hs-location-card h3 { font-size: 16px; }
.hs-location-mark { width: 23px; height: 23px; font-size: 11px; }
.hs-address-search { min-height: 36px; padding: 0 12px; }
.hs-route-arrow span { font-size: 28px; }
.hs-route-arrow small { font-size: 11px; }
.hs-consent-card { padding: 12px 16px; }
.hs-basic-action, .hs-detail-action { margin: 12px 0 20px; }
.hs-basic-action p, .hs-detail-action p, .hs-mode-secondary p { margin-bottom: 6px; font-size: 11px; }
.hs-estimate-btn { min-height: 40px; padding: 7px 12px; border-radius: 9px; font-size: 13px; }
.hs-estimate-btn--wide { min-height: 46px; font-size: 14px; }
.hs-estimate-btn--attention { position: relative; animation: hs-cta-pulse 1.8s ease-in-out infinite; box-shadow: 0 0 0 0 rgba(37, 99, 235, .42), 0 7px 14px rgba(37, 99, 235, .2); }
@keyframes hs-cta-pulse {
    0%, 100% { transform: translateY(0); box-shadow: 0 0 0 0 rgba(37, 99, 235, .38), 0 7px 14px rgba(37, 99, 235, .18); }
    50% { transform: translateY(-1px); box-shadow: 0 0 0 6px rgba(37, 99, 235, 0), 0 9px 18px rgba(37, 99, 235, .28); }
}
.hs-estimate-btn--attention::after { content: "✓ 다음 단계로 진행"; position: absolute; right: 10px; top: -11px; padding: 2px 6px; border-radius: 999px; background: #fff7ed; color: #c2410c; font-size: 9px; font-weight: 800; line-height: 1.25; box-shadow: 0 2px 5px rgba(194, 65, 12, .12); }

.hs-estimate-control-panel { position: sticky; top: 84px; min-width: 0; padding: 12px; border: 1px solid #d7e3f2; border-radius: 15px; background: #fff; box-shadow: 0 8px 24px rgba(15, 23, 42, .06); }
.hs-control-toggle { width: 100%; min-height: 32px; padding: 4px 8px; border: 1px solid #d5e1ef; border-radius: 8px; background: #f8fbff; color: #1e3a8a; font-size: 12px; font-weight: 800; cursor: pointer; }
.hs-control-content { padding: 8px 2px 0; }
.hs-estimate-control-panel--collapsed .hs-control-content { display: none; }
.hs-control-footer { padding-top: 10px; border-top: 1px solid #e5edf6; }
.hs-estimate-control-panel--collapsed .hs-control-footer { display: block; }
.hs-control-kicker { margin: 0 0 3px; color: #64748b; font-size: 11px; font-weight: 700; }
.hs-control-current { display: block; margin: 6px 0 7px; color: #0f172a; font-size: 17px; }
.hs-control-steps { display: grid; gap: 3px; list-style: none; margin: 0; padding: 0 0 4px; }
.hs-control-step { display: grid; grid-template-columns: 25px minmax(0, 1fr) auto; grid-template-rows: auto auto; column-gap: 7px; align-items: center; min-height: 36px; color: #94a3b8; }
.hs-control-step b { grid-row: 1 / span 2; display: inline-flex; width: 25px; height: 25px; align-items: center; justify-content: center; border-radius: 7px; background: #e8eef6; color: #64748b; font-size: 12px; }
.hs-control-step span { grid-column: 2; font-size: 12px; font-weight: 700; }
.hs-control-step small { grid-column: 2 / span 2; color: #94a3b8; font-size: 10px; }
.hs-control-step--active { color: #1d4ed8; }
.hs-control-step--active b { background: #2563eb; color: #fff; }
.hs-control-step--done { color: #334155; }
.hs-control-step--done b { background: #dbeafe; color: #2563eb; }
.hs-control-step--active small, .hs-control-step--done small { color: #64748b; }
.hs-control-block { padding: 7px 0; border-top: 1px solid #e5edf6; }
.hs-control-block-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.hs-control-block-head strong { color: #0f172a; font-size: 12px; }
.hs-control-block-head > span { color: #2563eb; font-size: 11px; font-weight: 700; }
.hs-control-section-toggle { display: flex; align-items: center; justify-content: space-between; gap: 7px; width: 100%; min-height: 20px; padding: 0; border: 0; background: transparent; color: #0f172a; text-align: left; cursor: pointer; }
.hs-control-section-toggle > span:first-child { color: #0f172a; font-size: 12px; font-weight: 800; }
.hs-control-section-state { margin-left: auto; color: #2563eb; font-size: 11px; font-weight: 700; white-space: nowrap; }
.hs-control-section-icon { flex: 0 0 auto; color: #64748b; font-size: 16px; line-height: 1; }
.hs-control-section-toggle:focus-visible { outline: 2px solid #2563eb; outline-offset: 2px; border-radius: 4px; }
.hs-control-block--collapsed { padding-bottom: 5px; }
.hs-control-section-content[hidden] { display: none; }
.hs-control-block p { margin: 4px 0 0; color: #64748b; font-size: 11px; line-height: 1.45; }
.hs-control-status-list { display: grid; gap: 4px; list-style: none; margin: 6px 0 0; padding: 0; }
.hs-control-status-list li { display: flex; justify-content: space-between; gap: 8px; color: #475569; font-size: 11px; }
.hs-control-status-list b { color: #c2410c; font-size: 10px; }
.hs-control-status-list b.hs-control-status--done { color: #15803d; }
.hs-control-plus { color: #64748b !important; font-size: 16px !important; }
.hs-control-checklist { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3px 6px; list-style: none; margin: 4px 0 0; padding: 0; }
.hs-control-checklist-item { min-width: 0; }
.hs-control-checklist-jump { display: grid; grid-template-columns: 16px minmax(0, 1fr) auto; align-items: center; gap: 3px; width: 100%; min-height: 24px; padding: 1px 0; border: 0; background: transparent; color: #475569; text-align: left; cursor: pointer; }
.hs-control-checklist-jump--static { cursor: default; }
.hs-control-checklist-mark { display: inline-flex; width: 16px; height: 16px; align-items: center; justify-content: center; border-radius: 5px; background: #e8eef6; color: #64748b; font-size: 10px; font-weight: 900; }
.hs-control-checklist-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }
.hs-control-checklist-item > small { display: block; grid-column: 1 / -1; margin: 1px 0 0; color: #c2410c; font-size: 10px; line-height: 1.35; }
.hs-control-checklist-item--done .hs-control-checklist-mark { background: #dcfce7; color: #15803d; }
.hs-control-checklist-item--done b { color: #15803d; font-size: 10px; }
.hs-control-checklist-item--warning .hs-control-checklist-mark { background: #ffedd5; color: #c2410c; }
.hs-control-checklist-item--warning b { color: #c2410c; font-size: 10px; }
.hs-control-checklist-item--warning .hs-control-checklist-jump:hover { color: #9a3412; }
.hs-estimate-control-panel .hs-estimate-sticky-amount { margin-top: 7px; font-size: 16px; }
.hs-estimate-control-panel .hs-estimate-sticky-detail { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3px 8px; margin-top: 7px; font-size: 10px; }
.hs-control-action { width: 100%; margin-top: 12px; box-shadow: 0 5px 10px rgba(37, 99, 235, .16); }
.hs-control-action-note { margin: 6px 0 0; color: #d97706; font-size: 10px; line-height: 1.4; text-align: center; }
.hs-control-action[hidden], .hs-control-action-note[hidden] { display: none; }
.hs-subtype-field { padding: 8px 9px 7px; border: 1px solid #bfdbfe; border-radius: 9px; background: #eff6ff; }
.hs-subtype-field:not([hidden]) { animation: hs-subtype-open .18s ease-out; }
.hs-subtype-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.hs-subtype-heading label { margin-bottom: 3px; }
.hs-subtype-heading span { padding: 2px 6px; border-radius: 999px; background: #dbeafe; color: #1d4ed8; font-size: 10px; font-weight: 800; }
.hs-estimate-route { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: stretch; gap: 12px; }
.hs-route-arrow { display: none; }
.hs-location-card { padding: 12px; background: #fff; }
.hs-location-card-head { margin-bottom: 8px; }
.hs-location-address-row { gap: 8px; margin-bottom: 7px; }
.hs-location-address-row .hs-estimate-field { margin-bottom: 0; }
.hs-location-address-row .hs-estimate-field label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.hs-building-type-field { margin-bottom: 8px; }
.hs-building-type-choices { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 5px; }
.hs-building-type-choice { min-width: 0; min-height: 34px; padding: 4px 3px; border: 1px solid #d6e2f0; border-radius: 6px; background: #f1f5f9; color: #1e3a5f; font-size: 11px; font-weight: 700; cursor: pointer; white-space: nowrap; }
.hs-building-type-choice.is-active { border-color: #2563eb; background: #2563eb; color: #fff; box-shadow: 0 3px 8px rgba(37, 99, 235, .18); }
/* 2026-09-22(사용자 지시·실기기 재현) — .hs-direct-control > select { width:100% }
   (위 696행)이 이 규칙과 동일한 명시도(0,1,1)라서 소스 순서상 이겨, absolute
   위치에서 100%가 의도한 부모(127px)가 아니라 훨씬 위 조상 기준으로 풀려
   375px(뷰포트 폭)까지 벌어졌다 — 모바일에서 출발지/도착지 화면이 가로로
   밀려나가는 원인. select.* 로 명시도를 맞추고 !important로 항상 이기게 한다. */
.hs-building-type-source,
select.hs-building-type-source { position: absolute !important; width: 1px !important; height: 1px !important; min-width: 0 !important; overflow: hidden !important; opacity: 0; pointer-events: none; }
.hs-building-type-field > .hs-direct-control { margin-top: 6px; }
.hs-location-stats { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 7px; }
.hs-location-stats .hs-estimate-field { min-width: 0; margin-bottom: 0; }
.hs-location-stats .hs-estimate-field label { font-size: 11px; }
.hs-location-stats .hs-estimate-field input, .hs-location-stats .hs-estimate-field select { min-height: 38px; padding-left: 7px; padding-right: 7px; font-size: 11px; }
@keyframes hs-subtype-open { from { opacity: 0; transform: translateX(6px); } to { opacity: 1; transform: translateX(0); } }

@media (max-width: 767px) {
    .hs-estimate { padding-bottom: calc(var(--hs-estimate-bottombar-h) + 24px); }
    .hs-estimate-header { display: block; padding: 10px 14px; }
    .hs-estimate-brand { margin-bottom: 8px; }
    .hs-estimate-brand-sub { display: none; }
    .hs-estimate-progress-meta { margin-bottom: 5px; }
    .hs-estimate-steps { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 3px; }
    .hs-estimate-step { font-size: 9px; }
    .hs-estimate-content-shell { display: block; width: 100%; padding: 10px 12px 28px; }
    .hs-estimate-card { padding: 14px; }
    .hs-estimate-card--intro { padding: 4px 0 10px; }
    .hs-estimate-card--intro h1, .hs-estimate-card--intro h2 { font-size: 21px; }
    .hs-estimate-row3 { grid-template-columns: 1fr; gap: 0; }
    .hs-estimate-row4, .hs-estimate-row5 { grid-template-columns: 1fr; gap: 0; }
    .hs-move-time-field { max-width: none; }
    .hs-estimate-control-panel { position: static; margin-top: 6px; }
    .hs-control-content { padding-top: 8px; }
    .hs-control-checklist { grid-template-columns: 1fr; gap: 3px; }
    .hs-location-address-row { grid-template-columns: 1fr; gap: 0; }
    .hs-building-type-choices { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .hs-location-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* GUT-style quick/precise inventory controls. The inventory payload still
 * stays on the canonical CORE catalog; these classes only shape the form UX. */
.hs-inline-mode-switch,
.hs-inventory-group-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 12px; }
.hs-inline-mode-button,
.hs-inventory-group-tab {
    min-height: 36px;
    padding: 6px 13px;
    border: 1px solid #d6e2f0;
    border-radius: 999px;
    background: #fff;
    color: #475569;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}
.hs-inline-mode-button.is-active,
.hs-inventory-group-tab.is-active { border-color: #2563eb; background: #2563eb; color: #fff; box-shadow: 0 3px 8px rgba(37, 99, 235, .14); }
.hs-inline-mode-button:not(.is-active):hover,
.hs-inventory-group-tab:not(.is-active):hover { border-color: #93c5fd; color: #1d4ed8; }
.hs-inventory-inherit { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; padding: 10px 12px; border: 1px solid #bfdbfe; border-radius: 10px; background: #eff6ff; color: #1e3a8a; font-size: 12px; }
.hs-inventory-inherit strong { white-space: nowrap; }
.hs-inventory-inherit span { color: #475569; overflow-wrap: anywhere; }
.hs-gut-simple-section { margin: 0 0 12px; padding: 12px; border: 1px solid #e2e8f0; border-radius: 10px; background: #f8fbff; }
.hs-gut-subheading { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.hs-gut-subheading strong { color: #0f172a; font-size: 13px; }
.hs-gut-subheading small { color: #64748b; font-size: 11px; }
.hs-gut-choice-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
.hs-gut-choice { display: grid; gap: 2px; min-height: 52px; padding: 7px 8px; border: 1px solid #d6e2f0; border-radius: 8px; background: #fff; color: #334155; text-align: left; cursor: pointer; }
.hs-gut-choice strong { font-size: 12px; }
.hs-gut-choice small { color: #94a3b8; font-size: 10px; }
.hs-gut-choice.is-active { border-color: #2563eb; background: #2563eb; color: #fff; }
.hs-gut-choice.is-active small { color: #dbeafe; }
.hs-gut-flag-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.hs-gut-flag { display: flex !important; align-items: center; min-height: 34px; margin: 0 !important; padding: 5px 7px; border: 1px solid #d6e2f0; border-radius: 7px; background: #fff; color: #334155 !important; font-size: 11px !important; cursor: pointer; }
.hs-gut-flag input { width: 16px !important; height: 16px !important; min-height: 0 !important; margin: 0 5px 0 0; flex: none; }
.hs-item-detail-toggle { min-height: 32px; padding: 4px 8px; border: 1px solid #bfdbfe; border-radius: 7px; background: #fff; color: #1d4ed8; font-size: 11px; font-weight: 800; cursor: pointer; }
.hs-item-detail-panel { width: 100%; margin-top: 5px; padding-top: 9px; border-top: 1px dashed #bfdbfe; }
.hs-item-dimension-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.hs-item-detail-panel label { display: grid; gap: 3px; color: #64748b; font-size: 10px; }
.hs-item-detail-panel input,
.hs-item-detail-panel textarea { width: 100%; min-height: 34px; padding: 5px 7px; border: 1px solid #d6e2f0; border-radius: 7px; background: #fff; font-size: 11px; }
.hs-item-detail-panel textarea { min-height: 52px; resize: vertical; }
.hs-item-attributes { margin-top: 8px; padding-top: 8px; border-top: 1px dashed #d7e3f2; }
.hs-item-attributes > strong { display: block; margin-bottom: 6px; color: #1e3a8a; font-size: 11px; }
.hs-item-attribute-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.hs-item-attribute-field { display: grid; gap: 3px; color: #64748b; font-size: 10px; }
.hs-item-attribute-field input,
.hs-item-attribute-field select { width: 100%; min-height: 32px; padding: 5px 7px; border: 1px solid #d6e2f0; border-radius: 7px; background: #fff; font-size: 11px; }
.hs-item-attribute-check { display: flex !important; align-items: center; gap: 4px; min-height: 32px; }
.hs-item-attribute-check input { width: 16px !important; min-height: 16px !important; }
.hs-item-memo-label { margin-top: 7px; }
.hs-inventory-overview { margin-top: 12px; padding: 13px; border: 1px solid #d7e3f2; border-radius: 10px; background: #fff; }
.hs-inventory-overview > .hs-estimate-section-heading { margin-bottom: 8px; }
.hs-inventory-overview > .hs-estimate-section-heading h3 { margin-bottom: 0; }
.hs-inventory-overview > .hs-estimate-section-heading > strong { color: #1d4ed8; font-size: 14px; white-space: nowrap; }
.hs-inventory-tools { display: grid; grid-template-columns: minmax(0, 1fr) 110px; gap: 7px; margin-bottom: 8px; }
.hs-inventory-tools input,
.hs-inventory-tools select { width: 100%; min-height: 36px; padding: 5px 8px; border: 1px solid #d6e2f0; border-radius: 7px; background: #fff; font-size: 11px; }
.hs-selected-item-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; min-height: 44px; padding: 7px 4px; border: 0; border-top: 1px solid #edf2f7; background: transparent; color: #334155; text-align: left; cursor: pointer; }
.hs-selected-item-row:first-child { border-top: 0; }
.hs-selected-item-row:hover { background: #f8fbff; }
.hs-selected-item-row span:first-child { display: grid; gap: 1px; min-width: 0; }
.hs-selected-item-row strong { color: #0f172a; font-size: 12px; }
.hs-selected-item-row small { color: #64748b; font-size: 10px; }
.hs-selected-item-row > span:last-child { color: #64748b; font-size: 10px; white-space: nowrap; }
.hs-empty-selection { margin: 8px 0 0; color: #94a3b8; font-size: 11px; }
.hs-room-total-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 8px; min-height: 38px; border-top: 1px solid #edf2f7; font-size: 11px; }
.hs-room-total-row:first-child { border-top: 0; }
.hs-room-total-row strong { color: #0f172a; }
.hs-room-total-row span { color: #475569; }
.hs-room-total-row button { min-height: 26px; padding: 2px 7px; border: 1px solid #d6e2f0; border-radius: 999px; background: #fff; color: #2563eb; font-size: 10px; cursor: pointer; }

@media (max-width: 767px) {
    .hs-inventory-inherit { align-items: flex-start; flex-direction: column; gap: 2px; }
    .hs-gut-subheading { align-items: flex-start; flex-direction: column; gap: 2px; }
    .hs-gut-choice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hs-gut-flag-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hs-item-dimension-grid { grid-template-columns: 1fr; gap: 5px; }
    .hs-item-attribute-grid { grid-template-columns: 1fr; gap: 5px; }
    .hs-selected-item-row { align-items: flex-start; flex-direction: column; gap: 2px; }
    .hs-selected-item-row > span:last-child { white-space: normal; }
    .hs-room-total-row { grid-template-columns: minmax(0, 1fr) auto; }
    .hs-room-total-row button { grid-column: 2; grid-row: 1; }
}

/* Quick estimate room checklist — mirrors the GUT space-first interaction. */
.hs-estimate-room-tabs { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; overflow: visible; padding: 0; margin: 0 0 10px; }
.hs-estimate-room-tab { display: flex; align-items: center; justify-content: flex-start; gap: 4px; min-width: 0; min-height: 46px; padding: 7px 8px; border-radius: 9px; background: #fff; color: #0f172a; font-size: 12px; font-weight: 800; }
.hs-estimate-room-tab--active { background: #fff; border-color: #2563eb; color: #0f172a; box-shadow: 0 0 0 1px rgba(37, 99, 235, .12); }
.hs-estimate-room-tab--selected { border-color: #2563eb; }
.hs-room-tab-check { width: 18px; color: #64748b; font-size: 16px; font-weight: 900; line-height: 1; text-align: center; }
.hs-estimate-room-tab--selected .hs-room-tab-check, .hs-estimate-room-tab:hover .hs-room-tab-check { color: #2563eb; }
.hs-room-tab-icon { font-size: 15px; line-height: 1; }
.hs-estimate-room-tab-badge { margin-left: 2px; color: #2563eb; font-weight: 900; }
.hs-estimate-room-tab--active .hs-estimate-room-tab-badge { color: #2563eb; }
.hs-room-selection-summary { display: flex; align-items: center; min-height: 36px; margin: -1px 0 10px; padding: 7px 10px; border-radius: 8px; background: #f2f6fa; color: #1e3a5f; font-size: 12px; font-weight: 800; }
.hs-gut-item-grid .hs-item-toggle { appearance: none; -webkit-appearance: none; width: 22px !important; height: 22px !important; min-width: 22px !important; min-height: 22px !important; margin: 0 6px 0 0; padding: 0 !important; border: 2px solid #64748b; border-radius: 5px; background: #fff; cursor: pointer; flex: none; }
.hs-gut-item-grid .hs-item-toggle:focus-visible { outline: 3px solid rgba(37, 99, 235, .28); outline-offset: 2px; }
.hs-gut-item-grid .hs-item-toggle:checked { border-color: #2563eb; background-color: #2563eb; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4 10.5 8.2 15 16 5.5' fill='none' stroke='white' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-position: center; background-repeat: no-repeat; background-size: 15px 15px; }
.hs-active-room-panel { margin-top: 4px; padding: 12px; border: 1px solid #d7e3f2; border-radius: 11px; background: #fff; }
.hs-active-room-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.hs-active-room-head > div { display: grid; gap: 2px; min-width: 0; }
.hs-active-room-head strong { color: #0f172a; font-size: 14px; }
.hs-active-room-head small { color: #64748b; font-size: 11px; }
.hs-active-room-head em { color: #2563eb; font-size: 11px; font-style: normal; font-weight: 800; white-space: nowrap; }
.hs-active-room-icon { font-size: 15px; }
.hs-gut-item-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.hs-gut-item-grid .hs-estimate-item { display: flex; align-items: center; align-content: flex-start; flex-wrap: wrap; min-width: 0; min-height: 54px; padding: 9px; border-radius: 8px; }
.hs-gut-item-grid .hs-estimate-item > label { display: flex; align-items: center; gap: 3px; min-width: 0; min-height: 32px; flex: 1 1 auto; margin: 0; }
.hs-gut-item-grid .hs-estimate-item:not(.hs-estimate-item--selected) > label { flex-basis: 100%; }
.hs-gut-item-grid .hs-estimate-item-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 700; }
.hs-estimate-item-icon { flex: none; font-size: 14px; line-height: 1; }
.hs-gut-item-grid .hs-estimate-item-controls { display: flex; align-items: center; justify-content: flex-start; gap: 4px; width: auto; flex: 0 0 auto; }
.hs-gut-item-grid .hs-estimate-item--selected > .hs-estimate-item-controls { margin-left: auto; }
.hs-gut-item-grid .hs-estimate-mini-select { min-height: 30px; padding: 3px 5px; font-size: 10px; }
.hs-gut-item-grid .hs-item-variant { max-width: 108px; }
.hs-gut-item-grid .hs-estimate-qty { gap: 2px; }
.hs-gut-item-grid .hs-estimate-qty button { width: 28px; height: 30px; min-height: 30px; border-radius: 6px; font-size: 14px; }
.hs-gut-item-grid .hs-estimate-qty input { width: 34px; min-height: 30px; padding: 2px; font-size: 11px; }
.hs-gut-item-grid .hs-estimate-item-custom-name { min-height: 32px; padding: 4px 6px; font-size: 11px; }
.hs-item-more, .hs-item-custom-add { display: flex; align-items: center; gap: 7px; width: 100%; min-height: 44px; margin-top: 8px; padding: 8px 12px; border: 2px solid #2563eb; border-radius: 9px; background: #eff6ff; color: #123d8d; text-align: left; font-size: 12px; font-weight: 800; cursor: pointer; box-shadow: 0 3px 8px rgba(37, 99, 235, .08); }
.hs-item-more { margin-top: 0; margin-bottom: 8px; }
.hs-item-more:hover, .hs-item-custom-add:hover { border-color: #1d4ed8; background: #dbeafe; color: #1d4ed8; }
.hs-item-more-icon, .hs-item-custom-add-icon { display: inline-flex; align-items: center; justify-content: center; width: 23px; height: 23px; flex: none; border-radius: 999px; background: #2563eb; color: #fff; font-size: 19px; font-weight: 900; line-height: 1; }
.hs-item-more-label, .hs-item-custom-add > span:nth-child(2) { min-width: 0; }
.hs-item-more-label b { color: #1d4ed8; }
.hs-item-more-guide, .hs-item-custom-add-guide { margin-left: auto; color: #ea580c; font-size: 11px; font-weight: 900; white-space: nowrap; animation: hs-item-guide-pulse 1.8s ease-in-out infinite; }
.hs-item-custom-add { border-color: #f59e0b; background: #fff7ed; color: #9a3412; }
.hs-item-custom-add-icon { background: #f97316; }
.hs-item-custom-add-guide { color: #ea580c; }
@keyframes hs-item-guide-pulse { 0%, 100% { opacity: .65; transform: translateX(0); } 50% { opacity: 1; transform: translateX(3px); } }
.hs-active-room-nav { display: flex; justify-content: flex-end; margin-top: 9px; padding-top: 9px; border-top: 1px solid #edf2f7; }
.hs-active-room-nav .hs-estimate-btn { min-height: 34px; font-size: 11px; }
.hs-gut-simple-next-guide { margin-top: 12px; padding-top: 11px; border-top: 1px dashed #d7e3f2; }
.hs-gut-simple-next-guide p { margin: 0 0 8px; color: #0f172a; font-size: 11px; font-weight: 700; }
.hs-simple-next-guide-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.hs-simple-next-guide-btns .hs-estimate-btn { min-height: 42px; font-size: 12px; font-weight: 800; }
.hs-special-accordion { margin-top: 10px; border: 1px solid #d7e3f2; border-radius: 11px; background: #fff; overflow: hidden; }
.hs-special-accordion > button { display: flex; align-items: center; width: 100%; min-height: 48px; padding: 8px 13px; border: 0; background: transparent; color: #0f172a; text-align: left; cursor: pointer; }
.hs-special-accordion > button span { font-size: 13px; font-weight: 800; }
.hs-special-accordion > button small { margin-left: auto; color: #2563eb; font-size: 10px; font-weight: 800; }
.hs-special-accordion-arrow { width: 22px; color: #2563eb; font-size: 18px; text-align: right; }
.hs-special-accordion > div { padding: 0 12px 12px; border-top: 1px solid #edf2f7; }
.hs-special-accordion > div > .hs-estimate-field-help { margin: 10px 0; }

@media (max-width: 767px) {
    .hs-estimate-room-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
    .hs-estimate-room-tab { min-height: 42px; font-size: 11px; }
    .hs-gut-item-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
    .hs-simple-next-guide-btns { grid-template-columns: 1fr; }
}

/* Content blocks: separate major sections with calm, low-contrast tints. */
.hs-content-block {
    border-left-width: 4px;
    border-left-style: solid;
}
.hs-content-block--customer {
    border-color: #dbeafe;
    border-left-color: #60a5fa;
    background: #f7fbff;
}
.hs-content-block--schedule {
    border-color: #e0e7ff;
    border-left-color: #818cf8;
    background: #fafaff;
}
.hs-content-block--route {
    border-color: #d1fae5;
    border-left-color: #34d399;
    background: #f8fffb;
}
.hs-content-block--consent {
    border-color: #fde68a;
    border-left-color: #f59e0b;
    background: #fffaf0;
}
.hs-content-block--method {
    margin-top: 14px;
    padding: 14px;
    border-color: #dbeafe;
    border-left-color: #2563eb;
    border-radius: 14px;
    background: #f5f9ff;
}
.hs-content-block--method-secondary {
    padding: 12px 14px;
    border-color: #e2e8f0;
    border-left-color: #94a3b8;
    border-radius: 12px;
    background: #f8fafc;
}
.hs-content-block--process {
    border-left-color: #93c5fd;
}
.hs-content-block--inventory {
    border-color: #dbeafe;
    border-left-color: #2563eb;
    background: #f6f9ff;
}
.hs-content-block--special {
    border-color: #fed7aa;
    border-left-color: #f97316;
    background: #fffaf5;
}
.hs-content-block--living {
    border-color: #bbf7d0;
    border-left-color: #22c55e;
    background: #f5fff8;
}
.hs-content-block--flags {
    border-color: #cbd5e1;
    border-left-color: #64748b;
    background: #f8fafc;
}
.hs-content-block--selected {
    border-color: #c7d2fe;
    border-left-color: #6366f1;
    background: #f8f8ff;
}
.hs-content-block--totals {
    border-color: #bae6fd;
    border-left-color: #0ea5e9;
    background: #f5fcff;
}
.hs-content-block--conditions {
    border-color: #ddd6fe;
    border-left-color: #8b5cf6;
    background: #fbf9ff;
}
.hs-content-block--photos {
    border-color: #bae6fd;
    border-left-color: #38bdf8;
    background: #f4fcff;
}
/* CARGO basic flow: collect route first, then cargo details below it. */
body[data-service-id="cargo"] .hs-estimate-basic-panel.hs-estimate-logical-panel--active {
    display: flex;
    flex-direction: column;
}
body[data-service-id="cargo"] .hs-estimate-basic-panel > .hs-estimate-card--intro { order: 0; }
body[data-service-id="cargo"] .hs-estimate-basic-panel > .hs-content-block--customer { order: 10; }
body[data-service-id="cargo"] .hs-estimate-basic-panel > .hs-content-block--schedule { order: 20; }
body[data-service-id="cargo"] .hs-estimate-basic-panel > .hs-content-block--route { order: 30; }
body[data-service-id="cargo"] .hs-estimate-basic-panel > .hs-cargo-details-card { order: 40; }
body[data-service-id="cargo"] .hs-estimate-basic-panel > .hs-cargo-only:not(.hs-cargo-details-card) { order: 50; }
body[data-service-id="cargo"] .hs-estimate-basic-panel > .hs-content-block--consent { order: 60; }
body[data-service-id="cargo"] .hs-estimate-basic-panel > .hs-content-block--process { order: 70; }
body[data-service-id="cargo"] .hs-estimate-basic-panel > .hs-basic-action { order: 80; }
.hs-cargo-only {
    border: 1px solid #bfdbfe;
    border-left: 4px solid #2563eb;
    border-radius: 14px;
    background: #f7fbff;
}
/* CARGO must not briefly expose MOVE-only fields while JavaScript loads. */
body[data-service-id="cargo"] [data-move-only] {
    display: none !important;
}
.hs-cargo-details-card {
    padding: 12px 14px;
}
.hs-cargo-details-card .hs-estimate-section-heading {
    margin-bottom: 8px;
}
.hs-cargo-details-card .hs-estimate-field {
    margin-bottom: 6px;
}
.hs-cargo-details-card .hs-estimate-field input,
.hs-cargo-details-card .hs-estimate-field select {
    min-height: 36px;
    padding-top: 5px;
    padding-bottom: 5px;
}
.hs-cargo-details-card .hs-estimate-field-help {
    margin-top: 3px;
    font-size: 11px;
}
.hs-cargo-summary-row,
.hs-cargo-condition-row {
    gap: 8px;
}
.hs-cargo-time-control {
    margin-top: 5px;
}
.hs-cargo-time-help {
    margin-top: 3px;
}
.hs-cargo-recipient-row {
    margin-top: 8px;
}
.hs-cargo-category-field {
    margin-top: 2px;
}
.hs-cargo-step2 {
    padding: 16px;
    margin-top: 14px;
}
.hs-cargo-step2 h3 {
    margin: 0 0 6px;
}
.hs-cargo-choice-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    margin-top: 5px;
}
.hs-cargo-choice-card {
    min-width: 0;
    padding: 6px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #fff;
}
.hs-cargo-choice-card.is-selected {
    border-color: #2563eb;
    background: #eff6ff;
}
.hs-cargo-choice {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
    min-height: 28px;
    padding: 2px 3px;
    cursor: pointer;
    color: #334155;
    font-size: 12px;
    line-height: 1.2;
    white-space: nowrap;
}
.hs-cargo-choice input[type="checkbox"] {
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
    margin: 0;
}
.hs-cargo-choice-card.is-selected .hs-cargo-choice {
    color: #1d4ed8;
    font-weight: 700;
}
.hs-cargo-quantity-row {
    display: flex;
    align-items: center;
    gap: 4px;
    min-height: 28px;
    padding: 2px 3px 0;
    font-size: 11px;
    color: #64748b;
}
.hs-cargo-quantity-label { margin-right: auto; }
.hs-cargo-quantity-step {
    width: 22px;
    height: 22px;
    padding: 0;
    border: 1px solid #bfdbfe;
    border-radius: 5px;
    background: #fff;
    color: #1d4ed8;
    font-size: 15px;
    line-height: 18px;
    cursor: pointer;
}
.hs-cargo-quantity-row input[type="number"] {
    width: 42px;
    min-height: 26px;
    padding: 3px 4px;
    text-align: center;
    border: 1px solid #cbd5e1;
    border-radius: 5px;
    background: #fff;
}
.hs-cargo-quantity-unit { min-width: 14px; }
.hs-cargo-other-name {
    margin: 5px 3px 2px;
    padding-top: 5px;
    border-top: 1px dashed #bfdbfe;
}
.hs-cargo-other-name label { display: block; margin-bottom: 3px; font-size: 11px; color: #475569; }
.hs-cargo-other-name input { width: 100%; min-height: 30px; padding: 4px 7px; font-size: 12px; }
.hs-cargo-detail-field { margin-top: 8px; }
.hs-cargo-detail-field textarea { min-height: 52px; resize: vertical; }
.hs-cargo-dimensions {
    margin-top: 7px;
    padding-top: 8px;
    border-top: 1px dashed #cbd5e1;
}
.hs-cargo-dimensions summary {
    cursor: pointer;
    color: #1d4ed8;
    font-weight: 700;
    font-size: 12px;
}
/* YONGDAL v1(2026-09-21) — CARGO 블록과 같은 자리·같은 패턴. 작업지시서 §34
   "공간압축 디자인" 원칙대로 촘촘하게 하되, 사용자 요청(2026-09-21 야간)에 따라
   프리미엄 톤(부드러운 그림자·전환 효과·또렷한 위계)을 얹는다. */
.hs-yongdal-only {
    border: 1px solid #99f6e4;
    border-left: 4px solid #0d9488;
    border-radius: 16px;
    background: linear-gradient(180deg, #f4fffd 0%, #ffffff 60%);
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 20px -12px rgba(13, 148, 136, .35);
}
/* YONGDAL도 CARGO와 동일하게, JS 로딩 전에 MOVE 전용 필드가 잠깐 보이는 것을 막는다. */
body[data-service-id="yongdal"] [data-move-only] {
    display: none !important;
}
/* 2026-09-21(사용자 지시) — 층수/엘리베이터/사다리차는 CARGO에서만 숨긴다(JS 로딩 전
   깜빡임 방지, renderCargoMode()의 [data-cargo-hide] 토글과 짝). */
body[data-service-id="cargo"] [data-cargo-hide] {
    display: none !important;
}
.hs-yongdal-details-card {
    padding: 14px 16px;
}
.hs-yongdal-details-card .hs-estimate-section-heading {
    margin-bottom: 10px;
}
.hs-yongdal-details-card .hs-estimate-kicker {
    color: #0d9488;
}
.hs-yongdal-details-card .hs-route-badge {
    background: #ccfbf1;
    color: #0f766e;
}
.hs-yongdal-details-card .hs-estimate-field {
    margin-bottom: 8px;
}
.hs-yongdal-details-card .hs-estimate-field label {
    font-weight: 600;
    color: #134e4a;
}
.hs-yongdal-details-card .hs-estimate-field input,
.hs-yongdal-details-card .hs-estimate-field select {
    min-height: 36px;
    padding-top: 5px;
    padding-bottom: 5px;
    border-color: #cbd5e1;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.hs-yongdal-details-card .hs-estimate-field input:focus,
.hs-yongdal-details-card .hs-estimate-field select:focus {
    border-color: #0d9488;
    box-shadow: 0 0 0 3px rgba(13, 148, 136, .12);
    outline: none;
}
.hs-yongdal-details-card .hs-estimate-field-help {
    margin-top: 3px;
    font-size: 10px;
}
.hs-yongdal-primary-row {
    gap: 10px;
}
.hs-yongdal-move-type-field {
    position: relative;
}
.hs-yongdal-move-type-other-field {
    margin-top: 6px;
}
.hs-yongdal-move-type-other-field input,
.hs-yongdal-major-item-other-field input {
    border-style: dashed;
    background: #f8fafc;
}
/* CARGO 차량선택 "직접입력"도 같은 시각 규칙(점선 테두리로 "직접 입력값" 구분). */
#hsCargoVehicleOther {
    margin-top: 6px;
    border-style: dashed;
    background: #f8fafc;
}
.hs-yongdal-major-item-field {
    margin-top: 6px;
    padding-top: 8px;
    border-top: 1px solid #e6fffb;
}
.hs-yongdal-major-item-other-field {
    margin-top: 6px;
}
.hs-yongdal-choice-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 6px;
    margin-top: 6px;
}
.hs-yongdal-choice {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-height: 34px;
    padding: 6px 7px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #fff;
    cursor: pointer;
    color: #334155;
    font-size: 11px;
    line-height: 1.2;
    white-space: nowrap;
    transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease, transform .1s ease;
}
.hs-yongdal-choice:hover {
    border-color: #5eead4;
    box-shadow: 0 2px 6px rgba(13, 148, 136, .12);
}
.hs-yongdal-choice input[type="checkbox"] {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    margin: 0;
    accent-color: #0d9488;
}
.hs-yongdal-choice:has(input:checked) {
    border-color: #0d9488;
    background: #f0fdfa;
    color: #0f766e;
    font-weight: 700;
    box-shadow: 0 2px 8px -2px rgba(13, 148, 136, .4);
}
.hs-yongdal-major-item-quantities {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
    gap: 6px;
    margin-top: 8px;
    padding: 8px;
    border-radius: 10px;
    background: #f8fffe;
}
.hs-yongdal-major-item-quantities:empty {
    display: none;
    margin-top: 0;
    padding: 0;
}
.hs-yongdal-quantity-field {
    margin-bottom: 0;
}
.hs-yongdal-quantity-field label {
    font-size: 10px;
    font-weight: 600;
    color: #0f766e;
}
.hs-yongdal-quantity-field input {
    min-height: 32px;
    padding: 4px 6px;
}
.hs-yongdal-item-detail {
    margin-top: 8px;
    padding-top: 7px;
    border-top: 1px dashed #cbd5e1;
}
.hs-yongdal-item-detail summary {
    cursor: pointer;
    color: #0f766e;
    font-weight: 700;
    font-size: 12px;
}
.hs-estimate-footer {
    display: flex;
    justify-content: center;
    gap: 10px;
    padding: 18px 16px 90px;
    color: #64748b;
    font-size: 12px;
}
.hs-estimate-footer strong {
    color: #334155;
}
@media (max-width: 680px) {
    .hs-cargo-choice-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .hs-cargo-details-card {
        padding: 12px;
    }
    .hs-cargo-details-card .hs-estimate-field input,
    .hs-cargo-details-card .hs-estimate-field select {
        min-height: 40px;
    }
    .hs-yongdal-choice-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 6px;
    }
    .hs-yongdal-primary-row {
        grid-template-columns: 1fr;
    }
    .hs-yongdal-choice {
        min-height: 40px;
        font-size: 12px;
    }
    .hs-yongdal-details-card {
        padding: 10px;
    }
    .hs-yongdal-details-card .hs-estimate-field input,
    .hs-yongdal-details-card .hs-estimate-field select {
        min-height: 40px;
    }
    .hs-yongdal-major-item-quantities {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
