*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:linear-gradient(135deg,#1a1a2e,#16213e);min-height:100vh;color:#eee}.container{max-width:1400px;margin:0 auto;padding:2rem}header{text-align:center;margin-bottom:2rem}header h1{font-size:2.5rem;margin-bottom:.5rem}header p{color:#aaa}.upload-section{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:2rem}.upload-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1rem 2rem;border-radius:8px;cursor:pointer;font-size:1rem;transition:transform .2s,box-shadow .2s}.upload-btn:hover{transform:translateY(-2px);box-shadow:0 4px 20px #667eea66}.upload-btn input{display:none}#file-name{color:#888}.clear-btn{background:#ff6b6b33;border:1px solid rgba(255,107,107,.5);color:#ff6b6b;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background .2s}.clear-btn:hover{background:#ff6b6b4d}.clear-btn.hidden{display:none}.date-range{text-align:center;font-size:1.2rem;color:#4ecdc4;margin-bottom:1rem;padding:1rem;background:#4ecdc41a;border-radius:8px;border:1px solid rgba(78,205,196,.3)}.date-range.hidden{display:none}.dashboard{display:flex;flex-direction:column;gap:2rem}.dashboard.hidden{display:none}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.card{background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;padding:1.5rem;text-align:center;border:1px solid rgba(255,255,255,.1)}.card h3{font-size:.9rem;color:#888;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:1px}.card p{font-size:1.8rem;font-weight:700;color:#667eea}.chart-section{background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;padding:1.5rem;border:1px solid rgba(255,255,255,.1)}.chart-section h2{font-size:1.2rem;margin-bottom:1rem;color:#ddd}.section-heading{display:flex;justify-content:space-between;gap:1.5rem;align-items:flex-start;margin-bottom:1.25rem}.section-heading h2{margin-bottom:.35rem}.section-heading p,.assumption-note{color:#aaa;line-height:1.5}.best-plan-card{min-width:280px;padding:1rem;border-radius:12px;background:#4ecdc41f;border:1px solid rgba(78,205,196,.35)}.monthly-summary-card{min-width:280px;padding:1rem;border-radius:12px;background:#ffd1661a;border:1px solid rgba(255,209,102,.32)}.best-plan-card span,.monthly-summary-card span,.best-plan-card small{display:block;color:#8bded8}.monthly-summary-card span,.monthly-summary-card small{display:block;color:#ffe0a3}.best-plan-card strong,.monthly-summary-card strong{display:block;margin:.35rem 0;color:#fff;font-size:1.05rem}.plan-selector{border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:1rem;margin-bottom:1.25rem;background:#0000001f}.plan-selector legend{padding:0 .35rem;color:#ddd;font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.plan-selector p{color:#aaa;font-size:.9rem;margin-bottom:.85rem}.plan-selector-options{display:flex;flex-wrap:wrap;gap:.65rem}.plan-toggle{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:.55rem .8rem;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:#ffffff0d;color:#ddd;cursor:pointer;transition:border-color .2s,background .2s,transform .2s}.plan-toggle:hover{transform:translateY(-1px);border-color:var(--series-color)}.plan-toggle input{width:16px;height:16px;accent-color:var(--series-color)}.plan-toggle:has(input:checked){border-color:var(--series-color);background:color-mix(in srgb,var(--series-color) 16%,transparent)}.monthly-cost-chart{margin-top:.5rem;margin-bottom:1.25rem}.monthly-cost-chart svg{min-width:760px}.empty-chart-state{padding:2rem;border-radius:10px;background:#ffffff0d;color:#aaa;text-align:center}.monthly-recommendations{width:100%;overflow-x:auto}.monthly-table{width:100%;min-width:980px;border-collapse:collapse}.monthly-table th,.monthly-table td{padding:.85rem;border-bottom:1px solid rgba(255,255,255,.08);text-align:left;vertical-align:top}.monthly-table th{color:#aaa;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.monthly-table td{color:#eee}.monthly-table small{display:block;margin-top:.3rem;color:#aaa}.plan-comparison{width:100%;overflow-x:auto}.plan-table{width:100%;min-width:900px;border-collapse:collapse}.plan-table th,.plan-table td{padding:.9rem;border-bottom:1px solid rgba(255,255,255,.08);text-align:left;vertical-align:top}.plan-table th{color:#aaa;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.plan-table td{color:#eee}.plan-table small{display:block;margin-top:.35rem;color:#aaa}.best-row{background:#4ecdc414}.plan-badges{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.4rem}.best-badge,.current-badge{display:inline-flex;padding:.18rem .45rem;border-radius:999px;font-size:.72rem;font-weight:700}.best-badge{color:#041d1b;background:#4ecdc4}.current-badge{color:#1a1530;background:#c4a7ff}.breakdown-list{display:flex;flex-wrap:wrap;gap:.4rem}.breakdown-list span{display:inline-flex;padding:.25rem .5rem;border-radius:999px;background:#ffffff12;color:#ccc;font-size:.82rem}.assumption-note{margin-top:1rem;font-size:.9rem}.chart{width:100%;overflow-x:auto}.chart svg{display:block;margin:0 auto}.tooltip{position:absolute;background:#000000e6;color:#fff;padding:8px 12px;border-radius:6px;font-size:.85rem;pointer-events:none;z-index:1000;border:1px solid rgba(255,255,255,.2)}.anomaly-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.anomaly-item{background:#ff6b6b1a;border:1px solid rgba(255,107,107,.3);border-radius:8px;padding:1rem}.anomaly-item .date{font-weight:700;color:#ff6b6b}.anomaly-item .value{font-size:1.4rem;color:#fff}.anomaly-item .zscore{font-size:.85rem;color:#888}.axis text{fill:#888;font-size:11px}.axis line,.axis path{stroke:#444}.grid line{stroke:#333;stroke-opacity:.5}.no-anomalies{color:#4ecdc4;font-size:1.1rem;text-align:center;padding:2rem}@media (max-width: 760px){.container{padding:1rem}header h1{font-size:1.9rem}.upload-section,.section-heading{flex-direction:column;align-items:stretch}.best-plan-card,.monthly-summary-card{min-width:0}.plan-toggle{width:100%}}
