:root{--nav:#1B2430;--nav-ink:#C9D2DC;--nav-ink-2:#8A96A3;--ground:#F3F5F7;--surface:#FFFFFF;--line:#E2E6EB;--line-2:#CBD2DA;--ink:#1A222C;--ink-2:#5B6673;--ink-3:#8A94A0;--hover:#F0F3F6;--sel:#E3F3F4;--accent:#0E7C86;--accent-ink:#0A5C64;--accent-soft:#E3F3F4;--accent-line:#9ED2D6;--good:#1F7A3A;--good-soft:#E4F3E8;--warn:#9A6700;--warn-soft:#FBF1D6;--bad:#B42318;--bad-soft:#FCE8E6;--purple:#5B3FBF;--purple-soft:#EAE6FA;--sans:"Noto Sans KR","Pretendard","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;--mono:"IBM Plex Mono","Cascadia Mono",Consolas,monospace}@media (prefers-color-scheme:dark){:root{--ground:#12171D;--surface:#1A2129;--line:#2C3743;--line-2:#3C4855;--ink:#E6EAEE;--ink-2:#AEB8C2;--ink-3:#7F8B97;--hover:#232B34;--sel:#153338;--accent:#3FB3BD;--accent-ink:#8ADAE0;--accent-soft:#153338;--accent-line:#2A6C72;--good:#5FBF60;--good-soft:#1B2E1B;--warn:#D9A632;--warn-soft:#2E2610;--bad:#EF7A6C;--bad-soft:#3A1F1C;--purple:#A894F0;--purple-soft:#2A2242}}*{box-sizing:border-box}body,html{height:100%}body{margin:0;background:var(--ground);color:var(--ink);font:13px/1.45 var(--sans);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}input,select,textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:6px;height:32px;padding:0 10px}textarea{height:auto;padding:7px 9px;resize:vertical}a{color:inherit;text-decoration:none}code{font:12px var(--mono);background:var(--hover);padding:1px 5px;border-radius:4px}.app{display:grid;grid-template-columns:216px 1fr;min-height:100vh}.nav{background:var(--nav);color:var(--nav-ink);padding:14px 12px;flex-direction:column;gap:2px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.brand,.nav{display:flex}.brand{align-items:center;gap:9px;padding:4px 8px 14px;color:#fff;font-weight:700;font-size:14px}.brand i{width:22px;height:22px;border-radius:6px;background:linear-gradient(135deg,#19A5B1,#0E7C86)}.brand small{margin-left:auto;font:500 10px var(--mono);letter-spacing:.06em}.brand small,.sec{color:var(--nav-ink-2)}.sec{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;padding:12px 8px 4px}.nav a.item{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:6px;color:var(--nav-ink);font-size:13px}.nav a.item:hover{background:rgba(255,255,255,.06)}.nav a.item.on{background:rgba(14,124,134,.28);color:#fff}.nav a.item svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}.nav a.item.on svg{stroke:#5FD3DB}.nav .bd{margin-left:auto;background:#0E7C86;color:#fff;font-size:10.5px;padding:1px 6px;border-radius:999px;font-weight:600}.main{flex-direction:column;min-width:0}.main,.top{display:flex}.top{height:50px;align-items:center;gap:12px;padding:0 18px;background:var(--surface);border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;z-index:5}.crumb{font-size:12.5px;color:var(--ink-2)}.crumb b{color:var(--ink);font-weight:600;font-size:14px}.top .r{margin-left:auto;display:flex;gap:8px;align-items:center}.who{font-size:12.5px;color:var(--ink-2);white-space:nowrap}.who .sep{margin:0 8px;color:var(--line-2)}.avatar{width:28px;height:28px;border-radius:50%;background:#D9E3EA;color:#1B2430;font-weight:600;font-size:12px;justify-content:center}.actions,.avatar{display:flex;align-items:center}.actions{gap:10px;flex-wrap:wrap;padding:16px 22px 0}.actions:empty{display:none}.page{padding:14px 22px 32px;display:flex;flex-direction:column;gap:16px;flex:1 1;min-width:0}.btn{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 13px;border-radius:6px;border:1px solid var(--line);background:var(--surface);font-size:12.5px;color:var(--ink);white-space:nowrap;cursor:pointer}.btn:hover{background:var(--hover)}.btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.btn.p{background:var(--accent);border-color:var(--accent);color:#fff}.btn.p:hover{filter:brightness(1.08)}.btn.ghost{border-color:transparent;background:transparent;color:var(--ink-2)}.btn.sm{height:28px;padding:0 10px;font-size:12px}.btn.sm svg{width:13px;height:13px}.btn[disabled]{opacity:.45;cursor:not-allowed}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.card{background:var(--surface);border:1px solid var(--line);border-radius:8px;min-width:0}.card .hd{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:12px 16px;border-bottom:1px solid var(--line);font-weight:600;font-size:13px;min-height:48px}.hd .sub{font-weight:400;color:var(--ink-3);font-size:12px}.hd .r{margin-left:auto;display:flex;gap:8px;align-items:center}.note{font-size:11.5px;color:var(--ink-3)}.st{display:inline-block;font-size:10.5px;padding:2px 7px;border-radius:4px;font-weight:600;white-space:nowrap}.st.inbox,.st.new{background:var(--accent-soft);color:var(--accent-ink)}.st.ok,.st.online,.st.quoted{background:var(--good-soft);color:var(--good)}.st.no,.st.noprofile,.st.offline,.st.waiting{background:var(--warn-soft);color:var(--warn)}.st.ordered{background:var(--purple-soft);color:var(--purple)}.st.archived,.st.draft{background:var(--hover);color:var(--ink-2)}.st.bad{background:var(--bad-soft);color:var(--bad)}table.g{width:100%;border-collapse:collapse;font-size:12.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}table.g th{text-align:left;font-weight:500;color:var(--ink-2);font-size:11.5px;padding:9px 12px;position:-webkit-sticky;position:sticky;top:0;background:var(--surface)}table.g td,table.g th{border-bottom:1px solid var(--line);white-space:nowrap}table.g td{padding:0 12px;height:42px}table.g .num{text-align:right}table.g td.dim{color:var(--ink-3)}table.g tbody tr{cursor:pointer}table.g tbody tr:hover td{background:var(--hover)}table.g tr.sel td{background:var(--sel)}table.g tr.fresh td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.thumb{width:30px;height:30px;border:1px solid var(--line);border-radius:4px;background:var(--surface);display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;margin-right:8px;overflow:hidden;color:var(--ink)}.thumb img,.thumb svg{width:100%;height:100%;object-fit:contain;display:block}.foot{display:flex;align-items:center;gap:18px;padding:0 16px;height:40px;border-top:1px solid var(--line);font-size:11.5px;color:var(--ink-2)}.foot b{color:var(--ink);font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.foot .sp,.split{flex:1 1}.split{display:grid;grid-template-columns:1fr 380px;grid-gap:12px;gap:12px;min-height:0}.viewer{position:relative;background:#1E262F;border-radius:6px;margin:10px 12px 0;height:240px;display:flex;align-items:center;justify-content:center;color:#9AA6B2;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.viewer>svg{width:100%;height:100%;display:block;color:#E6EAEE}.viewer .fitbtn{position:absolute;right:8px;bottom:8px;width:26px;height:26px;border-radius:6px;background:rgba(255,255,255,.08);color:#C9D2DC;display:flex;align-items:center;justify-content:center}.viewer .fitbtn:hover{background:rgba(255,255,255,.16)}.viewer .fitbtn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.spec{padding:4px 16px}.spec .r{display:grid;grid-template-columns:1fr auto 44px;grid-gap:10px;gap:10px;align-items:center;min-height:30px;border-bottom:1px solid var(--line);font-size:12.5px}.spec .r:last-child{border-bottom:0}.spec .l{color:var(--ink-2)}.spec .l.sub{padding-left:10px;color:var(--ink-3)}.spec .v{font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.spec .u{color:var(--ink-3);font-size:11px}.sech{font-weight:700;font-size:13px;padding:14px 16px 6px;display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);margin-top:6px}.sech i{width:7px;height:7px;border-radius:50%;background:var(--good)}.sech i.warn{background:var(--warn)}.qcard{margin:8px 16px 12px;background:var(--hover);border-radius:8px;padding:12px 14px}.centered{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.panel{width:min(380px,100%);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:24px}.panel h1{font-size:18px;margin:0 0 4px}.field{display:flex;flex-direction:column;gap:5px;margin-top:14px}.field label{font-size:11.5px;color:var(--ink-2)}.field input{width:100%}.err{color:var(--bad)}.err,.okmsg{font-size:12px;margin-top:10px}.okmsg{color:var(--good)}.toasts{position:fixed;right:22px;bottom:22px;display:flex;flex-direction:column;gap:8px;z-index:50}.toast{background:var(--surface);border:1px solid var(--accent-line);border-left:3px solid var(--accent);border-radius:8px;padding:10px 12px;font-size:12px;box-shadow:0 8px 28px rgba(0,0,0,.18);display:flex;align-items:center;gap:12px;max-width:460px}.toast .dim{color:var(--ink-3)}.modal-bg{position:fixed;inset:0;background:rgba(10,16,22,.45);display:flex;align-items:center;justify-content:center;z-index:40}.modal{background:var(--surface);border-radius:10px;width:min(460px,92vw);box-shadow:0 20px 60px rgba(0,0,0,.3)}.modal .hd{padding:14px 18px;border-bottom:1px solid var(--line);font-weight:600;display:flex;align-items:center}.modal .bd{padding:16px 18px 18px;display:flex;flex-direction:column;gap:12px}.modal .bd .field{margin-top:0}.modal .bd .row{gap:12px;align-items:flex-end}.modal .ft{padding:12px 18px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;align-items:center;gap:10px}.code{font:700 30px var(--mono);letter-spacing:.18em;text-align:center;padding:14px;background:var(--hover);border-radius:8px;-webkit-user-select:all;-moz-user-select:all;user-select:all}.list-row{display:grid;grid-gap:12px;gap:12px;padding:10px 16px;border-bottom:1px solid var(--line);font-size:12.5px;align-items:center}.list-row:last-child{border-bottom:0}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--good);margin-right:6px}.dot.off{background:var(--ink-3)}@media (max-width:980px){.app{grid-template-columns:1fr}.nav{position:static;height:auto}.split{grid-template-columns:1fr}}.chip{height:28px;padding:0 12px;border-radius:14px;border:1px solid var(--line);background:var(--surface);font-size:12px;color:var(--ink-2);white-space:nowrap}.chip:hover{background:var(--hover)}.chip.on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-ink);font-weight:600}.grid2{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:0 16px;gap:0 16px;padding:12px 16px}.grid2>div{display:flex;justify-content:space-between;gap:8px;min-height:26px;align-items:center;border-bottom:1px dashed var(--line);font-size:12px;padding:2px 0}.grid2>div span{color:var(--ink-2)}.grid2>div b{font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.grid2 .wide{grid-column:1/-1}.steps{display:grid;grid-template-columns:repeat(4,1fr);padding:18px 16px;grid-gap:8px;gap:8px}.steps>button{text-align:center;position:relative;cursor:pointer;padding:4px 0;border-radius:8px;font:inherit;color:inherit}.steps .n,.steps>button:hover{background:var(--hover)}.steps .n{width:28px;height:28px;border-radius:50%;margin:0 auto 6px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;color:var(--ink-3)}.steps .on .n{background:var(--accent);color:#fff}.steps .lbl{font-size:12.5px;color:var(--ink-3)}.steps .cur .lbl{font-weight:600;color:var(--ink)}.steps .bar{position:absolute;top:14px;left:calc(50% + 16px);right:calc(-50% + 16px);height:2px;background:var(--line)}.steps .on .bar{background:var(--accent)}.kpis{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:14px 16px}.kpi .l{font-size:11.5px;color:var(--ink-2)}.kpi .v{font:700 22px/1.2 var(--mono);margin-top:4px;letter-spacing:-.01em}.kpi .d{font-size:11.5px;margin-top:4px;color:var(--ink-3)}.kpi .d.up{color:var(--good)}.kpi .d.dn{color:var(--bad)}.bars{display:flex;gap:6px;align-items:flex-end;height:120px;padding:10px 14px 0}.bars i{flex:1 1;background:var(--accent-line);border-radius:3px 3px 0 0;position:relative;min-height:2px}.bars i.on{background:var(--accent)}.bars i b{position:absolute;top:-16px;left:0;right:0;text-align:center;font:10px var(--mono)}.bars i b,.bars-x{color:var(--ink-3)}.bars-x{display:flex;gap:6px;padding:4px 14px 10px;font-size:10.5px}.bars-x span{flex:1 1;text-align:center}.funnel{padding:12px 16px;display:flex;flex-direction:column;gap:8px}.funnel>div{display:grid;grid-template-columns:70px 1fr 130px;grid-gap:10px;gap:10px;align-items:center;font-size:12px}.funnel i{height:14px;border-radius:3px;background:var(--accent);display:block}.funnel b{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:500}.mini-cal{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:3px;gap:3px;padding:10px 14px;font-size:11px;text-align:center}.mini-cal span{height:26px;display:flex;align-items:center;justify-content:center;border-radius:4px;color:var(--ink-2)}.mini-cal span.h{color:var(--ink-3);font-size:10px}.mini-cal span.d{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.mini-cal span.d2{background:var(--warn-soft);color:var(--warn);font-weight:600}.mini-cal span.today{outline:1.5px solid var(--accent)}.tmpl{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px;padding:14px 16px}.tmpl button{border:1px solid var(--line);border-radius:6px;overflow:hidden;font-size:12px;text-align:left;background:var(--surface)}.tmpl button.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.tmpl .pg{height:90px;background:#fff;border-bottom:1px solid var(--line);padding:9px;display:flex;flex-direction:column;gap:4px}.tmpl .pg i{display:block;height:4px;background:#E2E6EB;border-radius:2px}.tmpl .pg i.h{height:8px;width:60%;background:#C9D2DC}.tmpl .pg i.t{height:22px;background:#EEF1F4}.tmpl .pg i.s{width:40%}.tmpl .cap{padding:7px 9px;display:flex;justify-content:space-between;align-items:center}.tmpl .cap span{color:var(--ink-3);font-size:11px}@media (max-width:980px){.kpis{grid-template-columns:repeat(2,1fr)}}.st.sent{background:var(--accent-soft);color:var(--accent-ink)}.st.approved{background:var(--good-soft);color:var(--good)}.st.rejected{background:var(--bad-soft);color:var(--bad)}.st.production{background:var(--warn-soft);color:var(--warn)}.st.shipped{background:var(--purple-soft);color:var(--purple)}.st.delivered{background:var(--good-soft);color:var(--good)}.card .form{padding:2px 16px 16px}.empty{padding:20px 16px;color:var(--ink-3);font-size:12.5px}.card .pad{padding:12px 16px}.datein{position:relative;display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 10px;border:1px solid var(--line);border-radius:6px;background:var(--surface);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;width:100%;cursor:pointer}.datein .v{flex:1 1;white-space:nowrap}.datein .ph{color:var(--ink-3)}.datein svg{width:14px;height:14px;stroke:var(--ink-3);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}.datein input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:0;padding:0}.datein:focus-within{outline:2px solid var(--accent);outline-offset:1px}.datein.off{opacity:.55;cursor:not-allowed}.datein.off input{pointer-events:none}