/* DMS 2 공통 틀 — 디자인 기준(2026-10-13): 청록 브랜드 · 상태 5색 · 터치 48px · Pretendard · 아이콘 한 벌
   PC = 왼쪽 메뉴 + 위 검색 + 가운데 목록 + 오른쪽 상세 / 휴대폰 = 아래 탭 + 큰 주 버튼 */
:root{
  --bg:#f3f6f6; --paper:#fff; --ink:#13302e; --muted:#5c7270; --line:#d8e2e1;
  --brand:#0e7c7b; --brand-deep:#0b5f5e; --brand-soft:#e2f1f0;
  --wait:#64748b; --wait-bg:#eef1f5; --go:#0e7c7b; --go-bg:#e2f1f0; --warn:#b45309; --warn-bg:#fdf1e1;
  --bad:#b42318; --bad-bg:#fdeceb; --done:#15803d; --done-bg:#e6f4ea;
  --font:"Pretendard Variable",Pretendard,"Malgun Gothic","Apple SD Gothic Neo",system-ui,sans-serif;
  --mono:ui-monospace,Consolas,"SF Mono",monospace;
  --touch:48px; --r:12px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 var(--font);-webkit-font-smoothing:antialiased}
button,input{font:inherit;color:inherit}
a{color:inherit}
.muted{color:var(--muted)}
.err{color:var(--bad);min-height:1.2em;margin:0}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.ic{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* 버튼 — 한 화면 주 버튼(pri) 하나 */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 14px;border-radius:10px;border:1px solid transparent;cursor:pointer;font-weight:600;white-space:nowrap;background:transparent}
.btn.pri{background:var(--brand);color:#fff}
.btn.pri:hover{background:var(--brand-deep)}
.btn.ghost{border-color:var(--line);background:var(--paper)}
.btn.ghost.light{background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}
.btn.big{min-height:var(--touch);font-size:16px}
/* 상태 칩 5색 */
.chip{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:600;border-radius:999px;padding:2px 10px;white-space:nowrap;vertical-align:middle}
.chip.wait{background:var(--wait-bg);color:var(--wait)} .chip.go{background:var(--go-bg);color:var(--go)}
.chip.warn{background:var(--warn-bg);color:var(--warn)} .chip.bad{background:var(--bad-bg);color:var(--bad)}
.chip.done{background:var(--done-bg);color:var(--done)}

/* 로그인 — 청록 단색 + 로고 (배경 그림 안 씀) */
.login{min-height:100%;display:grid;place-items:center;padding:24px 16px;background:var(--brand-deep)}
.login-card{background:var(--paper);border-radius:16px;padding:28px 24px;width:min(380px,100%);display:flex;flex-direction:column;gap:8px}
.login-card .logo{color:var(--brand-deep);font-size:18px}
.login-card input{border:1px solid var(--line);border-radius:10px;min-height:var(--touch);padding:0 12px}
.login-card .btn{margin-top:10px}

/* 틀 */
.shell{display:grid;grid-template-columns:216px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);height:100%}
.top{grid-column:1/-1;display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--brand-deep);color:#fff;
     padding-top:calc(8px + env(safe-area-inset-top,0px))}
