.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}}: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__error{color:var(--color-error-text);font-size:.85rem}.field-row{gap:var(--space-3);grid-template-columns:1fr 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}.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-days{gap:var(--space-3)}.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--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.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{margin:0;display:flex}.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}.auth-layout{isolation:isolate;position:relative;overflow:hidden}.auth-layout>.auth-layout__inner{z-index:1;position:relative}.hw{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.hw svg{display:block;position:absolute}.hw-web{color:#b3aade;opacity:.3}.hw-spider{color:#b9b1e6;opacity:.6}.hw-pumpkin{color:#ff7518}.hw-web--tl,.hw-web--tr{width:clamp(5.5rem,22vw,9.5rem);height:auto;top:0}.hw-web--tl{left:0}.hw-web--tr{right:0;transform:scaleX(-1)}.hw-spider--auth{transform-origin:50% 0;width:.9rem;height:clamp(3.4rem,11vw,5.2rem);animation:7s ease-in-out infinite hw-dangle;top:0;right:clamp(2.2rem,8vw,3.6rem)}.hw-pumpkin--auth{left:clamp(.9rem,4vw,2rem);bottom:calc(var(--safe-bottom) + .9rem);opacity:.92;width:1.9rem;height:auto}.hw-pumpkin--auth-small{left:calc(clamp(.9rem,4vw,2rem) + 1.75rem);bottom:calc(var(--safe-bottom) + .9rem);opacity:.85;width:1.25rem;height:auto}.shell-topbar{isolation:isolate}.shell-topbar>:not(.hw){z-index:1;position:relative}.hw--shell .hw-web{opacity:.26;width:3.4rem;height:auto;top:0}.hw-web--bar-left{left:0}.hw-web--bar-right{right:0;transform:scaleX(-1)}.hw-spider--bar{top:0;left:calc(var(--safe-left) + 3.3rem);opacity:.45;width:.55rem;height:1.55rem}.shell-brand .hw-pumpkin--brand{color:#ff7518;opacity:.95;flex:none;width:.95rem;height:auto;margin:0 0 .22rem .2rem}.hw--page{top:calc(env(safe-area-inset-top,0px) + var(--tap-size) + 1rem);z-index:4;position:fixed}.hw--page .hw-web--tl,.hw--page .hw-web--tr{width:clamp(4.5rem,18vw,7.5rem)}.hw--page .hw-web{color:#8a78e0;opacity:.55}.hw--page .hw-spider{color:#5a48c0;opacity:.85}.hw-spider--page{transform-origin:50% 0;width:.9rem;height:clamp(3.4rem,11vw,5.2rem);animation:7s ease-in-out infinite hw-dangle;top:0;right:.6rem}@keyframes hw-dangle{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(.35rem)rotate(1.5deg)}}@media (prefers-reduced-motion:reduce){.hw-spider--auth,.hw-spider--page{animation:none}}
