/* 견적·주문 화면 보강 (오류 표시·이어하기·요약표·고지 상자·시안 승인) */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
input[aria-invalid="true"],select[aria-invalid="true"],textarea[aria-invalid="true"]{border-color:#c0392b!important;box-shadow:0 0 0 2px rgba(192,57,43,.18)}
.field-err{margin:4px 0 8px}
.err-msg:focus{outline:2px solid #c0392b;outline-offset:2px}
.resume-box{margin-bottom:18px}
.resume-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.notice-box{border:1.5px solid var(--gold);background:#fbf6e9;border-radius:12px;padding:12px 16px;margin:14px 0;font-size:.93rem}
.notice-box ul{margin:6px 0 0;padding-left:1.1em}
.notice-box li{margin:4px 0}
.consent-box{border:1.5px solid var(--line);border-radius:12px;padding:12px 16px;margin:12px 0 8px;font-size:.92rem;background:#fff}
.consent-box ul{margin:6px 0 0;padding-left:1.1em}
.consent-box li{margin:4px 0}
.sum-table{width:100%;border-collapse:collapse;margin:14px 0;font-size:.92rem}
.sum-table th{width:6.5em;text-align:left;color:var(--mute);font-weight:600;vertical-align:top;padding:8px 8px 8px 0}
.sum-table td{padding:8px 4px;vertical-align:top;word-break:keep-all}
.sum-table td:last-child{width:3.2em;text-align:right;white-space:nowrap}
.sum-table tr{border-bottom:1px solid var(--line)}
.sum-table .link-btn{min-height:44px;min-width:44px}
/* 시안 승인 */
.prop{border:1.5px solid var(--line);border-radius:12px;padding:14px;margin:12px 0;background:#fff}
.prop img{max-width:100%;border-radius:8px;display:block;margin:8px 0}
.prop .st{font-size:.85rem;font-weight:700}
.prop .st.ok{color:#1c7a3d}.prop .st.rv{color:#a0600a}
.prop-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.prop textarea{width:100%;min-height:84px}

.step-now{margin:0 0 6px;font-weight:700;color:var(--navy);font-size:.95rem}
@media(min-width:700px){.step-now{display:none}}

/* A팀(견적) 보강 2026-10-25 */
/* 케이스 카드 아이콘: 같은 크기·같은 선 굵기 */
.case-opt svg{display:block;width:100%;height:64px;color:var(--navy)}
/* 예상 금액 패널 따라오기: 칸이 내용 높이로 줄어들면 sticky 가 움직일 자리가 없다 → 오른쪽 칸을 그리드 높이만큼 늘린다 */
.quote-shell>.sum-side{align-self:stretch}
@media(min-width:901px){
  .quote-shell{grid-template-columns:1fr 340px;align-items:start;padding-bottom:60px}
  .quote-shell>.sum-side{display:block}
  .sum-bar{display:none}
  .sum{position:sticky;top:84px}
}
@media(max-width:900px){
  .quote-shell>.sum-side{display:none}
  .sum-bar{display:flex}
}
/* 모바일 현재 단계 글자 표시 */
.step-now{display:inline-block;background:var(--ivory,#f4efe4);border-left:3px solid var(--gold);padding:6px 12px;border-radius:0 8px 8px 0}
@media(min-width:700px){.step-now{display:none}}

/* 단계 이동 때 스크린리더용으로 제목에 포커스를 주지만, 클릭 대상이 아니므로 테두리는 숨김 (2026-10-25) */
h2[tabindex="-1"]:focus{outline:none}

/* 물건 둘레 여유 선택 (2026-10-26): 3칸 한 줄, 모바일에서도 줄바꿈 없이 */
.mg-grid{grid-template-columns:repeat(3,1fr)}
.mg-grid .case-opt{padding:12px 8px;text-align:center;min-height:64px}
.mg-grid .case-opt b{font-size:.92rem;word-break:keep-all}
.mg-grid .case-opt span{display:block;margin-top:2px;font-size:.76rem}
.mg-grid .case-opt[aria-pressed=true] span{color:var(--gold-t)}
@media(max-width:380px){.mg-grid{gap:6px}.mg-grid .case-opt b{font-size:.84rem}}

/* 2026-10-26: 견적 8단계가 홈 주문 5단계 중 어디인지 한 줄 (과하지 않게) */
.flow-now{margin:0 0 8px;font-size:.84rem;color:#6b6656}
.kit-box b{display:inline-block;margin-bottom:2px}

/* TF-CASEPRESETS-20261027: 케이스 묶음 제목·추천 인서트 표시 */
.case-gt{margin:16px 0 8px;font-weight:700;color:var(--navy);font-size:.95rem}
.case-gt:first-of-type{margin-top:8px}
.case-opt span{display:block}
.case-opt .case-ins{display:block;margin-top:4px;font-style:normal;font-size:.76rem;color:var(--gold-t,#a07a2c);font-weight:600}
.case-rec{margin-top:12px}

/* TF-EDITSHEET-20261027(B): 물건 카드 수정 버튼 줄 · 1:1 인쇄 상자 · 새 창이 막힐 때 쓰는 인쇄 미리보기 */
.ip-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ip-actions .btn{min-height:44px}
.print-box{margin-top:16px}
.print-box .btn[disabled]{opacity:.5;cursor:not-allowed}
.sheet-link{margin:8px 0 0}
.print-modal{position:fixed;inset:0;z-index:1000;background:#fff;display:flex;flex-direction:column}
.print-modal .prt-bar{padding:10px 14px;background:#0F1A2B;color:#F4EFE4;font-size:.9rem;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.print-modal .prt-bar span{flex:1 1 220px}
.print-modal iframe{flex:1;width:100%;border:0;background:#eee}
.print-modal .prt-bar .btn{min-height:44px}
.print-modal .prt-bar .btn.ghost{color:#F4EFE4;border-color:#F4EFE4;background:transparent}

/* fix1027: 390px 에서 1단계의 행동 버튼(사진으로 물건 담기·치수만 입력)이 첫 화면(844px) 안에 보이게 —
   머리글 설명 문단은 아래 본문과 같은 말이라 줄이고, 1단계에서는 안내문보다 버튼을 제목 바로 아래로 올린다(화면 순서만 바꾸고 읽는 순서·문구는 그대로). */
@media(max-width:600px){
  body.q-page .page-head{padding-top:14px;padding-bottom:10px}
  body.q-page .page-head .lead{display:none}
  .flow-now{font-size:.8rem;margin-bottom:6px}
  #stage{display:flex;flex-direction:column}
  #stage>.resume-box,#stage>.kit-box{order:-4}
  #stage>h2{order:-3}
  #stage>.add-actions{order:-2}
  .add-actions{margin-top:4px}
}
/* 사진 추정 동의 상자·키트 「물건 없이」 체크 */
.est-consent{margin-top:12px}
.kit-box .chk{align-items:flex-start}

/* TF-CUSTFIX-20261027: 케이스 있어요/없어요 선택 · 가장 딱 맞는 추천 · 필수 표시 · 둘레 여유 접기 · 중복 오류 숨김 */
.case-mode{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 8px}
.case-mode .case-mode-btn{min-height:76px;text-align:left;padding:12px 14px}
.case-mode .case-mode-btn b{display:block;font-size:1.02rem}
.case-mode .case-mode-btn span{display:block;font-size:.85rem;color:var(--mute)}
.case-mode .case-mode-btn[aria-pressed="true"]{border-color:var(--gold);background:#f7efe0;box-shadow:0 0 0 2px var(--gold) inset}
@media(max-width:520px){.case-mode{grid-template-columns:1fr}}
.case-fit.best{background:#b8955a;color:#fff}
.case-more{margin:14px 0}
.case-more>summary{cursor:pointer;font-weight:600;padding:8px 0}
.case-dims-t{margin:22px 0 6px;font-size:1.05rem}
.mg-adv{margin-top:22px}
.mg-adv>summary{cursor:pointer;font-weight:700;padding:8px 0}
.mg-adv>summary small{font-weight:400;color:var(--mute)}
.req-tag{display:inline-block;margin-left:4px;padding:1px 7px;border-radius:999px;background:#fbeaea;color:#a32727;font-size:.72rem;font-weight:700;vertical-align:middle}
#err .alert.e[data-for]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;border:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* custfix1027 */
.apply-thick{margin-top:8px}
.thick-ack{margin-top:10px}
.adv-set .adv-t{margin:10px 0 6px;font-size:.95rem}
.quote-shell,#progress{scroll-margin-top:96px}

/* usertest1027: 이메일 = 아이디 @ 도메인 선택 (모바일에서도 한 줄 유지, 직접 입력 칸은 아래 줄) */
.email-split{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;align-items:center}
.email-split .at{font-weight:700;color:var(--ink,#0F1A2B)}
.email-split .email-custom{grid-column:1 / -1}
.email-split .email-custom[hidden]{display:none}
.email-split select{min-width:0;padding-right:6px}

/* TF-DIRECTEDIT-20261027: 1단계 「모양 그려서 담기」 아래 한 줄 안내 + 「숫자로만 적기」 작은 링크 */
.add-hint{margin:4px 0 8px}
.add-hint .link-btn.add-num{display:inline-block;color:var(--gold-d,#8a6a2e);text-decoration:underline;font-weight:700;padding:4px 6px;min-height:0}
@media(max-width:600px){ .q-page .add-hint .link-btn.add-num{min-height:44px;padding:10px 6px} #stage>.add-hint{order:-2} #stage>.draw-msg{order:-1;margin-top:8px} }

/* PAYGATE-SIMPLE: 1단계 기본 큰 버튼(치수만 입력) + 「직접 배치하기(고급)」 접이식. 골드·네이비 유지, 모바일 폭에서도 한 줄 한 버튼 */
.q-page .add-actions.add-simple{margin:14px 0 8px}
.q-page .add-actions .add-num-big{min-height:76px;flex-direction:column;gap:4px;line-height:1.3;background:var(--navy,#0F1A2B);border-color:var(--gold,#B8955A);color:var(--gold-l,#e5cf9d)}
.q-page .add-actions .add-num-big .big-t{font-size:1.15rem;font-weight:800}
.q-page .add-actions .add-num-big small{display:block;font-size:.84rem;font-weight:500;color:var(--gold-l,#e8d3a4);white-space:normal;text-align:center}
.adv-place{margin:10px 0 6px;border:1.5px dashed var(--gold,#b8955a);border-radius:12px;padding:2px 14px 10px;background:#fffdf7}
.adv-place>summary{cursor:pointer;font-weight:700;padding:12px 0;color:var(--navy)}
.adv-place>summary small{font-weight:400;color:var(--mute)}
.adv-place .adv-place-note{margin:0 0 6px}
@media(max-width:600px){ #stage>.add-simple,#stage>.adv-place{order:-2} }

/* ===== FIX1028-A (견적 화면 흐름 · 가상 손님 30명 테스트 수정) ===== */
/* FIX1028-A1: 이어하기 배너 강조(키트로 들어왔는데 배너 선택 전에 「다음」을 눌렀을 때) */
@keyframes tfFlash{0%,100%{box-shadow:0 0 0 0 rgba(184,149,90,0)}50%{box-shadow:0 0 0 6px rgba(184,149,90,.55)}}
.resume-box.flash{animation:tfFlash .9s ease 2;border-radius:10px}
.resume-btns .link-btn{min-height:44px;padding:0 8px}
/* FIX1028-A16: 「치수만 입력하기」와 「사진으로 담기」를 나란히(360px 에서는 위아래) */
.q-page .add-actions.add-simple{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.q-page .add-actions .add-photo-big{min-height:76px;flex-direction:column;gap:4px;line-height:1.3}
.q-page .add-actions .add-photo-big .big-t{font-size:1.15rem;font-weight:800}
.q-page .add-actions .add-photo-big small{display:block;font-size:.84rem;font-weight:500;white-space:normal;text-align:center}
@media(max-width:480px){.q-page .add-actions.add-simple{grid-template-columns:1fr}}
.intro-fold{margin:8px 0}
.intro-fold>summary{cursor:pointer;font-weight:700;padding:10px 0;min-height:44px;color:var(--navy)}
.intro-fold>summary small{font-weight:400;color:var(--mute)}
.brand-hint{margin-top:-4px}
/* 따라하기 안내 「건너뛰기」 글씨를 키운다 */
.q-page #coach.tfg .tfg-btns .link-btn{font-size:1rem;font-weight:700;min-width:64px}
/* FIX1028-A3: 해결 방법 한 상자 */
.solve-list{margin:8px 0 6px;padding-left:1.2em}
.solve-list li{margin:5px 0}
.thick-ok{color:var(--ink,#0F1A2B)}
/* FIX1028-A4 */
.depth-hint{margin-top:8px}
/* FIX1028-A5·A7 */
.fail-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.fail-btns .btn,.lay-btns .btn{min-height:44px}
/* FIX1028-A8: 이름 전체 목록 */
.pv-legend{list-style:none;margin:8px 0 0;padding:0;columns:2;column-gap:18px}
.pv-legend li{break-inside:avoid;word-break:keep-all;padding:2px 0}
@media(max-width:520px){.pv-legend{columns:1}}
/* FIX1028-A9: 계산 중에는 이전 금액을 흐리게 유지 */
.is-stale{opacity:.5;transition:opacity .15s}
.is-stale .calc-note{opacity:1}
.perset{color:var(--navy)}
/* FIX1028-A11: 사업자 구매 접이식 */
.biz-box{margin:14px 0;border:1.5px dashed var(--line,#d9d2c0);border-radius:12px;padding:2px 14px 12px;background:#fffdf7}
.biz-box>summary{cursor:pointer;font-weight:700;padding:12px 0;min-height:44px;color:var(--navy)}
.biz-box>summary small{font-weight:400;color:var(--mute)}
/* FIX1028-A13 */
.email-moved{color:#8a5a00}
.cm-warn b{color:#8a5a00}
/* FIX1028-A14: 접수 버튼 바로 위 오류 한 줄 */
.submit-top{font-weight:700}
/* FIX1028-A15 */
.done-copy{margin:8px 0}
.done-copy .btn{min-height:44px}
/* FIX1028-A12: 견적서 인쇄(PDF로 저장) — 화면에서는 숨기고, 인쇄할 때만 견적서 한 장을 보여 준다 */
.qp{display:none}
.no-print .btn{min-height:44px}
@media print{
  body.printing-quote>*:not(#quote-print){display:none!important}
  body.printing-quote #quote-print{display:block;color:#000;background:#fff;font:14px/1.55 "Pretendard","Malgun Gothic",sans-serif;position:relative}
  #quote-print h1{font-size:22px;margin:0 0 4px}
  #quote-print .qp-sub{margin:0 0 8px;color:#444}
  #quote-print .qp-mark{border:2px solid #c00;color:#c00;font-weight:700;padding:6px 10px;text-align:center;margin:8px 0}
  #quote-print .qp-t{width:100%;border-collapse:collapse;margin:12px 0;page-break-inside:avoid}
  #quote-print .qp-t caption{text-align:left;font-weight:800;padding:6px 0}
  #quote-print .qp-t th,#quote-print .qp-t td{border:1px solid #888;padding:6px 8px;text-align:left;vertical-align:top}
  #quote-print .qp-t th{width:9em;background:#f2f2f2}
  #quote-print .qp-note{font-size:12px;color:#444;margin-top:10px}
  #quote-print::before{content:"견적 참고";position:fixed;top:38%;left:0;right:0;text-align:center;font-size:90px;font-weight:800;color:rgba(204,0,0,.10);transform:rotate(-25deg);z-index:0;pointer-events:none}
  #quote-print .ph{border:1px dashed #888;padding:0 4px}
  @page{margin:14mm}
}

/* FIX1029-3D: 주문 조회 3D 돌려보기 */
.o3d{margin:12px 0;padding:12px;border:1.5px solid #B8955A;border-radius:12px;background:#F4EFE4;color:#0F1A2B}
.o3d h4{margin:0 0 6px;font-size:1rem}
.o3d .o3d-stage{position:relative;width:100%;aspect-ratio:3/2;border-radius:8px;background:#F4EFE4;overflow:hidden}
.o3d [hidden]{display:none!important}
.o3d .o3d-still,.o3d .o3d-view{position:absolute;inset:0;width:100%;height:100%;display:block;margin:0}
.o3d .o3d-still{object-fit:contain;border-radius:0}
.o3d .o3d-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.o3d .o3d-note{font-size:.82rem;color:#566174;margin:8px 0 0}
.o3d .o3d-hash{font-weight:700;letter-spacing:.04em;color:#0F1A2B}

/* UX-1031: 완성된 물건 카드는 한 줄 요약으로 접는다 */
.item-sum{display:flex;align-items:center;gap:8px;padding:8px 12px}
.item-sum .item-sum-btn{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;text-align:left;background:none;border:0;padding:6px 0;min-height:44px;color:inherit;font:inherit;cursor:pointer}
.item-sum .item-sum-btn b{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.item-sum .item-sum-btn span{font-size:.88em;opacity:.8}
.item-sum .item-sum-btn i{font-style:normal;font-size:.82em;color:var(--gold,#b8955a);margin-left:auto}
.item-head > span:last-child{display:inline-flex;gap:10px}
