/* Layout: 재단실 작업대 — 왼쪽은 접수 카드(입력), 오른쪽은 줄자 위에 놓인 산출표(결과). 상단엔 줄자 띠. */
:root{
  --bg:#f4f6fb; --surface:#ffffff; --surface-2:#f3f5fa; --ink:#0f1830; --ink-2:#4b566e; --muted:#6b7690; --line:#dde2ee; --line-2:#e9edf5;
  --navy:#2748d8; --navy-ink:#ffffff; --pri-tint:#eaeffd; --tape:#f5c42c; --tape-ink:#2a2410; --focus:#2748d8;
  --ok:#17804f; --ok-bg:#e1f4ea; --warn:#946000; --warn-bg:#fdf0d4; --bad:#d6392b; --bad-bg:#fde7e4;
  --f-body:"IBM Plex Sans KR","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;
  --f-num:"IBM Plex Sans KR","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;
  --r:16px; --r-sm:12px;
  --shadow:0 1px 2px rgba(15,24,48,.05),0 10px 28px -14px rgba(15,24,48,.14);
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --bg:#0b1020; --surface:#141b30; --surface-2:#1a2238; --ink:#eaeefb; --ink-2:#b3bcd3; --muted:#8e99b5; --line:#2a3350; --line-2:#222a43;
  --navy:#8da2ff; --navy-ink:#0b1020; --pri-tint:#1a2447; --tape:#f5c42c; --tape-ink:#2a2410; --focus:#8da2ff;
  --ok:#49c28b; --ok-bg:#15302a; --warn:#e7ad52; --warn-bg:#352a17; --bad:#ff8f80; --bad-bg:#3a1f1e;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 10px 28px -14px rgba(0,0,0,.5); color-scheme:dark } }
:root[data-theme="dark"]{
  --bg:#0b1020; --surface:#141b30; --surface-2:#1a2238; --ink:#eaeefb; --ink-2:#b3bcd3; --muted:#8e99b5; --line:#2a3350; --line-2:#222a43;
  --navy:#8da2ff; --navy-ink:#0b1020; --pri-tint:#1a2447; --tape:#f5c42c; --tape-ink:#2a2410; --focus:#8da2ff;
  --ok:#49c28b; --ok-bg:#15302a; --warn:#e7ad52; --warn-bg:#352a17; --bad:#ff8f80; --bad-bg:#3a1f1e;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 10px 28px -14px rgba(0,0,0,.5); color-scheme:dark }

*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.55;margin:0;-webkit-font-smoothing:antialiased}
.wrap{max-width:1240px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
h1,h2,h3{text-wrap:balance;margin:0;line-height:1.25}
.num,input[type=number]{font-family:var(--f-num);font-variant-numeric:tabular-nums}
button{font:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
[hidden]{display:none!important}
/* 화면 종류별로 보이는 것: 한 파일판(PC .local · claude.ai .artifact) · 웹 직원용(.web) · 웹 고객용(.mode-public) */
body:not(.local) [data-mode="local"],body:not(.artifact) [data-mode="artifact"],body:not(.web) [data-mode="web"]{display:none!important}
body:not(.mode-public) [data-public]{display:none!important}
body.mode-public [data-staff]{display:none!important}
body:not(.web) [data-web]{display:none!important}
body.artifact [data-print]{display:none!important}
.actions .sp{flex:1}
.hint{font-size:12px;color:var(--muted);line-height:1.4}
.editbar{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;justify-content:space-between;background:color-mix(in srgb,var(--navy) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--navy) 30%,var(--line));border-radius:var(--r-sm);padding:9px 12px;margin:14px 18px 0;font-size:13.5px;font-weight:600}
.chip em{font-style:normal;font-size:11px;font-weight:700;border-radius:8px;padding:0 6px;background:var(--ok-bg);color:var(--ok)}
.chip em.chk{background:var(--warn-bg);color:var(--warn)}
.seg.tri span{padding:6px 2px}
.delta{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 10px}
.delta span{font-size:12.5px;border:1px solid var(--line);background:var(--surface-2);border-radius:12px;padding:1px 9px}
.delta b{font-family:var(--f-num);font-weight:600}
/* 사진 측정 */
.photo-ov{position:fixed;inset:0;z-index:50;background:var(--bg);display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.ph-top{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding-block:12px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));background:var(--surface);border-bottom:1px solid var(--line)}
.ph-top h2{font-size:18px}
.ph-views{display:flex;gap:6px;flex-wrap:wrap}
.ph-views button{border:1px solid var(--line);background:var(--surface-2);border-radius:var(--r-sm);padding:6px 12px;font-weight:600;color:var(--ink-2);display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}
.ph-views button i{font-style:normal;font-size:11px;font-weight:500;color:var(--muted)}
.ph-views button[aria-selected=true]{background:var(--navy);color:var(--navy-ink);border-color:var(--navy)}
.ph-views button[aria-selected=true] i{color:var(--navy-ink);opacity:.8}
.ph-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr);gap:14px;padding-block:14px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));overflow:auto}
@media (min-width:1000px){ .ph-body{grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr);overflow:hidden} .ph-side{overflow:auto} }
.ph-stage{position:relative;background:#1b1f27;border-radius:var(--r);height:72vh;min-height:320px;overflow:hidden}
@media (min-width:1000px){ .ph-stage{height:100%} }
.ph-stage svg{position:absolute;inset:0;width:100%;height:100%;touch-action:none;user-select:none;-webkit-user-select:none}
.ph-empty{position:absolute;inset:0;margin:auto;height:fit-content;color:#c9cfdb;text-align:center;padding:30px 20px;max-width:46ch}
.ph-empty b{display:block;color:#fff;font-size:16px;margin-bottom:6px}
#phLoupe{position:absolute;top:8px;width:150px;height:150px;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 10px rgba(0,0,0,.4);pointer-events:none}
.ph-side{display:flex;flex-direction:column;gap:12px;min-width:0}
.ph-side .card{padding:14px 16px}
.ph-side h3{font-size:15px;margin-bottom:6px}
.ph-step{font-weight:600;font-size:14px}
.ph-note{font-size:12.5px;color:var(--ink-2);margin:8px 0 0}
.ph-note.warn,#phResult tr.warn td{color:var(--warn)}
#phResult table{font-size:13.5px}
.ph-guide{font-size:12.5px;color:var(--ink-2);padding-left:18px;margin:4px 0 0}
.ph-guide li{margin:2px 0}
.ph-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.ph-row select,.ph-row input{width:auto}
.ph-row .seg span{white-space:nowrap;padding:6px 10px}
.ph-sub{border-top:1px solid var(--line-2);margin-top:12px;padding-top:10px}
.ph-sub>.lab,.ph-sub summary{font-size:13px;font-weight:700;color:var(--ink-2)}
.ph-sub summary{cursor:pointer;list-style-position:inside}
.ph-slide{display:grid;grid-template-columns:7.2em minmax(0,1fr) 4.2em;gap:8px;align-items:center;margin-top:8px;font-size:13px;color:var(--ink-2)}
.ph-slide input[type=range]{width:100%;accent-color:var(--navy);margin:0}
.ph-slide output{font-family:var(--f-num);font-size:12.5px;text-align:right;color:var(--ink)}
.ph-chk{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--ink-2);cursor:pointer}
.ph-chk input{accent-color:var(--navy)}
.ph-cond{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:8px 10px;margin-top:8px}
.ph-cond .f label{font-size:12px}
.ph-cond input[type=number]{padding-right:10px}
#phResult tr.hrow td{border-bottom:2px solid var(--line)}
#phResult .src{font-size:11px;color:var(--muted);font-weight:500}
.pose{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:8px;margin-top:10px}
.pose figure{margin:0;background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:6px 4px 2px;min-width:0}
.pose figure.wide{grid-column:1/-1}
.pose figure.wide svg{max-width:400px;margin:0 auto}
.pose figcaption{font-size:12.5px;font-weight:700;color:var(--ink);text-align:center}
.pose svg{display:block;width:100%;height:auto}
.pose .fig{fill:color-mix(in srgb,var(--navy) 13%,var(--surface));stroke:color-mix(in srgb,var(--navy) 48%,var(--surface));stroke-width:1}
.pose .limb-o{stroke:color-mix(in srgb,var(--navy) 48%,var(--surface));fill:none;stroke-linecap:round;stroke-linejoin:round}
.pose .limb{stroke:color-mix(in srgb,var(--navy) 13%,var(--surface));fill:none;stroke-linecap:round;stroke-linejoin:round}
.pose .hair{fill:color-mix(in srgb,var(--navy) 48%,var(--surface));opacity:.6}
.pose .eye{fill:var(--ink-2)}
.pose .gl{stroke:#1f9d5c;stroke-width:1.3;stroke-dasharray:3 2.2;fill:none}
.pose .pt{fill:#2f7fd8;stroke:var(--surface);stroke-width:1.2}
.pose .pt.k{fill:#e0a915}
.pose .lb{font-size:10.5px;fill:var(--ink-2);font-family:var(--f-body)}
.pose .lb.g{fill:#1b8a51}
.pose .lb.b{font-weight:700;fill:var(--ink)}
.pose .ld,.pose .flr{stroke:var(--muted);stroke-width:.8}
.pose .flr{stroke-width:1.2}
.pose .wall{fill:var(--line)}
.pose .phone{fill:var(--navy)}
.pose .lens{fill:var(--surface)}
.pose .leg{stroke:var(--muted);stroke-width:1.4}
.pose .sight{stroke:#2f7fd8;stroke-width:1.2;stroke-dasharray:4 3}
.pose .dim{stroke:var(--ink-2);stroke-width:1}
.pose .dimh{fill:var(--ink-2)}
.pose .paper{fill:#fff;stroke:var(--ink-2);stroke-width:.8}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .pose .lb.g{fill:#5fd39a} :root:not([data-theme="light"]) .pose .gl{stroke:#4cc489} }
:root[data-theme="dark"] .pose .lb.g{fill:#5fd39a} :root[data-theme="dark"] .pose .gl{stroke:#4cc489}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---- 헤더와 줄자 ---- */
header.top{background:var(--surface);border-bottom:1px solid var(--line-2)}
.brand{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;padding-block:22px 16px}
.brand .eyebrow{display:inline-block;font-size:13px;font-weight:700;color:var(--navy);background:var(--pri-tint);border-radius:999px;padding:3px 12px;margin-bottom:8px}
.brand h1{font-size:28px;font-weight:700;letter-spacing:-.035em}
.brand h1 .ver{font-family:var(--f-num);font-size:12.5px;font-weight:600;letter-spacing:0;color:var(--ink-2);background:var(--surface-2);border:0;border-radius:999px;padding:2px 10px;margin-left:10px;vertical-align:5px}
.dbstate{font-size:13px;color:var(--ink-2);display:flex;align-items:center;gap:7px}
.dbstate i{width:8px;height:8px;border-radius:50%;background:var(--muted);display:inline-block}
.dbstate.on i{background:var(--ok)} .dbstate.off i{background:var(--warn)}
/* 예전 줄자 띠는 얇은 노란 선으로 (눈금·숫자는 숨김) */
.tape{height:4px;background:var(--tape);position:relative;overflow:hidden}
.tape span{display:none}
nav.tabs{display:flex;gap:6px;overflow-x:auto;padding-block:12px 12px;scrollbar-width:none}
nav.tabs::-webkit-scrollbar{display:none}
nav.tabs button{background:none;border:0;border-radius:999px;color:var(--ink-2);padding:9px 16px;font-weight:600;font-size:15px;white-space:nowrap;transition:background .15s,color .15s}
nav.tabs button:hover{background:var(--surface-2);color:var(--ink)}
nav.tabs button[aria-selected=true]{color:var(--navy);background:var(--pri-tint)}
nav.tabs .count{font-family:var(--f-num);font-size:12px;font-weight:700;background:var(--navy);color:var(--navy-ink);border:0;border-radius:999px;padding:1px 8px;margin-left:7px}

main{padding-block:24px 64px}
.panel[hidden]{display:none}

/* ---- 공통 컨트롤 ---- */
.card{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r);box-shadow:var(--shadow)}
fieldset{border:0;margin:0;padding:20px 20px 22px;border-top:1px solid var(--line-2)}
fieldset:first-of-type{border-top:0}
legend{font-weight:700;font-size:17px;letter-spacing:-.02em;padding:0;float:left;width:100%;display:flex;align-items:baseline;gap:8px;margin-bottom:12px}
legend small{font-weight:500;font-size:13px;color:var(--muted)}
legend + *{clear:both}
.grid{display:grid;gap:12px 14px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.grid.wide{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.f{display:flex;flex-direction:column;gap:5px;min-width:0}
.f label,.f .lab{font-size:13.5px;font-weight:600;color:var(--ink)}
.f .req{color:var(--bad);margin-left:2px}
.inp{position:relative;display:flex;align-items:center}
input[type=text],input[type=tel],input[type=email],input[type=number],input[type=search],select,textarea{
  width:100%;min-width:0;font:inherit;font-size:15px;color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;min-height:44px;transition:border-color .15s,box-shadow .15s}
input[type=number]{padding-right:42px}
textarea{resize:vertical;min-height:70px}
.inp .u{position:absolute;right:10px;font-size:12px;color:var(--muted);pointer-events:none;font-family:var(--f-num)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 4px color-mix(in srgb,var(--focus) 18%,transparent);background:var(--surface)}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:.75}
.help{font-size:12.5px;color:var(--muted);line-height:1.5}
.seg{display:flex;background:var(--surface-2);border:0;border-radius:999px;padding:4px;gap:3px}
.seg label{flex:1;position:relative}
.seg input{position:absolute;opacity:0;inset:0}
.seg span{display:block;text-align:center;padding:7px 4px;border-radius:999px;font-weight:600;color:var(--ink-2);font-size:14px}
.seg input:checked + span{background:var(--navy);color:var(--navy-ink);box-shadow:0 2px 8px -2px color-mix(in srgb,var(--navy) 55%,transparent)}
.seg input:focus-visible + span{outline:2px solid var(--focus)}
.checks{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 12px;font-size:13.5px;cursor:pointer}
.chip input{accent-color:var(--navy)}
.btn{border-radius:var(--r-sm);padding:10px 18px;font-weight:700;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);transition:background .15s,border-color .15s}
.btn:hover:not(:disabled){background:var(--surface-2);border-color:color-mix(in srgb,var(--navy) 35%,var(--line))}
.btn.primary{background:var(--navy);color:var(--navy-ink);border-color:var(--navy)}
.btn.primary:hover:not(:disabled){background:color-mix(in srgb,var(--navy) 86%,#000);border-color:color-mix(in srgb,var(--navy) 86%,#000)}
.btn.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,var(--line))}
.btn.sm{padding:6px 13px;font-size:13.5px;border-radius:10px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:18px 20px;border-top:1px solid var(--line-2)}
.msg{font-size:13.5px} .msg.ok{color:var(--ok)} .msg.err{color:var(--bad)}
details.more{border-top:1px solid var(--line-2)}
details.more > summary{list-style:none;cursor:pointer;padding:16px 20px;font-weight:700;display:flex;justify-content:space-between;align-items:center;gap:10px}
details.more > summary::-webkit-details-marker{display:none}
details.more > summary::after{content:"＋";display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--pri-tint);color:var(--navy);font-weight:600;flex:none}
details.more[open] > summary::after{content:"－"}
details.more > summary small{font-weight:500;color:var(--muted);font-size:13px;margin-left:6px}
details.more fieldset{border-top:0;padding-top:4px}
.example{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;justify-content:space-between;background:var(--warn-bg);color:var(--warn);border-radius:var(--r-sm);padding:9px 12px;margin:14px 18px 0;font-size:13.5px;font-weight:500}

/* ---- 접수 화면 레이아웃 ---- */
.intake{display:grid;gap:20px;grid-template-columns:minmax(0,1fr)}
@media (min-width:1020px){ .intake{grid-template-columns:minmax(0,0.92fr) minmax(0,1.08fr)} .results{position:sticky;top:12px;align-self:start;max-height:calc(100vh - 24px);overflow:auto} }
.results{display:flex;flex-direction:column;gap:14px;min-width:0}
.results > *{flex-shrink:0}
.verdict{display:grid;grid-template-columns:6px 1fr;border-radius:var(--r);overflow:hidden;background:var(--surface);border:1px solid var(--line-2);box-shadow:var(--shadow)}
.verdict .bar{background:var(--muted)}
.verdict.green .bar{background:var(--ok)} .verdict.amber .bar{background:var(--warn)} .verdict.red .bar{background:var(--bad)}
.verdict .body{padding:14px 16px}
.pill{display:inline-block;font-size:12.5px;font-weight:700;border-radius:20px;padding:2px 10px}
.pill.green{background:var(--ok-bg);color:var(--ok)} .pill.amber{background:var(--warn-bg);color:var(--warn)} .pill.red{background:var(--bad-bg);color:var(--bad)} .pill.grey{background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line)}
.verdict h3{font-size:17px;margin:6px 0 4px}
.verdict ul{margin:6px 0 0;padding-left:18px;font-size:13.5px;color:var(--ink-2)}
.verdict li{margin:2px 0}
.verdict .notes{margin-top:8px;font-size:12.5px;color:var(--muted)}
.sizes{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px}
.size{padding:14px 16px}
.size .k{font-size:13px;font-weight:700;color:var(--muted)}
.size .big{font-family:var(--f-num);font-size:36px;font-weight:700;letter-spacing:-.03em;line-height:1.1;margin-top:4px;color:var(--navy)}
.size .big small{font-size:15px;font-weight:500;color:var(--ink-2);margin-left:4px}
.size .sub{font-size:13px;color:var(--ink-2);margin-top:2px}
.cands{display:flex;flex-direction:column;gap:5px;margin-top:10px}
.cand{display:grid;grid-template-columns:44px 1fr 38px;gap:8px;align-items:center;font-size:12.5px}
.cand b{font-family:var(--f-num);font-weight:600}
.cand .track{height:8px;background:var(--surface-2);border-radius:4px;overflow:hidden;border:1px solid var(--line-2)}
.cand .fill{height:100%;background:var(--navy);opacity:.75}
.cand .p{font-family:var(--f-num);text-align:right;color:var(--ink-2)}
.tol{margin-top:8px;font-size:12.5px;color:var(--ink-2)}
.tbl-wrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line-2);vertical-align:top}
th{font-size:12.5px;font-weight:700;color:var(--muted);white-space:nowrap;background:var(--surface-2)}
td.n,th.n{text-align:right;font-family:var(--f-num);font-variant-numeric:tabular-nums;white-space:nowrap}
.sec-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:14px 16px 6px}
.sec-h h3{font-size:16px}
.sec-h small{font-size:12px;color:var(--muted)}
.dims{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.dims > div{min-width:0}
.dims h4{margin:0;padding:8px 16px 2px;font-size:13px;color:var(--ink-2)}
.pm{color:var(--muted);font-size:12px;margin-left:3px}
.src{font-size:11px;color:var(--ok);margin-left:4px;white-space:nowrap}
.pct{display:inline-grid;grid-template-columns:60px auto;gap:6px;align-items:center}
.pct .t{height:6px;background:var(--surface-2);border:1px solid var(--line-2);border-radius:3px;position:relative}
.pct .t i{position:absolute;top:-3px;width:3px;height:10px;background:var(--navy);border-radius:2px;transform:translateX(-1px)}
.pct .t::after{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--muted);opacity:.5}
.diff-pos{color:var(--warn)} .diff-neg{color:var(--ok)}
.foot{font-size:12px;color:var(--muted);padding:8px 16px 14px}

/* ---- 목록 ---- */
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}
.toolbar input[type=text]{max-width:280px}
.toolbar select{width:auto}
.toolbar .btn,.toolbar select{min-height:44px}
.toolbar .sp{flex:1}
.selbar{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;background:var(--surface);border:1px solid var(--line-2);box-shadow:var(--shadow);border-radius:var(--r);padding:10px 12px;margin-bottom:12px}
.selbar .sp{flex:1}
.selbar .cnt{font-weight:700;font-size:14px}
.selbar .cnt small{font-weight:500;color:var(--muted);margin-left:4px}
.selbar select{width:auto}
.list td.ck,.list th.ck{width:44px;text-align:center;cursor:default}
.list input[type=checkbox]{width:18px;height:18px;accent-color:var(--navy);cursor:pointer}
.list tr.picked td{background:color-mix(in srgb,var(--navy) 7%,var(--surface))}
#printArea{display:none}
@media print{
  body > *:not(#printArea){display:none !important}
  #printArea{display:block}
  #printArea img{display:block;width:210mm;height:297mm;break-after:page;page-break-after:always}
  #printArea img.pl{width:297mm;height:210mm}
}
.list td{cursor:pointer}
.list tr:hover td{background:var(--surface-2)}
.list tr.sel td{background:color-mix(in srgb,var(--tape) 14%,var(--surface))}
.empty{padding:36px 20px;text-align:center;color:var(--ink-2)}
.empty b{display:block;font-size:17px;color:var(--ink);margin-bottom:6px}
.detail{margin-top:18px}
.detail .hd{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line-2)}
.detail .hd h3{font-size:19px}
.kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px 16px;padding:14px 18px;font-size:14px}
.kv div{min-width:0} .kv span{display:block;font-size:12px;color:var(--muted);font-weight:600}
.status{font-size:12.5px;font-weight:600;padding:2px 9px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line);white-space:nowrap}

