:root{--bg:#eef0f4;--surface:#fff;--ink:#14213d;--navy:#14213d;--blue:#2f6bff;--blue-dark:#1f56e8;--blue-bg:#e8efff;--sub:#66718c;--sub2:#8b94ab;--line:#e3e7f0;--ok:#157347;--ok-bg:#e8f7ee;--bad:#dc2626;--bad-bg:#fdecec;--warn:#8a6116;--warn-bg:#fff8eb;--shadow-card:0 14px 32px -24px rgba(20,33,61,0.18),0 1px 3px rgba(20,33,61,0.04);--shadow-float:0 24px 48px -22px rgba(20,33,61,0.18),0 2px 8px rgba(20,33,61,0.05);--grad-blue:linear-gradient(180deg,#4a80ff,#2f63f0);--grad-navy:linear-gradient(180deg,#1d2e5c,#14213d)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,Apple SD Gothic Neo,Noto Sans KR,sans-serif;background:radial-gradient(140% 90% at 50% -20%,#f8fafd 0,var(--bg) 65%);color:var(--ink);line-height:1.5;word-break:keep-all;min-height:100vh}a{color:inherit;text-decoration:none}.shell{display:flex;min-height:100vh}.sidebar{width:220px;flex:0 0 220px;background:var(--surface);border-right:1px solid var(--line);padding:24px 14px;display:flex;flex-direction:column;gap:4px}.sidebar .logo{font-size:19px;font-weight:900;letter-spacing:-.02em;padding:0 10px 18px}.sidebar .logo span{color:var(--blue)}.sidebar a.nav{display:block;padding:10px 14px;border-radius:999px;font-size:14px;font-weight:700;color:var(--sub)}.sidebar a.nav:hover{background:var(--bg);color:var(--ink)}.sidebar a.nav.active{background:var(--grad-navy);color:#fff}.sidebar .section-label{font-size:11px;font-weight:800;letter-spacing:.06em;color:var(--sub2);padding:16px 14px 6px}.main{flex:1 1 auto;padding:32px 36px 64px;max-width:1180px}.page-title{font-size:26px;font-weight:900;letter-spacing:-.02em;margin-bottom:4px}.page-sub{font-size:13.5px;color:var(--sub);margin-bottom:24px}.card{background:var(--surface);border-radius:20px;padding:24px;box-shadow:var(--shadow-card)}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:16px;gap:16px;margin-bottom:20px}.stat{background:var(--surface);border-radius:18px;padding:20px 22px;box-shadow:var(--shadow-card)}.stat .label{font-size:12.5px;font-weight:800;color:var(--sub2);letter-spacing:.03em}.stat .value{font-size:32px;font-weight:900;letter-spacing:-.02em;margin-top:4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat .value small{font-size:14px;font-weight:700;color:var(--sub)}.stat.navy{background:var(--grad-navy);color:#fff}.stat.navy .label{color:#b9c4e2}table.data{width:100%;border-collapse:collapse;font-size:13.5px}table.data th{text-align:left;font-size:12px;letter-spacing:.04em;color:var(--sub2);font-weight:800;padding:8px 12px;border-bottom:2px solid var(--line);white-space:nowrap}table.data td{padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:top}table.data tr:last-child td{border-bottom:0}table.data td.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.tscroll{overflow-x:auto}.pill{display:inline-block;border-radius:999px;font-size:11.5px;font-weight:800;padding:3px 10px;white-space:nowrap}.pill.blue{background:var(--blue-bg);color:var(--blue-dark)}.pill.ok{background:var(--ok-bg);color:var(--ok)}.pill.bad{background:var(--bad-bg);color:var(--bad)}.pill.gray{background:#f1f3f8;color:var(--sub)}.pill.warn{background:var(--warn-bg);color:var(--warn)}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.toolbar input[type=search],.toolbar select{border:1px solid var(--line);border-radius:11px;padding:9px 14px;font-size:14px;background:var(--surface);color:var(--ink);outline:none}.toolbar input[type=search]:focus,.toolbar select:focus{border-color:var(--blue)}.btn-primary{background:var(--grad-blue);color:#fff;font-weight:800;border:0;border-radius:13px;padding:11px 20px;cursor:pointer;font-size:14px;box-shadow:0 14px 24px -12px rgba(47,99,240,.55),inset 0 1px 0 rgba(255,255,255,.22)}.btn-primary:active{background:var(--blue-dark);transform:translateY(1px)}.empty{text-align:center;color:var(--sub2);padding:48px 0;font-size:14px}.userbar{display:flex;align-items:center;gap:10px;justify-content:flex-end;margin:-8px 0 16px;font-size:13px}.userbar-email,.userbar-logout{color:var(--sub);font-weight:700}.userbar-logout{background:none;border:1px solid var(--line);border-radius:999px;padding:5px 14px;font-size:12px;cursor:pointer}.userbar-logout:hover{border-color:var(--blue);color:var(--blue-dark)}