:root{--bg: #f4f3f0;--surface: #ffffff;--surface2: #f0eeea;--surface3: #e8e5e0;--surface4: #dedad3;--border: rgba(45,43,38,.1);--border2: rgba(45,43,38,.18);--border3: rgba(45,43,38,.3);--t1: #1a1916;--t2: #4a4640;--t3: #8c877f;--sb-bg: #2d2b28;--sb-bg2: #353330;--sb-bg3: #3c3a36;--sb-border: rgba(201,162,39,.12);--sb-t1: #f0ede8;--sb-t2: #a09890;--sb-t3: #5c5650;--accent: #c9a227;--accent-h: #d4ad30;--accent-d: #a8841a;--accent-a: rgba(201,162,39,.1);--accent-s: rgba(201,162,39,.16);--accent-t: rgba(201,162,39,.05);--blue: #2563eb;--purple: #7c3aed;--teal: #0d9488;--amber: #d97706;--green: #16a34a;--red: #dc2626;--pink: #db2777;--blue-a: rgba(37,99,235,.09);--purple-a: rgba(124,58,237,.09);--teal-a: rgba(13,148,136,.09);--green-a: rgba(22,163,74,.09);--red-a: rgba(220,38,38,.09);--font: "DM Sans", system-ui, sans-serif;--font-display: "Playfair Display", Georgia, serif;--mono: "DM Mono", "Courier New", monospace;--radius: 4px;--radius-sm: 4px;--radius-lg: 6px;--radius-xl: 8px;--shadow-xs: 0 1px 3px rgba(0,0,0,.07);--shadow-sm: 0 2px 8px rgba(0,0,0,.08), 0 1px 3px rgba(0,0,0,.05);--shadow-md: 0 4px 20px rgba(0,0,0,.1), 0 2px 6px rgba(0,0,0,.06);--shadow-lg: 0 8px 36px rgba(0,0,0,.12), 0 3px 10px rgba(0,0,0,.07);--shadow-xl: 0 20px 64px rgba(0,0,0,.14)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%;overflow:hidden}body{height:100%;background:var(--bg);color:var(--t1);font-family:var(--font);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-y:auto}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#2d2b2633;border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}.text-primary{color:var(--t1)}.text-muted{color:var(--t2)}.text-faint{color:var(--t3)}.text-accent{color:var(--accent)}.text-blue{color:var(--blue)}.text-purple{color:var(--purple)}.text-teal{color:var(--teal)}.text-green{color:var(--green)}.text-red{color:var(--red)}.text-amber{color:var(--amber)}.font-mono{font-family:var(--mono)}.font-display{font-family:var(--font-display)}.font-500{font-weight:500}.font-600{font-weight:600}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.surface-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:box-shadow .2s ease,border-color .2s ease}.surface-card:hover{box-shadow:var(--shadow-md);border-color:var(--border2)}.badge{display:inline-flex;align-items:center;border-radius:var(--radius-sm);padding:2px 8px;font-size:11px;font-weight:600;letter-spacing:.4px;text-transform:uppercase}.badge-green{background:#16a34a1a;color:#166534}.badge-amber{background:#d977061f;color:#92400e}.badge-red{background:#dc26261a;color:#991b1b}.badge-blue{background:#2563eb1a;color:#1e40af}.badge-purple{background:#7c3aed1a;color:#5b21b6}.badge-gold{background:var(--accent-a);color:var(--accent-d)}.btn{border-radius:var(--radius-sm);padding:9px 20px;font-size:12px;font-family:var(--font);font-weight:600;cursor:pointer;border:none;transition:all .16s ease;display:inline-flex;align-items:center;gap:7px;letter-spacing:.8px;text-transform:uppercase;white-space:nowrap}.btn-ghost{background:transparent;border:1px solid var(--border2);color:var(--t2)}.btn-ghost:hover{background:var(--surface2);border-color:var(--border3);color:var(--t1)}.btn-primary{background:var(--accent);color:#fff;border:1px solid transparent}.btn-primary:hover{background:var(--accent-h);transform:translateY(-1px);box-shadow:0 4px 16px #c9a22759}.btn-primary:active{background:var(--accent-d);transform:translateY(0);box-shadow:none}.insight-block{margin-top:14px;background:var(--accent-t);border-left:3px solid var(--accent);border-top:1px solid rgba(201,162,39,.15);border-right:1px solid rgba(201,162,39,.15);border-bottom:1px solid rgba(201,162,39,.15);border-radius:0 var(--radius) var(--radius) 0;padding:10px 14px;display:flex;gap:10px}.insight-block__dot{width:5px;height:5px;border-radius:50%;background:var(--accent);margin-top:6px;flex-shrink:0}.insight-block__text{font-size:12px;color:var(--t2);line-height:1.6}.insight-block__text strong{color:var(--accent-d);font-weight:600}.progress-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}.progress-row__label{font-size:12px;color:var(--t2);min-width:90px;flex-shrink:0}.progress-row__bg{flex:1;height:4px;background:var(--surface3);border-radius:2px;overflow:hidden}.progress-row__fill{height:100%;border-radius:2px;transition:width .9s ease}.progress-row__value{font-size:12px;color:var(--t2);min-width:52px;text-align:right;font-family:var(--mono)}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th{text-align:left;padding:8px 14px;font-size:10px;font-weight:600;color:var(--t3);border-bottom:2px solid var(--border2);text-transform:uppercase;letter-spacing:.9px;background:var(--surface2)}.data-table td{padding:10px 14px;border-bottom:1px solid var(--border);color:var(--t2)}.data-table td.td-primary{color:var(--t1);font-weight:500}.data-table td.td-mono{font-family:var(--mono)}.data-table tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background:var(--surface2)}.funnel{display:flex;flex-direction:column;gap:8px}.funnel-row{display:flex;align-items:center;gap:10px}.funnel-label{font-size:12px;color:var(--t2);min-width:64px;font-weight:500}.funnel-track{flex:1;height:26px;background:var(--surface3);overflow:hidden;border:1px solid var(--border)}.funnel-fill{height:100%;min-width:4px;display:flex;align-items:center;padding-left:10px;font-size:11px;font-weight:700;color:#1a1916;font-family:var(--mono);transition:width .9s ease;white-space:nowrap;overflow:visible}.funnel-pct{font-size:11px;color:var(--t3);min-width:34px;text-align:right}.donut-legend{display:flex;flex-direction:column;gap:10px;margin-top:14px}.donut-legend__item{display:flex;align-items:center;gap:10px}.donut-legend__dot{width:8px;height:8px;flex-shrink:0}.donut-legend__label{font-size:12px;color:var(--t2);flex:1}.donut-legend__value{font-size:12px;color:var(--t1);font-family:var(--mono);font-weight:600}.donut-legend__pct{font-size:11px;color:var(--t3);min-width:32px;text-align:right}.ai-insight-card{background:var(--accent-t);border:1px solid rgba(201,162,39,.18);border-radius:var(--radius);padding:16px}.ai-insight-card__title{font-size:10px;font-weight:700;color:var(--accent-d);margin-bottom:7px;text-transform:uppercase;letter-spacing:1px}.ai-insight-card__body{font-size:13px;color:var(--t2);line-height:1.65}.cg{display:grid;gap:16px;margin-bottom:16px}.cg-2{grid-template-columns:1fr 1fr}.cg-wide{grid-template-columns:2fr 1fr}.cc{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow-sm);transition:box-shadow .2s ease,border-color .2s ease}.cc:hover{box-shadow:var(--shadow-md);border-color:var(--border2)}.ch{display:flex;flex-direction:column;margin-bottom:16px}.ct{font-size:13px;font-weight:600;color:var(--t1);letter-spacing:.1px}.cs{font-size:11px;color:var(--t3);margin-top:3px;line-height:1.5}.chart-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.hm-header{display:grid;grid-template-columns:80px repeat(12,1fr);gap:3px;margin-bottom:4px;font-size:10px;color:var(--t3);text-align:center;letter-spacing:.3px}.hm-row{display:grid;grid-template-columns:80px repeat(12,1fr);gap:3px;margin-bottom:3px}.hm-cat-label{font-size:11px;color:var(--t3);display:flex;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hm-cell{height:22px;cursor:pointer;transition:transform .12s,filter .12s}.hm-cell:hover{transform:scale(1.12);filter:brightness(.85)}.forecast-badge{display:inline-flex;align-items:center;gap:5px;background:var(--accent-a);border:1px solid rgba(201,162,39,.3);border-radius:var(--radius-sm);padding:2px 9px;font-size:10px;color:var(--accent-d);font-weight:700;letter-spacing:.6px;text-transform:uppercase}.load-error{background:#dc262612;border-left:3px solid var(--red);border-radius:0 var(--radius) var(--radius) 0;padding:12px 16px;color:#991b1b;font-size:13px;margin-bottom:16px}
