.guide-view{height:100%;overflow-y:auto;overscroll-behavior:contain;scroll-behavior:smooth;padding:max(12px,env(safe-area-inset-top)) 12px max(104px,calc(env(safe-area-inset-bottom) + 88px));color:var(--ink);background:var(--surface-sunken)}.guide-wrap{width:min(100%,1120px);margin:auto}.guide-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(240px,.8fr);min-height:460px;overflow:hidden;padding:clamp(32px,5vw,68px);isolation:isolate;color:#fff;background:radial-gradient(circle at 75% 20%,#487bef 0,transparent 28%),radial-gradient(circle at 25% 120%,#12407e 0,transparent 35%),linear-gradient(130deg,#0b2547,#153b80 68%,#2763c2);border-radius:var(--radius-sheet);box-shadow:0 24px 60px #05215633}.guide-hero:after{position:absolute;z-index:-1;inset:0;background-image:radial-gradient(rgba(255,255,255,.2) 1px,transparent 1px);background-size:22px 22px;-webkit-mask-image:linear-gradient(to right,transparent 35%,#000);mask-image:linear-gradient(to right,transparent 35%,#000);content:""}.guide-hero-content{position:relative;z-index:2;align-self:center}.guide-eyebrow,.guide-kicker,.guide-section-number{display:inline-flex;align-items:center;gap:8px;font-size:var(--font-size-12);font-weight:var(--font-weight-800);letter-spacing:.12em;text-transform:uppercase}.guide-eyebrow{color:#b8dcff}.guide-sparkle{color:#b6f4d9;font-size:var(--font-size-26);line-height:.6}.guide-hero h1{max-width:650px;margin:24px 0 8px;font-size:clamp(2.55rem,6vw,5.1rem);line-height:.99;letter-spacing:-.065em}.guide-hero h1 em{margin-left:.1em;color:#bbf2d3;font-style:normal}.guide-hero-lead{margin:18px 0;font-size:clamp(1.18rem,2vw,1.55rem);font-weight:var(--font-weight-800);letter-spacing:-.02em}.guide-hero-description{max-width:560px;margin:0;color:#d9e9ff;font-size:var(--font-size-15);line-height:1.65}.guide-hero-link{display:inline-flex;min-height:48px;align-items:center;gap:24px;margin-top:26px;padding:10px 19px;color:#102e59;font-size:var(--font-size-14);font-weight:var(--font-weight-800);text-decoration:none;background:#baf3d5;border-radius:var(--radius-pill);transition:transform .2s,background .2s}.guide-hero-link:hover{transform:translateY(-3px);background:#ddffe9}.guide-hero-link span{font-size:var(--font-size-20)}.guide-hero-art{position:relative;min-height:310px;align-self:center}.guide-orbit{position:absolute;inset:3% 5%;border:1px solid rgba(255,255,255,.24);border-radius:50%;transform:rotate(-25deg)}.guide-orbit-two{inset:19%;border-color:#c3eff73b;transform:rotate(30deg)}.guide-hero-card{position:absolute;display:flex;flex-direction:column;gap:7px;border-radius:var(--radius-sheet);box-shadow:0 25px 50px #00123547}.guide-hero-card-main{top:24%;left:8%;width:min(78%,300px);padding:25px 23px;color:#142744;background:#fff;transform:rotate(-8deg)}.guide-hero-card-main small{color:#667991;font-size:var(--font-size-11);font-weight:var(--font-weight-800);letter-spacing:.09em}.guide-hero-card-main strong{font-size:var(--font-size-20)}.guide-hero-card-main span{align-self:flex-start;padding:6px 11px;color:#136650;font-size:var(--font-size-13);font-weight:var(--font-weight-800);background:#daf6e9;border-radius:var(--radius-pill)}.guide-hero-card-side{right:0;bottom:17%;width:min(67%,220px);padding:17px 19px;color:#3c255c;background:#f7e9ff;transform:rotate(8deg)}.guide-hero-card-side b{font-size:var(--font-size-17)}.guide-hero-card-side small{color:#6b5884}.guide-hero-star{position:absolute;top:6%;right:16%;color:#baf3d5;font-size:5rem;line-height:1}.guide-intro{scroll-margin-top:20px;margin:34px 0 46px}.guide-video{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(18px,4vw,48px);align-items:center;margin:34px 0 0;padding:clamp(18px,3vw,32px);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sheet)}.guide-video h2{margin:8px 0 10px;font-size:clamp(1.4rem,2.6vw,2rem);line-height:1.15;letter-spacing:-.04em}.guide-video-copy p{margin:0;color:var(--muted-deep);line-height:1.6}.guide-video-player{display:block;width:auto;height:min(72vh,640px);max-width:100%;aspect-ratio:9 / 16;background:#0b1730;border-radius:var(--radius-card)}@media(max-width:720px){.guide-video{grid-template-columns:1fr}.guide-video-player{justify-self:center;height:auto;width:min(100%,40.5vh)}}.guide-intro-title{max-width:680px}.guide-kicker{color:var(--blue)}.guide-intro h2{margin:8px 0 10px;font-size:clamp(1.6rem,3vw,2.3rem);line-height:1.15;letter-spacing:-.04em}.guide-intro-title p{margin:0;color:var(--muted-deep);line-height:1.6}.guide-chapter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-top:23px}.guide-chapter{position:relative;display:flex;min-height:175px;flex-direction:column;padding:17px;color:var(--ink);text-decoration:none;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:0 8px 20px #122c510a;transition:transform .18s,border-color .18s,box-shadow .18s}.guide-chapter:hover,.guide-chapter:focus-visible{transform:translateY(-5px);border-color:var(--tint-line, var(--blue-mid));box-shadow:0 15px 30px #122c5121}.guide-chapter:active{transform:translateY(-2px) scale(.985)}.guide-chapter-top{display:flex;justify-content:space-between;gap:5px;color:var(--muted);font-size:var(--font-size-11);font-weight:var(--font-weight-800)}.guide-chapter-top span:first-child{color:var(--blue)}.guide-chapter-icon{display:grid;width:44px;height:44px;place-items:center;margin:16px 0 12px;font-size:var(--font-size-20);line-height:1;background:var(--tint);border:1px solid var(--tint-line);border-radius:var(--radius-card)}.guide-family-icon{display:grid;grid-template-columns:repeat(2,9px);gap:4px}.guide-family-icon i{width:9px;height:9px;border-radius:50%}.guide-chapter-arrow{transition:transform .2s}.guide-chapter:hover .guide-chapter-arrow,.guide-chapter:focus-visible .guide-chapter-arrow{transform:translate(3px,-3px)}@media(prefers-reduced-motion:no-preference){.guide-chapter-grid:not(.is-seen) .guide-chapter{opacity:0;translate:0 14px}.guide-chapter-grid.is-seen .guide-chapter{animation:guide-chapter-in .45s cubic-bezier(.2,.7,.3,1) both;animation-delay:calc(var(--i) * 60ms)}.guide-chapter-grid.is-seen .guide-chapter-icon{animation:guide-icon-hop .6s ease-out both;animation-delay:calc(.45s + var(--i) * 90ms)}.guide-chapter:hover .guide-chapter-glyph,.guide-chapter:focus-visible .guide-chapter-glyph,.guide-chapter:active .guide-chapter-glyph{animation:guide-icon-wiggle .5s ease-in-out}}.guide-chapter-glyph{display:grid;place-items:center}@keyframes guide-chapter-in{0%{opacity:0;translate:0 14px}to{opacity:1;translate:0 0}}@keyframes guide-icon-hop{0%,to{translate:0 0;rotate:0deg}35%{translate:0 -7px;rotate:-6deg}65%{translate:0 1px;rotate:2deg}}@keyframes guide-icon-wiggle{0%,to{transform:none}30%{transform:rotate(-10deg) scale(1.1)}65%{transform:rotate(7deg) scale(1.1)}}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .guide-chapter-icon{background:var(--event-dark-bg);border-color:var(--event-dark-border)}}:root[data-theme=dark] .guide-chapter-icon{background:var(--event-dark-bg);border-color:var(--event-dark-border)}.guide-chapter strong{max-width:140px;font-size:var(--font-size-15);line-height:1.22}.guide-chapter-arrow{position:absolute;right:16px;bottom:14px;color:var(--blue);font-size:var(--font-size-20)}.guide-principle{display:flex;gap:13px;align-items:center;margin-top:18px;padding:14px 18px;background:var(--blue-soft);border:1px solid var(--blue-line);border-radius:var(--radius-card)}.guide-principle>span{color:var(--blue);font-size:var(--font-size-26)}.guide-principle p{margin:0;color:var(--ink-soft);line-height:1.5}.guide-section{scroll-margin-top:20px;margin:26px 0;padding:clamp(20px,3vw,34px);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sheet);box-shadow:0 10px 28px #1c32510b}.guide-section-heading{max-width:760px}.guide-section-number{color:var(--blue)}.guide-section h2{margin:10px 0 8px;font-size:clamp(1.45rem,3vw,2.35rem);line-height:1.14;letter-spacing:-.04em}.guide-section-heading>p{margin:0;color:var(--muted-deep);font-size:var(--font-size-15);line-height:1.55}.guide-section-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,390px);align-items:start;gap:clamp(24px,5vw,65px);margin-top:27px}.guide-copy{min-width:0;color:var(--ink-soft);line-height:1.65}.guide-steps{display:grid;gap:20px;margin:0 0 22px;padding:0;list-style:none;counter-reset:steps}.guide-steps li{display:grid;grid-template-columns:31px minmax(0,1fr);gap:13px;align-items:start;counter-increment:steps}.guide-steps li:before{display:grid;width:30px;height:30px;place-items:center;color:var(--blue-ink);font-size:var(--font-size-12);font-weight:var(--font-weight-800);background:var(--blue-soft);border-radius:50%;content:counter(steps)}.guide-copy b,.guide-exception-card b,.guide-exception-foot b{color:var(--ink)}.guide-hint{margin:24px 0;padding:16px 18px;color:var(--muted-deep);line-height:1.6;background:var(--surface-sunken);border-left:3px solid var(--blue-mid);border-radius:0 11px 11px 0}.guide-hint-safety{margin-top:-8px;border-left-color:#e6a041}.guide-action{display:inline-flex;min-height:46px;align-items:center;justify-content:space-between;gap:18px;padding:10px 17px;color:#fff;font:inherit;font-size:var(--font-size-14);font-weight:var(--font-weight-800);background:var(--blue-strong);border:0;border-radius:var(--radius-control);cursor:pointer;transition:transform .2s,filter .2s}.guide-action:hover{transform:translateY(-2px);filter:brightness(1.08)}.guide-action span{font-size:var(--font-size-17)}.guide-shot-stack{display:grid;min-width:0;gap:19px}.guide-figure{min-width:0;margin:0;padding:10px;background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:0 14px 32px #122c5112}.guide-shot-topline{display:flex;align-items:center;gap:7px;padding:5px 5px 11px;color:var(--muted);font-size:var(--font-size-11);font-weight:var(--font-weight-800);letter-spacing:.07em;text-transform:uppercase}.guide-shot-topline>span:last-child{margin-left:auto;color:var(--blue)}.guide-shot-dot{width:7px;height:7px;background:#4ccf95;border-radius:50%}.guide-shot{position:relative;width:100%;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-control)}.guide-shot img{display:block;width:100%;height:100%;object-fit:cover}.guide-tap{position:absolute;z-index:1;display:grid;width:40px;height:40px;place-items:center;transform:translate(-50%,-50%);pointer-events:none}.guide-tap:before{position:absolute;inset:2px;border:3px solid #126de6;border-radius:50%;background:#ffffffa6;box-shadow:0 0 0 2px #fff,0 2px 10px #0c326947;content:"";animation:guide-tap-pulse 2.2s ease-out infinite}.guide-tap span{z-index:1;width:9px;height:9px;background:#126de6;border:2px solid #fff;border-radius:50%}@keyframes guide-tap-pulse{0%,20%{transform:scale(.75);opacity:1}65%,to{transform:scale(1.45);opacity:.42}}.guide-figure figcaption{margin:10px 4px 4px;color:var(--muted-deep);font-size:var(--font-size-13);line-height:1.5}.guide-figure figcaption a{display:inline-block;margin-left:5px;color:var(--blue-ink);font-weight:var(--font-weight-800);white-space:nowrap}.guide-section-featured{background:linear-gradient(135deg,var(--surface),var(--blue-soft));border-color:var(--blue-line)}.guide-flow{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:25px;padding:13px;background:var(--surface);border:1px solid var(--blue-line);border-radius:var(--radius-card)}.guide-flow span{display:inline-flex;align-items:center;gap:9px;color:var(--ink);font-size:var(--font-size-14);font-weight:var(--font-weight-800)}.guide-flow b{display:grid;width:25px;height:25px;place-items:center;color:#fff;background:var(--blue-strong);border-radius:50%}.guide-flow i{color:var(--blue);font-style:normal}.push-guide-source{margin-top:16px;color:var(--ink);font-size:var(--font-size-13)}.push-guide-routes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:9px}.push-guide-route{display:grid;align-content:start;gap:5px;padding:12px;color:var(--muted-deep);line-height:1.45;background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--radius-control)}.push-guide-route b{color:var(--ink)}.push-guide-suppression{display:grid;justify-items:center;margin:7px 0;color:var(--blue)}.push-guide-suppression>span{font-size:var(--font-size-20);font-weight:var(--font-weight-800);line-height:1}.push-guide-suppression p{max-width:720px;margin:3px 0;padding:10px 12px;color:var(--ink);font-size:var(--font-size-13);line-height:1.5;text-align:center;background:var(--blue-soft);border:1px solid var(--blue-line);border-radius:var(--radius-control)}.push-guide-suppression b{color:var(--ink)}.push-guide-diagram{min-width:0;margin:24px 0 0;padding:clamp(14px,2.5vw,22px);background:var(--surface);border:1px solid var(--blue-line);border-radius:var(--radius-card)}.push-guide-diagram>figcaption{margin-bottom:14px;color:var(--ink);font-size:var(--font-size-16);font-weight:var(--font-weight-800)}.push-guide-flow{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:8px}.push-guide-step{display:grid;min-width:0;align-content:start;gap:5px;padding:12px;color:var(--ink);background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--radius-control)}.push-guide-step>span{display:grid;width:25px;height:25px;place-items:center;color:var(--on-accent);font-size:var(--font-size-12);font-weight:var(--font-weight-800);background:var(--accent-fill);border-radius:50%}#guide-push .guide-action{color:var(--on-accent);background:var(--accent-fill)}#guide-push .guide-section-number,.guide-chapter[href="#guide-push"] .guide-chapter-top span:first-child{color:var(--accent-text)}.push-guide-step strong{font-size:var(--font-size-13);line-height:1.35}.push-guide-step small{color:var(--muted-deep);font-size:var(--font-size-12);line-height:1.4}.push-guide-arrow{align-self:center;color:var(--blue);font-size:var(--font-size-20)}.push-guide-text-equivalent{margin:12px 0 0;color:var(--muted-deep);font-size:var(--font-size-12);line-height:1.5}.push-guide-text-equivalent b{color:var(--ink)}.guide-push-rules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}.guide-push-rules article{min-width:0;padding:16px;background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--radius-card)}.guide-push-rules h3{margin:0 0 7px;color:var(--ink);font-size:var(--font-size-15)}.guide-push-rules p{margin:0;color:var(--muted-deep);font-size:var(--font-size-13);line-height:1.55}.guide-push-rules+.guide-hint{margin-top:18px}.guide-exception-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:25px}.guide-exception-card{min-width:0;padding:21px;background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--radius-card)}.guide-exception-symbol{color:var(--blue);font-size:2rem;line-height:1}.guide-exception-card h3{margin:10px 0 7px;font-size:var(--font-size-20);letter-spacing:-.025em}.guide-exception-card p{margin:0 0 18px;color:var(--ink-soft);line-height:1.6}.guide-exception-card .guide-figure{max-width:430px}.guide-exception-foot{margin-top:18px;padding:18px 20px;color:var(--ink-soft);line-height:1.6;background:var(--blue-soft);border-radius:var(--radius-card)}.guide-exception-foot p{margin:0}.guide-exception-foot p+p{margin-top:10px}.guide-exception-foot strong{color:var(--ink)}.guide-route{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:24px}.guide-route>div{display:grid;align-content:start;gap:7px;padding:20px;background:var(--blue-soft);border:1px solid var(--blue-line);border-radius:var(--radius-card)}.guide-route-icon{display:grid;width:38px;height:38px;place-items:center;margin-bottom:5px;color:#fff;font-size:var(--font-size-20);background:var(--blue-strong);border-radius:var(--radius-control)}.guide-route strong{color:var(--ink);font-size:var(--font-size-17)}.guide-route p{margin:0;color:var(--ink-soft);line-height:1.55}.guide-shot-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:18px;margin-top:20px}.guide-section-navigation>.guide-hint{margin-bottom:0}.guide-float-nav{position:fixed;z-index:30;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:4px;padding:5px;color:var(--ink);background:var(--surface);border:1px solid var(--blue-line);border-radius:var(--radius-sheet);box-shadow:0 16px 46px #05215647}.guide-float-nav button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:8px;padding:9px 14px;color:var(--blue-ink);font:inherit;font-size:var(--font-size-13);font-weight:var(--font-weight-800);background:transparent;border:0;border-radius:var(--radius-control);cursor:pointer}.guide-float-nav button:hover{background:var(--blue-soft)}.guide-float-nav button:focus-visible{outline:2px solid var(--blue-strong);outline-offset:-2px}.guide-float-nav button>span:first-child{font-size:var(--font-size-20);line-height:1}.guide-float-nav svg{width:18px;height:18px}.guide-float-divider{width:1px;height:25px;background:var(--line)}.guide-footer{position:relative;display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:18px;margin:35px 0 14px;padding:30px;color:#fff;background:#103362;border-radius:var(--radius-sheet)}.guide-footer div{max-width:610px}.guide-footer-mark{color:#baf3d5;font-size:2rem}.guide-footer h2{margin:5px 0 7px;font-size:var(--font-size-26);letter-spacing:-.035em}.guide-footer p{margin:0;color:#d5e7fa;line-height:1.55}.guide-footer .guide-action{color:#102e59;background:#baf3d5}.guide-footer>a{width:100%;color:#cfe0f6;font-size:var(--font-size-13);font-weight:var(--font-weight-800)}@media(max-width:850px){.guide-hero{grid-template-columns:1fr}.guide-hero-art{position:absolute;right:-70px;bottom:-60px;width:360px;opacity:.23}.guide-chapter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.guide-section-body{grid-template-columns:minmax(0,1fr) minmax(230px,320px);gap:25px}}@media(max-width:850px){.push-guide-flow{grid-template-columns:repeat(2,minmax(0,1fr))}.push-guide-arrow{display:none}.guide-push-rules{grid-template-columns:minmax(0,1fr)}}@media(max-width:680px){.guide-hero{min-height:auto;padding:35px 23px 40px;border-radius:var(--radius-sheet)}.guide-hero-content{padding-right:30px}.guide-hero h1{max-width:420px;margin-top:21px}.guide-hero-art{display:none}.guide-chapter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.guide-chapter{min-height:145px}.guide-chapter-icon{margin:12px 0 9px}.guide-section-body,.guide-exception-grid,.guide-route,.guide-shot-pair{grid-template-columns:1fr}.guide-shot-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.guide-shot-pair .guide-figure{width:min(100%,390px);justify-self:center}.guide-exception-card .guide-figure{margin:auto}}@media(max-width:460px){.guide-view{padding-inline:8px}.guide-hero h1{font-size:clamp(2.4rem,11vw,3.3rem)}.guide-hero-description{font-size:var(--font-size-15)}.guide-section{padding:21px 17px;border-radius:var(--radius-sheet)}.guide-shot-stack{grid-template-columns:1fr}.guide-figure{width:min(100%,390px);justify-self:center}.guide-flow i{display:none}.guide-flow span{flex:1 1 100%}.guide-footer{padding:24px}}@media(max-width:460px){.push-guide-routes,.push-guide-flow{grid-template-columns:minmax(0,1fr)}.push-guide-suppression p{text-align:left}}@media(prefers-reduced-motion:reduce){.guide-view{scroll-behavior:auto}.guide-tap:before{animation:none}.guide-chapter,.guide-action,.guide-hero-link{transition:none}}.product-shell{display:flex;height:100dvh;flex-direction:column;overflow:hidden;background:var(--surface-page)}.product-main{min-height:0;flex:1;overflow:hidden}.product-main .app-shell{height:100%;min-height:0}.kept-view{display:contents}.kept-view--hidden{position:absolute;inset:0;display:block;visibility:hidden;pointer-events:none}.menu-layer{position:fixed;inset:0;z-index:80;display:flex;justify-content:flex-end;background:#0c192e7a;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:menu-fade .18s ease-out}.menu-layer.is-closing{animation:menu-fade-out .18s ease-in forwards}.menu-drawer{display:flex;width:min(100%,420px);height:100%;flex-direction:column;overflow-y:auto;padding:max(14px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) 18px;color:var(--ink);background:var(--surface);box-shadow:-18px 0 60px #0a1c3633;animation:menu-slide .24s cubic-bezier(.2,.72,.2,1)}.menu-layer.is-closing .menu-drawer{animation:menu-slide-out .18s ease-in forwards}.offline-bar{position:fixed;top:0;right:0;left:0;z-index:60;padding:7px 14px calc(7px + env(safe-area-inset-top));color:var(--warn-ink);font-size:var(--font-size-13);font-weight:var(--font-weight-650);text-align:center;background:var(--warn-soft);border-bottom:1px solid var(--warn-line)}.menu-drawer header{display:flex;min-height:68px;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--surface-muted)}.menu-drawer header>div{display:grid;gap:3px}.menu-drawer header span{color:var(--blue);font-size:var(--font-size-12);font-weight:var(--font-weight-800);letter-spacing:.08em;text-transform:uppercase}.menu-drawer header strong{font-size:var(--font-size-17)}.menu-links{display:grid;gap:8px;padding:22px 0}.menu-links button,.menu-links a{display:grid;min-height:68px;align-content:center;gap:4px;padding:10px 14px;color:var(--ink);text-align:left;text-decoration:none;background:var(--surface-sunken);border:1px solid transparent;border-radius:var(--radius-control);cursor:pointer}.menu-links button span,.menu-links a span{display:flex;align-items:center;gap:7px;font-weight:var(--font-weight-800)}.menu-count{display:grid;min-width:19px;height:19px;padding:0 5px;place-items:center;color:var(--surface);font-size:var(--font-size-11);font-style:normal;font-weight:var(--font-weight-800);line-height:1;background:var(--blue-strong, var(--blue-strong));border-radius:var(--radius-pill)}.menu-links button small,.menu-links a small{color:var(--muted);font-size:var(--font-size-12)}.menu-links>:not(.menu-guide-link){display:grid;grid-template-columns:40px minmax(0,1fr) 20px;align-items:center;column-gap:12px;min-height:68px;background:var(--surface-sunken);border-color:transparent}.menu-links>:not(.menu-guide-link):before{grid-column:1;grid-row:1 / 3;width:40px;height:40px;background-color:var(--surface);background-image:var(--menu-item-icon);background-repeat:no-repeat;background-position:center;background-size:22px;border-radius:var(--radius-control);box-shadow:0 1px 4px #124b911f;content:""}.menu-links>:not(.menu-guide-link):after{grid-column:3;grid-row:1 / 3;width:8px;height:8px;align-self:center;justify-self:center;border-top:2px solid var(--muted);border-right:2px solid var(--muted);transform:rotate(45deg);content:""}.menu-links>:not(.menu-guide-link)>span{grid-column:2;grid-row:1;min-width:0}.menu-links>:not(.menu-guide-link)>small{grid-column:2;grid-row:2;min-width:0}.menu-links>:not(.menu-guide-link):hover{border-color:var(--line)}.menu-links>:not(.menu-guide-link):focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.menu-links>.is-active{color:var(--blue-strong)}.menu-links>.menu-upcoming{--menu-item-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230868e5' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 16v-5a6 6 0 0 1 12 0v5l1.5 2h-15L6 16ZM10 20a2 2 0 0 0 4 0'/%3E%3C/svg%3E")}.menu-links>.menu-family{--menu-item-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230868e5' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.2'/%3E%3Cpath d='M3.5 19a5.5 5.5 0 0 1 11 0M16 5.2a3 3 0 0 1 0 5.6M18 14.2a5 5 0 0 1 2.5 4.8'/%3E%3C/svg%3E")}.menu-links>.menu-push{--menu-item-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230868e5' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 9a6 6 0 0 0-12 0c0 7-3 7-3 9h18c0-2-3-2-3-9M10 21h4'/%3E%3C/svg%3E")}.menu-links>.menu-pickup-code{--menu-item-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230868e5' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h6v6H4zM14 4h6v6h-6zM4 14h6v6H4zM14 14h2v2h-2zM18 14h2v6h-6v-2h4zM14 18h2'/%3E%3C/svg%3E")}.menu-links>a[href="/admin"]{--menu-item-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230868e5' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20h16M6 20V6l6-3 6 3v14M9 9h1M14 9h1M9 13h1M14 13h1M10 20v-4h4v4'/%3E%3C/svg%3E")}.menu-links .menu-guide-link{position:relative;isolation:isolate;min-height:82px;overflow:hidden;color:#fff;background:radial-gradient(circle at 83% 8%,#3267c5 0,transparent 42%),linear-gradient(115deg,#0c2d58,#174b98);border-color:#4b7bc4;box-shadow:0 9px 20px #0d336933}.menu-guide-link:after{position:absolute;top:-39px;right:10px;color:#baf3d538;font-size:117px;font-weight:var(--font-weight-800);line-height:1;transform:rotate(19deg);pointer-events:none;content:"?"}.menu-links .menu-guide-link span,.menu-links .menu-guide-link small{position:relative;z-index:1}.menu-links .menu-guide-link span{font-size:var(--font-size-15)}.menu-links .menu-guide-link span i{color:#baf3d5;font-size:var(--font-size-17);font-style:normal}.menu-links .menu-guide-link small{color:#d9e9ff}.menu-links .menu-guide-link:hover{border-color:#baf3d5;box-shadow:0 12px 24px #0d336947;transform:translateY(-2px)}.menu-links .menu-guide-link:focus-visible{outline:3px solid #baf3d5;outline-offset:2px}.menu-pickup-code span svg{display:none}.menu-access{display:grid;gap:6px;margin-bottom:10px;padding:14px;color:var(--ink);background:var(--blue-soft);border:1px solid var(--blue-line);border-radius:var(--radius-card)}.menu-access--expired{background:var(--warn-soft);border-color:var(--warn-line)}.menu-access-eyebrow{color:var(--muted);font-size:var(--font-size-11);font-weight:var(--font-weight-800);letter-spacing:.08em;text-transform:uppercase}.menu-access strong{font-size:var(--font-size-15)}.menu-access p{margin:0;color:var(--muted-deep);font-size:var(--font-size-12);line-height:1.45}.menu-access-action{min-height:44px;margin-top:4px;padding:8px 12px;color:var(--on-accent);font-weight:var(--font-weight-800);background:var(--accent-fill);border:0;border-radius:var(--radius-control);cursor:pointer}.menu-access-action:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.menu-access .menu-access-progress{color:var(--blue-ink);font-weight:var(--font-weight-800)}.planner-readonly-note,.settings-readonly-note{margin:10px 14px;padding:10px 13px;color:var(--blue-ink);font-size:var(--font-size-13);line-height:1.45;background:var(--blue-soft);border:1px solid var(--blue-line);border-radius:var(--radius-control)}.settings-readonly-controls{min-width:0;margin:0;padding:0;border:0}.settings-readonly-controls:disabled button,.settings-readonly-controls:disabled input,.settings-readonly-controls:disabled select,.settings-readonly-controls:disabled textarea{cursor:not-allowed}.settings-readonly-controls:disabled button{opacity:.48;filter:grayscale(.25)}.settings-readonly-controls:disabled input,.settings-readonly-controls:disabled select,.settings-readonly-controls:disabled textarea{opacity:.68}.event-readonly-copy{margin:14px 0;color:var(--ink);white-space:pre-wrap}.menu-hint{display:grid;gap:5px;padding:12px 14px;color:var(--ink-soft);background:var(--blue-soft);border:1px solid var(--blue-line);border-radius:var(--radius-control)}.menu-hint-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.menu-hint-heading span{color:var(--blue-ink);font-size:var(--font-size-11);font-weight:var(--font-weight-800);letter-spacing:.07em;text-transform:uppercase}.menu-hint-heading button{padding:3px 0;color:var(--muted-deep);font-size:var(--font-size-11);font-weight:var(--font-weight-650);background:transparent;border:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.menu-hint-content{display:grid;gap:5px}.menu-hint-content>strong{font-size:var(--font-size-13)}.menu-hint-content p{margin:0;color:var(--muted-deep);font-size:var(--font-size-12);line-height:1.4}.menu-hint a{color:var(--blue-ink);font-weight:var(--font-weight-800);text-underline-offset:3px}.menu-theme{display:grid;gap:7px;margin-top:auto;padding-top:4px}.menu-theme>span{color:var(--muted);font-size:var(--font-size-12);font-weight:var(--font-weight-800);letter-spacing:.06em;text-transform:uppercase}.menu-theme>div{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--radius-control)}.menu-theme button{min-height:40px;color:var(--muted-deep);font-size:var(--font-size-13);font-weight:var(--font-weight-800);background:transparent;border:0;border-radius:var(--radius-control);cursor:pointer}.menu-theme button.is-active{color:var(--blue-ink);background:var(--surface);box-shadow:0 1px 4px #124b911f}.menu-hints-reset{display:grid;gap:4px;margin-top:14px}.menu-hints-reset button{justify-self:start;min-height:40px;padding:0 14px;color:var(--accent-text);font-size:var(--font-size-13);font-weight:var(--font-weight-800);background:transparent;border:1px solid var(--line-strong);border-radius:var(--radius-control);cursor:pointer}.menu-hints-reset button:hover{background:var(--surface-sunken)}.menu-hints-reset small{color:var(--muted);font-size:var(--font-size-12);line-height:1.4}.menu-legal{display:flex;gap:16px;justify-content:center;margin:14px 0 0;font-size:var(--font-size-13)}.menu-legal a{color:var(--muted)}.menu-logout{min-height:48px;margin-top:14px;color:var(--muted-deep);font-weight:var(--font-weight-650);background:transparent;border:1px solid var(--line);border-radius:var(--radius-control);cursor:pointer}.menu-logout:hover{color:var(--danger-ink);border-color:var(--danger-line)}.menu-logout:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.push-settings{height:100%;overflow-y:auto;padding:26px max(18px,calc((100% - 860px)/2)) 70px;color:var(--ink);background:var(--surface-sunken)}.push-settings .settings-header p{color:var(--muted-deep)}.push-settings-grid{display:grid;gap:16px}.push-card>p{margin:0;color:var(--muted-deep);line-height:1.55}.push-identity-card{margin-bottom:16px}.push-identity-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.push-identity-field{display:grid;min-width:0;align-content:start;gap:8px;color:var(--ink)}.push-identity-field strong{font-size:var(--font-size-14);line-height:1.4}.push-identity-field select{width:100%;min-height:48px;padding:9px 36px 9px 12px;color:var(--ink);font:inherit;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-control)}.push-identity-field small{color:var(--muted-deep);font-size:var(--font-size-12);line-height:1.5}.push-identity-field select:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.push-identity-field select:disabled{cursor:not-allowed;opacity:.62}.push-identity-error{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.push-identity-error .push-state{margin:0;flex:1 1 240px}.family-reminders-link{min-height:44px;margin-top:10px;cursor:pointer}.push-toggle{display:flex;min-height:64px;align-items:center;gap:12px;padding:12px;background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--radius-control);cursor:pointer}.push-toggle input{width:22px;height:22px;flex:0 0 auto;accent-color:var(--blue-strong)}.push-toggle span{display:grid;gap:4px}.push-toggle small{color:var(--muted-deep);font-size:var(--font-size-12);line-height:1.5}.push-note{color:var(--muted);font-size:var(--font-size-12);line-height:1.5}.push-lead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;color:var(--muted-deep);font-size:var(--font-size-13);font-weight:var(--font-weight-800)}.push-lead-control{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.push-lead input{width:112px;min-height:44px;padding:8px 10px;color:var(--ink);font:inherit;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-control)}.push-lead-control>span{color:var(--muted);font-weight:var(--font-weight-650)}.push-lead-control .push-secondary{min-height:44px}.push-lead input:focus-visible,.push-toggle input:focus-visible,.push-actions button:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.push-card .push-note{margin:12px 0 0}.push-note--warning{padding:10px 12px;color:var(--warn-ink);background:var(--warn-soft);border:1px solid var(--warn-line);border-radius:var(--radius-control)}.push-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.push-actions button{min-height:44px}.push-secondary{padding:8px 14px;color:var(--blue-ink);font-weight:var(--font-weight-800);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-control);cursor:pointer}.push-actions button:disabled,.push-lead input:disabled,.push-toggle input:disabled{cursor:not-allowed;opacity:.58}.push-state{margin:0 0 14px;padding:12px 14px;color:var(--muted-deep);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-control)}.push-state--warning{color:var(--warn-ink);background:var(--warn-soft);border-color:var(--warn-line)}.push-state--error{color:var(--danger-ink);background:var(--danger-soft);border-color:var(--danger-line)}.push-state--success{color:var(--success-ink, var(--blue-ink));background:var(--blue-soft);border-color:var(--blue-line)}.push-channel-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.push-channel-group{display:grid;min-width:0;gap:7px;margin:0;padding:12px;border:1px solid var(--line);border-radius:var(--radius-control)}.push-channel-group legend{padding:0 5px;color:var(--ink);font-size:var(--font-size-14);font-weight:var(--font-weight-800)}.push-channel-group label{display:flex;min-height:56px;align-items:center;gap:11px;padding:8px 10px;background:var(--surface-sunken);border:1px solid var(--surface-muted);border-radius:var(--radius-control);cursor:pointer}.push-channel-group input{width:22px;height:22px;flex:0 0 auto;margin:0;accent-color:var(--blue-strong)}.push-channel-group label>span{display:grid;gap:2px}.push-channel-group label strong{color:var(--ink);font-size:var(--font-size-13)}.push-channel-group label small{color:var(--muted-deep);font-size:var(--font-size-12);line-height:1.35}.push-channel-group:disabled label{cursor:not-allowed;opacity:.62}@media(max-width:600px){.push-identity-fields{grid-template-columns:minmax(0,1fr)}}.login-screen{display:grid;min-height:100dvh;place-items:center;padding:20px;background:radial-gradient(circle at 50% -10%,var(--blue-wash),var(--surface-page) 48%,var(--surface-muted))}.loading-mark-screen{position:relative;display:grid;min-height:100dvh;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 45%,var(--blue-soft),var(--surface-page) 57%)}.loading-mark-screen--inline{min-height:min(48dvh,320px);margin:20px -16px;background:transparent}.loading-mark-halo{position:absolute;top:50%;left:50%;width:116px;height:116px;border:1px solid var(--blue-line);border-radius:var(--radius-sheet);background:var(--blue-wash);opacity:.5;animation:loading-halo 1.8s ease-in-out infinite}.loading-mark-icon{position:relative;width:72px;height:72px;border-radius:var(--radius-sheet);box-shadow:0 16px 34px #0950a938;animation:loading-icon 1.8s ease-in-out infinite}.login-card{display:grid;width:min(100%,390px);gap:16px;padding:30px;background:var(--veil);border:1px solid rgba(149,169,196,.24);border-radius:var(--radius-sheet);box-shadow:0 24px 70px #11294b29}.login-mark{display:grid;width:48px;height:48px;place-items:center;color:var(--surface);font-size:var(--font-size-20);font-weight:var(--font-weight-800);background:var(--blue);border-radius:var(--radius-card);box-shadow:0 8px 18px var(--accent-glow)}.login-mark svg{width:30px;height:30px}.login-card h1{margin:2px 0 -10px;font-size:var(--font-size-26)}.login-card p{margin:0 0 2px;color:var(--muted);line-height:1.5}.login-card label,.settings-form label,.edit-row label,.rule-edit-form label{display:grid;gap:6px}.login-card label span,.settings-form label span,.edit-row label span,.rule-edit-form label>span{color:var(--muted-deep);font-size:var(--font-size-12);font-weight:var(--font-weight-800)}.login-card input,.settings-form input,.settings-form select,.settings-form textarea,.edit-row input,.edit-row select,.edit-row textarea,.rule-edit-form input,.rule-edit-form select,.rule-edit-form textarea{width:100%;min-height:46px;padding:0 12px;color:var(--ink);background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--radius-control)}.settings-form textarea,.edit-row textarea,.rule-edit-form textarea{min-height:76px;padding-block:10px;resize:vertical}.login-card>button,.settings-form>button,.settings-form--inline>button{min-height:46px;padding:0 16px;color:var(--on-accent);font-weight:var(--font-weight-800);background:var(--accent-fill);border:0;border-radius:var(--radius-control);cursor:pointer}.login-card>button:disabled{cursor:wait;opacity:.66}.legacy-login-link{color:var(--muted-deep);font-size:var(--font-size-13);text-align:center;text-decoration:underline;text-underline-offset:3px}.login-error{color:var(--danger-ink);background:var(--danger-soft);border-color:var(--danger-line)}.login-error{padding:10px 12px;font-size:var(--font-size-13);border:1px solid var(--danger-line);border-radius:var(--radius-control)}.login-session-notice{padding:11px 12px;color:var(--warn-ink);font-size:var(--font-size-13);line-height:1.45;background:var(--warn-soft);border:1px solid var(--warn-line);border-radius:var(--radius-control)}.app-feedback{position:fixed;top:max(14px,env(safe-area-inset-top));left:50%;z-index:70;display:flex;align-items:center;justify-content:space-between;width:min(calc(100% - 28px),620px);min-height:52px;gap:14px;padding:10px 10px 10px 15px;line-height:1.4;border:1px solid;border-radius:var(--radius-control);box-shadow:0 12px 32px #0d1c3233;transform:translate(-50%);animation:feedback-in .2s ease-out}.app-feedback--error{color:var(--danger-ink);background:var(--danger-soft);border-color:var(--danger-line)}.app-feedback--success{color:var(--success-ink);background:var(--success-soft);border-color:var(--success-line)}.app-feedback button{width:36px;min-width:36px;height:36px;padding:0;color:currentColor;font-size:var(--font-size-20);background:transparent;border:0;border-radius:var(--radius-control);cursor:pointer}.family-settings{height:100%;overflow-y:auto;padding:26px max(18px,calc((100% - 1120px)/2)) 70px;color:var(--ink);background:var(--surface-sunken)}.family-settings .settings-header p,.family-settings .settings-header-meta .settings-access-note{color:var(--muted-deep)}.settings-header{position:relative;display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:22px;padding-right:52px}.settings-heading{display:flex;align-items:center;gap:8px}.settings-menu-button{position:fixed;top:max(14px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));z-index:40;flex:0 0 auto;background:var(--surface);border:1px solid var(--line);box-shadow:0 5px 16px #162a4829}.settings-header span{color:var(--blue);font-size:var(--font-size-12);font-weight:var(--font-weight-800);letter-spacing:.08em;text-transform:uppercase}.settings-header h1{margin:4px 0 0;font-size:clamp(1.45rem,4vw,2.2rem);letter-spacing:-.035em}.settings-header p{margin:0 0 4px;color:var(--muted);font-size:var(--font-size-14)}.settings-header-meta{display:grid;gap:3px}.settings-header-meta .settings-access-note{color:var(--muted);font-size:var(--font-size-12);font-weight:var(--font-weight-500)}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.settings-card{min-width:0;padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:0 5px 18px #1c32510b}.settings-card--wide{grid-column:1 / -1}.settings-card-title{display:flex;align-items:start;justify-content:space-between;gap:14px;margin-bottom:16px}.settings-card-title>div{display:flex;align-items:center;gap:9px}.settings-card-title>div>span{display:grid;width:29px;height:29px;place-items:center;color:var(--blue);font-size:var(--font-size-12);font-weight:var(--font-weight-800);background:var(--blue-soft);border-radius:var(--radius-control)}.settings-card h2{margin:0;font-size:var(--font-size-17)}.settings-card-title small{max-width:360px;color:var(--muted);font-size:var(--font-size-12);line-height:1.4;text-align:right}.family-settings .settings-card-title small,.family-settings .account-defaults small{color:var(--muted-deep)}.settings-card-title small a{color:var(--blue-ink);font-weight:var(--font-weight-800);text-underline-offset:2px}.editable-list{display:grid;gap:8px}.editable-row{display:flex;min-height:52px;align-items:center;justify-content:space-between;gap:12px;padding:7px 8px 7px 11px;background:var(--surface-sunken);border:1px solid var(--surface-muted);border-radius:var(--radius-control)}.editable-main,.person-preview{display:flex;min-width:0;align-items:center;gap:9px}.editable-main i{width:11px;height:11px;flex:0 0 auto;border-radius:50%}.editable-main span,.person-preview small{color:var(--muted-soft);font-size:var(--font-size-12)}.row-actions{display:flex;flex:0 0 auto;gap:4px}.row-actions button{min-width:36px;min-height:36px;padding:0 8px;color:var(--blue-ink);font-size:var(--font-size-12);font-weight:var(--font-weight-800);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-control);cursor:pointer}.row-actions button:disabled{cursor:default;opacity:.32}.row-actions .danger-icon,.rule-edit-heading .danger-icon{display:grid;width:36px;min-width:36px;place-items:center;padding:8px;color:var(--danger-ink);background:var(--danger-soft);border-color:var(--danger-line)}.danger-icon svg{width:18px;height:18px}.person-preview b{display:grid;width:29px;height:29px;flex:0 0 auto;place-items:center;color:var(--person-ink, var(--surface));font-size:var(--font-size-11);border:1px solid var(--surface);border-radius:50%;box-shadow:0 0 0 1px #14213d2e}.activity-preview{display:flex;min-width:0;flex:1;align-items:center;gap:9px;padding:7px 9px;border:1px solid;border-radius:var(--radius-control)}.activity-preview>b{flex:0 0 auto}.activity-preview>span{display:grid;min-width:0;gap:2px}.activity-preview{color:var(--event-ink, var(--ink))}.activity-preview small{overflow:hidden;color:inherit;font-size:var(--font-size-12);text-overflow:ellipsis;white-space:pre-line}.activity-preview>b .emoji-img{width:1.5em;height:1.5em;vertical-align:-.35em}.symbol-field{display:grid;gap:8px}.symbol-field-current{display:flex;align-items:center;gap:12px}.symbol-preview{display:grid;width:56px;height:56px;flex:none;place-items:center;color:var(--ink);font-size:var(--font-size-20);font-weight:var(--font-weight-800);background:var(--surface-sunken);border:1px solid var(--line-strong);border-radius:var(--radius-card)}.symbol-preview .emoji-img{width:36px;height:36px;vertical-align:middle}.symbol-field-text{display:grid;min-width:0;flex:1;gap:2px}.symbol-field-text strong{color:var(--ink);font-size:var(--font-size-14)}.symbol-field-text small{color:var(--muted);font-size:var(--font-size-12)}.symbol-field-current button{min-height:44px;padding:0 14px;color:var(--blue-ink);font-weight:var(--font-weight-800);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-control);cursor:pointer}.symbol-picker{display:grid;gap:10px;padding:10px;background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--radius-card)}.symbol-tabs{display:flex;gap:6px;margin:0 -10px;padding:0 10px 2px;overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain}.symbol-tabs::-webkit-scrollbar{display:none}.symbol-tabs button{display:inline-flex;flex:none;align-items:center;gap:6px;min-height:40px;padding:0 12px 0 8px;color:var(--ink-soft);font-size:var(--font-size-13);font-weight:var(--font-weight-650);white-space:nowrap;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-pill);cursor:pointer}.symbol-tabs button[aria-pressed=true]{color:var(--blue-ink);background:var(--blue-soft);border-color:var(--blue-line)}.symbol-tabs .emoji-img{width:20px;height:20px}.symbol-tab-letters{display:grid;width:20px;height:20px;place-items:center;font-size:var(--font-size-11);font-weight:var(--font-weight-800)}.symbol-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px}.symbol-choice{display:grid;aspect-ratio:1;min-height:44px;place-items:center;padding:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-control);cursor:pointer}.symbol-choice .emoji-img{width:28px;height:28px}.symbol-choice[aria-pressed=true]{border:2px solid var(--accent-fill);box-shadow:0 0 0 3px var(--accent-glow)}.symbol-letters{display:grid;gap:6px}.symbol-letters span{color:var(--muted);font-size:var(--font-size-13)}.symbol-letters input{max-width:140px;font-size:var(--font-size-17);font-weight:var(--font-weight-800)}.type-flags{display:flex;flex-wrap:wrap;gap:4px}.type-flags em{padding:1px 7px;color:inherit;font-size:10px;font-style:normal;font-weight:var(--font-weight-800);letter-spacing:.05em;line-height:1.5;text-transform:uppercase;background:var(--line-veil);border-radius:var(--radius-pill)}.edit-row{display:grid;grid-template-columns:minmax(140px,1fr) auto auto;align-items:end;gap:10px;padding:12px;background:var(--surface-sunken);border:1px solid var(--blue-line);border-radius:var(--radius-control)}.edit-row--stacked{grid-template-columns:1fr}.edit-actions{display:flex;gap:6px}.edit-actions button,.compact-save{min-height:42px;padding:0 13px;color:var(--on-accent);font-weight:var(--font-weight-800);background:var(--accent-fill);border:0;border-radius:var(--radius-control);cursor:pointer}.edit-actions .secondary-button{color:var(--muted-deep);background:var(--surface);border:1px solid var(--line)}.settings-form{display:grid;gap:11px;margin-top:18px;padding-top:17px;border-top:1px solid var(--surface-sunken)}.settings-form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.settings-form--inline{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));align-items:end}.settings-form--inline>button{align-self:end}.account-defaults{display:grid;gap:9px;margin-top:20px;padding-top:18px;border-top:1px solid var(--surface-muted)}.account-defaults-heading{display:grid;gap:3px}.account-defaults small{color:var(--muted);font-size:var(--font-size-12);line-height:1.4}.account-default-row{display:flex;min-height:58px;align-items:center;justify-content:space-between;gap:14px;padding:8px 10px 8px 12px;background:var(--surface-sunken);border:1px solid var(--surface-muted);border-radius:var(--radius-control)}.account-default-row>span{display:grid;min-width:0;gap:2px}.account-default-row>span strong{overflow:hidden;font-size:var(--font-size-13);text-overflow:ellipsis}.account-default-row select{min-width:150px;min-height:44px;padding:0 10px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-control)}.account-default-row--pickup{align-items:center}.account-pickup-code{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:7px}.account-transport-defaults{margin-top:16px}.account-transport-select{min-width:min(100%,260px)}.account-transport-select select{width:100%;min-height:44px;padding:0 10px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-control)}.account-transport-readonly{color:var(--muted-deep);font-size:var(--font-size-13)}.account-transport-note{margin:4px 0 0;color:var(--muted-deep);font-size:var(--font-size-12);line-height:1.5}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}.pickup-code-status{padding:6px 8px;color:var(--muted-deep);font-size:var(--font-size-12);font-weight:var(--font-weight-800);background:var(--surface-muted);border-radius:var(--radius-xs)}.pickup-code-status.is-configured{color:var(--blue-ink);background:var(--blue-soft)}.pickup-upload-button{display:inline-flex;min-height:42px;align-items:center;padding:0 11px;color:var(--blue-ink);font-size:var(--font-size-12);font-weight:var(--font-weight-800);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-control);cursor:pointer}.pickup-upload-button input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.pickup-upload-button:focus-within{outline:3px solid var(--focus-ring);outline-offset:2px}.pickup-upload-button.is-disabled{cursor:progress;opacity:.58}.pickup-code-overlay{position:fixed;z-index:100;inset:0;display:grid;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;place-items:center;padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));color:#111;background:#fff;border:0}.pickup-code-overlay::backdrop{background:#fff}.pickup-code-modal{position:relative;display:grid;width:min(100%,520px);max-height:100%;justify-items:center;gap:12px;overflow:auto;padding:42px 22px 28px;text-align:center}.pickup-code-modal h2{margin:0;font-size:var(--font-size-26)}.pickup-code-modal p{max-width:34rem;margin:0;color:#424242;line-height:1.45}.pickup-code-modal img{display:block;width:min(82vw,390px);height:auto;aspect-ratio:1;object-fit:contain;background:#fff;image-rendering:pixelated}.pickup-code-load-error{display:grid;width:min(82vw,390px);min-height:min(82vw,390px);place-items:center;padding:22px;color:#8a1720!important;background:#fff2f3;border:1px solid #e8a8ad;border-radius:var(--radius-card)}.pickup-code-modal strong{max-width:100%;overflow-wrap:anywhere;font-size:var(--font-size-14)}.pickup-code-overlay{color-scheme:light;--ink: #14213d;--muted-deep: #5b6b82;--surface-sunken: #eef1f6;color:#14213d}.pickup-code-modal .pickup-code-close{position:absolute;top:4px;right:4px}.pickup-code-modal .pickup-code-close svg{width:26px;height:26px;stroke-width:2.2}.pickup-code-heading-icon{width:30px;height:30px}.settings-form--rule{grid-template-columns:repeat(4,minmax(120px,1fr));align-items:end}.settings-form--rule>button{justify-self:stretch}.settings-form-row--colors{grid-template-columns:repeat(3,1fr)}.color-field input{min-width:70px;padding:5px}.activity-color-presets{display:grid;gap:7px}.activity-color-presets>span{color:var(--muted-deep);font-size:var(--font-size-12);font-weight:var(--font-weight-800)}.activity-color-presets>div{display:flex;flex-wrap:wrap;gap:7px}.activity-color-presets button{width:40px;height:40px;padding:0;background:var(--preset-color);border:3px solid var(--preset-border);border-radius:var(--radius-control);box-shadow:0 0 0 1px var(--surface);cursor:pointer}.activity-color-presets button:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.activity-color-presets small{color:var(--muted);font-size:var(--font-size-12)}.color-palette{display:grid;grid-column:1 / -1;gap:7px}.color-palette-label{color:var(--muted-deep);font-size:var(--font-size-12);font-weight:var(--font-weight-800)}.color-palette-swatches{display:flex;flex-wrap:wrap;gap:8px}.color-swatch{position:relative;display:grid;width:40px;height:40px;place-items:center;padding:0;color:#fff;background:var(--swatch);border:3px solid color-mix(in srgb,var(--swatch) 70%,#000);border-radius:var(--radius-control);box-shadow:0 0 0 1px var(--surface);cursor:pointer}.color-swatch svg{width:20px;height:20px;stroke-width:3}.color-swatch[aria-checked=true],.color-swatch--custom.is-active{outline:3px solid var(--blue);outline-offset:2px}.color-swatch:focus-visible,.color-swatch--custom:focus-within{outline:3px solid var(--focus-ring);outline-offset:2px}.color-swatch--custom{background:conic-gradient(from 90deg,#e53935,#fdd835,#43a047,#1e88e5,#8e24aa,#e53935);border-color:var(--line-strong)}.color-swatch--custom.is-active{background:var(--swatch);border-color:color-mix(in srgb,var(--swatch) 70%,#000)}.color-swatch--custom span{display:grid;width:22px;height:22px;place-items:center;color:var(--ink);font-weight:var(--font-weight-800);background:var(--surface);border-radius:var(--radius-xs)}.color-palette .color-swatch--custom input{position:absolute;inset:0;width:100%;min-width:0;height:100%;min-height:0;padding:0;opacity:0;border:0;cursor:pointer}.rule-description-field{grid-column:1 / -1}.family-rule-groups{display:grid;gap:10px}.family-rule-group{overflow:hidden;border:1px solid;border-radius:var(--radius-control)}.family-rule-group summary{display:flex;min-height:52px;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px;cursor:pointer}.family-rule-group summary>span{display:flex;align-items:center;gap:9px;font-weight:var(--font-weight-800)}.family-rule-group summary i{width:10px;height:10px;border-radius:50%}.family-rule-group summary small{color:var(--muted)}.rule-list{display:grid;gap:10px;padding:10px;background:var(--surface-sunken);border-top:1px solid var(--surface-sunken)}.empty-rule-list{margin:5px;color:var(--muted-soft);font-size:var(--font-size-13)}.rule-day{display:grid;gap:10px}.rule-day+.rule-day{margin-top:22px}.rule-day-name{margin:0 2px -2px;color:var(--muted-deep);font-size:var(--font-size-12);font-weight:var(--font-weight-800);letter-spacing:.08em;text-transform:uppercase}.rule-edit-form{display:grid;gap:10px;padding:12px;background:var(--surface);border:1px solid var(--surface-muted);border-radius:var(--radius-control);transition:border-color .5s,box-shadow .5s,background .5s}.rule-edit-form--tinted:not(.is-highlighted){color:var(--event-ink, var(--ink));background:color-mix(in srgb,var(--tint, var(--surface-muted)) var(--event-fill),var(--surface));border-color:color-mix(in srgb,var(--tint-line, var(--line-strong)) var(--event-stroke),var(--surface))}.rule-edit-form--tinted:not(.is-highlighted) input,.rule-edit-form--tinted:not(.is-highlighted) select,.rule-edit-form--tinted:not(.is-highlighted) textarea{background:var(--surface)}.rule-edit-form--tinted:not(.is-highlighted) label>span{color:inherit}.rule-edit-form.is-highlighted{background:var(--blue-soft);border-color:var(--blue);box-shadow:0 0 0 4px var(--accent-glow);animation:rule-pulse 1s ease-in-out 4}.rule-edit-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.rule-edit-heading>span{display:grid;gap:2px}.rule-edit-heading small{font-size:var(--font-size-11);font-weight:var(--font-weight-650);opacity:.74}.rule-edit-heading .danger-icon{border:1px solid var(--danger-line);border-radius:var(--radius-control);cursor:pointer}.rule-fields{display:grid;grid-template-columns:1.15fr 1.3fr .7fr .7fr;gap:8px}.rule-validity-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rule-validity-fields small{grid-column:1 / -1;font-size:var(--font-size-12);opacity:.76}.rule-edit-form.is-ended{opacity:.82}.ended-rule-group{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.ended-rule-group>summary{min-height:42px;padding:0 4px;color:var(--muted-deep);font-size:var(--font-size-13);font-weight:var(--font-weight-800);cursor:pointer}.ended-rule-group>div{display:grid;gap:10px;padding-top:8px}.compact-save{justify-self:end;min-height:40px}.rule-validity-hint{grid-column:1 / -2;align-self:center;margin:0;color:var(--muted-deep);font-size:var(--font-size-12);line-height:1.45}.settings-card--librus{border-color:var(--blue-line);background:linear-gradient(135deg,var(--surface),var(--surface-sunken))}.settings-card--librus p{color:var(--muted-deep);line-height:1.55}.settings-card-title em{padding:6px 9px;color:var(--warn-ink);font-size:var(--font-size-12);font-style:normal;font-weight:var(--font-weight-800);background:var(--warn-soft);border-radius:var(--radius-xs)}.display-device-main{display:grid;min-width:0;gap:3px}.display-device-main small{color:var(--muted)}.display-device-row.is-revoked{opacity:.62}.pairing-code-input{font-weight:var(--font-weight-800);letter-spacing:.12em;text-transform:uppercase}.danger-button{min-height:38px;padding:7px 12px;color:var(--danger-ink);font-weight:var(--font-weight-800);background:var(--danger-soft);border:1px solid var(--danger-line);border-radius:var(--radius-control);cursor:pointer}.librus-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.librus-actions button,.librus-mappings button{min-height:40px;padding:0 13px;font-weight:var(--font-weight-800);border-radius:var(--radius-control);cursor:pointer}.librus-actions .secondary-button{color:var(--blue-ink);background:var(--surface);border:1px solid var(--line-strong)}.danger-text-button{color:var(--danger-ink);background:var(--surface);border:1px solid var(--danger-line)}.librus-mappings{display:grid;gap:10px;margin-top:18px;padding-top:17px;border-top:1px solid var(--blue-line)}.librus-mappings-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.librus-mappings-heading>div{display:grid;gap:2px}.librus-mappings-heading small{color:var(--muted)}.librus-mappings-heading button,.librus-mapping>button{color:var(--on-accent);background:var(--accent-fill);border:0}.librus-mapping{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(170px,1fr) auto;align-items:end;gap:12px;padding:13px;background:var(--veil);border:1px solid var(--blue-line);border-radius:var(--radius-control)}.librus-identity{display:grid;gap:3px;min-width:0}.librus-identity span,.librus-identity small{overflow:hidden;color:var(--muted);font-size:var(--font-size-12);text-overflow:ellipsis;white-space:nowrap}.librus-scope{margin:2px 0 0;font-size:var(--font-size-12)}.librus-mapping button:disabled,.librus-actions button:disabled,.librus-mappings-heading button:disabled{opacity:.55;cursor:wait}@media(max-width:900px){.settings-form--rule{grid-template-columns:repeat(3,1fr)}.rule-validity-hint{grid-column:1 / -1}.settings-form--rule>button{grid-column:1 / -1}}@media(max-width:680px){.settings-header{align-items:start;flex-direction:column;gap:8px}.settings-grid{grid-template-columns:1fr}.settings-card--wide{grid-column:auto}.settings-card{padding:16px}.settings-card-title{flex-direction:column}.settings-card-title small{text-align:left}.settings-form--inline,.settings-form--rule{grid-template-columns:1fr 1fr}.settings-form--inline>button,.settings-form--rule>button{grid-column:1 / -1}.rule-description-field{grid-column:1 / -1}.rule-fields{grid-template-columns:1fr 1fr}.editable-row{align-items:flex-start;flex-direction:column}.activity-preview{width:100%}.row-actions{width:100%;justify-content:flex-end}.edit-row{grid-template-columns:1fr 1fr}.edit-actions{grid-column:1 / -1}.rule-validity-fields{grid-template-columns:1fr}.rule-validity-fields small{grid-column:auto}.librus-mapping{grid-template-columns:1fr;align-items:stretch}.librus-mapping>button{width:100%}.librus-mappings-heading,.librus-actions,.account-default-row{align-items:stretch;flex-direction:column}.account-default-row select{width:100%}.account-pickup-code{justify-content:flex-start}.account-pickup-code>*{flex:1 1 auto}.account-transport-select{width:100%}.push-channel-groups{grid-template-columns:1fr}}@media(max-width:420px){.login-card{padding:24px 20px}.family-settings{padding-inline:12px}.settings-form--inline,.settings-form--rule,.settings-form-row,.settings-form-row--colors,.rule-fields,.edit-row{grid-template-columns:1fr}.edit-actions{grid-column:auto}.row-actions button{min-height:40px}}@keyframes loading-halo{0%,to{opacity:.4;transform:translate(-50%,-50%) scale(.86)}50%{opacity:.65;transform:translate(-50%,-50%) scale(1.16)}}@keyframes loading-icon{0%,to{transform:scale(.94)}50%{transform:scale(1.06)}}@media(prefers-reduced-motion:reduce){.loading-mark-halo,.loading-mark-icon{animation:none}.loading-mark-halo{transform:translate(-50%,-50%)}}@keyframes menu-fade{0%{opacity:0}}@keyframes menu-slide{0%{transform:translate(100%)}}@keyframes menu-fade-out{to{opacity:0}}@keyframes menu-slide-out{to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.menu-layer,.menu-drawer,.menu-layer.is-closing,.menu-layer.is-closing .menu-drawer{animation:none}}@keyframes feedback-in{0%{opacity:0;transform:translate(-50%,-12px)}}@keyframes rule-pulse{50%{box-shadow:0 0 0 8px var(--accent-glow)}}.upcoming-view{height:100dvh;overflow-y:auto;padding:0 16px max(108px,calc(env(safe-area-inset-bottom) + 92px));background:var(--surface-sunken)}.upcoming-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:max(14px,env(safe-area-inset-top)) 0 14px}.upcoming-header span{color:var(--muted);font-size:var(--font-size-12);font-weight:var(--font-weight-800);letter-spacing:.08em;text-transform:uppercase}.upcoming-header h1{margin:4px 0 0;font-size:var(--font-size-20)}.upcoming-note{margin:24px 2px;color:var(--muted);font-size:var(--font-size-15);line-height:1.5}.upcoming-section{margin:20px 0 10px;color:var(--muted);font-size:var(--font-size-12);font-weight:var(--font-weight-800);letter-spacing:.07em;text-transform:uppercase}.upcoming-section--later{padding-top:14px;border-top:1px solid var(--line)}.upcoming-group{margin-bottom:20px}.upcoming-group-heading{display:flex;align-items:baseline;gap:10px;margin:0 2px 8px}.upcoming-group-heading strong{color:var(--blue);font-size:var(--font-size-15)}.upcoming-group-heading span{color:var(--muted-soft);font-size:var(--font-size-13)}.upcoming-item{display:flex;width:100%;gap:12px;align-items:flex-start;margin-bottom:8px;padding:12px 14px;color:var(--ink);font:inherit;text-align:left;background:var(--surface);border:1px solid var(--surface-muted);border-left:5px solid var(--line-strong);border-radius:var(--radius-control);cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.upcoming-item:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0e294e1a}.upcoming-item:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.upcoming-item:active{transform:translateY(0)}.upcoming-open{flex:0 0 auto;margin:2px 0 0 auto;color:var(--blue);font-size:var(--font-size-17);font-weight:var(--font-weight-800)}.upcoming-mark{display:grid;flex:0 0 auto;place-items:center;width:36px;height:36px;font-size:var(--font-size-15);border:1px solid var(--line-strong);border-radius:var(--radius-control)}.upcoming-what{display:grid;gap:3px;min-width:0}.upcoming-what strong{font-size:var(--font-size-15)}.upcoming-what small{color:var(--muted);font-size:var(--font-size-13)}.upcoming-what em{color:var(--muted-deep);font-size:var(--font-size-13);font-style:normal;white-space:pre-line}.upcoming-float-nav{position:fixed;z-index:30;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:4px;padding:5px;color:var(--ink);background:var(--surface);border:1px solid var(--blue-line);border-radius:var(--radius-sheet);box-shadow:0 16px 46px #05215647}.upcoming-float-nav button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:8px;padding:9px 14px;color:var(--blue-ink);font:inherit;font-size:var(--font-size-13);font-weight:var(--font-weight-800);background:transparent;border:0;border-radius:var(--radius-control);cursor:pointer}.upcoming-float-nav button:hover{background:var(--blue-soft)}.upcoming-float-nav button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.menu-drawer header span,.menu-access-eyebrow,.menu-hint-heading span,.menu-theme>span,.settings-header span,.upcoming-header span,.upcoming-section{font-size:var(--font-size-11);font-weight:var(--font-weight-800);letter-spacing:.08em;text-transform:uppercase}.upcoming-float-nav button>span:first-child{font-size:var(--font-size-20);line-height:1}.upcoming-float-nav svg{width:18px;height:18px}.upcoming-float-divider{width:1px;height:25px;background:var(--line)}@media(prefers-reduced-motion:reduce){.upcoming-item{transition:none}}.switch-field{display:flex;align-items:center;gap:10px;margin-top:4px}.switch-field input{width:22px;height:22px;margin:0}.switch-field>span{color:var(--ink-soft);font-size:var(--font-size-14);font-weight:var(--font-weight-650)}.pickup-code-display{display:grid;width:100%;min-width:0;justify-items:center;gap:12px}.pickup-code-modal--pokaz{gap:8px;padding:36px 8px 10px}.pickup-code-qr-panel,.pickup-code-controls{display:grid;width:100%;min-width:0;justify-items:center;gap:10px}.pickup-code-image{display:block;width:min(82vw,390px,calc(100dvh - 345px));height:auto;aspect-ratio:1;border-radius:var(--radius-control)}.pickup-code-video{display:block;width:min(82vw,390px);height:auto;aspect-ratio:1;object-fit:cover;background:#111;border-radius:var(--radius-control)}.pickup-code-error{padding:11px;color:#84252c;font-size:var(--font-size-14);background:#fff0f1;border:1px solid #fac5ca;border-radius:var(--radius-control)}.pickup-code-note{color:var(--muted-deep)!important;font-size:var(--font-size-13)!important}.pickup-code-note a{display:inline-block;margin-top:5px;color:#0d5fca;font-weight:var(--font-weight-800);text-underline-offset:3px}.pickup-code-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.pickup-code-actions button,.pickup-code-actions .pickup-upload-button{min-height:46px;padding:0 18px;color:var(--on-accent);font-weight:var(--font-weight-650);background:var(--accent-fill);border:0;border-radius:var(--radius-control);cursor:pointer}.pickup-code-actions button:disabled{opacity:.5;cursor:not-allowed}.pickup-code-actions .is-danger{color:#84252c;background:#fff0f1;border:1px solid #fac5ca}.pickup-code-unassigned,.pickup-code-mismatch{width:min(100%,390px);padding:10px 12px;color:var(--warn-ink)!important;font-size:var(--font-size-14);font-weight:var(--font-weight-800);background:var(--warn-soft);border:1px solid var(--warn-line);border-radius:var(--radius-control)}.pickup-code-modal .pickup-code-replace-note{margin:0;padding:10px 12px;color:var(--warn-ink);font-size:var(--font-size-14);font-weight:var(--font-weight-650);background:var(--warn-soft);border:1px solid var(--warn-line);border-radius:var(--radius-control)}.pickup-code-member{display:grid;width:min(100%,390px);gap:6px;color:var(--ink);font-size:var(--font-size-14);font-weight:var(--font-weight-800);text-align:left}.pickup-code-member select{width:100%;min-height:46px;padding:8px 12px;color:var(--ink);font:inherit;font-weight:var(--font-weight-650);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-control)}.pickup-code-member select:disabled{opacity:.62}.pickup-code-member small{color:var(--muted-deep);font-size:var(--font-size-12);font-weight:var(--font-weight-650);line-height:1.4}.pickup-code-member--visible{padding:10px;background:var(--surface-sunken);border:1px solid var(--line-strong);border-radius:var(--radius-control)}.pickup-code-label-editor{display:grid;width:min(100%,390px);gap:8px;padding:10px;background:var(--surface-sunken);border:1px solid var(--line-strong);border-radius:var(--radius-control)}.pickup-code-label-editor button{min-height:44px;padding:8px 12px;color:var(--on-accent);font:inherit;font-weight:var(--font-weight-800);background:var(--accent-fill);border:0;border-radius:var(--radius-control);cursor:pointer}.pickup-code-label-editor button:disabled{opacity:.5;cursor:not-allowed}.pickup-code-image--swipe{touch-action:pan-y;cursor:grab;-webkit-user-select:none;user-select:none}.pickup-code-image--swipe:active{cursor:grabbing}.pickup-code-list button,.pickup-code-manual-choice,.pickup-code-legacy button,.pickup-code-qr-failure button{min-height:44px;padding:8px 12px;color:var(--blue-ink);font:inherit;font-weight:var(--font-weight-800);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-control);cursor:pointer}.pickup-code-list{display:grid;width:100%;min-width:0;gap:4px;overflow-x:auto;scrollbar-width:thin}.pickup-code-list button{display:grid;align-content:center;justify-items:center;gap:2px;min-width:0;min-height:52px;padding-inline:4px;overflow-wrap:anywhere}.pickup-code-list button small{font-size:var(--font-size-12);font-weight:var(--font-weight-650);line-height:1.2}.pickup-code-manual-choice{width:100%}.pickup-code-limit{color:var(--muted-deep);font-size:var(--font-size-12)}.pickup-code-list button.is-active{color:var(--on-accent);background:var(--accent-fill);border-color:var(--accent-fill)}.pickup-code-legacy,.pickup-code-qr-failure{display:grid;justify-items:center;gap:10px;width:100%;padding:12px;background:var(--surface-sunken);border:1px solid var(--line-strong);border-radius:var(--radius-control)}.pickup-code-legacy label{display:flex;align-items:flex-start;gap:8px;color:var(--ink);font-size:var(--font-size-14);text-align:left}.pickup-code-legacy input{flex:0 0 auto;width:22px;height:22px;margin:0}.pickup-code-legacy button:disabled{opacity:.5;cursor:not-allowed}.pickup-code-label{display:grid;width:min(100%,390px);gap:6px;color:var(--ink);font-size:var(--font-size-14);font-weight:var(--font-weight-800);text-align:left}.pickup-code-label input{width:100%;min-height:46px;padding:8px 12px;color:var(--ink);font:inherit;font-weight:400;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-control)}.pickup-code-settings{width:min(100%,390px);color:var(--muted-deep);font-size:var(--font-size-13);text-align:left}.pickup-code-settings summary{min-height:44px;align-content:center;color:var(--blue-ink);font-weight:var(--font-weight-800);cursor:pointer}.pickup-code-settings .pickup-code-member{margin-bottom:12px}.pickup-code-list button:focus-visible,.pickup-code-manual-choice:focus-visible,.pickup-code-legacy button:focus-visible,.pickup-code-qr-failure button:focus-visible,.pickup-code-label input:focus-visible,.pickup-code-label-editor button:focus-visible,.pickup-code-member select:focus-visible,.pickup-code-settings summary:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.menu-access-action:hover,.login-card>button:hover:not(:disabled),.settings-form>button:hover:not(:disabled),.settings-form--inline>button:hover:not(:disabled),.edit-actions button:hover:not(.secondary-button),.compact-save:hover,.librus-mappings-heading button:hover:not(:disabled),.librus-mapping>button:hover:not(:disabled),.pickup-code-actions button:hover:not(.is-danger),.pickup-code-actions .pickup-upload-button:hover{background:color-mix(in srgb,var(--accent-fill) 88%,var(--ink))}@media(max-height:480px)and (min-width:480px){.pickup-code-overlay{padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}.pickup-code-modal--pokaz{width:100%;max-width:none;height:100%;max-height:100%;display:flex;flex-direction:column;gap:0;overflow:hidden;padding:0}.pickup-code-modal--pokaz h2{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.pickup-code-modal--pokaz .pickup-code-close{z-index:2;top:0;right:0}.pickup-code-modal--pokaz .pickup-code-display{flex:1;min-height:0;grid-template-columns:minmax(0,1fr) minmax(215px,.82fr);align-items:center;gap:14px}.pickup-code-modal--pokaz .pickup-code-qr-panel{min-height:0;align-content:center}.pickup-code-modal--pokaz .pickup-code-image{width:min(100%,calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));max-height:100%}.pickup-code-modal--pokaz .pickup-code-controls{max-height:100%;align-content:start;justify-items:stretch;overflow-y:auto;padding:50px 2px 8px 0}.pickup-code-modal--pokaz .pickup-code-actions{justify-content:flex-start}.pickup-code-modal--pokaz .pickup-code-actions button{min-height:44px;padding:0 10px;font-size:var(--font-size-12)}}@media(max-height:480px)and (max-width:479px){.pickup-code-modal--pokaz{padding:40px 8px 16px;gap:8px}.pickup-code-modal--pokaz .pickup-code-image{width:min(80vw,42dvh)}}:root{font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;color-scheme:light;color:var(--ink);background:var(--surface-page);--timeline-height: 1440px;--surface: #ffffff;--surface-page: #edf2f8;--surface-sunken: #f5f8fc;--surface-muted: #e8edf3;--veil: rgba(255, 255, 255, .96);--veil-soft: rgba(255, 255, 255, .53);--veil-line: rgba(255, 255, 255, .9);--line: #dfe5ee;--line-strong: #cbd4df;--ink: #14213d;--ink-strong: #18243a;--ink-soft: #33445d;--ink-cancelled: #8c7b83;--muted: #66738b;--muted-deep: #52627a;--muted-soft: #8491a5;--blue: #1676f3;--blue-strong: #0868e5;--blue-ink: #10457f;--blue-mid: #a9ceff;--blue-soft: #eaf3ff;--blue-line: #c7ddfb;--blue-wash: #d8e9ff;--accent-fill: #0b62d6;--on-accent: #ffffff;--accent-text: #0b62d6;--accent-glow: rgb(11 98 214 / .28);--now: #d0313d;--now-ink: #ffffff;--focus-ring: #0b62d6;--shadow-1: 0 2px 7px rgb(21 37 66 / .12);--shadow-2: 0 6px 18px rgb(21 37 66 / .17);--shadow-3: 0 13px 30px rgb(21 37 66 / .23);--font-size-11: 11px;--font-size-12: 12px;--font-size-13: 13px;--font-size-14: 14px;--font-size-15: 15px;--font-size-17: 17px;--font-size-20: 20px;--font-size-26: 26px;--font-weight-500: 500;--font-weight-650: 650;--font-weight-800: 800;--radius-xs: 6px;--radius-control: 10px;--radius-card: 14px;--radius-sheet: 22px;--radius-pill: 999px;--night-wash: rgb(20 34 58 / .045);--hour-line: #d8e1ec;--half-hour-line: #e9eef5;--danger-ink: #a93239;--danger-soft: #fff1f1;--danger-line: #ffd7d9;--success-ink: #17643f;--success-accent: #43a968;--success-soft: #eef9f2;--success-line: #bfe2cc;--warn-ink: #704f0c;--warn-soft: #fff8df;--warn-line: #f1d991;--lesson-note: #a24f6a;--toast-success: #17643f;--toast-ring: transparent;--toast-shadow: rgba(13, 28, 50, .25);--toast-danger: #a93239;--toast-action: #a9ceff;--line-veil: rgba(20, 33, 61, .18);--event-fill: 100%;--event-stroke: 100%}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--surface: #171e2b;--surface-page: #0e131c;--surface-sunken: #1d2534;--surface-muted: #262f40;--veil: rgba(23, 30, 43, .96);--veil-soft: rgba(255, 255, 255, .08);--veil-line: rgba(255, 255, 255, .16);--line: #2b3546;--line-strong: #3a4659;--night-wash: rgb(0 0 0 / .14);--hour-line: #354154;--half-hour-line: #293344;--ink: #e6ecf7;--ink-strong: #f2f6fd;--ink-soft: #c3cede;--ink-cancelled: #9a8d94;--muted: #98a5ba;--muted-deep: #b0bccf;--muted-soft: #7d8aa0;--blue: #58a2ff;--blue-strong: #7cb7ff;--blue-ink: #bcd9ff;--blue-mid: #3c6da8;--blue-soft: #18283f;--blue-line: #2d4a72;--blue-wash: #16243a;--accent-fill: #58a2ff;--on-accent: #0b1730;--accent-text: #7cb7ff;--accent-glow: rgb(88 162 255 / .22);--now: #ff7b84;--now-ink: #3a0d12;--focus-ring: #a9ceff;--shadow-1: 0 2px 7px rgb(0 0 0 / .24);--shadow-2: 0 6px 18px rgb(0 0 0 / .34);--shadow-3: 0 13px 30px rgb(0 0 0 / .45);--danger-ink: #ffb0b6;--danger-soft: #35191d;--danger-line: #58272d;--success-ink: #8dd8ae;--success-accent: #4cb87a;--success-soft: #14291e;--success-line: #2a5740;--warn-ink: #ecc98a;--warn-soft: #2e2413;--warn-line: #574526;--lesson-note: #e0a0b6;--toast-success: #1d6f49;--toast-ring: rgba(255, 255, 255, .42);--toast-shadow: rgba(0, 0, 0, .55);--toast-danger: #a8323a;--toast-action: #cfe3ff;--line-veil: rgba(255, 255, 255, .17);--event-fill: 22%;--event-stroke: 62%}}:root[data-theme=dark]{color-scheme:dark;--surface: #171e2b;--surface-page: #0e131c;--surface-sunken: #1d2534;--surface-muted: #262f40;--veil: rgba(23, 30, 43, .96);--veil-soft: rgba(255, 255, 255, .08);--veil-line: rgba(255, 255, 255, .16);--line: #2b3546;--line-strong: #3a4659;--night-wash: rgb(0 0 0 / .14);--hour-line: #354154;--half-hour-line: #293344;--ink: #e6ecf7;--ink-strong: #f2f6fd;--ink-soft: #c3cede;--ink-cancelled: #9a8d94;--muted: #98a5ba;--muted-deep: #b0bccf;--muted-soft: #7d8aa0;--blue: #58a2ff;--blue-strong: #7cb7ff;--blue-ink: #bcd9ff;--blue-mid: #3c6da8;--blue-soft: #18283f;--blue-line: #2d4a72;--blue-wash: #16243a;--accent-fill: #58a2ff;--on-accent: #0b1730;--accent-text: #7cb7ff;--accent-glow: rgb(88 162 255 / .22);--now: #ff7b84;--now-ink: #3a0d12;--focus-ring: #a9ceff;--shadow-1: 0 2px 7px rgb(0 0 0 / .24);--shadow-2: 0 6px 18px rgb(0 0 0 / .34);--shadow-3: 0 13px 30px rgb(0 0 0 / .45);--danger-ink: #ffb0b6;--danger-soft: #35191d;--danger-line: #58272d;--success-ink: #8dd8ae;--success-accent: #4cb87a;--success-soft: #14291e;--success-line: #2a5740;--warn-ink: #ecc98a;--warn-soft: #2e2413;--warn-line: #574526;--lesson-note: #e0a0b6;--toast-success: #1d6f49;--toast-ring: rgba(255, 255, 255, .42);--toast-shadow: rgba(0, 0, 0, .55);--toast-danger: #a8323a;--toast-action: #cfe3ff;--line-veil: rgba(255, 255, 255, .17);--event-fill: 22%;--event-stroke: 62%}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;min-width:320px;min-height:100dvh;overflow:hidden;background:var(--surface-page)}button,input,select,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.app-shell{position:relative;display:flex;height:100dvh;width:min(100%,1180px);flex-direction:column;min-height:100dvh;margin:0 auto;overflow:hidden;background:var(--surface);box-shadow:0 0 32px #15254214}.planner-header{position:relative;z-index:5;padding:max(8px,env(safe-area-inset-top)) 16px 6px;background:var(--veil);border-bottom:1px solid var(--surface-sunken)}.header-progress{position:absolute;right:0;bottom:-1px;left:0;height:2px;overflow:hidden;pointer-events:none}.header-progress:after{position:absolute;width:38%;height:100%;background:var(--blue);border-radius:2px;animation:header-progress 1.15s ease-in-out infinite;content:""}@media(prefers-reduced-motion:reduce){.header-progress:after{animation-duration:3s}}.week-nav{display:grid;grid-template-columns:44px 1fr auto 132px;align-items:center;min-height:46px;text-align:center}.week-nav-actions{display:flex;grid-column:4}.week-nav strong{font-size:var(--font-size-15);letter-spacing:-.015em}.week-nav-title{display:grid;min-width:0;justify-items:center}.sync-status{position:relative;display:inline-flex;max-width:100%;min-height:22px;align-items:center;gap:5px;padding:0 6px;color:var(--muted);font:inherit;font-size:var(--font-size-11);font-weight:var(--font-weight-650);line-height:1;background:none;border:0;border-radius:var(--radius-pill);cursor:pointer}.sync-status span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sync-status:after{position:absolute;inset:-11px 0;content:""}.sync-status i{width:7px;height:7px;flex:none;background:var(--muted-soft);border-radius:50%}.sync-status--fresh i{background:var(--success-accent)}.sync-status--offline{color:var(--danger-ink)}.sync-status--offline i{background:var(--danger-ink)}.sync-status:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.event-card--remote-change{outline:3px solid transparent;outline-offset:1px}@media(prefers-reduced-motion:no-preference){.event-card--remote-change{animation:remote-change 2.4s ease-out both}@keyframes remote-change{0%,35%{outline-color:var(--accent-fill)}to{outline-color:transparent}}.sync-status--checking i{animation:sync-pulse 1.2s ease-in-out infinite}@keyframes sync-pulse{50%{opacity:.35}}}@media(prefers-reduced-motion:reduce){.event-card--remote-change{outline-color:var(--accent-fill)}}@media(prefers-reduced-motion:no-preference){.week-nav-label--enter-next{animation:week-label-in-next .26s ease-out both}.week-nav-label--enter-previous{animation:week-label-in-previous .26s ease-out both}}@keyframes week-label-in-next{0%{opacity:0;transform:translate(10px)}}@keyframes week-label-in-previous{0%{opacity:0;transform:translate(-10px)}}.icon-button{display:inline-grid;place-items:center;width:44px;height:44px;padding:10px;color:var(--ink);background:transparent;border:0;border-radius:var(--radius-control);cursor:pointer}.icon-button:hover{background:var(--surface-sunken)}.icon-button svg{width:22px;height:22px}.days-row-viewport,.week-overview-viewport{position:relative;width:min(100%,560px);margin:0 auto;touch-action:pan-y pinch-zoom;-webkit-user-select:none;user-select:none}.days-row-viewport--sliding,.days-row-viewport--dragging,.week-overview-viewport--moving{overflow:hidden}.days-row{position:relative;display:grid;grid-template-columns:repeat(7,minmax(38px,1fr));gap:4px;width:100%}.week-page--outgoing{position:absolute;inset:0;pointer-events:none}.week-page--drag-current{transform:translate(var(--week-drag-x))}.week-page--drag-preview{position:absolute;inset:0;pointer-events:none}.week-page--drag-preview-next{transform:translate(calc(100% + var(--week-drag-x)))}.week-page--drag-preview-previous{transform:translate(calc(-100% + var(--week-drag-x)))}.week-page--drag-settle{transition:transform .16s ease-out}@media(prefers-reduced-motion:reduce){.week-page--drag-settle{transition:none}}.days-row-viewport--sliding .days-row,.days-row--selection-incoming{z-index:2}.days-row--selection-incoming:before{visibility:hidden}.week-selection-runway{position:absolute;inset:0;z-index:1;display:grid;grid-template-columns:repeat(7,minmax(38px,1fr));gap:4px;pointer-events:none}.week-selection-runner{background:var(--accent-fill);border-radius:var(--radius-control);box-shadow:0 5px 12px var(--accent-glow)}@media(prefers-reduced-motion:no-preference){.week-page--slide-in-next{animation:week-days-in-next .36s cubic-bezier(.22,.78,.24,1) both}.week-page--slide-out-next{animation:week-days-out-next .36s cubic-bezier(.22,.78,.24,1) both}.week-page--slide-in-previous{animation:week-days-in-previous .36s cubic-bezier(.22,.78,.24,1) both}.week-page--slide-out-previous{animation:week-days-out-previous .36s cubic-bezier(.22,.78,.24,1) both}.week-page--slide-in-next.week-page--from-drag{animation:week-days-in-next-drag .36s cubic-bezier(.22,.78,.24,1) both}.week-page--slide-out-next.week-page--from-drag{animation:week-days-out-next-drag .36s cubic-bezier(.22,.78,.24,1) both}.week-page--slide-in-previous.week-page--from-drag{animation:week-days-in-previous-drag .36s cubic-bezier(.22,.78,.24,1) both}.week-page--slide-out-previous.week-page--from-drag{animation:week-days-out-previous-drag .36s cubic-bezier(.22,.78,.24,1) both}.week-selection-runner--next{animation:week-marker-from-left .26s cubic-bezier(.3,1.3,.5,1) .18s both}.week-selection-runner--previous{animation:week-marker-from-right .26s cubic-bezier(.3,1.3,.5,1) .18s both}.day-button--pending{animation:week-pending-ink .26s linear .18s both}}@keyframes week-days-in-next{0%{transform:translate(100%)}}@keyframes week-days-out-next{to{transform:translate(-100%)}}@keyframes week-days-in-previous{0%{transform:translate(-100%)}}@keyframes week-days-out-previous{to{transform:translate(100%)}}@keyframes week-days-in-next-drag{0%{transform:translate(calc(100% + var(--week-drag-start)))}to{transform:translate(0)}}@keyframes week-days-out-next-drag{0%{transform:translate(var(--week-drag-start))}to{transform:translate(-100%)}}@keyframes week-days-in-previous-drag{0%{transform:translate(calc(-100% + var(--week-drag-start)))}to{transform:translate(0)}}@keyframes week-days-out-previous-drag{0%{transform:translate(var(--week-drag-start))}to{transform:translate(100%)}}@keyframes week-marker-from-left{0%{transform:translate(calc(-700% - 28px))}to{transform:translate(0)}}@keyframes week-marker-from-right{0%{transform:translate(calc(700% + 28px))}to{transform:translate(0)}}@keyframes week-pending-ink{0%,72%{color:var(--muted)}to{color:var(--on-accent)}}.days-row--has-selection:before{position:absolute;top:0;bottom:0;left:0;width:calc(14.285714% - 3.428571px);content:"";background:var(--accent-fill);border-radius:var(--radius-control);box-shadow:0 5px 12px var(--accent-glow);transform:translate(calc(var(--selected-day-index) * (100% + 4px)));transition:transform .26s cubic-bezier(.3,1.3,.5,1);pointer-events:none}.week-overview{--week-overview-height: 112px;display:grid;grid-template-columns:repeat(7,minmax(38px,1fr));gap:4px;width:min(100%,560px);height:var(--week-overview-height);margin:6px auto 0}.week-overview-viewport{margin-top:6px}.week-overview-viewport .week-overview{width:100%;margin:0}.week-overview-day{position:relative;display:flex;min-width:0;gap:1px;padding:0;overflow:hidden;background:color-mix(in srgb,var(--muted) 9%,transparent);border:0;border-radius:var(--radius-xs);cursor:pointer}.week-overview-day--today{background:color-mix(in srgb,var(--blue) 14%,transparent)}.week-overview-day--selected{outline:1.5px solid var(--blue);outline-offset:1px}.week-overview-track{position:relative;flex:1;min-width:0;border-top:3px solid var(--member-color)}.week-overview-block{position:absolute;top:var(--top);right:0;left:0;height:var(--height);min-height:2px;background:var(--block-color);border-radius:2px}.week-overview-frame{--track-top: 3px;position:absolute;top:calc(var(--track-top) + (100% - var(--track-top)) * var(--frame-top) / 100);left:calc(100% * var(--frame-left) / 100);z-index:1;box-sizing:border-box;width:calc(100% * var(--frame-width) / 100);height:calc((100% - var(--track-top)) * var(--frame-height) / 100);pointer-events:none;background:color-mix(in srgb,var(--accent-fill) 12%,transparent);border:2px solid var(--accent-fill);border-radius:3px;box-shadow:0 0 0 1px var(--surface)}.week-overview-frame--cut-top{border-top-style:dashed;border-top-left-radius:0;border-top-right-radius:0}.week-overview-frame--cut-bottom{border-bottom-style:dashed;border-bottom-left-radius:0;border-bottom-right-radius:0}@media(prefers-reduced-motion:no-preference){.week-overview-frame{transition:top .12s linear,height .12s linear,left .16s ease,width .16s ease}}.week-overview-now{position:absolute;top:var(--top);right:0;left:0;height:1.5px;background:var(--now);pointer-events:none}.week-overview-empty{grid-column:1 / -1;align-self:center;margin:0;color:var(--muted);font-size:var(--font-size-13);text-align:center}.week-overview--loading .week-overview-day{animation:week-overview-pulse 1.2s ease-in-out .4s infinite alternate backwards}@keyframes week-overview-pulse{0%{opacity:1}to{opacity:.45}}@media(prefers-reduced-motion:reduce){.week-overview--loading .week-overview-day{animation:none;opacity:.6}}.week-overview-retry{padding:0;color:var(--blue);font:inherit;font-weight:var(--font-weight-650);text-decoration:underline;background:none;border:0;cursor:pointer}.week-overview-handle{display:flex;width:100%;min-height:44px;align-items:center;justify-content:center;gap:8px;padding:0;color:var(--muted);font:inherit;font-size:var(--font-size-12);font-weight:var(--font-weight-800);background:transparent;border:0;cursor:pointer;margin:2px 0 0}.week-overview-hint-target{display:inline-flex;align-items:center;gap:8px}.week-overview-chevron{width:16px;height:16px}.week-overview-chevron--open{transform:rotate(180deg)}@media(prefers-reduced-motion:no-preference){.week-overview-chevron{transition:transform .18s ease-out}}.day-button{position:relative;z-index:1;display:grid;place-content:center;min-height:53px;padding:5px 4px;text-align:center;color:var(--muted);background:transparent;border:0;border-radius:var(--radius-control);cursor:pointer}.day-button span{font-size:var(--font-size-12);font-weight:var(--font-weight-650)}.day-button b{position:relative;display:grid;width:25px;height:25px;margin-top:2px;justify-self:center;place-items:center;font-size:var(--font-size-14);font-weight:var(--font-weight-650)}.day-button--marked b:before{--day-marker-ring-color: var(--marker-ink-light, var(--marker-color, var(--blue)));position:absolute;inset:0;border:2px solid var(--day-marker-ring-color);border-radius:var(--radius-pill);animation:day-marker-pulse 2.6s ease-in-out infinite;content:""}.day-button--active{color:var(--on-accent);background:transparent}.day-button--today b:after{position:absolute;bottom:-4px;left:50%;width:4px;height:4px;content:"";background:var(--now);border-radius:50%;transform:translate(-50%)}.day-button--today.day-button--active b:after{background:var(--on-accent)}.day-button--today.day-button--marked b{top:-2px}.day-button--today.day-button--marked b:after{bottom:-6px}.day-button--active.day-button--marked b:before{--day-marker-ring-color: var(--on-accent)}@keyframes day-marker-pulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--day-marker-ring-color) 18%,transparent)}50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--day-marker-ring-color) 8%,transparent)}}.icon-button--badged{position:relative}.icon-badge{position:absolute;top:5px;right:4px;display:grid;min-width:17px;height:17px;padding:0 4px;place-items:center;color:var(--surface);font-size:var(--font-size-11);font-weight:var(--font-weight-800);line-height:1;background:var(--blue-strong);border:2px solid var(--surface);border-radius:var(--radius-pill)}.today-button{display:none;min-height:36px;padding:0 12px;color:var(--blue-strong);font-size:var(--font-size-13);font-weight:var(--font-weight-650);background:var(--blue-soft);border:0;border-radius:var(--radius-control);cursor:pointer}.child-tabs{display:flex;gap:7px;overflow-x:auto;padding:9px 14px;background:var(--surface);overscroll-behavior-x:contain;scrollbar-width:none;scroll-snap-type:x proximity}.child-tabs::-webkit-scrollbar{display:none}.child-tab{flex:1 0 calc(40% - 5px);min-width:108px;min-height:44px;color:var(--muted-deep);font-weight:var(--font-weight-650);background:var(--surface-sunken);border:1px solid transparent;border-radius:var(--radius-control);cursor:pointer;scroll-snap-align:center}.child-tab--active{color:var(--child-ink-light);background:var(--child-soft);border-color:color-mix(in srgb,var(--child-accent) 25%,var(--surface))}.planner-viewport{position:relative;display:flex;min-height:0;flex:1;flex-direction:column;overflow:hidden;background:var(--surface);touch-action:pan-x pan-y;--stage-gutter: 58px;--stage-right: 14px}.viewport-header{display:none}.timeline-frame{position:relative;display:flex;min-height:0;flex:1;flex-direction:column;overflow:hidden}.timeline-scroller{min-height:0;flex:1;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.timeline-load-error{position:absolute;top:50%;left:50%;z-index:9;display:grid;width:min(360px,calc(100% - 32px));gap:9px;padding:18px;color:var(--ink);font-size:var(--font-size-13);text-align:center;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-card);box-shadow:var(--shadow-2);transform:translate(-50%,-50%)}.timeline-load-error strong{font-size:var(--font-size-15)}.timeline-load-error button{min-height:44px;color:var(--on-accent);font:inherit;font-weight:var(--font-weight-800);background:var(--accent-fill);border:0;border-radius:var(--radius-control);cursor:pointer}.timeline-edge{position:absolute;right:0;left:0;z-index:8;display:flex;height:46px;pointer-events:none}.timeline-edge-lanes{display:grid;flex:1;grid-template-columns:repeat(var(--visible-lanes),minmax(0,1fr));margin-right:var(--stage-right);margin-left:var(--stage-gutter)}.timeline-edge-slot{display:flex;min-width:0;justify-content:center}.timeline-edge--top{top:0;align-items:flex-start;background:linear-gradient(to bottom,var(--surface) 10%,transparent)}.timeline-edge--bottom{bottom:0;align-items:flex-end;background:linear-gradient(to top,var(--surface) 10%,transparent)}.timeline-edge-pill{display:inline-flex;min-height:26px;align-items:center;gap:2px;padding:0 9px 0 6px;color:var(--blue-strong);font-size:var(--font-size-12);font-weight:var(--font-weight-800);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-pill);box-shadow:0 1px 4px #00000017;cursor:pointer;pointer-events:auto}.timeline-edge--top .timeline-edge-pill{margin-top:3px}.timeline-edge--bottom .timeline-edge-pill{margin-bottom:3px}.timeline-edge-pill svg{width:15px;height:15px}.timeline-edge-pill b{font-weight:var(--font-weight-800)}.timeline-stage{--stage-top-padding: 8px;position:relative;display:grid;grid-template-columns:var(--stage-gutter) minmax(0,1fr);min-height:calc(var(--timeline-height) + 28px);padding:var(--stage-top-padding) var(--stage-right) 20px 0}.timeline-stage--waiting .timeline-lanes,.timeline-stage--waiting .timeline-now-line{opacity:0}.timeline-stage--waiting,.timeline-stage--exit-next,.timeline-stage--exit-previous{pointer-events:none}@media(prefers-reduced-motion:no-preference){.timeline-stage--exit-next .timeline-lanes{animation:day-slide-out-next .15s ease-in both}.timeline-stage--exit-previous .timeline-lanes{animation:day-slide-out-previous .15s ease-in both}.timeline-stage--enter-next .timeline-lanes{animation:day-slide-in-next .18s ease-out both}.timeline-stage--enter-previous .timeline-lanes{animation:day-slide-in-previous .18s ease-out both}}@keyframes day-slide-out-next{to{opacity:0;transform:translate(-28px)}}@keyframes day-slide-out-previous{to{opacity:0;transform:translate(28px)}}@keyframes day-slide-in-next{0%{opacity:0;transform:translate(28px)}}@keyframes day-slide-in-previous{0%{opacity:0;transform:translate(-28px)}}@media(prefers-reduced-motion:reduce){.days-row--has-selection:before{transition:none}.timeline-stage--waiting .timeline-lanes{opacity:1}}.timeline-now-line{position:absolute;right:var(--stage-right);left:var(--stage-gutter);z-index:8;height:2px;background:var(--now);pointer-events:none}.timeline-now-line:before{position:absolute;top:-3px;left:-3px;width:8px;height:8px;content:"";background:var(--now);border-radius:50%}.time-gutter,.timeline-lanes,.child-lane{position:relative;height:var(--timeline-height)}.planner-viewport.planner-viewport--peek{--lane-peek: 18px;--stage-right: 0px}.planner-viewport--peek .timeline-lanes{padding-inline:var(--lane-peek);scroll-padding-inline:var(--lane-peek)}.planner-viewport--peek .child-lane:not(.child-lane--active){pointer-events:none}.planner-viewport--peek .child-lane:not(.child-lane--active)>*{opacity:.45}.planner-viewport--peek .timeline-edge-lanes{margin-right:var(--lane-peek);margin-left:calc(var(--stage-gutter) + var(--lane-peek))}.timeline-lanes{display:grid;grid-auto-flow:column;grid-auto-columns:calc(100% / var(--visible-lanes));min-width:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none}.timeline-lanes::-webkit-scrollbar{display:none}.child-lane{min-width:0;border-left:1px solid var(--surface-muted);background-image:linear-gradient(to bottom,var(--night-wash) 0 420px,transparent 420px 1260px,var(--night-wash) 1260px 1440px),repeating-linear-gradient(to bottom,var(--hour-line) 0 1px,transparent 1px 60px),repeating-linear-gradient(to bottom,var(--half-hour-line) 0 1px,transparent 1px 30px);scroll-snap-align:start}.child-lane--active{background-image:linear-gradient(#1676f305,#1676f305),linear-gradient(to bottom,var(--night-wash) 0 420px,transparent 420px 1260px,var(--night-wash) 1260px 1440px),repeating-linear-gradient(to bottom,var(--hour-line) 0 1px,transparent 1px 60px),repeating-linear-gradient(to bottom,var(--half-hour-line) 0 1px,transparent 1px 30px)}.time-gutter .hour-label{position:absolute;right:10px;z-index:2;color:var(--muted);font-size:var(--font-size-12);line-height:1;transform:translateY(-50%)}.current-time-marker{position:absolute;right:5px;z-index:6;padding:5px 6px;color:var(--now-ink);font-size:var(--font-size-12);line-height:1;background:var(--now);border-radius:var(--radius-xs);box-shadow:var(--shadow-1);transform:translateY(-50%)}.current-time-marker:after{position:absolute;top:50%;right:-6px;width:0;height:0;content:"";border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:7px solid var(--now);transform:translateY(-50%)}.current-time-marker b{font-weight:var(--font-weight-800)}.event-card{position:absolute;top:var(--event-top);left:8px;right:2px;z-index:2;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;height:var(--event-height);min-height:15px;color:var(--event-ink, var(--ink));background:color-mix(in srgb,var(--event-bg) var(--event-fill),var(--surface));border:1px solid color-mix(in srgb,var(--event-border) var(--event-stroke),var(--surface));border-radius:var(--radius-xs);box-shadow:0 2px 6px #1627460a;touch-action:pan-x pan-y;-webkit-user-select:none;user-select:none}.event-card--modified{border:2px dashed var(--success-accent)}.event-card--selected{z-index:4;outline:2px solid var(--focus-ring);outline-offset:1px;box-shadow:var(--shadow-2)}@media(prefers-reduced-motion:no-preference){.event-card{transition:box-shadow .18s ease-out,outline-color .18s ease-out}.event-card--selected .handle-dot{animation:handle-pop .18s cubic-bezier(.3,1.3,.5,1) both}.event-card--selected .handle-label{animation:handle-label-in .18s ease-out both}}@keyframes handle-pop{0%{opacity:0;transform:scale(.3)}}@keyframes handle-label-in{0%{opacity:0;transform:translate(6px)}}.event-card--past:not(.event-card--selected){color:var(--event-past-ink, var(--ink));background:var(--event-past-bg-light, var(--surface));border-color:color-mix(in srgb,var(--event-border) 60%,var(--surface))}.event-card--past.event-card--modified:not(.event-card--selected){border-color:var(--success-accent)}.event-card--moving{z-index:6;opacity:.94;transform:scale(1.03);outline:2px solid var(--accent-fill);outline-offset:2px;box-shadow:var(--shadow-3);touch-action:none}@media(prefers-reduced-motion:no-preference){.event-card--moving{animation:event-lift .16s cubic-bezier(.3,1.4,.5,1) both}}@keyframes event-lift{0%{transform:scale(1)}}.transport-zone,.event-main{min-width:0;min-height:100%;padding:0;color:inherit;background:transparent;border:0;cursor:pointer}.transport-zone{z-index:3;display:grid;width:34px;height:34px;min-height:34px;margin-top:8px;align-self:start;justify-self:center;place-items:center}.transport-zone span{display:grid;place-items:center;width:28px;height:28px;font-size:var(--font-size-13);font-weight:var(--font-weight-800);color:var(--person-ink, var(--on-accent));background:var(--person-color, var(--muted));border:1px solid var(--veil-line);border-radius:50%;box-shadow:0 0 0 1px #14213d3d,0 2px 5px #14213d29}.transport-zone--empty span{color:var(--muted-deep);background:var(--surface);border:1.5px dashed var(--muted);border-radius:50%;box-shadow:none}.event-side-target{position:absolute;top:42px;bottom:0;z-index:3;width:44px;cursor:pointer}.event-side-target--in{left:0}.event-side-target--out{right:0}.event-main{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;overflow:hidden;height:100%;padding:10px 4px 7px;text-align:center}.event-heading{max-width:100%;overflow:hidden;font-size:var(--font-size-14);font-weight:var(--font-weight-800);letter-spacing:0;text-overflow:ellipsis;text-transform:none;white-space:nowrap}.event-main time{margin-top:3px;font-size:var(--font-size-12);font-weight:var(--font-weight-650)}.event-card.event-card--join-right{right:-1px;border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.event-card.event-card--join-left{left:0;border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.event-card--join-left:before{position:absolute;top:8px;bottom:8px;left:0;border-left:1px dashed currentColor;content:"";opacity:.22;pointer-events:none}.event-card--ear-left:before,.event-card--ear-right:after{position:absolute;top:10px;width:8px;height:18px;background:color-mix(in srgb,var(--event-border) var(--event-stroke),var(--surface));content:"";pointer-events:none}.event-card--ear-left:before{left:-9px;border-radius:9px 0 0 9px}.event-card--ear-right:after{right:-9px;border-radius:0 9px 9px 0}.event-card--selected.event-card--ear-left:before,.event-card--selected.event-card--ear-right:after,.event-card--linked.event-card--ear-left:before,.event-card--linked.event-card--ear-right:after{background:var(--focus-ring)}.event-card--linked{z-index:4;outline:2px solid var(--focus-ring);outline-offset:1px}.event-companions{max-width:100%;margin-top:3px;overflow:hidden;font-size:var(--font-size-12);font-weight:var(--font-weight-650);text-overflow:ellipsis;white-space:nowrap;opacity:.82}.event-description{display:-webkit-box;max-width:100%;margin-top:4px;overflow:hidden;font-size:var(--font-size-12);font-weight:var(--font-weight-500);line-height:16px;overflow-wrap:anywhere;white-space:pre-line;opacity:.85;-webkit-box-orient:vertical;-webkit-line-clamp:var(--description-lines);line-clamp:var(--description-lines)}.event-participants{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;margin-top:6px}.event-participants i{width:9px;height:9px;box-sizing:border-box;border:1.5px solid var(--participant-color);border-radius:50%;opacity:.6}.event-participants i.is-in{background:var(--participant-color);opacity:1}.event-shared-off{position:absolute;bottom:6px;z-index:3;max-width:calc(100% - 16px);min-height:30px;padding:0 10px;overflow:hidden;color:var(--ink);font-size:var(--font-size-12);font-weight:var(--font-weight-800);text-overflow:ellipsis;white-space:nowrap;background:var(--surface);border:1.5px solid color-mix(in srgb,var(--event-border) var(--event-stroke),var(--surface));border-radius:var(--radius-pill);cursor:pointer}.event-shared-off--left{left:6px}.event-shared-off--right{right:6px}.event-card--compact .event-main{justify-content:center;padding-block:2px}.event-card--compact .transport-zone{height:100%;max-height:34px;min-height:0;margin-top:0;place-items:center;overflow:hidden}.event-card--compact .transport-zone span{width:min(24px,calc(var(--event-height) - 4px));height:min(24px,calc(var(--event-height) - 4px));min-height:0;font-size:min(11px,calc(var(--event-height) - 8px));border:1px solid var(--veil-line);border-radius:50%;box-shadow:none}.event-card--compact .transport-zone--empty span{width:min(24px,calc(var(--event-height) - 4px));height:min(24px,calc(var(--event-height) - 4px));margin:auto;color:var(--muted-deep);background:var(--surface);border:1.5px dashed var(--muted);border-radius:50%}.mini-lessons{display:flex;width:100%;flex-direction:column;align-items:center;gap:5px;margin-top:18px;color:var(--ink-soft);font-size:var(--font-size-12);line-height:1.15}.mini-lessons span.is-cancelled{color:var(--ink-cancelled);text-decoration:line-through;opacity:.72}.mini-lessons b{font-weight:var(--font-weight-650)}.school-subject-signatures{position:absolute;inset:0;overflow:clip;color:color-mix(in srgb,var(--ink) 72%,transparent);font-size:var(--font-size-12);line-height:1.25;pointer-events:none}.school-subject-signatures span{position:absolute;top:var(--subject-top);left:3px;display:flex;align-items:center;width:calc(100% - 6px);height:var(--subject-height);overflow:hidden;padding:3px 9px;padding-top:var(--subject-clearance, 3px);background:transparent;border:0;border-bottom:1px solid var(--line-veil);border-radius:0;box-shadow:none;font-weight:var(--font-weight-650);text-overflow:ellipsis;white-space:nowrap}.school-subject-signatures .school-subject--short{padding:0 3px;font-size:var(--font-size-11);line-height:1;border-bottom:0}.event-card--short-first-lesson .school-time-range--marked{inset:auto 42px 2px auto;display:grid;width:26px;min-width:0;height:24px;place-items:center;padding:0;border-radius:50%;transform:none}.event-card--short-first-lesson .school-time-range--marked span{display:none}.event-card--short-first-lesson .school-subject-signatures span:last-child{padding-right:34px}.event-card--compact-school-mark .school-time-range--marked{inset:0 44px auto auto;display:grid;width:44px;min-width:0;max-width:none;height:100%;place-items:center;padding:0;background:transparent;border:0;box-shadow:none;transform:none}.event-card--compact-school-mark .school-time-range--marked .mark-glyph{display:grid;width:min(20px,calc(var(--event-height) - 2px));height:min(20px,calc(var(--event-height) - 2px));place-items:center;color:inherit;font-size:min(11px,calc(var(--event-height) - 5px));background:color-mix(in srgb,var(--mark-color) 16%,var(--surface));border:1px solid var(--mark-color);border-radius:50%}.event-card--compact-school-mark .school-subject-signatures span{padding-right:46px}.school-time-range{position:absolute;top:-9px;left:50%;z-index:3;min-width:118px;padding:4px 13px;color:var(--ink);font-size:var(--font-size-13);font-weight:var(--font-weight-800);line-height:1;text-align:center;white-space:nowrap;background:color-mix(in srgb,var(--event-bg) calc(.74 * var(--event-fill)),var(--surface));border:1px solid color-mix(in srgb,var(--event-border) calc(.5 * var(--event-stroke)),var(--surface));border-radius:var(--radius-pill);box-shadow:0 2px 6px #16274614;transform:translate(-50%);pointer-events:none}.hidden-trace{position:absolute;top:var(--event-top);left:8px;right:2px;z-index:1;display:flex;height:var(--event-height);min-height:15px;align-items:center;justify-content:center;border:1px dashed color-mix(in srgb,var(--event-border) 60%,transparent);border-radius:var(--radius-xs);pointer-events:none}.hidden-trace .school-time-range{pointer-events:auto}.hidden-trace-text{display:grid;gap:2px;margin:0;padding:0 8px;overflow:hidden;color:var(--muted);font-size:var(--font-size-12);line-height:1.2;text-align:center;opacity:.78}.hidden-trace-text strong{font-weight:var(--font-weight-800)}.hidden-trace-text small{font-size:var(--font-size-11);opacity:.85}.hidden-trace--compact .hidden-trace-text{display:block;white-space:nowrap;text-overflow:ellipsis}.hidden-trace--compact .hidden-trace-text span:before{content:" · "}.hidden-trace--compact .hidden-trace-text small{display:none}.orphan-mark{position:absolute;top:var(--event-top);left:8px;right:2px;z-index:2;display:flex;height:var(--event-height);align-items:center;gap:6px;padding:0 10px;overflow:hidden;color:var(--ink);font:inherit;font-size:var(--font-size-13);font-weight:var(--font-weight-800);text-align:left;background:color-mix(in srgb,var(--event-bg) calc(.74 * var(--event-fill)),var(--surface));border:1.5px solid var(--mark-color);border-radius:var(--radius-pill);cursor:pointer}.orphan-mark b{flex:0 0 auto;color:var(--mark-ink-light, var(--mark-color))}.orphan-mark span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.school-time-range--marked{display:inline-flex;min-width:0;max-width:min(60%,220px);align-items:center;justify-content:center;gap:6px;overflow:hidden;color:var(--mark-ink-light, var(--mark-color));background:color-mix(in srgb,var(--mark-color) 16%,var(--surface));border:2px solid var(--mark-color);cursor:pointer;pointer-events:auto}.school-time-range--marked>span{overflow:hidden;text-overflow:ellipsis}.school-time-range--marked .mark-symbol{flex:0 0 auto}.school-time-range--urgent{animation:mark-pulse 1.9s ease-in-out infinite}@keyframes mark-pulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--mark-color) 55%,transparent)}55%{box-shadow:0 0 0 7px color-mix(in srgb,var(--mark-color) 0%,transparent)}}.activity-group{margin:16px 0 8px;color:var(--muted);font-size:var(--font-size-12);font-weight:var(--font-weight-800);letter-spacing:.06em;text-transform:uppercase}.mark-host-choice{display:grid;gap:6px;margin-bottom:4px}.mark-host-choice>span{color:var(--muted);font-size:var(--font-size-12);font-weight:var(--font-weight-650)}.mark-host-choice button{min-height:44px;padding:0 12px;color:var(--ink-soft);font-size:var(--font-size-13);font-weight:var(--font-weight-650);text-align:left;background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--radius-control);cursor:pointer}.mark-host-choice button.is-active{color:var(--blue-ink);background:var(--blue-soft);border-color:var(--blue-line)}.child-mark{display:inline-block;width:8px;height:8px;margin-left:6px;background:var(--mark-color);border-radius:50%;vertical-align:1px}.child-mark--urgent{animation:mark-pulse 1.9s ease-in-out infinite}.mark-list{display:grid;gap:7px}.mark-row{display:flex;min-height:58px;align-items:center;gap:11px;padding:9px 11px;color:var(--ink);text-align:left;background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--radius-control);cursor:pointer}.mark-row-symbol{display:grid;width:34px;height:34px;flex:0 0 auto;place-items:center;font-size:var(--font-size-15);background:var(--surface-muted);border-radius:var(--radius-control)}.mark-row>span{display:grid;min-width:0;gap:2px}.mark-row strong{font-size:var(--font-size-14)}.mark-row small{overflow:hidden;color:var(--muted);font-size:var(--font-size-12);text-overflow:ellipsis;white-space:nowrap}.resize-handle{position:absolute;right:-13px;z-index:7;display:grid;place-items:center;width:44px;height:44px;padding:0;background:transparent;border:0;border-radius:50%;touch-action:none;cursor:ns-resize}.resize-handle--start{top:-22px}.resize-handle--end{bottom:-22px}.resize-handle .handle-dot{width:15px;height:15px;background:var(--surface);border:3px solid var(--blue);border-radius:50%;box-shadow:0 1px 4px #00378233}.resize-handle .handle-label{position:absolute;right:30px;padding:5px 8px;color:var(--blue-strong);font-size:var(--font-size-12);font-weight:var(--font-weight-800);line-height:1;white-space:nowrap;background:var(--surface);border:1px solid var(--blue-mid);border-radius:var(--radius-xs);box-shadow:0 2px 8px #124b911f;pointer-events:none}.lane-drag-line{position:absolute;left:0;right:0;z-index:9;height:1px;background:var(--blue);pointer-events:none}.lane-drag-line:after{position:absolute;top:-4px;right:-4px;width:9px;height:9px;content:"";background:var(--surface);border:2px solid var(--blue);border-radius:50%}.drag-time-bubble{position:absolute;right:5px;z-index:10;min-width:49px;padding:5px 6px;color:var(--on-accent);font-size:var(--font-size-12);font-weight:var(--font-weight-800);text-align:center;background:var(--accent-fill);border-radius:var(--radius-xs);box-shadow:0 2px 8px #124b9129;pointer-events:none;transform:translateY(-50%)}.drag-time-bubble:after{position:absolute;top:50%;right:-6px;width:0;height:0;content:"";border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:7px solid var(--accent-fill);transform:translateY(-50%)}.lane-drag-line--strong{height:2px;box-shadow:0 0 0 2px var(--accent-glow)}.drag-time-bubble--strong{font-weight:var(--font-weight-800)}.lane-fabs{position:absolute;right:max(var(--stage-right),env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));left:var(--stage-gutter);z-index:8;display:grid;grid-template-columns:repeat(var(--visible-lanes),minmax(0,1fr));pointer-events:none}.lane-fab-slot{display:flex;min-width:0;justify-content:flex-end;padding-right:3px}.fab{display:grid;place-items:center;width:54px;height:54px;padding:14px;color:var(--on-accent);background:var(--accent-fill);border:0;border-radius:var(--radius-card);box-shadow:0 9px 22px var(--accent-glow);cursor:pointer;pointer-events:auto}.fab:hover{background:var(--accent-fill);filter:brightness(.94)}@media(prefers-reduced-motion:no-preference){:is(.icon-button,.today-button,.day-button,.child-tab,.fab,.mobile-planner-actions button,.primary-button,.choice-row,.row-actions button,.menu-links button,.menu-links a,.next-day-button,.now-jump-button,.week-overview-day,.week-overview-handle,.toast button):not(:disabled){transition:transform 90ms ease-out,filter 90ms ease-out}:is(.icon-button,.today-button,.day-button,.child-tab,.fab,.mobile-planner-actions button,.primary-button,.choice-row,.row-actions button,.menu-links button,.menu-links a,.next-day-button,.now-jump-button,.week-overview-day,.week-overview-handle,.toast button):not(:disabled):active{transform:scale(.96);filter:brightness(.94)}:is(.mobile-day-stepper button,.mobile-planner-add button,.fab):not(:disabled):active{transform:scale(.9)}:is(.mobile-planner-context-button,.next-day-button):not(:disabled):active{transform:scale(.93)}.mobile-planner-context-button span,.mobile-day-stepper>span{animation:day-control-label-in .18s ease-out both}}@keyframes day-control-label-in{0%{opacity:0;transform:translateY(5px)}}.fab:disabled,.mobile-planner-add button:disabled{cursor:wait;opacity:.52}.fab svg{width:26px;height:26px}.fab[data-hinted],.mobile-planner-add button.is-hinted{animation:add-button-hint .62s ease-in-out 3}.add-gesture-hint{position:absolute;right:max(14px,env(safe-area-inset-right));bottom:calc(max(18px,env(safe-area-inset-bottom)) + 66px);z-index:12;max-width:min(260px,calc(100% - 28px));margin:0;padding:9px 12px;color:var(--surface);font-size:var(--font-size-13);font-weight:var(--font-weight-800);line-height:1.35;background:var(--ink-strong);border-radius:var(--radius-control);box-shadow:0 8px 22px #0a182d38;pointer-events:none}.add-gesture-hint:after{position:absolute;right:22px;bottom:-6px;width:12px;height:12px;content:"";background:inherit;transform:rotate(45deg)}.now-jump-button{position:absolute;left:10px;bottom:max(18px,env(safe-area-inset-bottom));z-index:9;min-height:44px;padding:0 12px;color:var(--blue-strong);font-size:var(--font-size-12);font-weight:var(--font-weight-800);background:var(--veil);border:1px solid var(--blue-mid);border-radius:var(--radius-control);box-shadow:0 5px 16px #124b9124;cursor:pointer}.next-day-button{position:absolute;left:10px;bottom:max(18px,env(safe-area-inset-bottom));z-index:9;display:inline-flex;min-height:44px;align-items:center;gap:2px;padding:0 8px 0 12px;color:var(--surface);font-size:var(--font-size-12);font-weight:var(--font-weight-800);background:var(--blue-strong);border:1px solid var(--blue-strong);border-radius:var(--radius-control);box-shadow:0 5px 16px #124b9138;cursor:pointer}.next-day-button svg{width:18px;height:18px}.pickup-quick{position:absolute;right:max(14px,env(safe-area-inset-right));bottom:calc(max(18px,env(safe-area-inset-bottom)) + 66px);z-index:12}.pickup-quick--on-timeline{top:calc(var(--stage-top-padding) + var(--pickup-minute) + 20px);bottom:auto;left:3px;right:auto}.pickup-quick-button{position:relative;display:grid;width:52px;height:52px;place-items:center;color:var(--on-accent);background:var(--accent-fill);border:0;border-radius:var(--radius-card);box-shadow:0 8px 20px var(--accent-glow);cursor:pointer}.pickup-quick-button svg{width:27px;height:27px}.pickup-quick-button--named{grid-template-rows:24px 14px;gap:2px;padding:6px 2px}.pickup-quick-button--named svg{width:24px;height:24px}.pickup-quick-name{min-width:0;max-width:100%;overflow:hidden;font-size:var(--font-size-12);font-weight:var(--font-weight-800);line-height:14px;text-overflow:ellipsis;white-space:nowrap;pointer-events:none}@media(prefers-reduced-motion:no-preference){.pickup-quick--on-timeline{animation:pickup-from-clock .56s cubic-bezier(.3,1.3,.5,1) both}.pickup-quick--on-timeline .pickup-quick-button:before,.pickup-quick--on-timeline .pickup-quick-button:after{position:absolute;inset:0;content:"";border:2px solid var(--accent-text);border-radius:inherit;opacity:0;pointer-events:none;animation:pickup-ring .9s cubic-bezier(.2,.8,.2,1) .45s both}.pickup-quick--on-timeline .pickup-quick-button:after{animation-delay:1.15s}}@keyframes pickup-from-clock{0%{opacity:0;transform:translateY(-34px) scale(.3)}}@keyframes pickup-ring{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.7)}}.mobile-planner-actions{position:absolute;right:0;bottom:0;left:0;z-index:10;display:grid;min-height:calc(66px + env(safe-area-inset-bottom));grid-template-columns:minmax(64px,1fr) auto minmax(64px,1fr);align-items:start;gap:8px;padding:10px max(12px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:color-mix(in srgb,var(--surface) 82%,transparent);border-top:1px solid var(--line);box-shadow:var(--shadow-1);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.mobile-planner-context,.mobile-planner-add{display:flex;min-width:0}.mobile-planner-add{grid-column:1;justify-content:flex-start}.mobile-day-stepper{grid-column:2}.mobile-planner-context{grid-column:3;justify-content:flex-end}.mobile-planner-context-button,.mobile-day-stepper button,.mobile-planner-add button{display:grid;min-width:44px;min-height:44px;place-items:center;color:var(--blue-strong);background:var(--surface);border:1px solid var(--blue-mid);border-radius:var(--radius-control);cursor:pointer}.mobile-planner-context-button{padding:0 12px;font-size:var(--font-size-13);font-weight:var(--font-weight-800)}.mobile-day-stepper{display:grid;grid-template-columns:44px minmax(54px,auto) 44px;align-items:center;overflow:hidden;color:var(--ink);font-size:var(--font-size-12);font-weight:var(--font-weight-800);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-pill)}.mobile-day-stepper button{border:0;border-radius:0}.mobile-day-stepper button:hover,.mobile-planner-context-button:hover{background:var(--blue-soft)}.mobile-day-stepper svg,.mobile-planner-add svg{width:22px;height:22px}.mobile-day-stepper span{padding:0 5px;text-align:center;white-space:nowrap}.mobile-planner-add button{color:var(--on-accent);background:var(--accent-fill);border-color:var(--accent-fill);box-shadow:0 5px 14px var(--accent-glow)}.mobile-planner-add button:hover{background:var(--accent-fill);filter:brightness(.94)}.sheet-layer{position:fixed;inset:0;z-index:30;display:flex;align-items:flex-end;justify-content:center;padding:0;background:#0f1b2f70;animation:fade-in .16s ease-out}.sheet-layer--closing{animation:fade-out .2s ease-in both}.bottom-sheet{position:relative;width:min(100%,560px);max-height:min(82dvh,720px);overflow:auto;padding:0 max(16px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:var(--surface);border:1px solid var(--line-strong);border-color:color-mix(in srgb,var(--line-strong) 72%,transparent);border-top:2px solid var(--blue-line);border-bottom:0;border-radius:20px 20px 0 0;box-shadow:0 -18px 50px #0c1b3038,inset 0 1px #ffffff1f;animation:sheet-in .22s cubic-bezier(.2,.72,.2,1)}.bottom-sheet--closing{animation:sheet-out .2s cubic-bezier(.4,0,1,1) both}.sheet-grabber{width:48px;height:5px;margin:11px auto 8px;background:var(--line-strong);border-radius:var(--radius-pill);box-shadow:0 1px 2px #0c1b3029}.sheet-header{display:flex;align-items:center;justify-content:space-between;min-height:66px;gap:12px;border-bottom:1px solid var(--surface-sunken)}.sheet-header h2{margin:0;color:var(--ink);font-size:var(--font-size-20);letter-spacing:-.02em}.sheet-header p{margin:4px 0 0;color:var(--muted);font-size:var(--font-size-13)}.sheet-content{padding-top:10px}.sheet-more{position:sticky;bottom:0;z-index:2;height:0;pointer-events:none}.sheet-more:before{position:absolute;right:-16px;bottom:-20px;left:-16px;height:76px;content:"";background:linear-gradient(to bottom,transparent,var(--surface) 72%)}.sheet-more button{position:absolute;bottom:2px;left:50%;display:inline-flex;min-height:34px;align-items:center;gap:4px;padding:6px 12px 6px 16px;color:var(--blue-ink);font-size:var(--font-size-13);font-weight:var(--font-weight-800);background:var(--surface);border:1px solid var(--blue-line);border-radius:var(--radius-pill);box-shadow:0 6px 16px #0c1b3024;transform:translate(-50%);pointer-events:auto;cursor:pointer}.sheet-more button svg{width:18px;height:18px}.choice-list{display:grid;gap:3px}.choice-row{display:grid;grid-template-columns:42px 1fr 28px;align-items:center;min-height:52px;padding:4px 8px;color:var(--ink);text-align:left;background:transparent;border:0;border-radius:var(--radius-control);cursor:pointer}.choice-row--selected{background:var(--blue-soft)}.choice-check{width:20px;height:20px;color:var(--blue)}.person-avatar,.activity-symbol{display:grid;place-items:center;width:32px;height:32px;color:var(--person-ink, white);font-weight:var(--font-weight-800);border-radius:var(--radius-control)}.person-avatar{border-radius:50%}.person-avatar--rose,.person-avatar--blue,.person-avatar--green,.person-avatar--violet{background:var(--person-color)}.person-avatar--neutral{color:var(--person-ink, var(--ink-soft));background:var(--person-color, var(--surface-sunken))}.person-avatar--empty{color:var(--muted-deep);background:var(--surface);border:1.5px dashed var(--muted);border-radius:50%}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .child-tab--active,:root:not([data-theme=light]) .viewport-child-heading{color:var(--child-ink-dark)}:root:not([data-theme=light]) .day-button--marked b:before{--day-marker-ring-color: var(--marker-ink-dark)}:root:not([data-theme=light]) .school-time-range--marked{color:var(--mark-ink-dark, var(--mark-color))}}:root[data-theme=dark] .child-tab--active,:root[data-theme=dark] .viewport-child-heading{color:var(--child-ink-dark)}:root[data-theme=dark] .day-button--marked b:before{--day-marker-ring-color: var(--marker-ink-dark)}:root[data-theme=dark] .school-time-range--marked{color:var(--mark-ink-dark, var(--mark-color))}:root[data-theme=dark] .day-button--active.day-button--marked b:before,:root:not([data-theme=dark]) .day-button--active.day-button--marked b:before{--day-marker-ring-color: var(--on-accent)}.choice-row:hover{background:var(--surface-sunken)}.activity-symbol,.upcoming-mark{color:var(--event-ink, var(--ink-strong))}.activity-symbol{border:1px solid}.activity-symbol,.upcoming-mark,.activity-preview{background:color-mix(in srgb,var(--tint, var(--surface-muted)) var(--event-fill),var(--surface));border-color:color-mix(in srgb,var(--tint-line, var(--line-strong)) var(--event-stroke),var(--surface))}.emoji-img{display:inline-block;width:1.25em;height:1.25em;flex:none;vertical-align:-.25em;object-fit:contain;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.activity-symbol .emoji-img,.upcoming-mark .emoji-img,.mark-row-symbol .emoji-img{width:66%;height:66%;vertical-align:middle}.activity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}@media(min-width:520px){.activity-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}}.activity-tile{display:grid;align-content:start;justify-items:center;gap:7px;min-height:96px;padding:12px 4px 10px;color:var(--ink);font:inherit;text-align:center;background:var(--surface-sunken);border:1px solid transparent;border-radius:var(--radius-card);cursor:pointer;transition:transform .12s ease,border-color .12s ease;-webkit-tap-highlight-color:transparent}.activity-tile:hover{border-color:var(--line-strong)}.activity-tile:active{transform:scale(.96)}.activity-tile .activity-symbol{width:48px;height:48px;font-size:var(--font-size-17);border-radius:var(--radius-card)}.activity-tile-name{display:-webkit-box;max-width:100%;overflow:hidden;font-size:var(--font-size-13);font-weight:var(--font-weight-650);line-height:1.2;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;-webkit-box-orient:vertical;-webkit-line-clamp:2}.activity-tile small{margin-top:-4px;color:var(--muted);font-size:var(--font-size-11);font-weight:var(--font-weight-650)}.activity-tile--custom{background:transparent;border:1.5px dashed var(--line-strong)}.removed-events+.activity-group{margin-top:14px}.sheet-content>.activity-group:first-child{margin-top:4px}.sheet-heading{min-width:0}.sheet-heading--icon{display:flex;align-items:center;gap:12px}.sheet-symbol{width:44px;height:44px;flex:none;font-size:var(--font-size-17);border-radius:var(--radius-card)}.removed-events{display:grid;margin:0 0 4px}.removed-events .activity-group{margin-top:4px}.removed-row{display:flex;gap:8px;margin:0 -16px;padding:2px 16px 6px;overflow-x:auto;scroll-padding-inline:16px;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}.removed-row::-webkit-scrollbar{display:none}.removed-row--single{margin:0;padding:2px 0 6px;overflow:visible}.removed-card{display:flex;flex:0 0 min(270px,82%);align-items:center;gap:10px;min-height:60px;max-height:84px;padding:8px 8px 8px 10px;overflow:hidden;background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--radius-card);scroll-snap-align:start;transition:background-color .22s ease,border-color .22s ease,opacity .28s ease,max-height .28s ease,min-height .28s ease,padding .28s ease,flex-basis .28s ease}.removed-row--single .removed-card{flex-basis:100%}.removed-card .activity-symbol{width:34px;height:34px;flex:none;opacity:.72;filter:saturate(.6)}.removed-card-text{display:grid;min-width:0;flex:1;gap:2px}.removed-card-text strong{overflow:hidden;color:var(--ink);font-size:var(--font-size-14);text-overflow:ellipsis;white-space:nowrap}.removed-card-text small{color:var(--muted);font-size:var(--font-size-12);line-height:1.25}.removed-card button,.removed-card-done{display:inline-flex;flex:none;align-items:center;gap:5px;min-height:44px;padding:0 11px 0 9px;font:inherit;font-size:var(--font-size-12);font-weight:var(--font-weight-800);border-radius:var(--radius-control)}.removed-card button{color:var(--blue-strong);background:var(--blue-soft);border:1px solid var(--blue-line);cursor:pointer}.removed-card button[aria-disabled=true]{cursor:wait;opacity:.58}.removed-card--saving button[aria-disabled=true]{opacity:1}.removed-card button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.removed-row:not(.removed-row--single) .removed-card button{width:44px;justify-content:center;padding:0}.removed-row:not(.removed-row--single) .removed-card button span{display:none}.removed-card--done,.removed-card--gone{background:var(--success-soft);border-style:solid;border-color:var(--success-line)}.removed-card--done .activity-symbol,.removed-card--gone .activity-symbol{opacity:1;filter:none}.removed-card-done{color:var(--success-ink)}.removed-card--gone{flex-basis:0;min-height:0;max-height:0;padding-block:0;opacity:0}.removed-row--single .removed-card--gone{flex-basis:100%}@media(prefers-reduced-motion:no-preference){.activity-tile{animation:activity-tile-in .26s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(min(var(--tile-index, 0),14)*16ms + 60ms)}@keyframes activity-tile-in{0%{opacity:0;transform:translateY(8px) scale(.97)}}.removed-card{animation:removed-card-in .32s cubic-bezier(.2,.8,.2,1) both}.removed-card:nth-child(2){animation-delay:60ms}.removed-card:nth-child(3){animation-delay:.12s}@keyframes removed-card-in{0%{opacity:0;transform:translate(24px)}}.removed-card--saving button svg{animation:removed-card-spin .7s linear infinite}@keyframes removed-card-spin{to{transform:rotate(-360deg)}}.removed-card-done>span{display:inline-block;animation:removed-card-check .3s cubic-bezier(.3,1.5,.5,1) both}@keyframes removed-card-check{0%{transform:scale(0)}}}@media(prefers-reduced-motion:reduce){.removed-card{transition:none}}.back-link{display:inline-flex;align-items:center;min-height:44px;padding:0 6px;color:var(--blue-strong);font-weight:var(--font-weight-650);background:transparent;border:0;cursor:pointer}.back-link svg{width:18px;height:18px}.event-form{display:grid;gap:16px;padding:4px 2px 2px}.event-form label{display:grid;gap:7px}.event-form label>span,.section-label{color:var(--muted-deep);font-size:var(--font-size-13);font-weight:var(--font-weight-800)}.event-form input,.event-form textarea,.event-description-editor textarea{width:100%;min-height:48px;padding:0 12px;color:var(--ink);font-size:16px;background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--radius-control)}.event-form textarea,.event-description-editor textarea{min-height:96px;padding-block:11px;resize:vertical}.time-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.time-fields>*{min-width:0}.time-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}.time-field{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:5px}.time-field select{width:100%;min-height:48px;padding:0 6px;color:var(--ink);font-size:16px;text-align:center;background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--radius-control);appearance:none}.time-field select:disabled{color:var(--muted-soft);opacity:.62}.time-field>span{color:var(--muted-deep);font-weight:var(--font-weight-800)}.midnight-button{min-width:58px;min-height:48px;padding:0 8px;color:var(--muted-deep);font-size:var(--font-size-12);font-weight:var(--font-weight-800);background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--radius-control);cursor:pointer}.midnight-button--active{color:var(--on-accent);background:var(--accent-fill);border-color:var(--accent-fill)}.event-form input:disabled{color:var(--muted-soft);opacity:.62}.form-hint,.source-note{margin:-4px 0 0;color:var(--muted);font-size:var(--font-size-12);line-height:1.45}.inline-alert{padding:11px 12px;color:var(--warn-ink);font-size:var(--font-size-14);line-height:1.4;background:var(--warn-soft);border:1px solid var(--warn-line);border-radius:var(--radius-control)}.primary-button{min-height:50px;color:var(--on-accent);font-weight:var(--font-weight-800);background:var(--accent-fill);border:0;border-radius:var(--radius-control);cursor:pointer}.primary-button:disabled{cursor:wait;opacity:.62}.first-child{justify-content:center;padding:24px 16px;overflow-y:auto}.first-child-card{display:grid;gap:14px;width:min(100%,420px);margin:auto;padding:22px 18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card)}.first-child-card h1{margin:0;color:var(--ink-strong);font-size:var(--font-size-20)}.first-child-card p{margin:0;color:var(--ink-soft);font-size:var(--font-size-14);line-height:1.5}.first-child-card .first-child-hint{color:var(--muted);font-size:var(--font-size-13)}.first-child-guide-link{min-height:44px;color:var(--blue-ink);font:inherit;font-size:var(--font-size-14);font-weight:var(--font-weight-800);background:none;border:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.terms-gate-links{display:grid;gap:6px;margin:0;padding-left:1.2em;font-size:var(--font-size-15)}.terms-gate-links a{color:var(--blue);font-weight:var(--font-weight-650)}.terms-gate-consent{display:flex;gap:10px;align-items:center;min-height:44px;color:var(--ink);font-size:var(--font-size-15);cursor:pointer}.terms-gate-consent input{width:22px;height:22px;margin:0;accent-color:var(--blue)}.first-child-card .terms-gate-error{color:var(--danger-ink)}.terms-gate-logout{min-height:44px;color:var(--ink-soft);font:inherit;background:none;border:0;cursor:pointer}.first-child-name{display:grid;gap:6px}.first-child-name span,.first-child-colors>span{color:var(--ink-soft);font-size:var(--font-size-13);font-weight:var(--font-weight-650)}.first-child-name input{min-height:48px;padding:0 12px;color:var(--ink);font:inherit;background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--radius-control)}.first-child-colors{display:grid;gap:8px}.first-child-colors div{display:flex;flex-wrap:wrap;gap:10px}.first-child-colors button{width:40px;height:40px;background:var(--swatch);border:2px solid transparent;border-radius:var(--radius-pill);cursor:pointer}.first-child-colors button.is-active{border-color:var(--surface);box-shadow:0 0 0 2px var(--ink-strong)}.lesson-list{display:grid}.section-label{padding:8px 8px 5px}.lesson-row{display:grid;grid-template-columns:112px 1fr auto;align-items:center;min-height:46px;padding:0 8px;border-bottom:1px solid var(--surface-sunken)}.lesson-row time{color:var(--muted);font-size:var(--font-size-12)}.lesson-row span{font-size:var(--font-size-14)}.lesson-row em{color:var(--lesson-note);font-size:var(--font-size-12);font-style:normal;font-weight:var(--font-weight-650)}.lesson-row--cancelled span{color:var(--ink-cancelled);text-decoration:line-through}.source-note{margin:14px 8px}.empty-detail{margin:12px 6px 20px;color:var(--muted)}.event-description-editor{display:grid;gap:10px;margin:10px 2px 18px}.event-description-editor label{display:grid;gap:7px}.event-description-editor label>span{color:var(--muted-deep);font-size:var(--font-size-13);font-weight:var(--font-weight-800)}.event-description-editor .primary-button{min-height:44px}.participant-picker{display:grid;gap:10px;min-width:0;margin:0;padding:0;border:0}.participant-picker legend{margin-bottom:7px;padding:0;color:var(--muted-deep);font-size:var(--font-size-13);font-weight:var(--font-weight-800)}.participant-chips{display:flex;flex-wrap:wrap;gap:8px}.participant-chip{display:grid;min-width:88px;min-height:48px;align-content:center;padding:5px 12px;color:var(--ink);text-align:left;background:var(--surface);border:1.5px solid var(--line-strong);border-radius:var(--radius-control);cursor:pointer}.participant-chip span{font-size:var(--font-size-14);font-weight:var(--font-weight-800)}.participant-chip small{color:var(--muted);font-size:var(--font-size-11)}.participant-chip.is-busy small{color:var(--warn-ink)}.participant-chip.is-on{background:color-mix(in srgb,var(--child-accent, var(--accent-fill)) 14%,var(--surface));border-color:var(--child-accent, var(--accent-fill));box-shadow:inset 0 0 0 1px var(--child-accent, var(--accent-fill))}.participant-chip.is-on.is-busy small{text-decoration:line-through}.participant-summary{margin:0;padding:10px 12px;color:var(--muted-deep);font-size:var(--font-size-14);line-height:1.4;background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--radius-control)}.participant-summary--ok{color:var(--success-ink);background:var(--success-soft);border-color:var(--success-line)}.participant-summary--warn{color:var(--warn-ink);background:var(--warn-soft);border-color:var(--warn-line)}.participant-summary--danger{color:var(--danger-ink);background:var(--danger-soft);border-color:var(--danger-line)}.participants-panel{margin:4px 2px 6px}.participants-note{margin:6px 4px 0}.participants-panel ul{display:grid;gap:6px;margin:0;padding:0;list-style:none}.participants-panel li{display:flex;align-items:center;gap:10px;min-height:50px;padding:4px 6px 4px 12px;background:var(--surface-sunken);border:1px solid var(--line);border-left:4px solid var(--child-accent);border-radius:0}.participants-panel li:not(.is-in){background:transparent;border-left-style:dashed}.participant-name{min-width:56px;font-weight:var(--font-weight-800)}.participants-panel small{flex:1;color:var(--muted);font-size:var(--font-size-12)}.participants-panel li.is-busy small{color:var(--warn-ink)}.participant-action{min-height:40px;margin-left:auto;padding:0 14px;color:var(--accent-text);font-size:var(--font-size-13);font-weight:var(--font-weight-800);background:var(--surface);border:1px solid var(--blue-line);border-radius:var(--radius-control);cursor:pointer}.participant-action--out{color:var(--danger-ink);border-color:var(--danger-line)}.delete-button{display:flex;align-items:center;justify-content:center;width:100%;min-height:50px;gap:8px;margin-top:12px;color:var(--danger-ink);font-weight:var(--font-weight-800);background:var(--danger-soft);border:1px solid var(--danger-line);border-radius:var(--radius-control);cursor:pointer}.delete-button svg{width:20px;height:20px}.event-sheet-actions{display:grid;gap:10px;margin-top:12px}.event-sheet-actions .delete-button{margin-top:0}.restore-button{width:100%;min-height:48px;padding:0 14px;color:var(--success-ink);font-weight:var(--font-weight-800);background:var(--success-soft);border:1px solid var(--success-line);border-radius:var(--radius-control);cursor:pointer}.finish-recurrence-button{display:flex;width:100%;min-height:48px;align-items:center;justify-content:center;gap:8px;padding:0 14px;color:var(--blue-ink);font-weight:var(--font-weight-800);background:var(--blue-soft);border:1px solid var(--blue-line);border-radius:var(--radius-control);cursor:pointer}.finish-recurrence-button:disabled{cursor:wait;opacity:.58}.finish-recurrence-button svg{width:20px;height:20px}.recurrence-finished{display:grid;gap:10px}.recurrence-finished-note{margin:0;padding:11px 13px;color:var(--success-ink);font-size:var(--font-size-13);font-weight:var(--font-weight-800);background:var(--success-soft);border:1px solid var(--success-line);border-radius:var(--radius-control)}.recurrence-button{display:flex;align-items:center;justify-content:center;width:100%;min-height:50px;gap:8px;margin-bottom:12px;color:var(--blue-ink);font-weight:var(--font-weight-800);background:var(--blue-soft);border:1px solid var(--blue-line);border-radius:var(--radius-control);cursor:pointer}.recurrence-button svg{width:20px;height:20px}.recurrence-panel{display:grid;gap:10px;margin-bottom:12px;padding:14px;background:var(--blue-soft);border:1px solid var(--blue-line);border-radius:var(--radius-control)}.recurrence-panel strong{color:var(--blue-ink);font-size:var(--font-size-15)}.recurrence-panel p{margin:0;color:var(--muted-deep);font-size:var(--font-size-13);line-height:1.45}.recurrence-actions{display:grid;gap:8px;grid-template-columns:1fr auto}.recurrence-actions .primary-button{min-height:46px;padding:0 16px}.recurrence-cancel{min-height:46px;padding:0 16px;color:var(--muted-deep);font-weight:var(--font-weight-650);background:var(--surface);border:1px solid var(--blue-line);border-radius:var(--radius-control);cursor:pointer}.recurrence-cancel:disabled,.recurrence-actions .primary-button:disabled{opacity:.62}.recurrence-choice{display:grid;gap:8px}.recurrence-scroll-target{scroll-margin-bottom:64px}.weekday-picker{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.weekday-chip{min-width:0;min-height:44px;padding:0;color:var(--blue-ink);font:inherit;font-size:var(--font-size-13);font-weight:var(--font-weight-800);background:var(--surface);border:1px solid var(--blue-line);border-radius:var(--radius-control);cursor:pointer}.weekday-chip--on{color:var(--on-accent);background:var(--accent-fill);border-color:var(--accent-fill)}.weekday-chip--source{cursor:default}.weekday-chip--busy{color:var(--muted-soft);text-decoration:line-through;background:var(--surface-sunken);border-style:dashed;cursor:not-allowed}.weekday-chip[aria-disabled=true]:not(.weekday-chip--on):not(.weekday-chip--busy){opacity:.6;cursor:wait}.weekday-note{font-size:var(--font-size-12)}.recurrence-panel .weekday-note--busy{color:var(--warn-ink)}.stamp-grid{display:grid;gap:4px;padding:10px;background:var(--surface);border:1px solid var(--blue-line);border-radius:var(--radius-control)}.stamp-nav{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:4px}.stamp-nav-button{display:grid;place-items:center;width:44px;height:44px;padding:0;color:var(--blue-ink);background:var(--blue-soft);border:1px solid var(--blue-line);border-radius:var(--radius-control);cursor:pointer}.stamp-nav-button svg{width:20px;height:20px}.stamp-nav-button:disabled{opacity:.45;cursor:default}.stamp-month{color:var(--blue-ink);font-size:var(--font-size-14);font-weight:var(--font-weight-800);text-align:center;text-transform:capitalize}.stamp-blank{min-height:38px}.stamp-weekdays,.stamp-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.stamp-weekdays span{color:var(--muted-soft);font-size:var(--font-size-11);font-weight:var(--font-weight-650);text-align:center}.stamp-day{min-height:38px;color:var(--ink);font-size:var(--font-size-14);font-weight:var(--font-weight-650);background:var(--surface-sunken);border:1px solid var(--surface-muted);border-radius:var(--radius-control);cursor:pointer}.stamp-day--weekend{color:var(--warn-ink);background:var(--warn-soft)}.stamp-day--selected{color:var(--on-accent);background:var(--accent-fill);border-color:var(--accent-fill)}time,.hour-label,.current-time-marker,.drag-time-bubble,.day-button b,.week-nav strong,.icon-badge,.viewport-window-range,.timeline-edge-pill b,.stamp-day{font-variant-numeric:tabular-nums}.stamp-day--source{color:var(--blue-ink);background:var(--blue-soft);border-color:var(--blue-line)}.stamp-day:disabled{opacity:.45;cursor:default}.toast{--toast-x: -50%;position:fixed;top:max(14px,env(safe-area-inset-top));left:50%;z-index:50;display:flex;align-items:center;justify-content:space-between;width:min(calc(100% - 28px),440px);min-height:50px;gap:16px;padding:8px 10px 8px 16px;color:#fff;font-size:var(--font-size-14);background:var(--ink-strong);border-radius:var(--radius-control);box-shadow:0 0 0 1px var(--toast-ring),0 10px 28px var(--toast-shadow);transform:translate(-50%);animation:toast-in .2s ease-out}.toast--leaving{animation:toast-out .18s ease-in both;pointer-events:none}.toast button{min-height:38px;padding:0 10px;color:var(--toast-action);font-weight:var(--font-weight-800);background:transparent;border:0;border-radius:var(--radius-control);cursor:pointer}.toast--success{background:var(--toast-success)}.toast--error{background:var(--toast-danger)}.toast-countdown{position:absolute;right:10px;bottom:3px;left:16px;height:3px;overflow:hidden;background:#fff3;border-radius:2px;pointer-events:none}.toast-countdown-bar{display:block;height:100%;background:#fffc;border-radius:inherit;transform-origin:left;animation:toast-countdown linear both}.toast--paused .toast-countdown-bar{animation-play-state:paused}@media(max-width:739px){.toast{--toast-x: 0%;right:76px;left:14px;width:auto;transform:none}.toast--compact{--toast-x: -50%;right:auto;left:50%;width:48px;transform:translate(-50%)}}.toast--compact{top:max(13px,env(safe-area-inset-top));width:48px;min-height:48px;justify-content:center;padding:9px;border-radius:var(--radius-control)}.toast--compact svg{width:29px;height:29px;stroke-width:2.4}.toast-spinner{width:24px;height:24px;border:3px solid rgba(255,255,255,.28);border-top-color:#fff;border-radius:50%;animation:toast-spin .7s linear infinite}@media(prefers-reduced-motion:reduce){.toast-spinner{animation-duration:2.4s}}@media(min-width:740px){.planner-header{padding-inline:28px}.today-button{display:block}.child-tabs,.mobile-planner-actions{display:none}.app-shell--planner{width:min(100%,max(1180px,calc(78px + var(--shell-lanes, 1) * var(--lane-max-width, 440px))))}.app-shell--planner .planner-header{padding-inline:max(28px,calc((100% - 1124px)/2))}.planner-viewport{width:100%;max-width:calc(var(--stage-gutter) + var(--visible-lanes) * var(--lane-max-width) + var(--stage-right));margin-inline:auto}.viewport-header{display:grid;flex:0 0 auto;gap:4px;padding:0 var(--stage-right) 0 var(--stage-gutter);border-bottom:1px solid var(--surface-sunken)}.viewport-window-control{height:26px}.viewport-child-headings{height:42px}.viewport-window-control{display:flex;align-items:center;justify-content:center;gap:3px;color:var(--muted);font-size:var(--font-size-12);font-weight:var(--font-weight-800)}.viewport-neighbour{display:inline-flex;min-width:28px;max-width:40%;height:26px;align-items:center;gap:3px;padding:0 7px;color:var(--child-accent, var(--ink));font:inherit;font-size:var(--font-size-12);font-weight:var(--font-weight-800);background:transparent;border:0;border-radius:var(--radius-xs);cursor:pointer}.viewport-neighbour span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewport-neighbour:hover:not(:disabled){background:var(--surface-sunken)}.viewport-neighbour:disabled{color:var(--ink);cursor:default;opacity:.24}.viewport-neighbour svg{flex:none;width:16px;height:16px}.viewport-window-range{min-width:64px;text-align:center}.viewport-child-headings{display:grid;grid-template-columns:repeat(var(--visible-lanes),minmax(0,1fr));min-width:0;overflow:hidden}.viewport-child-heading{min-width:0;margin:0 4px;overflow:hidden;color:var(--child-ink-light);font-weight:var(--font-weight-800);text-overflow:ellipsis;white-space:nowrap;background:var(--child-soft);border:1px solid transparent;border-radius:var(--radius-control);cursor:pointer}.viewport-child-heading--active{border-color:color-mix(in srgb,var(--child-accent) 32%,var(--surface));box-shadow:0 2px 7px color-mix(in srgb,var(--child-accent) 14%,transparent)}.fab{width:52px;height:52px}.bottom-sheet--wide{width:min(100%,620px)}}@media(min-width:1020px){.event-card{left:12px;right:8px;grid-template-columns:44px minmax(0,1fr) 44px}.planner-viewport{--stage-right: 20px}}@media(max-width:420px){.planner-header{padding-inline:10px}.today-button{min-height:32px;padding:0 9px;font-size:var(--font-size-12)}.child-tabs{padding-inline:10px}.planner-viewport{--stage-gutter: 54px;--stage-right: 11px}.event-card{left:6px}.time-gutter span{right:8px}}@media(max-width:739px){.lane-fabs,.now-jump-button,.next-day-button{display:none}.timeline-stage{margin-bottom:calc(66px + env(safe-area-inset-bottom))}.pickup-quick:not(.pickup-quick--on-timeline){right:auto;left:max(12px,env(safe-area-inset-left));bottom:calc(74px + env(safe-area-inset-bottom))}.add-gesture-hint{right:auto;left:max(14px,env(safe-area-inset-left))}.add-gesture-hint:after{right:auto;left:16px}}@media(min-width:780px){.planner-header{display:grid;grid-template-columns:44px 128px minmax(0,1fr) 56px 132px;align-items:center;column-gap:12px;padding-bottom:5px}.week-nav{display:contents}.week-nav>.icon-button{grid-area:1 / 1}.week-nav>.week-nav-title{grid-area:1 / 2}.week-nav-title strong{white-space:nowrap}.days-row-viewport{grid-area:1 / 3;width:100%;margin:0}.week-overview{--week-overview-height: 132px}.week-overview-viewport{grid-area:2 / 3;width:100%;margin:6px 0 0}.week-overview-handle{grid-column:1 / -1}.today-button{grid-area:1 / 4;justify-self:center}.week-nav-actions{grid-area:1 / 5}}@media(max-height:480px){.planner-header{padding-top:max(4px,env(safe-area-inset-top));padding-bottom:3px}.day-button{min-height:40px;padding-block:2px}.day-button b{margin-top:0}.viewport-header{gap:2px}.viewport-window-control{height:22px}.viewport-child-headings{height:30px}.viewport-child-heading{font-size:var(--font-size-13)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.fab[data-hinted],.mobile-planner-add button.is-hinted{outline:4px solid color-mix(in srgb,var(--blue) 28%,transparent)}}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}@keyframes sheet-in{0%{transform:translateY(100%);opacity:.7}}@keyframes sheet-out{to{transform:translateY(100%)}}@keyframes toast-in{0%{transform:translate(var(--toast-x),-12px);opacity:0}}@keyframes toast-out{to{transform:translate(var(--toast-x),-12px);opacity:0}}@keyframes toast-spin{to{transform:rotate(1turn)}}@keyframes toast-countdown{to{transform:scaleX(0)}}@keyframes header-progress{0%{left:-40%}to{left:100%}}@keyframes add-button-hint{0%,to{transform:scale(1)}50%{transform:scale(1.16);box-shadow:0 0 0 9px color-mix(in srgb,var(--blue) 18%,transparent),0 9px 22px var(--accent-glow)}}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .event-card,:root:not([data-theme=light]) .activity-symbol,:root:not([data-theme=light]) .upcoming-mark,:root:not([data-theme=light]) .activity-preview,:root:not([data-theme=light]) .rule-edit-form--tinted:not(.is-highlighted){background:var(--event-dark-bg, var(--surface));color:var(--ink);border-color:var(--event-dark-border, var(--line-strong))}:root:not([data-theme=light]) .event-card--modified{border-color:var(--success-accent)}:root:not([data-theme=light]) .event-card--ear-left:not(.event-card--selected,.event-card--linked):before,:root:not([data-theme=light]) .event-card--ear-right:not(.event-card--selected,.event-card--linked):after{background:var(--event-dark-border, var(--line-strong))}:root:not([data-theme=light]) .event-shared-off{border-color:var(--event-dark-border, var(--line-strong))}:root:not([data-theme=light]) .event-card--past:not(.event-card--selected){color:var(--ink);background:var(--event-past-bg-dark)}:root:not([data-theme=light]) .orphan-mark{background:var(--event-dark-bg, var(--surface));border-color:var(--event-dark-border, var(--line-strong))}:root:not([data-theme=light]) .orphan-mark b{color:var(--mark-ink-dark, var(--ink))}}:root[data-theme=dark] .event-card,:root[data-theme=dark] .activity-symbol,:root[data-theme=dark] .upcoming-mark,:root[data-theme=dark] .activity-preview,:root[data-theme=dark] .rule-edit-form--tinted:not(.is-highlighted){background:var(--event-dark-bg, var(--surface));color:var(--ink);border-color:var(--event-dark-border, var(--line-strong))}:root[data-theme=dark] .event-card--modified{border-color:var(--success-accent)}:root[data-theme=dark] .event-card--ear-left:not(.event-card--selected,.event-card--linked):before,:root[data-theme=dark] .event-card--ear-right:not(.event-card--selected,.event-card--linked):after{background:var(--event-dark-border, var(--line-strong))}:root[data-theme=dark] .event-shared-off{border-color:var(--event-dark-border, var(--line-strong))}:root[data-theme=dark] .event-card--past:not(.event-card--selected){color:var(--ink);background:var(--event-past-bg-dark)}:root[data-theme=dark] .orphan-mark{background:var(--event-dark-bg, var(--surface));border-color:var(--event-dark-border, var(--line-strong))}:root[data-theme=dark] .orphan-mark b{color:var(--mark-ink-dark, var(--ink))}.hint-layer{position:fixed;inset:0;z-index:45;pointer-events:none;transition:opacity .22s ease-in}.hint-layer--leaving{opacity:0}.hint-announcement{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.hint-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.hint-crayon{color:var(--accent-text)}.hint-draw{fill:none;stroke:currentColor;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;opacity:.92;animation:hint-draw var(--hint-draw-duration, .6s) cubic-bezier(.45,.05,.35,1) var(--hint-draw-delay, 0ms) forwards}.hint-draw--grain{stroke-width:1.4;opacity:.45;transform:translate(.8px,-.6px)}@keyframes hint-draw{to{stroke-dashoffset:0}}.hint-note{position:absolute;display:grid;gap:1px;width:max-content;max-width:210px;padding:5px 9px 6px;color:var(--accent-text);line-height:1.2;background:color-mix(in srgb,var(--surface) 92%,transparent);border-radius:var(--radius-control);box-shadow:var(--shadow-1);transform:rotate(-2.5deg);animation:hint-note-in .26s cubic-bezier(.2,.8,.2,1) .12s both}.hint-note strong{font-size:var(--font-size-15);font-weight:var(--font-weight-800)}.hint-note small{color:var(--muted);font-size:var(--font-size-12);font-weight:var(--font-weight-650)}.hint-note--inline{display:flex;align-items:baseline;gap:6px;max-width:none;padding-block:4px;background:var(--surface);transform:rotate(-1deg)}.hint-note--inline strong{font-size:var(--font-size-14)}@keyframes hint-note-in{0%{opacity:0;transform:rotate(-2.5deg) translateY(6px) scale(.94)}}.hint-finger{position:fixed;top:0;left:0;z-index:46;width:46px;height:46px;pointer-events:none;background:color-mix(in srgb,var(--ink) 16%,transparent);border:2px solid color-mix(in srgb,var(--surface) 85%,transparent);border-radius:50%;box-shadow:var(--shadow-2);opacity:0}.hint-finger:after{position:absolute;inset:-6px;content:"";border:3px solid var(--accent-text);border-radius:50%;opacity:0}.hint-finger--holding:after{animation:hint-hold var(--hint-hold-ms, .36s) linear forwards}@keyframes hint-hold{0%{opacity:1;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0 0 0 0)}}
