:root{--bg: #F5F6F4;--surface: #FFFFFF;--line: #E2E4E1;--ink: #14181C;--ink-soft: #5B6570;--red: #E4002B;--yellow: #FFC629;--green: #1B8A5A;--font-display: "IBM Plex Sans", system-ui, sans-serif;--font-body: "IBM Plex Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", "SF Mono", monospace}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}.app-shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--line);padding:24px 0;display:flex;flex-direction:column}.brand{padding:0 20px 20px;font-family:var(--font-display);font-weight:700;font-size:15px;letter-spacing:.02em;border-bottom:1px solid var(--line);margin-bottom:8px}.brand span{color:var(--red)}.nav-group-label{padding:16px 20px 6px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.nav-item{display:block;width:100%;text-align:left;padding:9px 20px;border:none;background:transparent;font-size:13.5px;color:var(--ink);border-left:3px solid transparent}.nav-item:hover{background:#f0f1ef}.nav-item.active{border-left-color:var(--red);background:#fdf2f2;font-weight:600}.main{padding:28px 36px 60px;max-width:1180px}.topbar{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:22px;flex-wrap:wrap;gap:12px}.page-title{font-family:var(--font-display);font-weight:700;font-size:22px;margin:0}.page-sub{color:var(--ink-soft);font-size:13px;margin-top:2px}.granularity-tabs{display:inline-flex;background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:hidden}.granularity-tabs button{padding:7px 14px;border:none;background:transparent;font-size:13px;color:var(--ink-soft);border-right:1px solid var(--line)}.granularity-tabs button:last-child{border-right:none}.granularity-tabs button.active{background:var(--ink);color:#fff;font-weight:600}.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px}.kpi-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px 18px;position:relative;overflow:hidden}.kpi-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--yellow)}.kpi-label{font-size:11.5px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em}.kpi-value{font-family:var(--font-mono);font-size:24px;font-weight:600;margin-top:6px}.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:18px 20px;margin-bottom:22px}.card-title{font-size:13px;font-weight:600;margin:0 0 12px}table{width:100%;border-collapse:collapse;font-size:12.5px}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-weight:600}td.num,th.num{font-family:var(--font-mono);text-align:right}tbody tr:hover{background:#fafaf9}.empty-state{padding:40px 20px;text-align:center;color:var(--ink-soft);font-size:13px}
