.start{align-content:center}.start-q{margin:8px 0 0;font-weight:600}.start-choices{gap:10px;display:grid}.start-choice{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:18px;gap:2px;padding:18px;text-decoration:none;display:grid}.start-choice strong{font-family:var(--display);color:var(--primary);font-size:22px;font-weight:400}.start-choice span{color:var(--muted);font-size:13px}.start a.btn{text-align:center;text-decoration:none}.gate{align-content:center}.join,.gate-note{gap:16px;display:grid}.gate-note .btn{text-align:center;text-decoration:none}#invite-code{letter-spacing:3px;text-align:center;font-variant-numeric:tabular-nums;font-size:22px}.btn.big{font-family:var(--display);padding:14px;font-size:18px;font-weight:400}.hello h1{margin:0}.now-card{background:var(--primary);color:var(--on-primary);border-radius:22px;gap:14px;padding:18px;display:grid}.now-card .meta{align-items:center;gap:8px;font-size:13px;display:flex}.now-card .tag{border:1px solid color-mix(in srgb, var(--on-primary) 70%, transparent);border-radius:999px;padding:2px 9px;font-weight:600}.now-card .row{align-items:center;gap:14px;display:flex}.now-card .emoji{background:color-mix(in srgb, var(--on-primary) 18%, transparent);border-radius:18px;flex:none;place-items:center;width:64px;height:64px;font-size:40px;line-height:1;display:grid}.now-card h2{font-family:var(--display);overflow-wrap:anywhere;margin:0;font-size:26px;font-weight:400;line-height:1.2}.big-done{font-size:18px;font-family:var(--display);background:var(--on-primary);color:var(--primary);border:0;border-radius:16px;padding:14px}.big-done.held{text-align:center;margin:0}.all-done{background:var(--done-soft);text-align:center;border-radius:22px;gap:6px;padding:22px 18px;display:grid}.all-done h2{font-family:var(--display);color:var(--done);margin:0;font-size:26px;font-weight:400}.next-hint{background:var(--surface);border:1px dashed var(--line);color:var(--muted);border-radius:14px;margin:0;padding:10px 12px;font-size:13px}.next-hint strong{color:var(--ink);margin:0 4px}.today-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.today-item{background:var(--surface);border:1px solid var(--line);border-radius:16px;align-items:center;gap:12px;padding:10px 12px;display:flex}.today-item .emoji{text-align:center;flex:none;width:36px;font-size:24px}.today-item .text{flex:1;min-width:0}.today-item .title{overflow-wrap:anywhere;font-weight:600}.today-item .sub{color:var(--muted);font-size:12px}.today-item.done .title{color:var(--muted);text-decoration:line-through}.check{border:2px solid var(--line);background:var(--surface);color:#0000;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;display:grid}.check svg{fill:none;stroke:currentColor;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.today-item.done .check{background:var(--done);border-color:var(--done);color:var(--surface)}.today-item .check.half{border-style:dashed;border-color:var(--done);color:var(--done)}.today-item .sub.solved{color:var(--done)}.step-hint{margin:0;font-size:14px}.today-item.pop .check{animation:.45s pop}@keyframes pop{0%{transform:scale(.7)}60%{transform:scale(1.18)}to{transform:scale(1)}}.today-item .sub.revoked{color:var(--warn);font-weight:600}.today-schedules ul{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.today-schedules li{background:var(--surface);border:1px dashed var(--line);overflow-wrap:anywhere;border-radius:999px;padding:4px 10px;font-size:13px}.today-schedules .num{color:var(--muted)}.leave-device{text-align:center;margin:24px 0 0;font-size:12px}.leave-device .link{color:var(--muted);font-size:12px}.leave-device.confirm{text-align:left;font-size:13px}.child-picker{gap:8px;display:grid}.child-chips{flex-wrap:wrap;gap:6px;display:flex}.child-chips button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:7px 14px;font-weight:600}.child-chips button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--surface)}.child-chips button.add{color:var(--primary);border-style:dashed;font-weight:500}.child-form{gap:6px;display:grid}.child-form .row{gap:6px;display:flex}.child-form .row input{flex:1}.manage-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.manage-item{background:var(--surface);border:1px solid var(--line);border-radius:14px;align-items:center;gap:10px;padding:10px 12px;display:flex}.manage-item .emoji{text-align:center;flex:none;width:32px;font-size:22px}.manage-item .text{flex:1;min-width:0}.manage-item .title{overflow-wrap:anywhere;font-weight:600}.manage-item .sub{color:var(--muted);font-size:12px}.manage-item .actions{gap:2px;display:flex}.icon{width:36px;height:36px;color:var(--muted);background:0 0;border:0;border-radius:10px;place-items:center;display:grid}.icon:hover{background:var(--surface-2);color:var(--ink)}.icon svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.confirm{background:var(--warn-soft);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-size:13px;display:flex}.confirm-actions{flex-wrap:wrap;gap:6px;display:flex}.remove-all-hint{margin-top:4px;display:block}.empty p{font-size:14px}.task-form{gap:14px;display:grid}.task-form h2{font-family:var(--display);margin:0;font-size:20px;font-weight:400}.task-form h2 .muted{font-family:var(--body);font-size:14px}.emoji-grid{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.emoji-grid button{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;padding:6px 0;font-size:22px}.emoji-grid button[aria-pressed=true]{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 1px var(--primary) inset}.day-picker{flex-wrap:wrap;gap:4px;display:flex}.day-picker button{border:1px solid var(--line);background:var(--surface-2);border-radius:999px;width:38px;height:38px;font-size:13px;font-weight:600}.day-picker button[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.quick-days{gap:6px;display:flex}.quick-days button{color:var(--primary);background:0 0;border:0;padding:2px 4px;font-size:12px;font-weight:600}.two-col{grid-template-columns:1fr 1fr;gap:10px;display:grid}.form-actions{justify-content:flex-end;gap:8px;display:flex}.child-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:13px;display:flex}.invite strong{color:var(--ink);letter-spacing:1px;margin-left:4px}.login{gap:12px;display:grid}.login p{margin:0}.login .btn{text-align:center;text-decoration:none}.view-switch.two{grid-template-columns:repeat(2,1fr)}.view-switch button[aria-selected=true]{background:var(--primary);color:var(--on-primary)}.section-help{font-size:13px}.family-settings{gap:12px;display:grid}.family-settings h2{margin:0;font-size:15px}.account{gap:4px;font-size:13px;display:grid}.account-email{color:var(--ink);overflow-wrap:anywhere}.account-actions{flex-wrap:wrap;gap:4px 16px;display:flex}.link.danger{color:var(--danger)}.danger-zone{background:color-mix(in srgb, var(--danger) 12%, var(--surface))}.schedule-hint{background:var(--primary-soft);border-radius:12px;margin:0;padding:10px 12px;font-size:13px}.parent-bar{align-items:center;gap:8px;display:flex}.parent-bar .child-chips{flex:1;min-width:0}.only-child{flex:1;margin:0;font-weight:700}.family-btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;flex:none;align-items:center;gap:4px;margin-left:auto;padding:6px 12px;font-size:13px;font-weight:600;display:inline-flex}.family-btn svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.family-btn[aria-expanded=true]{background:var(--ink);border-color:var(--ink);color:var(--surface)}.add-child{justify-self:start}.calendar{gap:12px;display:grid}.cal-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.cal-nav{align-items:center;gap:2px;min-width:0;display:flex}.cal-title{white-space:nowrap;margin:0;font-size:16px;font-weight:700}.today-btn{padding:7px 14px}.kind-switch,.scope-switch{background:var(--surface);border:1px solid var(--line);border-radius:10px;grid-auto-columns:1fr;grid-auto-flow:column;gap:3px;padding:3px;display:grid}.kind-switch button,.scope-switch button{color:var(--muted);background:0 0;border:0;border-radius:8px;padding:6px 12px;font-weight:600}.kind-switch button[aria-pressed=true],.scope-switch button[aria-pressed=true]{background:var(--primary);color:var(--on-primary)}.kind-switch button{padding:10px 12px}.kind-help{margin:0;font-size:12px}.cal-legend{margin:0;font-size:12px;line-height:1.6}.swatch{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-left:2px;display:inline-block}.swatch.task,.dot.task{background:var(--primary)}.swatch.event,.dot.event{background:var(--muted)}.swatch.rest,.dot.rest{background:var(--warn)}.cal-day{background:var(--surface);border:1px solid var(--line);border-radius:16px;gap:14px;padding:12px;display:grid}.cal-day.today{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary) inset}.cal-day header{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.cal-day h3{margin:0;font-size:16px;font-weight:700}.past-note{font-size:12px}.cal-group{gap:8px;display:grid}.cal-group+.cal-group{border-top:1px solid var(--line);padding-top:12px}.cal-group-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.cal-adds{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.cal-group-head h4{margin:0;font-size:14px;font-weight:700}.cal-group-head .btn{padding:7px 12px;font-size:13px}.cal-group-head .add-event{background:var(--surface-2);color:var(--ink);border:1px solid var(--line)}.cal-empty{margin:0;font-size:13px}.cal-items{gap:6px;margin:0;padding:0;list-style:none;display:grid}.cal-item{gap:8px;display:grid}.cal-item-body{text-align:left;width:100%;font:inherit;color:inherit;border:0;border-left:4px solid var(--muted);background:var(--surface-2);border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex}.cal-item.task .cal-item-body{border-left-color:var(--primary);background:var(--primary-soft)}.cal-item-body .emoji{text-align:center;flex:none;width:26px;font-size:20px}.cal-item-body .text{flex:1;min-width:0;display:grid}.cal-item-body .title{overflow-wrap:anywhere;font-weight:600}.cal-item-body .sub{color:var(--muted);font-size:12px}.cal-month{gap:4px;display:grid}.cal-month-head,.cal-month-row{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.cal-month-head span{text-align:center;color:var(--muted);font-size:12px;font-weight:600}.cal-cell{border:1px solid var(--line);background:var(--surface);min-width:0;color:var(--ink);border-radius:10px;justify-items:center;gap:4px;padding:6px 0;font-size:14px;font-weight:600;display:grid}.cal-cell.outside{background:var(--surface-2);color:var(--muted)}.cal-cell.today{border-color:var(--primary)}.cal-cell[aria-pressed=true]{box-shadow:0 0 0 2px var(--primary) inset}.dots{gap:3px;height:6px;display:flex}.dot{border-radius:50%;width:6px;height:6px}.item-form{border-color:var(--primary)}.repeat-options{flex-wrap:wrap;gap:6px;display:flex}.repeat-options button{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600}.repeat-options button[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.item-form .end-date{margin-top:4px}.item-form .form-actions .remove{align-self:center;margin-right:auto}.rest-control{flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:13px;display:flex}.rest-control.on{background:var(--warn-soft);border-radius:12px;padding:8px 12px}.rest-control.confirm{display:grid}.skip-day>.btn{width:100%}.past-warning{background:var(--warn-soft);color:var(--ink);border-radius:10px;margin:0;padding:8px 10px;font-size:13px}.save-scope{grid-template-columns:1fr 1fr;gap:8px;display:grid}.item-form .form-actions .btn,.item-form .form-actions .link{white-space:nowrap}.plan-list{gap:10px;display:grid}.plan-list ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.plan-row{gap:8px;display:grid}.plan-row-line{align-items:stretch;gap:6px;display:flex}.order-btns{flex:none;align-self:center;gap:4px;display:grid}.order-btns .btn{min-width:40px;height:36px;padding:2px 10px;line-height:1}.plan-row-body{text-align:left;width:100%;font:inherit;color:inherit;border:0;border-left:4px solid var(--primary);background:var(--primary-soft);border-radius:12px;align-items:center;gap:10px;min-height:52px;padding:9px 10px;display:flex}.plan-row-body .emoji{text-align:center;flex:none;width:26px;font-size:20px}.plan-row-body .text{flex:1;min-width:0;display:grid}.plan-row-body .title{overflow-wrap:anywhere;font-weight:600}.plan-row-body .sub{color:var(--muted);font-size:12px}.plan-row.edit .plan-row-body{border-left-color:var(--warn)}.plan-row.add .plan-row-body{border-left-color:var(--done)}.plan-row.remove .plan-row-body{border-left-color:var(--danger);background:var(--surface-2)}.plan-row.remove .title{color:var(--muted);text-decoration:line-through}.chip.danger{color:var(--danger);background:var(--surface);box-shadow:0 0 0 1px var(--danger) inset}.week-chips{gap:2px;margin-top:4px;display:flex}.week-chips i{width:17px;height:17px;color:var(--muted);background:var(--surface);border-radius:5px;place-items:center;font-size:10px;font-style:normal;font-weight:600;display:grid}.week-chips i.on{background:var(--primary);color:var(--on-primary)}.plan-note{background:var(--warn-soft);color:var(--ink);border-radius:14px;gap:8px;margin:0;padding:10px 12px;font-size:14px;display:grid}.plan-note.sent{background:var(--primary-soft)}.plan-send{gap:8px;display:grid}.plan-send p{margin:0;font-size:13px}.plan-form .form-actions{flex-wrap:wrap}.plan-review{border-color:var(--warn);gap:10px;display:grid}.plan-review h2{margin:0;font-size:16px}.plan-review .section-label{margin:4px 0 -2px}.plan-diff{color:var(--muted);font-size:12px}.plan-diff b{color:var(--ink)}.plan-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.plan-review textarea{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink);resize:vertical;border-radius:10px;min-height:64px;padding:8px 10px;font-size:16px}.buddy{background:var(--surface);border:1px solid var(--line);border-radius:18px;flex-wrap:wrap;align-items:center;gap:12px;padding:8px 14px 8px 8px;display:flex;position:relative}.buddy-art{background:0 0;border:0;border-radius:16px;flex:none;padding:0;display:inline-flex;position:relative}.buddy-text{flex:140px;gap:2px;min-width:0;font-size:14px;display:grid}.buddy-text p{margin:0}.buddy-name{flex-wrap:wrap;align-items:baseline;gap:2px 8px;display:flex}.buddy-name strong,.buddy-text>strong{font-family:var(--display);overflow-wrap:anywhere;font-size:24px;font-weight:400}.buddy-today{font-size:15px;font-weight:700}.silhouette{filter:brightness(0);opacity:.35;display:inline-flex}@media (prefers-color-scheme:dark){.silhouette{filter:brightness(0)invert()}}.buddy-evolved{background:var(--primary);color:var(--on-primary);text-align:center;border-radius:999px;flex-basis:100%;order:-1;margin:0;padding:6px 12px;font-weight:700;animation:.8s sparkle}.eggs-row{gap:2px}.picker{flex-direction:column;align-items:stretch}.picker label{gap:4px;font-weight:600;display:grid}.picker .actions{justify-content:flex-end;gap:8px;display:flex}.eggs{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.egg-choice{border:2px solid var(--line);background:var(--surface-2);border-radius:14px;justify-items:center;gap:4px;padding:8px 4px;font-size:13px;font-weight:600;display:grid}.egg-choice[aria-pressed=true]{border-color:var(--primary);background:var(--primary-soft)}.buddy-art.jump{animation:.6s jump}.buddy-art.dance{animation:1.2s dance}.wobble{animation:1.6s ease-in-out 2 wobble}@keyframes jump{0%,to{transform:translateY(0)}35%{transform:translateY(-18px)scale(1.04,.96)}60%{transform:translateY(0)scale(1.06,.92)}}@keyframes dance{0%,to{transform:rotate(0)translateY(0)}20%{transform:rotate(-12deg)translateY(-10px)}40%{transform:rotate(12deg)translateY(0)}60%{transform:rotate(-12deg)translateY(-10px)}80%{transform:rotate(8deg)translateY(0)}}@keyframes wobble{0%,to{transform:rotate(0)}25%{transform:rotate(-6deg)}75%{transform:rotate(6deg)}}@keyframes sparkle{0%{opacity:0;transform:scale(.6)}60%{opacity:1;transform:scale(1.08)}to{transform:scale(1)}}.confetti{pointer-events:none;position:absolute;inset:0}.confetti i{opacity:0;background:var(--primary);--a:calc(var(--i) * 30deg);width:7px;height:10px;transform:rotate(var(--a));border-radius:2px;animation:1.1s ease-out forwards confetti;position:absolute;top:40%;left:50%}.confetti i:nth-child(3n+1){background:var(--done)}.confetti i:nth-child(3n+2){background:var(--warn)}.confetti i:nth-child(4n){background:var(--danger)}@keyframes confetti{0%{opacity:1;transform:rotate(var(--a)) translateY(0)}to{opacity:0;transform:rotate(var(--a)) translateY(-70px)}}.dex{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.dex-card{background:var(--surface);border:1px solid var(--line);text-align:center;border-radius:16px;justify-items:center;gap:2px;padding:12px 8px;font-size:13px;display:grid}.dex-card.now{border-color:var(--primary)}.dex-card strong{overflow-wrap:anywhere;font-size:14px}.dex-empty{margin:0}.balance-card.buddy-points{justify-content:stretch;align-items:stretch;gap:12px;display:grid}.bp-buddy{text-align:center;border-bottom:1px solid color-mix(in srgb, var(--on-primary) 40%, transparent);justify-items:center;gap:8px;padding-bottom:12px;display:grid}.bp-buddy .monster-svg{background:var(--surface);border-radius:24px;flex:none}.bp-eggs{background:var(--surface);border-radius:14px;flex:none;padding:4px;display:inline-flex}.bp-text{justify-items:center;gap:2px;min-width:0;font-size:14px;display:grid}.bp-name{font-family:var(--display);overflow-wrap:anywhere;font-size:22px;line-height:1.3}.bp-next{align-items:center;gap:6px;font-weight:600;display:inline-flex}.bp-next .silhouette{opacity:.5}.bp-next .monster-svg{background:0 0}.bp-rule{opacity:.85;font-size:13px}.bp-text a{color:inherit;font-weight:600}.bp-points{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;display:flex}.bp-sub{flex-basis:100%;font-size:14px}.gauge-bar{gap:3px;width:100%;display:flex}.gauge-bar i{background:var(--line);border-radius:5px;flex:1;height:10px}.gauge-bar.thin i{height:6px}.gauge-bar i.on{background:var(--primary)}.gauge-bar.shiny i.on{background:#f5b021}.buddy-gauge{align-items:center;gap:8px;font-size:12px;display:flex}.buddy-gauge .gauge-bar{flex:1;min-width:80px}.buddy-gauge .muted{white-space:nowrap}.buddy-arrived{background:var(--warn-soft);color:var(--ink);border-radius:12px;flex-wrap:wrap;flex-basis:100%;align-items:center;gap:4px 8px;padding:8px 12px;font-size:14px;font-weight:600;text-decoration:none;display:flex}.buddy-arrived-go{color:var(--primary);margin-left:auto}.buddy-promise{font-weight:700}.bp-gauge{background:color-mix(in srgb, var(--on-primary) 12%, transparent);text-align:left;border-radius:14px;justify-self:stretch;gap:4px;padding:10px 12px;display:grid}.bp-gauge-head{justify-content:space-between;font-size:14px;font-weight:700;display:flex}.bp-gauge-text{font-size:13px}.bp-gauge .gauge-bar i{background:color-mix(in srgb, var(--on-primary) 30%, transparent)}.bp-gauge .gauge-bar i.on{background:var(--on-primary)}.bp-gauge .gauge-bar.shiny i.on{background:#f5b021}.dex-sum{margin:0 0 8px;font-size:14px}.dex-filters{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.dex-filters button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:4px 10px;font-size:13px;font-weight:600}.dex-filters button[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.dex-label{color:var(--muted);margin:10px 0 6px;font-size:12px;font-weight:600}.dex.small{grid-template-columns:repeat(auto-fill,minmax(84px,1fr))}.dex-card{position:relative}.dex-card.small{padding:8px 4px;font-size:12px}.dex-card.shiny{border:2px solid var(--warn);background:var(--warn-soft)}.dex-card .spark{font-size:14px;position:absolute;top:4px;right:6px}.praise-card{gap:10px;display:grid}.praise-card h2,.praise-list h2{margin:0;font-size:16px}.praise-done{gap:6px;margin:0;padding:0;list-style:none;display:grid}.praise-done li{background:var(--done-soft);border-radius:12px;align-items:center;gap:8px;padding:6px 8px 6px 10px;font-size:14px;display:flex}.praise-done .title{overflow-wrap:anywhere;flex:1;min-width:0;font-weight:600}.praise-done .thumb{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;flex:none;min-height:36px;padding:6px 12px;font-size:14px;font-weight:600}.praise-done .thumb.sent{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.praise-stickers{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.praise-stickers button{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;padding:6px 0;font-size:22px}.praise-stickers button[aria-pressed=true]{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 1px var(--primary) inset}.praise-stat{margin:0;font-size:12px}.praise-inbox{text-align:center;background:var(--warn-soft);border-radius:18px;justify-items:center;gap:6px;padding:14px;display:grid}.praise-inbox .big{font-size:44px;line-height:1}.praise-inbox strong{font-size:18px}.praise-inbox .words{font-size:16px}.praise-inbox .btn{width:100%;margin-top:4px}.praise-list{gap:10px;display:grid}.praise-list h2 .muted{font-size:13px;font-weight:500}.praise-list ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.praise-list li{border:1px solid var(--line);border-radius:12px;align-items:center;gap:10px;padding:8px 10px;display:flex}.praise-list .big{flex:none;font-size:22px}.praise-list .text{min-width:0;display:grid}.praise-list .title{overflow-wrap:anywhere;font-weight:600}.praise-list .muted{font-size:12px}.balance-card{background:var(--primary);color:var(--on-primary);border-radius:22px;justify-content:space-between;align-items:baseline;gap:12px;padding:18px;display:flex}.balance-card .label{font-weight:600}.balance-card strong{font-family:var(--display);font-size:32px;font-weight:400;line-height:1}.reward-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.reward-item{background:var(--surface);border:1px solid var(--line);border-radius:16px;flex-wrap:wrap;align-items:center;gap:10px 12px;padding:10px 12px;display:flex}.reward-item .emoji{text-align:center;flex:none;width:36px;font-size:26px}.reward-item .text{flex:1;gap:2px;min-width:0;display:grid}.reward-item .title{overflow-wrap:anywhere;font-weight:600}.reward-item .sub{color:var(--muted);font-size:12px}.reward-item .confirm-actions{margin-left:auto}.progress{background:var(--surface-2);border-radius:999px;height:6px;margin-top:4px;display:block;overflow:hidden}.progress span{background:var(--primary);border-radius:999px;height:100%;display:block}.balance-list{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.balance-list li{background:var(--surface);border:1px solid var(--line);border-radius:14px;justify-content:space-between;align-items:baseline;gap:8px;padding:10px 12px;display:flex}.balance-list span{overflow-wrap:anywhere;font-weight:600}.redemption-list .chip:not(.ok):not(.info){background:var(--surface-2);color:var(--muted)}.redemption-list .reverted .title{color:var(--muted);text-decoration:line-through}.redemption-actions{flex:none;align-items:center;gap:10px;display:flex}.redemption-actions .btn{padding:8px 12px}.add-reward{width:100%;margin-bottom:8px}.price-guide{gap:10px;display:grid}.price-guide p{margin:0}.price-guide table{border-collapse:collapse;width:100%;font-size:13px}.price-guide th,.price-guide td{text-align:left;vertical-align:top;padding:4px 6px 4px 0}.price-guide th{white-space:nowrap;font-weight:600}.price-guide td.num{text-align:right;white-space:nowrap;padding-right:0}.habit-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.habit{background:var(--surface);border:1px solid var(--line);border-radius:16px;gap:8px;padding:12px 14px;display:grid}.habit-head{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.habit-head .title{overflow-wrap:anywhere;font-weight:700}.habit-grid{grid-template-columns:repeat(7,1fr);justify-items:center;gap:4px;max-width:280px;display:grid}.habit-day-label{color:var(--muted);font-size:11px}.habit-dot{box-sizing:border-box;vertical-align:middle;border:2px solid #0000;border-radius:50%;width:14px;height:14px;display:inline-block}.habit-dot.done{background:var(--done)}.habit-dot.missed{border-color:var(--muted)}.habit-dot.rest{background:var(--muted);border-radius:2px;height:4px}.habit-dot.today{border-color:var(--primary);border-style:dashed}.habit-dot.later{border-color:var(--line)}.habit-dot.off{background:var(--line);width:4px;height:4px}.habit-legend{flex-wrap:wrap;align-items:center;gap:4px 6px;margin:0;font-size:12px;display:flex}.point-history-card summary{cursor:pointer;font-weight:700}.point-history{gap:10px;margin:10px 0 0;padding:0;list-style:none;display:grid}.point-history ul{gap:4px;margin:4px 0 0;padding:0;list-style:none;display:grid}.point-history .date{color:var(--muted);font-size:12px;font-weight:700}.point-line{align-items:center;gap:8px;display:flex}.point-line .title{overflow-wrap:anywhere;flex:1;min-width:0}.point-line.earn .amount{color:var(--done);font-weight:700}.point-line.revoked .amount,.point-line.reverted .amount{color:var(--muted)}.week-days{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.week-days button{border:1px solid var(--line);background:var(--surface);border-radius:10px;flex-direction:column;align-items:center;gap:1px;padding:6px 0;font-size:13px;font-weight:600;display:flex}.week-days button small{font-size:12px;font-weight:500}.week-nav{align-items:center;gap:6px;display:flex}.week-nav .week-title{text-align:center;flex:1;margin:0;font-size:14px}.week-nav .btn{min-width:40px;padding:6px 12px}.week-days button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--surface)}.week-days button.today:not([aria-pressed=true]){color:var(--primary);border-color:var(--primary)}.legend{color:var(--muted);flex-wrap:wrap;gap:14px;font-size:12px;display:flex}.legend span{align-items:center;gap:5px;display:inline-flex}.legend i{border-radius:3px;width:10px;height:10px;display:inline-block}.timeline{--tl-head:22px;--tl-pad:10px;grid-template-columns:40px 1fr 1fr;grid-template-rows:var(--tl-head) auto;background:var(--surface);border:1px solid var(--line);padding:var(--tl-pad) 10px var(--tl-pad) 4px;border-radius:16px;column-gap:6px;display:grid;position:relative}.tl-head{color:var(--muted);letter-spacing:.5px;padding-left:6px;font-size:11px;font-weight:600}.tl-hours{position:relative}.tl-hours div{color:var(--muted);font-size:11px;position:absolute;right:2px;transform:translateY(-50%)}.tl-lane{border-left:1px dashed var(--line);position:relative}.tl-grid{border-top:1px solid var(--line);opacity:.6;position:absolute;left:0;right:0}.tl-block{border-radius:9px;padding:3px 7px;font-size:12px;line-height:1.3;position:absolute;left:4px;right:2px;overflow:hidden}.tl-block b{white-space:nowrap;text-overflow:ellipsis;font-weight:600;display:block;overflow:hidden}.tl-block.schedule{background:var(--surface-2);border:1px solid var(--line);color:var(--muted)}.tl-block.task{background:var(--primary-soft);color:var(--primary);border-left:3px solid var(--primary)}.tl-block.task.done{background:var(--done-soft);color:var(--done);border-left-color:var(--done)}.tl-block.task.missed{background:var(--warn-soft);color:var(--warn);border-left-color:var(--warn)}.tl-now{z-index:2;border-top:2px solid #e5484d;height:0;position:absolute;left:44px;right:0}.tl-now:before{content:"";background:#e5484d;border-radius:50%;width:10px;height:10px;position:absolute;top:-6px;left:-5px}.empty-day{font-size:13px}.tl-stack{background:var(--surface);border:1px solid var(--line);z-index:1;align-content:start;gap:2px;margin:0;padding:3px;list-style:none;display:grid}.tl-stack li{overflow-wrap:anywhere;background:var(--primary-soft);color:var(--primary);border-left:3px solid var(--primary);border-radius:6px;padding:1px 6px;font-size:11.5px;font-weight:600;line-height:16px}.tl-stack li.done{background:var(--done-soft);color:var(--done);border-left-color:var(--done)}.tl-stack li.missed{background:var(--warn-soft);color:var(--warn);border-left-color:var(--warn)}.tl-stack li .num{opacity:.8;font-weight:500}.tl-anytime ul{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.tl-anytime li{overflow-wrap:anywhere;background:var(--primary-soft);color:var(--primary);border-left:3px solid var(--primary);border-radius:8px;padding:4px 10px;font-size:13px;font-weight:600}.tl-anytime li.done{background:var(--done-soft);color:var(--done);border-left-color:var(--done)}.tl-anytime li.missed{background:var(--warn-soft);color:var(--warn);border-left-color:var(--warn)}.view-switch{background:var(--surface);border:1px solid var(--line);border-radius:10px;grid-template-columns:1fr 1fr;gap:3px;padding:3px;display:grid}.view-switch button{color:var(--muted);background:0 0;border:0;border-radius:8px;padding:6px 12px;font-weight:600}.view-switch button[aria-pressed=true]{background:var(--ink);color:var(--surface)}.agenda{gap:14px;display:grid}.ag-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.ag-item{border-left:4px solid var(--muted);background:var(--surface-2);border-radius:12px;align-items:center;gap:10px;min-height:48px;padding:8px 10px;display:flex}.ag-item.task{border-left-color:var(--primary);background:var(--primary-soft)}.ag-item.past{border-left-color:var(--line);background:var(--surface);border-top:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.ag-item.past .ag-title{color:var(--muted);font-weight:500}.ag-time{flex:none;width:44px;font-size:14px;font-weight:700;line-height:1.2;display:grid}.ag-time small{color:var(--muted);font-size:12px;font-weight:500}.ag-body{flex:1;min-width:0;display:grid}.ag-title{overflow-wrap:anywhere;font-weight:600}.ag-kind{color:var(--muted);font-size:12px}.ag-item .chip{flex:none}.ag-now{color:var(--danger);align-items:center;gap:8px;font-size:12px;font-weight:700;display:flex}.ag-now:after{content:"";background:currentColor;border-radius:1px;flex:1;height:2px}.ag-anytime{gap:6px;display:grid}.book-end{margin:0;font-weight:700}.book-progress{color:var(--muted);gap:4px;font-size:13px;display:grid}.book-bar{background:var(--line);border-radius:999px;height:6px;overflow:hidden}.book-bar>span{background:var(--done);height:100%;display:block}.book-more{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.book-more label{align-items:center;gap:6px;display:flex}.book-more input[type=number]{width:5.5em;padding:6px 8px}.book-card{gap:10px;display:grid}.book-card h2{margin:0;font-size:16px}.book-card ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.book-card li{gap:4px;display:grid}.book-card .row{justify-content:space-between;gap:8px;display:flex}.book-card .name{overflow-wrap:anywhere;font-weight:700}.book-card .late{color:var(--warn);font-weight:700}.push-prompt{background:var(--primary-soft);border-radius:16px;gap:8px;padding:14px;display:grid}.push-prompt .muted{font-size:13px}.push-prompt .link{justify-self:end;font-size:13px}.push-next{margin:0;font-size:13px}.push-settings{gap:8px;font-size:13px;display:grid}.push-settings h3{margin:0;font-size:14px}.push-settings .status{justify-content:space-between;gap:8px;display:flex}.push-settings .on{color:var(--done);font-weight:700}.install-guide{background:var(--primary-soft);border-radius:18px;gap:10px;padding:14px 16px;font-size:14px;display:grid}.install-head{align-items:center;gap:12px;display:flex}.install-head img{border-radius:10px;flex:none}.install-guide p,.install-guide ol{margin:0}.install-guide ol{gap:4px;padding-left:20px;display:grid}.install-note{color:var(--muted);font-size:13px}.install-guide .install-actions{flex-wrap:wrap;justify-content:flex-end;gap:4px 16px;display:flex}.guardians{gap:8px;font-size:13px;display:grid}.guardians h3{margin:0;font-size:14px}.guardians ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.guardians .guardian{justify-content:space-between;align-items:center;gap:8px;display:flex}.guardians .who{flex-wrap:wrap;align-items:center;gap:4px 6px;min-width:0;display:flex}.guardians .email{overflow-wrap:anywhere;flex-basis:100%;font-size:12px}.invite-link{gap:8px;display:grid}.invite-link input{font:inherit;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:10px;min-width:0;padding:8px 10px;font-size:16px}.invite-link .link.danger{justify-self:start}.invite-actions{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.today-summary{align-items:center;gap:16px;display:flex}.ring{flex:none;width:108px;height:108px}.today-summary .headline{font-family:var(--display);font-size:22px;line-height:1.3}.today-summary .counts{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.praise{background:var(--done-soft);border-radius:14px;margin:0;padding:12px 14px;font-size:14px}.later-note{margin-top:8px;font-size:12px}.week .bars{grid-template-columns:repeat(7,1fr);gap:6px;height:140px;display:grid}.week .bar{color:var(--muted);background:0 0;border:0;grid-template-rows:18px 1fr auto 6px;justify-items:center;gap:4px;min-width:0;padding:0;font-size:11px;display:grid}.week .bar.today{color:var(--ink);font-weight:600}.week .value{color:var(--ink);font-size:11px}.week .track{background:var(--surface-2);border-radius:4px 4px 0 0;align-self:stretch;width:100%;max-width:28px;position:relative;overflow:hidden}.week .fill{background:var(--primary);border-radius:4px 4px 0 0;position:absolute;bottom:0;left:0;right:0}.week .bar:hover .track,.week .bar:focus-visible .track{outline:2px solid var(--primary-soft)}.week .bar.rest .track{border:1px dashed var(--line);background:0 0}.opened-days{margin:-2px 0 10px;font-size:13px}.week .opened-dot{border-radius:50%;width:6px;height:6px}.week .opened-dot.on{background:var(--done)}.rest-today{gap:8px;display:grid}.rest-today .headline{font-family:var(--display);font-size:22px}.rest-toggle{justify-self:start}.survey{gap:10px;display:grid}.survey .section-label{margin:0}.survey-q{margin:0;font-weight:600}.survey-options{flex-wrap:wrap;gap:6px;display:flex}.survey-options button{border:1px solid var(--line);background:var(--surface-2);border-radius:999px;padding:7px 12px;font-size:13px;font-weight:600}.survey-options button[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.survey-note{font-size:12px}.survey-history{border-top:1px solid var(--line);gap:4px;margin:0;padding:8px 0 0;font-size:13px;list-style:none;display:grid}.survey-history li{justify-content:space-between;display:flex}.points-summary{gap:6px;display:grid}.points-line{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.points-line a{color:var(--primary);font-size:13px;font-weight:600}.points-summary p{font-size:13px}.done-check{gap:10px;display:grid}.done-check summary{cursor:pointer;font-weight:600}.done-check[open] summary,.done-check .section-help{margin-bottom:10px}.family-today{gap:10px;margin:0;padding:0;list-style:none;display:grid}.family-card{text-align:left;width:100%;font:inherit;color:inherit;gap:6px;display:grid}.family-name{font-size:16px;font-weight:700}.family-card .counts{flex-wrap:wrap;gap:6px;display:flex}.family-card .headline{font-weight:600}:root{--bg:#eef1f8;--surface:#fff;--surface-2:#f5f7fc;--ink:#1b2240;--muted:#5e6786;--line:#dde2ef;--primary:#3552d6;--primary-soft:#e4e9ff;--on-primary:#fff;--done:#12704a;--done-soft:#dcf2e6;--warn:#8a4a00;--warn-soft:#ffefd3;--danger:#c0262d;--on-danger:#fff;--display:"Jua", "IBM Plex Sans KR", system-ui, sans-serif;--body:"IBM Plex Sans KR", system-ui, -apple-system, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0f1324;--surface:#181d33;--surface-2:#1f2540;--ink:#e7eaf6;--muted:#a0a8c8;--line:#2c3456;--primary:#8ea2ff;--primary-soft:#262f5c;--on-primary:#0f1324;--done:#5ed39a;--done-soft:#163a2b;--warn:#ffb84d;--warn-soft:#3a2a10;--danger:#ff8a8a;--on-danger:#1b0d10;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--body);word-break:keep-all;overflow-wrap:break-word;margin:0;font-size:15px;line-height:1.5}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.page{background:var(--surface-2);flex-direction:column;max-width:480px;min-height:100%;margin:0 auto;display:flex}.screen{padding:calc(20px + env(safe-area-inset-top,0px)) 16px 24px;flex:1;align-content:start;gap:16px;display:grid}.screen h1{font-family:var(--display);margin:0;font-size:26px;font-weight:400;line-height:1.2}.muted{color:var(--muted);margin:0}.tabs{border-top:1px solid var(--line);background:var(--surface);padding-bottom:env(safe-area-inset-bottom,0px);grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:sticky;bottom:0}.tabs a{text-align:center;color:var(--muted);padding:12px 4px 14px;font-size:13px;font-weight:500;text-decoration:none}.tabs a.active{color:var(--primary);font-weight:600}.card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:16px}.num{font-variant-numeric:tabular-nums}.btn{background:var(--primary);color:var(--on-primary);border:0;border-radius:12px;padding:11px 14px;font-weight:600}.btn.ghost{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.btn.danger{background:var(--danger);color:var(--on-danger)}.btn:disabled{opacity:.6;cursor:default}.link{color:var(--primary);background:0 0;border:0;justify-self:start;padding:2px 0;font-size:13px;font-weight:600}input[type=text],input[type=search],input[type=number],input[type=time],input[type=date],select{font:inherit;color:inherit;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;width:100%;min-width:0;padding:10px 12px;font-size:16px}.field{gap:6px;display:grid}.field>span,.child-form label{letter-spacing:.4px;color:var(--muted);font-size:12px;font-weight:600}.form-error{color:var(--danger);margin:0;font-size:13px}.banner{background:var(--warn-soft);color:var(--ink);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:13px;display:flex}.toast{left:50%;bottom:calc(80px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--surface);text-align:center;z-index:10;border-radius:12px;max-width:calc(100% - 32px);margin:0;padding:10px 16px;font-size:14px;font-weight:600;position:fixed;transform:translate(-50%)}.toast-undo{color:inherit;font:inherit;background:0 0;border:0;margin-left:10px;padding:4px 2px;text-decoration:underline}.update-banner{top:calc(8px + env(safe-area-inset-top,0px));background:var(--ink);color:var(--surface);z-index:20;border-radius:12px;align-items:center;gap:12px;max-width:calc(100% - 32px);padding:8px 8px 8px 16px;font-size:14px;font-weight:600;display:flex;position:fixed;left:50%;transform:translate(-50%)}[hidden]{display:none!important}.section-label{letter-spacing:.6px;color:var(--muted);margin:0 0 8px;font-size:12px;font-weight:600}.chip{white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.chip.warn{background:var(--warn-soft);color:var(--warn)}.chip.ok{background:var(--done-soft);color:var(--done)}.chip.info{background:var(--primary-soft);color:var(--primary)}.streak{background:var(--surface);border:1px solid var(--line);white-space:nowrap;border-radius:999px;align-items:center;padding:6px 12px;font-size:13px;font-weight:600;display:inline-flex}.hello{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.streak-wrap{justify-items:end;display:grid;position:relative}.streak{cursor:pointer;color:var(--ink);gap:6px}.streak .flame{fill:#f5b021;width:16px;height:16px}.streak-help{background:var(--ink);width:min(260px,70vw);color:var(--surface);z-index:5;border-radius:12px;margin:0;padding:10px 12px;font-size:12px;line-height:1.5;position:absolute;top:calc(100% + 6px);right:0}.badges{flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;gap:6px;display:flex}.points-badge{background:var(--surface);border:1px solid var(--line);white-space:nowrap;color:var(--ink);border-radius:999px;align-items:center;gap:4px;padding:6px 12px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.chip.points{background:var(--primary-soft);color:var(--primary)}.chip.points.earned{background:var(--done-soft);color:var(--done)}.check-field{align-items:center;gap:8px;font-size:14px;display:flex}.check-field input{width:18px;height:18px;accent-color:var(--primary)}
