:root{--bg:#fff;--bg-sub:#f7f8fa;--fill:#f2f4f6;--border:#e5e8eb;--border-strong:#d1d6db;--text-1:#191f28;--text-2:#4e5968;--text-3:#586575;--accent:#3182f6;--ok:#15803d;--warn:#b45309;--bad:#b91c1c}*{box-sizing:border-box}html{background:var(--bg);color:var(--text-1);font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Pretendard,Malgun Gothic,sans-serif}body{margin:0}a{color:inherit}button,input{font:inherit}.login-shell{background:linear-gradient(180deg, var(--bg) 0%, var(--bg-sub) 100%);place-items:center;min-height:100dvh;padding:24px;display:grid}.login-panel{border:1px solid var(--border);background:var(--bg);border-radius:20px;gap:20px;width:min(420px,100%);padding:28px;display:grid}.eyebrow{color:var(--accent);letter-spacing:.02em;margin:0 0 8px;font-size:13px;font-weight:800}h1{letter-spacing:-.04em;margin:0;font-size:clamp(28px,6vw,52px);line-height:1.08}h2{margin:0;font-size:18px;line-height:1.35}p{color:var(--text-2);margin:0;line-height:1.6}.field{gap:8px;display:grid}.field span{color:var(--text-2);font-size:14px;font-weight:800}.field input{border:1px solid var(--border);background:var(--fill);width:100%;min-height:48px;color:var(--text-1);border-radius:10px;padding:0 14px}.field input:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent);outline:none}.primary-button{background:var(--text-1);color:#fff;cursor:pointer;border:0;border-radius:10px;min-height:48px;font-weight:800}.primary-button:disabled{cursor:progress;opacity:.72}.form-error{color:var(--bad);font-size:14px;font-weight:700}.shell{min-height:100dvh;padding:28px clamp(16px,4vw,40px) 48px}.topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:40px;display:flex}.brand{align-items:center;gap:10px;font-weight:900;display:flex}.brand-mark{background:color-mix(in srgb, var(--accent) 14%, white);width:32px;height:32px;color:var(--accent);border-radius:9px;place-items:center;font-weight:900;display:grid}.logout-button{border:1px solid var(--border);background:var(--bg);min-height:38px;color:var(--text-2);cursor:pointer;border-radius:999px;padding:0 14px}.hero{border-bottom:1px solid var(--border-strong);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:20px;padding-bottom:22px;display:grid}.hero p{max-width:760px}.updated{color:var(--text-3);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px}.metric-grid{border-bottom:1px solid var(--border-strong);grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:28px;display:grid}.metric-card{border-right:1px solid var(--border);min-height:132px;padding:18px 18px 18px 0}.metric-card+.metric-card{padding-left:18px}.metric-card:last-child{border-right:0}.metric-label{color:var(--text-3);font-size:13px;font-weight:800}.metric-value{letter-spacing:-.04em;font-variant-numeric:tabular-nums;margin:10px 0 8px;font-size:clamp(26px,4vw,38px);font-weight:900;display:block}.metric-note{color:var(--text-2);font-size:13px;line-height:1.5}.section-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:start;gap:28px;display:grid}.panel{border-top:1px solid var(--border-strong);padding-top:16px}.panel-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{color:var(--text-3);text-align:left;font-size:12px;font-weight:800}.table td,.table th{border-bottom:1px solid var(--border);vertical-align:top;padding:11px 8px 11px 0}.table td:last-child,.table th:last-child{padding-right:0}.tnum{font-variant-numeric:tabular-nums}.status-pill{background:var(--fill);min-height:26px;color:var(--text-2);border-radius:999px;align-items:center;padding:0 9px;font-size:12px;font-weight:900;display:inline-flex}.status-pill.success{color:var(--ok);background:#eefcf3}.status-pill.warn{color:var(--warn);background:#fffbeb}.status-pill.error{color:var(--bad);background:#fef2f2}.muted{color:var(--text-3)}.truncate{text-overflow:ellipsis;white-space:nowrap;max-width:340px;overflow:hidden}@media (max-width:900px){.hero,.metric-grid,.section-grid{grid-template-columns:1fr}.metric-card,.metric-card+.metric-card{border-right:0;border-bottom:1px solid var(--border);padding-left:0}.truncate{max-width:220px}}
