@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--bg:#0f1117;--surface:#1a1d27;--surface-raised:#222633;--border:#ffffff14;--border-hover:#ffffff26;--text:#e8eaed;--text-muted:#8b8fa3;--text-dim:#5c6070;--accent:#6366f1;--accent-soft:#6366f11f;--good:#22c55e;--good-soft:#22c55e1a;--warn:#ef4444;--warn-soft:#ef44441a;--radius:12px;--radius-sm:8px}*{box-sizing:border-box;margin:0}body{background:var(--bg);min-height:100vh;color:var(--text);-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,system-ui,sans-serif;font-size:14px}button,input,textarea{font:inherit;color:inherit}#root{min-height:100vh}.app-shell{flex-direction:column;gap:24px;max-width:1400px;margin:0 auto;padding:24px 32px 64px;display:flex}.header{justify-content:space-between;align-items:center;display:flex}.header h1{letter-spacing:-.02em;font-size:22px;font-weight:700}.header-date{color:var(--text-muted);margin-left:16px;font-size:13px}.header-left{align-items:baseline;gap:4px;display:flex}.btn{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;background:0 0;justify-content:center;align-items:center;padding:6px 14px;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.btn-ghost{color:var(--text-muted);border-color:#0000}.btn-ghost:hover{background:var(--surface-raised);color:var(--text)}.btn-active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.btn-sm{padding:4px 10px;font-size:12px}.metrics-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.metric-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:4px;padding:16px 20px;display:flex}.metric-card--primary{background:linear-gradient(135deg,#6366f11f,#6366f10a);border-color:#6366f133}.metric-card--good{border-left:3px solid var(--good)}.metric-card--warn{border-left:3px solid var(--warn)}.metric-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:500}.metric-value{letter-spacing:-.02em;font-size:22px;font-weight:700}.metric-detail{color:var(--text-muted);font-size:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px}.card-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.card-header h2{letter-spacing:-.01em;font-size:15px;font-weight:600}.card-controls{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.toggle-group,.period-selector{background:var(--bg);border-radius:var(--radius-sm);gap:2px;padding:2px;display:flex}.charts-row{grid-template-columns:1.4fr 1fr;gap:16px;display:grid}.card--chart,.card--allocation{min-height:340px}.allocation-content{align-items:center;gap:16px;display:flex}.chart-empty{height:200px;color:var(--text-dim);justify-content:center;align-items:center;font-size:13px;display:flex}.legend{flex-direction:column;gap:6px;min-width:140px;display:flex}.legend-item{align-items:center;gap:8px;font-size:12px;display:flex}.legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.legend-label{color:var(--text-muted);flex:1}.legend-value{font-variant-numeric:tabular-nums;font-weight:600}.search-input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;width:160px;padding:6px 12px;font-size:13px;transition:border-color .15s}.search-input:focus{border-color:var(--accent)}.search-input::placeholder{color:var(--text-dim)}.card--table{padding:20px 0}.card--table .card-header{padding:0 24px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}thead th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;background:var(--surface);padding:10px 16px;font-size:11px;font-weight:600;position:sticky;top:0}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--text)}.sort-arrow{font-size:10px}tbody td{border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;padding:12px 16px}tbody tr:hover{background:var(--surface-raised)}tbody tr:last-child td{border-bottom:none}.cell-symbol{flex-direction:column;gap:1px;display:flex}.cell-symbol strong{font-size:13px;font-weight:600}.cell-sub{color:var(--text-dim);font-size:11px}.cell-num{text-align:right;font-variant-numeric:tabular-nums}.cell-good{color:var(--good)}.cell-warn{color:var(--warn)}.cell-weight{align-items:center;gap:8px;display:flex}.weight-bar{background:var(--bg);border-radius:2px;width:60px;height:4px;overflow:hidden}.weight-bar-fill{background:var(--accent);border-radius:2px;height:100%;transition:width .3s}.cell-empty{text-align:center;color:var(--text-dim);padding:40px 16px!important}.recharts-tooltip-wrapper{outline:none}.recharts-default-tooltip{background:var(--surface-raised)!important;border:1px solid var(--border)!important;border-radius:var(--radius-sm)!important;padding:8px 12px!important;font-size:12px!important}.recharts-default-tooltip .recharts-tooltip-label{color:var(--text-muted)!important;margin-bottom:4px!important}.recharts-default-tooltip .recharts-tooltip-item{color:var(--text)!important}.loading,.empty{min-height:60vh;color:var(--text-muted);justify-content:center;align-items:center;font-size:15px;display:flex}.error-banner{background:var(--warn-soft);border:1px solid var(--warn);color:var(--warn);border-radius:var(--radius-sm);padding:12px 20px;font-size:13px}@media (width<=900px){.app-shell{padding:16px}.charts-row{grid-template-columns:1fr}.metrics-row{grid-template-columns:repeat(2,1fr)}.allocation-content{flex-direction:column}.card-controls{flex-wrap:wrap}.header-left{flex-direction:column;gap:2px}.header-date{margin-left:0}}
