:root{--palette-forest-900:#1b3a2d;--palette-forest-700:#2d6a4f;--palette-forest-400:#52b788;--palette-cream-100:#f5f0e8;--palette-cream-200:#ede8dc;--palette-gold-500:#d4a843;--palette-gold-300:#f0c060;--palette-ink-900:#1a1814;--palette-ink-500:#5a5650;--palette-red-500:#e07a5f;--palette-white:#fff;--palette-black:#000;--font-serif:"Cormorant Garamond",Georgia,serif;--font-sans:"Plus Jakarta Sans",system-ui,sans-serif}:root,[data-theme=dark]{--color-bg-base:#1b3a2d;--color-bg-raised:hsla(0,0%,100%,.06);--color-bg-subtle:hsla(0,0%,100%,.03);--color-bg-overlay:rgba(0,0,0,.6);--color-text-primary:#fff;--color-text-secondary:hsla(37,39%,94%,.72);--color-text-muted:hsla(37,39%,94%,.48);--color-text-inverse:#1b3a2d;--color-border:hsla(0,0%,100%,.15);--color-border-subtle:hsla(0,0%,100%,.08);--color-input-bg:hsla(0,0%,100%,.07);--color-input-border:hsla(0,0%,100%,.18);--color-accent:#d4a843;--color-accent-hover:#f0c060;--color-success:#52b788;--color-success-dim:rgba(82,183,136,.18);--color-danger:#e07a5f;--color-danger-dim:rgba(224,122,95,.18);--color-brand:#2d6a4f;--color-card-bg:hsla(0,0%,100%,.06);--color-card-border:hsla(0,0%,100%,.12);--color-header-bg:#1b3a2d;--color-header-border:hsla(0,0%,100%,.12);--color-nav-active:#d4a843;--color-section-line:hsla(0,0%,100%,.12);--bg:var(--color-bg-base);--bg2:var(--color-bg-raised);--bg3:var(--color-bg-subtle);--surface:var(--color-bg-raised);--text-primary:var(--color-text-primary);--text-secondary:var(--color-text-secondary);--text-muted:var(--color-text-muted);--border:var(--color-border);--border-subtle:var(--color-border-subtle);--input-bg:var(--color-input-bg);--input-border:var(--color-input-border);--card-bg:var(--color-card-bg);--card-border:var(--color-card-border);--header-bg:var(--color-header-bg);--header-border:var(--color-header-border);--nav-active:var(--color-nav-active);--section-line:var(--color-section-line);--gold:var(--color-accent);--gold2:var(--color-accent-hover);--forest:#1b3a2d;--forest2:#2d6a4f;--forest3:#52b788;--red2:#e07a5f;--cream:#f5f0e8;--dim:hsla(37,39%,94%,.65);--serif:var(--font-serif);--sans:var(--font-sans)}[data-theme=light],body.light{--color-bg-base:#fafaf8;--color-bg-raised:#f5f0e8;--color-bg-subtle:#ede8dc;--color-bg-overlay:rgba(0,0,0,.5);--color-text-primary:#1a1814;--color-text-secondary:#1b3a2d;--color-text-muted:#5a5650;--color-text-inverse:#fff;--color-border:rgba(27,58,45,.22);--color-border-subtle:rgba(27,58,45,.12);--color-input-bg:#fff;--color-input-border:rgba(27,58,45,.3);--color-accent:#8b6914;--color-accent-hover:#7a5a0e;--color-success:#2d6a4f;--color-success-dim:rgba(45,106,79,.12);--color-danger:#c0523a;--color-danger-dim:rgba(192,82,58,.12);--color-brand:#1b3a2d;--color-card-bg:#fff;--color-card-border:rgba(27,58,45,.15);--color-header-bg:#fafaf8;--color-header-border:rgba(27,58,45,.15);--color-nav-active:#1b3a2d;--color-section-line:rgba(27,58,45,.15);--bg:var(--color-bg-base);--bg2:var(--color-bg-raised);--bg3:var(--color-bg-subtle);--surface:var(--color-bg-raised);--text-primary:var(--color-text-primary);--text-secondary:var(--color-text-secondary);--text-muted:var(--color-text-muted);--border:var(--color-border);--border-subtle:var(--color-border-subtle);--input-bg:var(--color-input-bg);--input-border:var(--color-input-border);--card-bg:var(--color-card-bg);--card-border:var(--color-card-border);--header-bg:var(--color-header-bg);--header-border:var(--color-header-border);--nav-active:var(--color-nav-active);--section-line:var(--color-section-line);--gold:var(--color-accent);--gold2:var(--color-accent-hover);--forest:#1b3a2d;--forest2:#2d6a4f;--forest3:#2d6a4f;--red2:var(--color-danger);--cream:#f5f0e8;--dim:rgba(26,24,20,.55)}[data-theme=light] .btn-gold,body.light .btn-gold{background:#c49a3c;color:var(--palette-forest-900)}[data-theme=light] .btn-gold:hover,body.light .btn-gold:hover{background:#b8882e}[data-theme=light] .auth-btn,body.light .auth-btn{background:#c49a3c;color:var(--palette-forest-900)}[data-theme=light] .auth-btn:hover,body.light .auth-btn:hover{background:#b8882e}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:var(--font-sans);background:var(--color-bg-base);color:var(--color-text-primary);font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;transition:background .25s ease,color .25s ease}.theme-toggle{display:flex;background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:20px;padding:3px;gap:2px}.theme-btn{padding:5px 14px;border-radius:16px;border:none;font-family:var(--font-sans);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:all .2s;background:transparent;color:var(--color-text-muted)}.theme-btn.active{background:var(--color-text-primary);color:var(--color-bg-base)}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg-base)}.auth-card{background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:8px;padding:52px;width:100%;max-width:460px}.auth-logo{font-family:var(--font-serif);font-size:36px;font-weight:600;color:var(--color-text-primary);margin-bottom:6px}.auth-logo span{color:var(--color-accent);font-style:italic}.auth-sub{font-size:15px;color:var(--color-text-muted);margin-bottom:40px}.auth-label{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--color-text-secondary);display:block;margin-bottom:8px;font-weight:700}.auth-input{width:100%;padding:15px 18px;border:1px solid var(--color-input-border);border-radius:4px;font-family:var(--font-sans);font-size:16px;color:var(--color-text-primary);background:var(--color-input-bg);outline:none;margin-bottom:20px;transition:border-color .15s}.auth-input:focus{border-color:var(--color-accent)}.auth-input::placeholder{color:var(--color-text-muted)}.auth-error{font-size:14px;color:var(--color-danger);margin-bottom:14px;min-height:20px}.auth-btn{width:100%;padding:17px;background:var(--color-accent);color:var(--palette-forest-900);border:none;border-radius:4px;font-family:var(--font-sans);font-size:15px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.auth-btn:hover{background:var(--color-accent-hover)}.auth-switch{text-align:center;margin-top:24px;font-size:15px;color:var(--color-text-muted)}.auth-switch a{color:var(--color-accent);cursor:pointer;font-weight:700}.header{justify-content:space-between;padding:18px 48px;border-bottom:1px solid var(--color-header-border);background:var(--color-header-bg);position:-webkit-sticky;position:sticky;top:0;z-index:100}.header,.header-logo{display:flex;align-items:center}.header-logo{gap:14px}.header-logo-text{font-family:var(--font-serif);font-size:26px;font-weight:600;color:var(--color-text-primary);line-height:1.1}.header-logo-text span{color:var(--color-accent);font-style:italic;display:block;font-size:22px}.header-right{display:flex;align-items:center;gap:14px}.header-user{font-size:13px;color:var(--color-text-muted);font-weight:500}.header-btn{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary);background:transparent;border:1px solid var(--color-border);padding:9px 18px;border-radius:4px;cursor:pointer;font-family:var(--font-sans);font-weight:700;transition:all .15s}.header-btn:hover{color:var(--color-text-primary)}.header-btn.gold{border-color:rgba(212,168,67,.5);color:var(--color-accent)}.header-btn.gold:hover{background:rgba(212,168,67,.1)}.nav{display:flex;border-bottom:1px solid var(--color-border-subtle);background:var(--color-header-bg);padding:0 40px;overflow-x:auto}.nav-btn{padding:18px 24px;font-family:var(--font-sans);font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:transparent;color:var(--color-text-muted);cursor:pointer;border:none;border-bottom:3px solid transparent;white-space:nowrap;transition:all .15s}.nav-btn:hover{color:var(--color-text-primary)}.nav-btn.active{color:var(--color-nav-active);border-bottom-color:var(--color-nav-active)}.back-btn{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--color-text-muted);cursor:pointer;padding:14px 48px;background:transparent;border:none;border-bottom:1px solid var(--color-border-subtle);font-family:var(--font-sans);letter-spacing:.05em;text-transform:uppercase;transition:color .15s;width:100%;text-align:left}.back-btn:hover{color:var(--color-text-primary)}.page-wrap{padding:52px 48px;max-width:1060px;margin:0 auto;width:100%}.page-title{font-family:var(--font-serif);font-size:64px;font-weight:600;margin-bottom:10px;line-height:1.02;color:var(--color-text-primary)}.page-title em{color:var(--color-accent);font-style:italic}.page-sub{color:var(--color-text-muted);font-size:13px;letter-spacing:.09em;margin-bottom:52px}.page-sub,.section-label{text-transform:uppercase;font-weight:700}.section-label{font-size:12px;letter-spacing:.14em;color:var(--color-text-primary);margin-bottom:20px;display:flex;align-items:center;gap:14px}.section-label:after{content:"";flex:1 1;height:1px;background:var(--color-section-line)}.card{background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:8px;padding:28px}.card-grid{display:grid;grid-gap:18px;gap:18px}.card-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.card-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.card-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.metric-card{background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:8px;padding:24px}.metric-label{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:12px;font-weight:700}.metric-val{font-family:var(--font-serif);font-size:46px;font-weight:600;line-height:1;color:var(--color-text-primary)}.metric-val.gold{color:var(--color-accent)}.metric-val.green{color:var(--color-success)}.metric-val.red{color:var(--color-danger)}.metric-sub{font-size:14px;color:var(--color-text-muted);margin-top:8px;font-weight:500}.progress-wrap{margin-bottom:24px}.progress-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}.progress-label{font-weight:700;font-size:17px;color:var(--color-text-primary)}.progress-val{font-size:15px;color:var(--color-text-muted);font-weight:600}.progress-track{height:6px;background:var(--color-border-subtle);overflow:hidden;border-radius:3px}.progress-fill{height:100%;background:var(--color-accent);transition:width .8s;border-radius:3px}.progress-fill.green{background:var(--color-success)}.milestones{display:flex;justify-content:space-between;margin-top:8px}.milestone{font-size:12px;color:var(--color-text-muted);letter-spacing:.04em;font-weight:600}.budget-item{display:flex;align-items:center;gap:16px;padding:15px 0;border-bottom:1px solid var(--color-border-subtle)}.budget-item:last-child{border-bottom:none}.budget-cat{font-size:16px;flex:0 0 200px;font-weight:700;color:var(--color-text-primary)}.budget-track{flex:1 1;height:5px;background:var(--color-border-subtle);overflow:hidden;border-radius:3px}.budget-fill{height:100%;transition:width .6s;border-radius:3px}.budget-fill.ok{background:var(--color-success)}.budget-fill.warn{background:var(--color-accent)}.budget-fill.over{background:var(--color-danger)}.budget-amt{font-size:14px;color:var(--color-text-muted);min-width:140px;text-align:right;font-weight:600}.debt-table{width:100%;border-collapse:collapse}.debt-table th{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--color-text-muted);text-align:left;padding:12px 16px;border-bottom:1px solid var(--color-card-border);font-weight:700}.debt-table td{padding:16px;font-size:17px;border-bottom:1px solid var(--color-border-subtle);color:var(--color-text-primary);font-weight:600}.debt-bar{height:5px;background:var(--color-border-subtle);width:100px;border-radius:3px}.debt-bar-fill{height:100%;background:var(--color-danger);border-radius:3px}.payoff-date{font-size:14px;color:var(--color-success);font-weight:700}.chat-wrap{border:1px solid var(--color-card-border);border-radius:8px;background:var(--color-bg-subtle);overflow:hidden}.chat-messages{padding:24px;min-height:200px;max-height:440px;overflow-y:auto;display:flex;flex-direction:column;gap:22px}.chat-msg{display:flex;gap:14px}.chat-msg.user{flex-direction:row-reverse}.chat-avatar{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0;margin-top:2px}.chat-avatar.ai{background:var(--color-accent);color:var(--palette-forest-900)}.chat-avatar.user{background:var(--color-brand);color:#fff}.chat-bubble{max-width:80%;padding:14px 18px;font-size:16px;line-height:1.75;border-radius:4px}.chat-bubble.ai{background:var(--color-card-bg);border:1px solid var(--color-card-border);color:var(--color-text-primary)}.chat-bubble.user{background:var(--color-brand);color:#fff}.chat-input-wrap{display:flex;border-top:1px solid var(--color-border-subtle)}.chat-input{flex:1 1;padding:20px 22px;border:none;background:transparent;font-family:var(--font-sans);font-size:16px;color:var(--color-text-primary);outline:none}.chat-input::placeholder{color:var(--color-text-muted)}.chat-send{padding:20px 30px;background:var(--color-accent);color:var(--palette-forest-900);border:none;font-family:var(--font-sans);font-size:13px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;cursor:pointer}.chat-send:hover{background:var(--color-accent-hover)}.chat-send:disabled{opacity:.4;cursor:not-allowed}.loading{display:flex;gap:7px;align-items:center;padding:4px 0}.loading-dot{width:8px;height:8px;border-radius:50%;background:var(--color-accent);animation:pulse 1.2s ease-in-out infinite}.loading-dot:nth-child(2){animation-delay:.2s}.loading-dot:nth-child(3){animation-delay:.4s}@keyframes pulse{0%,to{opacity:.2}50%{opacity:1}}.upload-zone{border:2px dashed var(--color-border);border-radius:8px;padding:44px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;background:var(--color-bg-subtle)}.upload-zone:hover{border-color:var(--color-accent);background:rgba(212,168,67,.05)}.upload-text{font-size:16px;color:var(--color-text-muted);margin-top:12px}.upload-text strong{color:var(--color-text-primary);font-weight:700}.btn{padding:14px 30px;font-family:var(--font-sans);font-size:13px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;border-radius:4px;cursor:pointer;transition:all .15s}.btn-gold{background:var(--color-accent);color:var(--palette-forest-900);border:none}.btn-gold:hover{background:var(--color-accent-hover)}.btn-ghost{background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.btn-ghost:hover{border-color:var(--color-text-primary);color:var(--color-text-primary)}.btn-forest{background:var(--color-brand);color:#fff;border:none}.btn-forest:hover{filter:brightness(1.15)}.btn:disabled{opacity:.4;cursor:not-allowed}.inner-tabs{display:flex;border-bottom:1px solid var(--color-border-subtle);margin-bottom:34px}.inner-tab{padding:15px 26px;font-size:13px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--color-text-muted);cursor:pointer;transition:all .15s;background:none;border:none;border-bottom:3px solid transparent;font-family:var(--font-sans)}.inner-tab:hover{color:var(--color-text-primary)}.inner-tab.active{color:var(--color-nav-active);border-bottom-color:var(--color-nav-active)}.checklist-item{display:flex;gap:18px;padding:22px 0;border-bottom:1px solid var(--color-border-subtle);align-items:flex-start}.checklist-item:last-child{border-bottom:none}.check-num{font-size:13px;color:var(--color-accent);font-weight:700;flex-shrink:0;padding-top:3px}.check-body{flex:1 1}.check-title{font-family:var(--font-serif);font-size:22px;font-weight:600;margin-bottom:5px;color:var(--color-text-primary)}.check-desc{font-size:15px;color:var(--color-text-muted);line-height:1.6}.check-status{font-size:11px;padding:5px 12px;border-radius:4px;flex-shrink:0;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.check-status.yes{background:var(--color-success-dim);color:var(--color-success)}.check-status.no{background:var(--color-danger-dim);color:var(--color-danger)}.check-status.pending{background:var(--color-border-subtle);color:var(--color-text-muted)}.pillar-card{border-radius:8px;padding:26px;cursor:pointer;transition:all .2s;position:relative;border:1px solid transparent}.pillar-card.live{background:#1f4a35;border-color:rgba(212,168,67,.45);box-shadow:0 4px 20px rgba(0,0,0,.3),inset 0 0 0 1px rgba(212,168,67,.12)}.pillar-card.live:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(0,0,0,.35),inset 0 0 0 1px rgba(212,168,67,.2);border-color:rgba(212,168,67,.7)}.pillar-card.next{background:rgba(212,168,67,.1);border-color:rgba(212,168,67,.3)}.pillar-card.next:hover{background:rgba(212,168,67,.16);border-color:rgba(212,168,67,.5)}.pillar-card.coming{background:var(--color-card-bg);border-color:var(--color-card-border)}.pillar-card.coming:hover{background:var(--color-bg-raised)}.pillar-num{font-size:12px;letter-spacing:.1em;margin-bottom:14px;font-weight:700}.live .pillar-num,.next .pillar-num{color:var(--palette-gold-500)}.coming .pillar-num{color:var(--color-text-muted)}.pillar-icon{font-size:26px;margin-bottom:14px;display:block}.pillar-name{font-family:var(--font-serif);font-size:22px;font-weight:600;margin-bottom:8px;line-height:1.2}.live .pillar-name{color:#fff}.next .pillar-name{color:var(--palette-gold-300)}.coming .pillar-name{color:var(--color-text-primary)}.pillar-desc{font-size:14px;line-height:1.5;font-weight:600}.live .pillar-desc{color:hsla(37,39%,94%,.7)}.next .pillar-desc{color:rgba(212,168,67,.8)}.coming .pillar-desc{color:var(--color-text-muted)}.pillar-badge{position:absolute;top:18px;right:18px;font-size:10px;letter-spacing:.07em;padding:5px 12px;border-radius:4px;font-weight:700;text-transform:uppercase}.badge-live,.badge-next{background:rgba(212,168,67,.2);color:var(--palette-gold-500)}.badge-coming{background:var(--color-border-subtle);color:var(--color-text-muted)}.member-card{background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:8px;padding:22px;cursor:pointer;transition:all .15s;text-align:center}.member-card:hover{background:var(--color-bg-raised);border-color:var(--color-border)}.member-avatar{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:700;margin:0 auto 14px}.member-name{font-family:var(--font-serif);font-size:22px;font-weight:600;color:var(--color-text-primary);margin-bottom:5px}.member-role{font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--color-text-muted);font-weight:700}.mb-8{margin-bottom:8px}.mb-16{margin-bottom:16px}.mb-24{margin-bottom:24px}.mb-28{margin-bottom:28px}.mb-32{margin-bottom:32px}.flex-between{display:flex;justify-content:space-between;align-items:center}.divider{height:1px;background:var(--color-border-subtle);margin:32px 0}.home-top-row{display:flex;justify-content:space-between;align-items:flex-start}.home-score-col{display:flex;flex-direction:column;gap:10px;align-items:flex-end}.pillar-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.family-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:12px;gap:12px}.digest-item{background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:8px;padding:18px 22px;display:flex;gap:16px;align-items:flex-start;text-decoration:none;transition:border-color .15s}.digest-item:hover{border-color:rgba(212,168,67,.4)}.skel-line{height:16px;border-radius:4px;background:hsla(0,0%,100%,.1);animation:shimmer 1.5s ease-in-out infinite}[data-theme=light] .skel-line,body.light .skel-line{background:rgba(27,58,45,.1)}@keyframes shimmer{0%,to{opacity:.4}50%{opacity:.9}}.toast{position:fixed;bottom:32px;left:50%;transform:translateX(-50%);background:var(--color-text-primary);color:var(--color-bg-base);padding:14px 28px;border-radius:8px;font-size:15px;font-weight:700;font-family:var(--font-sans);z-index:500;animation:toast-in .2s ease-out;pointer-events:none;white-space:nowrap;box-shadow:0 8px 24px rgba(0,0,0,.35)}@keyframes toast-in{0%{opacity:0;transform:translateX(-50%) translateY(10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.header-user-btn{display:flex;align-items:center;gap:6px;background:none;border:none;cursor:pointer;padding:8px 12px;border-radius:6px;transition:background .15s;font-family:var(--font-sans)}.header-user-btn:hover{background:var(--color-bg-raised)}.profile-menu{position:absolute;top:calc(100% + 8px);right:0;background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:8px;min-width:180px;z-index:99;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.3)}.profile-menu-item{width:100%;padding:14px 18px;text-align:left;background:none;border:none;cursor:pointer;font-family:var(--font-sans);font-size:14px;font-weight:600;color:var(--color-text-primary);transition:background .1s;display:block}.profile-menu-item:hover{background:var(--color-bg-raised)}.profile-menu-item.danger{color:var(--color-danger)}.profile-menu-item:disabled{opacity:.5;cursor:not-allowed}.profile-menu-divider{height:1px;background:var(--color-border-subtle)}@media (max-width:700px){.card-grid-2,.card-grid-3,.card-grid-4{grid-template-columns:1fr}.page-wrap{padding:28px 20px}.header{padding:16px 20px}.nav{padding:0 16px}.back-btn{padding:12px 20px}.home-top-row{flex-direction:column;gap:20px}.home-score-col{align-items:stretch;width:100%}.pillar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.family-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}