*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}html,body,#root{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f1f5f9;color:#1e293b;font-size:14px}.app{height:100%;display:flex;flex-direction:column}.shell{display:flex;flex:1;min-height:0;overflow:hidden}.sidebar{position:fixed;left:0;top:0;height:100vh;width:220px;background:#1e293b;display:flex;flex-direction:column;z-index:200}.sidebar-logo{padding:18px 16px 16px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:8px;color:#fff;font-size:.95rem;font-weight:600;letter-spacing:.01em;white-space:nowrap;overflow:hidden}.sidebar-nav{flex:1;padding:8px;display:flex;flex-direction:column;gap:2px}.sidebar-nav-item{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:6px;cursor:pointer;color:#cbd5e1;font-size:.9rem;font-weight:500;border:none;background:none;width:100%;text-align:left;transition:background .15s,color .15s}.sidebar-nav-item:hover{background:#ffffff14;color:#f1f5f9}.sidebar-nav-item.active{background:#3b82f638;color:#bfdbfe}.sidebar-divider{height:1px;background:#ffffff2e;margin:6px 8px}.sidebar-footer{padding:10px 8px;border-top:1px solid rgba(255,255,255,.18)}.sidebar-footer .sidebar-nav-item{font-size:.8rem}.shell-body{margin-left:220px;flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.plan-tab-bar{display:flex;align-items:center;flex-wrap:wrap;gap:0;padding:0 12px;background:#fff;border-bottom:1px solid #e2e8f0;flex-shrink:0;min-height:44px}.plan-tab{display:flex;align-items:center;gap:6px;padding:10px 8px 8px 14px;background:transparent;border:none;border-bottom:3px solid transparent;border-radius:0;cursor:pointer;-webkit-user-select:none;user-select:none;min-width:0;max-width:220px;transition:background .13s,color .13s,border-color .13s;color:#94a3b8}.plan-tab:hover{background:#f8fafc;color:#475569;border-radius:6px 6px 0 0}.plan-tab--active{border-bottom-color:#3b82f6;color:#1e293b}.plan-tab--active:hover{background:#f8fafc}.plan-tab--dragging{opacity:.4}.plan-tab--dragover{background:#eff6ff;border-radius:6px 6px 0 0}.plan-tab-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;font-weight:500}.plan-tab--active .plan-tab-name{font-weight:600;color:#1e293b}.plan-tab-rate{font-size:.68rem;font-weight:700;color:#fff;padding:2px 6px;border-radius:99px;line-height:1.4;flex-shrink:0}.plan-tab-menu-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:none;border:none;cursor:pointer;opacity:0;color:inherit;transition:opacity .1s,background .13s;padding:0;flex-shrink:0}.plan-tab:hover .plan-tab-menu-btn,.plan-tab--active .plan-tab-menu-btn,.plan-tab-menu-btn--open{opacity:1}.plan-tab-menu-btn:hover,.plan-tab-menu-btn--open{background:#00000014}.plan-tab-add{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:transparent;border:none;cursor:pointer;color:#94a3b8;transition:background .13s,color .13s;flex-shrink:0;margin-left:4px}.plan-tab-add:hover{background:#3b82f6;color:#fff}.plan-tab--renaming{border-bottom-color:#3b82f6!important;color:#1e293b}.plan-tab-rename-input{flex:1;min-width:60px;font-size:.875rem;font-weight:600;border:none;outline:none;background:transparent;color:#1e293b;padding:0}.plan-tab-dropdown{position:fixed;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 16px #0000001f;z-index:1000;min-width:160px;padding:4px}.plan-tab-dropdown button{display:block;width:100%;text-align:left;padding:10px 14px;background:none;border:none;font-size:.875rem;color:#1e293b;border-radius:4px;cursor:pointer;white-space:nowrap}.plan-tab-dropdown button:hover{background:#f1f5f9}.plan-tab-dropdown-divider{height:1px;background:#e2e8f0;margin:4px 0}.plan-tab-dropdown-delete{color:#ef4444!important}.plan-tab-dropdown-delete:hover{background:#fef2f2!important}.header-left{display:flex;align-items:center;gap:10px}.tab-bar{background:#fff;border-bottom:1px solid #e2e8f0;display:flex;gap:0;padding:0 24px}.tab-btn{background:none;border:none;border-bottom:3px solid transparent;padding:14px 20px;font-size:.9rem;font-weight:500;color:#64748b;cursor:pointer;transition:color .15s,border-color .15s}.tab-btn:hover{color:#1e293b}.tab-btn.active{color:#3b82f6;border-bottom-color:#3b82f6}.simulation-error{background:#fef2f2;border-bottom:1px solid #fecaca;color:#b91c1c;font-size:.85rem;padding:8px 24px;text-align:center}.content-scroll{flex:1;min-height:0;overflow-y:auto}.main-panel{display:flex;flex-direction:column;gap:20px;max-width:1100px;width:100%;margin:0 auto;padding:24px 24px 48px}.main-panel.main-panel--settings{margin:0;max-width:800px}.card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:24px;box-shadow:0 1px 3px #00000014,0 4px 20px #0000000f}.summary-tile-value.negative{color:#ef4444}.card h2{font-size:1rem;font-weight:600;color:#0f172a;margin-bottom:16px}.card-header{display:flex;align-items:center;gap:10px;margin-bottom:16px}.card-header h2{margin-bottom:0}.card.card-collapsed{padding:14px 24px}.card.card-collapsible{padding-top:14px}.card-header-collapsible{display:flex;align-items:center;gap:10px;margin-bottom:16px;cursor:pointer;-webkit-user-select:none;user-select:none}.card.card-collapsed .card-header-collapsible,.card-header-collapsible h2{margin-bottom:0}.card-header-icon{color:#64748b;flex-shrink:0}.lifecycle-summary{display:flex;align-items:center;gap:6px;margin-left:auto;margin-right:8px}.lifecycle-age{font-size:.78rem;font-weight:600;color:#2563eb;background:#eff6ff;padding:2px 8px;border-radius:99px;white-space:nowrap}.lifecycle-arrow{font-size:.75rem;color:#94a3b8}.header-badge{font-size:.75rem;font-weight:600;color:#2563eb;background:#eff6ff;padding:2px 8px;border-radius:99px;white-space:nowrap}.card-header-collapsible .card-header-summary{margin-left:auto;margin-right:8px;font-size:.78rem;font-weight:600;color:#2563eb;background:#eff6ff;padding:2px 8px;border-radius:99px;white-space:nowrap}.card-header-collapsible .chevron{color:#94a3b8;transition:transform .2s ease}.card-header-collapsible .chevron-open{transform:rotate(180deg)}.btn-add-header{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;border:none;background:#3b82f6;color:#fff;cursor:pointer;transition:background .15s,transform .1s;flex-shrink:0}.btn-add-header:hover{background:#2563eb;transform:scale(1.1)}.btn-add-header.active{background:#1d4ed8}.card h3{font-size:.9rem;font-weight:600;color:#334155;margin:16px 0 10px}.card h4{font-size:.85rem;font-weight:600;color:#475569;margin:12px 0 8px}.form-row{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:12px}.form-row label{display:flex;flex-direction:column;gap:5px;font-size:.82rem;font-weight:500;color:#475569;min-width:160px}.account-form .form-row label{width:180px;min-width:180px;flex:none}.account-form .form-row--auto label{width:auto;min-width:0;flex:1}.form-row label>input,.form-row label select,.form-row .form-field input[type=number]{padding:6px 10px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:.9rem;line-height:1.4;box-sizing:border-box;background:#f8fafc;color:#1e293b;outline:none;transition:border-color .15s,background .15s,box-shadow .15s;width:100%}.form-row label select,.form-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding:6px 32px 6px 10px;height:34px;box-sizing:border-box;border:1.5px solid #e2e8f0;border-radius:8px;font-size:.9rem;background-color:#f8fafc;color:#1e293b;outline:none;transition:border-color .15s,background-color .15s,box-shadow .15s;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 d='M2 4l4 4 4-4' stroke='%2364748b' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"),linear-gradient(to right,transparent calc(100% - 32px),#e2e8f0 calc(100% - 32px),#e2e8f0 calc(100% - 31px),#f8fafc calc(100% - 31px));background-repeat:no-repeat,no-repeat;background-position:right 9px center,0 0;background-size:12px 12px,100% 100%;cursor:pointer}.form-select:focus{border-color:#3b82f6;background-color:#fff;box-shadow:0 0 0 3px #3b82f61f}.form-row label>input:focus,.form-row label select:focus,.form-row .form-field input[type=number]:focus{border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px #3b82f61f}.checkbox-label{flex-direction:row!important;align-items:center;align-self:flex-end;padding-bottom:5px;gap:8px!important;font-size:.9rem!important;cursor:pointer}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:#3b82f6;cursor:pointer}.step-input{display:flex;align-items:stretch;border:1.5px solid #e2e8f0;border-radius:8px;background:#f8fafc;overflow:hidden;width:100%;transition:border-color .15s,box-shadow .15s,background .15s}.step-input:focus-within{border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px #3b82f61f}.step-input--disabled{background:#f8fafc;opacity:.6}.step-input-btn{flex-shrink:0;width:30px;border:none;background:#f8fafc;color:#64748b;font-size:1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;transition:background .1s,color .1s;-webkit-tap-highlight-color:transparent}.step-input-btn--hover{background:#e2e8f0;color:#1e293b}.step-input-btn:active:not(:disabled){background:#cbd5e1}.step-input-btn:disabled{color:#cbd5e1;cursor:default}.step-input-btn--dec{border-right:1px solid #e2e8f0}.step-input-btn--inc{border-left:1px solid #e2e8f0}.step-input-body{flex:1;display:flex;align-items:center;padding:0 8px;min-width:0;gap:4px}.step-input .step-input-field:focus{border:none;box-shadow:none;outline:none}.step-input-field,.form-row label .step-input-field{flex:1;min-width:0;border:none;box-shadow:none;border-radius:0;outline:none;background:transparent;font-size:.9rem;line-height:1.4;color:#1e293b;text-align:right;padding:6px 0;width:auto;font-family:inherit}.form-row label .step-input-field:focus,.form-row label .amount-input-field:focus{border:none;box-shadow:none}.step-input-suffix{font-size:.7rem;font-weight:700;letter-spacing:.07em;color:#94a3b8;flex-shrink:0;-webkit-user-select:none;user-select:none;text-transform:uppercase}.amount-input{display:flex;align-items:center;border:1.5px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:0 10px;gap:6px;width:100%;transition:border-color .15s,box-shadow .15s,background .15s}.amount-input:focus-within{border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px #3b82f61f}.amount-input--disabled{background:#f8fafc;opacity:.6}.amount-input-field,.form-row label .amount-input-field{flex:1;min-width:0;border:none;box-shadow:none;border-radius:0;outline:none;background:transparent;font-size:.9rem;color:#1e293b;text-align:right;padding:6px 0;width:auto;font-family:inherit}.amount-input-field::-webkit-inner-spin-button,.amount-input-field::-webkit-outer-spin-button{-webkit-appearance:none}.amount-input-field{-moz-appearance:textfield}.amount-input-suffix{font-size:.7rem;font-weight:700;letter-spacing:.07em;color:#94a3b8;flex-shrink:0;-webkit-user-select:none;user-select:none;text-transform:uppercase}.expenditure-sections{display:flex;flex-direction:column;gap:16px;margin-top:0}.expenditure-section-form{background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 1px 3px #00000014,0 4px 20px #0000000f;padding:20px;transition:opacity .15s;flex:1;min-width:0}.expenditure-section-form.inactive{opacity:.45;pointer-events:none}.expenditure-section-form.inactive .toggle-label{pointer-events:all}.expenditure-section-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}.expenditure-section-header h3{font-size:1rem;font-weight:600;color:#0f172a;margin:0}.reinvest-account-row{display:flex;align-items:center;gap:10px;margin-top:10px}.reinvest-account-row .form-label{white-space:nowrap;font-size:.875rem;color:#475569}.reinvest-account-row .form-select{flex:1;min-width:0}.section-header-add{margin-left:auto;display:flex;align-items:center;justify-content:center;width:26px;height:26px;background:#e2e8f0;border:none;border-radius:99px;color:#475569;cursor:pointer;padding:0;flex-shrink:0;transition:background .15s,color .15s}.section-header-add:hover{background:#3b82f6;color:#fff}.form-input{width:100%;padding:6px 10px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:.9rem;background:#f8fafc;color:#1e293b;outline:none;transition:border-color .15s,background .15s,box-shadow .15s}.form-input:focus{border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px #3b82f61f}.btn-delete{background:transparent;color:#94a3b8;border:none;padding:5px;border-radius:5px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:color .15s,background .15s;line-height:0;flex-shrink:0}.btn-delete:hover{color:#ef4444;background:#fef2f2}.btn-cancel{background:#f8fafc;color:#64748b;border:1px solid #cbd5e1;padding:8px 16px;border-radius:6px;font-size:.85rem;cursor:pointer}.btn-cancel:hover{background:#f1f5f9}.form-actions{display:flex;gap:10px;margin-top:16px}.main-panel--master-detail{padding:0;max-width:none;margin:0;gap:0;overflow:hidden;height:100%}.main-panel--expenditure{margin:0;max-width:860px}.main-panel--persons{max-width:none;margin:0}.main-panel--report{max-width:none;margin:0;padding:0;gap:0;overflow:hidden;height:100%}.master-detail{display:flex;flex:1;min-height:0;overflow:hidden}.master-detail-list{width:360px;flex-shrink:0;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;background:#fff;overflow:hidden}.master-detail-list-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 8px;border-bottom:1px solid #f1f5f9;flex-shrink:0}.master-detail-list-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8}.master-detail-list-add{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background:#e2e8f0;border:none;border-radius:99px;color:#475569;cursor:pointer;padding:0;flex-shrink:0;transition:background .15s,color .15s}.master-detail-list-add:hover,.master-detail-list-add.active{background:#3b82f6;color:#fff}.master-detail-list-items{flex:1;overflow-y:auto}.account-list-item{display:flex;align-items:center;gap:7px;padding:9px 12px;cursor:pointer;border-bottom:1px solid #f1f5f9;transition:background .1s;-webkit-user-select:none;user-select:none}.account-list-item:hover{background:#f8fafc}.account-list-item.selected{background:#eff6ff;border-left:3px solid #2563eb;padding-left:9px}.account-list-item.inactive{opacity:.45}.account-list-item.drag-over{border-top:2px solid #2563eb}.account-list-item-name{flex:1;font-size:.85rem;color:#1e293b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;min-width:0}.account-list-item-meta{font-size:.72rem;color:#94a3b8;white-space:nowrap;flex-shrink:0}.account-list-item-delete{flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:2px 4px;background:none;border:none;cursor:pointer;color:#cbd5e1;transition:color .15s;opacity:0}.account-list-item:hover .account-list-item-delete,.account-list-item.selected .account-list-item-delete{opacity:1}.account-list-item-delete:hover{color:#ef4444}.master-detail-right{flex:1;overflow-y:auto;background:#f1f5f9}.master-detail-placeholder{display:flex;align-items:center;justify-content:center;height:200px;color:#94a3b8;font-size:.875rem}.master-detail-right-footer{border-top:1px solid #e2e8f0;position:sticky;bottom:0;background:#fff}.master-detail-right-footer .card{border:none;border-radius:0;box-shadow:none;background:#fff}.master-detail-type-selector{padding:20px}.toggle-label{display:flex;align-items:center;cursor:pointer}.toggle-label input[type=checkbox]{display:none}.toggle-track{width:36px;height:20px;background:#cbd5e1;border-radius:99px;position:relative;transition:background .2s}.toggle-label input:checked+.toggle-track{background:#3b82f6}.toggle-thumb{position:absolute;top:3px;left:3px;width:14px;height:14px;background:#fff;border-radius:50%;transition:left .2s;box-shadow:0 1px 3px #0003}.toggle-label input:checked+.toggle-track .toggle-thumb{left:19px}.drag-handle{color:#cbd5e1;font-size:1.1rem;cursor:grab;padding:0 4px;-webkit-user-select:none;user-select:none}.drag-handle:active{cursor:grabbing}.account-person-badge{display:flex;align-items:center;flex-shrink:0}.account-person-badge--clickable{cursor:pointer;border-radius:50%;transition:opacity .15s}.account-person-badge--clickable:hover{opacity:.75}.account-form{margin-top:0;border:1px solid #3b82f6;border-top:none;border-radius:0 0 8px 8px;position:relative}.master-detail-right .account-form{border:1px solid #e2e8f0;border-radius:14px;margin:16px}.account-form-actions{position:absolute;top:14px;right:16px;display:flex;align-items:center;gap:4px;z-index:1}.form-action-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:1px solid transparent;cursor:pointer;background:transparent;transition:background .15s,color .15s,border-color .15s}.form-action-delete{color:#94a3b8;border-color:transparent;margin-left:4px}.form-action-delete:hover{color:#ef4444;background:#fef2f2;border-color:#fecaca}.account-form-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.account-form-header h3{margin:0}.type-badge{font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:99px;white-space:nowrap;flex-shrink:0}.type-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;line-height:0}.type-badge[data-type=RatePension]{color:#6366f1;background:#eef2ff}.type-badge[data-type=LifeAnnuity]{color:#f43f5e;background:#fff1f2}.type-badge[data-type=PublicPension]{color:#0284c7;background:#e0f2fe}.type-badge[data-type=Investment]{color:#7c3aed;background:#ede9fe}.type-badge[data-type=Bank]{color:#059669;background:#ecfdf5}.type-selector{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:18px 20px;margin-top:4px}.type-selector-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.type-selector-title{font-size:.9rem;font-weight:600;color:#334155}.type-selector-group{margin-bottom:16px}.type-selector-group:last-child{margin-bottom:0}.type-selector-group-label{display:block;font-size:.72rem;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}.type-selector-grid{display:flex;flex-wrap:wrap;gap:8px}.type-card{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border:1.5px solid #e2e8f0;border-radius:10px;cursor:pointer;background:#fff;text-align:left;min-width:130px;flex:1;transition:border-color .15s,background .15s}.type-card[data-type=RatePension]:hover{border-color:#6366f1;background:#eef2ff}.type-card[data-type=LifeAnnuity]:hover{border-color:#8b5cf6;background:#f5f3ff}.type-card[data-type=PublicPension]:hover{border-color:#0284c7;background:#e0f2fe}.type-card[data-type=Investment]:hover{border-color:#0891b2;background:#ecfeff}.type-card[data-type=Bank]:hover{border-color:#059669;background:#ecfdf5}.type-card-icon{line-height:0;color:#94a3b8;margin-bottom:4px;transition:color .15s}.type-card[data-type=RatePension]:hover .type-card-icon{color:#6366f1}.type-card[data-type=LifeAnnuity]:hover .type-card-icon{color:#8b5cf6}.type-card[data-type=PublicPension]:hover .type-card-icon{color:#0284c7}.type-card[data-type=Investment]:hover .type-card-icon{color:#0891b2}.type-card[data-type=Bank]:hover .type-card-icon{color:#059669}.type-card-name{font-size:.85rem;font-weight:600;color:#0f172a}.type-card-desc{font-size:.75rem;color:#64748b;line-height:1.3}.strategy-grid{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:4px}.strategy-card{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border:1.5px solid #e2e8f0;border-radius:10px;cursor:pointer;background:#fff;text-align:left;min-width:130px;flex:1;transition:border-color .15s,background .15s}.strategy-card:hover,.strategy-card.selected{border-color:#0891b2;background:#ecfeff}.strategy-card-sparkline{color:#94a3b8;margin-bottom:2px;transition:color .15s;line-height:0}.strategy-card:hover .strategy-card-sparkline,.strategy-card.selected .strategy-card-sparkline{color:#0891b2}.strategy-card-name{font-size:.85rem;font-weight:600;color:#0f172a}.strategy-card-desc{font-size:.75rem;color:#64748b;line-height:1.3}.strategy-params{padding-top:12px;border-top:1px solid #e2e8f0;margin-top:8px}.form-field{display:flex;flex-direction:column;gap:5px;font-size:.82rem;font-weight:500;color:#475569;min-width:160px}.start-mode-toggle{display:flex;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:8px;padding:3px;gap:2px}.start-mode-btn{flex:1;padding:4px 10px;border:none;border-radius:6px;font-size:.76rem;font-weight:500;cursor:pointer;background:transparent;color:#64748b;transition:all .15s;white-space:nowrap}.start-mode-btn.active{background:#fff;color:#1e293b;box-shadow:0 1px 3px #0000001f;font-weight:600}.start-mode-btn:hover:not(.active){color:#1e293b}.years-after-wrapper{display:flex;align-items:center;gap:8px}.years-after-wrapper input[type=number]{width:72px}.start-age-hint{font-size:.8rem;color:#64748b;white-space:nowrap}.input-with-hint{display:flex;align-items:center;gap:8px}.input-hint{font-size:.8rem;color:#64748b;white-space:nowrap}.priority-list{list-style:none;display:flex;flex-direction:column;gap:8px}.priority-item{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:10px 14px;display:flex;align-items:center;gap:12px;cursor:grab}.priority-item:active{cursor:grabbing}.priority-item.drag-over-item{border-top:2px solid #3b82f6}.data-table{width:100%;border-collapse:collapse;font-size:.85rem}.data-table th{text-align:left;padding:8px 10px;background:#f1f5f9;color:#475569;font-weight:600;border-bottom:1px solid #e2e8f0}.data-table td{padding:6px 10px;border-bottom:1px solid #f1f5f9;color:#334155;font-variant-numeric:tabular-nums}.data-table td input{padding:4px 8px;border:1px solid #cbd5e1;border-radius:4px;font-size:.85rem;width:100px}.contributions-grid{display:grid;grid-template-columns:1fr 140px 130px 70px;gap:4px 8px;margin-bottom:8px}.contributions-header{display:contents}.contributions-header>span{padding:6px 4px;font-size:.82rem;font-weight:600;color:#475569;background:#f1f5f9;border-bottom:1px solid #e2e8f0}.contributions-row{display:contents}.contributions-row>*{display:flex;align-items:center;padding:2px 0}.contributions-row>input[type=text],.contributions-row>input[type=number]{width:100%;padding:6px 10px;border:1px solid #cbd5e1;border-radius:6px;font-size:.9rem}.contributions-row .age-input-wrapper{width:100%}.data-table tbody tr:hover{background:#f8fafc}.table-scroll{overflow-x:auto}.summary-table td,.summary-table th{padding:8px 14px}.positive{color:#059669;font-weight:500}.negative{color:#ef4444;font-weight:500}.chart-card{padding:0}.chart-tab-bar{padding:0 16px;border-bottom:1px solid #e2e8f0;border-radius:10px 10px 0 0;background:#fff}.chart-section-label{padding:16px 20px 4px;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#94a3b8}.chart-toggles-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 16px;border-bottom:1px solid #e2e8f0;background:#fff}.display-mode-toggle{display:flex;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;padding:3px;gap:2px}.display-mode-btn{padding:4px 12px;border:none;border-radius:6px;font-size:.76rem;font-weight:500;cursor:pointer;background:transparent;color:#64748b;transition:all .15s;white-space:nowrap}.display-mode-btn.active{background:#fff;color:#1e293b;box-shadow:0 1px 3px #0000001f;font-weight:600}.display-mode-btn:hover:not(.active){color:#1e293b}.chart-footnote{font-size:.78rem;color:#64748b;padding:6px 16px 14px;line-height:1.5}.chart-tooltip{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:10px 14px;font-size:13px;box-shadow:0 4px 12px #00000014;min-width:200px}.chart-tooltip-label{font-weight:600;margin-bottom:6px;color:#1e293b}.chart-tooltip-row{display:flex;align-items:center;gap:6px;padding:2px 0;color:#475569}.chart-tooltip-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.chart-tooltip-name{flex:1}.chart-tooltip-value{font-variant-numeric:tabular-nums;text-align:right}.chart-tooltip-total{border-top:1px solid #e2e8f0;margin-top:4px;padding-top:4px;font-weight:600;color:#1e293b;padding-left:14px}.chart-tooltip-divider{border-top:1px solid #e2e8f0;margin:4px 0}.chart-card .table-scroll{padding:16px}.chart-card .recharts-responsive-container{padding:8px 0}.display-mode-toggle{display:flex;background:#e2e8f0;border-radius:10px;padding:3px;gap:2px}.display-mode-btn{padding:7px 16px;border:none;border-radius:8px;font-size:.83rem;font-weight:500;cursor:pointer;background:transparent;color:#64748b;transition:all .15s;white-space:nowrap}.display-mode-btn.active{background:#fff;color:#0f172a;box-shadow:0 1px 4px #00000024;font-weight:600}.display-mode-btn:hover:not(.active){color:#1e293b;background:#ffffff80}.report{display:flex;flex-direction:column;height:100%;overflow:hidden}.report-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px;background:#fff;border-bottom:1px solid #e2e8f0;flex-shrink:0;position:sticky;top:0;z-index:20}.report-toolbar-groups{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.report-body{flex:1;overflow-y:auto;background:#e2e8f0;padding:32px}.report-paper{max-width:960px;margin:0 auto;background:#fff;border-radius:10px;box-shadow:0 2px 8px #00000014,0 8px 32px #0000000f;padding-bottom:40px;overflow:hidden}.report-section{padding:28px 28px 24px;border-bottom:1px solid #e2e8f0}.report-section:last-child{border-bottom:none}.report-section-title{font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#94a3b8;margin:0 0 16px}.report-annotation{margin-top:14px;font-size:.83rem;color:#64748b;line-height:1.6}.report-annotation p{margin:0 0 8px}.report-annotation p:last-child{margin-bottom:0}.report-callout{margin-top:10px;padding:10px 14px;border-radius:8px;font-size:.83rem;line-height:1.5;font-weight:500}.report-callout--green{background:#f0fdf4;color:#166534;border-left:3px solid #22c55e}.report-callout--amber{background:#fffbeb;color:#92400e;border-left:3px solid #f59e0b}.report-callout--red{background:#fef2f2;color:#991b1b;border-left:3px solid #ef4444}.report-callout--neutral{background:#f8fafc;color:#475569;border-left:3px solid #94a3b8}.report-summary-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.summary-tile--donut{display:flex;align-items:center;justify-content:center;padding:0 8px 0 0}.summary-tile{display:flex;flex-direction:column;gap:2px;border-left:3px solid #e2e8f0;padding:4px 16px;min-width:160px}.summary-tile--warning{border-left-color:#fca5a5}.summary-tile-label{font-size:.72rem;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}.summary-tile-value{font-size:1.35rem;font-weight:700;color:#0f172a;line-height:1.2}.report-loading-bar{height:3px;background:linear-gradient(90deg,transparent 0%,#3b82f6 40%,#3b82f6 60%,transparent 100%);background-size:200% 100%;animation:loading-bar-slide 1.2s ease-in-out infinite;flex-shrink:0}@keyframes loading-bar-slide{0%{background-position:100% 0}to{background-position:-100% 0}}.spinner--dark{width:36px;height:36px;border-width:3px;border-color:#0000001a;border-top-color:#475569}.btn-refresh{display:flex;align-items:center;gap:6px;padding:7px 16px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#475569;font-size:.83rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,color .15s;white-space:nowrap}.btn-refresh:hover:not(:disabled){background:#f1f5f9;border-color:#94a3b8;color:#1e293b}.btn-refresh--stale{border-color:#ea580c;color:#ea580c}.btn-refresh--stale:hover:not(:disabled){background:#fff7ed}.btn-refresh:disabled{opacity:.6;cursor:not-allowed}.btn-refresh .spin{animation:spin .8s linear infinite}.report-empty{display:flex;align-items:center;justify-content:center;padding:80px 48px}.report-plan-header{display:flex;align-items:center;gap:16px;padding:20px 28px 0}.report-plan-brand{display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:700;letter-spacing:.05em;color:#1e293b;white-space:nowrap}.report-plan-sep{width:1px;height:22px;background:#cbd5e1;flex-shrink:0}.report-plan-name{font-size:1.35rem;font-weight:700;color:#0f172a;letter-spacing:-.01em}@media print{html,body,#root,.app{height:auto}.shell{display:block;overflow:visible}.shell-body{margin-left:0!important;overflow:visible;height:auto}.content-scroll,.main-panel--report{overflow:visible;height:auto}.report{height:auto;overflow:visible}.report-body{overflow:visible;padding-bottom:0}.sidebar,.plan-tab-bar,.report-toolbar,.app-footer{display:none!important}.report-plan-header{padding-top:0}.report-body{background:none;padding:0}.report-paper{box-shadow:none;border-radius:0;max-width:none;overflow:visible}.report-section{page-break-inside:avoid;break-inside:avoid}.report-section+.report-section{page-break-before:auto}}.form-description{margin:0 0 12px;font-size:.875rem;color:#64748b;line-height:1.5}.account-form .form-description{padding-right:36px}.form-hint{margin:-8px 0 12px;font-size:.8rem;color:#94a3b8;font-style:italic}.expenditure-age-note{display:flex;align-items:center;gap:7px;margin-bottom:16px;padding:8px 12px;background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;font-size:.82rem;color:#0369a1}.expenditure-age-note-icon{font-style:normal;font-size:.9rem;flex-shrink:0}.form-warning{margin:0 0 12px;font-size:.875rem;color:#b45309;background:#fef3c7;border:1px solid #fcd34d;border-radius:6px;padding:8px 12px;line-height:1.5}.muted{color:#94a3b8;font-style:italic;font-size:.875rem}.lifecycle-slider{-webkit-user-select:none;user-select:none;padding:0 10px;margin-bottom:8px}.lifecycle-label-row{position:relative;height:44px;margin-bottom:6px}.lifecycle-label{position:absolute;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:2px}.lifecycle-label-name{font-size:.72rem;font-weight:600;color:#475569;white-space:nowrap}.lifecycle-label-age{font-size:1rem;font-weight:700;color:#0f172a}.lifecycle-label-age--editable{cursor:pointer;border-bottom:1px dashed #94a3b8}.lifecycle-label-age--editable:hover{color:#2563eb;border-bottom-color:#2563eb}.lifecycle-label-input{width:3.2rem;font-size:1rem;font-weight:700;text-align:center;border:none;border-bottom:2px solid #2563eb;outline:none;background:transparent;color:#0f172a;padding:0}.lifecycle-track{position:relative;height:12px;border-radius:6px;background:#e2e8f0;cursor:pointer}.lc-segment{position:absolute;top:0;height:100%}.lc-pre{background:#e2e8f0;border-radius:6px 0 0 6px}.lc-work{background:#3b82f6}.lc-retire{background:#10b981}.lc-post{background:#e2e8f0;border-radius:0 6px 6px 0}.lc-handle{position:absolute;top:50%;transform:translate(-50%,-50%);width:22px;height:22px;border-radius:50%;background:#fff;border:3px solid #1e293b;cursor:grab;box-shadow:0 1px 4px #0003;z-index:10}.lc-handle:active{cursor:grabbing;border-color:#3b82f6}.lifecycle-minmax{display:flex;justify-content:space-between;margin-top:6px;font-size:.75rem;color:#94a3b8;padding:0 2px}.age-input-wrapper{position:relative;display:inline-block;width:100%}.age-input-wrapper input[type=number]{width:100%}.age-slider-popup{position:absolute;top:calc(100% + 6px);left:0;z-index:200;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:10px 14px 8px;box-shadow:0 4px 12px #0000001f;display:flex;align-items:center;gap:10px;min-width:200px}.age-slider-popup input[type=range]{flex:1;accent-color:#3b82f6;cursor:pointer}.age-slider-value{font-size:.85rem;font-weight:600;color:#0f172a;min-width:24px;text-align:right}.btn-icon{background:none;border:none;cursor:pointer;color:#94a3b8;padding:2px;display:flex;align-items:center;border-radius:4px;transition:color .15s}.btn-icon:hover{color:#3b82f6}.scenario-name{flex:1;font-weight:600;color:#0f172a}.create-scenario-form{display:flex;align-items:center;gap:10px;margin-top:8px}.create-scenario-form input{flex:1;padding:8px 10px;border:1px solid #cbd5e1;border-radius:6px;font-size:.9rem;outline:none;transition:border-color .15s}.create-scenario-form input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}@keyframes spin{to{transform:rotate(360deg)}}.spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.modal{background:#fff;border-radius:12px;width:100%;max-width:760px;box-shadow:0 20px 60px #0000004d;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid #e2e8f0}.modal-header h2{font-size:1.1rem;font-weight:600;color:#0f172a;margin:0}.modal-close{background:none;border:none;color:#64748b;cursor:pointer;padding:4px;display:flex;align-items:center;border-radius:4px}.modal-close:hover{color:#0f172a;background:#f1f5f9}.modal-body{padding:20px 24px 24px;max-height:70vh;overflow-y:auto}.modal-intro{font-size:.875rem;color:#64748b;margin:0 0 20px;line-height:1.5}.modal-body h3,.assumptions-page h3{font-size:.82rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.05em;margin:20px 0 8px}.modal-body h3:first-of-type,.assumptions-page h3:first-of-type{margin-top:0}.assumptions-page{max-width:860px}.assumptions-table{width:100%;border-collapse:collapse;font-size:.875rem}.assumptions-table td{padding:8px 10px;vertical-align:top;border-bottom:1px solid #f1f5f9;color:#1e293b;line-height:1.5}.assumptions-table td:first-child{color:#475569;width:45%;font-weight:500}.assumptions-table tr:last-child td{border-bottom:none}.phase-editor{display:flex;flex-direction:column;gap:4px}.phase-bar{position:relative;height:100px;background:#f1f5f9;border-radius:6px;overflow:visible;touch-action:none}.phase-segment{position:absolute;bottom:0;border-radius:4px 4px 0 0;opacity:.85;cursor:ns-resize;touch-action:none}.phase-handle{position:absolute;top:-10px;bottom:0;width:44px;transform:translate(-50%);cursor:ew-resize;touch-action:none;z-index:2;display:flex;flex-direction:column;align-items:center}.phase-handle:after{content:"";position:absolute;top:10px;bottom:0;left:50%;width:3px;background:#fff;opacity:.9;transform:translate(-50%);border-radius:2px}.phase-handle-label{background:#334155;color:#fff;font-size:.7rem;padding:2px 5px;border-radius:4px;white-space:nowrap;pointer-events:none;z-index:3}.phase-edge-label{position:absolute;top:-10px;background:#334155;color:#fff;font-size:.7rem;padding:2px 5px;border-radius:4px;pointer-events:none;z-index:1}.phase-edge-label--start{left:0}.phase-edge-label--end{right:0}.phase-controls-row{position:relative;height:44px}.phase-control{position:absolute;display:flex;align-items:center;gap:4px;padding:0 6px;box-sizing:border-box;overflow:hidden;height:44px}.phase-pct-input{width:54px;min-width:0;padding:6px 8px;font-size:.9rem;border:1px solid #cbd5e1;border-radius:6px;text-align:center;background:#fff;color:#1e293b;outline:none;transition:border-color .15s;-moz-appearance:textfield}.phase-pct-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.phase-pct-input::-webkit-outer-spin-button,.phase-pct-input::-webkit-inner-spin-button{-webkit-appearance:none}.phase-pct-symbol{font-size:.9rem;color:#64748b}.phase-remove-btn{background:none;border:none;color:#94a3b8;font-size:1.2rem;line-height:1;cursor:pointer;padding:6px 4px;flex-shrink:0;touch-action:manipulation}.phase-remove-btn:hover{color:#ef4444}.btn-add-phase{background:none;border:1px dashed #cbd5e1;color:#64748b;padding:5px 12px;border-radius:6px;font-size:.8rem;cursor:pointer;align-self:flex-end;transition:border-color .15s,color .15s}.btn-add-phase:hover{border-color:#3b82f6;color:#3b82f6}.card-header-left{display:flex;align-items:center;gap:8px}.relationship-selector{display:flex;gap:0;border:1px solid #cbd5e1;border-radius:8px;overflow:hidden;margin-left:auto}.relationship-option{padding:5px 14px;font-size:.82rem;font-weight:500;border:none;background:#fff;color:#475569;cursor:pointer;transition:background .12s,color .12s}.relationship-option+.relationship-option{border-left:1px solid #cbd5e1}.relationship-option:last-child{border-right:none}.relationship-option--active{background:#1e293b;color:#fff}.relationship-option:hover:not(.relationship-option--active){background:#f1f5f9}.person-cards-list{display:flex;flex-direction:column;gap:16px;width:580px}.person-card{border:1px solid #e2e8f0;border-radius:14px;padding:20px;background:#fff;box-shadow:0 1px 3px #00000014,0 4px 20px #0000000f}.person-card-header{display:flex;align-items:center;gap:12px}.person-card-divider{border:none;border-top:1px solid #e2e8f0;margin:12px 0}.person-avatar-wrap{flex-shrink:0}.person-avatar{border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;letter-spacing:-.02em;-webkit-user-select:none;user-select:none;transition:opacity .12s}.person-avatar:hover{opacity:.85}.colour-picker-popover{position:absolute;top:calc(100% + 6px);left:0;z-index:100;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:8px;display:flex;gap:6px;box-shadow:0 4px 16px #0000001f}.colour-swatch{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;transition:transform .1s}.colour-swatch:hover{transform:scale(1.15)}.colour-swatch--active{border-color:#0f172a;transform:scale(1.15)}.person-name-input{flex:1;font-size:1rem;font-weight:600;border:none;border-bottom:1px solid transparent;background:transparent;outline:none;padding:2px 0;color:#0f172a;transition:border-bottom-color .15s,border-bottom-style .15s}.person-name-input:hover{border-bottom:1px dotted #cbd5e1}.person-name-input:focus{border-bottom:1px solid #94a3b8}.toggle-group{display:inline-flex;border:1px solid #cbd5e1;border-radius:8px;overflow:hidden;flex-shrink:0}.toggle-group-btn{font-size:.9rem;height:34px;box-sizing:border-box;padding:0 14px;background:#fff;border:none;cursor:pointer;color:#64748b;transition:background .12s,color .12s;white-space:nowrap}.toggle-group-btn+.toggle-group-btn{border-left:1px solid #cbd5e1}.toggle-group-btn--active{background:#1e293b;color:#fff;font-weight:500}.toggle-group-btn:not(.toggle-group-btn--active):hover{background:#f8fafc;color:#0f172a}.toggle-group--blue .toggle-group-btn--active{background:#3b82f6;color:#fff}.toggle-group--blue .toggle-group-btn:not(.toggle-group-btn--active):hover{background:#eff6ff;color:#1d4ed8}.btn-remove-person{font-size:.78rem;color:#94a3b8;background:none;border:1px solid #e2e8f0;border-radius:6px;padding:4px 10px;cursor:pointer;transition:color .12s,border-color .12s;white-space:nowrap;margin-left:auto}.btn-remove-person:hover{color:#ef4444;border-color:#fca5a5}.person-card-fields{display:flex;flex-direction:column;gap:10px}.person-field{display:flex;align-items:center;gap:10px}.person-field label{min-width:80px;font-size:.82rem;color:#475569;font-weight:500;flex-shrink:0}.person-step-input{width:180px;flex-shrink:0}.person-age-hint{font-size:.78rem;color:#64748b}.fp-badge{font-size:.75rem;padding:3px 8px;border-radius:99px;font-weight:500}.fp-badge--match{background:#dcfce7;color:#16a34a}.fp-badge--info{background:#dbeafe;color:#1d4ed8}.fp-badge--warn{background:#fef9c3;color:#a16207}.settings-card{border:1px solid #e2e8f0;border-radius:14px;padding:20px 24px;background:#fff;box-shadow:0 1px 3px #00000014,0 4px 20px #0000000f}.person-card--ghost{border:1.5px dashed #cbd5e1;background:transparent;cursor:pointer;transition:border-color .15s,background .15s;outline:none}.person-card--ghost:hover,.person-card--ghost:focus-visible{border-color:#3b82f6;background:#f0f5ff}.person-card-ghost-inner{display:flex;align-items:flex-start;gap:12px}.person-card-ghost-plus{width:36px;height:36px;border-radius:50%;background:#e2e8f0;display:flex;align-items:center;justify-content:center;font-size:1.2rem;line-height:1;padding-bottom:1px;color:#64748b;flex-shrink:0;transition:background .15s,color .15s}.person-card-ghost-title{height:36px;display:flex;align-items:center;font-size:1rem;font-weight:600;color:#0f172a}.person-card-ghost-desc{font-size:.78rem;color:#64748b;margin-top:2px}.dual-timeline{margin-top:20px;padding-top:14px;border-top:1px solid #e2e8f0}.dual-timeline-axis{position:relative;height:18px;margin-bottom:8px;margin-left:64px}.dual-timeline-year{position:absolute;transform:translate(-50%);font-size:.7rem;color:#94a3b8;white-space:nowrap}.dual-timeline-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.dual-timeline-name{min-width:54px;font-size:.78rem;font-weight:600;color:#475569;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dual-timeline-bar-wrap{flex:1;position:relative;height:12px;background:#e2e8f0;border-radius:6px}.dual-timeline-seg{position:absolute;top:0;height:100%}.dual-timeline-work{border-radius:6px 0 0 6px}.dual-timeline-retire{border-radius:0 6px 6px 0}.dual-timeline-fp{position:absolute;top:50%;transform:translate(-50%,-50%) rotate(45deg);width:8px;height:8px;background:#1e293b;z-index:5;pointer-events:none}.app-footer{flex-shrink:0;padding:8px 24px;border-top:1px solid #e2e8f0;display:flex;align-items:center;gap:8px}.app-footer-link{background:none;border:none;font-size:.72rem;color:#94a3b8;cursor:pointer;padding:0;line-height:1}.app-footer-link:hover{color:#64748b;text-decoration:underline}.app-footer-sep{font-size:.72rem;color:#cbd5e1;line-height:1}.legal-modal{max-width:780px}.legal-modal--wide{max-width:860px}.legal-modal-body h3{font-size:.875rem;font-weight:600;color:#0f172a;margin:20px 0 6px}.legal-modal-body h3:first-child{margin-top:0}.legal-modal-body p{font-size:.875rem;color:#475569;line-height:1.6;margin:0 0 12px}.legal-modal-body p:last-child{margin-bottom:0}.legal-modal-body a{color:#2563eb;text-decoration:none}.legal-modal-body a:hover{text-decoration:underline}.about-features{margin:0 0 16px;padding-left:18px;display:flex;flex-direction:column;gap:8px}.about-features li{font-size:.875rem;color:#475569;line-height:1.5}.about-features li strong{color:#1e293b}.legal-modal-about-lead{font-size:.95rem!important;color:#1e293b!important;font-weight:500;line-height:1.6;margin-bottom:16px!important}.contact-modal{max-width:520px}.contact-form{display:flex;flex-direction:column;gap:16px}.contact-form-field{display:flex;flex-direction:column;gap:5px}.contact-form-field label{font-size:.8125rem;font-weight:500;color:#374151}.contact-form-field input,.contact-form-field textarea{padding:8px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;color:#0f172a;background:#fff;outline:none;transition:border-color .15s;resize:vertical}.contact-form-field input:focus,.contact-form-field textarea:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb1f}.contact-form-field input:disabled,.contact-form-field textarea:disabled{opacity:.6;cursor:not-allowed}.contact-error{font-size:.8125rem;color:#dc2626;margin:0}.contact-success{font-size:.875rem;color:#15803d;margin:0}.contact-form-actions{display:flex;justify-content:flex-end}.contact-submit{display:flex;align-items:center;gap:7px;padding:8px 16px;background:#2563eb;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s}.contact-submit:hover:not(:disabled){background:#1d4ed8}.contact-submit:disabled{opacity:.6;cursor:not-allowed}.link-button{background:none;border:none;padding:0;color:#2563eb;font-size:inherit;cursor:pointer;text-decoration:none}.link-button:hover{text-decoration:underline}.migration-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.migration-modal{background:#fff;border-radius:12px;padding:32px;max-width:480px;width:90%;box-shadow:0 20px 60px #0003}.migration-modal h2{margin-bottom:12px}.migration-modal p{color:#475569;margin-bottom:12px;line-height:1.6}.btn-primary{padding:10px 24px;background:#1e293b;color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer}.btn-primary:hover{background:#334155}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:900}.modal--sm{padding:28px;max-width:420px;width:90%}.modal--lg{max-width:860px}.modal-header h3{font-size:1.1rem;font-weight:600;color:#0f172a;margin:0}.draft-chart{background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:8px 0 0}.draft-chart--empty{display:flex;align-items:center;justify-content:center;height:60px;font-size:.8rem;color:#cbd5e1}.placeholder-section{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:80px 24px;color:#94a3b8;text-align:center}.placeholder-section h2{font-size:1.2rem;font-weight:600;color:#64748b;margin:0}.placeholder-section p{font-size:.9rem;color:#94a3b8;max-width:360px;line-height:1.6}.modal h3{margin-bottom:10px}.modal ul{margin:8px 0 8px 20px;color:#475569;font-size:.88rem}.modal-warning{font-size:.82rem;color:#94a3b8;margin-top:10px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.btn-danger{padding:8px 18px;background:#ef4444;color:#fff;border:none;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer}.btn-danger:hover{background:#dc2626}.main-panel--plan{max-width:none;margin:0;padding:0;gap:0;overflow:hidden;display:flex;flex-direction:column;height:100%}.gantt-wrapper{display:flex;flex-direction:column;flex:1;overflow:hidden}.gantt-toolbar{padding:6px 16px;border-bottom:1px solid #e2e8f0;flex-shrink:0;display:flex;align-items:center;gap:12px}.gantt-axis-label{display:flex;align-items:center;gap:8px;font-size:.8rem;color:#64748b}.gantt-axis-select{font-size:.83rem;color:#1e293b;background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:4px 8px;cursor:pointer;outline:none}.gantt-axis-select:hover{border-color:#94a3b8}.gantt-axis-select:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.gantt{flex:1;overflow:auto}.gantt-row{display:flex;align-items:stretch;height:44px;border-bottom:1px solid #f1f5f9}.gantt-group-header{background:#f8fafc;position:sticky;top:0;z-index:3;border-bottom:1px solid #e2e8f0}.gantt-cell-timeline--ruler{align-items:stretch}.gantt-income-row{background:#f8fafc}.gantt-hsplitter{height:6px;cursor:row-resize;background:transparent;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;flex-shrink:0;transition:background .15s}.gantt-hsplitter:hover{background:#e2e8f0}.gantt-income-row .gantt-cell-left{background:#f8fafc}.gantt-ruler{position:sticky;top:0;z-index:3;background:#fff;border-bottom:1px solid #e2e8f0}.gantt-cell-left{position:sticky;left:0;z-index:2;flex-shrink:0;background:#fff;display:flex;align-items:center;gap:6px;padding:0 12px;border-right:1px solid #e2e8f0;font-size:.83rem}.gantt-group-header .gantt-cell-left{background:#f8fafc}.gantt-cell-left--header{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.gantt-cell-left--ruler{background:#fff}.gantt-cell-timeline{position:relative;flex-shrink:0}.gantt-account-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-bar{position:absolute;border-radius:5px;display:flex;align-items:center;justify-content:center;padding:0 7px;overflow:hidden;box-sizing:border-box;cursor:pointer;transition:filter .1s ease,box-shadow .1s ease}.gantt-bar:hover{filter:brightness(1.1);box-shadow:inset 0 0 0 1.5px #ffffff8c}.gantt-bar--inprogress{border-radius:0 5px 5px 0}.gantt-bar-label{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4;display:flex;align-items:center;gap:3px}.gantt-bar-alloc-icon{flex-shrink:0;opacity:.8}.gantt-bar-dir-icon{flex-shrink:0;opacity:.75}.gantt-tick{position:absolute;top:0;bottom:0;display:flex;align-items:center}.gantt-tick-label{font-size:12px;color:#64748b;font-weight:500;transform:translate(-50%);white-space:nowrap;margin-left:0}.plan-gantt-row{display:flex;flex:1;overflow:hidden}.plan-summary{display:flex;flex-shrink:0;height:300px;border-bottom:1px solid #e2e8f0;background:#fff;position:relative;z-index:10}.plan-summary__refresh{background:none;border:none;padding:4px;border-radius:4px;color:#94a3b8;cursor:pointer;display:flex;align-items:center}.plan-summary__refresh:hover:not(:disabled){color:#475569;background:#f1f5f9}.plan-summary__refresh:disabled{cursor:default}.plan-summary__refresh--stale{color:#2563eb}.plan-summary__refresh--stale:hover:not(:disabled){color:#1d4ed8;background:#eff6ff}.spin{animation:spin 1s linear infinite}.plan-summary__loading-bar{position:absolute;top:0;left:0;right:0;z-index:10}.plan-summary__left{display:flex;flex-direction:row;align-items:center;gap:20px;width:440px;flex-shrink:0;padding:20px;overflow:hidden}.plan-summary__gauge-wrap{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0}.plan-summary__safety{display:flex;flex-direction:column;gap:3px;width:100%;padding:0 4px}.plan-summary__safety-label{font-size:.72rem;color:#64748b;white-space:nowrap}.plan-summary__safety-bar-row{display:flex;align-items:center;gap:6px}.plan-summary__safety-bar{display:flex;flex:1;height:8px;border-radius:4px;overflow:hidden;background:#f1f5f9}.plan-summary__safety-fill--green{background:#22c55e;transition:width .3s ease}.plan-summary__safety-fill--red{background:#ef4444;transition:width .3s ease}.plan-summary__safety-value{font-size:.78rem;font-weight:600;color:#374151;align-self:flex-end}.plan-summary__gauge-label{font-size:.9rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.plan-summary__tiles{display:flex;flex-direction:column;justify-content:center;gap:8px;flex:1;min-width:0}.plan-summary__tile{display:flex;flex-direction:column;gap:4px;padding:10px 14px;border-left:4px solid #e2e8f0;background:#f8fafc;border-radius:0 6px 6px 0;min-width:0}.plan-summary__tile--warning{border-left-color:#fca5a5;background:#fef2f2}.plan-summary__tile-label{font-size:.75rem;color:#64748b;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plan-summary__tile-value{font-size:1.35rem;font-weight:700;color:#1e293b;white-space:nowrap}.plan-summary__tile-value.negative{color:#ef4444}.plan-summary__right{display:flex;flex-direction:column;flex:1;overflow:hidden;padding:14px 16px 14px 20px;gap:8px}.plan-summary__chart-controls{display:flex;flex-wrap:wrap;gap:6px;flex-shrink:0;justify-content:flex-end}.plan-summary__chart{flex:1;min-height:0;transition:opacity .2s}.plan-summary__chart--loading{opacity:.4;pointer-events:none}.plan-summary__chart-empty{display:flex;align-items:center;justify-content:center;height:100%}.gantt-retirement-ruler{position:sticky;top:0;z-index:15;background:#f8fafc;border-bottom:2px solid #e2e8f0}.retirement-ruler-chips{display:flex;flex-direction:column;justify-content:space-between;padding:6px 10px;height:100%}.retirement-ruler-chip{display:flex;align-items:center;gap:5px;font-size:.72rem;white-space:nowrap}.retirement-ruler-chip__year{color:#94a3b8;font-size:.68rem}.retirement-ruler-chip__past{color:#94a3b8;font-size:.68rem;font-style:italic}.retirement-handle{position:absolute;top:0;bottom:0;display:flex;flex-direction:column;align-items:center;cursor:ew-resize;z-index:5;transform:translate(-50%);-webkit-user-select:none;user-select:none}.retirement-handle__head{width:12px;height:12px;border-radius:50%;background:var(--person-color, #64748b);flex-shrink:0;margin-top:4px;box-shadow:0 1px 3px #0003;transition:transform .1s}.retirement-handle--bottom{flex-direction:column-reverse;justify-content:flex-start}.retirement-handle--bottom .retirement-handle__head{margin-top:0;margin-bottom:4px}.retirement-handle:hover .retirement-handle__head{transform:scale(1.3)}.retirement-handle:hover .retirement-handle__line{opacity:.9}.gantt-retirement-line{position:absolute;top:0;bottom:0;width:0;border-left:2px dashed var(--person-color, #64748b);opacity:.35;pointer-events:none;z-index:20}.gantt-expenses-row{background:#fafafa;border-bottom:1px solid #e2e8f0}.gantt-expenses-row--active .gantt-cell-left{background:#eff6ff}.gantt-expenses-label{font-size:.75rem;font-weight:600;color:#475569}.gantt-one-time-row{background:#fafafa;border-bottom:1px solid #e2e8f0;height:52px}.gantt-one-time-row--inactive .gantt-expense-marker-diamond{background:#cbd5e1;border-color:#94a3b8}.gantt-one-time-row--inactive .gantt-expense-marker-name,.gantt-one-time-row--inactive .gantt-expense-marker-amount{color:#94a3b8}.gantt-expense-marker{position:absolute;display:flex;flex-direction:column;align-items:center;cursor:pointer;overflow:visible;z-index:2}.gantt-expense-marker-diamond{width:10px;height:10px;background:#f59e0b;border:1.5px solid #d97706;border-radius:2px;transform:rotate(45deg);transition:background .12s,transform .12s;flex-shrink:0}.gantt-expense-marker:hover .gantt-expense-marker-diamond{background:#d97706;transform:rotate(45deg) scale(1.25)}.gantt-expense-marker--selected .gantt-expense-marker-diamond{background:#3b82f6;border-color:#1d4ed8;transform:rotate(45deg) scale(1.15)}.gantt-expense-marker-label{display:flex;flex-direction:column;align-items:center;margin-top:5px;pointer-events:none;white-space:nowrap}.gantt-expense-marker-name{font-size:10px;font-weight:600;color:#334155;max-width:100px;overflow:hidden;text-overflow:ellipsis}.gantt-expense-marker-amount{font-size:9px;color:#64748b}.gantt-expenses-base{font-size:.68rem;margin-left:4px}.gantt-expense-phase{position:absolute;background:#64748b38;border:1px solid rgba(100,116,139,.3);border-radius:4px;display:flex;align-items:center;justify-content:center;transition:background .15s;overflow:hidden;width:100%}.gantt-expense-phase:hover{background:#64748b52}.gantt-expense-phase--selected{background:#3b82f62e;border-color:#3b82f680;outline:2px solid rgba(59,130,246,.35);outline-offset:1px}.gantt-expense-phase-label{font-size:11px;font-weight:600;color:#334155;pointer-events:none;white-space:nowrap}.gantt-expense-split{position:absolute;top:-18px;left:50%;transform:translate(-50%)}.gantt-expense-delete{position:absolute;bottom:-18px;left:50%;transform:translate(-50%)}.right-panel-subtitle{font-size:.72rem;margin-top:1px}.right-panel{width:0;overflow:hidden;flex-shrink:0;border-left:1px solid #e2e8f0;transition:width .2s ease;background:#f1f5f9}.right-panel--open{width:360px;overflow-y:auto}.right-panel-inner{display:flex;flex-direction:column}.right-panel-header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid #e2e8f0;position:sticky;top:0;background:#fff;z-index:1}.right-panel-type-icon{display:flex;align-items:center;flex-shrink:0}.right-panel-title{flex:1;display:flex;align-items:center;gap:8px;min-width:0}.right-panel-type-label{font-size:.9rem;font-weight:600;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.right-panel-close{background:none;border:none;cursor:pointer;color:#64748b;padding:4px;border-radius:4px;display:flex;align-items:center;flex-shrink:0}.right-panel-close:hover{background:#f1f5f9;color:#1e293b}.right-panel-body{padding:0}.form-group{display:flex;flex-direction:column;gap:5px}.form-group label{font-size:.82rem;font-weight:500;color:#475569}.input-with-unit{display:flex;align-items:center;border:1.5px solid #e2e8f0;border-radius:8px;overflow:hidden;background:#f8fafc;transition:border-color .15s,box-shadow .15s,background .15s}.input-with-unit input{flex:1;padding:6px 8px;border:none;outline:none;font-size:.9rem;color:#1e293b;background:transparent;min-width:0}.input-with-unit:focus-within{border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px #3b82f61f}.input-with-unit input:focus{outline:none;box-shadow:none}.input-with-unit .unit{padding:6px 8px;font-size:.82rem;color:#64748b;background:transparent;border-left:1px solid #e2e8f0;white-space:nowrap;flex-shrink:0}.right-panel-phases{border-bottom:1px solid #e2e8f0;padding:8px 0}.right-panel-section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#64748b;padding:4px 16px 8px}.phase-base-field{padding:4px 0 12px}.phase-card{border-top:1px solid #f1f5f9}.phase-card-header{display:flex;align-items:center;width:100%}.phase-card-toggle{display:flex;align-items:center;gap:6px;flex:1;min-width:0;padding:8px 12px 8px 8px;background:none;border:none;cursor:pointer;text-align:left;font-size:13px;color:#1e293b}.phase-card-header:hover{background:#00000008}.phase-card-delete{flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:8px;background:none;border:none;cursor:pointer;color:#94a3b8;transition:color .15s}.phase-card-delete:hover{color:#ef4444}.phase-card-field-row{display:flex;align-items:center;gap:4px}.phase-card-lock{flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:4px;background:none;border:none;cursor:pointer;color:#94a3b8;transition:color .15s}.phase-card-lock:hover{color:#3b82f6}.phase-card-chevron{color:#64748b;flex-shrink:0}.phase-card-title{font-weight:500}.phase-card-summary{margin-left:auto;font-size:.8rem;color:#475569}.phase-card-body{padding:4px 0 10px;display:flex;flex-direction:column;gap:8px}.phase-card-body--inline{flex-direction:row;flex-wrap:wrap;align-items:flex-end;gap:12px;padding-top:10px;padding-bottom:4px}.phase-card-field{display:flex;flex-direction:column;gap:4px;flex:0 0 180px;width:180px}.phase-card-field--wide{flex:1 0 180px;width:auto}.phase-card-body--inline>.allocation-input{flex:0 0 100%}.phase-card-body--inline>.allocation-input .form-row{margin-bottom:0}.phase-card-body--inline>.form-row>label{display:flex;flex-direction:column;gap:4px;flex:0 0 180px;width:180px;font-size:.82rem;font-weight:500;color:#475569}.phase-card-field.withdrawal-card-field--full{flex-basis:100%;min-width:0}.phase-card-field-label{font-size:.75rem;color:#64748b;font-weight:500}.phase-mode-pill{display:inline-flex;border:1px solid #cbd5e1;border-radius:4px;overflow:hidden;flex-shrink:0}.phase-mode-pill-btn{padding:1px 6px;font-size:.7rem;font-weight:500;background:transparent;border:none;color:#64748b;cursor:pointer;line-height:1.4;transition:background .1s,color .1s}.phase-mode-pill-btn:hover{background:#f1f5f9}.phase-mode-pill-btn--active{background:#3b82f6;color:#fff}.phase-mode-pill-btn--active:hover{background:#2563eb}.phase-card-row-break{flex:0 0 100%;height:0}.phase-card-field>input[type=text],.phase-card-field--wide>input[type=text]{padding:6px 10px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:.9rem;line-height:1.4;box-sizing:border-box;background:#f8fafc;color:#1e293b;outline:none;transition:border-color .15s,background .15s,box-shadow .15s;width:100%}.phase-card-field>input[type=text]:focus,.phase-card-field--wide>input[type=text]:focus{border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px #3b82f61f}.account-editor-header{display:flex;align-items:center;gap:6px;margin:14px 0 6px}.account-editor-header .section-header-add{margin-left:0}.account-editor-header h4{font-size:.72rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin:0}.account-phase-block{border:1px solid #e2e8f0;border-radius:10px;padding:8px 10px 10px;margin-bottom:8px;background:#f8fafc}.account-phase-block-header{display:flex;align-items:center;gap:5px;margin-bottom:0;padding:2px 0}.account-phase-block-header--clickable{cursor:pointer;border-radius:4px;-webkit-user-select:none;user-select:none}.account-phase-block-header--clickable:hover{background:#f1f5f9}.phase-chevron{flex-shrink:0;color:#94a3b8}.account-phase-block-header--clickable:hover .phase-chevron{color:#64748b}.account-phase-block-summary{font-size:.75rem;color:#94a3b8;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-phase-block-title{font-size:.78rem;font-weight:500;color:#475569}.account-phase-block-range{font-size:.78rem;color:#94a3b8;margin-left:6px}.account-phase-block-header .phase-card-delete{margin-left:auto}.alloc-row{display:flex;align-items:center;gap:6px}.alloc-row .input-with-unit{flex:1}.alloc-sep{color:#94a3b8;font-size:14px}.field-hint--warn{font-size:11px;color:#f59e0b;margin:2px 0 0}.right-panel-body .card{border:1px solid #e2e8f0;border-radius:14px;margin:12px}.right-panel-body .account-form .form-row{flex-direction:column;gap:8px}.right-panel-body .account-form .form-row label{width:100%;min-width:0;flex:unset}.gantt-row-toggle{margin-left:auto;flex-shrink:0}.gantt-row--inactive .gantt-bar{filter:opacity(.3)}.gantt-row--selected .gantt-cell-left{background:#eff6ff}.gantt-row--selected .gantt-cell-timeline{background:#f8faff}.gantt-cell-left--clickable{cursor:pointer}.gantt-cell-left--clickable:hover{background:#f8fafc}.gantt-row--selected .gantt-cell-left--clickable{background:#eff6ff}.gantt-drag-handle{display:flex;align-items:center;flex-shrink:0;cursor:grab;color:#cbd5e1;padding:0 2px;touch-action:none}.gantt-drag-handle:hover{color:#94a3b8}.gantt-drag-handle:active{cursor:grabbing}.gantt-row--drop-target{border-top:2px solid #3b82f6}.gantt-group-header--clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.gantt-group-header--clickable:hover .gantt-cell-left{background:#f1f5f9}.gantt-group-chevron{display:flex;align-items:center;flex-shrink:0;margin-right:2px}.gantt-contribution-marker{position:absolute;top:1px;width:10px;height:7px;background:currentColor;clip-path:polygon(0 0,100% 0,50% 100%);pointer-events:none;z-index:2}.gantt-contribution-hit{position:absolute;width:10px;height:28px;cursor:pointer;z-index:11;border-radius:2px}.gantt-contribution-hit:hover{background-color:var(--contribution-color);opacity:.4}.gantt-edge-handle{position:absolute;width:10px;height:28px;cursor:ew-resize;z-index:20}.gantt-phase-action{position:absolute;left:50%;display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;border:1.5px solid #94a3b8;background:#fff;color:#334155;cursor:pointer;transform:translate(-50%);z-index:20;padding:0;box-shadow:0 1px 3px #00000026}.gantt-phase-action--split{top:2px}.gantt-phase-action--delete{bottom:2px}.gantt-phase-action:hover{background:#f1f5f9;color:#0f172a;border-color:#64748b;box-shadow:0 2px 4px #0000002e}.gantt-phase-action--delete:hover{color:#ef4444;border-color:#fca5a5;box-shadow:0 2px 4px #ef444433}.welcome{min-height:100vh;background:#f1f5f9;display:flex;align-items:flex-start;justify-content:center;padding:28px 24px 44px;overflow-y:auto}.welcome-inner{width:100%;max-width:920px;display:flex;flex-direction:column;gap:28px}.welcome-header{display:flex;align-items:center;gap:10px;color:#1e293b;font-size:1rem;font-weight:700}.welcome-hero{text-align:center;padding:4px 0}.welcome-title{font-size:2.6rem;font-weight:800;color:#0f172a;letter-spacing:-.02em;line-height:1.1}.welcome-subtitle{margin-top:12px;font-size:1.1rem;color:#64748b;max-width:7000px;margin-left:auto;margin-right:auto;line-height:1.6}.welcome-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}@media(max-width:680px){.welcome-layout{grid-template-columns:1fr}}.welcome-card{background:#fff;border-radius:14px;box-shadow:0 1px 3px #00000014,0 4px 20px #0000000f;padding:24px;display:flex;flex-direction:column;gap:20px}.welcome-card-heading{display:flex;align-items:flex-start;gap:14px}.welcome-card-icon{flex-shrink:0;width:38px;height:38px;border-radius:10px;background:#eff6ff;color:#3b82f6;display:flex;align-items:center;justify-content:center}.welcome-card-heading h2{font-size:1rem;font-weight:700;color:#0f172a;margin-bottom:3px}.welcome-card-heading p{font-size:.82rem;color:#94a3b8}.welcome-wizard-form{display:flex;flex-direction:column;gap:14px}.welcome-field{display:flex;flex-direction:column;gap:6px;position:relative}.welcome-field-label-row{display:flex;align-items:center;gap:6px}.welcome-field-label-row>span{font-size:.82rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.04em}.welcome-field span:first-child{font-size:.82rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.04em}.welcome-field-info-btn{display:flex;align-items:center;background:none;border:none;padding:2px;cursor:pointer;color:#94a3b8;transition:color .15s;line-height:1}.welcome-field-info-btn:hover{color:#3b82f6}.welcome-field-hint{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;padding:12px 14px;font-size:.8rem;color:#0369a1;line-height:1.55;display:flex;flex-direction:column;gap:6px}.welcome-field-hint ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:2px}.welcome-field-hint em{font-style:normal;font-weight:700}.welcome-field-hint p{margin:0}.welcome-field-input-row{position:relative}.welcome-field-input-row input{width:100%;height:42px;border:1.5px solid #e2e8f0;border-radius:8px;padding:0 52px 0 14px;font-size:.95rem;color:#0f172a;background:#f8fafc;outline:none;transition:border-color .15s,box-shadow .15s}.welcome-field-input-row input:focus{border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px #3b82f61f}.welcome-field input{height:42px;border:1.5px solid #e2e8f0;border-radius:8px;padding:0 52px 0 14px;font-size:.95rem;color:#0f172a;background:#f8fafc;outline:none;transition:border-color .15s,box-shadow .15s}.welcome-field input:focus{border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px #3b82f61f}.welcome-field-unit{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:.8rem;color:#94a3b8;pointer-events:none}.welcome-error{font-size:.82rem;color:#ef4444}.welcome-btn-primary{display:flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 28px;background:#3b82f6;color:#fff;border:none;border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .15s,box-shadow .15s}.welcome-btn-primary:hover{background:#2563eb;box-shadow:0 4px 12px #3b82f659}.welcome-btn-ghost{display:flex;align-items:center;justify-content:center;gap:6px;height:38px;background:none;border:none;color:#94a3b8;font-size:.85rem;cursor:pointer;transition:color .15s}.welcome-btn-ghost:hover{color:#64748b}.welcome-wizard-hint{font-size:.78rem;color:#94a3b8;text-align:center;line-height:1.5}.welcome-wizard-loading{display:flex;flex-direction:column;align-items:center;gap:16px;padding:32px 0;color:#64748b;font-size:.9rem}.welcome-spinner{width:36px;height:36px;border:3px solid #e2e8f0;border-top-color:#3b82f6;border-radius:50%;animation:welcome-spin .7s linear infinite}@keyframes welcome-spin{to{transform:rotate(360deg)}}.welcome-wizard-result{display:flex;flex-direction:column;align-items:center;gap:20px}.welcome-wizard-gauge{display:flex;flex-direction:column;align-items:center;gap:8px}.welcome-wizard-gauge-label{font-size:.78rem;color:#94a3b8;text-align:center}.welcome-wizard-stats{display:flex;gap:24px;justify-content:center}.welcome-stat{display:flex;flex-direction:column;align-items:center;gap:4px}.welcome-stat-value{font-size:1.15rem;font-weight:700;color:#0f172a}.welcome-stat-label{font-size:.75rem;color:#94a3b8;text-align:center}.welcome-personas{display:flex;flex-direction:column;gap:14px}.welcome-persona-item{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1.5px solid #e2e8f0;border-radius:10px;background:#fff;cursor:pointer;text-align:left;transition:border-color .15s,box-shadow .15s,background .15s}.welcome-persona-item:hover:not(:disabled){border-color:#93c5fd;box-shadow:0 2px 8px #3b82f61f;background:#f8fafc}.welcome-persona-item:disabled{opacity:.6;cursor:default}.welcome-persona-emoji{font-size:1.6rem;flex-shrink:0;line-height:1}.welcome-persona-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:0}.welcome-persona-name{font-size:.9rem;font-weight:700;color:#0f172a}.welcome-persona-summary{margin-top:3px;font-size:.8rem;font-weight:600;color:#3b82f6}.welcome-persona-detail{margin-top:4px;font-size:.86rem;color:#94a3b8;line-height:1.4}.welcome-persona-arrow{flex-shrink:0;color:#cbd5e1;transition:color .15s}.welcome-persona-item:hover .welcome-persona-arrow{color:#3b82f6}.welcome-persona-spinner{display:inline-block;width:16px;height:16px;border:2px solid #e2e8f0;border-top-color:#3b82f6;border-radius:50%;animation:welcome-spin .7s linear infinite;flex-shrink:0}.welcome-scratch{display:flex;justify-content:center}.welcome-btn-scratch{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:#94a3b8;font-size:.88rem;cursor:pointer;padding:8px 16px;border-radius:8px;transition:color .15s,background .15s}.welcome-btn-scratch:hover{color:#475569;background:#e2e8f0}.welcome-limit-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.welcome-limit-modal{background:#fff;border-radius:14px;padding:32px;max-width:380px;width:90%;display:flex;flex-direction:column;gap:16px;box-shadow:0 8px 40px #0000002e}.welcome-limit-modal h3{font-size:1rem;font-weight:700;color:#0f172a}.welcome-limit-modal p{font-size:.9rem;color:#475569;line-height:1.5}
