:root{--brand: #2f9e44;--brand-dark: #237a34;--gold: #f2b01e;--ink: #16233b;--muted: #64748b;--bg: #f2f5fb;--card: #ffffff;--line: #e3e8f2;--green: #10893e;--red: #c62f2f;--radius: 14px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:hidden}#root{min-height:100dvh}.app,.auth-page{max-width:520px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:calc(12px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) 4px calc(16px + env(safe-area-inset-left))}.app-header-title{display:flex;align-items:center;gap:8px;font-weight:700;font-size:18px}.app-logo{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;background:var(--brand);color:#fff;font-size:16px}.app-logo.big{width:52px;height:52px;font-size:26px;border-radius:15px}.app-logo .logo-mark{width:64%;height:64%;display:block}.tabs{display:flex;gap:6px;padding:8px 16px;position:sticky;top:0;background:var(--bg);z-index:5}.tab{flex:1;min-height:44px;border:1px solid var(--line);background:var(--card);border-radius:999px;font-size:15px;font-weight:600;color:var(--muted);cursor:pointer}.tab-active{background:var(--brand);border-color:var(--brand);color:#fff}.app-main{flex:1;padding:0 16px 40px}.app-loading{padding:40px;text-align:center;color:var(--muted)}.page-title{font-size:24px;margin:14px 0 2px}.page-subtitle{color:var(--muted);margin:0 0 16px;font-size:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:16px}.card-title{font-size:16px;margin:0 0 12px;display:flex;align-items:center;justify-content:space-between;gap:8px}.week-total{color:var(--green);font-size:15px}.muted{color:var(--muted);font-size:14px}.hint{color:var(--muted);font-size:12.5px;margin:0}.error{color:var(--red);font-size:14px;margin:0;font-weight:600}.stack{display:flex;flex-direction:column;gap:12px}.field{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0}.field>span{font-size:13px;font-weight:600;color:var(--muted)}.field input{width:100%;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:10px;font-size:16px;background:#fff;color:var(--ink)}.field input:focus{outline:2px solid var(--brand);outline-offset:0;border-color:var(--brand)}.field-row{display:flex;gap:10px}.btn{min-height:44px;padding:0 16px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:15px;font-weight:600;cursor:pointer;touch-action:manipulation}.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-primary:disabled{opacity:.55;cursor:default}.btn-primary:not(:disabled):active{background:var(--brand-dark)}.btn-ghost{background:transparent}.btn-danger{color:var(--red)}.btn-small{min-height:40px;padding:0 12px;font-size:13.5px}.btn-row{display:flex;gap:8px}.link{background:none;border:none;padding:0;color:var(--brand);font-size:inherit;font-weight:600;cursor:pointer;text-decoration:underline}.auth-page{justify-content:center;padding:calc(24px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left))}.auth-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:26px 20px}.auth-hero{display:block;width:100%;max-width:320px;height:auto;margin:0 auto 16px}.auth-brand{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:18px;text-align:center}.auth-brand h1{margin:4px 0 0;font-size:24px}.auth-tagline{margin:0;color:var(--muted);font-size:14px}.auth-heading{font-size:17px;margin:0 0 14px}.auth-switch{margin:16px 0 0;text-align:center;color:var(--muted);font-size:14px}.kid-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.kid-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px}.kid-avatar{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#ddf1e2;color:var(--brand);font-weight:700;flex-shrink:0}.kid-name{font-weight:600}.kid-age{color:var(--muted);font-size:13px;margin-left:auto}.kid-picker{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.kid-chip{min-height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-size:15px;font-weight:600;color:var(--muted);cursor:pointer}.kid-chip-active{background:var(--brand);border-color:var(--brand);color:#fff}.task-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.task-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.task-row:last-child{border-bottom:none}.task-row-editing{display:block;background:#f7faf8;border-radius:10px;padding:12px;margin:6px 0;border:1px solid var(--line)}.task-info{display:flex;flex-direction:column;gap:4px;min-width:0}.task-name{font-weight:600;font-size:15px;overflow-wrap:anywhere}.task-meta{display:flex;align-items:center;gap:8px}.chip{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:var(--bg);border-radius:999px;padding:3px 9px}.task-amount{color:var(--green);font-weight:700;font-size:14px}.task-actions{display:flex;gap:6px;flex-shrink:0}.task-row-done .task-name{color:var(--muted)}.done-badge{display:inline-flex;align-items:center;min-height:40px;padding:0 12px;border-radius:10px;background:#e7f6ec;color:var(--green);font-weight:700;font-size:13.5px}.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:10px}.dash-kid{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:12px;padding:12px;min-width:0}.dash-kid-name{font-weight:700;font-size:15px}.dash-row{display:flex;align-items:baseline;justify-content:space-between;gap:6px}.dash-label{font-size:12px;color:var(--muted);font-weight:600}.dash-value{font-weight:700;font-size:14px}.dash-row-balance{border-top:1px dashed var(--line);padding-top:6px}.dash-balance{color:var(--green);font-size:16px}.saved-note{color:var(--green);font-size:13.5px;font-weight:600;margin:0}.btn-markpaid{width:100%;min-height:44px;margin-top:8px;font-size:14px}.btn-venmo{display:block;width:100%;min-height:44px;margin-top:8px;padding:0 14px;line-height:44px;text-align:center;text-decoration:none;background:#3d95ce;border-color:#3d95ce;color:#fff;font-size:14px;font-weight:600}.venmo-add-prompt{margin:8px 0 0;font-size:12.5px;background:#fff7e6;border:1px solid #f3d9a4;border-radius:10px;padding:8px 10px;color:#7a5300}.kid-venmo-link{margin-left:auto;font-size:12.5px}.kid-venmo-edit{display:flex;flex-wrap:wrap;gap:6px;width:100%;margin-top:6px}.kid-venmo-edit input{flex:1;min-width:120px;min-height:40px;padding:0 10px;border:1px solid var(--line);border-radius:10px;font-size:16px}.kid-venmo-card{margin-top:12px}.kid-venmo-saved{margin:0 0 10px;font-size:13.5px}.kid-venmo-form{display:flex;gap:8px}.kid-venmo-form input{flex:1;min-width:0;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:10px;font-size:16px}.payout-toggle{margin-top:8px;font-size:13px;align-self:flex-start}.payout-history{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.payout-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:13.5px;padding:4px 0;border-bottom:1px dashed var(--line)}.payout-amount{font-weight:700;color:var(--green)}.payout-date{color:var(--muted);font-size:12.5px}.kid-cashout{margin-top:18px}.kid-cashout-title{font-size:16px;margin:0 0 8px}.kid-cashout .payout-amount{color:var(--ink)}.push-state{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--bg);border-radius:999px;padding:4px 10px}.push-state-on{color:var(--green);background:#e7f6ec}.push-blurb{margin:0 0 8px}.push-ios-note{margin:0 0 12px;font-size:12.5px;line-height:1.45;background:#fff7e6;border:1px solid #f3d9a4;border-radius:10px;padding:9px 11px;color:#7a5300}.kid-mode-btn{width:100%;margin-top:14px;background:#fff7e6;border-color:#f3d9a4;color:#8a5a00;font-size:16px}.kid-select-list{display:flex;flex-direction:column;gap:10px}.kid-select-btn{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:var(--card);font-size:18px;font-weight:700;color:var(--ink);cursor:pointer;text-align:left}.kid-select-btn:not(:disabled):active{background:#e7f6ec}.kid-select-disabled{opacity:.6;cursor:default}.kid-select-btn small{display:block;font-size:12.5px;font-weight:500;color:var(--muted)}.pin-heading{text-align:center}.pin-dots{display:flex;justify-content:center;gap:14px;margin:10px 0 16px}.pin-dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--line);background:transparent}.pin-dot-filled{background:var(--brand);border-color:var(--brand)}.pin-error{text-align:center;margin-bottom:10px}.pinpad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:280px;margin:0 auto}.pinpad-btn{min-height:64px;border:1px solid var(--line);border-radius:14px;background:var(--card);font-size:24px;font-weight:700;color:var(--ink);cursor:pointer;touch-action:manipulation}.pinpad-btn:not(:disabled):active{background:#e7f6ec}.pinpad-back{font-size:20px}.pinpad-spacer{min-height:64px}.kid-page{padding-bottom:24px}.kid-greeting{font-size:30px;margin:16px 0 12px}.kid-total-card{display:flex;flex-direction:column;align-items:center;gap:2px;background:linear-gradient(135deg,var(--brand),#1c8f4f);color:#fff;border-radius:20px;padding:18px 16px 16px;margin-bottom:18px;box-shadow:0 8px 20px #2f6df640}.kid-total-label{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;opacity:.85}.kid-total-amount{font-size:44px;font-weight:800;line-height:1.1}.kid-total-sub{font-size:13.5px;opacity:.9}.kid-balance-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin-top:12px;padding:10px 14px;border-radius:12px;background:#ffffff29}.kid-balance-label{font-size:13.5px;font-weight:700}.kid-balance-amount{font-size:20px;font-weight:800}.kid-empty{text-align:center;padding:24px 0}.chore-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.chore-card{position:relative;display:flex;align-items:center;gap:14px;width:100%;min-height:76px;padding:12px 16px;border:2px solid var(--line);border-radius:18px;background:var(--card);cursor:pointer;text-align:left;touch-action:manipulation;transition:background .15s ease,border-color .15s ease}.chore-card:not(:disabled):active{background:#e7f6ec;border-color:var(--brand)}.chore-done{background:#e9f8ef;border-color:#bfe8cd;cursor:default}.chore-check{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:3px solid var(--line);background:#fff;color:#fff;font-size:22px;font-weight:800;flex-shrink:0;transition:background .15s ease,border-color .15s ease}.chore-check-done{background:var(--green);border-color:var(--green)}.chore-info{display:flex;flex-direction:column;gap:3px;min-width:0}.chore-name{font-size:17px;font-weight:700;overflow-wrap:anywhere}.chore-done .chore-name{color:#3c6b4d}.chore-amount{font-size:15px;font-weight:700;color:var(--green)}.chore-just-done{animation:chore-pop .45s ease}@keyframes chore-pop{0%{transform:scale(1)}35%{transform:scale(1.04)}70%{transform:scale(.99)}to{transform:scale(1)}}.chore-burst{position:absolute;right:16px;top:50%;font-size:26px;animation:burst-float 1.3s ease forwards;pointer-events:none}@keyframes burst-float{0%{transform:translateY(-50%) scale(.4);opacity:0}25%{transform:translateY(-70%) scale(1.35);opacity:1}to{transform:translateY(-160%) scale(1);opacity:0}}
