@font-face{font-family:"Baloo 2";font-style:normal;font-weight:500 800;font-display:swap;src:url(/assets/baloo2-latin-B_TVFhwJ.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Baloo 2";font-style:normal;font-weight:500 800;font-display:swap;src:url(/assets/baloo2-latin-ext-Dz43yst_.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Baloo 2";font-style:normal;font-weight:500 800;font-display:swap;src:url(/assets/baloo2-vietnamese-C4ZonJY6.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Baloo 2";font-style:normal;font-weight:500 800;font-display:swap;src:url(/assets/baloo2-devanagari-B4j4n2PV.woff2)format("woff2");unicode-range:U+900-97F,U+1CD0-1CF4,U+1CF7-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B0A}@font-face{font-family:Nunito;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/nunito-latin-BzFMHfZw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/nunito-latin-ext-CXYtwYOx.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/nunito-vietnamese-U01xdrZh.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/nunito-cyrillic-CY6AOgYE.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/nunito-cyrillic-ext-D4X5GqEv.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}:root{--grape-100:#efeaff;--grape-200:#dcd1ff;--grape-300:#bca6ff;--grape-500:#7b5bff;--grape-600:#6244e0;--grape-700:#4a2fb5;--sun-100:#fff3d1;--sun-300:#ffde8a;--sun-500:#ffc53d;--sun-600:#e8a400;--mint-100:#daf7ec;--mint-300:#8aeacd;--mint-500:#2bd9a6;--mint-600:#12b183;--bubble-100:#ffe6ee;--bubble-500:#ff7fa8;--bubble-600:#e9578a;--tang-100:#ffeada;--tang-500:#ff9a3d;--tang-600:#e87a17;--sky-100:#ddf6fd;--sky-500:#3fcbee;--sky-600:#17a7cb;--cherry-100:#ffe3e3;--cherry-500:#ff6b6b;--cherry-600:#e04343;--lime-100:#eef9d8;--lime-500:#a3d948;--lime-600:#7fb520;--cream-50:#fffcf7;--cream-100:#fff6ea;--cream-200:#f6eee3;--cream-300:#ece1d3;--ink-900:#241c3b;--ink-700:#3c3260;--ink-500:#6b6490;--ink-300:#9c96b8;--white:#fff;--member-1:var(--grape-500);--member-2:var(--mint-500);--member-3:var(--bubble-500);--member-4:var(--sun-500);--member-5:var(--sky-500);--member-6:var(--tang-500);--member-7:var(--lime-500);--member-8:var(--cherry-500);--surface-app:var(--cream-100);--surface-card:var(--white);--surface-raised:var(--cream-50);--surface-sunken:var(--cream-200);--surface-scrim:#241c3b6b;--text-strong:var(--ink-900);--text-body:var(--ink-700);--text-muted:var(--ink-500);--text-on-brand:var(--white);--text-on-accent:var(--ink-900);--text-link:var(--grape-600);--text-link-hover:var(--grape-700);--brand:var(--grape-500);--brand-strong:var(--grape-600);--brand-soft:var(--grape-100);--brand-tint:var(--grape-200);--accent:var(--sun-500);--accent-strong:var(--sun-600);--accent-soft:var(--sun-100);--success:var(--mint-500);--success-strong:var(--mint-600);--success-soft:var(--mint-100);--warning:var(--sun-500);--warning-strong:var(--sun-600);--warning-soft:var(--sun-100);--danger:var(--cherry-500);--danger-strong:var(--cherry-600);--danger-soft:var(--cherry-100);--info:var(--sky-500);--info-strong:var(--sky-600);--info-soft:var(--sky-100);--border:#e7dfef;--border-strong:#d6cce6;--border-dashed:#d9cfe6;--focus-ring:var(--grape-300);--shadow-tint:36 28 59;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--surface-app:#171233;--surface-card:#221b47;--surface-raised:#2c2458;--surface-sunken:#120e29;--surface-scrim:#0906189e;--text-strong:#f7f3ff;--text-body:#e6dffa;--text-muted:#a69ec9;--text-on-brand:#17102f;--text-on-accent:#17102f;--text-link:#bca6ff;--text-link-hover:#dcd1ff;--brand:#9b7bff;--brand-strong:#b191ff;--brand-soft:#2e2560;--brand-tint:#3a2f78;--accent:#ffd25f;--accent-strong:#ffe08a;--accent-soft:#3b2f16;--success:#4ce3b5;--success-strong:#7defcb;--success-soft:#143d33;--warning:#ffd25f;--warning-strong:#ffe08a;--warning-soft:#3b2f16;--danger:#ff8585;--danger-strong:#ffa3a3;--danger-soft:#45202a;--info:#64d9f5;--info-strong:#94e7fa;--info-soft:#10394a;--member-1:#9b7bff;--member-2:#4ce3b5;--member-3:#ff9cbc;--member-4:#ffd25f;--member-5:#64d9f5;--member-6:#ffb066;--member-7:#bce46b;--member-8:#ff8585;--border:#362d63;--border-strong:#473c7d;--border-dashed:#40357a;--focus-ring:#bca6ff;--shadow-tint:6 3 18;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root{--font-display:"Baloo 2", "Trebuchet MS", system-ui, sans-serif;--font-ui:"Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;--font-numeric:"Baloo 2", "Trebuchet MS", system-ui, sans-serif;--text-2xs:12px;--text-xs:14px;--text-sm:16px;--text-base:18px;--text-md:20px;--text-lg:24px;--text-xl:30px;--text-2xl:38px;--text-3xl:48px;--text-4xl:64px;--text-clock:96px;--weight-regular:400;--weight-semi:600;--weight-bold:700;--weight-black:800;--leading-tight:1;--leading-snug:1.2;--leading-normal:1.4;--leading-loose:1.6;--tracking-tight:-.02em;--tracking-normal:0;--tracking-label:.08em;--type-clock:var(--weight-bold) var(--text-clock) / var(--leading-tight) var(--font-numeric);--type-screen-title:var(--weight-bold) var(--text-xl) / var(--leading-snug) var(--font-display);--type-section-title:var(--weight-bold) var(--text-lg) / var(--leading-snug) var(--font-display);--type-card-title:var(--weight-bold) var(--text-md) / var(--leading-snug) var(--font-ui);--type-body:var(--weight-semi) var(--text-base) / var(--leading-normal) var(--font-ui);--type-meta:var(--weight-bold) var(--text-xs) / var(--leading-normal) var(--font-ui);--type-label:var(--weight-black) var(--text-2xs) / var(--leading-normal) var(--font-ui);--type-button:var(--weight-bold) var(--text-base) / var(--leading-tight) var(--font-ui);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--pad-screen:var(--space-5);--pad-panel:var(--space-5);--pad-card:var(--space-4);--gap-card:var(--space-3);--gap-panel:var(--space-4);--sidebar-width:400px;--touch-sm:56px;--touch-md:72px;--touch-lg:96px;--touch-xl:120px;--touch-gap:var(--space-3);--icon-stroke:2.5px;--icon-sm:20px;--icon-md:28px;--icon-lg:40px;--icon-xl:56px;--radius-sm:12px;--radius-md:18px;--radius-lg:24px;--radius-xl:32px;--radius-2xl:44px;--radius-pill:999px;--radius-circle:50%;--border-width:2px;--border-width-thick:3px;--shadow-soft:0 2px 6px rgb(var(--shadow-tint) / .06);--shadow-card:0 6px 18px rgb(var(--shadow-tint) / .08);--shadow-lift:0 14px 32px rgb(var(--shadow-tint) / .14);--shadow-modal:0 28px 60px rgb(var(--shadow-tint) / .28);--z-modal:60;--z-celebration:80;--edge-sm:0 3px 0;--edge-md:0 5px 0;--edge-lg:0 7px 0;--edge-press:0 1px 0;--ring-focus:0 0 0 4px var(--focus-ring);--inset-hairline:inset 0 0 0 var(--border-width) var(--border);--dur-instant:80ms;--dur-fast:.14s;--dur-base:.22s;--dur-slow:.4s;--dur-cheer:.9s;--dur-finale:3.2s;--dur-finale-xl:5.6s;--ease-bounce:cubic-bezier(.2, 1.4, .4, 1);--ease-soft:cubic-bezier(.22, .61, .36, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--press-scale:.96;--press-scale-strong:.92}@keyframes fc-pop{0%{transform:scale(.4)rotate(-20deg)}60%{transform:scale(1.35)rotate(8deg)}to{transform:scale(1)rotate(0)}}@keyframes fc-bounce{0%,to{transform:translateY(0)rotate(0)}35%{transform:translateY(-10px)rotate(-10deg)}70%{transform:translateY(0)rotate(6deg)}}@keyframes fc-cheer{0%,to{transform:scale(1)rotate(0)}30%{transform:scale(1.03)rotate(-.8deg)}60%{transform:scale(1.03)rotate(.8deg)}}@keyframes fc-wiggle{0%,to{transform:rotate(-9deg)}50%{transform:rotate(9deg)}}@keyframes fc-invite{0%,to{opacity:.65;transform:scale(1)}50%{opacity:1;transform:scale(1.09)}}@keyframes fc-glow{0%,to{box-shadow:0 0 #ff9a3d00}50%{box-shadow:0 0 16px #ff9a3d99}}@keyframes fc-sparkle-burst{0%{transform:rotate(var(--fc-angle,0deg)) translateY(0) scale(1);opacity:1}to{transform:rotate(var(--fc-angle,0deg)) translateY(-52px) scale(0);opacity:0}}@keyframes fc-confetti-fall{0%{opacity:1;transform:translate(0,0)rotate(0)}to{transform:translate3d(var(--fc-drift,0px), var(--fc-fall,320px), 0) rotate(var(--fc-spin,540deg));opacity:0}}@keyframes fc-float-up{0%{opacity:0;transform:translateY(6px)scale(.7)}25%{opacity:1;transform:translateY(-6px)scale(1.15)}to{opacity:0;transform:translateY(-54px)scale(1)}}@keyframes fc-stamp-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)rotate(-12deg)}to{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(-3deg)}}@keyframes fc-stamp-out{to{opacity:0;transform:translate(-50%,-50%)scale(.85)rotate(-3deg)}}@keyframes fc-ripple{0%{opacity:.55;transform:scale(.4)}to{opacity:0;transform:scale(2.6)}}@keyframes fc-spin-slow{to{transform:rotate(360deg)}}.fc-anim-pop{animation:fc-pop var(--dur-slow) var(--ease-bounce) both}.fc-anim-bounce{animation:fc-bounce .6s var(--ease-out)}.fc-anim-cheer{animation:fc-cheer .5s var(--ease-out)}.fc-anim-wiggle{animation:fc-wiggle .8s var(--ease-in-out) infinite}.fc-anim-invite{animation:fc-invite 2.2s var(--ease-in-out) infinite}.fc-anim-glow{animation:fc-glow 1.6s var(--ease-in-out) infinite}@keyframes fc-cannon{0%{opacity:1;animation-timing-function:cubic-bezier(.02,.8,.2,1);transform:translate(0)rotate(0)scale(.7)}20%{transform:translate(calc(var(--fc-x) * .6), var(--fc-y)) rotate(calc(var(--fc-spin) * .34)) scale(1);opacity:1;animation-timing-function:cubic-bezier(.45,.02,.85,1)}88%{opacity:1}to{transform:translate(var(--fc-x), calc(var(--fc-y) + var(--fc-drop))) rotate(var(--fc-spin)) scale(1);opacity:0}}@keyframes fc-finale-wash{0%{opacity:0}12%{opacity:1}70%{opacity:1}to{opacity:0}}@keyframes fc-finale-stamp{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)rotate(-8deg)}55%{opacity:1;transform:translate(-50%,-50%)scale(1.06)rotate(2deg)}70%{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(0)}88%{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(0)}to{opacity:0;transform:translate(-50%,-50%)scale(.86)rotate(0)}}@media (prefers-reduced-motion:reduce){.fc-anim-pop,.fc-anim-bounce,.fc-anim-cheer,.fc-anim-wiggle,.fc-anim-invite,.fc-anim-glow{animation:none}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;margin:0}body{background:var(--surface-app);color:var(--text-body);font:var(--type-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;-webkit-user-select:none;user-select:none}h1,h2,h3,h4{font-family:var(--font-display);color:var(--text-strong);text-wrap:pretty;margin:0}button,input,select,textarea{font-family:inherit}a{color:var(--text-link);font-weight:var(--weight-bold);text-decoration:none}a:hover{color:var(--text-link-hover);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:2px}:focus-visible{box-shadow:var(--ring-focus);border-radius:var(--radius-sm);outline:none}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-pill)}::-webkit-scrollbar-track{background:0 0}:root{--radius:var(--radius-lg);--shadow:var(--shadow-card)}html,body,#root{height:100%}body{overflow:hidden}.app{gap:var(--space-4);height:100dvh;padding:var(--pad-screen);background:var(--surface-app);grid-template-rows:auto 1fr;min-height:0;display:grid}.app.has-banner{grid-template-rows:auto auto 1fr}.app.has-two-banners{grid-template-rows:auto auto auto 1fr}.top-banner{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4) var(--space-3) var(--space-5);background:var(--warning-soft);border:var(--border-width) solid var(--warning);border-radius:var(--radius-lg);color:var(--text-strong);font:var(--type-body);display:flex}.top-banner>span,.top-banner .banner-text{text-wrap:pretty;flex:1}.top-banner .banner-icon{color:var(--warning-strong)}.header{justify-content:space-between;align-items:center;gap:var(--space-4);padding:0 var(--space-2);min-width:0;display:flex}.header-left{align-items:center;gap:var(--space-5);flex:0 auto;min-width:0;display:flex}.header .clock{font:var(--type-clock);color:var(--text-strong);letter-spacing:var(--tracking-tight);align-items:baseline;gap:var(--space-2);display:flex}.header .clock .ampm{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--text-muted)}.header .date{font:var(--weight-bold) var(--text-md) / 1.2 var(--font-ui);color:var(--text-muted);margin-top:var(--space-1)}.header .tabs{gap:var(--space-1);padding:var(--space-1);background:var(--surface-sunken);border:var(--border-width) solid var(--border);border-radius:var(--radius-pill);flex:none;display:inline-flex}.header .tabs button{align-items:center;gap:var(--space-2);min-height:var(--touch-md);padding:0 var(--space-5);border-radius:var(--radius-pill);color:var(--text-muted);font:var(--weight-bold) var(--text-md) / 1 var(--font-ui);cursor:pointer;transition:background var(--dur-fast) var(--ease-soft), color var(--dur-fast) var(--ease-soft);background:0 0;border:0;display:inline-flex}.header .tabs button.icon-only{width:var(--touch-md);justify-content:center;padding:0}@media (width<=1400px){.header .tabs button{font-size:var(--text-base);padding:0 var(--space-4)}}.header .tabs button.active{background:var(--brand);color:var(--text-on-brand)}.header-right{align-items:flex-end;gap:var(--space-2);white-space:nowrap;flex-direction:column;flex:none;display:flex}.header-right-row{align-items:center;gap:var(--space-3);display:flex}.header .who{align-items:center;gap:var(--space-2);color:var(--text-muted);font:var(--type-meta);display:flex}.header .who img{border-radius:var(--radius-circle)}.header .who .btn{margin-left:var(--space-1)}.weather{align-items:center;gap:var(--space-5);display:flex}.weather-loading,.weather-error{color:var(--text-muted);font:var(--type-meta);align-items:center;min-height:44px;display:flex}.weather-now{align-items:center;gap:var(--space-3);display:flex}.weather-now .w-icon{color:var(--accent-strong)}.w-temp-block{flex-direction:column;gap:1px;line-height:1.1;display:flex}.w-temp{font:var(--weight-bold) var(--text-xl) / 1 var(--font-numeric);color:var(--text-strong)}.w-hilo{font:var(--type-label);color:var(--text-muted)}.w-meta{flex-direction:column;line-height:1.2;display:flex}.w-cond{font:var(--type-meta);color:var(--text-body)}.w-place{font:var(--type-label);color:var(--text-muted)}.weather-forecast{gap:var(--space-3);padding-left:var(--space-5);border-left:var(--border-width) solid var(--border);display:flex}.w-day{flex-direction:column;align-items:center;gap:2px;min-width:52px;display:flex}.w-day-name{font:var(--type-label);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--tracking-label)}.w-day-icon{color:var(--text-muted)}.w-day-temp{font:var(--weight-bold) var(--text-xs) / 1 var(--font-ui);color:var(--text-body)}.w-day-min{color:var(--text-muted);font-weight:var(--weight-semi);margin-left:3px}.layout{grid-template-columns:minmax(0, 1fr) var(--sidebar-width);gap:var(--gap-panel);min-height:0;display:grid}.panel{background:var(--surface-card);border:var(--border-width) solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);flex-direction:column;min-height:0;display:flex;overflow:hidden}.panel h2{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5) var(--space-3);font:var(--type-section-title);color:var(--text-strong);text-transform:none;letter-spacing:0;margin:0;display:flex}.panel h2 .panel-icon{color:var(--brand)}.sidebar{gap:var(--gap-panel);grid-template-rows:1fr;min-height:0;display:grid}.week{background:var(--border);border-top:var(--border-width) solid var(--border);border-bottom:var(--border-width) solid var(--border);flex:1;grid-template-columns:repeat(7,minmax(0,1fr));gap:0 1px;min-height:0;display:grid;overflow:hidden}.day-col{background:var(--surface-card);flex-direction:column;min-width:0;min-height:0;display:flex}.day-col.today{background:var(--brand-soft)}.day-head{text-align:center;padding:var(--space-3) var(--space-2);border-bottom:var(--border-width) solid var(--border)}.day-head .dow{font:var(--type-label);letter-spacing:var(--tracking-label);color:var(--text-muted);text-transform:uppercase}.day-head .num{font:var(--weight-bold) var(--text-xl) / 1 var(--font-numeric);color:var(--text-strong);margin-top:2px}.day-head.today .num{color:var(--brand-strong)}.day-events{padding:var(--space-2);gap:var(--space-2);flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.event{padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--surface-card);border:var(--border-width) solid var(--border-strong);border-left:6px solid var(--brand);color:var(--text-strong);box-shadow:var(--shadow-card);cursor:pointer;transition:transform var(--dur-instant) var(--ease-soft)}.event:active{transform:scale(var(--press-scale))}.event .time{font:var(--type-meta);color:var(--text-muted)}.event .title{font:var(--weight-bold) var(--text-sm) / 1.25 var(--font-ui);-webkit-line-clamp:2;overflow-wrap:break-word;text-wrap:pretty;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.event.all-day{padding-left:var(--space-3);box-shadow:var(--shadow-soft);color:var(--text-on-accent);border:none}.week>.event.all-day{z-index:1;align-items:center;gap:var(--space-1) var(--space-2);min-width:0;margin:var(--space-1) var(--space-2);flex-wrap:wrap;display:flex;position:relative}.week>.event.all-day.first-lane{margin-top:var(--space-2)}.week>.event.all-day .title{-webkit-line-clamp:1;flex:auto;min-width:0}.week>.event.all-day.from-before{padding-left:var(--space-1);border-top-left-radius:0;border-bottom-left-radius:0;margin-left:0}.week>.event.all-day.to-after{padding-right:var(--space-1);border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0}.week>.event.all-day .span-cue{opacity:.7;flex:none}.empty-hint{color:var(--border-strong);font:var(--type-meta);text-align:center;padding:var(--space-4) var(--space-2)}.meal-strip{padding:var(--space-3) var(--space-4) var(--space-4)}.meal-label{align-items:center;gap:var(--space-2);font:var(--type-label);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--tracking-label);padding:0 0 var(--space-2);display:flex}.meal-row{gap:var(--space-2);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.meal-cell{min-height:var(--touch-sm);justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);text-align:center;border-radius:var(--radius-md);background:var(--surface-raised);border:var(--border-width) solid var(--border);color:var(--text-strong);cursor:pointer;transition:transform var(--dur-instant) var(--ease-soft);display:flex}.meal-cell:active{transform:scale(var(--press-scale))}.meal-cell.today{box-shadow:inset 0 0 0 var(--border-width) var(--brand)}.meal-cell.empty{border-style:dashed;border-color:var(--border-dashed);color:var(--text-muted);background:0 0}.meal-text{font:var(--weight-bold) var(--text-sm) / 1.25 var(--font-ui);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.meal-add{align-items:center;gap:var(--space-1);font:var(--type-meta);color:var(--text-muted);display:inline-flex}.tasks-body{padding:var(--space-1) var(--space-3) var(--space-4);overflow-y:auto}.task-list-title{font:var(--type-label);color:var(--text-muted);margin:var(--space-3) var(--space-2) var(--space-2);text-transform:uppercase;letter-spacing:var(--tracking-label)}.task{align-items:center;gap:var(--space-3);min-height:var(--touch-md);padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);background:var(--surface-card);border:var(--border-width) solid var(--border);display:flex}.checkbox{border-radius:var(--radius-sm);border:var(--border-width-thick) solid var(--border-strong);width:44px;height:44px;color:var(--text-on-accent);cursor:pointer;transition:background var(--dur-fast) var(--ease-soft), border-color var(--dur-fast) var(--ease-soft), transform var(--dur-instant) var(--ease-soft);background:0 0;flex:none;place-items:center;padding:0;display:grid}.checkbox:active{transform:scale(var(--press-scale-strong))}.checkbox:disabled{cursor:default;opacity:.6}.checkbox svg{opacity:0}.task.done .checkbox{background:var(--success);border-color:var(--success)}.task.done .checkbox svg{opacity:1;animation:fc-pop var(--dur-slow) var(--ease-bounce) both}.task .label{min-width:0;font:var(--type-body);color:var(--text-strong);flex:1}.task.done .label{color:var(--text-muted);text-decoration:line-through}.task-notes{font:var(--type-meta);font-weight:var(--weight-regular);color:var(--text-muted);white-space:pre-wrap;margin-top:2px;text-decoration:none}.task .due{align-items:center;gap:var(--space-1);border-radius:var(--radius-pill);background:var(--surface-sunken);color:var(--text-muted);font:var(--type-label);white-space:nowrap;margin-left:auto;padding:3px 10px;display:inline-flex}.task .due.overdue{background:var(--danger-soft);color:var(--danger-strong)}.chores{flex-direction:column;height:100%;min-height:0;display:flex}.chore-toolbar{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5) var(--space-3);flex:none;display:flex}.chore-toolbar h2{padding:0}.date-strip{align-items:center;gap:var(--space-2);display:flex}.date-strip .today-label{font:var(--type-meta);color:var(--text-muted);text-align:center;min-width:150px}.avatar{border-radius:var(--radius-circle);width:48px;height:48px;color:var(--text-on-accent);font-size:27px;line-height:1;font-family:var(--font-display);font-weight:var(--weight-black);flex:none;place-items:center;display:grid;overflow:hidden}.avatar.sm{width:34px;height:34px;font-size:19px}.avatar.lg{width:64px;height:64px;font-size:36px}.member-name{font:var(--type-card-title);color:var(--text-strong)}.member-points{font:var(--type-meta);color:var(--accent-strong)}.chore-columns{gap:var(--space-4);padding:0 var(--space-5) var(--space-5);flex:1;min-height:0;display:flex;overflow-x:auto}.member-column{background:var(--surface-sunken);border:var(--border-width) solid var(--border);border-radius:var(--radius-lg);flex-direction:column;flex:1 1 0;min-width:230px;min-height:0;display:flex;overflow:hidden}.member-column .col-head{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:var(--border-width) solid var(--border);flex:none;display:flex}.member-column .col-head .meta{flex-direction:column;gap:2px;min-width:0;display:flex}.member-column .chore-cards{min-height:0;padding:var(--space-3);gap:var(--space-2);flex-direction:column;flex:1;display:flex;overflow-y:auto}.chore-card{align-items:center;gap:var(--space-4);min-height:var(--touch-md);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--surface-card);border:var(--border-width) solid var(--border);box-shadow:var(--shadow-soft);cursor:pointer;transition:transform var(--dur-instant) var(--ease-soft), background var(--dur-base) var(--ease-soft), border-color var(--dur-base) var(--ease-soft);display:flex;position:relative}.chore-card:active{transform:scale(var(--press-scale));box-shadow:none}.chore-columns.read-only .chore-card{opacity:.6;cursor:default}.chore-columns.read-only .chore-card:active{transform:none}.locked-day-hint{margin:0 var(--space-5) var(--space-3)}.chore-card.by-other{cursor:default}.chore-card.by-other:active{transform:none}.chore-card.done{background:var(--success-soft);border-color:var(--success)}.chore-card .check{border-radius:var(--radius-sm);border:var(--border-width-thick) solid var(--border-strong);width:44px;height:44px;color:var(--text-on-accent);background:0 0;flex:none;place-items:center;display:grid;position:relative}.chore-card .check svg{opacity:0}.chore-card.done .check{background:var(--success);border-color:var(--success)}.chore-card.done .check svg{opacity:1}.chore-card .c-icon{color:var(--text-body);flex:none}.chore-card.done .c-icon{color:var(--success-strong)}.chore-card .c-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.chore-card .c-title{font:var(--type-card-title);color:var(--text-strong);-webkit-line-clamp:2;text-wrap:pretty;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.chore-card.done .c-title{color:var(--text-muted);text-decoration:line-through}.chore-card .c-meta{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.chip,.c-pts,.c-tag,.c-by{align-items:center;gap:var(--space-1);border-radius:var(--radius-pill);background:var(--surface-sunken);color:var(--text-muted);font:var(--type-label);white-space:nowrap;text-transform:none;letter-spacing:0;padding:3px 10px;display:inline-flex}.c-pts{background:var(--accent-soft);color:var(--accent-strong)}.c-by{background:var(--success-soft);color:var(--success-strong)}.col-empty{color:var(--text-muted);font:var(--type-meta);text-align:center;padding:var(--space-5) var(--space-2)}.item-row{align-items:center;gap:var(--space-3);min-height:var(--touch-sm);padding:var(--space-2) 0;border-bottom:var(--border-width) solid var(--border);font:var(--type-body);color:var(--text-strong);display:flex}.item-row .grow{flex:1;min-width:0}.item-row img{border-radius:var(--radius-circle)}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--touch-md);padding:0 var(--space-6);border-radius:var(--radius-pill);background:var(--surface-card);color:var(--text-strong);font:var(--type-button);white-space:nowrap;cursor:pointer;box-shadow:var(--edge-md) var(--border-strong), inset 0 0 0 var(--border-width) var(--border-strong);transition:transform var(--dur-instant) var(--ease-soft), box-shadow var(--dur-instant) var(--ease-soft), background var(--dur-fast) var(--ease-soft);border:none;display:inline-flex}.btn:active{box-shadow:var(--edge-press) var(--border-strong), inset 0 0 0 var(--border-width) var(--border-strong);transform:translateY(4px)}.btn.primary{background:var(--brand);color:var(--text-on-brand);box-shadow:var(--edge-md) var(--brand-strong)}.btn.primary:active{box-shadow:var(--edge-press) var(--brand-strong)}.btn.accent{background:var(--accent);color:var(--text-on-accent);box-shadow:var(--edge-md) var(--accent-strong)}.btn.accent:active{box-shadow:var(--edge-press) var(--accent-strong)}.btn.danger{background:var(--danger);color:var(--text-on-brand);box-shadow:var(--edge-md) var(--danger-strong)}.btn.danger:active{box-shadow:var(--edge-press) var(--danger-strong)}.btn.ghost{color:var(--text-body);box-shadow:none;background:0 0}.btn.ghost:hover{background:var(--brand-soft)}.btn.ghost:active{box-shadow:none;transform:none}.btn.small{min-height:var(--touch-sm);padding:0 var(--space-5);font-size:var(--text-sm);box-shadow:var(--edge-sm) var(--border-strong), inset 0 0 0 var(--border-width) var(--border-strong)}.btn.small:active{transform:translateY(2px)}.btn.small.primary{box-shadow:var(--edge-sm) var(--brand-strong)}.btn.small.accent{box-shadow:var(--edge-sm) var(--accent-strong)}.btn.small.danger{box-shadow:var(--edge-sm) var(--danger-strong)}.btn.small.ghost{box-shadow:none}.btn.icon{width:var(--touch-md);height:var(--touch-md);border-radius:var(--radius-circle);padding:0}.btn.icon.small{width:var(--touch-sm);height:var(--touch-sm)}.btn:disabled{opacity:.45;cursor:default;box-shadow:inset 0 0 0 var(--border-width) var(--border-strong);transform:none}.btn.primary:disabled,.btn.accent:disabled,.btn.danger:disabled,.btn.ghost:disabled{box-shadow:none}.row{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.panel-actions{gap:var(--space-2);padding:0 var(--space-4) var(--space-3);display:flex}.modal-backdrop{background:var(--surface-scrim);-webkit-backdrop-filter:blur(6px);z-index:var(--z-modal);padding:var(--space-6);place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--surface-card);border:var(--border-width) solid var(--border);border-radius:var(--radius-2xl);padding:var(--space-5);width:min(620px,100%);max-height:88vh;box-shadow:var(--shadow-modal);overflow:auto}.modal h3{margin:0 0 var(--space-4);font:var(--type-screen-title);color:var(--text-strong)}.field{gap:var(--space-2);margin-bottom:var(--space-4);flex-direction:column;display:flex}.field label{font:var(--type-meta);color:var(--text-muted)}.field input,.field select,input.input,select.input{min-height:var(--touch-md);width:100%;min-width:0;padding:0 var(--space-4);font:var(--type-body);color:var(--text-strong);background:var(--surface-raised);border:var(--border-width) solid var(--border-strong);border-radius:var(--radius-md);outline:none}.field input:focus-visible,.field select:focus-visible{border-color:var(--brand);box-shadow:var(--ring-focus)}.field input::placeholder{color:var(--text-muted);font-weight:var(--weight-semi)}.swatches{gap:var(--space-3);flex-wrap:wrap;display:flex}.swatch{border-radius:var(--radius-circle);cursor:pointer;width:48px;height:48px;transition:transform var(--dur-fast) var(--ease-bounce);border:4px solid #0000}.swatch.selected{border-color:var(--surface-card);box-shadow:0 0 0 var(--border-width-thick) var(--text-strong);transform:scale(1.08)}.day-toggles{gap:var(--space-2);flex-wrap:wrap;display:flex}.day-toggle{border-radius:var(--radius-md);border:var(--border-width) solid var(--border-strong);background:var(--surface-raised);width:56px;height:56px;color:var(--text-muted);font:var(--weight-black) var(--text-md) / 1 var(--font-ui);cursor:pointer;transition:background var(--dur-fast) var(--ease-soft), box-shadow var(--dur-fast) var(--ease-soft)}.day-toggle.on{background:var(--brand);color:var(--text-on-brand);box-shadow:0 4px 0 var(--brand-strong);border-color:#0000}.emoji-pick{gap:var(--space-2);flex-wrap:wrap;display:flex}.emoji-pick button{border-radius:var(--radius-md);border:var(--border-width) solid var(--border-strong);background:var(--surface-raised);width:56px;height:56px;color:var(--text-body);cursor:pointer;transition:background var(--dur-fast) var(--ease-soft), border-color var(--dur-fast) var(--ease-soft), transform var(--dur-fast) var(--ease-bounce);place-items:center;font-size:30px;line-height:1;display:grid}.emoji-pick button.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-strong);box-shadow:inset 0 0 0 1px var(--brand);transform:scale(1.06)}.emoji-pick.avatars button.on{background:var(--pick-color,var(--brand));border-color:#0000}.modal-actions{justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-2);padding-top:var(--space-4);border-top:var(--border-width) solid var(--border);display:flex}.center-note{color:var(--text-muted);text-align:center;padding:var(--space-10) var(--space-5);font:var(--type-body);text-wrap:pretty}.settings{min-height:0}.settings-body{flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:240px 1fr;min-height:0;display:grid}.settings-nav{gap:var(--space-1);padding:0 var(--space-4) var(--space-4);border-right:var(--border-width) solid var(--border);flex-direction:column;display:flex}.settings-nav button{align-items:center;gap:var(--space-3);min-height:var(--touch-sm);padding:0 var(--space-4);text-align:left;border-radius:var(--radius-md);color:var(--text-muted);font:var(--weight-bold) var(--text-base) / 1 var(--font-ui);cursor:pointer;transition:background var(--dur-fast) var(--ease-soft), color var(--dur-fast) var(--ease-soft);background:0 0;border:none;display:flex}.settings-nav button:hover{background:var(--brand-soft)}.settings-nav button.active{background:var(--brand-soft);color:var(--brand-strong)}.settings-nav-link{box-shadow:inset 0 0 0 var(--border-width) var(--border-strong);margin-top:auto;color:var(--text-strong)!important}.settings-content{padding:0 var(--space-6) var(--space-6);overflow:auto}.settings-content>:not(.modal-backdrop){max-width:680px}.settings-section-head{margin:var(--space-5) 0 var(--space-3)}.settings-section-head h3{font:var(--type-section-title);color:var(--text-strong);margin:0 0 2px}.settings-hint{color:var(--text-muted);font:var(--type-meta);font-weight:var(--weight-semi)}.settings-hint.danger{color:var(--danger-strong)}.cal-row{cursor:pointer}.cal-row input{width:28px;height:28px;accent-color:var(--success);flex:none}.cal-swatch{border-radius:6px;flex:none;width:18px;height:18px}.route-skeleton{gap:var(--space-4);min-height:100dvh;padding:var(--pad-screen);background:var(--surface-app);grid-template-rows:auto 1fr;display:grid}.route-skeleton-bar,.route-skeleton-card{background:var(--surface-card);border-radius:var(--radius-lg);animation:route-skeleton-pulse 1.6s var(--ease-in-out) infinite}.route-skeleton-bar{height:72px}.route-skeleton-body{gap:var(--space-4);grid-template-columns:2fr 1fr;display:grid}@media (width<=720px){.route-skeleton-body{grid-template-columns:1fr}}@keyframes route-skeleton-pulse{0%,to{opacity:.55}50%{opacity:.9}}.login{min-height:100vh;padding:var(--space-8);background:var(--surface-app);place-items:center;display:grid}.login-card{background:var(--surface-card);border:var(--border-width) solid var(--border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-card);padding:var(--space-10) var(--space-8);text-align:center;width:min(520px,100%)}.login-logo{justify-content:center;gap:var(--space-2);margin-bottom:var(--space-5);display:flex}.login-logo .avatar{width:56px;height:56px;font-size:31px}.login-card h1{margin:0 0 var(--space-3);font:var(--weight-black) var(--text-2xl) / 1.1 var(--font-display);color:var(--text-strong)}.login-card p{font:var(--type-body);color:var(--text-muted);margin:0 0 var(--space-8);text-wrap:pretty}.login-btn{width:100%;min-height:var(--touch-lg);font-size:var(--text-md);border-radius:var(--radius-2xl);box-shadow:var(--edge-lg) var(--brand-strong)}.login-btn:active{transform:translateY(6px)}.login-btn:disabled{opacity:.6;cursor:default}.login-note{font:var(--type-meta);color:var(--text-muted);margin:var(--space-5) 0 0}.login-error{margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--danger-soft);border:var(--border-width) solid var(--danger);color:var(--text-strong);font:var(--type-meta);text-align:left}.shop-error{align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--danger-soft);border:var(--border-width) solid var(--danger);color:var(--text-strong);display:flex}.shop-error .grow{flex:1}.item-row.editing{background:var(--surface-raised);border-radius:var(--radius-md)}.chore-form{margin-top:var(--space-2)}.member-toggles{gap:var(--space-2);flex-wrap:wrap;display:flex}.member-toggle{align-items:center;gap:var(--space-2);min-height:var(--touch-sm);padding:var(--space-2) var(--space-4) var(--space-2) var(--space-2);border-radius:var(--radius-pill);border:var(--border-width) solid var(--border);color:var(--text-muted);font:var(--type-meta);cursor:pointer;transition:background var(--dur-fast) var(--ease-soft), border-color var(--dur-fast) var(--ease-soft);background:0 0;display:inline-flex}.member-toggle.on{color:var(--text-strong);background:var(--surface-raised)}.member-toggle .avatar{width:34px;height:34px;font-size:19px}.mode-pick{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.mode-pick button{align-items:flex-start;gap:var(--space-1);text-align:left;min-height:var(--touch-md);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:var(--border-width) solid var(--border-strong);background:var(--surface-raised);color:var(--text-muted);font:var(--type-meta);font-weight:var(--weight-semi);cursor:pointer;flex-direction:column;line-height:1.3;display:flex}.mode-pick button strong{color:var(--text-strong);font:var(--type-card-title)}.mode-pick button.on{border-color:var(--brand);background:var(--brand-soft)}.chore-group{gap:var(--space-2);margin-bottom:var(--space-1);flex-direction:column;display:flex}.chore-group-head{padding:var(--space-2) var(--space-1) 0;font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted);justify-content:space-between;align-items:baseline;display:flex}.chore-group.all-done .chore-group-head{color:var(--success-strong)}.chore-group-count{letter-spacing:0}.group-label{margin:var(--space-4) 0 var(--space-1);font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted)}.list-toolbar{justify-content:space-between;align-items:center;gap:var(--space-3);margin:var(--space-2) 0 var(--space-1);display:flex}.chore-list-group{margin-bottom:var(--space-2)}.chore-row{align-items:center;gap:var(--space-4);min-height:var(--touch-md);padding:var(--space-3) 0;border-bottom:var(--border-width) solid var(--border);cursor:pointer;display:flex}.chore-row:hover{background:var(--surface-raised)}.chore-row-icon{color:var(--text-body);flex:none;place-items:center;width:34px;display:grid}.chore-row-main{flex:1;min-width:0}.chore-row-title{font:var(--type-card-title);color:var(--text-strong)}.chore-row-meta{gap:var(--space-2);color:var(--text-muted);font:var(--type-meta);font-weight:var(--weight-semi);flex-wrap:wrap;display:flex}.chore-row-people{gap:var(--space-1);display:flex}.chore-row-people .avatar{width:34px;height:34px;font-size:19px}.star-card{padding:var(--space-4) var(--space-3);border-radius:var(--radius-xl);background:var(--surface-raised);border:var(--border-width) solid var(--border);align-items:stretch;gap:var(--space-3);flex-direction:column;flex:none;display:flex;position:relative;overflow:hidden}.star-card.complete{border-color:var(--accent);background:var(--accent-soft)}.star-card.finale{animation:fc-cheer .6s var(--ease-out) 2}.star-action{align-items:center;gap:var(--space-3);display:flex}.star-action-icon{color:var(--text-muted);flex:none}.star-action .c-title{font:var(--type-card-title);color:var(--text-strong)}.star-hint{color:var(--text-muted);font:var(--type-meta);font-weight:var(--weight-semi)}.star-row{place-content:center;gap:var(--space-1);--star-size:clamp(48px, calc((100cqw - (var(--per-row) - 1) * var(--space-1)) / var(--per-row)), 80px);flex-wrap:wrap;flex:none;min-width:0;display:flex;container-type:inline-size}.star-row .star{width:var(--star-size);height:var(--star-size);cursor:pointer;color:var(--border-strong);transition:opacity var(--dur-slow) var(--ease-soft), transform var(--dur-slow) var(--ease-soft);background:0 0;border:none;place-items:center;padding:0;display:grid;position:relative}.star-row .star:active .star-glyph{transform:scale(var(--press-scale-strong))}.star-row .star.on{color:var(--accent)}.star-row .star.on .star-glyph{fill:currentColor;filter:drop-shadow(0 3px 6px #ffc53d73)}.star-row .star.next .star-glyph{animation:fc-invite 2.2s var(--ease-in-out) infinite}.star-row .star.pop .star-glyph{animation:fc-pop var(--dur-slow) var(--ease-bounce) both}.star-row .star.fading{opacity:0;transform:scale(.6)}.star-glyph{width:78%;height:78%;transition:transform var(--dur-instant) var(--ease-soft);display:block}.sparkles{pointer-events:none;position:absolute;inset:0}.sparkles i{border-radius:var(--radius-circle);background:var(--accent);--fc-angle:calc(var(--k) * 45deg);width:10px;height:10px;animation:fc-sparkle-burst var(--dur-cheer) var(--ease-out) both;margin:-5px 0 0 -5px;position:absolute;top:50%;left:50%}.sparkles i:nth-child(odd){background:var(--accent-soft);width:7px;height:7px;margin:-3.5px 0 0 -3.5px}.star-prize-block{text-align:center;padding:var(--space-3);border-radius:var(--radius-lg);border:var(--border-width) dashed var(--border-dashed);justify-content:center;align-items:center;gap:var(--space-2) var(--space-3);background:0 0;flex-wrap:wrap;display:flex}.star-prize-block.won{border-style:solid;border-color:var(--accent);background:var(--accent-soft)}.star-prize-icon{color:var(--text-muted)}.star-prize-block.won .star-prize-icon{color:var(--accent-strong);animation:fc-wiggle .8s var(--ease-in-out) infinite}.star-prize-name{font:var(--type-card-title);color:var(--text-strong)}.star-count{font:var(--weight-black) var(--text-md) / 1 var(--font-numeric);color:var(--accent-strong)}.star-actions{gap:var(--space-2);flex-wrap:wrap;flex-basis:100%;justify-content:center;display:flex}.confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti i{border-radius:3px;animation-name:fc-confetti-fall;animation-timing-function:linear;animation-fill-mode:both;position:absolute;top:-14px}.finale-banner{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-6);border-radius:var(--radius-pill);background:var(--accent);color:var(--text-on-accent);font:var(--weight-black) var(--text-lg) / 1 var(--font-display);box-shadow:var(--shadow-lift);white-space:nowrap;animation:fc-stamp-in var(--dur-slow) var(--ease-bounce) .15s both, fc-stamp-out var(--dur-slow) var(--ease-soft) 2.7s both;display:inline-flex;position:absolute;top:50%;left:50%}.chore-columns.stacked{padding:0 var(--space-4) var(--space-4);gap:var(--space-3);flex-direction:column;overflow:hidden auto}.chore-columns.stacked .member-column{flex:1 1 0;min-width:0}.chore-columns.stacked .col-head{padding:var(--space-2) var(--space-3)}.chore-columns.stacked .col-head .avatar{width:48px;height:48px;font-size:27px}.chore-columns.stacked .chore-cards{padding:var(--space-2);gap:var(--space-2);overflow:visible}.chore-card.compact{min-height:var(--touch-sm);padding:var(--space-2) var(--space-3);gap:var(--space-3)}.chore-card.compact .check{width:34px;height:34px}.chore-card.compact .c-title{font:var(--weight-bold) var(--text-sm) / 1.25 var(--font-ui)}.chore-card.cheer{animation:fc-cheer .5s var(--ease-out)}.chore-card.cheer .check svg{animation:fc-pop var(--dur-slow) var(--ease-bounce) both}.chore-card.cheer .c-icon{animation:fc-bounce .6s var(--ease-out)}.points-float{right:var(--space-4);top:var(--space-2);pointer-events:none;font:var(--weight-black) var(--text-lg) / 1 var(--font-display);color:var(--accent-strong);animation:fc-float-up 1.1s var(--ease-out) both;position:absolute}.streak{align-items:center;gap:var(--space-1);padding:3px var(--space-2) 3px var(--space-1);border-radius:var(--radius-pill);background:var(--tang-100);color:var(--tang-600);font:var(--weight-black) var(--text-xs) / 1 var(--font-ui);white-space:nowrap;margin-top:2px;display:inline-flex}.streak.hot{animation:fc-glow 1.6s var(--ease-in-out) infinite}.streak.milestone{background:var(--accent-soft);color:var(--accent-strong);border:var(--border-width) solid var(--accent);animation:fc-glow 1.6s var(--ease-in-out) infinite}.event-people{margin-top:var(--space-1);flex-wrap:wrap;gap:3px;display:flex}.event-people .avatar{width:26px;height:26px;box-shadow:0 0 0 2px var(--surface-card);font-size:15px}.event-modal-head{align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.event-modal-head .event-color{border-radius:var(--radius-pill);flex:none;align-self:stretch;width:8px}.event-modal-head h3{margin:0 0 var(--space-1)}.event-modal-head .settings-hint{align-items:center;gap:var(--space-2);display:flex}.task-list .tasks-body{padding:var(--space-3)}.parent{background:var(--surface-app);flex-direction:column;max-width:640px;height:100dvh;margin:0 auto;display:flex}.parent-top{justify-content:space-between;align-items:center;gap:var(--space-3);padding:calc(var(--space-4) + env(safe-area-inset-top)) var(--space-5) var(--space-3);display:flex}.parent-top h1{font:var(--type-screen-title);color:var(--text-strong);margin:2px 0}.parent-kicker{font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--brand-strong)}.parent-avatar{border-radius:var(--radius-circle);border:var(--border-width) solid var(--border);flex:none;width:44px;height:44px}.parent-content{-webkit-overflow-scrolling:touch;min-height:0;padding:0 var(--space-4) var(--space-6);overscroll-behavior:contain;flex:1;overflow-y:auto}.parent-tabs{padding:var(--space-2) var(--space-2) calc(var(--space-2) + env(safe-area-inset-bottom));background:var(--surface-card);border-top:var(--border-width) solid var(--border);flex:none;grid-auto-columns:1fr;grid-auto-flow:column;gap:2px;display:grid}.parent-tabs button{padding:var(--space-2) 2px;min-height:var(--touch-sm);border-radius:var(--radius-md);color:var(--text-muted);font:var(--weight-black) 11px / 1 var(--font-ui);cursor:pointer;transition:background var(--dur-fast) var(--ease-soft), color var(--dur-fast) var(--ease-soft);background:0 0;border:0;flex-direction:column;align-items:center;gap:3px;display:flex}.parent-tabs button.active{background:var(--brand-soft);color:var(--brand-strong)}.parent-tab-icon{place-items:center;line-height:1;display:grid}.parent .row-action{display:none}.parent .chore-row{padding:var(--space-3) var(--space-1);min-height:64px}.parent .list-toolbar{z-index:2;background:var(--surface-app);padding:var(--space-2) 0;position:sticky;top:0}.parent .center-note{padding:var(--space-8) var(--space-3)}.parent-account-email{overflow-wrap:anywhere}.parent-section,.parent-shop .shop-section{margin-top:var(--space-8)}.shop-section{margin-top:var(--space-5)}.parent-section:first-child{margin-top:var(--space-2)}.parent-section>.group-label:first-child,.shop-section>.group-label:first-child{margin-top:0}@media (display-mode:standalone){@supports (height:100lvh){html,body,#root,.parent,.onboarding{height:100lvh}}}.dinner-planner{padding-top:var(--space-2)}.week-nav{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.week-nav-label{text-align:center;flex-direction:column;flex:1;gap:2px;display:flex}.week-nav-label strong{font:var(--type-card-title);color:var(--text-strong)}.week-today{margin:0 auto var(--space-3);display:flex}.dinner-list{gap:var(--space-2);flex-direction:column;display:flex}.dinner-day{background:var(--surface-card);border:var(--border-width) solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.dinner-day.today{border-color:var(--brand)}.dinner-day.open{background:var(--surface-raised)}.dinner-day-head{align-items:center;gap:var(--space-4);width:100%;padding:var(--space-3) var(--space-4);color:var(--text-strong);text-align:left;font:inherit;cursor:pointer;min-height:var(--touch-md);background:0 0;border:0;display:flex}.dinner-date{text-align:center;flex:none;width:48px}.dinner-dow{font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted)}.dinner-day.today .dinner-dow{color:var(--brand-strong)}.dinner-dom{font:var(--weight-bold) var(--text-lg) / 1.1 var(--font-numeric);color:var(--text-strong)}.dinner-main{flex:1;min-width:0}.dinner-tonight{font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--brand-strong)}.dinner-name{font:var(--type-card-title);color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dinner-empty{font:var(--type-body);color:var(--text-muted)}.dinner-chevron{color:var(--text-muted);place-items:center;display:grid}.dinner-editor{padding:0 var(--space-4) var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.dinner-editor input{min-height:var(--touch-md);width:100%;padding:0 var(--space-4);font:var(--type-body);color:var(--text-strong);background:var(--surface-card);border:var(--border-width) solid var(--border-strong);border-radius:var(--radius-md);outline:none}.dinner-editor input:focus-visible{border-color:var(--brand);box-shadow:var(--ring-focus)}.dinner-chips{gap:var(--space-2);scrollbar-width:none;padding-bottom:2px;display:flex;overflow-x:auto}.dinner-chips::-webkit-scrollbar{display:none}.dinner-chips .chip{min-height:44px;padding:0 var(--space-4);border:var(--border-width) solid var(--border);background:var(--surface-card);color:var(--text-strong);font:var(--type-meta);cursor:pointer;flex:none}.dinner-editor-actions{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}@media (width<=720px){.modal-backdrop{place-items:end center;padding:0}.modal{border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-height:92dvh;padding:var(--space-5) var(--space-4) calc(var(--space-5) + env(safe-area-inset-bottom));border-bottom:0}.modal .day-toggles{flex:1}.modal .day-toggle{flex:1;width:auto;min-width:0}.modal .row>.field[style]{flex:100%!important;width:auto!important}.modal .mode-pick{grid-template-columns:1fr}.modal-actions .row{flex-wrap:nowrap}}.day-cal{padding-top:var(--space-2)}.day-nav{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.day-nav-label{min-width:0;padding:var(--space-2);color:var(--text-strong);font:inherit;cursor:pointer;border-radius:var(--radius-md);background:0 0;border:0;flex-direction:column;flex:1;align-items:center;gap:2px;display:flex}button.day-nav-label:active{background:var(--surface-raised)}.day-nav-label strong{font:var(--type-card-title);color:var(--text-strong)}.day-nav-label span{font:var(--type-meta);font-weight:var(--weight-semi);color:var(--text-muted)}.day-nav-label em{color:var(--brand-strong);font-style:normal;font-weight:var(--weight-bold)}.day-body{min-height:60vh}.day-list{gap:var(--space-2);flex-direction:column;display:flex}.day-event{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);border:var(--border-width) solid var(--border);border-left:6px solid var(--brand);border-radius:var(--radius-lg);background:var(--surface-card);color:var(--text-strong);font:inherit;text-align:left;cursor:pointer;min-height:var(--touch-md);box-shadow:var(--shadow-soft);display:flex}.day-event.all-day{background:var(--surface-raised)}.day-event-time{width:64px;font:var(--type-meta);color:var(--text-strong);flex:none}.day-event-end{color:var(--text-muted);font-weight:var(--weight-semi)}.day-event-main{flex:1;min-width:0}.day-event-title{font:var(--type-card-title)}.day-event-loc{align-items:center;gap:var(--space-1);font:var(--type-meta);font-weight:var(--weight-semi);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;display:flex;overflow:hidden}.day-event .event-people{gap:var(--space-1);flex-wrap:nowrap;margin:0;display:flex}.day-event .event-people .avatar{width:36px;height:36px;font-size:20px}.day-dinner{align-items:center;gap:var(--space-4);width:100%;margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border:var(--border-width) dashed var(--border-dashed);border-radius:var(--radius-lg);color:var(--text-strong);font:inherit;text-align:left;cursor:pointer;min-height:var(--touch-md);background:0 0;display:flex}.day-dinner-icon{color:var(--text-muted);place-items:center;display:grid}.day-dinner-main{flex:1;min-width:0}.month-picker{width:min(440px,100%)}.month-picker .day-nav-label{cursor:default}.month-grid{gap:var(--space-1);margin:var(--space-2) 0 var(--space-3);grid-template-columns:repeat(7,1fr);display:grid}.month-dow{text-align:center;font:var(--type-label);color:var(--text-muted);padding:var(--space-1) 0}.month-day{aspect-ratio:1;border:var(--border-width) solid transparent;border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--text-strong);font:var(--weight-bold) var(--text-sm) / 1 var(--font-numeric);cursor:pointer;justify-content:center;align-items:center;display:flex;position:relative}.month-day.out{color:var(--text-muted);opacity:.5}.month-day.today{border-color:var(--brand)}.month-day.selected{background:var(--brand);color:var(--text-on-brand)}.month-dot{border-radius:var(--radius-circle);background:var(--brand);width:6px;height:6px;position:absolute;bottom:5px;left:50%;transform:translate(-50%)}.month-day.selected .month-dot{background:var(--text-on-brand)}.parent-tasks .group-label{justify-content:space-between;align-items:baseline;display:flex}.group-count{text-transform:none;letter-spacing:0}.parent-task{text-align:left;width:100%;margin-bottom:var(--space-2);font:inherit}.parent-task.busy{opacity:.6}.parent-task-empty{color:var(--text-muted);padding:var(--space-3) var(--space-2) var(--space-4);font:var(--type-meta);font-weight:var(--weight-semi)}.parent-fix-strip{margin:var(--space-2) 0 var(--space-3);justify-content:space-between}.parent-fix-head{justify-content:space-between;align-items:baseline;display:flex}.goal-ring{flex:none;position:relative}.goal-ring>svg{display:block;transform:rotate(-90deg)}.goal-ring-arc{transition:stroke-dashoffset var(--dur-slow) var(--ease-bounce), stroke var(--dur-base) var(--ease-soft)}.goal-ring-face{border-radius:var(--radius-circle);background:var(--surface-card);color:var(--text-strong);transition:background var(--dur-base) var(--ease-soft);place-items:center;display:grid;position:absolute}.goal-ring.complete .goal-ring-face{background:var(--success-soft)}.goal-ring-badge{border-radius:var(--radius-circle);background:var(--success);color:var(--text-on-accent);border:3px solid var(--surface-card);place-items:center;display:grid;position:absolute;bottom:-2px;right:-2px}.goal-ring-value{border-radius:var(--radius-pill);background:var(--surface-card);border:var(--border-width) solid var(--border);font-family:var(--font-numeric);font-weight:var(--weight-black);color:var(--text-strong);white-space:nowrap;padding:2px 8px;line-height:1;position:absolute;left:50%;transform:translate(-50%)}.member-column .col-head:has(.goal-ring-value){padding-bottom:var(--space-4)}.streak.frozen{background:var(--info-soft);color:var(--info-strong)}.freeze-dots{gap:2px;margin-left:2px;display:inline-flex}.freeze-dots i{border-radius:var(--radius-circle);border:1.5px solid var(--info);opacity:.45;width:7px;height:7px}.freeze-dots i.on{background:var(--info);opacity:1}.column-stage{flex:1 1 0;min-width:0;min-height:0;display:flex;position:relative}.column-stage>.member-column{flex:1 1 0}.chore-columns.stacked .column-stage{flex:none;width:100%}.column-stage .confetti{border-radius:var(--radius-lg);z-index:2}.goal-field input{text-align:center;width:120px}.member-row-name{overflow-wrap:anywhere}.item-row .goal-inline,.member-row .btn{flex:none}.member-link{border-width:0 0 var(--border-width);text-align:left;cursor:pointer;background:0 0;width:100%}.member-link .lucide{color:var(--text-muted);flex:none}.parent-member .profile-hero{gap:var(--space-4);padding:var(--space-4);margin-top:var(--space-2)}.member-today{font:var(--weight-black) var(--text-lg) / 1.1 var(--font-numeric);color:var(--text-strong)}.parent-member .group-label{justify-content:space-between;align-items:baseline;display:flex}.parent-member .stat-grid{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr))}.parent-member .stat{padding:var(--space-3) var(--space-1)}.parent-member .profile-card{padding:var(--space-4) var(--space-2);justify-content:center;display:flex}.member-stack{gap:var(--space-2);display:grid}.parent-member .badge-wall{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(104px,1fr));display:grid}.parent-member .badge{width:auto}.member-add.folded{margin-top:var(--space-2);padding:var(--space-4);background:var(--surface-card);border:var(--border-width) solid var(--border);border-radius:var(--radius-lg)}.member-add-actions{gap:var(--space-3)}.item-row .goal-inline{align-items:center;gap:var(--space-2);font:var(--type-meta);color:var(--text-muted);display:inline-flex}.item-row .goal-inline input{width:72px;min-height:44px;padding:0 var(--space-2);text-align:center;font:var(--weight-bold) var(--text-sm) / 1 var(--font-numeric);color:var(--text-strong);background:var(--surface-raised);border:var(--border-width) solid var(--border-strong);border-radius:var(--radius-sm);outline:none}.shop-layout{gap:var(--gap-panel);grid-template-columns:minmax(0,1fr) 420px;height:100%;min-height:0;display:grid}.who-picker{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.shop-body{min-height:0;padding:0 var(--space-5) var(--space-5);flex:1;overflow-y:auto}.balance-card{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-4);border-radius:var(--radius-xl);background:var(--accent-soft);border:var(--border-width) solid var(--accent);display:flex;position:relative}.balance-amount{font:var(--weight-black) var(--text-2xl) / 1 var(--font-numeric);color:var(--accent-strong)}.balance-hint{font:var(--type-meta);color:var(--text-muted)}.reward-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.reward-card{align-items:center;gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-xl);background:var(--surface-card);border:var(--border-width) solid var(--border);box-shadow:var(--shadow-soft);text-align:center;transition:transform var(--dur-instant) var(--ease-soft), opacity var(--dur-base) var(--ease-soft);flex-direction:column;display:flex}.reward-card.ready{border-color:var(--accent);cursor:pointer}.reward-card.ready:active{transform:scale(var(--press-scale))}.reward-card.short{opacity:.75;box-shadow:none}.reward-card.pending{background:var(--info-soft);border-color:var(--info)}.reward-card.won{background:var(--success-soft);border-color:var(--success)}.reward-icon{color:var(--text-body)}.reward-card.short .reward-icon{color:var(--text-muted)}.reward-title{font:var(--type-card-title);color:var(--text-strong);text-wrap:pretty}.reward-card.short .reward-title{color:var(--text-muted)}.reward-short,.reward-note{font:var(--type-meta);color:var(--text-muted)}.reward-note{font-weight:var(--weight-regular)}.reward-bar{border-radius:var(--radius-pill);background:var(--surface-sunken);width:100%;height:8px;margin-top:var(--space-1);overflow:hidden}.reward-bar i{background:var(--accent);height:100%;transition:width var(--dur-slow) var(--ease-bounce);display:block}.chip.brand{background:var(--brand-soft);color:var(--brand-strong)}.btn.success{background:var(--success);color:var(--text-on-accent);box-shadow:var(--edge-md) var(--success-strong)}.btn.success:active{box-shadow:var(--edge-press) var(--success-strong)}.btn.small.success{box-shadow:var(--edge-sm) var(--success-strong)}.btn.success:disabled{box-shadow:none}.approvals-body{min-height:0;padding:0 var(--space-5) var(--space-5);gap:var(--space-3);flex-direction:column;flex:1;display:flex;overflow-y:auto}.approval-row{align-items:center;gap:var(--space-3);min-height:var(--touch-md);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--surface-card);border:var(--border-width) solid var(--info);flex-wrap:wrap;display:flex}.approval-row.decided{background:var(--surface-sunken);border-color:var(--border)}.approval-who{flex:none;display:inline-flex;position:relative}.approval-what{border-radius:var(--radius-circle);background:var(--accent);width:30px;height:30px;color:var(--text-on-accent);border:2px solid var(--surface-card);place-items:center;display:grid;position:absolute;bottom:-6px;right:-8px}.approval-main{flex:170px;min-width:0}.approval-title{font:var(--type-card-title);color:var(--text-strong);text-wrap:pretty}.approval-meta{font:var(--type-meta);color:var(--text-muted);text-wrap:pretty}.approval-actions{gap:var(--space-2);flex:none;margin-left:auto;display:flex}.approvals-note{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--surface-sunken);border:var(--border-width) dashed var(--border-dashed);color:var(--text-muted);align-items:flex-start;display:flex}.approvals-note p{font:var(--type-meta);font-weight:var(--weight-regular);color:var(--text-muted);margin:0}@media (width<=1400px){.weather-forecast{display:none}}@media (width<=1240px){.header .tabs button:not(.active){width:var(--touch-md);justify-content:center;padding:0}.header .tabs button:not(.active) .tab-label{display:none}}.gear-list{gap:var(--space-2);flex-direction:column;display:flex}.gear-head{justify-content:space-between;align-items:center;display:flex}.gear-title{align-items:center;gap:var(--space-2);font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted);display:inline-flex}.gear-count{font:var(--weight-black) var(--text-xs) / 1 var(--font-numeric);color:var(--text-muted)}.gear-list.all .gear-title,.gear-list.all .gear-count{color:var(--success-strong)}.gear-items{gap:var(--space-1);flex-direction:column;display:flex}.gear-item{align-items:center;gap:var(--space-3);min-height:var(--touch-md);padding:0 var(--space-3);border-radius:var(--radius-md);background:var(--surface-raised);border:var(--border-width) solid var(--border);color:var(--text-strong);font:var(--type-body);text-align:left;cursor:pointer;display:flex}.gear-item.compact{min-height:var(--touch-sm)}.gear-item .checkbox{width:56px;height:56px}.gear-item.compact .checkbox{width:40px;height:40px}.gear-item.on{background:var(--success-soft);border-color:var(--success)}.gear-item.on .checkbox{background:var(--success);border-color:var(--success)}.gear-item.on .checkbox svg{opacity:1;animation:fc-pop var(--dur-slow) var(--ease-bounce) both}.gear-item.on .gear-label{color:var(--text-muted);text-decoration:line-through}.gear-pill{border-radius:var(--radius-pill);background:var(--warning-soft);color:var(--warning-strong);font:var(--weight-black) 12px / 1 var(--font-ui);align-items:center;gap:3px;padding:2px 7px;display:inline-flex}.gear-pill.all{background:var(--success-soft);color:var(--success-strong)}.checklist-editor{gap:var(--space-2);flex-direction:column;display:flex}.checklist-empty{align-items:center;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);border:var(--border-width) dashed var(--border-dashed);color:var(--text-muted);font:var(--type-meta);display:flex}.checklist-item{align-items:center;gap:var(--space-3);min-height:var(--touch-sm);padding:0 var(--space-2) 0 var(--space-4);border-radius:var(--radius-md);background:var(--surface-raised);border:var(--border-width) solid var(--border);font:var(--type-body);color:var(--text-strong);display:flex}.checklist-item .grow{flex:1;min-width:0}.face-button{cursor:pointer;border-radius:var(--radius-circle);background:0 0;border:none;padding:0;line-height:0}.face-button:disabled{cursor:default}.profile-layout{gap:var(--gap-panel);grid-template-columns:minmax(0,1fr) 400px;height:100%;min-height:0;display:grid}.profile-body,.review-body{min-height:0;padding:0 var(--space-5) var(--space-5);gap:var(--space-5);flex-direction:column;flex:1;display:flex;overflow-y:auto}.profile-hero{align-items:center;gap:var(--space-6);padding:var(--space-5);border-radius:var(--radius-xl);background:var(--surface-raised);border:var(--border-width) solid var(--border);display:flex}.profile-hero-text{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.profile-name{font:var(--weight-black) var(--text-2xl) / 1 var(--font-display);color:var(--text-strong)}.profile-section-title{align-items:center;gap:var(--space-2);margin:0 0 var(--space-3) var(--space-1);display:flex}.profile-section-title h3{font:var(--type-section-title);color:var(--text-strong)}.profile-card{padding:var(--space-4) var(--space-5);border-radius:var(--radius-xl);background:var(--surface-raised);border:var(--border-width) solid var(--border)}.stat-grid{gap:var(--space-3);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.stat{padding:var(--space-4);border-radius:var(--radius-lg);background:var(--surface-raised);border:var(--border-width) solid var(--border);text-align:center}.stat.plain{text-align:left;background:0 0;border:none;padding:0}.stat-value{font:var(--weight-black) var(--text-xl) / 1 var(--font-numeric);color:var(--text-strong)}.stat-label{font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted);margin-top:4px}.week-bars{align-items:flex-end;gap:var(--space-2);display:flex}.week-bar{flex-direction:column;align-items:center;gap:4px;display:flex}.week-bar-track{align-items:flex-end;display:flex;position:relative}.week-bar-goal{border-top:2px dashed var(--border-dashed);position:absolute;left:0;right:0}.week-bar-fill{border-radius:var(--radius-sm);width:100%;transition:height var(--dur-slow) var(--ease-bounce)}.week-bar-label{font:var(--weight-black) 11px / 1 var(--font-ui);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.week-bar.met .week-bar-label{color:var(--success-strong)}.badge-wall{gap:var(--space-3);flex-wrap:wrap;display:flex}.badge{align-items:center;gap:var(--space-2);width:130px;padding:var(--space-3);border-radius:var(--radius-lg);border:var(--border-width) dashed var(--border-dashed);text-align:center;background:0 0;flex-direction:column;display:flex}.badge.earned{background:var(--accent-soft);border:var(--border-width) solid var(--accent)}.badge-disc{border-radius:var(--radius-circle);background:var(--surface-sunken);width:64px;height:64px;color:var(--text-muted);opacity:.55;place-items:center;display:grid}.badge.earned .badge-disc{background:var(--accent);color:var(--text-on-accent);box-shadow:var(--shadow-soft);opacity:1}.badge-title{font:var(--weight-bold) var(--text-sm) / 1.2 var(--font-ui);color:var(--text-muted);text-wrap:pretty}.badge.earned .badge-title{color:var(--text-strong)}.badge-when{font:var(--type-meta);color:var(--accent-strong);align-items:center;gap:4px;display:inline-flex}.badge-how{font:var(--type-meta);font-weight:var(--weight-regular);color:var(--text-muted);text-wrap:pretty}.chore-streak-row{align-items:center;gap:var(--space-3);min-height:var(--touch-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--surface-raised);border:var(--border-width) solid var(--border);display:flex}.chore-streak-row .grow{flex:1;min-width:0}.chore-streak-row .c-icon{color:var(--text-body)}.chore-streak-title{font:var(--weight-bold) var(--text-sm) / 1.2 var(--font-ui);color:var(--text-strong)}.review-family{align-items:center;gap:var(--space-5);padding:var(--space-4) var(--space-5);border-radius:var(--radius-xl);background:var(--brand-soft);border:var(--border-width) solid var(--brand);display:flex}.review-family-total{font:var(--type-section-title);color:var(--text-strong)}.review-row{gap:var(--space-5);padding:var(--space-4) var(--space-5);border-radius:var(--radius-xl);background:var(--surface-raised);border:var(--border-width) solid var(--border);display:flex}.review-who{align-items:center;gap:var(--space-3);text-align:center;flex-direction:column;flex:none;width:150px;display:flex}.review-main{gap:var(--space-3);flex-direction:column;flex:1;min-width:0;display:flex}.review-stats{gap:var(--space-6);flex-wrap:wrap;display:flex}.review-sentence{font:var(--type-body);color:var(--text-body);text-wrap:pretty;margin:0}.activities-layout{gap:var(--gap-panel);grid-template-columns:360px minmax(0,1fr);height:100%;min-height:0;display:grid}.activities-list{min-height:0;padding:0 var(--space-5) var(--space-5);gap:var(--space-3);flex-direction:column;flex:1;display:flex;overflow-y:auto}.activity-card{gap:var(--space-2);min-height:var(--touch-md);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--surface-card);border:var(--border-width) solid var(--border);border-left:8px solid var(--brand);box-shadow:var(--shadow-soft);cursor:pointer;transition:transform var(--dur-instant) var(--ease-soft);flex-direction:column;flex:none;display:flex}.activity-card:active{transform:scale(var(--press-scale))}.activity-card.selected{background:var(--brand-soft);border-color:var(--brand)}.activity-card .c-icon{color:var(--text-body);flex:none}.activity-editor{min-height:0;padding:0 var(--space-5) var(--space-5);gap:var(--space-6);flex:1;grid-template-columns:minmax(0,1fr) 320px;align-items:start;display:grid;overflow-y:auto}.activity-main,.activity-side{gap:var(--space-6);flex-direction:column;min-width:0;display:flex}.activity-section{gap:var(--space-3);flex-direction:column;display:flex}.activity-section .field{margin-bottom:0}.two-up{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.top-banner.info{background:var(--info-soft);border-color:var(--info)}.top-banner.info .banner-icon{color:var(--info-strong)}.rule-row{gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--surface-raised);border:var(--border-width) solid var(--border);flex-direction:column;display:flex}.rule-summary{min-width:0;font:var(--weight-bold) var(--text-sm) / 1.25 var(--font-ui);color:var(--text-strong);flex:140px}.rule-edit{gap:var(--space-3);flex-direction:column;display:flex}.contact-card{align-items:center;gap:var(--space-3);min-height:var(--touch-md);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--surface-raised);border:var(--border-width) solid var(--border);display:flex}.contact-disc{border-radius:var(--radius-circle);background:var(--brand-soft);width:44px;height:44px;color:var(--brand-strong);flex:none;place-items:center;display:grid}.contact-name{font:var(--weight-bold) var(--text-md) / 1.25 var(--font-ui);color:var(--text-strong)}.contact-detail{font:var(--weight-bold) var(--text-base) / 1.3 var(--font-numeric);color:var(--brand-strong)}.parent-link{text-align:left;width:100%;margin:var(--space-2) 0 var(--space-3);justify-content:flex-start}.parent-link .grow{flex:1}.parent-tab-icon{position:relative}.tab-badge{border-radius:var(--radius-pill);background:var(--accent);min-width:18px;height:18px;color:var(--text-on-accent);font:var(--weight-black) 11px / 1 var(--font-numeric);place-items:center;padding:0 5px;display:grid;position:absolute;top:-6px;right:-12px}.approvals-stack{gap:var(--space-2);flex-direction:column;display:flex}.segmented{z-index:3;gap:var(--space-1);padding:var(--space-1);margin-bottom:var(--space-5);background:var(--surface-sunken);border:var(--border-width) solid var(--border);border-radius:var(--radius-pill);box-shadow:0 0 0 var(--space-2) var(--surface-app);grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:sticky;top:0}.segmented button{justify-content:center;align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-2);border-radius:var(--radius-pill);color:var(--text-muted);font:var(--type-meta);font-weight:var(--weight-black);cursor:pointer;transition:background var(--dur-fast) var(--ease-soft), color var(--dur-fast) var(--ease-soft);background:0 0;border:0;display:flex}.segmented button.on{background:var(--surface-card);color:var(--brand-strong);box-shadow:inset 0 0 0 var(--border-width) var(--border-strong)}.segmented-count{border-radius:var(--radius-pill);background:var(--accent);min-width:20px;height:20px;color:var(--text-on-accent);font:var(--weight-black) 12px / 1 var(--font-numeric);place-items:center;padding:0 6px;display:grid}.parent-shop .segmented+.shop-section{margin-top:0}.parent-shop .list-toolbar{position:static}.balance-points{font:var(--weight-black) var(--text-lg) / 1 var(--font-numeric);color:var(--text-strong);flex:none}.balance-points small{font:var(--type-meta);color:var(--text-muted)}.review-embedded{gap:var(--space-3);flex-direction:column;display:flex}.parent-tabs button{font-size:10px}@media (width<=720px){.review-row{gap:var(--space-3);padding:var(--space-4);flex-direction:column}.review-who{text-align:left;gap:var(--space-3);flex-direction:row;width:auto}.review-who .avatar{width:56px!important;height:56px!important;font-size:31px!important}.review-stats{gap:var(--space-4)}.review-family{gap:var(--space-3);padding:var(--space-3) var(--space-4)}.approval-row .approval-actions{width:100%;margin-left:0}.approval-row .approval-actions .btn{flex:1}}.activities-layout.embedded{height:auto;display:block}.activities-layout.embedded .activities-list,.activities-layout.embedded .activity-editor{padding:0;overflow:visible}.activities-layout.embedded .activity-editor{gap:var(--space-5);grid-template-columns:1fr}.activities-layout.embedded .chore-toolbar{padding:0 0 var(--space-3);flex-wrap:wrap}.activities-layout.embedded .two-up{grid-template-columns:1fr}.parent-shop .group-label{justify-content:space-between;align-items:baseline;display:flex}.scroll-area{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.scroll-area-inner{scrollbar-width:none;-ms-overflow-style:none;flex:1;min-height:0;overflow-y:auto}.scroll-area-inner::-webkit-scrollbar{display:none}.scroll-hint{background:linear-gradient(to top, var(--scroll-fade,var(--surface-card)) 35%, transparent);height:44px;color:var(--text-muted);cursor:pointer;z-index:1;border:none;justify-content:center;align-items:flex-end;padding:0 0 4px;display:flex;position:absolute;left:0;right:0}.scroll-hint svg{border-radius:var(--radius-pill);background:var(--surface-card);border:var(--border-width) solid var(--border);box-shadow:var(--shadow-soft);box-sizing:content-box;animation:fc-invite 2.2s var(--ease-in-out) infinite;padding:4px}.scroll-hint.bottom{bottom:0}.scroll-hint.top{background:linear-gradient(to bottom, var(--scroll-fade,var(--surface-card)) 35%, transparent);align-items:flex-start;padding:4px 0 0;top:0}.member-column{--scroll-fade:var(--surface-sunken)}.day-col.today{--scroll-fade:var(--brand-soft)}.face-emoji{line-height:1;display:block;transform:translateY(.09em)}.face-initial{line-height:1;display:block}.cal-row{cursor:default;flex-wrap:wrap}.cal-row-main{align-items:center;gap:var(--space-3);cursor:pointer;flex:260px;min-width:0;display:flex}.cal-colors{gap:var(--space-1);flex-wrap:wrap;display:flex}.cal-color{border-radius:var(--radius-circle);cursor:pointer;width:30px;height:30px;font:var(--weight-black) 12px / 1 var(--font-ui);color:var(--text-on-brand);transition:transform var(--dur-fast) var(--ease-bounce);border:3px solid #0000;padding:0}.cal-color.selected{border-color:var(--surface-card);box-shadow:0 0 0 var(--border-width) var(--text-strong);transform:scale(1.1)}.add-task{gap:var(--space-1);margin-bottom:var(--space-2);flex-direction:column;display:flex}.add-task-row{gap:var(--space-2);align-items:center;display:flex}.add-task-row .input{min-width:0;min-height:var(--touch-sm);flex:1}.parent-tasks .add-task{margin-bottom:var(--space-2)}.task-date{align-items:center;gap:var(--space-1);border:var(--border-width) dashed var(--border-dashed);border-radius:var(--radius-pill);min-width:36px;min-height:36px;color:var(--text-muted);font:var(--type-label);white-space:nowrap;cursor:pointer;background:0 0;flex:none;margin-left:auto;padding:0 10px;display:inline-flex}.task-date.set{background:var(--surface-sunken);border-style:solid;border-color:#0000}.task-date.overdue{background:var(--danger-soft);color:var(--danger-strong);border-style:solid;border-color:#0000}.task.done .task-date{opacity:.6}.row-hint{margin-top:2px;display:block}.cash-card{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-4);border-radius:var(--radius-xl);background:var(--success-soft);border:var(--border-width) solid var(--success);flex-wrap:wrap;display:flex}.cash-card.waiting{background:var(--surface-sunken);border-color:var(--border-strong)}.cash-icon{border-radius:var(--radius-circle);background:var(--surface-card);width:52px;height:52px;color:var(--success-strong);flex:none;place-items:center;display:grid}.cash-title{font:var(--type-card-title);color:var(--text-strong)}.cash-owed{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);margin:calc(var(--space-3) * -1) 0 var(--space-4);border:var(--border-width) solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface-sunken);color:var(--text-muted);font:var(--type-meta);display:flex}.cash-actions{align-items:center;gap:var(--space-3);margin-left:auto;display:flex}.cash-stepper{align-items:center;gap:var(--space-3);display:flex}.cash-amount{text-align:center;min-width:96px;font:var(--weight-black) var(--text-xl) / 1 var(--font-numeric);color:var(--success-strong)}.cash-rate{align-items:flex-end;gap:var(--space-3);flex-wrap:wrap}.cash-equals{padding-bottom:var(--space-4);font:var(--weight-black) var(--text-lg) / 1 var(--font-numeric);color:var(--text-muted)}.passcode-panel{padding:var(--space-5);place-items:center;display:grid;overflow:auto}.passcode-card{text-align:center;width:min(420px,100%)}.passcode-card.wrong{animation:passcode-shake var(--dur-slow) var(--ease-in-out)}@keyframes passcode-shake{0%,to{transform:translate(0)}20%{transform:translate(-12px)}40%{transform:translate(10px)}60%{transform:translate(-6px)}80%{transform:translate(3px)}}.passcode-head{justify-content:center;align-items:center;gap:var(--space-3);margin:0 0 var(--space-2);padding:0;display:flex}.passcode-lock{border-radius:var(--radius-circle);background:var(--surface-sunken);width:44px;height:44px;color:var(--text-muted);flex:none;place-items:center;display:grid}.passcode-dots{justify-content:center;gap:var(--space-3);margin:var(--space-4) 0;display:flex}.passcode-dot{border-radius:var(--radius-circle);border:3px solid var(--border-strong);width:18px;height:18px;transition:background var(--dur-fast) var(--ease-soft), transform var(--dur-fast) var(--ease-bounce)}.passcode-dot.on{background:var(--brand);border-color:var(--brand);transform:scale(1.15)}.passcode-keys{gap:var(--space-2);margin-bottom:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.passcode-key{min-height:var(--touch-sm);border:var(--border-width) solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface-card);color:var(--text-strong);font:var(--weight-black) var(--text-lg) / 1 var(--font-numeric);cursor:pointer;place-items:center;display:grid}.passcode-key:active{transform:scale(var(--press-scale));background:var(--surface-sunken)}.passcode-key.ghost{color:var(--text-muted);border-style:dashed}.passcode-help{margin:var(--space-3) 0 0}@media (prefers-reduced-motion:reduce){.passcode-card.wrong{animation:none}}.star-days{gap:var(--space-2);flex-wrap:wrap;display:flex}.star-day{width:56px;min-height:72px;padding:var(--space-1) 0;border-radius:var(--radius-md);border:var(--border-width) solid var(--border-strong);background:var(--surface-raised);color:var(--text-muted);font:var(--weight-bold) var(--text-sm) / 1 var(--font-ui);cursor:pointer;transition:background var(--dur-fast) var(--ease-soft), box-shadow var(--dur-fast) var(--ease-soft);justify-items:center;gap:2px;display:grid}.star-day .star-day-glyph{color:var(--border-strong)}.star-day.on{background:var(--surface-card);border-color:var(--accent);color:var(--text-strong);box-shadow:0 4px 0 var(--accent)}.star-day.on .star-day-glyph{color:var(--accent);fill:currentColor}.star-day.today{border-style:dashed}.star-day.on.today{border-style:solid}.star-fix-link{text-align:left;justify-content:flex-start;width:100%}.star-fix-link .grow{flex:1}.approvals-history>summary{cursor:pointer;align-items:center;gap:var(--space-2);list-style:none;display:flex}.approvals-history>summary::-webkit-details-marker{display:none}.approvals-history>summary:after{content:"";width:8px;height:8px;transition:transform var(--dur-fast) var(--ease-soft);border-bottom:2px solid;border-right:2px solid;transform:rotate(45deg)}.approvals-history[open]>summary:after{transform:rotate(-135deg)}.points-adjust{gap:var(--space-3);display:grid}.points-adjust .who-picker{justify-content:flex-start}.points-adjust .day-toggle{width:var(--touch-md);height:var(--touch-md)}.approval-row.adjust{border-color:var(--border)}.available-column{border-style:dashed;border-color:var(--border-strong)}.available-badge{background:var(--surface-card);color:var(--brand);border:var(--border-width) dashed var(--border-strong)}.available-item{flex-direction:column;display:flex}.available-card{width:100%;font:inherit;text-align:left;color:inherit}.available-card .c-add{border-radius:var(--radius-sm);border:var(--border-width-thick) dashed var(--border-strong);width:44px;height:44px;color:var(--text-muted);flex:none;place-items:center;display:grid}.available-card.compact .c-add{width:34px;height:34px}.available-card .c-go{color:var(--text-muted);transition:transform var(--dur-fast) var(--ease-soft)}.available-item.open .available-card{border-color:var(--brand)}.available-item.open .c-go{transform:rotate(180deg)}.pick-who{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-1) var(--space-1);flex-wrap:wrap;display:flex}.pick-who-label{width:100%;font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted)}.pick-who .member-toggle{color:var(--text-strong);background:var(--surface-card)}.chore-group.named{gap:var(--space-2);padding:0 var(--space-2) var(--space-2);margin-bottom:var(--space-2);background:var(--surface-raised);border:var(--border-width) solid var(--border);border-radius:calc(var(--radius-lg) + var(--space-2))}.chore-group.named.all-done{border-color:var(--success)}.chore-group.named .chore-group-head{padding:var(--space-2) var(--space-2) 0}button.chore-group-head{cursor:pointer;text-align:left;background:0 0;border:0;width:100%;min-height:36px}button.chore-group-head .chore-group-count{align-items:center;gap:var(--space-1);display:inline-flex}.chore-group-divider{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-1) 0;font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted);display:flex}.chore-group-divider:before,.chore-group-divider:after{content:"";height:var(--border-width);border-radius:var(--radius-pill);background:var(--border-strong);flex:1}.chore-group-divider:before{flex:0 0 var(--space-3)}.chore-group-done{align-items:center;gap:var(--space-3);width:100%;min-height:var(--touch-md);margin-bottom:var(--space-2);padding:var(--space-3) var(--space-4);border:var(--border-width) solid var(--success);border-radius:calc(var(--radius-lg) + var(--space-2));background:var(--success-soft);color:var(--success-strong);box-shadow:var(--shadow-soft);font:inherit;text-align:left;cursor:pointer;transition:transform var(--dur-instant) var(--ease-soft);display:flex;position:relative}.chore-group-done:active{transform:scale(var(--press-scale))}.chore-group-done .cgd-badge{border-radius:var(--radius-circle);background:var(--success);width:44px;height:44px;color:var(--text-on-accent);flex:none;place-items:center;display:grid;position:relative}.chore-group-done .cgd-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.chore-group-done .cgd-label{font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--success-strong);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chore-group-done .cgd-cheer{font:var(--weight-black) var(--text-lg) / 1.1 var(--font-display);color:var(--text-strong)}.chore-group-done .cgd-popper{color:var(--accent-strong);flex:none}.chore-group-done .cgd-chevron{color:var(--success-strong);flex:none}.chore-group-done.compact{min-height:var(--touch-sm);padding:var(--space-2) var(--space-3)}.chore-group-done.compact .cgd-badge{width:34px;height:34px}.chore-group-done.compact .cgd-cheer{font:var(--weight-black) var(--text-sm) / 1.1 var(--font-display)}.chore-group-done.fresh{animation:cgd-land var(--dur-slow) var(--ease-bounce) both}.chore-group-done.fresh .cgd-badge svg{animation:fc-pop var(--dur-slow) var(--ease-bounce) .1s both}.chore-group-done.fresh .cgd-popper{animation:fc-wiggle .4s var(--ease-in-out) .15s 3}@keyframes cgd-land{0%{opacity:.3;transform:scaleY(.6)translateY(-8px)}to{opacity:1;transform:none}}.finale-screen{z-index:var(--z-celebration);pointer-events:none;position:fixed;inset:0;overflow:hidden}.finale-wash{background:radial-gradient(circle at 50% 55%, var(--accent-soft) 0%, transparent 62%);animation:fc-finale-wash var(--dur-finale-xl) var(--ease-soft) both;position:absolute;inset:0}.finale-screen.cannons>i{animation-name:fc-cannon;animation-timing-function:linear;animation-fill-mode:both;position:absolute;bottom:14%}.finale-screen.cannons>i.from-left{left:-2%}.finale-screen.cannons>i.from-right{right:-2%}.finale-stamp-xl{align-items:center;gap:var(--space-5);padding:var(--space-6) var(--space-10);border-radius:var(--radius-pill);background:var(--accent);color:var(--text-on-accent);font:var(--weight-black) var(--text-3xl) / 1 var(--font-display);box-shadow:var(--shadow-modal);white-space:nowrap;animation:fc-finale-stamp var(--dur-finale-xl) var(--ease-bounce) .1s both;display:inline-flex;position:absolute;top:50%;left:50%}@media (width<=640px){.finale-stamp-xl{gap:var(--space-3);padding:var(--space-4) var(--space-6);font-size:var(--text-xl)}.finale-stamp-xl svg{width:40px;height:40px}}.finale-screen.fireworks .finale-wash,.finale-screen.stars .finale-wash{background:var(--surface-scrim)}.fw{width:0;height:0;position:absolute}.fw-rocket{width:8px;height:22px;animation:fw-rise .7s var(--ease-out) var(--delay) both;background:currentColor;border-radius:4px;position:absolute;top:-11px;left:-4px;box-shadow:0 0 12px 2px}.fw-flash{border-radius:var(--radius-circle);opacity:0;width:20vmin;height:20vmin;animation:fw-flash .5s var(--ease-out) calc(var(--delay) + .7s) forwards;background:currentColor;position:absolute;top:-10vmin;left:-10vmin}.fw i{border-radius:var(--radius-circle);opacity:0;animation:fw-spark 1.9s cubic-bezier(.1, .8, .3, 1) calc(var(--delay) + .7s) forwards;position:absolute;top:0;left:0;box-shadow:0 0 14px 3px}@keyframes fw-rise{0%{transform:translateY(var(--rise));opacity:0}8%{opacity:1}90%{opacity:1}to{opacity:0;transform:translateY(0)}}@keyframes fw-flash{0%{opacity:.6;transform:scale(.2)}to{opacity:0;transform:scale(1.8)}}@keyframes fw-spark{0%{opacity:1;transform:translate(0)scale(1)}70%{opacity:1}to{transform:translate(var(--dx), calc(var(--dy) + 8vmin)) scale(.45);opacity:0}}.speck{animation:glitter-fall var(--dur) linear var(--delay) both, glitter-twinkle var(--tw) var(--ease-in-out) var(--delay) infinite alternate;position:absolute;top:-14px}.speck.shape-0{border-radius:var(--radius-circle)}.speck.shape-1{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.speck.shape-2{clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%)}@keyframes glitter-fall{0%{transform:translate(0)rotate(0)}to{transform:translate(var(--drift), calc(100vh + 30px)) rotate(360deg)}}@keyframes glitter-twinkle{0%{opacity:1;filter:brightness(1.25)}to{opacity:.25;filter:brightness()}}.balloon{animation:balloon-rise var(--dur) cubic-bezier(.35, 0, .65, 1) var(--delay) both;position:absolute;top:100%}.balloon-sway{transform-origin:50% 0;animation:balloon-sway var(--sway) var(--ease-in-out) infinite alternate;flex-direction:column;align-items:center;display:flex}.balloon-body{border-radius:50% 50% 48% 48%/55% 55% 45% 45%;display:block;position:relative;box-shadow:inset -6px -8px #00000014}.balloon-body:before{content:"";border-radius:var(--radius-circle);background:#ffffff73;width:22%;height:28%;position:absolute;top:14%;left:20%;transform:rotate(-25deg)}.balloon-body:after{content:"";background:inherit;clip-path:polygon(50% 0,100% 100%,0 100%);width:10px;height:10px;margin-left:-5px;position:absolute;bottom:-5px;left:50%}.balloon-string{background:var(--border-strong);border-radius:1px;width:2px;margin-top:4px;display:block}@keyframes balloon-rise{0%{transform:translateY(0)}to{transform:translateY(calc(-100vh - 100% - 60px))}}@keyframes balloon-sway{0%{transform:rotate(calc(var(--tilt) * -1))}to{transform:rotate(var(--tilt))}}.falling-star{filter:drop-shadow(0 0 6px var(--accent));animation:star-fall var(--dur) cubic-bezier(.45, 0, .8, .6) var(--delay) both;position:absolute;top:-60px}.falling-star svg{animation:star-pulse .6s var(--ease-in-out) infinite alternate}@keyframes star-fall{0%{transform:translateY(0)rotate(0)}to{transform:translateY(calc(100vh + 120px)) rotate(var(--spin))}}@keyframes star-pulse{0%{transform:scale(.85)}to{transform:scale(1.15)}}.shooting-star{border-radius:var(--radius-pill);background:linear-gradient(90deg, var(--accent), transparent);opacity:0;transform-origin:0;width:160px;height:4px;animation:shooting-star 1s var(--ease-soft) var(--delay) forwards;position:absolute}@keyframes shooting-star{0%{opacity:0;transform:translate(0)rotate(-35deg)scaleX(.2)}15%{opacity:1}to{opacity:0;transform:translate(-55vw,38vh)rotate(-35deg)scaleX(1)}}.bubble{border-radius:var(--radius-circle);border:3px solid var(--color);background:color-mix(in srgb, var(--color) 18%, transparent);animation:bubble-rise var(--dur) var(--ease-soft) var(--delay) both;position:absolute;top:100%}.bubble:before{content:"";border-radius:var(--radius-circle);background:#ffffffb3;width:26%;height:20%;position:absolute;top:16%;left:18%;transform:rotate(-35deg)}.bubble:after{content:"";border-radius:inherit;animation:bubble-wobble var(--wobble) var(--ease-in-out) infinite alternate;position:absolute;inset:0;box-shadow:inset 0 0 0 2px #ffffff59}@keyframes bubble-rise{0%{opacity:0;transform:translate(0)scale(.6)}8%{opacity:1}88%{transform:translate(var(--drift), -92vh) scale(1);opacity:1}to{transform:translate(var(--drift), -100vh) scale(1.5);opacity:0}}@keyframes bubble-wobble{0%{transform:scale(1.05,.95)}to{transform:scale(.95,1.05)}}.onboarding{background:var(--surface-app);height:100dvh;color:var(--text-body);flex-direction:column;display:flex;overflow:hidden}.onboarding-top,.onboarding-foot{align-items:center;gap:var(--space-4);width:min(560px,100%);padding:var(--space-4) var(--space-5);margin:0 auto;display:flex}.onboarding-top{padding-top:calc(var(--space-4) + env(safe-area-inset-top))}.onboarding-foot{padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom))}.onboarding-foot .grow{flex:1}.onboarding-progress{gap:var(--space-1);font:var(--type-meta);color:var(--text-muted);flex-direction:column;flex:1;display:flex}.onboarding-bar{border-radius:var(--radius-pill);background:var(--surface-sunken);height:6px;overflow:hidden}.onboarding-bar:after{content:"";height:100%;width:calc(var(--fraction,0) * 100%);border-radius:inherit;background:var(--accent);transition:width var(--dur-base) var(--ease-out);display:block}.onboarding-body{min-height:0;padding:var(--space-4) max(var(--space-5), calc((100% - 560px) / 2 + var(--space-5))) var(--space-6);flex:1;overflow-y:auto}.onboarding-body h1{margin:0 0 var(--space-2);font:var(--type-screen-title);color:var(--text-strong);text-wrap:balance}.onboarding-blurb{margin:0 0 var(--space-5);font:var(--type-body);color:var(--text-body);text-wrap:pretty}.onboarding-step{gap:var(--space-4);flex-direction:column;display:flex}.onboarding-step .btn.primary{justify-content:center;align-self:stretch}.onboarding-add{gap:var(--space-3);display:flex}.onboarding-add .input{flex:1;min-width:0}.onboarding-people{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.onboarding-people li{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--surface-card);border:var(--border-width) solid var(--border);font:var(--type-card-title);color:var(--text-strong);display:flex}.onboarding-people .grow{flex:1}.onboarding-group{gap:var(--space-2);flex-direction:column;display:flex}.onboarding-chore{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:var(--border-width) solid var(--border);background:var(--surface-card);color:var(--text-body);font:var(--type-body);text-align:left;cursor:pointer;display:flex}.onboarding-chore .grow{flex:1}.onboarding-chore.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.onboarding-points{font:var(--type-meta);color:var(--text-muted)}.onboarding-chore.on .onboarding-points{color:var(--accent-strong)}.onboarding-list{padding-left:var(--space-5);gap:var(--space-2);font:var(--type-body);flex-direction:column;margin:0;display:flex}.onboarding-finish{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--success-soft);border:var(--border-width) solid var(--success);color:var(--text-strong);display:flex}.onboarding-finish p{margin:var(--space-1) 0 0;font:var(--type-body);text-wrap:pretty}.account-settings{gap:var(--space-3);flex-direction:column;display:flex}.account-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.group-label.danger{margin-top:var(--space-5);color:var(--danger-strong)}.danger-action{gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-lg);border:var(--border-width) solid var(--danger);background:var(--surface-card);flex-direction:column;display:flex}.danger-action h4{font:var(--type-card-title);color:var(--text-strong);margin:0}.danger-action p{font:var(--type-body);color:var(--text-body);text-wrap:pretty;margin:0}.danger-action .btn.danger{align-self:flex-start}.danger-confirm{gap:var(--space-3);flex-direction:column;display:flex}:root{--main-min-height:560px;--side-min-height:380px;--row-min-height:420px}.app{overflow-y:auto}.app>:last-child{min-height:var(--row-min-height)}.chore-toolbar{row-gap:var(--space-3);flex-wrap:wrap}.chore-toolbar .date-strip{flex-wrap:wrap}.chore-columns:not(.stacked) .member-column{container-type:inline-size}@container (width<=260px){.chore-card{gap:var(--space-3);padding:var(--space-3)}.chore-card .c-icon{display:none!important}}@media (orientation:landscape) and (width<=1100px){.layout{grid-template-columns:minmax(0,1fr) 320px}.shop-layout,.profile-layout{grid-template-columns:minmax(0,1fr) 340px}}@media (orientation:portrait){.header{row-gap:var(--space-3);flex-wrap:wrap}.header .tabs{flex:100%;order:1}.header .tabs button{flex:1 1 0;justify-content:center;min-width:0}.header .tabs button.icon-only{flex:none}.app>:last-child{min-height:var(--main-min-height)}.layout{grid-template-columns:minmax(0,1fr)}.layout .chore-columns.stacked{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-auto-rows:max-content;align-items:start;display:grid}.layout .chore-columns.stacked .column-stage{width:auto}.shop-layout,.profile-layout{grid-template-columns:minmax(0,1fr)}.app>.layout,.app>.shop-layout,.app>.profile-layout{grid-template-rows:minmax(var(--main-min-height), 3fr) minmax(var(--side-min-height), 2fr);min-height:calc(var(--main-min-height) + var(--gap-panel) + var(--side-min-height))}}@media (orientation:portrait) and (width>=760px){.header .tabs button:not(.active){width:auto;padding:0 var(--space-3)}.header .tabs button:not(.active) .tab-label{display:inline}}@media (orientation:landscape) and (height<=640px){.header .clock{font-size:var(--text-3xl)}.header .date,.header .who{display:none}.header .tabs button,.header .tabs button.icon-only,.header .tabs button:not(.active){min-height:var(--touch-sm)}.header .tabs button.icon-only,.header .tabs button:not(.active){width:var(--touch-sm)}}@media (width<=900px){.settings-body{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.settings-body>.scroll-area:first-child{border-bottom:var(--border-width) solid var(--border);flex:none}.settings-nav{padding:0 var(--space-4) var(--space-3);border-right:0;flex-direction:row;overflow:auto hidden}.settings-nav button{white-space:nowrap;padding:0 var(--space-3);flex:none}.settings-nav-link{margin-top:0}.settings-content{padding:var(--space-4) var(--space-4) var(--space-6)}}@media (orientation:portrait) and (width<=800px),(orientation:landscape) and (width<=1180px){.activity-editor{grid-template-columns:minmax(0,1fr)}}@media (orientation:portrait){.app>.activities-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(var(--side-min-height), 2fr) minmax(var(--main-min-height), 3fr);min-height:calc(var(--side-min-height) + var(--gap-panel) + var(--main-min-height))}}.mk-page{background:var(--surface-app);height:100vh;color:var(--text-body);-webkit-user-select:text;user-select:text;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;overflow-y:auto}.mk-wrap{width:min(1120px, 100% - var(--space-10));margin-inline:auto}.mk-page h1,.mk-page h2,.mk-page h3{color:var(--text-strong);text-wrap:balance}.mk-page p{text-wrap:pretty;margin:0}.mk-topbar{z-index:2;padding-top:env(safe-area-inset-top);background:color-mix(in srgb, var(--surface-app) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:var(--border-width) solid var(--border);position:sticky;top:0}.mk-topbar-row{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:76px;display:flex}.mk-topnav{align-items:center;gap:var(--space-6);font:var(--type-meta);white-space:nowrap;display:flex}.mk-topnav .btn.small{min-height:44px}.mk-back{align-items:center;gap:var(--space-1);font:var(--type-meta);display:inline-flex}.mk-logo{align-items:center;gap:var(--space-3);display:inline-flex}.mk-logo-mark{width:48px;height:48px;box-shadow:var(--shadow-sm,0 1px 3px #0000001f);border-radius:11px}.mk-logo-name{font:var(--weight-black) var(--text-3xl) / 1 var(--font-display);color:var(--text-strong)}.mk-logo.large{gap:var(--space-4);flex-direction:column}.mk-logo.large .mk-logo-mark{border-radius:16px;width:72px;height:72px}.mk-logo.large .mk-logo-name{font-size:var(--text-xl)}.mk-hero{padding:var(--space-16) 0 var(--space-12)}.mk-hero-grid{gap:var(--space-12);grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;display:grid}.mk-hero h1{font:var(--weight-black) clamp(var(--text-2xl), 4.2vw, var(--text-4xl)) / 1.05 var(--font-display);letter-spacing:var(--tracking-tight);margin-bottom:var(--space-5)}.mk-lede{font:var(--weight-semi) var(--text-md) / var(--leading-loose) var(--font-ui);color:var(--text-muted);margin-bottom:var(--space-8)!important}.mk-note{font:var(--type-meta);color:var(--text-muted);margin-top:var(--space-4)!important}.mk-cta{min-height:68px;padding:0 var(--space-8);font-size:var(--text-md);border-radius:var(--radius-2xl);box-shadow:var(--edge-lg) var(--brand-strong)}.mk-cta:active{box-shadow:var(--edge-press) var(--brand-strong);transform:translateY(6px)}.mk-cta:disabled{opacity:.6;cursor:default}.mk-hero .login-error{margin-top:var(--space-4)}.mk-device{background:var(--ink-900);box-shadow:var(--shadow-lift);margin:0;overflow:hidden}.mk-device img{background:var(--surface-sunken);width:100%;height:auto;display:block}.mk-device.tablet{border-radius:28px;width:100%;padding:14px}.mk-device.tablet img{aspect-ratio:16/10;object-fit:cover;border-radius:14px}.mk-device.phone{border-radius:44px;width:min(300px,100%);margin-inline:auto;padding:12px}.mk-device.phone img{aspect-ratio:390/844;object-fit:cover;border-radius:32px}.mk-why{padding:0 0 var(--space-16)}.mk-why-card{gap:var(--space-12);padding:var(--space-12) var(--space-10);background:var(--brand-soft);border-radius:var(--radius-2xl);grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;display:grid}.mk-why-copy h2{font:var(--weight-black) var(--text-2xl) / 1.1 var(--font-display);margin:var(--space-4) 0}.mk-why-copy p{color:var(--text-body)}.mk-why-copy .mk-why-closer{margin-top:var(--space-4);font-weight:var(--weight-bold);color:var(--brand-strong)}.mk-why-wins{gap:var(--space-4);margin:0;padding:0;list-style:none;display:grid}.mk-why-wins li{column-gap:var(--space-4);padding:var(--space-5) var(--space-6);background:var(--surface-card);border-radius:var(--radius-lg);grid-template-columns:auto 1fr;align-items:center;display:grid}.mk-why-icon{border-radius:var(--radius-md);background:var(--accent-soft);width:52px;height:52px;color:var(--accent-strong);grid-row:span 2;place-items:center;display:grid}.mk-why-wins h3{font:var(--type-card-title);margin-bottom:var(--space-1)}.mk-why-wins p{color:var(--text-muted)}.mk-features{padding:var(--space-12) 0}.mk-feature{gap:var(--space-12);padding:var(--space-12) 0;border-top:var(--border-width) solid var(--border);grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;display:grid}.mk-feature:first-child{border-top:none;padding-top:0}.mk-feature:nth-child(2n) .mk-feature-copy{order:2}.mk-feature.phone{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}.mk-kicker{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);background:var(--brand-soft);color:var(--brand-strong);font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;margin-bottom:var(--space-4);display:inline-flex}.mk-feature h2{font:var(--weight-black) var(--text-2xl) / 1.1 var(--font-display);margin-bottom:var(--space-4)}.mk-feature-copy>p{font:var(--weight-semi) var(--text-base) / var(--leading-loose) var(--font-ui);color:var(--text-muted);margin-bottom:var(--space-5)}.mk-points{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.mk-points li{gap:var(--space-3);font:var(--type-body);align-items:flex-start;display:flex}.mk-points svg{color:var(--success-strong);margin-top:3px}.mk-wall{padding:var(--space-16) 0;background:var(--surface-card);border-top:var(--border-width) solid var(--border);border-bottom:var(--border-width) solid var(--border)}.mk-section-head{text-align:center;max-width:640px;margin:0 auto var(--space-10)}.mk-section-head h2{font:var(--weight-black) var(--text-2xl) / 1.1 var(--font-display);margin-bottom:var(--space-3)}.mk-section-head p{color:var(--text-muted)}.mk-wall-grid{gap:var(--space-12);grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;display:grid}.mk-wall-points{gap:var(--space-6);margin:0;padding:0;list-style:none;display:grid}.mk-wall-points li{gap:var(--space-4);align-items:flex-start;display:flex}.mk-wall-icon{border-radius:var(--radius-md);background:var(--accent-soft);width:52px;height:52px;color:var(--accent-strong);flex:none;place-items:center;display:grid}.mk-wall-points h3{font:var(--type-card-title);margin-bottom:var(--space-1)}.mk-wall-points p{color:var(--text-muted)}.mk-steps{padding:var(--space-16) 0}.mk-step-list{gap:var(--space-6);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.mk-step-list li{background:var(--surface-card);border:var(--border-width) solid var(--border);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-soft)}.mk-step-n{border-radius:var(--radius-circle);background:var(--brand);width:44px;height:44px;color:var(--text-on-brand);font:var(--weight-black) var(--text-3xl) / 1 var(--font-display);margin-bottom:var(--space-4);place-items:center;display:grid}.mk-step-list h3{font:var(--type-card-title);margin-bottom:var(--space-2)}.mk-step-list p{color:var(--text-muted)}.mk-closing{padding:0 0 var(--space-16)}.mk-closing-card{justify-items:center;gap:var(--space-6);text-align:center;padding:var(--space-12) var(--space-8);background:var(--brand-soft);border-radius:var(--radius-2xl);display:grid}.mk-closing-card h2{font:var(--weight-black) var(--text-2xl) / 1.1 var(--font-display)}.mk-footer{border-top:var(--border-width) solid var(--border);padding:var(--space-8) 0 calc(var(--space-8) + env(safe-area-inset-bottom));font:var(--type-meta);color:var(--text-muted)}.mk-footer-row{justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;display:flex}.mk-footer nav{gap:var(--space-6);display:flex}.mk-doc-body{max-width:760px;padding:var(--space-12) 0 var(--space-16)}.mk-doc h1{font:var(--weight-black) var(--text-3xl) / 1.05 var(--font-display);margin-bottom:var(--space-2)}.mk-doc-meta{font:var(--type-meta);color:var(--text-muted);margin-bottom:var(--space-6)!important}.mk-doc .mk-lede{margin-bottom:var(--space-8)!important}.mk-toc{background:var(--surface-card);border:var(--border-width) solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-6);margin-bottom:var(--space-10)}.mk-toc ol{padding-left:var(--space-5);columns:2;column-gap:var(--space-6);font:var(--type-meta);margin:0}.mk-toc li{break-inside:avoid;padding:var(--space-1) 0}.mk-doc-section{margin-bottom:var(--space-10);scroll-margin-top:96px}.mk-doc-section h2{font:var(--weight-black) var(--text-xl) / 1.15 var(--font-display);margin-bottom:var(--space-3)}.mk-doc-lead{margin-bottom:var(--space-4)!important}.mk-doc-section ul{padding-left:var(--space-5);gap:var(--space-3);line-height:var(--leading-loose);margin:0;display:grid}.mk-doc-section strong{color:var(--text-strong)}@media (width<=900px){.mk-hero-grid,.mk-feature,.mk-feature.phone,.mk-wall-grid,.mk-why-card{gap:var(--space-8);grid-template-columns:1fr}.mk-why-card{padding:var(--space-8) var(--space-6)}.mk-feature:nth-child(2n) .mk-feature-copy{order:0}.mk-hero{padding-top:var(--space-10)}.mk-step-list{grid-template-columns:1fr}.mk-toc ol{columns:1}}@media (width<=600px){.mk-wrap{width:min(1120px, 100% - var(--space-8))}.mk-topnav a:first-child{display:none}.mk-cta{width:100%}.mk-device.tablet{border-radius:16px;padding:8px}.mk-device.tablet img{border-radius:8px}}
