.emoji-picker[data-v-c78142f4]{border:0;padding:0;margin:16px 0;min-width:0}.emoji-picker legend[data-v-c78142f4]{font-weight:600;margin-bottom:8px}.emoji-current[data-v-c78142f4]{margin-left:8px}.emoji-picker input[data-v-c78142f4]{width:100%}.emoji-categories[data-v-c78142f4]{display:flex;gap:6px;overflow-x:auto;padding:10px 2px}.emoji-categories button[data-v-c78142f4]{flex:0 0 calc(33.333333% - 4px);width:calc(33.333333% - 4px);min-width:0;box-sizing:border-box;margin:0;min-height:40px;padding:6px 4px;font-size:13px;border-radius:12px;white-space:nowrap}.emoji-grid[data-v-c78142f4]{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px;max-height:190px;overflow-y:auto;padding:4px;border:1px solid var(--line);border-radius:14px;background:var(--canvas)}.emoji-grid button[data-v-c78142f4]{display:grid;place-items:center;min-width:0;min-height:44px;padding:4px;border:1px solid transparent;border-radius:10px;font-size:26px;line-height:1;background:transparent}button[aria-pressed=true][data-v-c78142f4]{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}button[data-v-c78142f4]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.emoji-empty[data-v-c78142f4]{grid-column:1 / -1;font-size:14px;padding:8px;color:var(--muted)}.wish-date[data-v-563c801b]{min-width:0;padding:0;border:0;margin:20px 0}.wish-date legend[data-v-563c801b]{font-weight:600;margin-bottom:10px}.wish-date button[data-v-563c801b]{color:var(--text)}.date-trigger[data-v-563c801b]{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:14px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(120deg,var(--accent-soft),var(--surface))}.date-symbol[data-v-563c801b]{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;border-radius:14px;background:var(--surface);color:var(--accent);font-size:28px}.date-copy[data-v-563c801b]{flex:1;min-width:0}.date-copy strong[data-v-563c801b]{display:block;font-size:15px}.date-copy small[data-v-563c801b]{display:block;font-size:12px;color:var(--muted);margin-top:3px}.date-shortcuts[data-v-563c801b]{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.date-shortcuts button[data-v-563c801b]{flex:1;min-height:40px;white-space:nowrap;padding:6px 8px;border-radius:12px;font-size:12px;background:var(--surface)}.date-shortcuts button[aria-pressed=true][data-v-563c801b]{color:var(--accent);background:var(--accent-soft);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.date-calendar[data-v-563c801b]{padding:12px;border:1px solid var(--line);border-radius:20px;margin-top:12px;background:var(--surface);box-shadow:0 8px 24px var(--shadow)}.date-month[data-v-563c801b]{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.date-month strong[data-v-563c801b]{font-size:16px}.date-month button[data-v-563c801b]{width:40px;min-height:40px;padding:0;font-size:26px;border:0;border-radius:12px;background:var(--canvas)}.date-week[data-v-563c801b],.date-days[data-v-563c801b]{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}.date-week[data-v-563c801b]{font-size:12px;color:var(--muted);margin-bottom:6px}.date-days button[data-v-563c801b]{position:relative;min-width:0;min-height:40px;padding:4px 0;border:0;border-radius:12px;background:transparent;font-size:14px;font-variant-numeric:tabular-nums}.date-days button.outside[data-v-563c801b]{color:var(--muted)}.date-days button[data-v-563c801b]:disabled{opacity:.3}.date-days button[aria-pressed=true][data-v-563c801b]{background:var(--accent);color:var(--on-accent);box-shadow:0 4px 10px var(--shadow)}.date-days button[aria-current=date][data-v-563c801b]:after{content:"";position:absolute;bottom:3px;left:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:currentColor}.date-calendar-footer[data-v-563c801b]{display:flex;align-items:center;justify-content:space-between;margin-top:8px;border-top:1px solid var(--line);padding-top:8px;font-size:12px;color:var(--muted)}.date-calendar-footer button[data-v-563c801b]{padding:8px;min-height:40px;font-size:13px;border:0;background:transparent;color:var(--accent)}.wish-date button[data-v-563c801b]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.month-grid[data-v-563c801b]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.month-grid button[data-v-563c801b]{min-width:0;min-height:44px;padding:8px;border:0;border-radius:12px;background:var(--canvas);font-size:14px}.month-grid button[aria-pressed=true][data-v-563c801b]{background:var(--accent);color:var(--on-accent)}.wish-date button[data-v-563c801b]:disabled{opacity:.35}.date-heading[data-v-563c801b]{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0}.date-heading select[data-v-563c801b]{width:auto;min-height:44px;margin:0;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--accent-soft);color:var(--accent);font:inherit;font-weight:600}.weekly-summary[data-v-4b52c90a]{margin:24px 0}.section-heading[data-v-4b52c90a]{flex-wrap:wrap;gap:8px}.section-heading h2[data-v-4b52c90a]{margin:0}.weekly-stats[data-v-4b52c90a]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:24px 0}.weekly-stats div[data-v-4b52c90a]{min-width:0}.weekly-stats strong[data-v-4b52c90a]{display:block;font-size:clamp(18px,3vw,28px);color:var(--accent);overflow-wrap:anywhere}.weekly-stats small[data-v-4b52c90a],.weekly-stats span[data-v-4b52c90a]{font-size:13px}.weekly-stats span[data-v-4b52c90a]{display:block;margin-top:8px;color:var(--muted)}.weekly-note[data-v-4b52c90a]{font-size:13px;line-height:1.7}.quick-undo[data-v-16bde49c]{position:fixed;z-index:40;bottom:calc(90px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);width:min(540px,calc(100% - 32px));box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border:1px solid var(--accent);border-radius:20px;background:var(--surface);box-shadow:0 8px 28px var(--shadow)}.quick-undo span[data-v-16bde49c]{min-width:0;overflow-wrap:anywhere}.quick-undo button[data-v-16bde49c]{flex-shrink:0;margin:0}.milestone-celebration[data-v-16bde49c]{border:1px solid var(--accent);margin-bottom:24px}.milestone-history[data-v-16bde49c]{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0;font-size:13px}.encouragements[data-v-16bde49c]{margin-bottom:24px}.encouragement-message[data-v-16bde49c]{padding:12px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}.encouragement-message p[data-v-16bde49c]{margin:0 0 8px}.ledger-month-panel[data-v-16bde49c]{margin:12px 0 20px;padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--canvas)}.ledger-month-heading[data-v-16bde49c]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;font-size:15px;color:var(--muted)}.ledger-month-heading button[data-v-16bde49c]{min-height:44px;margin:0;padding:6px 16px;font-size:15px;color:var(--accent);background:var(--surface)}.ledger-month-controls[data-v-16bde49c]{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:10px}.ledger-month-controls input[data-v-16bde49c]{display:block;width:100%;min-width:0;height:52px;min-height:52px;box-sizing:border-box;margin:0;padding:8px 12px;border:1px solid var(--line);border-radius:12px;color:var(--text);background:var(--surface);font-size:18px;text-align:center}.ledger-month-controls input[data-v-16bde49c]::-webkit-date-and-time-value{text-align:center}.ledger-month-controls button[data-v-16bde49c]{height:52px;min-height:52px;margin:0;padding:0;font-size:30px;line-height:1}.ledger-summary[data-v-16bde49c]{margin:0 0 12px}.ledger-summary-amounts[data-v-16bde49c]{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:18px;font-weight:600}.ledger-summary-amounts span[data-v-16bde49c]{white-space:nowrap}.ledger-summary-note[data-v-16bde49c]{margin-top:8px;color:var(--muted);font-size:13px;line-height:1.5}@media(max-width:480px){.ledger-month-panel[data-v-16bde49c]{padding:10px}.ledger-month-controls[data-v-16bde49c]{grid-template-columns:44px minmax(0,1fr) 44px;gap:6px}.ledger-month-controls input[data-v-16bde49c]{padding:6px;font-size:16px}}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;color:var(--text);background:var(--canvas);font-size:18px;font-synthesis:none;line-height:1.6}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:12px;min-height:48px;padding:10px 18px;font-weight:600;transition:background .15s,transform .15s}button:hover:not(:disabled){background:var(--accent-soft);transform:translateY(-1px)}button:disabled{opacity:.55;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:2rem;line-height:1.35;letter-spacing:-.03em}h2{font-size:1.25rem;line-height:1.5}p{margin:10px 0}small{font-size:.8rem}.text-button{background:none;border:0;color:var(--accent);padding:8px;min-height:44px}.muted{color:var(--muted)}.app-layout{display:flex;min-height:100vh}.sidebar{width:252px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--line);padding:34px 24px;display:flex;flex-direction:column;position:fixed;top:0;bottom:0}.brand{display:flex;align-items:center;gap:12px;font-size:1.05rem;font-weight:800;line-height:1.45}.brand img{width:42px;height:42px}.brand small{display:block;font-size:.7rem;font-weight:400;color:var(--muted);margin-top:4px}.sidebar nav{display:grid;gap:12px;margin-top:52px}.sidebar nav button{display:flex;align-items:center;gap:14px;text-align:left;border:0;color:var(--muted);font-size:.94rem;padding:15px 12px}.sidebar nav button.selected{background:var(--accent-soft);color:var(--accent)}.sidebar-footer{margin-top:auto;display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding-top:35px;font-size:.9rem}.sidebar-footer .text-button{font-size:.8rem}.avatar{display:grid;place-items:center;width:42px;height:42px;background:var(--warning-soft);border-radius:14px;font-size:1.6rem}main{margin-left:252px;padding:36px 44px 64px;max-width:1700px;width:calc(100% - 252px)}.page-header{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:12px 0 30px}.eyebrow{font-size:.78rem;color:var(--muted);font-weight:600;letter-spacing:.04em;margin-bottom:8px}.home-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:24px}.card{border:1px solid var(--line);background:var(--surface);border-radius:22px;padding:26px;box-shadow:0 6px 24px var(--shadow)}.balance-card{position:relative;overflow:hidden;background:var(--accent);color:var(--on-accent);border-radius:22px;padding:30px;min-height:286px;display:flex;flex-direction:column;align-items:flex-start}.balance-card .eyebrow{color:var(--balance-muted)}.balance{font-size:3rem;line-height:1.2;font-weight:800;margin:8px 0 12px;position:relative;z-index:1;overflow-wrap:anywhere;max-width:100%}.balance span{font-size:1.5rem;margin-right:8px}.balance-card p{color:var(--balance-muted);font-size:.9rem;z-index:1}.balance-card button{margin-top:auto;background:#ffffff1a;border:1px solid #ffffff44;color:var(--on-accent);z-index:1;min-width:190px;text-align:left}.balance-card button span{float:right}.coin-decoration{position:absolute;right:-10px;bottom:-34px;transform:rotate(-18deg);width:170px;height:170px;border:12px solid #ffffff14;border-radius:50%;font-size:5rem;color:#ffffff18;text-align:center;line-height:145px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:28px 0 16px}.card .section-heading{margin:0 0 14px}.wish-title{display:flex;gap:20px;align-items:center;margin:12px 0 20px}.wish-title p{font-size:.86rem;color:var(--muted)}.wish-icon{font-size:2.8rem;display:inline-block;line-height:1.6}.pill{display:inline-block;background:var(--surface-alt);color:var(--muted);font-size:.78rem;padding:5px 12px;border-radius:9px;white-space:nowrap}.progress-label{display:flex;justify-content:space-between;gap:12px;font-size:.85rem;margin:12px 0 8px}.progress-label strong{color:var(--accent);font-size:1.1rem}progress{display:block;-webkit-appearance:none;appearance:none;border:0;width:100%;height:10px;border-radius:30px;overflow:hidden;background:var(--surface-alt)}progress::-webkit-progress-bar{background:var(--surface-alt);border-radius:30px}progress::-webkit-progress-value{background:var(--progress);border-radius:30px}.main-wish>p{font-size:.88rem}.task-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.task-card{display:flex;flex-direction:column;align-items:flex-start;text-align:left;border:1px solid var(--line);border-radius:20px;padding:24px;gap:12px;min-width:0;box-shadow:0 3px 14px var(--shadow)}.task-card strong{overflow-wrap:anywhere;font-size:1.05rem}.task-card p{font-size:.85rem;color:var(--muted);font-weight:400;margin:0}.task-icon{width:54px;height:54px;background:var(--accent-soft);border-radius:16px;display:grid;place-items:center;font-size:1.8rem}.reward-amount{font-size:1.3rem;color:var(--positive)}.task-card small{color:var(--muted);font-weight:400}.card-action{font-size:.86rem;padding-top:14px;border-top:1px solid var(--line);width:100%;margin-top:auto;color:var(--accent)}.count{font-size:.8rem;background:var(--surface-alt);color:var(--muted);padding:3px 8px;border-radius:8px;margin-left:5px}.record{display:flex;gap:14px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.record:last-child{border-bottom:0}.record-icon{font-size:1.8rem}.record small{display:block;color:var(--muted);margin-top:4px}.record strong{font-size:.93rem;overflow-wrap:anywhere}.grow{flex:1;min-width:140px}.positive{color:var(--positive)}.intro{color:var(--muted);margin-bottom:24px}.wish-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.wish-card p{font-size:.9rem}.wish-card .button-row{margin-top:18px}.wish-card .button-row button{font-size:.8rem}.empty{text-align:center;color:var(--muted);padding:36px}.empty h2{color:var(--text)}.entry-screen{text-align:center;max-width:650px;margin:50px auto;padding:25px}.entry-icon{font-size:5rem;background:var(--accent-soft);border-radius:32px;display:inline-block;width:145px;margin-bottom:25px}.entry-screen h1{font-size:2.3rem}.entry-screen p{color:var(--muted);margin:20px 0}.entry-screen .button-row{justify-content:center}.install-help{margin-top:38px;font-size:.85rem;color:var(--muted)}.install-help summary{cursor:pointer}.alerts:empty{display:none}.error,.success{padding:13px 18px;border-radius:12px;font-size:.9rem}.error{background:var(--danger-soft);color:var(--danger)}.success{background:var(--positive-soft);color:var(--positive)}.alerts{position:relative;z-index:2}.button-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);z-index:20;display:flex;align-items:center;justify-content:center;padding:24px;overflow:auto}.modal{background:var(--surface);border-radius:24px;padding:30px;width:100%;max-width:480px;max-height:calc(100dvh - 48px);overflow:auto;box-shadow:0 24px 80px var(--shadow-strong)}.modal.wide{max-width:760px}.modal h2{margin-bottom:20px}.modal label{display:block;font-size:.9rem;font-weight:600;margin:18px 0}.modal input,.modal select,.modal textarea,.field-input{display:block;width:100%;border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-top:8px;min-height:48px;background:var(--surface);color:var(--text)}.modal textarea{min-height:100px;resize:vertical}.modal .button-row{margin-top:25px;justify-content:flex-end}.mobile-nav{display:none}.admin-main{margin:0 auto;width:100%;max-width:1250px}.admin-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0}.admin-tabs .selected{background:var(--accent);color:var(--on-accent)}.admin-banner{background:var(--warning-soft);color:var(--warning);border-radius:12px;padding:12px 18px;font-size:.85rem}.admin-selects{display:flex;gap:16px;flex-wrap:wrap;margin:24px 0}.admin-selects label{font-size:.85rem;flex:1;min-width:180px}.info-content{white-space:pre-wrap;overflow-wrap:anywhere}.admin-card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.admin-card-actions button{font-size:.8rem}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}@media(min-width:1500px){main{padding:45px 64px}.home-grid{grid-template-columns:1fr 1.2fr}}@media(max-width:1100px){.sidebar{width:210px;padding:28px 16px}main{margin-left:210px;width:calc(100% - 210px);padding:28px 24px}.home-grid{grid-template-columns:1fr}.balance-card{min-height:245px}.task-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wish-grid{grid-template-columns:1fr}.desktop{display:none}.admin-main{margin:0 auto;width:100%}}@media(max-width:800px){.sidebar{display:none}main{margin:0;width:100%;padding:24px 22px 120px}.page-header{margin-top:0}.page-header h1{font-size:1.75rem}.eyebrow{font-size:.75rem}.mobile-nav{position:fixed;display:flex;left:0;right:0;bottom:0;justify-content:space-around;background:var(--surface);border-top:1px solid var(--line);padding:10px 8px calc(10px + env(safe-area-inset-bottom));z-index:5}.mobile-nav button{border:0;background:none;font-size:.75rem;padding:4px 8px;color:var(--muted)}.mobile-nav button span{display:block;font-size:1.35rem}.mobile-nav button.selected{color:var(--accent);background:var(--accent-soft)}.entry-screen{margin:25px auto}.entry-screen h1{font-size:1.9rem}.admin-main{padding-bottom:40px}.admin-grid{grid-template-columns:1fr}}@media(max-width:460px){:root{font-size:17px}.task-grid{grid-template-columns:1fr}.task-card{padding:20px}.section-heading{flex-wrap:wrap}.balance{font-size:2.65rem}.modal-backdrop{padding:12px}.modal{padding:22px;max-height:calc(100dvh - 24px)}.button-row button{flex-grow:1}.page-header{align-items:flex-start}.card{padding:20px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.wish-photo{width:100px;height:100px;object-fit:contain;border-radius:14px;background:var(--canvas)}.image-list{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0}.image-list img,.image-list image{width:120px;height:120px;object-fit:contain;border-radius:12px}.image-list>div{display:flex;flex-direction:column;gap:8px}@media(min-width:951px)and (max-width:1100px){.home-grid{grid-template-columns:1fr 1.15fr}.home-grid .balance-card{padding:25px;min-height:320px}.home-grid .balance{font-size:2.55rem}.home-grid .main-wish{padding:23px}.home-grid .wish-title{gap:10px;flex-wrap:wrap}}:root{background:var(--canvas)}body{background:radial-gradient(ellipse at top right,var(--accent-soft) 0,transparent 50%),var(--canvas)}.sidebar{background:var(--surface);border-right-color:var(--line)}.sidebar nav button{border-radius:16px;min-height:58px}.sidebar nav button.selected{background:var(--accent-soft);box-shadow:inset 3px 0 var(--accent)}.page-header{margin-bottom:28px}.page-header h1{font-weight:800}.card{box-shadow:0 8px 30px var(--shadow);border-radius:26px}.balance-card{background:linear-gradient(120deg,var(--accent),var(--balance-end));border-radius:26px;box-shadow:0 12px 30px var(--shadow-strong)}.balance-card .balance{letter-spacing:-.045em;font-variant-numeric:tabular-nums}.main-wish{border-top:4px solid var(--progress)}.main-wish .wish-icon{background:var(--warning-soft);width:76px;height:76px;display:inline-flex;align-items:center;justify-content:center;border-radius:22px;flex-shrink:0}.task-card{border-radius:24px;padding:26px;box-shadow:0 6px 22px var(--shadow)}.task-card:hover:not(:disabled){border-color:var(--line);background:var(--surface);box-shadow:0 10px 26px var(--shadow)}.task-card:disabled{opacity:.8;background:var(--surface-alt)}.task-card:disabled small,.task-card:disabled strong{color:var(--muted)}.task-card .task-icon{border-radius:18px}.task-card .reward-amount{font-variant-numeric:tabular-nums}.pill,.count{border-radius:30px}.mobile-nav{box-shadow:0 -5px 25px var(--shadow)}.mobile-nav button{border-radius:16px;min-width:64px}.entry-screen{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:44px;align-items:center;text-align:left;max-width:1060px;margin:6vh auto 24px;padding:30px 18px}.entry-intro{padding:12px}.entry-icon{width:112px;height:112px;font-size:4rem;text-align:center;background:var(--accent-soft);border-radius:32px;margin-bottom:26px;box-shadow:0 10px 30px var(--shadow)}.entry-screen h1{font-size:clamp(1.9rem,3.2vw,2.65rem);line-height:1.35;letter-spacing:-.045em}.entry-intro p{font-size:.95rem;line-height:1.85;margin:22px 0}.entry-features{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.entry-features span{padding:8px 12px;border-radius:24px;background:var(--surface);border:1px solid var(--line);font-size:.76rem;color:var(--muted)}.entry-panel{background:var(--surface);padding:32px;border:1px solid var(--line);border-radius:30px;box-shadow:0 18px 70px var(--shadow);min-width:0}.entry-step-label{color:var(--muted);font-size:.83rem;font-weight:600}.entry-panel .button-row{display:grid;grid-template-columns:1fr auto;gap:10px}.entry-panel button{font-size:.87rem;padding:12px 16px}.entry-panel>.primary{margin-top:26px;width:100%}.entry-dev-help{margin-top:22px;font-size:.74rem;color:var(--muted)}.entry-dev-help summary{cursor:pointer}.entry-screen .entry-dev-help p{margin:10px 0 0;line-height:1.7}.entry-screen .install-help{grid-column:1 / -1;text-align:center;margin:0;font-size:.78rem}.entry-screen .install-help p{max-width:680px;margin:16px auto}@media(min-width:700px)and (max-width:950px){.home-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}.home-grid .balance-card,.home-grid .main-wish{padding:22px;min-height:300px}.home-grid .balance{font-size:2.55rem}.home-grid .wish-title{gap:10px;flex-wrap:wrap}}@media(max-width:800px){.entry-screen{grid-template-columns:1fr;max-width:530px;gap:24px;margin:0 auto;padding:8px 0}.entry-intro{text-align:center}.entry-icon{width:80px;height:80px;font-size:2.9rem;border-radius:24px;margin-bottom:15px}.entry-intro p{margin:15px 0 0}.entry-features{display:none}.entry-panel{padding:26px;border-radius:26px}}@media(max-width:460px){.entry-panel{padding:22px 18px}.entry-screen h1{font-size:1.85rem}.entry-panel .button-row{grid-template-columns:1fr}.entry-panel .button-row button{width:100%}.main-wish .wish-icon{width:62px;height:62px}}.choice-row{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.choice-row .chosen,.preset-card.chosen{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.card-picker{max-width:680px}.adjustment-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:10px 0}.adjustment-grid button{min-width:0;min-height:48px;padding:8px 0;border:1px solid var(--line);border-radius:12px;font-size:13px;color:var(--accent);background:var(--surface);white-space:nowrap}.adjustment-negative button{background:var(--surface-alt);color:var(--text)}.adjustment-custom{width:100%;min-height:44px;margin:2px 0 12px;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--accent);font-size:14px}.adjustment-grid button[aria-pressed=true],.adjustment-custom[aria-pressed=true]{color:var(--accent);border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.adjustment-help{color:var(--muted);font-size:12px;font-weight:400;margin:8px 0}.adjustment-summary{font-size:14px;color:var(--accent)}.card-picker .record-head{position:sticky;top:0;z-index:2;background:var(--surface);padding:12px 0 14px;border-bottom:1px solid var(--line)}.record-context{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:13px;margin:6px 0 14px}.record-context span:first-child{color:var(--text);font-weight:600}.record-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.record-tabs button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;min-height:72px;padding:10px 4px;border:1px solid var(--accent);border-radius:14px;background:var(--surface);color:var(--accent)}.record-tabs strong{font-size:14px}.record-tabs small{font-size:11px;color:var(--muted)}.record-tabs .record-active{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.record-tabs .record-active small{color:var(--accent)}.record-tabs .record-active{box-shadow:inset 0 0 0 1px var(--accent)}.record-hint{color:var(--muted);font-size:12px;margin:12px 0 0}.card-picker .preset-card{width:100%;border:1px solid var(--line);background:var(--surface)}.card-picker .preset-card:disabled{opacity:.65;background:var(--surface-alt)}.card-picker .section-heading{margin-top:0}.preset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:20px 0}.preset-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:20px;text-align:left;min-width:0;border-radius:20px}.preset-card strong{overflow-wrap:anywhere}.preset-card small{color:var(--muted)}.preset-icon{font-size:2rem;line-height:1.4}.preset-amount{color:var(--positive);font-weight:700}.quick-confirm{text-align:center;padding:20px 0}.quick-confirm .preset-icon{font-size:3rem}.quick-total{display:block;color:var(--positive);font-size:2.6rem;margin:25px 0}.quick-confirm .choice-row{justify-content:center}.negative-check{font-size:.8rem;text-align:left}.modal .negative-check input{display:inline;width:auto;min-height:0;margin-right:10px}.sheet-footer{position:sticky;bottom:-30px;padding:18px 0;background:var(--surface);border-top:1px solid var(--line)}.sheet-footer .primary{width:100%}@media(max-width:460px){.preset-grid{gap:10px}.preset-card{padding:14px;font-size:.85rem}.sheet-footer{bottom:-22px}}.ledger-income{color:#237a48}.ledger-expense{color:#b93838}.pool-assignment-shell{position:relative;overflow:hidden;border-radius:26px;background:var(--surface)}.pool-assignment.card{position:relative;z-index:1;margin:0;height:100%;transition:transform .18s ease;touch-action:pan-y;-webkit-user-select:none;user-select:none}.pool-assignment-swiped{transform:translate(-90px)}.pool-assignment-delete{position:absolute;right:0;top:0;bottom:0;width:90px;border:0;border-radius:0;background:var(--warning-soft);color:var(--warning)}.pool-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0}.pool-toolbar button{margin:0;color:var(--accent);font-size:15px}.pool-card{min-width:0}.pool-actions{display:flex;gap:6px;margin-top:6px}.pool-actions button{flex:1;min-height:44px;margin:0;padding:8px;font-size:14px}.pool-actions .pool-delete{color:#b93838}html:has(.modal-backdrop),body:has(.modal-backdrop){overflow:hidden}.modal-backdrop,.modal{overscroll-behavior:contain}.card-picker .pool-editable{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--surface)}.card-picker .pool-editable.pool-chosen{border-color:var(--accent);background:var(--accent-soft)}.card-picker .pool-editable .preset-card{flex:1;margin:0;border:0;border-radius:0;box-shadow:none;background:transparent}.card-picker .pool-editable .pool-actions{display:flex;gap:0;margin:0 10px;border-top:1px solid var(--line)}.card-picker .pool-editable .pool-actions button{display:flex;align-items:center;justify-content:center;gap:4px;flex:1;min-width:0;min-height:44px;margin:0;padding:8px 4px;border:0;border-radius:0;background:transparent;color:var(--muted);font-size:13px;font-weight:400;box-shadow:none}.card-picker .pool-editable .pool-actions .pool-delete{color:#a95d51}.card-picker .pool-editable .pool-actions button:hover:not(:disabled){background:var(--surface-alt)}.pool-edit-icon{font-size:16px;line-height:1}.expense-form{display:grid;gap:20px;width:100%;min-width:0}.expense-amount{display:grid;gap:16px;text-align:left}.expense-input{display:flex;align-items:center;gap:12px;font-size:38px;font-weight:700}.expense-input input{min-width:0;width:100%;font-size:38px;font-weight:700}.expense-categories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.expense-categories button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:58px;padding:10px 6px;overflow-wrap:anywhere}.expense-categories button span{font-size:24px}.expense-categories .chosen{box-shadow:inset 0 0 0 2px currentColor}.expense-submit{position:sticky;bottom:96px;min-height:54px}@media(max-width:420px){.expense-categories{gap:8px}.expense-categories button{font-size:14px;gap:4px}}.environment-banner{padding:8px 16px;border:1px solid var(--accent);border-radius:12px;color:var(--accent);text-align:center;font-size:14px}.pool-batch{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 0;border-bottom:1px solid var(--line)}.pool-batch button{display:flex;align-items:center;justify-content:center;gap:6px;flex-shrink:0;min-height:44px;margin:0;padding:8px 10px;border:0;border-radius:8px;font-size:13px;line-height:1.4;font-weight:500}.pool-batch .pool-select-toggle{background:var(--surface-alt);color:var(--text)}.pool-batch .pool-select-toggle.is-selected{background:var(--accent-soft);color:var(--accent)}.pool-check{display:flex;align-items:center;justify-content:center;width:16px;height:16px;box-sizing:border-box;border:1px solid var(--muted);border-radius:4px;font-size:12px;line-height:1}.is-selected .pool-check{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.pool-batch .pool-restore{background:transparent;color:var(--muted)}.pool-reset-icon{font-size:18px;line-height:1}.pool-batch button:disabled{opacity:.45}.pool-selection-count{margin:8px 0 4px;color:var(--muted);font-size:12px}.pool-selection-count strong{color:var(--accent);font-weight:600}.pool-filters .muted{margin:8px 0;font-size:13px}:root{--canvas: #FAF6EF;--surface: #FFFDFA;--surface-alt: #F3EBE0;--text: #34271F;--muted: #75695F;--line: #E8DDD0;--accent: #AF4F30;--accent-hover: #913E24;--accent-soft: #F9E7DA;--on-accent: #FFFFFF;--focus: #9C5C23;--progress: #C87A52;--track: #EDE1D4;--positive: #496641;--positive-soft: #EDF1E5;--warning: #805717;--warning-soft: #FFF0CF;--danger: #A32D3A;--danger-soft: #FFF0F0;--balance-bg: #AF4F30;--balance-end: #B35634;--balance-ink: #FFFFFF;--balance-muted: #FFF8F2;--child-balance-bg: #FFFDFA;--child-balance-ink: #34271F;--child-balance-muted: #75695F;--child-balance-action: #AF4F30;--leaf: #93A074;--shadow: #57351C0B;--shadow-strong: #57351C20;--scrim: #30231D66}:root[data-theme=mint]{--canvas: #EDF5F0;--surface: #FCFEFC;--surface-alt: #E1EEE5;--text: #193E34;--muted: #597568;--line: #D4E4DA;--accent: #216F54;--accent-hover: #16553F;--accent-soft: #DFEFE5;--on-accent: #FFFFFF;--focus: #698119;--progress: #2F9271;--track: #D9E8DF;--positive: #216F54;--positive-soft: #E5F2EA;--warning: #725813;--warning-soft: #FAF0C0;--danger: #A32D3A;--danger-soft: #FFF0F0;--balance-bg: #1B453A;--balance-end: #245C4B;--balance-ink: #FFFFFF;--balance-muted: #E3F3E8;--child-balance-bg: #1B453A;--child-balance-ink: #FFFFFF;--child-balance-muted: #D1E8DC;--child-balance-action: #FFFFFF;--leaf: #8AB88D;--shadow: #193E340B;--shadow-strong: #193E3420;--scrim: #15362C66}:root{color:var(--text);background:var(--canvas)}body{background:var(--canvas)}button{border-radius:16px;color:var(--text);background:var(--surface)}button:hover:not(:disabled){background:var(--surface-alt)}button.primary,.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}button.primary:hover:not(:disabled){background:var(--accent-hover)}.text-button{color:var(--accent);background:transparent}.card,.modal,.entry-panel{background:var(--surface);border-color:var(--line);box-shadow:0 8px 28px var(--shadow)}.card,.task-card{border-radius:24px}.sidebar{background:var(--surface);border-color:var(--line)}.sidebar nav button.selected{background:var(--accent-soft);color:var(--accent);box-shadow:inset 3px 0 var(--accent)}.balance-card{background:linear-gradient(115deg,var(--balance-bg),var(--balance-end));color:var(--balance-ink);box-shadow:0 10px 30px var(--shadow-strong)}.app-layout .balance-card{background:var(--child-balance-bg);color:var(--child-balance-ink);border:1px solid var(--line);box-shadow:0 8px 28px var(--shadow)}.app-layout .balance-card .eyebrow,.app-layout .balance-card p{color:var(--child-balance-muted)}.app-layout .balance-card button{color:var(--child-balance-action);background:transparent;border-color:currentColor;min-width:0;font-size:.84rem;position:relative}.balance-card .balance{font-size:clamp(2.6rem,4.8vw,4rem);font-weight:750}.growth-mark{position:absolute;width:120px;height:140px;right:-5px;bottom:-3px;color:var(--leaf);opacity:.35;pointer-events:none}.main-wish{border-top:1px solid var(--line)}.main-wish .wish-icon{background:var(--accent-soft)}.pill,.count{background:var(--surface-alt);color:var(--muted)}.pill.gold{background:var(--warning-soft);color:var(--warning)}progress,progress::-webkit-progress-bar{background:var(--track)}progress::-webkit-progress-value{background:var(--progress)}progress::-moz-progress-bar{background:var(--progress)}.task-card{background:var(--surface);box-shadow:0 5px 22px var(--shadow);border-color:var(--line)}.task-card:hover:not(:disabled){background:var(--surface);border-color:var(--accent);box-shadow:0 8px 25px var(--shadow-strong)}.task-card:disabled{background:var(--surface-alt)}.task-card .task-icon{background:var(--accent-soft)}.task-card:nth-child(3n+2) .task-icon{background:var(--warning-soft)}.task-card:nth-child(3n+3) .task-icon{background:var(--positive-soft)}.reward-amount,.preset-amount,.quick-total{color:var(--accent)}.task-card .card-action{border:0;border-radius:12px;background:var(--accent);color:var(--on-accent);text-align:center;padding:10px;font-weight:650}.task-card:disabled .card-action{background:var(--surface-alt);color:var(--muted);border:1px solid var(--line)}.modal-backdrop{background:var(--scrim);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{box-shadow:0 24px 80px var(--shadow-strong);border-radius:28px}.modal input,.modal select,.modal textarea,.field-input{background:var(--surface);border-color:var(--line);color:var(--text);border-radius:14px}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}.choice-row .chosen,.preset-card.chosen{background:var(--accent-soft);color:var(--accent);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.sheet-footer{background:var(--surface);border-color:var(--line)}.admin-tabs button{background:transparent;border-color:transparent;color:var(--muted)}.admin-tabs .selected{background:var(--accent-soft);color:var(--accent);border-color:var(--line)}.admin-banner{background:var(--surface-alt);color:var(--muted);font-size:.72rem}.entry-icon{background:var(--accent-soft);box-shadow:none}.entry-features span{background:var(--surface);border-color:var(--line);color:var(--muted)}.mobile-nav{background:var(--surface);box-shadow:0 -5px 25px var(--shadow);border-color:var(--line)}.mobile-nav button.selected{color:var(--accent);background:var(--accent-soft)}.install-help{margin-top:18px;margin-bottom:20px}.child-link-qr{display:block;width:280px;max-width:100%;height:auto;margin:16px auto;background:#fff;image-rendering:pixelated}.appearance-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:26px}.app-wordmark{font-size:1rem;font-weight:750;line-height:1.4}.app-wordmark>span{display:block;font-size:.68rem;font-weight:400;color:var(--muted);margin-top:3px}.header-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.theme-switcher{position:relative;z-index:10;flex-shrink:0}.theme-switcher>summary{display:flex;align-items:center;gap:8px;list-style:none;cursor:pointer;padding:9px 13px;border:1px solid var(--line);border-radius:24px;background:var(--surface);font-size:.76rem;min-height:44px;color:var(--text)}.theme-switcher>summary::-webkit-details-marker{display:none}.theme-dot{width:14px;height:14px;background:var(--accent);box-shadow:inset -5px 0 var(--surface-alt);border-radius:50%;display:inline-block}.theme-options{position:absolute;right:0;top:calc(100% + 10px);width:min(290px,calc(100vw - 36px));padding:18px;border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:0 16px 55px var(--shadow-strong)}.theme-options>p{color:var(--muted);font-size:.75rem;margin:0 0 12px}.theme-options button{display:flex;align-items:center;text-align:left;gap:12px;width:100%;margin-bottom:8px;padding:12px;background:transparent}.theme-options button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.theme-options button strong{font-size:.86rem;display:block}.theme-options button small{display:block;color:var(--muted);font-size:.67rem;margin-top:2px;font-weight:400}.theme-preview{width:38px;height:42px;border-radius:10px;flex-shrink:0;border:1px solid #00000008}.preview-cream{background:linear-gradient(145deg,#faf6ef 55%,#b85d3d 55%)}.preview-mint{background:linear-gradient(145deg,#edf5f0 55%,#1b453a 55%)}.theme-check{color:var(--accent);margin-left:auto}.theme-hint{color:var(--muted);font-size:.66rem;display:block;padding-top:5px}@media(min-width:801px)and (max-width:1200px){.app-layout .appearance-bar{margin-bottom:16px}.app-layout .page-header{margin-bottom:20px}.home-grid .balance-card,.home-grid .main-wish{min-height:250px;padding:24px}.home-grid .wish-title{margin:8px 0}.home-grid .main-wish .wish-icon{width:56px;height:56px;border-radius:16px;font-size:2.2rem}.main-wish>.text-button{min-height:36px;padding:4px 0}.task-card{padding:20px;gap:9px}.app-layout .sidebar{display:none}.app-layout>main{margin-left:0;width:100%;padding:28px 32px 130px}.mobile-nav{display:flex;position:fixed;left:0;right:0;bottom:0;justify-content:space-around;padding:12px 16px calc(12px + env(safe-area-inset-bottom));z-index:5;border-top:1px solid var(--line)}.mobile-nav button{background:transparent;border:0;font-size:.8rem;color:var(--muted);padding:6px 18px}.mobile-nav button span{display:block;font-size:1.4rem}.task-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.home-grid{grid-template-columns:1fr 1.15fr}}.choice-row.avatar-choices{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.choice-row.avatar-choices button{min-width:0;min-height:44px;padding:6px 0;font-size:26px;line-height:1}@media(max-width:460px){.appearance-bar{gap:8px;margin-bottom:24px}.app-wordmark{font-size:.88rem}.app-wordmark>span{max-width:150px;font-size:.62rem}.theme-switcher>summary{font-size:.69rem;padding:8px 10px;gap:6px}.header-tools{gap:6px}.header-tools>button{padding:7px 10px;font-size:.76rem}.admin-main .page-header{flex-wrap:wrap}.admin-main .header-tools{margin-left:auto}.growth-mark{width:104px}}
