:root{--color-brand: #667eea;--color-brand-dark: #764ba2;--color-brand-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--color-brand-bg: #eef2ff;--color-brand-bg-light: #f5f7ff;--color-primary: #9c7ee7;--color-primary-light: #b7a0f2;--color-primary-lighter: #d1bfff;--color-primary-lightest: #eee7ff;--color-primary-bg: #e9e4f6;--color-primary-bg-light: #f6f2ff;--color-primary-border: #cfc1f4;--color-accent: #1976d2;--color-accent-light: #e3f2fd;--color-accent-dark: #1565c0;--color-success: #2e7d32;--color-success-light: #4caf50;--color-success-bg: #e8f5e9;--color-success-bg-light: #f1f8e9;--color-success-badge-text: #155724;--color-success-badge-bg: #d4edda;--color-error: #f44336;--color-error-dark: #c33;--color-error-bg: #ffebee;--color-error-bg-light: #fee;--color-error-border: #fcc;--color-error-badge-text: #721c24;--color-error-badge-bg: #f8d7da;--color-warning: #ff9800;--color-warning-dark: #e65100;--color-warning-text: #f57c00;--color-warning-bg: #fff8e1;--color-warning-bg-light: #fff3e0;--color-info-text: #004085;--color-info-bg: #cce5ff;--color-delete: #dc2626;--color-delete-dark: #b91c1c;--color-delete-hover-bg: #ffe7e7;--color-text-primary: #333;--color-text-secondary: #495057;--color-text-muted: #666;--color-text-light: #6c757d;--color-text-disabled: #999;--color-text-placeholder: #ccc;--color-bg-page: #f5f7fa;--color-bg-white: #ffffff;--color-bg-light: #fafafa;--color-bg-subtle: #f8f9fa;--color-bg-muted: #f5f5f5;--color-bg-hover: #f0f7ff;--color-border: #e0e0e0;--color-border-light: #e9ecef;--color-border-medium: #ddd;--color-border-dark: #dee2e6;--color-border-hover: #bbb;--shadow-overlay: rgba(0, 0, 0, .5);--shadow-medium: rgba(0, 0, 0, .2);--shadow-light: rgba(0, 0, 0, .1);--shadow-subtle: rgba(0, 0, 0, .08);--shadow-hover: rgba(0, 0, 0, .12);--shadow-focus-ring: rgba(25, 118, 210, .2);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-full: 9999px;--font-size-xs: .8rem;--font-size-sm: .85rem;--font-size-base: .9rem;--font-size-md: 1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--transition-fast: .2s;--transition-normal: .3s}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{scroll-behavior:smooth}html,body{height:100vh;overflow:hidden}body{text-rendering:optimizeSpeed;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Google Sans,sans-serif;font-optical-sizing:auto;font-variation-settings:"GRAD" 0}ul,ol{list-style:none}a:not([class]){text-decoration-skip-ink:auto}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}button{background:none;border:none;cursor:pointer}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}fieldset{border:none}legend{padding:0}.modal-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease-in-out}.modal-content{background:#fff;border-radius:8px;box-shadow:0 4px 24px #0003;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;animation:slideIn .3s ease-out}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e9ecef}.modal-header h2{margin:0;font-size:1.5rem;color:#333}.modal-body{padding:1.5rem}.modal-footer{display:flex;justify-content:flex-end;gap:1rem;padding:1.5rem;border-top:1px solid #e9ecef}.close-button{background:none;border:none;font-size:2rem;color:#6c757d;cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.close-button:hover{background:#f8f9fa;color:#333}.form-group{margin-bottom:1.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group label{display:block;margin-bottom:.5rem;color:#333;font-weight:500;font-size:.9rem}.form-group input[type=text],.form-group input[type=number],.form-group textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;transition:border-color .3s;box-sizing:border-box}.form-group input[type=text]:focus,.form-group input[type=number]:focus,.form-group textarea:focus{outline:none;border-color:#667eea}.form-group input.invalid,.form-group textarea.invalid{border-color:#f44336}.form-group textarea{resize:vertical;font-family:inherit}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.checkbox-label input[type=checkbox]{width:auto;cursor:pointer;transform:scale(1.2)}.checkbox-label span{padding-left:10px}.field-hint{margin:.5rem 0 0;font-size:.85rem;color:#6c757d}.validation-error{color:#f44336;font-size:.8rem;margin-top:.25rem}.error-message{background:#fee;border:1px solid #fcc;color:#c33;padding:.75rem;border-radius:4px;margin-bottom:1rem;font-size:.9rem}.button{padding:.75rem 1.5rem;border:none;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .3s}.button-secondary{background:#f8f9fa;color:#495057;border:1px solid #dee2e6}.button-secondary:hover{background:#e9ecef}.button-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.button-primary:hover{opacity:.9}.btn{padding:10px 20px;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-cancel{background-color:#f3f4f6;color:#374151}.btn-cancel:hover{background-color:#e5e7eb}.btn-delete{background-color:#dc2626;color:#fff}.btn-delete:hover{background-color:#b91c1c}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@media(max-width:768px){.modal-content{margin:0;max-height:100vh;border-radius:0}.form-row{grid-template-columns:1fr}}@media(max-width:640px){.modal-header h2{font-size:1.25rem}}.page-container{height:100vh;display:flex;flex-direction:column;background:#f5f7fa;overflow-y:auto;overflow-x:hidden}.main-content{flex:1;max-width:1200px;width:100%;margin:0 auto;padding:1.5rem 2rem 3rem;display:flex;flex-direction:column;min-height:0}.main-content.full-width{max-width:none;overflow:hidden}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-shrink:0;padding-bottom:.5rem;background:#f5f7fa}.sub-header,.warnings-panel{flex-shrink:0}.main-content>.error-message{flex-shrink:0}.header-left{display:flex;flex-direction:column;gap:.5rem}.page-header h2{margin:0;font-size:1.7rem;color:#333}.back-button{background:transparent;color:#667eea;border:none;padding:.5rem 0;font-size:.9rem;cursor:pointer;transition:color .3s;text-align:left}.back-button:hover{color:#764ba2}.create-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:opacity .3s}.create-button:hover{opacity:.9}.loading{text-align:center;padding:3rem;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.spinner{border:3px solid #f3f3f3;border-top:3px solid #667eea;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin:0 auto 1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:4rem 2rem;background:#fff;border-radius:8px;box-shadow:0 2px 8px #00000014;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.empty-icon{font-size:4rem;margin-bottom:1rem}.empty-state h3{font-size:1.5rem;color:#333;margin-bottom:.5rem}.empty-state p{color:#666;font-size:1rem}.data-table-container{flex:1;background:#fff;border-radius:8px;box-shadow:0 2px 8px #00000014;overflow:auto;min-height:0}.data-table{width:100%;border-collapse:separate;border-spacing:0}.data-table thead{position:sticky;top:0;z-index:5;background:#f8f9fa}.data-table thead th{background:inherit}.data-table th{text-align:left;padding:1rem;font-weight:600;color:#333;border-bottom:2px solid #e9ecef;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.data-table tbody tr{border-bottom:1px solid #e9ecef;transition:background-color .2s}.data-table tbody tr:hover{background-color:#f8f9fa}.data-table td{padding:1rem;color:#495057}.table-footer{background:#e9e4f6;padding:1rem;border:1px solid #cfc1f4;text-align:right;color:#6c757d;font-size:.9rem;margin-top:-1px;border-radius:0 0 8px 8px;flex-shrink:0}.actions{display:flex;gap:.5rem;justify-content:flex-start}.action-button{background:none;border:none;font-size:1.2rem;cursor:pointer;padding:.25rem .5rem;border-radius:4px;transition:all .2s}.clone-button:hover{background:#e7fff3}.edit-button:hover{background:#e7f3ff}.delete-button:hover{background:#ffe7e7}.status-badge,.type-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:500}.status-badge.active,.type-badge.primary{background:#d4edda;color:#155724}.status-badge.inactive{background:#f8d7da;color:#721c24}.type-badge.secondary{background:#cce5ff;color:#004085}.card{min-height:250px;background:#fff;border-radius:8px;padding:2rem;box-shadow:0 2px 8px #00000014;transition:all .3s}.card:hover{transform:translateY(-4px);box-shadow:0 4px 16px #0000001f}.card-link{text-decoration:none;color:inherit}.card-icon{font-size:3rem;margin-bottom:1.5rem;text-align:center}.card h3{font-size:1.25rem;color:#333;margin-bottom:.5rem}.card p{font-size:.95rem;color:#666;line-height:1.5}.content-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}@media(max-width:768px){.main-content{padding:1rem}.page-header{flex-direction:column;align-items:flex-start;gap:.5rem}.data-table{min-width:600px}.content-grid{grid-template-columns:1fr}}.header-right{display:flex;align-items:center;gap:16px}.scenario-selector{display:flex;align-items:center;gap:8px}.scenario-selector label{font-weight:500;color:#555;font-size:.9rem}.scenario-dropdown{padding:8px 12px;border:1px solid #ddd;border-radius:6px;background:#fff;font-size:.9rem;color:#333;min-width:180px;cursor:pointer;transition:border-color .2s,box-shadow .2s}.scenario-dropdown:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 2px #1976d233}.scenario-dropdown:hover{border-color:#bbb}.matrix-container{flex:1;overflow:auto;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;min-height:0;position:relative}.matrix-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.85rem}.matrix-table th,.matrix-table td{padding:8px 12px;text-align:center;border:1px solid #e0e0e0;overflow:hidden;transition:max-width .3s ease-out,min-width .3s ease-out,width .3s ease-out,padding .3s ease-out,border-width .3s ease-out}.matrix-table thead{position:sticky;top:0;z-index:5;background:#f8f9fa}.matrix-table thead th{background:inherit}.header-row-main th{border-bottom:none;background:#f8f9fa}.header-row-sub th{border-top:none;font-size:.8rem;font-weight:500;background:#f5f5f5}.header-row-types th{background:#f5f5f5}.scenario-header{min-width:150px;font-weight:600;color:#333;background:#e9e4f6;border-bottom:2px solid #1976d2;transition:min-width .3s ease-out,max-width .3s ease-out}.scenario-header.collapsed{min-width:90px}.scenario-header.secondary{background:#fff3e0;border-bottom:2px solid #e65100}.scenario-header-content{position:relative;display:flex;align-items:center;justify-content:left;gap:8px;margin-left:10px}.scenario-code{white-space:nowrap}.scenario-description{font-size:.85rem;color:#666;font-weight:400;margin-left:8px}.collapse-button{position:absolute;left:0;width:20px;height:20px;border:none;border-radius:3px;background:transparent;color:#2a2a2a;font-size:.7rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s,transform .2s ease-out;flex-shrink:0}.collapse-button:hover{background:#fff}.scenario-header.secondary .collapse-button{color:#e65100}.subheader{background:#f5f5f5;color:#666}.multiplier-subheader{background:#e8f5e9;color:#2e7d32}.year-subheader{background:#f6f2ff;color:#9e84e5;min-width:90px}.matrix-table .stream-cell,.matrix-table .code-cell,.matrix-table .item-cell,.matrix-table .name-cell,.matrix-table .category-cell{position:sticky;left:0;z-index:2;background:#fff;box-shadow:2px 0 4px #00000014}.matrix-table thead th:first-child,.matrix-table .stream-header[rowspan],.matrix-table .code-header[rowspan],.matrix-table .item-header[rowspan],.matrix-table .name-header[rowspan]{position:sticky;left:0;z-index:6;background:#f8f9fa}.data-cell{padding:4px!important;background:#fff;position:relative}.data-cell.saving{background:#fff8e1}.multiplier-cell{background:#f1f8e9}.input-wrapper{display:inline-flex;align-items:center;justify-content:center;gap:2px}.multiplier-input{width:50px}.percent-sign{font-weight:600;color:#666;font-size:.85rem;min-width:12px}.percent-sign.hidden{visibility:hidden}.data-input{width:100%;min-width:90px;padding:6px;border:1px solid #e0e0e0;border-radius:4px;text-align:right;font-size:.85rem;font-weight:500;color:#333;box-sizing:border-box;transition:border-color .2s,box-shadow .2s}.data-input:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 2px #1976d233}.data-input:disabled{background:#f5f5f5;color:#999;cursor:not-allowed}.data-input::placeholder{color:#ccc;font-weight:400}.data-input::-webkit-outer-spin-button,.data-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.data-input[type=number]{-moz-appearance:textfield;appearance:textfield}.data-input.multiplier-input{width:60px;min-width:60px;text-align:center}.cell-spinner{position:absolute;top:50%;right:4px;transform:translateY(-50%);width:12px;height:12px;border:2px solid #e0e0e0;border-top-color:#1976d2;border-radius:50%;animation:cell-spin .8s linear infinite}@keyframes cell-spin{to{transform:translateY(-50%) rotate(360deg)}}.matrix-table tbody tr:hover td{background:#f0f7ff}.matrix-table tbody tr:hover .multiplier-cell{background:#e8f5e9}.matrix-table tbody tr:hover .data-cell.saving{background:#fff8e1}.add-year-header{background:#f5f5f5;min-width:50px}.add-year-button{width:24px;height:24px;border:1px solid #b7a0f2;border-radius:19px;background:#d1bfff;color:#fff;font-size:1.2rem;font-weight:600;cursor:pointer;transition:background-color .2s,border-color .2s;display:flex;align-items:center;justify-content:center}.add-year-button:hover{background:#b7a0f2;border-color:#9c7ee7}.add-year-cell{background:#fafafa;min-width:50px}.additional-year{background:#fff8e1!important}.year-subheader.additional-year{background:#fff3e0!important;color:#e65100;border-bottom:2px dashed #ff9800}.column-content{display:inline-block;white-space:nowrap;transition:opacity .25s ease-out,transform .25s ease-out}.collapsed-column{max-width:0!important;min-width:0!important;width:0!important;padding-left:0!important;padding-right:0!important;border-left-width:0!important;border-right-width:0!important;overflow:hidden}.collapsed-column .column-content{opacity:0;transform:scaleX(0)}
