:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6;font-weight:400;color-scheme:light dark;--color-text: #1a1a1a;--color-text-secondary: #666;--color-background: #ffffff;--color-background-alt: #f8f9fa;--color-border: #e0e0e0;--color-card: #ffffff;--color-card-hover: #f8f9fa;--color-shadow: rgba(0, 0, 0, .1);--color-shadow-hover: rgba(0, 0, 0, .15);--text-color: #1a1a1a;--border-color: #e0e0e0;--table-header-bg: #f5f5f5;--card-bg: #f9f9f9;--code-bg: #fafafa;--success-bg: #e8f5e9;--error-bg: #ffebee;--warning-bg: #fff3e0;--info-bg: #e3f2fd;--purple-bg: #f3e5f5;--yellow-bg: #fff9c4;--color-primary: #4CAF50;--color-primary-hover: #45a049;--color-secondary: #FF9800;--color-secondary-hover: #fb8c00;--color-tertiary: #2196F3;--color-tertiary-hover: #1e88e5;--color-quaternary: #9C27B0;--color-quaternary-hover: #8e24aa;--color-liability: #f44336;--color-liability-hover: #e53935;--color-danger: #f44336;--color-danger-hover: #e53935;--color-success: #4CAF50;--color-success-bg: #e8f5e9;--color-error: #f44336;--color-error-bg: #ffebee;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){:root{--color-text: #e0e0e0;--color-text-secondary: #aaa;--color-background: #1a1a1a;--color-background-alt: #2a2a2a;--color-border: #404040;--color-card: #242424;--color-card-hover: #2a2a2a;--color-shadow: rgba(0, 0, 0, .3);--color-shadow-hover: rgba(0, 0, 0, .4);--text-color: #e0e0e0;--border-color: #404040;--table-header-bg: #2a2a2a;--card-bg: #2a2a2a;--code-bg: #1f1f1f;--color-success-bg: rgba(76, 175, 80, .15);--color-error-bg: rgba(244, 67, 54, .15);--success-bg: rgba(76, 175, 80, .15);--error-bg: rgba(244, 67, 54, .15);--warning-bg: rgba(255, 152, 0, .15);--info-bg: rgba(33, 150, 243, .15);--purple-bg: rgba(156, 39, 176, .15);--yellow-bg: rgba(255, 235, 59, .15)}}*{box-sizing:border-box}body{margin:0;padding:0;min-width:320px;min-height:100vh;background-color:var(--color-background);color:var(--color-text)}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;line-height:1.2;color:var(--color-text)}h1{font-size:2rem}h2{font-size:1.5rem;margin-bottom:1rem}h3{font-size:1.2rem;margin-bottom:.75rem}button{font-family:inherit;cursor:pointer;transition:all .2s ease}a{color:var(--color-tertiary);text-decoration:none}a:hover{text-decoration:underline}.app-container{padding:2rem;max-width:1200px;margin:0 auto;background-color:var(--color-background);min-height:100vh}.header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px solid var(--color-border)}.header h1{font-size:2rem;font-weight:700;color:var(--color-text)}.header-actions{display:flex;gap:.75rem;flex-wrap:wrap}.btn{padding:.625rem 1.25rem;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:.9rem;transition:all .2s ease;box-shadow:0 2px 4px var(--color-shadow)}.btn:hover{transform:translateY(-1px);box-shadow:0 4px 8px var(--color-shadow-hover)}.btn:active{transform:translateY(0)}.btn-export{background:var(--color-primary)}.btn-export:hover{background:var(--color-primary-hover)}.btn-import{background:var(--color-tertiary)}.btn-import:hover{background:var(--color-tertiary-hover)}.btn-clear{background:var(--color-danger)}.btn-clear:hover{background:var(--color-danger-hover)}.btn-primary{background:var(--color-primary)}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{background:var(--color-secondary)}.btn-secondary:hover{background:var(--color-secondary-hover)}.btn-tertiary{background:var(--color-tertiary)}.btn-tertiary:hover{background:var(--color-tertiary-hover)}.btn-quaternary{background:var(--color-quaternary)}.btn-quaternary:hover{background:var(--color-quaternary-hover)}.btn-liability{background:var(--color-liability)}.btn-liability:hover{background:var(--color-liability-hover)}.btn-edit{background:var(--color-secondary);color:#fff;border:none;padding:.5rem .875rem;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s ease;margin-right:.5rem}.btn-edit:hover{background:var(--color-secondary-hover);transform:scale(1.05)}.btn-remove{background:var(--color-danger);color:#fff;border:none;padding:.5rem .875rem;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s ease}.btn-remove:hover{background:var(--color-danger-hover);transform:scale(1.05)}.button-primary{background:var(--color-primary)}.button-primary:hover{background:var(--color-primary-hover)}.button-secondary{background:var(--color-secondary)}.button-secondary:hover{background:var(--color-secondary-hover)}.card{background:var(--color-card);border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px var(--color-shadow);border:1px solid var(--color-border);margin-bottom:1rem}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.5rem;color:var(--color-text);font-weight:500}.form-group input,.form-group select{width:100%;padding:.625rem;border:1px solid var(--color-border);border-radius:6px;font-size:1rem;color:var(--color-text);background:var(--color-background);transition:border-color .2s ease}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--color-primary)}.form-group small{display:block;margin-top:.375rem;color:var(--color-text-secondary);font-size:.875rem}.account-form{background:var(--color-background-alt);padding:1.25rem;border-radius:8px;border:1px solid var(--color-border);margin-bottom:1rem}.file-input{display:none}.alert{padding:1rem 1.25rem;border-radius:8px;margin-bottom:1.5rem;border:1px solid;font-weight:500;box-shadow:0 2px 4px var(--color-shadow)}.alert-error{background:var(--color-error-bg);color:var(--color-error);border-color:var(--color-error)}.alert-success{background:var(--color-success-bg);color:var(--color-success);border-color:var(--color-success)}.section{margin-bottom:1rem;background:var(--color-card);border-radius:12px;padding:1rem;box-shadow:0 2px 8px var(--color-shadow);border:1px solid var(--color-border)}.section h2{color:var(--color-text);margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:2px solid var(--color-border)}.section-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;cursor:pointer;-webkit-user-select:none;user-select:none;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:2px solid var(--color-border)}.section-header:hover h2{color:var(--color-primary)}.section-header h2{margin:0;padding:0;border:none;transition:color .2s ease;flex-shrink:0}.section-toggle{font-size:1.5rem;color:var(--color-text);transition:transform .3s ease;font-weight:700;flex-shrink:0}.section-toggle.collapsed{transform:rotate(-90deg)}.section-summary{color:var(--color-text-secondary);font-size:.9rem;line-height:1.6;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 1rem}.section-content{max-height:10000px;overflow:hidden;transition:max-height .3s ease}.section-content.collapsed{max-height:0}.info-display{margin-top:.75rem;padding:.75rem;border-radius:8px;background:var(--color-background-alt);border:1px solid var(--color-border);color:var(--color-text);line-height:1.6}.profile-display{background:var(--color-background-alt);border-left:4px solid var(--color-tertiary)}.ssa-display{background:var(--color-success-bg);border-left:4px solid var(--color-success)}.accounts-group{margin-bottom:1rem}.accounts-group h3{color:var(--color-text);margin-bottom:.5rem;font-weight:600}.accounts-grid{display:grid;grid-template-columns:1fr;gap:.5rem;margin-bottom:.75rem}@media(min-width:640px){.accounts-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.accounts-grid{grid-template-columns:repeat(3,1fr)}}.account-card{padding:.75rem;border-radius:8px;display:flex;flex-direction:column;gap:.5rem;border:1px solid var(--color-border);transition:all .2s ease;background:var(--color-card);min-height:120px}.account-card.collapsed{min-height:auto}.account-card:hover{background:var(--color-card-hover);box-shadow:0 4px 12px var(--color-shadow);transform:translateY(-2px)}.account-card-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.account-card-summary{flex:1;display:flex;align-items:center;gap:1rem}.account-card-toggle{font-size:1.2rem;color:var(--color-text);transition:transform .3s ease;font-weight:700;margin-left:.5rem}.account-card-toggle.collapsed{transform:rotate(-90deg)}.account-card-details-wrapper{max-height:1000px;overflow:hidden;transition:max-height .3s ease}.account-card-details-wrapper.collapsed{max-height:0}.account-card-content{flex:1;display:flex;flex-direction:column;gap:.5rem}.account-card-balance{font-size:1.25rem;font-weight:700;color:var(--color-text)}.account-card-details{font-size:.875rem;color:var(--color-text-secondary)}.account-card-type-label{font-size:.9rem;color:var(--color-text-secondary);margin-left:.5rem}.account-card-dividend{font-size:.85rem;color:#4caf50;margin-left:.5rem;font-weight:500}.account-card-details-line{line-height:1.5}.account-card-actions{display:flex;justify-content:flex-end;margin-top:auto}.account-card-roth{border-left:4px solid var(--color-primary)}.account-card-traditional{border-left:4px solid var(--color-secondary)}.account-card-realEstate{border-left:4px solid var(--color-quaternary)}.account-card-mortgage{border-left:4px solid var(--color-liability)}.account-card-taxable{border-left:4px solid var(--color-tertiary)}.account-card span{color:var(--color-text);font-weight:500}.summary-container{padding:1.5rem;background:var(--color-background-alt);border-radius:12px;border:1px solid var(--color-border)}.summary-item{margin-bottom:1rem;color:var(--color-text);font-size:1.05rem;display:flex;justify-content:space-between;align-items:center;padding:.5rem 0}.summary-item strong{color:var(--color-text)}.summary-total{font-size:1.4rem;margin-top:1.25rem;padding-top:1.25rem;border-top:2px solid var(--color-border);font-weight:700;color:var(--color-text);display:flex;justify-content:space-between;align-items:center}@media(max-width:768px){.app-container{padding:1rem}header-actions{width:100%}.btn{flex:1;text-align:center}.account-card{flex-direction:column;align-items:flex-start;gap:.75rem}.btn-remove{align-self:flex-end}.summary-item,.summary-total{flex-direction:column;align-items:flex-start;gap:.25rem}}.portfolio-summary{margin-bottom:20px;padding:15px;background:var(--card-bg, #f5f5f5);color:var(--text-color, #000);border-radius:8px}.portfolio-summary h3{margin-top:0;color:var(--text-color, #000)}.portfolio-summary p{margin:0}.scenario-actions{display:flex;gap:10px;margin-top:20px}.scenario-error{margin-top:20px;padding:15px;background:var(--error-bg, #fee);color:var(--text-color, #c00);border-radius:8px}.scenario-error strong{color:var(--text-color, #c00)}.no-accounts-message{color:var(--color-text-secondary, #666)}.projection-result{padding:20px;border-radius:8px;margin-bottom:20px;color:var(--text-color, #000)}.projection-result.success{background:var(--success-bg, #e8f5e9)}.projection-result.failure{background:var(--error-bg, #ffebee)}.projection-result h3{margin-top:0}.projection-metrics{display:grid;grid-template-columns:1fr 1fr;gap:15px}.projection-metrics strong{color:var(--text-color, #000)}.projection-metrics .failure-info{color:#c00}.chart-section{margin-top:40px;color:var(--text-color, #000)}.details-table-container{overflow-x:auto}.details-table{width:100%;border-collapse:collapse;font-size:14px;margin-top:10px;color:var(--text-color, #000)}.details-table thead tr{background:var(--table-header-bg, #f5f5f5);color:var(--text-color, #000)}.details-table th{padding:10px;text-align:left;border-bottom:2px solid var(--border-color, #ddd)}.details-table th.align-right{text-align:right}.details-table tbody tr{border-bottom:1px solid var(--border-color, #eee)}.details-table td{padding:8px}.details-table td.align-right{text-align:right}.details-table td.bold{font-weight:700}.explanation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.explanation-header h3{margin:0;color:var(--text-color, #000)}.explanation-section{padding:20px;border-radius:8px;margin-bottom:20px;color:var(--text-color, #000)}.explanation-section h4{margin-top:0}.explanation-section pre{white-space:pre-wrap;font-family:inherit;line-height:1.6;margin:0}.explanation-summary{background:var(--card-bg, #f9f9f9)}.explanation-summary-text{white-space:pre-wrap;line-height:1.6;margin:0}.explanation-success{background:var(--success-bg, #e8f5e9);border:2px solid #4CAF50}.explanation-success h4{color:#2e7d32}.explanation-tax{background:var(--warning-bg, #fff3e0)}.explanation-tax h4{color:#e65100}.explanation-withdrawal{background:var(--info-bg, #e3f2fd)}.explanation-withdrawal h4{color:#0277bd}.explanation-milestones{background:var(--purple-bg, #f3e5f5)}.explanation-milestones h4{color:#6a1b9a}.explanation-recommendations{background:var(--yellow-bg, #fff9c4);border:2px solid #f9a825}.explanation-recommendations h4{color:#f57f17}.explanation-details{margin-top:30px}.explanation-details summary{cursor:pointer;padding:15px;background:var(--card-bg, #f5f5f5);color:var(--text-color, #000);border-radius:8px;font-weight:700}.explanation-details pre{margin-top:15px;padding:20px;background:var(--code-bg, #fafafa);color:var(--text-color, #000);border-radius:8px;overflow:auto;font-size:13px;line-height:1.5;border:1px solid var(--border-color, #ddd)}.disclaimer-overlay{position:fixed;inset:0;background-color:#000c;display:flex;justify-content:center;align-items:center;z-index:9999;padding:1rem}.disclaimer-modal{background-color:var(--color-background);border-radius:12px;padding:2rem;max-width:700px;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #0000004d;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.disclaimer-modal h2{color:var(--color-danger);font-size:1.8rem;font-weight:700;margin-bottom:1.5rem;text-align:center;border-bottom:2px solid var(--color-danger);padding-bottom:1rem}.disclaimer-content{color:var(--color-text);line-height:1.7;margin-bottom:2rem}.disclaimer-content p{margin-bottom:1rem}.disclaimer-content ul{margin:1.5rem 0;padding-left:1.5rem}.disclaimer-content li{margin-bottom:1rem;line-height:1.6}.disclaimer-content strong{color:var(--color-danger);font-weight:600}.disclaimer-acknowledge{background-color:var(--color-warning-bg);padding:1rem;border-radius:8px;border-left:4px solid var(--color-secondary);margin-top:1.5rem;font-weight:500}.btn-accept{width:100%;padding:1rem 2rem;background-color:var(--color-primary);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px var(--color-shadow)}.btn-accept:hover{background-color:var(--color-primary-hover);transform:translateY(-2px);box-shadow:0 4px 12px var(--color-shadow-hover)}.btn-accept:active{transform:translateY(0)}@media(max-width:768px){.disclaimer-modal{padding:1.5rem;max-height:85vh}.disclaimer-modal h2{font-size:1.5rem}}
