:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}#root{max-width:1280px;margin:0 auto;padding:2rem}.site-nav{display:flex;align-items:center;gap:1.5rem;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid #ddd}.site-nav-github{margin-left:auto;display:flex;align-items:center;color:#06c;opacity:.7;transition:opacity .15s}.site-nav-github:hover{opacity:1}.site-nav-group{display:flex;gap:1rem;padding-left:1rem;border-left:1px solid #ddd}.site-nav a{font-weight:500;text-decoration:none;color:#06c}.site-nav a:hover{text-decoration:underline}.site-nav a.active{color:#213547;text-decoration:underline}.estimator-docs-link{color:#666;margin-bottom:1.5rem}.docs-page h1{margin-top:0}.docs-toc{padding:1rem 1.25rem;border:1px solid #ddd;border-radius:6px;margin-bottom:2rem;display:inline-block;min-width:240px}.docs-toc h2{margin-top:0;font-size:1rem}.docs-toc ul{margin:0;padding-left:1.25rem}.docs-toc li{margin-bottom:.35rem}.docs-section{margin-bottom:2.5rem;padding-top:1rem;border-top:1px solid #eee}.docs-section h2{margin-top:0}.container{width:100%;max-width:1280px;margin:0 auto}.estimator-layout{display:grid;grid-template-columns:380px 1fr;gap:2.5rem;align-items:start}.estimator-form-col h1{margin-top:0}.estimator-chart-col{position:sticky;top:2rem}@media(max-width:900px){.estimator-layout{grid-template-columns:1fr}.estimator-chart-col{position:static}}.form-group{margin-bottom:1rem}label{display:block;margin-bottom:.5rem;font-weight:500}input[type=number],select{width:100%;padding:.5rem;border:1px solid #ccc;border-radius:4px}button{background-color:#06c;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-weight:500;margin-top:1rem}button:hover{background-color:#05a}button:disabled{background-color:#ccc;cursor:not-allowed}.error{color:#d32f2f;margin:1rem 0;padding:.5rem;border:1px solid #d32f2f;border-radius:4px;background-color:#ffebee}.results{margin-top:2rem;padding:1rem;border:1px solid #ccc;border-radius:4px}.cost-comparison{display:flex;justify-content:space-between;margin-top:1rem;flex-wrap:wrap}.cost-card{flex:1;min-width:250px;padding:1rem;border:1px solid #ccc;border-radius:4px;margin:.5rem}.cost-card h3{margin-top:0}.cost-breakdown{margin-top:1rem}.cost-breakdown div{display:flex;justify-content:space-between;margin-bottom:.25rem}.total-cost{font-weight:700;border-top:1px solid #ccc;padding-top:.5rem;margin-top:.5rem}.infrastructure-visualizations{margin-top:2rem}.visualization-container{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:space-between}.infrastructure-diagram{flex:1;min-width:300px;border:1px solid #ddd;border-radius:8px;padding:1rem;margin-bottom:1rem;position:relative}.expand-button{position:absolute;top:.5rem;right:.5rem;background-color:#f0f0f0;color:#333;border:1px solid #ccc;border-radius:4px;padding:.25rem .5rem;font-size:.8rem;cursor:pointer;margin:0}.expand-button:hover{background-color:#e0e0e0}.infrastructure-diagram.expanded .diagram{margin-bottom:1rem}.diagram-container h4{margin-top:0;text-align:center;margin-bottom:1rem}.diagram{display:flex;flex-direction:column;align-items:center;gap:.5rem}.component{display:flex;flex-direction:column;align-items:center;padding:.75rem;border:1px solid #ccc;border-radius:8px;min-width:120px;background-color:#f5f5f5}.component .icon{font-size:1.5rem;margin-bottom:.25rem}.arrow{font-size:1.5rem;color:#666}.serverless .api-gateway{background-color:#e3f2fd;border-color:#90caf9}.serverless .lambda{background-color:#fff8e1;border-color:#ffecb3}.kubernetes .load-balancer{background-color:#e8f5e9;border-color:#a5d6a7}.kubernetes .k8s-cluster{background-color:#e0f7fa;border-color:#80deea;padding:.75rem 1.5rem}.sub-components{display:flex;gap:.5rem;margin-top:.5rem}.sub-component{display:flex;flex-direction:column;align-items:center;padding:.25rem;border:1px solid #ccc;border-radius:4px;background-color:#fff}.icon.small{font-size:1rem}.label.small{font-size:.75rem}.infrastructure-notes{margin-top:1rem;font-size:.9rem}.infrastructure-notes ul{margin-top:.25rem;padding-left:1.25rem}.visualization-note{text-align:center;margin-top:.5rem;color:#666}@media(min-width:768px){.diagram{flex-direction:row}}.cost-chart-container{margin-top:2rem;padding:1rem;border:1px solid #ccc;border-radius:4px}.cost-chart-container h3{margin-top:0;margin-bottom:1rem}.chart-wrapper{margin:1.5rem 0}.inflection-point-info{padding:.75rem;background-color:#f8f9fa;border-left:4px solid #666;margin-bottom:1rem}.chart-note{text-align:center;color:#666;margin-top:1rem}.chart-loading,.chart-error,.chart-empty{padding:2rem;text-align:center;border:1px dashed #ccc;border-radius:4px;margin:1rem 0}.chart-error{color:#d32f2f;border-color:#d32f2f}.kubernetes-info{padding:.75rem;background-color:#f8f9fa;border-left:4px solid #666;margin-bottom:1rem}.node-info{margin-top:1.5rem;padding-top:1rem;border-top:1px dashed #ccc}.node-info h4{margin-top:0;margin-bottom:.5rem;font-size:1rem}.node-info div{display:flex;justify-content:space-between;margin-bottom:.25rem}.checkbox-group{display:flex;align-items:center;gap:.5rem}.checkbox-group input[type=checkbox]{width:auto}.formula{background-color:#f8f9fa;padding:.75rem;border-radius:4px;border-left:3px solid #0066cc;margin-top:.75rem;font-family:Courier New,monospace;font-size:.9rem}@media(prefers-color-scheme:dark){.site-nav{border-bottom-color:#444}.site-nav-group{border-left-color:#444}.site-nav a,.site-nav-github{color:#49f}.site-nav a.active{color:#ddd}.estimator-docs-link{color:#aaa}.docs-toc{border-color:#444}.docs-section{border-top-color:#333}input[type=number],select{background-color:#2a2a2a;color:inherit;border-color:#555}.error{background-color:#2a0a0a;border-color:#d32f2f}.results,.cost-card,.cost-chart-container,.infrastructure-diagram{border-color:#444}.expand-button{background-color:#2a2a2a;color:inherit;border-color:#555}.expand-button:hover{background-color:#3a3a3a}.component{background-color:#2a2a2a;border-color:#555}.serverless .api-gateway{background-color:#0d1f2d;border-color:#1e4a7a}.serverless .lambda{background-color:#2a2000;border-color:#5a4a00}.kubernetes .load-balancer{background-color:#0d1f0d;border-color:#2a5a2a}.kubernetes .k8s-cluster{background-color:#0d1f22;border-color:#1a5a66}.sub-component{background-color:#1a1a1a;border-color:#555}.visualization-note,.chart-note{color:#aaa}.inflection-point-info,.kubernetes-info{background-color:#1e2226;border-left-color:#888}.formula{background-color:#1e2026;border-left-color:#49f}.chart-loading,.chart-empty{border-color:#444}.node-info{border-top-color:#444}}