.logo{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:16px;white-space:nowrap;text-decoration:none}
.tag{font-size:11px;font-weight:600;background:rgba(255,255,255,.18);border-radius:999px;padding:2px 8px}
.login .tag{background:var(--brand-soft);color:var(--brand-deep)}
.gsearch{display:inline-flex;align-items:center;gap:8px;min-width:260px;min-height:36px;padding:0 10px;border-radius:10px;border:0;background:rgba(255,255,255,.14);color:#e9f6f5;cursor:pointer}
.gsearch span{flex:1;text-align:left}
kbd{font-family:var(--mono);font-size:11px;border:1px solid rgba(255,255,255,.35);border-radius:5px;padding:0 5px}
.live{font-size:12px;opacity:.8;white-space:nowrap}
.live.on{color:#a7f0de;opacity:1}
.sp{flex:1}
.who{font-size:13px;opacity:.9;white-space:nowrap}
.nav{border-right:1px solid var(--line);background:var(--paper);padding:10px 8px;overflow:auto;display:flex;flex-direction:column;gap:2px}
.nav .grp{font-size:11px;letter-spacing:.06em;color:var(--muted);padding:12px 10px 4px}
.nav .gt{display:flex;justify-content:space-between;align-items:center;width:100%;background:none;border:0;cursor:pointer;font:inherit;font-size:14px;font-weight:600;letter-spacing:0;color:var(--ink);text-align:left;border-radius:8px;padding:10px 12px}
.nav .gt:hover{background:var(--line)}
.nav .gt .gc{font-size:12px;color:var(--muted)}
.nav a{display:flex;align-items:center;gap:10px;min-height:40px;padding:0 10px;border-radius:10px;text-decoration:none}
.nav a:hover{background:var(--brand-soft)}
.nav a.on{background:var(--brand);color:#fff;font-weight:600}
.nav a.soon{color:#97a8a6}
.nav a.soon::after{content:"준비 중";margin-left:auto;font-size:10.5px}
.main{overflow:auto;padding:20px 24px 48px;min-width:0;outline:0}
.tabbar{display:none}

/* 오늘 할 일 */
.hello{margin:0 0 4px;font-size:22px;text-wrap:balance}
.sub{margin:0 0 18px;color:var(--muted)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.card{display:flex;flex-direction:column;gap:6px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:16px;text-decoration:none;min-height:120px;transition:border-color .12s}
.card:hover{border-color:var(--brand)}
.card .n{font-size:34px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.card.zero{pointer-events:none}
.card.zero .n{color:#9fb1af}
.card.warn .n{color:var(--warn)}
.card.bad{border-color:var(--bad,#b42318);background:var(--bad-bg,#fdeceb)}.card.bad .n{color:var(--bad,#b42318)}
.card .t{font-weight:700}
.card .d{font-size:13px;color:var(--muted)}

/* 리스트 */
.bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}
.bar h1{font-size:20px;margin:0 6px 0 0}
.seg{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--paper)}
.seg button{border:0;background:transparent;min-height:38px;padding:0 14px;cursor:pointer}
.seg button.on{background:var(--brand);color:#fff;font-weight:600}
.search{flex:1 1 280px;min-width:0;border:1px solid var(--line);border-radius:10px;min-height:40px;padding:0 12px;background:var(--paper)}
.count{font-size:13px;color:var(--muted)}
.filt{display:flex;align-items:center;gap:6px;background:var(--warn-bg);color:var(--warn);border-radius:10px;padding:4px 4px 4px 12px;font-size:13px;font-weight:600}
.filt button{border:0;background:transparent;cursor:pointer;display:inline-flex;color:inherit;padding:6px}
.tw{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:auto}
table{border-collapse:collapse;width:100%;font-size:14px}
th{position:sticky;top:0;background:#eef4f3;text-align:left;font-weight:600;font-size:12.5px;color:var(--muted);padding:10px;white-space:nowrap;z-index:1}
td{padding:10px;border-top:1px solid var(--line);vertical-align:top}
tr.row{cursor:pointer}
tr.row:hover td{background:#f4faf9}
tr.row.sel td{background:var(--brand-soft)}
td.nm{font-weight:700;white-space:nowrap}
td.it{min-width:260px;max-width:420px}
td.it .clip{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
td.ad{max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
td.num,td.dt{white-space:nowrap;font-variant-numeric:tabular-nums}
.more{display:flex;margin:12px auto}
mark{background:#fff1b8;color:inherit;border-radius:3px}
.empty{padding:40px;text-align:center;color:var(--muted)}
.soonbox{background:var(--paper);border:1px dashed var(--line);border-radius:var(--r);padding:28px;color:var(--muted);max-width:640px}

/* 상세 */
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,100%);background:var(--paper);border-left:1px solid var(--line);
        box-shadow:-12px 0 32px rgba(15,48,47,.12);overflow:auto;padding:16px 20px 40px;z-index:5;
        padding-top:calc(16px + env(safe-area-inset-top,0px))}
.dh{display:flex;align-items:flex-start;gap:10px}
.dh h2{margin:0;font-size:20px;flex:1;text-wrap:balance}
.kv{display:grid;grid-template-columns:6.5em minmax(0,1fr);gap:6px 12px;margin:14px 0;font-size:14px}
.kv dt{color:var(--muted)}
.kv dd{margin:0;min-width:0;overflow-wrap:anywhere}
.sec{margin-top:18px}
.sec h3{font-size:13px;margin:0 0 6px;color:var(--muted);font-weight:600;letter-spacing:.02em}
.sec ul{margin:0;padding-left:1.1em}
.sec li{margin:4px 0}
.code{font-family:var(--mono);font-size:12px;color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips a{border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-size:13px;text-decoration:none}

/* 알림(토스트) — 늘 같은 자리(아래 가운데), 되돌리기 버튼 자리 */
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:100;
       display:flex;align-items:center;gap:12px;background:#13302e;color:#fff;border-radius:12px;padding:10px 12px 10px 16px;box-shadow:0 8px 24px rgba(0,0,0,.2);max-width:calc(100% - 32px)}
.toast button{background:transparent;border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:8px;min-height:34px;padding:0 10px;font-weight:600;cursor:pointer}
/* 확인창 — 일괄·삭제 전에 한 번 */
.askbg{position:fixed;inset:0;background:rgba(10,30,29,.45);display:grid;place-items:center;z-index:40;padding:16px}
.ask{background:var(--paper);border-radius:16px;padding:20px;width:min(420px,100%)}
.ask p{margin:0 0 16px;white-space:pre-line}
.askb{display:flex;gap:8px;justify-content:flex-end}

/* 휴대폰 — 메뉴는 아래 탭, 표는 카드, 상세는 전체 화면 */
@media (max-width:760px){
  body{font-size:16px}
  .shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto}   /* 1fr 이면 머리줄이 길 때 화면 전체가 옆으로 밀림 (10-22) */
  .nav{display:none}
  .nav.open{display:flex;position:fixed;left:0;right:0;bottom:calc(60px + env(safe-area-inset-bottom,0px));max-height:70%;z-index:6;border:0;border-top:1px solid var(--line);border-radius:16px 16px 0 0;box-shadow:0 -8px 24px rgba(0,0,0,.12)}
  .nav.open a{min-height:var(--touch)}
  .nav a.soon{display:none}
  .who,.live,.tag{display:none}
  .gsearch{min-width:40px;min-height:40px;padding:0;justify-content:center} .gsearch span,.gsearch kbd{display:none}   /* 폰 = 돋보기만 (현장 제보 11-06) */
  .top .btn span{display:none}
  .main{padding:14px 14px 24px}
  .tabbar{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);background:var(--paper);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px)}
  .tabbar a,.tabbar button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:60px;font-size:11.5px;color:var(--muted);text-decoration:none;border:0;background:transparent;cursor:pointer}
  .tabbar .ic{width:22px;height:22px}
  .tabbar .on{color:var(--brand);font-weight:700}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .card{min-height:104px;padding:14px}
  .card .n{font-size:30px}
  .search{flex-basis:100%;min-height:var(--touch)}
  .tw{border:0;background:transparent}
  table,thead,tbody,tr,td{display:block}
  thead{display:none}
  tr.row{background:var(--paper);border:1px solid var(--line);border-radius:12px;margin-bottom:8px;padding:8px 4px}
  td{border:0;padding:2px 10px}
  td.it{min-width:0;max-width:none}
  td.ad{max-width:none;white-space:normal}
  td[data-l]::before{content:attr(data-l) " ";color:var(--muted);font-size:12px}
  td.nm,td.stc,td.dt,td[data-l="담당"]{display:inline-block;padding:2px 6px 2px 10px}
  td[data-l="담당"]:empty{display:none}
  td.num{color:var(--muted);font-size:13px}
  .toast{bottom:calc(76px + env(safe-area-inset-bottom,0px))}
}
@media (prefers-reduced-motion:no-preference){.drawer{animation:slide .16s ease-out}@keyframes slide{from{transform:translateX(24px);opacity:.6}}}

/* 출고검수 — 현장 휴대폰: 큰 카메라 버튼 · 결과 한 줄 크게 · 줄 하나 = 손가락 하나 */
.wm{max-width:640px;margin:0 auto}
.wmbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.wmbar input[type=date]{border:1px solid var(--line);border-radius:10px;min-height:40px;padding:0 10px;background:var(--paper)}
.wmhd{display:flex;align-items:center;gap:8px;flex:1;min-width:0;flex-wrap:wrap}
.wmhd .wwho{font-size:18px}
.wmhd .cnt{margin-left:auto;font-size:24px;font-weight:800;color:var(--brand);font-variant-numeric:tabular-nums}
.s{color:var(--muted);font-size:13px;font-weight:400}
.btn.sm{min-height:34px;padding:0 10px;font-size:13.5px}
.wide{width:100%}
.wmprac{background:var(--warn-bg);color:var(--warn);border-radius:10px;padding:8px 12px;font-size:13.5px;font-weight:600;margin-bottom:10px}
#camw{margin-bottom:10px;display:flex;flex-direction:column;gap:6px}
#wband{position:relative;aspect-ratio:4/3;max-height:60vh;width:100%;background:#000;border-radius:12px;overflow:hidden;border:3px solid #000}   /* 10-19 카메라 크게 (예전 110px 띠) */
.wguide{position:absolute;left:6%;right:6%;top:30%;height:40%;border:3px solid rgba(255,255,255,.95);border-radius:10px;box-shadow:0 0 0 9999px rgba(0,0,0,.35);z-index:3;pointer-events:none}
.wguide::after{content:"";position:absolute;left:4%;right:4%;top:50%;height:2px;background:#ff3b30;opacity:.85}
.wguide span{position:absolute;top:-24px;left:0;right:0;text-align:center;color:#fff;font-size:13px;font-weight:700;text-shadow:0 1px 3px #000}
#wcam #qr-shaded-region{display:none!important}   /* 도구가 그리는 칸 대신 위의 칸 */
#wband.hit{border-color:var(--done)} #wband.bad{border-color:var(--bad)}
#wcam{position:absolute!important;left:0!important;right:0!important;top:50%!important;transform:translateY(-50%)!important}
#wcam video{width:100%!important;display:block}
.wmm{padding:12px 14px;border-radius:12px;font-size:17px;font-weight:700;text-align:center;margin-bottom:10px}
.wmm .ms{font-size:13.5px;font-weight:500;margin-top:2px}
.wmm.big{font-size:20px;padding:18px 12px}
.wmm.ok{background:var(--done-bg);color:var(--done)} .wmm.err{background:var(--bad-bg);color:var(--bad)} .wmm.info{background:var(--wait-bg);color:var(--wait)}
.wm .search{margin-bottom:6px;min-height:var(--touch)}
.gh{font-size:13px;color:var(--muted);margin:14px 2px 6px;font-weight:600}
.wrow{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;padding:0 14px;min-height:var(--touch);margin-bottom:6px;background:var(--paper)}
.wrow[data-k]{cursor:pointer} .wrow[data-k]:hover{border-color:var(--brand)}
.wrow>:last-child{white-space:nowrap;flex-shrink:0}
.wrow.fin{background:var(--done-bg)} .wrow.pre{background:var(--wait-bg);color:var(--wait)}
.wrow.it.ok{background:var(--done-bg);color:var(--done)}
.wrow .left{font-size:18px;font-variant-numeric:tabular-nums}
.lk{background:none;border:0;color:var(--brand);padding:10px 2px;font-weight:600;cursor:pointer}
.ln{border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:6px;background:var(--paper)}
.ln .lb,.rq{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.ln .lb .btn,.rq .btn{flex:1 1 45%;min-height:var(--touch)}

/* 아침 인쇄 — PC: 주문 카드, 제품 줄 오른쪽에 출고 단위 버튼(라벨 수가 버튼에) */
.mo{max-width:1180px}
.mo .bar input[type=date]{border:1px solid var(--line);border-radius:10px;min-height:40px;padding:0 10px;background:var(--paper)}
.btn.warnb{color:var(--warn);border-color:var(--warn)}
.btn:disabled{opacity:.45;cursor:default}
.mobox{display:flex;align-items:center;flex-wrap:wrap;gap:10px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin-bottom:10px}
.mobox>span:first-child{flex:1 1 320px;min-width:0}
.mobox.ok{border-color:var(--done);background:var(--done-bg)}
.mcard{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:10px 14px;margin-bottom:10px}
.mcard.off{opacity:.6}
.mhd{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin-bottom:4px}
.mhd .ck{display:inline-flex;align-items:center;gap:8px;cursor:pointer;min-height:36px}
.mhd .ck input{width:20px;height:20px;accent-color:var(--brand)}
.mhd b{font-size:15.5px}
.bx{margin-left:auto;font-size:13px;color:var(--muted);display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}
.bx input{width:56px;border:1px solid var(--line);border-radius:8px;min-height:32px;padding:0 6px}
.mln{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center;padding:6px 0 6px 28px;border-top:1px dashed var(--line)}
.mln .btns{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.pill{font-size:12.5px;min-height:32px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:var(--paper);cursor:pointer;white-space:nowrap}
.pill:hover{border-color:var(--brand)}
.pill.on{border-color:var(--brand);color:var(--brand-deep);background:var(--brand-soft);font-weight:700}
.mo .lk{padding:4px 2px;font-size:13px}
.comp{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap;background:var(--bg);border-radius:10px;padding:10px;margin-top:4px}
.cv{flex:1;min-width:220px}
.cv h5{margin:0 0 4px;font-size:13px}
.cv>ol{margin:0;padding-left:18px;font-size:12.5px;max-height:280px;overflow:auto}
.cv ol ol{padding-left:16px;margin:2px 0;border-left:2px solid var(--line)}
.cv li.gone{color:#9aa5a4}
.cv .pill{margin-top:6px}
.mmore{margin-top:14px;border-top:1px dashed var(--line);padding-top:8px}
.mr{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 4px;border-bottom:1px solid var(--line)}
@media (max-width:760px){.mln{grid-template-columns:1fr;padding-left:0}.mln .btns{justify-content:flex-start}.bx{margin-left:0}}

/* 직배 · 배송 해피콜 — 휴대폰 우선: 코스 판 한 장 + 집마다 카드 (주소·길찾기·전화가 크게) */
.dv{max-width:760px}
.dv .bar select,.dv .bar input[type=date]{border:1px solid var(--line);border-radius:10px;min-height:40px;padding:0 10px;background:var(--paper)}
.dvday{font-size:18px;margin:18px 0 8px}
.crew{background:var(--brand-soft);border-radius:var(--r);padding:12px 14px;margin-bottom:10px}
.crewhd{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.course{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px;font-size:14px}
.course li{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.course li.fin{opacity:.6}
.course .no,.stop .no{display:inline-grid;place-items:center;min-width:24px;height:24px;border-radius:999px;background:var(--brand);color:#fff;font-size:12.5px;font-weight:700}
.course .mv{font-size:12px;color:var(--muted);display:inline-flex;align-items:center;gap:3px}
.course .mv .ic{width:14px;height:14px}
.tm{font-variant-numeric:tabular-nums}
.stop{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:14px;margin-bottom:10px;display:flex;flex-direction:column;gap:6px}
.stop.fin{opacity:.65}
.sthd{display:flex;align-items:center;gap:8px}
.sthd b{font-size:17px}
.sthd .tm{font-size:20px}
.stop .addr{margin:2px 0 0;font-weight:700;font-size:15.5px}
.navs{display:flex;gap:6px;flex-wrap:wrap}
.navs .btn,.stop .tel{min-height:var(--touch)}
.stop .tel{font-size:16px;align-self:flex-start}
.its{margin:0;padding-left:1.1em}
.stb{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}
.stb .btn.pri{flex:1 1 220px}
.cwarn{font-size:13px;color:var(--warn);font-weight:600;margin:8px 0 0}

/* 상차검수 */
.ld{max-width:760px}
.ld .bar select,.ld .bar input[type=date]{border:1px solid var(--line);border-radius:10px;min-height:40px;padding:0 10px;background:var(--paper)}
.ldtr{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.pbar{height:10px;background:var(--line);border-radius:5px;overflow:hidden;margin:4px 0}
.pbar div{height:100%;background:var(--brand);transition:width .2s}
.ldstep{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:14px;margin:6px 0}
.ldo{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:6px;display:flex;flex-direction:column;gap:6px}
.ldo.ok{background:var(--done-bg)} .ldo.act{border:2px solid var(--brand)}
.ldo .chips{display:flex;flex-wrap:wrap;gap:4px}

/* 배차 */
.as{max-width:1180px}
.asdays{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.asd{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:12px;display:flex;flex-direction:column;gap:4px}
.asd.empty0{background:transparent;border-style:dashed}
.ast{font-size:13.5px}
.asg{margin-bottom:12px}
.asg h3{font-size:15px;margin:0 0 6px}
.asa{background:var(--paper);border:1px solid var(--line);border-radius:12px;margin-bottom:6px}
.asa summary{cursor:pointer;padding:0 14px;min-height:var(--touch);display:flex;align-items:center;gap:8px}
.asr{display:flex;flex-wrap:wrap;gap:4px 10px;padding:8px 14px;border-top:1px solid var(--line);text-decoration:none}
.asr:hover{background:var(--brand-soft)}
.asr .it{flex-basis:100%;font-size:13px;color:var(--muted)}

/* 달력 */
.cal .clm{font-size:16px;min-width:6em;text-align:center}
.cleg{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:8px}
.cgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.cwh{background:#eef4f3;text-align:center;font-size:12.5px;color:var(--muted);padding:6px 0;font-weight:600}
.cd{background:var(--paper);min-height:110px;padding:4px;display:flex;flex-direction:column;gap:2px;min-width:0}
.cd.pad{background:var(--bg)}
.cd.today{box-shadow:inset 0 0 0 2px var(--brand)}
.cdh{display:flex;align-items:center;gap:4px;font-size:12.5px}
.cdh .s{margin-left:auto;font-size:11px}
.cdw{display:none}
.cd.sun .cdh b{color:var(--bad)} .cd.sat .cdh b{color:#2563eb}
.hol{font-size:10.5px;color:var(--bad);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cev{display:block;font-size:12px;line-height:1.35;color:#1f2937;background:#e2e8f0;border-radius:6px;padding:2px 6px;text-decoration:none;white-space:normal;overflow-wrap:anywhere}
.cleg .cev{display:inline-block}
.cev.adj{background:#ede4fb;color:#5b21b6} .cev.late{background:var(--bad);color:#fff;font-weight:700}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px;vertical-align:middle}
.dot.wait{background:#94A3B8} .dot.warn{background:#F59E0B} .dot.go{background:var(--brand)}
@media (max-width:760px){
  .cgrid{display:flex;flex-direction:column;gap:8px;background:transparent;border:0}
  .cwh,.cd.pad,.cd.none{display:none}
  .cd{min-height:0;border:1px solid var(--line);border-radius:12px;padding:10px;gap:4px}
  .cdw{display:inline} .cev{font-size:14px;padding:6px 10px;white-space:normal}
}

/* 정산 · KPI */
.se,.kp{max-width:1180px}
button.card{font:inherit;text-align:left;cursor:pointer}
.card.sel{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}
.card .n.sm{font-size:24px}
.segw{flex-wrap:wrap;margin-bottom:10px;width:fit-content;max-width:100%}
.kp select{border:1px solid var(--line);border-radius:10px;min-height:40px;padding:0 10px;background:var(--paper)}
.kbar{position:relative;height:6px;background:var(--line);border-radius:3px;flex:1}
.kbar div{position:absolute;left:0;top:0;bottom:0;background:var(--brand);border-radius:3px}
.kbar i{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink)}
.kpg{display:grid;grid-template-columns:3fr 2fr;gap:12px;margin:12px 0}
.kbox{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:14px;margin-bottom:12px;min-width:0}
.kbox h3{margin:0 0 10px;font-size:14px}
.kcol{position:relative;display:flex;align-items:flex-end;gap:3px;height:200px}
.kc{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;min-width:0}
.kc div{width:100%;background:var(--brand);border-radius:3px 3px 0 0;min-height:1px}
.kc span{font-size:10.5px;color:var(--muted);height:18px;line-height:18px}
.kgoal{position:absolute;left:0;right:0;border-top:2px dashed var(--muted)}
.krow{display:grid;grid-template-columns:7em 1fr auto;gap:8px;align-items:center;font-size:13px;margin-bottom:6px}
.krow span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kpn{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:14px}
.kpd{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:12px;align-items:start}
.kpr{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:12px}
.kph{background:var(--brand);color:#fff;text-align:center;font-weight:700;padding:6px;border-radius:8px;margin-bottom:6px}
.kl{display:flex;justify-content:space-between;padding:4px 2px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
.kl.b{font-weight:700}
.kpr textarea{width:100%;margin-top:8px;border:1px solid var(--line);border-radius:8px;font:13px/1.5 var(--font);padding:8px}
.kpr .btn{margin-top:10px}
@media (max-width:760px){.kpg,.kpd{grid-template-columns:1fr}}
.se .cards{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.kdv{max-width:1180px}
.kdv .bar input[type=date]{border:1px solid var(--line);border-radius:10px;min-height:40px;padding:0 10px;background:var(--paper)}
.ck{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.nbox{width:60px;border:1px solid var(--line);border-radius:8px;min-height:32px;padding:0 6px}
td input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand)}
.pd{max-width:1180px}
.emb{max-width:1440px}
.embf{width:100%;min-height:900px;border:1px solid var(--line);border-radius:var(--r);background:var(--paper);display:block}
.se .bar input[type=date]{border:1px solid var(--line);border-radius:10px;min-height:40px;padding:0 10px;background:var(--paper)}

/* BOM 보기 */
.bv{max-width:1280px}
.bvg{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:14px;align-items:start}
.bvl{display:flex;flex-direction:column;gap:2px;max-height:calc(100vh - 220px);overflow:auto}
.bvr{display:block;text-align:left;border:1px solid transparent;background:transparent;border-radius:10px;padding:8px 10px;cursor:pointer;font:inherit}
.bvr:hover{background:var(--brand-soft)} .bvr.on{border-color:var(--brand);background:var(--brand-soft)}
.bvd{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:16px;position:sticky;top:0}
.bvt,.bvt ul{list-style:none;margin:6px 0 0;padding-left:0}
.bvt ul{padding-left:20px;border-left:2px solid var(--line);margin-left:8px}
.bvt li{margin:4px 0}
.bvt .lk{padding:0 6px;font-size:14px}
.bvdot{display:inline-block;width:24px;text-align:center;color:var(--muted)}
@media (max-width:760px){.bvg{grid-template-columns:1fr}.bvl{max-height:40vh}.bvd{position:static}}
.lvf{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.lvf select,.lvf input{border:1px solid var(--line);border-radius:10px;min-height:40px;padding:0 10px;background:var(--paper)}
.lvw{font-size:14px;margin:14px 0 6px}
.lvt td,.lvt th{text-align:center} .lvt td.nm{text-align:left}
.lvt th.sun{color:var(--bad)} .lvt th.sat{color:#2563eb}
.xst{list-style:none;margin:8px 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.xst li{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:4px 12px;font-size:13px;background:var(--paper)}
.xst li.fin{background:var(--done-bg);border-color:transparent;color:var(--done)} .xst li.late{background:var(--bad-bg);border-color:transparent;color:var(--bad)}
.asa summary input[type=checkbox]{width:20px;height:20px;accent-color:var(--brand)}
@media (max-width:760px){.lvt{display:table}.lvt thead{display:table-header-group}.lvt tbody{display:table-row-group}.lvt tr{display:table-row}.lvt td,.lvt th{display:table-cell;padding:6px 4px}.tw:has(.lvt){overflow:auto}}

/* 입력 양식 */
.frm2{max-width:880px;display:flex;flex-direction:column;gap:10px}
.frm2 label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted);font-weight:600}
.frm2 label.ck{flex-direction:row;font-weight:500;color:var(--ink)}
.frm2 input:not([type=checkbox]),.frm2 select{border:1px solid var(--line);border-radius:10px;min-height:40px;padding:0 10px;background:var(--paper);color:var(--ink);font-weight:400;font-size:15px}
.frm2 td input:not([type=checkbox]),.frm2 td select{min-height:34px;font-size:14px}
.g3{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}

/* 저장 창 */
.ask.big2{width:min(720px,100%);max-height:calc(100% - 32px);overflow:auto}
.mh{font-size:14px;margin:14px 0 6px}
.sigc{width:100%;height:auto;aspect-ratio:3/1;border:1px dashed var(--line);border-radius:12px;background:#fff;touch-action:none}
.cpv{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.cpv img{width:72px;height:72px;object-fit:cover;border-radius:8px}
.mb textarea,.mb input:not([type=checkbox]):not([type=file]),.mb select{border:1px solid var(--line);border-radius:10px;min-height:40px;padding:6px 10px;background:var(--paper);font:inherit;width:100%}
.mb .g3 label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted);font-weight:600}
.cl{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:6px 0;font-size:14px}.cl input{max-width:200px}
.stopx{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.stopx select,.stopx input[type=date],.stopx input[type=text]{border:1px solid var(--line);border-radius:10px;min-height:40px;padding:0 8px;background:var(--paper)}
.ckl{display:flex;flex-wrap:wrap;gap:6px 14px}
.dact{margin:8px 0}
.memoadd{margin-top:8px;display:flex;flex-direction:column;gap:6px}
.memoadd textarea{border:1px solid var(--line);border-radius:10px;padding:8px;font:inherit}
.kl input.nbox{text-align:right}
.treef{width:100%;height:min(640px,70vh);border:0;display:block}.fu{margin-top:14px}.fub{padding:10px 14px;max-width:none}
a.xpc{display:block;text-decoration:none;color:inherit}a.xpc:hover{border-color:var(--brand)}.xpd .kbox h3{margin-bottom:8px}.xpd textarea{border:1px solid var(--line);border-radius:10px;padding:8px;font:inherit}

.pics{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.pics img{width:96px;height:96px;object-fit:cover;border-radius:8px;border:1px solid var(--line,#e5e7eb);display:block}

#dsch .g3 label{display:flex;flex-direction:column;gap:4px;font-size:13px}#dsch .g3{display:flex;flex-wrap:wrap;gap:12px}#dsch select,#dsch input[type=date]{min-height:36px}

/* 💰 정산 창 · 정산 달력 — 받은 돈(초록) · 약속(주황) · 자동 잔금(회색 점선) (10-15) */
.sbar{display:flex;height:14px;border-radius:7px;overflow:hidden;background:#f3f4f6;margin:4px 0 8px}.sbar i{display:block;height:100%}
.sbar .paid,.dot2.paid{background:#16a34a}.sbar .plan,.dot2.plan{background:#f59e0b}.sbar .auto,.dot2.auto{background:repeating-linear-gradient(45deg,#cbd5e1 0 4px,#e5e7eb 4px 8px)}
.dot2{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:-1px}
.slg{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:14px;margin-bottom:10px}.slg .bad{color:var(--bad,#dc2626)}
.sbox{border-top:1px solid var(--line,#e5e7eb);padding:10px 0}.sbox h3{margin:0 0 6px;font-size:15px}.sbox .btn{margin-top:6px}
.sbox.auto{background:#f9fafb;border-radius:8px;padding:10px 12px;border:1px dashed #cbd5e1;margin:8px 0}
.sform{margin-top:8px;padding:10px;border:1px solid var(--line,#e5e7eb);border-radius:8px}.mr.done{opacity:.6}
.cev.pay.auto{border:1px dashed #94a3b8}.cev.pay.late2{outline:2px solid #dc2626;outline-offset:-2px}
.paytodo .chips{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px}.tchip{border:1px solid var(--line,#e5e7eb);border-radius:8px;padding:4px 10px;text-decoration:none;color:inherit;background:#fff}.tchip:hover{border-color:#f59e0b}

/* 상세 창 안 알림 상자 — 작게·왼쪽 정렬 (10-17) */
.wmm.warn{background:var(--warn-bg,#fdf1d8);color:var(--warn,#9a6200)}
#drawer .wmm{font-size:14px;font-weight:500;text-align:left;padding:9px 12px;border-radius:10px;line-height:1.55}
#drawer .wmm b{font-weight:700}
#drawer .wmm .lk,#drawer .wmm .btn{margin-left:6px}

/* 📋 리스트 빠른 필터 (10-17) */
.ffd{margin:8px 0}.ffr{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:flex-end;padding:8px 12px}.ffr label{display:flex;flex-direction:column;gap:2px;font-size:12.5px}.ffr select{min-height:34px}
#ol select[data-mm]{font-size:13px;padding:2px 4px}

/* 🗓 주 보기 · 끌어 옮기기 (10-17) */
.cd.wk{min-height:260px}.cd.pick{outline:2px solid var(--brand,#1f5e57);outline-offset:-2px}.cd.over{background:var(--wait-bg,#eef6f5)}
.cev[draggable=true]{cursor:grab}.crs{margin:8px 0}.crl{list-style:none;margin:4px 0 0 4px;padding:0;display:grid;gap:2px;font-size:14px}.crl li b{display:inline-block;min-width:1.4em}

.viewas{font-size:12px;padding:3px 6px;border-radius:6px;max-width:130px}
.pvbar{position:fixed;left:50%;transform:translateX(-50%);bottom:14px;z-index:60;max-width:min(760px,calc(100% - 32px));background:#fff4cc;color:#5a4500;border:1px solid #e8d37a;border-radius:10px;box-shadow:0 4px 14px rgba(0,0,0,.15);padding:8px 14px;font-size:13px}
@media (max-width:760px){.pvbar{bottom:72px;left:12px;right:12px;transform:none;max-width:none}}
@media (max-width:760px){.viewas{max-width:92px;font-size:12px;padding:3px 4px}}   /* 휴대폰도 다른 역할로 보기 (10-19) */
.ffr .ffbr{flex-basis:100%;height:0}
.frm2 .search{flex:0 0 auto}   /* 세로 칸 안 검색창이 280px 높이로 커지지 않게 */
.clw{min-width:190px}   /* 배송수단 확인 근거 칸 — 한 글자씩 줄바뀜 방지 */
.login{grid-template-columns:minmax(0,1fr);justify-items:center}   /* 휴대폰 글자 크게 해도 로그인 상자가 화면 밖으로 안 나가게 (10-19) */
.login-card{box-sizing:border-box;min-width:0;max-width:100%}.login-card input,.login-card select{width:100%;min-width:0;box-sizing:border-box}.login-card p{overflow-wrap:anywhere}
/* 📷 카메라 전체화면 팝업 (이사님 10-19): 위쪽 바코드 칸만 선명 · 주변은 흐리게 · 작업 내용은 흐린 곳 위에 */
body.camon{overflow:hidden}
body.camon #camw{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#000;padding:0;margin:0;display:block}
body.camon #wband{position:absolute;top:0;left:0;right:0;height:62vh;max-height:none;aspect-ratio:auto;border:0;border-radius:0}
body.camon #wcam video{height:62vh!important;object-fit:cover}
body.camon .wguide{box-shadow:0 0 0 9999px rgba(0,0,0,.45);border-width:3px;transition:border-color .15s}   /* 10-21 흐림 효과 대신 — 일부 폰에서 하얀 화면 */
body.camon #wband.hit{border:0} body.camon #wband.bad{border:0}
body.camon #wband.hit .wguide{border-color:#2ecc71;box-shadow:0 0 0 3px #2ecc71,0 0 0 9999px rgba(0,0,0,.45)} body.camon #wband.bad .wguide{border-color:#ff3b30;box-shadow:0 0 0 3px #ff3b30,0 0 0 9999px rgba(0,0,0,.45)}
.wblur{display:none}
body.camon .wblur{display:none;position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;box-sizing:border-box;padding:18.6vh 6vw;
  -webkit-backdrop-filter:blur(8px) brightness(.5);backdrop-filter:blur(8px) brightness(.5);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
body.camon #camt{position:absolute;top:calc(env(safe-area-inset-top,0px) + 8px);right:8px;width:auto;z-index:6;min-height:38px;padding:0 14px;font-size:14px;background:rgba(0,0,0,.55);color:#fff;border:1px solid rgba(255,255,255,.45)}
body.camon #caminfo{position:absolute;left:0;right:0;top:calc(43.4vh + 14px);bottom:0;z-index:4;overflow:auto;padding:6px 10px calc(env(safe-area-inset-bottom,0px) + 24px);-webkit-overflow-scrolling:touch}
body.camon #caminfo .gh,body.camon #caminfo>.s,body.camon #caminfo .ldstep,body.camon #caminfo #cnt{color:#eee}
.carbox{border:2px solid var(--brand);border-radius:12px;padding:10px 12px;margin:8px 0;background:var(--paper)}   /* 🚚 상차 차량 (10-19) */
.fr{display:flex;flex-direction:column;gap:6px;margin-top:10px;max-height:60vh;overflow:auto}.frow{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;text-align:left;border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:var(--paper);cursor:pointer}.frow:hover{border-color:var(--brand)}.frow .clip{flex-basis:100%;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}   /* 🔎 주문 찾기 창 (10-19) */
body.camon .askbg{z-index:90}   /* 카메라 전체화면 위에도 창 (차량 고르기 등) */
.orgw{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:start}   /* 🏢 조직도 (10-19) */
.orgw.ov{grid-template-columns:minmax(320px,460px) minmax(0,1fr)} .orgw.ov .orow>*{white-space:nowrap}   /* 👥 구성원 보기 — 부서 칸 좁게 (10-22) */
@media (max-width:860px){.orgw,.orgw.ov{grid-template-columns:minmax(0,1fr)}}
.orow{display:flex;align-items:center;gap:6px;min-height:38px;border-radius:8px;cursor:pointer}.orow:hover{background:var(--brand-soft)}.orow.on{background:var(--brand-soft);font-weight:700}
.orow.on .onm{color:var(--brand-deep)}.otog{border:0;background:none;font-size:18px;width:26px;color:var(--muted);cursor:pointer}.otog:disabled{cursor:default;opacity:.5}
.oside{position:sticky;top:8px}
.phf{display:flex;gap:6px;align-items:stretch;min-width:0;width:100%}.phf select{flex:0 0 5.4em;width:5.4em!important;min-width:0}.phf input{flex:1 1 auto;width:auto!important;min-width:0}   /* 📱 국가번호 + 숫자 (10-19) */
.att td,.att th{padding:4px 3px;font-size:12px;min-width:3.2em} .att td.nm{position:sticky;left:0;background:var(--paper);white-space:nowrap;min-width:7em;z-index:1}   /* 🕘 근태 (10-20) */
.att td.atc b,.att td.atc span:not(.chip){display:block;line-height:1.3;font-variant-numeric:tabular-nums} .att td.atc b{font-weight:600}
.att .late{color:var(--bad)} .att .miss,.sub .miss{color:var(--warn);font-weight:700} .sub .late{color:var(--bad)} .atm{border:1px solid var(--line);border-radius:10px;min-height:40px;padding:0 10px;background:var(--paper)}
.apbal{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:10px 14px;margin:8px 0 12px}   /* 📝 신청·결재 (10-20) */
.apb{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--go-bg);border-radius:var(--r);padding:10px 14px;margin:8px 0}
.apf{margin-top:10px} .apf .s{flex-basis:100%;margin:0} .apsteps{display:flex;flex-wrap:wrap;gap:4px;align-items:center;font-size:12.5px;margin:6px 0;opacity:.85}
.apsteps .ok{color:var(--done);font-weight:600} .apsteps .no{color:var(--bad);font-weight:600} .apsteps i{font-style:normal;opacity:.5}
.apimg{width:72px;height:72px;object-fit:cover;border-radius:8px;margin:4px 4px 0 0;border:1px solid var(--line)} .apc{margin-bottom:10px}
.att .otx{color:var(--go);font-size:11px;font-weight:600} .sub .otx{color:var(--go);font-weight:600}   /* 추가근무 */
.amtt{width:100%;border-collapse:collapse;margin:6px 0} .amtt td,.amtt th{padding:4px 6px;border-bottom:1px solid var(--line);text-align:left} .amtt input{width:8em;text-align:right}   /* 정산 주문 금액 고치기 (10-20) */
.obar{display:flex;gap:14px;align-items:center;padding:6px 4px;border-bottom:1px solid var(--line)} .otab{width:100%;border-collapse:collapse} .otab td,.otab th{padding:7px 6px;border-bottom:1px solid var(--line);text-align:left} .otab tr.on{background:var(--go-bg)} .oadd{display:flex;gap:6px;align-items:center;flex-wrap:wrap} .oadd input{min-width:10em}   /* 조직도 구성원 표 (10-20) */
.utab td{vertical-align:top;white-space:nowrap} .utab .phf input{flex:0 0 8.5em;width:8.5em} .utab select{max-width:9.5em}   /* 사용자 표 — 역할 앞으로, 휴대전화 칸 안 늘어나게 (10-20) */
.utab tr.u1 td{border-bottom:0;padding-bottom:2px} .utab tr.u2 td{padding-top:2px} .uinfo{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;font-size:12.5px;opacity:.95} .uinfo label{display:inline-flex;gap:5px;align-items:center;white-space:nowrap}   /* 사용자 두 줄 (10-20) */
.apg{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:6px 0} .apg>b{min-width:5em} .aph{margin:12px 0 0} .seg button:disabled{opacity:.45;cursor:default}   /* 전자결재 묶음 (10-20) */
[data-part]{cursor:pointer;text-decoration:underline dotted} .pc-top{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:18px} .pc-pic{border:1px solid var(--line);border-radius:12px;min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px;background:#fff} .pc-pic img{max-width:100%;max-height:340px} .pc-dl{display:grid;grid-template-columns:84px 1fr;gap:6px 10px;margin:10px 0} .pc-dl dt{opacity:.7} .pc-dl dd{margin:0} .pc-flow{display:flex;flex-wrap:wrap;gap:6px;align-items:center} .pc-step{border:1px solid var(--line);border-radius:10px;padding:5px 9px;background:var(--paper);cursor:pointer;font-size:13px} .pc-step.cur{border-color:var(--go);background:var(--go-bg)} .pc-kids{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px} .pc-kid{border:1px solid var(--line);border-radius:10px;padding:7px;cursor:pointer;background:var(--paper);font-size:13px} .pc-kid .th{height:70px;display:flex;align-items:center;justify-content:center} .pc-kid img{max-width:100%;max-height:70px} .pc-nopic{color:var(--warn);font-size:12.5px} .pc-qc{white-space:pre-line;font-size:13.5px} .pc-sec{margin-top:14px} @media (max-width:760px){.pc-top{grid-template-columns:1fr}}   /* 🧩 부품 카드 (10-20) */
.psw{display:grid;grid-template-columns:minmax(300px,430px) 1fr;gap:14px;align-items:start} .psl{padding:12px;max-height:calc(100vh - 170px);overflow:auto} .psc{padding:16px;min-width:0}   /* 🔎 부품 검색 (10-20) */
.psl .search{width:100%;margin-bottom:8px} .pst{padding:8px 4px 4px} .pst-r{display:flex;align-items:center;gap:6px;padding:5px 6px;border-radius:8px;white-space:nowrap;overflow:hidden;cursor:pointer}
.pst-r:hover{background:var(--bg,#f4f6f6)} .pst-r.on{background:var(--go-bg)} .pst-t{border:0;background:none;width:20px;flex:none;color:inherit;opacity:.7;cursor:pointer;padding:0}
.pst-n{overflow:hidden;text-overflow:ellipsis} .pst-r .q{font:12px ui-monospace,Consolas,monospace;color:var(--go)}
.psd{display:inline-block;width:8px;height:8px;border-radius:50%;background:#e6a23c;flex:none} .psd.y{background:var(--go)}
.pc-btns{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px} .btn.devb{border:1px solid #c98b2b;color:#8a5a12;background:#fff8ec;cursor:pointer}
@media (max-width:760px){.psw{grid-template-columns:1fr}.psl{max-height:none}}
.pswk{padding:4px 2px 8px} .psbar{height:8px;border-radius:99px;background:var(--line);margin:6px 0;overflow:hidden} .psbar i{display:block;height:100%;background:var(--go)}   /* 🖼 그림 작업 (10-20) */
.chip.wrap{white-space:normal;overflow-wrap:anywhere;max-width:100%}   /* 📱 긴 품목 이름 칩 — 상차검수 좌우 밀림 (모바일 인계 4번, 10-20) */
@media (max-width:760px){.chip{max-width:100%;white-space:normal;overflow-wrap:anywhere}}
/* 📱 주문 상세 — 머리(이름·[닫기]) 고정, 휴대폰은 아래 탭을 덮지 않게 (모바일 인계 2번, 10-20) */
.drawer>.dh{position:sticky;top:calc(-16px - env(safe-area-inset-top,0px));z-index:2;background:var(--paper);margin:calc(-16px - env(safe-area-inset-top,0px)) -20px 10px;padding:calc(16px + env(safe-area-inset-top,0px)) 20px 10px;border-bottom:1px solid var(--line)}
@media (max-width:760px){.drawer{bottom:calc(60px + env(safe-area-inset-bottom,0px));border-bottom:1px solid var(--line)}}
/* 📱 누르는 곳 44px 이상 — 휴대폰에서만 (모바일 인계 5번, 10-20). 16px 글자 = 아이폰 확대 방지 */
.mmtxt{display:none}
@media (max-width:760px){
  #main input[type=checkbox],#drawer input[type=checkbox],.askbg input[type=checkbox]{width:22px;height:22px}
  #main label:has(> input[type=checkbox]),#drawer label:has(> input[type=checkbox]){min-height:44px;display:inline-flex;align-items:center;gap:8px}
  #main select,#drawer select,.askbg select,#main input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]),#drawer input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]){min-height:44px;font-size:16px}
  #main .lk,#drawer .lk{min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:10px;display:inline-flex;align-items:center}
  #main .btn.sm,#drawer .btn.sm{min-height:44px}
  select[data-mm]{display:none} .mmtxt{display:inline}
  .ffd label{display:flex;flex-direction:column;width:100%}
}
.sfree{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:4px 0 8px}   /* 🎁 무상·협찬 (10-21) */
.pt-acc{display:flex;flex-wrap:wrap;gap:6px 16px} .ptk{padding:14px 16px;margin-bottom:12px} .pt-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin-bottom:10px}   /* 🤝 협력사 (10-21) */
.pt-it{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--paper)} .pt-it img{max-width:100%;max-height:90px;object-fit:contain}
.ptw{grid-template-columns:minmax(180px,260px) minmax(0,1fr)} .ptw .amtt input{width:100%!important;min-width:0}   /* 협력사 관리 — 설정 칸 넓게 */
.amtt input.pti-c{text-align:left}   /* 협력사 품번칸 왼쪽 맞춤 */
/* 🤝 협력사 화면 — 한눈 요약 · − / + 수량 · 오른쪽 요약 칸 (10-21) */
.ptp .bar{flex-wrap:wrap;gap:10px} .pt-bdg{display:inline-block;min-width:18px;padding:0 5px;border-radius:9px;background:var(--bad);color:#fff;font-size:12px;line-height:18px;text-align:center}
.pt-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:12px}
.pt-kpi>div{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--paper)} .pt-kpi b{font-size:20px;font-variant-numeric:tabular-nums}
.pt-kpi>div.on{border-color:var(--warn);background:var(--warn-bg)} .pt-kpi>div.on b{color:var(--warn)}
.pt-lay{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:12px;align-items:start} .pt-lay>.ptk{margin-bottom:0} .pt-lay+.ptk{margin-top:12px}
.pt-sum{position:sticky;top:12px;display:flex;flex-direction:column;gap:8px} .pt-sum .btn{width:100%} .pt-sum p{margin:0}
.pt-row{display:grid;grid-template-columns:52px minmax(0,1fr) auto 96px;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.pt-img{width:52px;height:52px;border-radius:10px;background:var(--bg);display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:22px} .pt-img img{max-width:100%;max-height:100%;object-fit:contain}
.pt-nm{display:flex;flex-direction:column;gap:2px;min-width:0} .pt-warn{color:var(--bad);font-size:13px} .pt-note{color:var(--brand-deep);font-size:13px} .pt-stk{color:var(--ink)}
.pt-stp{display:flex;align-items:center;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--paper)}
.pt-stp button{width:40px;height:40px;border:0;background:var(--bg);font-size:20px;cursor:pointer} .pt-stp button:disabled{opacity:.4;cursor:default}
.pt-stp input{width:56px;height:40px;border:0;text-align:center;font-size:16px;font-variant-numeric:tabular-nums;background:transparent}
.pt-amt{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}
.pt-sl{display:flex;justify-content:space-between;gap:8px;padding:3px 0;font-variant-numeric:tabular-nums} .pt-sl>span:first-child{min-width:0}
.pt-tot{border-top:1px solid var(--line);margin-top:4px;padding-top:6px} .pt-big{font-size:20px;color:var(--brand-deep)}
.pt-ct{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-top:8px} .pt-bar{height:6px;border-radius:3px;background:var(--bg);margin:8px 0;overflow:hidden} .pt-bar i{display:block;height:100%;background:var(--brand)}
.pt-gl{display:flex;flex-wrap:wrap;gap:4px 16px}
.pt-h{margin:14px 0 6px;font-size:15px} .pt-h .s{font-weight:400}
.pt-af{display:flex;gap:8px} .pt-af input{flex:1;min-width:0}
.pt-ar{display:flex;flex-direction:column;gap:4px;margin:6px 0} .pt-ar button{text-align:left;border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:8px 10px;cursor:pointer} .pt-ar button:hover{border-color:var(--brand)}
.pt-pick{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--brand);border-radius:10px;background:var(--brand-soft);margin-bottom:8px}
.pt-mth{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}
.pt-mth button{display:flex;flex-direction:column;gap:2px;align-items:flex-start;padding:12px 14px;border:2px solid var(--line);border-radius:12px;background:var(--paper);cursor:pointer}
.pt-mth button.on{border-color:var(--brand);background:var(--brand-soft)} .pt-mth button span{color:var(--muted);font-size:13px}
.pt-k{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.6fr) minmax(0,1fr) 100px minmax(150px,auto);gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.pt-k>div{display:flex;flex-direction:column;gap:2px;min-width:0} .pt-k .r{align-items:flex-end;text-align:right} .pt-k.hot{background:var(--warn-bg);border-radius:10px;padding:10px 8px}
.ptp .sthd{flex-wrap:wrap;gap:8px}
@media (max-width:1180px){.pt-lay{grid-template-columns:1fr} .pt-sum{position:static}}
@media (max-width:820px){.pt-row{grid-template-columns:44px minmax(0,1fr) auto} .pt-row .pt-amt{grid-column:2/-1}
  .pt-img{width:44px;height:44px} .pt-k{grid-template-columns:1fr 1fr} .pt-k .pt-ki{grid-column:1/-1;order:-1}}
.ptp .g3 label{display:flex;flex-direction:column;gap:4px} .ptp .g3 input,.ptp .pt-af input,.pt-sum input{width:100%;min-height:40px}
.pt-tel{font-weight:600;color:var(--brand-deep);text-decoration:none;font-variant-numeric:tabular-nums} .pt-day{font-weight:600;color:var(--ink)}
.pp-t td,.pp-t th{vertical-align:top;white-space:nowrap} .pp-t td:nth-child(3){white-space:normal;min-width:200px;max-width:340px} .pp-t .r{text-align:right;font-variant-numeric:tabular-nums} .pp-use.on{color:var(--brand-deep);font-weight:700;background:var(--brand-soft)} .tblw{overflow-x:auto} .pt-sum label{display:flex;flex-direction:column;gap:4px} .pt-sum select,.pt-sum input[type=date]{min-height:40px}
.pt-chg{display:inline-block;color:var(--warn);font-size:12.5px;font-weight:600}
.pt-it1{display:block;line-height:1.45} .pt-it1::before{content:"· ";color:var(--muted)}
.pt-k[data-pk]{cursor:pointer} .pt-k[data-pk]:hover{background:var(--bg)} .pt-more{color:var(--brand-deep);font-size:13px;font-weight:600} .pt-dt{max-width:560px} .pt-dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:10px 0} .pt-dl>span:nth-child(odd){color:var(--muted)}
#lf label.ck{display:flex;flex-direction:row;align-items:center;gap:8px;margin:4px 0 8px;font-weight:600} #lf label.ck input{width:20px;height:20px;min-height:0;flex:0 0 auto;margin:0} #lf label.ck .muted{font-weight:400;font-size:13px}
.camtorch{position:absolute;top:calc(env(safe-area-inset-top,0px) + 8px);left:8px;z-index:6;min-height:38px;padding:0 14px;border-radius:10px;font-size:14px;background:rgba(0,0,0,.55);color:#fff;border:1px solid rgba(255,255,255,.45)} .camtorch.on{background:#f5c518;color:#000}   /* 🔦 (10-21) */
.apl{display:grid;grid-template-columns:200px minmax(0,1fr);gap:14px;align-items:start;margin-top:12px}   /* 📝 전자결재 신청 — 왼쪽 목록·오른쪽 한 장 (10-21) */
.apnav{display:flex;flex-direction:column;gap:2px;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:8px}
.apng{font-size:12.5px;color:var(--muted);font-weight:700;padding:8px 10px 4px} .apng:not(:first-child){border-top:1px solid var(--line);margin-top:6px;padding-top:12px}
.apnav button{text-align:left;border:0;background:transparent;padding:9px 12px;border-radius:8px;cursor:pointer;font-size:14.5px}
.apnav button:hover{background:var(--bg)} .apnav button.on{background:var(--brand);color:#fff;font-weight:600}
.apc{padding:16px 18px} .apc h3{margin:0 0 10px} .apc .apf{margin-top:0} .apc .stb{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}
.apc .apf p.s{order:-1;flex-basis:100%;background:var(--bg);border-radius:10px;padding:10px 12px;line-height:1.55}
@media (max-width:820px){.apl{grid-template-columns:1fr} .apnav{flex-direction:row;flex-wrap:wrap} .apng{flex-basis:100%;border-top:0!important;margin:0!important;padding:4px 6px!important}}
.ofin{margin-top:12px;padding:14px 16px} .ofl{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0}   /* ✍️ 최종 결재자 (10-22) */
.bell{position:relative;background:none;border:0;color:inherit;cursor:pointer;padding:4px 6px;display:inline-flex;align-items:center} .bell i{position:absolute;top:-2px;right:-4px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#e5484d;color:#fff;font:700 10px/16px sans-serif;font-style:normal;text-align:center}   /* 🔔 개인 알림 (10-22) */
.oq{min-width:14em;max-width:22em} .ogrp{padding:10px 0;border-bottom:1px solid var(--line,#e5e7eb)} .ogrp:last-child{border-bottom:0} .ogrp h3 .cnt,.kbox h3 .cnt{color:#3b82f6;margin-left:4px}
.ocards{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;margin-top:8px} .ocard{display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:0;padding:8px 4px;border-radius:10px;cursor:pointer;color:inherit}
.ocard:hover{background:rgba(0,0,0,.04)} .oav{position:relative;width:52px;height:52px;border-radius:50%;background:#c4c9d1;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:20px}
.oav i{position:absolute;right:-4px;bottom:-2px;font-style:normal;font-size:11px;background:#4b5f80;color:#fff;border-radius:50%;width:20px;height:20px;line-height:20px;text-align:center;border:2px solid #fff}
.oav.big{width:72px;height:72px;font-size:28px;flex:none} .oper{display:flex;gap:18px;align-items:flex-start} .oper p{margin:6px 0} .oper p .s{display:inline-block;width:5em}   /* 👥 구성원 보기 (10-22) */
@media (max-width:760px){.top{gap:6px;padding-left:10px;padding-right:10px}.top{min-width:0}.top>*{flex-shrink:0}.top .logo{font-size:14px;gap:5px;flex-shrink:1;min-width:24px;overflow:hidden;text-overflow:ellipsis}.top .btn{padding-left:8px;padding-right:8px}.bell{padding:4px}}   /* 휴대폰 머리줄 — 🔔 종 들어가도 한 줄 (10-22) */
.apg{margin:4px 0 10px;flex-wrap:wrap}   /* 📂 용도별 보기 (10-22) */
.mya{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin:8px 0} .mya .kbox{padding:12px 14px;display:flex;flex-direction:column;gap:2px} .mya b{font-size:20px}
.myat td,.myat th{white-space:nowrap;font-size:13px} .myat tr.off td:first-child{color:#c2410c} .myat .hol{color:#c2410c;font-size:11px}   /* 🗓 나의 근태 (10-22) */
.myat tr.pk td{background:#FDE7EF}   /* 근무 없는 주말·공휴일 분홍 (10-22) */
.att td.apk{background:#FDE7EF}   /* 근태표 쉬는 날 분홍 (10-22) */
.ext{width:100%;border-collapse:collapse} .ext td,.ext th{padding:3px 4px;font-size:13px} .ext .exu{width:100%} .ext .exa{width:9em;text-align:right} .ext td:first-child{color:#888;width:2em}   /* 🧾 개인경비 여러 줄 (10-22) */
#apt{flex-wrap:nowrap;overflow-x:auto;max-width:100%} #apt button{white-space:nowrap}   /* 전자결재 탭 — 좁은 화면에서 글자 안 꺾임 (10-22) */
.ccg{max-height:60vh;overflow:auto} .ccgp h4{margin:12px 0 6px;font-size:13px;color:#555} .ccl{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px} .ccu{display:flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid var(--line,#e5e7eb);border-radius:8px;cursor:pointer} .ccu.on{background:var(--brand-soft,#e6f2f0);border-color:var(--brand,#2f7d73)}   /* 👀 참조 고르기 창 (10-22) */
.ext .exd{width:9.5em}
.vdl{max-height:60vh;overflow:auto;display:flex;flex-direction:column;gap:6px;margin-top:8px} .vdr{display:grid;grid-template-columns:1.4fr 1fr 2fr 1fr;gap:8px;align-items:center;text-align:left;padding:10px 12px;border:1px solid var(--line,#e5e7eb);border-radius:8px;background:none;cursor:pointer;color:inherit} .vdr:hover{background:var(--brand-soft,#e6f2f0)}   /* 🏢 거래처 고르기 (10-22) */

/* 📋 월 정산 자료 올리기 (10-23) */
.su h2{margin:0;font-size:20px}.su h3{margin:14px 0 6px;font-size:15px}
.subar{height:8px;border-radius:4px;background:var(--wait-bg);margin:8px 0 12px;overflow:hidden}.subar span{display:block;height:100%;background:var(--done)}
.sudrop{border:2px dashed var(--line);border-radius:14px;padding:22px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;background:var(--bg)}
.sudrop.over{border-color:var(--brand);background:var(--brand-soft)}
.surow{border-radius:10px;padding:8px 12px;margin:6px 0}.surow.ok{background:var(--done-bg)}.surow.bad{background:var(--warn-bg)}.surow b{font-weight:600}
.sucards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px}
.sucard{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--paper)}.sucard.dim{opacity:.7}
.sucard .sun{display:inline-flex;width:22px;height:22px;border-radius:50%;background:var(--wait-bg);color:var(--wait);align-items:center;justify-content:center;font-size:12px;font-weight:700;margin-right:6px}
.sug summary{cursor:pointer;color:var(--brand);font-size:13px;margin-top:4px}.sug ol{margin:6px 0 4px 18px;padding:0;font-size:13.5px}

/* 🇨🇳 중국 회계 1-A — 마감 줄 · 바뀐 기록 (10-23) */
.cnclose{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;margin-bottom:10px;border-radius:10px;background:var(--wait-bg)}
.cnlog{margin-top:10px}.cnlog summary{cursor:pointer;color:var(--brand);font-size:13.5px}

/* 💰 정산 숫자 카드 — 한 줄·칸 폭에 맞춰 크기 줄임, '원' 작게 (10-23) */
.setc{grid-template-columns:repeat(5,minmax(0,1fr))!important}
.setc .card .n{font-size:clamp(18px,2.1vw,30px);white-space:nowrap;letter-spacing:-.02em}
.setc .card .n small{font-size:.5em;font-weight:600;margin-left:3px;opacity:.6}
@media (max-width:760px){.setc{grid-template-columns:repeat(2,minmax(0,1fr))!important}.setc .card .n{font-size:22px}}

/* 🧾 월 정산 (10-24) */
.cl4{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.cl-h{margin:6px 0 8px;font-size:22px}
.clbox{margin-top:12px}.clbox h3{margin:0 0 6px;font-size:16px}.clbox h3 .s{font-weight:400}
.clbox tr.grp td{background:var(--bg);font-weight:700}.clbox tr.sum td{font-weight:700;border-top:2px solid var(--ink,#1f2937);border-bottom:0}
.clbox td.ind{padding-left:24px}.clbox tr.late td{color:var(--warn)}.clbox td.neg{color:var(--bad,#b42318)}
.cl-eq{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:18px;font-weight:700;padding:6px 0;font-variant-numeric:tabular-nums}
.cl-eq .big{font-size:26px;color:var(--brand)}.cl-eq small{font-size:.55em;opacity:.6;margin-left:2px}
.cl-foot{color:var(--muted,#6b7280);font-size:12px;margin-top:14px;line-height:1.7}
@media (max-width:900px){.cl4{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* 🇨🇳 중국 회계 1-B — 계좌 카드 (10-24) */
.cnacs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:10px 0}
.cnac{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;border:1px solid var(--line);border-radius:12px;padding:8px 12px;background:var(--paper);cursor:pointer;font:inherit;color:inherit}
.cnac b{font-size:18px;font-variant-numeric:tabular-nums}.cnac.on{border-color:var(--brand);background:var(--brand-soft)}.cnac .neg,td.neg{color:var(--bad,#b42318)}

/* 🏦 통장 카드 (10-24, 시안_통장카드.html) */
.bkup{border:2px dashed var(--brand);background:var(--brand-soft)}.bkup.over{background:var(--wait-bg)}
.tcard{background:var(--paper);border:1px solid var(--line);border-left:5px solid var(--warn);border-radius:10px;padding:12px 14px;margin-bottom:10px}
.tcard .bk-top{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.tcard .bk-who{font-size:16px}
.tcard .amt{margin-left:auto;font-size:20px;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}.tcard .amt.in{color:var(--done)}.tcard .amt.out{color:var(--bad,#b42318)}
.tcard .why{margin-top:6px;font-size:14px;color:var(--warn)}
.tcard .sug{margin-top:8px;background:var(--bg);border-radius:8px;padding:8px 12px;font-size:14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.tcard .acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.bkpick{border:1px solid var(--line);border-radius:8px;margin-top:8px}
.bkpick button{display:flex;gap:8px;align-items:center;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:8px 12px;font:inherit;color:inherit;cursor:pointer}
.bkpick button:hover{background:var(--brand-soft)}.bkpick button b{margin-left:auto}
/* 🛒 한국 구매 (krpo.js, 시안_한국구매 10-24) — 현장 휴대폰: 누르는 곳 48px 이상 */
.kp-req{background:var(--warn-bg);color:var(--warn);border-radius:10px;padding:10px 12px;margin:8px 0;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.kp-chips{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0} .kp-chips .chip{border:0;cursor:pointer;min-height:32px}
.kp-t tr[data-kone]{cursor:pointer} .kp-act{white-space:nowrap;text-align:right}
.kp-new .lab,.kp-rcvw .lab{font-size:12.5px;color:var(--muted);margin:12px 0 4px}
.kp-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0}
.kp-kinds,.kp-two{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.kp-kinds button{min-height:var(--touch);border:1px solid var(--line);border-radius:10px;background:var(--paper);font-weight:600;font-size:15px;cursor:pointer}
.kp-kinds button.on{border:2px solid var(--brand);background:var(--brand-soft);color:var(--brand-deep)}
.kp-fld{flex:1 1 14em;min-height:var(--touch);border:1px solid var(--line);border-radius:10px;background:var(--paper);text-align:left;padding:0 12px;font-size:15px;cursor:pointer}
.kp-terms{background:var(--wait-bg);border-radius:10px;padding:8px 12px;margin-top:6px} .kp-terms label{min-height:40px;display:inline-flex;align-items:center;gap:4px}
.kp-past{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:6px}
.kp-pc{border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:6px;font-size:12.5px;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;min-height:var(--touch)}
.kp-im{width:72px;height:72px;flex:none;border-radius:10px;object-fit:contain;background:#f4f7f7;border:1px solid var(--line)}
.kp-pc .kp-im{width:100%;height:56px}
.kp-im.none{display:grid;place-items:center;text-align:center;background:var(--warn-bg);color:var(--warn);font-size:11px;font-weight:700;line-height:1.3;padding:4px;border-color:transparent}
.kp-im.big{width:auto;flex:1;height:120px}
.kp-line{display:flex;gap:10px;border:1px solid var(--line);border-radius:12px;padding:8px;margin-top:8px;align-items:flex-start;background:var(--paper)}
.kp-lb{flex:1;min-width:0} .kp-lt{font-weight:700}
.kp-qty{display:flex;align-items:center;gap:6px;margin-top:6px;flex-wrap:wrap}
.kp-pm{width:var(--touch);height:var(--touch);border:1px solid var(--line);border-radius:10px;background:var(--paper);font-size:20px;cursor:pointer}
.kp-qn{width:5em;min-height:var(--touch);text-align:center;font-size:17px} .kp-qn.big{font-size:20px;font-weight:700}
.kp-pr{width:7em;min-height:var(--touch);text-align:right} .kp-am{font-weight:600;white-space:nowrap}
.kp-warn{background:var(--warn-bg);color:var(--warn);border-radius:10px;padding:8px 10px;font-size:13px;margin-top:6px}
.kp-note{color:var(--go);font-size:12.5px;margin-top:2px}
.kp-tot{display:flex;justify-content:space-between;font-weight:700;font-size:17px;margin-top:12px;gap:8px}
.kp-ap{font-size:13px;background:var(--brand-soft);color:var(--brand-deep);border-radius:10px;padding:8px 10px;margin:6px 0 10px}
.kp-find{display:flex;flex-direction:column;gap:6px;margin-top:8px;max-height:60vh;overflow:auto}
.kp-fr{display:flex;gap:10px;align-items:center;text-align:left;border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:6px;cursor:pointer;min-height:var(--touch)}
.kp-rcv{border:1px solid var(--line);border-radius:12px;padding:10px;margin-top:10px}
.kp-ph{display:flex;gap:8px} .kp-cam{flex:1;height:120px;border:2px dashed var(--brand);border-radius:10px;display:grid;place-items:center;text-align:center;color:var(--brand-deep);font-weight:700;cursor:pointer;overflow:hidden}
.kp-cam img{width:100%;height:100%;object-fit:cover}
.kp-two{margin-top:8px} .kp-two .btn{min-height:52px;border:1px solid var(--line);background:var(--paper)}
.kp-ok.on{background:var(--done);border-color:var(--done);color:#fff} .kp-bad{color:var(--bad);border-color:var(--bad)!important} .kp-bad.on{background:var(--bad);color:#fff}
[data-nc].on{background:var(--wait-bg)}
.kp-btns .btn{min-height:var(--touch)}
.kp-past>p{grid-column:1/-1;margin:0}
.kp-terms input[type=radio]{width:20px;height:20px;min-height:0;margin:0} .kp-terms label{white-space:nowrap}
.mb .kp-qty input.kp-qn.kp-qn{width:5.5em;flex:none} .mb .kp-qty input.kp-pr.kp-pr{width:7.5em;flex:none} .mb .kp-terms input[type=radio].kp-r,.mb .kp-terms input[type=radio]{width:20px;min-height:0;padding:0}
.kp-ways button{font-size:14px} .kp-out{margin:8px 0}
/* 📋 주문 상세 창 4상태 · 🚚 오늘 배송 '다음 집' · 📞 배송 해피콜 · ✅ 완료 3단계 (상세창_오늘배송_개편 10-24) */
.dhcs{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 2px} .dsum{margin:4px 0 10px;color:var(--muted);font-size:14px}
.dmain{margin-bottom:10px} .dnote{margin:4px 0 10px}
#dwork:not(:empty){border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:12px;background:var(--paper)}
.dwhd{display:flex;align-items:center;gap:8px;margin-bottom:6px} .dwe{display:none}
#dwork:not(:has(> div[id]:not(:empty))) .dwe{display:block}
.dtabs{margin:4px 0 10px} .dtabs button{flex:1}
.dmore{display:flex;flex-direction:column;gap:8px} .dmore .btn{justify-content:flex-start;min-height:var(--touch)} .dmore .btn.off{opacity:.55}
.dvsw{margin-bottom:8px} .dvsw a{flex:1;text-align:center;text-decoration:none;color:inherit;display:flex;align-items:center;justify-content:center;min-height:44px}
.dvnav{display:flex;gap:8px;align-items:center;margin:4px 0 8px} .dvnav .btn{min-height:var(--touch)} .dvnav .dvdl{flex:1;font-size:16px}
.dv #dvc{width:100%;min-height:var(--touch);margin-bottom:8px;border:1px solid var(--line);border-radius:10px;padding:0 10px;background:var(--paper)}
.dvbar{height:8px;border-radius:99px;background:var(--line);overflow:hidden;margin:4px 0 8px} .dvbar i{display:block;height:100%;background:var(--brand)}
.dvnext{margin:8px 0} .dvnh{font-weight:700;color:var(--brand-deep);margin-bottom:4px}
.dvnext .stop{border:2px solid var(--brand)}
.stwho{display:block;text-decoration:none;color:inherit;font-size:17px;margin:4px 0} .ptm{color:#8a5a00;font-weight:600}
.stact{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0} .stact .btn{min-height:var(--touch);width:100%}
.navdd{position:relative} .navdd summary{list-style:none;width:100%} .navdd summary::-webkit-details-marker{display:none}
.navm{position:absolute;right:0;left:0;z-index:5;display:flex;flex-direction:column;gap:6px;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:6px;margin-top:4px;box-shadow:0 6px 18px rgba(0,0,0,.12)}
.navm .btn{min-height:var(--touch)}
.dvlist{display:flex;flex-direction:column}
.dvr{display:flex;align-items:center;gap:8px;min-height:var(--touch);border-top:1px solid var(--line);padding:4px 2px;cursor:pointer}
.dvr.fin{opacity:.55} .dvr .no{min-width:22px;text-align:center;font-weight:700;color:var(--muted)} .dvr .mv{font-size:12px;color:var(--muted)}
.dvr .tm{font-variant-numeric:tabular-nums} .dvrn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dvfix{position:sticky;bottom:0;z-index:4;background:var(--bg);padding:8px 0 calc(8px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;align-items:center;gap:2px}
.dvfix .btn{width:100%;min-height:56px;font-size:17px}
.dhcw{display:flex;flex-direction:column;gap:8px;margin-top:8px} .dhcw .lab{font-size:12.5px;color:var(--muted)}
.dhct{display:flex;gap:6px;flex-wrap:wrap} .dhct button{min-height:var(--touch);min-width:76px;border:1px solid var(--line);border-radius:10px;background:var(--paper);font-size:16px;font-weight:600;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1}
.dhct button small{font-size:10.5px;color:var(--muted);font-weight:500} .dhct button.on{border:2px solid var(--brand);background:var(--brand-soft);color:var(--brand-deep)}
.dhct select{min-height:var(--touch);border:1px solid var(--line);border-radius:10px;padding:0 8px;background:var(--paper)}
.stop .tel.wide,.dhcw .btn.wide{width:100%}
.cdst{display:flex;gap:6px;list-style:none;padding:0;margin:8px 0} .cdst li{flex:1;text-align:center;font-size:13px;padding:6px 4px;border-radius:99px;background:var(--wait-bg);color:var(--wait);cursor:default}
.cdst li.on{background:var(--brand);color:#fff;font-weight:700} .cdst li.ok{background:var(--done-bg);color:var(--done);cursor:pointer}
.cdl{border-top:1px solid var(--line);padding:6px 0} .cdl .ck{min-height:40px}
.cdcam{height:96px;margin:6px 0} .cdnav{gap:8px} .cdnav .btn{flex:1}
@media (max-width:760px){.askbg.sheet{align-items:end;padding:0;place-items:end stretch}.askbg.sheet .ask{border-radius:16px 16px 0 0;width:100%;max-height:92%}}
.drawer .dh .dhn{flex:1;min-width:0}
.dmore a.btn{text-decoration:none;color:inherit}
.dnocs{display:flex;gap:8px;align-items:flex-start;margin:6px 0} .dnocs .ic{flex:none;margin-top:2px}
.prb{font-size:13px;line-height:1.5;word-break:break-all;display:flex;flex-direction:column;gap:4px} .prb>div{border-bottom:1px solid var(--line);padding:3px 0} .prb .s{padding-left:14px} .prb .bad{color:var(--bad)}
.kp-task{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px} .kp-task button{min-height:40px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:var(--paper);font-weight:600;cursor:pointer} .kp-task button.on{border:2px solid var(--brand);background:var(--brand-soft);color:var(--brand-deep)} .mb .kp-task input{flex:1 1 10em;width:auto}

/* 🇨🇳 중국 오더 — 한국 입고 덜 감 (5-8b) */
.cno-bad { color: var(--bad); font-weight: 700; }

/* 🏭 중국 생산 (cnmake) */
.mk-ord { margin-bottom: 6px; }
.mk-dept { padding: 4px 0; border-top: 1px solid var(--line, #ddd); }

/* 👷 용역 출근 (cnwork) */
.cw-r { padding: 8px 4px; border-bottom: 1px solid var(--line, #ddd); }
.cw-r.on { background: var(--soft, #f3f7f4); }
.cw-t { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin-top: 4px; }
.cw-t input[type=time] { width: 7em; }

/* 🛒 중국 구매 (cnbuy) — 품번 사진 크게 */
.cb-big { width: 96px; height: 96px; object-fit: contain; border-radius: 8px; background: var(--soft, #f3f5f4); flex: none; }
.cb-flag td { background: color-mix(in srgb, var(--bad, #c62828) 7%, transparent); }
.lines .exm { color: var(--bad, #c62828); }
.kp-money { display: flex; flex-wrap: wrap; gap: 6px 14px; padding: 8px 10px; border-radius: 8px; background: var(--soft, #f3f5f4); font-size: 13px; }
.kp-plan { border: 1px solid var(--line, #e3e6e5); border-radius: 8px; padding: 4px 8px; }
.kp-pl { flex-wrap: wrap; gap: 4px; }
.ap-awarn { background: #fff6d6; border: 1px solid #f0d27a; color: #7a5b00; border-radius: 6px; padding: 4px 8px; font-size: 13px; margin: 4px 0; }
.apsteps .now{color:var(--warn,#b26a00);font-weight:700}
.apmore{display:inline-block;position:relative} .apmore summary{list-style:none;cursor:pointer;padding:4px 10px;border:1px solid var(--line,#e3e6e5);border-radius:8px;font-weight:700}
.apmore summary::-webkit-details-marker{display:none} .apmore[open] button{position:absolute;right:0;top:110%;white-space:nowrap;z-index:5;background:var(--card,#fff)}
/* 🗓 나의 근태 — 오늘 카드 · 3칸 · 휴대폰 하루 한 줄 (UXUI 1·2, 10-27) */
.myatd{margin-bottom:8px} .myatd .myatt{font-size:18px;margin-top:4px} .myatd .myatt b{font-size:22px}
.kgrid.mya3{grid-template-columns:repeat(3,1fr)} .kgrid.mya3 .kbox{min-height:48px} button.kbox{cursor:pointer;text-align:left;font:inherit;border:1px solid var(--line,#e3e6e5)} .kbox.mute{opacity:.55}
.myal{display:none} tr.hl td,.myar.hl{background:#fff3c4;transition:background .3s}
@media (max-width:820px){
  .se .tw:has(table.myat){display:none} .myal{display:block}
  .myar{border-bottom:1px solid var(--line,#e3e6e5);padding:6px 2px} .myar.off{opacity:.7}
  .myar summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px;list-style:none;cursor:pointer;min-height:40px} .myar summary::-webkit-details-marker{display:none}
  .myad{font-weight:700;min-width:5.2em} .myat2{min-width:8.5em} .myac{display:flex;flex-wrap:wrap;gap:4px;align-items:center;flex:1 1 auto;justify-content:flex-end}
  .myar > .s{padding:4px 0 2px 5.4em}
}
/* ＋ 새 신청 — 하는 일 4개 (UXUI 7) */
.apdo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:8px}
.apdob{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-height:84px;padding:14px;cursor:pointer;text-align:left;font:inherit;border:1px solid var(--line,#e3e6e5)}
.apdob b{font-size:17px} .apdob .ic{width:22px;height:22px}
.apline{margin-top:10px}
/* 🤖 AI 연결 안내 — 신청하기 아래 한 줄 · 창 (계획_AI결재연결 3-2) */
.apai{display:flex;align-items:center;gap:6px;margin-top:10px;padding:8px 2px;border:0;background:none;font:inherit;font-size:14px;color:var(--teal,#2f6f6a);cursor:pointer;text-align:left}
.apai .ic{width:18px;height:18px}
.ask.apaim{width:min(940px,96vw)} .ask.apaim .dh{position:sticky;top:0;background:inherit;z-index:2} .aigf{width:100%;height:68vh;border:0;margin-top:8px}
@media (max-width:820px){ .ask.apaim{position:fixed;inset:0;width:100%;max-width:none;height:100%;max-height:none;border-radius:0;overflow:auto} .aigf{height:calc(100vh - 150px)} }
.chip.atplan{background:#D9F2DE;color:#1d5b2c;opacity:.85}
/* 🛒 중국 구매 입력 편의 ① (계획_중국DMS 5-13) — PC 품목 표 · 칩 · 여러 개 고르기 */
.cb-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; align-items: center; }
.cb-chips .chip { cursor: pointer; }
.cb-tbl td { vertical-align: middle; }
.cb-tbl input.num, .cb-tbl .num { text-align: right; font-variant-numeric: tabular-nums; }
.cb-th { width: 64px; height: 64px; object-fit: contain; border-radius: 6px; background: var(--soft, #f3f5f4); transition: transform .15s; position: relative; }
.cb-th:hover { transform: scale(3); z-index: 5; box-shadow: 0 4px 16px rgba(0,0,0,.25); }
.cb-many .kp-fr .kp-im, .cb-many .kp-fr img { width: 72px; height: 72px; }
.cb-many .kp-fr.on { outline: 3px solid var(--brand, #2F5D57); background: var(--soft, #eef3f2); }
.cb-inl { margin-top: 4px; gap: 4px; }
.cb-inl .cbpr { width: 10em; }
.ask.cb-wide { width: min(1180px, 96vw); max-width: min(1180px, 96vw); }
/* 🧾 자재 부족 엑셀처럼 ② — 머리 고정 · 정렬 · 급한 줄 */
.mk-sh { max-height: 70vh; overflow: auto; }
.mk-sh thead th { position: sticky; top: 0; background: var(--paper, #fff); z-index: 2; }
.mk-sh th.sortable { cursor: pointer; white-space: nowrap; user-select: none; }
.mk-sh tr.mk-urg td { background: color-mix(in srgb, var(--err, #b3261e) 7%, transparent); }
.mk-sh td.neg { color: var(--err, #b3261e); }
/* 📋 붙여넣기 → 품번 맞추기 ③ — 초록 기억 · 파랑 고름 · 주황 후보 · 빨강 없음 */
.cp-t tr.cp-ok td { background: color-mix(in srgb, #1e8e3e 10%, transparent); }
.cp-t tr.cp-pick td { background: color-mix(in srgb, var(--brand, #2F5D57) 8%, transparent); }
.cp-t tr.cp-cand td { background: color-mix(in srgb, #e37400 10%, transparent); }
.cp-t tr.cp-none td { background: color-mix(in srgb, var(--err, #b3261e) 9%, transparent); }
.cp-cards { display: flex; flex-wrap: wrap; gap: 4px; }
.cp-card { min-height: 0; padding: 3px 6px; }
.cp-card.on { outline: 3px solid #1e8e3e; }
.cp-red { color: var(--err, #b3261e); font-weight: 700; }

/* 📈 투자자 요약 — 월별 막대 (inv.js) */
.ivbars { display:flex; align-items:flex-end; gap:6px; height:140px; margin:8px 0 12px; }
.ivb { flex:1 1 0; display:flex; flex-direction:column; align-items:center; height:100%; justify-content:flex-end; min-width:0; }
.ivb i { display:block; width:100%; background:var(--pri, #1a73e8); border-radius:4px 4px 0 0; }
.ivb span { font-size:11px; color:var(--mut, #666); margin-top:3px; white-space:nowrap; }

/* 📁 회계 자료함 (drive.js) */
.drvz { display:block; border:2px dashed var(--line, #ccc); border-radius:12px; padding:22px 14px; text-align:center; cursor:pointer; margin:10px 0; }
.drvz.on { border-color:var(--pri, #1a73e8); background:rgba(26,115,232,.06); }
.drvup li.ok { color:#0a7d32; } .drvup li.bad { color:var(--err, #b3261e); }
/* 🧾 전시회용 인보이스 (fair.js, 10-31) — 폰 먼저 */
.frcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:6px 0 10px}
.frcard{display:flex;flex-direction:column;gap:2px;text-align:left;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--card,#fff);cursor:pointer;min-height:76px;font:inherit}
.frcard:active{background:var(--brand);color:#fff}
.frline{border-bottom:1px solid var(--line);padding:10px 0;display:flex;flex-direction:column;gap:6px}
.frbtns{display:flex;flex-wrap:wrap;gap:6px}.frbtns .chip{cursor:pointer;min-height:34px;border:1px solid var(--line)}.frbtns .chip.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.frq{display:inline-flex;align-items:center;gap:10px}.frq .btn{min-width:44px;min-height:40px;font-size:18px}
.frtots{margin-top:10px;display:flex;flex-direction:column;gap:4px;align-items:stretch}.frtot{display:flex;justify-content:space-between;gap:12px}.frtot.big{font-size:17px;border-top:2px solid var(--brand);padding-top:6px}.frtot.save{color:#B00020}
.frsvg{margin-top:10px;overflow:auto}.frsvg svg{width:100%;height:auto;max-width:1000px;border:1px solid var(--line)}
/* 🌐 글로벌 주문 v2 (gorder.js, 10-31) — 시안_글로벌주문_v2 */
.gsplit{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:12px;align-items:start}@media (max-width:1100px){.gsplit{grid-template-columns:minmax(0,1fr)}}
.gsrc{display:inline-block;white-space:nowrap;font-size:11.5px;font-weight:700;padding:0 6px;border-radius:5px;border:1px solid var(--line);color:#5c7270;font-family:ui-monospace,Consolas,monospace}.gsrc.cn{border-color:#b45309;color:#b45309}
.gbar{display:inline-block;width:46px;height:6px;border-radius:3px;background:var(--line);vertical-align:middle;margin-right:5px;overflow:hidden}.gbar i{display:block;height:100%;background:#15803d}.gpay{white-space:nowrap;font-size:13px}
.gdots{letter-spacing:2px;font-size:11px;color:var(--line)}.gdots i{font-style:normal}.gdots .y{color:#15803d}
.gpanel{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--card,#fff);position:sticky;top:8px}
.gsteps{display:flex;align-items:center;gap:2px;margin:8px 0;flex-wrap:wrap}.gsteps span{font-size:12px;padding:3px 9px;border-radius:999px;background:#eef3f3;color:#8a9b99}.gsteps .ok{background:#e6f4ea;color:#15803d}.gsteps .now{background:var(--brand);color:#fff;font-weight:700}.gsteps i{color:#b9c7c6;font-style:normal;font-size:11px}
.gtabs{display:flex;border-bottom:1px solid var(--line);margin:10px 0 8px;overflow-x:auto}.gtabs button{border:0;background:none;padding:7px 10px;font:inherit;font-size:13px;color:#5c7270;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap}.gtabs .on{color:var(--brand);border-color:var(--brand);font-weight:700}
.gnote{background:#fdf1e1;color:#b45309;border-radius:8px;padding:7px 10px;font-size:13px;margin:6px 0}.gnote.bad{background:#fdeceb;color:#b42318}.ginfo{background:#e2f1f0;border-radius:8px;padding:7px 10px;font-size:13px;margin:6px 0;text-align:center}
.gkv{display:grid;grid-template-columns:110px 1fr;gap:4px 10px;font-size:13.5px}.gkv dt{color:#5c7270}.gkv dd{margin:0}.tw2{width:100%;border-collapse:collapse;font-size:13px}.tw2 td,.tw2 th{padding:6px;border-bottom:1px solid var(--line);text-align:left}.tw2 .num{text-align:right}
.gpick{display:inline-flex;gap:4px;flex-wrap:wrap}.gpick button{border:1px solid var(--line);border-radius:8px;padding:4px 9px;background:none;font:inherit;font-size:12.5px;font-weight:600;color:#5c7270;cursor:pointer}.gpick .on{border:2px solid var(--brand);color:var(--brand);background:#e2f1f0}
.gsticky{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);padding:10px 0 0;margin-top:10px;flex-wrap:wrap}.gnew .tw{overflow-x:auto}
.gtoast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#13302e;color:#fff;border-radius:10px;padding:10px 14px;display:flex;gap:12px;align-items:center;z-index:400;box-shadow:0 6px 20px rgba(0,0,0,.25)}.gtoast .lk{color:#7fe0de}
/* 🧾 전시회 인보이스 화면 v2 (fair.js, 10-31) — PC 두 칸(왼쪽 입력 · 오른쪽 실시간 인보이스) · 폰 = 한 줄 + [미리보기] */
.frwrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:14px;align-items:start}.frright{position:sticky;top:8px}.frmob{display:none}
@media (max-width:1023px){.frwrap{grid-template-columns:1fr}.frright{display:none;position:static}.frright.show{display:block}.frmob{display:inline-flex}}
.frbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.frsvg.drop{outline:3px dashed #E0A800;outline-offset:4px}
.frcard img,.frph{width:100%;aspect-ratio:4/3;object-fit:contain;background:#f4f6f6;border-radius:8px}.frcard .chip{align-self:flex-start}
.frsteps{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.frsteps button{flex:1;min-width:110px;border:1px solid var(--line);border-radius:8px;padding:6px;background:none;font:inherit;font-size:13px;cursor:pointer;color:#5c7270}.frsteps .on{background:var(--brand);color:#fff;border-color:var(--brand);font-weight:700}
.frlogo{border:1px solid var(--line);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:6px}.frlogo-img{height:80px;display:flex;align-items:center;justify-content:center;background:#fafafa;border-radius:8px}.frlogo-img img{max-height:76px;max-width:100%}
.frpast{display:flex;gap:6px;flex-wrap:wrap}.frpast button{border:1px solid var(--line);border-radius:8px;background:#fff;padding:4px;cursor:pointer}.frpast img{height:40px}.frthumb{width:48px;height:36px;object-fit:contain}
.fair .g2,.gord .g2{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.fair .g2 label,.fair .g3 label,.fair .frleft>label,.gord .g3 label{display:flex;flex-direction:column;gap:4px;font-size:13px}
.gord textarea{width:100%;min-height:60px}.gord label{display:flex;flex-direction:column;gap:4px;font-size:13px}
.fair textarea{width:100%;min-height:60px}.frcx button{border:0;background:none;padding:8px 10px;margin:-8px -8px -8px 0;min-height:0;min-width:0;cursor:pointer;color:inherit;font:inherit}.frcard.on{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand) inset}.frcard .frq{display:flex;gap:6px;align-items:center}
@media (max-width:1023px){.frwrap{grid-template-columns:minmax(0,1fr)}.frleft,.frright{min-width:0}.frmob{position:sticky;bottom:8px;z-index:5;width:100%;justify-content:center;background:var(--card,#fff)}.frright.show .frsvg{overflow-x:auto}.frright.show .frsvg svg{min-width:680px}}
.frxl{display:flex;flex-direction:column;gap:4px;font-size:13px;margin-top:6px}
/* 🧾 전시회상담 전용 창 (?fair=1) — 메뉴·머리 없이 · 큰 탭 2개 · ⚙️ 셋팅 (이사님 10-31) */
body.fairapp .shell{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}body.fairapp header.top,body.fairapp #nav,body.fairapp #tabbar{display:none!important}body.fairapp .main{padding-top:max(8px,env(safe-area-inset-top))}
.frtop{display:flex;align-items:center;gap:10px;margin:2px 0 10px}.frname{font-weight:700;color:var(--brand);font-size:15px}
.frgear{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:12px;background:var(--card,#fff);min-height:44px;padding:0 14px;font:inherit;font-weight:600;cursor:pointer}.frgear.on{border-color:var(--brand);color:var(--brand)}.frgear svg{width:20px;height:20px}
.frbig{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.frbig button{min-height:64px;border-radius:14px;border:2px solid var(--line);background:var(--card,#fff);font:inherit;font-size:19px;font-weight:700;cursor:pointer;color:#33504e}
.frbig button.on{background:var(--brand);border-color:var(--brand);color:#fff}.frbig button:disabled{opacity:.45}.frbig b{font-size:15px;opacity:.85}.frsearch{width:100%;min-height:44px;margin-bottom:10px;font-size:16px}
@media (max-width:600px){.frbig button{font-size:16px;min-height:56px}}
/* 🧾 전시회 상담 전용 창 — UXUI 10-31: 위 고정 · 아래 고정 바(합계 + 주 버튼) · 조회 두 줄 행 */
body.fairapp .frtop,body.fairapp .frbig{position:sticky;z-index:6;background:var(--bg,#f3f6f6)}body.fairapp .frtop{top:0;margin:0;padding:6px 0}body.fairapp .frbig{top:56px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.frbig button svg{width:20px;height:20px;vertical-align:-3px}.frbig button:not(.on){color:var(--brand);border-color:var(--brand)}.frback{display:inline-block;margin:0 0 6px;min-height:44px}
.frfoot{position:sticky;bottom:0;z-index:6;display:none;align-items:center;gap:10px;background:var(--card,#fff);border-top:1px solid var(--line);padding:10px 4px;margin:10px -4px 0}.frfoot .btn.pri{min-height:52px;flex:1 1 45%;font-size:16px}.frsum{font-weight:700;font-family:ui-monospace,Consolas,monospace;font-size:13px;flex:1 1 40%}
@media (max-width:1023px){.frfoot{display:flex}}
.frrows{display:flex;flex-direction:column;gap:8px}.frday{font-size:13px;color:#5c7270;font-weight:700;margin:8px 2px 0}.frrow{display:flex;flex-direction:column;gap:4px;min-height:64px;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--card,#fff);padding:10px 12px;font:inherit;cursor:pointer}
.frrow .r1,.frrow .r2{display:flex;align-items:center;gap:10px}.frrow .r1 b{font-size:16px;flex:1}.frrow .chip.wait{background:#eef1f5;color:#64748b}.frrow .chip.done{background:#e6f4ea;color:#15803d}
.frfoot #frpvb{white-space:nowrap;min-height:44px;padding:0 6px;flex:0 0 auto}.frsum{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.fair .g2{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
/* 📝 전시회 상담 메모(내부용) · 📱 결과 화면 — UXUI 10-31 */
.frmemo{background:#fdf1e1;border-color:#f0dcc0}.frmemo textarea{width:100%;font-size:16px;margin-top:6px}.frmemo summary{font-weight:700;cursor:pointer;min-height:40px;display:flex;align-items:center;gap:6px}
.frths{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0}.frths img{width:64px;height:64px;object-fit:cover;border-radius:8px;cursor:zoom-in;border:1px solid var(--line);background:#fff}
.frth{position:relative}.frth button{position:absolute;top:-10px;right:-10px;width:28px;height:28px;border-radius:50%;border:0;background:#33504e;color:#fff;cursor:pointer;font-size:13px}
.frmm{border-top:1px dashed #e6cfa8;padding:8px 0}.frmt{white-space:pre-wrap;margin-top:2px}
.frzoom{position:fixed;inset:0;z-index:99;background:rgba(0,0,0,.88);overflow:auto;display:flex;padding:max(12px,env(safe-area-inset-top)) 8px 12px;cursor:zoom-out}.frzoom img{max-width:100%;margin:auto;background:#fff}
.fair.isres .frbig{display:none}.frrtop{display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:5;background:var(--bg,#f3f6f6);padding:6px 0}body.fairapp .frrtop{top:56px}.frrtop .lk{min-height:44px}
.frrimg{cursor:zoom-in}.frrimg svg{min-width:0;width:100%}.frres .frfoot .btn.pri{min-height:56px;flex:1 1 auto}
/* 🧾 전시회 셋팅 — 칸 이름은 칸 위 · 주소 전체 폭 여러 줄 (UXUI·이사님 캡처 10-31) */
.fair #frsl label,.fair .frleft label{display:flex;flex-direction:column;gap:4px;font-size:13px}.fair #frsl label>input,.fair #frsl label>select,.fair #frsl label>textarea{width:100%;font-size:15px}
.fair .frwide{grid-column:1/-1}.fair .frwide textarea{width:100%;resize:vertical}.fair .frsub{margin:12px 0 4px;color:#5c7270}.fair #frsl>*+*{margin-top:8px}
/* 📋 NOTES(인보이스) 체크 목록 · 셋팅 기본 문장 줄 (이사님 10-31) */
.frnrow{display:flex;align-items:center;gap:8px;margin:6px 0}.frnrow input[data-nt]{flex:1;min-width:0;min-height:40px;font-size:15px}.frnrow input[type=checkbox]{width:22px;height:22px;flex:none}.frnrow .lk{min-width:32px;min-height:40px}
.frnotes summary{font-weight:700;cursor:pointer;min-height:40px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.frnotes summary svg{width:18px;height:18px}.frnotes summary .s{font-weight:400}
.chip.bad{background:#fdecea;color:#b42318;margin-left:6px}
.fair textarea{font-family:inherit}
/* 🗂 상담 카드 (이사님 10-31) */
.frcard1 .frrtop b{font-size:18px}.frlast{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1 1 auto}.frrow .r2{min-width:0}
.frbigbtn{width:100%;min-height:52px;font-size:16px;margin-top:10px}.chip.frtag{font-size:11px;padding:1px 8px;background:#eef3f3;color:#33504e}
/* 🗂 상담 카드 한 손 조작 — 아래 고정 입력줄 · 위 이름 크게 · 목록 썸네일 (UXUI 10-31) */
.frchat{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--card,#fff);border-top:1px solid var(--line);padding:8px 12px max(8px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:6px;box-shadow:0 -4px 12px rgba(0,0,0,.06)}
.frnew1+.frchat{flex-direction:row;align-items:center}.frchat .frbtns{flex-wrap:nowrap;overflow-x:auto}.frcrow2{display:flex;align-items:flex-end;gap:8px}.frcrow2 textarea{flex:1;min-width:0;min-height:48px;max-height:30vh;font-size:16px;resize:none}
.frcam{min-width:48px;min-height:48px;font-size:20px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center}.frchat .btn.pri{min-height:48px;padding:0 18px;font-size:16px}
.frcard1,.frnew1{margin-bottom:170px}.frnew1 input{font-size:16px;min-height:48px;width:100%}.frnew1 label{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}
.frctop{display:flex;align-items:center;gap:10px;margin-bottom:8px}.frctop .lk{min-width:48px;min-height:48px;font-size:20px}.frwho{flex:1;min-width:0;display:flex;flex-direction:column}.frwho b{font-size:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.frctop .btn{min-height:44px;border-color:var(--brand);color:var(--brand)}.frcontact summary{cursor:pointer;min-height:40px;display:flex;align-items:center;color:#33504e}
.frcrow{flex-direction:row;align-items:center;gap:10px}.frcth{width:44px;height:44px;object-fit:cover;border-radius:8px;flex:none}.frcmain{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}
@media (min-width:1024px){.frchat{left:50%;transform:translateX(-50%);max-width:760px;border-radius:12px 12px 0 0;border:1px solid var(--line)}}
.frrow .r1 b.code{white-space:nowrap}
/* ✈️ 근태 — 해외출장 주말근무 8시간 (이사님 11-01) */
.chip.atfix{display:inline-block;margin-top:4px;background:#e6f0fb;color:#1d4f91;font-size:11px;line-height:1.35;white-space:normal;padding:3px 6px}.chip.atfix b{font-size:13px}
/* 🔎 부품 검색 나열형 (이사님 11-02) — 왼쪽 제품 고르기 250 · 가운데 나열 · 오른쪽 카드 300 · 1100 이하 카드 전체 화면 */
.psn .pssq{width:100%;min-height:48px;font-size:16px;margin-bottom:10px}.psprod{display:none}
.psw3{display:grid;grid-template-columns:250px minmax(0,1fr) 360px;gap:12px;align-items:start}.psw3 .psl{max-height:calc(100vh - 180px);overflow:auto;padding:10px;position:sticky;top:8px}.psw3 .psc{position:sticky;top:8px;max-height:calc(100vh - 120px);overflow:auto;padding:12px}
.psl h4{margin:0 0 6px}.psrec{margin-bottom:6px}.psl .pst-r svg{width:16px;height:16px;flex:none;opacity:.6}.psl [data-pc]{cursor:pointer}.psl [data-pc]:hover{text-decoration:underline}
.psmid{min-width:0}.psmh{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.psmh>b{font-size:16px}.psjump{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;margin-bottom:6px}.psjump .chip{white-space:nowrap}.psjump .chip b{opacity:.7}
.psgrp{position:sticky;top:0;z-index:2;background:var(--bg,#f3f6f6);border-radius:8px;padding:6px 10px;margin:10px 0 4px;font-weight:700;font-size:14px;color:var(--brand)}
.psrow{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 6px;border-bottom:1px solid var(--line);cursor:pointer;min-height:64px}.psrow:hover,.psrow.on{background:var(--go-bg,#e2f1f0);border-radius:8px}
.pspic{width:56px;height:56px;border-radius:8px;object-fit:contain;background:#fff;border:1px solid var(--line)}.pspic.none{display:flex;align-items:center;justify-content:center;font-size:11px;color:#8a9b99;background:var(--bg,#f3f6f6);border:0;text-align:center}
.psnm{display:flex;flex-direction:column;min-width:0}.psnm>b{font-size:15.5px;line-height:1.3}.pszh{font-size:13px;color:#5c7270}.psmeta{font-size:12.5px;color:#8a9b99;margin-top:2px;overflow:hidden;text-overflow:ellipsis}
.psq{text-align:right;font:700 15px ui-monospace,Consolas,monospace;color:var(--brand);white-space:nowrap}.psq small{display:block;font:500 11px inherit;font-family:inherit;color:#8a9b99}.psmore{text-align:center;color:#8a9b99;font-size:13px;padding:12px}
@media (max-width:1100px){.psw3{grid-template-columns:230px minmax(0,1fr)}.psw3 .psc{display:none}.psw3 .psc.full{display:block;position:fixed;inset:0;z-index:60;max-height:none;border-radius:0;overflow:auto;padding:12px 14px max(14px,env(safe-area-inset-bottom))}.psback{min-height:48px;margin-bottom:8px}}
@media (max-width:760px){.psw3{grid-template-columns:minmax(0,1fr)}.psw3 .psl{display:none;position:static;max-height:60vh}.psw3.side .psl{display:block}.psprod{display:flex;align-items:center;gap:8px;width:100%;min-height:48px;border:1px solid var(--line);border-radius:10px;background:var(--card,#fff);padding:0 12px;font:inherit;margin-bottom:8px;cursor:pointer}.psprod svg{width:18px;height:18px}}
.psc .psback{display:none}.psc.full .psback{display:inline-flex}
/* 🔎 부품 검색 v2 (이사님 11-02) — 제품 고르기 전 안내 · 색 칩 · 탭 2개 · 조립 구성 트리 */
.pssug{margin:-6px 0 8px}.pssug:empty{display:none}.pssug .pst-r{background:var(--card,#fff);border-bottom:1px solid var(--line)}
.psneed{padding:24px;text-align:center}.psneed p{margin:4px 0}.psrecs{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:14px}.psrecb{min-height:56px;font-size:16px;padding:0 18px}.psrecb svg{width:18px;height:18px}
.pscol{margin-bottom:8px}.pstab{margin:4px 0 10px}.pstab button{min-height:44px;font-size:15px}.pstab b{opacity:.75;margin-left:4px}
.psasmw{margin-bottom:8px}.psasm details{margin-left:14px;border-left:2px solid var(--line);padding-left:8px}.psasm>details{margin-left:0}.psasm summary{cursor:pointer;min-height:40px;display:flex;align-items:center;gap:6px}.psasm summary [data-sel]:hover{text-decoration:underline}
.psleaf{color:#8a9b99;padding:4px 0 6px 6px}.psqline{margin:0 0 8px;color:var(--brand)}.psqline:empty{display:none}
/* 📍 카드 '들어가는 곳' → 조립 구성 그 자리 (이사님 11-02) */
.pswh{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin-top:6px}.pswh .lk{text-align:left;min-height:32px}.psleafd>summary{list-style:none;cursor:pointer}.psll{font-size:13px;color:#8a9b99;padding:2px 0 6px 6px;line-height:1.7}.psll .me{font-weight:700;color:var(--ink,#13302e)}
.psasm summary.flash{background:#fff3b0;border-radius:6px;transition:background .4s}
/* 최근에 고른 제품 = 이름 붙이고 '골라진 것'처럼 안 보이게 · 긴 이름은 … (이사님 11-02 '왜 기본으로 골라져 있지') */
.psrech{margin:2px 0 4px}.psneed .psrech{margin-top:16px}.psrec .chip{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:transparent;border-style:dashed}.psrec .chip.on{border-style:solid}.psl{overflow-x:hidden}
.psrecb{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.psprodimg{width:96px;height:72px;object-fit:contain;border-radius:10px;border:1px solid var(--line);background:#fff;cursor:pointer;flex:none}.psprodimg.none{display:inline-flex;align-items:center;justify-content:center;font-size:12px;color:#8a9b99;background:var(--bg,#f3f6f6);border:0}   /* 🖼 완제품 그림 (11-02) */
.psasmimg{width:44px;height:44px;object-fit:contain;border-radius:8px;border:1px solid var(--line);background:#fff;flex:none;cursor:pointer}.psasmimg.none{border:0;background:var(--bg,#f3f6f6)}.psasm summary{min-height:52px}   /* 🖼 조립 구성 그림 (11-02) */
.chip.ghw{font-size:11px;padding:1px 7px;background:#eef1f5;color:#64748b;border:1px dashed #b9c4d0}   /* 🗂 하이웍스 옛 기록 칩 (8-15) */
/* 🌐 글로벌 주문 v3 (시안_글로벌주문_v3, 11-03) — 4단계 새 주문 · 필수 * · 칸 아래 오류 · 회색 요약 줄 · 접기 · 선적 덩어리 · 휴대폰 카드/전체 화면 */
.gord .gwiz{display:flex;gap:6px;margin:0 0 10px}.gord .gwiz span,.gnew .gwiz span{flex:1;text-align:center;font-size:12.5px;padding:6px 4px;border-radius:8px;background:#eef3f3;color:#8a9b99}
.gnew .gwiz{display:flex;gap:6px;margin:0 0 10px}.gnew .gwiz .ok,.gord .gwiz .ok{background:#e6f4ea;color:#15803d}.gnew .gwiz .now,.gord .gwiz .now{background:var(--pri,#0e7c7b);color:#fff;font-weight:700}
.greq{color:#b42318;font-weight:700}.gerr{color:#b42318;font-size:12.5px;margin-top:3px;display:block}.gerr:empty{display:none}.gbad{color:#b42318}.gok{color:#15803d}
.gauto{display:flex;flex-wrap:wrap;gap:6px;align-items:center;background:#f3f6f6;border-radius:8px;padding:6px 10px;font-size:13px}
.big1{font-size:16px;min-height:44px}.gnew input.bad{border-color:#b42318}
.gopt{border:1px dashed var(--line);border-radius:10px;padding:8px 10px;margin-top:8px;font-size:13px}.gopt summary{cursor:pointer;color:#5c7270}.gopt[open] summary{margin-bottom:6px}
.gopt2{display:flex;align-items:center;gap:6px;width:100%;border:1px dashed var(--line);border-radius:10px;padding:10px;background:none;font:inherit;font-size:13px;color:#5c7270;cursor:pointer;text-align:left;margin-top:8px}
.gblk{border:1px solid var(--line);border-radius:10px;padding:10px;margin:8px 0}.gblk h4{margin:0 0 6px;font-size:14px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.gdl{display:grid;grid-template-columns:1fr auto;gap:6px 10px;font-size:13px;align-items:center}.gdl input[type=date]{max-width:9.5em}
.gact{margin:8px 0}.gact .btn.big{width:100%;justify-content:center}.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.gremit{border-top:1px solid var(--line);padding-top:8px;margin-top:8px}.gremit .gauto{margin-top:8px}
.gempty{border:2px dashed var(--line);border-radius:12px;padding:22px;text-align:center;color:#5c7270}.gempty .onb{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;text-align:left}
.gempty .onb div{border:1px solid var(--line);border-radius:10px;padding:10px;font-size:13px}.gempty .onb b{display:block;color:var(--ink,#13302e)}
.gord .gmob{display:none}.gord .gmob .mrow{border-bottom:1px solid var(--line);padding:9px 2px;cursor:pointer}.gord .gmob .t{display:flex;justify-content:space-between;gap:6px;align-items:center}
.gord .gback{display:none}
@media (max-width:760px){
  .gord .gwide{display:none}.gord .gmob{display:block}.gord .g4,.gempty .onb{grid-template-columns:repeat(2,1fr)}
  .gord #gop.gopen{position:fixed;inset:0;z-index:60;background:var(--bg,#fff);overflow:auto;padding:10px 10px 90px}.gord #gop.gopen .gpanel{position:static;border:0;padding:0}body:has(.gord #gop.gopen) .askbg{z-index:70}
  .gord #gop.gopen .gback{display:inline-block;font-size:20px;padding:0 8px 0 0}
  .gord #gop.gopen .gact{position:fixed;left:0;right:0;bottom:0;z-index:61;background:var(--card,#fff);border-top:1px solid var(--line);padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px));margin:0}
  .gord .gtabs2 .seg{overflow-x:auto;flex-wrap:nowrap;max-width:100%}
}
.gord .gsplit:has(> #gop:empty){grid-template-columns:1fr}.gord .gwide{overflow-x:auto}.gord .gpay{white-space:normal;min-width:8.5em}   /* 카드 안 열면 목록 넓게 */
.gord label.btn,.ask label.btn{display:inline-flex;flex-direction:row;align-items:center;gap:6px}.gord .seg button{white-space:nowrap}
@media (max-width:760px){.gord .bar .seg,.gord .seg{overflow-x:auto;flex-wrap:nowrap;max-width:100%}}
@media (max-width:760px){#cbpl .cbph .mini thead{display:none}#cbpl .cbph .mini tr{display:block;border-bottom:1px solid var(--line);padding:6px 0}#cbpl .cbph .mini td{display:inline;border:0;padding:0}#cbpl .cbph .mini td+td:not(:empty)::before{content:" · ";color:var(--muted)}}   /* 단가 이력 폰 = 한 건 한 줄 (UXUI 11-11) */
@media (max-width:760px){#cnok{max-width:100%}#cnok button{word-break:keep-all;padding:4px 8px;flex:1 1 auto;min-width:0}}   /* 중국 오더 탭 5칸 — 낱말 중간에서 안 꺾이게, 칸 높이는 기본(같은 높이) */
/* 💸 今日付款 오늘 낼 돈 (cnacc.js cnToday, 11-04) */
.tdl{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px;align-items:start}@media(max-width:950px){.tdl{grid-template-columns:1fr}}
.tde{border:2px dashed var(--line);border-radius:14px;padding:28px 16px;text-align:center}.tde b{display:block;font-size:17px;margin:6px 0}
.tdg{font-size:13px;font-weight:700;background:var(--soft,#e2f1f0);border-radius:8px;padding:5px 10px;margin:10px 0 4px}
.tdr{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 6px;border-bottom:1px solid var(--line)}.tdr.y{background:var(--warn-bg,#fdf1e1)}
.tdr .nm{font-weight:700}.tdr .tda{font-family:ui-monospace,Consolas,monospace;font-weight:800;text-align:right;width:8.5em}
.tdf{display:flex;align-items:center;gap:10px;border-top:2px solid var(--line);padding-top:10px;margin-top:10px}
.tdb{border:1px solid var(--line);border-radius:12px;padding:10px}.tdbr{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:6px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.tds{display:flex;flex-direction:column;gap:8px;max-width:520px}.tds label{display:flex;flex-direction:column;gap:4px}.tdc{display:flex;gap:5px;flex-wrap:wrap;align-items:center}
.chip.pick{border:1px solid var(--line);background:transparent;cursor:pointer;min-height:30px}.chip.pick.on{background:var(--pri,#0e7c7b);border-color:var(--pri,#0e7c7b);color:#fff}
.tdnew{border:1px solid var(--pri,#0e7c7b);border-radius:10px;padding:9px 12px;display:flex;flex-direction:column;gap:6px}
.tds .tdt{flex-direction:row;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:9px 12px}.tdx{padding:0 4px 4px}
.gkr{border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin:8px 0}.gkr .mr{display:flex;justify-content:space-between;gap:8px;padding:3px 0}
.gfrom{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:8px 0;padding:8px 10px;border:1px solid var(--line);border-radius:10px}
#cnt2.on{border-color:var(--pri,#0e7c7b);font-weight:700}
/* 🚢 수출포장 한 장 (UXUI 시안_수출포장, 11-06) — .mr 은 다른 화면도 써서 새 클래스로 */
.xpd h3 .no,.xpd summary .no{color:var(--brand)}
.xpd [id^=xs]{scroll-margin-top:64px}
.xpd .dirty{box-shadow:0 0 0 2px var(--brand-soft);border-color:var(--brand)}
.xpd input[data-rq]:placeholder-shown{background:#FFF6CC;border-color:var(--warn);color:#13302e}
.xyl{background:#FFF6CC;color:#13302e}
.xpm{position:sticky;top:-20px;z-index:3;display:flex;align-items:center;gap:4px;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:6px 8px;margin-bottom:12px;overflow-x:auto}
.xpm button{flex:none;min-height:32px;padding:0 9px;border:0;border-radius:8px;background:transparent;color:var(--ink);font:inherit;font-size:13px;white-space:nowrap;cursor:pointer}
.xpm button.ok{color:var(--done)}.xpm button.todo{background:var(--warn-bg);color:var(--warn);font-weight:600}
.xpm{scrollbar-width:none}.xpm::-webkit-scrollbar{display:none}
.xpm .sum{margin-left:auto;padding-left:12px;font-family:var(--mono);font-size:12.5px;color:var(--muted);white-space:nowrap}
.xsv{position:sticky;bottom:0;z-index:3;display:flex;align-items:center;gap:10px;background:var(--ink);color:var(--paper);border-radius:10px;padding:8px 10px 8px 14px;margin-top:6px;font-size:14px}
.xsv[hidden]{display:none}.xsv .btn{border-color:transparent}
.xseg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;max-width:100%}
.xseg button{min-height:40px;padding:0 14px;border:0;border-right:1px solid var(--line);background:var(--paper);color:var(--ink);font:inherit;font-size:13.5px;cursor:pointer}
.xseg button:last-child{border-right:0}.xseg button.on{background:var(--brand);color:#fff;font-weight:600}
.xpk{container-type:inline-size}
.xur{display:grid;grid-template-columns:minmax(0,1fr) 44px 232px 76px 172px;gap:0 10px;align-items:center;padding:9px 4px;border-bottom:1px solid var(--line)}
.xur.h{padding:4px;font-size:12px;color:var(--muted);font-weight:600}.xur.h .q{font:inherit}
.xur .nm{min-width:0}.xur .nm b{font-weight:600;overflow-wrap:anywhere}
.xur .sub{display:block;margin:0;padding:0;min-height:0;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.xur .q{text-align:right;font-family:var(--mono);font-size:13.5px}
.xur select{width:100%;min-width:0;min-height:38px}.xur .nbox{width:100%;min-height:38px;text-align:right}
.xur.mg{background:var(--brand-soft)}.xur.mg .unit{grid-column:3 / 5;font-size:13px;color:var(--brand-deep);font-weight:600}
.xur .plus{display:block;margin-top:3px;font-size:12.5px;color:var(--brand-deep);font-weight:600}
.xur .lkd{display:block;margin-top:3px;font-size:12.5px;color:var(--warn)}
.xft{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 4px 2px;font-size:14px}
.xpx{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--bg);border-radius:9px;padding:8px 10px;margin-bottom:10px;font-size:13.5px}
.xh4{font-size:14.5px;margin:14px 0 6px}
.xpk .asa{margin-top:10px}
.xpt{width:100%;min-width:760px;border-collapse:collapse;font-size:13.5px}.xpl{min-width:640px}
.xpt th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;padding:6px 5px;border-bottom:1px solid var(--line);white-space:nowrap}
.xpt th.w1{width:84px}.xpt th.w2{width:72px}.xpt th.w3{width:96px}
.xpt td{padding:5px;border-bottom:1px solid var(--line);vertical-align:middle}
.xpt tr.grp td{background:var(--bg);font-size:12.5px;font-weight:600;color:var(--muted);padding:4px 8px}
.xpt .nbox{width:100%;min-width:0;text-align:right}.xpt .xtx{width:100%;min-width:0;text-align:left;border:1px solid var(--line);border-radius:8px;min-height:32px;padding:0 6px}
.xpt textarea.xtx{display:block;resize:none;overflow:hidden;font:inherit;line-height:1.35;padding:6px}
.xpt .xbx{white-space:nowrap}
.xpt .xon{display:none}
.xen{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}
.xen>div{overflow-wrap:anywhere}.xen input{width:100%;min-width:0}
.xdoc{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:10px}.xdoc>div{background:var(--bg);border-radius:9px;padding:10px;min-width:0}
@container (max-width:760px){
  .xur{grid-template-columns:minmax(0,1fr) 76px 150px}
  .xur.h{display:none}
  .xur .nm{grid-column:1 / 3}.xur .q{grid-column:3;grid-row:1}
  .xur .unit{grid-column:1;margin-top:8px}.xur .box{grid-column:2;margin-top:8px}.xur .mgc{grid-column:3;margin-top:8px}
  .xur.mg .unit{grid-column:1 / 3}
}
@container (max-width:480px){
  .xur{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:12px 2px}
  .xur .nm{grid-column:1 / 3;grid-row:1;padding-right:34px}.xur .q{grid-column:2;grid-row:1;align-self:start}
  .xur .unit{grid-column:1 / 3;margin-top:8px}.xur .box{grid-column:1;margin-top:8px}.xur .mgc{grid-column:2;margin-top:8px}
  .xur.mg .unit{grid-column:1 / 3}.xur.mg .mgc{grid-column:1 / 3}
  .xur [data-l]::before,.xpt td[data-l]::before{content:attr(data-l);display:block;font-size:12px;color:var(--muted);font-weight:600;margin-bottom:3px}
  #main .xur select,#main .xur .nbox,#main .xpt .nbox{height:46px}#main .xpt textarea.xtx{min-height:46px}
  .xpk .tw{overflow:visible}
  .xpt,.xpt tbody{display:block;min-width:0}.xpt thead,.xpt tr.grp,.xpt .xq{display:none}
  .xpt tr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:10px}
  .xpt td{display:block;padding:0;border:0;min-width:0}.xpt td.num{text-align:left}
  .xpt .xbx,.xpt .xc1{grid-column:1 / -1}.xpt .xc2{grid-column:span 2}
  .xpt .xon{display:inline}.xpt .xbx{white-space:normal}
}
@media (max-width:760px){
  .xpm{top:-14px}.xpm .w,.xpm .sum{display:none}
  .xsv .btn{min-height:46px}
}
/* 🔎 구매 자재 찾기 (UXUI 시안_구매자재찾기, 11-06) */
.ask.kf{width:min(960px,100%);display:flex;flex-direction:column;gap:8px}
.ask.kf .mb{display:flex;flex-direction:column;gap:8px;min-height:0;flex:1}
.kf-q{width:100%;min-height:46px;font-size:16px}
.kf-t{align-self:flex-start}.kf-q,.kf-t,.kf-bar{flex:none}
.kf-b{flex:1;min-height:200px;overflow:auto}
.kf-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));gap:8px}
.kf-c{display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:6px;min-width:0}
.kf-c .kp-im{width:56px;height:56px;flex:none}
.kf-n{flex:1;min-width:0}.kf-n b{display:block;font-weight:600;overflow-wrap:anywhere;font-size:13.5px}
.kf-u{display:block;border:0;background:none;padding:2px 0;color:var(--brand-deep);font:inherit;font-size:12.5px;text-align:left;cursor:pointer;text-decoration:underline}
.kf-chips{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}
.kf-hint{background:var(--brand-soft);color:var(--brand-deep);border-radius:8px;padding:6px 10px;font-size:13px;margin-bottom:6px}
.kf-nf{display:flex;align-items:center;gap:8px;margin:10px 0 2px}
.kf-bar{display:flex;align-items:center;gap:10px;background:var(--ink);color:var(--paper);border-radius:10px;padding:8px 10px 8px 14px;font-size:14px}.kf-bar .btn{border-color:transparent}
.kf-p{display:flex;gap:8px;align-items:center;width:100%;text-align:left;border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:6px;margin-bottom:6px;cursor:pointer;min-height:48px}
@media (max-width:760px){
  .askbg:has(.ask.kf){padding:0}
  .ask.kf{width:100%;height:100%;max-height:100%;border-radius:0;padding:12px}
  .kf-c .btn,.kf-chips .pill,.kf-nf .btn{min-height:44px}.kf-u{min-height:36px}
}
/* 💰 글로벌 정산 · 확인할 것 (8-22 · 8-24) */
.chip.gnone{background:transparent;border:1px solid var(--line);color:var(--muted)}
.gst td.num,.gst th.num{text-align:right;font-family:var(--mono);white-space:nowrap}.gst .gc{font-size:11px;color:var(--muted)}
.gflt{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:10px 0}.gflt input[type=search]{flex:1 1 12em;min-width:0}.gflt .ck{display:inline-flex;flex-direction:row;white-space:nowrap}.gmore{display:inline-block}.gmore summary{display:none}.gmore select{min-height:38px;margin-right:6px}.gst td.s{white-space:nowrap}
.gsum{position:sticky;bottom:0;display:flex;gap:18px;flex-wrap:wrap;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin-top:8px;font-family:var(--mono);font-size:13px}
.gsm{display:none}.gsc{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px;background:var(--paper);cursor:pointer}.gsc .t{display:flex;align-items:center;gap:6px}.gsr{font-size:17px;font-weight:700;margin:4px 0 2px}.gsr.z{color:var(--muted);font-weight:500}
.gtg{margin-bottom:14px}.gtg h3{margin:0 0 6px}
.gtd{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:center;border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:8px 12px;margin-bottom:6px}
.gtd-m{min-width:0;overflow-wrap:anywhere}.gtd-q{font-size:14px;margin-top:2px}.gtd-b{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.gtd-w{grid-column:1 / -1;display:flex;gap:6px}.gtd-w[hidden]{display:none}.gtd-w input{flex:1;min-width:0}
@media (max-width:480px){
  .gsw{display:none}.gsm{display:block}.gmore{display:block;flex:1 1 100%}.gmore summary{display:block;font-size:13px;color:var(--muted);cursor:pointer}.gmore select{width:100%;margin-top:6px}
  .gtd{grid-template-columns:minmax(0,1fr)}.gtd-b{justify-content:stretch}.gtd-b .btn{flex:1 1 0;min-height:46px}
}
/* 🇨🇳 자재입고 — 구매 건별 접기 · PC 표 · 폰 카드 (교육 묶음 C) */
.cig{margin-bottom:8px}.cit{width:100%;font-size:13.5px}.cit td,.cit th{padding:5px 6px}.cit .nbox{width:100%;min-width:60px;text-align:right}.cit td.n{text-align:right}
@media (max-width:560px){
  .cig .tw{border:0;background:transparent;overflow:visible}.cit,.cit tbody{display:block}.cit thead{display:none}
  .cit tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;border-bottom:1px solid var(--line);padding:8px 10px}.cit td{display:block;padding:0;border:0;min-width:0}.cit td.n{text-align:left}
  .cit .ci1{grid-column:1 / -1}.cit td[data-l]::before{content:attr(data-l);display:block;font-size:12px;color:var(--muted);font-weight:600;margin-bottom:2px}.cit .nbox{min-height:46px}
}
/* 🕘 월 근태 펼친 날짜 칸 */
.csd{display:flex;flex-wrap:wrap;gap:4px}.csd span{min-width:40px;text-align:center;font-size:12px;border:1px solid var(--line);border-radius:6px;padding:2px 3px}.csd b{display:block;font-weight:600;color:var(--muted)}.csd .r b{color:var(--bad)}.csd i{display:block;font-style:normal;color:var(--warn)}
/* 📥 입고 (시안_입고.html) */
.kn-tabs{display:flex;border-bottom:1px solid var(--line);margin:0 0 10px}.kn-tabs button{flex:1;min-height:var(--touch);border:0;border-bottom:3px solid transparent;background:none;color:var(--muted);font-weight:600;font-size:14.5px;cursor:pointer}.kn-tabs button.on{color:var(--brand-deep);border-color:var(--brand)}
.kn-r2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.kn-q{width:100%;min-height:var(--touch);border:1px solid var(--line);border-radius:10px;padding:0 12px;background:var(--paper);margin-bottom:10px}
.kn-chips{display:flex;gap:6px;overflow-x:auto;margin-bottom:10px;scrollbar-width:none}.kn-chips::-webkit-scrollbar{display:none}.kn-chips button{flex:none;min-height:38px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:var(--paper);font-size:13.5px;cursor:pointer}.kn-chips button.on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.kn-cap{font-size:13px;font-weight:600;margin:0 2px 6px}.kn-cap.bad{color:var(--bad)}
.kn-in{display:block;width:100%;text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px;cursor:pointer;color:inherit}.kn-in.late{border-left:4px solid var(--bad)}.kn-in .h{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.kn-in .v{display:block;font-weight:700;font-size:15.5px;margin-top:2px}.kn-in .w{display:block;font-size:14px;margin-top:1px;overflow-wrap:anywhere}.kn-in .f{display:flex;gap:8px;align-items:center;margin-top:4px;font-size:12.5px;color:var(--muted);flex-wrap:wrap}.kn-in .d{font-weight:700;font-size:13px}.kn-in .d.late{color:var(--bad)}.kn-in .d.today{color:var(--warn)}
.kn-it{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:8px;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:6px;font-size:14px}.kn-it .t{font-size:12.5px;color:var(--muted)}.kn-it b{font-size:16px}
.kn-st{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:6px;cursor:pointer;color:inherit}.kn-st img,.kn-st .ph{width:56px;height:56px;border-radius:8px;object-fit:cover;background:var(--bg)}.kn-st .ph{display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:11px;text-align:center;border:1px dashed var(--line)}.kn-st .n{font-weight:600;font-size:14px;line-height:1.3;overflow-wrap:anywhere}
.kn-st .qty,.kn-sheet .qty{font-size:20px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.kn-st .qty.neg,.kn-sheet .qty.neg{color:var(--bad)}
.kn-sheet{position:fixed;inset:0;z-index:40;background:var(--bg);display:flex;justify-content:center}.kn-box{flex:1;min-width:0;display:flex;flex-direction:column}.kn-box .sh{background:var(--paper);padding:10px 12px;border-bottom:1px solid var(--line);display:flex;gap:8px;align-items:center}.kn-box .sh b{font-size:16px}.kn-box .sb{flex:1;overflow:auto;padding:10px 12px;position:relative}.kn-box .sf{background:var(--ink);color:var(--paper);padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px));display:flex;align-items:center;gap:10px;font-size:14px}.kn-box .sf .btn{border-color:transparent}.kn-box .sp{flex:1}
.kn-ln{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px}.kn-ln.cur{border:2px solid var(--brand)}.kn-ln .t{display:flex;gap:6px;align-items:center;width:100%;background:none;border:0;padding:0;text-align:left;cursor:pointer;font-weight:600;color:inherit}.kn-ln .t>span:first-child{flex:1;overflow-wrap:anywhere}
.kn-num{display:grid;grid-template-columns:var(--touch) minmax(0,1fr) var(--touch);gap:6px}.kn-num button{min-height:var(--touch);border:1px solid var(--line);border-radius:10px;background:var(--paper);font-size:22px;cursor:pointer}.kn-num input,.kn-one{min-height:52px;width:100%;border:1px solid var(--line);border-radius:10px;text-align:center;font-size:22px;font-weight:700;background:var(--paper)}
.kn-one{border:2px solid var(--warn);background:var(--warn-bg)}.kn-one.fill{border:1px solid var(--line);background:var(--paper)}.kn-one::placeholder{font-size:15px;font-weight:500;color:var(--muted)}
.kn-m{font-size:13.5px;border-radius:9px;padding:7px 10px;margin-top:6px}.kn-m.w{background:var(--warn-bg);color:var(--warn)}.kn-m.o{background:var(--done-bg);color:var(--done)}.kn-m.i{background:var(--wait-bg);color:var(--wait)}.kn-m.b{background:var(--bad-bg);color:var(--bad)}
.kn-nc{margin-top:6px}.kn-nc.on{background:var(--wait-bg);border-color:var(--wait)}.kn-hit{margin-top:6px}
.kn-dest{display:flex;gap:8px;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:6px 10px;margin-bottom:8px;font-size:14px}.kn-dest input{flex:1;min-width:0;min-height:40px;border:1px solid var(--line);border-radius:8px;padding:0 8px;background:var(--paper)}
.kn-lg{display:grid;grid-template-columns:44px auto minmax(0,1fr) auto;gap:6px;padding:7px 0;border-bottom:1px solid var(--line);font-size:13.5px;align-items:center}
@media (min-width:761px){.kn-in{display:grid;grid-template-columns:130px minmax(0,150px) minmax(0,1fr) 230px;gap:10px;align-items:center;padding:8px 12px}.kn-in .f,.kn-in .v,.kn-in .w{margin:0}.kn-r2{grid-template-columns:auto auto;justify-content:start}.kn-g2{display:grid;grid-template-columns:1fr 1fr;gap:6px}.kn-g2>*{margin:0}
  .kn-sheet{background:rgba(0,0,0,.42);align-items:center}.kn-box{flex:none;width:520px;max-height:calc(100vh - 48px);height:calc(100vh - 48px);background:var(--bg);border-radius:14px;overflow:hidden;box-shadow:0 12px 40px rgba(0,0,0,.3)}}
/* 🔎 달력 찾기 */
.clfind{margin:8px 0}.clfind .search{width:100%}.clhit{display:block;width:100%;text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-top:6px;cursor:pointer;color:inherit;min-height:44px}
/* 🧪 NEW BOM (시안_NEWBOM.html) */
.nb-w{display:grid;grid-template-columns:380px minmax(0,1fr);gap:10px;height:calc(100vh - 96px);min-height:520px}.nb-l{display:flex;flex-direction:column;gap:6px;min-height:0;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:8px}.nb-l>.nb-in{width:100%;box-sizing:border-box}.nb-l .nb-seg button{padding:0 7px;font-size:12.5px}.nb-pl{flex:1;min-height:0;overflow:auto}.nb-pg{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:none;cursor:pointer;font-size:12.5px;color:var(--muted);padding:8px 2px 6px;font-weight:600}.nb-pi{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px;align-items:center;width:100%;text-align:left;min-height:38px;padding:4px 4px;border:0;border-bottom:1px solid var(--line);background:none;color:inherit;font-size:13px;cursor:pointer}.nb-pi.sub{padding-left:18px}.nb-pi.on{background:var(--brand-soft)}.nb-pi .nm{min-width:0;overflow-wrap:anywhere}.nb-lf{display:grid;gap:4px;border-top:1px solid var(--line);padding-top:6px}.nu-l{max-height:280px;overflow:auto;margin-top:6px}.nu-r{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:6px;align-items:center;min-height:32px;border-bottom:1px solid var(--line);font-size:13.5px}.nb-w.fold{grid-template-columns:minmax(0,1fr)}.nb-w.fold .nb-l{display:none}.nb-nm{width:100%;box-sizing:border-box;margin-top:6px}.nb-wn{font-weight:600;color:var(--bad)}.nb-tabs button.on .nb-wn{color:inherit}.cofck{display:flex!important;flex-direction:row!important;align-items:center;gap:6px}.cofck input{width:auto!important;flex:none}.nb-w.wide{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.nb-w.wide .nb-l{padding:6px}.nb-w.wide .nb-l>:not(.nb-tb){display:none}.nb-w.wide .nb-tb{max-width:420px}.mln .btns{align-items:center}.mdiv{display:inline-block;width:1px;height:22px;background:var(--line);margin:0 6px;vertical-align:middle}.lgv{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;max-height:60vh;overflow:auto}.pbw{font-size:14px;font-weight:600;text-align:left}.nb-seg button{word-break:keep-all}.pbt{display:grid;grid-template-columns:320px minmax(0,1fr);gap:12px;height:62vh;min-height:420px}.pbt-l{display:flex;flex-direction:column;gap:6px;min-height:0}.pbt-list,.pbt-r{overflow:auto;min-height:0}.pbt-g{display:block;width:100%;text-align:left;border:0;background:none;cursor:pointer;font-size:12.5px;color:var(--muted);font-weight:600;padding-top:6px;min-height:28px}.pbt-p{display:block;width:100%;text-align:left;border:0;background:none;color:inherit;font-size:13px;min-height:32px;cursor:pointer;border-bottom:1px solid var(--line)}.pbt-p.on{background:var(--brand-soft)}.pbt-n{display:flex;align-items:center;gap:6px;min-height:30px;border-bottom:1px dashed var(--line);font-size:13.5px;flex-wrap:wrap}.pbt-n .arr{width:20px;border:0;background:none;cursor:pointer;color:inherit}@media (max-width:900px){.pbt{grid-template-columns:1fr;height:auto}.pbt-list{max-height:40vh}}.nb-tb{display:flex}.nb-nr{display:flex;align-items:center;gap:8px;margin-top:6px;font-weight:400}.nb-nr .code{font-family:ui-monospace,Consolas,monospace}.nb-tb button{flex:1 1 auto;padding:0 5px;white-space:nowrap}.nb-ua{margin:6px 0 10px;font-size:13.5px}.nb-ut{width:100%;margin-top:4px;font-size:13px}.nb-ut tr.nb-dmiss{background:var(--bad-bg)}.nb-ut tr.nb-dmore{background:var(--warn-bg)}#nbuq{min-width:200px}#nblog td:nth-child(5),#nblog .lk{white-space:nowrap}.nb-ub{display:flex;align-items:center;gap:6px;min-height:32px;flex-wrap:wrap}.nu .nb-in{min-width:200px}.nu .stb .btn{flex:none}
.nb{display:flex;flex-direction:column;height:100%;min-height:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--bg)}.nb .code{font-size:12px;color:var(--muted)}.nb .sp{flex:1}
.nb-hd{background:var(--paper);border-bottom:1px solid var(--line);padding:8px 12px;display:grid;gap:6px}.nb-r{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.nb-ti{font-size:17px}
.nb-tabs{display:flex;gap:6px;flex-wrap:wrap}.nb-tabs button{min-height:34px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:var(--paper);font-size:13.5px;cursor:pointer;color:inherit}.nb-tabs button.on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.nb-sum{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:14px}.nb-sum b{font-size:16px;font-variant-numeric:tabular-nums}
.nb-grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr)}.nb-pane{min-height:0;overflow:auto;padding:10px 12px}.nb-pane.l{border-right:1px solid var(--line);background:var(--paper)}.nb-ph{display:flex;align-items:center;gap:8px;margin-bottom:6px}.nb-ph b{font-size:15px}
.nb-t{display:grid;grid-template-columns:22px 20px minmax(0,1fr) auto auto;gap:4px 6px;align-items:center;padding:5px 2px;border-bottom:1px solid var(--line);font-size:13.5px}.nb-t.miss{background:var(--bad-bg)}.nb-t.go{cursor:pointer}.nb-t .nm,.nb-row .nm{overflow-wrap:anywhere}.nb-t .arr{border:0;background:none;cursor:pointer;color:var(--muted);padding:0}
.nb-won{font-variant-numeric:tabular-nums;font-size:12.5px;color:var(--muted);text-align:right;min-width:74px}.nb-kid{padding:3px 2px;font-size:12.5px;color:var(--muted);border-bottom:1px dashed var(--line);display:flex;gap:6px}.nb-kid .nm{flex:1}
.nb-b{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:10px}.nb-b summary{cursor:pointer;font-weight:600}.nb-b.sub{margin:8px 0 2px 16px;background:var(--bg)}.nb-bh{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.nb-bh b{white-space:nowrap}.nb-bs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:6px;font-size:13px}
.nb-in{min-height:36px;border:1px solid var(--line);border-radius:8px;padding:0 8px;background:var(--paper)}.nb-in.name{flex:1;min-width:140px}.nb-in.n{width:56px;text-align:right}.nb-in.z{width:68px;text-align:right}.nb-in.need{background:var(--warn-bg);border-color:var(--warn)}
.nb-row{display:grid;grid-template-columns:22px minmax(0,1fr) 72px;gap:6px;align-items:center;padding:4px 2px;border-bottom:1px solid var(--line);font-size:13.5px}.nb-row.sel{background:var(--brand-soft)}.nb-row .nb-in{width:100%;min-height:34px;text-align:right}
.nb-seg{display:inline-flex;flex-wrap:wrap;border:1px solid var(--line);border-radius:9px;overflow:hidden}.nb-seg button{min-height:34px;padding:0 10px;border:0;border-right:1px solid var(--line);background:var(--paper);font-size:13px;cursor:pointer;color:inherit}.nb-seg button:last-child{border-right:0}.nb-seg .on{background:var(--brand);color:#fff;font-weight:600}.nb-x{border:0;background:none;color:inherit;cursor:pointer;padding:0 0 0 4px}.nb-ship{margin:0 0 10px}.nb-tabs .on .s{color:inherit}
.nb-a{border-left:3px solid var(--brand);background:var(--brand-soft);border-radius:6px;padding:6px 8px;margin:6px 0}.nb-ai{padding:2px 0}.nb-add{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}.nb-cr{display:flex;justify-content:space-between;font-size:13px;padding:2px 0;font-variant-numeric:tabular-nums}
.nb-bar{display:flex;align-items:center;gap:8px;background:var(--ink);color:var(--paper);padding:8px 14px;font-size:14px;flex-wrap:wrap}.nb-bar select{min-height:38px;border-radius:9px;border:0;padding:0 8px;background:var(--paper);color:var(--ink);font-weight:600}.nb-bar .btn{background:var(--paper);color:var(--ink);border-color:transparent}
@media (max-width:900px){.nb-w{grid-template-columns:minmax(0,1fr);height:auto}.nb-pl{max-height:38vh}.nb{height:auto}.nb-grid{grid-template-columns:minmax(0,1fr)}.nb-pane{overflow:visible}}
/* ✏️ 출고 아침 카드 — 라벨 보이기 · 이번만 고치기 (시안_출고아침카드_라벨.html, 11-07) — .sx 안에서만 */
.sx .askl{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:8px}.sx .askl input{flex:1;min-width:220px}.sx .ml{padding:10px 0 12px 28px;border-top:1px dashed var(--line)}.sx .mt{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sx .mt .nm{font-size:15px}.sx .q{font-weight:700}.sx .sets{display:flex;gap:4px;flex-wrap:wrap;align-items:center;margin-top:6px}
.sx .lvq{margin:10px 0 6px;font-size:13px;font-weight:700;color:var(--muted)}.sx .lvl{display:flex;gap:8px;flex-wrap:wrap;align-items:stretch}
.sx .lvl button{display:flex;align-items:center;gap:9px;min-height:54px;padding:6px 14px 6px 10px;border:1.5px solid var(--line);border-radius:12px;background:var(--paper);cursor:pointer;text-align:left;color:inherit}
.sx .lvl button svg{width:30px;height:30px;flex:none;color:var(--muted)}.sx .lvl button span{display:flex;flex-direction:column;line-height:1.25}.sx .lvl button b{font-size:14px}.sx .lvl button em{font-style:normal;font-size:12.5px;color:var(--muted)}
.sx .lvl button.on{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 1px var(--brand) inset}.sx .lvl button.on svg{color:var(--brand)}.sx .lvl button.on em{color:var(--brand-deep);font-weight:700}
.sx .lvl .arr{align-self:center;color:var(--muted);font-size:13px}.sx .lvl .no{border-style:dashed}.sx .lvl button[disabled],.sx .sets button[disabled]{opacity:.4;cursor:default}
.sx .pv{margin-top:10px;background:var(--bg);border-radius:10px;padding:10px 12px}.sx .pvh{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13.5px}.sx .pvh b{color:var(--brand-deep)}
.sx .grp{margin-top:8px}.sx .grp h5{margin:0 0 5px;font-size:12.5px;color:var(--muted);font-weight:600}.sx .lbs{display:flex;gap:8px;flex-wrap:wrap}
.sx .lb{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:7px;padding:6px 10px;width:212px;max-width:100%;font-size:12.5px;line-height:1.35}
.sx .lb .n{font-weight:700;font-size:13px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:30px}
.sx .lb .bar{display:block;height:14px;margin:4px 0 3px;background:repeating-linear-gradient(90deg,var(--ink) 0 1px,transparent 1px 3px,var(--ink) 3px 5px,transparent 5px 6px,var(--ink) 6px 7px,transparent 7px 9px);opacity:.75;border-radius:1px}
.sx .lb .ix{position:absolute;right:8px;top:5px;font-size:11px;color:var(--muted)}.sx .lb .in{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--muted);font-size:11.5px;margin-top:2px;white-space:normal}.sx .er .in1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.sx .er .nmc{flex:1 1 200px;min-width:0}
.sx .lb.add{border:1.5px solid var(--done);background:var(--done-bg)}.sx .lb.qty{border:1.5px solid var(--warn);background:var(--warn-bg)}.sx .lb.del{opacity:.55;text-decoration:line-through;border-style:dashed}
.sx .mark{font-size:11px;font-weight:700;margin-left:4px}.sx .mark.add{color:var(--done)}.sx .mark.qty{color:var(--warn)}.sx .mark.del{color:var(--bad)}
.sx .ed{margin-top:10px;border:2px solid var(--brand);border-radius:12px;background:var(--paper);overflow:hidden}.sx .edh{background:var(--brand-soft);padding:9px 14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sx .edh b{color:var(--brand-deep)}
.sx .er{display:flex;align-items:center;gap:10px;padding:7px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}.sx .er .nmc{flex:1;min-width:200px}.sx .er.sub{padding-left:38px;background:color-mix(in srgb,var(--brand-soft) 35%,transparent)}
.sx .er.add .nmc b{color:var(--done)}.sx .er.del .nmc{text-decoration:line-through;opacity:.55}
.sx .stp{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:8px;overflow:hidden}.sx .stp button{width:30px;height:30px;border:0;background:var(--bg);cursor:pointer;font-weight:700;color:inherit}.sx .stp span{min-width:30px;text-align:center;font-weight:700}
.sx .edf{padding:10px 14px;display:flex;flex-direction:column;gap:10px}.sx .srch{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.sx .srch input{min-height:34px;border:1px solid var(--line);border-radius:8px;padding:0 10px;width:260px;max-width:100%;background:var(--paper)}
.sx .res{border:1px solid var(--line);border-radius:10px;overflow:hidden}.sx .res>div{display:flex;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid var(--line);font-size:13px;flex-wrap:wrap}.sx .res>div:last-child{border-bottom:0}
.sx .why{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.sx .why button{min-height:32px;padding:0 11px;border:1px solid var(--line);border-radius:999px;background:var(--paper);font-size:13px;cursor:pointer;color:inherit}.sx .why button.on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.sx .why input{min-height:32px;border:1px solid var(--line);border-radius:8px;padding:0 10px;flex:1;min-width:200px;background:var(--paper)}.sx .inf{font-size:12.5px;color:var(--muted);background:var(--bg);border-radius:8px;padding:7px 10px}
.sx .edb{display:flex;gap:8px;justify-content:flex-end;align-items:center;padding:10px 14px;border-top:1px solid var(--line);flex-wrap:wrap}
.sx .diff{width:100%;border-collapse:collapse;margin-top:10px;font-size:13.5px}.sx .diff th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;padding:6px 8px;border-bottom:1px solid var(--line)}.sx .diff td{padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top}.sx .diff td.mid{width:84px;text-align:center}
.sx .diff tr.same td{color:var(--muted)}.sx .diff tr.del td:first-child{background:var(--bad-bg)}.sx .diff tr.add td:last-child{background:var(--done-bg)}.sx .diff tr.qty td{background:var(--warn-bg)}.sx .sumq{margin-top:8px;font-weight:600}.sx .hist{margin-top:8px;font-size:12.5px;color:var(--muted)}.sx .dvb{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;align-items:center}
@media (max-width:900px){.sx .ml{padding-left:0}.sx .lb{width:100%}}

/* 🔍 자재입고 + 검수 (계획_중국DMS 14-11 · 시안_자재입고검수.html) — .qcx 안에만. 폰 = 한 줄, 넓으면 오른쪽에 처리 대기 */
.qcx{display:grid;grid-template-columns:1fr;gap:12px;container-type:inline-size}
@media (min-width:1000px){.qcx{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start}.qcx .qcs{position:sticky;top:12px}}
.qcx .qcf,.qcx .qcs{min-width:0;display:flex;flex-direction:column;gap:12px}
.qcx .card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.qcx .st{display:flex;align-items:center;gap:8px;margin:0 0 8px}.qcx .st h3{margin:0;font-size:16px}.qcx .st .sum{font-size:13px;color:var(--muted)}
.qcx .st .no{width:24px;height:24px;border-radius:50%;background:var(--brand);color:#fff;font-weight:800;font-size:13px;display:inline-flex;align-items:center;justify-content:center;flex:none}.qcx .st .no.off{background:#b9c7c6}
.qcx .mode{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px}
.qcx .mode button{min-height:44px;border:1.5px solid #b9c7c6;border-radius:10px;background:var(--paper);font-weight:700;cursor:pointer}.qcx .mode button.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-deep)}
.qcx .cats{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.qcx .cats button{min-height:36px;padding:0 11px;border:1px solid #b9c7c6;border-radius:999px;background:var(--paper);font-size:13px;cursor:pointer;white-space:nowrap}
.qcx .cats button b{margin-left:4px;color:var(--brand-deep)}.qcx .cats button.on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:700}.qcx .cats button.on b{color:#fff}.qcx .cats button.zero{opacity:.45}
.qcx .grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
@container (min-width:640px){.qcx .grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.qcx .pc{border:1.5px solid var(--line);border-radius:12px;background:var(--paper);overflow:hidden;cursor:pointer;text-align:left;padding:0;display:flex;flex-direction:column}.qcx .pc:hover{border-color:var(--brand)}
.qcx .ph{aspect-ratio:4/3;background:#eef2f2;display:flex;align-items:center;justify-content:center;overflow:hidden}.qcx .ph img{max-width:100%;max-height:100%;object-fit:contain}.qcx .ph i{font-style:normal;font-size:12px;color:var(--muted)}
.qcx .pc .t{padding:7px 9px 9px;display:flex;flex-direction:column;gap:2px}.qcx .pc .t b{font-size:13.5px;line-height:1.3}.qcx .pc .t .po{font-size:12px;color:var(--brand-deep);font-weight:700}
.qcx .picked{display:flex;gap:10px;align-items:center}.qcx .picked .ph{width:96px;height:72px;flex:none;border-radius:9px;aspect-ratio:auto}.qcx .picked .t{flex:1;min-width:0}
.qcx .q{background:var(--warn-bg);border-radius:12px;padding:10px 12px;margin-top:10px}.qcx .q p{margin:0 0 8px;font-weight:700}.qcx .q .b3{display:grid;grid-template-columns:1fr;gap:6px}.qcx .q select{min-height:44px}
@container (min-width:640px){.qcx .q .b3{grid-template-columns:1.2fr 1fr 1fr}}
.qcx .link{margin-top:8px;font-size:13px;padding:7px 10px;border-radius:9px;background:var(--brand-soft);color:var(--brand-deep);font-weight:600}.qcx .link.none{background:var(--wait-bg);color:var(--wait)}
.qcx .hist{margin-top:8px;border:1px solid var(--line);border-radius:10px;padding:0 10px}.qcx .hist summary{cursor:pointer;min-height:40px;display:flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600}
.qcx .hist .vr{font-size:12.5px;padding:2px 0 6px;border-bottom:1px solid var(--line)}.qcx .hist .hr{padding:7px 0 7px 10px;border-bottom:1px solid var(--line);font-size:12.5px;border-left:3px solid transparent;margin-left:-10px}
.qcx .hist .hr.b{border-left-color:var(--bad)}.qcx .hist .h1{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.qcx .hist .h2,.qcx .hist .h3{margin-top:3px}.qcx .hist .h3{color:var(--muted)}
.qcx .fld{display:grid;grid-template-columns:1fr;gap:8px}@container (min-width:520px){.qcx .fld{grid-template-columns:1fr 1fr}}
.qcx .fld label{display:flex;flex-direction:column;gap:3px;font-size:13px;font-weight:700}.qcx .fld .s{font-weight:400}
.qcx .fld input{min-height:52px;border:1.5px solid #b9c7c6;border-radius:10px;padding:0 12px;font-size:22px;font-weight:800;background:var(--paper);width:100%}.qcx .fld input:focus{outline:none;border-color:var(--brand)}
.qcx .fld input.need{border-color:var(--warn);background:var(--warn-bg)}
.qcx .meth{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px}
.qcx .meth button{min-height:52px;border:1.5px solid #b9c7c6;border-radius:10px;background:var(--paper);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.2}
.qcx .meth button b{font-size:15px}.qcx .meth button em{font-style:normal;font-size:12px;color:var(--muted)}.qcx .meth button.on{border-color:var(--brand);background:var(--brand-soft)}.qcx .meth button.on b{color:var(--brand-deep)}.qcx .meth button[disabled]{opacity:.4;cursor:default}
.qcx .prog{height:10px;border-radius:99px;background:var(--line);overflow:hidden;margin:6px 0 2px}.qcx .prog i{display:block;height:100%;background:var(--brand);transition:width .2s}.qcx .prog.full i{background:#15803d}
.qcx .esc{background:var(--bad-bg);color:var(--bad);border-radius:10px;padding:9px 12px;font-weight:700;font-size:14px;margin-bottom:8px}
.qcx .bad{margin-top:10px;border-top:1px dashed #b9c7c6;padding-top:10px}
.qcx .rs{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}.qcx .rs button{min-height:38px;padding:0 12px;border:1px solid #b9c7c6;border-radius:999px;background:var(--paper);cursor:pointer;font-size:14px}
.qcx .rs button.on{background:var(--bad);border-color:var(--bad);color:#fff;font-weight:700}.qcx .rs.std button.on{background:#7a2e0e;border-color:#7a2e0e}
.qcx .photos{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.qcx .photos .p{width:64px;height:64px;border-radius:9px;overflow:hidden;position:relative;background:#e9e2dc}.qcx .photos .p img{width:100%;height:100%;object-fit:cover}
.qcx .photos .p button{position:absolute;top:0;right:0;border:0;background:#000a;color:#fff;width:20px;height:20px;cursor:pointer}
.qcx .photos .add{width:64px;height:64px;border-radius:9px;border:1.5px dashed #b9c7c6;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:22px;color:var(--muted)}
.qcx .res{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 8px}.qcx .res span{flex:1;min-width:90px;border-radius:10px;padding:7px 10px;background:var(--bg);font-size:12.5px}.qcx .res span b{display:block;font-size:20px}
.qcx .res .g b{color:#15803d}.qcx .res .x b{color:var(--bad)}.qcx .miss{font-size:12.5px;color:var(--warn);margin-top:6px;text-align:center}.qcx .btn.wide{width:100%}
.qcx .qcs h3{margin:0 0 8px;font-size:16px;display:flex;align-items:center;gap:6px}
.qcx .pend{border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:8px}.qcx .pend .hd{display:flex;gap:9px;align-items:center}.qcx .pend .ph{width:56px;height:44px;border-radius:8px;flex:none;aspect-ratio:auto}
.qcx .do{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0 6px}
.qcx .do button{min-height:44px;border:1.5px solid #b9c7c6;border-radius:9px;background:var(--paper);cursor:pointer;font-weight:700;font-size:14px;display:flex;flex-direction:column;align-items:center;line-height:1.15;justify-content:center}
.qcx .do button em{font-style:normal;font-weight:400;font-size:11px;color:var(--muted)}.qcx .do button.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-deep)}.qcx .do button.ok.on{border-color:#15803d;background:#e6f4ea;color:#15803d}
.qcx .memo{width:100%;min-height:40px;border:1.5px solid var(--warn);background:var(--warn-bg);border-radius:9px;padding:6px 10px;margin-bottom:6px}
.qcx .disc{display:flex;gap:6px;align-items:center;margin-bottom:6px;font-size:13px}.qcx .disc input{min-height:38px;width:110px;border:1px solid #b9c7c6;border-radius:8px;padding:0 8px}
.qcx .today .r{display:flex;gap:9px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.qcx .today .r:last-child{border-bottom:0}.qcx .today .ph{width:44px;height:36px;border-radius:7px;flex:none;aspect-ratio:auto}
.qcx .today .t{flex:1;min-width:0;font-size:13.5px}.qcx .today .n{text-align:right;font-size:12.5px;white-space:nowrap}.qcx .today .n b{font-size:15px}
.qcx .qc{display:grid;grid-template-columns:1fr;gap:8px;background:var(--bg);border-radius:10px;padding:9px 10px;margin-bottom:10px}@container (min-width:520px){.qcx .qc{grid-template-columns:150px 1fr}}
.qcx .qc h4{grid-column:1/-1;margin:0;font-size:13.5px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.qcx .qc img{width:100%;max-height:120px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:8px;cursor:zoom-in}
.qcx .qc ol{margin:0;padding-left:20px;font-size:13px}.qcx .qc li{margin:2px 0}.qcx .noqc{font-size:12.5px;color:var(--muted);background:var(--bg);border-radius:9px;padding:7px 10px;margin-bottom:10px}
#qizoom{position:fixed;inset:0;background:#000b;display:flex;align-items:center;justify-content:center;z-index:300;cursor:zoom-out}#qizoom img{max-width:94vw;max-height:90vh;background:#fff;border-radius:8px}
/* UXUI 11-08 — 위반 기준 전체 글(최대 2줄·폰 한 줄 한 항목) · 칩 높이 · 글로벌 조건 라벨 폭 */
.qcx .rs.std button{text-align:left;border-radius:12px;padding:6px 12px;line-height:1.3;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@container (max-width:519px){.qcx .rs.std button{width:100%}}
.qcx .chip{min-height:0;height:auto;padding:1px 8px;line-height:1.5;font-size:12px;align-self:center;white-space:nowrap}
.gnew .glab{display:grid;grid-template-columns:84px minmax(0,1fr);align-items:center;column-gap:6px}.gnew .glab>:nth-child(n+3){grid-column:2}
/* 글로벌 주문 PI 품명 칸 — 비었거나 영문 아님 = 빨강(입력 중에도) (UXUI 11-08) */
#gnl input.bad,#gnl input.bad:focus{border:1.5px solid var(--bad);background:var(--bad-bg);outline-color:var(--bad);box-shadow:none}
.gnew [data-nmh][hidden]{display:none}
@media (max-width:760px){#gcpk td[data-lb]{display:flex;align-items:center;gap:10px}#gcpk td[data-lb]::before{content:attr(data-lb);width:64px;font-size:12.5px;color:var(--muted)}}   /* CIPL 팔레트 표 — 폰에서 칸 이름 */
@media (max-width:760px){.gci-btn{display:none}}   /* CI 로 인쇄 — 폰 카드 머리줄은 이미 두 줄 */
