.app-shell{display:flex;height:100vh;overflow:hidden}.app-main{flex:1;display:flex;flex-direction:column;overflow:hidden}.app-header{height:56px;display:flex;align-items:center;padding:0 28px;border-bottom:1px solid var(--col-border);flex-shrink:0;background:var(--col-bg)}.page-title{font-size:16px;font-weight:500;color:var(--col-text);letter-spacing:-.01em}.app-content{flex:1;overflow-y:auto;padding:24px 28px 40px}.sidebar{width:220px;flex-shrink:0;background:var(--col-surface);border-right:1px solid var(--col-border);display:flex;flex-direction:column;padding:0 0 16px;overflow-y:auto}.sidebar-logo{display:flex;align-items:center;gap:10px;padding:20px 16px 18px;border-bottom:1px solid var(--col-border);margin-bottom:8px}.sidebar-logo-mark{width:28px;height:28px;background:var(--col-accent);color:#0f1117;border-radius:7px;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;flex-shrink:0}.sidebar-logo-text{font-size:13px;font-weight:500;color:var(--col-text);white-space:nowrap}.sidebar-section-label{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--col-subtle);padding:16px 16px 6px}.nav-item{display:flex;align-items:center;gap:9px;padding:8px 16px;font-size:13px;color:var(--col-muted);border-radius:0;transition:color .15s,background .15s;position:relative}.nav-item svg{flex-shrink:0;opacity:.7}.nav-item:hover{color:var(--col-text);background:#ffffff0a}.nav-item.active{color:var(--col-accent2);background:var(--col-accent-bg)}.nav-item.active:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:2px;background:var(--col-accent);border-radius:0 2px 2px 0}.nav-item.active svg{opacity:1}.sidebar-footer{margin-top:auto;padding:16px 16px 4px;border-top:1px solid var(--col-border)}.sidebar-footer-text{font-size:11px;color:var(--col-subtle)}.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.kpi-row-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px}.chart-row{display:grid;gap:16px;margin-bottom:20px}.chart-row-2{grid-template-columns:repeat(2,1fr)}.chart-row-3{grid-template-columns:repeat(3,1fr)}.chart-row-60-40{grid-template-columns:3fr 2fr}.chart-row-40-60{grid-template-columns:2fr 3fr}.kpi-card{background:var(--col-surface);border:1px solid var(--col-border);border-radius:var(--radius-lg);padding:18px 20px;box-shadow:var(--shadow-card)}.kpi-label{font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--col-muted);margin-bottom:10px}.kpi-value{font-size:32px;font-weight:300;letter-spacing:-.02em;line-height:1;margin-bottom:6px}.kpi-sub{font-size:12px;color:var(--col-muted)}.filters-bar{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}.filter-label{font-size:12px;color:var(--col-muted)}.filter-select{background:var(--col-surface2);border:1px solid var(--col-border2);border-radius:var(--radius-sm);color:var(--col-text);padding:6px 10px;font-size:13px;cursor:pointer;outline:none;transition:border-color .15s}.filter-select:hover{border-color:var(--col-accent)}.filter-select:focus{border-color:var(--col-accent)}.state-box{display:flex;align-items:center;justify-content:center;min-height:120px;color:var(--col-muted);font-size:13px}.state-error{color:var(--col-bad)}:root{--font-body: "DM Sans", sans-serif;--font-mono: "DM Mono", monospace;--col-bg: #0f1117;--col-surface: #181c26;--col-surface2: #1f2433;--col-border: rgba(255,255,255,.08);--col-border2: rgba(255,255,255,.14);--col-text: #e8eaf0;--col-muted: #7b8296;--col-subtle: #4a5068;--col-accent: #c8a96e;--col-accent2: #e2c48a;--col-accent-bg: rgba(200,169,110,.1);--col-good: #4caf82;--col-warn: #e8a03c;--col-bad: #e05c5c;--col-info: #5b8dee;--col-good-bg: rgba(76,175,130,.12);--col-warn-bg: rgba(232,160,60,.12);--col-bad-bg: rgba(224,92,92,.12);--chart-1: #c8a96e;--chart-2: #5b8dee;--chart-3: #4caf82;--chart-4: #e05c5c;--chart-5: #9b7fe8;--chart-6: #e8a03c;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--shadow-card: 0 1px 3px rgba(0,0,0,.4), 0 4px 16px rgba(0,0,0,.25)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;background:var(--col-bg);color:var(--col-text);font-family:var(--font-body);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,select{font-family:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--col-subtle);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--col-muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.card{background:var(--col-surface);border:1px solid var(--col-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.card-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--col-border)}.card-title{font-size:13px;font-weight:500;color:var(--col-muted);letter-spacing:.04em;text-transform:uppercase}.card-body{padding:20px}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg,var(--col-surface2) 25%,var(--col-surface) 50%,var(--col-surface2) 75%);background-size:800px 100%;animation:shimmer 1.4s infinite linear;border-radius:var(--radius-sm)}
