:root{--bg:#f6f7f9;--panel:#fff;--ink:#16181d;--muted:#6b7280;--line:#e3e6ea;--accent:#1c4ed8;--ok:#0f7b47;--warn:#9a6700;--bad:#b42318;--star:#b45309}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font:14px/1.55 -apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Pretendard,Malgun Gothic,system-ui,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.shell{min-height:100vh;display:flex}.sidebar{background:var(--panel);border-right:1px solid var(--line);flex:0 0 216px;width:216px;padding:20px 12px}.sidebar h1{margin:0 8px 4px;font-size:15px}.sidebar .sub{color:var(--muted);margin:0 8px 18px;font-size:11px}.sidebar nav a{color:var(--ink);border-radius:6px;padding:7px 8px;font-size:13px;display:block}.sidebar nav a:hover{background:#eef1f5;text-decoration:none}.sidebar nav a[aria-current=page]{color:var(--accent);background:#e8eefc;font-weight:600}.sidebar .group{color:var(--muted);margin-top:14px;padding:0 8px 4px;font-size:11px}.main{flex:1;min-width:0;padding:24px 28px 64px}.main>header{margin-bottom:20px}.main h2{margin:0 0 4px;font-size:20px}.main .lede{color:var(--muted);margin:0;font-size:13px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;margin-bottom:16px;padding:16px 18px}.panel h3{margin:0 0 12px;font-size:14px}.cards{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px;display:grid}.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 16px}.card .label{color:var(--muted);font-size:12px}.card .value{letter-spacing:-.3px;margin-top:4px;font-size:22px;font-weight:650}.card .note{color:var(--muted);margin-top:2px;font-size:12px}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:8px 10px}th{color:var(--muted);font-size:12px;font-weight:600}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}tbody tr:last-child td{border-bottom:none}.tag{border:1px solid var(--line);border-radius:999px;padding:1px 7px;font-size:11px;display:inline-block}.tag.ok{color:var(--ok);background:#eefaf3;border-color:#b7e0c9}.tag.warn{color:var(--warn);background:#fdf7e7;border-color:#ecd9a0}.tag.bad{color:var(--bad);background:#fdf0ef;border-color:#f0c2bd}.tag.star{color:var(--star);background:#fdf6ea;border-color:#f0ddb8}.banner{border-radius:8px;margin-bottom:14px;padding:10px 12px;font-size:13px}.banner.bad{color:var(--bad);background:#fdf0ef;border:1px solid #f0c2bd}.banner.warn{color:var(--warn);background:#fdf7e7;border:1px solid #ecd9a0}.banner.ok{color:var(--ok);background:#eefaf3;border:1px solid #b7e0c9}form.stack{gap:10px;max-width:380px;display:grid}label{color:var(--muted);margin-bottom:3px;font-size:12px;display:block}input[type=text],input[type=email],input[type=password],textarea,select{border:1px solid var(--line);width:100%;font:inherit;color:var(--ink);background:#fff;border-radius:6px;padding:8px 10px}textarea{min-height:200px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}button{border:1px solid var(--accent);background:var(--accent);color:#fff;font:inherit;cursor:pointer;border-radius:6px;padding:8px 14px;font-weight:600}button.secondary{color:var(--ink);border-color:var(--line);background:#fff}button:disabled{opacity:.6;cursor:default}.login-page{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;width:100%;max-width:380px;padding:28px}.login-card h1{margin:0 0 2px;font-size:17px}.login-card p.sub{color:var(--muted);margin:0 0 20px;font-size:12px}.muted{color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spread{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.progress{background:#e9ecf1;border-radius:3px;height:6px;overflow:hidden}.progress>span{background:var(--accent);height:100%;display:block}.empty{color:var(--muted);text-align:center;padding:18px 0;font-size:13px}@media (max-width:760px){.shell{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--line);flex:none;width:auto}.main{padding:18px 16px 48px}}
