:root{--bg:#f6f7fb;--card:#fff;--text:#101828;--muted:#667085;--line:#e4e7ec}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:Arial,Apple SD Gothic Neo,Noto Sans KR,sans-serif}.shell{min-height:100vh;display:flex}.sidebar{color:#fff;background:#111827;width:240px;height:100vh;padding:24px;position:sticky;top:0}.brand{margin-bottom:28px;font-size:20px;font-weight:800}.nav a{color:#d1d5db;border-radius:10px;margin:4px 0;padding:11px 12px;text-decoration:none;display:block}.nav a:hover{color:#fff;background:#1f2937}.main{flex:1;padding:28px}.topbar{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.grid{gap:16px;display:grid}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 1px 2px #1018280a}.label{color:var(--muted);font-size:13px}.value{margin-top:8px;font-size:28px;font-weight:800}.table{border-collapse:collapse;width:100%}.table th,.table td{border-bottom:1px solid var(--line);text-align:left;padding:12px}.badge{color:#027a48;background:#ecfdf3;border-radius:999px;padding:4px 9px;font-size:12px;display:inline-block}.badge.warn{color:#b54708;background:#fffaeb}.badge.danger{color:#b42318;background:#fef3f2}.btn{border:1px solid var(--line);color:#111827;background:#fff;border-radius:10px;padding:10px 14px;text-decoration:none;display:inline-block}@media (max-width:900px){.shell{display:block}.sidebar{width:100%;height:auto;position:relative}.grid-4,.grid-2{grid-template-columns:1fr}.main{padding:18px}}
