:root{--bg:oklch(1 0 0);--surface:oklch(0.975 0.006 230);--surface-strong:oklch(0.945 0.012 230);--surface-warm:oklch(0.965 0.024 82);--ink:oklch(0.255 0.04 230);--ink-soft:oklch(0.43 0.035 230);--muted:oklch(0.49 0.025 230);--border:oklch(0.89 0.014 230);--border-strong:oklch(0.79 0.035 230);--primary:oklch(0.55 0.105 230);--primary-dark:oklch(0.46 0.105 230);--primary-soft:oklch(0.94 0.034 230);--primary-faint:oklch(0.975 0.015 230);--accent:oklch(0.78 0.14 82);--accent-dark:oklch(0.46 0.09 72);--accent-soft:oklch(0.955 0.055 82);--success:oklch(0.55 0.105 158);--success-dark:oklch(0.39 0.09 158);--success-soft:oklch(0.945 0.04 158);--warning:oklch(0.64 0.145 66);--warning-dark:oklch(0.42 0.1 58);--warning-soft:oklch(0.955 0.045 66);--danger:oklch(0.57 0.15 28);--danger-dark:oklch(0.41 0.105 28);--danger-soft:oklch(0.95 0.04 28);--study:oklch(0.54 0.105 250);--study-soft:oklch(0.95 0.035 250);--sport:oklch(0.55 0.11 160);--sport-soft:oklch(0.95 0.04 160);--life:oklch(0.62 0.12 65);--life-soft:oklch(0.96 0.045 65);--interest:oklch(0.55 0.11 315);--interest-soft:oklch(0.95 0.035 315);--radius-sm:10px;--radius-md:14px;--radius-lg:16px;--z-sticky:20;--z-dropdown:40;--z-modal-backdrop:60;--z-modal:70;--z-toast:80;--ease-out:cubic-bezier(0.16,1,0.3,1)}*{box-sizing:border-box}html{color-scheme:light}body,html{min-width:320px;background:var(--bg)}body{margin:0;min-height:100vh;min-height:100dvh;color:var(--ink);font-family:PingFang SC,Microsoft YaHei,Noto Sans CJK SC,system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit}button{color:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid oklch(.72 .12 230/.8);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.56}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:balance}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.binding-shell{display:grid;min-height:100vh;min-height:100dvh;place-items:center;padding:max(28px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left));background:var(--primary-faint)}.binding-panel{width:min(560px,100%);padding:36px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg)}.binding-brand{display:flex;align-items:center;gap:12px;padding-bottom:24px;border-bottom:1px solid var(--border)}.binding-brand small,.binding-brand strong{display:block}.binding-brand strong{font-size:17px}.binding-brand small{margin-top:2px;color:var(--muted);font-size:12px}.binding-copy{padding:32px 0 24px}.binding-copy>p{color:var(--primary-dark);font-size:14px;font-weight:700}.binding-copy h1{margin-top:5px;font-size:29px;line-height:1.25;letter-spacing:-.025em}.binding-copy>span{display:block;max-width:44ch;margin-top:10px;color:var(--ink-soft);font-size:15px;line-height:1.7;text-wrap:pretty}.binding-form{display:grid;gap:10px}.binding-form .button-primary{width:100%;margin-top:6px}.binding-note{margin-top:20px;color:var(--muted);font-size:12px;text-align:center}.app-shell{display:grid;grid-template-columns:210px minmax(0,1fr);min-height:100vh;min-height:100dvh}.side-rail{position:sticky;top:0;display:flex;flex-direction:column;gap:34px;height:100vh;height:100dvh;padding:24px 18px;background:var(--surface);border-right:1px solid var(--border)}.brand,.mobile-brand{display:flex;align-items:center;gap:11px}.brand{width:100%;min-height:48px;padding:0 5px;background:transparent;border:0;text-align:left;cursor:pointer}.brand-mark{display:grid;flex:0 0 auto;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--primary);color:var(--bg);font-size:17px;font-weight:800;box-shadow:0 4px 8px oklch(.4 .08 230/.18)}.brand strong,.mobile-brand strong{display:block;font-size:17px;line-height:1.25;letter-spacing:-.01em}.brand small{display:block;margin-top:3px;color:var(--muted);font-size:11px}.side-nav{display:flex;flex-direction:column;gap:6px}.side-nav button{display:flex;align-items:center;gap:12px;min-height:50px;padding:0 14px;background:transparent;border:0;border-radius:var(--radius-sm);color:var(--ink-soft);font-weight:600;cursor:pointer;transition:background .18s var(--ease-out),color .18s var(--ease-out),transform .18s var(--ease-out)}.side-nav button span{display:grid;place-items:center;width:24px;height:24px;color:var(--muted);font-size:15px}.side-nav button:hover{background:var(--bg);color:var(--ink)}.side-nav button:active{transform:scale(.98)}.side-nav button.active{background:var(--primary-soft)}.side-nav button.active,.side-nav button.active span{color:var(--primary-dark)}.side-note{display:flex;align-items:flex-start;gap:10px;margin-top:auto;padding:14px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md)}.side-note-icon{display:grid;flex:0 0 auto;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--success-soft);color:var(--success-dark);font-weight:800}.side-note p{color:var(--ink-soft);font-size:12px;line-height:1.55}.workspace{min-width:0}.topbar{position:sticky;z-index:var(--z-sticky);top:0;display:flex;align-items:center;justify-content:space-between;min-height:72px;padding:10px 30px;background:oklch(1 0 0/.96);border-bottom:1px solid var(--border)}.mobile-brand{display:none}.role-switch{display:inline-flex;gap:4px;padding:4px;background:var(--surface-strong);border-radius:999px}.role-switch button{min-width:84px;min-height:44px;padding:0 18px;background:transparent;border:0;border-radius:999px;color:var(--muted);font-size:14px;font-weight:650;cursor:pointer;transition:background .18s var(--ease-out),color .18s var(--ease-out),box-shadow .18s var(--ease-out)}.role-switch button.active{background:var(--bg);color:var(--ink);box-shadow:0 2px 6px oklch(.35 .03 230/.12)}.topbar-actions{gap:10px}.star-balance,.topbar-actions{display:flex;align-items:center}.star-balance{gap:6px;min-height:42px;padding:0 13px;background:var(--accent-soft);border-radius:999px}.star-balance,.star-balance span{color:var(--accent-dark)}.star-balance strong{font-size:14px}.avatar-button,.icon-button{display:grid;place-items:center;width:44px;height:44px;padding:0;border-radius:50%;cursor:pointer}.icon-button{background:var(--bg);border:1px solid var(--border)}.avatar-button{overflow:hidden;background:var(--primary);border:0;color:var(--bg);font-weight:750}.avatar-button img{display:block;width:100%;height:100%;object-fit:cover}.avatar-input{position:fixed;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.notification-wrap{position:relative}.notification-button{position:relative;font-size:13px;font-weight:750}.notification-button b{position:absolute;top:-2px;right:-2px;display:grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--danger);color:var(--bg);font-size:10px}.main-content{width:100%;max-width:1540px;margin:0 auto;padding:30px 34px 54px}.page-heading,.parent-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:26px;margin-bottom:25px}.page-heading>div,.parent-heading>div{max-width:72ch}.page-heading p,.parent-heading p{margin-bottom:5px;color:var(--primary-dark);font-size:14px;font-weight:650}.page-heading h1,.parent-heading h1{margin:0;font-size:29px;line-height:1.25;letter-spacing:-.025em}.page-heading>div>span,.parent-heading>div>span{display:block;margin-top:7px;color:var(--ink-soft);font-size:15px}.add-button,.button-muted,.button-primary,.button-secondary{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:46px;padding:0 19px;border-radius:999px;font-weight:700;cursor:pointer;transition:transform .18s var(--ease-out),background .18s var(--ease-out),color .18s var(--ease-out)}.button-primary{background:var(--primary);border:0;color:var(--bg);box-shadow:0 4px 8px oklch(.35 .08 230/.18)}.button-primary:hover{background:var(--primary-dark)}.button-primary:active,.button-secondary:active{transform:scale(.97)}.button-secondary{background:var(--bg);border:1px solid var(--border-strong);color:var(--primary-dark)}.button-secondary:hover{background:var(--primary-soft)}.button-muted{background:var(--surface-strong);border:0;color:var(--muted)}.connection-banner{display:flex;align-items:center;gap:10px;min-height:46px;padding:8px 30px;background:var(--warning-soft);color:var(--warning-dark);border-bottom:1px solid oklch(.84 .07 66);font-size:13px}.connection-banner.error{background:var(--danger-soft);color:var(--danger-dark)}.connection-banner>span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--bg);font-weight:800}.connection-banner p{flex:1}.connection-banner button{min-height:44px;padding:0 12px;background:transparent;border:1px solid;border-radius:999px;font-weight:700;cursor:pointer}.today-layout{display:grid;grid-template-columns:minmax(0,1fr) 296px;gap:28px;align-items:start}.today-aside,.today-main{min-width:0}.today-aside{display:flex;flex-direction:column;gap:15px;padding-top:1px}.date-strip{display:grid;grid-template-columns:repeat(7,minmax(66px,1fr));gap:7px;margin-bottom:20px}.date-strip button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:82px;padding:8px 4px;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--muted);cursor:pointer;transition:background .18s var(--ease-out),border-color .18s var(--ease-out),color .18s var(--ease-out),transform .18s var(--ease-out)}.date-strip button:hover{background:var(--surface)}.date-strip button:active{transform:scale(.97)}.date-strip button.selected{background:var(--primary-soft);border-color:oklch(.79 .07 230);color:var(--primary-dark)}.date-strip button>span{font-size:12px}.date-strip button strong{margin-top:2px;font-size:20px;line-height:1.2}.date-strip button i{min-height:16px;margin-top:3px;color:var(--primary-dark);font-size:10px;font-style:normal;font-weight:700}.focus-strip{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:96px;margin-bottom:17px;padding:18px 20px;background:var(--primary-soft);border:1px solid oklch(.82 .055 230);border-radius:var(--radius-lg)}.focus-copy{min-width:0}.focus-label{display:block;margin-bottom:4px;color:var(--primary-dark);font-size:12px;font-weight:750}.focus-copy strong{display:block;overflow:hidden;font-size:17px;text-overflow:ellipsis;white-space:nowrap}.focus-copy p{margin-top:3px;color:var(--ink-soft);font-size:13px}.focus-strip>button{flex:0 0 auto;min-height:44px;padding:0 15px;background:var(--primary);border:0;border-radius:999px;color:var(--bg);font-size:13px;font-weight:700;cursor:pointer}.overdue-band{display:flex;align-items:center;gap:13px;margin-bottom:18px;padding:15px 17px;background:var(--warning-soft);border:1px solid oklch(.84 .075 66);border-radius:var(--radius-md);color:var(--warning-dark)}.status-symbol{display:grid;flex:0 0 auto;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--warning);color:var(--bg);font-size:16px;font-weight:850}.overdue-band strong{font-size:14px}.overdue-band p{margin-top:2px;color:var(--warning-dark);font-size:12px}.goal-section,.needs-help,.recent-section,.reward-section,.task-section,.upcoming-section,.week-board,.weekly-overview{padding-top:4px}.section-heading-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.section-heading-row h2{font-size:19px;letter-spacing:-.015em}.section-heading-row p{margin-top:3px;color:var(--muted);font-size:13px}.attention-count,.list-progress,.reward-balance{display:inline-flex;align-items:center;min-height:32px;padding:0 11px;border-radius:999px;background:var(--surface-strong);color:var(--ink-soft);font-size:12px;font-weight:750}.task-groups{border-top:1px solid var(--border)}.task-group{display:grid;grid-template-columns:62px minmax(0,1fr);border-bottom:1px solid var(--border)}.task-group>h3{padding-top:23px;color:var(--muted);font-size:12px;font-weight:700}.task-list{min-width:0}.task-row{display:grid;grid-template-columns:46px 68px minmax(180px,1fr) auto;align-items:center;gap:11px;min-height:82px;padding:12px 2px;border-bottom:1px solid var(--border);transition:background .18s var(--ease-out),opacity .18s var(--ease-out)}.task-list .task-row:last-child{border-bottom:0}.task-row.overdue{background:var(--warning-soft)}.task-row.completed{opacity:.68}.task-check{display:grid;place-items:center;width:44px;height:44px;padding:0;background:var(--bg);border:2px solid var(--border-strong);border-radius:50%;color:var(--bg);cursor:pointer;transition:background .18s var(--ease-out),border-color .18s var(--ease-out),transform .18s var(--ease-out)}.task-check:hover{border-color:var(--primary)}.task-check:active{transform:scale(.9)}.task-row.completed .task-check{background:var(--success);border-color:var(--success);animation:check-pop .42s var(--ease-out)}.task-check span{font-size:18px;font-weight:850}.task-time{display:flex;flex-direction:column}.task-time strong{font-size:14px;font-variant-numeric:tabular-nums}.task-time span{margin-top:2px;color:var(--muted);font-size:10px}.task-copy{min-width:0}.task-copy>div{display:flex;align-items:center;gap:8px;min-width:0}.task-copy>div>strong{overflow:hidden;font-size:15px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.task-row.completed .task-copy>div>strong{text-decoration:line-through;text-decoration-thickness:1px}.overdue-label{flex:0 0 auto;padding:2px 7px;border-radius:999px;background:var(--warning);color:var(--bg);font-size:9px;font-weight:750}.task-copy>p{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:7px;color:var(--muted);font-size:10px}.task-copy>p>span:not(:last-child):after{content:"";display:inline-block;width:2px;height:2px;margin-left:8px;border-radius:50%;background:var(--border-strong);vertical-align:middle}.category-tag{color:var(--ink-soft);font-weight:650}.category-tag i{display:inline-grid;place-items:center;width:19px;height:19px;margin-right:2px;border-radius:6px;font-size:9px;font-style:normal}.category-study i{background:var(--study-soft);color:var(--study)}.category-sport i{background:var(--sport-soft);color:var(--success-dark)}.category-life i{background:var(--life-soft);color:var(--warning-dark)}.category-interest i{background:var(--interest-soft);color:var(--interest)}.category-other i{background:var(--surface-strong);color:var(--muted)}.reward-points{color:var(--accent-dark);font-weight:700}.task-state{display:flex;align-items:center;justify-content:flex-end;min-width:86px}.task-state>span{color:var(--muted);font-size:11px}.task-state .done-label{color:var(--success-dark)}.task-state button{min-height:44px;padding:0 10px;background:var(--bg);border:1px solid oklch(.78 .08 66);border-radius:999px;color:var(--warning-dark);font-size:11px;font-weight:700;cursor:pointer}.empty-plan{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:230px;padding:30px;background:var(--surface);border-radius:var(--radius-lg);text-align:center}.empty-symbol{display:grid;place-items:center;width:48px;height:48px;margin-bottom:13px;border-radius:50%;background:var(--primary-soft);color:var(--primary-dark);font-size:24px}.empty-plan h3{font-size:17px}.empty-plan p{max-width:44ch;margin-top:5px;color:var(--muted);font-size:13px;text-wrap:pretty}.empty-plan button{margin-top:16px}.encouragement-panel,.growth-panel,.progress-panel{border-radius:var(--radius-lg)}.progress-panel{display:flex;align-items:center;gap:14px;padding:17px;background:var(--surface);border:1px solid var(--border)}.progress-ring{display:grid;flex:0 0 auto;place-items:center;width:72px;height:72px;border-radius:50%;background:conic-gradient(var(--primary) var(--progress),var(--surface-strong) 0)}.progress-ring:before{content:"";grid-area:1/1;width:56px;height:56px;border-radius:50%;background:var(--surface)}.progress-ring span{z-index:1;grid-area:1/1;font-size:14px;font-weight:800}.garden-season,.growth-panel header span,.progress-panel>div:last-child>span{display:block;color:var(--muted);font-size:11px}.growth-panel header strong,.progress-panel>div:last-child>strong{display:block;margin-top:1px;font-size:15px}.growth-panel>p,.progress-panel p{margin-top:4px;color:var(--muted);font-size:11px}.encouragement-panel{position:relative;min-height:142px;padding:22px 18px 17px;overflow:hidden;background:var(--primary);color:var(--bg)}.quote-mark{position:absolute;top:-10px;right:15px;color:oklch(1 0 0/.16);font-family:Georgia,serif;font-size:86px;line-height:1}.encouragement-panel p{position:relative;max-width:27ch;font-size:14px;font-weight:600;line-height:1.65;text-wrap:pretty}.encouragement-panel small{display:block;margin-top:14px;color:oklch(1 0 0/.94);font-size:11px}.growth-panel{padding:17px;background:var(--accent-soft);border:1px solid oklch(.86 .07 82)}.growth-panel header{display:flex;justify-content:space-between;gap:10px}.streak-chip{display:inline-flex!important;align-items:center;align-self:flex-start;min-height:27px;padding:0 8px;border-radius:999px;background:var(--bg);color:var(--accent-dark)!important;font-weight:700}.mini-plant{position:relative;height:110px;margin:8px 0 2px}.mini-plant .stem{bottom:21px;left:50%;width:5px;height:58px;border-radius:999px;transform:translateX(-50%)}.mini-plant .leaf,.mini-plant .stem{position:absolute;background:var(--success)}.mini-plant .leaf{z-index:1;width:34px;height:19px;border-radius:80% 18% 80% 18%}.mini-plant .leaf-left{bottom:47px;left:calc(50% - 35px);transform:rotate(20deg)}.mini-plant .leaf-right{bottom:66px;left:calc(50% + 1px);transform:scaleX(-1) rotate(15deg)}.mini-plant .soil{position:absolute;bottom:12px;left:50%;width:102px;height:22px;border-radius:50%;background:oklch(.68 .08 70);transform:translateX(-50%)}.plant-star{position:absolute;z-index:2;color:var(--accent-dark);font-size:14px}.star-one{top:7px;left:29%}.star-two{top:27px;right:25%;font-size:10px}.calendar-view,.garden-view,.parent-view,.week-view{width:100%}.week-summary{display:flex;align-items:center;gap:28px;margin-bottom:28px;padding:19px 22px;background:var(--primary-soft);border-radius:var(--radius-lg)}.week-summary-copy{flex:0 0 250px}.week-summary-copy span{color:var(--primary-dark);font-size:12px;font-weight:700}.week-summary-copy strong{display:block;margin-top:2px;font-size:22px}.week-summary-copy p{margin-top:3px;color:var(--ink-soft);font-size:12px}.mini-track,.week-progress-track{flex:1;overflow:hidden;background:var(--bg);border-radius:999px}.week-progress-track{height:10px}.mini-track span,.week-progress-track span{display:block;height:100%;border-radius:inherit;background:var(--primary)}.goal-section{margin-bottom:30px}.goal-list{display:flex;gap:10px}.goal-row{display:grid;flex:1;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:84px;padding:13px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.goal-symbol{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--primary-soft);color:var(--primary-dark);font-weight:750}.goal-row b,.goal-row strong,.goal-symbol{font-size:13px}.goal-row b{color:var(--primary-dark)}.mini-track{height:5px;margin-top:8px;background:var(--surface-strong)}.week-columns{display:grid;grid-template-columns:repeat(7,minmax(86px,1fr));gap:8px;overflow-x:auto;padding-bottom:6px}.week-columns>button{min-width:86px;min-height:150px;padding:14px 10px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--ink-soft);cursor:pointer;text-align:left}.week-columns>button.today{border-color:var(--primary)}.week-columns>button.selected{background:var(--primary-soft);border-color:var(--primary)}.week-columns>button>span{color:var(--muted);font-size:11px}.week-columns>button>strong{display:block;margin-top:2px;font-size:21px}.week-columns>button>small{display:block;margin-top:12px;color:var(--muted);font-size:10px}.week-task-preview{display:flex;align-items:flex-end;gap:4px;height:40px;margin-top:13px}.week-task-preview i{display:block;width:7px;height:23px;border-radius:999px;background:var(--primary)}.week-task-preview i.done{height:34px;background:var(--success)}.week-task-preview i.late{background:var(--warning)}.calendar-layout{display:grid;grid-template-columns:minmax(540px,1.35fr) minmax(320px,.65fr);gap:22px;align-items:start}.calendar-panel,.selected-day-panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg)}.calendar-panel{padding:20px}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:19px}.calendar-toolbar h2{font-size:19px}.calendar-toolbar button{display:grid;place-items:center;width:44px;height:44px;padding:0;background:var(--surface);border:0;border-radius:50%;color:var(--ink-soft);font-size:26px;cursor:pointer}.calendar-grid,.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(52px,1fr))}.calendar-weekdays{margin-bottom:6px}.calendar-weekdays span{padding:7px 0;color:var(--muted);font-size:11px;text-align:center}.calendar-grid{gap:5px}.calendar-day{display:flex;flex-direction:column;align-items:center;justify-content:space-between;min-height:74px;padding:10px 5px 8px;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer}.calendar-day:hover{background:var(--surface)}.calendar-day.selected{border-color:var(--primary);color:var(--primary-dark)}.calendar-day.today .calendar-date-heading>span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%}.calendar-day.outside{color:var(--muted)}.calendar-day-select>span{font-size:13px;font-weight:650}.calendar-markers{display:flex;align-items:center;justify-content:center;gap:4px;min-height:16px}.calendar-legend i,.calendar-markers i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--primary)}.calendar-legend i.done,.calendar-markers i.done{background:var(--success)}.calendar-legend b,.calendar-markers b{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;background:var(--warning);color:var(--bg);font-size:9px}.calendar-legend{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border);color:var(--muted);font-size:10px}.calendar-legend span{display:flex;align-items:center;gap:6px}.selected-day-panel{padding:19px}.selected-day-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:11px;padding-bottom:14px;border-bottom:1px solid var(--border)}.selected-day-panel>header span{color:var(--muted);font-size:10px}.selected-day-panel>header h2{margin-top:2px;font-size:17px}.selected-day-panel>header>b{display:grid;place-items:center;min-width:42px;height:30px;padding:0 9px;border-radius:999px;background:var(--surface-strong);color:var(--muted);font-size:11px}.selected-task-list .task-row.compact{grid-template-columns:42px minmax(0,1fr);gap:10px;min-height:86px}.task-row.compact .task-state,.task-row.compact .task-time{display:none}.task-row.compact .task-copy>div>strong{white-space:normal}.selected-day-panel .empty-plan{min-height:320px}.garden-hero{display:grid;grid-template-columns:minmax(0,1fr) 360px;min-height:310px;margin-bottom:30px;overflow:hidden;background:var(--primary-soft);border-radius:var(--radius-lg)}.garden-copy{align-self:center;padding:38px 40px}.garden-copy>strong{display:block;margin-top:5px;font-size:32px;letter-spacing:-.03em}.garden-copy>p{max-width:58ch;margin-top:10px;color:var(--ink-soft);font-size:15px;line-height:1.7;text-wrap:pretty}.garden-stats{display:flex;gap:18px;margin-top:24px}.garden-stats span{display:flex;align-items:baseline;gap:6px;color:var(--ink-soft);font-size:12px}.garden-stats b{color:var(--primary-dark);font-size:18px}.large-plant{position:relative;overflow:hidden;background:var(--primary)}.large-stem{bottom:40px;left:53%;width:8px;height:170px;border-radius:999px;transform:translateX(-50%) rotate(2deg)}.large-leaf,.large-stem{position:absolute;background:oklch(.78 .12 150)}.large-leaf{z-index:1;width:79px;height:42px;border-radius:80% 16% 80% 16%}.large-plant .leaf-a{bottom:94px;left:calc(53% - 82px);transform:rotate(18deg)}.large-plant .leaf-b{bottom:133px;left:53%;transform:scaleX(-1) rotate(15deg)}.large-plant .leaf-c{bottom:174px;left:calc(53% - 70px);width:64px;height:34px;transform:rotate(28deg)}.large-plant .leaf-d{bottom:208px;left:53%;width:58px;height:31px;transform:scaleX(-1) rotate(8deg)}.garden-ground{position:absolute;bottom:-25px;left:50%;width:290px;height:90px;border-radius:50%;background:oklch(.42 .09 230);transform:translateX(-50%)}.large-star{position:absolute;z-index:2;color:var(--accent)}.star-a{top:43px;left:24%;font-size:22px}.star-b{top:85px;right:20%;font-size:15px}.star-c{top:24px;right:37%;font-size:10px}.sun-dot{position:absolute;top:34px;right:28px;width:43px;height:43px;border-radius:50%;background:var(--accent)}.reward-balance{background:var(--accent-soft);color:var(--accent-dark)}.reward-list{border-top:1px solid var(--border)}.reward-list article{display:grid;grid-template-columns:82px minmax(0,1fr) auto;align-items:center;gap:16px;min-height:94px;padding:14px 4px;border-bottom:1px solid var(--border)}.reward-cost{display:flex;flex-direction:column;align-items:center;justify-content:center;width:72px;height:58px;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent-dark);font-size:9px}.reward-cost b{font-size:18px}.reward-list h3{font-size:15px}.reward-list p{margin-top:3px;color:var(--muted);font-size:12px}.reward-empty{padding:24px 4px;border-bottom:1px solid var(--border)}.reward-empty p{max-width:55ch;color:var(--ink-soft);line-height:1.65}.redemption-section{margin-top:32px}.parent-reward-list,.redemption-list{padding:0;margin:0;list-style:none}.redemption-list{border-top:1px solid var(--border)}.redemption-list li{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:76px;padding:12px 2px;border-bottom:1px solid var(--border)}.redemption-list li>span{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--accent-soft);color:var(--accent-dark)}.redemption-list small,.redemption-list strong{display:block}.redemption-list strong{font-size:14px}.redemption-list small{margin-top:3px;color:var(--muted);font-size:11px}.redemption-list li>b{color:var(--success-dark);font-size:11px;font-weight:700}.parent-status-strip{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:26px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.parent-status-strip>div{padding:17px 20px;border-right:1px solid var(--border)}.parent-status-strip>div:last-child{border-right:0}.parent-status-strip span{display:block;color:var(--muted);font-size:11px}.parent-status-strip strong{display:block;margin-top:2px;font-size:18px}.parent-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:28px;align-items:start}.parent-aside,.parent-primary-column{display:flex;flex-direction:column;gap:28px;min-width:0}.attention-count{background:var(--warning-soft);color:var(--warning-dark)}.help-list{border-top:1px solid var(--border)}.help-list article{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:13px;min-height:108px;padding:14px 2px;border-bottom:1px solid var(--border)}.help-list h3{font-size:15px}.help-list p{margin-top:3px;color:var(--warning-dark);font-size:12px}.help-list small{display:block;margin-top:5px;color:var(--muted);font-size:10px}.help-actions{display:flex;flex-direction:column;align-items:stretch;gap:6px}.help-actions button{min-height:44px;padding:0 11px;background:var(--bg);border:1px solid var(--border-strong);border-radius:999px;color:var(--ink-soft);font-size:11px;font-weight:650;cursor:pointer}.all-good-state{display:flex;align-items:center;gap:13px;min-height:90px;padding:18px;background:var(--success-soft);border-radius:var(--radius-md)}.all-good-state>span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--success);color:var(--bg);font-weight:850}.all-good-state strong{font-size:14px}.all-good-state p{margin-top:2px;color:var(--success-dark);font-size:11px}.week-bars{display:flex;align-items:flex-end;justify-content:space-around;gap:12px;min-height:206px;padding:18px 20px 13px;background:var(--surface);border-radius:var(--radius-lg)}.week-bars>div{display:flex;flex:1;flex-direction:column;align-items:center;gap:4px}.week-bar{position:relative;width:min(34px,60%);height:125px;overflow:hidden;border-radius:999px;background:var(--surface-strong)}.week-bar span{position:absolute;right:0;bottom:0;left:0;min-height:8px;border-radius:inherit;background:var(--primary)}.week-bars strong{font-size:11px}.week-bars>div>span{color:var(--muted);font-size:10px}.upcoming-list{border-top:1px solid var(--border)}.upcoming-list article{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:14px;min-height:66px;border-bottom:1px solid var(--border)}.upcoming-list time{color:var(--primary-dark);font-size:12px;font-weight:750}.upcoming-list span,.upcoming-list strong{display:block}.upcoming-list strong{font-size:13px}.upcoming-list article>span,.upcoming-list div span{color:var(--muted);font-size:10px}.inline-empty{padding:28px 0;color:var(--muted);font-size:13px}.encourage-composer{padding:21px;background:var(--primary-soft);border-radius:var(--radius-lg)}.composer-symbol{display:grid;place-items:center;width:38px;height:38px;margin-bottom:14px;border-radius:50%;background:var(--primary);color:var(--bg);font-weight:800}.encourage-composer h2{font-size:17px}.encourage-composer>p{margin-top:4px;color:var(--ink-soft);font-size:12px}.encourage-composer textarea{width:100%;min-height:100px;margin-top:14px;padding:12px;resize:vertical;background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--ink);font-size:14px;line-height:1.6}.quick-encouragements{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 14px}.quick-encouragements button{min-height:44px;padding:0 9px;background:oklch(1 0 0/.75);border:1px solid var(--border);border-radius:999px;color:var(--ink-soft);font-size:10px;cursor:pointer}.encourage-composer>.button-primary{width:100%}.recent-list{padding:0;margin:0;list-style:none}.recent-list li{display:flex;align-items:center;gap:11px;min-height:58px;border-bottom:1px solid var(--border)}.recent-list li>span{display:grid;flex:0 0 auto;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--success-soft);color:var(--success-dark);font-size:11px;font-weight:800}.recent-list small,.recent-list strong{display:block}.recent-list strong{font-size:12px}.recent-list small{margin-top:2px;color:var(--muted);font-size:9px}.parent-principle{display:flex;align-items:flex-start;gap:9px;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.form-note span,.parent-principle span{display:grid;flex:0 0 auto;place-items:center;width:23px;height:23px;border-radius:50%;background:var(--primary-soft);color:var(--primary-dark);font-size:11px;font-weight:800}.parent-principle p{color:var(--ink-soft);font-size:11px;line-height:1.6}.parent-reward-manager{padding:20px;background:var(--surface);border-radius:var(--radius-lg)}.reward-create-form{display:grid;grid-template-columns:minmax(170px,1fr) minmax(210px,1.35fr) 120px auto;align-items:end;gap:12px}.reward-create-form .field input{background:var(--bg)}.reward-create-form>.button-primary{white-space:nowrap}.reward-form-error{grid-column:1/-1}.parent-reward-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}.parent-reward-columns h3{margin:0 0 7px;font-size:14px}.parent-reward-list{border-top:1px solid var(--border)}.parent-reward-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:68px;border-bottom:1px solid var(--border)}.parent-reward-list small,.parent-reward-list strong{display:block}.parent-reward-list strong{font-size:12px}.parent-reward-list small{margin-top:3px;color:var(--muted);font-size:10px}.parent-reward-list button{min-height:44px;padding:0 10px;background:var(--bg);border:1px solid var(--border-strong);border-radius:999px;color:var(--ink-soft);font-size:11px;font-weight:700;cursor:pointer}.redemption-admin-list button{color:var(--success-dark)}.notification-panel{position:absolute;z-index:var(--z-dropdown);top:52px;right:-54px;width:min(390px,calc(100vw - 24px));overflow:hidden;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 4px 8px oklch(.25 .04 230/.16)}.notification-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:17px 18px 13px;border-bottom:1px solid var(--border)}.notification-panel header span,.notification-panel header strong{display:block}.notification-panel header span{color:var(--muted);font-size:10px}.notification-panel header strong{margin-top:2px;font-size:14px}.notification-panel header button{display:grid;place-items:center;width:44px;height:44px;padding:0;background:var(--surface);border:0;border-radius:50%;font-size:20px;cursor:pointer}.notification-list article{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:82px;padding:11px 16px;border-bottom:1px solid var(--border)}.notification-list .status-symbol{width:31px;height:31px;font-size:13px}.notification-list strong{font-size:12px}.notification-list p{margin-top:2px;color:var(--warning-dark);font-size:9px}.notification-list article>button{min-height:44px;padding:0 9px;background:var(--warning-soft);border:0;border-radius:999px;color:var(--warning-dark);font-size:10px;font-weight:700;cursor:pointer}.notification-empty{display:flex;align-items:center;gap:10px;padding:24px 18px;color:var(--success-dark);font-size:12px}.notification-empty span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--success-soft);font-weight:800}.notification-panel>footer{padding:10px 16px;background:var(--surface);color:var(--muted);font-size:9px;text-align:center}.task-dialog{position:fixed;z-index:var(--z-modal);width:min(720px,calc(100vw - 28px));max-height:min(760px,calc(100dvh - 32px));padding:0;overflow:auto;background:var(--bg);border:0;border-radius:var(--radius-lg);box-shadow:0 18px 50px oklch(.2 .04 230/.28)}.task-dialog::backdrop{z-index:var(--z-modal-backdrop);background:oklch(.18 .035 230/.48)}.task-form{padding:10px 24px 24px}.dialog-handle{width:42px;height:4px;margin:0 auto 12px;border-radius:999px;background:var(--border-strong)}.task-form>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:20px}.task-form>header p{color:var(--primary-dark);font-size:11px;font-weight:650}.task-form>header h2{margin-top:2px;font-size:22px}.task-suggestion-browser{margin-bottom:20px;padding:16px;background:var(--surface);border-radius:var(--radius-md)}.suggestion-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:14px}.suggestion-heading h3{font-size:16px}.suggestion-heading p{margin-top:3px;color:var(--ink-soft);font-size:12px}.suggestion-search{display:grid;flex:0 0 210px;gap:5px}.suggestion-search>span{color:var(--ink-soft);font-size:11px;font-weight:650}.suggestion-search input{width:100%;min-height:44px;padding:0 11px;background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--ink);font-size:16px}.suggestion-groups{display:grid;grid-template-columns:1fr 1fr;gap:18px}.suggestion-group{min-width:0}.suggestion-group h4{margin:0 0 7px;color:var(--muted);font-size:12px}.suggestion-list{display:flex;flex-wrap:wrap;gap:7px}.suggestion-list button{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;max-width:100%;padding:7px 10px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--ink-soft);cursor:pointer;text-align:left}.suggestion-list button.selected,.suggestion-list button:hover{border-color:var(--primary);color:var(--primary-dark)}.suggestion-list button.selected{background:var(--primary-soft)}.suggestion-list button span,.suggestion-list button strong{display:block}.suggestion-list button strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.suggestion-list button span{flex:0 0 auto;color:var(--muted);font-size:10px}.suggestion-empty{min-height:44px;padding:11px 0;color:var(--muted);font-size:11px}.manual-entry-heading{margin:0 0 10px;font-size:16px}.field{display:flex;flex-direction:column;gap:7px}.field>span{color:var(--ink-soft);font-size:12px;font-weight:650}.field input,.field select{width:100%;min-height:48px;padding:0 12px;background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--ink);font-size:16px}.field input::placeholder{color:var(--muted);opacity:1}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.field-wide{grid-column:1/-1}.form-note{display:flex;align-items:flex-start;gap:9px;margin-top:18px;padding:12px;background:var(--surface);border-radius:var(--radius-sm)}.form-note p{color:var(--ink-soft);font-size:11px;line-height:1.6}.task-form>footer{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.field-help{color:var(--muted);font-size:11px;line-height:1.55}.form-error{min-height:18px;color:var(--danger-dark);font-size:12px;line-height:1.5}.pin-dialog,.reward-dialog{position:fixed;z-index:var(--z-modal);width:min(500px,calc(100vw - 28px));max-height:calc(100dvh - 32px);padding:0;overflow:auto;background:var(--bg);border:0;border-radius:var(--radius-lg);box-shadow:0 18px 50px oklch(.2 .04 230/.28)}.pin-dialog::backdrop,.reward-dialog::backdrop{background:oklch(.18 .035 230/.48)}.pin-form,.reward-confirmation{padding:24px}.pin-form>header,.reward-confirmation>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:20px}.pin-form>header p,.reward-confirmation>header p{color:var(--primary-dark);font-size:11px;font-weight:650}.pin-form>header h2,.reward-confirmation>header h2{margin-top:2px;font-size:21px}.pin-form>footer,.reward-confirmation>footer{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.pin-form .field input{font-size:22px;font-variant-numeric:tabular-nums;letter-spacing:.14em}.reward-confirmation>p:not(.form-error){color:var(--ink-soft);font-size:14px;line-height:1.65}.reward-balance-change{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin:20px 0 10px;padding:16px;background:var(--accent-soft);border-radius:var(--radius-md)}.reward-balance-change>span{text-align:center}.reward-balance-change small,.reward-balance-change strong{display:block}.reward-balance-change small{color:var(--accent-dark);font-size:11px}.reward-balance-change strong{margin-top:2px}.reward-balance-change strong,.reward-balance-change>b{color:var(--accent-dark);font-size:18px}.celebration{position:fixed;z-index:var(--z-toast);inset:0;display:grid;place-items:center;pointer-events:none}.celebration-card{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;width:min(320px,calc(100vw - 40px));padding:25px;background:var(--bg);border-radius:var(--radius-lg);box-shadow:0 16px 46px oklch(.22 .05 230/.24);animation:celebrate-in .52s var(--ease-out) both}.celebration-star{display:grid;place-items:center;width:58px;height:58px;margin-bottom:12px;border-radius:50%;background:var(--accent-soft);color:var(--accent-dark);font-size:28px}.celebration-card>strong{font-size:21px}.celebration-card p{margin-top:5px;color:var(--ink-soft);font-size:12px;text-align:center}.celebration-card b{margin-top:12px;color:var(--accent-dark);font-size:14px}.confetti{position:absolute;width:430px;height:330px}.confetti i{position:absolute;top:50%;left:50%;width:8px;height:15px;border-radius:3px;background:var(--primary);animation:confetti-out .75s var(--ease-out) both}.confetti i:nth-child(2n){background:var(--accent)}.confetti i:nth-child(3n){background:var(--success)}.confetti i:first-child{--x:-160px;--y:-120px;--r:70deg}.confetti i:nth-child(2){--x:-95px;--y:-150px;--r:-50deg}.confetti i:nth-child(3){--x:-45px;--y:-130px;--r:110deg}.confetti i:nth-child(4){--x:48px;--y:-145px;--r:40deg}.confetti i:nth-child(5){--x:130px;--y:-105px;--r:-90deg}.confetti i:nth-child(6){--x:175px;--y:-30px;--r:120deg}.confetti i:nth-child(7){--x:-178px;--y:20px;--r:-120deg}.confetti i:nth-child(8){--x:-135px;--y:115px;--r:80deg}.confetti i:nth-child(9){--x:110px;--y:118px;--r:-70deg}.confetti i:nth-child(10){--x:175px;--y:65px;--r:140deg}.toast{position:fixed;z-index:var(--z-toast);right:24px;bottom:24px;display:flex;align-items:center;gap:10px;min-height:54px;max-width:min(430px,calc(100vw - 28px));padding:9px 10px 9px 12px;background:var(--ink);border-radius:12px;color:var(--bg);box-shadow:0 10px 28px oklch(.16 .03 230/.28);animation:toast-in .28s var(--ease-out) both}.toast>span{display:grid;flex:0 0 auto;place-items:center;width:29px;height:29px;border-radius:50%;background:var(--success);font-size:12px;font-weight:850}.toast p{flex:1;font-size:12px}.toast button{min-height:44px;padding:0 12px;background:oklch(1 0 0/.12);border:0;border-radius:999px;color:var(--bg);font-size:11px;font-weight:750;cursor:pointer}.toast-error>span{background:var(--danger)}.mobile-nav{display:none}.planner-skeleton{display:grid;grid-template-columns:210px 1fr;min-height:100vh;background:var(--bg)}.planner-skeleton aside{display:flex;flex-direction:column;gap:16px;padding:24px;background:var(--surface)}.planner-skeleton aside i,.planner-skeleton aside span,.planner-skeleton header i,.planner-skeleton header span,.planner-skeleton section b{display:block;border-radius:10px;background:var(--surface-strong);animation:skeleton-pulse 1.4s ease-in-out infinite alternate}.planner-skeleton aside span{width:140px;height:43px;margin-bottom:22px}.planner-skeleton aside i{width:155px;height:48px}.planner-skeleton main{padding:24px 34px}.planner-skeleton header{display:flex;justify-content:space-between;margin-bottom:54px}.planner-skeleton header span{width:190px;height:44px}.planner-skeleton header i{width:110px;height:44px}.planner-skeleton section{display:grid;grid-template-columns:1fr 1fr;gap:22px}.planner-skeleton section b{height:310px}@keyframes check-pop{0%{transform:scale(.8)}70%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes celebrate-in{0%{opacity:0;transform:translateY(16px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes confetti-out{0%{opacity:0;transform:translate(0) rotate(0)}30%{opacity:1}to{opacity:0;transform:translate(var(--x),var(--y)) rotate(var(--r))}}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes skeleton-pulse{0%{opacity:.55}to{opacity:1}}@media (max-width:1180px){.parent-grid,.today-layout{grid-template-columns:minmax(0,1fr)}.today-aside{display:grid;grid-template-columns:1fr 1fr 1.2fr}.garden-hero{grid-template-columns:minmax(0,1fr) 300px}.parent-aside{display:grid;grid-template-columns:1.15fr 1fr}.parent-principle{grid-column:1/-1}.calendar-layout{grid-template-columns:minmax(0,1fr)}.selected-day-panel{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px}.selected-day-panel>header{display:block;margin:0;padding:8px 18px 8px 0;border-right:1px solid var(--border);border-bottom:0}.selected-day-panel>header>b{margin-top:13px}.selected-day-panel .empty-plan{min-height:210px}}@media (max-width:980px){.app-shell,.planner-skeleton{grid-template-columns:178px minmax(0,1fr)}.side-rail{padding-inline:13px}.brand small{display:none}.main-content{padding-inline:24px}.today-aside{grid-template-columns:1fr 1fr}.growth-panel{grid-column:1/-1}.goal-list{flex-direction:column}.parent-status-strip{grid-template-columns:1fr 1fr}.parent-status-strip>div:nth-child(2){border-right:0}.parent-status-strip>div:nth-child(-n+2){border-bottom:1px solid var(--border)}.garden-hero{grid-template-columns:1fr}.large-plant{min-height:250px}}@media (max-width:820px){.app-shell,.planner-skeleton{display:block}.planner-skeleton aside,.side-rail{display:none}.topbar{padding:max(9px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) 9px max(18px,env(safe-area-inset-left))}.mobile-brand{display:flex}.mobile-brand .brand-mark{width:37px;height:37px;border-radius:10px;font-size:14px}.role-switch{margin-left:auto;margin-right:8px}.role-switch button{min-width:70px;min-height:44px;padding-inline:13px}.topbar-actions{gap:6px}.star-balance{display:none}.avatar-button{display:grid}.main-content{padding:24px 22px calc(94px + env(safe-area-inset-bottom))}.mobile-nav{position:fixed;z-index:var(--z-sticky);right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(4,1fr);min-height:calc(68px + env(safe-area-inset-bottom));padding:6px max(8px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(8px,env(safe-area-inset-left));background:oklch(1 0 0/.98);border-top:1px solid var(--border)}.mobile-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:54px;background:transparent;border:0;border-radius:var(--radius-sm);color:var(--muted);font-size:10px;font-weight:650}.mobile-nav button span{margin-bottom:2px;font-size:17px}.mobile-nav button.active{background:var(--primary-soft);color:var(--primary-dark)}.planner-skeleton main{padding:24px}.planner-skeleton section{grid-template-columns:1fr}.notification-panel{position:fixed;top:68px;right:12px}}@media (max-width:680px){.binding-panel{padding:24px 20px}.binding-copy{padding-block:26px 20px}.binding-copy h1{font-size:25px}.topbar{flex-wrap:wrap}.mobile-brand strong{display:none}.page-heading,.parent-heading{align-items:flex-start;flex-direction:column;gap:16px}.page-heading h1,.parent-heading h1{font-size:25px}.add-button,.parent-heading>button{width:100%}.date-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.date-strip button{min-height:74px;padding-inline:1px}.date-strip button>span{font-size:10px}.date-strip button strong{font-size:17px}.focus-strip{align-items:stretch;flex-direction:column}.focus-copy strong{white-space:normal}.task-group{display:block}.task-group>h3{padding:17px 0 4px}.task-row{grid-template-columns:44px 56px minmax(0,1fr);gap:8px}.task-state{grid-column:3;justify-content:flex-start}.task-copy>div{align-items:flex-start;flex-direction:column;gap:4px}.task-copy>div>strong{white-space:normal}.parent-aside,.today-aside{display:flex}.growth-panel,.parent-principle{grid-column:auto}.week-summary{align-items:flex-start;flex-direction:column}.week-summary-copy{flex-basis:auto}.week-progress-track{width:100%}.calendar-panel{padding:13px}.calendar-day{min-height:58px;padding-inline:1px}.calendar-grid,.calendar-weekdays{grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-legend{flex-wrap:wrap}.selected-day-panel{display:block}.selected-day-panel>header{display:flex;margin-bottom:10px;padding:0 0 13px;border-right:0;border-bottom:1px solid var(--border)}.selected-day-panel>header>b{margin-top:0}.garden-copy{padding:28px 24px}.garden-stats{align-items:flex-start;flex-direction:column;gap:7px}.reward-list article{grid-template-columns:70px minmax(0,1fr)}.reward-list article>button{grid-column:1/-1;width:100%}.parent-status-strip{grid-template-columns:1fr 1fr}.parent-status-strip>div{padding-inline:14px}.help-list article{grid-template-columns:36px minmax(0,1fr)}.help-actions{grid-column:2}.upcoming-list article{grid-template-columns:44px minmax(0,1fr);padding-block:9px}.upcoming-list article>span{grid-column:2}.form-grid{grid-template-columns:1fr}.suggestion-heading{align-items:stretch;flex-direction:column}.suggestion-search{flex-basis:auto}.parent-reward-columns,.reward-create-form,.suggestion-groups{grid-template-columns:1fr}.reward-form-error{grid-column:auto}.redemption-list li{grid-template-columns:38px minmax(0,1fr)}.redemption-list li>b{grid-column:2}.pin-form>footer,.reward-confirmation>footer{flex-direction:column-reverse}.pin-form>footer button,.reward-confirmation>footer button{width:100%}.task-form>footer{flex-direction:column-reverse}.task-form>footer button{width:100%}.toast{right:14px;bottom:calc(80px + env(safe-area-inset-bottom));left:14px}}.notification-bell{display:block;font-size:20px;line-height:1;transform-origin:50% 20%}.notification-button.has-alert:not(.is-open) .notification-bell{animation:bell-arrive .64s var(--ease-out) 1}.notification-button.is-open{background:var(--primary-soft);border-color:var(--border-strong)}.notification-badge{border:2px solid var(--bg);line-height:1}@keyframes bell-arrive{0%,to{transform:rotate(0deg)}25%{transform:rotate(-12deg)}50%{transform:rotate(10deg)}75%{transform:rotate(-5deg)}}.wish-page-heading{margin-bottom:20px}.wish-coach-layout{display:grid;grid-template-columns:minmax(320px,.88fr) minmax(390px,1.12fr);gap:20px;align-items:stretch}.wish-composer,.wish-guidance{border-radius:var(--radius-lg)}.wish-composer{display:flex;flex-direction:column;padding:22px;background:var(--primary-faint);border:1px solid var(--border)}.wish-composer-heading{display:flex;align-items:center;gap:12px}.wish-composer-heading h2{font-size:19px}.wish-composer-heading p{margin-top:2px;color:var(--ink-soft);font-size:12px}.wish-pool-mark{display:grid;flex:0 0 auto;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--primary-soft);color:var(--primary-dark);font-size:24px;font-weight:700}.wish-domain-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:19px}.wish-domain-tabs button{min-height:44px;padding:0 10px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--ink-soft);font-size:12px;font-weight:700;cursor:pointer;transition:background .18s var(--ease-out),border-color .18s var(--ease-out),transform .18s var(--ease-out)}.wish-domain-tabs button:hover{border-color:var(--border-strong)}.wish-domain-tabs button:active{transform:scale(.98)}.wish-domain-tabs button.active{background:var(--primary);border-color:var(--primary);color:var(--bg)}.wish-request-field{margin-top:18px}.wish-request-field textarea{min-height:128px;padding:13px 14px;resize:vertical;background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--ink);line-height:1.65}.wish-request-field textarea::placeholder{color:var(--ink-soft)}.wish-example-list{margin-top:13px}.wish-example-list>span{display:block;margin-bottom:7px;color:var(--muted);font-size:10px;font-weight:700}.wish-example-list>div{display:flex;flex-wrap:wrap;gap:6px}.wish-example-list button{min-height:36px;padding:6px 10px;background:var(--bg);border:1px solid var(--border);border-radius:999px;color:var(--ink-soft);font-size:10px;text-align:left;cursor:pointer}.wish-privacy-note{margin-top:14px;color:var(--muted);font-size:10px;line-height:1.6}.wish-composer .form-error{min-height:22px;margin-top:5px}.wish-submit{width:100%;margin-top:auto}.wish-guidance{min-height:520px;padding:24px;background:var(--bg);border:1px solid var(--border)}.wish-guidance.needs-adult{background:var(--warning-soft);border-color:oklch(.84 .07 66)}.wish-guidance>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.wish-guidance>header span{color:var(--primary-dark);font-size:10px;font-weight:750}.wish-guidance>header h2{max-width:24ch;margin-top:4px;font-size:21px;line-height:1.35}.wish-guidance>header>b{flex:0 0 auto;min-height:28px;padding:5px 9px;border-radius:999px;background:var(--primary-soft);color:var(--primary-dark);font-size:9px}.wish-guidance.needs-adult>header>b{background:var(--warning);color:var(--bg)}.wish-guidance blockquote{margin:18px 0 0;padding:12px 14px;background:var(--surface);border-radius:var(--radius-sm);color:var(--ink-soft);font-size:12px;font-style:normal;line-height:1.65}.wish-steps{display:grid;gap:12px;margin:20px 0 0;padding:0;list-style:none}.wish-steps li{display:grid;grid-template-columns:31px minmax(0,1fr);gap:10px;align-items:start}.wish-steps li>span{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:var(--primary);color:var(--bg);font-size:11px;font-weight:800}.wish-steps li p{padding-top:4px;color:var(--ink);font-size:12px;line-height:1.65}.wish-reflection,.wish-support-tip{margin-top:17px;padding-top:14px;border-top:1px solid var(--border)}.wish-reflection span,.wish-support-tip strong{display:block;color:var(--ink-soft);font-size:10px;font-weight:750}.wish-reflection p,.wish-support-tip p{margin-top:4px;font-size:11px;line-height:1.65}.wish-science-note{margin-top:16px;padding:11px 12px;background:var(--primary-faint);border-radius:var(--radius-sm);color:var(--ink-soft);font-size:10px;line-height:1.65}.wish-guidance-actions{display:flex;justify-content:flex-end;margin-top:18px}.wish-empty-guidance{display:flex;flex-direction:column;justify-content:center;min-height:465px;max-width:54ch;margin:0 auto}.wish-empty-guidance>span{color:var(--primary);font-size:13px;font-weight:800}.wish-empty-guidance h2{margin-top:8px;font-size:23px}.wish-empty-guidance>p{margin-top:9px;color:var(--ink-soft);font-size:13px;line-height:1.7}.wish-empty-guidance ul{display:grid;gap:8px;margin:18px 0 0;padding-left:20px;color:var(--ink-soft);font-size:11px}.wish-history{margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.wish-history-list{display:flex;gap:10px;padding-bottom:5px;overflow-x:auto;scroll-snap-type:x proximity}.wish-history-list button{display:grid;flex:0 0 235px;gap:3px;min-height:92px;padding:13px;scroll-snap-align:start;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--ink);text-align:left;cursor:pointer}.wish-history-list button.active{background:var(--primary-faint);border-color:var(--primary)}.wish-history-list small,.wish-history-list span{color:var(--muted);font-size:9px}.wish-history-list strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.wish-safety-note{display:grid;grid-template-columns:minmax(160px,.35fr) minmax(0,1fr);gap:18px;margin-top:23px;padding:16px 18px;background:var(--surface);border-radius:var(--radius-md)}.wish-safety-note strong{font-size:12px}.wish-safety-note p{color:var(--ink-soft);font-size:11px;line-height:1.65}.calendar-drag-help{margin:-5px 4px 10px;color:var(--muted);font-size:9px}.calendar-move-mode{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;margin:-5px 4px 10px;padding:7px 8px 7px 12px;background:var(--primary-soft);border-radius:var(--radius-sm)}.calendar-move-mode>div{display:grid;min-width:0;gap:2px}.calendar-move-mode strong{overflow:hidden;color:var(--primary-dark);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.calendar-move-mode span{color:var(--ink-soft);font-size:9px}.calendar-move-mode>button{flex:0 0 auto;min-width:56px;min-height:44px;padding:0 12px;background:var(--bg);border:1px solid var(--border-strong);border-radius:999px;color:var(--primary-dark);font-size:10px;font-weight:750;cursor:pointer}.calendar-day{background:transparent;color:var(--ink-soft);cursor:default;transition:background .16s var(--ease-out),box-shadow .16s var(--ease-out)}.calendar-day-select{position:absolute;z-index:0;inset:0;display:block;width:100%;height:100%;padding:7px;background:transparent;border:0;color:inherit;text-align:left;cursor:pointer}.calendar-day.drag-over{background:var(--success-soft);box-shadow:inset 0 0 0 3px var(--success)}.calendar-day.drag-over .calendar-date-heading>span{background:var(--success);color:var(--bg)}.calendar-grid.is-moving-task .calendar-event-preview{pointer-events:none}.calendar-grid.is-moving-task .calendar-day:not(.moving-source){background:var(--primary-faint)}.calendar-grid.is-moving-task .calendar-day:not(.moving-source):hover{background:var(--success-soft)}.calendar-grid.is-moving-task .calendar-day-select{cursor:copy}.calendar-day.moving-source{background:var(--primary-soft);box-shadow:inset 0 0 0 2px var(--primary)}.calendar-event-preview{position:relative;z-index:2}.calendar-event-preview>button{position:relative;width:100%;border:0;font-family:inherit;text-align:left;cursor:grab;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;transition:transform .15s var(--ease-out),filter .15s var(--ease-out)}.calendar-touch-drag-handle{display:none}.calendar-event-preview>button.is-touch-dragging{filter:brightness(.96);transform:scale(.98)}.calendar-event-preview>button:hover{filter:brightness(.97);transform:translateY(-1px)}.calendar-event-preview>button:active{cursor:grabbing;transform:scale(.98)}.calendar-drag-ghost{position:fixed;z-index:var(--z-toast);top:0;left:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;max-width:min(290px,calc(100vw - 30px));min-height:44px;padding:8px 12px;background:var(--primary-dark);border-radius:var(--radius-sm);color:var(--bg);pointer-events:none;transform:translate3d(-9999px,-9999px,0);box-shadow:0 4px 8px oklch(.25 .04 230/.2)}.calendar-drag-ghost span{font-size:10px}.calendar-drag-ghost strong{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.selected-task-manage-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;border-bottom:1px solid var(--border)}.selected-task-manage-row .task-row{border-bottom:0}.calendar-manage-actions{display:flex;align-items:center;gap:6px;margin-right:10px}.calendar-manage-button,.calendar-move-button{min-width:54px;min-height:44px;padding:0 10px;background:var(--bg);border:1px solid var(--border-strong);border-radius:999px;color:var(--primary-dark);font-size:10px;font-weight:750;cursor:pointer}.calendar-move-button{background:var(--primary-soft);border-color:transparent}.calendar-manage-button:disabled,.calendar-move-button:disabled{cursor:not-allowed;opacity:.48}.calendar-edit-dialog{width:min(680px,calc(100vw - 32px));overscroll-behavior:contain}.calendar-edit-dialog,.calendar-edit-form{max-height:min(720px,calc(100dvh - 32px));overflow:hidden}.calendar-edit-form{display:flex;flex-direction:column}.calendar-edit-dialog .dialog-header{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:16px;min-height:82px;padding:17px 24px 16px;background:var(--bg);border-bottom:1px solid var(--border)}.calendar-edit-dialog .dialog-header>div{min-width:0}.calendar-edit-dialog .dialog-header span{display:block;color:var(--primary-dark);font-size:11px;font-weight:700}.calendar-edit-dialog .dialog-header h2{margin-top:2px;font-size:22px;line-height:1.25;letter-spacing:-.02em}.calendar-edit-dialog .dialog-header>button{display:grid;flex:0 0 auto;place-items:center;width:44px;height:44px;padding:0;background:var(--surface);border:0;border-radius:50%;color:var(--ink-soft);font-size:22px;line-height:1;cursor:pointer;transition:background .18s var(--ease-out),color .18s var(--ease-out),transform .18s var(--ease-out)}.calendar-edit-dialog .dialog-header>button:hover{background:var(--primary-soft);color:var(--primary-dark)}.calendar-edit-dialog .dialog-header>button:active{transform:scale(.96)}.calendar-edit-body{flex:1 1 auto;min-height:0;padding:20px 24px 14px;overflow-y:auto;overscroll-behavior:contain}.calendar-edit-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px 12px;margin-top:16px}.calendar-edit-grid .field:first-child,.calendar-edit-grid .field:nth-child(2){grid-column:span 3}.calendar-edit-grid .field:nth-child(3),.calendar-edit-grid .field:nth-child(4),.calendar-edit-grid .field:nth-child(5){grid-column:span 2}.calendar-edit-note{margin-top:16px;padding:11px 12px;background:var(--surface);border-radius:var(--radius-sm);color:var(--ink-soft);font-size:11px;line-height:1.6}.calendar-edit-body>.form-error{margin-top:6px}.calendar-delete-confirm{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:10px;padding:12px;background:var(--danger-soft);border-radius:var(--radius-sm)}.calendar-delete-confirm p{color:var(--danger-dark);font-size:11px}.calendar-delete-confirm>div,.calendar-edit-actions>div{display:flex;gap:8px}.button-danger,.calendar-delete-button{min-height:44px;padding:0 14px;border-radius:999px;font-size:11px;font-weight:750;cursor:pointer}.button-danger{background:var(--danger);border:0;color:var(--bg)}.calendar-delete-button{background:transparent;border:1px solid var(--danger);color:var(--danger-dark)}.calendar-edit-actions{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:16px;min-height:76px;padding:14px 24px;background:var(--bg);border-top:1px solid var(--border)}.calendar-edit-actions>div{justify-content:flex-end}.calendar-edit-actions .button-primary{min-width:118px}@media (max-width:900px){.wish-coach-layout{grid-template-columns:1fr}.wish-guidance{min-height:0}.wish-empty-guidance{min-height:320px}}@media (max-width:820px){.mobile-nav{grid-template-columns:repeat(5,1fr)}.mobile-nav button{padding-inline:2px}}@media (max-width:680px){.wish-composer,.wish-guidance{padding:18px}.wish-domain-tabs,.wish-guidance>header,.wish-safety-note{grid-template-columns:1fr}.wish-guidance>header{align-items:flex-start;flex-direction:column}.wish-guidance-actions button,.wish-submit{width:100%}.wish-safety-note{gap:5px}.selected-task-manage-row{grid-template-columns:minmax(0,1fr);padding-bottom:10px}.calendar-manage-actions{display:grid;grid-template-columns:1fr 1fr;width:calc(100% - 20px);margin:0 10px}.calendar-manage-button,.calendar-move-button{width:100%}.calendar-edit-dialog,.calendar-edit-form{max-height:calc(100dvh - 20px)}.calendar-edit-dialog{width:calc(100vw - 20px)}.calendar-edit-dialog .dialog-header{min-height:74px;padding:14px 18px 13px}.calendar-edit-body{padding:18px}.calendar-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-edit-grid .field:first-child,.calendar-edit-grid .field:nth-child(2),.calendar-edit-grid .field:nth-child(3),.calendar-edit-grid .field:nth-child(4){grid-column:span 1}.calendar-edit-grid .field:nth-child(5){grid-column:1/-1}.calendar-delete-confirm{align-items:stretch;flex-direction:column}.calendar-delete-confirm>div{display:grid;grid-template-columns:1fr 1fr}.calendar-edit-actions{padding:12px 18px}}@media (max-width:520px){.calendar-edit-grid{grid-template-columns:1fr}.calendar-edit-grid .field:nth-child(n){grid-column:1}.calendar-edit-actions{align-items:stretch;flex-direction:column-reverse}.calendar-edit-actions>div{display:grid;grid-template-columns:1fr 1fr}.calendar-delete-button,.calendar-edit-actions .button-primary{width:100%}}@media (prefers-reduced-motion:reduce){.notification-button.has-alert:not(.is-open) .notification-bell{animation:none}.calendar-event-preview>button{transition:none}*,:after,:before{scroll-behavior:auto!important;animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}.confetti{display:none}}.task-dialog-week{width:min(1080px,calc(100vw - 28px))}.task-dialog-month{width:min(860px,calc(100vw - 28px))}.plan-mode-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:16px;padding:5px;background:var(--surface-strong);border-radius:var(--radius-md)}.plan-mode-switch button{min-height:58px;padding:7px 12px;background:transparent;border:0;border-radius:var(--radius-sm);color:var(--ink-soft);cursor:pointer;text-align:left}.plan-mode-switch button span,.plan-mode-switch button strong{display:block}.plan-mode-switch button strong{font-size:14px}.plan-mode-switch button span{margin-top:1px;color:var(--muted);font-size:10px}.plan-mode-switch button.active{background:var(--bg);color:var(--primary-dark);box-shadow:0 3px 7px oklch(.35 .04 230/.12)}.parent-invitation-note{display:flex;align-items:flex-start;gap:9px;margin-bottom:16px;padding:11px 13px;background:var(--primary-soft);border-radius:var(--radius-sm);color:var(--primary-dark)}.parent-invitation-note>span{display:grid;flex:0 0 auto;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--primary);color:var(--bg);font-weight:800}.parent-invitation-note p{font-size:12px;line-height:1.65}.template-category-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:14px}.template-category-tabs>button{display:flex;align-items:center;gap:9px;min-height:58px;padding:8px 10px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--ink-soft);cursor:pointer;text-align:left}.template-category-tabs>button.active,.template-category-tabs>button:hover{border-color:var(--primary)}.template-category-tabs>button.active{background:var(--primary-soft);color:var(--primary-dark)}.template-category-tabs i{display:grid;flex:0 0 auto;place-items:center;width:34px;height:34px;border-radius:10px;font-size:12px;font-style:normal;font-weight:800}.template-category-tabs i.category-study{background:var(--study-soft);color:var(--study)}.template-category-tabs i.category-sport{background:var(--sport-soft);color:var(--success-dark)}.template-category-tabs i.category-life{background:var(--life-soft);color:var(--warning-dark)}.template-category-tabs small,.template-category-tabs strong{display:block}.template-category-tabs strong{font-size:13px}.template-category-tabs small{margin-top:1px;color:var(--muted);font-size:9px}.template-browser-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(220px,.65fr);gap:16px}.template-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.history-suggestion-group .suggestion-list button,.template-list button{width:100%}.history-suggestion-group .suggestion-list{display:grid;grid-template-columns:1fr}.manual-plan-section{padding-top:2px}.month-field{width:min(320px,100%);margin-top:15px}.month-weekdays{min-width:0;margin:16px 0 0;padding:0;border:0}.month-weekdays legend{margin-bottom:8px;color:var(--ink-soft);font-size:12px;font-weight:650}.month-weekdays>div{display:grid;grid-template-columns:repeat(7,minmax(52px,1fr));gap:7px}.month-weekdays button{min-height:46px;padding:0 6px;background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--ink-soft);cursor:pointer}.month-weekdays button.active{background:var(--primary);border-color:var(--primary);color:var(--bg)}.month-weekdays p{margin-top:9px;color:var(--ink-soft);font-size:11px}.week-composer{padding-top:2px}.week-composer-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:12px}.week-composer-heading h3{font-size:17px}.week-composer-heading p{margin-top:3px;color:var(--ink-soft);font-size:11px}.week-load-check{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:13px}.week-load-check>div{min-width:0;padding:8px;background:var(--surface);border-radius:var(--radius-sm)}.week-load-check small,.week-load-check span,.week-load-check strong{display:block}.week-load-check span{color:var(--muted);font-size:9px}.week-load-check strong{margin-top:2px;font-size:13px}.week-load-check small{overflow:hidden;margin-top:1px;color:var(--muted);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.week-load-check>div.crowded{background:var(--warning-soft);color:var(--warning-dark)}.week-load-check>div.crowded small,.week-load-check>div.crowded span{color:var(--warning-dark)}.week-draft-list{display:grid;gap:8px}.week-draft-list article{display:grid;grid-template-columns:30px minmax(190px,1.6fr) minmax(150px,.9fr) 112px 112px auto 42px;gap:8px;align-items:end;padding:10px;background:var(--surface);border-radius:var(--radius-md)}.draft-number{display:grid;align-self:center;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--primary-soft);color:var(--primary-dark);font-size:11px;font-weight:800}.week-draft-list .field{gap:4px}.week-draft-list .field input,.week-draft-list .field select{min-height:42px;padding-inline:9px;font-size:13px}.draft-category{align-self:center;min-width:46px;padding:5px 8px;border-radius:999px;background:var(--surface-strong);color:var(--ink-soft);font-size:10px;font-weight:750;text-align:center}.draft-category.category-study{background:var(--study-soft);color:var(--study)}.draft-category.category-sport{background:var(--sport-soft);color:var(--success-dark)}.draft-category.category-life{background:var(--life-soft);color:var(--warning-dark)}.draft-category.category-interest{background:var(--interest-soft);color:var(--interest)}.remove-draft{display:grid;place-items:center;width:42px;height:42px;padding:0;background:transparent;border:0;border-radius:50%;color:var(--muted);cursor:pointer;font-size:20px}.remove-draft:hover{background:var(--danger-soft);color:var(--danger-dark)}.week-draft-empty{min-height:96px;padding:24px;background:var(--surface);border-radius:var(--radius-md);text-align:center}.week-draft-empty strong{font-size:14px}.week-draft-empty p{margin-top:4px;color:var(--muted);font-size:11px}.composer-error{margin-top:8px}.invitation-inbox,.parent-invitation-manager{margin:18px 0 22px;padding:18px;background:var(--primary-faint);border:1px solid var(--border-strong);border-radius:var(--radius-lg)}.invitation-count{padding:5px 10px;border-radius:999px;background:var(--primary-soft);color:var(--primary-dark);font-size:10px;font-weight:750}.invitation-list,.parent-invitation-list{display:grid;gap:7px}.invitation-list article,.parent-invitation-list article{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:11px;align-items:center;padding:12px;background:var(--bg);border-radius:var(--radius-md)}.invitation-category{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--surface-strong);color:var(--ink-soft);font-size:11px;font-weight:800}.invitation-category.category-study{background:var(--study-soft);color:var(--study)}.invitation-category.category-sport{background:var(--sport-soft);color:var(--success-dark)}.invitation-category.category-life{background:var(--life-soft);color:var(--warning-dark)}.invitation-category.category-interest{background:var(--interest-soft);color:var(--interest)}.invitation-list p,.invitation-list small,.invitation-list strong,.parent-invitation-list p,.parent-invitation-list strong{display:block}.invitation-list strong,.parent-invitation-list strong{font-size:14px}.invitation-list p,.parent-invitation-list p{margin-top:2px;color:var(--ink-soft);font-size:11px}.invitation-list small{margin-top:2px;color:var(--muted);font-size:9px}.invitation-actions{display:flex;gap:7px}.invitation-actions button{min-height:42px;padding-inline:13px;font-size:11px}.parent-invitation-list article{grid-template-columns:38px minmax(0,1fr) auto auto}.parent-invitation-list article>b{color:var(--primary-dark);font-size:10px}.parent-invitation-list article>button{min-height:40px;padding:0 12px;background:transparent;border:1px solid var(--border-strong);border-radius:999px;color:var(--ink-soft);cursor:pointer;font-size:10px}.reward-heading-actions{display:flex;align-items:center;gap:9px}.reward-heading-actions .button-primary{min-height:42px;padding-inline:14px;font-size:11px}.reward-proposal-form{display:grid;grid-template-columns:minmax(190px,.8fr) minmax(190px,1fr) minmax(220px,1.2fr) 130px;gap:12px;align-items:end;margin-bottom:16px;padding:16px;background:var(--primary-faint);border:1px solid var(--border-strong);border-radius:var(--radius-md)}.reward-proposal-form>div:first-child{align-self:center}.reward-proposal-form h3{font-size:15px}.reward-proposal-form>div:first-child p{margin-top:3px;color:var(--ink-soft);font-size:10px;line-height:1.55}.proposal-cost-field{position:relative}.proposal-cost-field input{padding-right:42px}.proposal-cost-field>small{position:absolute;right:11px;bottom:14px;color:var(--muted);font-size:10px}.reward-proposal-form>.form-error{grid-column:1/-1;min-height:0}.reward-proposal-actions{display:flex;grid-column:1/-1;justify-content:flex-end;gap:8px}.child-proposal-status{margin-bottom:15px;padding:14px 16px;background:var(--surface);border-radius:var(--radius-md)}.child-proposal-status>h3{margin-bottom:8px;font-size:13px}.child-proposal-status>div{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:9px;align-items:center;min-height:46px;border-top:1px solid var(--border)}.child-proposal-status>div>span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--primary-soft);color:var(--primary-dark);font-weight:800}.child-proposal-status small,.child-proposal-status strong{display:block}.child-proposal-status strong{font-size:12px}.child-proposal-status small{color:var(--muted);font-size:9px}.child-proposal-status b{color:var(--ink-soft);font-size:10px}.reward-review-queue{margin-bottom:17px;padding:15px;background:var(--primary-faint);border-radius:var(--radius-md)}.reward-review-queue>div:first-child h3{font-size:15px}.reward-review-queue>div:first-child p{margin-top:2px;color:var(--ink-soft);font-size:10px}.reward-review-list{display:grid;gap:9px;margin-top:11px}.reward-review-card{position:relative;padding:13px;background:var(--bg);border-radius:var(--radius-md)}.proposal-badge{display:inline-flex;min-height:25px;align-items:center;padding:0 9px;border-radius:999px;background:var(--accent-soft);color:var(--accent-dark);font-size:9px;font-weight:800}.reward-review-fields{display:grid;grid-template-columns:minmax(160px,1fr) minmax(200px,1.4fr) 120px;gap:10px;margin-top:9px}.reward-review-fields .field input{min-height:43px;font-size:13px}.reward-review-card>.form-error{margin-top:5px}.reward-review-actions{display:flex;justify-content:flex-end;gap:8px}.reward-review-actions button{min-height:40px;padding-inline:13px;font-size:10px}.calendar-layout{grid-template-columns:minmax(0,1fr)}.calendar-panel{padding:14px;scroll-margin-top:90px}.calendar-toolbar{margin-bottom:12px;padding:0 4px}.calendar-toolbar>div{display:flex;align-items:center;gap:6px}.calendar-toolbar .calendar-today-button{width:auto;min-width:58px;padding:0 13px;border-radius:999px;font-size:11px;font-weight:750}.calendar-weekdays{margin-bottom:0;border-top:1px solid var(--border);border-left:1px solid var(--border)}.calendar-weekdays span{border-right:1px solid var(--border);background:var(--surface);font-weight:650}.calendar-grid{gap:0;border-top:1px solid var(--border);border-left:1px solid var(--border)}.calendar-day{align-items:stretch;justify-content:flex-start;padding:7px;overflow:hidden;border:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border);border-radius:0;text-align:left}.calendar-day:hover{background:var(--primary-faint)}.calendar-day.selected{z-index:1;background:var(--primary-soft);border-color:var(--border);box-shadow:inset 0 0 0 2px var(--primary)}.calendar-day.outside{background:var(--surface);opacity:.58}.calendar-date-heading{display:flex;align-items:center;justify-content:space-between;min-height:25px;margin-bottom:3px}.calendar-date-heading>span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;color:var(--ink-soft);font-size:12px;font-weight:750}.calendar-date-heading>small{color:var(--primary-dark);font-size:8px;font-weight:750}.calendar-day.today .calendar-date-heading>span{background:var(--primary);color:var(--bg)}.calendar-event-preview,.calendar-event-preview>button{display:grid;gap:3px;min-width:0}.calendar-event-preview>button{grid-template-columns:17px 34px minmax(0,1fr) auto;align-items:center;min-height:22px;padding:2px 4px;border-radius:5px;background:var(--primary-soft);color:var(--primary-dark)}.calendar-event-preview>button.category-study{background:var(--study-soft);color:var(--study)}.calendar-event-preview>button.category-sport{background:var(--sport-soft);color:var(--success-dark)}.calendar-event-preview>button.category-life{background:var(--life-soft);color:var(--warning-dark)}.calendar-event-preview>button.category-interest{background:var(--interest-soft);color:var(--interest)}.calendar-event-preview>button.category-other{background:var(--surface-strong);color:var(--ink-soft)}.calendar-event-preview>button.done{opacity:.66}.calendar-event-preview>button.done b{text-decoration:line-through}.calendar-event-preview>button.late{background:var(--warning-soft);color:var(--warning-dark)}.calendar-event-preview i{display:grid;place-items:center;width:16px;height:16px;border-radius:4px;background:var(--primary);color:var(--bg);font-size:7px;font-style:normal;font-weight:800}.calendar-event-preview>button.category-study i{background:var(--study)}.calendar-event-preview>button.category-sport i{background:var(--success-dark)}.calendar-event-preview>button.category-life i{background:var(--warning-dark)}.calendar-event-preview>button.category-interest i{background:var(--interest)}.calendar-event-preview>button.category-other i{background:var(--muted)}.calendar-event-preview time{font-size:8px;font-variant-numeric:tabular-nums}.calendar-event-preview b{overflow:hidden;font-size:9px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.calendar-event-preview em{font-size:9px;font-style:normal;font-weight:900}.calendar-more{padding-left:3px;color:var(--muted);font-size:8px;font-weight:700}.calendar-mobile-count,.calendar-more-compact{display:none}.selected-day-panel{min-height:0}.selected-day-panel .empty-plan{min-height:150px}@media (min-width:1400px){.calendar-layout{grid-template-columns:minmax(820px,1fr) 330px}.selected-day-panel{position:sticky;top:92px;max-height:calc(100dvh - 120px);overflow:auto}}@media (max-width:1180px){.calendar-event-preview>button:nth-of-type(n+3),.calendar-more-wide{display:none}.calendar-more-compact{display:block}.calendar-day{min-height:112px}}@media (max-width:980px){.template-browser-grid{grid-template-columns:1fr}.history-suggestion-group .suggestion-list{grid-template-columns:repeat(2,minmax(0,1fr))}.week-draft-list article{grid-template-columns:30px minmax(180px,1fr) minmax(140px,.8fr) 104px 104px 42px}.week-draft-list .draft-category{display:none}.reward-proposal-form{grid-template-columns:1fr 1fr}.reward-proposal-actions,.reward-proposal-form>.form-error,.reward-proposal-form>div:first-child{grid-column:1/-1}}@media (max-width:820px){.task-dialog-day,.task-dialog-month,.task-dialog-week{width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}.week-load-check{grid-template-columns:repeat(4,minmax(0,1fr))}.week-draft-list article{grid-template-columns:28px minmax(0,1fr) minmax(130px,.65fr) 42px}.week-draft-list .compact-field{grid-column:auto}.week-draft-list .compact-field:nth-of-type(3){grid-column:2}.week-draft-list .compact-field:nth-of-type(4){grid-column:3}.week-draft-list .remove-draft{grid-column:4;grid-row:1}.calendar-day{min-height:104px;padding:5px}.calendar-event-preview>button{grid-template-columns:16px minmax(0,1fr) auto}.calendar-event-preview time{display:none}.invitation-list article{grid-template-columns:36px minmax(0,1fr)}.invitation-actions{grid-column:2}.parent-invitation-list article{grid-template-columns:36px minmax(0,1fr) auto}.parent-invitation-list article>button{grid-column:2;justify-self:start}.reward-review-fields{grid-template-columns:1fr 1fr}.reward-review-cost{grid-column:1/-1;width:min(180px,100%)}}@media (max-width:680px){.plan-mode-switch button{min-height:48px;text-align:center}.plan-mode-switch button span{display:none}.template-category-tabs{grid-template-columns:1fr}.template-category-tabs>button{min-height:50px}.history-suggestion-group .suggestion-list,.template-list{grid-template-columns:1fr}.month-weekdays>div{grid-template-columns:repeat(4,minmax(52px,1fr))}.week-composer-heading{align-items:stretch;flex-direction:column}.week-load-check{grid-template-columns:repeat(2,minmax(0,1fr))}.week-draft-list article{grid-template-columns:28px minmax(0,1fr) 42px}.week-draft-list .field:not(.week-title-field),.week-draft-list .week-title-field{grid-column:2/-1}.week-draft-list .remove-draft{grid-column:3;grid-row:1}.invitation-inbox,.parent-invitation-manager{padding:14px}.invitation-actions,.reward-heading-actions{align-items:stretch;flex-direction:column}.reward-proposal-form,.reward-review-fields{grid-template-columns:1fr}.reward-proposal-form>*,.reward-review-cost{grid-column:1}.reward-proposal-actions,.reward-review-actions{align-items:stretch;flex-direction:column-reverse}.child-proposal-status>div{grid-template-columns:28px minmax(0,1fr)}.child-proposal-status b{grid-column:2}.calendar-panel{overflow-x:auto}.calendar-grid,.calendar-weekdays{min-width:560px}.calendar-day{min-height:70px}.calendar-event-preview>button,.calendar-more{display:none}.calendar-mobile-count{display:block;padding:3px 5px;border-radius:5px;background:var(--primary-soft);color:var(--primary-dark)}}.calendar-day{position:relative;display:block;min-height:122px;padding:36px 7px 7px}@media (max-width:1180px){.calendar-day{min-height:112px}}@media (max-width:820px){.mobile-nav{grid-template-columns:repeat(5,1fr)}.calendar-day{min-height:104px;padding:34px 5px 5px}}@media (max-width:680px){.calendar-day{min-height:70px;padding:34px 3px 3px}}@media (min-width:901px) and (max-width:1180px){.wish-composer{padding:18px}.wish-domain-tabs{margin-top:14px}.wish-request-field{margin-top:13px}.wish-request-field textarea{height:104px;min-height:104px}.wish-example-list{margin-top:10px}.wish-example-list>div{flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px}.wish-example-list button{flex:0 0 auto}.wish-privacy-note{margin-top:9px}.wish-composer .form-error{min-height:18px;margin-top:2px}.wish-submit{margin-top:8px}}.calendar-event-preview>button{touch-action:pan-y}.calendar-day-select:focus-visible{outline:0;box-shadow:inset 0 0 0 3px oklch(.72 .12 230/.8)}.calendar-more-touch{display:none}@media (any-pointer:coarse) and (min-width:681px){.calendar-event-preview>button{min-height:44px;padding-block:7px;padding-right:48px}.calendar-touch-drag-handle{position:absolute;z-index:3;top:0;right:0;display:grid;place-items:center;width:44px;height:100%;min-height:44px;border-left:1px solid oklch(.78 .04 230/.45);border-radius:0 5px 5px 0;color:currentcolor;font-size:17px;font-weight:800;line-height:1;cursor:grab;opacity:.68;touch-action:none;user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-webkit-touch-callout:none}.calendar-event-preview>button.is-touch-dragging .calendar-touch-drag-handle{background:oklch(1 0 0/.34);cursor:grabbing;opacity:1}.calendar-event-preview>button:nth-of-type(n+2),.calendar-more-compact,.calendar-more-wide{display:none}.calendar-more-touch{display:block}}.wish-example-list button{min-height:44px}.wish-privacy-note{font-size:11px}.wish-privacy-note strong{display:block;margin-top:6px;color:var(--warning-dark);font-size:12px;line-height:1.55}.wish-guidance.needs-adult:focus{outline:0;box-shadow:inset 0 0 0 3px oklch(.72 .12 70/.65)}.wish-adult-now{margin-top:18px;padding:13px 14px;background:var(--bg);border:1px solid oklch(.79 .1 67);border-radius:var(--radius-sm);color:var(--warning-dark);font-size:12px;font-weight:750;line-height:1.6}.wish-safety-note p{font-size:12px}