/* ---- 설정/안내 ---- */
.two{display:grid;gap:20px;grid-template-columns:minmax(0,1fr)}
@media (min-width:1020px){ .two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)} }
.prose{padding:18px 20px;max-width:75ch}
.prose h3{font-size:17px;margin:18px 0 8px} .prose h3:first-child{margin-top:0}
.prose p,.prose li{color:var(--ink-2)} .prose p{margin:0 0 10px}
.prose ul,.prose ol{padding-left:20px;margin:0 0 10px}
.guide{white-space:pre-wrap;font-family:var(--f-body);font-size:14px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:14px;margin:0;color:var(--ink)}
.set-grid{display:grid;gap:10px 14px;grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.note-box{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;font-size:13px;color:var(--ink-2)}
@media (prefers-reduced-motion:no-preference){ .verdict,.size{transition:background-color .2s} }
@media (max-width:520px){ .pct .t{display:none} .pct{grid-template-columns:auto} th,td{padding:7px 6px} .brand h1{font-size:22px} .size .big{font-size:30px} fieldset{padding:16px 14px 18px} details.more > summary{padding:14px} .actions{padding:14px} }

/* ---- 접수 목록: 검색·쪽 나누기·접수 번호 ---- */
.toolbar .search{display:flex;gap:6px;align-items:center;flex:1 1 360px;max-width:560px}
.toolbar .search input{flex:1;min-width:0}
.listinfo{margin:-4px 0 10px;font-size:13.5px;color:var(--ink-2);min-height:1.2em}
.listinfo b{color:var(--ink)}
.list td.no,.list th.n:nth-child(2){color:var(--ink-2);white-space:nowrap}
.pager{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:center;margin:14px 0 4px}
.pager .btn.on{background:var(--navy);color:var(--navy-ink);border-color:var(--navy)}
.pager .gap{color:var(--muted);padding:0 2px}
.no-badge{display:inline-block;font-family:var(--f-num);font-size:.8em;font-weight:600;background:var(--tape);color:var(--tape-ink);border-radius:6px;padding:1px 7px;vertical-align:2px}
.detail tr.prod td{background:color-mix(in srgb,var(--tape) 10%,var(--surface))}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.list th,.list td{white-space:nowrap}
/* 접수 기록 상세: 목록 위에 뜨는 창 */
.detail-dlg{border:1px solid var(--line-2);padding:0;margin:auto;width:min(1120px,calc(100vw - 32px));max-width:none;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);border-radius:var(--r);background:var(--surface);color:var(--ink);box-shadow:0 24px 64px rgba(10,16,30,.35);overflow:auto;overscroll-behavior:contain}
.detail-dlg::backdrop{background:rgba(12,18,30,.55)}
.detail-dlg .detail{margin:0}
.detail-dlg .hd{position:sticky;top:0;z-index:2;background:var(--surface)}
.detail-dlg .d-nav{display:inline-flex;gap:4px}
body:has(.detail-dlg[open]){overflow:hidden}
@media (max-width:640px){ .detail-dlg{width:100vw;max-height:100vh;max-height:100dvh;height:100dvh;border-radius:0;border:0} }
/* V30: 줄자 값 — 고객이 잰 값 / 직원이 잰 값 두 묶음, '고객 값 그대로 가져오기' 스위치 */
.tape-grp + .tape-grp{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line)}
.tape-grp-h{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:0 0 10px}
.tape-grp-h h4{margin:0;font-size:14.5px}
.tape-grp-h small{color:var(--muted);font-size:12.5px}
.tape-grp-h .tg{margin-left:auto}
.tg{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink-2);border-radius:20px;padding:4px 12px 4px 6px;font-size:13px;font-weight:600}
.tg b{font-weight:700;color:var(--muted)}
.tg-sw{width:30px;height:18px;border-radius:9px;background:var(--line);position:relative;flex:none;transition:background .15s}
.tg-sw::after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .15s}
.tg[aria-pressed="true"]{border-color:color-mix(in srgb,var(--ok) 45%,var(--line));background:var(--ok-bg);color:var(--ink)}
.tg[aria-pressed="true"] b{color:var(--ok)}
.tg[aria-pressed="true"] .tg-sw{background:var(--ok)}
.tg[aria-pressed="true"] .tg-sw::after{transform:translateX(12px)}
@media (prefers-reduced-motion: reduce){ .tg-sw,.tg-sw::after{transition:none} }
input.imp{color:var(--ok);font-style:italic;background:var(--ok-bg)}
.f:has(input.imp) > label::after{content:" · 고객 값";color:var(--ok);font-weight:600;font-size:12px}
.imp-st{margin:0 0 10px;font-size:12.5px}
/* V30.2 종이 줄자 탭(안내 = PDF 1쪽과 같은 그림·글, tools/paper_tape.py가 parts/tape.html을 만듦) */
.pt-page{max-width:1080px;margin:0 auto}
.pt-head{display:grid;grid-template-columns:auto 1fr;gap:6px 28px;align-items:end;border-bottom:5px solid var(--tape);padding:4px 0 12px;margin:0 0 18px}
.pt-eyebrow{margin:0 0 2px;font-size:13px;font-weight:600;color:var(--ink-2)}
.pt-title{margin:0;font-size:34px;font-weight:800;color:var(--navy);line-height:1.1}
.pt-lede{margin:0;max-width:60ch;color:var(--ink-2);font-size:14.5px}
@media (max-width:720px){ .pt-head{grid-template-columns:1fr} .pt-title{font-size:28px} }
.pt-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:900px){ .pt-steps{grid-template-columns:repeat(2,1fr)} }
@media (max-width:560px){ .pt-steps{grid-template-columns:1fr} }
.pt-step{position:relative;background:var(--surface);border:1px solid var(--line-2);box-shadow:var(--shadow);border-radius:var(--r);padding:12px 14px 14px;display:flex;flex-direction:column}
.pt-num{position:absolute;left:12px;top:11px;width:28px;height:28px;border-radius:50%;background:var(--navy);color:var(--navy-ink);font-weight:800;font-size:16px;display:grid;place-items:center}
.pt-step h3{margin:2px 0 8px 38px;font-size:17px;line-height:26px}
.pt-pic{background:#fff;border-radius:var(--r-sm);padding:4px;display:grid;place-items:center}
.pt-pic svg{width:100%;height:auto;max-height:160px;display:block}
.pt-pic svg text{font-family:var(--f-body)}
.pt-step p{margin:10px 0 0;font-size:13.5px;line-height:1.55;color:var(--ink-2)}
.pt-step p b{color:var(--ink)}
.pt-warn{margin:16px 0 8px;background:var(--warn-bg);border-left:5px solid var(--bad);border-radius:var(--r-sm);padding:10px 14px;font-size:14px;line-height:1.55}
.pt-fine{margin:0 0 18px;font-size:12.5px;color:var(--muted);line-height:1.55}
.pt-dl-box{background:var(--surface);border:1px solid var(--line-2);box-shadow:var(--shadow);border-radius:var(--r);padding:18px 18px 14px}
.pt-dl-box h3{margin:0 0 12px;font-size:18px}
.pt-dl-row{display:flex;flex-wrap:wrap;gap:12px}
.pt-dl{display:inline-flex;align-items:center;gap:12px;min-width:260px;flex:1 1 260px;padding:16px 20px;border-radius:12px;text-decoration:none;border:2px solid transparent;box-shadow:0 2px 0 rgba(0,0,0,.12);transition:transform .08s ease, box-shadow .08s ease}
.pt-dl:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(0,0,0,.14)}
.pt-dl:active{transform:translateY(1px);box-shadow:none}
.pt-dl:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.pt-dl-ic{width:30px;height:30px;flex:none}
.pt-dl-txt{display:flex;flex-direction:column;gap:2px}
.pt-dl-txt b{font-size:18px;line-height:1.2}
.pt-dl-txt small{font-size:13px;opacity:.85}
.pt-a4{background:var(--navy);color:var(--navy-ink);border-color:var(--navy)}
.pt-a3{background:var(--tape);color:var(--tape-ink);border-color:#d9a91a}
.pt-note{margin:12px 0 0;font-size:13px;color:var(--ink-2)}
@media (prefers-reduced-motion: reduce){ .pt-dl{transition:none} .pt-dl:hover,.pt-dl:active{transform:none} }
body.mode-public .pt-doc{padding-top:22px;padding-bottom:20px;max-width:1080px}
.pt-back{margin:18px 0 0}
/* 평소 입는 옷으로 재기 (V30.3, parts/garment.html) — 종이 줄자 안내 아래. 그림은 흰 판 위(어두운 화면에서도 같은 색) */
.pg{max-width:1080px;margin:34px auto 0;scroll-margin-top:16px}
.pg-head{border-top:5px solid var(--tape);padding:16px 0 4px}
.pg-title{margin:0 0 6px;font-size:30px;font-weight:800;color:var(--navy);line-height:1.15}
.pg-lede{margin:0;max-width:64ch;color:var(--ink-2);font-size:14.5px;line-height:1.6}
.pg-sub{margin:26px 0 12px;font-size:19px;line-height:1.3}
.pg-intro{margin:-4px 0 12px;max-width:72ch;font-size:14px;line-height:1.6;color:var(--ink-2)}
.pg-intro b,.pg-lede b,.pg-card p b,.pg-ul b,.pg-where b{color:var(--ink)}
.pg-grid{display:grid;gap:14px;margin:0;padding:0;list-style:none}
.pg-two{grid-template-columns:repeat(2,1fr)}
.pg-three{grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){ .pg-three{grid-template-columns:repeat(2,1fr)} }
@media (max-width:640px){ .pg-two,.pg-three{grid-template-columns:1fr} .pg-title{font-size:25px} }
.pg-card{background:var(--surface);border:1px solid var(--line-2);box-shadow:var(--shadow);border-radius:var(--r);padding:12px 14px 14px;display:flex;flex-direction:column;min-width:0}
.pg-card-h{display:flex;align-items:center;gap:8px;margin:0 0 8px}
.pg-card-h h4{margin:0;font-size:17px;line-height:1.3}
.pg-chip{flex:none;font-size:12.5px;font-weight:700;padding:2px 9px;border-radius:999px;background:var(--navy);color:var(--navy-ink)}
.pg-chip-p{background:var(--tape);color:var(--tape-ink)}
.pg-pic{background:#fff;border-radius:var(--r-sm);padding:6px;display:grid;place-items:center;border:1px solid var(--line-2)}
.pg-pic svg{width:100%;height:auto;max-height:230px;display:block}
.pg-pic svg text{font-family:var(--f-body)}
.pg-card p{margin:10px 0 0;font-size:14px;line-height:1.6;color:var(--ink-2)}
.pg-card p.pg-small,.pg-small{font-size:12.5px;color:var(--muted);margin-top:6px}
.pg-card p.pg-ex{margin-top:auto;padding-top:10px;font-size:13px;font-weight:600;color:var(--ink)}
.pg-best{background:var(--warn-bg);border-color:transparent;justify-content:center}
.pg-best h4{margin:0;font-size:19px;line-height:1.35}
.pg-best em{font-style:normal;color:var(--bad)}
.pg-conv{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:4px;margin:10px 0 0}
.pg-conv div{display:flex;flex-direction:column;align-items:center;border:1px solid var(--line);border-radius:6px;padding:4px 2px;background:var(--surface-2);font-variant-numeric:tabular-nums}
.pg-conv b{font-size:15px;line-height:1.2;color:var(--ink)}
.pg-conv span{font-size:12px;color:var(--muted)}
.pg-conv span::after{content:"cm"}
.pg-tips{margin-top:14px}
.pg-box{background:var(--surface);border:1px solid var(--line-2);box-shadow:var(--shadow);border-radius:var(--r);padding:14px 16px}
.pg-box h3{margin:0 0 10px;font-size:17px}
.pg-ul{margin:0;padding-left:18px;display:grid;gap:6px;font-size:14px;line-height:1.55;color:var(--ink-2)}
.pg-ox{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.pg-ox li{display:grid;grid-template-columns:20px 1fr;gap:3px 6px;align-items:baseline;font-size:14px;line-height:1.5;color:var(--ink-2);padding-bottom:8px;border-bottom:1px dashed var(--line)}
.pg-ox li:last-child{border-bottom:0;padding-bottom:0}
.pg-ox b{color:var(--ink)}
.pg-x,.pg-o{font-weight:800;text-align:center}
.pg-x{color:var(--bad)} .pg-o{color:var(--ok)}
.pg-ok{color:var(--ink)}
.pg-body{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;align-items:center}
.pg-body .pg-pic svg{max-height:340px}
.pg-body-txt p{margin:0 0 8px}
.pg-red{color:var(--bad)}
@media (max-width:720px){ .pg-body{grid-template-columns:1fr} }
.pg-where{margin:14px 0 0;background:var(--surface-2);border:1px solid var(--line);border-left:5px solid var(--navy);border-radius:var(--r-sm);padding:12px 16px}
.pg-where h3{margin:0 0 4px;font-size:16px}
.pg-where p{margin:0;font-size:14px;line-height:1.6;color:var(--ink-2)}
.gain{padding:4px 16px 14px;margin:0;list-style:none;display:grid;gap:8px}
.gain li{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;align-items:baseline}
.gain li b{font-size:14px}
.gain li span{font-size:12.5px;color:var(--ink-2)}
.fitcell{font-size:12.5px;font-weight:700;white-space:nowrap}
.fitcell.ok{color:var(--ok)} .fitcell.alt{color:var(--warn)} .fitcell.ex{color:var(--bad)} .fitcell.none{color:var(--muted);font-weight:500}
.fit-adj{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin-top:10px}
.org-card{margin-bottom:16px}
.org-card > summary{list-style:none;cursor:pointer;padding:12px 16px;font-weight:700;display:flex;gap:10px;align-items:baseline;justify-content:space-between}
.org-card > summary::-webkit-details-marker{display:none}
.org-card > summary small{font-weight:500;color:var(--muted);font-size:12.5px}
.org-card > summary span small{margin-left:8px}
.org-card table td.org button{all:unset;cursor:pointer;color:var(--ink);font-weight:600;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.org-card table td.org button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.org-link{display:grid;grid-template-columns:1fr auto;gap:12px 16px;padding:12px 16px 14px;border-top:1px solid var(--line-2);align-items:start}
.org-link .url{font-family:var(--f-num);font-size:12.5px;word-break:break-all;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px}
.org-link .qr{width:132px;height:132px;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:6px}
.org-link .qr svg{width:100%;height:100%;display:block}
@media (max-width:620px){ .org-link{grid-template-columns:1fr} }
.anal td.n b{font-weight:700}
.bk-list{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 10px}
