*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f1117;--surface:#1a1d27;--surface-hover:#222632;--border:#2a2e3a;--text:#c9cdd5;--text-muted:#7a7f8c;--text-bright:#eef0f4;--accent:#818cf8;--accent-dim:rgba(129,140,248,0.15);--green:#22c55e;--green-dim:rgba(34,197,94,0.12);--red:#ef4444;--red-dim:rgba(239,68,68,0.12);--yellow:#facc15;--yellow-dim:rgba(250,204,21,0.12);--radius:10px;--font:"Inter",system-ui,-apple-system,sans-serif;--mono:"JetBrains Mono",ui-monospace,monospace}body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}.app{max-width:1200px;margin:0 auto;padding:48px 24px 64px}header{margin-bottom:40px}.header-row{justify-content:space-between;gap:16px}.header-row,header h1{display:flex;align-items:center}header h1{font-size:2rem;font-weight:700;color:var(--text-bright);gap:12px}.logo-icon{font-size:1.6rem}.subtitle{color:var(--text-muted);margin-top:6px;font-size:1.05rem}.panels{display:grid;grid-template-columns:1fr 1fr;grid-gap:24px;gap:24px;margin-bottom:32px}@media (max-width:720px){.panels{grid-template-columns:1fr}}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.panel h2{font-size:1.15rem;font-weight:600;color:var(--text-bright);margin-bottom:4px}.panel-desc{color:var(--text-muted);font-size:.88rem;margin-bottom:16px}.cost-row{margin-bottom:10px}.cost-row .row{margin-bottom:0}.scaling-detail{padding-left:4px;margin-top:4px}.scaling-detail label{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--text-muted)}.scaling-detail input{width:64px;padding:4px 8px;font-size:.78rem}.row{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap}.row input[type=text],.row select{flex:1 1;min-width:100px}.row input[type=number]{width:80px}input[type=number],input[type=text],select{background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text-bright);padding:8px 12px;font-size:.88rem;font-family:var(--font);outline:none;transition:border-color .15s}input:focus,select:focus{border-color:var(--accent)}.input-with-prefix{position:relative;display:inline-flex;align-items:center}.input-with-prefix .prefix{position:absolute;left:10px;color:var(--text-muted);font-size:.85rem;pointer-events:none}.input-with-prefix input{padding-left:24px;width:90px}.toggle-label{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:.82rem;color:var(--text-muted);white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.toggle-label input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:36px;height:20px;background:var(--border);border-radius:10px;position:relative;cursor:pointer;transition:background .2s;flex-shrink:0}.toggle-label input[type=checkbox]:after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;background:var(--text-muted);border-radius:50%;transition:transform .2s,background .2s}.toggle-label input[type=checkbox]:checked{background:var(--accent-dim)}.toggle-label input[type=checkbox]:checked:after{transform:translateX(16px);background:var(--accent)}.add-btn{background:none;border:1px dashed var(--border);border-radius:6px;color:var(--text-muted);padding:8px 16px;font-size:.85rem;cursor:pointer;width:100%;margin-top:6px;transition:border-color .15s,color .15s;font-family:var(--font)}.add-btn:hover{border-color:var(--accent);color:var(--accent)}.remove-btn{background:none;border:none;color:var(--text-muted);font-size:1.2rem;cursor:pointer;padding:4px 8px;border-radius:4px;line-height:1;transition:background .15s,color .15s}.remove-btn:hover{background:var(--red-dim);color:var(--red)}.panel-summary{display:flex;justify-content:space-between;margin-top:16px;padding-top:12px;border-top:1px solid var(--border);font-size:.85rem;color:var(--text-muted);font-family:var(--mono)}.target-input{margin-bottom:16px}.target-input label{display:flex;align-items:center;gap:10px;font-size:1rem;color:var(--text-muted)}.target-input input{width:70px;text-align:center;font-size:1rem;font-weight:600;color:var(--text-bright)}.result-section{margin-bottom:32px}.result-card{border-radius:var(--radius);padding:28px 32px;border:1px solid var(--border)}.result-card h2{font-size:1.3rem;font-weight:600;margin-bottom:6px}.result-card p{font-size:.95rem}.result-card strong{color:var(--text-bright)}.result-card.success{background:var(--green-dim);border-color:rgba(34,197,94,.25)}.result-card.success h2{color:var(--green)}.result-card.warn{background:var(--yellow-dim);border-color:rgba(250,204,21,.25)}.result-card.warn h2{color:var(--yellow)}.result-card.neutral{background:var(--surface)}.result-card.neutral h2{color:var(--text-muted);font-weight:500}.stream-grid{display:grid;grid-template-columns:1fr;grid-gap:24px;gap:24px;margin-bottom:24px}.stream-grid.multi{grid-template-columns:1fr 1fr}@media (max-width:720px){.stream-grid{grid-template-columns:1fr}}.stream-result .result-card{border-bottom-left-radius:0;border-bottom-right-radius:0}.stream-result .result-card h2{font-size:1.1rem}.stream-chart{background:var(--surface);border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius) var(--radius);padding:20px 24px}.chart-tooltip{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 14px;font-size:.82rem;box-shadow:0 8px 24px rgba(0,0,0,.4)}.chart-tooltip-title{font-weight:600;color:var(--text-bright);margin-bottom:2px}.chart-tooltip-customers{color:var(--text-muted);margin-bottom:4px}.recharts-legend-item-text{color:var(--text-muted)!important;font-size:.82rem!important}.config-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:16px}input[type=text].config-name-input{flex:1 1;min-width:160px;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text-bright);padding:6px 10px;font-size:1.3rem;font-weight:600;font-family:var(--font);outline:none;transition:border-color .15s,background .15s}input[type=text].config-name-input:hover{background:var(--surface);border-color:var(--border)}input[type=text].config-name-input:focus{background:var(--surface);border-color:var(--accent)}.config-name-label{display:flex;align-items:center;gap:4px;flex:1 1;font-size:1.3rem;font-weight:600;color:var(--text-muted);min-width:0}.config-actions{display:flex;gap:8px;flex-shrink:0}.config-btn{background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text-muted);padding:8px 16px;font-size:.85rem;cursor:pointer;font-family:var(--font);transition:border-color .15s,color .15s,background .15s;white-space:nowrap}.config-btn.save,.config-btn:hover{border-color:var(--accent);color:var(--accent)}.config-btn.save{background:var(--accent-dim)}.config-btn.save:hover{background:var(--accent);color:var(--bg)}.config-btn.active{border-color:var(--accent);color:var(--accent)}.saved-configs{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:24px;overflow:hidden}.saved-config-row{display:flex;align-items:center;border-bottom:1px solid var(--border);transition:background .15s}.saved-config-row:last-child{border-bottom:none}.saved-config-row:hover{background:var(--surface-hover)}.saved-config-row.active{background:var(--accent-dim)}.saved-config-info{flex:1 1;display:flex;flex-direction:column;gap:2px;padding:12px 16px;background:none;border:none;cursor:pointer;text-align:left;color:inherit;font-family:var(--font)}.saved-config-name{font-size:.9rem;font-weight:500;color:var(--text-bright)}.saved-config-meta{font-size:.78rem;color:var(--text-muted)}footer{margin-top:48px;text-align:center;color:var(--text-muted);font-size:.82rem}