:root,:root[data-theme=dark]{--bg-primary:#10141c;--bg-secondary:#181f2b;--bg-glass:#ffffff09;--accent:#6c63ff;--accent-2:#00d2ff;--success:#22c55e;--danger:#ef4444;--warning:#f59e0b;--text-primary:#f1f5f9;--text-muted:#94a3b8;--border:#ffffff17;--border-strong:#ffffff3d;--surface-shadow:0 8px 26px #0509125c;--danger-soft-bg:#ef44441f;--danger-soft-text:#fecaca;--radius:12px;--font:"Inter", system-ui, sans-serif}:root[data-theme=light]{--bg-primary:#f4f7fc;--bg-secondary:#fff;--bg-glass:#fffc;--accent:#5b4dff;--accent-2:#0ea5e9;--success:#16a34a;--danger:#dc2626;--warning:#d97706;--text-primary:#0f172a;--text-muted:#64748b;--border:#0f172a1f;--border-strong:#0f172a38;--surface-shadow:0 8px 24px #0f172a12;--danger-soft-bg:#dc26261f;--danger-soft-text:#991b1b}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;line-height:1.5}a{color:var(--accent-2);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0 0 .5rem;font-weight:600}.glass{background:var(--bg-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--surface-shadow)}.card-shell{padding:1.05rem 1.1rem}.card-title{color:var(--text-muted);margin-bottom:.75rem;font-size:.9rem;font-weight:600}.admin-content-card{flex-direction:column;height:100%;min-height:0;display:flex}.admin-content-meta-grid{grid-template-columns:minmax(260px,1.8fr) minmax(180px,1.2fr) minmax(160px,1fr) 110px}.admin-content-tags-grid{grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto}@media (width<=1280px){.admin-content-meta-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}.admin-content-tags-grid{grid-template-columns:repeat(2,minmax(200px,1fr))}.admin-content-flags{grid-column:1/-1}}@media (width<=900px){.admin-content-meta-grid,.admin-content-tags-grid{grid-template-columns:1fr}.admin-content-flags{flex-wrap:wrap;grid-column:auto}}.btn{cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:.5rem;padding:.55rem 1.1rem;font-family:inherit;font-size:.9rem;font-weight:500;transition:transform .15s,box-shadow .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;box-shadow:0 4px 20px #6c63ff59}.btn-primary:hover:not(:disabled){transform:translateY(-1px)}.btn-ghost{color:var(--text-muted);border:1px solid var(--border);background:0 0}.btn-ghost:hover:not(:disabled){color:var(--text-primary);border-color:var(--border-strong)}.btn-danger{color:var(--danger);background:#ef444426;border:1px solid #ef444459}.input,.select,.textarea{border:1px solid var(--border);background:var(--bg-secondary);width:100%;color:var(--text-primary);border-radius:8px;padding:.65rem .75rem;font-family:inherit;font-size:.95rem}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #6c63ff40}.label{color:var(--text-muted);margin-bottom:.35rem;font-size:.8rem;display:block}.field{margin-bottom:1rem}.page-title{letter-spacing:.01em;margin-bottom:.9rem;font-size:1.35rem}.grid-2{gap:1rem;display:grid}@media (width>=900px){.grid-2{grid-template-columns:1fr 1fr}}.table-wrap{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-secondary);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.6rem .8rem}th{color:var(--text-muted);letter-spacing:.02em;background:var(--bg-secondary);font-size:.8rem;font-weight:600}.table-sticky thead th{z-index:1;position:sticky;top:0}tr:last-child td{border-bottom:none}.income{color:var(--success)}.expense{color:var(--danger)}.error-banner{background:var(--danger-soft-bg);color:var(--danger-soft-text);border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.muted{color:var(--text-muted);font-size:.85rem}.actions{flex-wrap:wrap;gap:.5rem;display:flex}.toolbar{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.toolbar-nowrap{flex-wrap:nowrap;padding-bottom:.15rem;overflow-x:auto}.toolbar-nowrap .toolbar-group{flex-wrap:nowrap}.toolbar-group{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.date-range-inline{white-space:nowrap;gap:.35rem}.kpi-grid{grid-template-columns:repeat(1,minmax(0,1fr));gap:.85rem;display:grid}@media (width>=760px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1200px){.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.kpi-value{font-size:1.45rem;font-weight:700;line-height:1.2}.kpi-value-sm{font-size:1.15rem;font-weight:650;line-height:1.25}.theme-toggle{border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;border-radius:999px;align-items:center;gap:.45rem;padding:.25rem .45rem;transition:border-color .15s,box-shadow .15s;display:inline-flex}.theme-toggle:hover{border-color:var(--border-strong)}.theme-toggle:focus-visible{outline:none;box-shadow:0 0 0 2px #6c63ff40}.theme-toggle-track{background:var(--border);border-radius:999px;align-items:center;width:38px;height:22px;padding:2px;display:inline-flex}.theme-toggle-knob{background:linear-gradient(135deg, var(--accent), var(--accent-2));border-radius:50%;width:18px;height:18px;transition:transform .18s}.theme-toggle.is-light .theme-toggle-knob{transform:translate(16px)}.theme-toggle-label{font-size:.9rem;line-height:1}.profile-menu{position:relative}.profile-trigger{border:1px solid var(--border);background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;cursor:pointer;border-radius:999px;width:34px;height:34px;font-weight:700}.profile-trigger:hover{filter:brightness(1.05)}.profile-popover{z-index:20;min-width:220px;padding:.75rem .5rem .5rem;position:absolute;top:100%;right:0}.profile-popover-user{border-bottom:1px solid var(--border);margin-bottom:.35rem;padding:.45rem .5rem .65rem}.profile-menu-btn{text-align:left;width:100%;color:var(--text-primary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;padding:.5rem .55rem}.profile-menu-btn:hover{background:var(--bg-secondary);border-color:var(--border)}.profile-menu-btn.danger{color:var(--danger)}.brand-lockup{align-items:center;gap:.55rem;margin-bottom:.9rem;display:flex}.brand-dot{background:linear-gradient(135deg, var(--accent), var(--accent-2));border-radius:999px;width:10px;height:10px}.quick-add-btn{border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;border-radius:10px;padding:.45rem .7rem;font-weight:600}.quick-add-btn:hover{border-color:var(--border-strong)}.tz-chip{cursor:default;align-items:center;display:inline-flex;position:relative}.tz-tooltip{white-space:nowrap;opacity:0;pointer-events:none;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border);box-shadow:var(--surface-shadow);border-radius:8px;padding:.32rem .5rem;font-size:.78rem;transition:opacity .12s;position:absolute;top:50%;right:calc(100% + .45rem);transform:translateY(-50%)}.tz-chip:hover .tz-tooltip{opacity:1}.modal-backdrop{z-index:40;background:#0a0e1880;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-card{width:min(460px,100%);padding:1rem}.mini-chip{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:999px;padding:.35rem .7rem}.mini-chip.active{color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));border-color:#0000}.input[type=date]{min-width:145px}.markdown-body h1,.markdown-body h2,.markdown-body h3{margin:.6em 0 .35em;font-weight:700;line-height:1.25}.markdown-body p{margin:.5em 0;line-height:1.55}.markdown-body ul,.markdown-body ol{margin:.5em 0;padding-left:1.35rem}.markdown-body code{background:var(--bg-secondary);border-radius:4px;padding:.1em .35em;font-family:ui-monospace,monospace;font-size:.88em}.markdown-body pre{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:.75rem;overflow:auto}.markdown-body pre code{background:0 0;padding:0}.markdown-body a{color:var(--accent)}.advisor-header-block{flex-shrink:0;align-items:center;gap:.35rem;display:flex}.advisor-header-desktop{align-items:center;gap:.55rem;min-width:0;display:flex}.advisor-header-avatar-btn{cursor:zoom-in;background:0 0;border:none;border-radius:50%;flex-shrink:0;margin:0;padding:0;line-height:0;display:flex}.advisor-header-avatar-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.advisor-header-avatar{object-fit:cover;border:1px solid var(--border);border-radius:50%;flex-shrink:0;display:block}.advisor-photo-lightbox-backdrop{z-index:4000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#020617b8;place-items:center;padding:1.25rem;display:grid;position:fixed;inset:0}.advisor-photo-lightbox-dialog{flex-direction:column;align-items:center;gap:.75rem;max-width:min(420px,100%);display:flex}.advisor-photo-lightbox-img{object-fit:contain;border:1px solid #ffffff1f;border-radius:12px;width:auto;max-width:min(420px,90vw);height:auto;max-height:min(85vh,520px);box-shadow:0 20px 50px #00000073}.advisor-photo-lightbox-close{color:var(--text-primary)}.advisor-ask-link{color:var(--accent);cursor:pointer;text-align:left;text-underline-offset:2px;background:0 0;border:none;margin:0;padding:0;font-size:.78rem;font-weight:600;text-decoration:underline}.advisor-ask-link:hover{color:var(--accent-2)}.advisor-header-mobile-icon{width:40px;height:40px;color:var(--accent);cursor:pointer;background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;padding:0;display:none}.advisor-header-mobile-icon:hover{background:var(--bg-secondary)}@media (width<=640px){.advisor-header-desktop{display:none!important}.advisor-header-mobile-icon{display:inline-flex}}.advisor-help-block{border:1px solid var(--border);background:var(--bg-secondary);width:100%;color:var(--text-primary);text-align:left;cursor:pointer;border-radius:10px;align-items:center;gap:.5rem;margin-top:1rem;padding:.55rem .75rem;font-size:.88rem;line-height:1.35;transition:border-color .15s,background .15s;display:flex}.advisor-help-block:hover{background:var(--bg-primary);border-color:#6c63ff73}.advisor-help-block svg{color:var(--accent);flex-shrink:0}.advisor-help-block-text{flex:1;min-width:0}.journey-page-root{flex-direction:column;gap:14px;display:flex}@keyframes journeyStrikeIn{0%{opacity:.8;text-decoration-color:#0000}to{opacity:1;text-decoration-color:currentColor}}.journey-task-strike{animation:.35s journeyStrikeIn}.journey-map-shell{border:1px solid var(--border);border-radius:var(--radius,12px);background:var(--bg-secondary);box-shadow:var(--surface-shadow);overflow:hidden}.journey-map-shell-header{border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:.65rem .85rem;display:flex}.journey-map-shell-title{color:var(--text-muted);font-size:.9rem;font-weight:600}.journey-map-toggle{padding:.4rem .75rem;font-size:.85rem}.journey-map-block{background:#0a0a1a;width:100%;max-width:100%}.journey-compact{background:#0a0a1a;padding:.85rem .65rem 1rem}.journey-compact-inner{padding-top:8px;position:relative}.journey-compact-rail{pointer-events:none;background:#ffffff1a;border-radius:999px;height:4px;position:absolute;top:22px;left:7.14286%;right:7.14286%}.journey-compact-rail-done{pointer-events:none;background:linear-gradient(90deg,#22c55e,#86efac);border-radius:999px;height:4px;transition:width .35s,opacity .35s;position:absolute;top:22px;left:7.14286%}.journey-compact-rail-next{pointer-events:none;opacity:.85;background:repeating-linear-gradient(90deg,#ffffffbf,#ffffffbf 6px,#0000 6px 11px);border-radius:999px;height:4px;transition:left .35s,width .35s;position:absolute;top:22px}.journey-compact-stops{z-index:1;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;display:grid;position:relative}.journey-compact-stop{cursor:pointer;color:var(--text-primary);font:inherit;background:0 0;border:none;flex-direction:column;align-items:center;gap:6px;min-width:0;margin:0;padding:4px 2px 0;display:flex}.journey-compact-stop:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}.journey-compact-dot{background:#94a3b859;border:2px solid #ffffff59;border-radius:50%;flex-shrink:0;width:12px;height:12px;transition:transform .15s,box-shadow .15s,background .15s}.journey-compact-stop.is-past .journey-compact-dot{background:linear-gradient(135deg,#22c55e,#4ade80);border-color:#86efac99}.journey-compact-stop.is-current .journey-compact-dot{background:linear-gradient(135deg, var(--accent), var(--accent-2));border-color:#ffffff80;width:16px;height:16px;box-shadow:0 0 0 3px #6c63ff40}.journey-compact-stop.is-next .journey-compact-dot{background:#334155e6;border-color:#e2e8f073}.journey-compact-stop.is-future .journey-compact-dot{opacity:.45;filter:blur(.3px)}@media (hover:hover) and (pointer:fine){.journey-compact-stop:hover .journey-compact-dot{transform:scale(1.12);box-shadow:0 0 10px #8cf0c833}.journey-compact-stop.is-current:hover .journey-compact-dot{box-shadow:0 0 0 3px #6c63ff40,0 0 12px #00d2ff40}}.journey-compact-label{text-align:center;color:#e2e8f0e0;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.62rem;line-height:1.15;overflow:hidden}.journey-compact-stop.is-future .journey-compact-label{opacity:.55}@media (width<=640px){.journey-compact-label{font-size:.58rem}}.journey-map-scroll{overflow:visible hidden}.journey-map-track{width:100%;position:relative}.journey-map-img-wrap{width:100%;line-height:0;position:relative}.journey-map-img{vertical-align:top;width:100%;height:auto;display:block}.journey-map-zones{flex-direction:row;display:flex;position:absolute;inset:0}.journey-map-zone{cursor:pointer;box-sizing:border-box;background:0 0;border:none;flex:0 0 14.2857%;width:14.2857%;height:100%;margin:0;padding:0;position:relative}.journey-map-zone-highlight{aspect-ratio:1;opacity:0;pointer-events:none;background:radial-gradient(circle,#ffffff1a 0%,#c8ffdc0f 45%,#0000 70%);border-radius:50%;width:min(40%,3.5rem);max-height:22%;transition:opacity .2s,box-shadow .2s,transform .2s;position:absolute;bottom:11%;left:56%;transform:translate(-50%);box-shadow:0 0 #78ffc800}@media (hover:hover) and (pointer:fine){.journey-map-zone:hover .journey-map-zone-highlight{opacity:1;transform:translate(-50%)scale(1.06);box-shadow:0 0 14px #8cf0c82e}}@media (width<=760px){.journey-map-scroll{-webkit-overflow-scrolling:touch;overflow:auto hidden}.journey-map-track{min-width:720px}.journey-map-img{width:100%}}.house-page-root{flex-direction:column;gap:14px;max-width:960px;margin:0 auto;display:flex}.house-page-root--iso{flex-direction:column;flex:1;width:100%;max-width:none;min-height:0;display:flex}.house-page-root--iso-bleed{flex:1;min-height:0;margin:-1.25rem 0}.house-page-iso-with-panel{flex:1;grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr) 360px;align-items:stretch;gap:6px 18px;width:100%;min-height:0;display:grid}.house-page-iso-with-panel__title{grid-area:1/1;align-self:center;margin:0}.house-page-iso-with-panel__panel{grid-area:1/2/-1;width:100%;min-height:0}.house-page-iso-with-panel__main{flex-direction:column;grid-area:2/1;gap:6px;min-height:0;display:flex}.house-map-shell--full{flex-direction:column;flex:1;width:100%;min-height:0;display:flex}.house-map-shell--iso-fit{min-height:0}.house-map-shell__svg-fit{box-sizing:border-box;flex-direction:column;flex:1;justify-content:flex-start;align-items:center;width:100%;max-width:100%;min-height:0;padding-top:8px;padding-bottom:8px;display:flex;overflow:hidden}.house-map-shell__svg-fit .house-page-svg--iso{flex:0 auto;width:100%;max-width:100%;height:auto;min-height:0;max-height:100%}.house-page-side-panel{border-left:1px solid var(--border);background:var(--bg-secondary);min-height:0;box-shadow:none;border-radius:0;flex-direction:column;align-self:stretch;display:flex;overflow:hidden}.house-page-side-header{border-bottom:1px solid #94a3b833;flex-shrink:0;justify-content:flex-end;align-items:center;padding:10px 10px 6px;display:flex}.house-page-side-close{width:40px;height:40px;color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;display:flex}.house-page-side-close:hover{background:#ffffff0f}.house-page-side-scroll{flex:1;min-height:0;padding:1rem 1rem 1.1rem;overflow-y:auto}.house-page-side-body{animation:.2s ease-out houseSideBodyFade}@keyframes houseSideBodyFade{0%{opacity:0}to{opacity:1}}.house-page-side-expand{background:var(--bg-secondary);width:100%;min-height:160px;color:var(--text-primary);cursor:pointer;border:none;flex:1;justify-content:center;align-items:center;padding:0;display:flex}.house-page-side-expand:hover{background:#ffffff0a}@media (width<=900px){.house-page-iso-with-panel{grid-template-rows:auto auto 1fr;grid-template-columns:1fr;gap:12px 0}.house-page-iso-with-panel__title{grid-area:1/1}.house-page-iso-with-panel__panel{border-left:none;border-top:1px solid var(--border);border-bottom:1px solid var(--border);grid-area:2/1;max-height:min(52vh,480px)}.house-page-iso-with-panel__main{grid-area:3/1}.house-page-root--iso-bleed{margin:0}}.house-panel{background:var(--bg-secondary);box-shadow:none;border:none;border-radius:0;overflow:visible}.house-panel-inner{padding:0;animation:none}@keyframes housePanelFade{0%{opacity:0}to{opacity:1}}.house-panel-title{margin:0 0 6px;font-size:1.05rem;font-weight:700;line-height:1.25}.house-panel-sub{color:var(--text-muted);margin:0 0 14px;font-size:.88rem;line-height:1.4}.house-panel-donut-row{border-bottom:1px solid #94a3b838;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:12px;padding-bottom:14px;display:flex}.house-donut{flex-shrink:0;width:112px;height:112px;position:relative}.house-donut-label{color:var(--text-primary);pointer-events:none;justify-content:center;align-items:center;font-size:1.1rem;font-weight:700;display:flex;position:absolute;inset:0}.house-panel-donut-caption{color:var(--text-muted);flex:1;min-width:140px;font-size:.9rem;line-height:1.45}.house-panel-streak{color:var(--text-muted);margin:0 0 12px;font-size:.86rem}.house-panel-counters{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px;display:grid}.house-panel-counter{text-align:center;border:1px solid var(--border);background:#ffffff05;border-radius:10px;padding:8px 6px}.house-panel-counter-label{color:var(--text-muted);margin-bottom:4px;font-size:.68rem;display:block}.house-panel-counter-value{font-size:1.1rem;font-weight:700}.house-panel-counter--built .house-panel-counter-value{color:#22c55e}.house-panel-counter--progress .house-panel-counter-value{color:#eab308}.house-panel-counter--todo .house-panel-counter-value{color:#94a3b8}.house-panel-next-goal{text-align:left;width:100%;color:var(--text-primary);cursor:pointer;font:inherit;background:#22c55e14;border:1px solid #22c55e73;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;margin:0 0 16px;padding:12px;transition:background .15s,border-color .15s;display:flex}.house-panel-next-goal:hover{background:#22c55e24;border-color:#22c55ea6}.house-panel-next-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:4px;font-size:.72rem}.house-panel-next-name{font-size:.95rem;font-weight:600;line-height:1.3}.house-panel-section{margin-bottom:12px}.house-panel-section-title{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin-bottom:8px;font-size:.78rem;font-weight:600}.house-panel-action-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.house-panel-action-link{color:var(--text-primary);border:1px solid #0000;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:.88rem;font-weight:500;text-decoration:none;display:flex}.house-panel-action-link:hover{border-color:var(--border);background:#ffffff0a}.house-panel-badge{border-radius:999px;margin-bottom:12px;padding:4px 10px;font-size:.78rem;font-weight:600;display:inline-block}.house-panel-badge--built{color:#4ade80;background:#22c55e33;border:1px solid #22c55e73}.house-panel-badge--progress{color:#facc15;background:#eab3082e;border:1px solid #eab30866}.house-panel-badge--todo{color:#94a3b8;background:#94a3b81f;border:1px solid #94a3b847}.house-panel-block{border-top:1px solid #94a3b833;margin:14px 0;padding-top:12px}.house-panel-desc{color:var(--text-muted);margin:0;font-size:.88rem;line-height:1.45}.house-panel-details{color:var(--text-muted);white-space:pre-wrap;font-size:.84rem;line-height:1.45}.house-panel-progress-head{color:var(--text-muted);justify-content:space-between;align-items:center;margin-bottom:6px;font-size:.82rem;display:flex}.house-panel-progress-pct{color:var(--text-primary);font-weight:700}.house-panel-progress{background:#ffffff14;border-radius:999px;height:8px;overflow:hidden}.house-panel-progress>div{background:#eab308;border-radius:999px;height:100%;transition:width .35s}.house-panel-progress--built>div{background:#22c55e}.house-panel-steps{flex-direction:column;gap:6px;margin:0;padding:0 0 0 1rem;display:flex}.house-panel-step-link{color:var(--accent);font-size:.88rem;font-weight:500;text-decoration:none}.house-panel-step-link:hover{text-decoration:underline}.house-panel-summary-list{margin:0 0 12px;padding:0 0 0 1.1rem;font-size:.9rem;line-height:1.55}.house-panel-fin-plan-links{flex-direction:column;gap:8px;margin-top:4px;display:flex}.house-panel-cta{justify-content:center;width:100%;margin-top:10px}.house-panel-checklist{flex-direction:column;gap:10px;display:flex}.house-panel-check{cursor:pointer;align-items:center;gap:8px;font-size:.88rem;display:flex}.house-panel-details-label{color:var(--text-muted);flex-direction:column;gap:6px;font-size:.82rem;display:flex}.house-panel-advisor{border-top:1px solid #94a3b833;margin-top:16px;padding-top:14px}.house-panel-advisor .advisor-help-block{width:100%}.house-page-title{margin:0;font-size:1.35rem;font-weight:700}.house-page-summary{flex-direction:column;gap:8px;display:flex}.house-page-summary-row{color:var(--text-muted);font-size:.9rem}.house-page-bar-wrap{margin-right:0}.house-page-bar{border:1px solid var(--border);background:#ffffff14;border-radius:999px;height:10px;overflow:hidden}.house-page-bar>div{background:linear-gradient(90deg,#2151d1,#22c55e);border-radius:999px;height:100%;transition:width .6s}.house-map-shell{border:1px solid var(--border);box-shadow:var(--surface-shadow);--house-sky-bottom:var(--bg-primary);background:0 0;border-radius:14px;overflow:hidden}:root[data-theme=light] .house-map-shell{--house-sky-bottom:#0a0a1a}.house-page-svg{width:100%;max-height:min(78vh,640px);display:block}.house-page-svg--iso{max-height:min(94vh,920px)}.house-page-svg--iso .house-cell-label{-webkit-font-smoothing:antialiased;text-rendering:geometricprecision;font-family:system-ui,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.house-page-svg--iso .house-cell:hover{filter:brightness(1.09)}.house-page-svg--iso .house-cell:focus-visible .house-cell-frame--selected,.house-page-svg--iso .house-cell:focus-visible .house-cell-fill{outline:none}.house-page-svg--iso .house-cell:focus-visible .house-cell-fill{filter:brightness(1.12)}@keyframes houseCellPulseGlow{0%,to{filter:brightness()}50%{filter:brightness(1.38)}}.house-page-svg--iso .house-cell--pulse{animation:.5s ease-in-out 4 houseCellPulseGlow}.house-page-svg--iso .house-roof-selection{filter:drop-shadow(0 0 6px #ffffff73)}@media (width<=600px){.house-page-svg--iso .house-svg-side-left,.house-page-svg--iso .house-svg-side-right-stairs{display:none}}@keyframes houseRise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.house-page-svg .house-zone{opacity:0;outline:none;animation:.5s forwards houseRise}.house-page-svg .house-zone:focus-visible .house-zone-rect{stroke:#fff;stroke-opacity:1}.house-page-svg .house-zone:hover .house-zone-rect,.house-page-svg .house-zone:focus-visible .house-zone-rect{fill-opacity:.5!important;stroke:#fff!important;stroke-opacity:1!important}.goals-page-title-row{flex-wrap:wrap;align-items:center;gap:.45rem;margin-bottom:.35rem;display:flex}.goals-page-help-icon{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 88%, transparent);width:2rem;height:2rem;color:var(--muted);cursor:help;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex}.goals-page-help-icon:hover{color:var(--text);border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.hover-tip{align-items:center;display:inline-flex;position:relative}.hover-tip__pop{z-index:100;border-radius:var(--radius,8px);border:1px solid var(--border-strong);background:var(--bg-secondary);min-width:min(22rem,100vw - 2rem);max-width:min(40rem,100vw - 2rem);color:var(--text-primary);white-space:pre-line;-webkit-backdrop-filter:none;padding:.7rem .85rem;font-size:.85rem;line-height:1.45;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 12px 36px #00000059}.hover-tip--align-end .hover-tip__pop{left:auto;right:0}.goals-page-label-with-tip{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.goals-page-label-with-tip .label{margin-bottom:0}.goals-page-field-help{border:1px solid var(--border);background:var(--bg-secondary);width:1.65rem;height:1.65rem;color:var(--text-muted);cursor:help;border-radius:999px;justify-content:center;align-items:center;margin:0 0 .15rem;padding:0;display:inline-flex}.goals-page-field-help:hover{color:var(--text-primary);border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.goals-page-modal-footer{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.65rem;margin-top:.25rem;display:flex}.goals-page-create-modal.modal-card{background:var(--bg-secondary);width:min(460px,100%);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--surface-shadow);-webkit-backdrop-filter:none}.goals-page-passive-callout{border-radius:var(--radius,14px);border:1px solid color-mix(in srgb, var(--accent-2) 28%, var(--border));background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 12%, var(--surface)) 0%, color-mix(in srgb, var(--surface) 96%, transparent) 55%);flex-direction:column;gap:1rem;margin-bottom:1.25rem;padding:1.25rem 1.35rem;display:flex;box-shadow:0 12px 40px #00000024}.goals-page-passive-callout--vip{border-width:1px}.goals-page-passive-callout__body{flex:auto}.goals-page-passive-callout__kicker{letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb, var(--accent-2) 85%, var(--muted));margin:0 0 .35rem;font-size:.72rem;font-weight:700}.goals-page-passive-callout__lead{color:var(--text);max-width:52rem;margin:0 0 .85rem;font-size:1.02rem;font-weight:550;line-height:1.55}.goals-page-passive-callout__list{color:var(--muted);max-width:48rem;margin:0;padding-left:1.2rem;font-size:.92rem;line-height:1.55}.goals-page-passive-callout__list li{margin-bottom:.45rem}.goals-page-passive-callout__list li:last-child{margin-bottom:0}.goals-page-passive-callout__actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.goals-page-passive-callout__text{color:var(--text);flex:12rem;font-size:.9rem;line-height:1.45}.goals-page-horizon{border-radius:var(--radius,12px);border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 92%, transparent);border-left:4px solid color-mix(in srgb, var(--accent) 55%, var(--border));margin-bottom:1.85rem;padding:.85rem .85rem .85rem 1rem}.goals-page-horizon-title{color:var(--text);margin:0 0 .35rem;font-size:1.12rem;font-weight:650}.goals-page-horizon-hint{color:var(--muted);max-width:52rem;margin:0 0 .85rem;font-size:.9rem;line-height:1.45}.goals-page-goal-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:.85rem;display:grid}.goals-page-goal-shell{border-radius:var(--radius,12px);cursor:pointer;outline:none;padding:1rem 1rem .85rem;transition:border-color .15s,box-shadow .15s;position:relative}.goals-page-goal-shell:hover{border-color:color-mix(in srgb, var(--accent) 35%, var(--border));box-shadow:0 6px 22px #0000001f}.goals-page-goal-shell:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 55%, transparent)}.goals-page-informer{width:11px;height:11px;box-shadow:0 0 0 2px color-mix(in srgb, var(--surface) 90%, transparent);border-radius:50%;position:absolute;top:.65rem;right:.65rem}.goals-page-informer--ok{background:#22c55e}.goals-page-informer--warn{background:#f59e0b}.goals-page-informer--muted{background:#94a3b8}.goals-page-goal-head{flex-wrap:wrap;align-items:center;gap:.45rem;padding-right:1.25rem;display:flex}.goals-page-goal-title{font-size:1rem;font-weight:650}.goals-page-pd-badge{letter-spacing:.04em;border:1px solid color-mix(in srgb, var(--accent-2) 50%, var(--border));color:var(--accent-2);border-radius:6px;padding:.12rem .4rem;font-size:.68rem;font-weight:700}.goals-page-goal-deadline{margin:.35rem 0 .25rem;font-size:.88rem}.goals-page-goal-desc{color:var(--muted);margin:0 0 .45rem;font-size:.88rem;line-height:1.4}.goals-page-goal-progress-text{margin-bottom:.45rem;font-size:.92rem}.goals-page-progress-track{background:var(--border);border-radius:4px;height:8px;margin-bottom:.65rem;overflow:hidden}.goals-page-progress-fill{height:100%}.goals-page-card-quick{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.45rem;padding-top:.35rem;display:flex}.goals-page-toggle-row{margin:0}.goals-page-check{cursor:pointer;align-items:center;gap:.45rem;font-size:.92rem;display:inline-flex}.goals-page-soft-warn{border-radius:var(--radius,8px);background:color-mix(in srgb, var(--warning) 14%, transparent);border:1px solid color-mix(in srgb, var(--warning) 35%, var(--border));padding:.5rem .55rem;font-size:.88rem;line-height:1.45}.goals-page-goal-card--review{outline:2px solid var(--warning);outline-offset:2px}.goals-page-review-banner{border-radius:var(--radius,8px);background:color-mix(in srgb, var(--warning) 18%, transparent);margin-bottom:.75rem;padding:.55rem .65rem;font-size:.88rem;line-height:1.4}.goals-page-review-actions{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.45rem;display:flex}.goals-page-modal-grid{gap:.75rem;display:grid}.goals-page-modal-grid .field{margin:0}.goals-page-textarea{resize:vertical;width:100%;min-height:4rem}.goals-page-intro-backdrop{justify-content:center;align-items:center;padding:1.25rem}.goals-page-intro-modal.modal-card{background:var(--bg-secondary);width:min(40rem,100vw - 2.5rem);max-width:40rem;color:var(--text-primary);border:1px solid color-mix(in srgb, var(--accent) 22%, var(--border-strong));box-shadow:0 0 0 1px color-mix(in srgb, var(--bg-secondary) 100%, transparent), 0 24px 64px #00000047;-webkit-backdrop-filter:none;border-radius:16px;padding:1.85rem 2rem 1.65rem}.goals-page-intro-modal__eyebrow{letter-spacing:.14em;text-transform:uppercase;color:color-mix(in srgb, var(--accent-2) 80%, var(--muted));margin:0 0 .4rem;font-size:.72rem;font-weight:700}.goals-page-intro-modal__title{letter-spacing:-.02em;margin:0 0 1rem;font-size:clamp(1.35rem,2.6vw,1.65rem);font-weight:700;line-height:1.25}.goals-page-intro-modal__lead{color:var(--text);margin:0 0 1.25rem;font-size:1.05rem;font-weight:500;line-height:1.6}.goals-page-intro-modal__sub{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 .55rem;font-size:.82rem;font-weight:600}.goals-page-intro-modal__list{color:color-mix(in srgb, var(--text) 88%, var(--muted));margin:0 0 .25rem;padding-left:1.2rem;font-size:.95rem;line-height:1.55}.goals-page-intro-modal__list li{margin-bottom:.65rem}.goals-page-intro-modal__list li:last-child{margin-bottom:0}.goals-page-intro-modal__footer{border-top:1px solid var(--border);justify-content:flex-end;margin-top:1.75rem;padding-top:1.15rem;display:flex}.goals-page-intro-modal__footer .btn{min-width:8.5rem}.goal-detail__toolbar{margin-bottom:.5rem}.goal-detail__back{color:var(--muted);font-size:.92rem;text-decoration:none}.goal-detail__back:hover{color:var(--text)}.goal-detail__header{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.goal-detail__section{border-radius:var(--radius,12px);margin-bottom:1rem;padding:1rem 1.1rem}.goal-detail__h2{margin:0 0 .5rem;font-size:1.05rem;font-weight:650}.goal-detail__fineprint{margin:0 0 .65rem;font-size:.82rem;line-height:1.45}.goal-detail__track{margin-top:.35rem}.goal-detail__chart{width:100%}.goal-detail__calc{background:color-mix(in srgb, var(--surface) 94%, transparent)}.goal-detail__calc-grid{gap:.65rem;max-width:32rem;display:grid}.goal-detail__calc-label{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.88rem;display:flex}.goal-detail__calc-check{color:var(--text);align-items:flex-start;gap:.45rem;font-size:.88rem;line-height:1.35;display:flex}.goal-detail__contrib-form{flex-wrap:wrap;align-items:flex-end;gap:.5rem;display:flex}.goal-detail__contrib-form .input{flex:8rem;min-width:8rem}.goal-detail__table-wrap{overflow-x:auto}.goal-detail__table{border-collapse:collapse;width:100%;font-size:.88rem}.goal-detail__table th,.goal-detail__table td{text-align:left;border-bottom:1px solid var(--border);padding:.45rem .5rem}.goal-detail__table th{color:var(--muted);font-weight:600}.goal-detail__danger{border-radius:var(--radius,12px);border:1px solid color-mix(in srgb, var(--danger) 35%, var(--border));margin-bottom:2rem;padding:1rem 1.1rem}.goal-detail__kpi{grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.65rem;margin-top:.85rem;display:grid}.goal-detail__kpi-val{margin-top:.15rem;font-size:1rem;font-weight:650}.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#777;--xy-background-pattern-lines-color-default:#777;--xy-background-pattern-cross-color-default:#777;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}.library-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));align-items:stretch;gap:.85rem;display:grid}.library-post-link{min-width:0;min-height:100%;color:inherit;flex-direction:column;text-decoration:none;display:flex}.library-post-card.card-shell{flex-direction:column;flex:1;min-height:100%;display:flex}.library-post-card .card-title{flex-shrink:0}.library-post-preview{min-height:0;color:var(--muted);flex:auto;margin:0;font-size:.88rem;line-height:1.45}.library-post-meta{flex-wrap:wrap;flex-shrink:0;gap:8px;margin-top:auto;padding-top:.5rem;display:flex}.learning-course-root{gap:1.25rem;display:grid}.learning-stage-title{margin:1.25rem 0 .5rem;font-size:1.05rem;font-weight:700}.learning-stage-title.is-past{color:var(--text-muted)}.learning-stage-title.is-current{color:var(--accent)}.learning-stage-title.is-future{color:var(--text-muted)}.learning-lesson-row.is-locked{opacity:.85}.learning-modal-backdrop{z-index:4000;background:#0206179e;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.learning-modal{border:1px solid var(--border-strong);background:var(--bg-secondary);width:min(480px,100%);box-shadow:var(--surface-shadow);border-radius:14px;padding:1.1rem}.learning-action-card{border:1px solid var(--border-strong);background:var(--bg-secondary);color:inherit;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:1rem 1.1rem;font-weight:600;text-decoration:none;transition:transform .15s,border-color .15s;display:flex}.learning-action-card:hover{border-color:var(--accent);transform:translateY(-1px)}.learning-lesson-complete-flash{animation:1.2s learning-complete-pulse}@keyframes learning-complete-pulse{0%{box-shadow:inset 0 0 #22c55e00}35%{box-shadow:inset 0 0 0 4px #22c55e59}to{box-shadow:inset 0 0 #22c55e00}}.plan-page{max-width:920px;margin:0 auto;padding:1.25rem 1rem 2.5rem}#plan-recommendations{scroll-margin-top:88px}.plan-page h1{margin:0 0 .35rem;font-size:1.45rem;font-weight:700}.plan-page .plan-sub{color:var(--text-muted);margin-bottom:1.25rem;font-size:.95rem}.plan-card{background:var(--bg-secondary);border:1px solid var(--border);box-shadow:var(--surface-shadow);border-radius:14px;margin-bottom:1rem;padding:1rem 1.1rem}.plan-card h2{margin:0 0 .65rem;font-size:1.05rem;font-weight:650}.plan-card .hint{color:var(--text-muted);margin-top:.25rem;font-size:.82rem;line-height:1.35}.plan-locked{opacity:.55;pointer-events:none;position:relative}.plan-locked-badge{color:var(--text-muted);pointer-events:none;background:#0f172a59;border-radius:14px;justify-content:center;align-items:center;gap:.35rem;font-size:.9rem;font-weight:600;display:flex;position:absolute;inset:0}.plan-money-input-wrap{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.plan-money-input{border:1px solid var(--border);background:var(--bg-primary);min-width:140px;color:var(--text-primary);font-variant-numeric:tabular-nums;border-radius:10px;flex:1;padding:.55rem .65rem}.plan-money-suffix{color:var(--text-muted);white-space:nowrap;font-size:.85rem}.plan-disclaimer{color:var(--text-primary);background:#eab3081f;border:1px solid #eab30859;border-radius:12px;margin-bottom:1rem;padding:.85rem 1rem;font-size:.88rem;line-height:1.45}.plan-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1rem;display:grid}@media (width<=720px){.plan-grid-2{grid-template-columns:1fr}}.plan-table{border-collapse:collapse;width:100%;font-size:.88rem}.plan-table th,.plan-table td{text-align:left;border-bottom:1px solid var(--border);padding:.45rem .35rem}.plan-table input{border:1px solid var(--border);background:var(--bg-primary);width:100%;max-width:140px;color:var(--text-primary);border-radius:8px;padding:.35rem .45rem}.plan-risk-modal{z-index:4000;background:#020617a6;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.plan-risk-dialog{border:1px solid var(--border-strong);background:var(--bg-secondary);border-radius:14px;width:min(520px,100%);max-height:min(88vh,720px);padding:1.1rem;overflow:auto;box-shadow:0 20px 50px #00000073}.plan-risk-option{text-align:left;border:1px solid var(--border);background:var(--bg-primary);width:100%;color:var(--text-primary);cursor:pointer;border-radius:10px;margin-bottom:.5rem;padding:.65rem .75rem;display:block}.plan-risk-option:hover{border-color:var(--accent)}
