*{box-sizing:border-box}html{font-size:calc(var(--base) * var(--text-scale, 1))}body{margin:0;background:radial-gradient(color-mix(in srgb,var(--accent) 13%,transparent) 1px,transparent 1.3px) 0 0 / 24px 24px,var(--surface);color:var(--ink);font-family:Atkinson Hyperlegible Next,Atkinson Hyperlegible,sans-serif;line-height:1.6;font-variant-numeric:tabular-nums;transition:background .3s ease,color .3s ease}@media(prefers-reduced-motion:reduce){body,body *{transition-duration:.01ms!important;animation-duration:.01ms!important}}[data-reduce-motion=true] body,[data-reduce-motion=true] body *{transition-duration:.01ms!important;animation-duration:.01ms!important}h1,h2,h3{font-family:Fredoka,sans-serif;font-weight:500;line-height:1.2}h1{font-size:1.9rem;letter-spacing:.005em}.icon{width:1.15em;height:1.15em;vertical-align:-.2em;flex-shrink:0}a{color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}button{font-family:inherit}.shell{min-height:100dvh;display:flex;flex-direction:column}.shell-header{position:sticky;top:0;z-index:15;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.25rem;background:var(--surface);border-bottom:1px solid var(--line)}.shell-header .family-name{font-family:Fredoka,sans-serif;font-weight:500;color:var(--accent);margin-right:.6rem}.shell-header .family-name:after{content:"·";color:var(--ink-soft);margin-left:.6rem;font-family:Atkinson Hyperlegible Next,sans-serif}@media(max-width:560px){.shell-header .family-name{display:none}}.shell-header .today-date{font-family:Fredoka,sans-serif;font-size:1.25rem;font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell-header .header-actions{flex-shrink:0;display:flex;align-items:center;gap:.6rem}.points-chip{display:inline-flex;align-items:center;gap:.25rem;min-height:44px;padding:0 .2rem;color:var(--ink-soft);font-weight:700;font-size:.9rem;text-decoration:none}.points-chip .icon{color:var(--celebrate)}.points-chip-count{display:inline-block;width:6ch;text-align:left;font-variant-numeric:tabular-nums}.shell-main{flex:1;width:100%;max-width:60rem;margin:0 auto;padding:0 1.25rem 6rem}.shell-main[data-route="/calendar"]{max-width:78rem}.shell-colophon{margin:2.5rem 0 0;text-align:center;font-family:Fredoka,sans-serif;font-size:.7rem;font-weight:500;color:var(--ink-soft);opacity:.7}.shell-colophon a{color:inherit;text-decoration:underline;text-underline-offset:2px}.tabbar{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;background:var(--card);border-top:1px solid var(--line);padding:.3rem .25rem calc(.3rem + env(safe-area-inset-bottom));z-index:10}.tab{display:flex;flex-direction:column;align-items:center;gap:.1rem;flex:1 1 0;min-width:0;min-height:48px;justify-content:center;padding:.25rem .1rem;border-radius:var(--radius);font-size:clamp(.5rem,2.9vw,.72rem);font-weight:700;color:var(--ink-soft);text-decoration:none}.tab-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab .tab-icon{width:1.45rem;height:1.45rem}.tabbar-logo{flex:0 0 auto;align-self:center;width:1.6rem;height:1.6rem;margin-left:.5rem}.tab:hover{color:var(--ink);background:color-mix(in srgb,var(--accent) 6%,transparent)}.tab.active{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}button.tab{background:none;border:none;cursor:pointer;font-family:inherit}.tab-rail-only{display:none}.more-sheet{display:flex;flex-direction:column;gap:.25rem}@media(min-width:900px){.shell{flex-direction:row}.tabbar{position:sticky;top:0;bottom:auto;align-self:flex-start;height:100dvh;flex-direction:column;justify-content:flex-start;gap:.4rem;border-top:none;border-right:1px solid var(--line);padding:1rem .6rem}.tabbar-logo{width:2.4rem;height:2.4rem;margin:0 auto .6rem}.shell-body{flex:1;min-width:0}.shell-main{padding-bottom:2rem}.tab{width:100%;flex:0 0 auto;font-size:.72rem}.tab-rail-only{display:flex}.tab-more{display:none}}.shell-body{display:flex;flex-direction:column;flex:1}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem 1.5rem;box-shadow:0 1px 3px #0000000d;transition:background .3s ease,border-color .3s ease}[data-mode=dark] .card{box-shadow:0 2px 6px #00000059}.card,.meal-day{rotate:calc(var(--tilt, 0deg) * var(--tilt-scale, 1) * var(--tilt-on, 1))}:root{--tilt-on: 1}html[data-flatten-cards=true]{--tilt-on: 0}.card:nth-child(4n+1),.meal-day:nth-child(4n+1){--tilt: -1.2deg}.card:nth-child(4n+2),.meal-day:nth-child(4n+2){--tilt: .9deg}.card:nth-child(4n+3),.meal-day:nth-child(4n+3){--tilt: -.5deg}.card:nth-child(4n+4),.meal-day:nth-child(4n+4){--tilt: 1.6deg}.board-section:nth-child(4n+2) .card:nth-child(4n+1),.board-section:nth-child(4n+2) .meal-day:nth-child(4n+1){--tilt: .9deg}.board-section:nth-child(4n+2) .card:nth-child(4n+2),.board-section:nth-child(4n+2) .meal-day:nth-child(4n+2){--tilt: -.5deg}.board-section:nth-child(4n+2) .card:nth-child(4n+3),.board-section:nth-child(4n+2) .meal-day:nth-child(4n+3){--tilt: 1.6deg}.board-section:nth-child(4n+2) .card:nth-child(4n+4),.board-section:nth-child(4n+2) .meal-day:nth-child(4n+4){--tilt: -1.2deg}.board-section:nth-child(4n+3) .card:nth-child(4n+1),.board-section:nth-child(4n+3) .meal-day:nth-child(4n+1){--tilt: -.5deg}.board-section:nth-child(4n+3) .card:nth-child(4n+2),.board-section:nth-child(4n+3) .meal-day:nth-child(4n+2){--tilt: 1.6deg}.board-section:nth-child(4n+3) .card:nth-child(4n+3),.board-section:nth-child(4n+3) .meal-day:nth-child(4n+3){--tilt: -1.2deg}.board-section:nth-child(4n+3) .card:nth-child(4n+4),.board-section:nth-child(4n+3) .meal-day:nth-child(4n+4){--tilt: .9deg}.board-section:nth-child(4n+4) .card:nth-child(4n+1),.board-section:nth-child(4n+4) .meal-day:nth-child(4n+1){--tilt: 1.6deg}.board-section:nth-child(4n+4) .card:nth-child(4n+2),.board-section:nth-child(4n+4) .meal-day:nth-child(4n+2){--tilt: -1.2deg}.board-section:nth-child(4n+4) .card:nth-child(4n+3),.board-section:nth-child(4n+4) .meal-day:nth-child(4n+3){--tilt: .9deg}.board-section:nth-child(4n+4) .card:nth-child(4n+4),.board-section:nth-child(4n+4) .meal-day:nth-child(4n+4){--tilt: -.5deg}@media(min-width:900px){.card,.meal-day{--tilt-scale: .5}}.btn,.btn-done,.choice,.mark-option,.mark-pick,.mark-color,.profile-tile,.theme-chip,.tab,.cal-nav-btn,.cal-chip,.sheet-close{transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .1s ease}.btn:active,.btn-done:active,.choice:active,.mark-option:active,.mark-pick:active,.mark-color:active,.profile-tile:active,.cal-nav-btn:active,.sheet-close:active{transform:scale(.97)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;font-size:.95rem;font-weight:700;min-height:44px;padding:.5rem 1.2rem;border:none;border-radius:var(--radius);background:var(--accent);color:var(--on-accent);cursor:pointer}.btn .btn-spin{display:none;width:.9em;height:.9em;flex-shrink:0;border:2.5px solid color-mix(in srgb,currentColor 35%,transparent);border-top-color:currentColor;border-radius:50%}.btn .btn-tick{display:none}.btn.is-saving .btn-spin{display:inline-block;animation:btn-rotate .8s linear infinite}.btn.is-saved .btn-tick{display:inline}.btn.is-saved{box-shadow:0 0 0 3px var(--celebrate)}.btn.is-saving:disabled{opacity:.85}.btn.is-saved:disabled{opacity:1}@keyframes btn-rotate{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.btn.is-saving .btn-spin{animation:none}}.btn:hover{background:color-mix(in srgb,var(--accent) 85%,var(--ink))}.btn-quiet{background:transparent;color:var(--accent);border:2px solid var(--line)}.btn-quiet:hover{background:color-mix(in srgb,var(--accent) 8%,transparent);border-color:var(--accent)}.btn-danger{background:var(--danger);color:var(--surface)}.btn-danger:hover{background:color-mix(in srgb,var(--danger) 85%,var(--ink))}.btn:disabled{opacity:.55;pointer-events:none}.mark{width:44px;height:44px;border-radius:50%;display:inline-grid;place-items:center;font-size:1.2rem;color:#fff;flex-shrink:0}.mark-sm{width:28px;height:28px;font-size:.85rem}.mark-lg{width:72px;height:72px;font-size:2.1rem}.field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}.field .field{margin-top:.45rem;margin-bottom:0}.field label{font-weight:700;font-size:.9rem}.field input,.field textarea,.field select,.repeat-field select{font-family:inherit;font-size:1rem;padding:.6rem .8rem;min-height:44px;border:2px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--ink)}.field textarea{resize:vertical}.field input:focus-visible,.field textarea:focus-visible,.field select:focus-visible,.repeat-field select:focus-visible{outline:3px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.alert-danger{background:color-mix(in srgb,var(--danger) 12%,var(--card));border-left:5px solid var(--danger);border-radius:var(--radius);padding:.7rem 1rem;font-size:.92rem;margin-bottom:1rem}.alert-danger .icon{color:var(--danger)}.offline-strip{background:var(--danger);color:var(--surface);text-align:center;padding:.15rem 1rem;font-size:.9rem}.offline-strip .icon{vertical-align:-.15em}.sync-strip{display:flex;align-items:center;justify-content:center;gap:.35rem;width:100%;border:none;border-bottom:1px solid var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--card));color:var(--accent);font:inherit;font-size:.9rem;padding:.15rem 1rem;cursor:pointer;min-height:44px}.sync-strip-danger{border-bottom-color:var(--danger);color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,var(--card))}.sync-note{color:var(--ink-soft)}.sync-section h3{font-size:1rem;margin:1rem 0 .4rem}.sync-list{list-style:none;margin:0;padding:0}.sync-list li{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.45rem 0;border-bottom:1px solid var(--line, rgba(0, 0, 0, .08))}.sync-failed .icon{color:var(--danger)}.error-detail{font-family:ui-monospace,JetBrains Mono,Fira Code,Menlo,monospace;font-size:.78rem;color:var(--ink-soft);margin:.4rem 0 0;overflow-wrap:anywhere}.error-advice{margin:.4rem 0 0}.empty-state{color:var(--ink-soft);text-align:center;padding:2.5rem 1rem}.loading-note{color:var(--ink-soft);margin:.5rem 0 1.25rem}.skel{background:color-mix(in srgb,var(--ink) 8%,var(--surface));border-radius:var(--radius);animation:skel-pulse 1.3s ease-in-out infinite}.skel-heading{height:1.2rem;width:9rem;border-radius:6px;margin:1.5rem 0 .6rem}.skel-card{height:4.4rem}.skel-card+.skel-card{margin-top:.75rem}@keyframes skel-pulse{0%,to{opacity:1}50%{opacity:.55}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:absolute;top:.5rem;left:.5rem;z-index:30;padding:.6rem 1rem;min-height:44px;display:inline-flex;align-items:center;border-radius:var(--radius);background:var(--accent);color:var(--on-accent);font-weight:700;text-decoration:none;transform:translateY(calc(-100% - 1rem))}.skip-link:focus-visible{transform:none}.shell-main:focus{outline:none}.signin{min-height:100dvh;display:grid;place-items:center;padding:2.5rem 1.25rem;background:radial-gradient(color-mix(in srgb,var(--accent) 20%,transparent) 1px,transparent 1.4px) 0 0 / 24px 24px,color-mix(in srgb,var(--accent) 12%,var(--surface))}.card.signin-card{--tilt: -1.6deg;position:relative;width:100%;max-width:24rem;padding:1.75rem 1.5rem 1.5rem;border-radius:16px;rotate:calc(var(--tilt) * var(--tilt-on, 1));box-shadow:0 1px 2px #00000014,0 14px 30px -14px color-mix(in srgb,var(--accent) 50%,rgb(0 0 0 / .4));animation:signin-pin .5s cubic-bezier(.22,1,.36,1)}@keyframes signin-pin{0%{rotate:0deg;translate:0 12px;opacity:0}to{rotate:calc(var(--tilt, -1.6deg) * var(--tilt-on, 1));translate:0 0;opacity:1}}.signin-magnets{position:absolute;inset:0 0 auto;pointer-events:none}.signin-magnets span{position:absolute;border-radius:50%;box-shadow:inset 0 -2px 3px #00000038,inset 0 2px 2px #ffffff59,0 2px 4px #00000040}.magnet-fox{width:1rem;height:1rem;left:14%;top:-.45rem;background:var(--mark-red)}.magnet-whale{width:1.45rem;height:1.45rem;left:40%;top:-.8rem;background:var(--mark-blue)}.magnet-turtle{width:1.1rem;height:1.1rem;left:65%;top:-.4rem;background:var(--mark-green)}.magnet-owl{width:.85rem;height:.85rem;left:84%;top:-.55rem;background:var(--mark-grey)}.signin-card h1{margin:.5rem 0 .1rem;text-align:center;font-size:2rem}.signin-card .tagline{color:var(--ink-soft);text-align:center;margin:0 0 1.5rem}.signin-question{margin:0 0 1rem;font-size:1.35rem;text-align:center}.profiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(7.5rem,1fr));gap:.75rem;margin-bottom:1.25rem}.profile-tile{display:flex;flex-direction:column;align-items:center;gap:.55rem;padding:1rem .5rem;min-height:8rem;border:2px solid color-mix(in srgb,var(--tile-mark, var(--line)) 40%,var(--line));border-radius:var(--radius);background:var(--card);color:var(--ink);cursor:pointer}.profile-tile:hover{border-color:var(--tile-mark, var(--accent));background:color-mix(in srgb,var(--tile-mark, var(--accent)) 7%,var(--card))}.profile-name{font-family:Fredoka,sans-serif;font-weight:500;font-size:1rem}.picked-profile{display:flex;align-items:center;gap:.7rem;margin-bottom:1.1rem}.profile-chip{display:inline-flex;align-items:center;gap:.25rem;font-size:.72rem;font-weight:700;color:var(--ink-soft);border:1.5px solid var(--line);border-radius:999px;padding:.1rem .55rem}.profile-chip .icon{width:.85em;height:.85em}.pin-dots{display:flex;gap:.6rem;justify-content:center;margin:.4rem 0 .9rem}.pin-dot{width:14px;height:14px;border-radius:50%;border:2.5px solid var(--ink-soft)}.pin-dot-full{background:var(--accent);border-color:var(--accent)}.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem;max-width:15rem;margin:0 auto}.pin-key{min-height:48px;font-family:inherit;font-size:1.15rem;font-weight:700;font-variant-numeric:tabular-nums;border:2px solid var(--line);border-radius:calc(var(--radius) - 4px);background:var(--surface);color:var(--ink);cursor:pointer}.pin-key:hover{border-color:var(--accent)}.pin-key:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.switch-sheet-body{min-width:min(26rem,100%)}.link-btn{background:none;border:none;padding:.4rem 0;min-height:44px;color:var(--accent);font-size:.92rem;font-weight:700;cursor:pointer;text-decoration:underline}.signin-links{display:flex;justify-content:space-between;gap:1rem;margin-top:.75rem}.signin-notice{background:color-mix(in srgb,var(--accent) 10%,var(--card));border-left:5px solid var(--accent);border-radius:var(--radius);padding:.7rem 1rem;font-size:.92rem;margin-bottom:1rem}.welcome-marks{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-bottom:1rem}.welcome-points{list-style:none;margin:0 0 1.25rem;padding:0;display:flex;flex-direction:column;gap:.35rem}.welcome-points li{padding-left:1.1rem;position:relative}.welcome-points li:before{content:"";position:absolute;left:0;top:.55em;width:.45rem;height:.45rem;border-radius:50%;background:var(--accent)}.welcome-form-intro{margin:0 0 1rem;font-weight:700}.welcome-restore{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--line)}.field .field-note,.field-note{display:flex;align-items:baseline;gap:.35rem;margin:0;font-size:.85rem;font-weight:700;color:var(--danger)}.field.invalid input{border-color:var(--danger)}.field .field-hint{margin:0;font-size:.85rem;color:var(--ink-soft)}.me-menu{position:relative}.me-link{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;font-weight:700;text-decoration:none;background:none;border:none;padding:0;cursor:pointer;font-family:inherit;font-size:inherit;color:inherit}.me-link:hover span{text-decoration:underline}.me-link.active span{color:var(--accent)}.me-link .me-caret{width:.85rem;height:.85rem;color:var(--ink-soft);transition:rotate .18s ease}.me-link .me-caret.open{rotate:180deg}.me-menu-note{position:absolute;top:calc(100% + .8rem);right:0;min-width:12.5rem;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 10px 24px #00000029;padding:.4rem;rotate:calc(-1.2deg * var(--tilt-scale, 1) * var(--tilt-on, 1));transform-origin:top right;z-index:30;animation:me-note-pin .3s cubic-bezier(.22,1,.36,1)}@media(min-width:900px){.me-menu-note{--tilt-scale: .5}}.me-menu-note:before{content:"";position:absolute;top:-.4rem;right:1.1rem;width:.8rem;height:.8rem;border-radius:50%;background:var(--me-pin, var(--accent));box-shadow:inset -1px -2px 2px #00000040,0 1px 2px #0000004d}@keyframes me-note-pin{0%{opacity:0;translate:0 -6px;rotate:calc(.6deg * var(--tilt-on, 1))}to{opacity:1;translate:0 0;rotate:calc(-1.2deg * var(--tilt-scale, 1) * var(--tilt-on, 1))}}.me-menu-item{display:flex;align-items:center;gap:.6rem;min-height:44px;padding:.3rem .65rem;border-radius:calc(var(--radius) - 4px);font-weight:700;color:var(--ink);text-decoration:none}button.me-menu-item{width:100%;background:none;border:none;font:inherit;cursor:pointer;text-align:left}.me-menu-item .icon{width:1.2rem;height:1.2rem;color:var(--ink-soft)}.me-menu-item:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.me-menu-item[aria-current=page],.me-menu-item[aria-current=page] .icon{color:var(--accent)}.today-hero{display:flex;align-items:center;gap:1rem;margin:1.4rem 0 .25rem}.today-hero h1{margin:0}.today-hero-sub{margin:.15rem 0 0;color:var(--ink-soft)}.board-section{margin-top:1.75rem}.board-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;font-size:1.1rem;margin:0 0 .6rem}.board-count{font-family:Atkinson Hyperlegible Next,Atkinson Hyperlegible,sans-serif;font-size:.85rem;font-weight:700;color:var(--ink-soft)}.board-list{display:flex;flex-direction:column;gap:.2rem;padding:.75rem 1.25rem}.event-row{display:flex;align-items:center;gap:.6rem;padding:.45rem 0}.event-row+.event-row{border-top:1px solid var(--line)}.event-icon{width:1.2em;height:1.2em;color:var(--ink-soft)}.event-name{flex:1;min-width:0}.event-time{color:var(--ink-soft);font-weight:700;font-size:.9rem;white-space:nowrap}.event-people{display:flex;gap:.25rem}.job-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.75rem}.job-card,.reward-card{border-left:4px solid var(--mark-edge, var(--line))}.job-card{position:relative;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.9rem 1.1rem}.job-title{display:flex;align-items:center;gap:.6rem;font-weight:700}.badge-overdue{display:inline-flex;align-items:center;gap:.4rem;border:2px solid var(--danger);color:var(--danger);border-radius:999px;padding:.15rem .7rem;font-size:.8rem;font-weight:700;white-space:nowrap}.points-strip{background:var(--card);border:2px solid var(--celebrate);border-radius:var(--radius);padding:.8rem 1.1rem}.points-strip .icon,.reward-strip .icon{color:var(--celebrate)}.reward-strip{display:flex;flex-wrap:wrap;gap:.4rem 1.75rem;background:var(--card);border:2px solid var(--celebrate);border-radius:var(--radius);padding:.8rem 1.1rem;color:var(--ink);text-decoration:none}.reward-strip:hover{text-decoration:underline}.reward-strip-part{display:inline-flex;align-items:center;gap:.45rem}.page-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.25rem 1rem}.view-toggle{margin:.75rem 0 .5rem}.job-main{display:flex;flex-direction:column;align-items:flex-start;gap:.3rem;flex:1;min-width:0}.job-open{background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;text-align:left;cursor:pointer;min-height:44px;justify-content:center;border-radius:calc(var(--radius) - 4px)}.job-desc{color:var(--ink-soft);font-size:.9rem}.job-deadline{color:var(--ink-soft);font-weight:700;font-size:.85rem}.btn-done{font-size:.95rem;font-weight:700;min-height:44px;padding:.5rem 1rem;border:none;border-radius:calc(var(--radius) - 4px);background:var(--accent);color:var(--on-accent);cursor:pointer;flex-shrink:0}.btn-done:hover{background:color-mix(in srgb,var(--accent) 85%,var(--ink))}.job-card.is-stamping{background:color-mix(in srgb,var(--celebrate) 20%,var(--card))}.job-stamp{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}.job-stamp-mark{display:inline-grid;animation:stamp .6s cubic-bezier(.2,.8,.3,1.2) both}.job-stamp-mark .mark{width:56px;height:56px;font-size:1.7rem;box-shadow:0 4px 16px #00000040}@keyframes stamp{0%{transform:scale(2.6) rotate(-16deg);opacity:0}60%{opacity:1}to{transform:scale(1) rotate(-8deg);opacity:1}}.job-done-row .event-icon{color:var(--accent);font-weight:700}.job-done-row .event-name{color:var(--ink-soft)}.job-done-open{background:none;border:none;padding:.4rem 0;margin:0;min-height:44px;font:inherit;text-align:left;cursor:pointer}.member-group-name{display:inline-flex;align-items:center;gap:.5rem}.new-job{margin:1rem 0 .5rem}.new-job-heading{font-size:1.1rem;margin:0 0 1rem}.field .field-label{font-weight:700;font-size:.9rem}.mark-select{display:flex;flex-wrap:wrap;gap:.5rem}.mark-option{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .85rem .35rem .4rem;min-height:44px;border:2px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink);font-weight:700;font-size:.9rem;cursor:pointer}.mark-option:hover{border-color:var(--accent)}.mark-option[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--card))}.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.field-pair{display:flex;flex-wrap:wrap;gap:0 .75rem}.field-pair .field{flex:1;min-width:8rem}.picker-field{position:relative;display:flex;gap:.4rem}.picker-field input{flex:1;min-width:0;font-variant-numeric:tabular-nums}.picker-toggle{width:48px;min-height:44px;flex-shrink:0;display:grid;place-items:center;border:2px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--ink);cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .1s ease}.picker-toggle:hover{border-color:var(--accent)}.picker-toggle:active{transform:scale(.97)}.picker-pop{position:absolute;top:calc(100% + .35rem);left:0;z-index:30;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 28px #00000038;padding:.6rem}.dp-head{display:flex;align-items:center;gap:.15rem;margin-bottom:.4rem}.dp-title{flex:1;text-align:center;font-weight:700;font-size:.92rem;white-space:nowrap}.dp-nav{width:36px;height:36px;display:grid;place-items:center;border:none;border-radius:calc(var(--radius) - 4px);background:transparent;color:var(--ink);font-size:1rem;font-weight:700;cursor:pointer}.dp-nav:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}.dp-grid{display:grid;grid-template-columns:repeat(7,2.2rem);gap:2px;justify-items:stretch}.dp-weekday{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);text-align:center;padding:.15rem 0}.dp-day{height:2.2rem;border:none;border-radius:calc(var(--radius) - 6px);background:transparent;color:var(--ink);font-family:inherit;font-size:.85rem;font-weight:700;font-variant-numeric:tabular-nums;cursor:pointer}.dp-day:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.dp-today{box-shadow:inset 0 0 0 2px var(--accent)}.dp-day[aria-pressed=true]{background:var(--accent);color:var(--on-accent)}.tp-list{max-height:13rem;min-width:7.5rem;overflow-y:auto;padding:.4rem}.tp-option{display:block;width:100%;border:none;border-radius:calc(var(--radius) - 6px);background:transparent;color:var(--ink);font-family:inherit;font-size:.9rem;font-weight:700;font-variant-numeric:tabular-nums;text-align:left;padding:.35rem .6rem;cursor:pointer}.tp-option:hover,.tp-active{background:color-mix(in srgb,var(--accent) 12%,transparent)}.tp-option[aria-selected=true]{background:var(--accent);color:var(--on-accent)}.cal-nav{display:flex;align-items:center;gap:.5rem;margin:.5rem 0 1rem}.cal-title{font-size:1.2rem;margin:0;flex:1 1 0;min-width:0;text-align:left}.cal-nav-btn{font-size:1.3rem;font-weight:700;width:44px;height:44px;border:2px solid var(--line);border-radius:50%;background:var(--card);color:var(--ink);cursor:pointer;line-height:1}.cal-nav-btn:hover{border-color:var(--accent)}.cal-nav-btn:disabled{opacity:.45;cursor:default;border-color:var(--line)}.cal-view-toggle{display:flex;gap:.5rem}.cal-nav-btn[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--card));color:var(--accent)}.cal-grid{display:none}.cal-agenda{display:block}@media(min-width:700px){.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.cal-agenda{display:none}}html[data-cal-view=grid] .cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}html[data-cal-view=grid] .cal-agenda{display:none}html[data-cal-view=agenda] .cal-agenda{display:block}html[data-cal-view=agenda] .cal-grid{display:none}.cal-weekday{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);text-align:center;padding:.3rem 0}.cal-day{background:var(--card);border:1px solid var(--line);border-radius:calc(var(--radius) - 4px);min-height:6.2rem;min-width:0;padding:.3rem;display:flex;flex-direction:column;gap:.2rem;align-items:stretch}.cal-day-blank{background:transparent;border-color:transparent}.cal-daynum{font-family:inherit;font-size:.8rem;font-weight:700;color:var(--ink-soft);align-self:flex-end;width:1.6rem;height:1.6rem;display:grid;place-items:center;border:none;border-radius:50%;background:transparent;padding:0;cursor:pointer}.cal-day-weekend{background:color-mix(in srgb,var(--ink) 4%,var(--card))}.cal-today{border-color:var(--accent)}.cal-today .cal-daynum{background:var(--accent);color:var(--on-accent)}.cal-chip{font-family:inherit;font-size:.72rem;font-weight:700;text-align:left;border:none;border-left:3px solid var(--mark-edge, transparent);border-radius:calc(var(--radius) - 6px);background:color-mix(in srgb,var(--accent) 12%,var(--card));color:var(--ink);padding:.15rem .4rem;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cal-chip:hover{background:color-mix(in srgb,var(--accent) 24%,var(--card))}.cal-more{background:transparent;color:var(--ink-soft)}.cal-chip-cont{background:color-mix(in srgb,var(--accent) 6%,var(--card));color:var(--ink-soft);font-weight:600}.cal-chip-mark,.cal-more-mini{display:none}@media(max-width:699px){.shell-main[data-route="/calendar"]{padding-left:.5rem;padding-right:.5rem}.cal-grid{gap:2px}.cal-grid .cal-chip{display:flex;align-items:center;gap:3px;height:1rem;padding:0 .25rem;font-size:.7rem;border-radius:calc(var(--radius) - 8px)}.cal-grid .cal-chip-mark{display:inline;font-size:.7rem;line-height:1;flex:none}.cal-grid .cal-chip .icon{flex:none;vertical-align:0}.cal-grid .cal-chip-text{display:none}.cal-grid .cal-more{height:auto;padding:0 .25rem;background:transparent;border-left-color:transparent}.cal-grid .cal-more-full{display:none}.cal-grid .cal-more-mini{display:inline;font-size:.62rem;font-weight:700}.cal-grid .cal-day{min-height:4.6rem}.cal-grid .cal-daynum{width:1.4rem;height:1.4rem;font-size:.75rem}}.cal-filters{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;margin-bottom:.75rem}.cal-day-open{cursor:pointer}.cal-day-open:hover{border-color:var(--accent)}.day-nav{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.day-nav-title{flex:1;margin:0;font-size:1.1rem;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet:has(.day-scroll){max-width:46rem}.day-scroll{overflow-y:auto;min-height:0;margin-top:.6rem;padding-top:.4rem;border-top:1px solid var(--line)}.day-nav-btn{width:8rem;border-radius:999px;padding:0 .7rem;font-size:.9rem;font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;justify-content:center;gap:.3rem;flex-shrink:0}.day-nav-btn .icon{flex-shrink:0}.day-nav-label{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-allday{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.6rem;flex-shrink:0}.day-timeline{position:relative;margin-top:.5rem}.day-hour-label{position:absolute;left:0;transform:translateY(-50%);width:3rem;font-size:.72rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink-soft)}.day-canvas{position:absolute;inset:0 0 0 3.4rem;background-image:repeating-linear-gradient(to bottom,var(--line) 0 1px,transparent 1px 48px),repeating-linear-gradient(to bottom,color-mix(in srgb,var(--line) 45%,transparent) 0 1px,transparent 1px 12px)}.day-now{position:absolute;inset:auto 0 auto 3.4rem;border-top:2px solid var(--danger);pointer-events:none;z-index:2}.day-now:before{content:"";position:absolute;left:-5px;top:-5px;width:8px;height:8px;border-radius:50%;background:var(--danger)}.day-event{position:absolute;display:flex;flex-direction:column;align-items:flex-start;gap:.05rem;overflow:hidden;font-family:inherit;text-align:left;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));border-left:4px solid var(--mark-edge, var(--accent));border-radius:calc(var(--radius) - 6px);background:color-mix(in srgb,var(--accent) 14%,var(--card));color:var(--ink);padding:.2rem .45rem;cursor:pointer}.day-event:hover{background:color-mix(in srgb,var(--accent) 26%,var(--card))}.day-event-time{font-size:.68rem;font-weight:700;color:var(--ink-soft);white-space:nowrap}.day-event-name{font-size:.8rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;min-width:0}.day-event-short{flex-direction:row;align-items:baseline;gap:.3rem}.cal-row{font-family:inherit;font-size:1rem;width:100%;border:none;background:transparent;color:var(--ink);text-align:left;cursor:pointer;min-height:44px;text-decoration:none}.sheet-overlay{position:fixed;inset:0;background:#00000073;display:grid;place-items:end center;z-index:20}.sheet{background:var(--card);border:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0;padding:1.25rem 1.5rem calc(1.25rem + env(safe-area-inset-bottom));width:100%;max-width:34rem;max-height:85dvh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 12px 40px #0000004d;animation:sheet-up .25s ease-out}.sheet-body{flex:1 1 auto;overflow-y:auto;min-height:0;padding:5px 6px;margin:-5px -6px}.sheet-body:has(>.day-scroll),.sheet-body:has(.mark-fitting){overflow:hidden;display:flex;flex-direction:column;padding:0;margin:0}.sheet-foot{border-top:1px solid var(--line);padding-top:.9rem;margin-top:.75rem}.sheet-foot .form-actions{margin:0}.sheet-foot .alert-danger{margin-bottom:.75rem}@media(min-width:700px){.sheet-overlay{place-items:center}.sheet{border-radius:var(--radius)}}@keyframes sheet-up{0%{transform:translateY(2rem);opacity:0}to{transform:translateY(0);opacity:1}}.sheet.sheet-leave{animation:sheet-down .2s ease-in both}@keyframes sheet-down{0%{transform:translateY(0);opacity:1}to{transform:translateY(2rem);opacity:0}}.sheet-overlay{animation:overlay-in .25s ease-out}.sheet-overlay-leave{animation:overlay-out .2s ease-in both}@keyframes overlay-in{0%{background:#0000}}@keyframes overlay-out{to{background:#0000}}.sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.sheet-title{font-size:1.3rem;margin:0 0 .8rem}.sheet-close{display:grid;place-items:center;width:44px;height:44px;border:2px solid var(--line);border-radius:50%;background:var(--card);color:var(--ink);cursor:pointer;flex-shrink:0}.sheet-close .icon{width:1.1rem;height:1.1rem;vertical-align:initial}.sheet-row{display:flex;align-items:center;flex-wrap:wrap;gap:.7rem;margin-bottom:.8rem}.sheet-detail{color:var(--ink-soft);margin:0 0 .8rem}.sheet-who{margin-bottom:1rem}.sheet-people{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.4rem}.sheet-person{display:inline-flex;align-items:center;gap:.4rem;font-weight:700;font-size:.92rem}.type-badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;font-weight:700;border:2px solid var(--line);border-radius:999px;padding:.15rem .7rem;white-space:nowrap}.profile-hero{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:.5rem 0 1rem;text-align:center}.profile-hero-name{font-size:1.35rem;font-weight:800;line-height:1.2}.profile-hero-hint{margin:0;font-size:.9rem}.reward-card{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:.45rem;padding:.9rem 1.1rem}.reward-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.reward-name{font-weight:700;font-size:1.05rem}.reward-value{font-weight:700;color:var(--ink);border:2px solid var(--celebrate);border-radius:999px;padding:.1rem .65rem;font-size:.85rem;align-self:flex-start}.reward-cost{font-size:.9rem;font-weight:700;color:var(--ink-soft)}.reward-job-link{display:inline-flex;align-items:center;gap:.3rem;text-decoration:underline;text-underline-offset:.2em}.reward-gap{font-size:.9rem;font-weight:700}.reward-actions{display:flex;gap:.6rem;margin-top:.35rem}.reward-actions .btn{flex:1}.family-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:.75rem;margin-top:.5rem}.family-role{font-size:.78rem;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em}.family-birthday{font-size:.82rem;color:var(--ink-soft)}.family-grid-sm{grid-template-columns:repeat(auto-fill,minmax(7rem,1fr))}.profile-tile-sm{gap:.35rem;padding:.7rem .4rem;min-height:5.75rem}.profile-tile-sm .profile-name{font-size:.9rem}.remembering-tile{opacity:.75}.tree-canvas{position:relative;margin-top:.5rem;height:clamp(320px,62dvh,600px);border:1px solid var(--line);border-radius:var(--radius);background:var(--card);overflow:hidden}.tree-scene{display:block;width:100%;height:100%;touch-action:none;cursor:grab}.tree-scene:active{cursor:grabbing}.tree-parent-line{fill:none;stroke:var(--mark-sky);stroke-width:2.5;opacity:.6}.tree-partner-bar{stroke:var(--mark-orange);stroke-width:6;stroke-linecap:round;opacity:.75}.tree-ex-bar{fill:none;stroke:var(--mark-pink);stroke-width:2;stroke-dasharray:6 7;stroke-linecap:round;opacity:.55}.tree-legend{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;margin:.6rem 0 0;padding:0;list-style:none}.tree-legend-entry{display:inline-flex;align-items:center;gap:.5rem;color:var(--ink-soft);font-size:.9rem}.tree-legend-entry svg{width:40px;height:16px;flex:none}.tree-legend-remembered{fill:var(--ink-soft);opacity:.4}.tree-node{cursor:pointer;outline:none}.tree-hit{fill:transparent}.tree-ring{fill:none;stroke:var(--accent);stroke-width:3.5;opacity:0}.tree-node:focus-visible .tree-ring{opacity:1}.tree-halo{fill:none;stroke:#d4af37;stroke-width:3}.tree-legend-household{fill:none;stroke:#d4af37;stroke-width:2.5}.tree-emoji{font-size:1.444rem;pointer-events:none}.tree-name{font-size:.833rem;font-weight:700;fill:var(--ink);stroke:var(--card);stroke-width:4px;paint-order:stroke;pointer-events:none}.tree-years{font-size:.694rem;fill:var(--ink-soft);stroke:var(--card);stroke-width:4px;paint-order:stroke;pointer-events:none}.tree-remembered{opacity:.55}.tree-controls{position:absolute;top:.6rem;right:.6rem;display:flex;gap:.4rem}.tree-zoom-btn{min-width:44px;min-height:44px;padding:0 .7rem;font-size:1.1rem;font-weight:700;border:2px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--ink);cursor:pointer}.tree-zoom-btn:hover{border-color:var(--accent)}.tree-strip{display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem 1rem}.member-detail-role{font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.relation-label{font-size:.75rem;font-weight:700;color:var(--ink-soft);border:1px solid var(--line);border-radius:999px;padding:.05rem .5rem}.admin-actions{display:flex;flex-direction:column;align-items:flex-start;gap:.6rem;border-top:1px solid var(--line);margin-top:1rem;padding-top:1rem}.admin-actions .field-label{font-weight:700;font-size:.9rem}.link-form{display:flex;flex-direction:column;align-items:flex-start;gap:.6rem}.blocked-list{margin:.4rem 0;padding-left:1.2rem}.remove-link{color:var(--danger);border-color:var(--line)}.remove-link:hover{background:color-mix(in srgb,var(--danger) 8%,transparent);border-color:var(--danger)}.reward-card.is-celebrating,.job-card.is-celebrating{background:color-mix(in srgb,var(--celebrate) 24%,var(--card))}.claim-burst{font-size:2.6rem;animation:celebrate .9s cubic-bezier(.2,.8,.3,1.1) both}@keyframes celebrate{0%{transform:scale(.3) rotate(-20deg);opacity:0}45%{transform:scale(1.5) rotate(8deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}.theme-group-label{font-size:.78rem;color:var(--ink-soft);margin:1.5rem 0 .5rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700}.theme-group-label:first-child{margin-top:0}.mark-group-label{font-size:.78rem;color:var(--ink-soft);margin:1.5rem 0 .5rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700}.mark-group-label:first-child{margin-top:0}.theme-chips{display:flex;flex-wrap:wrap;gap:.45rem}.theme-chip{font-size:.9rem;font-weight:700;display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .75rem .4rem .55rem;min-height:44px;border:2px solid transparent;border-radius:var(--radius);cursor:pointer;box-shadow:inset 0 0 0 1px #80808059}.theme-chip .chip-dot{width:.85rem;height:.85rem;border-radius:50%;flex-shrink:0}.theme-chip[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px #80808059,0 0 0 2px var(--card),0 0 0 4px var(--accent)}.choice-row{display:flex;flex-wrap:wrap;gap:.45rem}.choice{font-size:.9rem;font-weight:700;min-height:44px;padding:.45rem 1rem;border:2px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--ink);cursor:pointer}.choice:hover{border-color:var(--accent)}.choice[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.mark-colors{display:flex;flex-wrap:wrap;gap:.55rem}.mark-color{width:44px;height:44px;border-radius:50%;border:none;background:var(--swatch);cursor:pointer;box-shadow:inset 0 0 0 1px #0003}.mark-color[aria-pressed=true]{box-shadow:inset 0 0 0 1px #0003,0 0 0 3px var(--card),0 0 0 5px var(--ink)}.mark-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(7rem,1fr));gap:.6rem}.mark-pick{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:.75rem .5rem;border:2px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--ink);cursor:pointer;font-family:inherit}.mark-pick:hover{border-color:var(--accent)}.mark-pick[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--card))}.mark-pick-label{font-weight:700;font-size:.85rem}.mark-worn{font-weight:400;color:var(--ink-soft)}.bell,.mode-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;border-radius:50%;background:transparent;color:var(--ink);cursor:pointer}.bell:hover,.mode-toggle:hover{background:color-mix(in srgb,var(--ink) 8%,transparent)}.bell svg,.mode-toggle svg{width:1.35em;height:1.35em}.bell-badge{position:absolute;top:4px;right:4px;width:.6rem;height:.6rem;border-radius:999px;background:var(--accent);border:2px solid var(--surface)}.notification-row .event-name{font-weight:500}.notification-unread .event-name{font-weight:700}.notification-unread{background:color-mix(in srgb,var(--accent) 7%,transparent);border-radius:calc(var(--radius) / 2)}.toast-layer{position:fixed;left:50%;transform:translate(-50%);bottom:calc(4.5rem + env(safe-area-inset-bottom));z-index:30;display:flex;flex-direction:column;gap:.5rem;width:min(26rem,calc(100vw - 2rem))}@media(min-width:900px){.toast-layer{bottom:1.5rem}}.toast{display:flex;align-items:center;gap:.6rem;padding:.7rem .9rem;border-radius:var(--radius);background:var(--card);border:1px solid var(--line);box-shadow:0 8px 28px #00000059;font-weight:700;font-size:.95rem;animation:toast-up .2s ease-out}[data-reduce-motion=true] .toast{animation:none}@keyframes toast-up{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:none}}.toast-error{border-left:4px solid var(--danger)}.toast-info{border-left:4px solid var(--accent)}.toast-body{flex:1}.toast-link{font:inherit;color:inherit;background:none;border:none;text-align:left;cursor:pointer;padding:0}.toast-dismiss{background:none;border:none;color:var(--ink-soft);cursor:pointer;padding:.2rem;flex-shrink:0}.toast-dismiss svg{width:1em;height:1em}.job-repeat-mark{width:.95em;height:.95em;color:var(--ink-soft);flex-shrink:0}.repeat-editor{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.repeat-fields{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.repeat-field{display:inline-flex;align-items:center;gap:.4rem;font-size:.95rem}.repeat-field input[type=number]{width:4.5rem}.profile-card-id{display:flex;align-items:center;gap:.9rem}.profile-card-name{font-family:Fredoka,sans-serif;font-weight:500;font-size:1.35rem}.profile-card-rows{display:flex;flex-direction:column;gap:.2rem;margin:.75rem 0 .25rem}.profile-card-row{font-size:.95rem;color:var(--ink-soft)}.mark-fitting{display:flex;flex-direction:column;gap:.5rem;flex:1;min-height:0}.mark-fitting-stage{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.75rem 0 .25rem}.mark-fitting-caption{font-size:.9rem;color:var(--ink-soft)}.mark-fitting-scroll{overflow-y:auto;min-height:0;border-top:1px solid var(--line);padding:.5rem 6px;margin:0 -6px}.mark-picker-dense{grid-template-columns:repeat(auto-fill,minmax(3rem,1fr));gap:.35rem}.mark-pick-dense{padding:.5rem .25rem}.custom-editor{display:flex;flex-direction:column;align-items:flex-start;gap:.8rem}.custom-active-note{align-self:center;font-size:.85rem;color:var(--ink-soft)}.ws-note{font-size:.88rem;color:var(--ink-soft);margin:0}.ws-report-bar{position:sticky;top:calc(45px + 1.8rem);z-index:5;align-self:stretch;background:var(--card);padding:.5rem 0 .6rem;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:.8rem 2.5rem;align-items:flex-start}.ws-report-bar .theme-group-label{margin:0 0 .35rem}.ws-spec-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.ws-spec-surface{display:inline-flex;padding:.3rem;background:var(--surface);border:1px solid var(--line);border-radius:calc(var(--radius) - 4px)}.ws-spec-card{display:inline-flex;flex-direction:column;line-height:1.3;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:calc(var(--radius) - 6px);padding:.25rem .6rem;font-size:.78rem}.ws-spec-soft{color:var(--ink-soft);font-size:.72rem}.ws-spec-btn{font-size:.8rem;font-weight:700;background:var(--accent);color:var(--on-accent);border:none;border-radius:calc(var(--radius) - 4px);padding:.4rem .7rem;pointer-events:none}.ws-spec-link{color:var(--accent);text-decoration:underline;font-size:.8rem;font-weight:700}.ws-spec-points{position:relative;background:var(--card);border:2px solid var(--celebrate);color:var(--ink);border-radius:calc(var(--radius) - 4px);padding:.3rem .6rem;font-size:.78rem;white-space:nowrap}.ws-spec-points .icon{color:var(--celebrate)}.ws-spec-points.ws-celebrating{background:color-mix(in srgb,var(--celebrate) 34%,var(--card))}.ws-spec-overdue{border:2px solid var(--danger);color:var(--danger);border-radius:999px;padding:.12rem .6rem;font-size:.74rem;font-weight:700;white-space:nowrap}.ws-spec-try{font-size:.78rem;font-weight:700;background:transparent;color:var(--ink);border:2px solid var(--line);border-radius:999px;padding:.3rem .7rem;min-height:40px;cursor:pointer}.ws-spec-try:hover{border-color:var(--celebrate)}.ws-report{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem}.ws-report li{font-size:.78rem;font-weight:700;border:1.5px solid var(--line);border-radius:999px;padding:.15rem .65rem}.ws-report .ok{color:var(--ink-soft)}.ws-report .warn{color:var(--danger);border-color:var(--danger)}.ws-group{align-self:stretch}.ws-rows{display:grid;grid-template-columns:repeat(auto-fill,minmax(15.5rem,1fr));gap:.4rem 1.25rem}.ws-row{display:flex;align-items:center;gap:.7rem;padding:.2rem 0;min-height:52px}.ws-row input[type=color]{width:52px;height:44px;padding:2px;flex-shrink:0;border:2px solid var(--line);border-radius:calc(var(--radius) - 4px);background:var(--card);cursor:pointer}.ws-name{font-weight:700;font-size:.9rem;line-height:1.25}.ws-desc{display:block;font-weight:400;font-size:.76rem;color:var(--ink-soft)}.ws-state{margin-left:auto;flex-shrink:0}.ws-auto{font-size:.7rem;font-weight:700;letter-spacing:.05em;color:var(--ink-soft);border:1px solid var(--line);border-radius:999px;padding:.1rem .55rem;white-space:nowrap}.ws-unpin{font-family:inherit;font-size:.76rem;font-weight:700;color:var(--accent);background:none;border:none;text-decoration:underline;cursor:pointer;padding:.3rem 0}.ws-corners{display:flex;align-items:center;gap:.8rem;width:100%;max-width:22rem}.ws-corners input{flex:1;accent-color:var(--accent);min-height:44px}.ws-corners output{font-weight:700;font-size:.85rem;min-width:3.2rem}.confetti-layer{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:999}.confetti-piece{position:absolute;animation:confetti-path var(--dur) linear var(--delay) both}@keyframes confetti-path{0%{transform:translate(0);animation-timing-function:cubic-bezier(.15,.65,.35,1)}18%{transform:translate(var(--mx),var(--my));animation-timing-function:cubic-bezier(.5,0,.8,.6)}to{transform:translate(var(--ex),var(--ey))}}.confetti-flake{display:block;animation:confetti-sway var(--sway) ease-in-out var(--sdelay) infinite alternate}@keyframes confetti-sway{0%{transform:translate(calc(-1 * var(--amp))) rotate(var(--r1))}to{transform:translate(var(--amp)) rotate(var(--r2))}}.list-card{display:flex;flex-direction:column;gap:.25rem;min-height:44px;padding:1rem 1.25rem;color:var(--ink);text-decoration:none}.list-card:hover{border-color:var(--accent)}.list-card-name{font-family:Fredoka,sans-serif;font-weight:500;font-size:1.15rem;line-height:1.3}.list-progress{color:var(--ink-soft);font-size:.9rem;margin:-.4rem 0 .8rem}.list-card .list-progress{margin:0}.list-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1rem}.list-quick-add{display:flex;gap:.6rem;padding:.6rem;margin-bottom:1rem}.list-quick-add input{flex:1;min-width:0;font-family:inherit;font-size:1rem;padding:.6rem .8rem;min-height:44px;border:2px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--ink)}.list-quick-add input:focus-visible{outline:3px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.list-rows{padding:.4rem 1rem}.list-row{display:flex;align-items:center;gap:.7rem;padding:.3rem 0}.list-row+.list-row{border-top:1px solid var(--line)}.list-tick{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border:2px solid var(--line);border-radius:50%;background:var(--card);color:var(--on-accent);cursor:pointer}.list-tick:hover{border-color:var(--accent)}.list-tick[aria-pressed=true]{border-color:var(--accent);background:var(--accent)}.list-tick .icon{width:1.3rem;height:1.3rem;vertical-align:initial}.list-row-open{flex:1;min-width:0;min-height:44px;padding:.4rem 0;margin:0;border:none;background:none;font:inherit;color:var(--ink);text-align:left;cursor:pointer}.list-row-done .list-row-title{color:var(--ink-soft)}.list-note{background:color-mix(in srgb,var(--accent) 10%,var(--card));border-left:5px solid var(--accent);border-radius:var(--radius);padding:.7rem 1rem;font-size:.92rem;margin:0 0 1rem}.list-note .icon{color:var(--accent)}.job-worth,.job-steps-chip{display:inline-flex;align-items:center;gap:.3rem;color:var(--ink-soft);font-weight:700;font-size:.85rem}.job-steps-left{opacity:.7;cursor:default;text-align:center}.job-step-row{align-items:center;gap:.5rem}.job-step-title{flex:1;min-width:0}.job-step-done{color:var(--ink-soft);text-decoration:line-through}.job-step-tick{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid var(--line);border-radius:.5rem;color:var(--celebrate);cursor:pointer}.job-step-tick:disabled{cursor:default;opacity:.6}.job-step-tick .job-step-unticked{opacity:.15}.job-step-add{gap:.5rem}.job-step-add input{flex:1;min-width:0}.job-step-add input.job-step-add-points{flex:0 0 5.5rem}.job-step-points{margin:0 0 .5rem 2.75rem;display:flex;flex-direction:column;gap:.4rem}.member-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;width:100%;padding:.55rem 0;background:none;border:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.member-row+.member-row{border-top:1px solid var(--line)}.audit-list{list-style:none;margin:0;padding:0}.audit-list li{padding:.45rem 0}.audit-list li+li{border-top:1px solid var(--line)}.tour{position:fixed;inset:0;z-index:40;overflow-y:auto}.tour-card{max-width:26rem;display:flex;flex-direction:column;max-height:90dvh;overflow:hidden;transition:rotate .35s ease}.tour-body{flex:1 1 auto;overflow-y:auto;min-height:0;padding:5px 6px;margin:-5px -6px}.tour-icon .icon{width:2.2rem;height:2.2rem;color:var(--accent)}.tour-body p{margin:0 0 1.25rem;line-height:1.55}.tour-actions{margin-bottom:.75rem}.tour-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:auto;padding-top:.5rem}.tour-dots{display:flex;gap:.4rem}.tour-dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--line)}.tour-dot-on{background:var(--accent)}body:has(.tour) .sheet-overlay{z-index:50}.data-peek-pre{background:var(--surface);border:1px solid var(--line);border-radius:calc(var(--radius) / 2);padding:.75rem .9rem;margin:.5rem 0 0;max-height:24rem;overflow:auto;font-size:.78rem;line-height:1.5}.audit-entry{width:100%;padding:0;border:none;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.json-key{color:var(--accent)}.json-str{color:var(--celebrate)}.json-num{color:var(--danger)}.json-lit{color:var(--ink-soft);font-style:italic}.btn,.choice,.theme-chip,.field input,.field textarea,.field select,.repeat-field select,.picker-toggle{border-radius:min(var(--radius),12px)}.check-row{display:flex;align-items:center;gap:.5rem;padding:.35rem 0;cursor:pointer;font-size:.95rem}.check-row input[type=checkbox]{appearance:none;width:1.25rem;height:1.25rem;flex-shrink:0;border:2px solid var(--line);border-radius:6px;background:var(--card);display:grid;place-content:center;cursor:pointer;margin:0}.check-row input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.check-row input[type=checkbox]:checked:before{content:"";width:.7rem;height:.7rem;background:var(--on-accent);clip-path:polygon(14% 50%,5% 62%,38% 90%,96% 22%,85% 12%,36% 70%)}.check-row input[type=checkbox]:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.device-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.25rem 0;font-size:.95rem;color:var(--ink-soft)}.meal-week{display:grid;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.75rem}.meal-day{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:.75rem;display:flex;flex-direction:column;gap:.4rem;min-height:6.5rem;font:inherit;color:inherit;text-align:left}button.meal-day{cursor:pointer}button.meal-day:hover{border-color:var(--accent)}.meal-day-frozen{opacity:.75}.meal-day-badge{color:var(--accent)}.meal-day-badge svg{width:.9rem;height:.9rem}.meal-tz-chip{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.6rem .8rem;margin-bottom:1rem}.meal-day-tonight{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.meal-day-name{display:flex;align-items:baseline;justify-content:space-between;font-weight:600;font-size:.9rem}.meal-day-date{color:var(--ink-soft);font-weight:400;font-size:.8rem}.meal-day-empty{color:var(--ink-soft);font-size:.9rem;font-style:italic}.meal-day-plan{display:flex;flex-direction:column;gap:.3rem}.meal-day-dish{font-size:1.05rem}.meal-day-tonight .meal-day-dish{font-weight:600}.meal-day-time{color:var(--ink-soft);font-size:.85rem}.meal-day-cooks{display:flex;gap:.25rem}.meal-day-push{align-self:flex-start;font-size:.85rem;padding:.2rem .5rem}.meal-card{text-align:left;font:inherit;color:inherit;cursor:pointer}.markdown-body h3{margin:.9rem 0 .3rem;font-size:1.05rem}.markdown-body h4{margin:.7rem 0 .25rem;font-size:.95rem}.markdown-body p{margin:.35rem 0}.markdown-body ul{margin:.35rem 0 .6rem;padding-left:1.4rem}.markdown-body li{margin:.2rem 0}.markdown-body code{padding:.05rem .3rem;border:1px solid var(--line);border-radius:6px;font-size:.85em;font-variant-numeric:tabular-nums}.markdown-body a{word-break:break-all}
