:root{--brand-primary:#4f7df3;--brand-secondary:#7c5cfa;--brand-teal:#2dd4bf;--brand-gradient:linear-gradient(135deg,var(--brand-primary) 0%,var(--brand-secondary) 100%);--bg:#05070d;--bg-elevated:#0a0e17;--surface:#111827;--surface-hover:#1a2234;--border:#1e293b;--border-strong:#334155;--text:#f4f7fc;--text-secondary:#94a3b8;--muted:#64748b;--success:#34d399;--success-bg:rgba(52,211,153,0.12);--warning:#fbbf24;--warning-bg:rgba(251,191,36,0.12);--danger:#f87171;--danger-bg:rgba(248,113,113,0.12);--info:#60a5fa;--info-bg:rgba(96,165,250,0.12);--neutral-bg:rgba(148,163,184,0.12);--accent:var(--brand-primary);--accent-2:var(--brand-secondary);--accent-glow:rgba(79,125,243,0.22);--shadow-sm:0 1px 2px rgba(0,0,0,0.35);--shadow-md:0 8px 32px rgba(0,0,0,0.4);--shadow-glow:0 4px 28px var(--accent-glow);--radius-sm:8px;--radius:12px;--radius-lg:16px;--radius-xl:24px;--header-h:64px;--container:1120px;--container-narrow:720px;--font-sans:"Pretendard Variable",Pretendard,"Apple SD Gothic Neo","Segoe UI",system-ui,sans-serif;--font-display:var(--font-sans);--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:clamp(1.75rem,4vw,2.25rem);--text-hero:clamp(2rem,5.5vw,3.25rem);--leading-tight:1.15;--leading-normal:1.6;font-family:var(--font-sans);font-feature-settings:"ss01","ss02";-webkit-font-smoothing:antialiased}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100vh;line-height:1.5;font-family:Pretendard Variable,Pretendard,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--brand-primary);text-decoration:none}a:hover{text-decoration:underline}.layout{display:flex;min-height:100vh}.sidebar{width:248px;border-right:1px solid var(--border);padding:1.25rem .875rem;background:var(--surface);flex-shrink:0;display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar .logo{font-weight:800;font-size:1.05rem;background:var(--brand-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:1.25rem;display:block;padding:0 .5rem;text-decoration:none}.sidebar nav{display:flex;flex-direction:column;gap:.15rem;flex:1 1}.sidebar nav a{padding:.55rem .75rem;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.875rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s}.sidebar nav a:hover{background:var(--bg-elevated);color:var(--text);text-decoration:none}.sidebar .badge-count{margin-left:auto;background:var(--warning);color:#0f172a;font-size:.65rem;padding:.1rem .45rem;border-radius:999px;font-weight:700}.sidebar .nav-row{display:flex;align-items:center;gap:.35rem}.sidebar-divider{height:1px;background:var(--border);margin:.75rem .5rem}.sidebar-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:.5rem .75rem .25rem}.main{flex:1 1;padding:clamp(1rem,3vw,1.75rem) clamp(1rem,4vw,2rem);overflow:auto;min-width:0}.console-topbar{display:none;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--surface);position:-webkit-sticky;position:sticky;top:0;z-index:50}.console-topbar .logo{font-weight:800;font-size:1rem;background:var(--brand-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:90}.sidebar-overlay.open{display:block}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.125rem;box-shadow:var(--shadow-sm)}.stat{font-size:clamp(1.35rem,3vw,1.75rem);font-weight:700;letter-spacing:-.02em}.muted{color:var(--muted)}.muted,table{font-size:.85rem}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:.65rem .6rem;border-bottom:1px solid var(--border)}th{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.status,th{color:var(--text-secondary);font-weight:600}.status{font-size:.7rem;padding:.2rem .5rem;border-radius:999px;background:var(--neutral-bg);font-family:ui-monospace,monospace}.status-warn{background:var(--warning-bg);color:var(--warning)}.status-ok{background:var(--success-bg);color:var(--success)}.btn{display:inline-flex;align-items:center;padding:.45rem .85rem;border-radius:var(--radius-sm);border:none;font-size:.8rem;font-weight:600;cursor:pointer;transition:opacity .15s}.btn-primary{background:var(--brand-gradient);color:#fff}.btn-primary:hover{opacity:.9}.btn-danger{background:var(--danger-bg);color:var(--danger)}.btn+.btn{margin-left:.35rem}.timeline-item{border-left:2px solid var(--brand-primary);padding-left:.75rem;margin-bottom:.5rem;font-size:.85rem}.grid-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));grid-gap:1rem;gap:1rem;margin-bottom:1.5rem}.timeline-chart{margin-top:.75rem}.timeline-chart-legend{display:flex;flex-wrap:wrap;gap:1rem;font-size:.75rem;color:var(--muted);margin-bottom:.75rem}.timeline-chart-legend .dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:.35rem;vertical-align:middle}.dot-count{background:var(--brand-primary)}.dot-volume{background:var(--brand-secondary)}.timeline-chart-bars{display:flex;align-items:flex-end;gap:.5rem;min-height:120px;padding-bottom:.25rem;overflow-x:auto}.timeline-chart-col{flex:1 1;min-width:36px;display:flex;flex-direction:column;align-items:center;gap:.35rem}.timeline-chart-bar-wrap{display:flex;align-items:flex-end;justify-content:center;gap:3px;height:100px;width:100%}.timeline-chart-bar{width:40%;max-width:18px;min-height:4px;border-radius:4px 4px 0 0;transition:height .2s ease}.bar-count{background:var(--brand-primary)}.bar-volume{background:var(--brand-secondary);opacity:.85}.timeline-chart-label{font-size:.65rem;color:var(--muted);white-space:nowrap}.page-title{font-size:clamp(1.25rem,3vw,1.5rem);font-weight:700;letter-spacing:-.02em;margin-bottom:.35rem}@media (max-width:768px){.layout{flex-direction:column}.console-topbar{display:flex}.sidebar{position:fixed;left:0;top:0;z-index:100;transform:translateX(-100%);transition:transform .25s ease;box-shadow:var(--shadow-md)}.sidebar.open{transform:translateX(0)}.main{padding-top:0}}@media (min-width:769px){.menu-toggle-console,.sidebar-overlay{display:none!important}}.menu-toggle-console{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text);cursor:pointer}