/* 글랜에어코리아 ERP — 이카운트 계열 화면: 흰색 · 연회색 · 회색 · 파랑. 상단 대분류 바 파랑, 좌측 소분류·표 머리·입력 영역 연회색, 본문 흰색, 주요 버튼 파랑, 각진 모서리 */
:root{
  --blue:#2a62c9; --blue-d:#1f50aa; --blue-l:#e9f0fc; --blue-ll:#f3f7fe; --link:#1f5fbf;
  --ink:#1d232c; --ink2:#3a4350; --mute:#68727f; --faint:#9aa3ae;
  --bg:#eef1f5; --panel:#f6f7f9; --line:#d9dee5; --line2:#e7ebf0; --head:#f2f4f7;
  --yel:#fff8dc; --yel-b:#ecd894; --yel-dot:#e0ad2b;
  --red:#d33a2c; --red-l:#fdecea; --org:#c46a00; --org-l:#fff1dc; --grn:#1d8a4b; --grn-l:#e2f5ea; --pur:#7b42c6; --pur-l:#f2eafc; --teal:#14857a; --teal-l:#e0f4f1;
  --mono:"D2Coding","SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;
  --r:3px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{font-family:"Pretendard","Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR",system-ui,sans-serif;font-size:13px;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;}
a{color:var(--link);text-decoration:none;} a:hover{text-decoration:underline;}
button,input,select,textarea{font:inherit;color:inherit;}
.mono,.pn{font-family:var(--mono);font-size:12px;letter-spacing:-.01em;}
.num{font-variant-numeric:tabular-nums;}
.r{text-align:right;} .c{text-align:center;}
.mute{color:var(--mute);} .faint{color:var(--faint);} .red{color:var(--red);} .grn{color:var(--grn);} .org{color:var(--org);} .b{font-weight:700;}
.nowrap{white-space:nowrap;}

/* ── 머리 · 대분류 바 ── */
.hd{height:46px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:0 16px;position:sticky;top:0;z-index:40;}
.logo{font-weight:800;letter-spacing:.02em;font-size:15px;white-space:nowrap;color:var(--ink);} .logo b{color:var(--blue);font-weight:800;}
.demo-tag{font-size:11px;background:#fdf1c8;color:#8a6400;border:1px solid #f1dc95;border-radius:2px;padding:1px 6px;}
.gsearch{position:relative;width:340px;} .gsearch input{width:100%;height:28px;border:1px solid var(--line);border-radius:2px;padding:0 9px;font-size:12.5px;background:#fff;}
.gsearch input:focus{outline:none;border-color:var(--blue);}
.gs-pop{position:absolute;top:31px;left:0;width:520px;background:#fff;border:1px solid var(--line);box-shadow:0 8px 24px rgba(20,30,50,.14);display:none;max-height:420px;overflow:auto;z-index:60;}
.gs-pop.on{display:block;} .gs-pop a{display:flex;gap:10px;padding:7px 12px;border-bottom:1px solid var(--line2);color:var(--ink);font-size:12.5px;} .gs-pop a:hover{background:var(--blue-ll);text-decoration:none;}
.gs-pop .k{min-width:74px;color:var(--mute);font-size:11.5px;} .gs-pop .e{padding:16px;color:var(--faint);}
.hd-r{margin-left:auto;display:flex;align-items:center;gap:8px;}
.hd-r .base{color:var(--mute);font-size:12px;}
.hd select,.hd .hbtn{height:28px;border:1px solid var(--line);border-radius:2px;background:#fff;padding:0 8px;font-size:12.5px;cursor:pointer;}
.hd .hbtn:hover{border-color:#b9c2cd;}
.bell{position:relative;width:30px;height:28px;border:1px solid var(--line);border-radius:2px;background:#fff;display:grid;place-items:center;cursor:pointer;}
.bell svg{width:15px;height:15px;color:var(--ink2);} .bell i{position:absolute;top:-6px;right:-6px;background:var(--red);color:#fff;font-style:normal;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:grid;place-items:center;padding:0 4px;}
.bell-pop{position:absolute;top:44px;right:120px;width:380px;background:#fff;border:1px solid var(--line);box-shadow:0 8px 24px rgba(20,30,50,.16);display:none;z-index:60;}
.bell-pop.on{display:block;} .bell-pop .h{padding:9px 12px;border-bottom:1px solid var(--line);display:flex;font-weight:700;} .bell-pop .h a{margin-left:auto;font-weight:500;font-size:12px;}
.bell-pop .it{display:block;padding:8px 12px;border-bottom:1px solid var(--line2);color:var(--ink);} .bell-pop .it:hover{background:var(--blue-ll);text-decoration:none;}
.bell-pop .it b{display:block;font-size:12.5px;} .bell-pop .it span{color:var(--mute);font-size:11.5px;} .bell-pop .it.new b::before{content:'';display:inline-block;width:6px;height:6px;border-radius:3px;background:var(--blue);margin-right:6px;vertical-align:2px;}
.mbar{height:38px;background:var(--blue);display:flex;align-items:stretch;padding:0 0 0 0;position:sticky;top:46px;z-index:35;}
.mbar a{display:flex;align-items:center;gap:7px;padding:0 18px;color:#fff;font-weight:700;font-size:14px;border-right:1px solid rgba(255,255,255,.14);white-space:nowrap;}
.mbar a:hover{background:rgba(255,255,255,.1);text-decoration:none;}
.mbar a.on{background:#fff;color:var(--blue);border-top:3px solid var(--blue-d);padding-top:0;}
.mbar a .n{font-size:11px;font-weight:700;background:rgba(255,255,255,.22);color:#fff;border-radius:2px;padding:0 5px;line-height:16px;}
.mbar a.on .n{background:var(--blue);color:#fff;}

/* ── 좌측 소분류 ── */
.wrap{display:flex;min-height:calc(100vh - 84px);}
.side{width:200px;flex:none;background:#fff;border-right:1px solid var(--line);}
.side h4{margin:0;padding:12px 14px;font-size:14px;font-weight:800;border-bottom:1px solid var(--line);background:#fff;}
.side a{display:flex;align-items:center;padding:8px 14px 8px 21px;border-bottom:1px solid var(--line2);color:var(--ink2);font-size:13px;}
.side a:hover{background:var(--blue-ll);text-decoration:none;}
.side a.on{background:var(--blue-l);color:var(--blue);font-weight:700;box-shadow:inset 3px 0 0 var(--blue);}
.side a .n{margin-left:auto;font-size:11px;font-weight:700;background:#e3e7ec;color:var(--ink2);border-radius:2px;padding:0 6px;line-height:17px;}
.side a.on .n,.side a .n.hot{background:var(--blue);color:#fff;}
.side .foot{padding:14px;color:var(--faint);font-size:11px;line-height:1.6;}
.main{flex:1;min-width:0;padding:16px 22px 40px;}

/* ── 제목 ── */
.crumb{font-size:11.5px;color:var(--faint);margin-bottom:4px;}
.ttl{display:flex;align-items:flex-end;gap:12px;margin-bottom:12px;}
.ttl h1{margin:0;font-size:19px;font-weight:800;letter-spacing:-.02em;} .ttl p{margin:4px 0 0;color:var(--mute);font-size:12.5px;line-height:1.5;}
.ttl .acts{margin-left:auto;display:flex;gap:6px;align-items:center;flex:none;}
.note{background:#f7f9fc;border:1px solid var(--line);border-radius:var(--r);padding:9px 12px;color:var(--ink2);font-size:12.5px;line-height:1.6;margin-bottom:12px;}
.note.warn{background:#fffbea;border-color:#efdc9b;}

/* ── 버튼 · 칩 · 탭 ── */
.btn{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 12px;border:1px solid #c3cad3;border-radius:2px;background:#f5f6f8;color:var(--ink);font-size:12.5px;cursor:pointer;white-space:nowrap;text-decoration:none!important;}
.btn:hover{background:#eceff3;} .btn:disabled{opacity:.55;cursor:default;}
.btn.pri{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:700;} .btn.pri:hover{background:var(--blue-d);}
.btn.big{height:34px;padding:0 16px;font-size:13.5px;}
.btn.del{background:#fff;color:var(--red);border-color:#eab4ae;} .btn.del:hover{background:var(--red-l);}
.btn.sm{height:25px;padding:0 8px;font-size:12px;} .btn.wh{background:#fff;}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;}
.chip{display:inline-flex;align-items:center;gap:5px;height:27px;padding:0 12px;border:1px solid #cfd5dd;border-radius:14px;background:#fff;color:var(--ink2);font-size:12.5px;}
.chip:hover{border-color:var(--blue);text-decoration:none;} .chip b{font-weight:700;}
.chip.on{background:var(--blue);border-color:var(--blue);color:#fff;}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:12px;}
.tabs a{padding:8px 14px;color:var(--ink2);font-size:13px;border-bottom:2px solid transparent;margin-bottom:-1px;}
.tabs a:hover{text-decoration:none;color:var(--blue);} .tabs a.on{color:var(--blue);font-weight:700;border-bottom-color:var(--blue);}

/* ── 카드 · 표 ── */
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);margin-bottom:12px;}
.card-h{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line);background:#fff;}
.card-h b{font-size:13.5px;font-weight:800;} .card-h .sub{color:var(--mute);font-size:12px;} .card-h .rt{margin-left:auto;display:flex;gap:6px;align-items:center;}
.card-b{padding:12px 14px;}
.card.sel{border-color:#b9cdee;} .card.sel>.card-h{background:var(--blue-ll);}
.filters{display:flex;align-items:center;gap:6px;padding:9px 14px;border-bottom:1px solid var(--line);}
.filters label{color:var(--mute);font-size:12px;margin-right:2px;}
.filters .rt{margin-left:auto;color:var(--mute);font-size:12px;}
.tw{overflow:auto;} .tw.tall{max-height:330px;} .tw.xtall{max-height:560px;}
table.g{width:100%;border-collapse:collapse;font-size:12.5px;}
table.g th{background:var(--head);color:var(--ink2);font-weight:700;text-align:left;padding:7px 9px;border-bottom:1px solid var(--line);white-space:nowrap;position:sticky;top:0;z-index:1;}
table.g td{padding:7px 9px;border-bottom:1px solid var(--line2);vertical-align:middle;}
table.g td.lines2{line-height:1.35;}
table.g tr.go{cursor:pointer;} table.g tr.go:hover td{background:#f7faff;} table.g tr.sel td{background:var(--blue-l)!important;}
table.g th.r,table.g td.r{text-align:right;} table.g th.c,table.g td.c{text-align:center;}
table.g tfoot td,table.g tr.sum td{background:var(--panel);font-weight:700;}
table.g .grp td{background:#f8f9fb;font-weight:700;}
table.g .sub{display:block;color:var(--faint);font-size:11.5px;}
.empty{padding:28px;text-align:center;color:var(--faint);}
.no{color:var(--link);} .d{color:var(--ink2);}
.dday{font-size:11px;color:var(--faint);margin-left:3px;} .dday.late{color:var(--red);font-weight:700;} .dday.soon{color:var(--org);font-weight:700;}

/* ── 상태 ── */
.st{display:inline-block;padding:1px 8px;border-radius:10px;font-size:11.5px;font-weight:700;white-space:nowrap;line-height:18px;}
.st.org{background:var(--org-l);color:var(--org);} .st.grn{background:var(--grn-l);color:var(--grn);} .st.blu{background:var(--blue-l);color:var(--blue);} .st.red{background:var(--red-l);color:var(--red);}
.st.gry{background:#eef0f3;color:var(--mute);} .st.pur{background:var(--pur-l);color:var(--pur);} .st.teal{background:var(--teal-l);color:var(--teal);}
.st.plain{background:none;color:var(--blue);}
.tp{display:inline-block;padding:0 6px;border-radius:2px;font-size:11px;font-weight:700;border:1px solid;line-height:16px;white-space:nowrap;}
.tp.상품{color:#2a62c9;border-color:#b7cbf0;background:#f2f6fd;} .tp.제품{color:var(--pur);border-color:#d9c3f4;background:var(--pur-l);} .tp.반제품{color:var(--teal);border-color:#b5e2dc;background:var(--teal-l);} .tp.원재료{color:#5c6672;border-color:#d3d8de;background:#f3f4f6;} .tp.혼합{color:#5c6672;border-color:#cdd3da;background:#fff;}
.prog{display:flex;flex-direction:column;gap:3px;min-width:96px;} .prog i{display:block;height:5px;border-radius:3px;background:#e3e7ec;overflow:hidden;} .prog i b{display:block;height:100%;background:var(--blue);} .prog i b.done{background:#1f9a55;} .prog span{font-size:11.5px;color:var(--mute);}

/* ── 전표 입력 ── */
.vf-h{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid #d3dff2;background:var(--blue-ll);}
.vf-h b{font-size:14px;} .vf-h .no{font-family:var(--mono);font-size:12.5px;color:var(--ink);font-weight:700;} .vf-h .from{font-size:12px;}
.vf-h .legend{margin-left:auto;color:var(--mute);font-size:12px;display:flex;align-items:center;gap:5px;} .vf-h .legend::before{content:'';width:7px;height:7px;border-radius:4px;background:var(--yel-dot);}
.fgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 14px;padding:12px 14px 4px;}
.fgrid .f{min-width:0;} .fgrid .f.s2{grid-column:span 2;} .fgrid .f.s3{grid-column:span 3;} .fgrid .f.s4{grid-column:span 4;}
.fgrid label{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--ink2);margin-bottom:3px;}
.fgrid label.y::before{content:'';width:7px;height:7px;border-radius:4px;background:var(--yel-dot);}
.fi{width:100%;height:30px;border:1px solid #c6cdd6;border-radius:2px;background:#fff;padding:0 9px;font-size:12.5px;}
.fi:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 2px rgba(42,98,201,.12);}
.fi.y{background:var(--yel);border-color:var(--yel-b);} .fi[readonly],.fi:disabled{background:#f1f3f6;color:var(--ink2);} .fi.link{color:var(--link);cursor:pointer;}
.fi.bad{background:var(--red-l);border-color:#e6a49d;}
select.fi{padding-right:4px;}
.lines{margin:10px 14px 0;border:1px solid var(--line);overflow:auto;}
table.lt{border-collapse:collapse;font-size:12.5px;min-width:100%;}
table.lt th{background:var(--head);font-weight:700;text-align:left;padding:6px 7px;border-bottom:1px solid var(--line);border-right:1px solid var(--line2);white-space:nowrap;}
table.lt th.y{background:#fdf3cc;} table.lt th.r{text-align:right;}
table.lt td{border-bottom:1px solid var(--line2);border-right:1px solid var(--line2);padding:0;height:30px;vertical-align:middle;white-space:nowrap;}
table.lt td.ro{padding:0 7px;} table.lt td.y{background:#fffbea;} table.lt td.idx{width:26px;text-align:center;color:var(--faint);font-size:11.5px;padding:0;}
table.lt td input,table.lt td select{width:100%;height:29px;border:0;background:transparent;padding:0 7px;font-size:12.5px;}
table.lt td input:focus,table.lt td select:focus{outline:2px solid var(--blue);outline-offset:-2px;background:#fff;}
table.lt td input.r{text-align:right;} table.lt td.code input{font-family:var(--mono);font-size:12px;}
table.lt tr.sum td{background:var(--panel);font-weight:700;padding:0 7px;}
table.lt td .x{border:0;background:none;color:var(--faint);cursor:pointer;font-size:14px;padding:0 8px;} table.lt td .x:hover{color:var(--red);}
.addline{margin:8px 14px 0;}
.vpanels{padding:6px 14px 0;}
.vpanels h5{margin:14px 0 6px;font-size:13px;font-weight:800;display:flex;align-items:center;gap:8px;} .vpanels h5 span{font-weight:500;color:var(--mute);font-size:12px;} .vpanels h5 .rt{margin-left:auto;}
.vfoot{display:flex;gap:6px;align-items:center;padding:12px 14px;border-top:1px solid var(--line);margin-top:14px;background:#fbfcfd;}
.vfoot .sp{width:14px;} .vfoot .hint{margin-left:auto;color:var(--faint);font-size:11.5px;}
.ac{position:absolute;background:#fff;border:1px solid var(--line);box-shadow:0 8px 24px rgba(20,30,50,.16);z-index:80;max-height:260px;overflow:auto;min-width:340px;}
.ac div{padding:6px 10px;cursor:pointer;display:flex;gap:8px;align-items:center;font-size:12.5px;} .ac div:hover,.ac div.on{background:var(--blue-l);}
.ac div .c1{font-family:var(--mono);font-size:12px;min-width:150px;}
.cmp-ok{color:var(--grn);font-weight:700;} .cmp-bad{color:var(--red);font-weight:700;}
.steps{display:flex;align-items:center;gap:4px;flex-wrap:wrap;}
.steps .s{padding:2px 10px;border-radius:12px;font-size:12px;font-weight:700;background:#eef0f3;color:var(--faint);}
.steps .s.done{background:var(--grn-l);color:var(--grn);} .steps .s.now{background:var(--blue);color:#fff;} .steps .s.ext{background:var(--blue);color:#fff;}
.steps i{color:var(--faint);font-style:normal;font-size:11px;}

/* ── 지표 · 흐름 ── */
.kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:12px;}
.kpi{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;display:block;color:var(--ink);}
.kpi:hover{border-color:var(--blue);text-decoration:none;} .kpi .k{font-size:12px;color:var(--mute);} .kpi .v{font-size:22px;font-weight:800;margin-top:6px;} .kpi .v small{font-size:12px;font-weight:500;color:var(--mute);margin-left:3px;}
.kpi .v.org{color:var(--org);} .kpi .v.red{color:var(--red);} .kpi .s{font-size:11.5px;color:var(--mute);margin-top:2px;}
.flow{display:grid;grid-template-columns:100px 1fr;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line2);}
.flow:last-child{border-bottom:0;} .flow .fh b{display:block;font-size:13.5px;font-weight:800;} .flow .fh span{font-size:11.5px;color:var(--mute);}
.flow .fs{display:flex;align-items:stretch;gap:0;}
.flow .st2{flex:1;min-width:0;border:1px solid var(--line);border-radius:2px;padding:9px 10px;background:#fff;color:var(--ink);display:block;}
.flow .st2:hover{border-color:var(--blue);text-decoration:none;}
.flow .st2.hot{background:#fff8e6;border-color:#ecd18a;}
.flow .st2 .k{font-weight:700;font-size:12.5px;} .flow .st2 .v{font-size:18px;font-weight:800;margin:3px 0 1px;} .flow .st2 .v small{font-size:11.5px;font-weight:500;margin-left:2px;color:var(--mute);} .flow .st2 .v.org{color:var(--org);}
.flow .st2 .s{font-size:11px;color:var(--mute);line-height:1.35;}
.flow .ar{flex:none;width:18px;display:grid;place-items:center;color:var(--faint);font-size:12px;}
.grid2{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:12px;} .grid2 > *{min-width:0;}
.grid2b{display:grid;grid-template-columns:300px minmax(0,1fr);gap:12px;align-items:start;} .grid2b > *{min-width:0;}
.grid2c{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:12px;align-items:start;} .grid2c > *{min-width:0;}
.todo{display:flex;gap:10px;align-items:flex-start;padding:7px 14px;border-bottom:1px solid var(--line2);color:var(--ink);} .todo:hover{background:var(--blue-ll);text-decoration:none;}
.todo .tg{flex:none;font-size:11px;font-weight:700;border:1px solid;border-radius:2px;padding:0 5px;line-height:17px;margin-top:1px;}
.todo .tg.영업{color:var(--blue);border-color:#b7cbf0;background:#f2f6fd;} .todo .tg.구매{color:var(--grn);border-color:#b8e3c9;background:var(--grn-l);} .todo .tg.생산{color:var(--pur);border-color:#d9c3f4;background:var(--pur-l);} .todo .tg.재고{color:#5c6672;border-color:#d3d8de;background:#f3f4f6;} .todo .tg.문서{color:var(--org);border-color:#efd3a6;background:var(--org-l);}
.todo span{color:var(--link);}
.lanetag{display:inline-block;white-space:nowrap;font-size:11px;font-weight:700;border:1px solid;border-radius:2px;padding:0 6px;line-height:17px;}
.lanetag.sales{color:var(--blue);border-color:#b7cbf0;background:#f2f6fd;} .lanetag.buy{color:var(--grn);border-color:#b8e3c9;background:var(--grn-l);} .lanetag.prod{color:var(--pur);border-color:#d9c3f4;background:var(--pur-l);}

/* ── 목록 패널 (재고 조회 · BOM) ── */
.plist{max-height:600px;overflow:auto;}
.plist a{display:block;padding:8px 12px;border-bottom:1px solid var(--line2);color:var(--ink);}
.plist a:hover{background:var(--blue-ll);text-decoration:none;} .plist a.on{background:var(--blue-l);box-shadow:inset 3px 0 0 var(--blue);}
.plist a .c1{font-family:var(--mono);font-size:12px;} .plist a .s{display:block;color:var(--mute);font-size:12px;margin-top:2px;}
.mini{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;padding:12px 14px;}
.mini > div{border:1px solid var(--line);border-radius:2px;padding:10px;} .mini .k{font-size:12px;color:var(--mute);} .mini .v{font-size:20px;font-weight:800;margin:4px 0 2px;} .mini .s{font-size:11px;color:var(--mute);line-height:1.35;}
.kv{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 14px;padding:12px 14px;}
.kv .f label{display:block;font-size:12px;color:var(--ink2);margin-bottom:3px;}
.pill{display:inline-block;padding:2px 9px;border-radius:12px;font-size:12px;background:var(--blue-l);color:var(--blue);margin:0 4px 4px 0;} .pill.grn{background:var(--grn-l);color:var(--grn);}
.tagl{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:13px;background:#eef2f8;border:1px solid #d6dfec;font-size:12px;margin:0 6px 6px 0;} .tagl .x{color:var(--red);cursor:pointer;border:0;background:none;padding:0;}

/* ── 모달 ── */
.modal-bg{position:fixed;inset:0;background:rgba(30,38,52,.42);z-index:90;display:none;align-items:flex-start;justify-content:center;padding:44px 16px;overflow:auto;}
.modal-bg.on{display:flex;}
.modal{background:#fff;border-radius:6px;width:1120px;max-width:100%;box-shadow:0 20px 60px rgba(0,0,0,.25);}
.modal .mh{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--line);font-weight:800;font-size:15px;} .modal .mh .x{margin-left:auto;border:0;background:none;font-size:18px;cursor:pointer;color:var(--mute);}
.modal .mb{padding:14px 16px;} .modal .mf{display:flex;gap:6px;justify-content:flex-end;padding:12px 16px;border-top:1px solid var(--line);}
.docview{position:relative;border:1px solid var(--line);background:#fafafa;} .docview img{display:block;width:100%;}
.docview .bx{position:absolute;border:1.5px dashed #2a62c9;background:rgba(42,98,201,.08);} .docview .bx.low{border-color:var(--red);background:rgba(211,58,44,.10);}
.pages{display:flex;gap:8px;flex-wrap:wrap;} .pages button{width:62px;height:80px;border:1px solid var(--line);border-radius:3px;background:#fff;cursor:pointer;font-size:12px;color:var(--mute);} .pages button.on{border:2px solid var(--blue);color:var(--blue);font-weight:700;}
.conf{font-size:11px;font-weight:700;margin-left:4px;} .conf.ok{color:var(--grn);} .conf.low{color:var(--red);}
.labels{display:flex;gap:12px;flex-wrap:wrap;}
.label5030{width:300px;height:180px;border:1.5px solid #222;border-radius:3px;padding:8px 10px;font-family:Arial,Helvetica,sans-serif;color:#000;display:flex;flex-direction:column;background:#fff;}
.label5030 .t{display:flex;justify-content:space-between;font-size:10px;font-weight:700;} .label5030 .p{font-family:var(--mono);font-size:15px;font-weight:700;margin:3px 0;}
.label5030 .g{display:grid;grid-template-columns:1fr 1fr;font-size:10px;line-height:1.3;} .label5030 .bc{margin-top:auto;text-align:center;} .label5030 .bc svg{height:42px;width:100%;}
.label5030 .bcno{font-family:var(--mono);font-size:10px;}

/* ── 스캔 ── */
.scanbox{display:flex;gap:10px;align-items:center;padding:14px;}
.scanbox .ic{font-size:24px;color:var(--blue);} .scanbox input{flex:1;height:44px;border:2px solid var(--blue);border-radius:3px;padding:0 14px;font-family:var(--mono);font-size:15px;letter-spacing:.06em;}
.scanbox input:focus{outline:none;box-shadow:0 0 0 3px rgba(42,98,201,.18);}
.eg{padding:0 14px 12px;display:flex;gap:6px;flex-wrap:wrap;align-items:center;color:var(--mute);font-size:12px;}
.eg button{border:1px solid #cfd5dd;background:#fff;border-radius:12px;padding:2px 10px;font-family:var(--mono);font-size:11.5px;cursor:pointer;} .eg button:hover{border-color:var(--blue);}
.slog div{display:flex;gap:10px;padding:7px 14px;border-bottom:1px solid var(--line2);font-size:12.5px;} .slog .ok{color:var(--grn);} .slog .ng{color:var(--red);}

/* ── 권한 표 · 기타 ── */
.perm select{height:26px;border:1px solid #c6cdd6;border-radius:2px;font-size:12px;}
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);background:#1f2a3a;color:#fff;padding:10px 18px;border-radius:4px;font-size:13px;opacity:0;transition:all .2s;z-index:120;box-shadow:0 8px 24px rgba(0,0,0,.2);max-width:80vw;}
.toast.on{opacity:1;transform:translateX(-50%);} .toast.err{background:var(--red);}
.noti-stack{position:fixed;right:16px;top:96px;display:flex;flex-direction:column;gap:8px;z-index:110;}
.noti{display:block;width:330px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--blue);box-shadow:0 10px 30px rgba(20,30,50,.18);padding:10px 12px;color:var(--ink);opacity:0;transform:translateX(20px);transition:all .25s;}
.noti.on{opacity:1;transform:none;} .noti.alert{border-left-color:var(--red);} .noti b{display:block;font-size:13px;} .noti span{color:var(--mute);font-size:12px;} .noti:hover{text-decoration:none;}
@media print{.hd,.mbar,.side,.noprint,.vfoot,.filters,.chips,.tabs,.ttl .acts{display:none!important;} .main{padding:0;} body{background:#fff;} .card{border:0;}}
