:root{color-scheme:light;--page: #f9f9f7;--surface: #fcfcfb;--ink: #0b0b0b;--ink2: #52514e;--muted: #898781;--grid: #e1e0d9;--axis: #c3c2b7;--border: rgba(11, 11, 11, .1);--s1: #2a78d6;--s2: #eb6834;--s3: #1baf7a;--s4: #eda100;--s5: #e87ba4;--s6: #008300;--s7: #4a3aa7;--s8: #e34948;--good: #0ca30c;--warn: #fab219;--serious: #ec835a;--crit: #d03b3b;--up: #006300;--down: #d03b3b;--track: #eef1f4;--shadow: 0 1px 2px rgba(11, 11, 11, .04), 0 6px 20px rgba(11, 11, 11, .04);--radius: 12px}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--page: #0d0d0d;--surface: #1a1a19;--ink: #fff;--ink2: #c3c2b7;--muted: #898781;--grid: #2c2c2a;--axis: #383835;--border: rgba(255, 255, 255, .1);--s1: #3987e5;--s2: #d95926;--s3: #199e70;--s4: #c98500;--s5: #d55181;--s6: #008300;--s7: #9085e9;--s8: #e66767;--up: #0ca30c;--track: #25252a;--shadow: none}}:root[data-theme=dark]{color-scheme:dark;--page: #0d0d0d;--surface: #1a1a19;--ink: #fff;--ink2: #c3c2b7;--muted: #898781;--grid: #2c2c2a;--axis: #383835;--border: rgba(255, 255, 255, .1);--s1: #3987e5;--s2: #d95926;--s3: #199e70;--s4: #c98500;--s5: #d55181;--s6: #008300;--s7: #9085e9;--s8: #e66767;--up: #0ca30c;--track: #25252a;--shadow: none}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--page);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Pretendard,Segoe UI,Roboto,Noto Sans KR,sans-serif;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}a{color:inherit}button{font:inherit}.shell{display:flex;flex-direction:column;min-height:100%}.topbar{display:flex;align-items:center;gap:16px;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:10}.topbar h1{font-size:16px;margin:0;font-weight:650;letter-spacing:-.01em}.brand{display:flex;align-items:center;gap:12px}.brand img{height:30px;width:auto;display:block}.brand span{font-size:15px;font-weight:600;color:var(--ink2);padding-left:12px;border-left:1px solid var(--border);line-height:1.2}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .brand img{filter:invert(1) brightness(1.6)}}:root[data-theme=dark] .brand img{filter:invert(1) brightness(1.6)}@media (max-width: 640px){.brand img{height:24px}.brand span{font-size:13px;padding-left:9px}}.topbar nav{display:flex;gap:4px;margin-left:8px}.topbar nav a{padding:6px 12px;border-radius:8px;text-decoration:none;color:var(--ink2);font-size:14px}.topbar nav a:hover{background:var(--track)}.topbar nav a.on{background:var(--ink);color:var(--page)}.spacer{flex:1}.who{color:var(--muted);font-size:13px}main{padding:20px;max-width:1400px;width:100%;margin:0 auto}.grid{display:grid;gap:14px}.cards{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.cols2{grid-template-columns:repeat(auto-fit,minmax(420px,1fr))}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);min-width:0}.card h2{margin:0 0 4px;font-size:14px;font-weight:600;color:var(--ink2)}.card .cap{margin:0 0 12px;font-size:12px;color:var(--muted)}.kpi .label{font-size:13px;color:var(--ink2);margin-bottom:6px}.kpi .value{font-size:26px;font-weight:680;letter-spacing:-.02em;line-height:1.15}.kpi .sub{font-size:12px;color:var(--muted);margin-top:4px}.hero .value{font-size:40px}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:7px 8px;text-align:right;border-bottom:1px solid var(--border)}th:first-child,td:first-child{text-align:left}th{color:var(--muted);font-weight:550;font-size:12px}tr.tot td{font-weight:650;border-top:1px solid var(--axis);border-bottom:none}.scroll{overflow-x:auto}.notes{list-style:none;margin:0;padding:0}.notes li{padding:8px 0;border-bottom:1px solid var(--border);font-size:13.5px;display:flex;gap:10px;align-items:baseline}.notes li:last-child{border-bottom:none}.tag{flex:none;font-size:11px;padding:2px 7px;border-radius:999px;background:var(--track);color:var(--ink2)}.tag.pending{background:var(--crit);color:#fff}.muted{color:var(--muted)}.empty{color:var(--muted);font-size:13px;padding:12px 0}.err{background:color-mix(in srgb,var(--crit) 12%,var(--surface));border:1px solid var(--crit);color:var(--ink);padding:10px 12px;border-radius:8px;font-size:13px}.ok{background:color-mix(in srgb,var(--good) 12%,var(--surface));border:1px solid var(--good);padding:10px 12px;border-radius:8px;font-size:13px}.center{display:grid;place-items:center;min-height:100%;padding:20px}.form{width:100%;max-width:360px}.form label{display:block;font-size:13px;color:var(--ink2);margin:12px 0 5px}input[type=email],input[type=password],input[type=date]{width:100%;padding:9px 11px;font:inherit;font-size:14px;border:1px solid var(--axis);border-radius:8px;background:var(--surface);color:var(--ink)}.btn{padding:9px 16px;border-radius:8px;border:1px solid transparent;background:var(--ink);color:var(--page);cursor:pointer;font-size:14px}.btn:disabled{opacity:.5;cursor:default}.btn.ghost{background:transparent;color:var(--ink2);border-color:var(--axis)}.drop{border:2px dashed var(--axis);border-radius:var(--radius);padding:40px 20px;text-align:center;color:var(--ink2);background:var(--surface)}.drop.over{border-color:var(--s1);background:color-mix(in srgb,var(--s1) 8%,var(--surface))}
