:root{color-scheme:light;font-family:Inter,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#191f28;background:#f4f6f8;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink: #191f28;--muted: #6b7684;--line: #e5e8eb;--panel: #ffffff;--soft: #f6f8fa;--green: #07966b;--green-dark: #087c5b;--green-soft: #e9f8f2;--coral: #f05757;--coral-soft: #fff0ef;--navy: #23396f;--navy-soft: #edf2ff;--yellow-soft: #fff7df;--yellow-ink: #8d6519}*{box-sizing:border-box;letter-spacing:0}html,body,#root{min-height:100%;margin:0}body{min-width:320px;background:#f4f6f8}button,input,select{font:inherit}button{border:0}button:disabled{cursor:not-allowed;opacity:.56}button,a,input{-webkit-tap-highlight-color:transparent}a{color:inherit}h1,h2,p{margin-top:0}h1,h2{margin-bottom:0;overflow-wrap:anywhere;line-height:1.22}h1{font-size:30px}h2{font-size:21px}.app-shell{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:max(18px,env(safe-area-inset-top)) 0 calc(36px + env(safe-area-inset-bottom))}.topbar,.welcome-brand{display:flex;align-items:center}.topbar{gap:12px;min-height:52px;margin-bottom:18px}.app-logo,.welcome-brand img{flex:0 0 auto;width:46px;height:46px;border:1px solid #eef0f2;border-radius:8px;object-fit:cover}.brand-copy{display:grid;min-width:0;flex:1;gap:2px}.brand-copy strong{font-size:18px}.brand-copy span,.eyebrow,.section-description,.field-stack>span,.count-panel>span,.member-item span,.member-item small,.safety-copy,.toggle-row small,.privacy-note{color:var(--muted);font-size:13px}.brand-copy span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.role-label{display:inline-flex;align-items:center;min-height:32px;padding:0 10px;border:1px solid var(--line);border-radius:8px;color:var(--navy);background:#fff;font-size:13px;font-weight:700}.status-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff}.status-strip>div{display:grid;min-width:0;gap:4px;padding:15px 18px;border-right:1px solid var(--line)}.status-strip>div:last-child{border-right:0}.status-strip span{color:var(--muted);font-size:12px}.status-strip strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dashboard-grid{display:grid;gap:16px;align-items:start}.home-navigation{position:sticky;z-index:20;top:max(8px,env(safe-area-inset-top));display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;max-width:520px;margin:0 auto 18px;padding:4px;border:1px solid rgba(229,232,235,.94);border-radius:14px;background:#fffffff0;box-shadow:0 8px 24px #191f2814;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.home-navigation-item{display:flex;align-items:center;justify-content:center;min-width:0;min-height:43px;gap:7px;border-radius:10px;color:var(--muted);background:transparent;cursor:pointer;font-size:13px;font-weight:750}.home-navigation-item.active{color:#fff;background:var(--green-dark);box-shadow:0 3px 9px #077c5b33}.today-feed{display:grid;gap:16px;align-items:start}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.family-message-surface .compact-heading>svg,.encouragement-surface .compact-heading>svg{color:var(--green)}.today-message-list{display:grid;gap:9px;padding:0 20px 20px}.encouragement-description{margin:-4px 20px 14px}.optional-tool-link{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:70px;padding:12px 16px;border:1px solid var(--line);border-radius:14px;color:var(--muted);background:#ffffffb8;cursor:pointer;text-align:left}.optional-tool-link>svg:first-child{width:38px;height:38px;padding:9px;border-radius:11px;color:var(--navy);background:var(--navy-soft)}.optional-tool-link span{display:grid;gap:3px}.optional-tool-link strong{color:var(--ink);font-size:14px}.optional-tool-link small{font-size:12px}.promise-home-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:22px 20px 18px}.promise-home-heading>div{display:grid;gap:6px}.promise-home-heading h1{max-width:520px}.promise-home-heading p{margin:2px 0 0;color:var(--muted);font-size:13px;line-height:1.55}.today-task-count{display:grid;place-items:center;min-width:48px;height:36px;padding:0 10px;border-radius:999px;color:var(--green-dark);background:var(--green-soft);font-size:14px;font-weight:800}.new-promise-button{margin:0 20px 20px}.task-builder{display:grid;gap:18px;margin:0 20px 20px;padding:18px;border:1px solid #cce8de;border-radius:14px;background:linear-gradient(150deg,#f3fbf8,#fff)}.task-builder-step,.task-builder-step label{display:grid;gap:9px}.builder-step-label{display:flex;align-items:center;gap:7px;color:var(--ink);font-size:13px;font-weight:800}.builder-step-label>strong{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;color:#fff;background:var(--green-dark);font-size:11px}.task-builder input,.task-builder select,.task-record-field input{width:100%;height:46px;padding:0 13px;border:1px solid #d7dce1;border-radius:9px;color:var(--ink);background:#fff;outline:none}.task-builder input:focus,.task-builder select:focus,.task-record-field input:focus{border-color:#80bca7;box-shadow:0 0 0 3px #07966b1a}.task-builder .task-suggestions{padding:0}.task-builder .task-suggestions button{display:inline-flex;align-items:center;gap:5px}.two-column-step,.number-goal-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.completion-method-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.completion-method-picker>button{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:8px;min-height:68px;padding:10px;border:1px solid var(--line);border-radius:10px;color:var(--muted);background:#fff;cursor:pointer;text-align:left}.completion-method-picker>button.active{border-color:#8fd0b9;color:var(--green-dark);background:var(--green-soft);box-shadow:inset 0 0 0 1px #07966b1a}.completion-method-picker span{display:grid;gap:2px}.completion-method-picker strong,.completion-method-picker small{display:block}.completion-method-picker strong{color:var(--ink);font-size:13px}.completion-method-picker small{font-size:11px;line-height:1.35}.number-goal-row label>span,.reward-builder-step label>span:first-child,.task-record-field>span{color:var(--muted);font-size:12px;font-weight:700}.reward-builder-step p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.task-editor-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px}.task-editor-actions .text-link-button{display:inline-flex;align-items:center;gap:5px}.promise-list-section{display:grid;gap:10px;padding:0 20px 20px}.promise-list-section.family-promises{padding-top:4px;border-top:1px solid var(--line)}.promise-list-heading{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:13px}.promise-task-list{display:grid;gap:10px}.promise-task-card{display:grid;gap:11px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff}.promise-task-card.done{border-color:#bfe8d9;background:#fbfffd}.promise-task-main{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px}.promise-task-main>div{display:grid;gap:3px}.promise-task-main>div>strong{font-size:16px}.promise-task-main>div>span,.task-status-copy{color:var(--muted);font-size:12px}.task-state-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;color:var(--muted);background:var(--soft)}.task-state-icon.done{color:#fff;background:var(--green)}.task-remove-button{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;color:var(--muted);background:var(--soft);cursor:pointer}.completion-method-list{display:flex;flex-wrap:wrap;gap:6px;padding-left:43px}.completion-method-list>span{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border-radius:999px;color:var(--green-dark);background:var(--green-soft);font-size:11px;font-weight:700}.task-proposal-panel,.task-completed-panel,.task-completion-editor{display:grid;gap:11px;margin-left:43px;padding:12px;border-radius:10px;background:var(--soft)}.task-proposal-panel p,.task-status-copy,.task-completed-panel p{margin:0;line-height:1.5}.task-completed-panel>div:first-child{display:flex;align-items:center;gap:8px;color:var(--green-dark)}.task-completed-panel>div:first-child span{display:grid;gap:2px}.task-completed-panel small{color:var(--muted)}.task-evidence-photo,.task-image-picker>img{width:100%;max-height:260px;border-radius:9px;object-fit:cover}.task-record-button{margin-left:43px}.task-completion-editor{background:#f3fbf8}.task-record-field{display:grid;gap:7px}.task-record-field small{color:var(--muted);font-size:11px}.number-record-input{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}.number-record-input strong{color:var(--muted);font-size:13px}.task-image-picker{display:grid;place-items:center;gap:10px;min-height:120px;padding:12px;border:1px dashed #9dcdbd;border-radius:10px;color:var(--green-dark);background:#fff}.parent-grid{grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr)}.child-grid{grid-template-columns:minmax(0,1.05fr) minmax(330px,.95fr)}.surface,.onboarding-panel{overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.family-surface,.account-surface{min-width:0}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:20px}.section-heading>div{min-width:0}.section-heading h1,.section-heading h2{margin-top:5px}.compact-heading{align-items:center;padding-bottom:14px}.compact-heading>svg{flex:0 0 auto;color:var(--navy)}.icon-button,.primary-button,.secondary-button,.danger-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;gap:8px;border-radius:8px;cursor:pointer;font-weight:700;white-space:nowrap}.icon-button{flex:0 0 auto;width:46px;color:#fff;background:var(--navy)}.icon-button.stop{background:var(--coral)}.primary-button{padding:0 17px;color:#fff;background:var(--green)}.primary-button:hover{background:var(--green-dark)}.secondary-button{padding:0 14px;color:var(--ink);border:1px solid var(--line);background:#fff}.danger-button{padding:0 14px;color:#fff;background:var(--coral)}.full-width{width:100%}.full-action{width:calc(100% - 40px);margin:18px 20px 20px}.camera-stage{position:relative;width:calc(100% - 40px);aspect-ratio:4 / 3;margin:0 20px;overflow:hidden;border-radius:8px;background:#10161c}body.camera-immersive{overflow:hidden;overscroll-behavior:none}.camera-surface.camera-active{position:fixed;z-index:1000;top:0;right:0;bottom:0;left:0;display:grid;grid-template-rows:minmax(0,1fr);width:100vw;height:100vh;height:100dvh;margin:0;padding:0;overflow:hidden;border:0;border-radius:0;background:#05080b}.camera-surface.camera-active .section-heading{position:absolute;z-index:10;top:0;right:0;left:0;align-items:center;margin:0;padding:max(14px,env(safe-area-inset-top)) 16px 26px;color:#fff;background:linear-gradient(180deg,#05080be6,#05080b00);pointer-events:none}.camera-surface.camera-active .section-heading .eyebrow{color:#ffffffb8}.camera-surface.camera-active .section-heading h1{color:#fff;font-size:clamp(20px,4.5vw,28px)}.camera-surface.camera-active .heading-actions{pointer-events:auto}.camera-surface.camera-active .icon-button{color:#fff;border-color:#ffffff59;background:#10161cbd;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.camera-surface.camera-active .camera-stage{width:100%;height:100%;margin:0;aspect-ratio:auto;border-radius:0}.camera-surface.camera-active .camera-stage video,.camera-surface.camera-active .camera-stage canvas{object-fit:cover}.camera-surface.camera-active .coach-status{display:none}.camera-surface.camera-active .camera-feedback-pill,.camera-surface.camera-active .camera-count-badge{top:max(88px,calc(env(safe-area-inset-top) + 72px))}.camera-surface.camera-active .camera-voice-off{top:max(136px,calc(env(safe-area-inset-top) + 120px))}.camera-stage.guide-hidden{display:none}.camera-stage video,.camera-stage canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;transform:scaleX(-1)}.camera-stage video{z-index:0}.camera-stage canvas{z-index:1}.camera-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:12px;padding:20px;color:#fff;text-align:center;z-index:4}.camera-empty>svg{color:#96a5b4}.exercise-guide{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(280px,.95fr);margin:0 20px 20px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff}.guide-visual{position:relative;display:grid;place-items:center;min-width:0;padding:14px;border-right:1px solid var(--line);background:#f7f8f9}.guide-visual img{display:block;width:100%;aspect-ratio:3 / 2;border-radius:6px;object-fit:contain;background:#fff}.guide-visual>span{position:absolute;top:24px;left:24px;padding:6px 10px;border-radius:6px;color:#fff;background:#191f28db;font-size:13px;font-weight:800}.guide-content{display:grid;align-content:center;gap:14px;min-width:0;padding:20px}.guide-title{display:grid;gap:5px}.guide-title h2{font-size:20px}.guide-steps{display:grid;gap:10px;margin:0;padding:0;list-style:none}.guide-steps li{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:10px;min-width:0}.guide-steps li>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;color:#fff;background:var(--green);font-size:14px;font-weight:800}.guide-steps strong{overflow-wrap:anywhere;line-height:1.45}.guide-note{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:start;gap:9px;padding:11px 12px;border-radius:8px;color:var(--navy);background:var(--navy-soft);font-size:13px;line-height:1.5}.guide-note.safety{color:var(--yellow-ink);background:var(--yellow-soft)}.guide-note svg{margin-top:1px}.guide-note span,.guide-note strong{display:block;min-width:0}.guide-note strong{margin-bottom:2px;color:var(--ink)}.guide-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.guide-details{min-width:0}.guide-details summary{display:flex;align-items:center;min-height:42px;gap:8px;color:var(--muted);cursor:pointer;font-size:13px;font-weight:700;list-style:none}.guide-details summary::-webkit-details-marker{display:none}.guide-details summary svg:last-child{margin-left:auto;transition:transform .16s ease}.guide-details[open] summary svg:last-child{transform:rotate(90deg)}.guide-notes{display:grid;gap:9px;padding-top:4px}.live-guide{position:absolute;right:14px;bottom:14px;left:14px;display:grid;gap:4px;padding:12px 14px;border:1px solid rgba(255,255,255,.7);border-radius:8px;color:var(--ink);background:#ffffffeb;box-shadow:0 5px 18px #00000029;text-align:center;z-index:5}.live-guide span{color:var(--muted);font-size:12px}.live-guide strong{overflow-wrap:anywhere;font-size:19px;line-height:1.35}.live-guide.countdown{top:50%;right:auto;bottom:auto;left:50%;width:150px;transform:translate(-50%,-50%)}.live-guide.countdown strong{color:var(--green-dark);font-size:58px;line-height:1}.camera-fit-frame{position:absolute;z-index:2;top:9%;right:17%;bottom:22%;left:17%;border:2px dashed rgba(255,255,255,.72);border-radius:46% 46% 18px 18px;pointer-events:none;transition:border-color .16s ease,box-shadow .16s ease}.camera-fit-frame.adjust{border-color:#ffd166}.camera-fit-frame.ready{border-color:#6fe7b8;box-shadow:inset 0 0 0 1px #6fe7b83d}.camera-fit-frame.paused{border-color:#ff8178;box-shadow:inset 0 0 0 1px #ff81783d}.camera-feedback-pill,.camera-count-badge{position:absolute;z-index:6;top:10px;color:#fff;background:#10161cd6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.camera-feedback-pill{left:10px;display:flex;align-items:center;min-height:38px;max-width:calc(100% - 96px);gap:8px;padding:8px 11px;border:1px solid rgba(255,255,255,.28);border-radius:8px}.camera-feedback-pill>span{flex:0 0 auto;width:10px;height:10px;border-radius:50%;background:#aab2bd}.camera-feedback-pill.adjust>span{background:#ffd166}.camera-feedback-pill.ready>span{background:#6fe7b8;box-shadow:0 0 0 4px #6fe7b82e}.camera-feedback-pill.paused>span{background:#ff8178;box-shadow:0 0 0 4px #ff81782e}.camera-feedback-pill strong{min-width:0;font-size:13px;line-height:1.3}.camera-voice-off{position:absolute;z-index:6;top:58px;left:10px;display:flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid rgba(255,255,255,.28);border-radius:8px;color:#fff;background:#10161cd6;font-size:12px;font-weight:750;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.camera-count-badge{right:10px;display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;align-items:end;min-width:72px;min-height:64px;padding:7px 10px;border:1px solid rgba(255,255,255,.34);border-radius:8px;animation:rep-pop .26s ease-out}.camera-count-badge span{grid-column:1 / -1;color:#ffffffc2;font-size:11px;line-height:1}.camera-count-badge strong{font-size:32px;line-height:1}.camera-count-badge small{padding-bottom:2px;color:#ffffffc2;font-size:13px}@keyframes rep-pop{0%{transform:scale(.88);background:#07966bf5}to{transform:scale(1);background:#10161cd6}}.coach-status{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:10px;padding:14px 20px 20px}.coach-status>div{display:grid;min-width:0;gap:4px;padding:13px 14px;border-radius:8px;background:var(--soft)}.coach-status span{color:var(--muted);font-size:12px}.coach-status strong{overflow-wrap:anywhere;font-size:14px;line-height:1.45}.recognition-status{border:1px solid transparent}.recognition-status.adjust{border-color:#f0d38a;background:var(--yellow-soft)}.recognition-status.ready{border-color:#bfe8d9;background:var(--green-soft)}.recognition-status.paused{border-color:#efb4ae;background:#fff0ee}.recognition-status.adjust strong{color:var(--yellow-ink)}.recognition-status.ready strong{color:var(--green-dark)}.recognition-status.paused strong{color:#9f3028}.nudge-card{display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;margin:20px 20px 0;padding:14px;border:1px solid #f4df9d;border-radius:8px;color:var(--yellow-ink);background:var(--yellow-soft)}.nudge-card div{display:grid;min-width:0;gap:4px}.nudge-card span{font-size:12px}.nudge-card strong{color:var(--ink);overflow-wrap:anywhere}.count-panel{display:grid;gap:12px;margin:20px;padding:18px;border-radius:8px;background:var(--green-soft)}.count-panel strong{font-size:52px;line-height:1}.count-panel small{color:var(--muted);font-size:20px}.progress-track,.big-progress{width:100%;overflow:hidden;border-radius:6px;background:#e9edf0}.progress-track{height:8px}.progress-track>div,.big-progress>div{height:100%;border-radius:inherit;background:var(--green);transition:width .18s ease}.exercise-list,.child-exercises,.target-list{display:grid;gap:9px;padding:0 20px}.exercise{display:grid;grid-template-columns:30px minmax(0,1fr) 18px;align-items:center;gap:10px;min-height:60px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:#fff;cursor:pointer;text-align:left}.exercise.active{border-color:#aabbe7;background:var(--navy-soft)}.exercise>span:nth-child(2){display:grid;min-width:0;gap:3px}.exercise strong,.exercise small{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.exercise small{color:var(--muted)}.done-dot,.todo-dot,.row-icon,.member-avatar{display:grid;place-items:center;flex:0 0 auto}.done-dot,.todo-dot,.row-icon{width:28px;height:28px;border-radius:50%}.done-dot,.row-icon.done{color:#fff;background:var(--green)}.todo-dot{color:var(--coral);border:1px solid #ffd2cf;background:var(--coral-soft)}.action-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:18px 20px 12px}.safety-copy{margin:0;padding:0 20px 20px;line-height:1.55}.family-state{padding:24px 20px 20px}.family-state h1{margin-top:7px}.family-state p{margin:12px 0 20px;color:var(--muted);line-height:1.55}.big-progress{height:13px}.progress-number{display:block;margin-top:8px;color:var(--green-dark);text-align:right}.week-section{padding:0 20px 20px}.subheading{display:flex;align-items:center;gap:8px;margin-bottom:12px}.subheading svg{color:var(--navy)}.week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.day{display:grid;align-content:center;justify-items:center;gap:7px;min-height:68px;padding:7px 3px;border:1px solid var(--line);border-radius:8px;background:#fff}.day span{color:var(--muted);font-size:11px;white-space:nowrap}.day strong{display:grid;place-items:center;width:24px;height:24px;color:#aab2bd}.day.done{border-color:#bfe8d9;background:var(--green-soft)}.day.done strong{color:#fff;border-radius:50%;background:var(--green)}.exercise-row{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:11px;min-height:66px;padding:11px 12px;border:1px solid var(--line);border-radius:8px}.row-icon{color:var(--navy);background:var(--navy-soft)}.row-body{display:grid;min-width:0;gap:9px}.row-body>div:first-child{display:flex;justify-content:space-between;gap:10px}.row-body strong,.row-body span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.row-body span{flex:0 0 auto;color:var(--muted);font-size:13px}.section-description{margin:-4px 20px 16px;line-height:1.55}.target-row{display:flex;align-items:center;justify-content:space-between;min-height:50px;gap:12px;border-bottom:1px solid var(--line)}.target-row:last-child{border-bottom:0}.target-row>span{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:700}.stepper{display:grid;grid-template-columns:38px 60px 38px;align-items:center;flex:0 0 auto;overflow:hidden;border:1px solid var(--line);border-radius:8px}.stepper button{display:grid;place-items:center;width:38px;height:38px;color:var(--navy);background:var(--soft);cursor:pointer}.stepper strong{text-align:center;font-size:14px}.goal-surface>.secondary-button{width:calc(100% - 40px);margin:18px 20px 20px}.invite-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 20px 14px;padding:14px;border-radius:8px;background:var(--navy-soft)}.invite-row>div{display:grid;min-width:0;gap:3px}.invite-row span{color:var(--muted);font-size:12px}.invite-row strong{color:var(--navy);font-size:20px}.member-list{display:grid;padding:0 20px 16px}.member-item{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:62px;border-bottom:1px solid var(--line)}.member-item:last-child{border-bottom:0}.member-avatar{width:36px;height:36px;border-radius:50%}.member-avatar.parent{color:var(--coral);background:var(--coral-soft)}.member-avatar.child{color:var(--navy);background:var(--navy-soft)}.member-item>div{display:grid;min-width:0;gap:3px}.member-item strong,.member-item span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.member-item small{white-space:nowrap}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:66px;margin:0 20px;border-bottom:1px solid var(--line)}.toggle-row>span{display:grid;min-width:0;gap:3px}.toggle-row input{width:46px;height:26px;margin:0;accent-color:var(--green);cursor:pointer}.text-danger-button{display:inline-flex;align-items:center;min-height:48px;margin:8px 12px 12px;padding:0 10px;gap:8px;color:#b33434;background:transparent;cursor:pointer}.confirm-panel{margin:12px 20px 20px;padding:14px;border:1px solid #ffd2cf;border-radius:8px;background:var(--coral-soft)}.confirm-panel p{margin-bottom:12px;color:#812f2f;line-height:1.5}.confirm-panel>div{display:flex;justify-content:flex-end;gap:8px}.error-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:12px 14px;border:1px solid #ffd2cf;border-radius:8px;color:#8c3434;background:var(--coral-soft)}.error-banner button{display:grid;place-items:center;flex:0 0 auto;width:30px;height:30px;color:inherit;background:transparent;cursor:pointer}.inline-error{padding:11px 12px;border-radius:8px;color:#8c3434;background:var(--coral-soft);font-size:13px}.inset-error{margin:14px 20px 0}.center-screen{display:grid;place-content:center;justify-items:center;min-height:100dvh;padding:24px;gap:14px;text-align:center}.loading-logo{width:76px;height:76px;border-radius:8px}.empty-screen p{max-width:420px;margin-bottom:8px;color:var(--muted);line-height:1.6}.onboarding-shell{width:min(720px,calc(100% - 32px));margin:0 auto;padding:max(22px,env(safe-area-inset-top)) 0 calc(36px + env(safe-area-inset-bottom))}.welcome-brand{gap:10px;margin-bottom:34px;font-size:18px}.welcome-brand img{width:42px;height:42px}.welcome-copy{margin-bottom:24px}.welcome-copy h1{margin-top:8px;font-size:36px}.welcome-copy p{max-width:590px;margin:14px 0 0;color:var(--muted);line-height:1.65}.onboarding-panel{display:grid;gap:16px;padding:20px}.segmented-control{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;border-radius:8px;background:var(--soft)}.segmented-control button{min-height:42px;padding:0 8px;border-radius:6px;color:var(--muted);background:transparent;cursor:pointer;font-weight:700}.segmented-control button.active{color:#fff;background:var(--navy)}.field-stack{display:grid;gap:7px}.field-stack input{width:100%;height:50px;padding:0 13px;border:1px solid #d7dce1;border-radius:8px;color:var(--ink);background:#fff;outline:none}.field-stack input:focus{border-color:#8da5e2;box-shadow:0 0 0 3px #23396f1a}.agreement-row{display:flex;align-items:flex-start;gap:9px;color:var(--muted);font-size:13px;line-height:1.5}.agreement-row input{flex:0 0 auto;width:19px;height:19px;margin:0;accent-color:var(--green)}.agreement-row a{color:var(--navy);font-weight:700}.privacy-note{display:flex;align-items:center;justify-content:center;gap:7px;line-height:1.5;text-align:center}.legal-footer{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:14px;padding:28px 12px 0;color:var(--muted);font-size:12px}.legal-footer a{text-decoration:underline;text-underline-offset:3px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:901px){.today-feed{grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr)}.today-feed .daily-photo-surface{grid-column:2;grid-row:auto}.today-feed .invite-surface{grid-column:1 / -1}.today-feed .promise-home-surface{grid-column:1;grid-row:span 6}.today-feed .family-message-surface,.today-feed .encouragement-surface,.today-feed .challenge-surface,.today-feed .optional-tool-link{grid-column:2}.camera-surface,.overview-surface{grid-column:1;grid-row:span 2}.routine-surface,.detail-surface{grid-column:2}}@media(max-width:900px){.app-shell{width:min(680px,calc(100% - 20px))}.parent-grid,.child-grid,.settings-grid{grid-template-columns:1fr}}@media(max-width:560px){.app-shell,.onboarding-shell{width:100%;padding-left:0;padding-right:0}.topbar,.welcome-brand,.welcome-copy{margin-left:16px;margin-right:16px}.topbar{margin-bottom:14px}.home-navigation{top:max(6px,env(safe-area-inset-top));width:calc(100% - 20px);margin-bottom:10px}.status-strip>div{padding:12px 9px}.status-strip strong{font-size:14px}.dashboard-grid,.today-feed{gap:10px}.today-feed .surface{margin-right:10px;margin-left:10px;border-right:1px solid var(--line);border-left:1px solid var(--line);border-radius:16px}.today-feed .optional-tool-link{margin-right:10px;margin-left:10px}.promise-home-heading{padding:20px 16px 16px}.promise-home-heading h1{font-size:25px}.task-builder,.new-promise-button{margin-right:12px;margin-left:12px}.task-builder{padding:15px}.two-column-step,.number-goal-row,.completion-method-picker{grid-template-columns:1fr}.promise-list-section{padding-right:12px;padding-left:12px}.task-proposal-panel,.task-completed-panel,.task-completion-editor,.task-record-button{margin-left:0}.surface,.onboarding-panel{border-right:0;border-left:0;border-radius:0}h1{font-size:26px}.welcome-copy h1{font-size:32px}.onboarding-panel{padding:18px 16px}.coach-status{grid-template-columns:1fr;padding:12px 16px 16px}.camera-stage{width:calc(100% - 24px);aspect-ratio:3 / 4;margin-right:12px;margin-left:12px}.camera-surface.camera-active{border-radius:0}.camera-surface.camera-active .camera-stage{width:100%;height:100%;margin:0}.camera-surface.camera-active .camera-fit-frame{top:15%;right:12%;bottom:10%;left:12%}.camera-surface.camera-active .camera-feedback-pill{right:92px;left:12px;max-width:none}.camera-surface.camera-active .camera-count-badge{right:12px}.camera-fit-frame{top:8%;right:13%;bottom:21%;left:13%}.exercise-guide{grid-template-columns:1fr;margin-right:16px;margin-left:16px}.guide-visual{padding:10px;border-right:0;border-bottom:1px solid var(--line)}.guide-visual>span{top:18px;left:18px}.guide-content{gap:12px;padding:15px}.live-guide{right:10px;bottom:10px;left:10px}.action-row{grid-template-columns:1fr}.week-strip{gap:4px}.day{min-height:62px}.day span{font-size:10px}.member-item{grid-template-columns:38px minmax(0,1fr)}.member-item>small{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.daily-photo-surface .compact-heading>svg,.challenge-surface .compact-heading>svg,.task-surface .compact-heading>svg{flex:0 0 auto;color:var(--green)}.daily-photo-frame{position:relative;width:calc(100% - 40px);aspect-ratio:4 / 3;margin:0 20px;overflow:hidden;border-radius:12px;background:linear-gradient(145deg,#e5f7ef,#f8efe1)}.daily-photo-frame>img,.daily-photo-frame>.photo-loading{display:block;width:100%;height:100%;object-fit:cover}.photo-loading,.photo-empty,.family-photo-empty{display:grid;place-content:center;justify-items:center;gap:9px;width:100%;height:100%;padding:24px;color:var(--green-dark);background:transparent;text-align:center}.photo-empty{cursor:pointer}.photo-empty strong{font-size:17px}.photo-empty span,.family-photo-empty p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.shared-badge{position:absolute;right:12px;bottom:12px;display:inline-flex;align-items:center;min-height:34px;padding:0 11px;gap:6px;border-radius:999px;color:#fff;background:#077c5be6;font-size:12px;font-weight:800;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.photo-composer,.challenge-editor,.challenge-action-panel{display:grid;gap:12px;padding:16px 20px 20px}.photo-composer>input,.challenge-editor input,.challenge-editor select,.task-add input,.editing-row input{width:100%;height:46px;padding:0 13px;border:1px solid #d7dce1;border-radius:8px;color:var(--ink);background:#fff;outline:none}.photo-composer>input:focus,.challenge-editor input:focus,.challenge-editor select:focus,.task-add input:focus,.editing-row input:focus{border-color:#8da5e2;box-shadow:0 0 0 3px #23396f1a}.photo-actions{display:flex;flex-wrap:wrap;gap:9px}.photo-actions>button{flex:1 1 190px}.photo-composer>p,.challenge-editor>p,.challenge-action-panel>p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.photo-error{margin:12px 20px 20px}.family-photo-empty{min-height:280px;margin:0 20px 20px;width:calc(100% - 40px);border-radius:12px;background:var(--green-soft)}.photo-story-copy{display:grid;gap:4px;padding:14px 20px 18px}.photo-story-copy strong{font-size:17px}.photo-story-copy span{color:var(--muted);font-size:12px}.recent-photo-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;padding:0 20px 20px}.recent-photo-strip>div{position:relative;aspect-ratio:1;overflow:hidden;border-radius:8px;background:var(--soft)}.recent-photo-strip img,.recent-photo-strip .photo-loading{width:100%;height:100%;object-fit:cover}.recent-photo-strip span{position:absolute;right:5px;bottom:5px;padding:2px 5px;border-radius:4px;color:#fff;background:#191f28b8;font-size:10px}.challenge-editor label{display:grid;gap:6px}.challenge-editor label>span{color:var(--muted);font-size:12px;font-weight:700}.challenge-fields{display:grid;grid-template-columns:.7fr 1.3fr;gap:9px}.challenge-summary{display:grid;gap:14px;padding:0 20px 18px}.reward-amount{display:grid;gap:5px;padding:16px;border-radius:10px;color:var(--green-dark);background:var(--green-soft)}.reward-amount span,.challenge-progress span,.challenge-meta{color:var(--muted);font-size:12px}.reward-amount strong{font-size:30px}.challenge-progress{display:grid;gap:7px}.challenge-progress>div:first-child,.challenge-meta{display:flex;align-items:center;justify-content:space-between;gap:10px}.challenge-meta{flex-wrap:wrap}.challenge-meta span{display:inline-flex;align-items:center;gap:5px}.challenge-action-panel{margin:0 20px 20px;padding:14px;border-radius:10px;background:var(--yellow-soft)}.settled-note{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:8px;margin:0 20px 20px;padding:13px;border-radius:10px;color:var(--green-dark);background:var(--green-soft)}.settled-note>span{display:grid;gap:2px}.settled-note strong{color:var(--ink)}.challenge-new-button{margin:0 12px 12px}.task-list{display:grid;gap:8px;padding:0 20px 16px}.task-row{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:10px;min-height:54px;padding:8px 12px;border:1px solid var(--line);border-radius:9px;color:var(--ink);background:#fff;text-align:left}button.task-row{cursor:pointer}.task-row>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;color:var(--muted);background:var(--soft)}.task-row.done{border-color:#bfe8d9;background:var(--green-soft)}.task-row.done>span{color:#fff;background:var(--green)}.editing-row{grid-template-columns:minmax(0,1fr) auto}.editing-row>div{display:flex;gap:4px}.editing-row button{display:grid;place-items:center;width:36px;height:36px;border-radius:8px;color:var(--muted);background:var(--soft);cursor:pointer}.task-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:0 20px 18px}.task-suggestions{display:flex;flex-wrap:wrap;gap:7px;padding:0 20px 20px}.task-suggestions button{padding:8px 11px;border:1px solid #bfe8d9;border-radius:999px;color:var(--green-dark);background:var(--green-soft);cursor:pointer;font-size:12px;font-weight:700}.task-empty{padding:14px;border-radius:9px;color:var(--muted);background:var(--soft);font-size:13px;line-height:1.5}@media(min-width:901px){.daily-photo-surface{grid-column:1;grid-row:span 2}.challenge-surface,.task-surface{grid-column:2}.camera-surface,.overview-surface{grid-column:1;grid-row:auto}.routine-surface,.detail-surface{grid-column:2}}@media(max-width:560px){.daily-photo-frame{width:calc(100% - 24px);margin-right:12px;margin-left:12px;border-radius:10px}.family-photo-empty{width:calc(100% - 32px);min-height:240px;margin-right:16px;margin-left:16px}.challenge-fields{grid-template-columns:1fr}.photo-actions{display:grid}.recent-photo-strip{grid-template-columns:repeat(4,minmax(0,1fr))}}.heading-actions{display:flex;align-items:center;gap:8px}.streak-chip{margin-left:auto;padding:3px 10px;border-radius:999px;color:var(--green-dark);background:var(--green-soft);font-size:12px;font-weight:700}.parent-week{padding-top:6px}.nudge-composer{display:grid;gap:9px;padding:4px 20px 0}.composer-label{color:var(--muted);font-size:12px;font-weight:600}.nudge-chips{display:flex;flex-wrap:wrap;gap:7px}.chip{padding:8px 13px;border:1px solid var(--line);border-radius:999px;color:var(--ink);background:#fff;font-size:13px;cursor:pointer}.chip.active{border-color:#bfe8d9;color:var(--green-dark);background:var(--green-soft);font-weight:700}.nudge-input{width:100%;height:46px;padding:0 13px;border:1px solid #d7dce1;border-radius:8px;color:var(--ink);background:#fff;outline:none;font-size:14px}.nudge-input:focus{border-color:#8da5e2;box-shadow:0 0 0 3px #23396f1a}.push-hint{margin:0 20px 14px;padding:11px 13px;border-radius:8px;color:var(--muted);background:var(--soft);font-size:13px;line-height:1.5}.invite-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;grid-column:1 / -1;padding:18px 20px;border:1px solid #bfe8d9;background:var(--green-soft)}.invite-banner>div{display:grid;gap:4px;min-width:0}.invite-banner strong{font-size:16px}.invite-banner span{color:var(--muted);font-size:13px}.child-action-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;border-radius:8px;border:1px solid var(--line);background:#fff}.child-action-switch button{min-height:40px;padding:0 8px;border-radius:6px;color:var(--muted);background:transparent;cursor:pointer;font-size:13px;font-weight:700}.child-action-switch button.active{color:var(--green-dark);background:var(--green-soft)}.onboarding-hint{margin:0;padding:11px 13px;border-radius:8px;color:var(--muted);background:var(--soft);font-size:13px;line-height:1.5}.invite-code-view{display:grid;justify-items:center;gap:5px;padding:18px;border-radius:10px;border:1px solid #bfe8d9;background:var(--green-soft)}.invite-code-view span{color:var(--muted);font-size:12px}.invite-code-view strong{color:var(--green-dark);font-size:24px;letter-spacing:2px}.big-touch{min-height:58px;font-size:17px}.text-link-button{padding:8px;border:none;color:var(--muted);background:transparent;cursor:pointer;font-size:14px;text-decoration:underline;text-underline-offset:3px}.family-news{max-width:680px;margin:0 auto;padding-top:14px}.family-news-intro{padding:8px 4px 26px}.family-news-intro h1{font-size:clamp(27px,5vw,34px);margin:8px 0 12px}.family-news-intro p{margin:0;color:#56656a;font-size:16px;line-height:1.6}.family-news .invite-banner{margin-bottom:20px}.update-composer,.family-update-card{background:#fff;border:1px solid #dfe7e3;border-radius:22px;overflow:hidden}.update-composer{padding:24px;box-shadow:0 8px 28px #204c3610}.update-composer-heading{display:flex;gap:12px;align-items:center;margin-bottom:18px}.update-composer-heading h2{font-size:20px}.update-composer-heading p{margin:6px 0 0;color:#66756d;font-size:14px;line-height:1.5}.update-composer-icon{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;background:#edf7f1;border-radius:15px;color:#087c5b}.family-news textarea{display:block;width:100%;min-height:104px;resize:vertical;border:1px solid #d7e2dc;border-radius:12px;background:#fafcfb;padding:14px;font:inherit;font-size:16px;line-height:1.65;color:#23382e}.family-news textarea::placeholder{color:#687970}.family-news textarea:focus-visible{outline:3px solid #b8e4ce;border-color:#087c5b}.family-news button{cursor:pointer}.family-news button:focus-visible{outline:3px solid #70bfa0;outline-offset:3px}.family-news button:disabled{cursor:not-allowed}.family-news .primary-button,.family-news .secondary-button,.family-news .danger-button{min-height:46px}.update-composer-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px}.update-composer-actions small{margin-left:auto;font-size:12px;color:#66756d;font-variant-numeric:tabular-nums}.update-choose-photo,.update-refresh,.update-reply-button,.update-load-replies{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;background:transparent;color:#146f52;font-size:14px;font-weight:650;border-radius:9px;padding:8px 4px}.update-choose-photo:hover,.update-refresh:hover,.update-load-replies:hover{background:#eef7f1}.update-composer-footer{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:18px;color:#66756d;font-size:12px;line-height:1.5}.update-composer-footer svg{flex-shrink:0}.update-photo-preview{position:relative;margin-top:14px;border-radius:12px;overflow:hidden;background:#f0f4f1}.update-photo-preview img{display:block;width:100%;max-height:280px;object-fit:contain}.update-remove-photo{position:absolute;right:8px;top:8px;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:#fff;background:#1d352be6}.family-news-feed-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:32px 4px 12px}.family-news-feed-heading h2{font-size:20px}.update-refresh{padding:10px}.family-news-list{display:grid;gap:22px}.update-author-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:22px 22px 12px}.update-author-row>div:not(.update-delete-confirm){flex:1;min-width:0}.update-avatar{width:42px;height:42px;flex-shrink:0;display:grid;place-items:center;background:#fcf0dd;color:#8f6227;border-radius:50%;font-size:17px;font-weight:750}.update-avatar.own{color:#187555;background:#e9f4ee}.update-author-row h3{margin:0 0 4px;font-size:16px;line-height:1.4;overflow-wrap:anywhere}.update-author-row h3 small{font-size:12px;color:#65746a;margin-left:5px;font-weight:500}.family-news time{color:#6b776f;font-size:12px;line-height:1.5}.update-message{margin:0;padding:8px 22px 22px;font-size:17px;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere}.update-photo{display:block;width:100%;max-height:560px;object-fit:contain;background:#f1f4f0}.update-photo-placeholder{display:flex;align-items:center;justify-content:center;gap:12px;min-height:180px;background:#f1f4f0;color:#69766e}.update-conversation{border-top:1px solid #edf1ee;padding:18px 22px 20px;background:#fcfdfc}.update-reply-heading{display:flex;align-items:center;gap:6px;color:#456053;font-size:14px}.update-reply-heading span{font-variant-numeric:tabular-nums;color:#64756b}.update-no-replies{font-size:14px;color:#69766e;margin:14px 0 4px;line-height:1.6}.update-replies{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:12px}.update-replies li{padding:12px 14px;border-radius:12px;background:#f0f5f1;min-width:0}.update-reply-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 9px;min-height:30px}.update-reply-meta strong{font-size:14px;overflow-wrap:anywhere}.update-replies p{margin:4px 0 0;font-size:16px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}.update-delete{margin-left:auto;width:44px;height:44px;flex-shrink:0;display:grid;place-items:center;color:#718077;background:transparent;border-radius:8px}.update-delete:hover{color:#b32929;background:#fff0ef}.update-delete-confirm{flex-basis:100%;padding:12px;border:1px solid #edcec8;border-radius:10px;background:#fff9f7;font-size:14px;line-height:1.6}.update-delete-confirm>div{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.update-delete-confirm p{color:#a32626;margin-top:8px}.update-reply-button{margin-top:10px;padding:8px 12px;background:#e9f4ed}.update-reply-form{margin-top:16px}.update-reply-form label{display:block;font-size:14px;font-weight:650;margin-bottom:8px}.update-reply-form textarea{min-height:84px;background:#fff}.update-reply-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:10px}.update-reply-actions small{font-size:12px;color:#67796f}.update-error{color:#a1292c;background:#fff1ef;padding:12px;border-radius:8px;font-size:14px;line-height:1.6;margin:12px 0 0}.update-notice{display:flex;align-items:center;justify-content:center;gap:5px;color:#166c4c;font-size:14px;line-height:1.5;margin:12px 0 0}.update-notice:empty{display:none}.family-news-empty{display:grid;justify-items:center;text-align:center;padding:42px 24px;border:1px dashed #cdded2;border-radius:20px;background:#f7faf7;color:#526c5b}.family-news-empty h3{margin:16px 0 10px;font-size:18px}.family-news-empty p{max-width:310px;margin:0;font-size:15px;line-height:1.7}.update-load-more{width:100%;margin-top:20px}@media(max-width:480px){.family-news{padding-top:2px}.family-news-intro{padding-bottom:22px}.update-composer{padding:18px 16px}.update-composer-heading{gap:10px}.update-composer-heading h2{font-size:18px}.update-composer-actions{gap:8px}.update-composer-actions .primary-button{width:100%}.update-composer-actions small{padding-right:4px}.update-author-row{padding:18px 16px 10px}.update-message{padding:8px 16px 18px}.update-conversation{padding:16px}.update-photo{max-height:440px}.home-navigation-item{gap:5px;font-size:14px}}
