/* 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 .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:30;
       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}
  .gsearch,.who,.live,.tag{display:none}
  .top .btn span{display:none}
  .main{padding:14px 14px 24px}
  .tabbar{display:grid;grid-template-columns:repeat(4,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: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}
