:root{--bg:#F3F5F8;--surface:#FFFFFF;--line:#DCE1EA;--ink:#1B2433;--muted:#5E6878;--accent:#27477A;--accent-ink:#FFFFFF;--accent-soft:#E3EAF5;--in:#2F6E57;--in-soft:#E1F0E9;--out:#A3392F;--out-soft:#F6E3E0;--warn:#9A6A12;--warn-soft:#F7EDD6;--header:#1F3A64;--header-ink:#F1F4FA;--f-display:"Gowun Batang","Nanum Myeongjo",serif;--f-body:"IBM Plex Sans KR","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;--r:10px;color-scheme:light}@media (prefers-color-scheme: dark){:root{--bg:#12161D;--surface:#1A202A;--line:#2C3542;--ink:#E6EAF1;--muted:#9AA4B4;--accent:#8FB0E6;--accent-ink:#0F1726;--accent-soft:#233149;--in:#7CC7A6;--in-soft:#1C3329;--out:#EE8E83;--out-soft:#3A2220;--warn:#E3B860;--warn-soft:#352B17;--header:#151C29;--header-ink:#E6EAF1;color-scheme:dark}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:14px;line-height:1.5;padding-bottom:env(safe-area-inset-bottom,0px)}[hidden]{display:none!important}.wrap{max-width:1180px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}header{background:var(--header);color:var(--header-ink);position:sticky;top:0;z-index:5;padding-top:env(safe-area-inset-top,0px)}.hbar{display:flex;align-items:center;gap:12px 16px;flex-wrap:wrap;padding-block:10px}.brand{font-family:var(--f-display);font-size:20px;font-weight:700;letter-spacing:.02em;display:flex;align-items:baseline;gap:8px}.brand small{font-family:var(--f-body);font-size:12px;font-weight:400;opacity:.7}nav{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto}nav a{color:var(--header-ink);text-decoration:none;padding:7px 12px;border-radius:8px;opacity:.78;font-weight:500}nav a:hover{opacity:1;background:#ffffff14}nav a[aria-current=page]{opacity:1;background:#ffffff29}.me{display:flex;align-items:center;gap:6px;font-size:12px;opacity:.9}.me .ghost{color:var(--header-ink)}@media (max-width:720px){nav{order:3;width:100%;margin-left:0;overflow-x:auto;flex-wrap:nowrap}nav a{white-space:nowrap}.me{margin-left:auto}}main{padding-block:20px 60px;display:grid;gap:20px}h1,h2,h3{margin:0;text-wrap:balance}h2{font-family:var(--f-display);font-size:22px;font-weight:700}h3{font-size:15px;font-weight:600}.sub{color:var(--muted);font-size:13px}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.spacer{flex:1}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;min-width:0}.grid2{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:20px}@media (max-width:860px){.grid2{grid-template-columns:minmax(0,1fr)}}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}@media (max-width:720px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:grid;gap:2px}.kpi b{font-size:26px;font-weight:600;font-variant-numeric:tabular-nums}.kpi span{color:var(--muted);font-size:12px;letter-spacing:.02em}.kpi.alert b{color:var(--out)}.kpi.warn b{color:var(--warn)}button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:7px 12px;font-weight:500}button:hover{border-color:var(--accent)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button.ghost{background:transparent;border-color:transparent;color:var(--muted)}button.ghost:hover{color:var(--ink);border-color:var(--line)}button.danger{color:var(--out);border-color:var(--out-soft)}button.sm{padding:4px 9px;font-size:12px}button:disabled{opacity:.5;cursor:not-allowed}input,select{font:inherit;font-size:16px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:7px 10px;min-width:0}@media (min-width:721px){input,select{font-size:14px}}label.f{display:grid;gap:4px;font-size:12px;color:var(--muted);font-weight:500}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{border-radius:999px;padding:5px 12px;font-size:13px}.chip[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.tbl-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:12px;color:var(--muted);font-weight:500;letter-spacing:.02em}td.num,th.num{text-align:right}tr:last-child td{border-bottom:0}.pill{display:inline-block;border-radius:999px;padding:1px 8px;font-size:12px;font-weight:500}.pill.in{background:var(--in-soft);color:var(--in)}.pill.out{background:var(--out-soft);color:var(--out)}.pill.adj{background:var(--accent-soft);color:var(--accent)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.zero{background:var(--out-soft);color:var(--out)}.prod{display:grid;gap:12px}.prod-head{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.prod-head h3{font-family:var(--f-display);font-size:18px;font-weight:700}.cat{font-size:12px;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:0 6px}.matrix td.cell{padding:4px}.cellbtn{width:100%;min-width:72px;display:grid;text-align:center;padding:6px 8px;border-radius:8px;background:var(--bg);border:1px solid transparent}.cellbtn b{font-size:18px;font-weight:600}.cellbtn small{font-size:11px;color:var(--muted)}.cellbtn.zero{background:var(--out-soft)}.cellbtn.zero b{color:var(--out)}.cellbtn.low{background:var(--warn-soft)}.cellbtn.low b{color:var(--warn)}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}.chart svg{width:100%;height:auto;display:block}.chart text{fill:var(--muted);font-size:11px;font-family:var(--f-body)}.list{display:grid}.list>div{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);min-width:0}.list>div:last-child{border-bottom:0}.list .grow{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty{color:var(--muted);padding:24px 8px;text-align:center}.formgrid{display:grid;grid-template-columns:140px minmax(0,1.4fr) minmax(0,1fr) auto 90px minmax(0,1fr) auto;gap:10px;align-items:end}@media (max-width:980px){.formgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.formgrid .full{grid-column:1/-1}}.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.seg button{border:0;border-radius:0;padding:7px 12px}.seg button[aria-pressed=true].t-in{background:var(--in);color:var(--surface)}.seg button[aria-pressed=true].t-out{background:var(--out);color:var(--surface)}.seg button[aria-pressed=true].t-adjust{background:var(--accent);color:var(--accent-ink)}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0f1973;display:grid;place-items:center;z-index:20;padding:16px}.modal{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px;width:min(460px,100%);display:grid;gap:14px;max-height:90vh;overflow:auto}.modal.wide{width:min(720px,100%)}.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translate(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:10px;z-index:30;font-size:13px;max-width:calc(100% - 32px)}.daygrid th,.daygrid td{padding:4px 6px;font-size:12px;text-align:center}.daygrid td.lab{text-align:left;position:sticky;left:0;background:var(--surface)}.daygrid .v-in{color:var(--in);font-weight:600}.daygrid .v-out{color:var(--out);font-weight:600}.note{font-size:12px;color:var(--warn)}.login{max-width:380px;margin:8vh auto 0;display:grid;gap:14px}.login h2{text-align:center}.err{color:var(--out);font-size:13px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
