/* 재물조사(비품 실사) 화면·인쇄(2026-11-12). 휴대폰(760px 이하)은 맨 아래 블록. 인쇄는 #printArea 만(app.js 가 채움) */
[hidden]{display:none !important}
*{box-sizing:border-box}
body{margin:0;background:#f5f5f7;color:#1d1d1f;font-family:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR",sans-serif;font-size:14px}
button,input,select,textarea{font:inherit;color:inherit}
.as-wrap{max-width:1600px;margin:0 auto;padding:18px 22px 40px}
.as-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.as-head h1{margin:0;font-size:24px;font-weight:700;letter-spacing:-.4px;white-space:nowrap}
.as-tabs{display:flex;gap:6px;flex-wrap:wrap}
.as-tab{height:40px;padding:0 16px;border:1px solid #d2d2d7;border-radius:999px;background:#fff;font-weight:600;cursor:pointer;word-break:keep-all;white-space:nowrap}
.as-tab:hover{border-color:#0071e3;color:#0071e3}
.as-tab.is-on{background:#0071e3;border-color:#0071e3;color:#fff}
.as-tab:focus-visible,.as-btn:focus-visible,.as-in:focus-visible,.sv-r:focus-visible,.sv-item:focus-visible{outline:2px solid #0071e3;outline-offset:2px}
.as-status{color:#6e6e73;font-size:13px}
.as-status.is-bad{color:#d93025;font-weight:600}

.as-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.as-grow{flex:1 1 0}
.as-in{height:38px;padding:0 10px;border:1px solid #d2d2d7;border-radius:8px;background:#fff;min-width:0}
textarea.as-in{height:auto;padding:8px 10px;resize:vertical}
.as-search{flex:1 1 260px;max-width:420px}
/* 분류·위치 고르기는 목록을 채우기 전·후 폭이 같게(2026-11-12 사용자 요청 '움직이지 않게' — 빈 칸 42px 이 채우면 103px 넘게 넓어지며
   단추 줄이 다시 배치되고 표가 71px 내려앉았음). 긴 이름은 닫힌 칸에서만 잘리고 펼치면 다 보임. 휴대폰은 아래 규칙(flex 40%)이 폭을 정함 */
#lgCat,#lgPlace{width:120px}
.as-num{width:64px}
.as-btn{height:38px;padding:0 14px;border:1px solid #d2d2d7;border-radius:8px;background:#fff;font-weight:600;cursor:pointer;white-space:nowrap;word-break:keep-all}
.as-btn:hover{border-color:#0071e3;color:#0071e3}
.as-btn:disabled{opacity:.5;cursor:default}
.as-primary{background:#0071e3;border-color:#0071e3;color:#fff}
.as-primary:hover{background:#0062c4;color:#fff}
.as-danger{color:#d93025;border-color:#f3c2bd}
.as-danger:hover{border-color:#d93025;color:#d93025;background:#fff5f4}
.as-check{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;cursor:pointer}
.as-note{color:#6e6e73;font-size:13px;margin:4px 0 10px;line-height:1.5}
.as-sum{color:#424245;font-size:13px;margin:0 0 8px;font-weight:600}
.as-empty{padding:28px;text-align:center;color:#6e6e73;background:#fff;border-radius:12px;margin:0}

/* 대장 표 */
.as-table-wrap{background:#fff;border-radius:12px;border:1px solid #e5e5ea;overflow:auto}
.as-table{width:100%;border-collapse:collapse;font-size:13.5px}
.as-table th{position:sticky;top:0;z-index:1;background:#fafafc;text-align:left;font-weight:600;color:#424245;padding:10px 8px;border-bottom:1px solid #e5e5ea;white-space:nowrap}
.as-table td{padding:8px;border-bottom:1px solid #f0f0f2;vertical-align:middle}
.as-table tbody tr{cursor:pointer}
.as-table tbody tr:hover{background:#f5f9ff}
.as-table tbody tr:focus-visible{outline:2px solid #0071e3;outline-offset:-2px}
.as-table .num{text-align:right;white-space:nowrap}
.c-ph{width:56px}
.c-no{font-family:ui-monospace,Consolas,monospace;white-space:nowrap}
.c-name{font-weight:600}
.c-last{color:#6e6e73;white-space:nowrap;font-size:12.5px}
.as-thumb{width:44px;height:44px;object-fit:cover;border-radius:6px;display:block;background:#f0f0f2}
.as-noph{display:inline-block;width:44px;text-align:center;color:#c7c7cc}
.as-state{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}
.st-use{background:#e6f4ea;color:#1e7e34}
.st-idle{background:#f1f3f4;color:#5f6368}
.st-lost{background:#fce8e6;color:#c5221f}
.st-disposed{background:#fff3e0;color:#b45309}

/* 창 */
.as-dlg{width:min(880px,calc(100vw - 24px));max-height:calc(100vh - 24px);border:0;border-radius:16px;padding:0;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.as-dlg-sm{width:min(520px,calc(100vw - 24px))}
.as-dlg::backdrop{background:rgba(0,0,0,.35)}
.as-dlg form{padding:20px 22px;display:flex;flex-direction:column;gap:10px}
.as-dlg h2{margin:0 0 4px;font-size:19px}
.as-dlg label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:#424245}
.as-dlg label em{color:#d93025;font-style:normal}
/* 창 칸 이름은 ad- 로 시작하지 않게(af-) — 광고 차단기가 .ad-grid 같은 이름을 숨겨 등록 창 입력 칸이 통째로 안 보였음(2026-11-12) */
.af-grid{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px}
.af-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}
.af-wide{grid-column:1 / -1}
.af-photo{display:flex;flex-direction:column;gap:8px}
.af-ph-box{width:220px;height:220px;border-radius:12px;background:#f0f0f2;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid #e5e5ea}
.af-ph-box img{width:100%;height:100%;object-fit:contain;background:#fff}
.af-ph-empty{color:#8e8e93}
.af-ph-btns{display:flex;gap:6px;flex-wrap:wrap}
.af-ph-info{font-size:12px;color:#6e6e73;line-height:1.45;word-break:keep-all}
.af-err{color:#d93025;font-weight:600;margin:0;min-height:1em;font-size:13px}
.af-foot{display:flex;gap:8px;align-items:center;margin-top:4px}
.im-sum{font-weight:700;font-size:15px;margin:6px 0}
.im-prev{max-height:280px}

/* 재물조사 */
.sv-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:16px;align-items:start}
.sv-list{position:sticky;top:12px;display:flex;flex-direction:column;gap:10px}
.sv-new{width:100%}
.sv-list ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:calc(100vh - 220px);overflow:auto}
.sv-item{width:100%;text-align:left;padding:10px 12px;border:1px solid #e5e5ea;border-radius:10px;background:#fff;cursor:pointer;display:flex;flex-direction:column;gap:3px}
.sv-item:hover{border-color:#0071e3}
.sv-item.is-on{border-color:#0071e3;box-shadow:inset 3px 0 0 #0071e3;background:#f5f9ff}
.sv-item-meta{font-size:12px;color:#6e6e73}
.sv-info{background:#fff;border:1px solid #e5e5ea;border-radius:12px;padding:14px 16px;margin-bottom:10px}
.sv-title{font-size:18px}
.sv-closed{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;background:#f1f3f4;font-size:12px;color:#5f6368;vertical-align:middle}
.sv-meta{color:#6e6e73;font-size:13px;margin:4px 0 10px}
.sv-prog{height:8px;border-radius:999px;background:#ececf0;overflow:hidden}
.sv-prog i{display:block;height:100%;width:0;background:#34a853;transition:width .3s}
.sv-counts{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.cnt{padding:3px 10px;border-radius:999px;font-size:12.5px;font-weight:600;background:#f1f3f4;color:#424245;white-space:nowrap}
.cnt-done{background:#1d1d1f;color:#fff}
.cnt.r-ok{background:#e6f4ea;color:#1e7e34}
.cnt.r-moved{background:#e8f0fe;color:#1967d2}
.cnt.r-repair{background:#fef3e0;color:#b45309}
.cnt.r-idle{background:#f1f3f4;color:#5f6368}
.cnt.r-lost{background:#fce8e6;color:#c5221f}
.cnt.r-none{background:#fff;border:1px dashed #c7c7cc;color:#6e6e73}
.sv-msg{min-height:1.2em;font-size:13.5px;font-weight:600;margin:0 0 8px}
.sv-msg.is-ok{color:#1e7e34}
.sv-msg.is-bad{color:#d93025}
.sv-group{display:flex;justify-content:space-between;align-items:center;padding:10px 4px 6px;font-size:14px;color:#424245}
.sv-group span{font-size:12.5px;color:#6e6e73}
.sv-row{display:grid;grid-template-columns:52px minmax(0,1fr) auto;grid-template-areas:"ph info btns" "ph ex ex";gap:6px 12px;align-items:center;background:#fff;border:1px solid #e5e5ea;border-left:4px solid #d2d2d7;border-radius:10px;padding:10px 12px;margin-bottom:6px}
.sv-row.r-ok{border-left-color:#34a853}
.sv-row.r-moved{border-left-color:#1a73e8}
.sv-row.r-repair{border-left-color:#f29900}
.sv-row.r-idle{border-left-color:#80868b}
.sv-row.r-lost{border-left-color:#d93025}
.sv-row.is-flash{animation:sv-flash 1.4s ease}
@keyframes sv-flash{0%,30%{background:#fff8c5}100%{background:#fff}}
.sv-ph{grid-area:ph;width:52px;height:52px;border-radius:8px;background:#f0f0f2;overflow:hidden;align-self:start}
.sv-ph img{width:100%;height:100%;object-fit:cover;display:block}
.sv-info-col{grid-area:info;min-width:0}
.sv-l1{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.sv-no{font-family:ui-monospace,Consolas,monospace;font-size:12.5px;color:#6e6e73}
.sv-name{font-size:15px}
.sv-l2{font-size:12.5px;color:#6e6e73;margin-top:2px}
.sv-gone{font-size:12px;color:#d93025}
.sv-btns{grid-area:btns;display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.sv-r{height:36px;padding:0 11px;border:1px solid #d2d2d7;border-radius:8px;background:#fff;font-weight:600;font-size:13px;cursor:pointer;white-space:nowrap;word-break:keep-all}
.sv-r:disabled{cursor:default;opacity:.55}
.sv-r:not(:disabled):hover{border-color:#86868b}
.sv-r.is-on{color:#fff;opacity:1}
.sv-r.r-ok.is-on{background:#34a853;border-color:#34a853}
.sv-r.r-moved.is-on{background:#1a73e8;border-color:#1a73e8}
.sv-r.r-repair.is-on{background:#f29900;border-color:#f29900}
.sv-r.r-idle.is-on{background:#80868b;border-color:#80868b}
.sv-r.r-lost.is-on{background:#d93025;border-color:#d93025}
.sv-extra{grid-area:ex;display:flex;gap:8px;flex-wrap:wrap}
.sv-x{display:flex;align-items:center;gap:6px;font-size:12.5px;color:#6e6e73;white-space:nowrap}
.sv-x .as-in{height:32px}
.sv-x-place .as-in{width:160px}
.sv-x-qty .as-in{width:72px}
.sv-x-memo{flex:1 1 220px}
.sv-x-memo .as-in{flex:1 1 auto;width:100%}

/* 라벨: A4 21칸(3열×7줄, 한 칸 63.5×38.1mm) 라벨 용지. 화면 미리보기와 인쇄가 같은 크기 */
.lb-list{display:flex;flex-wrap:wrap;gap:10px}
.lb-item{position:relative;display:block;cursor:pointer;border-radius:6px;outline:2px solid transparent;outline-offset:2px}
.lb-item.is-on{outline-color:#0071e3}
.lb-item input{position:absolute;top:-8px;right:-8px;width:20px;height:20px;margin:0;z-index:1} /* 라벨 밖 모서리 — 분류 글자를 가리지 않게 */
/* 왼쪽 QR 29mm(둘레 빈칸 포함 41칸 → 한 칸 약 0.7mm — 휴대폰이 20~30cm 에서 읽음), 오른쪽 글. 왼쪽 여백은 QR 빈칸이 대신해 좁게 */
.lb{width:63.5mm;height:38.1mm;padding:2mm 3mm 2mm 1.2mm;display:flex;align-items:center;gap:1.5mm;overflow:hidden;background:#fff;color:#000;border:1px dashed #b0b0b8;border-radius:2mm;font-family:"Malgun Gothic","Apple SD Gothic Neo","Noto Sans KR",sans-serif}
.lb-qr{flex:none;width:29mm;height:29mm}
.lb-qr svg{display:block;width:100%;height:100%}
.lb-txt{flex:1 1 0;min-width:0;align-self:stretch;display:flex;flex-direction:column;padding:.6mm 0}
.lb-top{font-size:6.5pt;line-height:1.2}
.lb-name{font-size:8.5pt;font-weight:700;margin-top:1mm;line-height:1.25;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.lb-no{font:700 9.5pt/1.2 ui-monospace,Consolas,monospace;margin-top:1mm;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb-foot{margin-top:auto;font-size:6.5pt;color:#333;line-height:1.25;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.lb-blank{visibility:hidden}

/* QR 로 열린 자산 창(#qrDlg) — 휴대폰에서 한 손으로 누르기 쉽게 큰 단추. 결과 줄은 조사 목록 줄(.sv-row)을 그대로 넣고 모양만 바꿈 */
.qr-wrap{padding:18px 20px;display:flex;flex-direction:column;gap:12px}
.qr-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.qr-head h2{margin:0;font-size:18px}
.qr-head .as-btn{width:40px;padding:0;font-size:16px}
.qr-asset{display:flex;gap:14px;align-items:flex-start}
.qr-ph{flex:none;width:120px;height:120px;border-radius:12px;background:#f2f2f5;display:flex;align-items:center;justify-content:center;overflow:hidden;color:#8e8e93;font-size:13px}
.qr-ph img{width:100%;height:100%;object-fit:cover}
.qr-info{flex:1 1 auto;min-width:0}
.qr-no{font:700 15px/1.3 ui-monospace,Consolas,monospace;color:#6e6e73}
.qr-name{font-size:19px;font-weight:700;line-height:1.3;margin:2px 0 8px;overflow-wrap:anywhere}
.qr-kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 10px;margin:0;font-size:14px}
.qr-kv dt{color:#8e8e93}
.qr-kv dd{margin:0;overflow-wrap:anywhere}
.qr-sv-title{font-size:14px;font-weight:700;word-break:keep-all}
.qr-sv-title.is-none{font-weight:600;color:#6e6e73;background:#f5f5f7;border-radius:10px;padding:12px}
#qrRow .sv-row{display:block;margin:0;padding:12px}
#qrRow .sv-ph,#qrRow .sv-info-col{display:none}
#qrRow .sv-btns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
#qrRow .sv-r{height:52px;font-size:16px}
#qrRow .sv-r.r-ok{grid-column:1 / -1}
/* 칸 묶음은 grid 한 칸(minmax(0,1fr)) — 예전 세로 flex 는 .sv-extra 의 flex-wrap:wrap 이 남아 줄 폭이 입력 칸이 원하는 너비(글꼴마다 다름)로 잡혀,
   안드로이드 휴대폰에서 실사 수량·비고 칸이 카드 오른쪽 밖으로 나갔음(2026-11-12 사용자 휴대폰 화면) */
#qrRow .sv-extra{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin-top:12px}
#qrRow .sv-x{flex:none;flex-direction:row;align-items:center;gap:8px;font-size:14px;white-space:nowrap}
#qrRow .sv-x span{flex:none;min-width:68px} /* 휴대폰 글자 크기를 키우면 칸 이름이 넓어지고 입력 칸이 그만큼 줄어듦(겹치지 않게) */
#qrRow .sv-x .as-in{flex:1 1 auto;width:auto;min-width:0;height:42px;font-size:16px} /* 16px 아래면 아이폰이 칸을 누를 때 화면을 확대함 */
#qrMsg{margin:0}
/* [📷 QR 재물조사] 단추: 누르는 화면(휴대폰·태블릿)에서만 — 마우스 PC 에는 없음(2026-11-12 사용자 요청 '모바일에서만') */
.as-qr-btn{display:none}
@media (pointer:coarse){ .as-qr-btn{display:inline-block} }
/* 위 카메라 칸: 실시간이면 영상 + 가운데 네모, http 면 회색 바탕에 [사진 찍어 읽기] */
.qr-cam{position:relative;height:clamp(200px,34vh,320px);border-radius:12px;overflow:hidden;background:#111;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}
.qr-cam video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.qr-aim{position:absolute;left:50%;top:50%;width:min(62%,220px);aspect-ratio:1;transform:translate(-50%,-50%);border:3px solid rgba(255,255,255,.92);border-radius:14px;box-shadow:0 0 0 999px rgba(0,0,0,.28)}
.qr-cam-msg{position:absolute;left:0;right:0;bottom:0;margin:0;padding:8px 12px;background:rgba(0,0,0,.6);color:#fff;font-size:13.5px;line-height:1.45;word-break:keep-all}
.qr-cam-msg.is-bad{background:rgba(217,48,37,.88)}
.qr-cam-msg:empty{display:none}
.qr-cam.is-photo{background:#f2f2f5;padding:16px}
.qr-cam.is-photo .qr-cam-msg{position:static;background:none;color:#424245;text-align:center;padding:0}
.qr-cam.is-photo .qr-cam-msg.is-bad{color:#d93025}
.qr-shot{height:52px;padding:0 24px;font-size:16px}

/* ---------- 인쇄 ---------- */
.print-only{display:none}
@media print{
  @page{size:A4 portrait;margin:12mm}
  @page land{size:A4 landscape;margin:10mm}
  @page label{size:A4 portrait;margin:0}
  html,body{background:#fff !important}
  body > :not(#printArea){display:none !important}
  #printArea{display:block !important}
  .pr-doc{font-family:"Malgun Gothic","Apple SD Gothic Neo","Noto Sans KR",sans-serif;color:#000;font-size:9pt}
  .pr-land{page:land}
  .pr-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10mm;margin-bottom:4mm}
  .pr-head h1{margin:0;font-size:18pt;letter-spacing:4px}
  .pr-sub{margin-top:2mm;font-size:9pt;color:#222}
  .pr-appr{border-collapse:collapse;font-size:8.5pt}
  .pr-appr th,.pr-appr td{border:1px solid #000;text-align:center;font-weight:400}
  .pr-appr th{width:20mm;height:6mm}
  .pr-appr td{height:15mm}
  .pr-appr .pr-appr-side{width:6mm;writing-mode:vertical-rl;letter-spacing:3px}
  .pr-table{width:100%;border-collapse:collapse;font-size:8.5pt}
  .pr-table th,.pr-table td{border:1px solid #000;padding:1.2mm 1.4mm;vertical-align:middle}
  .pr-table th{background:#eee;font-weight:700;text-align:center;white-space:pre-line;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .pr-table thead{display:table-header-group}
  .pr-table tr{break-inside:avoid}
  .pr-table .num{text-align:right}
  .pr-table .c-n{text-align:center;width:8mm}
  .pr-table .c-r{text-align:center;width:11mm;font-weight:700}
  .pr-table .c-q{width:11mm}
  .pr-table tfoot td{font-weight:700;background:#f5f5f5;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .pr-group td{background:#f3f3f3;font-weight:700;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .pr-sign{display:flex;justify-content:flex-end;gap:20mm;margin-top:8mm;font-size:10pt;white-space:pre}
  .pr-port h2{font-size:11.5pt;margin:7mm 0 2.5mm}
  .pr-kv .k{width:35mm;background:#eee;font-weight:700;text-align:center;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .pr-res td:first-child{text-align:center}
  .pr-total td{font-weight:700;background:#f5f5f5;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .pr-memo{border:1px solid #000;min-height:30mm;padding:3mm;white-space:pre-wrap;font-size:9.5pt;line-height:1.6}
  .pr-date{text-align:center;margin-top:12mm;font-size:11pt;letter-spacing:1px}
  .lb-sheet{page:label;width:210mm;height:296mm;padding:15.15mm 0 0 7.2mm;display:grid;grid-template-columns:repeat(3,63.5mm);grid-auto-rows:38.1mm;column-gap:2.5mm;align-content:start;overflow:hidden;break-after:page}
  .lb-sheet:last-child{break-after:auto}
  .lb-sheet .lb{border:0;border-radius:0}
}

/* ---------- 휴대폰(760px 이하) — 화면만, 인쇄 모양은 위 그대로 ---------- */
@media screen and (max-width:760px){
  .as-wrap{padding:12px 12px 32px}
  .as-head{gap:10px}
  .as-head h1{font-size:20px}
  .as-tabs{width:100%}
  .as-tab{flex:1 1 0;padding:0 8px;font-size:13px}
  .as-qr-btn{width:100%;height:48px;font-size:16px} /* 휴대폰: 탭 아래 한 줄 전체 — 한 손으로 누르기 쉽게 */
  .as-search{flex:1 1 100%;max-width:none}
  .as-bar .as-in:not(.as-search){flex:1 1 40%}
  .as-bar .as-btn{flex:1 1 auto}
  .as-grow{display:none}
  .af-foot .as-grow{display:block} /* 창 아래 단추는 PC 처럼 취소·저장(주 단추)을 오른쪽에 — 엄지가 닿는 쪽 */
  /* 입력 칸 글자 16px: 그보다 작으면 아이폰 사파리가 칸을 누를 때 화면을 확대해 손으로 줄여야 함(2026-11-12 모바일 점검) */
  .as-in{font-size:16px}
  /* 대장: 표 → 카드(사진 왼쪽, 칸 이름은 data-label) */
  .as-table-wrap{background:none;border:0;overflow:visible}
  #lgTable thead{display:none}
  #lgTable,#lgTable tbody{display:block}
  #lgTable tr{display:grid;grid-template-columns:56px minmax(0,1fr);column-gap:10px;background:#fff;border:1px solid #e5e5ea;border-radius:12px;padding:10px;margin-bottom:8px}
  #lgTable td{border:0;padding:1px 0;display:flex;gap:8px;grid-column:2;font-size:13px;min-width:0}
  #lgTable td.num{justify-content:flex-start;text-align:left} /* 숫자 칸(취득가액·수량)도 칸 이름을 다른 줄과 같은 왼쪽에 */
  #lgTable td[data-label]::before{content:attr(data-label);flex:none;width:64px;color:#8e8e93;font-size:12px}
  #lgTable td:empty,#lgTable td.c-last:empty{display:none}
  #lgTable td.c-ph{grid-column:1;grid-row:1 / span 6;padding:0}
  #lgTable td.c-name{font-size:15px}
  .as-dlg{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0}
  .as-dlg form{padding:16px}
  .af-grid{grid-template-columns:1fr}
  .af-photo{flex-direction:row;flex-wrap:wrap;align-items:flex-start}
  .af-ph-box{width:120px;height:120px}
  .af-ph-btns{flex-direction:column;flex:1 1 0}
  .af-ph-info{flex:1 1 100%}
  .af-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sv-layout{grid-template-columns:minmax(0,1fr)} /* 1fr 이면 긴 조사 이름이 칸을 넓혀 360px 화면이 9px 넘쳤음 */
  .sv-list{position:static}
  .sv-list ul{max-height:150px}
  .sv-actions .as-btn{flex:1 1 30%;padding:0 6px;font-size:13px}
  .sv-row{grid-template-columns:44px minmax(0,1fr);grid-template-areas:"ph info" "btns btns" "ex ex";padding:10px}
  .sv-ph{width:44px;height:44px}
  .sv-btns{justify-content:stretch}
  .sv-r{flex:1 1 0;padding:0 4px;height:42px;font-size:12.5px}
  .sv-x{flex:1 1 45%}
  .sv-x .as-in{flex:1 1 auto;width:auto;min-width:0;height:38px}
  .sv-x-memo{flex:1 1 100%}
  .lb-list{justify-content:center}
  /* QR 창: 사진을 줄여 긴 품명·위치가 덜 꺾이게(360px 에서 품명 6줄 → 사진 120px 이 글 칸을 좁혔음) */
  .qr-wrap{padding:16px}
  .qr-ph{width:88px;height:88px}
  .qr-name{font-size:17px}
}
