*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,Arial,sans-serif;background:#f3f4f6;color:#111827}.page{max-width:1400px;margin:0 auto;padding:20px}header h1{margin:0;font-size:28px}header p{margin-top:6px;color:#4b5563}.upload-box{margin-top:16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.status{color:#2563eb;font-weight:600}.error{color:#dc2626;font-weight:600}.empty{margin-top:18px;background:#fff;border:1px dashed #cbd5e1;padding:30px;border-radius:12px}.filters{margin-top:18px;background:#fff;border-radius:12px;padding:14px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;border:1px solid #e5e7eb}.filter-item{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#374151}.filter-item select,.filter-item input{border:1px solid #d1d5db;border-radius:8px;padding:8px;background:#fff}.filter-item select[multiple]{min-height:100px}.year-range{display:flex;align-items:center;gap:8px}.year-range input{width:100px}.kpis{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.kpi-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:14px}.kpi-title{font-size:13px;color:#6b7280}.kpi-value{margin-top:8px;font-size:24px;font-weight:700;color:#111827}.charts-grid{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:14px}.chart-box{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:12px}.chart-box h3{margin:0 0 8px;font-size:15px}.chart-wrap{width:100%;height:300px}.table-section{margin-top:16px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:12px}.table-section h2{margin:0 0 4px;font-size:18px}.table-note{color:#6b7280;font-size:12px;margin-bottom:8px}.table-scroll{overflow:auto;max-height:520px;border:1px solid #e5e7eb;border-radius:8px}.table-scroll table{border-collapse:separate;border-spacing:0;min-width:1400px;width:max-content;font-size:12px}.table-scroll th,.table-scroll td{border-bottom:1px solid #e5e7eb;border-right:1px solid #f1f5f9;padding:8px 10px;white-space:nowrap;background:#fff}.table-scroll th{position:sticky;top:0;z-index:3;background:#f8fafc;cursor:pointer}.table-scroll .sticky-col{position:sticky;left:0;z-index:4;background:#fff;min-width:260px;max-width:360px}.table-scroll thead .sticky-col{z-index:5;background:#eff6ff}@media(max-width:768px){.charts-grid{grid-template-columns:1fr}}
