:root{--bg: #0e0f10;--bar: #121314;--rail: #141516;--panel: #18191a;--inset: #101112;--line: #2a2b2c;--line-hot: #3d3e3f;--text: #e8e6e3;--dim: #8b8d8f;--mute: #4a4b4c;--accent: #e3b341;--accent-line: #3a3218;--accent-fill: #1c1c14;--warn-fill: #1a160c;--jang: #e3b341;--lab: #8fd19a;--lab-dot: #3fb950;--lab-line: #2a4a32;--lab-idle: #1e3324;--up: #ef6b73;--down: #6aa5ff;--act: #238636;--hold: #8b8d8f;--stale: #5a3a3a;--tip: #000000;--font: "Noto Sans KR", "Noto Sans CJK KR", -apple-system, "Segoe UI", sans-serif;--fs-label: 11px;--fs-meta: 12px;--fs-table: 13px;--fs-body: 14px;--fs-brand: 16px;--fs-title: 20px;--fs-hero: 32px;--lh: 1.45;--fw-med: 500;--fw-bold: 700;--fw-black: 800;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--pad-bar: 14px;--pad-rail: 10px;--pad-cell: 7px;--pad-tab-y: 5px;--gap-tight: 6px;--dot: 7px;--bar-h: 40px;--rail-w: 200px;--r-sm: 4px;--r-md: 6px;--r-lg: 8px;--r-xl: 10px;--r-pill: 999px;--chart-h: 148px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font:var(--fs-body)/var(--lh) var(--font)}button,input,select{font:inherit;color:inherit}.shell{display:grid;grid-template-columns:var(--rail-w) 1fr;grid-template-rows:var(--bar-h) 1fr;height:100%}.topbar{grid-column:1 / -1;display:flex;align-items:center;gap:var(--pad-bar);padding:0 var(--pad-bar);background:var(--bar);border-bottom:1px solid var(--line);font-size:var(--fs-meta);color:var(--dim)}.topbar .mark{color:var(--text);font-weight:var(--fw-bold);letter-spacing:.04em}.topbar .grow{flex:1}.chip{display:inline-flex;align-items:center;gap:var(--gap-tight);padding:2px var(--s-2);border:1px solid var(--line);border-radius:var(--r-pill);color:var(--dim);white-space:nowrap}.chip .dot{width:var(--dot);height:var(--dot);border-radius:50%;background:var(--mute)}.chip.on{border-color:var(--accent-line);color:var(--jang)}.chip.on .dot{background:var(--jang);box-shadow:0 0 6px var(--jang)}.chip.stale .dot{background:var(--stale)}.chip.lab{border-color:var(--lab-idle)}.chip.lab.on{color:var(--lab);border-color:var(--lab-line)}.chip.lab.on .dot{background:var(--lab-dot);box-shadow:0 0 6px var(--lab-dot)}.clock{font-variant-numeric:tabular-nums}.rail{background:var(--rail);border-right:1px solid var(--line);padding:var(--s-4) var(--pad-rail)}.brand{font-weight:var(--fw-bold);font-size:var(--fs-brand);margin:0 var(--s-2) var(--s-4)}.rail nav{display:flex;flex-direction:column;gap:2px}.rail a{color:var(--dim);text-decoration:none;padding:var(--s-2) var(--pad-rail);border-radius:var(--r-md)}.rail a.on{color:var(--accent);background:var(--accent-fill)}.rail a:hover{color:var(--text)}.pane{overflow:auto;padding:var(--s-5) var(--s-6) var(--s-6)}h1{font-size:var(--fs-title);font-weight:var(--fw-bold);margin-bottom:var(--s-1)}h2{font-size:var(--fs-label);font-weight:600;color:var(--dim);letter-spacing:.06em;text-transform:uppercase;margin:18px 0 var(--s-2)}.meta{color:var(--dim);font-size:var(--fs-meta);margin-bottom:var(--s-3)}.warn{color:var(--accent);font-size:var(--fs-meta);border:1px solid var(--accent-line);background:var(--warn-fill);border-radius:var(--r-md);padding:var(--s-2) var(--pad-rail);margin:var(--s-2) 0 var(--pad-bar)}.hero{font-size:var(--fs-hero);font-weight:var(--fw-black);font-variant-numeric:tabular-nums;letter-spacing:-.03em;margin:var(--s-1) 0 2px}.sub{color:var(--dim);font-size:var(--fs-meta);margin-bottom:var(--pad-bar)}.up{color:var(--up)}.down{color:var(--down)}.cards{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3)}.card{display:block;text-decoration:none;color:inherit;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-xl);padding:var(--pad-bar) var(--s-4);min-height:140px}.card:hover{border-color:var(--line-hot)}.card .k{color:var(--dim);font-size:var(--fs-label);letter-spacing:.05em}.card .v{font-size:26px;font-weight:var(--fw-black);font-variant-numeric:tabular-nums;margin:var(--s-2) 0 var(--gap-tight)}.card p{color:var(--dim);font-size:var(--fs-meta)}.strip{display:flex;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;margin:var(--s-3) 0;background:var(--panel)}.strip div{flex:1;min-width:110px;padding:var(--pad-rail) var(--s-3);border-right:1px solid var(--line)}.strip div:last-child{border-right:none}.strip .k{color:var(--dim);font-size:var(--fs-label)}.strip .v{font-size:var(--fs-brand);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.strip .v small{color:var(--dim);font-weight:400;font-size:var(--fs-label)}.tabs{display:flex;gap:var(--gap-tight);margin:var(--pad-rail) 0}.tabs button{padding:var(--pad-tab-y) var(--s-3);border-radius:var(--r-md);border:1px solid var(--line);background:transparent;color:var(--dim);cursor:pointer}.tabs button.on{border-color:var(--accent);color:var(--accent)}.chart-box{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-2)}.chart-box svg{width:100%;height:var(--chart-h);display:block}.tip{position:absolute;background:var(--tip);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s-1) var(--s-2);font-size:var(--fs-meta);pointer-events:none;white-space:nowrap;z-index:5}.chart-info{margin-top:var(--gap-tight);font-size:var(--fs-table);color:var(--dim);min-height:18px}.chart-info b{color:var(--text)}.spark{width:100%;height:36px;display:block;margin-top:var(--pad-rail)}table{width:100%;border-collapse:collapse;font-size:var(--fs-table)}th{color:var(--dim);text-align:left;font-weight:var(--fw-med);padding:var(--pad-cell) var(--s-2);background:var(--panel);border-bottom:1px solid var(--line);white-space:nowrap}td{padding:var(--pad-cell) var(--s-2);border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}td.wrap{white-space:normal;color:var(--dim)}tr:hover td{background:var(--rail)}.r{text-align:right}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--pad-rail)}.tile{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-xl);padding:var(--s-3) var(--pad-bar)}.tile .name{font-weight:var(--fw-bold);font-size:var(--fs-table)}.tile .hint{color:var(--dim);font-size:var(--fs-meta);margin-top:var(--gap-tight);line-height:var(--lh)}.tile .state{color:var(--dim);font-size:var(--fs-label);margin-top:var(--s-2)}.mounts{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-2)}.mount{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--pad-rail) var(--s-3);display:flex;justify-content:space-between;align-items:center;gap:var(--s-2)}.mount strong{font-size:var(--fs-table)}.mount .who{color:var(--dim);font-size:var(--fs-meta)}.side{font-size:var(--fs-meta);font-weight:var(--fw-bold)}.side.fill{color:var(--up)}.side.hold{color:var(--hold)}.row{display:flex;flex-wrap:wrap;gap:var(--pad-rail);align-items:end}.panel-form{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-3);margin:var(--pad-rail) 0}.row label{display:flex;flex-direction:column;gap:var(--s-1);color:var(--dim);font-size:var(--fs-meta)}.row input,.row select,.row button{padding:var(--pad-cell) var(--pad-rail);border-radius:var(--r-md);border:1px solid var(--line);background:var(--inset)}.row button{background:var(--act);border-color:var(--act);color:var(--text);cursor:pointer}.row button.ghost{background:transparent;border-color:var(--line);color:var(--text)}.row button:disabled,select:disabled{background:transparent;border-color:var(--line);color:var(--dim);cursor:not-allowed;opacity:1}.filter{display:flex;align-items:center;gap:var(--s-2);color:var(--dim);font-size:var(--fs-meta);margin:var(--s-3) 0}.filter select,table select{padding:var(--gap-tight) var(--s-2);border-radius:var(--r-md);border:1px solid var(--line);background:var(--inset);color:var(--text)}table select{padding:var(--s-1) var(--gap-tight);border-radius:var(--r-sm)}.tape{font-size:var(--fs-table)}.empty{color:var(--dim);padding:var(--s-3) 0}@media(max-width:860px){.shell{grid-template-columns:1fr;grid-template-rows:var(--bar-h) auto 1fr}.rail{border-right:0;border-bottom:1px solid var(--line);padding:var(--s-2) var(--pad-rail)}.rail nav{flex-direction:row;flex-wrap:wrap}.cards,.tiles,.mounts{grid-template-columns:1fr}.topbar{overflow-x:auto}}
