:root{--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "SF Mono", "Fira Code", "Cascadia Code", monospace;--bg-page: #f8fafc;--bg-card: #ffffff;--bg-card-hover: #f8fafc;--bg-hover: #f1f5f9;--bg-active: #eff6ff;--bg-input: #f8fafc;--bg-overlay: rgba(0, 0, 0, .35);--text-heading: #0f172a;--text-primary: #1e293b;--text-secondary: #475569;--text-muted: #64748b;--text-faint: #94a3b8;--color-primary: #3b82f6;--color-primary-hover: #2563eb;--color-primary-light: #eff6ff;--color-primary-ring: rgba(59, 130, 246, .15);--color-gain: #16a34a;--color-gain-bg: #dcfce7;--color-gain-text: #166534;--color-loss: #dc2626;--color-loss-bg: #fef2f2;--color-loss-text: #991b1b;--color-danger: #dc2626;--color-danger-hover: #b91c1c;--color-warning: #f59e0b;--color-warning-bg: #fef3c7;--color-warning-text: #92400e;--color-success-bg: #f0fdf4;--color-success-border: #bbf7d0;--color-success-text: #166534;--border-light: #e2e8f0;--border-input: #cbd5e1;--border-row: #f1f5f9;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 999px;--shadow-card: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 4px rgba(0, 0, 0, .04);--shadow-elevated: 0 4px 12px rgba(0, 0, 0, .1);--shadow-panel: -4px 0 24px rgba(0, 0, 0, .1);--card-padding: 1.5rem;--card-gap: 1.5rem}[data-theme=dark]{--bg-page: #0f172a;--bg-card: #1e293b;--bg-card-hover: #1e293b;--bg-hover: #334155;--bg-active: #1e3a5f;--bg-input: #334155;--bg-overlay: rgba(0, 0, 0, .6);--text-heading: #f1f5f9;--text-primary: #e2e8f0;--text-secondary: #94a3b8;--text-muted: #64748b;--text-faint: #475569;--color-primary-light: #1e3a5f;--color-primary-ring: rgba(59, 130, 246, .25);--border-light: #334155;--border-input: #475569;--border-row: #1e293b;--shadow-card: 0 1px 3px rgba(0, 0, 0, .3);--shadow-elevated: 0 4px 16px rgba(0, 0, 0, .4)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg-page);color:var(--text-primary);min-height:100vh}.app{min-height:100vh}.app-layout{display:flex;min-height:100vh}.sidebar{width:220px;min-height:100vh;background:var(--bg-card);border-right:1px solid var(--border-light);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;transition:width .2s ease;z-index:50}.sidebar-collapsed{width:60px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:0 1rem;border-bottom:1px solid var(--border-light);height:49px}.sidebar-collapsed .sidebar-header{justify-content:center;padding:0 .5rem}.sidebar-logo{font-size:1.125rem;font-weight:700;color:var(--text-heading);white-space:nowrap;overflow:hidden}.sidebar-toggle{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.25rem;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.sidebar-toggle:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-nav{flex:1;padding:.5rem;display:flex;flex-direction:column;gap:2px}.sidebar-link{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;color:var(--text-muted);text-decoration:none;transition:background .15s,color .15s;white-space:nowrap;overflow:hidden;border:none;background:none;cursor:pointer;width:100%;text-align:left}.sidebar-link:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-link-active{background:var(--bg-active);color:var(--color-primary)}.sidebar-collapsed .sidebar-link{justify-content:center;padding:.5rem}.sidebar-collapsed .sidebar-link span{display:none}.sidebar-footer{padding:.5rem;border-top:1px solid var(--border-light);display:flex;flex-direction:column;gap:2px}.main-area{flex:1;min-width:0;display:flex;flex-direction:column}.top-bar{display:flex;align-items:center;justify-content:space-between;padding:0 2rem;border-bottom:1px solid var(--border-light);background:var(--bg-card);position:sticky;top:0;z-index:40;gap:1rem;flex-wrap:wrap;height:49px}.top-bar-left{display:flex;align-items:center;gap:1.5rem;min-width:0}.top-bar-title{font-size:1.125rem;font-weight:600;color:var(--text-heading);white-space:nowrap}.top-bar-tabs{display:flex;gap:0;align-items:center}.top-bar-tabs .tab-btn{padding:.25rem .75rem;font-size:.8125rem;font-weight:500;color:var(--text-muted);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;transition:color .15s}.top-bar-tabs .tab-btn:hover{color:var(--text-primary)}.top-bar-tabs .tab-btn-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.top-bar-actions{display:flex;gap:.75rem;align-items:center}.main-content{flex:1;max-width:1200px;width:100%;margin:0 auto;padding:1.5rem 2rem}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh}.login-form{background:var(--bg-card);padding:2rem;border-radius:.75rem;border:1px solid var(--border-light);box-shadow:0 1px 3px #00000014;width:100%;max-width:400px;display:flex;flex-direction:column;gap:1rem}.login-form h1{font-size:1.5rem;color:var(--text-heading)}.login-form p{color:var(--text-muted)}.login-form input{padding:.75rem;border:1px solid var(--border-input);border-radius:.5rem;background:var(--bg-page);color:var(--text-primary);font-size:1rem}.login-form input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-ring)}.login-form button{padding:.75rem;border:none;border-radius:.5rem;background:var(--color-primary);color:#fff;font-size:1rem;cursor:pointer}.login-form button:hover{background:var(--color-primary-hover)}.error{color:var(--color-danger)}.muted{color:var(--text-faint)}.dashboard{max-width:1200px;margin:0 auto;padding:2rem}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:.75rem}.dashboard-header h1{font-size:1.75rem;color:var(--text-heading)}.nav-links{display:flex;gap:.25rem;align-items:center}.nav-link{padding:.375rem .75rem;border-radius:.375rem;font-size:.875rem;font-weight:500;color:var(--text-muted);text-decoration:none;transition:background .15s,color .15s}.nav-link:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-link-active{background:var(--bg-active);color:var(--color-primary)}.header-actions{display:flex;gap:.75rem;align-items:center}.logout-btn{padding:.5rem 1rem;border:1px solid var(--border-input);border-radius:.5rem;background:transparent;color:var(--text-muted);cursor:pointer}.logout-btn:hover{background:var(--bg-hover)}.refresh-btn{padding:.5rem 1rem;border:none;border-radius:.5rem;background:var(--color-primary);color:#fff;cursor:pointer;font-weight:500}.refresh-btn:hover:not(:disabled){background:var(--color-primary-hover)}.refresh-btn:disabled{opacity:.6;cursor:not-allowed}.refresh-result{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.5rem;padding:.75rem 1rem;margin-bottom:1.5rem;font-size:.875rem;color:#166534}.refresh-errors{color:var(--color-danger);margin-top:.25rem}.card,.regime-card{background:var(--bg-card);padding:var(--card-padding);border-radius:var(--radius-lg);border:1px solid var(--border-light);box-shadow:var(--shadow-card);margin-bottom:var(--card-gap)}.card h2,.regime-card h2{font-size:1.25rem;font-weight:600;color:var(--text-heading);margin-bottom:1rem}.summary-card{background:var(--bg-page);padding:1rem 1.25rem;border-radius:var(--radius-lg);border:none;margin-bottom:0}.summary-card .summary-label{font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);margin-bottom:.25rem}.summary-card .summary-value{font-size:1.75rem;font-weight:700;color:var(--text-heading);font-variant-numeric:tabular-nums;line-height:1.2}.summary-card .summary-sub{font-size:.8125rem;color:var(--text-muted);margin-top:.125rem;font-variant-numeric:tabular-nums}.summary-row{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:var(--card-gap)}.summary-row .summary-card{flex:1;min-width:160px}.content-card{background:var(--bg-card);padding:var(--card-padding);border-radius:var(--radius-lg);border:1px solid var(--border-light);box-shadow:var(--shadow-card);margin-bottom:var(--card-gap)}.content-card h2{font-size:1.25rem;font-weight:600;color:var(--text-heading);margin-bottom:1rem}.widget-card{background:var(--bg-card);padding:1rem 1.25rem;border-radius:var(--radius-lg);border:1px solid var(--border-light);box-shadow:var(--shadow-card);margin-bottom:1rem}.widget-card h3{font-size:.875rem;font-weight:600;color:var(--text-heading);margin-bottom:.5rem}.widget-card-accent{border-left:3px solid var(--color-primary)}.no-data{color:var(--text-muted)}.regime-badge{display:inline-flex;flex-direction:column;align-items:center;padding:1rem 2rem;border-radius:.5rem;font-size:1.25rem;font-weight:600;text-transform:uppercase;color:#fff}.regime-score{font-size:.875rem;font-weight:400;margin-top:.25rem;opacity:.9}.regime-meta{margin-top:.75rem;font-size:.875rem;color:var(--text-muted);display:flex;gap:1.5rem}.transition-flag{color:#f59e0b;font-weight:500}.regime-header-row{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.history-toggle{display:flex;align-items:center;gap:.5rem;background:none;border:none;color:var(--text-secondary);font-size:.85rem;font-weight:600;cursor:pointer;padding:.375rem 0;margin-top:1rem}.history-toggle:hover{color:var(--text-primary)}.history-toggle-icon{font-size:.75rem;width:1rem}.history-content{margin-top:.75rem}.indicator-separator td{padding:0!important;border-bottom:2px solid var(--border-light)!important;height:2px}.indicator-table{width:100%;border-collapse:collapse;font-size:.875rem}.indicator-table th{text-align:left;padding:.5rem .75rem;border-bottom:2px solid var(--border-light);color:var(--text-muted);font-weight:500;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.indicator-table td{padding:.625rem .75rem;border-bottom:1px solid var(--border-row)}.indicator-table tr:last-child td{border-bottom:none}.indicator-name{font-weight:500;color:var(--text-heading)}.indicator-value{font-variant-numeric:tabular-nums;color:var(--text-secondary)}.score-badge{font-weight:700;font-variant-numeric:tabular-nums}.signal-cell{font-weight:500}.reason-cell{color:var(--text-faint);font-size:.8125rem}.modifiers-table-wrap{overflow-x:auto}.modifiers-table{width:100%;border-collapse:collapse;font-size:.8125rem;text-align:center}.modifiers-table th{padding:.5rem .75rem;border-bottom:2px solid var(--border-light);color:var(--text-muted);font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.modifiers-table td{padding:.625rem .75rem;vertical-align:top}.modifier-badge{display:inline-block;padding:.15rem .625rem;border-radius:999px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.modifier-badge-on{background:#dcfce7;color:#166534}.modifier-badge-off{background:var(--bg-hover);color:var(--text-faint)}.modifier-detail{display:block;font-size:.7rem;color:var(--text-secondary);margin-top:.25rem;white-space:nowrap}.allocation-table{width:100%;border-collapse:collapse}.allocation-table th{text-align:left;padding:.5rem .75rem;border-bottom:2px solid var(--border-light);color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.allocation-table td{padding:.4rem .75rem;border-bottom:1px solid var(--border-row);font-variant-numeric:tabular-nums}.alloc-class-cell{font-weight:500;vertical-align:top;padding-top:.6rem!important;border-right:2px solid #e2e8f0}.alloc-class-cell strong{display:block;color:var(--text-heading)}.alloc-subtotal{display:block;font-size:.75rem;color:var(--color-primary);font-weight:600;margin-top:.15rem}.history-table{width:100%;border-collapse:collapse;font-size:.875rem}.history-table th{text-align:left;padding:.5rem .75rem;border-bottom:2px solid var(--border-light);color:var(--text-muted);font-weight:500;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.history-table td{padding:.5rem .75rem;border-bottom:1px solid var(--border-row)}.regime-pill{display:inline-block;padding:.125rem .5rem;border-radius:999px;color:#fff;font-size:.75rem;font-weight:600;text-transform:uppercase}.regime-timeline{margin-bottom:1.5rem}.regime-timeline-tooltip{background:var(--bg-card);border:1px solid var(--border-light);border-radius:.5rem;padding:.5rem .75rem;box-shadow:0 2px 6px #0000001a;font-size:.8125rem;line-height:1.5}.regime-timeline-tooltip .tooltip-date{color:var(--text-muted);font-size:.75rem}.regime-timeline-tooltip .tooltip-regime{font-weight:700;text-transform:uppercase;font-size:.8125rem}.regime-timeline-tooltip .tooltip-score{color:var(--text-primary);font-variant-numeric:tabular-nums}.etf-filters{display:flex;gap:.75rem;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap}.etf-search{flex:1;min-width:200px;padding:.5rem .75rem;border:1px solid var(--border-input);border-radius:.5rem;background:var(--bg-card);color:var(--text-primary);font-size:.875rem}.etf-search:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-ring)}.etf-class-filter{padding:.5rem .75rem;border:1px solid var(--border-input);border-radius:.5rem;background:var(--bg-card);color:var(--text-primary);font-size:.875rem;cursor:pointer}.etf-class-filter:focus{outline:none;border-color:var(--color-primary)}.etf-count{color:var(--text-muted);font-size:.8125rem;white-space:nowrap}.etf-add-card{border-left:3px solid #3b82f6}.etf-form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem;margin-bottom:1rem}.etf-form-grid label{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.etf-form-grid input{padding:.5rem .625rem;border:1px solid var(--border-input);border-radius:.375rem;background:var(--bg-page);color:var(--text-primary);font-size:.875rem}.etf-form-grid input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-ring)}.etf-form-actions{display:flex;gap:.5rem;align-items:center}.etf-table-wrap{overflow-x:auto}.etf-table th.etf-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.etf-table th.etf-sortable:hover{color:var(--color-primary)}.etf-row{cursor:pointer;transition:background .1s}.etf-row:hover{background:var(--bg-page)}.etf-row-inactive{opacity:.55}.etf-row-inactive:hover{opacity:.8}.etf-isin{font-family:monospace;font-size:.8125rem;color:var(--text-faint)}.etf-role-badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;background:var(--bg-hover);color:var(--text-secondary);font-size:.75rem;font-weight:500}.etf-status-badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;cursor:pointer;transition:opacity .15s}.etf-status-badge:hover{opacity:.75}.etf-status-active{background:#dcfce7;color:#166534}.etf-status-skipped{background:#fef2f2;color:#991b1b}.etf-skip-reason{display:block;font-size:.6875rem;color:var(--text-faint);margin-top:.15rem;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.etf-edit-row{background:var(--bg-active)}.etf-inline-input{padding:.3rem .5rem;border:1px solid #93c5fd;border-radius:.375rem;background:var(--bg-card);color:var(--text-primary);font-size:.8125rem;width:100%;min-width:60px}.etf-inline-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-ring)}.etf-inline-wide{min-width:160px}.etf-inline-sm{min-width:50px;max-width:90px}.etf-skip-input{margin-top:.25rem;font-size:.75rem}.etf-row-actions{display:flex;gap:.35rem;white-space:nowrap}.etf-save-btn{padding:.25rem .625rem;border:none;border-radius:.375rem;background:var(--color-primary);color:#fff;font-size:.75rem;font-weight:500;cursor:pointer}.etf-save-btn:hover:not(:disabled){background:var(--color-primary-hover)}.etf-save-btn:disabled{opacity:.6;cursor:not-allowed}.etf-cancel-btn{padding:.25rem .625rem;border:1px solid var(--border-input);border-radius:.375rem;background:transparent;color:var(--text-muted);font-size:.75rem;cursor:pointer}.etf-cancel-btn:hover{background:var(--bg-hover)}.etf-delete-btn{padding:.2rem .5rem;border:1px solid #fecaca;border-radius:.375rem;background:transparent;color:var(--color-danger);font-size:.6875rem;cursor:pointer}.etf-delete-btn:hover{background:#fef2f2}.etf-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:100}.etf-confirm-dialog{background:var(--bg-card);padding:1.5rem;border-radius:.75rem;border:1px solid var(--border-light);box-shadow:0 4px 24px #0000001f;max-width:400px;width:90%}.etf-confirm-dialog p{margin-bottom:1rem;font-size:.9375rem;color:var(--text-primary)}.etf-danger-btn{padding:.5rem 1rem;border:none;border-radius:.5rem;background:var(--color-danger);color:#fff;font-weight:500;cursor:pointer}.etf-danger-btn:hover:not(:disabled){background:var(--color-danger-hover)}.etf-danger-btn:disabled{opacity:.6;cursor:not-allowed}.alloc-card{overflow:hidden}.alloc-table-wrap{overflow-x:auto}.alloc-mgmt-table{width:100%;border-collapse:collapse;font-size:.875rem}.alloc-mgmt-table th{text-align:center;padding:.625rem .75rem;color:var(--text-muted);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid var(--border-light);white-space:nowrap}.alloc-col-class{text-align:left!important;min-width:100px}.alloc-col-symbol{text-align:left!important;min-width:130px}.alloc-col-regime{min-width:100px}.alloc-mgmt-table td{padding:.5rem .75rem;border-bottom:1px solid var(--border-row);font-variant-numeric:tabular-nums}.alloc-mgmt-class-cell{font-weight:500;vertical-align:top;padding-top:.625rem!important;border-right:2px solid #e2e8f0}.alloc-mgmt-class-cell strong{display:block;color:var(--text-heading);font-size:.8125rem}.alloc-class-subtotals{display:flex;gap:.5rem;margin-top:.25rem;font-size:.6875rem;font-weight:600}.alloc-mgmt-symbol{color:#334155;font-weight:500;white-space:nowrap}.alloc-mgmt-cell{text-align:center;cursor:pointer;transition:background-color .15s;position:relative}.alloc-mgmt-cell:hover{background:var(--bg-hover)}.alloc-changed{background:#fefce8}.alloc-changed:hover{background:#fef9c3}.alloc-cell-content{display:flex;flex-direction:column;align-items:center;gap:.125rem}.alloc-pct{font-weight:500;color:var(--text-primary)}.alloc-default-hint{font-size:.6875rem;color:var(--text-faint);font-style:italic}.alloc-edit-input{width:56px;padding:.25rem .375rem;border:1px solid #3b82f6;border-radius:.375rem;font-size:.875rem;text-align:center;font-variant-numeric:tabular-nums;outline:none;box-shadow:0 0 0 2px var(--color-primary-ring)}.alloc-edit-input::-webkit-inner-spin-button,.alloc-edit-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.alloc-class-divider td{padding:0!important;border-bottom:2px solid var(--border-light)!important;height:2px}.alloc-total-row td{border-top:2px solid #e2e8f0;border-bottom:none;padding-top:.75rem;padding-bottom:.75rem}.alloc-total-cell{cursor:default;font-size:.9375rem}.alloc-total-cell:hover{background:transparent}.alloc-total-invalid{background:#fef2f2!important;color:var(--color-danger)}.alloc-total-invalid strong{color:var(--color-danger)}.alloc-danger-btn{background:var(--color-danger)}.alloc-danger-btn:hover:not(:disabled){background:var(--color-danger-hover)}.alloc-confirm-text{font-size:.875rem;color:var(--color-danger);font-weight:500}.ticker-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:.75rem}.ticker-header h2{margin-bottom:0}.ticker-controls{display:flex;gap:.75rem;align-items:center}.live-toggle{padding:.375rem .75rem;border:1px solid var(--border-input);border-radius:.375rem;background:var(--bg-card);color:var(--text-muted);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .15s}.live-toggle:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.live-toggle:disabled{opacity:.6;cursor:not-allowed}.live-toggle-active{background:var(--bg-active);border-color:var(--color-primary);color:var(--color-primary)}.slider-label{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;font-weight:500;color:var(--text-muted)}.slider-select{padding:.375rem .625rem;border:1px solid var(--border-input);border-radius:.375rem;background:var(--bg-card);color:var(--text-primary);font-size:.8125rem;cursor:pointer}.slider-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-ring)}.ticker-summary{display:flex;gap:1.5rem;flex-wrap:wrap;padding:.75rem 1rem;background:var(--bg-page);border:1px solid var(--border-light);border-radius:.5rem;margin-bottom:1rem}.ticker-summary-item{display:flex;flex-direction:column;gap:.125rem}.ticker-summary-warn{color:#f59e0b}.ticker-summary-label{font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint)}.ticker-summary-value{font-size:.875rem;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.ticker-tilt-badge{font-weight:700}.ticker-tilt-score{font-weight:400;font-size:.75rem;opacity:.8;margin-left:.25rem}.ticker-table{width:100%;border-collapse:collapse;font-size:.875rem}.ticker-table th{text-align:left;padding:.5rem .75rem;border-bottom:2px solid var(--border-light);color:var(--text-muted);font-weight:500;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.ticker-table td{padding:.4rem .75rem;border-bottom:1px solid var(--border-row);font-variant-numeric:tabular-nums}.ticker-class-cell{font-weight:500;vertical-align:top;padding-top:.6rem!important;border-right:2px solid #e2e8f0}.ticker-class-cell strong{display:block;color:var(--text-heading)}.ticker-symbol{font-weight:600;color:var(--text-heading);font-family:SF Mono,Fira Code,monospace;font-size:.8125rem}.ticker-region{color:var(--text-muted);font-size:.8125rem;font-weight:500}.ticker-role-badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;background:var(--bg-hover);color:var(--text-secondary);font-size:.75rem;font-weight:500}.ticker-pct{text-align:right;font-weight:500;color:var(--text-primary)}.ticker-bar-col{width:120px}.ticker-bar-cell{width:120px;padding-right:1rem}.ticker-bar{height:6px;background:var(--color-primary);border-radius:3px;min-width:2px;transition:width .3s ease}.ticker-row:hover{background:var(--bg-page)}.ticker-class-header td{background:var(--bg-hover);border-bottom:1px solid #e2e8f0;padding:.5rem .75rem;font-size:.875rem}.ticker-class-header strong{color:var(--text-heading)}.ticker-subgroup-header td{background:var(--bg-page);border-bottom:1px solid var(--border-row);padding:.35rem .75rem;font-size:.8125rem;color:var(--text-secondary)}.ticker-total-row td{border-top:2px solid #e2e8f0;border-bottom:none;padding-top:.625rem;padding-bottom:.625rem}.fetch-errors{background:#fef3c7;border:1px solid #fbbf24;border-radius:6px;padding:.5rem .75rem;margin-bottom:.75rem}.fetch-error-item{font-size:.8rem;color:#92400e;margin:.125rem 0}.regional-details{margin-bottom:1rem}.regional-toggle{display:flex;align-items:center;gap:.5rem;background:none;border:none;color:var(--text-secondary);font-size:.85rem;font-weight:600;cursor:pointer;padding:.375rem 0}.regional-toggle:hover{color:var(--text-primary)}.regional-toggle-icon{font-size:.75rem;width:1rem}.regional-mode-badge{font-size:.7rem;font-weight:500;background:#e2e8f0;color:var(--text-muted);padding:.125rem .5rem;border-radius:9999px}.slider-explanation{font-size:.8125rem;color:var(--text-muted);margin:.5rem 0;line-height:1.4}.regional-overflow-badge{font-size:.7rem;font-weight:500;background:#fef3c7;color:#92400e;padding:.125rem .5rem;border-radius:9999px}.regional-table{width:100%;border-collapse:collapse;font-size:.8rem;margin-top:.5rem}.regional-table th{text-align:left;color:var(--text-muted);font-weight:600;padding:.375rem .75rem;border-bottom:1px solid #e2e8f0;font-size:.75rem;text-transform:uppercase;letter-spacing:.025em}.regional-table td{padding:.375rem .75rem;border-bottom:1px solid var(--border-row)}.regional-excluded td{color:var(--text-faint)}.regional-excluded-badge{font-size:.7rem;background:#fee2e2;color:var(--color-danger);padding:.125rem .375rem;border-radius:4px}.regional-active-badge{font-size:.7rem;background:#dcfce7;color:#16a34a;padding:.125rem .375rem;border-radius:4px}.backtest-page{max-width:1200px;margin:0 auto;padding:2rem}.backtest-config-card{border-left:3px solid #3b82f6}.backtest-config-toggle{display:flex;align-items:center;gap:.5rem;background:none;border:none;color:var(--text-secondary);font-size:.875rem;font-weight:600;cursor:pointer;padding:0}.backtest-config-toggle:hover{color:var(--text-primary)}.backtest-config-toggle-icon{font-size:.75rem;width:1rem}.backtest-config-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem;margin:1rem 0}.backtest-config-field{display:flex;flex-direction:column;gap:.25rem}.backtest-config-field label{font-size:.75rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.backtest-config-field input,.backtest-config-field select{padding:.5rem .625rem;border:1px solid var(--border-input);border-radius:.375rem;background:var(--bg-page);color:var(--text-primary);font-size:.875rem}.backtest-config-field input:focus,.backtest-config-field select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-ring)}.backtest-benchmarks{display:flex;gap:1rem;flex-wrap:wrap;margin:.75rem 0}.backtest-benchmarks label{display:flex;align-items:center;gap:.375rem;font-size:.875rem;color:var(--text-secondary);cursor:pointer}.backtest-run-btn{padding:.625rem 1.5rem;border:none;border-radius:.5rem;background:var(--color-primary);color:#fff;font-size:.875rem;font-weight:600;cursor:pointer;margin-top:.5rem}.backtest-run-btn:hover:not(:disabled){background:var(--color-primary-hover)}.backtest-run-btn:disabled{opacity:.6;cursor:not-allowed}.backtest-metrics-row{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}.backtest-metric-card{flex:1;min-width:140px;background:var(--bg-card);padding:1rem;border-radius:.75rem;border:1px solid var(--border-light);box-shadow:0 1px 3px #00000014;text-align:center}.backtest-metric-label{font-size:.75rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem}.backtest-metric-value{font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums}.backtest-metric-positive{color:#16a34a}.backtest-metric-negative{color:var(--color-danger)}.backtest-metric-neutral{color:var(--text-primary)}.backtest-comparison-table{width:100%;border-collapse:collapse;font-size:.875rem}.backtest-comparison-table th{text-align:center;padding:.5rem .75rem;border-bottom:2px solid var(--border-light);color:var(--text-muted);font-weight:500;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.backtest-comparison-table th:first-child{text-align:left}.backtest-comparison-table td{padding:.5rem .75rem;border-bottom:1px solid var(--border-row);text-align:center;font-variant-numeric:tabular-nums}.backtest-comparison-table td:first-child{text-align:left;font-weight:500;color:var(--text-heading)}.backtest-comparison-table .backtest-strategy-col{background:#f0f9ff;font-weight:600}.backtest-better{color:#16a34a}.backtest-worse{color:var(--color-danger)}.backtest-chart-card{margin-bottom:1.5rem}.backtest-regime-bars{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.backtest-regime-bar-row{display:flex;align-items:center;gap:.75rem}.backtest-regime-bar-label{min-width:80px;font-size:.8125rem;font-weight:500;text-transform:uppercase;color:var(--text-secondary)}.backtest-regime-bar-track{flex:1;height:20px;background:var(--bg-hover);border-radius:4px;overflow:hidden}.backtest-regime-bar-fill{height:100%;border-radius:4px;transition:width .3s ease}.backtest-regime-bar-value{min-width:90px;font-size:.8125rem;color:var(--text-muted);font-variant-numeric:tabular-nums;text-align:right}.backtest-regime-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem}.backtest-regime-stat{display:flex;flex-direction:column;gap:.125rem}.backtest-regime-stat-label{font-size:.75rem;font-weight:500;color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em}.backtest-regime-stat-value{font-size:1rem;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.backtest-trade-table{width:100%;border-collapse:collapse;font-size:.8125rem}.backtest-trade-table th{text-align:left;padding:.5rem .75rem;border-bottom:2px solid var(--border-light);color:var(--text-muted);font-weight:500;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.backtest-trade-table td{padding:.4rem .75rem;border-bottom:1px solid var(--border-row);font-variant-numeric:tabular-nums}.backtest-buy{display:inline-block;padding:.1rem .5rem;border-radius:999px;background:#dcfce7;color:#166534;font-size:.75rem;font-weight:600}.backtest-sell{display:inline-block;padding:.1rem .5rem;border-radius:999px;background:#fef2f2;color:#991b1b;font-size:.75rem;font-weight:600}.backtest-pagination{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:1rem}.backtest-pagination button{padding:.375rem .75rem;border:1px solid var(--border-input);border-radius:.375rem;background:var(--bg-card);color:var(--text-secondary);font-size:.8125rem;cursor:pointer}.backtest-pagination button:hover:not(:disabled){background:var(--bg-hover);border-color:var(--color-primary);color:var(--color-primary)}.backtest-pagination button:disabled{opacity:.4;cursor:not-allowed}.backtest-pagination span{font-size:.8125rem;color:var(--text-muted)}.backtest-csv-btn{padding:.375rem .75rem;border:1px solid var(--border-input);border-radius:.375rem;background:var(--bg-card);color:var(--text-secondary);font-size:.8125rem;cursor:pointer}.backtest-csv-btn:hover{background:var(--bg-hover);border-color:var(--color-primary);color:var(--color-primary)}.backtest-toggle{display:flex;align-items:center;gap:.5rem;background:none;border:none;color:var(--text-secondary);font-size:.875rem;font-weight:600;cursor:pointer;padding:0}.backtest-toggle:hover{color:var(--text-primary)}.backtest-toggle-icon{font-size:.75rem;width:1rem}.chart-legend{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.5rem;padding:0 .5rem}.legend-item{display:inline-flex;align-items:center;gap:.35rem;font-size:.8125rem;color:var(--text-secondary)}.legend-line{display:inline-block;width:20px;height:3px;border-radius:2px}.legend-line-dashed{background:repeating-linear-gradient(to right,currentColor 0,currentColor 4px,transparent 4px,transparent 7px);height:2px}.legend-toggle{cursor:pointer;-webkit-user-select:none;user-select:none}.legend-toggle input[type=checkbox]{accent-color:var(--color-primary);cursor:pointer}.settings-section{margin-bottom:1.5rem}.drift-positive{color:#16a34a}.drift-negative{color:var(--color-danger)}.drift-warn{color:#d97706}.drift-zero{color:var(--text-muted)}.position-account-card{border-left:3px solid #e2e8f0;padding-left:1rem;margin-bottom:1rem}.position-account-card.allocation-account{border-left-color:var(--color-primary)}.position-summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-bottom:1rem}.position-summary-item{display:flex;flex-direction:column;gap:.125rem}.position-summary-label{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint)}.position-summary-value{font-size:1.375rem;font-weight:700;color:var(--text-heading);font-variant-numeric:tabular-nums}.legacy-badge{display:inline-block;padding:.1rem .4rem;border-radius:999px;background:#fef3c7;color:#92400e;font-size:.6875rem;font-weight:600}.legacy-expand-btn{background:none;border:none;cursor:pointer;padding:0 .25rem 0 0;font-size:.75rem;color:var(--text-muted);line-height:1}.legacy-count-badge{display:inline-block;margin-left:.35rem;padding:0 .3rem;border-radius:999px;background:#fef3c7;color:#92400e;font-size:.625rem;font-weight:600}.legacy-badge-sm{display:inline-block;margin-right:.3rem;padding:0 .25rem;border-radius:3px;background:#fef3c7;color:#92400e;font-size:.625rem;font-weight:700}.ticker-legacy-row{background:#fefce8;font-size:.8125rem}.holding-actions{display:flex;gap:.25rem;white-space:nowrap}.holding-action-btn{padding:.2rem .5rem;border:1px solid var(--border-input);border-radius:.375rem;background:transparent;color:var(--text-secondary);font-size:.6875rem;cursor:pointer}.holding-action-btn:hover{background:var(--bg-hover);border-color:var(--color-primary);color:var(--color-primary)}.shares-form{display:flex;gap:.5rem;align-items:center;padding:.5rem .75rem;background:var(--bg-page)}.shares-form input{padding:.3rem .5rem;border:1px solid var(--border-input);border-radius:.375rem;font-size:.8125rem;width:80px}.shares-form input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-ring)}.tx-row{background:var(--bg-page)}.tx-row td{font-size:.75rem;color:var(--text-muted);padding:.25rem .75rem}.no-portfolio-msg{color:var(--text-muted);font-size:.875rem;padding:.5rem 0}.create-portfolio-btn{padding:.375rem .75rem;border:1px solid #3b82f6;border-radius:.375rem;background:transparent;color:var(--color-primary);font-size:.8125rem;font-weight:500;cursor:pointer}.create-portfolio-btn:hover{background:var(--bg-active)}.tab-bar{display:flex;gap:0;border-bottom:2px solid var(--border-light);margin-bottom:1.5rem}.tab-btn{padding:.5rem 1.25rem;font-size:.875rem;font-weight:500;color:var(--text-muted);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer}.tab-btn:hover{color:var(--text-primary)}.tab-btn-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.account-subtotal td{border-top:2px solid #e2e8f0;border-bottom:none;padding-top:.625rem;padding-bottom:.625rem;background:var(--bg-page)}.security-picker-dropdown{position:absolute;top:100%;left:0;z-index:100;background:#fff;border:1px solid var(--border-light);border-radius:6px;box-shadow:0 4px 12px #0000001f;min-width:360px;max-height:280px;overflow-y:auto;margin-top:2px}.security-picker-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;cursor:pointer;font-size:.8125rem;border-bottom:1px solid var(--border-row)}.security-picker-item:last-child{border-bottom:none}.security-picker-item:hover{background:var(--bg-hover)}.security-picker-symbol{font-weight:600;min-width:60px;color:var(--text-heading)}.security-picker-name{flex:1;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.security-picker-meta{font-size:.75rem;color:var(--text-faint);white-space:nowrap}.security-picker-create{color:var(--color-primary);font-weight:500}.security-picker-create:hover{background:var(--bg-active)}.security-type-badge{display:inline-block;padding:1px 6px;border-radius:4px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.security-type-universe{background:#dcfce7;color:#166534}.security-type-stock{background:#e2e8f0;color:var(--text-secondary)}.security-incomplete{color:#f59e0b;cursor:help}.holding-panel-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:99;animation:fadeIn .15s ease}.holding-panel{position:fixed;top:0;right:0;bottom:0;width:460px;max-width:100vw;background:var(--bg-card);border-left:1px solid #e2e8f0;box-shadow:-4px 0 24px #0000001a;z-index:100;overflow-y:auto;animation:slideInRight .2s ease}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.holding-panel-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #e2e8f0;position:sticky;top:0;background:var(--bg-card);z-index:1}.holding-panel-header h2{font-size:1.125rem;color:var(--text-heading);margin:0}.holding-panel-header .panel-subtitle{font-size:.8125rem;color:var(--text-muted);font-weight:400}.holding-panel-close{background:none;border:none;font-size:1.25rem;color:var(--text-muted);cursor:pointer;padding:.25rem .5rem;border-radius:.375rem}.holding-panel-close:hover{background:var(--bg-hover);color:var(--text-heading)}.holding-panel-section{padding:1rem 1.25rem;border-bottom:1px solid var(--border-row)}.holding-panel-section h3{font-size:.8125rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.75rem;cursor:pointer;display:flex;align-items:center;gap:.5rem}.holding-panel-section h3 .toggle-icon{font-size:.75rem}.panel-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.panel-summary-item{display:flex;flex-direction:column}.panel-summary-label{font-size:.6875rem;color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em}.panel-summary-value{font-size:.9375rem;font-weight:600;color:var(--text-heading);font-variant-numeric:tabular-nums}.panel-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.panel-form-field{display:flex;flex-direction:column;gap:.2rem}.panel-form-field.full-width{grid-column:1 / -1}.panel-form-field label{font-size:.6875rem;color:var(--text-muted)}.panel-form-field input,.panel-form-field select,.panel-form-field textarea{padding:.375rem .5rem;border:1px solid var(--border-input);border-radius:.375rem;font-size:.8125rem;color:var(--text-primary);background:var(--bg-card)}.panel-form-field input:focus,.panel-form-field select:focus,.panel-form-field textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-ring)}.panel-form-actions{display:flex;gap:.5rem;margin-top:.75rem}.panel-tx-list{list-style:none;padding:0;margin:0;max-height:300px;overflow-y:auto}.panel-tx-item{display:flex;align-items:center;gap:.5rem;padding:.5rem 0;border-bottom:1px solid var(--border-row);font-size:.8125rem}.panel-tx-item:last-child{border-bottom:none}.panel-tx-date{color:var(--text-muted);min-width:78px;font-variant-numeric:tabular-nums}.panel-tx-badge{display:inline-block;padding:1px 6px;border-radius:4px;font-size:.6875rem;font-weight:600;text-transform:uppercase;min-width:32px;text-align:center}.panel-tx-badge-buy{background:#dbeafe;color:#1d4ed8}.panel-tx-badge-sell{background:#fee2e2;color:var(--color-danger)}.panel-tx-badge-div{background:#dcfce7;color:#166534}.panel-tx-detail{flex:1;color:#334155;font-variant-numeric:tabular-nums}.panel-tx-notes{color:var(--text-faint);font-size:.75rem;font-style:italic}.holding-row-clickable{cursor:pointer;transition:background-color .1s}.holding-row-clickable:hover{background-color:#f8fafc}.page-hero{padding:1.25rem 0 1rem;margin-bottom:var(--card-gap);border-bottom:1px solid var(--border-light)}.page-hero-kpis{display:flex;gap:2rem;flex-wrap:wrap;align-items:flex-start}.page-hero-kpi{display:flex;flex-direction:column;gap:.125rem}.page-hero-kpi-label{font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint)}.page-hero-kpi-value{font-size:1.5rem;font-weight:700;color:var(--text-heading);font-variant-numeric:tabular-nums;line-height:1.2}.page-hero-kpi-sub{font-size:.8125rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.page-hero-kpi-value-sm{font-size:1.125rem;font-weight:600;color:var(--text-heading);font-variant-numeric:tabular-nums;line-height:1.2}.page-hero-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.pill-group{display:inline-flex;gap:2px;background:var(--bg-hover);border-radius:var(--radius-md);padding:2px}.pill-btn{padding:.25rem .625rem;font-size:.75rem;font-weight:500;color:var(--text-muted);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;transition:all .15s}.pill-btn:hover{color:var(--text-primary)}.pill-btn-active{background:var(--bg-card);color:var(--text-heading);box-shadow:0 1px 2px #0000000f}.check-label{display:inline-flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.check-label input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:16px;height:16px;border:1.5px solid var(--border-input);border-radius:4px;background:var(--bg-card);cursor:pointer;position:relative;flex-shrink:0;transition:all .15s}.check-label input[type=checkbox]:checked{background:var(--color-primary);border-color:var(--color-primary)}.check-label input[type=checkbox]:checked:after{content:"";position:absolute;top:2px;left:5px;width:4px;height:8px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.btn-inline{padding:.2rem .5rem;font-size:.6875rem;font-weight:500;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s;white-space:nowrap;border:1px solid var(--border-light);background:var(--bg-card);color:var(--text-secondary)}.btn-inline:hover{background:var(--bg-hover);border-color:var(--color-primary);color:var(--color-primary)}.btn-inline-danger{color:var(--color-danger);border-color:transparent;background:none}.btn-inline-danger:hover{background:var(--color-loss-bg);border-color:transparent;color:var(--color-danger)}.btn-group{display:flex;gap:.25rem;align-items:center}.tabular-nums{font-variant-numeric:tabular-nums}.font-mono{font-family:var(--font-mono)}.text-gain{color:var(--color-gain)}.text-loss{color:var(--color-loss)}.text-warning{color:var(--color-warning)}.text-muted{color:var(--text-muted)}.text-faint{color:var(--text-faint)}
