@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap";:root{font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.5;color:#0f172a;--primary: #6366f1;--primary-light: #e0e7ff;--primary-dark: #4f46e5;--primary-glow: rgba(99,102,241,.15);--accent: #06b6d4;--accent-light: #cffafe;--green: #10b981;--green-light: #d1fae5;--green-dark: #059669;--red: #ef4444;--red-light: #fee2e2;--orange: #f59e0b;--orange-light: #fef3c7;--gray-50: #f8fafc;--gray-100: #f1f5f9;--gray-200: #e2e8f0;--gray-300: #cbd5e1;--gray-400: #94a3b8;--gray-500: #64748b;--gray-600: #475569;--gray-700: #334155;--gray-800: #1e293b;--gray-900: #0f172a;--radius: 14px;--radius-sm: 8px;--radius-xs: 6px;--shadow-sm: 0 1px 2px rgba(0,0,0,.05);--shadow: 0 1px 3px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);--shadow-md: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -2px rgba(0,0,0,.1);--shadow-lg: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--shadow-glow: 0 0 20px rgba(99,102,241,.15)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.app-shell{display:flex;flex-direction:column;height:100vh;background:linear-gradient(135deg,#f0f4ff,#f8fafc,#f0fdf4)}.app-header{background:linear-gradient(135deg,#1e1b4b,#312e81 40%,#3730a3);color:#fff;padding:0 2rem;height:64px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;z-index:10;box-shadow:0 4px 20px #1e1b4b4d;position:relative;overflow:hidden}.app-header:before{content:"";position:absolute;top:-50%;right:-10%;width:300px;height:300px;background:radial-gradient(circle,rgba(99,102,241,.2) 0%,transparent 70%);pointer-events:none}.app-header .brand{display:flex;align-items:center;gap:.75rem;position:relative;z-index:1}.app-header .brand-icon{width:36px;height:36px;background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;box-shadow:0 2px 8px #6366f166}.app-header .brand h1{font-size:1.15rem;font-weight:800;letter-spacing:-.5px;background:linear-gradient(135deg,#fff,#c7d2fe);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.steps{display:flex;gap:.35rem;position:relative;z-index:1}.step{padding:.4rem 1rem;border-radius:24px;font-size:.8rem;font-weight:600;background:#ffffff14;color:#ffffff80;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);white-space:nowrap;border:1px solid rgba(255,255,255,.06);position:relative}.step:hover{background:#ffffff26;color:#fffc}.step.active{background:#fff;color:var(--primary-dark);box-shadow:0 2px 12px #fff3;border-color:transparent}.step.completed{background:var(--green);color:#fff;border-color:transparent;box-shadow:0 2px 8px #10b9814d}.step-num{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#ffffff26;font-size:.7rem;font-weight:700;margin-right:.3rem}.step.active .step-num{background:var(--primary);color:#fff}.step.completed .step-num{background:#ffffff40}.app-content{flex:1;overflow:hidden;padding:1.25rem 2rem;display:flex;flex-direction:column;min-height:0}.content-inner{max-width:1280px;width:100%;margin:0 auto;animation:fadeIn .3s ease-out;flex:1;display:flex;flex-direction:column;min-height:0}.app-footer{background:#fff;border-top:1px solid var(--gray-200);padding:.65rem 2rem;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;z-index:10;box-shadow:0 -4px 16px #0000000a}.footer-budget{display:flex;align-items:center;gap:1rem}.footer-budget .footer-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-400)}.footer-budget .total{font-size:1.25rem;font-weight:900;letter-spacing:-.5px}.footer-budget .total.over{color:var(--red)}.footer-budget .total.within{color:var(--green)}.footer-budget-bar{width:180px;height:10px;background:var(--gray-100);border-radius:5px;overflow:hidden;border:1px solid var(--gray-200)}.footer-budget-bar .fill{height:100%;border-radius:5px;transition:width .4s cubic-bezier(.4,0,.2,1)}.footer-budget-bar .fill.within{background:linear-gradient(90deg,var(--green) 0%,#34d399 100%)}.footer-budget-bar .fill.over{background:linear-gradient(90deg,var(--red) 0%,#f97316 100%)}.footer-budget .remaining{font-size:.8rem;color:var(--gray-500);font-weight:500}.footer-budget .remaining.over-text{color:var(--red);font-weight:700}.footer-actions{display:flex;gap:.5rem}.footer-placeholder{color:var(--gray-400);font-size:.85rem;font-style:italic}.copyright-bar{background:var(--gray-900);color:var(--gray-400);padding:.4rem 2rem;display:flex;align-items:center;justify-content:space-between;font-size:.7rem;flex-shrink:0}.copyright-bar a{color:var(--primary);text-decoration:none;font-weight:600;transition:color .2s}.copyright-bar a:hover{color:#818cf8}.error-banner{background:linear-gradient(135deg,#fef2f2,#fff1f2);border:1px solid #fecaca;color:var(--red);padding:.65rem 1rem;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center;animation:slideUp .3s ease-out;box-shadow:0 2px 8px #ef44441a}.error-banner button{background:none;border:none;color:var(--red);font-size:1.1rem;cursor:pointer;padding:0 .25rem;line-height:1;opacity:.6;transition:opacity .15s}.error-banner button:hover{opacity:1;background:none}.panel{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:var(--radius);padding:.85rem 1.1rem;margin-bottom:0;box-shadow:var(--shadow);transition:box-shadow .2s;animation:slideUp .35s ease-out}.panel:hover{box-shadow:var(--shadow-md)}.panel h2{margin:0 0 .85rem;font-size:.95rem;font-weight:700;color:var(--gray-800);display:flex;align-items:center;gap:.5rem}.panel h2 .panel-icon{width:28px;height:28px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:.85rem;flex-shrink:0}.panel h2 .panel-icon.blue{background:var(--primary-light)}.panel h2 .panel-icon.green{background:var(--green-light)}.panel h2 .panel-icon.orange{background:var(--orange-light)}.panel h2 .panel-icon.cyan{background:var(--accent-light)}.panel-count{background:var(--primary-light);color:var(--primary-dark);padding:.1rem .5rem;border-radius:12px;font-size:.72rem;font-weight:700;margin-left:auto}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:.7rem}label{display:flex;flex-direction:column;gap:.25rem;font-size:.72rem;font-weight:700;color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px}input,select{border:1.5px solid var(--gray-200);border-radius:var(--radius-xs);padding:.5rem .65rem;font-size:.85rem;font-weight:500;color:var(--gray-800);background:#fff;transition:all .2s;font-family:inherit}input:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748b' d='M2.5 4.5L6 8l3.5-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;padding-right:1.5rem}button{cursor:pointer;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;border:none;border-radius:var(--radius-sm);padding:.55rem 1.1rem;font-size:.85rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);font-family:inherit;letter-spacing:-.2px}button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6366f14d}button:active{transform:translateY(0)}button.secondary{background:var(--gray-100);color:var(--gray-700);border:1px solid var(--gray-200)}button.secondary:hover{background:var(--gray-200);box-shadow:var(--shadow);transform:translateY(-1px)}button.danger{background:linear-gradient(135deg,var(--red) 0%,#dc2626 100%)}button.danger:hover{box-shadow:0 4px 12px #ef44444d}button.success{background:linear-gradient(135deg,var(--green) 0%,var(--green-dark) 100%)}button.success:hover{box-shadow:0 4px 12px #10b9814d}button:disabled{opacity:.4;cursor:not-allowed;transform:none!important;box-shadow:none!important}button.sm{padding:.35rem .75rem;font-size:.78rem;border-radius:var(--radius-xs)}button.lg{padding:.65rem 1.5rem;font-size:.9rem}.actions{margin-top:.85rem;display:flex;gap:.5rem;flex-wrap:wrap}.setup-section{display:flex;flex-direction:column;gap:.75rem;max-width:700px;margin:0 auto;justify-content:center;flex:1;min-height:0;overflow-y:auto}.setup-hero{text-align:center;padding:1rem 1rem .5rem;animation:fadeIn .4s ease-out}.setup-hero-icon{font-size:2.5rem;margin-bottom:.3rem}.setup-hero h2{font-size:1.3rem;font-weight:800;color:var(--gray-800);letter-spacing:-.5px;margin-bottom:.2rem}.setup-hero p{color:var(--gray-500);font-size:.85rem}.disclaimer-note{margin-top:.5rem;padding:.45rem .75rem;background:var(--orange-light);border:1px solid #fde68a;border-radius:var(--radius-xs);font-size:.75rem;color:#92400e;line-height:1.5;display:inline-block}.disclaimer-note span{font-weight:700;margin-right:.2rem}.setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}table{width:100%;border-collapse:separate;border-spacing:0;font-size:.82rem}th,td{text-align:left;padding:.55rem .65rem}th{background:var(--gray-50);font-size:.7rem;text-transform:uppercase;color:var(--gray-400);letter-spacing:.6px;font-weight:700;border-bottom:2px solid var(--gray-200);position:sticky;top:0;z-index:1}td{border-bottom:1px solid var(--gray-100)}tr{transition:background .15s}tr:hover td{background:var(--gray-50)}.content-split{display:grid;grid-template-columns:1fr 1fr;gap:1rem;flex:1;min-height:0}.left-panel,.right-panel{display:flex;flex-direction:column;gap:.65rem;min-height:0;overflow:hidden}.left-panel .panel,.right-panel .panel{flex-shrink:0}.left-panel .panel:last-child{flex:1;min-height:0;display:flex;flex-direction:column}.right-panel .panel{flex:1;display:flex;flex-direction:column;min-height:0}.right-panel .panel .table-scroll{flex:1;overflow-y:auto;min-height:0}.sku-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.5rem;flex:1;overflow-y:auto;min-height:0;padding:.25rem}.sku-card{border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);padding:.6rem .75rem;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;gap:.5rem;background:#fff;cursor:default}.sku-card:hover{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);transform:translateY(-1px)}.sku-card .sku-info{display:flex;flex-direction:column;gap:.1rem;min-width:0;flex:1}.sku-card .sku-name{font-weight:600;font-size:.8rem;color:var(--gray-800);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sku-card .sku-detail{font-size:.68rem;color:var(--gray-400);font-weight:500}.sku-card .sku-price{font-weight:800;color:var(--primary);font-size:.85rem;white-space:nowrap;letter-spacing:-.3px}.btn-add{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;border:none;border-radius:var(--radius-xs);padding:.3rem .6rem;font-size:.72rem;font-weight:700;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:all .2s;letter-spacing:.2px}.btn-add:hover{transform:scale(1.05);box-shadow:0 3px 10px #6366f159}.qty-counter{display:flex;align-items:center;gap:0;border:1.5px solid var(--primary);border-radius:var(--radius-xs);overflow:hidden;flex-shrink:0}.qty-btn{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:var(--primary-light);color:var(--primary-dark);border:none;border-radius:0;padding:0;font-size:.85rem;font-weight:700;cursor:pointer;transition:background .15s}.qty-btn:hover{background:var(--primary);color:#fff;transform:none;box-shadow:none}.qty-value{min-width:24px;text-align:center;font-size:.78rem;font-weight:800;color:var(--primary-dark);background:#fff;line-height:26px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem 1rem;text-align:center}.empty-state-icon{font-size:2.5rem;margin-bottom:.75rem;opacity:.4}.empty-state p{color:var(--gray-400);font-size:.85rem;line-height:1.5;max-width:250px}.badge{display:inline-flex;align-items:center;padding:.15rem .5rem;border-radius:5px;font-size:.65rem;font-weight:700;text-transform:uppercase;color:#fff;letter-spacing:.3px}.badge.aws{background:linear-gradient(135deg,#f90,#ec7211);box-shadow:0 1px 4px #ff99004d}.badge.gcp{background:linear-gradient(135deg,#4285f4,#1a73e8);box-shadow:0 1px 4px #4285f44d}.badge.azure{background:linear-gradient(135deg,#0078d4,#005a9e);box-shadow:0 1px 4px #0078d44d}.badge.oci{background:linear-gradient(135deg,#f80000,#c00);box-shadow:0 1px 4px #f800004d}.review-section{flex:1;min-height:0;display:flex;flex-direction:column;gap:.65rem;overflow-y:auto}.summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:.65rem;flex-shrink:0}.summary-card{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:var(--radius);padding:.65rem .75rem;text-align:center;box-shadow:var(--shadow);transition:all .2s;animation:slideUp .4s ease-out;position:relative;overflow:hidden}.summary-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px}.summary-card:nth-child(1):before{background:linear-gradient(90deg,var(--primary),var(--accent))}.summary-card:nth-child(2):before{background:linear-gradient(90deg,var(--green),#34d399)}.summary-card:nth-child(3):before{background:linear-gradient(90deg,var(--orange),#fbbf24)}.summary-card:nth-child(4):before{background:linear-gradient(90deg,var(--accent),#22d3ee)}.summary-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.summary-card .card-icon{font-size:1.2rem;margin-bottom:.15rem}.summary-card .label{font-size:.65rem;color:var(--gray-400);text-transform:uppercase;letter-spacing:.8px;font-weight:700}.summary-card .value{font-size:1.2rem;font-weight:900;margin-top:.1rem;letter-spacing:-.5px}.review-split{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.review-section .panel{flex-shrink:0;margin-bottom:0}.breakdown-item{margin-bottom:.65rem}.breakdown-row{display:flex;justify-content:space-between;align-items:center;font-size:.82rem;margin-bottom:.25rem}.breakdown-row .cost{font-weight:700;color:var(--gray-700)}.breakdown-row .pct{color:var(--gray-400);font-size:.75rem;margin-left:.3rem}.budget-bar{height:8px;background:var(--gray-100);border-radius:4px;overflow:hidden;border:1px solid var(--gray-200)}.budget-fill{height:100%;border-radius:4px;transition:width .4s cubic-bezier(.4,0,.2,1)}.budget-fill.within{background:linear-gradient(90deg,var(--green),#34d399)}.budget-fill.over{background:linear-gradient(90deg,var(--red),#f97316)}.btn-remove{background:var(--red-light);border:none;color:var(--red);cursor:pointer;padding:.2rem .5rem;font-size:.72rem;font-weight:700;border-radius:4px;transition:all .15s}.btn-remove:hover{background:var(--red);color:#fff;transform:none;box-shadow:none}.qty-input{width:60px;text-align:center;padding:.3rem}.loading-container{display:flex;flex-direction:column;align-items:center;padding:2rem;gap:.75rem}.loading-spinner{width:32px;height:32px;border:3px solid var(--gray-200);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:var(--gray-400);font-size:.85rem;font-weight:500}@media (max-width: 900px){.content-split{grid-template-columns:1fr;overflow-y:auto}.review-split{grid-template-columns:1fr}.review-section{overflow-y:auto}.summary-cards{grid-template-columns:1fr 1fr}.setup-grid{grid-template-columns:1fr}.app-header{padding:0 1rem}.app-content{padding:.75rem 1rem}.app-footer{padding:.5rem 1rem}.copyright-bar{padding:.4rem 1rem}}@media (max-width: 640px){html,body,#root{overflow:auto}.app-shell{height:auto;min-height:100vh}.app-header{height:56px}.app-header .brand h1{font-size:.95rem}.app-header .brand-icon{width:30px;height:30px;font-size:.9rem}.steps{gap:.2rem}.step{padding:.25rem .6rem;font-size:.7rem}.step-num{width:16px;height:16px;font-size:.6rem}.grid,.sku-grid{grid-template-columns:1fr}.summary-cards{grid-template-columns:1fr 1fr}.footer-budget-bar{width:100px}.app-footer{flex-wrap:wrap;gap:.4rem}.app-content{padding:.5rem .75rem;overflow-y:auto}.content-inner{min-height:auto}.panel{padding:.65rem .8rem}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}table{min-width:500px}}@media (max-width: 480px){.app-header{height:52px;padding:0 .75rem;flex-wrap:wrap;gap:.25rem}.app-header .brand h1{font-size:.85rem}.app-header .brand-icon{width:26px;height:26px;font-size:.8rem}.steps{gap:.15rem;overflow-x:auto;flex-shrink:0}.step{padding:.2rem .5rem;font-size:.65rem;flex-shrink:0}.step-num{width:14px;height:14px;font-size:.55rem;margin-right:.2rem}.summary-cards{grid-template-columns:1fr}.app-content{padding:.4rem .5rem}.panel{border-radius:10px}.setup-hero h2{font-size:1.1rem}.setup-hero p{font-size:.78rem}.sku-card{padding:.5rem .6rem}.sku-card .sku-name{font-size:.75rem}.footer-budget-bar{width:80px}.footer-budget .total{font-size:1rem}.footer-budget .footer-label{font-size:.65rem}.app-footer{flex-direction:column;gap:.5rem;align-items:stretch;text-align:center}.footer-budget{justify-content:center;flex-wrap:wrap}.footer-actions{justify-content:center}.copyright-bar{flex-direction:column;gap:.2rem;text-align:center;padding:.5rem .75rem}.error-banner{font-size:.78rem;padding:.5rem .75rem}button{padding:.45rem .85rem;font-size:.8rem}button.sm{padding:.3rem .6rem;font-size:.72rem}}.sku-grid::-webkit-scrollbar,.table-scroll::-webkit-scrollbar,.setup-section::-webkit-scrollbar{width:5px}.sku-grid::-webkit-scrollbar-track,.table-scroll::-webkit-scrollbar-track,.setup-section::-webkit-scrollbar-track{background:transparent}.sku-grid::-webkit-scrollbar-thumb,.table-scroll::-webkit-scrollbar-thumb,.setup-section::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:3px}.sku-grid::-webkit-scrollbar-thumb:hover,.table-scroll::-webkit-scrollbar-thumb:hover,.setup-section::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}.review-section{scrollbar-width:none;-ms-overflow-style:none}.review-section::-webkit-scrollbar{display:none}
