.dividend-calendar{display:flex;flex-direction:column;height:100%;background:var(--surface);border-radius:.5rem;overflow:hidden}.dividend-calendar-header{display:flex;align-items:center;gap:1.5rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--background)}.view-toggle{display:flex;background:var(--surface);border:1px solid var(--border);border-radius:.375rem;overflow:hidden}.toggle-btn{padding:.5rem 1rem;font-size:.8125rem;font-weight:500;border:none;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .15s}.toggle-btn:hover{color:var(--text);background:var(--background)}.toggle-btn.active{color:var(--text);background:var(--primary-light);font-weight:600}.calendar-controls{display:flex;align-items:center;gap:.5rem}.months-select{padding:.5rem .75rem;font-size:.8125rem;border:1px solid var(--border);border-radius:.375rem;background:var(--surface);color:var(--text);cursor:pointer}.months-select:focus{outline:none;border-color:var(--primary)}.calendar-summary{margin-left:auto;display:flex;gap:1.5rem;font-size:.8125rem;color:var(--text-muted)}.summary-item strong{color:var(--text);font-weight:600}.dividend-calendar-loading,.dividend-calendar-error,.dividend-calendar-empty{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--text-muted);font-size:.875rem}.dividend-calendar-error{color:var(--danger)}.calendar-view{flex:1;padding:1rem;overflow-y:auto}.month-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.month-card{background:var(--surface);border:1px solid var(--border);border-radius:.5rem;padding:1rem;cursor:pointer;transition:all .15s}.month-card:hover{border-color:var(--primary);box-shadow:var(--shadow)}.month-card.expanded{grid-column:span 2;border-color:var(--primary)}.month-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}.month-name{font-weight:600;font-size:.9375rem;color:var(--text)}.month-year{font-size:.75rem;color:var(--text-muted)}.month-total{font-size:1.25rem;font-weight:600;color:var(--success);margin-bottom:.25rem}.month-count{font-size:.75rem;color:var(--text-muted);margin-bottom:.75rem}.dividend-dots{display:flex;flex-wrap:wrap;gap:.25rem;align-items:center}.dividend-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.more-dots{font-size:.6875rem;color:var(--text-muted);margin-left:.25rem}.month-details{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.dividend-row{display:grid;grid-template-columns:70px 60px 1fr 70px;gap:.5rem;padding:.375rem 0;font-size:.8125rem;border-bottom:1px solid var(--border-light)}.dividend-row:last-child{border-bottom:none}.div-symbol{font-weight:600;color:var(--text)}.div-date{color:var(--text-muted)}.div-amount{text-align:right;font-weight:500}.div-status{text-align:right;font-size:.75rem}.calendar-legend{display:flex;gap:1.25rem;padding:.75rem 1rem;border-top:1px solid var(--border);background:var(--background);font-size:.75rem;color:var(--text-muted)}.legend-item{display:flex;align-items:center;gap:.375rem}.legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.table-view{flex:1;padding:0}.table-view.ag-theme-alpine{--ag-header-height: 40px;--ag-row-height: 36px;--ag-font-size: 13px;--ag-header-background-color: var(--background);--ag-odd-row-background-color: var(--surface);--ag-row-hover-color: var(--primary-light);--ag-selected-row-background-color: var(--accent-light);--ag-border-color: var(--border)}.income-charts-page{min-height:100vh;background:var(--background);display:flex;flex-direction:column}.income-charts-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:var(--surface);border-bottom:1px solid var(--border)}.income-charts-header h1{margin:0;font-size:1.25rem;font-weight:600;color:var(--text)}.income-charts-content{display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;flex:1;overflow-y:auto}.income-chart-card{background:var(--surface);border:1px solid var(--border);border-radius:.5rem;padding:1.25rem;display:flex;flex-direction:column}.income-chart-card.full-width{width:100%}.income-chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.income-chart-header>span{flex:1}.income-chart-header>span:nth-child(2){text-align:center}.chart-table-toggle{background:none;border:none;cursor:pointer;font-size:1rem;padding:.25rem;opacity:.6;transition:opacity .15s;flex-shrink:0}.chart-table-toggle:hover{opacity:1}.income-chart-title{font-size:.9375rem;font-weight:600;color:var(--text)}.income-chart-total{font-size:.875rem;font-weight:600;color:var(--accent)}.income-chart-subtitle{font-size:.8125rem;color:var(--text-secondary);margin:0 0 1rem}.income-chart-container{width:100%;height:280px;flex:1;min-height:250px}.income-chart-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);font-size:.875rem}.top-charts-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.allocation-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.income-tooltip{background:var(--surface);border:1px solid var(--border);border-radius:.375rem;padding:.5rem .75rem;font-size:.75rem;box-shadow:0 4px 6px -1px #0000001a}.income-tooltip strong{display:block;margin-bottom:.25rem;color:var(--text)}.income-tooltip div{line-height:1.5;color:var(--text-secondary)}.income-charts-loading{display:flex;align-items:center;justify-content:center;flex:1;color:var(--text-secondary);font-size:.875rem}.income-charts-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;color:var(--text-secondary);font-size:.875rem;gap:.5rem}@media(max-width:700px){.allocation-grid{grid-template-columns:1fr}.income-charts-content{padding:1rem;gap:1rem}}.chart-grid-container{width:100%;display:flex;flex-direction:column;gap:.5rem}.chart-grid-toolbar{display:flex;justify-content:flex-end}.chart-grid{width:100%;height:300px}.chart-grid .ag-root-wrapper{border:1px solid var(--border);border-radius:.25rem}.chart-grid .ag-header-cell-label{font-size:.6875rem}.chart-grid .ag-cell{font-size:.6875rem;padding-left:6px;padding-right:6px}.chart-grid .ag-header-cell{padding-left:6px;padding-right:6px}*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #94a3b8;--primary-hover: #64748b;--primary-dark: #475569;--primary-light: #eff6ff;--accent: #6366f1;--accent-light: #eef2ff;--secondary: #64748b;--success: #16a34a;--success-light: rgba(22, 163, 74, .08);--danger: #dc2626;--danger-light: rgba(220, 38, 38, .08);--background: #f8fafc;--surface: #ffffff;--text: #1e293b;--text-muted: #64748b;--border: #e2e8f0;--border-light: #f1f5f9;--shadow: 0 1px 3px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}body{font-family:var(--font-sans);font-size:13px;background-color:var(--background);color:var(--text);line-height:1.4;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.loading{display:flex;align-items:center;justify-content:center;height:100vh;font-size:1.125rem;color:var(--text-muted)}.btn-primary{background-color:var(--primary);color:#fff;border:none;padding:.625rem 1.25rem;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .15s}.btn-primary:hover{background-color:var(--primary-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background-color:#cbd5e1;color:var(--text);border:1px solid #b0bec5;padding:.625rem 1.25rem;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .15s}.btn-secondary:hover{background-color:#b0bec5}.btn-danger{background-color:var(--danger);color:#fff;border:none;padding:.625rem 1.25rem;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .15s}.btn-danger:hover{background-color:#b91c1c}.btn-danger:disabled{opacity:.6;cursor:not-allowed}.btn-link{background:none;border:none;color:var(--primary);text-decoration:underline;cursor:pointer;font-size:.8125rem;padding:0}.btn-link:hover{color:var(--primary-hover)}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.875rem;font-weight:500;color:var(--text);margin-bottom:.375rem}.form-group label.required:after{content:" *";color:#dc2626}.form-group input{width:100%;padding:.625rem .75rem;border:1px solid #cbd5e1;border-radius:.375rem;font-size:.875rem;background-color:var(--surface);transition:border-color .15s,box-shadow .15s}.form-group input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.symbol-input-group{display:flex;gap:.5rem}.symbol-input-group input{flex:1}.btn-lookup{padding:.625rem 1rem;white-space:nowrap}.symbol-not-found-message{background-color:#fef3c7;border:1px solid #f59e0b;color:#92400e;padding:.75rem;border-radius:.375rem;font-size:.875rem;margin-bottom:1rem}.manual-entry-notice{background-color:#fef3c7;border:1px solid #f59e0b;color:#92400e;padding:.375rem .75rem;border-radius:.375rem;font-size:.75rem;margin-bottom:.75rem}.form-section-header{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#1e293b;background-color:#e2e8f0;margin:1rem -1.5rem .5rem;padding:.5rem 1.5rem}.form-group select,.form-select{width:100%;padding:.625rem .75rem;border:1px solid #cbd5e1;border-radius:.375rem;font-size:.875rem;background-color:var(--surface);transition:border-color .15s,box-shadow .15s;cursor:pointer}.form-group select:focus,.form-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.form-section-divider{display:flex;align-items:center;gap:.75rem;margin:1rem 0 .75rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.form-section-divider:before,.form-section-divider:after{content:"";flex:1;height:1px;background:var(--border)}.form-hint{display:block;font-size:.75rem;color:var(--text-muted);margin-top:.25rem}.form-error{display:block;font-size:.75rem;color:var(--danger);margin-top:.25rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1rem}.form-grid .form-group{margin-bottom:0}.form-grid .form-group label{margin-bottom:.25rem;font-size:.875rem}.form-grid .form-group input,.form-grid .form-group select{padding:.5rem .625rem;font-size:.875rem}.form-grid:not(.form-grid-no-span) .form-group:nth-child(2){grid-column:1 / -1}.manual-entry-form{flex:1}.manual-entry-form .form-section-header{margin:.75rem -1.5rem .5rem;padding:.375rem 1.5rem}.selected-symbol-display{margin-bottom:1rem}.selected-symbol-info{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#dbeafe;border:1px solid #3b82f6;border-radius:.375rem}.selected-symbol-ticker{font-weight:700;font-size:1.125rem;color:#1e40af}.selected-symbol-name{color:#1e40af;font-size:.875rem}.form-row{display:flex;gap:1rem}.form-row .form-group{flex:1}.manual-entry-link{display:block;margin-top:.5rem;text-align:left}.error-message{background-color:#fef2f2;color:var(--danger);padding:.75rem;border-radius:.375rem;font-size:.875rem;margin-bottom:1rem}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1rem}.login-box{background:var(--surface);padding:2.5rem;border-radius:.5rem;box-shadow:var(--shadow);width:100%;max-width:400px}.login-box h1{font-size:1.75rem;font-weight:700;text-align:center;margin-bottom:.5rem}.auth-logo{display:block;width:200px;height:auto;margin:0 auto .5rem}.header-logo{height:54px;width:auto}.login-box .subtitle{text-align:center;color:var(--text-muted);margin-bottom:2rem}.login-box form{margin-bottom:1.5rem}.login-box .btn-primary{width:100%;padding:.75rem;font-size:1rem}.register-link{text-align:center;font-size:.875rem;color:var(--text-muted)}.register-link a{color:var(--primary);text-decoration:none}.register-link a:hover{text-decoration:underline}.plan-banner{background:var(--bg-secondary, #f1f5f9);border:1px solid var(--border-color, #e2e8f0);border-radius:.5rem;padding:.75rem 1rem;margin-bottom:1.5rem;display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.plan-banner-info{display:flex;align-items:baseline;gap:.5rem;flex:1}.plan-banner-name{font-weight:600;font-size:.9375rem;color:var(--text-primary, #1e293b)}.plan-banner-price{font-weight:700;font-size:1.125rem;color:var(--text-primary, #1e293b)}.plan-banner-period{font-weight:400;font-size:.8125rem;color:var(--text-muted, #64748b)}.plan-banner-trial{font-size:.75rem;font-weight:600;color:#16a34a;background:#f0fdf4;padding:.125rem .5rem;border-radius:10px}.plan-banner-change{background:none;border:none;color:var(--accent, #6366f1);font-size:.8125rem;font-weight:500;cursor:pointer;padding:0}.plan-banner-change:hover{text-decoration:underline}.plan-picker{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.plan-option{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border:1px solid var(--border-color, #e2e8f0);border-radius:.375rem;background:var(--surface, #fff);cursor:pointer;text-align:left;transition:border-color .15s,background .15s}.plan-option:hover{border-color:var(--accent, #6366f1);background:#f8faff}.plan-option-selected{border-color:var(--accent, #6366f1);background:#eef2ff}.plan-option-name{font-weight:600;font-size:.875rem;color:var(--text-primary, #1e293b);min-width:5rem}.plan-option-price{font-weight:700;font-size:.875rem;color:var(--text-primary, #1e293b);min-width:3.5rem}.plan-option-desc{font-size:.75rem;color:var(--text-muted, #64748b);flex:1}.dashboard{display:flex;flex-direction:column;height:100vh}.dashboard-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:var(--surface);border-bottom:1px solid var(--border)}.header-left{display:flex;align-items:center;gap:1.5rem}.header-left h1{font-size:1.25rem;font-weight:700}.portfolio-select{padding:.375rem .75rem;border:1px solid #cbd5e1;border-radius:0;font-size:.8125rem;background:#f8fafc;min-width:200px;margin-right:-1px}.header-right{display:flex;align-items:center;gap:1rem}.user-email{font-size:.875rem;color:var(--text)}.header-action-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:transparent;border:none;border-radius:.375rem;cursor:pointer;font-size:.875rem;font-weight:500;color:var(--text);transition:all .15s ease}.header-action-btn:hover{background:var(--background)}.header-action-btn.logout:hover{background:#ef44441a}.header-user{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-left:1px solid var(--border);border-right:1px solid var(--border)}.header-action-icon{flex-shrink:0}.header-action-icon.settings{color:#3b82f6}.header-action-icon.user{color:#10b981}.header-action-icon.logout{color:#ef4444}.dashboard-main{flex:1;display:flex;flex-direction:column;padding:1rem 1.5rem;overflow:hidden}.toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;height:52px}.overlay-context-bar{display:flex;align-items:center;justify-content:space-between;padding:.375rem .75rem;margin-bottom:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:.375rem}.overlay-back-btn{display:flex;align-items:center;gap:.25rem;background:none;border:none;cursor:pointer;font-size:.9375rem;font-weight:600;color:var(--accent);padding:.375rem .75rem;border-radius:.25rem;transition:background .15s}.overlay-back-btn:hover{background:var(--hover)}.overlay-context-label{font-size:.8125rem;font-weight:600;color:var(--text-secondary)}.section-tabs{display:flex}.section-tab{padding:.5rem .875rem;background:#f8fafc;border:1px solid #cbd5e1;margin-left:-1px;font-size:.9375rem;font-weight:600;color:#64748b;cursor:pointer;transition:all .15s}.section-tab:first-child{margin-left:0}.section-tab:hover{color:#334155;background:#e2e8f0}.section-tab.active{color:#1e293b;background:#cbd5e1;font-weight:600}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;text-align:center}.empty-state h2{font-size:1.5rem;margin-bottom:.5rem}.empty-state p{color:var(--text-muted);margin-bottom:1.5rem}.holdings-grid-container{flex:1;min-height:0;display:flex;flex-direction:column}.institution-filter-chips{display:flex;gap:6px;padding:4px 12px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;overflow-x:auto}.institution-chip{padding:3px 12px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--text-muted);font-size:.8rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .15s}.institution-chip:hover{border-color:var(--primary);color:var(--primary)}.institution-chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.holdings-toggle{display:flex;gap:.5rem;padding:.5rem;background:var(--background);border-radius:.5rem;margin-bottom:0}.toggle-option{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:.375rem;cursor:pointer;font-size:.875rem;font-weight:500;color:var(--text-muted);transition:all .15s}.toggle-option input[type=radio]{display:none}.toggle-option:hover{color:var(--text)}.toggle-option.active{background:var(--surface);color:var(--primary);box-shadow:var(--shadow);border-left:2px solid var(--primary)}.holdings-toolbar{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);background:linear-gradient(to bottom,#fff,#f8fafc);padding-right:.75rem;min-height:48px}.holdings-subtabs-placeholder{flex:1}.holdings-subtab-label{padding:0 1.25rem;font-size:.8125rem;font-weight:600;color:var(--text);flex:1}.holdings-subtabs{display:flex;gap:0;background:linear-gradient(to bottom,#fff,#f8fafc)}.subtab{position:relative;padding:.75rem 1.25rem;background:transparent;border:none;border-bottom:2px solid transparent;font-size:.8125rem;font-weight:500;color:#475569;cursor:pointer;transition:all .2s ease}.subtab:hover{color:var(--text);background:#0d94880a}.subtab.active{color:#1d4ed8;font-weight:600}.subtab.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:#1d4ed8;border-radius:2px 2px 0 0}.reset-all-btn{padding:.375rem .75rem;background:var(--secondary);border:1px solid var(--secondary);border-radius:.25rem;font-size:.75rem;font-weight:500;color:#fff;cursor:pointer;transition:all .15s;white-space:nowrap}.reset-all-btn:hover{background:#475569;border-color:#475569}.toolbar-right{display:flex;align-items:center;gap:1rem}.status-badge{display:inline-flex;align-items:center;gap:.5rem;font-size:.75rem;padding:.375rem .5rem .375rem .75rem;border-radius:.25rem;white-space:nowrap;font-weight:500}.sort-badge{color:var(--text-muted);background:var(--background)}.filter-badge{color:var(--primary);background:#dbeafe}.hidden-badge{color:#c2410c;background:#ffedd5}.reorder-badge{color:#7c3aed;background:#ede9fe}.badge-dismiss{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;padding:0;background:transparent;border:none;border-radius:50%;font-size:.875rem;font-weight:600;line-height:1;color:inherit;opacity:.6;cursor:pointer;transition:all .15s}.badge-dismiss:hover{opacity:1;background:#0000001a}.filter-badge .badge-dismiss:hover{background:#2563eb33}.hidden-badge .badge-dismiss:hover{background:#c2410c33}.reorder-badge .badge-dismiss:hover{background:#7c3aed33}.holdings-tabs{display:flex;gap:0;margin-bottom:0;border-bottom:1px solid var(--border)}.holdings-tab{padding:.75rem 1.5rem;background:transparent;border:none;border-bottom:2px solid transparent;font-size:.875rem;font-weight:500;color:var(--text-muted);cursor:pointer;transition:all .15s}.holdings-tab:hover{color:var(--text);background:var(--background)}.holdings-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--surface);padding:0;border-radius:.5rem;box-shadow:0 20px 25px -5px #0000001a;width:100%;max-width:450px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden}.modal h2{background-color:#4f46e5;color:#fff;margin:0;padding:1rem 1.5rem;font-size:1.125rem;font-weight:600;flex-shrink:0}.modal-body{flex:1;overflow-y:auto;min-height:0;display:flex;flex-direction:column}.modal form{padding:1.5rem}.modal.modal-add-holdings{max-width:600px;height:70vh;max-height:600px}.modal.modal-add-expense{max-width:550px;height:70vh;max-height:600px}.modal>.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;flex-shrink:0;padding:1rem 1.5rem 1.5rem;border-top:1px solid var(--border)}.modal.security-analysis-modal{max-width:700px}.modal.modal-reduce-expenses{max-width:750px;max-height:80vh}.modal-confirm{max-width:400px}.settings-modal{max-width:700px;height:70vh;max-height:600px}.settings-tabs{display:flex;gap:0;background:var(--background);border-bottom:1px solid var(--border)}.settings-tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:transparent;border:none;font-size:.875rem;font-weight:500;color:var(--text-muted);cursor:pointer;transition:all .15s ease;border-bottom:2px solid transparent;margin-bottom:-1px}.settings-tab:hover{color:var(--text);background:var(--surface)}.settings-tab.active{color:var(--primary);background:var(--surface);border-bottom-color:var(--primary)}.settings-tab svg{opacity:.6}.settings-tab.active svg{opacity:1}.settings-content{padding:1.5rem;overflow-y:auto;flex:1;min-height:0}.settings-section{margin-bottom:1.5rem}.settings-section:last-child{margin-bottom:0}.settings-section h3{margin:0 0 .25rem;font-size:.9375rem;font-weight:600;color:var(--text)}.settings-description{margin:0 0 1rem;font-size:.8125rem;color:var(--text-muted)}.settings-toggles{display:flex;flex-direction:column;gap:.5rem}.settings-toggle{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;background:var(--background);border:1px solid var(--border);border-radius:.375rem;cursor:pointer;transition:all .15s ease}.settings-toggle:hover{border-color:var(--primary);background:var(--surface)}.settings-toggle.compact{padding:.5rem .75rem;align-items:center}.settings-toggle input[type=checkbox]{width:1rem;height:1rem;margin:0;margin-top:.125rem;accent-color:var(--primary);cursor:pointer;flex-shrink:0}.settings-toggle.compact input[type=checkbox]{margin-top:0}.settings-toggle input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.toggle-content{display:flex;flex-direction:column;gap:.125rem;min-width:0}.toggle-label{font-size:.875rem;font-weight:500;color:var(--text)}.toggle-description{font-size:.75rem;color:var(--text-muted)}.settings-content .plan-mgmt-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.settings-content .plan-mgmt-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--background);border:1px solid var(--border);border-radius:.375rem}.settings-content .plan-mgmt-item.active{border-color:var(--primary);background:#3b82f60d}.settings-content .plan-mgmt-name{flex:1;font-size:.875rem;font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-content .plan-mgmt-name input{width:100%;padding:.25rem .5rem;border:1px solid var(--primary);border-radius:.25rem;font-size:.875rem;background:var(--surface)}.settings-content .plan-mgmt-badge{padding:.125rem .5rem;background:var(--primary);color:#fff;font-size:.6875rem;font-weight:600;text-transform:uppercase;border-radius:.25rem;flex-shrink:0}.settings-content .plan-mgmt-meta{font-size:.75rem;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.settings-content .plan-mgmt-actions{display:flex;gap:.375rem;flex-shrink:0}.settings-content .plan-mgmt-actions button{padding:.25rem .5rem;background:var(--surface);border:1px solid var(--border);border-radius:.25rem;font-size:.875rem;color:var(--text);cursor:pointer;transition:all .15s ease}.settings-content .plan-mgmt-actions button:hover{background:var(--background);border-color:var(--text-muted)}.settings-content .plan-mgmt-actions button.danger{color:var(--danger);border-color:var(--danger)}.settings-content .plan-mgmt-actions button.danger:hover{background:#ef44441a}.inst-error{padding:.5rem .75rem;margin-bottom:.75rem;background:#ef44441a;border:1px solid var(--danger);border-radius:.375rem;color:var(--danger);font-size:.8125rem;cursor:pointer}.inst-tree{display:flex;flex-direction:column;gap:.25rem}.inst-node{border:1px solid var(--border);border-radius:.375rem;overflow:hidden}.inst-node.expanded{border-color:var(--primary)}.inst-header{display:flex;align-items:center;gap:.5rem;padding:.625rem .75rem;background:var(--background);cursor:pointer;transition:background .15s ease}.inst-header:hover{background:var(--surface)}.inst-chevron{flex-shrink:0;color:var(--text-muted);transition:transform .15s ease}.inst-chevron.open{transform:rotate(90deg)}.inst-name{flex:1;font-size:.875rem;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inst-name input,.acct-name input{width:100%;padding:.125rem .375rem;border:1px solid var(--primary);border-radius:.25rem;font-size:.875rem;background:var(--surface)}.inst-meta{font-size:.8125rem;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.inst-actions{display:flex;gap:.25rem;flex-shrink:0}.inst-actions button{padding:.25rem .5rem;background:var(--surface);border:1px solid var(--border);border-radius:.25rem;font-size:.875rem;color:var(--text);cursor:pointer;transition:all .15s ease}.inst-actions button:hover{background:var(--background);border-color:var(--text-muted)}.inst-actions button.danger{color:var(--danger);border-color:transparent;background:transparent}.inst-actions button.danger:hover{background:#ef44441a}.inst-actions button.disabled{opacity:.3;cursor:not-allowed}.inst-children{border-top:1px solid var(--border)}.acct-row{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem .375rem 1.5rem;background:var(--surface)}.acct-row+.acct-row{border-top:1px solid var(--border)}.acct-indent{color:var(--border);font-size:.75rem;flex-shrink:0;width:12px}.acct-name{flex:1;font-size:.875rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acct-name span{cursor:pointer}.acct-name span:hover{color:var(--primary)}.inline-select{padding:.25rem .375rem;border:1px solid var(--border);border-radius:.25rem;font-size:.875rem;background:var(--surface);color:var(--text-muted);flex-shrink:0}.inline-select:focus{border-color:var(--primary);color:var(--text);outline:none}.inst-inline-input{width:100%;padding:.375rem .5rem;border:1px solid var(--primary);border-radius:.25rem;font-size:.875rem;background:var(--surface)}.member-list{display:flex;flex-direction:column;gap:.5rem}.member-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--background);border:1px solid var(--border);border-radius:.375rem}.member-name{flex:1;font-size:.875rem;font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-dob{font-size:.75rem;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.member-input{padding:.25rem .5rem;border:1px solid var(--primary);border-radius:.25rem;font-size:.875rem;background:var(--surface);color:var(--text);min-width:0}.member-input:first-child{flex:1.5;min-width:140px}.member-date{width:140px;flex-shrink:0}.member-add-form{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;padding:.75rem 1rem;background:var(--background);border:1px solid var(--primary);border-radius:.375rem}.rel-badge{padding:.125rem .5rem;font-size:.6875rem;font-weight:600;text-transform:uppercase;border-radius:.25rem;flex-shrink:0}.rel-self{background:#3b82f626;color:var(--primary)}.rel-spouse{background:#a855f726;color:#a855f7}.rel-dependent{background:#22c55e26;color:#22c55e}.tax-fields{display:flex;gap:1rem}.tax-field{display:flex;flex-direction:column;gap:.375rem;flex:1}.tax-field label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.025em}.tax-field select,.tax-field input{padding:.375rem .5rem;border:1px solid var(--border);border-radius:.25rem;font-size:.875rem;background:var(--surface);color:var(--text);width:100%}.tax-field select:focus{border-color:var(--primary);outline:none}.tax-rate-display{font-size:.875rem;font-weight:500;color:var(--text);padding:.375rem 0}.planning-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.planning-field{display:flex;flex-direction:column;gap:.375rem}.planning-field label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.025em}.planning-field input{padding:.375rem .5rem;border:1px solid var(--border);border-radius:.25rem;font-size:.875rem;background:var(--surface);color:var(--text);width:100%;box-sizing:border-box}.planning-field input:focus{border-color:var(--primary);outline:none}.rate-table{width:100%;border-collapse:collapse;font-size:.8125rem}.rate-table th{text-align:left;padding:.375rem .5rem;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border)}.rate-table td{padding:.25rem .5rem;border-bottom:1px solid var(--border)}.rate-table td:last-child{width:80px}.rate-table input{width:70px;padding:.25rem .375rem;border:1px solid var(--border);border-radius:.25rem;font-size:.8125rem;background:var(--surface);color:var(--text);text-align:right}.rate-table input:focus{border-color:var(--primary);outline:none}.ag-theme-alpine{--ag-font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--ag-font-size: 12px;font-variant-numeric:tabular-nums lining-nums;--ag-grid-size: 4px;--ag-row-height: 44px;--ag-header-height: 40px;--ag-header-background-color: #ffffff;--ag-header-foreground-color: #1e293b;--ag-header-cell-hover-background-color: #f8fafc;--ag-header-font-weight: 700;--ag-header-column-separator-display: block;--ag-header-column-separator-color: #cbd5e1;--ag-header-column-separator-width: 1px;--ag-header-column-resize-handle-display: block;--ag-header-column-resize-handle-color: #cbd5e1;--ag-odd-row-background-color: #fafbfc;--ag-row-hover-color: #f1f5f9;--ag-selected-row-background-color: #e2e8f0;--ag-pinned-row-background-color: #f1f5f9;--ag-pinned-row-text-color: #0f172a;--ag-pinned-row-font-weight: 700;--ag-border-color: #cbd5e1;--ag-row-border-color: #e2e8f0;--ag-range-selection-border-color: #475569;--ag-chip-background-color: #94a3b8}.ag-theme-alpine .ag-column-drop-horizontal{background-color:#f1f5f9}.symbol-name-cell{display:flex;flex-direction:column;justify-content:center;padding:4px 0;line-height:1.3;cursor:pointer}.symbol-name-symbol{font-weight:700;font-size:12px;letter-spacing:.25px;color:#1e3a8a}.symbol-name-name{font-size:10px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px;margin-top:1px}.ag-theme-alpine .ag-cell.ag-right-aligned-cell{justify-content:flex-end}.ag-theme-alpine .row-manual{background-color:#fffbeb}.ag-theme-alpine .row-manual:hover{background-color:#fef3c7}.ag-theme-alpine .row-manual .symbol-name-symbol:after{content:" (manual entry)";font-size:9px;color:#d97706;font-weight:400}.two-line-cell{display:flex;flex-direction:column;justify-content:center;padding:4px 0;line-height:1.3}.two-line-right{text-align:right;align-items:flex-end}.two-line-primary{font-weight:600;font-size:12px}.two-line-secondary{font-size:10px;color:var(--text-muted);margin-top:1px}.ag-theme-alpine .cell-user-override{position:relative}.ag-theme-alpine .cell-user-override:after{content:"✎";position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:10px;color:#64748b;opacity:.6}.ag-theme-alpine .ag-cell.cell-account-taxable{color:#64748b!important;background:linear-gradient(90deg,transparent 0%,rgba(100,116,139,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-account-deferred{color:#3b82f6!important;background:linear-gradient(90deg,transparent 0%,rgba(59,130,246,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-account-free{color:#16a34a!important;background:linear-gradient(90deg,transparent 0%,rgba(22,163,74,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-account-inherited{color:#0891b2!important;background:linear-gradient(90deg,transparent 0%,rgba(8,145,178,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-account-other{color:#94a3b8!important}.ag-theme-alpine .ag-cell.cell-tax-qualified{color:#16a34a!important;background:linear-gradient(90deg,transparent 0%,rgba(22,163,74,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-tax-roc{color:#0891b2!important;background:linear-gradient(90deg,transparent 0%,rgba(8,145,178,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-tax-ordinary{color:#64748b!important;background:linear-gradient(90deg,transparent 0%,rgba(100,116,139,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-tax-exempt{color:#059669!important;background:linear-gradient(90deg,transparent 0%,rgba(5,150,105,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-tax-mixed{color:#94a3b8!important}.ag-theme-alpine .ag-cell.cell-freq-weekly{color:#059669!important;background:linear-gradient(90deg,transparent 0%,rgba(5,150,105,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-freq-monthly{color:#16a34a!important;background:linear-gradient(90deg,transparent 0%,rgba(22,163,74,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-freq-quarterly{color:#0891b2!important;background:linear-gradient(90deg,transparent 0%,rgba(8,145,178,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-freq-semiannual{color:#3b82f6!important;background:linear-gradient(90deg,transparent 0%,rgba(59,130,246,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-freq-annual{color:#64748b!important;background:linear-gradient(90deg,transparent 0%,rgba(100,116,139,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-freq-irregular{color:#94a3b8!important}.ag-theme-alpine .ag-cell.cell-class-bdc{color:#1d4ed8!important;background:linear-gradient(90deg,transparent 0%,rgba(29,78,216,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-class-mreit{color:#0891b2!important;background:linear-gradient(90deg,transparent 0%,rgba(8,145,178,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-class-reit{color:#0d9488!important;background:linear-gradient(90deg,transparent 0%,rgba(13,148,136,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-class-mlp{color:#475569!important;background:linear-gradient(90deg,transparent 0%,rgba(71,85,105,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-class-preferred{color:#2563eb!important;background:linear-gradient(90deg,transparent 0%,rgba(37,99,235,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-class-babybond{color:#3b82f6!important;background:linear-gradient(90deg,transparent 0%,rgba(59,130,246,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-class-cef{color:#059669!important;background:linear-gradient(90deg,transparent 0%,rgba(5,150,105,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-class-common{color:#64748b!important}.ag-theme-alpine .ag-cell.cell-class-etf{color:#16a34a!important;background:linear-gradient(90deg,transparent 0%,rgba(22,163,74,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-class-bond{color:#475569!important;background:linear-gradient(90deg,transparent 0%,rgba(71,85,105,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-class-muni{color:#059669!important;background:linear-gradient(90deg,transparent 0%,rgba(5,150,105,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-sector-financials{color:#1d4ed8!important;background:linear-gradient(90deg,transparent 0%,rgba(29,78,216,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-sector-energy{color:#475569!important;background:linear-gradient(90deg,transparent 0%,rgba(71,85,105,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-sector-utilities{color:#0891b2!important;background:linear-gradient(90deg,transparent 0%,rgba(8,145,178,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-sector-realestate{color:#0d9488!important;background:linear-gradient(90deg,transparent 0%,rgba(13,148,136,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-sector-tech{color:#2563eb!important;background:linear-gradient(90deg,transparent 0%,rgba(37,99,235,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-sector-healthcare{color:#059669!important;background:linear-gradient(90deg,transparent 0%,rgba(5,150,105,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-sector-industrials{color:#64748b!important;background:linear-gradient(90deg,transparent 0%,rgba(100,116,139,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-sector-consumer{color:#16a34a!important;background:linear-gradient(90deg,transparent 0%,rgba(22,163,74,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-sector-comm{color:#3b82f6!important;background:linear-gradient(90deg,transparent 0%,rgba(59,130,246,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-sector-materials{color:#475569!important;background:linear-gradient(90deg,transparent 0%,rgba(71,85,105,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-sector-other{color:#94a3b8!important}.ag-theme-alpine .ag-cell.cell-cappos-senior{color:#059669!important;background:linear-gradient(90deg,transparent 0%,rgba(5,150,105,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-cappos-sub{color:#0891b2!important;background:linear-gradient(90deg,transparent 0%,rgba(8,145,178,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-cappos-pref{color:#3b82f6!important;background:linear-gradient(90deg,transparent 0%,rgba(59,130,246,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-cappos-common{color:#64748b!important;background:linear-gradient(90deg,transparent 0%,rgba(100,116,139,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-incstruct-fixed{color:#059669!important;background:linear-gradient(90deg,transparent 0%,rgba(5,150,105,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-incstruct-floating{color:#0891b2!important;background:linear-gradient(90deg,transparent 0%,rgba(8,145,178,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-incstruct-ftf{color:#3b82f6!important;background:linear-gradient(90deg,transparent 0%,rgba(59,130,246,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-incstruct-managed{color:#16a34a!important;background:linear-gradient(90deg,transparent 0%,rgba(22,163,74,.08) 100%)!important}.ag-theme-alpine .ag-cell.cell-incstruct-none{color:#94a3b8!important}.toolbar-buttons{display:flex;align-items:center;gap:.5rem;margin-left:auto}.refresh-button{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:var(--surface);border:1px solid var(--border);border-radius:.375rem;font-size:.8125rem;font-weight:500;color:var(--text);cursor:pointer;transition:all .15s}.refresh-button:hover:not(:disabled){background:var(--background);border-color:var(--primary);color:var(--primary)}.refresh-button:disabled{opacity:.7;cursor:not-allowed}.refresh-button.refreshing{color:var(--primary);border-color:var(--primary)}.refresh-icon{font-size:1rem;font-weight:700}.refresh-icon.spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.export-container{position:relative}.export-button{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background:var(--surface);border:1px solid var(--border);border-radius:.375rem;font-size:.8125rem;font-weight:500;color:var(--text);cursor:pointer;transition:all .15s}.export-button:hover{background:var(--background);border-color:var(--secondary)}.export-icon{font-size:.875rem}.export-menu{position:absolute;top:100%;right:0;margin-top:.25rem;min-width:180px;background:var(--surface);border:1px solid var(--border);border-radius:.5rem;box-shadow:0 10px 15px -3px #0000001a;z-index:100;overflow:hidden}.export-menu-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.625rem .75rem;background:transparent;border:none;font-size:.8125rem;font-weight:500;color:var(--text);text-align:left;cursor:pointer;transition:background .15s}.export-menu-item:hover{background:var(--background)}.export-item-icon{font-size:1rem}.views-container{position:relative}.views-button{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background:var(--surface);border:1px solid var(--border);border-radius:.375rem;font-size:.8125rem;font-weight:500;color:var(--text);cursor:pointer;transition:all .15s}.views-button:hover{background:var(--background);border-color:var(--secondary)}.views-icon{font-size:.875rem}.dropdown-arrow{font-size:.625rem;color:var(--text-muted)}.views-menu{position:absolute;top:100%;right:0;margin-top:.25rem;min-width:220px;background:var(--surface);border:1px solid var(--border);border-radius:.5rem;box-shadow:0 10px 15px -3px #0000001a;z-index:100;overflow:hidden}.views-menu-section{padding:.5rem .75rem;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:var(--background)}.views-menu-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;cursor:pointer;transition:background .15s}.views-menu-item:hover{background:var(--background)}.views-menu-item.selected{background:#dbeafe}.view-name{flex:1;font-size:.8125rem;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.default-badge{margin-left:.5rem;padding:.125rem .375rem;font-size:.625rem;font-weight:600;text-transform:uppercase;color:var(--primary);background:#dbeafe;border-radius:.25rem}.view-actions{display:flex;gap:.25rem;opacity:0;transition:opacity .15s}.views-menu-item:hover .view-actions{opacity:1}.view-action-btn{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;padding:0;background:transparent;border:none;border-radius:.25rem;font-size:.875rem;color:var(--text-muted);cursor:pointer;transition:all .15s}.view-action-btn:hover{background:var(--background);color:var(--text)}.view-action-btn.delete:hover{color:var(--danger)}.views-menu-divider{height:1px;background:var(--border);margin:.25rem 0}.views-menu-action{display:block;width:100%;padding:.625rem .75rem;background:transparent;border:none;font-size:.8125rem;font-weight:500;color:var(--accent);text-align:left;cursor:pointer;transition:background .15s}.views-menu-action:hover{background:var(--background)}.save-view-dialog{position:absolute;top:100%;right:0;margin-top:.25rem;padding:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:.5rem;box-shadow:0 10px 15px -3px #0000001a;z-index:100;display:flex;gap:.5rem}.save-view-dialog input{padding:.5rem .75rem;border:1px solid var(--border);border-radius:.375rem;font-size:.8125rem;width:160px}.save-view-dialog input:focus{outline:none;border-color:var(--primary)}.save-view-dialog button{padding:.5rem .75rem;border-radius:.375rem;font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .15s}.save-view-dialog button:first-of-type{background:var(--primary);border:1px solid var(--primary);color:#fff}.save-view-dialog button:first-of-type:hover:not(:disabled){background:var(--primary-hover)}.save-view-dialog button:first-of-type:disabled{opacity:.5;cursor:not-allowed}.save-view-dialog button:last-of-type{background:var(--surface);border:1px solid var(--border);color:var(--text)}.save-view-dialog button:last-of-type:hover{background:var(--background)}.detail-drawer{width:500px;height:100%;background:#fff;border-left:1px solid #e2e8f0;display:flex;flex-direction:column;overflow:hidden;flex-shrink:0}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#4f46e5;color:#fff;min-height:52px}.drawer-header-info{display:flex;flex-direction:column;gap:2px}.drawer-symbol{font-size:17px;font-weight:700;color:#fff}.drawer-name{font-size:13px;color:#ffffffd9;max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer-close{background:none;border:none;font-size:24px;cursor:pointer;color:#ffffffe6;padding:0 4px;line-height:1}.drawer-close:hover{color:#fff}.drawer-body{flex:1;overflow-y:auto;padding:0}.drawer-section{border-bottom:1px solid #e2e8f0}.drawer-section-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#1e293b;background:#e2e8f0;padding:6px 14px}.drawer-field{display:flex;justify-content:space-between;align-items:center;padding:6px 14px;border-bottom:1px solid #f1f5f9;min-height:34px}.drawer-field:last-child{border-bottom:none}.drawer-field-label{font-size:13px;color:#64748b;flex-shrink:0}.drawer-field-value{font-size:14px;color:#1e293b;text-align:right;font-variant-numeric:tabular-nums}.drawer-field-value.editable{cursor:pointer;border-bottom:1px dashed #93c5fd;padding-bottom:1px}.drawer-field-value.editable:hover{color:#2563eb;border-bottom-color:#2563eb}.drawer-field-editable{cursor:pointer;transition:background-color .15s}.drawer-field-editable:hover{background-color:#eff6ff}.drawer-field-input{width:160px;text-align:right;border:1px solid #3b82f6;border-radius:4px;padding:3px 8px;font-size:14px;outline:none;font-variant-numeric:tabular-nums;box-shadow:0 0 0 2px #3b82f626}.drawer-field-select{border:1px solid #cbd5e1;border-radius:4px;padding:3px 8px;font-size:14px;background:#fff;color:#1e293b;max-width:180px}.drawer-field-select:hover{border-color:#93c5fd}.drawer-field-select:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 2px #3b82f626}.drawer-notes{width:100%;border:none;padding:8px 14px;font-size:14px;resize:vertical;min-height:60px;color:#1e293b;font-family:inherit}.drawer-notes:focus{outline:none;background:#f8fafc}.drawer-notes::placeholder{color:#94a3b8}.summary-bar{display:flex;align-items:flex-start;gap:1.5rem;margin-left:1.25rem;min-height:52px;padding-top:.25rem}.summary-item{display:flex;flex-direction:column;gap:.125rem}.summary-divider{width:1px;height:2.25rem;background-color:#babfc7;align-self:stretch}.summary-row{display:flex;align-items:baseline;gap:.375rem}.summary-label{font-size:.8rem;font-weight:600;color:var(--text);white-space:nowrap}.summary-label:after{content:":"}.summary-value{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.9rem;font-weight:700;color:#1d4ed8;font-variant-numeric:tabular-nums lining-nums;white-space:nowrap}.summary-value.positive{color:var(--success)}.summary-value.negative{color:var(--danger)}.summary-label-sub{font-size:.75rem;font-weight:600;color:#64748b;white-space:nowrap}.summary-label-sub:after{content:":"}.summary-value-sub{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.8rem;font-weight:600;color:#64748b;font-variant-numeric:tabular-nums lining-nums;white-space:nowrap}.summary-value-sub.positive{color:var(--success)}.summary-value-sub.negative{color:var(--danger)}.summary-subvalue{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.75rem;font-weight:500;color:#64748b;font-variant-numeric:tabular-nums lining-nums;white-space:nowrap}.summary-subvalue.positive{color:var(--success)}.summary-subvalue.negative{color:var(--danger)}.viz-icon-btn{display:flex;flex-direction:column;align-items:center;gap:.125rem;padding:.375rem .5rem;background:transparent;border:1px solid transparent;border-radius:.375rem;cursor:pointer;transition:all .15s ease}.viz-icon-btn:hover{background:#6366f114;border-color:#6366f133}.viz-icon-btn:active{transform:scale(.98)}.viz-icon-btn.active{background:#6366f11f;border-color:#6366f159}.viz-icon-label{font-size:.625rem;font-weight:500;color:#64748b;text-transform:uppercase;letter-spacing:.025em}.modal-add-holdings .modal-body{padding:1.5rem}.input-mode-tabs{display:flex;gap:0;margin-bottom:1rem;border:1px solid var(--border);border-radius:.375rem;overflow:hidden}.input-mode-tab{flex:1;padding:.625rem 1rem;background:var(--background);border:none;font-size:.8125rem;font-weight:500;color:var(--text-muted);cursor:pointer;transition:all .15s}.input-mode-tab+.input-mode-tab{border-left:1px solid var(--border)}.input-mode-tab:hover{background:#f1f5f9;color:var(--text)}.input-mode-tab.active{background:var(--surface);color:var(--text);font-weight:600}.format-note{font-size:.6875rem;color:var(--text-muted)}.drop-zone{border:2px dashed var(--border);border-radius:.5rem;padding:2.5rem 1.5rem;text-align:center;cursor:pointer;transition:all .2s;background:var(--background)}.drop-zone:hover{border-color:var(--primary);background:#f1f5f9}.drop-zone.active{border-color:var(--primary);background:#dbeafe}.drop-zone-content{display:flex;flex-direction:column;align-items:center;gap:.75rem}.drop-zone-icon{color:var(--text-muted)}.drop-zone.active .drop-zone-icon{color:var(--primary)}.drop-zone-text{font-size:.875rem;color:var(--text-muted);line-height:1.5}.drop-zone-text strong{color:var(--text)}.csv-format-help{margin-top:1rem;padding:.75rem;background:#f8fafc;border-radius:.375rem;font-size:.75rem;color:var(--text-muted);line-height:1.6}.csv-format-help strong{color:var(--text)}.format-example{display:block;margin-top:.5rem;font-family:monospace;font-size:.6875rem;color:var(--text-muted)}.upload-result{padding:.75rem 1rem;border-radius:.375rem;font-size:.875rem;margin-bottom:1rem}.upload-result.success{background:var(--success-light);color:var(--success);border:1px solid var(--success)}.upload-result.has-errors{background:#fef3c7;color:#92400e;border:1px solid #f59e0b}.result-errors{color:var(--danger)}.parsed-preview{margin-bottom:.5rem}.preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.preview-count{font-size:.875rem;font-weight:500;color:var(--text)}.invalid-count{color:var(--danger)}.preview-table-container{border:1px solid var(--border);border-radius:.375rem;overflow:hidden;max-height:50vh;overflow-y:auto}.preview-table{width:100%;border-collapse:collapse;font-size:.8125rem}.preview-table th{background:#f1f5f9;padding:.5rem .75rem;text-align:left;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.025em;color:var(--text-muted);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:1}.preview-table th.sortable-header{cursor:pointer;-webkit-user-select:none;user-select:none}.preview-table th.sortable-header:hover{color:var(--text);background:#e2e8f0}.preview-table td{padding:.5rem .75rem;border-bottom:1px solid var(--border-light)}.preview-table tbody tr:last-child td{border-bottom:none}.preview-table .invalid-row{background:#fef2f2}.preview-table .status-cell{text-align:center;width:50px}.status-valid{color:var(--success);font-weight:600;font-size:.75rem}.status-invalid{color:var(--danger);font-weight:600;font-size:.75rem;cursor:help}.preview-more{padding:.5rem .75rem;font-size:.75rem;color:var(--text-muted);background:#f8fafc;text-align:center}.ai-parsing-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem;gap:1rem}.ai-parsing-spinner .spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:ai-spin .8s linear infinite}@keyframes ai-spin{to{transform:rotate(360deg)}}.ai-parsing-spinner .spinner-text{font-size:.875rem;color:var(--text-muted);transition:opacity .3s}.ai-progress-bar{width:200px;height:4px;background:var(--border);border-radius:2px;overflow:hidden}.ai-progress-fill{height:100%;background:var(--primary);border-radius:2px;transition:width 1s linear}.spinner-elapsed{font-size:.75rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.ai-warnings{display:flex;flex-direction:column;gap:.375rem;margin-bottom:.75rem}.ai-warning{padding:.5rem .75rem;background:#fef3c7;border:1px solid #f59e0b;border-radius:.375rem;font-size:.75rem;color:#92400e;line-height:1.4}.ai-summary{font-size:.8125rem;color:var(--text-muted);margin-bottom:.5rem}.confidence-dot{display:inline-block;width:10px;height:10px;border-radius:50%;cursor:help}.confidence-dot.high{background:#22c55e}.confidence-dot.medium{background:#f59e0b}.confidence-dot.low{background:#ef4444}.preview-table .editable-cell{cursor:text}.preview-table .editable-cell input,.preview-table .editable-cell select{width:100%;padding:.25rem .375rem;border:1px solid transparent;border-radius:.25rem;background:transparent;font-size:.8125rem;font-family:inherit;color:inherit}.preview-table .editable-cell input:hover,.preview-table .editable-cell select:hover{border-color:var(--border)}.preview-table .editable-cell input:focus,.preview-table .editable-cell select:focus{outline:none;border-color:var(--primary);background:var(--surface)}.preview-table .editable-cell input[type=number]{text-align:right;-moz-appearance:textfield}.preview-table .editable-cell input[type=number]::-webkit-inner-spin-button,.preview-table .editable-cell input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}.preview-table .editable-cell select{cursor:pointer;-webkit-appearance:none;appearance:none;padding-right:1.25rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748b' d='M3 5l3 3 3-3'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .25rem center}.preview-table tr.confidence-low{background:#fef2f2}.preview-table tr.confidence-medium{background:#fffbeb}.preview-table tr.excluded{opacity:.4}.preview-table tr.excluded td{text-decoration:line-through}.preview-table .checkbox-cell{width:32px;text-align:center}.preview-table .checkbox-cell input[type=checkbox]{cursor:pointer;width:15px;height:15px}.type-toggle{cursor:pointer;padding:.125rem .375rem;border-radius:.25rem;font-size:.75rem;border:1px solid transparent;background:none;color:inherit}.type-toggle:hover{border-color:var(--border);background:var(--background)}.ai-preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.ai-preview-header .select-count{font-size:.8125rem;color:var(--text-muted)}.ai-preview-header .select-count strong{color:var(--text)}.plan-summary{display:flex;flex-direction:column;gap:1.25rem;overflow-y:auto;padding-bottom:1.5rem}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:.5rem;padding:1.25rem;display:flex;flex-direction:column;gap:.25rem}.kpi-label{font-size:.75rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.025em}.kpi-value{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1.5rem;font-weight:700;color:var(--text);line-height:1.2;font-variant-numeric:tabular-nums lining-nums}.kpi-sub{font-size:.8rem;color:var(--text-muted);margin-top:.125rem}.kpi-positive{color:var(--success)}.kpi-negative{color:var(--danger)}.kpi-card.kpi-card-highlight{background:linear-gradient(135deg,#3b82f614,#8b5cf614);border-color:#3b82f64d}.kpi-card.clickable,.chart-card.clickable,.upcoming-dividends.clickable{cursor:pointer;transition:border-color .15s,box-shadow .15s}.kpi-card.clickable:hover,.chart-card.clickable:hover,.upcoming-dividends.clickable:hover{border-color:var(--accent);box-shadow:0 1px 4px #0000000f}.chart-row-with-sidebar{display:grid;grid-template-columns:3fr 1fr;gap:1rem}.chart-card-bar{min-width:0}.performance-sidebar{display:flex;flex-direction:column;margin-left:4.5rem}.performance-content{flex:1;display:flex;flex-direction:column;justify-content:center;gap:1.5rem}.performance-item{display:flex;flex-direction:column;align-items:flex-start;text-align:left}.performance-label{font-size:.75rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.025em;margin-bottom:.25rem}.performance-value{font-size:1.5rem;font-weight:700;line-height:1.2}.performance-value.positive{color:var(--success)}.performance-value.negative{color:var(--danger)}.performance-percent{font-size:.8rem;font-weight:600}.performance-percent.positive{color:var(--success)}.performance-percent.negative{color:var(--danger)}.performance-divider{width:50%;height:1px;background:var(--border);margin:0 auto}.charts-row{display:flex;gap:1.25rem}.charts-row .chart-card{flex:0 0 auto;width:450px}.charts-row.charts-row-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.charts-row.charts-row-4 .chart-card{width:auto}.charts-row.charts-row-4 .chart-container{height:200px}.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:.5rem;padding:1.25rem;display:flex;flex-direction:column}.chart-title{font-size:.875rem;font-weight:600;color:var(--text);margin-bottom:1rem}.chart-container{width:100%;height:260px}.upcoming-dividends{background:var(--surface);border:1px solid var(--border);border-radius:.5rem;padding:1rem 1.25rem}.upcoming-dividends-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.upcoming-dividends-title{font-size:.875rem;font-weight:600;color:var(--text)}.upcoming-dividends-summary{font-size:.8125rem;color:var(--text-secondary)}.upcoming-dividends-list{display:grid;grid-template-columns:repeat(4,1fr);gap:.375rem 1.5rem}.upcoming-dividend-row{display:flex;align-items:center;gap:.5rem;font-size:.8125rem}.upcoming-dividend-date{color:var(--text-secondary);min-width:3.5rem}.upcoming-dividend-symbol{font-weight:600;color:var(--text);flex:1}.upcoming-dividend-amount{font-weight:600;color:var(--success)}.upcoming-dividend-more{font-size:.8125rem;color:var(--text-secondary);font-style:italic}.market-snapshot{display:flex;align-items:center;justify-content:space-evenly;padding:.75rem 1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:.5rem;font-size:.8125rem}.market-snapshot-item{display:flex;align-items:center;gap:.375rem}.market-snapshot-name{color:var(--text-secondary)}.market-snapshot-val{font-weight:600;color:var(--text)}.market-snapshot-chg{font-weight:600}.market-snapshot-chg.positive{color:var(--success)}.market-snapshot-chg.negative{color:var(--danger)}.market-snapshot-divider{width:1px;height:2rem;background-color:#babfc7;align-self:center}.upcoming-dividends-row{display:flex;gap:1.5rem;flex-wrap:wrap}.upcoming-month{display:flex;align-items:baseline;gap:.5rem}.upcoming-month-name{font-weight:600;font-size:.875rem;color:var(--text)}.upcoming-month-amount{font-size:.875rem;font-weight:600;color:var(--success)}.upcoming-month-count{font-size:.75rem;color:var(--text-muted)}.upcoming-divider{color:var(--border);font-size:.875rem;-webkit-user-select:none;user-select:none}.plan-gear-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;background:transparent;border:1px solid var(--border);border-radius:.375rem;cursor:pointer;color:var(--text-muted);font-size:1.25rem;transition:all .15s}.plan-gear-btn:hover{color:var(--text);background:var(--background)}.plan-mgmt-content{padding:1.5rem}.plan-mgmt-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.plan-mgmt-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;border:1px solid var(--border);border-radius:.375rem;background:var(--background)}.plan-mgmt-item.active{border-color:var(--accent);background:var(--accent-light)}.plan-mgmt-name{flex:1;font-size:.875rem;font-weight:500}.plan-mgmt-name input{width:100%;font-size:.875rem;font-weight:500;padding:.25rem .5rem;border:1px solid var(--accent);border-radius:.25rem;outline:none;font-family:var(--font-sans)}.plan-mgmt-meta{font-size:.75rem;color:var(--text-muted);white-space:nowrap}.plan-mgmt-badge{font-size:.65rem;font-weight:600;text-transform:uppercase;color:var(--accent);background:var(--accent-light);padding:.125rem .375rem;border-radius:.25rem;letter-spacing:.03em}.plan-mgmt-actions{display:flex;gap:.25rem}.plan-mgmt-actions button{background:transparent;border:none;cursor:pointer;padding:.25rem .375rem;border-radius:.25rem;font-size:.8rem;color:var(--text-muted);transition:all .15s}.plan-mgmt-actions button:hover{color:var(--text);background:var(--surface)}.plan-mgmt-actions button.danger:hover{color:var(--danger)}.chart-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:.875rem}@media(max-width:900px){.kpi-row{grid-template-columns:repeat(2,1fr)}.charts-row{grid-template-columns:1fr}}@media(max-width:600px){.kpi-row{grid-template-columns:1fr}}.income-source-tabs{display:flex;align-items:center;gap:0;margin-bottom:2px}.income-source-tab{padding:0;padding-right:.75rem;background:transparent;border:none;font-size:.875rem;font-weight:500;color:#94a3b8;cursor:pointer;transition:all .15s}.income-source-tab:not(:last-child):after{content:"|";margin-left:.75rem;color:#cbd5e1;font-weight:400}.income-source-tab:hover{color:#64748b}.income-source-tab.active{color:#1e293b;font-weight:600}.section-label{font-size:.875rem;font-weight:600;color:#1e293b}.income-tabs{display:flex;align-items:center;gap:0;background:var(--background);border-radius:.375rem;border:1px solid var(--border)}.income-tab{padding:.5rem .875rem;background:transparent;border:none;font-size:.8125rem;font-weight:500;color:var(--text-muted);cursor:pointer;transition:all .15s;white-space:nowrap}.income-tab:not(:last-child){border-right:1px solid var(--border)}.income-tab:hover{color:var(--text);background:var(--surface)}.income-tab.active{color:var(--text);background:var(--surface);font-weight:600}.tab-visibility-menu{position:relative;display:flex;align-items:center}.tab-visibility-btn{display:flex;align-items:center;justify-content:center;width:40px;height:100%;padding:.5rem 0;background:transparent;border:none;border-left:1px solid var(--border);font-size:1.25rem;color:var(--text-muted);cursor:pointer;transition:all .15s}.tab-visibility-btn:hover{color:var(--text);background:var(--surface)}.tab-visibility-popover{position:absolute;top:100%;right:0;margin-top:.25rem;min-width:180px;background:var(--surface);border:1px solid var(--border);border-radius:.5rem;box-shadow:0 10px 15px -3px #0000001a;z-index:100;overflow:hidden}.tab-visibility-header{padding:.5rem .75rem;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:var(--background)}.tab-visibility-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.8125rem;color:var(--text);cursor:pointer;transition:background .15s}.tab-visibility-item:hover{background:var(--background)}.tab-visibility-item input[type=checkbox]{margin:0}@media(max-width:768px){.dashboard-header{flex-direction:column;gap:.75rem;padding:.75rem 1rem}.header-left,.header-right{width:100%;justify-content:space-between}.portfolio-select{flex:1}.dashboard-main{padding:.75rem 1rem}}
