:root{--color-bg:#fafaf8;--color-bg-results:#f5f4f0;--color-text-primary:#1a1a1a;--color-text-secondary:#6b6b6b;--color-border:#e0ddd8;--color-border-focus:#2a7f8f;--color-accent:#2a7f8f;--color-accent-hover:#237080;--color-accent-light:#2a7f8f1f;--color-accent-medium:#2a7f8f40;--color-positive:#2d8a4e;--color-caution:#c27d2a;--color-danger:#c44536;--font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-size-body:14px;--font-size-section:18px;--font-size-headline:28px;--font-weight-regular:400;--font-weight-semibold:600;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;--space-10:40px;--radius-card:4px;--radius-input:4px;--transition-fast:.15s ease;--z-sticky:5;--z-tooltip:10}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-family);font-size:var(--font-size-body);font-weight:var(--font-weight-regular);color:var(--color-text-primary);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;line-height:1.5}.tabular-nums{font-variant-numeric:tabular-nums}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);margin:0}p{margin:0}button{font-family:inherit;font-size:inherit;cursor:pointer}input,select{font-family:inherit;font-size:inherit}#root{min-height:100vh}.app{max-width:1200px;padding:0 var(--space-4);flex-direction:column;min-height:100vh;margin:0 auto;display:flex}.app-header{padding:var(--space-6) 0 var(--space-4)}.app-header h1{font-size:var(--font-size-headline);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.app-subtitle{font-size:var(--font-size-body);color:var(--color-text-secondary);margin:var(--space-1) 0 0}.app-tabs{gap:var(--space-1);border-bottom:1px solid var(--color-border);display:flex}.app-tab{padding:var(--space-2) var(--space-4);font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);transition:color var(--transition-fast), border-color var(--transition-fast);border-bottom:2px solid #0000;margin-bottom:-1px;text-decoration:none}.app-tab:hover{color:var(--color-text-primary)}.app-tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.simulation-page{gap:var(--space-8);padding:var(--space-6) 0;flex:1;grid-template-columns:1fr 1fr;display:grid}.portfolio-page{gap:var(--space-6);max-width:600px;padding:var(--space-6) 0;flex-direction:column;flex:1;display:flex}.accounts-section{gap:var(--space-3);flex-direction:column;display:flex}.input-panel{gap:var(--space-6);flex-direction:column;display:flex}.results-panel{background:var(--color-bg-results);border-radius:var(--radius-card);padding:var(--space-6)}.results-placeholder{min-height:200px;color:var(--color-text-secondary);justify-content:center;align-items:center;display:flex}.results-running{justify-content:center;align-items:center;gap:var(--space-3);min-height:200px;color:var(--color-text-secondary);flex-direction:column;display:flex}.results-running .progress-bar{max-width:300px}.sync-status{border-top:1px solid var(--color-border);padding:var(--space-2) 0}.sync-status-toggle{width:100%;padding:var(--space-1) 0;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;font-size:12px;line-height:1.5;display:flex}.sync-status-chevron{margin-left:var(--space-2);font-size:10px}.sync-status-detail{padding:var(--space-1) 0 0 var(--space-3)}.sync-status-row{color:var(--color-text-secondary);padding:var(--space-1) 0;justify-content:space-between;font-size:12px;display:flex}.sync-status-store-name{font-weight:var(--font-weight-semibold)}.sync-trigger{width:100%;padding:var(--space-2) var(--space-4);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-card);cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast);background:0 0;font-size:12px}.sync-trigger:hover{color:var(--color-accent);border-color:var(--color-accent)}.dialog-base{border:1px solid var(--color-border);border-radius:var(--radius-card);max-width:480px;width:calc(100% - var(--space-8));background:var(--color-bg);color:var(--color-text-primary);font-family:var(--font-family);font-size:var(--font-size-body);margin:auto;padding:0}.dialog-base::backdrop{background:#0006}.dialog-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.dialog-header h2{font-size:var(--font-size-section);margin:0}.dialog-close{color:var(--color-text-secondary);cursor:pointer;padding:var(--space-1);background:0 0;border:none;font-size:20px;line-height:1}.dialog-close:hover{color:var(--color-text-primary)}.dialog-body{padding:var(--space-5)}.dialog-body .form-group{margin-bottom:var(--space-4)}.dialog-body .form-group label{font-weight:var(--font-weight-semibold);margin-bottom:var(--space-1);font-size:var(--font-size-body);display:block}.dialog-body .form-group input[type=password],.dialog-body .form-group input[type=text],.dialog-body .form-group textarea{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-input);font-size:var(--font-size-body);font-family:var(--font-family);background:var(--color-bg);color:var(--color-text-primary)}.dialog-body .form-group input[type=password]:focus,.dialog-body .form-group input[type=text]:focus,.dialog-body .form-group textarea:focus{border-color:var(--color-border-focus);outline:none}.passphrase-input-row input[type=password],.passphrase-input-row input[type=text]{background:0 0;border:none;border-radius:0}.passphrase-input-row input[type=password]:focus,.passphrase-input-row input[type=text]:focus{border-color:#0000}.field-hint{color:var(--color-text-secondary);margin-top:var(--space-1);font-size:12px;line-height:1.4}.dialog-body .code-input{resize:vertical;font-family:monospace;font-size:12px}.dialog-body .btn-primary{padding:var(--space-2) var(--space-4);background:var(--color-accent);color:#fff;border-radius:var(--radius-card);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background var(--transition-fast);border:none;display:inline-block}.dialog-body .btn-primary:hover{background:var(--color-accent-hover)}.dialog-body .btn-primary:disabled{opacity:.5;cursor:not-allowed}.dialog-body .btn-secondary{padding:var(--space-2) var(--space-4);color:var(--color-accent);border:1px solid var(--color-accent);border-radius:var(--radius-card);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;display:inline-block}.dialog-body .btn-secondary:hover{background:var(--color-accent-light)}.sync-role-choice{text-align:center}.sync-role-choice>p:first-child{margin-bottom:var(--space-4);line-height:1.5}.sync-role-buttons{gap:var(--space-3);margin-bottom:var(--space-3);justify-content:center;display:flex}.qr-code-display{text-align:center;margin:var(--space-3) 0}.qr-svg-container{width:100%;max-width:240px;margin-bottom:var(--space-3);display:inline-block}.qr-svg-container img{width:100%;height:auto}.qr-actions{margin-top:var(--space-2)}.connection-status{color:var(--color-text-secondary);margin-top:var(--space-3);font-size:12px}.sync-success{text-align:center;padding:var(--space-4) 0}.sync-success>p:first-child{font-weight:var(--font-weight-semibold);color:var(--color-positive)}.sync-error{text-align:center;padding:var(--space-4) 0}.sync-error>p:first-child{color:var(--color-danger);margin-bottom:var(--space-4)}.sync-offer-show hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-4) 0}.sync-offer-show>p,.sync-accept-setup>p,.sync-answer-show>p,.sync-accepting>p{margin-bottom:var(--space-3)}.passphrase-input-row{border:1px solid var(--color-border);border-radius:var(--radius-input);background:var(--color-bg);align-items:center;display:flex}.passphrase-input-row:focus-within{border-color:var(--color-border-focus)}.passphrase-input-row input{min-width:0;padding:var(--space-2) var(--space-3);font-size:var(--font-size-body);font-family:var(--font-family);color:var(--color-text-primary);background:0 0;border:none;outline:none;flex:1}.btn-inline{color:var(--color-accent);font-size:12px;font-weight:var(--font-weight-semibold);padding:var(--space-2) var(--space-2);cursor:pointer;white-space:nowrap;transition:color var(--transition-fast);background:0 0;border:none}.btn-inline:hover{color:var(--color-accent-hover)}.btn-inline:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px;border-radius:var(--radius-input)}.app-footer{border-top:1px solid var(--color-border);padding:var(--space-4) 0}.app-footer p{color:var(--color-text-secondary);margin:0;font-size:12px;line-height:1.5}.section-header{font-size:var(--font-size-section);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-3)}.portfolio-total{font-weight:var(--font-weight-regular);color:var(--color-text-secondary)}.input-row{gap:var(--space-1);margin-bottom:var(--space-3);flex-direction:column;display:flex}.input-row label{font-size:var(--font-size-body);color:var(--color-text-primary);align-items:center;gap:var(--space-1);display:flex}input[type=text],input[type=number],select{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-input);font-size:var(--font-size-body);color:var(--color-text-primary);transition:border-color var(--transition-fast);background:#fff;min-height:36px}input[type=text]:focus,input[type=number]:focus,select:focus{border-color:var(--color-border-focus);outline:none}.text-input-container{min-width:0;container-type:inline-size}.text-input-container>input{width:100%}.text-input-container>input::placeholder{font-size:clamp(10px, 11cqi, var(--font-size-body))}.input-with-prefix,.input-with-suffix{align-items:center;display:flex}.input-prefix,.input-suffix{padding:var(--space-2) var(--space-2);color:var(--color-text-secondary);font-size:var(--font-size-body)}.input-with-prefix input,.input-with-suffix input{flex:1;min-width:0}.account-group{border:1px solid var(--color-border);border-radius:var(--radius-card);overflow:hidden}.account-header{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-3);cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--color-bg-results);grid-template-columns:auto 1fr auto auto auto;display:grid;position:relative}.account-header:before{content:"";background:var(--color-accent-medium);border-radius:var(--radius-card) 0 0 0;width:3px;position:absolute;top:0;bottom:0;left:0}.account-collapse-toggle{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;grid-column:1;width:20px;padding:0;font-size:16px}.account-name{grid-column:2;min-width:0}.account-name>input{font-weight:var(--font-weight-semibold);padding:var(--space-1) var(--space-2);text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;overflow:hidden}.account-name>input:focus{border:1px solid var(--color-border-focus);border-radius:var(--radius-input);background:#fff;outline:none}.account-type{grid-column:3;max-width:160px}.account-total{color:var(--color-text-secondary);font-size:var(--font-size-body);white-space:nowrap;grid-column:4}.account-remove{color:var(--color-text-secondary);padding:0 var(--space-1);cursor:pointer;background:0 0;border:none;grid-column:5;font-size:18px;line-height:1}.account-remove:hover{color:var(--color-danger)}.inherited-ira-settings{padding:var(--space-2) var(--space-3);border-top:1px solid var(--color-border);background:var(--color-bg-results);gap:var(--space-2);flex-direction:column;display:flex}.inherited-ira-row{align-items:flex-end;gap:var(--space-4);flex-wrap:wrap;display:flex}.inherited-field-label{gap:var(--space-1);font-size:var(--font-size-body);color:var(--color-text-primary);flex-direction:column;display:flex}.inherited-year-input,.inherited-numeric-input{width:80px}.inherited-beneficiary-select{font-size:var(--font-size-body);padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-primary);border-radius:4px}.inherited-hint{color:var(--color-text-secondary);font-size:12px;line-height:1.4}.inherited-hint-spouse{font-style:italic}.source-allocation-settings{padding:var(--space-2) var(--space-3);border-top:1px solid var(--color-border);background:var(--color-bg-results)}.source-allocation-hint{margin:0 0 var(--space-2) 0;color:var(--color-text-secondary);font-size:12px;line-height:1.4}.source-allocation-fields{gap:var(--space-3);flex-wrap:wrap;display:flex}.source-allocation-label{align-items:center;gap:var(--space-1);color:var(--color-text-primary);font-size:14px;display:flex}.source-allocation-input{width:60px}.source-allocation-unit{color:var(--color-text-secondary);font-size:14px}.source-allocation-total{margin-top:var(--space-1);color:var(--color-text-secondary);font-size:12px;display:block}.source-allocation-total--invalid{color:var(--color-danger)}.account-holdings{padding:var(--space-2) var(--space-3) var(--space-3);gap:var(--space-2);border-top:1px solid var(--color-border);flex-direction:column;display:flex}.holding-row{gap:var(--space-2);grid-template-columns:130px auto auto 1fr auto;align-items:start;display:grid}.holding-ticker>input{text-transform:uppercase}.holding-ticker>input::placeholder{text-transform:none}.holding-amount{flex-direction:column;gap:2px;display:flex}.holding-value,.holding-shares{width:110px}.holding-amount-secondary{align-items:center;gap:var(--space-1);min-height:16px;display:flex}.holding-resolved-value{color:var(--color-text-secondary);white-space:nowrap;font-size:11px}.holding-price-status{font-size:11px;font-weight:var(--font-weight-semibold)}.holding-price-status.loading{color:var(--color-text-secondary)}.holding-price-status.error{color:var(--color-danger)}.holding-api-hint{color:var(--color-text-secondary);white-space:nowrap;font-size:10px;font-style:italic}.holding-mode-toggle{border:1px solid var(--color-border);border-radius:var(--radius-card);color:var(--color-text-secondary);font-size:12px;font-weight:var(--font-weight-semibold);cursor:pointer;background:0 0;justify-content:center;align-items:center;width:22px;height:22px;padding:0;transition:border-color .15s,color .15s;display:flex}.holding-mode-toggle:hover{border-color:var(--color-accent);color:var(--color-accent)}.holding-asset-class{grid-column:4;min-width:0}.holding-asset-class.loading{opacity:.6}.holding-remove{color:var(--color-text-secondary);padding:0 var(--space-1);cursor:pointer;background:0 0;border:none;grid-column:5;font-size:16px;line-height:1}.holding-remove:hover{color:var(--color-danger)}.add-holding-btn,.add-account-btn{border:1px dashed var(--color-border);border-radius:var(--radius-card);color:var(--color-accent);padding:var(--space-2) var(--space-3);cursor:pointer;font-size:var(--font-size-body);transition:border-color var(--transition-fast), background var(--transition-fast);background:0 0}.add-holding-btn:hover,.add-account-btn:hover{border-color:var(--color-accent);background:var(--color-accent-light)}.sim-count-selector{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.sim-count-label{color:var(--color-text-secondary);font-size:var(--font-size-body)}.sim-count-option{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-input);color:var(--color-text-primary);cursor:pointer;font-size:var(--font-size-body);transition:all var(--transition-fast);background:#fff}.sim-count-option.active{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.sim-count-option:hover:not(.active):not(:disabled){border-color:var(--color-accent)}.run-btn{width:100%;padding:var(--space-3) var(--space-4);background:var(--color-accent);color:#fff;border-radius:var(--radius-input);font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background var(--transition-fast);border:none}.run-btn:hover{background:var(--color-accent-hover)}.sim-running{gap:var(--space-2);flex-direction:column;display:flex}.cancel-btn{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-input);color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-body);background:0 0;align-self:flex-end}.sim-timing{color:var(--color-text-secondary);margin-top:var(--space-1);font-size:12px}.sim-error{color:var(--color-danger);font-size:var(--font-size-body);margin-top:var(--space-2)}.progress-bar{background:var(--color-border);border-radius:3px;width:100%;height:6px;overflow:hidden}.progress-bar-fill{background:var(--color-accent);border-radius:3px;height:100%;transition:width .2s}.info-tooltip-wrapper{align-items:center;display:inline-flex;position:relative}.info-tooltip-trigger{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:0;font-size:14px;line-height:1}.info-tooltip-content{background:var(--color-text-primary);color:#fff;padding:var(--space-2) var(--space-3);border-radius:var(--radius-card);width:max-content;max-width:280px;z-index:var(--z-tooltip);pointer-events:none;font-size:12px;line-height:1.4;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.survival-summary{text-align:center;padding:var(--space-4) 0 var(--space-6)}.survival-rate{font-size:var(--font-size-headline);font-weight:var(--font-weight-semibold);display:block}.survival-description{font-size:var(--font-size-body);color:var(--color-text-secondary);margin-top:var(--space-1)}.survival-positive .survival-rate{color:var(--color-positive)}.survival-caution .survival-rate{color:var(--color-caution)}.survival-danger .survival-rate{color:var(--color-danger)}.fan-chart-container{margin:var(--space-4) 0}.fan-chart-header,.results-table-header{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.fan-chart-header h3,.results-table-header h3{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);margin:0}.dollar-mode-toggle{border:1px solid var(--color-border);border-radius:var(--radius-input);display:flex;overflow:hidden}.dollar-mode-btn{padding:var(--space-1) var(--space-2);color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:#fff;border:none;font-size:12px}.dollar-mode-btn:not(:last-child){border-right:1px solid var(--color-border)}.dollar-mode-btn.active{background:var(--color-accent-light);color:var(--color-accent)}.fan-chart-legend{gap:var(--space-4);color:var(--color-text-secondary);margin-bottom:var(--space-2);font-size:12px;display:flex}.legend-item{align-items:center;gap:var(--space-1);display:flex}.legend-swatch{border-radius:2px;width:12px;height:12px;display:inline-block}.legend-outer{background:var(--color-accent-light)}.legend-inner{background:var(--color-accent-medium)}.legend-line{background:var(--color-accent);width:12px;height:2px;display:inline-block}.crosshair-line{opacity:.5}.crosshair-dot{filter:drop-shadow(0 1px 2px #00000026)}.chart-tooltip-container{opacity:1;transition:opacity .18s ease-in-out;overflow:visible}.chart-tooltip{background:var(--color-text-primary);color:#fff;padding:var(--space-1) var(--space-2);font-size:12px;font-weight:var(--font-weight-semibold);white-space:nowrap;border-radius:4px;line-height:1.4;display:inline-block}.chart-tooltip-label{opacity:.75}.chart-tooltip-value{font-variant-numeric:tabular-nums}.chart-tooltip-year{opacity:.6;font-weight:400}.results-table-scroll{overflow-x:auto}.results-table{border-collapse:collapse;width:100%;font-size:var(--font-size-body)}.results-table th{text-align:right;padding:var(--space-2) var(--space-3);border-bottom:2px solid var(--color-border);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);white-space:nowrap;font-size:12px}.results-table th:first-child{text-align:left}.results-table td{text-align:right;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border)}.results-table td:first-child{text-align:left;font-weight:var(--font-weight-semibold)}.results-dashboard{gap:var(--space-4);flex-direction:column;transition:opacity .3s;display:flex;position:relative}.results-stale{opacity:.55}.stale-banner{z-index:var(--z-sticky);color:var(--color-caution);padding:var(--space-2) var(--space-3);border-radius:var(--radius-card);font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);text-align:center;background:#fef3cd;border:1px solid #f0d68a;position:sticky;top:0}.error-boundary-fallback{padding:var(--space-6);text-align:center;color:var(--color-text-secondary)}.error-boundary-detail{color:var(--color-danger);margin:var(--space-2) 0;font-size:12px}.error-boundary-fallback button{margin-top:var(--space-3);padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-input);cursor:pointer;background:#fff}.owner-advanced-toggle{color:var(--color-text-secondary);cursor:pointer;padding:var(--space-1) 0;align-items:center;gap:var(--space-1);background:0 0;border:none;font-size:12px;display:flex}.owner-advanced-toggle:hover{color:var(--color-text-primary)}.owner-advanced-toggle-icon{font-size:10px}.api-key-settings{border-top:1px solid var(--color-border);padding-top:var(--space-3)}.api-key-toggle{color:var(--color-text-secondary);cursor:pointer;padding:var(--space-1) 0;align-items:center;gap:var(--space-1);background:0 0;border:none;font-size:12px;display:flex}.api-key-toggle:hover{color:var(--color-text-primary)}.api-key-toggle-icon{font-size:10px}.api-key-badge{background:var(--color-positive);color:#fff;margin-left:var(--space-1);border-radius:8px;padding:1px 6px;font-size:10px}.api-key-panel{padding:var(--space-2) 0}.api-key-description{color:var(--color-text-secondary);margin:0 0 var(--space-2);font-size:12px;line-height:1.4}.api-key-description a{color:var(--color-accent)}.api-key-input-row{gap:var(--space-2);align-items:center;display:flex}.api-key-input{flex:1;font-size:12px}.api-key-clear{border:1px solid var(--color-border);border-radius:var(--radius-input);color:var(--color-text-secondary);padding:var(--space-1) var(--space-2);cursor:pointer;background:0 0;font-size:12px}.api-key-clear:hover{border-color:var(--color-danger);color:var(--color-danger)}.encryption-settings{border-top:1px solid var(--color-border);padding-top:var(--space-3)}.encryption-toggle{color:var(--color-text-secondary);cursor:pointer;padding:var(--space-1) 0;align-items:center;gap:var(--space-1);background:0 0;border:none;font-size:12px;display:flex}.encryption-toggle:hover{color:var(--color-text-primary)}.encryption-toggle-icon{font-size:10px}.encryption-badge{background:var(--color-accent);color:#fff;margin-left:var(--space-1);border-radius:8px;padding:1px 6px;font-size:10px}.encryption-panel{padding:var(--space-2) 0}.encryption-description{color:var(--color-text-secondary);margin:0 0 var(--space-2);font-size:12px;line-height:1.4}.encryption-warning{color:var(--color-text-secondary);font-size:12px;font-weight:var(--font-weight-semibold);margin:0 0 var(--space-2);line-height:1.4}.encryption-form{gap:var(--space-2);flex-direction:column;display:flex}.encryption-input{max-width:300px;font-size:12px}.encryption-error{color:var(--color-text-secondary);font-size:12px;font-weight:var(--font-weight-semibold);margin:0}.encryption-buttons{gap:var(--space-2);display:flex}.encryption-action{background:var(--color-accent);color:#fff;border-radius:var(--radius-input);padding:var(--space-1) var(--space-3);cursor:pointer;border:none;font-size:12px}.encryption-action:hover{background:var(--color-accent-hover)}.encryption-action:disabled{opacity:.5;cursor:not-allowed}.encryption-cancel{border:1px solid var(--color-border);border-radius:var(--radius-input);color:var(--color-text-secondary);padding:var(--space-1) var(--space-2);cursor:pointer;background:0 0;font-size:12px}.encryption-cancel:hover{border-color:var(--color-text-secondary)}.unlock-screen{max-width:400px;margin:var(--space-8) auto;text-align:center}.unlock-title{font-size:var(--font-size-section);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-2)}.unlock-description{font-size:var(--font-size-body);color:var(--color-text-secondary);margin:0 0 var(--space-4)}.unlock-form{gap:var(--space-3);flex-direction:column;align-items:center;display:flex}.unlock-input{width:100%;max-width:300px;font-size:var(--font-size-body);text-align:center}.unlock-error{color:var(--color-text-secondary);font-size:12px;font-weight:var(--font-weight-semibold);margin:0}.unlock-button{background:var(--color-accent);color:#fff;border-radius:var(--radius-input);font-size:var(--font-size-body);padding:var(--space-2) var(--space-6);cursor:pointer;border:none}.unlock-button:hover{background:var(--color-accent-hover)}.unlock-button:disabled{opacity:.5;cursor:not-allowed}.import-export-buttons{gap:var(--space-2);border-top:1px solid var(--color-border);padding-top:var(--space-3);display:flex}.import-export-btn{flex:1}.dialog-content{padding:var(--space-6);gap:var(--space-4);flex-direction:column;display:flex}.dialog-title{font-size:var(--font-size-section);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.dialog-body{font-size:var(--font-size-body);color:var(--color-text-secondary);margin:0;line-height:1.5}.dialog-hint{font-size:var(--font-size-body);color:var(--color-text-secondary);margin:0;font-style:italic}.dialog-field-error{color:var(--color-danger);margin-top:2px;font-size:12px}.dialog-error{font-size:var(--font-size-body);color:var(--color-danger);margin:0}.dialog-checkbox-label{align-items:center;gap:var(--space-2);font-size:var(--font-size-body);cursor:pointer;display:flex}.dialog-overwrite-warning{color:var(--color-caution);border-radius:var(--radius-card);padding:var(--space-2) var(--space-3);font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);background:#fef3cd;border:1px solid #f0d68a}.dialog-actions{gap:var(--space-2);margin-top:var(--space-2);flex-direction:column;display:flex}.dialog-file-input{font-size:var(--font-size-body);color:var(--color-text-primary)}.import-preview-headline{align-items:baseline;gap:var(--space-3);display:flex}.import-preview-total{font-size:var(--font-size-section);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.import-preview-count{font-size:var(--font-size-body);color:var(--color-text-secondary)}.import-preview-table th,.import-preview-table td{padding:var(--space-1) var(--space-2)}.import-preview-settings{gap:var(--space-1);flex-direction:column;margin:0;display:flex}.import-preview-setting{font-size:var(--font-size-body);justify-content:space-between;display:flex}.import-preview-setting dt{color:var(--color-text-secondary)}.import-preview-setting dd{color:var(--color-text-primary);font-weight:var(--font-weight-semibold);margin:0}@media (width<=768px){.app-tab{text-align:center;flex:1}.simulation-page{grid-template-columns:1fr}.portfolio-page{max-width:none}.account-header{gap:var(--space-1) var(--space-2);grid-template-rows:auto auto;grid-template-columns:auto 1fr auto;align-items:center;display:grid}.account-collapse-toggle{grid-area:1/1;justify-content:center;align-items:center;width:auto;min-width:44px;min-height:44px;font-size:18px;display:flex}.account-name{grid-area:1/2;min-width:0}.account-remove{grid-area:1/3;justify-content:center;justify-self:end;align-items:center;min-width:44px;min-height:44px;display:flex}.account-type{grid-area:2/1/auto/3;max-width:none}.account-total{text-align:right;grid-area:2/3;justify-self:end;font-size:12px}.holding-row{gap:var(--space-1) var(--space-2);grid-template-columns:minmax(0,1fr) auto auto auto}.holding-value,.holding-shares{width:90px}.holding-asset-class{grid-column:1/-1}.holding-mode-toggle{min-width:44px;min-height:44px}.holding-remove{grid-area:1/4;justify-content:center;align-items:center;min-width:44px;min-height:44px;display:flex}.results-table-scroll{background-image:linear-gradient(to right, transparent, var(--color-bg-results));background-position:100% 0;background-repeat:no-repeat;background-size:var(--space-8) 100%}input[type=text],input[type=number],input[type=password],select,textarea{font-size:16px}.btn-inline{justify-content:center;align-items:center;min-width:44px;min-height:44px;display:inline-flex}}
