:root{--cream:#fbf3da;--paper:#fffdf6;--ink:#4a3c28;--ink-soft:#9c8a68;--sage:#6fa96a;--sage-dark:#4f8049;--terracotta:#f2a154;--terracotta-dark:#d9822f;--sky:#8fd0e0;--sun:#f6cf58;--error:#d1583c;--error-bg:#fbe7de;--error-line:#f0c8b2;--line:#ecdfb8;--bezel:#4a3c2838;--shadow:0 2px 0 #4a3c280f, 0 4px 14px #4a3c2814;--shadow-lift:0 4px 0 #4a3c2814, 0 12px 28px #4a3c2824;--radius:20px;--radius-sm:14px;--font-body:"Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-display:"Baloo 2", var(--font-body)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,[contenteditable]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--sage);outline-offset:2px}body{font-family:var(--font-body);color:var(--ink);-webkit-font-smoothing:antialiased;background-color:var(--cream);background-image:radial-gradient(circle, #6fa96a29 1.5px, transparent 1.6px), linear-gradient(180deg, #d7ecdd 0%, #eef4d9 32%, var(--cream) 62%, var(--cream) 100%);background-size:26px 26px,100% 100%;background-attachment:fixed,fixed;min-height:100vh;margin:0}h1,h2,h3,.tab,.bottom-nav-item,.btn,.task-title,.room-card .room-name,.rooms-toolbar h2,.week-strip-weekday,.focus-readout,.focus-session-title,.focus-detail-card h2,.ledger-balance,.modal h3,.attitude-btn-name{font-family:var(--font-display)}.app-shell{max-width:720px;margin:0 auto;padding:0 16px 80px}.login-screen{justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login-card{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lift);text-align:center;width:100%;max-width:360px;padding:40px 32px}.login-card .brand-mark{font-size:48px}.login-card h1{color:var(--ink);margin:10px 0 0;font-size:26px;font-weight:800}.login-card .tagline{margin:6px 0 28px}.login-error{color:var(--error);margin:-14px 0 18px;font-size:13.5px;font-weight:600;display:none}.login-error.visible{display:block}.btn-google{background:var(--ink);color:#fff;justify-content:center;align-items:center;gap:10px;width:100%;padding:12px 18px;text-decoration:none;display:inline-flex}.btn-google:hover{filter:brightness(1.1)}.dev-login-btn{width:100%;margin-top:10px}.google-icon{width:20px;height:20px;color:var(--ink);background:#fff;border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:800;display:inline-flex}.profile-card{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;max-width:360px;margin:0 auto 20px;padding:32px 24px}.profile-footer{text-align:center;margin-top:24px}.build-version{color:var(--ink-soft);opacity:.6;margin:10px 0 0;font-size:11px}.subtle-link-danger{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;padding:8px;font-size:13px;text-decoration:underline}.subtle-link-danger:hover{color:var(--error)}.profile-avatar{background:var(--sage);color:#fff;width:64px;height:64px;box-shadow:0 3px 0 var(--bezel);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 14px;font-size:20px;font-weight:700;display:flex}.profile-card h2{margin:0;font-size:19px}.profile-email{color:var(--ink-soft);margin:4px 0;font-size:14px}.profile-plan{color:var(--ink-soft);margin:0;font-size:13px;font-weight:600}.app-header{grid-template-columns:minmax(44px,auto) 1fr minmax(44px,auto);align-items:center;gap:12px;padding:28px 4px 16px;display:grid}.header-action-btn{border:1.5px solid var(--line);background:var(--paper);width:44px;height:44px;color:var(--ink-soft);cursor:pointer;box-shadow:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s,transform .1s;display:flex}.header-action-btn:hover{background:var(--cream);color:var(--ink)}.header-action-btn:active{transform:scale(.94)}.header-emoji-btn{background:0 0;border:none;font-size:32px;line-height:1}.header-emoji-btn:hover{background:0 0}.header-profile-switch-btn{width:auto;min-width:44px;height:44px;color:var(--ink);border-radius:22px;justify-self:start;gap:6px;padding:0 12px;font-size:15px;font-weight:700}.header-profile-emoji{font-size:20px;line-height:1}.header-profile-name{text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.header-balance-btn{width:auto;min-width:44px;color:var(--ink);border-radius:22px;justify-self:end;gap:6px;padding:0 14px;font-size:15px;font-weight:700}.header-balance-icon{font-size:18px;line-height:1}.header-balance-btn.crediting{animation:.55s balance-credit-pulse}@keyframes balance-credit-pulse{0%{transform:scale(1)}30%{transform:scale(1.16)}to{transform:scale(1)}}.brand-mark{font-size:40px;line-height:1}.tagline{color:var(--ink-soft);margin:2px 0 0;font-size:14px}.screen-title{letter-spacing:-.01em;color:var(--ink);text-align:center;grid-column:2;margin:0;font-size:20px;font-weight:700}.household-switcher{border-radius:var(--radius-sm);border:1.5px solid var(--line);background:var(--paper);width:100%;color:var(--ink);margin-top:12px;margin-bottom:20px;padding:10px 12px;font-size:14px;font-weight:600}.household-picker-trigger{border-radius:var(--radius-sm);border:1.5px solid var(--line);background:var(--paper);width:100%;color:var(--ink);text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;margin-bottom:20px;padding:12px 14px;font-family:inherit;font-size:14px;font-weight:600;display:flex}.household-picker-trigger:hover{background:var(--cream)}.household-picker-trigger-arrow{color:var(--ink-soft);font-size:16px}.tabs,.subtabs{background:var(--paper);border:1.5px solid var(--line);box-shadow:var(--shadow);border-radius:999px;gap:8px;margin-bottom:20px;padding:6px;display:flex}.tab{min-height:44px;color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-radius:999px;flex:1;justify-content:center;align-items:center;padding:10px 16px;font-size:15px;font-weight:600;transition:background .2s,color .2s;display:flex}.tab.active{background:var(--sage);color:#fff}.bottom-nav{z-index:40;background:var(--paper);border-top:1.5px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom));gap:4px;display:none;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 10px #4a3c2814}.bottom-nav-item{min-height:48px;color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-radius:14px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-family:inherit;font-size:13px;font-weight:600;transition:background .2s,color .2s;display:flex}.bottom-nav-icon{font-size:22px;line-height:1}.bottom-nav-item.active{color:var(--sage-dark);background:#e2f2df}.tab-panel{animation:.25s fadein}@keyframes fadein{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.week-strip{margin-bottom:18px}.week-strip-header{text-align:center;cursor:pointer;margin-bottom:12px}.week-strip-collapse{grid-template-rows:0fr;transition:grid-template-rows .28s;display:grid;overflow:hidden}.week-strip-collapse.expanded{grid-template-rows:1fr}.week-strip-collapse>.week-strip-viewport{min-height:0}.week-strip-weekday{color:var(--ink);font-size:20px;font-weight:700}.week-strip-month{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-top:2px;font-size:12.5px;font-weight:700}.week-strip-viewport{touch-action:pan-y;overflow:hidden}.week-strip-track{width:300%;display:flex}.week-strip-week{flex-shrink:0;gap:6px;width:33.3333%;display:flex}.week-strip-day{border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);min-width:0;min-height:44px;box-shadow:var(--shadow);color:var(--ink);cursor:pointer;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;padding:8px 4px;font-family:inherit;transition:background .2s,color .2s,border-color .2s;display:flex}.week-strip-day--ghost{cursor:default}.week-strip-day-letter{letter-spacing:.02em;text-transform:uppercase;color:var(--ink-soft);font-size:11px;font-weight:700}.week-strip-day-number{font-size:15px;font-weight:700}.week-strip-day-dot{background:var(--terracotta);opacity:0;border-radius:50%;width:4px;height:4px;transition:opacity .2s,background .2s}.week-strip-day-dot.visible{opacity:1}.week-strip-day.selected{background:var(--sage);border-color:var(--sage)}.week-strip-day.selected .week-strip-day-letter,.week-strip-day.selected .week-strip-day-number{color:#fff}.week-strip-day.selected .week-strip-day-dot{background:#ffffffd9}.task-groups{flex-direction:column;gap:18px;display:flex}.task-groups+.task-groups{margin-top:18px}.task-groups+.rooms-toolbar{margin-top:24px}.task-group-header{align-items:center;gap:8px;margin:0 0 8px;display:flex}.task-group-header .dot{border-radius:50%;width:10px;height:10px}.task-group-pill{text-transform:uppercase;letter-spacing:.03em;cursor:pointer;background:var(--paper);border:none;border:1.5px solid var(--line);color:var(--ink-soft);border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:700;transition:opacity .15s;display:flex}.task-group-pill:hover{opacity:.85}.task-group-pill.morning{background:var(--sun);border-color:var(--sun);color:var(--ink)}.task-group-pill.afternoon{background:var(--terracotta);border-color:var(--terracotta);color:#fff}.task-group-pill.evening{background:var(--ink);border-color:var(--ink);color:var(--cream)}.task-group-pill-icon{font-size:14px}.task-group-pill-chevron{transition:transform .2s}.task-group-pill.collapsed .task-group-pill-chevron{transform:rotate(-90deg)}.task-group-add-btn{background:var(--paper);border:1.5px solid var(--line);width:28px;height:28px;color:var(--ink);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;transition:background .15s,transform .1s;display:flex}.task-group-add-btn:hover{background:var(--cream)}.task-group-add-btn:active{transform:scale(.92)}.task-group-empty-add{border:1.5px dashed var(--line);border-radius:var(--radius-sm);width:100%;color:var(--ink-soft);cursor:pointer;text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:12px;padding:16px;font-family:inherit;font-size:14px;font-weight:600;transition:border-color .15s,background .15s;display:flex}.task-group-empty-add:hover{border-color:var(--sage);background:#6fa96a14}.task-group-empty-add-icon{background:var(--sage);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.task-list{flex-direction:column;gap:8px;display:flex}.task-list-item.dragging{z-index:5;border-radius:var(--radius-sm);position:relative;box-shadow:0 10px 24px #0000002e}.task-list-item.dragging .task-card{box-shadow:none}.task-list--grouped{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow);gap:0;overflow:hidden}.task-list--grouped .task-card{box-shadow:none;border:none;border-bottom:1.5px solid var(--line);background:0 0;border-radius:0}.task-list--grouped .task-card:last-child{border-bottom:none}.task-list--grouped .task-card:active{background:var(--cream);transform:none}.task-card{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--radius-sm);align-items:stretch;gap:12px;padding:12px 14px;transition:transform .15s,opacity .3s;display:flex;box-shadow:0 4px 14px #4a3c2814}.task-card:active{transform:scale(.98)}.task-card.reorderable{touch-action:none}.task-card.done{opacity:.55}.task-card.skipped{opacity:.6;background:var(--cream)}.task-check{width:40px;height:40px;box-shadow:0 2px 0 var(--line), 0 3px 6px #0000001a;cursor:pointer;color:var(--sage);background:linear-gradient(#fff 0%,#f1f3ef 100%);border:none;border-radius:12px;flex-shrink:0;justify-content:center;align-self:center;align-items:center;transition:all .15s;display:flex}.task-check:hover{background:#eaf6e6}.task-check:active{box-shadow:0 1px 0 var(--line), 0 2px 4px #0000001a;transform:translateY(1px)}.task-card.done .task-check{background:var(--sage);color:#fff;transform:translateY(2px);box-shadow:inset 0 1px 3px #0003}.task-check.pop{animation:.35s pop}.task-check:disabled{opacity:.5;cursor:not-allowed}.task-check:disabled:hover{background:linear-gradient(#fff 0%,#f1f3ef 100%)}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.35)}to{transform:scale(1)}}.task-side{flex-shrink:0;align-self:center;align-items:center;gap:10px;display:flex}.task-tally-count{color:var(--sage);font-size:13px;font-weight:700}.task-points{align-items:center;gap:3px;font-size:15px;font-weight:700;display:flex}.task-points-value{color:var(--ink-soft)}.task-points-icon{font-size:16px}.task-icon{flex-shrink:0;justify-content:center;align-items:center;width:32px;font-size:22px;line-height:1;display:flex}.task-info{flex:1;min-width:0}.task-title{color:var(--ink);font-size:18px;font-weight:700}.task-card.done .task-title{color:var(--ink-soft);text-decoration:line-through}.task-card.skipped .task-title{color:var(--ink-soft);-webkit-text-decoration:line-through dotted;text-decoration:line-through dotted}.task-meta{color:var(--ink-soft);margin-top:2px;font-size:12.5px}.task-skipped-tag{color:var(--terracotta);margin-top:2px;font-size:12.5px;font-weight:600}.task-room-tag{align-items:center;gap:4px;display:inline-flex}.task-edit-btn{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:4px 6px;font-size:16px}.task-edit-btn:hover{background:var(--line)}.empty-state{text-align:center;color:var(--ink-soft);background:var(--paper);border:1.5px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:40px 20px}.empty-state .emoji{margin-bottom:8px;font-size:40px;display:block}.all-done-banner{text-align:center;border:1.5px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--sage-dark);background:linear-gradient(135deg,#dff3e4,#fdf1c7);padding:28px 20px;font-weight:700}.all-done-banner .emoji{margin-bottom:6px;font-size:34px;display:block}.rooms-toolbar{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.rooms-toolbar h2{margin:0;font-size:18px}.balance-total{font-family:var(--font-display);font-size:20px;font-weight:700}.rooms-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}.room-card{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--radius);text-align:center;box-shadow:var(--shadow);cursor:pointer;border-top:4px solid var(--sage);padding:18px 14px;transition:transform .15s,box-shadow .15s}.room-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}.room-card .room-icon{margin-bottom:8px;font-size:30px;display:block}.room-card .room-name{font-size:14.5px;font-weight:700}.room-card .room-count{color:var(--ink-soft);margin-top:4px;font-size:12px}.reward-card-actions{flex-direction:column;align-items:stretch;gap:6px;margin-top:10px;display:flex}.reward-card-actions .btn{width:100%;padding:6px 10px;font-size:12.5px}.reward-card-unavailable{opacity:.55;border-top-color:var(--line)}.reward-card-reason{color:var(--terracotta-dark);margin-top:4px;font-size:11px}.room-card.add-tile{appearance:none;border:2px dashed var(--line);width:100%;box-shadow:none;color:var(--ink-soft);font:inherit;background:0 0}.room-card.add-tile:hover:not(:disabled){border-color:var(--sage);color:var(--sage-dark);box-shadow:none;background:#6fa96a14;transform:translateY(-2px)}.room-card.add-tile:disabled{opacity:.5;cursor:not-allowed}.reward-list,.member-list{flex-direction:column;gap:8px;display:flex}.reward-row,.member-row{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:12px;padding:12px 14px;transition:transform .15s,box-shadow .15s,opacity .3s;display:flex;box-shadow:0 4px 14px #4a3c2814}.reward-row:hover,.member-row:hover{box-shadow:var(--shadow-lift)}.reward-row:active,.member-row:active{transform:scale(.98)}.reward-row-icon,.member-row-icon{flex-shrink:0;justify-content:center;align-items:center;width:32px;font-size:24px;line-height:1;display:flex}.reward-row-info,.member-row-info{flex:1;min-width:0}.reward-row-name,.member-row-name{white-space:nowrap;font-size:14.5px;font-weight:700;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 24px),#0000 100%);mask-image:linear-gradient(90deg,#000 calc(100% - 24px),#0000 100%)}.reward-row-meta,.member-row-meta{color:var(--ink-soft);margin-top:2px;font-size:12px}.reward-row-actions{flex-direction:column;flex-shrink:0;align-items:stretch;gap:4px;display:flex}.reward-row-actions .btn{white-space:nowrap;padding:6px 12px;font-size:12.5px}.reward-row-reason{color:var(--terracotta-dark);text-align:right;max-width:150px;font-size:11px}.reward-row-unavailable{opacity:.55}.reward-row.add-row,.member-row.add-row{appearance:none;border:2px dashed var(--line);width:100%;box-shadow:none;color:var(--ink-soft);font:inherit;text-align:left;background:0 0}.reward-row.add-row:hover:not(:disabled),.member-row.add-row:hover:not(:disabled){border-color:var(--sage);color:var(--sage-dark);box-shadow:none;background:#6fa96a14}.reward-row.add-row:disabled,.member-row.add-row:disabled{opacity:.5;cursor:not-allowed}.room-detail-header{align-items:center;gap:12px;margin-bottom:14px;display:flex}.room-detail-header .room-icon-big{font-size:36px}.room-detail-header h2{margin:0;font-size:22px}.room-detail-toolbar{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.room-detail-back{margin-bottom:14px}.btn{cursor:pointer;box-shadow:0 3px 0 var(--bezel);border:none;border-radius:999px;padding:10px 18px;font-size:14px;font-weight:700;transition:filter .15s,transform .1s,box-shadow .1s}.btn:active{box-shadow:0 1px 0 var(--bezel);transform:translateY(2px)}.btn-primary{background:var(--terracotta);color:#fff}.btn-primary:hover{filter:brightness(1.05)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.btn-ghost{background:var(--paper);color:var(--ink);border:1.5px solid var(--line);box-shadow:none}.btn-ghost:active{box-shadow:none;transform:scale(.97)}.btn-ghost:hover{background:var(--cream)}.btn-danger{background:var(--error);color:#fff}.btn-danger-ghost{color:var(--error);border:1.5px solid var(--error-line);box-shadow:none;background:0 0}.btn-danger-ghost:active{box-shadow:none;transform:scale(.97)}.btn-danger-ghost:hover{background:var(--error-bg)}.modal-backdrop{z-index:50;background:#4a3c286b;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}.modal-backdrop.open{display:flex}.modal{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--radius);width:100%;max-width:420px;max-height:90vh;padding:22px;animation:.2s modalIn;overflow-y:auto}.modal-small{max-width:340px}@keyframes modalIn{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:none}}.modal h3{margin:0 0 16px;font-size:18px}.modal-header-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.modal-header-row h3{margin:0 0 16px}.modal-close-btn{background:var(--line);width:30px;height:30px;color:var(--ink);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-bottom:16px;font-size:17px;line-height:1;display:flex}.modal-close-btn:hover{filter:brightness(.95)}.title-row{align-items:stretch;gap:8px;display:flex}.title-row .title-input{flex:1;min-width:0}.icon-picker-trigger{border-radius:var(--radius-sm);border:1.5px solid var(--line);background:var(--cream);cursor:pointer;flex-shrink:0;width:44px;font-size:20px}.icon-picker-trigger:hover{border-color:var(--sage);background:#e2f2df}.btn-block{width:100%}.modal p{color:var(--ink-soft);font-size:14px}.modal form{flex-direction:column;gap:14px;display:flex}.task-form{background:var(--paper);border-radius:var(--radius);flex-direction:column;gap:14px;padding:20px 16px;display:flex}.modal label,.task-form label{color:var(--ink-soft);flex-direction:column;gap:6px;font-size:13.5px;font-weight:600;display:flex}.modal input[type=text],.modal input[type=date],.modal input[type=number],.modal select,.task-form input[type=text],.task-form input[type=date],.task-form input[type=number],.task-form select{border-radius:var(--radius-sm);border:1.5px solid var(--line);color:var(--ink);background:var(--cream);padding:10px 12px;font-family:inherit;font-size:15px}.modal input:focus,.modal select:focus,.task-form input:focus,.task-form select:focus{border-color:var(--sage);outline:none}.modal-actions{justify-content:flex-end;gap:8px;margin-top:6px;display:flex}.modal-actions-column{flex-direction:column;align-items:stretch}.conditional-field{flex-direction:column;gap:6px;display:none}.conditional-field.visible{display:flex}.field-row{border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--cream)}.field-row-header{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:10px 12px;font-family:inherit;display:flex}.field-row-static{align-items:center;gap:10px;padding:10px 12px;display:flex}.field-row-static .balance-stepper{flex-shrink:0;gap:4px}.field-row-static .balance-stepper-btn{width:34px;height:34px;font-size:18px}.field-row-static input.balance-stepper-input{background:0 0;border:none;width:44px;padding:6px 4px;font-size:16px}.field-row-icon{text-align:center;flex-shrink:0;width:24px;font-size:18px}.field-row-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.field-row-label{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);font-size:11.5px;font-weight:700}.field-row-value{color:var(--ink);font-size:15px;font-weight:600}.field-row-chevron{color:var(--ink-soft);flex-shrink:0;transition:transform .2s}.field-row.expanded .field-row-chevron{transform:rotate(-180deg)}.field-row-body{grid-template-rows:0fr;transition:grid-template-rows .28s;display:grid;overflow:hidden}.field-row.expanded .field-row-body{grid-template-rows:1fr}.field-row-body-inner{flex-direction:column;gap:10px;min-height:0;padding:0 12px;display:flex}.field-row.expanded .field-row-body-inner{padding:0 12px 12px}.field-error{color:var(--error);margin:-6px 0 0;font-size:12.5px;font-weight:600}.interval-row{gap:8px;display:flex}.interval-row input[type=number]{flex-shrink:0;width:80px}.interval-row select{flex:1}.icon-picker,.color-picker{flex-wrap:wrap;gap:8px;display:flex}.icon-option{background:var(--cream);cursor:pointer;border:2px solid #0000;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;display:flex}.icon-option.selected{border-color:var(--sage);background:#e2f2df}.color-option{cursor:pointer;border:2px solid #0000;border-radius:50%;width:30px;height:30px}.color-option.selected{border-color:var(--ink)}.weekday-picker{flex-wrap:wrap;gap:6px;display:flex}.weekday-btn{border:1.5px solid var(--line);background:var(--cream);width:38px;height:38px;color:var(--ink-soft);cursor:pointer;border-radius:50%;font-size:12.5px;font-weight:700}.weekday-btn.selected{background:var(--sage);border-color:var(--sage);color:#fff}.household-picker-check{color:var(--sage-dark);flex-shrink:0}.cooldown-stepper{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.stepper-btn{border:1.5px solid var(--line);background:var(--cream);width:34px;height:34px;color:var(--ink-soft);cursor:pointer;border-radius:50%;font-size:18px;font-weight:700;line-height:1}.stepper-btn:disabled{opacity:.45;cursor:not-allowed}.cooldown-amount{text-align:center;min-width:20px;font-size:16px;font-weight:700}.contributor-list{flex-direction:column;gap:8px;margin:10px 0;display:flex}.contributor-row{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--radius);align-items:center;gap:10px;padding:8px 10px;display:flex}.contributor-name{flex:1;font-size:13.5px;font-weight:700}.contributor-remove{padding:4px 8px;font-size:14px}.contributor-shortfall{font-weight:700}.contributor-shortfall-over{color:var(--terracotta-dark)}.contributor-shortfall-complete{color:var(--sage-dark)}.room-picker{flex-wrap:wrap;gap:6px;display:flex}.room-picker-btn{border:1.5px solid var(--line);background:var(--cream);color:var(--ink-soft);cursor:pointer;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:600}.room-picker-btn.selected{background:var(--sage);border-color:var(--sage);color:#fff}.room-picker-btn:disabled{opacity:.45;cursor:not-allowed}.room-picker-all{border-style:dashed}.room-picker-hint{color:var(--terracotta-dark);margin:4px 0 0;font-size:12.5px}.member-filter{scrollbar-width:none;flex-wrap:nowrap;gap:6px;margin-bottom:18px;display:flex;overflow-x:auto}.member-filter::-webkit-scrollbar{display:none}.member-filter .room-picker-btn{flex:none}.room-filter{scrollbar-width:none;flex-wrap:nowrap;gap:6px;margin-bottom:18px;display:flex;overflow-x:auto}.room-filter::-webkit-scrollbar{display:none}.room-filter .room-picker-btn{flex:none}.toast{background:var(--ink);color:#fff;box-shadow:var(--shadow-lift);opacity:1;z-index:100;text-align:center;border-radius:999px;max-width:90vw;padding:12px 20px;font-size:14.5px;font-weight:600;position:fixed;bottom:28px;left:50%;transform:translate(-50%)translateY(0)}.toast.has-action{align-items:center;gap:14px;display:flex}.toast-enter-active,.toast-leave-active{transition:opacity .25s,transform .25s}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(-50%)translateY(20px)}.toast-action{background:var(--sage);color:#fff;cursor:pointer;border:none;border-radius:999px;flex-shrink:0;padding:6px 14px;font-size:13px;font-weight:700}.confetti-layer{pointer-events:none;z-index:90;position:fixed;inset:0;overflow:hidden}.confetti-piece{opacity:.9;width:8px;height:8px;animation:linear forwards confetti-fall;position:absolute;top:-10px}@keyframes confetti-fall{to{opacity:0;transform:translateY(110vh)rotate(360deg)}}.reward-icon-pulse{animation:.7s reward-icon-pulse;display:inline-block}@keyframes reward-icon-pulse{0%{filter:drop-shadow(0 0 #f0c94a00);transform:scale(1)}40%{filter:drop-shadow(0 0 14px #f0c94ad9);transform:scale(1.4)}to{filter:drop-shadow(0 0 #f0c94a00);transform:scale(1)}}.coin-layer{pointer-events:none;z-index:95;position:fixed;inset:0;overflow:hidden}.coin-piece{font-size:20px;animation:ease-out forwards coin-fly;position:absolute;transform:translate(-50%,-50%)}@keyframes coin-fly{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}60%{transform:translate(calc(-50% + var(--dx) * .7), calc(-50% + var(--dy) * .7 - 24px)) scale(.9);opacity:1}to{transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(.4);opacity:0}}.reward-progress-header{text-align:center;margin-bottom:18px;position:relative}.reward-progress-queue-indicator{color:var(--ink-soft);background:var(--cream);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;position:absolute;top:0;right:0}.reward-progress-avatar{background:var(--sage);color:#fff;width:56px;height:56px;box-shadow:0 3px 0 var(--bezel);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 10px;font-size:26px;display:flex}.reward-progress-header h3{margin:0}.reward-progress-subtitle{color:var(--ink-soft);margin:4px 0 0;font-size:13.5px}.reward-progress-bars{flex-direction:column;gap:16px;display:flex}.reward-progress-bar-header{align-items:center;gap:10px;margin-bottom:8px;display:flex}.reward-progress-icon{font-size:22px}.reward-progress-meta{flex-direction:column;flex:1;min-width:0;display:flex}.reward-progress-name{font-size:14px;font-weight:700}.reward-progress-remaining{color:var(--ink-soft);font-size:12.5px}.reward-progress-track{background:var(--cream);border:1.5px solid var(--line);border-radius:999px;width:100%;height:14px;overflow:hidden}.reward-progress-fill{background:linear-gradient(90deg, var(--terracotta), var(--sun));border-radius:999px;height:100%;transition:width .8s .45s}.reward-progress-fill--glow{animation:1.6s ease-in-out infinite reward-progress-glow}@keyframes reward-progress-glow{0%,to{box-shadow:0 0 6px #f6cf5880}50%{box-shadow:0 0 18px #f6cf58f2}}.reward-progress-redeem{width:100%;margin-top:8px;padding:6px 10px;font-size:12.5px;display:block}.task-card.clickable{cursor:pointer}.task-card.clickable:hover{box-shadow:var(--shadow-lift)}.task-card-chevron{color:var(--ink-soft);flex-shrink:0}.module-status{flex-shrink:0;align-items:center;gap:6px;display:flex}.pill{white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;line-height:1.3;display:inline-block}.pill--on{color:var(--sage-dark);background:#e1f2df}.pill--off{background:var(--line);color:var(--ink-soft)}.pill--plus{color:var(--terracotta-dark);background:#fdecd2}.focus-overlay{z-index:45;background:var(--cream);justify-content:center;padding:24px 16px 40px;display:flex;position:fixed;inset:0;overflow-y:auto}.focus-overlay-inner{width:100%;max-width:480px}.focus-detail-card{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;margin-bottom:18px;padding:28px 22px}.focus-detail-icon{margin-bottom:10px;font-size:40px;display:block}.focus-detail-card h2{margin:0 0 8px;font-size:20px}.focus-detail-meta{color:var(--ink-soft);margin:2px 0;font-size:13.5px}.focus-session-actions{flex-direction:column;gap:10px;display:flex}.focus-duration-label{color:var(--ink-soft);text-align:center;margin:0 0 12px;font-size:14px}.task-occurrence-list{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--radius-sm);margin-bottom:18px;padding:14px 16px}.task-occurrence-list-title{margin:0 0 8px;font-size:14px}.task-occurrence-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding:6px 0;font-size:13.5px;display:flex}.task-occurrence-row:first-of-type{border-top:none}.focus-preset-picker{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:16px;display:flex}.focus-session{text-align:center;flex-direction:column;align-items:center;padding:8px 0 24px;display:flex}.focus-session-back{align-self:flex-start;margin-bottom:18px}.focus-session-title{margin:0 0 24px;font-size:20px}.focus-ring-wrap{width:220px;height:220px;margin-bottom:20px;position:relative}.focus-ring{width:100%;height:100%;transform:rotate(-90deg)}.focus-ring-track{fill:none;stroke:var(--line);stroke-width:14px}.focus-ring-fill{fill:none;stroke:var(--terracotta);stroke-width:14px;stroke-linecap:round;transition:stroke-dashoffset .5s linear}.focus-ring-fill--paused{stroke:var(--ink-soft)}.focus-ring-fill--indeterminate{stroke:var(--sage);transform-box:fill-box;transform-origin:50%;transition:none;animation:1.6s linear infinite focus-ring-spin}@keyframes focus-ring-spin{to{transform:rotate(360deg)}}.focus-ring-icon{justify-content:center;align-items:center;font-size:52px;display:flex;position:absolute;inset:0}.focus-readout{color:var(--ink);letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:44px;font-weight:700}.focus-readout-caption{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;margin:4px 0 24px;font-size:13px;font-weight:600}.focus-session-controls{flex-direction:column;align-items:center;gap:16px;display:flex}.focus-adjust-row{align-items:center;gap:16px;display:flex}.focus-pause-btn{background:var(--terracotta);color:#fff;cursor:pointer;width:64px;height:64px;box-shadow:0 3px 0 var(--bezel);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:22px;transition:filter .15s,transform .1s,box-shadow .1s;display:flex}.focus-pause-btn:hover{filter:brightness(1.1)}.focus-pause-btn:active{box-shadow:0 1px 0 var(--bezel);transform:translateY(2px)}.focus-adjust-btn{border:1.5px solid var(--line);background:var(--paper);min-width:52px;height:40px;color:var(--ink);cursor:pointer;border-radius:999px;padding:0 14px;font-size:14px;font-weight:700;transition:background .15s}.focus-adjust-btn:hover{background:var(--cream)}.focus-adjust-btn:active{transform:scale(.95)}.focus-completed{flex-direction:column;align-items:center;gap:14px;display:flex}.focus-completed-summary{color:var(--ink);margin:0;font-size:15px;font-weight:600}.focus-completed-actions{flex-direction:column;gap:10px;width:100%;max-width:280px;display:flex}.ledger-member-filter{margin-top:0;margin-bottom:18px}.ledger-amount{white-space:nowrap;padding-left:10px;font-size:14px;font-weight:700}.ledger-amount--positive{color:var(--sage-dark)}.ledger-amount--negative{color:var(--error)}.ledger-balance{color:var(--ink);margin:0 0 16px;font-size:28px;font-weight:700}.balance-statement{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow);overflow:hidden}.balance-statement-row{border-bottom:1.5px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.balance-statement-row:last-child{border-bottom:none}.balance-statement-row--start{color:var(--ink-soft);font-size:14px}.balance-statement-row--final{background:var(--cream);justify-content:center;font-size:18px;font-weight:700}.balance-statement-empty{text-align:center;color:var(--ink-soft);border-bottom:1.5px solid var(--line);padding:20px 14px;font-size:14px}.member-detail-taskcount{margin:0 0 14px}.attitude-buttons{flex-wrap:wrap;gap:10px;margin-bottom:20px;display:flex}.attitude-btn{border:2px solid var(--line);background:var(--cream);cursor:pointer;border-radius:12px;align-items:center;gap:8px;min-height:44px;padding:10px 14px;font-size:14px;display:flex}.attitude-btn-icon{font-size:18px}.attitude-btn-name{color:var(--ink);font-weight:600}.attitude-btn-points{white-space:nowrap;font-weight:700}.attitude-btn-add{color:var(--ink-soft);background:0 0;border-style:dashed}.attitude-btn-add:hover{border-color:var(--sage);color:var(--sage-dark);background:#6fa96a14}.sign-toggle{gap:8px;display:flex}.sign-toggle-btn{border:2px solid var(--line);background:var(--cream);cursor:pointer;border-radius:10px;flex:1;min-height:44px;padding:10px 14px;font-weight:600}.sign-toggle-btn--positive.selected{border-color:var(--sage-dark);color:var(--sage-dark);background:#e2f2df}.sign-toggle-btn--negative.selected{border-color:var(--error);background:var(--error-bg);color:var(--error)}.balance-stepper{justify-content:center;align-items:center;gap:12px;display:flex}.balance-stepper-btn{background:var(--line);width:44px;height:44px;color:var(--ink);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:22px;font-weight:700;line-height:1;transition:filter .15s,transform .1s;display:flex}.balance-stepper-btn:hover{filter:brightness(.95)}.balance-stepper-btn:active{transform:scale(.95)}.balance-stepper-btn--primary{background:var(--terracotta);color:#fff}.balance-stepper-input{text-align:center;border-radius:var(--radius-sm);border:1.5px solid var(--line);width:100px;color:var(--ink);background:var(--cream);padding:10px 8px;font-family:inherit;font-size:22px;font-weight:800}@media (width<=640px){.tabs{display:none}.bottom-nav{display:flex}.app-shell{padding-bottom:calc(80px + 60px + env(safe-area-inset-bottom))}.toast{bottom:calc(118px + env(safe-area-inset-bottom))}.btn{padding:14px 18px}.btn-google{padding:13px 18px}.focus-adjust-btn{height:44px}.task-check{width:44px;height:44px}.task-edit-btn{justify-content:center;align-items:center;min-width:44px;min-height:44px;font-size:20px;display:flex}.weekday-btn{width:44px;height:44px;font-size:13px}.icon-option{width:44px;height:44px}.modal input[type=text],.modal input[type=date],.modal input[type=number],.modal select,.household-switcher{font-size:16px}.task-meta,.reward-card-actions .btn,.room-card .room-count,.room-picker-hint,.pill{font-size:13px}}@media (width<=420px){.rooms-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.focus-ring-wrap{width:180px;height:180px}.focus-ring-icon{font-size:40px}.focus-readout{font-size:36px}.bottom-nav-icon{font-size:20px}}
