html{font-size:14.4px}:root{--e6-cream: 255 253 250;--e6-white: 255 255 255;--e6-purple: 136 0 255;--e6-purple-dark: 100 0 200;--e6-purple-darker: 75 0 150;--e6-dark: 51 50 46;--e6-beige: 229 223 207;--e6-gray: 100 95 85;--e6-gray-light: 140 135 125;--e6-border: 190 184 170;--e6-dark-bg: 24 24 24;--background: rgb(var(--e6-cream));--foreground: rgb(var(--e6-dark));--card: rgb(var(--e6-white));--card-foreground: rgb(var(--e6-dark));--popover: rgb(var(--e6-white));--popover-foreground: rgb(var(--e6-dark));--primary: rgb(var(--e6-purple));--primary-foreground: rgb(255 255 255);--secondary: rgb(var(--e6-beige));--secondary-foreground: rgb(var(--e6-dark));--muted: rgb(var(--e6-beige));--muted-foreground: rgb(var(--e6-gray));--accent: rgb(var(--e6-beige));--accent-foreground: rgb(var(--e6-dark));--destructive: rgb(200 30 30);--destructive-foreground: rgb(255 255 255);--border: rgb(var(--e6-border));--input: rgb(var(--e6-border));--ring: rgb(var(--e6-purple));--link: rgb(100 0 200);--sidebar: rgb(var(--e6-white));--sidebar-foreground: rgb(var(--e6-dark));--sidebar-primary: rgb(var(--e6-purple));--sidebar-primary-foreground: rgb(255 255 255);--sidebar-accent: rgb(var(--e6-beige));--sidebar-accent-foreground: rgb(var(--e6-dark));--sidebar-border: rgb(var(--e6-border));--sidebar-ring: rgb(var(--e6-purple))}.dark{--background: rgb(var(--e6-dark-bg));--foreground: rgb(240 238 235);--card: rgb(32 32 32);--card-foreground: rgb(240 238 235);--popover: rgb(32 32 32);--popover-foreground: rgb(240 238 235);--primary: rgb(var(--e6-purple));--primary-foreground: rgb(255 255 255);--secondary: rgb(45 45 45);--secondary-foreground: rgb(240 238 235);--muted: rgb(45 45 45);--muted-foreground: rgb(170 165 155);--accent: rgb(45 45 45);--accent-foreground: rgb(240 238 235);--destructive: rgb(239 68 68);--destructive-foreground: rgb(255 255 255);--border: rgb(55 55 55);--input: rgb(55 55 55);--ring: rgb(var(--e6-purple));--link: rgb(180 130 255);--sidebar: rgb(32 32 32);--sidebar-foreground: rgb(240 238 235);--sidebar-primary: rgb(var(--e6-purple));--sidebar-primary-foreground: rgb(255 255 255);--sidebar-accent: rgb(45 45 45);--sidebar-accent-foreground: rgb(240 238 235);--sidebar-border: rgb(55 55 55);--sidebar-ring: rgb(var(--e6-purple))}:root{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;color:var(--foreground);background-color:var(--background);transition:background-color .2s,color .2s}a{font-weight:500;color:var(--link);text-decoration:inherit}a:hover{opacity:.85}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--card);color:var(--foreground);cursor:pointer;transition:border-color .25s,background-color .2s}button:hover{border-color:var(--primary)}button:focus{outline:none}button:focus-visible{outline:1px solid rgb(var(--e6-purple) / .5);outline-offset:1px}input,select{color:var(--foreground);background-color:var(--card);border-color:var(--border)}:root{--positive-bg: rgb(73 245 159 / .15);--positive-border: rgb(73 245 159 / .4);--positive-text: rgb(15 90 45);--negative-bg: rgba(200, 30, 30, .1);--negative-border: rgba(200, 30, 30, .3);--negative-text: rgb(180 60 60)}.dark{--positive-bg: rgb(73 245 159 / .15);--positive-border: rgb(73 245 159 / .4);--positive-text: rgb(73 245 159);--negative-bg: rgba(239, 68, 68, .15);--negative-border: rgba(239, 68, 68, .4);--negative-text: rgb(239 120 120)}:root{--bg-primary: var(--background);--bg-secondary: var(--card);--bg-tertiary: var(--secondary);--bg-card: var(--card);--bg-input: var(--card);--bg-overlay: rgba(0, 0, 0, .4);--border-primary: var(--border);--border-light: var(--secondary);--text-primary: var(--foreground);--text-secondary: var(--muted-foreground);--text-muted: var(--muted-foreground);--text-dim: var(--muted-foreground);--text-faint: var(--border);--accent-green: var(--primary);--accent-green-rgb: var(--e6-purple);--accent-green-hover: rgb(var(--e6-purple-dark));--accent-green-bright: var(--primary);--accent-green-text: var(--link);--accent-secondary: var(--secondary);--accent-secondary-hover: var(--muted);--accent-gray: var(--muted-foreground);--accent-gray-hover: var(--foreground);--accent-red: rgb(180 80 80);--accent-red-hover: rgb(160 60 60);--accent-orange: rgb(217 119 6);--accent-yellow: rgb(234 179 8);--btn-primary-text: var(--primary-foreground);--text-on-accent: var(--primary-foreground)}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;appearance:textfield}input.number-field-invalid,input.number-field-invalid:focus{border-color:#ef4444!important;background-color:#fee2e266;outline-color:#ef4444}.app{max-width:1200px;margin:0 auto;padding:1rem 2rem}.app-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-primary)}.app-header h1{margin:0;font-size:1.5rem;white-space:nowrap}.app-title{display:flex;align-items:baseline;gap:.5rem}.app-version{font-size:.7rem;color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums}.app-version a{color:var(--text-secondary);text-decoration:none;font-family:monospace}.app-version a:hover{color:var(--accent-green);text-decoration:underline}.header-controls{display:flex;align-items:center;gap:.5rem}.header-actions{display:flex;gap:.5rem}.header-btn{padding:.5rem 1rem;font-size:.875rem;background-color:var(--accent-green);border:1px solid var(--btn-primary-text);border-radius:0;color:var(--btn-primary-text);cursor:pointer;font-weight:500}.header-btn:hover{background-color:var(--accent-green-hover)}.header-btn.secondary{background-color:var(--accent-secondary);border-color:var(--text-primary);color:var(--text-primary)}.header-btn.secondary:hover{background-color:var(--accent-secondary-hover)}.header-btn.logout{background-color:var(--accent-gray)}.header-btn.logout:hover{background-color:var(--accent-gray-hover);color:var(--bg-primary);border-color:var(--accent-gray-hover)}.icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background-color:transparent;border:1px solid var(--border-primary);border-radius:0;color:var(--text-primary);cursor:pointer;transition:all .15s ease}.icon-btn:hover{background-color:var(--accent-green);border-color:var(--accent-green);color:var(--btn-primary-text)}.icon-btn svg{stroke-width:2}.header-user{display:flex;align-items:center;gap:.5rem;margin-left:.5rem;padding-left:.75rem;border-left:1px solid var(--border-light)}.header-avatar{width:28px;height:28px;border-radius:50%}.header-username{font-size:.85rem;color:var(--text-secondary)}.auth-loading{text-align:center;padding:4rem 2rem;color:var(--text-muted)}.app-main{display:flex;flex-direction:column}.auth-container{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem;border-radius:0;background-color:var(--bg-tertiary);margin:0 auto}.sign-in-prompt{text-align:center}.sign-in-prompt h2{margin:0 0 .5rem;font-size:1.25rem}.sign-in-prompt p{margin:0;color:var(--text-muted);font-size:.875rem}.auth-error{padding:.75rem 1rem;background-color:var(--accent-red);color:#fff;border-radius:0;font-size:.875rem}.user-info{display:flex;align-items:center;gap:1rem}.user-avatar{width:40px;height:40px;border-radius:50%}.user-details{display:flex;flex-direction:column}.user-name{font-weight:600;font-size:.95rem}.user-email{color:var(--text-muted);font-size:.8rem}.logout-button{margin-top:.5rem;padding:.4rem .8rem;font-size:.8rem}.calculator-content{margin-top:1rem;padding:0;border:none;text-align:left}.profile-form{background-color:var(--bg-tertiary);border-radius:0;padding:1.5rem}.form-header{margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-primary);display:flex;justify-content:space-between;align-items:center}.form-header h2{margin:0;font-size:1.25rem}.form-header-actions{display:flex;gap:.5rem}.form-header-actions .calculate-btn,.form-header-actions .save-btn{padding:.4rem .75rem;font-size:.8rem}.form-section{margin-bottom:1.5rem;padding:1rem;background-color:var(--bg-card);border-radius:0}.form-section.collapsible .section-header{cursor:pointer;-webkit-user-select:none;user-select:none}.section-header{margin:0 0 1rem;font-size:1rem;display:flex;align-items:center;gap:.5rem}.toggle-icon{font-size:.75rem;transition:transform .2s}.toggle-icon.open{transform:rotate(90deg)}.workspace-header{color:var(--text-primary)}.form-row{display:grid;gap:1rem;margin-bottom:1rem}.form-row.two-col{grid-template-columns:1fr 1fr}.form-row.three-col{grid-template-columns:1.2fr .8fr 1fr}.form-row label{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;color:var(--text-secondary)}.label-with-tip{display:flex;align-items:center;gap:.35rem}.field-tip{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;font-size:.6rem;font-weight:600;background-color:var(--border-light);color:var(--text-secondary);border-radius:50%;cursor:help;flex-shrink:0}.field-tip:hover{background-color:var(--text-faint);color:var(--text-primary)}.tooltip-wrapper{position:relative;display:inline-flex;align-items:center;cursor:pointer}.tooltip-content{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);padding:.5rem .75rem;background-color:var(--bg-card);border:1px solid var(--border-primary);color:var(--text-primary);font-size:.75rem;font-weight:400;line-height:1.4;white-space:normal;width:max-content;max-width:280px;z-index:1000;box-shadow:0 2px 8px #0000004d}.tooltip-content:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--border-primary)}.tooltip-trigger{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;margin-left:6px;font-size:.6rem;font-weight:600;background-color:var(--border-light);color:var(--text-secondary);border-radius:50%;flex-shrink:0}.tooltip-wrapper:hover .tooltip-trigger{background-color:var(--text-faint);color:var(--text-primary)}.tooltip-asterisk{color:var(--text-muted);font-size:.9em;margin-left:4px}.form-row input,.form-row select{padding:.5rem;font-size:.875rem;background-color:var(--bg-input);border:1px solid var(--border-primary);border-radius:0;color:var(--text-primary)}.form-row input:focus,.form-row select:focus{outline:none;border-color:var(--accent-green)}.form-row input.error{border-color:var(--accent-red)}.error-text{color:var(--accent-red);font-size:.75rem}.runtime-inputs{display:flex;align-items:center;gap:.5rem}.runtime-inputs input{width:60px}.runtime-inputs span{font-size:.75rem;color:var(--text-muted)}.buffer-config{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;color:var(--text-secondary)}.buffer-inputs{display:flex;gap:.75rem;align-items:center}.buffer-row{display:flex;align-items:center;gap:.25rem}.buffer-label{font-size:.7rem;color:var(--text-muted);flex-shrink:0}.buffer-row input{width:56px;height:28px;padding:0 6px;font-size:.75rem;background-color:var(--bg-input);border:1px solid var(--border-primary);border-radius:0;color:var(--text-primary);box-sizing:border-box}.buffer-type-select{height:28px;padding:0 4px;font-size:.65rem;background-color:var(--bg-input);border:1px solid var(--border-primary);border-radius:0;color:var(--text-primary)}.buffer-row input:focus,.buffer-type-select:focus{outline:none;border-color:var(--accent-green)}.components-section{margin-top:1rem}.components-section h4{margin:0 0 .75rem;font-size:.9rem;color:var(--text-muted)}.components-table{width:100%;border-collapse:collapse;font-size:.8rem}.components-table th,.components-table td{padding:.5rem;text-align:left;border-bottom:1px solid var(--border-primary)}.components-table th{color:var(--text-muted);font-weight:500;font-size:.75rem;text-transform:uppercase}.components-table .comp-name{font-weight:600;color:var(--text-primary)}.components-table input{width:70px;padding:.35rem;font-size:.8rem;background-color:var(--bg-input);border:1px solid var(--border-primary);border-radius:0;color:var(--text-primary)}.components-table select{padding:.35rem;font-size:.8rem;background-color:var(--bg-input);border:1px solid var(--border-primary);border-radius:0;color:var(--text-primary);max-width:180px}.workspaces-section{margin-bottom:1rem}.workspaces-header{display:flex;justify-content:space-between;align-items:center}.workspaces-header h3{margin:0;font-size:1rem;color:var(--text-primary)}.clusters-section{margin-top:1.5rem}.clusters-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.clusters-header h4{margin:0;font-size:.9rem;color:var(--text-muted)}.add-cluster-btn{padding:.35rem .75rem;font-size:.75rem;background-color:var(--accent-secondary);border:1px solid var(--text-primary);border-radius:0;color:var(--text-primary);cursor:pointer;font-weight:500}.add-cluster-btn:hover{background-color:var(--accent-secondary-hover)}.cluster-card{position:relative;margin-bottom:1rem;padding:1rem;background-color:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:0}.cluster-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-primary)}.cluster-title{margin:0;font-size:.95rem;font-weight:600;color:var(--text-primary)}.cluster-config{margin-bottom:1rem}.cluster-header{position:relative}.remove-cluster-btn{position:absolute;top:0;right:0;width:24px;height:24px;padding:0;font-size:1.25rem;line-height:1;background-color:var(--accent-red);border:none;border-radius:0;color:#fff;cursor:pointer}.remove-cluster-btn:hover{background-color:var(--accent-red-hover)}.section-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.workspace-actions{display:flex;gap:.5rem;align-items:center}.clone-btn{padding:.35rem .75rem;font-size:.75rem;background-color:var(--accent-secondary);border:1px solid var(--text-primary);border-radius:0;color:var(--text-primary);cursor:pointer;white-space:nowrap}.clone-btn:hover{background-color:var(--accent-secondary-hover)}.clone-btn:disabled{opacity:.6;cursor:not-allowed}.workspace-actions .delete-btn{padding:.35rem .75rem;font-size:.75rem;background-color:transparent;border:1px solid var(--accent-red);border-radius:0;color:var(--accent-red);cursor:pointer;white-space:nowrap}.workspace-actions .delete-btn:hover:not(:disabled){background-color:var(--accent-red);color:#fff}.workspace-actions .delete-btn:disabled{opacity:.5;cursor:not-allowed}.add-workspace-btn{padding:.35rem .75rem;font-size:.75rem;background-color:var(--accent-secondary);border:1px solid var(--text-primary);border-radius:0;color:var(--text-primary);cursor:pointer;font-weight:500}.add-workspace-btn:hover{background-color:var(--accent-secondary-hover)}.components-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.components-header h4,.components-header h5{margin:0;font-size:.9rem;color:var(--text-muted)}.components-header h5{font-size:.85rem}.add-component-btn{padding:.3rem .6rem;font-size:.7rem;background-color:var(--accent-secondary);border:1px solid var(--text-primary);border-radius:0;color:var(--text-primary);cursor:pointer;white-space:nowrap;font-weight:500}.add-component-btn:hover{background-color:var(--accent-secondary-hover)}.component-actions{display:flex;gap:.5rem}.import-component-btn{padding:.3rem .6rem;font-size:.7rem;background-color:var(--accent-secondary);border:1px solid var(--text-primary);border-radius:0;color:var(--text-primary);cursor:pointer;white-space:nowrap;font-weight:500}.import-component-btn:hover{background-color:var(--accent-secondary-hover)}.import-component-modal{max-width:500px;width:90vw}.import-component-modal .modal-content{overflow:visible}.import-component-modal .modal-description{margin:0 0 1rem;font-size:.85rem;color:var(--text-muted)}.import-option label{display:block;font-size:.8rem;font-weight:500;margin-bottom:.5rem;color:var(--text-primary)}.import-option textarea{width:100%;padding:.75rem;font-size:.8rem;font-family:monospace;background-color:var(--bg-primary);border:1px solid var(--border-primary);border-radius:0;color:var(--text-primary);resize:vertical;box-sizing:border-box}.import-option textarea:focus{outline:none;border-color:var(--accent-green)}.import-divider{text-align:center;color:var(--text-muted);font-size:.8rem;position:relative}.import-divider:before,.import-divider:after{content:"";position:absolute;top:50%;width:40%;height:1px;background-color:var(--border-primary)}.import-divider:before{left:0}.import-divider:after{right:0}.file-select-btn{padding:.5rem 1rem;font-size:.85rem;background-color:var(--accent-secondary);border:1px solid var(--text-primary);border-radius:0;color:var(--text-primary);cursor:pointer;font-weight:500}.file-select-btn:hover{background-color:var(--accent-secondary-hover)}.import-error{margin-top:1rem;padding:.75rem;background-color:var(--error-bg);color:var(--error-text);font-size:.8rem;border-radius:0}.import-preview{margin-top:1rem;padding:.5rem .75rem;background-color:var(--success-bg);font-size:.8rem;display:flex;gap:.5rem;align-items:center}.import-preview .preview-label{color:var(--positive-text);font-weight:500}.import-preview .preview-size{color:var(--text-muted)}.remove-component-btn{width:24px;height:24px;padding:0;font-size:.85rem;line-height:1;background-color:transparent;border:1px solid var(--border-primary);border-radius:0;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center}.remove-component-btn:hover{background-color:var(--accent-red);border-color:var(--accent-red);color:#fff}.cluster-actions{display:flex;gap:.35rem}.clone-cluster-btn{padding:.35rem .75rem;font-size:.75rem;background-color:var(--accent-secondary);border:1px solid var(--text-primary);border-radius:0;color:var(--text-primary);cursor:pointer;white-space:nowrap}.clone-cluster-btn:hover{background-color:var(--accent-secondary-hover)}.delete-cluster-btn{padding:.35rem .75rem;font-size:.75rem;background-color:transparent;border:1px solid var(--accent-red);border-radius:0;color:var(--accent-red);cursor:pointer;white-space:nowrap}.delete-cluster-btn:hover:not(:disabled){background-color:var(--accent-red);color:#fff}.delete-cluster-btn:disabled{opacity:.5;cursor:not-allowed}.add-component-modal{max-width:500px}.add-component-modal .modal-content{padding:1.5rem}.add-component-modal .modal-content>label{display:block;margin-bottom:1rem}.add-component-modal .modal-content label{font-size:.85rem;color:var(--text-secondary)}.add-component-modal .modal-content input,.add-component-modal .modal-content select{width:100%;margin-top:.25rem;padding:.5rem;font-size:.875rem;background-color:var(--bg-input);border:1px solid var(--border-primary);border-radius:0;color:var(--text-primary);box-sizing:border-box}.add-component-modal .modal-content input:focus,.add-component-modal .modal-content select:focus{outline:none;border-color:var(--accent-green)}.add-component-modal .form-row{margin-bottom:.75rem}.add-component-modal .form-row.two-col{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.add-component-modal .form-row.three-col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}.add-component-modal .confirm-btn:disabled{opacity:.5;cursor:not-allowed}.form-actions{display:flex;justify-content:space-between;gap:.75rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-primary)}.save-btn{padding:.75rem 2rem;font-size:1rem;background-color:var(--accent-green);border:1px solid var(--btn-primary-text);border-radius:0;color:var(--btn-primary-text);cursor:pointer;font-weight:600}.save-btn:hover{background-color:var(--accent-green-hover)}.save-btn:disabled{opacity:.6;cursor:not-allowed}.calculate-btn{padding:.75rem 2rem;font-size:1rem;background-color:var(--accent-secondary);border:1px solid var(--text-primary);border-radius:0;color:var(--text-primary);cursor:pointer;font-weight:600}.calculate-btn:hover{background-color:var(--accent-secondary-hover)}.calculate-btn:disabled{opacity:.6;cursor:not-allowed}.cancel-btn{padding:.75rem 1.5rem;font-size:1rem;background-color:var(--accent-gray);border:none;border-radius:0;color:#fff;cursor:pointer}.cancel-btn:hover{background-color:var(--accent-gray-hover)}.profile-list-overlay{position:fixed;inset:0;background-color:var(--bg-overlay);display:flex;justify-content:center;align-items:center;z-index:1000}.profile-list-modal{background-color:var(--bg-secondary);border-radius:0;width:90%;max-width:600px;max-height:80vh;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--border-primary)}.modal-header h2{margin:0;font-size:1.25rem}.close-btn{width:32px;height:32px;padding:0;font-size:1.5rem;line-height:1;background-color:transparent;border:1px solid var(--border-primary);border-radius:0;color:var(--text-muted);cursor:pointer}.close-btn:hover{background-color:var(--bg-card);color:var(--text-primary)}.modal-content{padding:1.5rem;overflow-y:auto}.modal-overlay{position:fixed;inset:0;background-color:var(--bg-overlay);display:flex;justify-content:center;align-items:center;z-index:1000}.modal{background-color:var(--bg-secondary);border-radius:0;width:90%;max-width:450px;display:flex;flex-direction:column;box-shadow:0 4px 20px #0000004d}.modal .modal-content p{margin:0 0 1rem;line-height:1.5}.modal .modal-content p:last-child{margin-bottom:0}.modal .modal-content .warning-text{color:var(--accent-red);font-size:.9rem}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--border-primary);background-color:var(--bg-card);border-radius:0}.modal-actions .cancel-btn,.modal-actions .confirm-btn{padding:.5rem 1rem;font-size:.875rem;border-radius:0;cursor:pointer}.modal-actions .cancel-btn{background-color:transparent;border:1px solid var(--border-primary);color:var(--text-secondary)}.modal-actions .cancel-btn:hover{background-color:var(--bg-input);color:var(--text-primary)}.modal-actions .confirm-btn{background-color:var(--accent-green);border:1px solid var(--btn-primary-text);color:var(--btn-primary-text);font-weight:500}.modal-actions .confirm-btn:hover{background-color:var(--accent-green-hover)}.modal-actions .danger-btn{padding:.5rem 1rem;font-size:.875rem;border-radius:0;cursor:pointer;background-color:transparent;border:1px solid var(--negative-border);color:var(--negative-text);font-weight:500}.modal-actions .danger-btn:hover{background-color:var(--negative-bg)}.cloud-switch-modal .modal-header{border-bottom:1px solid var(--border-primary)}.cloud-switch-modal .modal-header h2{color:var(--accent-yellow)}.import-btn{padding:.35rem .75rem;font-size:.75rem;background:var(--accent-secondary);color:var(--text-primary);border:none;cursor:pointer;white-space:nowrap;align-self:flex-end;margin-bottom:.25rem}.import-btn:hover{background:var(--accent-secondary-hover)}.import-modal{max-width:500px;width:90vw}.import-modal .modal-content{overflow:hidden}.import-confirm-modal{max-width:400px}.import-warning{color:var(--text-secondary);font-size:.85rem;margin-bottom:1rem;padding:.75rem;background:var(--bg-tertiary);border-left:3px solid var(--accent-orange)}.import-options{display:flex;flex-direction:column;gap:1rem}.import-options .upload-btn{padding:.75rem 1.5rem;font-size:.875rem;background:var(--accent-secondary);color:var(--text-primary);border:1px dashed var(--border-primary);cursor:pointer;text-align:center}.import-options .upload-btn:hover{background:var(--accent-secondary-hover);border-style:solid}.import-divider{text-align:center;color:var(--text-muted);font-size:.8rem;padding:.5rem 0}.import-textarea{width:100%;box-sizing:border-box;font-family:SF Mono,Monaco,Courier New,monospace;font-size:.75rem;padding:.75rem;border:1px solid var(--border-primary);background:var(--bg-input);color:var(--text-primary);resize:vertical;min-height:150px}.import-textarea:focus{outline:none;border-color:var(--accent-green)}.import-textarea::placeholder{color:var(--text-dim)}.import-error{color:var(--accent-red);font-size:.8rem;padding:.5rem .75rem;background:var(--negative-bg);border:1px solid var(--negative-border)}.import-wizard{max-width:600px;width:90vw}.import-wizard .modal-content{overflow:visible}.step-indicator{display:flex;justify-content:center;gap:.5rem;padding:1rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-primary)}.step-indicator .step{padding:.5rem 1rem;font-size:.75rem;background:var(--bg-tertiary);color:var(--text-muted);border:none}.step-indicator .step.active{background:var(--bg-primary);color:var(--accent-green-text);border:1px solid var(--accent-green-text)}.step-indicator .step.completed{background:var(--positive-bg);color:var(--positive-text)}.import-step{padding:1rem 0}.step-description{color:var(--text-secondary);font-size:.85rem;margin-bottom:1rem}.file-drop-zone{border:2px dashed var(--border-primary);padding:2.5rem 2rem;text-align:center;cursor:pointer;background:var(--bg-tertiary);transition:all .2s}.file-drop-zone:hover,.file-drop-zone.dragging{border-color:var(--accent-green);background:rgba(var(--accent-green-rgb),.05)}.file-drop-zone .drop-icon{font-size:2rem;margin-bottom:.75rem}.file-drop-zone .drop-text{font-size:.9rem;color:var(--text-primary);margin-bottom:.5rem}.file-drop-zone .drop-subtext{font-size:.75rem;color:var(--text-muted)}.import-errors{margin-top:1rem;padding:.75rem;background:var(--negative-bg);border:1px solid var(--negative-border)}.import-errors h4{font-size:.8rem;color:var(--accent-red);margin-bottom:.5rem}.import-error-item{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:var(--text-secondary);padding:.25rem 0}.import-error-item .clear-error{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:0 .25rem;font-size:1rem}.detected-cloud{font-size:.8rem;color:var(--text-secondary);padding:.5rem .75rem;background:var(--bg-tertiary);margin-bottom:1rem}.review-sections{display:flex;flex-direction:column;gap:1rem}.review-section h4{font-size:.85rem;color:var(--text-secondary);margin-bottom:.5rem;padding-bottom:.25rem;border-bottom:1px solid var(--border-primary)}.empty-section{font-size:.8rem;color:var(--text-muted);font-style:italic;padding:.5rem 0}.review-list{max-height:150px;overflow-y:auto}.review-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem;background:var(--bg-tertiary);margin-bottom:.25rem}.review-item .item-info{display:flex;flex-direction:column;gap:.15rem}.review-item .item-name{font-size:.85rem;font-weight:500;color:var(--text-primary)}.review-item .item-meta{font-size:.7rem;color:var(--text-muted)}.review-item .remove-item{background:none;border:none;color:var(--text-muted);font-size:1.25rem;cursor:pointer;padding:0 .25rem;line-height:1}.review-item .remove-item:hover{color:var(--accent-red)}.add-more-btn{margin-top:1rem;padding:.5rem 1rem;font-size:.8rem;background:var(--bg-tertiary);border:1px dashed var(--border-primary);color:var(--text-secondary);cursor:pointer;width:100%}.add-more-btn:hover{border-color:var(--accent-green-text);color:var(--accent-green-text)}.mapping-list{display:flex;flex-direction:column;gap:.5rem}.mapping-row{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:4px;position:relative;z-index:10}.mapping-row .workspace-name{font-weight:600;font-size:.85rem;color:var(--text-primary)}.mapping-row .cluster-select{width:100%}.cluster-dropdown{position:relative}.cluster-dropdown-trigger{width:100%;padding:.5rem .75rem;font-size:.8rem;text-align:left;background:var(--bg-input);border:1px solid var(--border-primary);color:var(--text-primary);cursor:pointer;display:flex;justify-content:space-between;align-items:center}.cluster-dropdown-trigger:hover{border-color:var(--accent-green)}.dropdown-arrow{font-size:.7rem;color:var(--text-muted)}.cluster-dropdown-menu{position:absolute;bottom:100%;left:0;right:0;background:var(--bg-secondary);border:1px solid var(--border-primary);border-bottom:none;z-index:100;box-shadow:0 -4px 8px #0003}.dropdown-search{padding:.5rem;border-bottom:1px solid var(--border-primary)}.dropdown-search input{width:100%;padding:.35rem .5rem;font-size:.75rem;background:var(--bg-input);border:1px solid var(--border-primary);color:var(--text-primary)}.dropdown-search input:focus{outline:none;border-color:var(--accent-green)}.dropdown-options{max-height:180px;overflow-y:auto;overflow-x:hidden}.cluster-option{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.8rem;cursor:pointer}.cluster-option:hover:not(.disabled){background:var(--bg-tertiary)}.cluster-option.selected{background:rgba(var(--accent-green-rgb),.15)}.cluster-option.disabled{opacity:.5;cursor:not-allowed}.cluster-option .option-checkbox{font-size:.9rem;color:var(--accent-green-text)}.cluster-option .option-name{flex:1;color:var(--text-primary)}.cluster-option .option-assigned{font-size:.7rem;color:var(--text-muted)}.no-options{padding:.75rem;font-size:.8rem;color:var(--text-muted);text-align:center}.dropdown-footer{padding:.5rem;border-top:1px solid var(--border-primary);text-align:right}.dropdown-done{padding:.35rem .75rem;font-size:.75rem;background:var(--accent-green);color:var(--text-on-accent);border:none;cursor:pointer}.dropdown-done:hover{filter:brightness(1.1)}.unassigned-warning{margin-top:1rem;padding:.75rem;background:var(--warning-bg, rgba(255, 193, 7, .1));border:1px solid var(--warning-border, rgba(255, 193, 7, .3));font-size:.8rem;color:var(--text-secondary);position:relative;z-index:1}.unassigned-warning strong{color:var(--accent-orange)}.unassigned-warning small{display:block;margin-top:.25rem;color:var(--text-muted)}.import-wizard .modal-actions{display:flex;gap:.5rem;justify-content:flex-end}.import-wizard .back-btn{background:var(--bg-tertiary);border:1px solid var(--border-primary);color:var(--text-secondary);padding:.5rem 1rem;font-size:.8rem;cursor:pointer}.import-wizard .back-btn:hover{background:var(--bg-secondary)}.import-wizard .reset-btn{background:none;border:none;color:var(--text-muted);padding:.5rem 1rem;font-size:.8rem;cursor:pointer}.import-wizard .reset-btn:hover{color:var(--accent-red)}.import-wizard .next-btn{background:var(--accent-green);border:none;color:var(--text-on-accent);padding:.5rem 1.25rem;font-size:.8rem;cursor:pointer}.import-wizard .next-btn:disabled{opacity:.5;cursor:not-allowed}.import-wizard .next-btn:hover:not(:disabled){filter:brightness(1.1)}.profile-search{margin-bottom:1rem}.profile-search input{width:100%;padding:.6rem .75rem;font-size:.875rem;background-color:var(--bg-input);border:1px solid var(--border-primary);border-radius:0;color:var(--text-primary)}.profile-search input:focus{outline:none;border-color:var(--accent-green)}.profile-search input::placeholder{color:var(--text-dim)}.loading-state,.empty-state,.error-state{text-align:center;padding:2rem;color:var(--text-muted)}.loading-state .spinner{width:28px;height:28px;margin:0 auto .75rem;border:3px solid var(--border-primary);border-top-color:var(--accent-green);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.load-more{display:flex;justify-content:center;padding:.75rem 0 .25rem}.load-more-btn{background:transparent;color:var(--text-primary);border:1px solid var(--border-primary);border-radius:0;padding:.5rem 1.25rem;font-size:.85rem;font-weight:600;cursor:pointer}.load-more-btn:hover{border-color:var(--accent-green);color:var(--accent-green)}.pricing-zero-alert{margin-bottom:1.25rem;padding:1rem 1.15rem;background:var(--negative-bg);border:2px solid var(--negative-border);border-left:6px solid var(--negative-text);color:var(--negative-text);border-radius:0;box-shadow:0 2px 10px #00000026}.pricing-zero-alert-head{display:flex;gap:.6rem;align-items:flex-start;font-size:.95rem;font-weight:700;line-height:1.4}.pricing-zero-alert-icon{font-size:1.2rem;line-height:1;flex:none}.pricing-zero-alert-list{margin:.6rem 0 0;padding-left:2.1rem;font-size:.85rem;font-weight:500;line-height:1.6}.pricing-zero-alert-list li{list-style:square}.empty-state .hint{font-size:.875rem;margin-top:.5rem}.error-state{color:var(--accent-red)}.error-state button{margin-top:1rem}.profiles-grid{display:flex;flex-direction:column;gap:.75rem}.profile-card{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.55rem .85rem;background-color:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:0;cursor:pointer;transition:border-color .15s,background-color .15s}.profile-card:hover{border-color:var(--accent-green);background-color:var(--positive-bg)}.profile-card.loading{opacity:.6}.profile-card-info{flex:1;min-width:0}.profile-card-name{margin:0;font-size:.9rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-card-sub{margin-top:.1rem;font-size:.72rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-creator{color:var(--text-secondary);font-weight:500}.profile-creator:after{content:"·";margin:0 .4rem;color:var(--text-muted)}.version-badge{padding:.2rem .5rem;font-size:.7rem;background-color:var(--accent-secondary);color:var(--text-primary);border:1px solid var(--border-primary);border-radius:0}.profile-card-actions{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.profile-card-actions .load-btn{padding:.35rem .9rem;font-size:.78rem;background-color:var(--accent-green);border:1px solid var(--btn-primary-text);border-radius:0;color:var(--btn-primary-text);cursor:pointer;font-weight:500}.profile-card-actions .load-btn:hover{background-color:var(--accent-green-hover)}.profile-menu{position:relative}.menu-trigger{padding:.25rem .5rem;font-size:1.1rem;line-height:1;background:transparent;border:1px solid var(--border-primary);border-radius:0;color:var(--text-secondary);cursor:pointer}.menu-trigger:hover{border-color:var(--accent-green);color:var(--text-primary)}.menu-dropdown{position:absolute;top:calc(100% + 4px);right:0;z-index:20;display:flex;flex-direction:column;min-width:120px;background:var(--bg-secondary);border:1px solid var(--border-primary);box-shadow:0 4px 14px #00000040}.menu-item{padding:.5rem .8rem;font-size:.8rem;text-align:left;background:transparent;border:none;color:var(--text-primary);cursor:pointer}.menu-item:hover{background:var(--bg-tertiary)}.menu-item:disabled{opacity:.5;cursor:default}.menu-danger{color:var(--accent-red)}.menu-danger:hover{background:var(--accent-red);color:#fff}.results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-primary)}.profile-title{margin:0;font-size:1.25rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.preview-tag{padding:.2rem .5rem;font-size:.65rem;font-weight:500;background-color:var(--accent-orange);color:#000;border-radius:0;text-transform:uppercase}.results-section{margin-bottom:1rem;padding:1rem;background-color:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:0}.cost-margin-section,.allocation-section{background-color:var(--bg-tertiary)}.section-title{margin:0 0 .75rem;font-size:.95rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.instance-count{font-size:.7rem;font-weight:400;color:var(--text-muted);padding:.15rem .4rem;background-color:var(--bg-card);border-radius:0}.allocation-content{display:flex;flex-direction:column;gap:.75rem}.allocation-group h4{margin:0 0 .4rem;font-size:.8rem;font-weight:500;color:var(--text-muted)}.export-actions{display:flex;gap:.5rem;flex-shrink:0}.export-btn{padding:.4rem .75rem;font-size:.75rem;background-color:var(--accent-gray);border:none;border-radius:0;color:#fff;cursor:pointer;transition:background-color .2s;white-space:nowrap}.alloc-export-btn{margin-left:auto}.export-btn:hover{background-color:var(--accent-gray-hover)}.export-btn.sheets{background-color:#0f9d58}.export-btn.sheets:hover{background-color:#0d8c4d}.export-btn:disabled{opacity:.5;cursor:not-allowed}.export-error{margin-bottom:1rem;padding:.5rem .75rem;background-color:var(--negative-bg);border:1px solid var(--negative-border);border-radius:0;color:var(--accent-red);font-size:.8rem}.version-tag{padding:.2rem .5rem;font-size:.7rem;background-color:var(--accent-secondary);color:var(--text-primary);border:1px solid var(--border-primary);border-radius:0;margin-left:.5rem}.cost-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1rem}.cost-card{padding:1rem;background-color:var(--bg-card);border-radius:0;text-align:center}.cost-label{display:block;font-size:.75rem;color:var(--text-muted);text-transform:uppercase;margin-bottom:.5rem}.cost-value{display:block;font-size:1.25rem;font-weight:600}.cost-card.positive .cost-value{color:var(--positive-text)}.cost-card.negative .cost-value{color:var(--negative-text)}.cost-details{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.cost-breakdown,.margin-breakdown{background-color:var(--bg-card);padding:1rem;border-radius:0}.section-header-with-switcher{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.section-header-with-switcher h3,.section-header-with-switcher h4{margin:0}.section-header-with-switcher h3{font-size:.95rem;font-weight:600}.section-header-with-switcher h4{font-size:.85rem;color:var(--text-secondary)}.period-switcher{display:flex;gap:2px;background-color:var(--bg-card);border-radius:0;padding:2px}.period-switcher button{padding:.2rem .5rem;font-size:.65rem;text-transform:capitalize;background-color:transparent;border:none;border-radius:0;color:var(--text-muted);cursor:pointer;transition:all .15s}.period-switcher button:hover{color:var(--text-primary)}.period-switcher button.active{background-color:var(--accent-green);color:var(--btn-primary-text)}.cost-breakdown h4,.margin-breakdown h4{margin:0 0 .75rem;font-size:.85rem;color:var(--text-secondary)}.cost-breakdown table,.margin-breakdown table{width:100%;font-size:.85rem}.cost-breakdown td,.margin-breakdown td{padding:.35rem 0}.cost-breakdown td:last-child,.margin-breakdown td:last-child{text-align:right;font-family:monospace}.total-row{border-top:1px solid var(--border-light);font-weight:600}.total-row td{padding-top:.5rem!important}tr.positive td:last-child{color:var(--accent-green-text)}.revenue-buildup th{text-align:right;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary);padding-bottom:.35rem;border-bottom:1px solid var(--border-light)}.revenue-buildup th:first-child{text-align:left}.revenue-buildup td:nth-child(2),.revenue-buildup td:nth-child(3){text-align:right;font-family:monospace;white-space:nowrap}.revenue-buildup td:first-child{text-align:left;font-family:inherit}.revenue-buildup .buildup-group td{padding-top:.6rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary)}.revenue-buildup .buildup-subtotal td:first-child,.revenue-buildup .buildup-cluster td:first-child,.revenue-buildup .buildup-drag td:first-child,.revenue-buildup .total-row td:first-child{padding-left:.75rem}.revenue-buildup .buildup-subtotal{font-weight:600}.revenue-buildup .buildup-cluster td:first-child{color:var(--text-secondary)}.revenue-buildup .buildup-drag td{font-size:.8rem;color:var(--text-secondary)}.revenue-buildup td.positive{color:var(--accent-green-text)}.revenue-buildup td.negative{color:var(--accent-red)}.revenue-buildup .buildup-na{opacity:.4}.workspace-breakdown,.workspace-allocation{margin-top:.35rem}.workspace-breakdown:first-of-type,.workspace-allocation:first-of-type{margin-top:0}.workspace-header{font-size:1rem;font-weight:600;margin:0 0 .75rem;color:var(--text-primary);display:flex;align-items:center;gap:.5rem}.workspace-header .region-tag{font-size:.7rem;font-weight:500;color:var(--text-muted);background-color:var(--bg-card);padding:.15rem .4rem;border-radius:3px}.workspace-toggle{width:100%;display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:4px;cursor:pointer;text-align:left;margin-bottom:0}.workspace-toggle+div,.workspace-toggle+fragment,.cost-details,.allocation-group:first-of-type{margin-top:.5rem}.workspace-toggle:hover{background:var(--bg-card)}.workspace-toggle .toggle-icon{font-size:.7rem;color:var(--text-muted);flex-shrink:0}.workspace-toggle .workspace-name{font-weight:600;color:var(--text-primary);font-size:.9rem}.workspace-toggle .region-tag{font-size:.65rem;font-weight:500;color:var(--text-muted);background-color:var(--bg-card);padding:.1rem .35rem;border-radius:3px;flex-shrink:0}.workspace-summary{margin-left:auto;display:flex;gap:1rem;font-size:.75rem}.ws-stat{color:var(--text-secondary)}.ws-stat.positive{color:var(--accent-green-text)}.ws-stat.negative{color:var(--accent-red)}.workspace-calc-details{margin-top:.35rem}.workspace-calc-details:first-of-type{margin-top:0}.workspace-breakdown h5,.workspace-allocation h5{font-size:.8rem;font-weight:600;color:var(--text-secondary);margin:0 0 .5rem}tr.negative td:last-child{color:var(--accent-red)}.component-allocations{display:grid;grid-template-columns:1fr 1fr;gap:.35rem}.component-allocation{display:flex;align-items:center;gap:.4rem;padding:.3rem .5rem;background-color:var(--bg-card);border-radius:0;font-size:.75rem;white-space:nowrap;overflow:hidden}.component-name{font-weight:600;color:var(--accent-green-text);flex-shrink:0}.auto-scale-badge{font-weight:400;font-size:.75rem;color:var(--accent-blue);margin-left:.25rem}.component-arrow{color:var(--text-muted);flex-shrink:0}.component-instance{display:flex;align-items:center;gap:.3rem;overflow:hidden;text-overflow:ellipsis}.component-instance strong{color:var(--accent-green-text)}.instance-specs{font-size:.7rem;color:var(--text-muted)}.instance-reason{font-size:.65rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis}.save-error{margin-bottom:1rem;padding:1rem;background-color:var(--negative-bg);border:1px solid var(--negative-border);border-radius:0;color:var(--accent-red)}.calc-details-section{margin-bottom:1.5rem}.section-toggle{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;background:var(--bg-card);border:1px solid var(--border-primary);border-radius:0;cursor:pointer;text-align:left;transition:background .2s}.section-toggle:hover{background:var(--bg-tertiary)}.section-toggle .section-title{margin:0;flex:1}.toggle-icon{color:var(--text-muted);font-size:.75rem}.pricing-source-badge{font-size:.75rem;color:var(--text-muted);background:var(--bg-tertiary);padding:.25rem .75rem;border-radius:0;border:1px solid var(--border-primary)}.calc-details-content{margin-top:1rem;padding:1rem;background:var(--bg-card);border:1px solid var(--border-primary);border-radius:0}.calc-detail-group{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-primary)}.calc-detail-group:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.calc-detail-group h4{margin:0 0 .75rem;color:var(--text-primary);font-size:.95rem}.calc-detail-group h5{margin:1rem 0 .5rem;color:var(--text-secondary);font-size:.85rem}.calc-formula{background:var(--bg-tertiary);padding:.5rem .75rem;border-radius:0;margin-bottom:.75rem;overflow-x:auto}.calc-formula code{font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:.85rem;color:var(--accent-green-text);white-space:nowrap}.calc-formula-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.calc-formula .formula-label{color:var(--text-secondary);font-size:.8rem;margin-right:.5rem}.calc-table{width:100%;border-collapse:collapse;font-size:.85rem}.calc-table th,.calc-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--border-primary)}.calc-table .calc-total-row td{border-top:2px solid var(--border-primary);border-bottom:none;background:var(--bg-tertiary)}.calc-table th{background:var(--bg-tertiary);color:var(--text-secondary);font-weight:500;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.calc-table td{color:var(--text-primary)}.calc-table td code{font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:.8rem;color:var(--accent-orange)}.calc-table .source-cell{font-size:.75rem;color:var(--text-muted)}.calc-table tbody tr:hover{background:var(--bg-tertiary)}.pricing-info{background:var(--bg-tertiary);padding:1rem;border-radius:0;margin-top:1rem}.pricing-info h4{margin-top:0}.pricing-info .calc-table{background:transparent}.pricing-info .calc-table td:first-child{color:var(--text-secondary);width:40%}@media(max-width:768px){.app{padding:.75rem}.app-header{flex-wrap:wrap;gap:.5rem;padding-bottom:.75rem}.app-header h1{font-size:1rem;margin:0;order:1}.header-controls{display:flex;align-items:center;gap:.375rem;order:2;margin-left:auto}.header-controls .icon-btn{width:28px;height:28px}.header-controls .icon-btn svg{width:14px;height:14px}.header-user{margin:0;padding:0;border:none;gap:.375rem}.header-avatar{width:24px;height:24px}.header-username{display:none}.header-user .header-btn.logout{padding:.25rem .5rem;font-size:.6rem}.header-actions{display:flex;gap:.375rem;width:100%;order:3}.header-actions .header-btn{flex:1;padding:.4rem .5rem;font-size:.65rem;white-space:nowrap;text-align:center}.form-row.two-col,.form-row.three-col{grid-template-columns:1fr}.form-section{padding:.75rem}.profile-form{padding:1rem}.components-section,.cluster-card{overflow-x:auto;-webkit-overflow-scrolling:touch}.components-section:after,.cluster-card:after{content:"";position:absolute;right:0;top:0;bottom:0;width:20px;background:linear-gradient(to right,transparent,rgba(0,0,0,.3));pointer-events:none;opacity:0;transition:opacity .2s}.components-section,.cluster-card{position:relative}.components-table{min-width:580px;font-size:.7rem}.components-table th,.components-table td{padding:.35rem .25rem;white-space:nowrap}.components-table th{font-size:.6rem}.components-table input{width:50px;padding:.25rem;font-size:.7rem}.components-table select{width:90px;padding:.25rem;font-size:.7rem}.cluster-card{margin-left:-.75rem;margin-right:-.75rem;padding:.75rem;border-radius:0;border-left:none;border-right:none}.cluster-header .form-row.two-col{grid-template-columns:1fr}.components-section h4:after,.clusters-header h4:after{content:" (scroll →)";font-size:.65rem;color:#666;font-weight:400}.runtime-inputs{flex-wrap:wrap}.runtime-inputs input{width:50px}.form-actions{flex-wrap:wrap;gap:.5rem}.calculate-btn,.save-btn{flex:1 1 auto;min-width:120px;padding:.6rem 1rem;font-size:.9rem}.cost-cards{grid-template-columns:repeat(2,1fr);gap:.5rem}.cost-card{padding:.75rem .5rem}.cost-label{font-size:.65rem}.cost-value{font-size:1rem}.cost-details{grid-template-columns:1fr;gap:1rem}.results-header{flex-direction:column;align-items:flex-start;gap:.75rem}.profile-title{font-size:1.1rem}.results-section{padding:.75rem}.section-toggle{flex-wrap:wrap;gap:.5rem}.pricing-source-badge{order:3;width:100%;text-align:center;margin-top:.25rem}.calc-table{font-size:.75rem}.calc-table th,.calc-table td{padding:.375rem .5rem}.calc-formula code{font-size:.75rem}.export-actions{width:100%}.export-btn{flex:1;padding:.5rem;font-size:.7rem}.clusters-header,.section-header-row{flex-direction:column;align-items:flex-start;gap:.5rem}.workspace-actions{width:100%;justify-content:flex-start}.workspaces-header,.components-header{flex-wrap:wrap;gap:.5rem}.add-component-modal{width:95%;max-width:100%}.add-component-modal .form-row.two-col,.add-component-modal .form-row.three-col{grid-template-columns:1fr}.cluster-card-header{flex-wrap:wrap;gap:.5rem}.profile-list-overlay{padding:0;align-items:flex-end}.profile-list-modal{width:100%;max-width:100%;max-height:85vh;border-radius:0;margin:0}.modal-header{padding:1rem;position:sticky;top:0;background-color:var(--bg-secondary);z-index:1}.modal-header h2{font-size:1.1rem}.modal-content{padding:1rem 1rem 2rem}.profile-card{padding:.5rem .65rem}.profile-card-name{font-size:.85rem}.profile-card-sub{font-size:.68rem}.profile-card-actions .load-btn{padding:.35rem .7rem;font-size:.75rem}.component-allocations{grid-template-columns:1fr}}@media(max-width:480px){.app{padding:.5rem}.cost-cards{grid-template-columns:1fr 1fr}.form-actions{flex-direction:column}.calculate-btn,.save-btn{width:100%}}.help-panel-overlay{position:fixed;inset:0;background-color:#0000004d;z-index:1000;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.help-panel-overlay.open{opacity:1;visibility:visible}.help-panel{position:fixed;top:0;right:0;width:700px;max-width:90vw;height:100vh;background-color:var(--bg-primary);border-left:1px solid var(--border-primary);display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s ease;z-index:1001}.help-panel-overlay.open .help-panel{transform:translate(0)}.help-panel-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--border-primary);background-color:var(--bg-secondary);flex-shrink:0}.help-panel-header h2{margin:0;font-size:1.25rem;color:var(--text-primary)}.help-panel-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:1px solid var(--border-primary);border-radius:0;color:var(--text-primary);font-size:1.5rem;cursor:pointer;transition:all .15s ease}.help-panel-close:hover{background-color:var(--accent-red);border-color:var(--accent-red);color:#fff}.help-panel-body{display:flex;flex:1;overflow:hidden}.help-toc{width:200px;flex-shrink:0;padding:1rem;border-right:1px solid var(--border-primary);background-color:var(--bg-secondary);overflow-y:auto}.help-toc h3{margin:0 0 1rem;font-size:.85rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.help-toc ul{list-style:none;margin:0;padding:0}.help-toc li{margin-bottom:.25rem}.help-toc li a{display:block;padding:.35rem .5rem;color:var(--text-secondary);text-decoration:none;font-size:.8rem;border-radius:0;transition:all .15s ease}.help-toc li a:hover{color:var(--text-primary);background-color:var(--bg-tertiary)}.help-toc li.active a{color:var(--accent-green-text);background-color:var(--accent-green-bg)}.help-toc li.toc-level-2{padding-left:.75rem}.help-toc li.toc-level-2 a{font-size:.75rem}.help-content{flex:1;padding:1.5rem;overflow-y:auto}.help-loading,.help-error{padding:2rem;text-align:center;color:var(--text-muted)}.help-error{color:var(--accent-red)}.help-error code{display:block;margin-top:.5rem;color:var(--text-secondary)}.help-markdown{color:var(--text-primary);line-height:1.6}.help-markdown h1{font-size:1.75rem;margin:0 0 1.5rem;padding-bottom:.75rem;border-bottom:2px solid var(--accent-green);color:var(--text-primary)}.help-markdown h2{font-size:1.5rem;font-weight:700;margin:2.25rem 0 1rem;color:var(--text-primary)}.help-markdown h3{font-size:1.2rem;font-weight:700;margin:1.75rem 0 .75rem;color:var(--text-primary)}.help-markdown h4{font-size:1rem;margin:1.25rem 0 .5rem;color:var(--text-secondary)}.help-markdown p{margin:0 0 1rem}.help-markdown img{display:block;max-width:100%;height:auto;margin:.75rem 0 1.25rem;border:1px solid var(--border-primary);border-radius:0;cursor:zoom-in;transition:border-color .15s}.help-markdown img:hover{border-color:var(--accent-green)}.help-lightbox{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:3rem;background:#000000d9;cursor:zoom-out}.help-lightbox img{max-width:92vw;max-height:92vh;object-fit:contain;border:1px solid var(--border-primary);box-shadow:0 8px 40px #0009;cursor:default}.help-lightbox-close{position:absolute;top:1.25rem;right:1.25rem;display:flex;align-items:center;justify-content:center;padding:.4rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.25);color:#fff;cursor:pointer;border-radius:0}.help-lightbox-close:hover{background:#fff3}.help-markdown ul,.help-markdown ol{margin:0 0 1rem;padding-left:1.5rem}.help-markdown li{margin-bottom:.35rem}.help-markdown code{font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:.85em;padding:.15rem .4rem;background-color:var(--bg-tertiary);border-radius:0;color:var(--accent-orange)}.help-markdown pre{margin:0 0 1rem;padding:1rem;background-color:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:0;overflow-x:auto}.help-markdown pre code{padding:0;background:none;color:var(--text-primary)}.help-markdown table{width:100%;margin:0 0 1rem;border-collapse:collapse;font-size:.9rem}.help-markdown th,.help-markdown td{padding:.5rem .75rem;text-align:left;border:1px solid var(--border-primary)}.help-markdown th{background-color:var(--bg-tertiary);font-weight:600;color:var(--text-secondary)}.help-markdown td{background-color:var(--bg-card)}.help-markdown strong{font-weight:600;color:var(--text-primary)}.help-markdown hr{margin:2rem 0;border:none;border-top:1px solid var(--border-primary)}.help-markdown a{color:var(--accent-green-text);text-decoration:none}.help-markdown a:hover{text-decoration:underline}.help-markdown blockquote{margin:0 0 1rem;padding:.75rem 1rem;border-left:3px solid var(--accent-green);background-color:var(--bg-tertiary);color:var(--text-secondary)}@media(max-width:768px){.help-panel{width:100%;max-width:100%}.help-toc{display:none}.help-content{padding:1rem}.help-markdown h1{font-size:1.35rem}.help-markdown h2{font-size:1.15rem}.help-markdown h3{font-size:1rem}.help-markdown table{font-size:.8rem}.help-markdown th,.help-markdown td{padding:.35rem .5rem}}.im-overlay{position:fixed;inset:0;background-color:#0000004d;z-index:1000}.im-panel{position:fixed;top:0;right:0;width:500px;max-width:94vw;height:100vh;background-color:var(--bg-primary);border-left:1px solid var(--border-primary);display:flex;flex-direction:column;z-index:1001;font-size:.85rem;animation:im-slide .22s ease}@keyframes im-slide{0%{transform:translate(20px);opacity:.5}to{transform:none;opacity:1}}.im-header{display:flex;align-items:center;gap:.6rem;padding:.85rem 1rem;border-bottom:1px solid var(--border-primary);background-color:var(--bg-secondary);flex-shrink:0}.im-header h2{margin:0;font-size:1rem;color:var(--text-primary);flex:1}.im-refresh{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .6rem;font-size:.75rem;font-weight:600;background:transparent;color:var(--text-primary);border:1px solid var(--border-primary);border-radius:0;cursor:pointer}.im-refresh:hover{border-color:var(--accent-green);color:var(--accent-green)}.im-refresh:disabled{opacity:.6;cursor:default}.im-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:1px solid var(--border-primary);border-radius:0;color:var(--text-primary);cursor:pointer;flex:none}.im-close:hover{background:var(--bg-tertiary)}.im-panel svg{flex:none}.im-tabs{display:flex;gap:.5rem;padding:.7rem 1rem .5rem;flex-shrink:0}.im-tab{flex:1;padding:.45rem 0;font-size:.82rem;font-weight:600;background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-primary);border-radius:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.4rem}.im-tab:hover{color:var(--text-primary);border-color:var(--text-secondary)}.im-tab.active{color:var(--text-primary);border-color:var(--accent-green)}.im-tabcount{font-size:.68rem;padding:1px 6px;border-radius:0;background:var(--bg-tertiary);color:var(--text-secondary)}.im-vtabs{display:flex;gap:1.5rem;padding:.7rem 1rem 0;flex-shrink:0;border-bottom:1px solid var(--border-primary)}.im-vtab{background:none;border:none;border-radius:0;cursor:pointer;padding:.3rem 0 .5rem;margin-bottom:-1px;font-size:.9rem;font-weight:600;color:var(--text-secondary);border-bottom:2px solid transparent}.im-vtab:hover{color:var(--text-primary)}.im-vtab.active{color:var(--text-primary);border-bottom-color:var(--accent-green)}.im-vcount{font-size:.68rem;font-weight:600;color:var(--text-secondary)}.im-add-results{border-bottom:1px solid rgba(128,128,128,.12);padding-bottom:.4rem;margin-bottom:.4rem}.im-region-add{display:flex;align-items:center;gap:.6rem;width:100%;padding:.45rem .4rem;background:transparent;border:none;cursor:pointer;color:var(--text-primary);text-align:left}.im-region-add:hover{color:var(--accent-green)}.im-region-add svg{color:var(--text-secondary);flex:none}.im-region-add .im-name{font-size:.8rem;font-weight:600}.im-region-add .im-spec{color:var(--text-secondary);font-size:.72rem;margin-left:0}.im-region-add .im-addtag{margin-left:auto;font-size:.7rem;color:var(--accent-green)}.im-region-add:disabled{opacity:.6;cursor:default}.im-search{display:flex;align-items:center;gap:.5rem;margin:.75rem 1rem .5rem;padding:0 .65rem;background:var(--bg-input);border:1px solid var(--border-primary);border-radius:0;color:var(--text-secondary)}.im-search:focus-within{border-color:var(--accent-green)}.im-search input{flex:1;border:none;outline:none;background:transparent;padding:.55rem 0;font-size:.85rem;color:var(--text-primary)}.im-miss{margin:0 1rem .6rem;padding:.75rem;border:1px dashed var(--border-primary)}.im-miss-t{font-size:.82rem;color:var(--text-primary)}.im-miss-sub{font-size:.74rem;color:var(--text-secondary);margin-top:.2rem}.im-lookbtn{margin-top:.6rem;display:inline-flex;align-items:center;gap:.35rem;background:var(--accent-green);color:#fff;border:none;border-radius:0;padding:.45rem .75rem;font-size:.8rem;font-weight:600;cursor:pointer}.im-lookbtn:hover{filter:brightness(1.08)}.im-result{margin-top:.6rem;padding:.55rem .65rem;border:1px solid var(--border-primary);display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:var(--text-primary)}.im-result.loading{color:var(--text-secondary)}.im-result.err{border-color:var(--negative-border);background:var(--negative-bg);color:var(--negative-text)}.im-found-fam{margin-top:.6rem;border:1px solid var(--positive-border);background:var(--positive-bg)}.im-found-head{display:flex;align-items:center;gap:.5rem;padding:.5rem .6rem;font-size:.8rem;color:var(--text-primary);border-bottom:1px solid var(--border-primary)}.im-found-head .im-addbtn{margin-left:auto}.im-addbtn{display:inline-flex;align-items:center;gap:.3rem;background:var(--accent-green);color:#fff;border:none;border-radius:0;padding:.35rem .65rem;font-size:.76rem;font-weight:600;cursor:pointer}.im-addbtn:disabled{opacity:.6;cursor:default}.im-found-sizes{max-height:190px;overflow-y:auto}.im-found-row{display:flex;align-items:center;gap:.6rem;padding:.35rem .6rem;border-top:1px solid rgba(128,128,128,.12)}.im-found-row .im-spec{margin-left:auto;white-space:nowrap}.im-found-row.req{background:#8800ff1f}.im-list{flex:1;overflow-y:auto;padding:0 1rem 1.25rem}.im-fam{border-bottom:1px solid rgba(128,128,128,.12)}.im-fam-head{display:flex;align-items:center;gap:.5rem;width:100%;padding:.55rem .15rem;background:transparent;border:none;cursor:pointer;color:var(--text-primary);text-align:left}.im-fam-head:hover{color:var(--accent-green)}.im-fam-head svg{color:var(--text-secondary);flex:none}.im-fam-name{font-size:.82rem;font-weight:600;flex:none}.im-fam-count{font-size:.66rem;padding:0 5px;background:var(--bg-tertiary);color:var(--text-secondary);flex:none}.im-fam-sizes{font-size:.7rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.im-fam-body{padding:0 0 .4rem 1.5rem}.im-size{display:flex;align-items:center;gap:.6rem;padding:.3rem .4rem;border-top:1px solid rgba(128,128,128,.08)}.im-size .im-name{font-size:.76rem;font-weight:600;color:var(--text-primary)}.im-size .im-spec{font-size:.68rem;color:var(--text-secondary);margin-left:auto;white-space:nowrap}.im-rm{border:none;background:transparent;color:var(--text-secondary);cursor:pointer;padding:2px 3px;display:flex}.im-rm:hover{color:var(--negative-text)}.im-rm:disabled{opacity:.4;cursor:default}.im-empty{color:var(--text-secondary);font-size:.82rem;padding:1rem 0;font-style:italic}.im-toast{position:absolute;bottom:1rem;left:50%;transform:translate(-50%);background:var(--text-primary);color:var(--bg-primary);font-size:.76rem;padding:.55rem .85rem;border-radius:0;box-shadow:0 6px 20px #00000040;white-space:nowrap}.im-spin{animation:im-rotate .7s linear infinite}@keyframes im-rotate{to{transform:rotate(360deg)}}.draft-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding:.65rem .9rem;background:var(--bg-secondary);border:1px solid var(--border-primary);border-left:4px solid var(--accent-green);border-radius:0;color:var(--text-primary)}.draft-banner-text{font-size:.9rem}.draft-banner-actions{display:flex;gap:.5rem;flex-shrink:0}.draft-restore-btn,.draft-discard-btn{padding:.35rem .8rem;font-size:.85rem;border-radius:0;cursor:pointer;border:1px solid var(--border-primary)}.draft-restore-btn{background:var(--accent-green);border-color:var(--accent-green);color:var(--bg-primary)}.draft-restore-btn:hover{background:var(--accent-green-hover)}.draft-discard-btn{background:transparent;color:var(--text-secondary)}.draft-discard-btn:hover{color:var(--text-primary);border-color:var(--text-primary)}.reauth-overlay{position:fixed;inset:0;z-index:10001;display:flex;align-items:center;justify-content:center;background:#0009}.reauth-modal{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:0;padding:1.75rem 2rem;max-width:420px;width:calc(100% - 2rem);text-align:center;box-shadow:0 8px 30px #00000059}.reauth-modal h2{margin:0 0 .5rem;color:var(--text-primary)}.reauth-modal p{margin:0 0 1.25rem;color:var(--text-secondary);font-size:.92rem}
