.view,:root,page{--card:#fff;--ink:#3a2c38;--ink-soft:#8a7b87;--line:#ece6f5;--good:#5ec98a;--warn:#ff6b6b;--gold:#f0a93c;--blue:#7db7ff;--shadow-sm:0 2px 8px rgba(58,44,56,.06);--radius:20px;--radius-sm:14px;--brand:#7b61ff;--brand-soft:#ede9fe;--accent:#b794ff;--bg:#f6f2ff;--bg-grad:linear-gradient(180deg,#ece5ff,#f6f2ff 28%,#f6f2ff);--shadow:0 8px 24px rgba(123,97,255,.16);--shadow-btn:0 6px 16px rgba(123,97,255,.3);--shadow-round:0 4px 12px rgba(123,97,255,.35)}.theme-purple{--brand:#7b61ff;--brand-soft:#ede9fe;--accent:#b794ff;--bg:#f6f2ff;--bg-grad:linear-gradient(180deg,#ece5ff,#f6f2ff 28%,#f6f2ff);--line:#ece6f5;--shadow:0 8px 24px rgba(123,97,255,.16);--shadow-btn:0 6px 16px rgba(123,97,255,.3);--shadow-round:0 4px 12px rgba(123,97,255,.35)}.theme-mint{--brand:#20b2a0;--brand-soft:#d7f5ef;--accent:#6fe0cf;--bg:#f2fffc;--bg-grad:linear-gradient(180deg,#d6f5ee,#f2fffc 28%,#f2fffc);--line:#ddefe9;--shadow:0 8px 24px rgba(32,178,160,.16);--shadow-btn:0 6px 16px rgba(32,178,160,.3);--shadow-round:0 4px 12px rgba(32,178,160,.35)}.theme-pink{--brand:#ff7eb3;--brand-soft:#ffd6e7;--accent:#ffb86b;--bg:#fff7fb;--bg-grad:linear-gradient(180deg,#fff0f7,#fff7fb 28%,#fff7fb);--line:#f3e0ec;--shadow:0 8px 24px rgba(255,126,179,.16);--shadow-btn:0 6px 16px rgba(255,126,179,.3);--shadow-round:0 4px 12px rgba(255,126,179,.35)}.theme-sky{--brand:#4c9af5;--brand-soft:#dcebff;--accent:#a78bfa;--bg:#f4f9ff;--bg-grad:linear-gradient(180deg,#dcebff,#f4f9ff 28%,#f4f9ff);--line:#e0eaf6;--shadow:0 8px 24px rgba(76,154,245,.16);--shadow-btn:0 6px 16px rgba(76,154,245,.3);--shadow-round:0 4px 12px rgba(76,154,245,.35)}body,html,page{background:var(--bg);color:var(--ink);font-family:-apple-system,PingFang SC,Microsoft YaHei,system-ui,sans-serif}.view{background:var(--bg-grad);box-sizing:border-box;min-height:100vh;padding:16px 16px 32px}.view-title{font-size:20px;font-weight:800;letter-spacing:.3px;margin:6px 2px 16px}.view-title.compact{margin:0 0 14px}.muted{color:var(--ink-soft)}.small{font-size:12px}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:14px;padding:18px}.card-title{font-size:15px;font-weight:800;letter-spacing:.2px;margin-bottom:14px}.card-title--with-picker{align-items:center;display:flex;gap:6px}.card-title--with-picker .card-title-text{flex:1}.date-picker-trigger{align-items:center;border-radius:8px;cursor:pointer;display:flex;font-size:18px;justify-content:center;padding:2px 4px;transition:transform .12s ease,opacity .12s ease}.date-picker-trigger:active{opacity:.8;transform:scale(.92)}.date-today-link{color:var(--brand);flex:none;font-size:13px;font-weight:600;padding:2px 4px}.task-row{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:12px;padding:12px 0}.task-row.done .task-emoji{background:var(--good)}.task-emoji{align-items:center;background:var(--brand-soft);border-radius:14px;display:flex;flex:none;font-size:24px;height:46px;justify-content:center;width:46px}.task-main{flex:1;min-width:0}.task-name{font-weight:700}.task-meta{color:var(--ink-soft);font-size:12px;margin-top:2px}.task-done{color:var(--good);font-size:12px;font-weight:600;margin-top:2px}.task-row:not(.done) .task-done{visibility:hidden}.counter{align-items:center;display:flex;gap:8px}.round-btn{align-items:center;background:var(--brand);border:none;border-radius:50%;box-shadow:var(--shadow-round);color:#fff;display:flex;font-size:20px;font-weight:700;height:38px;justify-content:center;line-height:1;transition:transform .12s ease,opacity .12s ease;width:38px}.round-btn:active{opacity:.85;transform:scale(.9)}.round-btn.disabled{opacity:.4;pointer-events:none}.round-btn.disabled:active{opacity:.4;transform:none}.round-btn.ghost{background:var(--card);border:1px solid var(--brand-soft);box-shadow:none;color:var(--brand)}.count-num{font-weight:800;min-width:44px;text-align:center}.count-num .target{color:var(--ink-soft);font-size:13px;font-weight:600}.btn{background:linear-gradient(135deg,var(--brand),var(--accent));border:none;border-radius:14px;box-shadow:var(--shadow-btn);color:#fff;font-size:15px;font-weight:700;margin:0;padding:13px 16px;text-align:center;transition:transform .12s ease,opacity .12s ease;width:100%}.btn:active{opacity:.92;transform:translateY(1px) scale(.99)}.btn::after{border:none}.btn.secondary{background:var(--card);border:1px solid var(--brand-soft);box-shadow:none;color:var(--brand)}.btn.danger{background:var(--card);border:1px solid var(--line);box-shadow:none;color:var(--warn)}.btn-row{align-items:center;display:flex;gap:10px}.btn-row .btn{align-items:center;border-radius:12px;box-sizing:border-box;display:inline-flex;flex:none;font-size:13px;font-weight:600;height:46px;justify-content:center;line-height:1;min-height:46px;padding:0 10px;white-space:nowrap;width:120px}.field{margin-bottom:12px}.field .label{color:var(--ink-soft);display:block;font-size:12px;margin-bottom:6px;padding-left:2px}.picker-box{align-items:center;background:var(--bg);border:1px solid var(--line);border-radius:12px;box-sizing:border-box;color:var(--ink);display:flex;font-size:15px;height:46px;line-height:20px;padding:0 14px;width:100%}taro-input-core{align-items:center!important;box-sizing:border-box;color:var(--ink);display:flex!important;font-size:15px;margin:0;width:100%}taro-input-core.input{background:var(--bg);border:1px solid var(--line);border-radius:12px;height:46px;padding:0 14px}.btn-row taro-input-core.input{flex:1;min-width:0;width:auto}.input{align-items:center;background:var(--bg);border:1px solid var(--line);border-radius:12px;box-sizing:border-box;color:var(--ink);display:flex;font-size:15px;height:46px;margin:0;padding:0 14px;width:100%}.stat-grid{display:flex;gap:12px;margin-bottom:14px}.stat-box{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex:1;padding:18px 14px;text-align:center}.stat-box .big{color:var(--brand);font-size:30px;font-weight:800}.stat-box .lbl{color:var(--ink-soft);font-size:12px;margin-top:2px}.wallet-total{color:var(--gold);font-size:34px;font-weight:800}.wallet-pools{display:flex;gap:12px;margin:10px 0 12px}.wallet-pool{background:var(--bg);border-radius:12px;flex:1;padding:10px 8px}.wallet-pool-amt{color:var(--ink);font-size:18px;font-weight:700;margin-top:4px}.entry{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:10px;padding:10px 0}.tag{border-radius:999px;font-size:11px;font-weight:700;padding:2px 8px}.tag.redpacket{background:var(--brand-soft);color:var(--brand)}.tag.reward{background:#fff0cf;color:var(--gold)}.tag.expense{background:#f0f0f0;color:var(--ink-soft)}.entry .amt{font-weight:800;margin-left:auto}.entry .amt.neg{color:var(--warn)}.entry-actions{display:flex;gap:4px;margin-left:6px}.switch-row{align-items:center;display:flex;gap:12px;justify-content:space-between}.rec{align-items:center;border:1px dashed var(--brand-soft);border-radius:14px;display:flex;gap:12px;margin-bottom:10px;padding:12px}.rec .rec-main{flex:1}.rec .rec-name{font-weight:700}.rec .rec-note{color:var(--ink-soft);font-size:12px;margin-top:2px}.report-h1{font-size:18px;font-weight:800;margin:0 0 4px}.period{color:var(--ink-soft);font-size:13px;margin-bottom:12px}.rtable-row{border-bottom:1px solid var(--line);display:flex;font-size:13px;padding:8px 6px}.rtable-row .c{flex:1}.rtable-row.head{color:var(--ink-soft);font-weight:700}.summary{background:var(--brand-soft);border-radius:12px;font-size:14px;margin-top:12px;padding:12px}.escalation{background:#fff0f0;border:1px solid var(--warn);border-radius:12px;color:var(--warn);font-size:14px;font-weight:600;margin-bottom:12px;padding:12px}.change-item{border-bottom:1px dashed var(--line);font-size:13px;padding:6px 0}.empty{color:var(--ink-soft);font-size:14px;padding:28px 12px;text-align:center}.boot-error{color:var(--warn);line-height:1.6}.pill{background:var(--brand-soft);border-radius:999px;color:var(--brand);display:inline-block;font-size:11px;font-weight:700;padding:2px 8px}.topbar{background:linear-gradient(135deg,var(--brand),var(--accent));border-radius:0 0 28px 28px;box-shadow:var(--shadow);color:#fff;margin:-16px -16px 18px;overflow:hidden;padding:22px 20px 20px;position:relative}.topbar::after{background:hsla(0,0%,100%,.12);border-radius:50%;content:"";height:100px;position:absolute;right:-20px;top:-20px;width:100px}.topbar .title{font-size:20px;font-weight:800;position:relative;z-index:1}.topbar .subtitle{font-size:13px;margin-top:4px;opacity:.92;position:relative;z-index:1}.topbar .hero-emoji{font-size:36px;margin-bottom:8px;position:relative;z-index:1}.topbar .app-icon{filter:drop-shadow(0 6px 12px rgba(0,0,0,.18));height:84px;margin-bottom:8px;position:relative;width:84px;z-index:1}.bars{align-items:flex-end;display:flex;gap:8px;height:160px;padding-top:8px}.bar-col{align-items:center;display:flex;flex:1;flex-direction:column;gap:4px;height:100%;justify-content:flex-end}.bar{background:var(--accent);border-radius:8px 8px 0 0;width:60%}.bar.rate{background:var(--brand)}.bar-val{color:var(--ink-soft);font-size:11px}.bar-lbl{color:var(--ink-soft);font-size:10px;text-align:center}.line-chart-wrap{box-sizing:border-box;padding:6px 8px 26px 34px;position:relative}.line-plot{height:0;position:relative;width:100%}.line-inner{bottom:0;left:0;position:absolute;right:0;top:0}.lc-band{background:var(--brand-soft);border-radius:6px;left:0;opacity:.55;position:absolute;right:0}.lc-grid{border-top:1px dashed var(--line);left:0;position:absolute;right:0}.lc-seg{background:var(--brand);border-radius:3px;height:3px;position:absolute;transform-origin:0 50%}.lc-dot{background:var(--card);border:2px solid var(--brand);border-radius:50%;box-sizing:border-box;height:9px;position:absolute;transform:translate(-50%,-50%);width:9px}.lc-ylbl{color:var(--ink-soft);font-size:10px;left:0;padding-right:6px;position:absolute;transform:translate(-100%,-50%);white-space:nowrap}.lc-xlbl{color:var(--ink-soft);font-size:10px;position:absolute;top:100%;white-space:nowrap}.identity-row{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:12px;padding:14px 0}.identity-row.active{background:var(--brand-soft);border-radius:12px;margin:0 -8px;padding-left:8px;padding-right:8px}.identity-summary{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.readonly-hint{background:#fff8e6;border:1px dashed var(--accent)}.invite-code{background:var(--brand-soft);border-radius:12px;color:var(--brand);font-size:28px;font-weight:800;letter-spacing:4px;margin-bottom:12px;padding:16px;text-align:center}.invite-link-box{background:var(--brand-soft);border-radius:12px;color:var(--ink);font-size:12px;margin-bottom:8px;padding:12px;word-break:break-all}.rel-chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.rel-chip{background:var(--card);border:1px solid var(--line);border-radius:999px;color:var(--ink-soft);font-size:14px;padding:8px 14px}.rel-chip.selected{background:var(--brand-soft);border-color:var(--brand);color:var(--brand);font-weight:600}.btn.disabled{opacity:.5}.pill.role-child,.pill.role-guardian,.pill.role-relative{background:var(--brand-soft);color:var(--brand)}.pill.active{background:var(--brand);box-shadow:none;color:#fff}.theme-grid{display:grid;gap:10px;grid-template-columns:repeat(4,1fr)}.theme-chip{align-items:center;background:var(--card);border:2px solid var(--line);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:6px;padding:10px 6px;transition:border-color .15s,background .15s}.theme-chip.selected{background:var(--brand-soft);border-color:var(--brand)}.theme-swatch{border-radius:10px;box-shadow:var(--shadow-sm);height:30px;width:100%}.theme-name{color:var(--ink);font-size:12px;font-weight:600}.theme-chip.selected .theme-name{color:var(--brand)}.loading-wrap{align-items:center;display:flex;flex-direction:column;gap:14px;justify-content:center;padding:48px 16px}.loading-spinner{animation:spin .8s linear infinite;border:3px solid var(--brand-soft);border-radius:50%;border-top-color:var(--brand);height:36px;width:36px}@keyframes spin{to{transform:rotate(1turn)}}.loading-text{color:var(--ink-soft);font-size:14px}.empty-state{padding:32px 16px;text-align:center}.empty-icon{font-size:48px;line-height:1;margin-bottom:12px}.empty-title{color:var(--ink);font-size:16px;font-weight:700;margin-bottom:6px}.empty-desc{color:var(--ink-soft);font-size:13px;line-height:1.5}.identity-avatar{align-items:center;background:linear-gradient(135deg,var(--brand),var(--accent));border-radius:50%;color:#fff;display:flex;flex:none;font-size:18px;font-weight:800;height:44px;justify-content:center;width:44px}.identity-row .chevron{color:var(--ink-soft);flex:none;font-size:18px}.identity-row.active .chevron{color:var(--brand);font-weight:700}.sex-chip-row{display:flex;gap:10px}.sex-chip{background:var(--card);border:2px solid var(--line);border-radius:var(--radius-sm);color:var(--ink-soft);flex:1;font-size:15px;font-weight:600;padding:12px 8px;text-align:center;transition:border-color .15s,background .15s,color .15s}.sex-chip.selected{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}.invite-hero{background:var(--brand-soft);border-radius:var(--radius);margin-bottom:16px;padding:20px 16px;text-align:center}.invite-hero .invite-emoji{font-size:40px;margin-bottom:8px}.invite-hero .invite-from{color:var(--ink);font-size:15px;font-weight:700}.invite-hero .invite-action{color:var(--ink-soft);font-size:13px;margin-top:4px}.invite-info-row{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:10px;padding:10px 0}.invite-info-row:last-child{border-bottom:none}.invite-info-label{color:var(--ink-soft);flex:none;font-size:12px;width:64px}.invite-info-value{flex:1;font-size:15px;font-weight:600}.flash-banner{background:var(--brand-soft);border-left:4px solid var(--brand);border-radius:var(--radius-sm);font-size:14px;line-height:1.5;margin-bottom:14px;padding:14px 16px}.section-hint{color:var(--ink-soft);font-size:12px;line-height:1.5;margin-bottom:12px}.invite-btn-list{display:flex;flex-direction:column;gap:8px}.invite-btn-item{align-items:center;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);display:flex;gap:12px;padding:14px 16px}.invite-btn-item .invite-btn-icon{flex:none;font-size:22px}.invite-btn-item .invite-btn-text{flex:1}.invite-btn-item .invite-btn-label{font-size:15px;font-weight:700}.invite-btn-item .invite-btn-desc{color:var(--ink-soft);font-size:12px;margin-top:2px}.account-row{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:10px;padding:13px 0}.account-row:last-child{border-bottom:none}.account-label{color:var(--ink-soft);flex:none;font-size:14px;width:40px}.account-value{color:var(--ink);flex:1;font-size:14px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-input-wrap{align-items:center;background:var(--bg);border:1px solid var(--line);border-radius:8px;box-sizing:border-box;display:flex;flex:1;height:36px;min-width:0;padding:0 10px}.account-input-wrap taro-input-core.account-input{background:transparent;border:none;flex:1;font-size:14px;height:36px;min-width:0;padding:0}.text-link{color:var(--brand);flex:none;font-size:14px;font-weight:600;padding:4px 0 4px 8px}.text-link.muted{color:var(--ink-soft);font-weight:500}.text-link + .text-link{padding-left:4px}.account-expand{padding:0 0 12px 50px}.account-expand .field{margin-bottom:8px}.account-expand .input,.account-expand taro-input-core.input{font-size:14px;height:40px}.account-expand-actions{display:flex;gap:16px;justify-content:flex-end;margin-top:4px}