@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:500;src:url(/assets/baloo-2-latin-500-normal-CmLZ27r7.woff2)format("woff2"),url(/assets/baloo-2-latin-500-normal-BSdEhq8m.woff)format("woff")}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/baloo-2-latin-700-normal-CqTg7A15.woff2)format("woff2"),url(/assets/baloo-2-latin-700-normal-Ld3Zm3l2.woff)format("woff")}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:800;src:url(/assets/baloo-2-latin-800-normal-BbF3Etk1.woff2)format("woff2"),url(/assets/baloo-2-latin-800-normal-B8BXfZF7.woff)format("woff")}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-sans-latin-400-normal-AkRraKH2.woff2)format("woff2"),url(/assets/nunito-sans-latin-400-normal-DY9yCUyQ.woff)format("woff")}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-sans-latin-600-normal-BtVRvDNj.woff2)format("woff2"),url(/assets/nunito-sans-latin-600-normal-DLks-Kj1.woff)format("woff")}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-sans-latin-700-normal-CICRJDmU.woff2)format("woff2"),url(/assets/nunito-sans-latin-700-normal-CLVG92B9.woff)format("woff")}:root{--font-display:"Baloo 2", "Trebuchet MS", system-ui, sans-serif;--font-body:"Nunito Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--fs-xs:.78rem;--fs-sm:.875rem;--fs-md:1rem;--fs-lg:1.2rem;--fs-xl:1.45rem;--fs-2xl:2rem;--fs-3xl:4rem;--bg:#eef4f7;--surface:#fff;--surface-2:#e2ecf2;--ink:#10283a;--muted:#566d80;--line:#d3e0e8;--primary:#1c6c9c;--on-primary:#fff;--accent:#f2ae2e;--accent-2:#3fa892;--c4:#7a6fd0;--c5:#e8772e;--danger:#c8423a;--ev-multi:#d65c8a;--ev-family:#6b8496;--shadow:0 6px 18px #10283a1f;--radius-sm:12px;--radius-md:16px;--radius-lg:20px;--radius-xl:26px;--tap:48px;--gutter:max(16px, env(safe-area-inset-left,0px));--gutter-r:max(16px, env(safe-area-inset-right,0px));--module-circle:142px}@media (prefers-color-scheme:dark){:root{--bg:#0c1a24;--surface:#14293a;--surface-2:#1b3346;--ink:#e8f1f6;--muted:#9ab1c2;--line:#24405a;--primary:#62b4e6;--on-primary:#06202f;--accent:#f6c35c;--accent-2:#62cdb6;--c4:#a79df2;--c5:#ffa36b;--danger:#ff8a80;--ev-multi:#f08cb4;--ev-family:#9ab1c2;--shadow:0 6px 18px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);min-height:100dvh;color:var(--ink);font-family:var(--font-body);font-size:var(--fs-md);-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;margin:0;line-height:1.45}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--primary);outline-offset:2px}h1,h2,h3{font-family:var(--font-display);text-wrap:balance;margin:0;line-height:1.1}p{margin:0}img{max-width:100%}.muted{color:var(--muted)}.small{font-size:var(--fs-sm)}.grow{flex:1;min-width:0}.splash{min-height:100dvh}.topbar{z-index:20;padding:calc(10px + env(safe-area-inset-top,0px)) var(--gutter-r) 10px var(--gutter);background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);align-items:center;gap:12px;display:flex;position:sticky;top:0}.topbar h1{font-size:var(--fs-xl);flex:1;min-width:0}.home-btn{min-height:var(--tap);border:2px solid var(--line);background:var(--surface);border-radius:999px;align-items:center;gap:8px;padding:0 18px 0 12px;font-weight:700;display:inline-flex}.home-btn svg{width:24px;height:24px}.screen{padding-block:6px calc(32px + env(safe-area-inset-bottom,0px));padding-left:var(--gutter);padding-right:var(--gutter-r);flex-direction:column;gap:16px;max-width:640px;margin:0 auto;display:flex}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px}.empty{text-align:center;color:var(--muted);flex-direction:column;gap:4px;padding:24px;display:flex}.btn{border-radius:var(--radius-md);background:var(--primary);min-height:52px;color:var(--on-primary);border:0;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-weight:700;display:inline-flex}.btn.ghost{background:var(--surface);color:var(--ink);border:2px solid var(--line)}.btn.block{width:100%}.btn:disabled{opacity:.6}.row{align-items:center;gap:12px;min-width:0;display:flex}.role{font-size:var(--fs-xs);background:var(--surface-2);color:var(--muted);border-radius:999px;padding:3px 9px;font-weight:700}.role.admin{background:color-mix(in srgb, var(--primary) 18%, var(--surface));color:var(--primary)}.av{--av:var(--primary);background:color-mix(in srgb, var(--av) 24%, var(--surface));width:44px;height:44px;color:var(--av);border:2px solid color-mix(in srgb, var(--av) 45%, transparent);font-family:var(--font-display);border-radius:50%;flex:none;place-items:center;font-size:1.25rem;font-weight:800;display:inline-grid}.av.lg{border-width:3px;width:96px;height:96px;font-size:2.6rem}.av.photo{border-color:var(--av);overflow:hidden}.av.photo img{object-fit:cover;width:100%;height:100%;display:block}.crop{flex-direction:column;align-items:center;gap:14px;display:flex}.crop canvas{aspect-ratio:1;touch-action:none;cursor:grab;background:#10283a;border-radius:16px;width:min(280px,78vw)}.crop canvas:active{cursor:grabbing}.crop .zoom{align-items:center;gap:10px;width:min(280px,78vw);font-weight:700;display:flex}.crop .zoom input{accent-color:var(--primary);flex:1}.crop .btn{width:min(280px,78vw)}.center-items{align-items:center}.upl-btn{position:relative;overflow:hidden}.upl-btn input{opacity:0;cursor:pointer;position:absolute;inset:0}.upl-btn:focus-within{outline:3px solid var(--primary);outline-offset:2px}.sheet-wrap{z-index:50;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-width:640px;max-height:88dvh;padding:20px var(--gutter-r) calc(24px + env(safe-area-inset-bottom,0px)) var(--gutter);flex-direction:column;gap:16px;display:flex;overflow-y:auto}.sheet .grab{background:var(--line);border-radius:3px;align-self:center;width:44px;height:5px}.login{max-width:480px;min-height:100dvh;padding-block:calc(32px + env(safe-area-inset-top,0px)) calc(32px + env(safe-area-inset-bottom,0px));padding-left:max(20px, env(safe-area-inset-left,0px));padding-right:max(20px, env(safe-area-inset-right,0px));flex-direction:column;justify-content:center;gap:28px;margin:0 auto;display:flex}.login h1{text-align:center;font-size:2.1rem}.login .lead{text-align:center;color:var(--muted)}.login .who{flex-direction:column;align-items:center;gap:10px;display:flex}.people{grid-template-columns:1fr 1fr;gap:20px;display:grid}.person{border:2px solid var(--line);background:var(--surface);font-family:var(--font-display);border-radius:24px;flex-direction:column;align-items:center;gap:8px;padding:16px 8px;font-size:1.25rem;font-weight:700;display:flex}.person:active,.mod:active .circ{transform:scale(.96)}.pin-dots{justify-content:center;gap:14px;display:flex}.pin-dots i{border:2.5px solid var(--muted);border-radius:50%;width:18px;height:18px}.pin-dots i.on{background:var(--primary);border-color:var(--primary)}.pin-dots.err{animation:.35s shake}.pin-dots.err i{border-color:var(--danger)}@keyframes shake{25%{transform:translate(-8px)}75%{transform:translate(8px)}}.pin-msg{text-align:center;min-height:1.45em;color:var(--danger);font-weight:600}.keypad{grid-template-columns:repeat(3,1fr);gap:14px;width:100%;max-width:300px;margin:0 auto;display:grid}.keypad button{background:var(--surface);width:72px;height:72px;box-shadow:var(--shadow);font-family:var(--font-display);border:0;border-radius:50%;justify-self:center;font-size:1.8rem;font-weight:700}.keypad button.txt{box-shadow:none;font-family:var(--font-body);background:0 0;font-size:.95rem}.keypad button:disabled{opacity:.5}.hello{padding-top:calc(18px + env(safe-area-inset-top,0px));align-items:center;gap:12px;display:flex}.hello h1{font-size:var(--fs-2xl)}.hello .date{color:var(--muted);font-weight:600}.avbtn{background:0 0;border:0;border-radius:50%;padding:0}.grid{grid-template-columns:1fr 1fr;gap:22px 14px;padding-top:6px;display:grid}.mod{background:0 0;border:0;flex-direction:column;align-items:center;gap:10px;padding:0;display:flex}.mod .circ{width:100%;max-width:var(--module-circle);aspect-ratio:1;border:5px solid var(--surface);box-shadow:var(--shadow);background:var(--tint,var(--surface-2));border-radius:50%;transition:transform .12s;overflow:hidden}.mod .circ img{object-fit:cover;width:100%;height:100%;display:block}.mod .lbl{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:700}.mod.paused .circ{position:relative}.mod.paused .circ img{filter:grayscale();opacity:.45}.mod.paused .lbl{color:var(--muted)}.pause-badge{background:var(--ink);color:var(--bg);font-weight:800;font-size:var(--fs-sm);border-radius:999px;padding:4px 12px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.paused-card{gap:8px}.block-line{display:block}@media (width>=560px){.grid{grid-template-columns:repeat(3,1fr)}}.wx-chip{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:18px;align-items:center;gap:10px;width:100%;padding:10px 14px;display:flex}.wx-chip img{flex:none;width:40px;height:40px}.wx-chip b{font-family:var(--font-display);font-size:1.35rem}.strong{font-weight:700}.seg{background:var(--surface-2);border-radius:999px;gap:4px;padding:4px;display:flex}.seg button{min-height:44px;color:var(--muted);background:0 0;border:0;border-radius:999px;flex:1;font-weight:700}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.chip{font-size:var(--fs-xs);background:var(--surface-2);color:var(--muted);border-radius:999px;align-items:center;padding:3px 10px;font-weight:700;display:inline-flex}.chip.new{background:color-mix(in srgb, var(--accent) 25%, var(--surface));color:var(--ink)}.section-title{margin-bottom:4px;font-size:1.15rem}.list{flex-direction:column;display:flex}.list>*+*{border-top:1px solid var(--line)}.week{flex-direction:column;gap:8px;display:flex}.week-h{justify-content:space-between;align-items:baseline;gap:8px;padding-top:6px;font-size:1.25rem;display:flex}.week-days{background:var(--surface);border:1px solid var(--line);border-radius:18px;flex-direction:column;display:flex;overflow:hidden}.wday{grid-template-columns:52px 1fr;gap:8px;min-height:48px;padding:8px 12px 8px 8px;display:grid}.wday+.wday{border-top:1px solid var(--line)}.wday.today{background:color-mix(in srgb, var(--primary) 10%, var(--surface));box-shadow:inset 4px 0 0 var(--primary)}.wday.past{opacity:.55}.wday-label{flex-direction:column;justify-content:center;align-items:center;line-height:1.1;display:flex}.wday-label b{font-family:var(--font-display);font-size:1.05rem}.wday-label span{font-size:var(--fs-xs);color:var(--muted);font-variant-numeric:tabular-nums}.wday.today .wday-label b{color:var(--primary)}.wday-items{flex-direction:column;justify-content:center;gap:6px;min-width:0;display:flex}.wday-empty{color:var(--muted)}.occ{--ev:var(--ev-family);background:color-mix(in srgb, var(--ev) 26%, var(--surface));width:100%;box-shadow:inset 5px 0 0 var(--ev);text-align:left;border:0;border-radius:12px;align-items:center;gap:10px;padding:4px 6px 4px 9px;display:flex}.occ:active{filter:brightness(.95)}.cal-legend{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.cal-legend li{font-size:var(--fs-xs);background:color-mix(in srgb, var(--ev) 26%, var(--surface));border-radius:999px;align-items:center;gap:6px;padding:3px 10px 3px 6px;font-weight:700;display:inline-flex}.cal-legend li:before{content:"";background:var(--ev);border-radius:50%;width:10px;height:10px}.occ .ev-icon{flex:none}.occ-text{overflow-wrap:anywhere;flex-wrap:wrap;flex:1;align-items:baseline;gap:0 8px;min-width:0;display:flex}.occ-time{color:var(--muted);font-variant-numeric:tabular-nums;width:100%;font-size:.85rem}.occ.cancelled b{color:var(--muted);text-decoration:line-through}.dots{flex:none;gap:3px;display:flex}.dots i{background:var(--dot);border-radius:50%;width:10px;height:10px}.details{flex-direction:column;gap:6px;display:flex}.note{background:var(--surface-2);white-space:pre-wrap;border-radius:12px;padding:10px 12px}.who-line{flex-wrap:wrap;gap:8px;display:flex}.who-chip{align-items:center;gap:6px;font-weight:700;display:inline-flex}.who-chip .av{width:30px;height:30px;font-size:.9rem}.icon-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;display:grid}.icon-grid button{border:2px solid var(--line);background:var(--bg);text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;font-size:.78rem;font-weight:700;line-height:1.15;display:flex}.icon-grid button[aria-checked=true]{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 12%, var(--surface))}.two-col{grid-template-columns:1fr 1fr;gap:12px;display:grid}.day-nav{grid-template-columns:auto 1fr auto;align-items:center;gap:8px;display:grid}.day-nav .iconbtn{width:var(--tap);height:var(--tap);background:var(--surface);border:2px solid var(--line);border-radius:999px}.day-nav-title{text-align:center;flex-direction:column;align-items:center;min-width:0;line-height:1.2;display:flex}.day-nav-title b{font-family:var(--font-display);font-size:var(--fs-xl)}.day-today{color:var(--primary);font-weight:700;font-size:var(--fs-sm);background:0 0;border:0;padding:2px 6px}.allday{flex-direction:column;gap:6px;display:flex}.allday .divider{padding:0 0 2px}.timeline{margin-top:12px;position:relative}.hour{border-top:1px solid var(--line);height:0;position:absolute;left:0;right:0}.hour span{background:var(--bg);width:44px;font-size:var(--fs-xs);color:var(--muted);font-variant-numeric:tabular-nums;padding-right:6px;font-weight:700;line-height:1.2;position:absolute;top:-.6em;left:0}.tl-lane{position:absolute;inset:0 0 0 48px}.dblock{--ev:var(--primary);text-align:left;background:color-mix(in srgb, var(--ev) 26%, var(--surface));box-shadow:inset 5px 0 0 var(--ev);border:0;border-radius:12px;align-items:flex-start;gap:8px;padding:6px 8px;display:flex;overflow:hidden}.timeline .dblock{position:absolute}.dblock:active{filter:brightness(.95)}.dblock .ev-icon{flex:none}.dblock-text{flex-wrap:wrap;flex:1;align-items:baseline;gap:0 6px;min-width:0;line-height:1.2;display:flex}.dblock-text b{overflow-wrap:anywhere}.dblock-time{white-space:nowrap;text-overflow:ellipsis;width:100%;color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8rem;font-weight:700;overflow:hidden}.dblock-who{flex:none;gap:2px;display:flex}.dblock-who .av{border-width:2px;width:26px;height:26px;font-size:.8rem}.dblock-all{font-size:var(--fs-xs);color:var(--muted);padding-top:4px;font-weight:700}.allday-item{min-height:var(--tap);align-items:center}.dblock.cancelled{opacity:.6}.dblock.cancelled b{text-decoration:line-through}.dblock.xs .dblock-text{flex-wrap:nowrap}.dblock.sm .dblock-text b,.dblock.xs .dblock-text b{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.dblock.xs{align-items:center;gap:6px;padding:2px 6px}.dblock.xs .dblock-time{display:none}.dblock.xs .dblock-who .av{width:20px;height:20px;font-size:.65rem}.dblock.narrow{grid-template-columns:auto 1fr;grid-template-areas:"icon who""text text";align-content:start;gap:4px;padding:5px;display:grid}.dblock.narrow .ev-icon{grid-area:icon}.dblock.narrow .dblock-who{grid-area:who;justify-self:end}.dblock.narrow .dblock-text{flex-flow:column;grid-area:text;align-items:flex-start}.dblock.narrow .dblock-text b{max-width:100%}.dblock.narrow.sm .dblock-text b{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.dblock.narrow .dblock-time{width:auto}.dblock.narrow.sm .dblock-time{display:none}.dblock.narrow .dblock-who .av{width:20px;height:20px;font-size:.65rem}.dblock.narrow.xs{grid-template-columns:auto 1fr auto;grid-template-areas:"icon text who";align-items:center}.now-line{border-top:2px solid var(--danger);z-index:2;pointer-events:none;height:0;position:absolute;left:-6px;right:0}.now-line:before{content:"";background:var(--danger);border-radius:50%;width:10px;height:10px;position:absolute;top:-6px;left:-5px}.wx-now{border-radius:var(--radius-xl);background:linear-gradient(160deg, color-mix(in srgb, var(--primary) 18%, var(--surface)), var(--surface));border:1px solid var(--line);grid-template-columns:auto 1fr;align-items:center;gap:8px 16px;padding:20px;display:grid}.wx-now img{width:110px;height:110px}.wx-now .temp{font-family:var(--font-display);font-size:var(--fs-3xl);font-variant-numeric:tabular-nums;font-weight:800;line-height:1}.wx-stats{grid-column:1/-1;grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.wx-stats div{background:var(--surface);text-align:center;border:1px solid var(--line);border-radius:14px;padding:10px 6px}.wx-stats b{font-variant-numeric:tabular-nums;font-size:1.05rem;display:block}.wx-stats span{font-size:var(--fs-xs);color:var(--muted)}.hours .row{font-variant-numeric:tabular-nums;grid-template-columns:48px 40px 1fr 64px 60px;gap:8px;padding:8px 0;display:grid}.hours .row.head{padding-top:0}.hours .row img{width:36px;height:36px}.hours .temp{font-size:1.1rem;font-weight:700}.hours .temp.cold{color:var(--c4)}.hours .r{text-align:right;color:var(--muted);font-size:.9rem}.hours .r.rain{color:var(--primary);font-weight:700}.wear{flex-direction:column;gap:12px;display:flex}.wear-body{grid-template-columns:minmax(120px,44%) 1fr;align-items:center;gap:12px;display:grid}.kid{background:color-mix(in srgb, var(--primary) 12%, var(--surface-2));border-radius:18px;width:100%;height:auto;display:block}.wear-text{flex-direction:column;gap:10px;min-width:0;display:flex}.wear-why{font-family:var(--font-display);font-weight:700;font-size:var(--fs-lg);line-height:1.2}.wear-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.wear-list li{background:var(--surface-2);overflow-wrap:anywhere;border-radius:12px;padding:6px 12px;font-weight:700}.wear-remember{background:color-mix(in srgb, var(--accent) 22%, var(--surface));font-size:var(--fs-md);border-radius:16px;margin-top:8px;padding:14px 16px;font-weight:700;line-height:1.35}.divider{font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:12px 0 4px;font-weight:700}.credit{color:var(--muted);text-align:center;font-size:.82rem}.dinner-chip{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:18px;width:100%;margin-top:-6px;padding:10px 14px;display:block}.banner{background:color-mix(in srgb, var(--accent) 22%, var(--surface));border-radius:16px;padding:12px 14px;font-size:.92rem;font-weight:600}.meal{background:var(--surface);border:1px solid var(--line);border-radius:18px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px;display:grid}.meal.today{border:2px solid var(--primary)}.meal .d{text-align:center;width:52px}.meal .d b{font-family:var(--font-display);font-size:1.15rem;display:block}.meal .d span{font-size:var(--fs-xs);color:var(--muted);font-variant-numeric:tabular-nums}.meal .dish{overflow-wrap:anywhere;min-width:0;font-size:1.05rem;font-weight:700}.meal .dish.none{color:var(--muted);font-style:italic;font-weight:400}.thumb{background:var(--surface-2);border-radius:50%;flex:none;width:56px;height:56px;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%;display:block}.meal-edit{background:var(--surface);border:1px solid var(--line);border-radius:18px;flex-direction:column;gap:10px;padding:12px;display:flex}.meal-edit .top{align-items:center;gap:12px;display:flex}.field-col{flex-direction:column;gap:4px;display:flex}.meal-edit input[type=text]{border:2px solid var(--line);background:var(--bg);border-radius:12px;width:100%;min-height:46px;padding:10px 12px;font-size:1rem}.meal-edit .opts{flex-wrap:wrap;align-items:center;gap:12px;font-size:.9rem;display:flex}.upl{background:var(--surface-2);cursor:pointer;border-radius:12px;align-items:center;min-height:40px;padding:0 14px;font-weight:700;display:inline-flex;position:relative}.upl input{opacity:0;cursor:pointer;position:absolute;inset:0}.upl:focus-within{outline:3px solid var(--primary);outline-offset:2px}.radio{align-items:center;gap:8px;min-height:40px;display:inline-flex}.radio input{width:20px;height:20px;accent-color:var(--primary)}.link{color:var(--danger);background:0 0;border:0;padding:8px 4px;font-weight:700}.btn-row{gap:10px;display:flex}.btn-row .btn{flex:1}.toast{left:max(16px, env(safe-area-inset-left,0px));right:max(16px, env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:60;background:var(--ink);max-width:560px;color:var(--bg);box-shadow:var(--shadow);transform:translateY(calc(100% + 20px + env(safe-area-inset-bottom,0px)));visibility:hidden;pointer-events:none;border-radius:16px;margin:0 auto;padding:14px 16px;font-weight:600;transition:transform .25s,visibility 0s linear .25s;position:fixed}.toast.show{visibility:visible;transition:transform .25s,visibility;transform:none}.shop-add{flex-direction:column;gap:10px;display:flex}.shop-add-row{grid-template-columns:1fr 96px;gap:8px;display:grid}.shop-input,.shop-select{border:2px solid var(--line);background:var(--bg);border-radius:14px;width:100%;min-height:50px;padding:10px 12px;font-size:1rem}.shop-sugg{background:var(--bg);border:1px solid var(--line);border-radius:14px;flex-direction:column;margin:-4px 0 0;padding:4px;list-style:none;display:flex}.shop-sugg button{text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:8px;width:100%;min-height:44px;padding:6px 10px;font-weight:700;display:flex}.shop-sugg button:active{background:var(--surface-2)}.cat-chips{scrollbar-width:none;gap:6px;padding:2px;display:flex;overflow-x:auto}.cat-chips button{border:2px solid var(--line);background:var(--bg);min-height:38px;color:var(--muted);border-radius:999px;flex:none;padding:0 12px;font-size:.85rem;font-weight:700}.cat-chips button[aria-checked=true]{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 12%, var(--surface));color:var(--ink)}.shop-requests{border:2px solid color-mix(in srgb, var(--accent) 60%, var(--line))}.shop-req{gap:8px;padding:10px 0}.shop-summary{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:700}.shop-cat{flex-direction:column;gap:6px;display:flex}.shop-cat-h{justify-content:space-between;align-items:center;gap:8px;font-size:1.15rem;display:flex}.shop-items{background:var(--surface);border:1px solid var(--line);border-radius:18px;flex-direction:column;display:flex;overflow:hidden}.shop-item{align-items:center;gap:4px;min-height:56px;padding:0 8px 0 4px;display:flex}.shop-item+.shop-item{border-top:1px solid var(--line)}.shop-check{width:var(--tap);height:var(--tap);color:var(--on-primary);background:0 0;border:0;flex:none;place-items:center;padding:0;display:grid}.shop-check svg{border:2.5px solid var(--muted);color:#0000;border-radius:9px;width:30px;height:30px;padding:3px}.shop-check[aria-pressed=true] svg{background:var(--accent-2);border-color:var(--accent-2);color:var(--surface)}.shop-name{text-align:left;overflow-wrap:anywhere;background:0 0;border:0;flex:1;align-items:center;gap:8px;min-width:0;min-height:48px;padding:0;display:flex}.shop-item.bought .shop-name{color:var(--muted);text-decoration:line-through}.shop-item.bought{background:color-mix(in srgb, var(--surface-2) 50%, var(--surface))}.shop-by .av{border-width:2px;width:26px;height:26px;font-size:.75rem}.reorder{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.reorder li{gap:8px;padding:6px 0}.reorder li+li{border-top:1px solid var(--line)}.reorder .rank{width:24px;font-family:var(--font-display);color:var(--muted);text-align:center;font-weight:800}.reorder .iconbtn:disabled{opacity:.35}.who{scrollbar-width:none;gap:6px;padding:4px 2px;display:flex;overflow-x:auto}.who button{width:74px;color:var(--muted);background:0 0;border:0;flex-direction:column;flex:none;align-items:center;gap:4px;padding:4px;font-size:.85rem;font-weight:700;display:flex}.who button[aria-pressed=true]{color:var(--ink)}.who button[aria-pressed=true] .av{outline:3px solid var(--av);outline-offset:2px}.row-between{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.body-font{font-family:var(--font-body);font-weight:400}.center{text-align:center}.wish{background:var(--surface);border:1px solid var(--line);border-radius:18px;align-items:flex-start;gap:12px;padding:14px;display:flex}.wish .ic{width:42px;height:42px;color:var(--accent-2);background:color-mix(in srgb, var(--accent-2) 22%, var(--surface));border-radius:12px;flex:none;place-items:center;display:grid}.wish .ic svg{width:22px;height:22px}.wish .grow{flex-direction:column;gap:4px;display:flex}.wish h3{font-family:var(--font-body);overflow-wrap:anywhere;font-size:1.02rem;font-weight:700}.wish p{overflow-wrap:anywhere}.wish a{color:var(--primary);overflow-wrap:anywhere;font-size:.9rem;font-weight:700}.iconbtn{background:var(--surface-2);border:0;border-radius:14px;flex:none;place-items:center;width:44px;height:44px;display:inline-grid}.iconbtn svg{width:20px;height:20px}.form{flex-direction:column;gap:14px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field label{font-size:.92rem;font-weight:700}.field input,.field textarea,.field select{border:2px solid var(--line);background:var(--bg);border-radius:14px;width:100%;min-height:50px;padding:12px 14px;font-size:1rem}.field textarea{resize:vertical;min-height:90px}.error{color:var(--danger);font-weight:600;font-size:var(--fs-sm)}.btn.danger{background:var(--danger);color:var(--surface)}.btn.danger-text{color:var(--danger)}.game-menu{flex-direction:column;gap:12px;display:flex}.game-card{border:1px solid var(--line);background:var(--surface);text-align:left;border-radius:20px;align-items:center;gap:14px;width:100%;padding:12px;display:flex}.game-card img{border-radius:16px;flex:none;width:84px;height:84px}.game-card b{font-family:var(--font-display);font-size:1.35rem;display:block}.game-card:active{transform:scale(.98)}.game-back{align-self:flex-start}.totals{margin-top:8px}.totals .grow{flex-direction:column;line-height:1.25;display:flex}.totals-split{font-size:var(--fs-xs);color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;column-gap:4px;display:flex}.totals-split span{white-space:nowrap}.totals-split span+span:before{content:"· "}.totals .pts{font-family:var(--font-display);font-size:1.2rem}.ipa-hud{background:var(--surface);border:1px solid var(--line);font-variant-numeric:tabular-nums;border-radius:14px;flex-wrap:wrap;justify-content:space-between;gap:6px;padding:8px 12px;font-size:.9rem;font-weight:800;display:flex}.ipa-hud span:nth-child(4){color:#e0533d;letter-spacing:2px}.ipa-stage{aspect-ratio:10/7;border:3px solid var(--line);touch-action:none;-webkit-user-select:none;user-select:none;background:#bfe6fa;border-radius:18px;align-self:center;width:min(100%,85.7143dvh);position:relative;overflow:hidden}.ipa-stage canvas{width:100%;height:100%;display:block}.ipa-banner{color:#fff;font-family:var(--font-display);white-space:nowrap;pointer-events:none;background:#10283ad9;border-radius:12px;padding:8px 16px;font-size:1.2rem;font-weight:800;position:absolute;top:18%;left:50%;transform:translate(-50%)}.ipa-controls{-webkit-user-select:none;user-select:none;touch-action:none;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;display:grid}.ipa-dir{gap:10px;display:flex}.ipa-controls button{background:var(--surface);box-shadow:var(--shadow);touch-action:none;-webkit-touch-callout:none;border:0;border-radius:18px;place-items:center;display:grid}.ipa-dir button{width:74px;height:66px}.ipa-dir svg{width:32px;height:32px}.ipa-pause{width:52px;height:44px;color:var(--muted);justify-self:center;font-weight:800}.ipa-jump{width:104px;height:74px;font-family:var(--font-display);color:var(--on-primary);font-size:1.25rem;font-weight:800;background:var(--primary)!important}.ipa-controls button:active{transform:scale(.94)}.brett-stage{aspect-ratio:3/4;border:3px solid var(--line);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#f7fafc;border-radius:18px;align-self:center;width:min(100%,46.5dvh);position:relative;overflow:hidden}.brett-stage canvas{width:100%;height:100%;display:block}.brett-pause{width:48px;height:40px;box-shadow:var(--shadow);color:#566d80;background:#ffffffd9;border:0;border-radius:12px;font-weight:800;position:absolute;top:8px;right:8px}.brett-hud span:nth-child(4){color:inherit;letter-spacing:normal}.brett-hud .brett-alarm{color:#c8423a}.hb-intro{grid-template-columns:84px 1fr;align-items:center;gap:6px 14px;display:grid}.hb-intro h2{font-size:1.5rem}.hb-intro .btn{grid-column:1/-1;margin-top:6px}.hb-intro-head{width:84px;height:84px}.hb-stat-row{border-top:1px solid var(--line);flex-direction:column;gap:2px;padding:10px 0;display:flex}.hb-stats .section-title+.hb-stat-row{border-top:0}.hb-stat-who{align-items:baseline;gap:8px;display:flex}.hb-stat-nums{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:2px 14px;display:flex}.hb-stage{z-index:100;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;color:var(--ink);background:#7cc6f2;position:fixed;top:0;left:0;overflow:hidden}.hb-match,.hb-canvas{width:100%;height:100%;position:absolute;inset:0}.hb-canvas{display:block}.hb-pad{align-items:flex-end;gap:14px;display:flex;position:absolute}.hb-btn{color:#fff;width:64px;height:64px;font:700 15px var(--font-body);text-shadow:0 1px 2px #00000059;touch-action:none;-webkit-tap-highlight-color:transparent;background:#ffffff38;border:2px solid #ffffffb3;border-radius:50%;place-items:center;padding:0;display:grid}.hb-btn.big{width:76px;height:76px}.hb-btn:active{background:#ffffff73}.hb-btn svg{fill:#fff;width:26px;height:26px}.hb-pause{background:#0f172a8c;border:0;border-radius:50%;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;display:flex;position:absolute}.hb-pause span{background:#fff;border-radius:2px;width:4px;height:16px}.hb-skip{color:#fff;background:#0f172ab8;border:0;border-radius:20px;min-height:40px;padding:0 16px;font-weight:800;position:absolute}.hb-overlay{background:color-mix(in srgb, var(--bg) 84%, transparent)}.hb-overlay .btn{white-space:nowrap;padding-inline:18px}.hb-final{font-family:var(--font-display);font-size:3rem;font-weight:800;line-height:1}.hb-menu{background:var(--bg);touch-action:pan-y;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;display:grid;position:absolute;inset:0;overflow-y:auto}.hb-menu-col{flex-direction:column;gap:10px;min-width:0;display:flex}.hb-menu-title{align-items:center;gap:8px;display:flex}.hb-menu-title canvas{width:52px;height:52px}.hb-menu-title h2{font-size:1.8rem}.hb-field{flex-direction:column;gap:6px;display:flex}.hb-label{font-weight:800;font-size:var(--fs-sm)}.hb-swatches{flex-wrap:wrap;gap:8px;display:flex}.hb-swatch{border:2px solid #0000002e;border-radius:50%;width:40px;height:40px;padding:0}.hb-swatch[aria-checked=true]{outline:3px solid var(--ink);outline-offset:2px}.hb-swatch:disabled{opacity:.2}.hb-opps{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.hb-opp{border-radius:var(--radius-md);border:2px solid var(--line);background:var(--surface);color:var(--ink);flex-direction:column;align-items:center;gap:0;padding:6px 4px 8px;display:flex}.hb-opp[aria-pressed=true]{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 16%, var(--surface))}.hb-opp canvas{width:56px;height:56px}.hb-help{margin:0}.hb-menu-actions{align-items:center;gap:8px;margin-top:auto;display:flex}.hb-play{flex:1}.snake-top{justify-content:space-between;align-items:flex-end;display:flex}.snake-top .right{text-align:right}.score{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:1.7rem;font-weight:800}.board{aspect-ratio:1;border:3px solid var(--line);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:20px;width:100%;max-width:360px;margin:0 auto;position:relative;overflow:hidden}.board canvas{width:100%;height:100%;display:block}.overlay{text-align:center;background:color-mix(in srgb, var(--bg) 80%, transparent);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:16px;display:flex;position:absolute;inset:0}.overlay h2{font-size:1.8rem}.dpad{-webkit-user-select:none;user-select:none;grid-template-rows:repeat(2,60px);grid-template-columns:repeat(3,68px);justify-content:center;gap:8px;display:grid;position:relative}.dpad button{background:var(--surface);box-shadow:var(--shadow);touch-action:manipulation;border:0;border-radius:16px;place-items:center;display:grid}.dpad button:active{transform:scale(.94)}.dpad svg{width:30px;height:30px}.dpad .up{grid-column:2}.dpad .left{grid-area:2/1}.dpad .down{grid-area:2/2}.dpad .right{grid-area:2/3}.dpad .pause{width:52px;height:44px;color:var(--muted);font-weight:800;position:absolute;top:0;right:0}.hs .row{grid-template-columns:28px 44px 1fr auto;align-items:center;gap:10px;padding:8px 0;display:grid}.hs .row.me{background:color-mix(in srgb, var(--accent) 18%, transparent);border-radius:12px;padding-inline:6px}.hs .rank{font-family:var(--font-display);color:var(--muted);text-align:center;font-weight:800}.hs .pts{font-variant-numeric:tabular-nums;font-weight:800}.live{font-family:var(--font-body);font-size:var(--fs-xs);color:var(--accent-2);align-items:center;gap:6px;font-weight:700;display:inline-flex}.live:before{content:"";background:currentColor;border-radius:50%;width:8px;height:8px;animation:1.6s infinite pulse}@keyframes pulse{50%{opacity:.3}}.stack{flex-direction:column;gap:12px;display:flex}.notice{text-align:left;border:2px dashed color-mix(in srgb, var(--primary) 45%, var(--line));background:color-mix(in srgb, var(--primary) 8%, var(--surface));border-radius:20px;align-items:center;gap:12px;width:100%;padding:14px 16px;display:flex}.notice svg{width:28px;height:28px;color:var(--primary);flex:none}.notice b{display:block}.toggle-row{cursor:pointer;padding:12px 0}.switch{flex:none;width:54px;height:32px;position:relative}.switch input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.switch span{background:var(--line);pointer-events:none;border-radius:999px;transition:background .2s;position:absolute;inset:0}.switch span:after{content:"";background:var(--surface);border-radius:50%;width:26px;height:26px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.switch input:checked+span{background:var(--accent-2)}.switch input:checked+span:after{transform:translate(22px)}.switch input:focus-visible+span{outline:3px solid var(--primary);outline-offset:2px}.steps{counter-reset:s;flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.steps li{background:var(--surface);border:1px solid var(--line);counter-increment:s;border-radius:18px;flex-direction:column;gap:2px;min-height:68px;padding:14px 14px 14px 66px;display:flex;position:relative}.steps li:before{content:counter(s);background:var(--primary);width:40px;height:40px;color:var(--on-primary);font-family:var(--font-display);border-radius:50%;place-items:center;font-size:1.2rem;font-weight:800;display:grid;position:absolute;top:14px;left:14px}.inl{vertical-align:-7px;background:var(--surface-2);width:28px;height:28px;color:var(--primary);border-radius:8px;place-items:center;margin:0 2px;display:inline-grid}.inl svg{width:18px;height:18px}.btn.sm{border-radius:12px;min-height:40px;padding:0 14px;font-size:.9rem}.label{font-size:.92rem;font-weight:700}.recips{flex-wrap:wrap;gap:8px;display:flex}.recips button{border:2px solid var(--line);background:var(--bg);border-radius:999px;align-items:center;gap:8px;min-height:44px;padding:4px 14px 4px 4px;font-weight:700;display:inline-flex}.recips button .av{width:32px;height:32px;font-size:.95rem}.recips button.all{padding:4px 18px}.recips button[aria-pressed=true]{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 12%, var(--surface))}.log-row,.user-row{padding:10px 0}.pin-input{letter-spacing:.4em;text-align:center;font-variant-numeric:tabular-nums;font-size:1.6rem!important}.colors{gap:12px;display:flex}.colors button{background:var(--sw);border:3px solid var(--surface);width:44px;height:44px;box-shadow:0 0 0 2px var(--line);border-radius:50%}.colors button[aria-checked=true]{box-shadow:0 0 0 3px var(--ink)}.imggrid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.imgcell{background:var(--bg);border:1px solid var(--line);border-radius:18px;flex-direction:column;align-items:center;gap:8px;padding:12px;display:flex}.imgcell .circ{border:3px solid var(--surface);width:88px;height:88px;box-shadow:var(--shadow);background:var(--tint,var(--surface-2));border-radius:50%;overflow:hidden}.imgcell .circ img{object-fit:cover;width:100%;height:100%;display:block}.imgcell .acts{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.hw-kids button{justify-content:center;align-items:center;gap:8px;display:inline-flex}.hw-kids .av{border-width:2px;width:30px;height:30px;font-size:.9rem}.hw-points{background:color-mix(in srgb, var(--accent) 16%, var(--surface));border-color:color-mix(in srgb, var(--accent) 45%, var(--line));align-items:center;gap:14px;display:flex}.hw-points .grow{flex-direction:column;display:flex}.hw-points-n{font-family:var(--font-display);font-size:var(--fs-2xl);font-variant-numeric:tabular-nums;font-weight:800;line-height:1.05}.hw-star{width:52px;height:52px;fill:var(--accent);stroke:color-mix(in srgb, var(--accent) 70%, var(--ink));stroke-width:2px;stroke-linejoin:round;flex:none}.hw-progress{flex-direction:column;gap:10px;display:flex}.hw-pct{font-family:var(--font-display);font-size:var(--fs-xl);color:var(--accent-2);font-variant-numeric:tabular-nums;font-weight:800}.hw-bar{background:var(--surface-2);border-radius:999px;height:18px;overflow:hidden}.hw-bar span{background:var(--accent-2);border-radius:999px;min-width:0;height:100%;transition:width .45s cubic-bezier(.3,1.4,.6,1);display:block}.hw-sub{flex-direction:column;gap:6px;display:flex}.hw-sub-h{align-items:center;gap:10px;font-size:1.15rem;display:flex}.hw-dot{background:var(--sub);border-radius:50%;flex:none;width:14px;height:14px}.hw-item .shop-check{position:relative}.hw-item .shop-check:disabled{cursor:default;opacity:1}.hw-item .shop-check:disabled svg{border-style:dashed}.hw-item .shop-check[aria-pressed=true]:disabled svg{border-style:solid}.hw-item .shop-check[aria-pressed=true] svg{animation:.3s ease-out hw-tick}.hw-pop{font-family:var(--font-display);color:var(--accent-2);pointer-events:none;font-size:1rem;font-weight:800;animation:.9s ease-out forwards hw-pop;position:absolute;top:0;left:50%;transform:translate(-50%)}@keyframes hw-pop{0%{opacity:0;transform:translate(-50%,6px)scale(.7)}25%{opacity:1;transform:translate(-50%,-10px)scale(1.15)}to{opacity:0;transform:translate(-50%,-30px)scale(1)}}@keyframes hw-tick{0%{transform:scale(.7)}60%{transform:scale(1.18)}to{transform:scale(1)}}.hw-add{border-top:1px solid var(--line);gap:8px;padding:8px;display:flex}.hw-add .shop-input{min-height:44px}.hw-add .btn{flex:none}.hw-approved{border:2px solid color-mix(in srgb, var(--accent-2) 60%, var(--line));align-items:center;gap:12px;display:flex}.hw-check{flex:none;width:40px;height:40px}.hw-check circle{fill:var(--accent-2)}.hw-check path{stroke:var(--surface)}.hw-wait{border:2px solid color-mix(in srgb, var(--accent) 60%, var(--line));flex-direction:column;gap:4px;display:flex}.hw-approve{border:2px solid color-mix(in srgb, var(--primary) 40%, var(--line))}.hw-sugg{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.hw-sugg li{border:1px solid var(--line);background:var(--bg);opacity:.7;border-radius:16px;flex-direction:column;gap:6px;padding:8px 10px 10px 4px;display:flex}.hw-sugg li.on{opacity:1;border-color:color-mix(in srgb, var(--accent-2) 55%, var(--line));background:var(--surface)}.hw-sugg .row{gap:4px}.hw-sugg .shop-check:disabled{opacity:.5}.hw-sugg textarea{resize:vertical;width:calc(100% - 8px);min-height:0;margin-left:8px;line-height:1.35}.hw-sugg .small{margin-left:10px}.hw-warn{color:var(--danger);font-weight:700}.hw-import .seg button{font-size:.85rem}.btn.disabled{opacity:.6;pointer-events:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.hw-pop{display:none}}.scene{z-index:0;background:#0b1630;width:100vw;height:100vh;display:block;position:fixed;inset:0}html.scene-on body:before{content:"";z-index:1;background:color-mix(in srgb, var(--bg) 80%, transparent);-webkit-backdrop-filter:blur(26px)saturate(1.25);backdrop-filter:blur(26px)saturate(1.25);width:min(760px,100vw);position:fixed;top:0;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 0 0 1px #ffffff1f,0 0 80px #00000059}html.scene-on #root{z-index:2;max-width:760px;margin:0 auto;position:relative}html.scene-on .topbar{background:color-mix(in srgb, var(--bg) 62%, transparent)}.scene-caption{z-index:1;pointer-events:none;color:#fff;text-shadow:0 1px 14px #00000080;opacity:.93;flex-direction:column;gap:2px;max-width:calc(50vw - 444px);font-weight:600;display:flex;position:fixed;bottom:34px;left:40px}.scene-caption b{font-family:var(--font-display);font-size:2.1rem;font-weight:700;line-height:1.05}@media (width<=1279px){.scene-caption{display:none}}.winner-banner{text-align:left;border:2px solid color-mix(in srgb, var(--accent) 60%, transparent);border-radius:var(--radius-md);background:color-mix(in srgb, var(--accent) 16%, var(--surface));align-items:center;gap:12px;width:100%;margin:10px 0 4px;padding:12px 14px;display:flex}.winner-banner .grow{flex-direction:column;line-height:1.3;display:flex}.winner-cup{font-size:1.8rem;line-height:1}.vinner{z-index:90;color:#fff;background:radial-gradient(at 50% 30%,#1d3a63 0%,#0b1630 60%,#050a18 100%);place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.vinner-fx{width:100%;height:100%;position:absolute;inset:0}.vinner-body{text-align:center;width:min(420px,100%);padding:calc(24px + env(safe-area-inset-top,0px)) 24px calc(24px + env(safe-area-inset-bottom,0px));flex-direction:column;align-items:center;gap:14px;animation:.7s cubic-bezier(.2,1.4,.4,1) .2s both vinner-inn;display:flex;position:relative}.vinner-body h1{font-size:var(--fs-2xl);text-shadow:0 2px 18px #00000080}.vinner-body p{color:#dfe8f2;text-shadow:0 1px 10px #00000080}.vinner-week{letter-spacing:.04em;text-transform:uppercase;font-weight:700;font-size:var(--fs-sm);color:#f6c35c!important}.vinner-trophy{filter:drop-shadow(0 6px 24px #f6c35c8c);width:120px;height:120px;animation:2.4s ease-in-out infinite vinner-pokal}.vinner-faces{gap:10px;display:flex}.vinner-actions{flex-direction:column;gap:10px;width:100%;margin-top:10px;display:flex}.vinner .btn.ghost{color:#fff;background:#ffffff1a;border-color:#ffffff40}@keyframes vinner-inn{0%{opacity:0;transform:scale(.85)translateY(20px)}}@keyframes vinner-pokal{50%{transform:translateY(-6px)rotate(-3deg)}}@media (prefers-reduced-motion:reduce){.vinner-body,.vinner-trophy{animation:none}}
