: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: #ffffff;--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: rgba(36, 28, 59, .42);--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;color-scheme:light}[data-theme=dark]{--surface-app: #171233;--surface-card: #221b47;--surface-raised: #2c2458;--surface-sunken: #120e29;--surface-scrim: rgba(9, 6, 24, .62);--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;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)}:root{--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}:root{--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)}:root{--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{transform:scale(1);opacity:.65}50%{transform:scale(1.09);opacity:1}}@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%{transform:translateZ(0) rotate(0);opacity:1}to{transform:translate3d(var(--fc-drift, 0px),var(--fc-fall, 320px),0) rotate(var(--fc-spin, 540deg));opacity:0}}@keyframes fc-float-up{0%{transform:translateY(6px) scale(.7);opacity:0}25%{transform:translateY(-6px) scale(1.15);opacity:1}to{transform:translateY(-54px) scale(1);opacity:0}}@keyframes fc-stamp-in{0%{transform:translate(-50%,-50%) scale(.3) rotate(-12deg);opacity:0}to{transform:translate(-50%,-50%) scale(1) rotate(-3deg);opacity:1}}@keyframes fc-stamp-out{to{transform:translate(-50%,-50%) scale(.85) rotate(-3deg);opacity:0}}@keyframes fc-ripple{0%{transform:scale(.4);opacity:.55}to{transform:scale(2.6);opacity:0}}@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%{transform:translate(0) rotate(0) scale(.7);opacity:1;animation-timing-function:cubic-bezier(.02,.8,.2,1)}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%{transform:translate(-50%,-50%) scale(.3) rotate(-8deg);opacity:0}55%{transform:translate(-50%,-50%) scale(1.06) rotate(2deg);opacity:1}70%{transform:translate(-50%,-50%) scale(1) rotate(0);opacity:1}88%{transform:translate(-50%,-50%) scale(1) rotate(0);opacity:1}to{transform:translate(-50%,-50%) scale(.86) rotate(0);opacity: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{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!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);margin:0;text-wrap:pretty}button,input,select,textarea{font-family:inherit}a{color:var(--text-link);text-decoration:none;font-weight:var(--weight-bold)}a:hover{color:var(--text-link-hover);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}:focus-visible{outline:none;box-shadow:var(--ring-focus);border-radius:var(--radius-sm)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-pill)}::-webkit-scrollbar-track{background:transparent}:root{--radius: var(--radius-lg);--shadow: var(--shadow-card)}html,body,#root{height:100%}body{overflow:hidden}.app{height:100vh;display:grid;grid-template-rows:auto 1fr;gap:var(--space-4);padding:var(--pad-screen);background:var(--surface-app);min-height:0}.app.has-banner{grid-template-rows:auto auto 1fr}.top-banner{display:flex;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)}.top-banner>span,.top-banner .banner-text{flex:1;text-wrap:pretty}.top-banner .banner-icon{color:var(--warning-strong)}.header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:0 var(--space-2);min-width:0}.header-left{display:flex;align-items:center;gap:var(--space-5);min-width:0;flex:0 1 auto}.header .clock{font:var(--type-clock);color:var(--text-strong);letter-spacing:var(--tracking-tight);display:flex;align-items:baseline;gap:var(--space-2)}.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{display:inline-flex;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}.header .tabs button{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--touch-md);padding:0 var(--space-5);border:0;border-radius:var(--radius-pill);background:transparent;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)}.header .tabs button.icon-only{width:var(--touch-md);padding:0;justify-content:center}@media(max-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{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-2);flex:none;white-space:nowrap}.header-right-row{display:flex;align-items:center;gap:var(--space-3)}.header .who{display:flex;align-items:center;gap:var(--space-2);color:var(--text-muted);font:var(--type-meta)}.header .who img{border-radius:var(--radius-circle)}.header .who .btn{margin-left:var(--space-1)}.weather{display:flex;align-items:center;gap:var(--space-5)}.weather-loading,.weather-error{color:var(--text-muted);font:var(--type-meta);min-height:44px;display:flex;align-items:center}.weather-now{display:flex;align-items:center;gap:var(--space-3)}.weather-now .w-icon{color:var(--accent-strong)}.w-temp-block{display:flex;flex-direction:column;line-height:1.1;gap:1px}.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{display:flex;flex-direction:column;line-height:1.2}.w-cond{font:var(--type-meta);color:var(--text-body)}.w-place{font:var(--type-label);color:var(--text-muted)}.weather-forecast{display:flex;gap:var(--space-3);padding-left:var(--space-5);border-left:var(--border-width) solid var(--border)}.w-day{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:52px}.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{display:grid;grid-template-columns:minmax(0,1fr) var(--sidebar-width);gap:var(--gap-panel);min-height:0}.panel{background:var(--surface-card);border:var(--border-width) solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);min-height:0;display:flex;flex-direction:column;overflow:hidden}.panel h2{display:flex;align-items:center;gap:var(--space-3);margin:0;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}.panel h2 .panel-icon{color:var(--brand)}.sidebar{display:grid;grid-template-rows:1fr;gap:var(--gap-panel);min-height:0}.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--border);border-top:var(--border-width) solid var(--border);border-bottom:var(--border-width) solid var(--border);overflow:hidden;flex:1;min-height:0}.day-col{background:var(--surface-card);display:flex;flex-direction:column;min-height:0;min-width:0}.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-col.today .day-head .num{color:var(--brand-strong)}.day-events{overflow-y:auto;padding:var(--space-2);display:flex;flex-direction:column;gap:var(--space-2);flex:1;min-height:0}.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);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:break-word;text-wrap:pretty}.event.all-day{border:none;padding-left:var(--space-3);box-shadow:var(--shadow-soft);color:var(--text-on-accent)}.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{display:flex;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)}.meal-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-2)}.meal-cell{min-height:var(--touch-sm);display:flex;align-items:center;justify-content: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)}.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);background:transparent;color:var(--text-muted)}.meal-text{font:var(--weight-bold) var(--text-sm) / 1.25 var(--font-ui);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.meal-add{display:inline-flex;align-items:center;gap:var(--space-1);font:var(--type-meta);color:var(--text-muted)}.tasks-body{overflow-y:auto;padding:var(--space-1) var(--space-3) var(--space-4)}.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{display:flex;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)}.checkbox{width:44px;height:44px;padding:0;border-radius:var(--radius-sm);border:var(--border-width-thick) solid var(--border-strong);flex:0 0 auto;display:grid;place-items:center;color:var(--text-on-accent);background:transparent;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)}.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{flex:1;min-width:0;font:var(--type-body);color:var(--text-strong)}.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);margin-top:2px;white-space:pre-wrap;text-decoration:none}.task .due{display:inline-flex;align-items:center;gap:var(--space-1);margin-left:auto;padding:3px 10px;border-radius:var(--radius-pill);background:var(--surface-sunken);color:var(--text-muted);font:var(--type-label);white-space:nowrap}.task .due.overdue{background:var(--danger-soft);color:var(--danger-strong)}.chores{height:100%;display:flex;flex-direction:column;min-height:0}.chore-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-5) var(--space-3);flex:none}.chore-toolbar h2{padding:0}.date-strip{display:flex;align-items:center;gap:var(--space-2)}.date-strip .today-label{font:var(--type-meta);color:var(--text-muted);min-width:150px;text-align:center}.avatar{width:48px;height:48px;flex:none;border-radius:var(--radius-circle);display:grid;place-items:center;font-size:27px;line-height:1;color:var(--text-on-accent);font-family:var(--font-display);font-weight:var(--weight-black);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{display:flex;gap:var(--space-4);padding:0 var(--space-5) var(--space-5);overflow-x:auto;flex:1;min-height:0}.member-column{flex:1 1 0;min-width:230px;background:var(--surface-sunken);border:var(--border-width) solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden;min-height:0}.member-column .col-head{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:var(--border-width) solid var(--border);flex:none}.member-column .col-head .meta{display:flex;flex-direction:column;gap:2px;min-width:0}.member-column .chore-cards{flex:1;min-height:0;padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);overflow-y:auto}.chore-card{position:relative;display:flex;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)}.chore-card:active{transform:scale(var(--press-scale));box-shadow:none}.chore-card.done{background:var(--success-soft);border-color:var(--success)}.chore-card .check{position:relative;width:44px;height:44px;border-radius:var(--radius-sm);border:var(--border-width-thick) solid var(--border-strong);flex:0 0 auto;display:grid;place-items:center;color:var(--text-on-accent);background:transparent}.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:1;min-width:0;display:flex;flex-direction:column;gap:2px}.chore-card .c-title{font:var(--type-card-title);color:var(--text-strong);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-wrap:pretty}.chore-card.done .c-title{text-decoration:line-through;color:var(--text-muted)}.chore-card .c-meta{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.chip,.c-pts,.c-tag,.c-by{display:inline-flex;align-items:center;gap:var(--space-1);padding:3px 10px;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}.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{display:flex;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)}.item-row .grow{flex:1;min-width:0}.item-row img{border-radius:var(--radius-circle)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--touch-md);padding:0 var(--space-6);border:none;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)}.btn:active{transform:translateY(4px);box-shadow:var(--edge-press) var(--border-strong),inset 0 0 0 var(--border-width) var(--border-strong)}.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{background:transparent;color:var(--text-body);box-shadow:none}.btn.ghost:hover{background:var(--brand-soft)}.btn.ghost:active{transform:none;box-shadow: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);padding:0;border-radius:var(--radius-circle)}.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{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.panel-actions{display:flex;gap:var(--space-2);padding:0 var(--space-4) var(--space-3)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--surface-scrim);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:grid;place-items:center;z-index:var(--z-modal);padding:var(--space-6)}.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;overflow:auto;box-shadow:var(--shadow-modal)}.modal h3{margin:0 0 var(--space-4);font:var(--type-screen-title);color:var(--text-strong)}.field{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.field label{font:var(--type-meta);color:var(--text-muted)}.field input,.field select,input.input,select.input{min-height:var(--touch-md);min-width:0;width:100%;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{display:flex;gap:var(--space-3);flex-wrap:wrap}.swatch{width:48px;height:48px;border-radius:var(--radius-circle);border:4px solid transparent;cursor:pointer;transition:transform var(--dur-fast) var(--ease-bounce)}.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{display:flex;gap:var(--space-2);flex-wrap:wrap}.day-toggle{width:56px;height:56px;border-radius:var(--radius-md);border:var(--border-width) solid var(--border-strong);background:var(--surface-raised);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);border-color:transparent;box-shadow:0 4px 0 var(--brand-strong)}.emoji-pick{display:flex;gap:var(--space-2);flex-wrap:wrap}.emoji-pick button{width:56px;height:56px;display:grid;place-items:center;font-size:30px;line-height:1;border-radius:var(--radius-md);border:var(--border-width) solid var(--border-strong);background:var(--surface-raised);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)}.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:transparent}.modal-actions{display:flex;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)}.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{display:grid;grid-template-columns:240px 1fr;min-height:0;flex:1}.settings-nav{display:flex;flex-direction:column;gap:var(--space-1);padding:0 var(--space-4) var(--space-4);border-right:var(--border-width) solid var(--border)}.settings-nav button{display:flex;align-items:center;gap:var(--space-3);min-height:var(--touch-sm);padding:0 var(--space-4);text-align:left;border:none;border-radius:var(--radius-md);background:transparent;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)}.settings-nav button:hover{background:var(--brand-soft)}.settings-nav button.active{background:var(--brand-soft);color:var(--brand-strong)}.settings-nav-link{margin-top:auto;box-shadow:inset 0 0 0 var(--border-width) var(--border-strong);color:var(--text-strong)!important}.settings-content{padding:0 var(--space-6) var(--space-6);overflow:auto}.settings-content>*{max-width:680px}.settings-section-head{margin:var(--space-5) 0 var(--space-3)}.settings-section-head h3{margin:0 0 2px;font:var(--type-section-title);color:var(--text-strong)}.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{width:18px;height:18px;border-radius:6px;flex:none}.login{min-height:100vh;display:grid;place-items:center;padding:var(--space-8);background:var(--surface-app)}.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);width:min(520px,100%);text-align:center}.login-logo{display:flex;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-5)}.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}.item-row.editing{background:var(--surface-raised);border-radius:var(--radius-md)}.chore-form{margin-top:var(--space-2)}.member-toggles{display:flex;flex-wrap:wrap;gap:var(--space-2)}.member-toggle{display:inline-flex;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);background:transparent;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)}.member-toggle.on{color:var(--text-strong);background:var(--surface-raised)}.member-toggle .avatar{width:34px;height:34px;font-size:19px}.mode-pick{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.mode-pick button{display:flex;flex-direction:column;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);line-height:1.3;cursor:pointer}.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{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-1)}.chore-group-head{display:flex;justify-content:space-between;align-items:baseline;padding:var(--space-2) var(--space-1) 0;font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted)}.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{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);margin:var(--space-2) 0 var(--space-1)}.chore-list-group{margin-bottom:var(--space-2)}.chore-row{display:flex;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}.chore-row:hover{background:var(--surface-raised)}.chore-row-icon{color:var(--text-body);width:34px;display:grid;place-items:center;flex:none}.chore-row-main{flex:1;min-width:0}.chore-row-title{font:var(--type-card-title);color:var(--text-strong)}.chore-row-meta{display:flex;gap:var(--space-2);flex-wrap:wrap;color:var(--text-muted);font:var(--type-meta);font-weight:var(--weight-semi)}.chore-row-people{display:flex;gap:var(--space-1)}.chore-row-people .avatar{width:34px;height:34px;font-size:19px}.star-card{position:relative;overflow:hidden;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;align-items:center;gap:var(--space-5)}.star-card.complete{border-color:var(--accent);background:var(--accent-soft)}.star-card.finale{animation:fc-cheer .6s var(--ease-out) 2}.star-action{display:flex;align-items:center;gap:var(--space-3);flex:0 1 260px;min-width:180px}.star-action-icon{color:var(--text-muted);flex:none}.star-action .c-title{font:var(--type-card-title);color:var(--text-strong)}.star-arrow{color:var(--border-strong);flex:none}.star-hint{color:var(--text-muted);font:var(--type-meta);font-weight:var(--weight-semi)}.star-row{flex:1 1 auto;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-1)}.star-row .star{position:relative;width:80px;height:80px;border:none;background:transparent;padding:0;cursor:pointer;display:grid;place-items:center;color:var(--border-strong);transition:opacity var(--dur-slow) var(--ease-soft),transform var(--dur-slow) var(--ease-soft)}.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 rgb(255 197 61 / .45))}.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{display:block;transition:transform var(--dur-instant) var(--ease-soft)}.sparkles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.sparkles i{position:absolute;left:50%;top:50%;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:var(--radius-circle);background:var(--accent);--fc-angle: calc(var(--k) * 45deg);animation:fc-sparkle-burst var(--dur-cheer) var(--ease-out) both}.sparkles i:nth-child(odd){background:var(--accent-soft);width:7px;height:7px;margin:-3.5px 0 0 -3.5px}.star-prize-block{flex:0 0 auto;min-width:180px;max-width:240px;text-align:center;padding:var(--space-4);border-radius:var(--radius-lg);border:var(--border-width) dashed var(--border-dashed);background:transparent;display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.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{display:flex;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;justify-content:center}.confetti{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.confetti i{position:absolute;top:-14px;border-radius:3px;animation-name:fc-confetti-fall;animation-timing-function:linear;animation-fill-mode:both}.finale-banner{position:absolute;left:50%;top:50%;display:inline-flex;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}.chore-columns.stacked{flex-direction:column;overflow-x:hidden;overflow-y:auto;padding:0 var(--space-4) var(--space-4);gap:var(--space-3)}.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{position:absolute;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}.streak{display:inline-flex;align-items:center;gap:var(--space-1);margin-top:2px;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}.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{display:flex;gap:3px;margin-top:var(--space-1);flex-wrap:wrap}.event-people .avatar{width:26px;height:26px;font-size:15px;box-shadow:0 0 0 2px var(--surface-card)}.event-modal-head{display:flex;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4)}.event-modal-head .event-color{width:8px;align-self:stretch;border-radius:var(--radius-pill);flex:none}.event-modal-head h3{margin:0 0 var(--space-1)}.event-modal-head .settings-hint{display:flex;align-items:center;gap:var(--space-2)}.task-list .tasks-body{padding:var(--space-3)}.parent{height:100dvh;display:flex;flex-direction:column;max-width:640px;margin:0 auto;background:var(--surface-app)}.parent-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:calc(var(--space-4) + env(safe-area-inset-top)) var(--space-5) var(--space-3)}.parent-top h1{margin:2px 0;font:var(--type-screen-title);color:var(--text-strong)}.parent-kicker{font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--brand-strong)}.parent-avatar{width:44px;height:44px;border-radius:var(--radius-circle);border:var(--border-width) solid var(--border);flex:none}.parent-content{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 var(--space-4) calc(var(--space-6) + env(safe-area-inset-bottom));overscroll-behavior:contain}.parent-tabs{flex:none;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:2px;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)}.parent-tabs button{display:flex;flex-direction:column;align-items:center;gap:3px;padding:var(--space-2) 2px;min-height:var(--touch-sm);border:0;border-radius:var(--radius-md);background:transparent;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)}.parent-tabs button.active{background:var(--brand-soft);color:var(--brand-strong)}.parent-tab-icon{display:grid;place-items:center;line-height:1}.parent .row-action{display:none}.parent .chore-row{padding:var(--space-3) var(--space-1);min-height:64px}.parent .list-toolbar{position:sticky;top:0;z-index:2;background:var(--surface-app);padding:var(--space-2) 0}.parent .center-note{padding:var(--space-8) var(--space-3)}.parent-account{margin-top:var(--space-8);padding-top:var(--space-2);border-top:var(--border-width) solid var(--border)}.parent-display-link{width:100%;margin-top:var(--space-4)}.dinner-planner{padding-top:var(--space-2)}.week-nav{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.week-nav-label{flex:1;text-align:center;display:flex;flex-direction:column;gap:2px}.week-nav-label strong{font:var(--type-card-title);color:var(--text-strong)}.week-today{display:flex;margin:0 auto var(--space-3)}.dinner-list{display:flex;flex-direction:column;gap:var(--space-2)}.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{width:100%;display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border:0;background:transparent;color:var(--text-strong);text-align:left;font:inherit;cursor:pointer;min-height:var(--touch-md)}.dinner-date{width:48px;flex:none;text-align:center}.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);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dinner-empty{font:var(--type-body);color:var(--text-muted)}.dinner-chevron{color:var(--text-muted);display:grid;place-items:center}.dinner-editor{padding:0 var(--space-4) var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.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{display:flex;gap:var(--space-2);overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.dinner-chips::-webkit-scrollbar{display:none}.dinner-chips .chip{flex:none;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}.dinner-editor-actions{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2)}@media(max-width:720px){.modal-backdrop{place-items:end center;padding:0}.modal{width:100%;max-height:92dvh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;border-bottom:0;padding:var(--space-5) var(--space-4) calc(var(--space-5) + env(safe-area-inset-bottom))}.modal .day-toggles{flex:1}.modal .day-toggle{flex:1;width:auto;min-width:0}.modal .row>.field[style]{width:auto!important;flex:1 1 100%!important}.modal .mode-pick{grid-template-columns:1fr}.modal-actions .row{flex-wrap:nowrap}}.day-cal{padding-top:var(--space-2)}.day-nav{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.day-nav-label{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-2);border:0;background:transparent;color:var(--text-strong);font:inherit;cursor:pointer;border-radius:var(--radius-md)}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{font-style:normal;color:var(--brand-strong);font-weight:var(--weight-bold)}.day-body{min-height:60vh}.day-list{display:flex;flex-direction:column;gap:var(--space-2)}.day-event{display:flex;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)}.day-event.all-day{background:var(--surface-raised)}.day-event-time{width:64px;flex:none;font:var(--type-meta);color:var(--text-strong)}.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{display:flex;align-items:center;gap:var(--space-1);font:var(--type-meta);font-weight:var(--weight-semi);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-event .event-people{display:flex;gap:var(--space-1);margin:0;flex-wrap:nowrap}.day-event .event-people .avatar{width:36px;height:36px;font-size:20px}.day-dinner{display:flex;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);background:transparent;color:var(--text-strong);font:inherit;text-align:left;cursor:pointer;min-height:var(--touch-md)}.day-dinner-icon{color:var(--text-muted);display:grid;place-items:center}.day-dinner-main{flex:1;min-width:0}.month-picker{width:min(440px,100%)}.month-picker .day-nav-label{cursor:default}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-1);margin:var(--space-2) 0 var(--space-3)}.month-dow{text-align:center;font:var(--type-label);color:var(--text-muted);padding:var(--space-1) 0}.month-day{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;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}.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{position:absolute;bottom:5px;left:50%;transform:translate(-50%);width:6px;height:6px;border-radius:var(--radius-circle);background:var(--brand)}.month-day.selected .month-dot{background:var(--text-on-brand)}.parent-tasks .group-label{display:flex;justify-content:space-between;align-items:baseline}.group-count{text-transform:none;letter-spacing:0}.parent-task{width:100%;text-align:left;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)}.goal-ring{position:relative;flex:none}.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{position:absolute;display:grid;place-items:center;border-radius:var(--radius-circle);background:var(--surface-card);color:var(--text-strong);transition:background var(--dur-base) var(--ease-soft)}.goal-ring.complete .goal-ring-face{background:var(--success-soft)}.goal-ring-badge{position:absolute;right:-2px;bottom:-2px;display:grid;place-items:center;border-radius:var(--radius-circle);background:var(--success);color:var(--text-on-accent);border:3px solid var(--surface-card)}.goal-ring-value{position:absolute;left:50%;transform:translate(-50%);padding:2px 8px;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);line-height:1;color:var(--text-strong);white-space:nowrap}.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{display:inline-flex;gap:2px;margin-left:2px}.freeze-dots i{width:7px;height:7px;border-radius:var(--radius-circle);border:1.5px solid var(--info);opacity:.45}.freeze-dots i.on{background:var(--info);opacity:1}.column-stage{position:relative;display:flex;flex:1 1 0;min-width:0;min-height:0}.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{width:120px}.goal-field input{text-align:center}.item-row .goal-inline{display:inline-flex;align-items:center;gap:var(--space-2);font:var(--type-meta);color:var(--text-muted)}.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{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:var(--gap-panel);min-height:0;height:100%}.who-picker{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.shop-body{flex:1;min-height:0;overflow-y:auto;padding:0 var(--space-5) var(--space-5)}.balance-card{position:relative;display:flex;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)}.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{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-3)}.reward-card{display:flex;flex-direction:column;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)}.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{width:100%;height:8px;border-radius:var(--radius-pill);background:var(--surface-sunken);overflow:hidden;margin-top:var(--space-1)}.reward-bar i{display:block;height:100%;background:var(--accent);transition:width var(--dur-slow) var(--ease-bounce)}.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{flex:1;min-height:0;overflow-y:auto;padding:0 var(--space-5) var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}.approval-row{display:flex;align-items:center;flex-wrap:wrap;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)}.approval-row.decided{background:var(--surface-sunken);border-color:var(--border)}.approval-who{position:relative;flex:none;display:inline-flex}.approval-what{position:absolute;right:-8px;bottom:-6px;width:30px;height:30px;display:grid;place-items:center;border-radius:var(--radius-circle);background:var(--accent);color:var(--text-on-accent);border:2px solid var(--surface-card)}.approval-main{flex:1 1 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{display:flex;gap:var(--space-2);flex:0 0 auto;margin-left:auto}.approvals-note{display:flex;gap:var(--space-3);align-items:flex-start;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)}.approvals-note p{margin:0;font:var(--type-meta);font-weight:var(--weight-regular);color:var(--text-muted)}@media(max-width:1400px){.weather-forecast{display:none}}@media(max-width:1240px){.header .tabs button:not(.active){width:var(--touch-md);padding:0;justify-content:center}.header .tabs button:not(.active) .tab-label{display:none}}.gear-list{display:flex;flex-direction:column;gap:var(--space-2)}.gear-head{display:flex;align-items:center;justify-content:space-between}.gear-title{display:inline-flex;align-items:center;gap:var(--space-2);font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted)}.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{display:flex;flex-direction:column;gap:var(--space-1)}.gear-item{display:flex;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}.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{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:var(--radius-pill);background:var(--warning-soft);color:var(--warning-strong);font:var(--weight-black) 12px / 1 var(--font-ui)}.gear-pill.all{background:var(--success-soft);color:var(--success-strong)}.checklist-editor{display:flex;flex-direction:column;gap:var(--space-2)}.checklist-empty{display:flex;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)}.checklist-item{display:flex;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)}.checklist-item .grow{flex:1;min-width:0}.face-button{padding:0;border:none;background:transparent;line-height:0;cursor:pointer;border-radius:var(--radius-circle)}.face-button:disabled{cursor:default}.profile-layout{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:var(--gap-panel);min-height:0;height:100%}.profile-body,.review-body{flex:1;min-height:0;overflow-y:auto;padding:0 var(--space-5) var(--space-5);display:flex;flex-direction:column;gap:var(--space-5)}.profile-hero{display:flex;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)}.profile-hero-text{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.profile-name{font:var(--weight-black) var(--text-2xl) / 1 var(--font-display);color:var(--text-strong)}.profile-section-title{display:flex;align-items:center;gap:var(--space-2);margin:0 0 var(--space-3) var(--space-1)}.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{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-3)}.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{padding:0;background:transparent;border:none;text-align:left}.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{display:flex;align-items:flex-end;gap:var(--space-2)}.week-bar{display:flex;flex-direction:column;align-items:center;gap:4px}.week-bar-track{position:relative;display:flex;align-items:flex-end}.week-bar-goal{position:absolute;left:0;right:0;border-top:2px dashed var(--border-dashed)}.week-bar-fill{width:100%;border-radius:var(--radius-sm);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{display:flex;flex-wrap:wrap;gap:var(--space-3)}.badge{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);width:130px;padding:var(--space-3);border-radius:var(--radius-lg);background:transparent;border:var(--border-width) dashed var(--border-dashed);text-align:center}.badge.earned{background:var(--accent-soft);border:var(--border-width) solid var(--accent)}.badge-disc{width:64px;height:64px;display:grid;place-items:center;border-radius:var(--radius-circle);background:var(--surface-sunken);color:var(--text-muted);opacity:.55}.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{display:inline-flex;align-items:center;gap:4px;font:var(--type-meta);color:var(--accent-strong)}.badge-how{font:var(--type-meta);font-weight:var(--weight-regular);color:var(--text-muted);text-wrap:pretty}.chore-streak-row{display:flex;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)}.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{display:flex;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)}.review-family-total{font:var(--type-section-title);color:var(--text-strong)}.review-row{display:flex;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)}.review-who{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);width:150px;flex:none;text-align:center}.review-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-3)}.review-stats{display:flex;gap:var(--space-6);flex-wrap:wrap}.review-sentence{margin:0;font:var(--type-body);color:var(--text-body);text-wrap:pretty}.activities-layout{display:grid;grid-template-columns:360px minmax(0,1fr);gap:var(--gap-panel);min-height:0;height:100%}.activities-list{flex:1;min-height:0;overflow-y:auto;padding:0 var(--space-5) var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}.activity-card{display:flex;flex-direction:column;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)}.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{flex:1;min-height:0;overflow-y:auto;padding:0 var(--space-5) var(--space-5);display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--space-6);align-items:start}.activity-main,.activity-side{display:flex;flex-direction:column;gap:var(--space-6);min-width:0}.activity-section{display:flex;flex-direction:column;gap:var(--space-3)}.activity-section .field{margin-bottom:0}.two-up{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.top-banner.info{background:var(--info-soft);border-color:var(--info)}.top-banner.info .banner-icon{color:var(--info-strong)}.rule-row{display:flex;flex-direction:column;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)}.rule-summary{flex:1 1 140px;min-width:0;font:var(--weight-bold) var(--text-sm) / 1.25 var(--font-ui);color:var(--text-strong)}.rule-edit{display:flex;flex-direction:column;gap:var(--space-3)}.contact-card{display:flex;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)}.contact-disc{width:44px;height:44px;flex:none;display:grid;place-items:center;border-radius:var(--radius-circle);background:var(--brand-soft);color:var(--brand-strong)}.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{width:100%;justify-content:flex-start;text-align:left;margin:var(--space-2) 0 var(--space-3)}.parent-link .grow{flex:1}.parent-tab-icon{position:relative}.tab-badge{position:absolute;top:-6px;right:-12px;min-width:18px;height:18px;padding:0 5px;display:grid;place-items:center;border-radius:var(--radius-pill);background:var(--accent);color:var(--text-on-accent);font:var(--weight-black) 11px / 1 var(--font-numeric)}.approvals-stack{display:flex;flex-direction:column;gap:var(--space-2)}.balance-strip{display:flex;flex-wrap:wrap;gap:var(--space-2)}.balance-strip .chip{padding:4px 12px 4px 4px;font:var(--type-meta);color:var(--text-strong);background:var(--surface-card);border:var(--border-width) solid var(--border)}.review-embedded{display:flex;flex-direction:column;gap:var(--space-3)}.parent-tabs button{font-size:10px}@media(max-width:720px){.review-row{flex-direction:column;gap:var(--space-3);padding:var(--space-4)}.review-who{flex-direction:row;width:auto;text-align:left;gap:var(--space-3)}.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{display:block;height:auto}.activities-layout.embedded .activities-list,.activities-layout.embedded .activity-editor{padding:0;overflow:visible}.activities-layout.embedded .activity-editor{grid-template-columns:1fr;gap:var(--space-5)}.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{display:flex;justify-content:space-between;align-items:baseline}.scroll-area{position:relative;display:flex;flex-direction:column;flex:1;min-height:0;min-width:0}.scroll-area-inner{flex:1;min-height:0;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.scroll-area-inner::-webkit-scrollbar{display:none}.scroll-hint{position:absolute;left:0;right:0;height:44px;display:flex;align-items:flex-end;justify-content:center;padding:0 0 4px;border:none;background:linear-gradient(to top,var(--scroll-fade, var(--surface-card)) 35%,transparent);color:var(--text-muted);cursor:pointer;z-index:1}.scroll-hint svg{padding:4px;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}.scroll-hint.bottom{bottom:0}.scroll-hint.top{top:0;align-items:flex-start;padding:4px 0 0;background:linear-gradient(to bottom,var(--scroll-fade, var(--surface-card)) 35%,transparent)}.member-column{--scroll-fade: var(--surface-sunken)}.day-col.today{--scroll-fade: var(--brand-soft)}.face-emoji{display:block;line-height:1;transform:translateY(.09em)}.face-initial{display:block;line-height:1}.cal-row{flex-wrap:wrap;cursor:default}.cal-row-main{display:flex;align-items:center;gap:var(--space-3);flex:1 1 260px;min-width:0;cursor:pointer}.cal-colors{display:flex;gap:var(--space-1);flex-wrap:wrap}.cal-color{width:30px;height:30px;padding:0;border:3px solid transparent;border-radius:var(--radius-circle);cursor:pointer;font:var(--weight-black) 12px / 1 var(--font-ui);color:var(--text-on-brand);transition:transform var(--dur-fast) var(--ease-bounce)}.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{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-2)}.add-task-row{display:flex;gap:var(--space-2);align-items:center}.add-task-row .input{flex:1;min-width:0;min-height:var(--touch-sm)}.parent-tasks .add-task{margin-bottom:var(--space-2)}.task-date{display:inline-flex;align-items:center;gap:var(--space-1);margin-left:auto;min-width:36px;min-height:36px;padding:0 10px;border:var(--border-width) dashed var(--border-dashed);border-radius:var(--radius-pill);background:transparent;color:var(--text-muted);font:var(--type-label);white-space:nowrap;cursor:pointer;flex:none}.task-date.set{border-style:solid;border-color:transparent;background:var(--surface-sunken)}.task-date.overdue{border-style:solid;border-color:transparent;background:var(--danger-soft);color:var(--danger-strong)}.task.done .task-date{opacity:.6}.mk-page{height:100vh;overflow-y:auto;background:var(--surface-app);color:var(--text-body);-webkit-user-select:text;user-select:text;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.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{margin:0;text-wrap:pretty}.mk-topbar{position:sticky;top:0;z-index:2;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)}.mk-topbar-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:76px}.mk-topnav{display:flex;align-items:center;gap:var(--space-6);font:var(--type-meta);white-space:nowrap}.mk-topnav .btn.small{min-height:44px}.mk-back{display:inline-flex;align-items:center;gap:var(--space-1);font:var(--type-meta)}.mk-logo{display:inline-flex;align-items:center;gap:var(--space-3)}.mk-logo-faces{display:inline-flex}.mk-logo-faces .avatar{width:34px;height:34px;font-size:19px;margin-left:-8px;box-shadow:0 0 0 3px var(--surface-app)}.mk-logo-faces .avatar:first-child{margin-left:0}.mk-logo-name{font:var(--weight-black) var(--text-md) / 1 var(--font-display);color:var(--text-strong)}.mk-logo.large{flex-direction:column;gap:var(--space-4)}.mk-logo.large .avatar{width:56px;height:56px;font-size:31px;margin-left:-12px;box-shadow:0 0 0 4px var(--surface-card)}.mk-logo.large .mk-logo-name{font-size:var(--text-lg)}.mk-hero{padding:var(--space-16) 0 var(--space-12)}.mk-hero-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--space-12);align-items:center}.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{transform:translateY(6px);box-shadow:var(--edge-press) var(--brand-strong)}.mk-cta:disabled{opacity:.6;cursor:default}.mk-hero .login-error{margin-top:var(--space-4)}.mk-device{margin:0;background:var(--ink-900);box-shadow:var(--shadow-lift);overflow:hidden}.mk-device img{display:block;width:100%;height:auto;background:var(--surface-sunken)}.mk-device.tablet{padding:14px;border-radius:28px;width:100%}.mk-device.tablet img{border-radius:14px;aspect-ratio:16 / 10;object-fit:cover}.mk-device.phone{padding:12px;border-radius:44px;width:min(300px,100%);margin-inline:auto}.mk-device.phone img{border-radius:32px;aspect-ratio:390 / 844;object-fit:cover}.mk-features{padding:var(--space-12) 0}.mk-feature{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--space-12);align-items:center;padding:var(--space-12) 0;border-top:var(--border-width) solid var(--border)}.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{display:inline-flex;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)}.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{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3)}.mk-points li{display:flex;gap:var(--space-3);align-items:flex-start;font:var(--type-body)}.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{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--space-12);align-items:center}.mk-wall-points{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-6)}.mk-wall-points li{display:flex;gap:var(--space-4);align-items:flex-start}.mk-wall-icon{flex:none;width:52px;height:52px;border-radius:var(--radius-md);background:var(--accent-soft);color:var(--accent-strong);display:grid;place-items:center}.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{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-6)}.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{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-circle);background:var(--brand);color:var(--text-on-brand);font:var(--weight-black) var(--text-md) / 1 var(--font-display);margin-bottom:var(--space-4)}.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{display:grid;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)}.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{display:flex;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.mk-footer nav{display:flex;gap:var(--space-6)}.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{margin:0;padding-left:var(--space-5);columns:2;column-gap:var(--space-6);font:var(--type-meta)}.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{margin:0;padding-left:var(--space-5);display:grid;gap:var(--space-3);line-height:var(--leading-loose)}.mk-doc-section strong{color:var(--text-strong)}@media(max-width:900px){.mk-hero-grid,.mk-feature,.mk-feature.phone,.mk-wall-grid{grid-template-columns:1fr;gap:var(--space-8)}.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(max-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{padding:8px;border-radius:16px}.mk-device.tablet img{border-radius:8px}}
