:root{--color-navy:#1f2a44;--color-navy-soft:#3a4566;--color-text-muted:#4a5470;--color-cream:#fbf7f0;--color-cream-deep:#f3ece0;--color-surface:#fffdf9;--color-border:#e4dccd;--color-line:#ece5d8;--color-blue:#bcd0e8;--color-peach:#f4c7ab;--color-sage:#c6d7c0;--color-lilac:#d7cce7;--color-yellow:#f3e2a7;--color-error-text:#8a2424;--color-error-bg:#fbe8e4;--color-success-text:#2f5130;--color-success-bg:#e5efe0;--color-focus:#4f74ad;--radius-sm:.5rem;--radius-md:.875rem;--radius-lg:1.25rem;--shadow-card:0 1px 2px #1f2a440f, 0 6px 20px #1f2a440f;--shadow-float:0 2px 4px #1f2a441a, 0 10px 24px #1f2a4424;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--tap-size:2.75rem;--content-width:40rem;--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;font-family:var(--font-sans);color:var(--color-navy);background-color:var(--color-cream);-webkit-text-size-adjust:100%;text-rendering:optimizelegibility;-webkit-tap-highlight-color:transparent;font-size:100%;line-height:1.5}*,:before,:after{box-sizing:border-box}body{min-height:100dvh;margin:0}h1,h2,h3{margin:0 0 var(--space-3);letter-spacing:-.01em;font-weight:650;line-height:1.2}h1{font-size:1.75rem}h2{font-size:1.375rem}p{margin:0 0 var(--space-4)}a{color:var(--color-navy);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{color:var(--color-navy-soft)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--color-text-muted)}.page{max-width:var(--content-width);padding:var(--space-5) calc(var(--space-4) + var(--safe-right)) calc(var(--space-6) + var(--safe-bottom)) calc(var(--space-4) + var(--safe-left));margin:0 auto}.page--center{text-align:center}.stack{gap:var(--space-5);flex-direction:column;display:flex}.stack p{margin-bottom:0}p.muted+h1{margin-top:var(--space-2)}.auth-layout{min-height:100dvh;padding:var(--space-6) calc(var(--space-4) + var(--safe-right)) calc(var(--space-6) + var(--safe-bottom)) calc(var(--space-4) + var(--safe-left));padding-top:max(var(--space-6), env(safe-area-inset-top));flex-direction:column;align-items:center;display:flex}.auth-layout__inner{width:100%;max-width:24rem}.brand{align-items:center;gap:var(--space-3);color:var(--color-navy);text-decoration:none;display:flex}.brand--stacked{gap:var(--space-2);margin-bottom:var(--space-5);text-align:center;flex-direction:column}.brand__logo{flex:none;width:2.5rem;height:2.5rem}.brand--stacked .brand__logo{width:3.5rem;height:3.5rem}.brand__name{letter-spacing:-.02em;margin:0;font-size:1.5rem;font-weight:700}.tagline{color:var(--color-text-muted);margin:0;font-size:.95rem}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-5)}.card>:last-child{margin-bottom:0}.card h2{font-size:1.2rem}.form{gap:var(--space-4);flex-direction:column;display:flex}.field{gap:var(--space-1);flex-direction:column;display:flex}fieldset.field{border:0;min-width:0;margin:0;padding:0}.field__label{padding:0;font-size:.95rem;font-weight:600}.field__hint{color:var(--color-text-muted);font-size:.85rem}.field__hint--note{color:#3a2a00;background:#fff6db;border-radius:8px;padding:6px 10px}.field__error{color:var(--color-error-text);font-size:.85rem}.field-row{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.input{font:inherit;color:var(--color-navy);border-radius:var(--radius-sm);min-height:var(--tap-size);padding:var(--space-2) var(--space-3);background:#fff;border:1px solid #cfc5b3;width:100%;font-size:1rem}.field-row>.field{min-width:0}.input[type=date],.input[type=time],.input[type=datetime-local]{box-sizing:border-box;appearance:none;min-width:0;max-width:100%;display:block}.input::-webkit-date-and-time-value{text-align:left;min-width:0}.input:focus-visible{border-color:var(--color-focus)}.input[aria-invalid=true]{border-color:var(--color-error-text)}textarea.input{resize:vertical;min-height:6rem}select.input{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--color-navy) 50%), linear-gradient(135deg, var(--color-navy) 50%, transparent 50%);background-position:calc(100% - 1.15rem),calc(100% - .8rem);background-repeat:no-repeat;background-size:.35rem .35rem;padding-right:2.25rem}.form-actions{gap:var(--space-3);min-height:var(--tap-size);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.btn{font:inherit;justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap-size);padding:var(--space-2) var(--space-5);cursor:pointer;border:1px solid #0000;border-radius:999px;font-weight:600;text-decoration:none;transition:background-color .15s,border-color .15s,box-shadow .15s;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--color-navy);color:var(--color-cream)}.btn--primary:hover:not(:disabled){background:var(--color-navy-soft);color:var(--color-cream)}.btn--secondary{color:var(--color-navy);border-color:var(--color-navy);background:0 0}.btn--secondary:hover:not(:disabled){background:var(--color-cream-deep)}.btn--ghost{color:var(--color-navy);background:0 0}.btn--ghost:hover:not(:disabled){background:var(--color-cream-deep)}.btn--danger{color:var(--color-error-text);border-color:var(--color-error-text);background:0 0}.btn--danger:hover:not(:disabled){background:var(--color-error-bg)}.btn--small{padding:var(--space-1) var(--space-4);font-size:.92rem}.btn--block{width:100%}.icon-btn{font:inherit;width:var(--tap-size);height:var(--tap-size);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-navy);cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:1.6rem;line-height:1;display:inline-flex}.icon-btn span{margin-top:-.15em}.icon-btn:hover{background:var(--color-cream-deep)}.alert{border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);margin:0;font-size:.95rem}.alert--error{background:var(--color-error-bg);color:var(--color-error-text)}.alert--success{background:var(--color-success-bg);color:var(--color-success-text)}.auth-links{margin-top:var(--space-5);text-align:center;gap:var(--space-2);flex-direction:column;font-size:.95rem;display:flex}.auth-links p{margin:0}.loading{padding:var(--space-6) var(--space-4);text-align:center;color:var(--color-text-muted)}code{background:var(--color-cream-deep);border-radius:.3em;padding:.1em .35em;font-size:.9em}.chips{gap:var(--space-2);padding:var(--space-1) 0 var(--space-2);margin:0 calc(-1 * var(--space-4));padding-inline:var(--space-4);scrollbar-width:none;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chips--wrap{flex-wrap:wrap;margin:0;padding-inline:0;overflow:visible}.chip{font:inherit;align-items:center;gap:var(--space-2);min-height:var(--tap-size);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-navy);cursor:pointer;white-space:nowrap;border-radius:999px;flex:none;padding:0 .9rem;font-size:.92rem;font-weight:600;display:inline-flex}.chip[aria-pressed=true]{background:var(--color-navy);border-color:var(--color-navy);color:var(--color-cream)}.chip--radio:has(input:checked){background:var(--color-navy);border-color:var(--color-navy);color:var(--color-cream)}.chip[aria-pressed=true] .colour-dot{border-color:var(--color-cream)}.chip--radio:has(input:checked) .colour-dot{border-color:var(--color-cream)}.category-icon{flex:none;display:block}.chip--category{padding-left:.35rem}.chip--category:has(input:checked) .category-icon{box-shadow:0 0 0 2px var(--color-cream);border-radius:6px}.chip--radio input{opacity:0;pointer-events:none;position:absolute}.chip--radio:has(input:focus-visible){outline:3px solid var(--color-focus);outline-offset:2px}.colour-dot{border:1.5px solid #1f2a442e;border-radius:50%;flex:none;width:.9rem;height:.9rem}.pill-link{min-height:var(--tap-size);padding:0 var(--space-3);color:var(--color-navy-soft);border-radius:999px;align-items:center;font-size:.92rem;font-weight:600;text-decoration:none;display:inline-flex}.pill-link:hover{background:var(--color-cream-deep)}.actions{gap:var(--space-3);margin-top:var(--space-5);flex-wrap:wrap;display:flex}.family-switcher{margin-bottom:var(--space-3);max-width:20rem}.member-list{margin:0;padding:0;list-style:none}.member-list li{align-items:center;gap:var(--space-3);min-height:3.25rem;padding:var(--space-2) 0;border-bottom:1px solid var(--color-line);font-weight:600;display:flex}.member-list li:last-child{border-bottom:0}.member-list .colour-dot{width:1.75rem;height:1.75rem}.member-list .muted{font-weight:400}.card__title{margin:0 0 var(--space-3);font-size:1.05rem}.location-list{margin:0;padding:0;list-style:none}.location-list>li{padding:var(--space-2) 0;border-bottom:1px solid var(--color-line)}.location-list>li:last-child{border-bottom:0}.location-row{align-items:center;gap:var(--space-2);min-height:3.25rem;display:flex}.location-row__pin{color:#7c5cff;flex:none}.location-row__text{overflow-wrap:anywhere;flex-direction:column;flex:1;min-width:0;display:flex}.location-row__text .muted{font-size:.875rem}.location-edit{padding:var(--space-2) 0}.location-edit__actions{gap:var(--space-2);display:flex}.invite-link{gap:var(--space-3);flex-direction:column;display:flex}.empty-state{text-align:center;padding:var(--space-6) var(--space-4);color:var(--color-text-muted)}.sleeping-cat{width:7.5rem;height:auto;color:var(--color-navy);opacity:.35;margin-bottom:var(--space-3)}.empty-state__title{color:var(--color-navy);margin-bottom:var(--space-1);font-weight:650}.empty-state__text{margin-bottom:0}.empty-state .btn{margin-top:var(--space-3)}.add-entry{z-index:5;padding:var(--space-4) var(--space-4) calc(var(--space-4) + var(--safe-bottom));pointer-events:none;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.btn--fab{pointer-events:auto;min-height:3.25rem;padding-inline:var(--space-6);box-shadow:var(--shadow-float);font-size:1.02rem}.btn__plus{font-size:1.35rem;font-weight:500;line-height:1}:root:has(.auth-layout){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background-color:#0b0f1a}.auth-layout{--auth-bg:#0b0f1a;--auth-text:#eef0f8;--auth-muted:#a3a9bf;--auth-line:#ffffff1a;--auth-field:#ffffff0a;--auth-field-border:#ffffff1f;--auth-purple:#7c5cff;--auth-violet:#8b6cff;--auth-blue:#2f6bff;--auth-link:#a995ff;color:var(--auth-text);background:radial-gradient(60rem 40rem at 50% -10%, #5046b438, transparent 60%), radial-gradient(40rem 30rem at 100% 110%, #2f6bff1f, transparent 60%), linear-gradient(180deg, #121828 0%, var(--auth-bg) 100%);font-feature-settings:"cv11", "ss01"}.auth-layout :focus-visible{outline-color:var(--auth-link)}.auth-layout a{color:var(--auth-link);text-decoration:none}.auth-layout a:hover{color:#c6b8ff;text-decoration:underline}.auth-brand{text-align:center;margin:var(--space-6) 0 var(--space-5)}.auth-brand__mark{align-items:flex-end;margin:0;font-size:clamp(2.5rem,11vw,3.25rem);line-height:1;display:inline-flex;position:relative}.auth-brand__cat{aspect-ratio:100/120;width:auto;height:1.2em;color:var(--auth-purple);filter:drop-shadow(0 6px 18px #7c5cff59);flex:none;position:absolute;bottom:0;right:calc(100% + .22em)}.auth-brand__name{letter-spacing:-.03em;background:linear-gradient(#fff 0%,#d9dcef 100%);color:#0000;-webkit-background-clip:text;background-clip:text;padding-bottom:.04em;font-weight:500}.auth-brand__tagline{margin:var(--space-3) 0 0;color:var(--auth-muted);letter-spacing:.01em;font-size:1.15rem}.auth-card{border:1px solid var(--auth-line);-webkit-backdrop-filter:blur(18px)saturate(140%);backdrop-filter:blur(18px)saturate(140%);color:var(--auth-text);padding:var(--space-5);background:linear-gradient(160deg,#ffffff12,#ffffff06);border-radius:1.25rem;box-shadow:inset 0 1px #ffffff0f,0 20px 50px #00000073}.auth-card h1{font-size:1.35rem;font-weight:600}.auth-layout .muted,.auth-layout .field__hint{color:var(--auth-muted)}.auth-layout .field__label{color:var(--auth-text);font-weight:500}.auth-layout .input{background:var(--auth-field);border:1px solid var(--auth-field-border);color:var(--auth-text);border-radius:.75rem;min-height:3.25rem}.auth-layout .input::placeholder{color:#7d849c}.auth-layout .input:focus-visible{border-color:var(--auth-violet);outline:none;box-shadow:0 0 0 3px #7c5cff47}.auth-layout .input:-webkit-autofill{-webkit-text-fill-color:var(--auth-text);caret-color:var(--auth-text);-webkit-box-shadow:inset 0 0 0 100px #1a2033}.input-wrap{align-items:center;display:flex;position:relative}.input-wrap .input{width:100%}.input--with-icon{padding-left:3rem}.input--with-action{padding-right:3.25rem}.auth-icon{flex:none;width:1.4rem;height:1.4rem}.input-wrap__icon{color:#c9cde0;pointer-events:none;position:absolute;left:.95rem}.input-wrap__action{width:var(--tap-size);height:var(--tap-size);color:#c9cde0;cursor:pointer;background:0 0;border:0;border-radius:.6rem;justify-content:center;align-items:center;display:inline-flex;position:absolute;right:.35rem}.input-wrap__action:hover{color:#fff;background:#ffffff0f}.field__aside{margin:var(--space-2) 0 0;text-align:right;font-size:.95rem}.auth-layout .btn--primary{color:#fff;background:linear-gradient(100deg, var(--auth-violet) 0%, #5a5ef5 50%, var(--auth-blue) 100%);border:0;border-radius:.8rem;min-height:3.25rem;font-size:1.1rem;font-weight:500;transition:filter .15s,box-shadow .15s,transform .15s;position:relative;box-shadow:0 10px 30px #5a5ef559,inset 0 1px #fff3}.auth-layout .btn--primary:hover:not(:disabled){color:#fff;filter:brightness(1.08);text-decoration:none;box-shadow:0 12px 36px #5a5ef573,inset 0 1px #fff3}.auth-layout .btn--primary:active:not(:disabled){transform:translateY(1px)}.btn__arrow{position:absolute;right:1.25rem}.auth-layout .btn--secondary{color:var(--auth-text);border-color:var(--auth-field-border);background:var(--auth-field);border-radius:.8rem;min-height:3.25rem}.auth-layout .btn--secondary:hover:not(:disabled){color:var(--auth-text);background:#ffffff14;text-decoration:none}.auth-layout .alert--error{color:#fecaca;background:#ef444424;border:1px solid #ef444459}.auth-layout .alert--success{color:#bbf7d0;background:#22c55e1f;border:1px solid #22c55e4d}.auth-layout .auth-links{color:var(--auth-muted)}.auth-divider{align-items:center;gap:var(--space-4);color:var(--auth-muted);font-size:.95rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--auth-line);flex:1;height:1px}.auth-links__create{align-items:center;gap:var(--space-2);min-height:var(--tap-size);font-size:1.05rem;display:inline-flex}.auth-links__create .auth-icon{color:var(--auth-link)}.auth-tabs{margin-bottom:var(--space-4);border:1px solid var(--auth-field-border);background:var(--auth-field);border-radius:999px;grid-template-columns:1fr 1fr;gap:.25rem;padding:.25rem;display:grid}.auth-tabs__tab{min-height:var(--tap-size);color:var(--auth-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;font-weight:600}.auth-tabs__tab[aria-pressed=true]{color:#fff;background:linear-gradient(135deg, var(--auth-purple), var(--auth-blue));box-shadow:0 6px 18px #7c5cff4d}.child-row{row-gap:var(--space-1);padding:var(--space-2) 0;flex-wrap:wrap}.child-row>.location-row__text{overflow-wrap:break-word;flex:8rem}.child-row>.avatar,.child-row__icon{flex:none}.child-row__meta{font-size:.875rem}.child-row__actions{gap:var(--space-2);flex-wrap:wrap;flex:auto;justify-content:flex-end;min-width:0;display:flex}.child-list--archived .location-row__text strong{color:var(--color-text-muted)}.credentials{gap:var(--space-2) var(--space-3);margin:var(--space-3) 0;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-cream-deep);grid-template-columns:auto 1fr;align-items:center;display:grid}.credentials dt{color:var(--color-text-muted);font-size:.9rem}.credentials dd{letter-spacing:.02em;color:#3b2a9a;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;margin:0;font-size:1.35rem;font-weight:700}.password-field{gap:var(--space-2);display:flex}.password-field .input{flex:1;min-width:0}.colour-grid{margin:0 0 var(--space-2);gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr));padding:0;list-style:none;display:grid}.colour-swatch{width:100%;min-height:var(--tap-size);padding:var(--space-2);border:1.5px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface);color:inherit;font:inherit;cursor:pointer;flex-direction:column;align-items:center;gap:.2rem;display:flex}.colour-swatch:hover:not(:disabled){border-color:#7c5cff}.colour-swatch[aria-pressed=true]{border-color:#7c5cff;box-shadow:0 0 0 3px #7c5cff38}.colour-swatch:disabled{cursor:not-allowed;opacity:.45;background:var(--color-cream-deep)}.colour-swatch__dot{border:2px solid #ffffffb3;border-radius:50%;width:1.75rem;height:1.75rem;box-shadow:0 1px 3px #1f2a4440}.colour-swatch__name{font-size:.85rem;font-weight:600}.colour-swatch__note{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.75rem;overflow:hidden}@media (width>=48rem){h1{font-size:2rem}.auth-layout{justify-content:center}}@media (width<=22rem){.app-header__tagline{display:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.shell{--shell-bg:#0b0f1a;--shell-bg-2:#141a2e;--shell-text:#eef0f8;--shell-muted:#a3a9bf;--shell-line:#ffffff1a;--shell-purple:#7c5cff;--shell-violet:#a995ff;min-height:100dvh}.truncate{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.eyebrow{margin:0 0 var(--space-1);letter-spacing:.14em;text-transform:uppercase;color:#5b45c9;font-size:.75rem;font-weight:700}.section-title{margin:var(--space-5) 0 var(--space-3);color:var(--color-text-muted);letter-spacing:.02em;font-size:1rem;font-weight:650}.shell-topbar{z-index:20;align-items:center;gap:var(--space-2);padding:calc(env(safe-area-inset-top,0px) + .5rem) calc(var(--safe-right) + .75rem) .5rem calc(var(--safe-left) + .5rem);background:radial-gradient(120% 180% at 0% 0%, #7c5cff38, transparent 55%), linear-gradient(180deg, var(--shell-bg-2) 0%, var(--shell-bg) 100%);color:var(--shell-text);border-bottom:1px solid var(--shell-line);display:flex;position:sticky;top:0;box-shadow:0 6px 24px #0b0f1a40}.shell-icon-btn{width:var(--tap-size);height:var(--tap-size);color:inherit;cursor:pointer;background:0 0;border:0;border-radius:.75rem;flex:none;place-items:center;display:grid}.shell-icon-btn:hover{background:#ffffff1a}.shell-icon-btn:focus-visible,.shell-link:focus-visible,.shell-brand:focus-visible,.shell-user:focus-visible,.shell-drawer__me:focus-visible,.shell-pill-btn:focus-visible{outline:2px solid var(--shell-violet);outline-offset:2px}.shell-brand{color:var(--shell-text);flex:1;align-items:flex-end;gap:.3rem;min-width:0;padding-left:.25rem;text-decoration:none;display:flex}.shell-brand__cat{aspect-ratio:100/120;width:auto;height:1.9rem;color:var(--shell-purple);filter:drop-shadow(0 4px 12px #7c5cff73);flex:none}.shell-brand__name{letter-spacing:-.03em;background:linear-gradient(#fff 0%,#d9dcef 100%);color:#0000;white-space:nowrap;text-overflow:ellipsis;-webkit-background-clip:text;background-clip:text;min-width:0;padding-bottom:.08em;font-size:1.3rem;font-weight:500;line-height:1.1;overflow:hidden}.shell-user{align-items:center;gap:var(--space-2);border:1px solid var(--shell-line);min-width:0;max-width:50%;color:var(--shell-text);background:#ffffff14;border-radius:999px;padding:.2rem .2rem .2rem .75rem;text-decoration:none;display:flex}.shell-user__name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.875rem;font-weight:600;overflow:hidden}.shell-pill-btn{border:1px solid var(--shell-line);min-height:2.5rem;color:var(--shell-text);font:inherit;cursor:pointer;background:#ffffff14;border-radius:999px;align-items:center;gap:.4rem;padding:0 .9rem;font-size:.875rem;font-weight:600;display:inline-flex}.shell-backdrop{z-index:30;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;pointer-events:none;background:#0608108c;transition:opacity .2s;position:fixed;inset:0}.shell-backdrop.is-open{opacity:1;pointer-events:auto}.shell-drawer{z-index:31;overscroll-behavior:contain;width:min(84vw,20rem);padding:calc(env(safe-area-inset-top,0px) + .6rem) .75rem calc(var(--safe-bottom) + 1rem) calc(var(--safe-left) + .75rem);background:radial-gradient(140% 60% at 0% 0%, #7c5cff33, transparent 60%), var(--shell-bg);color:var(--shell-text);border-right:1px solid var(--shell-line);flex-direction:column;gap:2px;transition:transform .22s;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-102%);box-shadow:12px 0 40px #00000059}.shell-drawer.is-open{transform:none}.shell-drawer__head{align-items:center;gap:var(--space-3);border-bottom:1px solid var(--shell-line);margin-bottom:.6rem;padding:.25rem 0 .9rem .25rem;display:flex}.shell-drawer__cat{aspect-ratio:100/120;width:auto;height:2.6rem;color:var(--shell-purple);filter:drop-shadow(0 4px 14px #7c5cff73);flex:none}.shell-drawer__family{flex-direction:column;flex:1;min-width:0;display:flex}.shell-drawer__family strong{text-overflow:ellipsis;white-space:nowrap;font-size:1.05rem;overflow:hidden}.shell-drawer__family span{color:var(--shell-muted);font-size:.75rem}.shell-drawer__me{align-items:center;gap:var(--space-3);border:1px solid var(--shell-line);color:inherit;background:#ffffff0f;border-radius:.9rem;min-width:0;margin-bottom:.4rem;padding:.65rem;text-decoration:none;display:flex}.shell-drawer__me div{flex-direction:column;min-width:0;display:flex}.shell-drawer__me strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.shell-drawer__me span{color:var(--shell-muted);font-size:.75rem}.shell-section{letter-spacing:.14em;text-transform:uppercase;color:var(--shell-muted);margin:.9rem .75rem .25rem;font-size:.7rem}.shell-link{width:100%;min-height:var(--tap-size);color:#eef0f8d9;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:.75rem;align-items:center;gap:.9rem;min-width:0;padding:.65rem .75rem;font-size:1rem;text-decoration:none;display:flex}.shell-link svg{flex:none}.shell-link:hover{color:#fff;background:#ffffff12}.shell-link.active{color:#fff;box-shadow:inset 3px 0 0 var(--shell-purple);background:#7c5cff2e}.shell-link.active svg{color:var(--shell-violet)}.shell-link__dot{flex:none;place-items:center;width:22px;height:22px;display:grid}.shell-link__dot:before{content:"";background:var(--shell-violet);border-radius:50%;width:8px;height:8px}.shell-spacer{flex:1;min-height:.75rem}.shell-version{color:var(--shell-muted);margin:.5rem .75rem 0;font-size:.75rem}.avatar{color:#fff;letter-spacing:.02em;background:linear-gradient(135deg,#8b6cff,#2f6bff);border-radius:50%;flex:none;place-items:center;font-weight:700;display:inline-grid;overflow:hidden;box-shadow:0 0 0 2px #ffffffd9}.avatar img{object-fit:cover;width:100%;height:100%;display:block}.member-list li>span:nth-child(2){flex:1;min-width:0}.member-list__role{font-size:.875rem;display:block}.page.dashboard{padding-left:calc(var(--space-2) + var(--safe-left));padding-right:calc(var(--space-2) + var(--safe-right))}.tiles{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));display:grid}.tile{--tile-accent:#7c5cff;color:#fff;background:linear-gradient(140deg,#1b2240 0%,#0b0f1a 75%);border-radius:1.15rem;flex-direction:column;gap:.2rem;min-width:0;min-height:9rem;padding:1.1rem 1rem 1rem 1.25rem;text-decoration:none;transition:transform .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 28px #0b0f1a38}.tile:before{content:"";background:var(--tile-accent);width:5px;position:absolute;top:0;bottom:0;left:0}.tile--row{flex-direction:row;align-items:center;gap:.85rem;min-height:6.25rem;padding:.85rem 1rem .85rem 1.75rem}.tile--row:before{width:14px}.tile--has-badge{padding-right:3.75rem}.tile-text{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.tile--row .tile-avatar,.tile--row .tile-add__plus{flex:none;margin-bottom:0}.tile--row .tile-next{margin-top:.15rem}.tile--family{background:linear-gradient(110deg,#0b0f1a 0%,#1b2240 38%,#4b3bb8 78%,#7c5cff 100%);grid-column:1/-1}.tile--family .tile-role{color:#c9bcff}.tile--family .tile-next{white-space:normal}.tile-family__cat{aspect-ratio:100/120;color:#7c5cff;filter:drop-shadow(0 6px 16px #7c5cff80);flex:none;width:auto;height:3.1rem}.tile:after{content:"";pointer-events:none;border:16px solid #ffffff0f;border-radius:50%;width:120px;height:120px;position:absolute;top:-30px;right:-30px}.tile:hover{transform:translateY(-2px);box-shadow:0 14px 34px #0b0f1a4d}.tile:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.tile-avatar{margin-bottom:.35rem}.tile-role{letter-spacing:.14em;text-transform:uppercase;color:#a995ff;align-items:center;gap:.35rem;font-size:.75rem;font-weight:700;display:inline-flex}.tile-name{letter-spacing:-.01em;overflow-wrap:anywhere;font-size:1.25rem;font-weight:750}.tile-next{opacity:.8;text-overflow:ellipsis;white-space:nowrap;margin-top:auto;font-size:.8125rem;overflow:hidden}.tile-badge{z-index:1;color:#fff;background:#7c5cff;border-radius:999px;padding:.1rem .55rem;font-size:.75rem;font-weight:700;position:absolute;top:.75rem;right:.75rem}.tile--add{background:var(--color-surface);min-height:6.25rem;color:var(--color-navy);box-shadow:none;border:2px dashed #c9bff2}.tile--add:before,.tile--add:after{display:none}.tile-add__plus{color:#5b45c9;background:#efeaff;border-radius:50%;place-items:center;width:52px;height:52px;margin-bottom:.35rem;font-size:1.75rem;font-weight:500;display:grid}.choice-list{gap:var(--space-3);flex-direction:column;display:flex}.choice{align-items:center;gap:var(--space-4);min-height:5.5rem;padding:var(--space-4);border-radius:var(--radius-lg);color:#eef0f8;background:linear-gradient(140deg,#1b2240 0%,#0b0f1a 80%);text-decoration:none;transition:transform .15s;display:flex;box-shadow:0 10px 28px #0b0f1a38}.choice:hover{transform:translateY(-2px)}.choice:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.choice__icon{color:#fff;background:linear-gradient(135deg,#8b6cff,#2f6bff);border-radius:.9rem;flex:none;place-items:center;width:3rem;height:3rem;display:grid}.choice__text{flex-direction:column;flex:1;min-width:0;display:flex}.choice__title{font-size:1.15rem;font-weight:700}.choice__hint{color:#a3a9bf;font-size:.875rem}.choice__arrow{color:#a995ff;font-size:1.25rem}.profile-picture{align-items:center;gap:var(--space-4);display:flex}.profile-picture h2{margin-bottom:var(--space-1)}.profile-picture .field__hint{margin:0 0 var(--space-3)}.profile-picture__frame{cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;padding:0;position:relative}.profile-picture__frame .avatar{box-shadow:0 0 0 3px #fff,0 0 0 5px #7c5cff}.profile-picture__badge{color:#fff;background:#7c5cff;border-radius:50%;place-items:center;width:2rem;height:2rem;display:grid;position:absolute;bottom:2px;right:2px;box-shadow:0 0 0 3px #fff}.profile-readonly{margin:0}.input--code{letter-spacing:.18em;text-transform:uppercase;font-variant-numeric:tabular-nums;font-size:1.35rem}.join-code{margin:var(--space-3) 0;letter-spacing:.16em;font-variant-numeric:tabular-nums;color:#3b2a9a;font-size:2rem;font-weight:700}@media (width<=22rem){.profile-picture{text-align:center;flex-direction:column}}@media (prefers-reduced-motion:reduce){.shell-drawer,.shell-backdrop,.tile,.choice{transition:none}}html.tl-mode,html.tl-mode body{height:100%;overflow:hidden}html.tl-mode body{min-height:0}html.tl-mode #root{height:100%}html.tl-mode .shell{flex-direction:column;height:100dvh;min-height:0;display:flex}html.tl-mode .shell-topbar{flex:none}html.tl-mode .shell-content{flex-direction:column;flex:1;min-height:0;display:flex}.etl-page{width:100%;min-height:0;padding-top:var(--space-4);flex-direction:column;flex:1;padding-bottom:0;display:flex}.etl-head{gap:var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-line);flex-direction:column;flex:none;display:flex}.etl-head .family-switcher{margin-bottom:0}.etl-head .chips{padding-bottom:var(--space-1)}.etl-scroll{overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;overflow-anchor:none;min-height:0;margin:0 calc(-1 * var(--space-4));padding:var(--space-3) var(--space-4) calc(7rem + var(--safe-bottom));flex:1;position:relative;overflow:hidden auto}.etl-scroll:focus-visible{outline:3px solid var(--color-focus);outline-offset:-3px}.etl-history{gap:var(--space-2);padding-bottom:var(--space-4);flex-direction:column;display:flex}.etl-earlier{align-self:center}.etl-now{box-sizing:border-box}.etl-divider{margin:0 0 var(--space-2);color:#5b45c9;letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:.6rem;font-size:.75rem;font-weight:800;display:flex}.etl-divider:before,.etl-divider:after{content:"";background:#7c5cff4d;border-radius:2px;flex:1;height:2px}.etl-divider--muted{color:var(--color-text-muted)}.etl-divider--muted:before,.etl-divider--muted:after{background:var(--color-line)}.etl-days,.etl-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.etl-list{gap:.6rem}.etl-day{justify-content:space-between;align-items:center;gap:var(--space-2);margin:0 0 .4rem;display:flex}.etl-day__label{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);flex-wrap:wrap;align-items:baseline;gap:0 .5rem;margin:0;font-size:.8rem;font-weight:700;display:flex}.etl-day__rel{color:var(--color-navy)}.etl-day--today .etl-day__rel{color:#5b45c9}.etl-day__add{color:#5b45c9;background:#efeaff;border-radius:50%;flex:none;place-items:center;width:2rem;height:2rem;font-size:1.25rem;font-weight:600;line-height:1;text-decoration:none;display:grid}.etl-day__add:hover{color:#4b3bb8;background:#e2daff}.etl-item{--member:#9aa3b5;background:var(--member-stripe,linear-gradient(var(--member), var(--member))) left top / 6px 100% no-repeat border-box, var(--color-surface);border:1px solid var(--color-border);min-width:0;color:var(--color-navy);box-shadow:var(--shadow-card);border-left:6px solid #0000;border-radius:1rem;align-items:stretch;gap:.75rem;padding:.75rem;text-decoration:none;transition:box-shadow .15s,transform .15s;display:flex}.etl-item:hover{color:var(--color-navy);box-shadow:var(--shadow-float);transform:translateY(-1px)}.etl-item:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.etl-item--read-only,.etl-item--read-only:hover{cursor:default;box-shadow:var(--shadow-card);transform:none}.etl-item--past>*{opacity:.62}.etl-item--now{box-shadow:0 0 0 2px #7c5cff2e, var(--shadow-card);border-color:#7c5cff #7c5cff #7c5cff #0000}.etl-date{background:color-mix(in srgb, var(--member) 18%, white);width:3.25rem;color:var(--color-navy);border-radius:.75rem;flex-direction:column;flex:none;justify-content:center;align-items:center;padding:.35rem 0;line-height:1.1;display:flex}.etl-date b{font-size:1.25rem}.etl-date small{text-transform:uppercase;font-size:.68rem;font-weight:700}.etl-body{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:flex}.etl-who{letter-spacing:.1em;text-transform:uppercase;min-width:0;color:var(--color-navy-soft);align-items:center;gap:.4rem;font-size:.72rem;font-weight:800;display:flex}.etl-avatars{flex:none;padding-left:2px;display:inline-flex}.etl-avatar{box-shadow:0 0 0 2px var(--member);flex:none}.etl-avatars .etl-avatar+.etl-avatar{margin-left:-5px}.etl-badge{color:#fff;letter-spacing:.08em;background:#7c5cff;border-radius:999px;flex:none;padding:.05rem .45rem;font-size:.65rem}.etl-title{overflow-wrap:anywhere;font-size:1rem;font-weight:700}.etl-title-row{align-items:center;gap:.45rem;min-width:0;display:flex}.etl-category-icon{flex:none}.etl-category{color:#6a4ae8;font-weight:700}.etl-meta{color:var(--color-text-muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:.15rem .75rem;font-size:.82rem;display:flex}.etl-meta span{align-items:center;gap:.25rem;display:inline-flex}.etl-place{min-width:0;max-width:100%}.etl-notes{white-space:pre-wrap;overflow-wrap:anywhere;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:.15rem;font-size:.88rem;display:-webkit-box;overflow:hidden}.etl-chevron{color:#a995ff;flex:none;align-self:center;font-size:1.4rem}.etl-empty,.etl-end{text-align:center;color:var(--color-text-muted)}.etl-empty{padding:var(--space-4);background:var(--color-surface);border:1px dashed #c9bff2;border-radius:1rem}.etl-empty .sleeping-cat{width:5.5rem;margin-bottom:var(--space-2)}.etl-empty .btn{margin-top:var(--space-2)}.etl-end{padding:var(--space-6) var(--space-4) 0}.etl-end .sleeping-cat{opacity:.25;width:4.5rem}.etl-end p{margin:0;font-size:.88rem}.avatar-chooser{gap:var(--space-3);display:grid}.avatar-chooser__grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(4.5rem,1fr));display:grid}.avatar-picker__current{align-items:center;gap:var(--space-3);display:flex}.profile-picture__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.avatar-choice{aspect-ratio:1;cursor:pointer;background:0 0;border:0;border-radius:50%;padding:0;transition:transform .12s,box-shadow .12s;position:relative;overflow:hidden;box-shadow:0 0 0 2px #0000}.avatar-choice img{object-fit:cover;width:100%;height:100%;display:block}.avatar-choice:hover:not(:disabled){transform:scale(1.06)}.avatar-choice:focus-visible{outline-offset:2px;outline:3px solid #7c5cff}.avatar-choice--selected{box-shadow:0 0 0 3px #fff,0 0 0 5px #7c5cff}.avatar-choice:disabled{cursor:default;opacity:.7}.avatar-choice--selected:disabled{opacity:1}@media (prefers-reduced-motion:reduce){.avatar-choice{transition:none}}.prose{line-height:1.6}.prose h2{margin-top:var(--space-5)}.prose ul,.prose ol{margin:0 0 var(--space-4);padding-left:1.4em}.prose li+li{margin-top:var(--space-2)}.prose-toc{background:var(--color-cream-deep);border-radius:var(--radius-md,12px);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4)}.prose-toc ol{margin:0}.prose-toc li+li{margin-top:var(--space-1,4px)}.prose section{scroll-margin-top:72px}.prose-tip{border-left:3px solid var(--color-lilac);padding-left:var(--space-3)}.shell-bell{color:var(--shell-text);position:relative}.shell-bell__badge,.shell-link__count{color:#fff;text-align:center;background:#ff5a5f;border-radius:999px;min-width:1.25rem;height:1.25rem;padding:0 .3rem;font-size:.72rem;font-weight:700;line-height:1.25rem}.shell-bell__badge{position:absolute;top:.2rem;right:.1rem}.shell-link__count{margin-left:auto}.notify-prompt-wrap{max-width:var(--content-width);padding:var(--space-4) calc(var(--space-4) + var(--safe-right)) 0 calc(var(--space-4) + var(--safe-left));flex:none;width:100%;margin:0 auto}.notify-prompt .card__title{align-items:center;gap:var(--space-2);display:flex}.notify-prompt .actions{margin-top:var(--space-3)}.notify-list{margin:0;padding:0;list-style:none}.notify-item{gap:var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--color-line);align-items:flex-start;display:flex}.notify-item:first-child{border-top:0}.notify-item__dot{background:0 0;border-radius:50%;flex:none;width:.6rem;height:.6rem;margin-top:.45rem}.notify-item--unread .notify-item__dot{background:#ff5a5f}.notify-item--unread .notify-item__title{font-weight:700}.notify-item__text{flex:1;min-width:0}.notify-item__text p{margin:.15rem 0 0}.notify-head{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.etl-page--week{max-width:none;padding-top:var(--space-2)}.etl-page--week .etl-head{padding-bottom:var(--space-1)}.etl-page--week .add-entry{padding-right:calc(var(--space-4) + var(--safe-right));justify-content:flex-end}.etl-page--week .btn--fab{min-height:2.75rem;padding-inline:var(--space-4);font-size:.95rem}.wk{flex-direction:column;flex:1;min-height:0;display:flex}.wk-bar{align-items:center;gap:var(--space-2);padding:var(--space-1) 0;flex:none;display:flex}.wk-bar__range{color:var(--color-navy);font-variant-numeric:tabular-nums;margin:0;font-size:1rem;font-weight:800}.wk-bar__nav{color:#5b45c9;cursor:pointer;background:#efeaff;border:0;border-radius:50%;flex:none;place-items:center;width:2.25rem;height:2.25rem;font-size:1.4rem;font-weight:700;line-height:1;display:grid}.wk-bar__nav:hover{background:#e2daff}.wk-bar__nav:focus-visible,.wk-scroll:focus-visible,.wk-col__add:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.wk-bar__today{margin-left:var(--space-1)}.wk-bar__loading{color:var(--color-text-muted);margin-left:auto;font-size:.82rem}.wk-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;min-height:0;margin:0 calc(-1 * var(--space-2));padding:0 var(--space-2) calc(5rem + var(--safe-bottom));flex:1;overflow:hidden auto}.wk-grid{grid-template-columns:repeat(7,minmax(0,1fr));align-items:stretch;gap:.4rem;min-height:100%;display:grid}.wk-grid--from-next{animation:.18s ease-out wk-in-from-right}.wk-grid--from-previous{animation:.18s ease-out wk-in-from-left}@keyframes wk-in-from-right{0%{opacity:.4;transform:translate(2.5rem)}}@keyframes wk-in-from-left{0%{opacity:.4;transform:translate(-2.5rem)}}.wk-col{border-radius:.9rem;flex-direction:column;gap:.35rem;min-width:0;padding:0 .15rem .5rem;display:flex}.wk-col--today{background:#7c5cff12;box-shadow:inset 0 0 0 1.5px #7c5cff59}.wk-col__head{z-index:1;background:var(--color-cream);border-bottom:1px solid var(--color-line);justify-content:space-between;align-items:center;gap:.25rem;padding:.35rem .3rem;display:flex;position:sticky;top:0}.wk-col--today .wk-col__head{background:#f1ecfb;border-radius:.9rem .9rem 0 0}.wk-col__label{flex-direction:column;min-width:0;margin:0;line-height:1.15;display:flex}.wk-col__weekday{letter-spacing:.08em;text-transform:uppercase;color:var(--color-navy-soft);font-size:.72rem;font-weight:800}.wk-col__date{color:var(--color-navy);white-space:nowrap;font-size:.9rem;font-weight:800}.wk-col--today .wk-col__weekday,.wk-col--today .wk-col__date{color:#5b45c9}.wk-col--past .wk-col__label{opacity:.7}.wk-col__add{color:#5b45c9;background:#efeaff;border-radius:50%;flex:none;place-items:center;width:1.6rem;height:1.6rem;font-size:1.05rem;font-weight:600;line-height:1;text-decoration:none;display:grid}.wk-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.wk-empty{text-align:center;color:var(--color-text-muted);margin:.5rem 0 0;font-size:.78rem}.etl-item--week{background:var(--member-stripe,linear-gradient(var(--member), var(--member))) left top / 4px 100% no-repeat border-box, var(--color-surface);border-left-width:4px;border-radius:.7rem;gap:0;padding:.4rem .4rem .45rem}.etl-item--week .etl-body{gap:.15rem}.etl-item--week .etl-who{letter-spacing:.04em;gap:.25rem;font-size:.62rem}.etl-item--week .etl-badge{padding:0 .3rem;font-size:.58rem}.etl-item--week{position:relative}.etl-item--week .etl-title-row{font-size:.84rem;line-height:1.2;display:block}.etl-item--week .etl-title-row .etl-category-icon{position:absolute;top:.35rem;right:.35rem}.etl-item--week:has(.etl-category-icon) .etl-who{padding-right:1.35rem}.etl-item--week .etl-title{overflow-wrap:break-word;font-size:.84rem;line-height:1.2}.etl-item--week .etl-meta{flex-direction:column;gap:.1rem;font-size:.7rem}.etl-item--week .etl-meta svg{flex:none;width:11px;height:11px}@media (height<=30rem){.etl-page--week .etl-head{gap:var(--space-1)}.etl-page--week .chips{padding-bottom:0}.wk-bar{padding:.15rem 0}.wk-bar__nav{width:2rem;height:2rem}.etl-page--week .btn--fab{border-radius:50%;gap:0;width:3rem;min-height:3rem;padding:0;font-size:0}.etl-page--week .btn--fab .btn__plus{font-size:1.6rem}}@media (prefers-reduced-motion:reduce){.wk-grid--from-next,.wk-grid--from-previous{animation:none}}.shell--topbar-extra .shell-brand{flex:none}.shell-topbar__extra{flex:1;align-items:center;min-width:0;display:flex}.chips--dark{min-width:0;padding:0 var(--space-1);flex:1;gap:.4rem;margin:0}.chips--dark .chip{min-height:2.25rem;color:var(--shell-text);background:#ffffff0f;border-color:#ffffff38;gap:.4rem;padding:0 .75rem;font-size:.86rem}.chips--dark .chip:hover{background:#ffffff1f}.chips--dark .chip:focus-visible{outline:2px solid var(--shell-violet);outline-offset:2px}.chips--dark .chip .colour-dot{border-color:#ffffffb3}.chips--dark .chip[aria-pressed=true]{color:var(--shell-bg);background:#fff;border-color:#fff;box-shadow:0 0 0 2px #7c5cff73}.chips--dark .chip[aria-pressed=true] .colour-dot{border-color:var(--shell-bg)}@media (width<=60rem){.shell--topbar-extra .shell-user__name{display:none}.shell--topbar-extra .shell-user{padding-left:.2rem}.shell--topbar-extra .shell-brand__name{font-size:1.15rem}}@media (width<=56rem){.shell--topbar-extra .shell-brand__name{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.etl-head--empty{border-bottom:0;padding-bottom:0}.etl-item-wrap--homework{--member:#9aa3b5;background:var(--member-stripe,linear-gradient(var(--member), var(--member))) left top / 6px 100% no-repeat border-box, var(--color-surface);border:1px solid var(--color-border);min-width:0;box-shadow:var(--shadow-card);border-left:6px solid #0000;border-radius:1rem;flex-direction:column;transition:box-shadow .15s,transform .15s;display:flex}.etl-item-wrap--homework:has(>.etl-item:hover){box-shadow:var(--shadow-float);transform:translateY(-1px)}.etl-item-wrap--homework:has(>.etl-item--read-only:hover){box-shadow:var(--shadow-card);transform:none}.etl-item-wrap--homework.etl-item-wrap--now{box-shadow:0 0 0 2px #7c5cff2e, var(--shadow-card);border-color:#7c5cff #7c5cff #7c5cff #0000}.etl-item-wrap--homework>.etl-item,.etl-item-wrap--homework>.etl-item--now,.etl-item-wrap--homework>.etl-item:hover{box-shadow:none;background:0 0;border:0;border-radius:1rem;transform:none}.etl-item-wrap--homework>.etl-item:focus-visible{outline-offset:-3px}.etl-hw-status{white-space:nowrap;border:1.5px solid #0000;border-radius:999px;align-self:flex-start;align-items:center;gap:.35rem;margin-top:.4rem;padding:.25rem .7rem;font-size:.85rem;font-weight:700;line-height:1.15;display:inline-flex;box-shadow:0 1px 3px #17203324}.etl-hw-status svg{flex:none}.etl-item-wrap--past .etl-hw-status{opacity:.85}.etl-hw-status--not_done,.hw-status-picker__opt--not_done.is-on{color:#6f4b00;background:#fff4c7;border-color:#f5b301}.etl-hw-status--done,.hw-status-picker__opt--done.is-on{color:#1c4a9c;background:#e3edfd;border-color:#2f6fde}.etl-hw-status--submitted,.hw-status-picker__opt--submitted.is-on{color:#17643a;background:#def5e7;border-color:#1f9d55}.etl-item--hw-submitted .etl-title{-webkit-text-decoration:line-through #1f9d558c;text-decoration:line-through #1f9d558c;text-decoration-thickness:2px}.etl-item-wrap--homework.etl-item-wrap--week{background:var(--member-stripe,linear-gradient(var(--member), var(--member))) left top / 4px 100% no-repeat border-box, var(--color-surface);border-left-width:4px;border-radius:.7rem}.etl-item-wrap--week>.etl-item{border-radius:.7rem}.etl-hw-status--week{white-space:normal;gap:.25rem;margin-top:.25rem;padding:.12rem .4rem;font-size:.66rem}.hw-status-picker{border:0;margin:0;padding:0}.hw-status-picker__options{border:1px solid var(--color-border);background:#f1ede4;border-radius:999px;gap:.3rem;padding:.25rem;display:flex}.hw-status-picker__opt{min-width:0;min-height:2.6rem;color:var(--color-text-muted);white-space:nowrap;cursor:pointer;border:1.5px solid #0000;border-radius:999px;flex:1 1 0;justify-content:center;align-items:center;gap:.35rem;padding:.3rem .45rem;font-size:.9rem;font-weight:700;display:inline-flex;position:relative}.hw-status-picker__opt input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.hw-status-picker__opt svg{filter:grayscale();opacity:.45;flex:none}.hw-status-picker__opt.is-on{box-shadow:0 1px 3px #17203324}.hw-status-picker__opt.is-on svg{filter:none;opacity:1}.hw-status-picker__opt:has(input:focus-visible){outline:3px solid var(--color-focus);outline-offset:1px}.homework-when{border:0;min-width:0;margin:0;padding:0}.homework-add-subject{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.homework-add-subject .input{flex:10rem}.link-button{color:#5b45c9;font:inherit;cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0;text-decoration:underline}.chip--type{gap:.4rem;padding-left:.3rem}.chip--type[aria-pressed=true] .category-icon{box-shadow:0 0 0 2px var(--color-cream);border-radius:6px}.etl-head .chips+.chips--types{padding-top:0}.topbar-filters{scrollbar-width:none;min-width:0;padding:.2rem var(--space-1);flex:1;align-items:center;gap:.4rem;display:flex;overflow-x:auto}.topbar-filters::-webkit-scrollbar{display:none}.topbar-filters .chips--dark{flex:none;padding:0;overflow:visible}.topbar-filters .chips--dark+.chips--dark{border-left:1px solid #ffffff38;padding-left:.5rem}.chips--dark .chip--icon-only{justify-content:center;min-width:2.25rem;padding:0 .3rem}.chips--dark .chip--type:not([aria-pressed=true]) .category-icon{opacity:.8}.chips--dark .chip--type[aria-pressed=true] .category-icon{box-shadow:none}.type-picker{border:0;min-width:0;margin:0;padding:0}.type-grid{margin-top:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem .5rem;display:grid}.type-tile{cursor:pointer;text-align:center;-webkit-tap-highlight-color:transparent;border:2px solid #0000;border-radius:16px;flex-direction:column;align-items:center;gap:.35rem;padding:.5rem .15rem;display:flex;position:relative}.type-tile input{opacity:0;pointer-events:none;position:absolute}.type-tile .category-icon{filter:drop-shadow(0 2px 4px #7c5cff40)}.type-tile__label{color:#3a4566;font-size:.74rem;font-weight:600;line-height:1.15}.type-tile:hover{background:#7c5cff0f}.type-tile:has(input:checked){background:#f1edff;border-color:#7c5cff}.type-tile:has(input:checked) .type-tile__label{color:var(--color-navy)}.type-tile:has(input:focus-visible){outline:3px solid var(--color-focus);outline-offset:2px}.type-tile:has(input:disabled){cursor:not-allowed;opacity:.4}.type-tile:has(input:checked:disabled){opacity:1}.type-tile__tick{background:var(--color-navy);border:2px solid var(--color-surface);border-radius:50%;place-items:center;width:22px;height:22px;display:none;position:absolute;top:-8px;right:-6px}.type-tile:has(input:checked) .type-tile__tick{display:grid}.type-none{margin-top:var(--space-2)}.type-none label{color:var(--color-text-muted);cursor:pointer;border:1px dashed var(--color-border);border-radius:999px;align-items:center;gap:.4rem;padding:.35rem .7rem;font-size:.88rem;font-weight:600;display:inline-flex}.type-none label:has(input:checked){color:var(--color-navy);background:#f1edff;border-style:solid;border-color:#7c5cff}.type-none input{opacity:0;pointer-events:none;position:absolute}.type-none label:has(input:focus-visible){outline:3px solid var(--color-focus);outline-offset:2px}.type-picked{color:#4b3fa8;background:#f1edff;border:1px dashed #b9a8ff;border-radius:12px;align-items:center;gap:.5rem;margin:0;padding:.55rem .75rem;font-size:.86rem;display:flex}.type-picked strong{color:#5b3fe0}.type-locked{justify-content:space-between;align-items:flex-start;gap:.75rem;margin:0;display:flex}.type-locked__type{flex:none;display:flex}.assignees{flex-wrap:wrap;justify-content:flex-end;gap:.35rem .6rem;min-width:0;margin:0;padding:0;list-style:none;display:flex}.assignee{min-width:0;color:var(--color-navy);align-items:center;gap:.4rem;font-size:.92rem;font-weight:600;display:inline-flex}.assignee__avatar{box-shadow:0 0 0 2px var(--member);flex:none}.assignee__name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.type-locked__chip{color:var(--color-navy);background:#f1edff;border-radius:999px;align-items:center;gap:.5rem;padding:.25rem .8rem .25rem .3rem;font-size:.92rem;font-weight:600;display:inline-flex}.type-locked__chip--none{border:1px dashed var(--color-border);color:var(--color-text-muted);background:0 0;padding:.35rem .8rem}.type-prompt{margin:0;font-size:.9rem}.entry-details{grid-template-columns:max-content 1fr;gap:6px 14px;margin:0;display:grid}.entry-details dt{color:var(--color-text-muted);font-weight:600}.entry-details dd{overflow-wrap:anywhere;margin:0}.recur-options{gap:var(--space-2);flex-direction:column;display:flex}.recur-line{align-items:center;gap:var(--space-2);min-height:var(--tap-size);flex-wrap:wrap;display:flex}.recur-num{flex:none;width:5.5rem}.recur-select{flex:none;width:auto;min-width:6.5rem}.recur-summary{padding:var(--space-3) var(--space-4);background:var(--color-cream-deep);border-radius:var(--radius-sm);margin:0}.series-choice{gap:var(--space-3);flex-direction:column;display:flex}a.btn{text-decoration:none}.etl-badge--repeats{background:var(--color-navy);letter-spacing:.04em;text-transform:uppercase}.reminder-page{z-index:1000;background:var(--color-cream);width:100%;max-width:none;height:100dvh;max-height:none;color:var(--color-navy);border:0;margin:0;padding:0;position:fixed;inset:0;overflow-y:auto}.reminder-page__content{max-width:36rem;padding:24px max(16px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom));flex-direction:column;gap:16px;margin:auto;display:flex}.reminder-page h1{text-align:center;margin:0}#reminder-title:focus{outline:none}.reminder-option{cursor:pointer;align-items:center;gap:12px;min-height:44px;display:flex}.reminder-option input{accent-color:#7c5cff;flex:none;width:20px;height:20px}.reminder-page fieldset{border:0;margin:0;padding:0}.reminder-page__content>.btn:last-child{align-self:flex-end}.reminder-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 8px;margin:12px 0 16px;display:grid}.reminder-tile,.reminder-everyone{cursor:pointer;border:2px solid #0000;border-radius:16px;transition:background-color .15s,border-color .15s;position:relative}.reminder-tile{flex-direction:column;align-items:center;gap:8px;min-width:0;padding:12px 4px;display:flex}.reminder-tile input,.reminder-everyone input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}:is(.reminder-tile:has(input:checked),.reminder-everyone:has(input:checked)){background:#eee5fc;border-color:#7950c8}:is(.reminder-tile:has(input:focus-visible),.reminder-everyone:has(input:focus-visible)){outline-offset:3px;outline:3px solid #7950c8}.reminder-tile__visual{justify-content:center;align-items:center;width:64px;height:64px;display:flex}.reminder-tile__label{text-align:center;overflow-wrap:anywhere;line-height:1.3}.reminder-time-icon{color:#7950c8}.reminder-time-icon svg{width:48px;height:48px}.reminder-page .member-picker__grid .member-tile:has(input:checked){background:#f1edff}.reminder-page .reminder-everyone:has(input:checked){background:#f1edff}.reminder-page .member-tile__cat{flex-shrink:0;width:25px;height:28px}.reminder-grid--times{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.reminder-grid--times .reminder-tile{border-radius:10px;gap:6px;padding:8px 1px}.reminder-grid--times .reminder-tile__visual{width:36px;height:36px}.reminder-grid--times svg{width:32px;height:32px}.reminder-grid--times .reminder-tile__label{overflow-wrap:normal;font-size:.72rem;line-height:1.2}.reminder-nag{white-space:normal;min-height:64px;font-size:1.25rem;font-weight:700;line-height:1.2}.reminder-nag.is-on{color:#fff;background:#7c5cff;border-color:#7c5cff}.reminder-confirm{z-index:2;padding:16px 16px max(16px, env(safe-area-inset-bottom));background:var(--color-cream);border-top:2px solid var(--color-navy);flex-direction:column;gap:12px;margin:0 -16px -24px;display:flex;position:sticky;bottom:0;box-shadow:0 -8px 24px #1f2a441f}.reminder-confirm h2,.reminder-confirm p{margin:0}.reminder-confirm__intervals{font-weight:700}.nag-overlay{z-index:2000;background:#1f2a44b8;flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:24px;display:flex;position:fixed;inset:0;overflow-y:auto}.nag-bubble{background:var(--color-cream);width:min(18rem,88vw);min-height:min(18rem,88vw);color:var(--color-navy);text-align:center;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:1.75rem;display:flex;box-shadow:0 12px 40px #00000047}.nag-bubble h2,.nag-bubble p{margin:0}.nag-bubble h2{font-size:1.2rem}.nag-bubble .btn{border-radius:999px;min-height:48px}.auth-layout{isolation:isolate;position:relative;overflow:hidden}.auth-layout>.auth-layout__inner{z-index:1;position:relative}.shell{isolation:isolate}.winter{pointer-events:none;-webkit-user-select:none;user-select:none;z-index:-1;position:absolute;inset:0;overflow:hidden}.winter svg{display:block;position:absolute}.winter--page,.winter--snowman-overlay{top:calc(env(safe-area-inset-top,0px) + var(--tap-size,44px) + 1rem);position:fixed}.winter-flake{color:#b2a1df;opacity:.55;width:36px;height:36px}.winter-flake--left{top:14px;left:2px;transform:rotate(12deg)}.winter-flake--right{width:24px;height:24px;top:28px;right:2px}.winter-frost{position:absolute;inset:0;box-shadow:inset 5px 0 12px -9px #c8d9ed,inset -5px 0 12px -9px #c8d9ed}.winter-snowman{width:84px;height:auto;left:max(4px, env(safe-area-inset-left,0px));bottom:max(4px, env(safe-area-inset-bottom,0px))}.winter--page .winter-snowman,.winter--snowman-overlay .winter-snowman{bottom:calc(108px + env(safe-area-inset-bottom,0px))}html:is(.tl-mode,:has(.dashboard)) .winter--snowman-overlay{z-index:4;--winter-feedback-right:calc(var(--space-4) + var(--safe-left) + min(84px, calc(50vw - 66px - var(--space-4) - 6px - var(--safe-left))));--winter-add-left:calc(50vw - 66px)}html.tl-mode:has(.etl-page--week) .winter--snowman-overlay{--winter-add-left:calc(100vw - var(--space-4) - var(--safe-right) - 132px)}html:is(.tl-mode,:has(.dashboard)) .winter--snowman-overlay .winter-snowman{left:calc((var(--winter-feedback-right) + var(--winter-add-left)) / 2);bottom:var(--safe-bottom);width:clamp(28px,40vw - 100px,48px);transform:translate(-50%)}@media (orientation:landscape){html:has(.dashboard) .winter--snowman-overlay{--winter-add-left:calc(100vw - var(--space-4) - var(--safe-right) - 132px)}}.winter-ground{background:radial-gradient(at 15% 120%,#edf4fc 0 45%,#0000 48%),radial-gradient(at 85% 140%,#f6f9ff 0 50%,#0000 52%);width:100%;height:12px;position:absolute;bottom:0}.shell-topbar{isolation:isolate}.winter--shell{z-index:0}.shell-topbar>:not(.winter){z-index:1;position:relative}.winter--shell .winter-flake{color:#e4d8fc;opacity:.55;width:20px;height:20px;top:7px}.winter--shell .winter-flake--left{left:1px}.winter--shell .winter-flake--right{width:14px;height:14px;top:18px;right:1px}.winter--shell .winter-flake--extra-one{opacity:.35;width:11px;height:11px;top:4px;left:22%}.winter--shell .winter-flake--extra-two{opacity:.4;width:14px;height:14px;top:auto;bottom:5px;left:43%}.winter--shell .winter-flake--extra-three{opacity:.35;width:12px;height:12px;top:5px;right:29%}.winter--shell .winter-flake--extra-four{opacity:.4;width:10px;height:10px;top:auto;bottom:4px;right:12%}.winter-brand-mark{color:#d4c4f2;opacity:.8;flex:none;width:12px;height:12px;margin-left:3px;position:static}@media (width<=480px){.winter-snowman{width:64px}.winter--page .winter-flake{opacity:.35;width:26px;height:26px}}@media (orientation:landscape) and (height<=500px){.winter-snowman{opacity:.8;width:45px;bottom:2px}.winter--page .winter-flake{opacity:.25;width:18px;height:18px}}@media print{.winter,.winter-brand-mark{display:none}}.feedback-cta.btn{--feedback-size:min(84px, calc(50vw - 66px - var(--space-4) - 6px - var(--safe-left)));z-index:6;left:calc(var(--space-4) + var(--safe-left));bottom:calc(var(--space-4) + var(--safe-bottom));width:var(--feedback-size);height:var(--feedback-size);border:3px solid var(--color-lilac);background:var(--color-navy);min-width:0;min-height:0;color:var(--color-lilac);box-shadow:var(--shadow-float);text-align:center;white-space:normal;border-radius:50%;justify-content:center;align-items:center;margin:0;padding:6px;font-size:13px;font-weight:700;line-height:1.15;text-decoration:none;display:flex;position:fixed}.feedback-cta.btn:hover{background:var(--color-navy-soft)}@media (width<=359px){.feedback-cta.btn{padding:4px;font-size:11.5px}}.feedback-cta.btn:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}.feedback-page{max-width:40rem}.feedback-card{gap:var(--space-4);flex-direction:column;display:flex}.feedback-intro{margin:0;font-size:1.05rem;line-height:1.5}.feedback-thumbs{gap:var(--space-4);border:0;justify-content:center;margin:0;padding:0;display:flex}.feedback-thumb{border:3px solid var(--color-border);background:var(--color-surface);cursor:pointer;border-radius:50%;place-items:center;width:88px;height:88px;font-size:2.6rem;line-height:1;transition:border-color .15s,background-color .15s,transform .15s;display:grid}.feedback-thumb[aria-pressed=true]{border-color:var(--color-navy);background:var(--color-lilac);transform:scale(1.06)}.feedback-thumb:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.feedback-text textarea{box-sizing:border-box;width:100%}.feedback-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.feedback-actions .btn{margin-top:0}.btn--primary:disabled{cursor:not-allowed}.feedback-sent__title{margin:0;font-size:1.1rem;font-weight:700}.admin-feedback{margin-top:var(--space-5)}.admin-feedback__head{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.admin-feedback__head .btn{margin-top:0}.admin-feedback__group{margin:var(--space-4) 0 var(--space-2);font-size:1.05rem}.admin-feedback__group--unread{border-left:5px solid #8055d8;padding-left:12px}.feedback-item__thumb{font-size:1.7rem}.feedback-item__message{white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0}.admin{background:var(--color-cream);color:var(--color-navy)}.admin-topbar{gap:var(--space-3);padding-left:calc(var(--safe-left) + .75rem)}.admin-badge{color:var(--shell-violet);letter-spacing:.06em;text-transform:uppercase;border:1px solid #a995ff8c;border-radius:999px;align-self:center;margin-left:.35rem;padding:.12rem .5rem;font-size:.72rem;font-weight:600}.admin-topbar__link{min-height:var(--tap-size);color:var(--shell-muted);font:inherit;cursor:pointer;background:0 0;border:0;flex:none;align-items:center;padding:0 .5rem;font-size:.9rem;text-decoration:none;display:inline-flex}.admin-topbar__link:hover,.admin-topbar__link:focus-visible{color:var(--shell-text)}.admin-content{max-width:64rem;padding:var(--space-5) calc(var(--safe-right) + var(--space-4)) calc(var(--safe-bottom) + var(--space-6)) calc(var(--safe-left) + var(--space-4));gap:var(--space-4);margin:0 auto;display:grid}.admin-head{justify-content:space-between;align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.admin-head h1{letter-spacing:-.02em;margin:0;font-size:1.5rem}.admin-head__meta{color:var(--color-text-muted);margin:.2rem 0 0;font-size:.85rem}.admin-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));display:grid}.admin-stat,.admin-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.admin-stat{padding:var(--space-3) var(--space-4)}.admin-stat__label{color:var(--color-text-muted);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:600}.admin-stat__value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:.15rem 0 0;font-size:1.9rem;font-weight:600;line-height:1.1}.admin-stat__detail{color:var(--color-text-muted);margin:.2rem 0 0;font-size:.8rem}.admin-columns{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));display:grid}.admin-card{padding:var(--space-4);min-width:0}.admin-card h2{margin:0 0 var(--space-3);font-size:1.05rem}.admin-card__hint{margin:calc(-1 * var(--space-2)) 0 var(--space-3);color:var(--color-text-muted);font-size:.8rem}.admin-empty{color:var(--color-text-muted);margin:0}.admin-split{background:var(--color-lilac);border-radius:999px;height:.75rem;overflow:hidden}.admin-split__upcoming{background:#7c5cff;height:100%;display:block}.admin-split__legend{gap:var(--space-5);margin:var(--space-3) 0 0;display:flex}.admin-split__legend dt{color:var(--color-text-muted);align-items:center;gap:.35rem;font-size:.85rem;display:flex}.admin-split__legend dd{font-variant-numeric:tabular-nums;margin:.1rem 0 0;font-size:1.35rem;font-weight:600}.admin-dot{border-radius:50%;width:.6rem;height:.6rem}.admin-dot--upcoming{background:#7c5cff}.admin-dot--past{background:var(--color-lilac)}.admin-rank{gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.admin-rank li{align-items:center;gap:var(--space-3);grid-template-columns:minmax(6rem,11rem) 1fr 2.75rem;font-size:.92rem;display:grid}.admin-rank__name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-rank__count{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.admin-bar{background:var(--color-cream-deep);border-radius:999px;height:.5rem;display:block;overflow:hidden}.admin-bar__fill{border-radius:inherit;background:linear-gradient(90deg,#7c5cff,#a995ff);height:100%;display:block}.admin-card--table{padding-bottom:var(--space-2)}.admin-table-wrap{margin:0 calc(-1 * var(--space-4));padding:0 var(--space-4);overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.9rem}.admin-table th,.admin-table td{border-bottom:1px solid var(--color-line);text-align:left;white-space:nowrap;padding:.55rem .6rem}.admin-table thead th{color:var(--color-text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.75rem;font-weight:600}.admin-table tbody th{white-space:normal;min-width:8rem;font-weight:600}.admin-table .num{text-align:right;font-variant-numeric:tabular-nums}.admin-table tbody tr:last-child>*{border-bottom:0}.admin-table tr.is-inactive{color:var(--color-text-muted)}@media (width<=30rem){.admin-badge{display:none}.admin-rank li{grid-template-columns:minmax(5rem,8rem) 1fr 2.25rem}}.home-actions{display:contents}.home-actions .add-entry{justify-content:center!important;padding-inline:0!important}.home-actions .add-entry .btn--cat{pointer-events:auto;gap:3px;padding:6px 6px 12px;font-size:12px;box-shadow:0 2px 4px #1f2a441a,0 10px 24px #1f2a4424;width:96px!important;min-width:96px!important;height:96px!important;min-height:96px!important}.home-actions .add-entry .add-entry__cat{width:36px;height:42px}.home-actions .feedback-cta.btn{--feedback-size:64px;font-size:11px}.meals-cta.btn{right:calc(var(--space-4) + var(--safe-right));bottom:calc(var(--space-4) + var(--safe-bottom));z-index:6;border:3px solid var(--color-lilac);background:var(--color-navy);width:64px;height:64px;min-height:64px;color:var(--color-lilac);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px;font-size:11px;line-height:1.1;text-decoration:none;display:flex;position:fixed;box-shadow:0 2px 4px #1f2a441a,0 10px 24px #1f2a4424}.meals-cta:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}html:has(.home-actions):is(.tl-mode,:has(.dashboard)) .winter--snowman-overlay{--winter-feedback-right:calc(var(--space-4) + var(--safe-left) + 64px);--winter-add-left:calc(50vw - 48px)}html:has(.home-actions):is(.tl-mode,:has(.dashboard)) .winter-snowman{width:clamp(24px,30vw - 68px,48px)}.calendar-page .month-content{padding-bottom:calc(128px + var(--safe-bottom))}.page.dashboard:has(.home-actions){padding-bottom:calc(144px + var(--safe-bottom))}@media (orientation:landscape) and (height<=550px){html .home-actions .feedback-cta.btn{--feedback-size:48px;left:auto;right:calc(var(--space-4) + var(--safe-right) + 136px);font-size:9px}.home-actions .add-entry{padding-right:calc(var(--space-4) + var(--safe-right) + 56px)!important;justify-content:flex-end!important}.home-actions .add-entry .btn--cat{gap:2px;padding:4px 4px 8px;font-size:10px;width:72px!important;min-width:72px!important;height:72px!important;min-height:72px!important}.home-actions .add-entry .add-entry__cat{width:28px;height:32px}.home-actions .meals-cta{width:48px;height:48px;min-height:48px;font-size:9px}.home-actions .meals-cta svg{width:23px;height:23px}.calendar-page .month-content{padding-inline:8px 208px;margin-bottom:0;padding-bottom:8px}.etl-page--week .wk-scroll{padding-bottom:calc(96px + var(--safe-bottom))}html:has(.home-actions):is(.tl-mode,:has(.dashboard)) .winter--snowman-overlay{--winter-feedback-right:calc(100vw - var(--space-4) - var(--safe-right) - 136px);--winter-add-left:calc(100vw - var(--space-4) - var(--safe-right) - 128px)}html:has(.home-actions):is(.tl-mode,:has(.dashboard)) .winter-snowman{width:24px}}.meal-page{width:100%;max-width:900px;padding-top:4px;padding-bottom:calc(24px + var(--safe-bottom));--meal-purple:#7c4dff;--meal-purple-deep:#6127d9}.meal-back{color:var(--color-text-muted);font:inherit;cursor:pointer;background:0 0;border:0;min-height:28px;padding:3px 0;font-size:13px;text-decoration:underline}.meal-heading{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 10px;margin:2px 0 12px;display:grid}.meal-heading h1{letter-spacing:-.6px;align-items:center;gap:8px;margin:0;font-size:clamp(21px,3.6vw,30px);line-height:1.2;display:flex}.meal-heading-icon{color:#fff;background:linear-gradient(145deg, #a177ff, var(--meal-purple-deep));border-radius:50%;flex:none;place-items:center;width:39px;height:39px;display:grid;box-shadow:0 3px 8px #7c4dff22}.meal-library-button.btn{border:1.5px solid var(--meal-purple);min-height:40px;color:var(--meal-purple-deep);background:var(--color-surface);white-space:nowrap;align-items:center;gap:6px;padding:7px 12px;font-size:13px;display:flex;box-shadow:0 2px 5px #7c4dff12}.meal-library-button svg{width:18px;height:18px}.meal-week-nav{grid-template-columns:44px minmax(0,1fr) 44px auto;align-items:center;gap:6px;margin-bottom:14px;display:grid}.meal-arrow{width:44px;min-height:44px;color:var(--meal-purple-deep);cursor:pointer;background:#eee3fd;border:0;border-radius:50%;place-items:center;font-size:27px;display:grid}.meal-week-label{text-align:center;background:#eadefa;border-radius:24px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:8px 10px;font-size:14px;line-height:1.25;display:flex;position:relative}.meal-week-label svg{flex:none;width:19px;height:19px}.meal-week-label input{opacity:0;cursor:pointer;border:0;width:100%;height:100%;position:absolute;inset:0}.meal-week-label:focus-within{outline:3px solid var(--color-focus);outline-offset:2px}.meal-this-week.btn{border:1.5px solid var(--color-navy);background:var(--color-surface);white-space:nowrap;min-height:40px;padding:6px 10px;font-size:13px}.meal-days{border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);background:#fffdf9d9;padding:8px}.meal-day{--day-accent:var(--color-border);border-bottom:1px solid var(--color-line);grid-template-columns:52px minmax(0,1fr) 100px 44px;align-items:center;gap:8px;min-width:0;padding:6px 3px;display:grid;position:relative}.meal-day:last-child{border-bottom:0}.meal-day:focus-within{outline:1.5px solid var(--meal-purple);outline-offset:0;border-radius:13px}.meal-date{border-left:5px solid var(--day-accent);background:var(--day-fill,#efede8);text-align:center;border-radius:11px;flex-direction:column;justify-content:center;align-self:stretch;align-items:center;min-height:48px;padding:5px 3px;font-size:13px;line-height:1.25;display:flex}.meal-date strong{font-size:15px}.meal-choice{background:linear-gradient(130deg,#f5f0fb,#ede4f6);border-radius:14px;align-self:stretch;align-items:center;gap:9px;min-width:0;padding:10px 12px;display:flex;position:relative}.meal-choice>svg{flex:none;width:24px;height:24px}.meal-choice-label{overflow-wrap:anywhere;min-width:0;font-size:17px;font-weight:750;line-height:1.3}.meal-choice.is-empty .meal-choice-label{color:var(--color-text-muted);font-weight:550}.meal-choice select{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.meal-choice select:disabled{cursor:default}.meal-confirm{width:100%;min-height:44px;color:var(--color-navy);font:inherit;cursor:pointer;background:linear-gradient(#f3f0f5,#eae5ed);border:0;border-radius:24px;justify-content:center;align-items:center;gap:5px;padding:6px;font-size:13px;font-weight:700;display:flex}.meal-confirm svg{flex:none;width:18px;height:18px}.meal-confirm.is-confirmed{color:var(--color-success-text);background:var(--color-success-bg)}.meal-confirm.is-confirmed svg{fill:#3d8a29;color:#fff}.meal-confirm:disabled{opacity:.45;cursor:default}.meal-cook-button{width:44px;height:44px;color:var(--meal-purple-deep);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:4px;font-size:25px;font-weight:750;display:grid}.meal-cook-button>span:not(.avatar){border:1px solid var(--color-border);background:var(--color-surface);border-radius:50%;place-items:center;width:34px;height:34px;display:grid}.meal-cook-button .avatar{flex:none}.meal-cook-button:focus-visible,.meal-cook-person:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.meal-day>.meal-inline-editor{grid-column:1/-1}.meal-toolbar{grid-template-columns:1fr 1fr;gap:14px;margin:18px 5px 10px;display:grid}.meal-toolbar .btn{justify-content:center;align-items:center;gap:10px;min-height:62px;padding:10px 15px;font-size:19px;line-height:1.2;display:flex}.meal-toolbar small{margin-top:2px;font-size:12px;font-weight:500;display:block}.meal-toolbar svg{flex:none;width:28px;height:28px}.meal-randomise.btn{border:1.5px solid var(--meal-purple);color:var(--meal-purple-deep);background:linear-gradient(120deg,#fffdf9,#eee3ff)}.meal-confirm-all.btn{border:1.5px solid var(--meal-purple);color:#fff;background:linear-gradient(140deg,#9761ff,#6724df)}.meal-confirm-all:disabled{opacity:.5}.meal-save-state{border-radius:18px;justify-content:center;align-items:center;gap:5px;width:fit-content;min-height:28px;margin:0 auto 14px;padding:3px 12px;font-size:13px;display:flex}.meal-save-state svg{width:16px;height:16px}.meal-save-state.is-saved{background:var(--color-success-bg);color:var(--color-success-text)}.meal-save-state.is-saving{color:var(--color-text-muted)}.meal-save-state.is-error{background:var(--color-error-bg);color:var(--color-error-text)}.meal-save-state button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;min-height:38px;font-weight:700;text-decoration:underline}.meal-save-error{border-radius:var(--radius-md);background:var(--color-error-bg);color:var(--color-error-text);padding:10px;font-size:14px}.meal-notice,.meal-empty{color:var(--color-text-muted);padding:8px 0;font-size:14px}.meal-empty{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.meal-empty p{margin:0}.meal-empty .btn{min-height:36px;padding:5px 10px;font-size:13px}.meal-inline-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}@media (width<=600px){.meal-page{padding-inline:12px}.meal-heading{column-gap:5px}.meal-heading h1{gap:6px;font-size:22px}.meal-heading-icon{width:33px;height:33px}.meal-library-button.btn{gap:4px;padding-inline:9px;font-size:12px}.meal-library-button svg{width:16px}.meal-day{grid-template-columns:44px minmax(0,1fr) 82px 44px;gap:4px;padding-inline:0}.meal-date{padding-inline:1px;font-size:12px}.meal-date strong{font-size:14px}.meal-choice{gap:5px;padding:8px}.meal-choice>svg{width:19px;height:19px}.meal-choice-label{font-size:15px}.meal-confirm{gap:3px;padding-inline:3px;font-size:11px}.meal-confirm svg{width:15px;height:15px}.meal-week-nav{grid-template-columns:44px minmax(0,1fr) 44px auto;gap:5px}.meal-arrow{width:44px}.meal-week-label{padding-inline:6px;font-size:13px}.meal-week-label svg{width:16px}.meal-this-week.btn{border:1.5px solid var(--color-navy);margin-top:1px;font-size:12px}.meal-toolbar{gap:10px;margin-inline:0}.meal-toolbar .btn{gap:6px;padding:9px;font-size:17px}.meal-toolbar svg{width:23px}}@media (width<=350px){.meal-heading h1{font-size:18px}.meal-heading-icon{width:28px;height:28px}.meal-day{grid-template-columns:40px minmax(0,1fr) 44px 44px}.meal-confirm span{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.meal-choice>svg{display:none}.meal-date,.meal-library-button.btn{font-size:11px}}.meal-dialog{color:var(--color-navy);background:#fffdf8;border:1px solid #d7cde4;border-radius:20px;width:min(560px,100vw - 28px);max-height:85dvh;padding:20px;overflow:auto;box-shadow:0 12px 50px #16182b40}.meal-dialog::backdrop{background:#191c3666}.meal-dialog h2{margin-top:0;font-size:23px}.meal-dialog>.btn{margin-top:12px}.meal-dialog .input{max-width:100%}.meal-library-list{margin:12px 0;padding:0;list-style:none}.meal-library-list>li{overflow-wrap:anywhere;border-bottom:1px solid #e3dce9;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:4px 0;display:grid}.meal-library-list .btn{min-height:44px;padding:6px 8px;font-size:13px}.meal-library-list .meal-inline-actions{flex-wrap:nowrap;gap:2px;margin:0}.meal-library-list>li>.meal-inline-editor,.meal-library-list>li>div:not(.meal-inline-actions){grid-column:1/-1}.meal-dialog-heading{border-bottom:2px solid var(--color-lilac);justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;padding-bottom:12px;display:flex}.meal-dialog-heading h2{color:var(--meal-purple-deep);overflow-wrap:anywhere;margin:6px 0 0}.meal-library-close{width:44px;height:44px;color:var(--meal-purple-deep);font:inherit;cursor:pointer;background:#f0e5ff;border:1px solid #d7bff8;border-radius:50%;flex:none;font-size:28px}.meal-dialog .meal-library-add.btn{color:#fff;background:linear-gradient(145deg, #9761ff, var(--meal-purple-deep));border:2px solid var(--color-lilac);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:76px;height:76px;min-height:76px;margin:12px auto 16px;padding:6px;font-size:14px;line-height:1.2;display:flex;box-shadow:0 4px 12px #7c4dff25}.meal-dialog:has(.meal-library-add){background:linear-gradient(155deg,#fffdf8 15%,#f6efff);border-color:#d9c5f2}.meal-library-list>li{border-bottom-color:#dfcfee;border-radius:10px;padding-inline:6px}.meal-library-list>li:nth-child(odd){background:#eee3fb80}.meal-library-list .btn--secondary{color:var(--meal-purple-deep);background:#f2e9fc;border-color:#a17ad5}.meal-library-list .btn--ghost{color:#7144a4}.meal-library-close:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.meal-page .btn:focus-visible,.meal-dialog .btn:focus-visible{outline-offset:2px;outline:3px solid #7453d4}@media (orientation:landscape) and (height<=550px){.meal-page{max-width:900px;padding-bottom:calc(24px + var(--safe-bottom))}}.meal-inline-editor{background:#f6f0ff;border-radius:12px;gap:12px;margin:12px 0;padding:16px;display:grid}.meal-inline-editor .field__label{margin:0}.meal-inline-editor .meal-inline-actions{gap:10px;margin:0}html:has(.meal-page) .winter--snowman-overlay{display:none}.meal-cook-page h1{margin:8px 0;font-size:28px}.meal-cook-date{color:var(--color-text-muted);margin:0 0 20px}.meal-cook-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 10px;margin:18px 0 24px;display:grid}.meal-cook-person{color:var(--color-navy);font:inherit;cursor:pointer;background:0 0;border:2px solid #0000;border-radius:18px;flex-direction:column;align-items:center;gap:12px;min-width:0;padding:14px 6px;font-weight:650;display:flex;position:relative}.meal-cook-person>span:not(.avatar){text-align:center;overflow-wrap:anywhere}.meal-cook-person.is-selected{border-color:var(--meal-purple);background:#f0e8fc}.meal-cook-person .meal-cook-check{color:var(--meal-purple-deep);position:absolute;top:8px;right:8px}.meal-cook-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:16px;display:flex}@media (width>=700px){.meal-cook-grid{grid-template-columns:repeat(4,minmax(0,1fr));max-width:650px;margin-inline:auto}}@media (width<=350px){.meal-cook-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.meal-support-actions{justify-content:flex-end;gap:8px;margin:8px 0 12px;display:flex}.meal-support-actions .btn{color:#6127d9;background:#f2e8ff;border-color:#bda0e1;align-items:center;gap:7px;min-height:44px;display:flex}.ingredient-field{flex-direction:column;gap:8px;min-width:0;font-size:14px;font-weight:600;display:flex}.ingredient-field .input{width:100%;min-width:0;min-height:44px}.ingredient-help{color:var(--color-text-muted);margin:6px 0;font-size:13px;font-weight:400;line-height:1.4;display:block}.ingredient-picker{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:12px;display:grid}.ingredient-picker>.btn,.ingredient-picker>.meal-inline-editor,.ingredient-picker>p{grid-column:1/-1}.ingredient-amount{grid-template-columns:minmax(80px,1fr) minmax(0,1fr);gap:12px;margin:12px 0;display:grid}.recipe-fields{border:1px solid #ddcbed;border-radius:12px;min-width:0;margin:8px 0;padding:12px}.recipe-fields legend{color:#6127d9;padding:0 6px;font-weight:650}.recipe-lines{margin-bottom:12px;overflow:auto}.recipe-line{grid-template-columns:minmax(0,1.3fr) 54px minmax(0,1fr) 36px;align-items:center;gap:4px;min-width:0;padding:4px 0;display:grid}.recipe-line>*{min-width:0}.recipe-line>strong{overflow-wrap:anywhere;font-size:13px;line-height:1.3}.recipe-line>.btn{width:36px;min-height:44px;padding:4px}.recipe-line .input{width:100%;min-width:0;min-height:44px;padding-inline:5px;font-size:16px}.recipe-line .ingredient-field>span{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.recipe-line--heading{color:#6127d9;font-size:13px;font-weight:650}.meal-name-edit{color:var(--color-navy);text-align:left;font:inherit;cursor:pointer;overflow-wrap:anywhere;background:0 0;border:0;border-radius:7px;min-height:44px;padding:8px 0}.meal-library-list>li>section.meal-inline-editor{grid-column:1/-1}.ingredients-page .meal-library-list>li>div:not(.meal-inline-actions){grid-column:auto}.ingredients-page h1{color:#6127d9;margin:12px 0 22px;font-size:28px}.ingredient-add{margin:16px auto;display:block}.shopping-page{max-width:1200px}.shopping-card{box-shadow:var(--shadow-card);background:linear-gradient(150deg,#fffdfb,#fcf9ff);border:1px solid #dcc8f2;border-radius:24px;margin:10px 0 24px;padding:clamp(14px,3vw,28px)}.shopping-heading{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:26px;display:flex}.shopping-heading-icon{color:#60249b;background:#ecdefd;border-radius:20px;flex:none;place-items:center;width:56px;height:56px;display:grid}.shopping-heading-icon svg{width:34px;height:34px}.shopping-heading h1{color:#512479;margin:0 0 8px;font-size:clamp(26px,4vw,36px)}.shopping-heading p{margin:0;font-size:14px}.shopping-heading p strong{color:#087f8c}.shopping-generated{color:#62517a;background:#efe6fb;border-radius:14px;padding:10px 14px;margin-left:auto!important}.shopping-table-scroll{overscroll-behavior-x:contain;border-radius:14px;max-width:100%;overflow:auto}.shopping-table{table-layout:fixed;border-collapse:separate;border-spacing:0;width:100%;min-width:830px;color:var(--color-navy);font-size:15px}.shopping-table th,.shopping-table td{text-align:left;vertical-align:middle;overflow-wrap:anywhere;border-bottom:1px solid #e6d9f4;padding:12px 10px}.shopping-table thead th{color:#512479;background:#ede1fa;padding-block:15px;font-size:16px}.shopping-table tbody th{min-width:0;font-size:16px}.shopping-table th:first-child,.shopping-table td:first-child{z-index:1;background:#fffdfa;width:48px;min-width:48px;position:sticky;left:0}.shopping-table th:nth-child(2){z-index:1;background:#fffdfa;position:sticky;left:48px;box-shadow:3px 0 5px #50307508}.shopping-table thead th:first-child,.shopping-table thead th:nth-child(2){z-index:2;background:#ede1fa}.shopping-buy{color:#512479;min-width:105px;min-height:44px;font:inherit;cursor:pointer;white-space:nowrap;background:#eee1fc;border:0;border-radius:11px;justify-content:space-between;align-items:center;gap:9px;padding:8px 10px;font-weight:700;display:inline-flex}.shopping-buy svg{flex:none;width:16px;height:16px}.shopping-delete{color:#745f88;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.shopping-delete svg{width:21px;height:21px}.shopping-review{color:#875200;margin-top:6px;font-size:12px;font-weight:600;line-height:1.3;text-decoration:none;display:block}.shopping-add{gap:10px;margin:24px 0;display:flex}.shopping-add-field.btn{text-align:left;color:#73508e;background:#fff;border:1px solid #ceb7e8;border-radius:13px;flex:1;justify-content:flex-start;min-height:48px;padding:10px 14px}.shopping-footer{border-top:1px solid #e6d9f4;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-top:24px;padding-top:20px;display:flex}.shopping-progress progress::-webkit-progress-bar{background:#e8dff1}.shopping-progress progress::-webkit-progress-value{background:#9d70df}.shopping-exports{flex-wrap:wrap;gap:9px;display:flex}.shopping-exports .btn{color:#612997;background:#fffdfc;border-color:#b18ad8;align-items:center;gap:6px;min-height:44px;padding:8px 12px;font-size:14px;display:flex}.shopping-secondary-actions{flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:16px;display:flex}.shopping-secondary-actions .btn{color:#715187;min-height:44px;font-size:13px}.shopping-removed{border-bottom:1px solid #e6d9f4;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;display:flex}.shopping-empty{color:var(--color-text-muted);padding:14px 0;font-size:14px}.shopping-print-only{display:none}.shopping-page button:focus-visible,.meal-name-edit:focus-visible,.shopping-table-scroll:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}@media (width<=600px){.shopping-heading{gap:10px;margin-bottom:20px}.shopping-heading-icon{border-radius:15px;width:44px;height:44px}.shopping-heading h1{font-size:26px}.shopping-heading p{font-size:13px}.shopping-generated{margin-left:0!important}.shopping-card{border-radius:20px;padding:12px}.shopping-table th,.shopping-table td{padding-inline:8px}.shopping-table{font-size:14px}.shopping-exports{justify-content:space-between;gap:6px;width:100%}.shopping-exports .btn{padding-inline:9px;font-size:13px}.shopping-exports svg{width:19px;height:19px}.ingredient-picker{grid-template-columns:minmax(0,1fr)}}@media print{html:has(.shopping-page){background:#fff!important}html:has(.shopping-page) body{background:#fff!important}:is(html:has(.shopping-page) .shell-topbar,html:has(.shopping-page) .shell-drawer,html:has(.shopping-page) .winter,html:has(.shopping-page) .winter--snowman-overlay,html:has(.shopping-page) .shopping-screen){display:none!important}.shopping-page{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}.shopping-print-only{page:famoodle-shopping;color:#000;font:11pt Arial,sans-serif;display:block}.shopping-print-brand{color:#512479;align-items:center;gap:10px;font-size:24pt;display:flex}.shopping-print-brand svg{width:30px;height:36px;display:block}.shopping-print-only table{border-collapse:collapse;width:100%;font-size:10pt}.shopping-print-only th,.shopping-print-only td{text-align:left;vertical-align:top;border-bottom:1px solid #aaa;padding:7px 5px}.shopping-print-only tr{break-inside:avoid}.shopping-print-only thead{display:table-header-group}.shopping-print-only h1{font-size:22pt}@page famoodle-shopping{size:A4 landscape;margin:12mm}html:has(.shopping-page) .shell-content{margin:0!important;padding:0!important}html:has(.shopping-page) dialog{display:none!important}}html:has(.shopping-page){overflow-x:clip}html:has(.shopping-page) body{overflow-x:clip}.shopping-table-scroll{isolation:isolate;contain:inline-size layout paint;position:relative}.shopping-table th:first-child,.shopping-table td:first-child{padding-inline:2px}.shopping-heading{grid-template-columns:auto minmax(0,1fr) auto;display:grid}@media (width<=600px){.shopping-col-name{width:130px}.shopping-heading{grid-template-columns:auto minmax(0,1fr)}.shopping-generated{grid-column:1/-1;width:fit-content}}@media (width<=350px){.shopping-col-name{width:104px}}@media print{html:has(.shopping-page){width:auto!important;max-width:none!important;height:auto!important;overflow:visible!important}html:has(.shopping-page) body{width:auto!important;max-width:none!important;height:auto!important;overflow:visible!important}:is(html:has(.shopping-page) .shell,html:has(.shopping-page) .shell-content){width:auto!important;max-width:none!important;height:auto!important;min-height:0!important;display:block!important}}.shopping-table{min-width:0}.shopping-table th:first-child,.shopping-table td:first-child,.shopping-table th:nth-child(2){width:auto;min-width:0;box-shadow:none;position:static}.shopping-col-name{width:24%}.shopping-col-needed{width:14%}.shopping-col-buy{width:18%}.shopping-col-day{width:12%}.shopping-col-delete{width:44px}.shopping-table td:nth-child(3){white-space:normal}.shopping-buy{white-space:normal;overflow-wrap:anywhere;min-width:0;max-width:100%}@media (width<=600px){.shopping-page,.shopping-card{padding-inline:8px}.shopping-table,.shopping-table tbody th,.shopping-table thead th{font-size:12px}.shopping-table th,.shopping-table td{padding:10px 3px}.shopping-col-name{width:23%}.shopping-col-needed{width:14%}.shopping-col-buy{width:18%}.shopping-col-day{width:10%}.shopping-col-delete{width:40px}.shopping-buy{justify-content:center;width:100%;padding:6px 3px}.shopping-buy svg{display:none}.shopping-delete{width:38px}}.shopping-table th:last-child,.shopping-table td:last-child{padding-inline:0}@media (width<=600px){.shopping-table thead th{white-space:nowrap;letter-spacing:-.2px;padding-inline:1px;font-size:11px}.shopping-suggestion{font-size:10px;line-height:1.3}}.catalogue-picker{min-width:0}.catalogue-picker h4{color:var(--color-navy);margin:4px 0 16px}.ingredient-category-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 8px;display:grid}.ingredient-category{min-width:0;min-height:44px;color:var(--color-navy);font:inherit;text-align:center;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:6px;padding:4px 0;font-size:12px;font-weight:650;line-height:1.25;display:flex}.ingredient-category-icon{color:#fff;background:#8055ff;border-radius:14px;flex:none;place-items:center;width:54px;height:54px;display:grid}.ingredient-category-icon svg{width:37px;height:37px}.ingredient-category:focus-visible,.catalogue-options button:focus-visible{outline-offset:3px;border-radius:10px;outline:3px solid #512479}.ingredient-category:hover .ingredient-category-icon{background:#6840dc}.catalogue-category-heading{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.catalogue-category-heading .ingredient-category-icon{border-radius:10px;width:40px;height:40px}.catalogue-category-heading .ingredient-category-icon svg{width:28px;height:28px}.catalogue-combobox{min-width:0}.catalogue-options{overscroll-behavior:contain;background:#fffdfa;border:1px solid #c7afe8;border-radius:12px;max-height:220px;margin-top:4px;overflow-y:auto}.catalogue-options button{text-align:left;white-space:normal;width:100%;min-height:44px;color:var(--color-navy);font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #eee5f7;padding:10px 12px;display:block}.catalogue-options button[aria-selected=true]{background:#eadcf9}.catalogue-options p{margin:0;padding:10px 12px}@media (width<=350px){.ingredient-category-icon{border-radius:12px;width:46px;height:46px}.ingredient-category{font-size:11px}.ingredient-category-grid{gap:12px 5px}}.recipe-fields:has(.catalogue-picker){padding-inline:8px}.recipe-fields>.meal-inline-editor:has(.catalogue-picker){background:0 0;border:0;margin-inline:0;padding:4px 0}@media (width<=600px){.ingredient-category{overflow-wrap:anywhere;font-size:11px}.meal-inline-editor:has(>.recipe-fields){padding-inline:8px}.recipe-fields:has(.recipe-lines){padding-inline:0}.recipe-line{grid-template-columns:minmax(0,1fr) 44px 72px 36px}.recipe-line select.input{background-position:calc(100% - 14px),calc(100% - 8px);padding-right:24px}}.shopping-own-item{margin-top:20px}.shopping-own-item .input{font-size:16px}.member-list__link{width:100%;color:inherit;border-radius:.75rem;align-items:center;gap:.75rem;padding:.5rem;text-decoration:none;display:flex}.member-list__link:hover{background:var(--color-surface,#f1f5f9)}.member-list__link>span:nth-child(2){flex:1;min-width:0}.member-profile-page .member-profile__hero{text-align:center;flex-direction:column;align-items:center;gap:.5rem;padding:2rem 1rem;display:flex}.member-profile__hero h1,.member-profile__hero p{margin:0}.member-profile-page .member-profile__fields{border:0;gap:1rem;min-width:0;margin:0;padding:0;display:grid}.member-profile-page .member-profile__hero .colour-dot{vertical-align:middle;border-radius:50%;width:1rem;height:1rem;margin-right:.3rem;display:inline-block}.tile-profile-link{color:inherit;border-radius:50%;flex-shrink:0;display:inline-flex}.tile-profile-link:focus-visible{outline:3px solid var(--color-blue);outline-offset:4px}.tile-timeline-link{color:inherit;justify-content:center;align-self:stretch;text-decoration:none}.dashboard .tile--member{padding-top:6px;padding-bottom:6px}.dashboard .tile--member.tile--has-badge{padding-right:1rem}.dashboard .tile--member .tile-name,.dashboard .tile--member .tile-role{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.dashboard .tile--member.tile--has-badge .tile-role{padding-right:2.5rem}.member-add-page .add-person-icon{color:#a995ff;flex:none;width:48px;height:48px}.dashboard .timeline-family{align-items:center;gap:.45rem;max-width:100%;min-height:32px;margin:0;display:flex}.dashboard .timeline-family__label{color:var(--color-muted);flex:none;font-size:.8rem}.dashboard .timeline-family__choice{border-radius:4px;min-width:0;max-width:100%;display:inline-flex;position:relative}.dashboard .timeline-family__current{align-items:center;gap:.3rem;min-width:0;min-height:32px;font-size:.9rem;font-weight:650;display:flex}.dashboard .timeline-family__name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dashboard .timeline-family__current svg{flex:none}.dashboard .timeline-family__select{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.dashboard .timeline-family__choice:focus-within{outline-offset:2px;outline:2px solid #7c5cff}.dashboard .timeline-family__current{font-size:1.1rem;font-weight:700}.page.dashboard{padding-top:var(--space-3)}.dashboard .timeline-family{margin-bottom:var(--space-3)}.family-home.page{padding-top:16px}.family-home h1{margin:0;font-size:1.5rem}.family-home__intro{color:var(--color-text-muted);margin:4px 0 20px}.family-home__grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px;display:grid}.family-home .family-card{--tile-accent:var(--color-lilac);width:100%;min-height:0;font:inherit;text-align:left;cursor:pointer;border:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 8px;padding:14px 16px 14px 28px;display:grid}.family-card__name{overflow-wrap:anywhere;grid-column:1/-1;font-size:1.4rem;font-weight:750;line-height:1.2}.family-card__count{color:#c9bcff;grid-column:1/-1;font-size:.85rem}.family-card__photos{isolation:isolate;flex-wrap:wrap;align-items:center;row-gap:8px;margin-top:4px;padding:2px;display:flex}.family-card__photos>*{flex:0 0 40px;box-shadow:0 0 0 3px #151b30}.family-card__photos>*+*{margin-left:-10px}.family-card__more{background:var(--color-lilac);width:40px;height:40px;color:var(--color-navy);border-radius:50%;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:inline-flex}.family-card__open{color:#c9bcff;grid-column:2;justify-self:end;font-size:1.3rem}.file-drop{gap:var(--space-3);padding:var(--space-5) var(--space-4);border:2px dashed var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);text-align:center;justify-items:center;display:grid}.file-drop.is-over{border-color:var(--color-navy);background:var(--color-cream-deep)}.file-drop p{margin:0}.file-list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.file-card{gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);display:grid}.file-card__open{align-items:center;gap:var(--space-3);width:100%;min-height:var(--tap-size);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-cream);color:inherit;font:inherit;text-align:left;cursor:pointer;display:flex}.file-card__open:hover{border-color:var(--color-navy)}.file-card__name{min-width:0;display:grid}.file-card__name strong,.file-card__name span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-card__actions,.file-people{gap:var(--space-2);flex-wrap:wrap;display:flex}.file-person{align-items:center;gap:var(--space-1);min-width:4.75rem;max-width:6.5rem;min-height:var(--tap-size);padding:var(--space-2);border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:inherit;font:inherit;cursor:pointer;flex-direction:column;display:flex}.file-person[aria-pressed=true]{border-color:var(--color-navy);background:var(--color-cream-deep)}.file-person[aria-disabled=true]{cursor:default}.file-person__name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.85rem;overflow:hidden}.file-rename{gap:var(--space-2);display:grid}.file-preview{z-index:30;gap:var(--space-3);padding:var(--space-4);padding-bottom:calc(var(--space-4) + var(--safe-bottom));background:#1f2a44eb;grid-template-rows:auto 1fr;display:grid;position:fixed;inset:0}.file-preview__bar{justify-content:space-between;gap:var(--space-3);color:var(--color-cream);align-items:center;display:flex}.file-preview__bar strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.file-preview img{object-fit:contain;border-radius:var(--radius-md);place-self:center;max-width:100%;max-height:100%}.category-question-grid,.category-activity-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 6px;display:grid}.category-question-grid .subject-picker__tile,.category-activity-grid .subject-picker__tile{min-width:0;min-height:76px;font:inherit;overflow-wrap:anywhere;font-size:.78rem;line-height:1.2}.category-question-grid svg,.category-activity-grid svg{flex-shrink:0;max-width:100%}.category-question-grid button[aria-pressed=true],.category-activity-grid button[aria-pressed=true]{background:#f1edff;border-color:#7c5cff}.activity-current{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;min-height:48px;padding:0;display:flex}.activity-picker h1:focus{outline:none}.activity-current:focus-visible{outline-offset:4px;outline:3px solid #b6a0ff}.category-details-summary{margin:0}.category-activity-grid{grid-auto-rows:max-content}.category-activity-grid .subject-picker__tile>span{flex-shrink:0}.category-question-grid .subject-picker__tile>span,.category-activity-grid .subject-picker__tile>span{overflow-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none}@media (width<=359px){.category-question-grid .subject-picker__tile{font-size:clamp(.625rem,3.2vw,.72rem)}}.category-question-grid--annual{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width>=600px){.category-question-grid--annual{grid-template-columns:repeat(6,minmax(0,1fr))}}.category-activity-grid .subject-picker__tile--wide{color:#fff;background:#7c5cff;border-radius:16px;flex-direction:row;grid-column:1/-1;justify-content:center;justify-self:stretch;gap:12px;width:100%;min-height:64px}.category-activity-grid .subject-picker__tile--wide[aria-pressed=true]{color:#241f40;background:#f1edff}.sports-club-field__row{align-items:center;gap:.5rem;display:flex}.sports-club-field__row>select{flex:1;min-width:0}.sports-club-field__row>button{white-space:nowrap;flex:none}.sports-club-field__new{gap:.5rem;margin-top:.5rem;display:grid}.member-picker.member-picker--compact{gap:.3rem}.member-picker--compact+.type-picker{margin-top:-.4rem}.member-family-tile{border:1px solid var(--color-border);background:var(--color-surface);width:100%;min-height:44px;color:var(--color-navy);font:inherit;cursor:pointer;border-radius:12px;align-items:center;gap:.5rem;margin-top:.25rem;padding:.4rem .75rem;font-size:.85rem;font-weight:600;display:flex}.member-family-tile .member-tile__cat{flex-shrink:0;width:25px;height:28px}.member-picker .member-picker__grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:.25rem;margin-top:.2rem}.member-picker__grid .member-tile{min-width:0;min-height:68px;font:inherit;background:0 0;border:0;border-radius:10px;justify-content:flex-start;gap:.2rem;padding:.15rem .05rem}:is(.member-picker__grid .member-tile:has(input:checked),.member-family-tile[aria-pressed=true]){background:#f1edff}.member-selection-tick{color:#fff;background:#7c5cff;border-radius:50%;flex-shrink:0;place-items:center;width:16px;height:16px;font-size:11px;font-weight:700;line-height:1;display:none}.member-tile .member-selection-tick{z-index:1;position:absolute;top:0;left:calc(50% + 17px)}.member-family-tile[aria-pressed=true] .member-selection-tick{display:grid}.member-tile:has(input:checked) .member-selection-tick{display:grid}.member-family-tile .member-selection-tick{margin-left:auto}.member-family-tile:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.member-picker .member-picker__name{overflow-wrap:anywhere;min-width:0;font-size:.82rem;line-height:1.15}.page .new-entry-card .member-family-tile{margin-top:.6rem}.page .new-entry-card .member-picker__grid .avatar{aspect-ratio:1;max-width:100%;height:auto!important}.page .new-entry-card .type-picker .type-grid{gap:.35rem .25rem;margin-top:.25rem}.page .new-entry-card .type-picker .type-tile{gap:.25rem;padding:.25rem .05rem}.page .new-entry-card .type-picker .category-icon{width:min(60px,100%);height:auto}@media (width<=380px){.new-entry-card .field-row{grid-template-columns:minmax(0,1fr)}}.reminder-page .member-picker__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.25rem;margin:1rem 0 .6rem;display:grid}.reminder-page .member-picker__grid .member-tile{min-width:0;min-height:68px;font:inherit;background:0 0;border:0;border-radius:10px;justify-content:flex-start;gap:.2rem;padding:.15rem .05rem}.reminder-page .member-picker__grid .member-tile:has(input:checked){background:#f1edff}.reminder-page .reminder-everyone:has(input:checked){background:#f1edff}.reminder-page .member-picker__name{overflow-wrap:anywhere;font-size:.82rem;line-height:1.15}.reminder-page .member-family-tile{border:1px solid var(--color-border);background:var(--color-surface);width:100%;min-height:44px;color:var(--color-navy);font:inherit;border-radius:12px;align-items:center;gap:.5rem;margin-top:.25rem;padding:.4rem .75rem;font-size:.85rem;font-weight:600;display:flex}.reminder-page .member-selection-tick{color:#fff;background:#7c5cff;border-radius:50%;flex-shrink:0;place-items:center;width:16px;height:16px;font-size:11px;font-weight:700;line-height:1;display:none}.reminder-page .member-tile .member-selection-tick{position:absolute;top:0;left:calc(50% + 17px)}.reminder-page label:has(input:checked)>.member-selection-tick{display:grid}.reminder-page .member-family-tile .member-selection-tick{margin-left:auto}.reminder-page .member-picker__grid input{pointer-events:auto;z-index:2;width:100%;height:100%;margin:0;inset:0}.page .new-entry-card .member-picker__grid{row-gap:0}.page .new-entry-card .type-picker .type-grid{row-gap:.05rem}.page .new-entry-card .type-picker .type-tile{gap:.15rem;padding-block:.1rem}.page .new-entry-card .member-picker+.type-picker{margin-top:-.75rem}.page .new-entry-card{padding:.65rem .75rem .75rem}.subject-picker{background:var(--color-cream);width:100%;max-width:none;height:100dvh;max-height:none;color:var(--color-navy);border:0;margin:0;padding:0;position:fixed;inset:0;overflow-y:auto}.subject-picker__page{max-width:56rem;padding:20px max(16px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom));margin:auto}.subject-picker__header{margin-bottom:12px}.subject-picker__header h1{margin:12px 0 0;font-size:1.6rem}.subject-picker__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 4px;display:grid}.subject-picker__tile{min-width:0;color:inherit;font:inherit;cursor:pointer;background:0 0;border:2px solid #0000;border-radius:12px;flex-direction:column;justify-content:flex-start;align-items:center;gap:4px;padding:4px 0;font-size:clamp(.7rem,3.2vw,.78rem);line-height:1.2;display:flex}.subject-picker__tile>svg{flex:none}.subject-picker__tile>span{overflow-wrap:normal;-webkit-hyphens:none;hyphens:none;word-break:normal}.subject-picker__tile[aria-pressed=true]{background:var(--color-surface);border-color:#7c5cff}.subject-picker__tile--other{font-weight:800}.subject-picker__tile:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.subject-picker__tile:hover{background:var(--color-surface)}.subject-picker__add{margin-top:24px;display:block}@media (width>=480px){.subject-picker__grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width>=640px){.subject-picker__grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.subject-picker__tile{font-size:1rem}}.type-picker .type-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.type-picker .type-tile{min-width:0;min-height:76px}.type-picker .type-tile__label{white-space:normal;overflow-wrap:anywhere;-webkit-hyphens:manual;hyphens:manual;line-height:1.2}@media (width<=359px){.type-picker .type-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=279px){.type-picker .type-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.entry-create-header{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:16px;width:100%;display:grid}.entry-create-header button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;min-width:0;padding:0}.entry-create-people{text-align:left;flex-direction:column;align-items:flex-start;gap:6px;display:flex}.entry-create-avatar-stack{overscroll-behavior-x:contain;flex-wrap:nowrap;max-width:100%;padding:2px 2px 4px;display:flex;overflow-x:auto}.entry-create-person{flex:0 0 60px;width:60px;position:relative}.entry-create-person+.entry-create-person{margin-left:-14px}.entry-create-person .avatar{outline:2px solid var(--color-surface,#fff);outline-offset:0}.entry-create-names{flex-wrap:wrap;gap:2px 10px;max-width:100%;display:flex}.entry-create-names strong{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.entry-create-category{text-align:center;overflow-wrap:anywhere;flex-direction:column;justify-self:end;align-items:center;gap:6px;width:112px;max-width:100%;display:flex}.entry-create-category>svg,.entry-create-person .avatar{flex-shrink:0}.entry-create-header button:focus-visible{outline-offset:4px;outline:3px solid #b6a0ff}.new-entry-card .member-picker__grid{row-gap:0}.new-entry-card .type-picker .type-grid{row-gap:.05rem}.new-entry-card .type-picker .type-tile{gap:.15rem;padding-block:.1rem}.new-entry-card .member-picker+.type-picker{margin-top:-.75rem}.entry-create-header--activity{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.entry-create-header--activity>button{text-align:center;overflow-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none;flex-direction:column;justify-self:stretch;align-items:center;gap:6px;width:100%;display:flex}.entry-create-header--activity .entry-create-names{justify-content:center}.entry-create-header--activity .entry-create-names strong{white-space:normal;text-overflow:clip;overflow-wrap:normal;word-break:normal;overflow:visible}.entry-create-header--activity .entry-create-avatar-stack{min-height:60px;padding-top:0;padding-bottom:0}.entry-create-header--activity .entry-create-person{flex:0 60px;min-width:0}.entry-create-header--activity .entry-create-person .avatar{aspect-ratio:1;width:100%!important;height:auto!important}.type-locked__chip:has(.type-locked__subtype){border-radius:16px;align-items:flex-start;gap:.45rem}.type-locked__subtype{text-align:center;width:4.75rem;min-width:0;color:var(--color-navy);flex-direction:column;flex:none;align-items:center;gap:.15rem;font-size:.68rem;font-weight:650;line-height:1.15;display:flex}.type-locked__subtype>svg{flex:none}.type-locked__subtype>span{width:100%}.type-locked__category{align-items:center;gap:.5rem;min-width:0;display:inline-flex}.homework-create-header{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:16px;width:100%;display:grid}.homework-create-people{gap:12px;min-width:0;margin:0;padding:0;list-style:none;display:grid}.homework-create-person{overflow-wrap:anywhere;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;font-weight:600;display:flex}.homework-create-person .avatar{flex-shrink:0}.homework-create-subject{width:max-content;max-width:100%;color:inherit;font:inherit;cursor:pointer;text-align:center;overflow-wrap:anywhere;background:0 0;border:0;border-radius:6px;flex-direction:column;justify-self:end;align-items:center;gap:6px;min-width:0;padding:0;display:flex}.homework-create-subject>svg{flex-shrink:0}.subject-picker{overflow:hidden}.subject-picker__page{box-sizing:border-box;flex-direction:column;gap:12px;height:100%;display:flex}.subject-picker__header{text-align:center;flex:none;margin:0}.subject-picker__header h1{margin:0}.subject-picker__grid{overscroll-behavior:contain;flex:1;align-content:start;min-height:0;padding:4px;overflow-y:auto}.subject-picker__footer{flex:none;justify-content:flex-end;display:flex}#subject-picker-title:focus{outline:none}.homework-people-stack{flex-direction:column;align-items:flex-start;gap:6px;min-width:0;display:flex}.homework-people-stack ul{margin:0;list-style:none}.homework-people-stack .entry-create-person{flex:0 0 48px;width:48px}.homework-people-stack .homework-create-person{display:block}.homework-people-stack .assignee__name{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.homework-create-header .homework-create-subject{margin-top:2px}.homework-view:not(.event-view) .homework-view__photos .avatar+.avatar{margin-left:-14px}.homework-view:not(.event-view) .homework-view__names strong,.homework-view:not(.event-view) .homework-view__person strong{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.homework-view:not(.event-view) .homework-view__person{flex-direction:column;align-items:flex-start;gap:6px}.homework-view__header:has(.event-view__school-types){grid-template-columns:minmax(0,1fr) auto;gap:8px}.event-view__school-types{justify-self:end;align-items:flex-start;gap:8px;min-width:0;display:flex}.event-view__school-activity{text-align:center;flex-direction:column;flex:none;align-items:center;gap:6px;width:6.25rem;min-width:0;max-width:7.5rem;display:flex}.event-view__school-activity>svg{flex:none}.event-view__school-activity>span{text-align:center;overflow-wrap:anywhere;width:100%;font-size:.75rem;font-weight:650;line-height:1.15}.event-view__school-types .event-view__type{width:80px;max-width:80px}@media (width<=360px){.event-view__school-activity{width:4.75rem}.event-view__school-activity>svg{width:48px;height:48px}.event-view__school-types .event-view__type{width:64px;max-width:64px}.event-view__school-types .event-view__type>svg{width:48px;height:48px}}.homework-view__header:has(.event-view__sports-types){grid-template-columns:minmax(0,1fr) auto;gap:8px}.event-view__sports-types{justify-self:end;align-items:flex-start;gap:8px;display:flex}.event-view__activity{flex:none;line-height:0;display:inline-flex}.event-view__sports-types .event-view__type{width:80px}@media (width<=360px){.event-view__sports-types .event-view__type{width:64px}}.homework-view__header:has(.homework-view__icons){grid-template-columns:minmax(0,1fr) auto;gap:8px}.homework-view__icons{justify-self:end;align-items:flex-start;gap:8px;display:flex}.homework-view__identity{text-align:center;flex-direction:column;align-items:center;gap:6px;width:64px;min-width:0;display:flex}.homework-view__identity>svg{flex:none}.homework-view__identity>span{overflow-wrap:anywhere;width:100%;font-size:.85rem;font-weight:650;line-height:1.25}@media (width<=360px){.homework-view__identity{width:56px}.homework-view__identity>svg{width:48px;height:48px}.homework-view__identity>span{font-size:.75rem}}.entry-detail-page .new-entry-card{padding:.65rem .75rem .75rem}.new-entry-card .member-family-tile{margin-top:.6rem}.new-entry-card .member-picker__grid .avatar{aspect-ratio:1;max-width:100%;height:auto!important}.new-entry-card .type-picker .type-grid{gap:.35rem .25rem;margin-top:.25rem}.new-entry-card .type-picker .type-tile{gap:.25rem;padding:.25rem .05rem}.new-entry-card .type-picker .category-icon{width:min(60px,100%);height:auto}@media (width<=380px){.new-entry-card .field-row{grid-template-columns:minmax(0,1fr)}}.homework-view__header{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.homework-view__people{gap:12px;min-width:0;display:grid}.homework-view__person{align-items:center;gap:10px;min-width:0;display:flex}.homework-view__person .avatar{flex:none}.homework-view__person strong{overflow-wrap:anywhere;font-size:1.2rem;line-height:1.25}.homework-view .homework-view__subject{text-align:right;overflow-wrap:anywhere;margin:0;font-size:1.6rem;font-weight:750;line-height:1.2}.homework-view .hw-status-picker{margin:12px 0}.homework-view__status:empty{display:none}.homework-view__status{color:var(--color-text-muted);margin:0;font-size:.875rem}.homework-view__notes{resize:vertical;min-height:12rem}.homework-view .homework-view__actions{flex-wrap:wrap;justify-content:space-between;gap:10px;display:flex}.homework-view__actions .btn{flex:1;min-width:0}.homework-view .entry-details{margin-top:0}@media (width<=350px){.homework-view__header{gap:10px}.homework-view__person{flex-direction:column;align-items:flex-start;gap:6px}.homework-view__person strong{font-size:1.1rem}.homework-view .homework-view__subject{font-size:1.4rem}.homework-view .hw-status-picker__opt{gap:.2rem;padding:.3rem .25rem;font-size:.78rem}.homework-view .hw-status-picker__opt svg{width:16px;height:16px}}.homework-save-dialog{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);max-width:min(90vw,26rem);color:var(--color-navy);box-shadow:var(--shadow-float);padding:24px}.homework-save-dialog::backdrop{background:#0b0f1a8c}.homework-save-dialog h2{margin:0 0 20px;font-size:1.25rem}.homework-save-dialog .form-actions{justify-content:flex-end;gap:12px}.homework-view .event-view__title{text-align:center;overflow-wrap:anywhere;margin:12px 0;font-size:1.6rem;font-weight:750;line-height:1.25}.event-view .homework-view__actions{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.event-view .homework-view__actions .btn{white-space:normal;padding-left:8px;padding-right:8px}@media (width<=480px){.event-view .homework-view__actions{grid-template-columns:repeat(2,minmax(0,1fr))}}.homework-view__photos{scrollbar-width:thin;align-items:center;padding:3px;display:flex;overflow-x:auto}.homework-view__photos .avatar{box-shadow:0 0 0 3px var(--color-surface);flex:none}.homework-view__photos .avatar+.avatar{margin-left:-12px}.homework-view__names{flex-wrap:wrap;gap:4px 6px;margin-top:-6px;display:flex}.homework-view__names strong{overflow-wrap:anywhere;font-size:1.1rem;line-height:1.25}.event-view__type{flex-direction:column;justify-self:end;align-items:center;gap:6px;max-width:8rem;display:flex}.event-view__type>svg{flex:none}.event-view__type>span{text-align:center;overflow-wrap:anywhere;font-size:.85rem;font-weight:650;line-height:1.25}.etl-top-row{justify-content:space-between;align-items:center;gap:.5rem;min-width:0;display:flex}.etl-type{flex:0 auto;align-items:center;gap:.3rem;min-width:0;font-size:.72rem;line-height:1.15;display:inline-flex}.etl-top-row .etl-who{letter-spacing:normal;text-transform:none;text-align:right;flex:0 65%;justify-content:flex-end;margin-left:auto}.etl-top-row .etl-avatars{padding:2px}.etl-top-row .etl-avatars .etl-avatar+.etl-avatar{margin-left:-14px}.etl-flags{flex-wrap:wrap;gap:.25rem;display:flex}.etl-item--homework .etl-type{color:#51308b;background:#e7ddfb;border-radius:8px;padding:.15rem .3rem;font-weight:800}.etl-item--homework .etl-type .etl-category{color:inherit}.etl-item--homework .etl-hw-status:not(.etl-hw-status--week){border-width:2px;margin-top:.25rem;font-size:.9rem;font-weight:800}.etl-item .etl-hw-status--not_done{background:#ffedac;border-color:#d99a00}.etl-item .etl-hw-status--done{background:#dce9ff;border-color:#2f6fde}.etl-item .etl-hw-status--submitted{background:#d4f2df;border-color:#1f9d55}.etl-item--homework:not(.etl-item--week) .etl-body{grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:.5rem;display:grid}.etl-item--homework:not(.etl-item--week) .etl-top-row{grid-area:1/1/auto/-1}.etl-item--homework:not(.etl-item--week) .etl-body>.etl-title{grid-area:2/1}.etl-item--homework:not(.etl-item--week) .etl-meta{grid-area:3/1;min-width:0;padding-right:0}.etl-item--homework:not(.etl-item--week) .etl-meta>span{flex-wrap:wrap;min-width:0}.etl-item--homework:not(.etl-item--week) .etl-meta time{overflow-wrap:anywhere}.etl-item--homework:not(.etl-item--week) .etl-hw-status{grid-area:2/2/span 2;place-self:center end;margin-top:0}.etl-item--homework:not(.etl-item--week) .etl-notes{grid-area:4/1/auto/-1}.etl-item--homework:not(.etl-item--week):has(.etl-flags) .etl-flags{grid-area:2/1/auto/-1}.etl-item--homework:not(.etl-item--week):has(.etl-flags) .etl-body>.etl-title{grid-row:3}.etl-item--homework:not(.etl-item--week):has(.etl-flags) .etl-meta{grid-row:4}.etl-item--homework:not(.etl-item--week):has(.etl-flags) .etl-hw-status{grid-row:3/span 2}.etl-item--homework:not(.etl-item--week):has(.etl-flags) .etl-notes{grid-row:5}@media (orientation:portrait){.etl-item--homework:not(.etl-item--week) .etl-hw-status{transform:translateY(-.6rem)}}.etl-item:not(.etl-item--week){position:relative}.etl-item:not(.etl-item--week) .etl-chevron{position:absolute;bottom:.25rem;right:.5rem}.etl-item:not(.etl-item--week) .etl-meta{padding-right:.75rem}.etl-page .etl-days{gap:0}.etl-page .etl-day{gap:.65rem;min-height:1px;margin:.5rem 0}.etl-page .wk-bar__range{font-size:.8rem}@media (orientation:landscape){.etl-page .wk-col__label{white-space:nowrap;flex-direction:row;align-items:baseline;gap:.3rem}.etl-page .wk-col__head{padding-top:.2rem;padding-bottom:.2rem}.etl-page .wk-col{gap:.2rem}}@media (orientation:landscape) and (width<=740px){.etl-page .wk-col__weekday,.etl-page .wk-col__date{letter-spacing:0;font-size:.7rem}.etl-page .wk-col__label{gap:.2rem}.etl-page .wk-col__head{padding-inline:.1rem}}@media (orientation:landscape) and (width<=600px){.etl-page .wk-col__weekday,.etl-page .wk-col__date{font-size:.65rem}.etl-page .wk-col__label{gap:.1rem}.etl-page .wk-col__head{padding-inline:0}}@media (orientation:landscape) and (height<=550px){.etl-page.calendar-page .month-content{padding-inline:8px 208px}}.browse-controls{flex:none;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;padding:6px 0 10px;display:grid}.browse-switch{background:var(--color-surface,#fffdf8);border:1.5px solid #7c5cff;border-radius:24px;grid-column:2;display:inline-flex;overflow:hidden}.browse-switch button{color:#6846c7;min-height:44px;font:inherit;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:7px;padding:8px 19px;font-weight:700;display:flex}.browse-switch button[aria-pressed=true]{color:#fff;background:#7c5cff}.browse-switch svg{stroke:currentColor;stroke-width:1.8px;fill:none;width:19px;height:19px}.browse-switch button:focus-visible,.month-day:focus-visible,.month-arrow:focus-visible{outline-offset:-4px;outline:3px solid #263355}.browse-filter-banner{color:#554082;background:#eee5ff;border-radius:14px;grid-column:1/-1;justify-self:center;align-items:center;gap:16px;padding:8px 12px;font-size:14px;display:flex}.browse-filter-banner button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;min-height:28px;font-weight:700;text-decoration:underline}.calendar-page .month-content{overscroll-behavior:contain;min-height:0;padding:0 2px calc(156px + var(--safe-bottom));scrollbar-gutter:stable;flex:1;overflow:auto}.calendar-page .etl-head{gap:7px;padding-bottom:0}.calendar-page>.browse-controls{padding-left:2px}.month-layout{align-items:start;gap:14px;width:100%;max-width:1260px;margin:0 auto;display:grid}.month-card,.month-panel{background:#fffdf8;border:1px solid #e1dbd1;border-radius:22px;padding:14px;box-shadow:0 3px 12px #2428420a}.month-nav{grid-template-columns:44px minmax(0,1fr) 44px auto;align-items:center;gap:4px;margin-bottom:8px;display:grid}.month-arrow{color:#6944d3;cursor:pointer;background:#eee7ff;border:0;border-radius:50%;width:42px;height:42px;font-size:28px;line-height:1}.month-jump{text-align:center;color:#202a45;cursor:pointer;justify-content:center;align-items:center;min-height:44px;font-size:19px;font-weight:750;display:flex;position:relative}.month-jump>input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.month-jump:focus-within{border-radius:8px;outline:3px solid #7c5cff}.month-today{min-height:42px;padding-inline:10px!important}.month-weekdays,.month-week{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;display:grid}.month-weekdays>span{text-align:center;color:#6b6478;padding:7px 0;font-size:12px;font-weight:700}.month-week{margin-top:3px}.month-week>[role=gridcell]{min-width:0}.month-day{color:#25304b;width:100%;height:58px;font:inherit;cursor:pointer;background:#f8f5ee;border:1px solid #0000;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:5px 1px;font-size:17px;font-weight:650;display:flex}.month-day--outside{color:#857f90;background:#f2efe9;font-weight:400}.month-day.is-today{border:2px solid #8560df}.month-day.is-today .month-day__number{text-underline-offset:3px;text-decoration:underline}.month-day.is-selected{color:#fff;background:#7c5cff;border-color:#7c5cff;font-weight:800;box-shadow:0 2px 7px #7c5cff35}.month-dots{justify-content:center;align-items:center;gap:2px;max-width:100%;height:12px;display:flex}.month-dot{border-radius:50%;flex:none;width:5px;height:5px;box-shadow:0 0 0 1px #fff8}.month-dot--neutral{box-shadow:none;background:0 0;border:1px solid}.month-dots small{white-space:nowrap;font-size:9px;line-height:1}.month-panel h2{color:#25304b;margin:0 0 12px;font-size:16px;line-height:1.4}.month-panel h2>span{color:#736a81;font-weight:500}.month-empty{color:#756e80;margin:0;padding:12px 0;font-size:14px}.month-events{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.month-events.is-expanded{overscroll-behavior:contain;max-height:420px;overflow:auto}.month-event{color:#25304b;background:#fff;border:1px solid #e6dfed;border-radius:13px;align-items:center;gap:9px;min-height:70px;padding:10px 8px;text-decoration:none;transition:background .1s;display:flex}.month-event:hover{background:#f1ebff}.month-event:focus-visible{outline-offset:1px;outline:3px solid #7c5cff}.month-event>.category-icon{flex:none}.month-event__body{color:#6b6378;flex-direction:column;flex:1;gap:3px;min-width:0;font-size:12px;display:flex}.month-event__body>strong{color:#25304b;-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;font-size:15px;display:-webkit-box;overflow:hidden}.month-event__people{flex-wrap:wrap;align-items:center;gap:3px 7px;display:flex}.month-person{border-bottom:2px solid;align-items:center;gap:3px;max-width:100%;font-size:11px;display:flex}.month-person .avatar{flex:none;min-width:20px;width:20px!important;height:20px!important}.month-event__chevron{color:#9c7be5;font-size:23px}.month-expand{width:100%;min-height:44px;margin-top:10px}@media (width<=359px){.month-card,.month-panel{border-radius:16px;padding:9px}.month-day{border-radius:9px;height:51px;font-size:15px}.month-nav{grid-template-columns:36px minmax(0,1fr) 36px auto}.month-arrow{width:34px;height:38px}.month-jump{font-size:16px}.month-today{padding-inline:7px!important;font-size:12px!important}.month-dot{width:4px;height:4px}.month-dots{gap:1px}.month-weekdays{font-size:10px}.browse-switch button{padding-inline:15px}}@media (orientation:landscape){.calendar-page .month-content{padding-bottom:calc(150px + var(--safe-bottom));display:flex;overflow:hidden}.month-layout{grid-template-columns:minmax(0,3fr) minmax(0,2fr);height:100%;min-height:0}.month-card,.month-panel{overscroll-behavior:contain;max-height:100%;overflow:auto}.month-day{gap:2px;height:44px;font-size:14px}.month-nav{margin-bottom:2px}.month-weekdays>span{padding:4px 0}.month-panel{padding:12px}.month-events.is-expanded{max-height:none;overflow:visible}}@media (width>=1000px) and (height>=600px){.month-layout{grid-template-columns:minmax(0,2fr) minmax(300px,1fr)}.month-day{gap:8px;height:74px;font-size:21px}.month-card{padding:22px}.month-nav{margin-bottom:12px}.month-dot{width:7px;height:7px}.month-dots small{font-size:11px}.month-panel{padding:20px}.month-panel h2{font-size:18px}}@media (orientation:landscape) and (height<=550px){.calendar-page .month-content{padding-bottom:8px;padding-inline:88px 142px}.month-layout{grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:9px}.month-card,.month-panel{padding:8px}.month-day{height:34px;min-height:34px}.month-nav{grid-template-columns:30px minmax(0,1fr) 30px}.month-arrow{width:29px;height:32px;font-size:23px}.month-jump{min-height:32px;font-size:15px}.month-today{grid-column:1/-1;min-height:30px!important;font-size:12px!important}.month-weekdays>span{font-size:10px}.month-week{gap:2px;margin-top:2px}.month-weekdays{gap:2px}.month-event{gap:5px;padding:7px 5px}.month-event>.category-icon{width:24px;height:24px}.month-event__body>strong{font-size:13px}.month-panel h2{font-size:14px}.calendar-page>.browse-controls{padding:3px 0 5px}.browse-switch button{min-height:38px;padding-block:5px}}html.calendar-mode .add-entry{padding-right:calc(var(--space-4) + var(--safe-right));justify-content:flex-end}html.calendar-mode .add-entry .btn--cat{gap:2px;width:88px;min-width:88px;height:88px;min-height:88px;padding:5px 5px 10px;font-size:12px}html.calendar-mode .add-entry .add-entry__cat{width:32px;height:38px}html.calendar-mode .feedback-cta.btn{--feedback-size:64px;font-size:11px}html.tl-mode.calendar-mode .winter--snowman-overlay{--winter-feedback-right:calc(var(--space-4) + var(--safe-left) + 64px);--winter-add-left:calc(100vw - var(--space-4) - var(--safe-right) - 88px)}.calendar-page .month-content{padding-bottom:calc(108px + var(--safe-bottom));margin-bottom:0}@media (orientation:landscape) and (height<=550px){.calendar-page .month-content{padding-bottom:8px;margin-bottom:0;padding-inline:72px 104px}.month-nav{grid-template-columns:30px minmax(0,1fr) 30px auto}.month-today{grid-column:auto;min-height:32px!important}.month-layout{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}}.calendar-page{padding-top:8px}.month-card{padding:12px}.month-day{height:52px}.browse-controls>.timeline-family{grid-column:3;justify-self:end;min-width:0;max-width:100%;margin-left:0;font-size:16px}@media (width<=359px){.month-card{padding:8px}.month-day{gap:2px;height:39px;min-height:39px;padding:2px 1px}.month-nav{margin-bottom:4px}.month-jump{min-height:38px}.month-today{min-height:38px!important}.month-weekdays>span{padding:3px 0;font-size:11px}}@media (orientation:landscape) and (height<=550px){.month-card,.month-panel{padding:6px}.month-nav{margin-bottom:1px}.month-day{gap:1px;height:32px;min-height:32px;padding:1px}.month-day__number{line-height:16px}.month-dots{height:8px}.month-dot{width:4px;height:4px}.month-dots small{font-size:8px}.month-week{gap:2px;margin-top:2px}.month-weekdays>span{padding:2px 0;line-height:12px}.month-jump{line-height:1.1}.browse-controls>.timeline-family{font-size:15px}}@media (width>=1000px) and (height>=600px){.month-card{padding:22px}.month-day{height:74px}}.calendar-page{max-width:none}html.tl-mode.calendar-mode .winter--snowman-overlay{z-index:-1}.month-jump small{color:#7c5cff;font-size:12px}.month-jump--text>span:first-child{visibility:hidden}.month-jump--text>input{opacity:1;font:inherit;text-align:center;color:#25304b;background:#fffdf8;border:1px solid #7c5cff;border-radius:8px}.month-event__people{flex-wrap:nowrap;gap:0;min-height:24px}.month-person{border:2px solid;border-radius:50%;flex:none;width:24px;height:24px;margin-left:-4px;overflow:hidden}.month-person:first-child{margin-left:0}.month-person__name{display:none}.month-event__people>small{white-space:nowrap;margin-left:6px;font-size:11px}.month-unassigned{border:1px solid;border-radius:0;flex:none;width:5px;height:5px;transform:rotate(45deg)}.month-content,.month-panel,.month-events{overflow-anchor:none}.etl-page .etl-head{flex-direction:column;gap:7px;padding-bottom:0;display:flex}.browse-top-row{justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.etl-page .browse-top-row .timeline-family{white-space:nowrap;flex:1;gap:4px;min-width:0;max-width:100%;margin:0;font-size:13px}.browse-top-row .timeline-family__choice{min-width:0;max-width:100%}.browse-top-row .timeline-family__current{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.browse-switch{border-radius:20px;flex:none}.etl-page .browse-switch button{gap:4px;min-height:30px;padding:4px 9px;font-size:12px}.browse-switch svg{width:14px;height:14px}.browse-controls{justify-content:center;padding:0;display:flex}.browse-controls:empty{display:none}.etl-page .browse-controls .browse-filter-banner{border-radius:10px;gap:10px;margin:0 auto 5px;padding:2px 8px;font-size:11px}.browse-filter-banner button{min-height:24px}.month-day{gap:1px;height:36px;min-height:36px;padding-block:1px}@media (width<=359px){.month-day{height:24px;min-height:24px;font-size:13px;line-height:14px}.month-dots{height:7px}}@media (orientation:landscape) and (height<=550px){.month-day{height:24px;min-height:24px}}@media (width>=1000px) and (height>=600px){.month-day{height:58px;min-height:58px}}.month-events{gap:10px}.month-panel,.month-events>.etl-item-wrap{min-width:0}html:has(.etl-page) .add-entry{padding-right:calc(var(--space-4) + var(--safe-right));justify-content:flex-end}html:has(.etl-page) .add-entry .btn--cat{gap:2px;width:88px;min-width:88px;height:88px;min-height:88px;padding:5px 5px 10px;font-size:12px}html:has(.etl-page) .add-entry .add-entry__cat{width:32px;height:38px}html:has(.etl-page) .feedback-cta.btn{--feedback-size:64px;font-size:11px}html.tl-mode .winter--snowman-overlay{--winter-feedback-right:calc(var(--space-4) + var(--safe-left) + 64px);--winter-add-left:calc(100vw - var(--space-4) - var(--safe-right) - 88px)}html.tl-mode:has(.etl-page) .winter--snowman-overlay{z-index:4;--winter-feedback-right:calc(var(--space-4) + var(--safe-left) + 64px);--winter-add-left:calc(100vw - var(--space-4) - var(--safe-right) - 88px)}@media (orientation:landscape) and (height<=550px){.month-day__number{line-height:14px}.month-dots{height:6px}}.etl-page,.etl-page.etl-page--week,.calendar-page{max-width:none;padding-top:8px}.etl-page .etl-head{border-bottom:1px solid var(--color-line);gap:7px;padding:0}.etl-page>.browse-controls{padding:0}.browse-top-row .timeline-family__current{align-items:center;line-height:1.3;display:flex}.month-panel{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.calendar-page .month-content{scrollbar-gutter:auto;padding-inline:0}.month-layout{max-width:none}.month-events{max-height:none;overflow:visible}@media (orientation:landscape) and (height<=550px){.calendar-page .month-content{padding-inline:72px 104px}}.etl-days{gap:0}.etl-day{gap:.65rem;min-height:1px;margin:.5rem 0}.etl-day__line{background:#222b4721;flex:1;height:1px}.etl-week__label{color:var(--color-text-muted);white-space:nowrap;margin:0;font-size:.75rem;font-weight:500;line-height:1.4}.wk-bar__range{font-size:.8rem}@media (orientation:landscape){.wk-col__label{white-space:nowrap;flex-direction:row;align-items:baseline;gap:.3rem}.wk-col__head{padding-top:.2rem;padding-bottom:.2rem}.wk-col{gap:.2rem}}@media (orientation:landscape) and (width<=740px){.wk-col__weekday,.wk-col__date{letter-spacing:0;font-size:.7rem}.wk-col__label{gap:.2rem}.wk-col__head{padding-inline:.1rem}}@media (orientation:landscape) and (width<=600px){.wk-col__weekday,.wk-col__date{font-size:.65rem}.wk-col__label{gap:.1rem}.wk-col__head{padding-inline:0}}.etl-item{position:relative}.etl-indicators{color:#9583c7;pointer-events:none;gap:.3rem;line-height:0;display:flex;position:absolute;bottom:.25rem;right:1.7rem}.etl-indicators svg{flex:none;width:17px;height:17px}.etl-item:has(.etl-indicators) .etl-chevron{align-self:flex-end;line-height:17px}.etl-item:has(.etl-indicators) .etl-body>:last-child:not(.etl-hw-status){padding-inline-end:calc(var(--etl-icons,1) * 22px)}.etl-item--week .etl-indicators,.etl-item--read-only .etl-indicators{right:.5rem}.etl-item--week .etl-indicators{bottom:.5rem}.etl-item--week:has(.etl-indicators) .etl-body>.etl-meta:last-child{padding-inline-end:0}.etl-item--week:has(.etl-indicators) .etl-meta>:last-child{padding-inline-end:calc(var(--etl-icons,1) * 22px)}.etl-item--week:has(.etl-indicators) .etl-meta>:last-child{box-sizing:border-box;min-width:0;max-width:100%}.etl-item--week:has(.etl-indicators) .etl-meta>:last-child time{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.etl-item--week:has(.etl-indicators) .etl-hw-status{max-width:calc(100% - (var(--etl-icons,1) * 22px));box-sizing:border-box}.etl-item--week:has(.etl-indicators) .etl-hw-status>span{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.etl-item--week:has(.etl-indicators) .etl-hw-status>svg{flex:none}@media (orientation:portrait){.etl-item--homework:not(.etl-item--week) .etl-hw-status{transform:translateY(-.6rem)}}.etl-category-icons{flex:none;align-items:center;gap:.25rem;display:inline-flex}.etl-sports-activity,.etl-school-activity{flex:none;line-height:0;display:inline-flex}.etl-item--week .etl-category-icons{gap:.15rem;position:absolute;top:.35rem;right:.35rem}.etl-item--week .etl-category-icons .etl-category-icon{position:static}.etl-item--week:has(.etl-sports-activity) .etl-who{padding-right:2.7rem}.etl-item:not(.etl-item--week):has(.etl-sports-activity) .etl-type{min-width:0}.etl-school-label{color:#6a4ae8;min-width:0;font-weight:700;line-height:1.15}.etl-item:not(.etl-item--week) .etl-school-label{font-size:.92rem}.etl-item--week .etl-school-label{font-size:.72rem}.etl-school-label--heading{color:inherit;font-size:1rem}.etl-item--week .etl-school-label--heading{font-size:.84rem}:is(.etl-top-row:has(.etl-school-activity),.etl-type:has(.etl-school-activity)){flex-wrap:nowrap;align-items:center}.etl-type:has(.etl-school-activity){flex:auto;min-width:0}.etl-type:has(.etl-school-activity) .etl-category{overflow-wrap:anywhere;min-width:0}.etl-top-row:has(.etl-school-activity) .etl-who{flex:0 auto;align-self:center;width:auto;max-width:46%;margin-left:auto}.etl-item--week:has(.etl-school-activity) .etl-who{padding-right:2.7rem}.etl-item--week .etl-title-row:has(.etl-school-label) .etl-school-label{margin-right:.25rem;display:inline}.etl-item:not(.etl-item--week) .etl-title-row:has(.etl-school-label){flex-wrap:nowrap}.etl-item:not(.etl-item--week) .etl-title-row:has(.etl-school-label) .etl-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.chips.filter-visuals{align-items:stretch;gap:.15rem;padding-bottom:.1rem}.filter-visual{--filter-accent:#7c5cff;min-height:52px;color:var(--color-navy);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:12px;flex-direction:column;flex:0 0 50px;justify-content:center;align-items:center;gap:.2rem;padding:0;display:flex;position:relative}.filter-visual[aria-pressed=true]:after{content:"✓";color:#fff;background:#5b3bd1;border-radius:50%;place-items:center;width:15px;height:15px;font-size:11px;font-weight:800;display:grid;position:absolute;top:0;right:2px}.filter-visual:focus-visible{outline-offset:2px;outline:3px solid #7c5cff}.filter-visual .avatar{flex:none;box-shadow:0 0 0 1px #0000001f}.filter-visual__label{text-overflow:ellipsis;white-space:nowrap;max-width:48px;font-size:.65rem;font-weight:650;line-height:1.2;display:block;overflow:hidden}.filter-visual__reset-icon{color:#6d4de0;flex:none}.chips--dark .filter-visual{color:#fff;flex-basis:44px;min-height:44px;padding:.2rem}.chips--dark .filter-visual__label{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.chips--dark .filter-visual__reset-icon{color:#c5b6ff}.chips--dark .filter-visual:focus-visible{outline-color:#fff}.filter-visuals--people .filter-visual .avatar{box-shadow:0 0 0 2px var(--filter-accent)}.timeline-family{align-items:center;gap:.45rem;max-width:100%;min-height:32px;margin:0;display:flex}.timeline-family__label{color:var(--color-muted);flex:none;font-size:.8rem}.timeline-family__choice{border-radius:4px;min-width:0;max-width:100%;display:inline-flex;position:relative}.timeline-family__current{align-items:center;gap:.3rem;min-width:0;min-height:32px;font-size:.9rem;font-weight:650;display:flex}.timeline-family__name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.timeline-family__current svg{flex:none}.timeline-family__select{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.timeline-family__choice:focus-within{outline-offset:2px;outline:2px solid #7c5cff}.etl-page.etl-page--week{padding-top:0}.etl-page.etl-page--week .etl-head{border:0;gap:0;min-height:0;padding:0}.etl-page--week .wk-bar{gap:.35rem;min-height:32px;padding:0}.wk-bar__range{white-space:nowrap}.wk-bar__family{min-width:0;max-width:40%;margin-left:auto}.wk-bar__family .timeline-family{gap:.2rem;min-height:28px}.wk-bar__family .timeline-family__label{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.wk-bar__family .timeline-family__current{white-space:nowrap;text-overflow:ellipsis;min-height:28px;font-size:1rem;overflow:hidden}.wk-bar__family .timeline-family__current:not([aria-hidden]){display:block}.page.etl-page{max-width:none;padding-top:8px}.page.etl-page .etl-head{border-bottom:1px solid var(--color-line);gap:7px;padding:0}.etl-head .chips.filter-visuals,.topbar-filters .chips.filter-visuals{padding-bottom:.1rem}.add-entry .btn.btn--cat{border:3px solid var(--color-lilac);background:var(--color-navy);width:132px;min-width:132px;height:132px;min-height:132px;color:var(--color-lilac);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:8px 8px 18px;font-size:16px;line-height:1.2;text-decoration:none;display:flex}.add-entry .btn--cat .add-entry__cat{flex:none;width:54px;height:65px}.add-entry__label{white-space:nowrap;font-weight:700}.add-entry .btn--cat:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}.etl-page .etl-scroll{padding-bottom:calc(10rem + var(--safe-bottom))}.shell-bell__badge{color:#fff;background:#e84956}.notification-inbox{max-width:900px}.inbox-heading{color:var(--ink,#202943);align-items:center;gap:16px;display:flex}.inbox-heading>svg{flex:0 0 48px;width:48px;height:48px}.inbox-heading h1{margin:0}.inbox-heading p{margin:4px 0 12px}.inbox-section{padding:20px}.inbox-section h2{margin:0 0 18px;font-size:1.35rem}.inbox-section--unread h2{border-left:5px solid #8055d8;padding-left:12px}.inbox-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.inbox-item{background:#f2eafa;border-radius:16px;align-items:center;gap:12px;min-width:0;padding:12px;display:flex}.inbox-icon{color:#6e3baf;background:#e9dbf7;border-radius:12px;flex:0 0 48px;place-items:center;width:48px;height:48px;display:grid}.inbox-copy{flex:1;min-width:0}.inbox-copy strong{overflow-wrap:anywhere;font-size:1.05rem;display:block}.inbox-copy time{margin-top:4px;font-size:.88rem;display:block}.inbox-mark{color:#63339f;font:inherit;cursor:pointer;background:0 0;border:1.5px solid #7646b4;border-radius:12px;min-height:44px;padding:10px 12px;font-size:.9rem;font-weight:650}.inbox-mark:disabled{opacity:.6;cursor:wait}.inbox-mark:focus-visible,.inbox-settings summary:focus-visible{outline-offset:3px;outline:3px solid #8656df}.inbox-item--read{background:#fbfafc;border:1px solid #eee9ef}.inbox-item--read .inbox-icon{color:#62677d;background:#eeedf2}.inbox-read{white-space:nowrap;background:#eae8ee;border-radius:12px;padding:5px 9px;font-size:.8rem}.inbox-settings summary{cursor:pointer;min-height:44px;padding:4px 0}.inbox-settings summary span{vertical-align:middle;display:inline-block}.inbox-settings summary strong{font-size:1.2rem}.inbox-settings summary small{margin-top:4px;display:block}.inbox-settings[open]>div{margin-top:20px}.inbox-settings .card{box-shadow:none;border:0;padding:0}@media (width<=480px){.inbox-section{padding:16px 12px}.inbox-item{grid-template-columns:42px minmax(0,1fr);gap:8px 10px;display:grid}.inbox-icon{width:42px;height:42px}.inbox-mark,.inbox-read{grid-column:2;justify-self:start}.inbox-mark{padding:8px 12px}.inbox-heading{gap:10px}.inbox-heading>svg{flex-basis:36px;width:36px;height:36px}}.inbox-item{grid-template-columns:36px minmax(0,1fr) 90px;align-items:center;gap:10px;padding:10px;display:grid}.inbox-icon{align-self:start;width:36px;height:36px}.inbox-icon>svg{width:30px;height:30px}.inbox-mark{grid-column:3;justify-self:stretch;padding:7px;font-size:.78rem;line-height:1.2}.inbox-copy time{opacity:.8;font-size:.72rem}.inbox-people{flex-wrap:wrap;align-items:center;gap:3px 6px;min-width:0;margin-top:5px;display:flex}.inbox-avatar-stack{width:min(100%, calc(28px + (var(--people-count) - 1) * 18px));flex-shrink:0;margin:0;padding:0;list-style:none;display:flex}.inbox-avatar-stack>li{flex:1 1 0;min-width:0;height:28px;position:relative}.inbox-avatar-stack>li:last-child{flex:0 0 28px}.inbox-person-avatar{box-sizing:border-box;border:2px solid #fff}.inbox-initials{background:#ddd2ee;border:2px solid #fff;border-radius:50%;place-items:center;width:28px;height:28px;display:grid}.inbox-people-names{white-space:nowrap;text-overflow:ellipsis;flex:50px;min-width:50px;max-width:100%;margin-top:2px;font-size:.73rem;display:block;overflow:hidden}.inbox-entry-meta{overflow-wrap:anywhere;margin-top:3px;font-size:.78rem}.inbox-location:before{content:"⌖ "}.inbox-entry-notes{white-space:nowrap;text-overflow:ellipsis;margin:3px 0 0;font-size:.75rem;overflow:hidden}@media (width<=480px){.inbox-item{grid-template-columns:30px minmax(0,1fr) 78px;gap:7px;padding:9px}.inbox-icon{width:30px;height:30px}.inbox-icon>svg{width:26px;height:26px}.inbox-mark{grid-column:3;justify-self:stretch;padding:6px;font-size:.73rem}.inbox-copy strong{font-size:.93rem}}.welcome-intro{gap:1.25rem;max-width:40rem}.welcome-intro h1{margin:0 0 .75rem}.welcome-intro .eyebrow{color:#5b45c9;margin:0 0 .25rem}.welcome-intro__hero{border-radius:var(--radius-lg);background:radial-gradient(90% 120% at 15% 0,#7c5cff61,#0000 60%),radial-gradient(70% 90% at 100% 100%,#a995ff40,#0000 60%),linear-gradient(160deg,#141a2e 0%,#0b0f1a 100%);height:12.5rem;position:relative;overflow:hidden;box-shadow:0 10px 30px #1f2a4438}.welcome-intro__scene{width:100%;height:100%;position:absolute;inset:0}.welcome-intro__cat{color:#a995ff;filter:drop-shadow(0 4px 10px #a995ff8c)}.welcome-intro__cat--lead{color:#7c5cff;filter:drop-shadow(0 6px 18px #7c5cffbf)}.welcome-intro__cat--dim{opacity:.8}.welcome-intro__yarn{filter:drop-shadow(0 0 8px #7c5cffb3)}.welcome-intro__badge{color:#eef0f8;letter-spacing:.01em;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff1a;border:1px solid #ffffff24;border-radius:999px;align-items:center;gap:.4rem;padding:.3rem .75rem;font-size:.8rem;font-weight:600;display:inline-flex;position:absolute;bottom:.9rem;left:1rem}.welcome-intro__badge i{background:#b9a6ff;border-radius:50%;width:.5rem;height:.5rem;box-shadow:0 0 10px #a995ff}.welcome-intro__lead{color:var(--color-navy);margin:0 0 .5rem;font-size:1.12rem;font-weight:600}.welcome-intro__body{color:var(--color-text-muted);margin:0;font-size:.98rem}.welcome-intro__perks{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);margin:0;padding:0;list-style:none}.welcome-intro__perks li{align-items:flex-start;gap:.85rem;padding:.9rem 1rem;display:flex}.welcome-intro__perks li+li{border-top:1px solid var(--color-line,#ece5d8)}.welcome-intro__perk-icon{color:#5b45c9;background:linear-gradient(140deg,#ece6ff,#d7cce7);border-radius:.75rem;flex:none;place-items:center;width:2.25rem;height:2.25rem;display:grid}.welcome-intro__perk-icon svg{width:1.2rem;height:1.2rem}.welcome-intro__perk-title{margin:0;font-size:.98rem;font-weight:650;line-height:1.3}.welcome-intro__perk-hint{color:var(--color-text-muted);margin:.1rem 0 0;font-size:.88rem;line-height:1.4}.welcome-intro__cta{flex-direction:column;gap:.6rem;margin-top:.25rem;display:flex}.welcome-intro__btn.btn{border-radius:999px;gap:.5rem;width:100%;min-height:3.1rem;font-size:1.05rem}.welcome-intro__arrow{font-size:1.15rem}.welcome-intro__hint{text-align:center;color:var(--color-text-muted);margin:0;font-size:.85rem}@media (width<=359px){.welcome-intro__badge{padding:.25rem .6rem;font-size:.72rem;left:.75rem}}.dashboard .home-actions .add-entry .btn.btn--cat{gap:3px;padding:6px 6px 12px;font-size:12px}.dashboard .home-actions .add-entry .add-entry__cat{width:36px;height:42px}html.tl-mode:has(.home-actions) .winter--snowman-overlay{--winter-feedback-right:calc(var(--space-4) + var(--safe-left) + 64px);--winter-add-left:calc(50vw - 48px)}.etl-page .etl-item.etl-item--week .etl-category-icons .etl-category-icon{position:static}@media (orientation:landscape) and (height<=550px){.dashboard .home-actions .add-entry .btn.btn--cat{gap:2px;padding:4px 4px 8px;font-size:10px}.dashboard .home-actions .add-entry .add-entry__cat{width:28px;height:32px}html.tl-mode .home-actions .feedback-cta.btn{--feedback-size:48px;font-size:9px}html.tl-mode:has(.home-actions) .winter--snowman-overlay{--winter-feedback-right:calc(100vw - var(--space-4) - var(--safe-right) - 136px);--winter-add-left:calc(100vw - var(--space-4) - var(--safe-right) - 128px)}}.shell-topbar .shell-bell__badge{color:#fff;background:#e84956}.new-entry-card .category-activity-grid{grid-template-columns:repeat(4,minmax(0,1fr))}html.calendar-mode .calendar-page .month-content{padding-bottom:calc(128px + var(--safe-bottom))}@media (orientation:landscape) and (height<=550px){html.calendar-mode .calendar-page .month-content{padding-bottom:8px}}
