@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-ext-wght-normal-DCwSJGxG.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-normal-D_ZTVpCC.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-bg:#fff;--color-surface:#fff;--color-card:#f6f9fd;--color-panel:#f6f8fb;--color-sky-100:#eaf3ff;--color-sky-200:#d9e8fb;--color-sky-300:#b7d1f3;--color-sky-500:#1f6fd1;--color-sky-600:#12457f;--color-sky-700:#0c3363;--color-ink:#0d2235;--color-ink-soft:#52677a;--color-border:#e4eaf1;--color-accent:#f6d043;--color-accent-pale:#fff8d9;--color-green-pale:#eef8f1;--color-green:#1f7a45;--color-primary:var(--color-sky-600);--color-primary-hover:var(--color-sky-700);--color-primary-contrast:#fff;--color-highlight:var(--color-sky-500);--color-success-bg:#e6f6ec;--color-success-text:#1d6b3a;--color-warning-bg:#fff6dc;--color-warning-text:#7a5600;--color-danger-bg:#fdecec;--color-danger-border:#f3b9b9;--color-danger-text:#a23131;--font-heading:"Bricolage Grotesque Variable", "Bricolage Grotesque", system-ui, sans-serif;--font-body:"Figtree Variable", "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;--radius:22px;--radius-sm:12px;--shadow-sm:0 1px 2px #0d22350d;--shadow-md:0 24px 50px -24px #0d22354d;--shadow-button:0 8px 22px -10px #12457fbf}*,:before,:after{box-sizing:border-box}html{scrollbar-gutter:stable;-webkit-text-size-adjust:100%}body{min-height:100vh;font-family:var(--font-body);color:var(--color-ink);background:var(--color-bg);-webkit-font-smoothing:antialiased;flex-direction:column;margin:0;font-size:1.0625rem;line-height:1.55;display:flex}h1,h2,h3{font-family:var(--font-heading);letter-spacing:-.025em;margin:0 0 .6em;font-weight:800;line-height:1.1}h1{letter-spacing:-.035em;font-size:clamp(2rem,4vw,2.9rem)}h2{font-size:1.4rem}h3{font-size:1.12rem;font-weight:700}p{margin:0 0 1em}a{color:var(--color-primary)}.muted{color:var(--color-ink-soft)}.small{font-size:.875rem}.container{width:100%;max-width:76rem;margin:0 auto;padding:0 1.25rem}.site-header{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border);background:#ffffffeb;position:sticky;top:0}.site-header__inner{align-items:center;gap:1.5rem;min-height:4.25rem;display:flex}.wordmark{font-family:var(--font-heading);letter-spacing:-.02em;color:var(--color-ink);white-space:nowrap;align-items:center;gap:.6rem;font-size:1.5rem;font-weight:800;text-decoration:none;display:inline-flex}.wordmark__duck{background:url(/logo.png) 50%/contain no-repeat;flex-shrink:0;width:2.4rem;height:2.4rem;transition:transform .3s}.wordmark:hover .wordmark__duck{transform:rotate(-12deg)translateY(-2px)}.site-nav{flex:1;align-items:center;gap:.25rem;display:flex}body>main,body>.shell{flex:1 0 auto}.site-nav a,.account-nav a:not(.btn){color:var(--color-ink-soft);white-space:nowrap;border-radius:999px;padding:.45rem .75rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:color .15s,background .15s}.site-nav a:hover,.account-nav a:not(.btn):hover{color:var(--color-ink);background:var(--color-panel)}.site-nav a.active,.account-nav a.active{color:var(--color-ink);background:var(--color-sky-100)}.account-nav{align-items:center;gap:.25rem;display:flex}.site-header .menu-toggle,.site-header .header-quick{display:none}.site-menu{display:contents}@media (width<=860px){.site-header .menu-toggle,.site-header .header-quick{display:inline-flex}.site-header .menu-toggle{justify-content:center;align-items:center;width:2.6rem;height:2.6rem;padding:0}.site-header__inner{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.5rem;padding-top:.6rem;padding-bottom:.6rem;display:grid}.wordmark{min-width:0;font-size:1.25rem}}@media (width<=400px){.site-header__inner:has(.header-quick) .wordmark__name{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}}@media (width<=860px){.wordmark__duck{width:2rem;height:2rem}.site-menu{z-index:2;max-height:calc(100dvh - var(--site-header-height,4rem));background:var(--color-surface);border-top:3px solid var(--color-primary);padding:.75rem 1.25rem 1.25rem;display:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 24px 40px -12px #0d223559}.site-header.open .site-menu{display:block}.site-nav,.account-nav{flex-direction:column;align-items:stretch}.account-nav{border-top:1px solid var(--color-border);margin-top:.5rem;padding-top:.5rem}.site-nav a,.account-nav a:not(.btn){padding:.7rem .75rem;font-size:1.05rem}.menu-backdrop{z-index:19;inset:0;top:var(--site-header-height,4rem);cursor:pointer;background:#0d223573;border:0;position:fixed}.site-header.open .btn.menu-toggle,.site-header.open .btn.menu-toggle:hover{background:var(--color-primary);color:var(--color-primary-contrast)}.site-nav a,.account-nav a,.account-nav button{border-radius:var(--radius-sm);text-align:left}}.shell{grid-template-columns:15rem 1fr;gap:2rem;padding-top:2rem;padding-bottom:4rem;display:grid}.sidebar{align-self:start;position:sticky;top:6rem}.sidebar__title{text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink-soft);margin:0 0 .5rem .8rem;font-size:.75rem;font-weight:600}.menu-list{flex-direction:column;gap:.15rem;display:flex}.menu-list__group{text-transform:uppercase;letter-spacing:.1em;color:var(--color-ink-soft);opacity:.8;cursor:default;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;margin:1.1rem 0 .35rem;padding:0 .8rem;font-size:.68rem;font-weight:700;display:flex}.menu-list__group:after{content:"";border-top:1px solid var(--color-border);flex:1}.menu-list__group:first-child{margin-top:.25rem}.menu-list a{border-radius:var(--radius-sm);color:var(--color-ink);padding:.5rem .8rem;font-weight:500;text-decoration:none}.menu-list a:hover{background:var(--color-sky-100)}.menu-list a.active{background:var(--color-ink);color:#fff}.shell__main{min-width:0}@media (width>=861px){.shell--wide{max-width:120rem}}@media (width<=860px){.shell{grid-template-columns:minmax(0,1fr);gap:1rem;padding-top:1rem}.sidebar{display:none}}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.page-header h1{margin:0}.back-link{margin-bottom:.75rem;font-size:.9rem;text-decoration:none;display:inline-block}.site-footer{background:var(--color-ink);color:#b9c7d4;flex-shrink:0;margin-top:5rem;padding:3.5rem 0 2.5rem;font-size:.9rem}.site-footer__inner{flex-wrap:wrap;justify-content:space-between;gap:1rem;display:flex}.btn{min-height:2.75rem;font:inherit;white-space:nowrap;cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.4rem;padding:0 1.15rem;font-size:.95rem;font-weight:700;text-decoration:none;transition:background .15s,border-color .15s,transform .15s,box-shadow .15s;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:var(--color-primary-contrast);box-shadow:var(--shadow-button)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px)}.btn-secondary{background:var(--color-surface);border:1.5px solid var(--color-border);color:var(--color-ink)}.btn-secondary:hover:not(:disabled){border-color:var(--color-ink)}.btn-lg{min-height:3.25rem;padding:0 1.6rem;font-size:1rem}.btn-danger{background:var(--color-surface);border-color:var(--color-danger-border);color:var(--color-danger-text)}.btn-danger:hover:not(:disabled){background:var(--color-danger-bg)}.btn-ghost{color:var(--color-ink);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-sky-100)}.btn-sm{min-height:2.1rem;padding:0 .8rem;font-size:.875rem}.btn-swish{border-color:var(--color-border);color:var(--color-ink);background:#fff}.actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.form{flex-direction:column;gap:1rem;display:flex}.form-row{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:1rem;display:grid}.field{flex-direction:column;gap:.3rem;display:flex}.field>span:first-child,.field legend{font-size:.9rem;font-weight:600}.field .hint{color:var(--color-ink-soft);font-size:.8rem}.field-error{color:var(--color-danger-text);font-size:.85rem}.inherit__label{align-items:center;gap:.5rem;font-size:.9rem;font-weight:600;display:flex}.inherit__value{border:1px dashed var(--color-border);border-radius:var(--radius-sm);background:var(--color-panel);flex-wrap:wrap;align-items:center;gap:.25rem .6rem;min-height:2.8rem;padding:.35rem .4rem .35rem .85rem;display:flex}.inherit__text{white-space:pre-line;flex:auto}.inherit__value .btn{margin-left:auto}.inherit.is-overridden .input{border-color:var(--color-warning-text);box-shadow:inset 3px 0 0 var(--color-accent)}.link-button{color:var(--color-primary);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.form-section{margin:.5rem 0 0;font-size:1.05rem}.course-info{border:1px dashed var(--color-border);border-radius:var(--radius-sm);background:var(--color-panel);gap:.5rem;padding:.75rem .9rem;display:grid}.course-info__head{justify-content:space-between;gap:1rem;font-size:.9rem;display:flex}.course-info__part p{white-space:pre-line;margin:.15rem 0 0}.input{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;height:2.8rem;color:var(--color-ink);font:inherit;padding:0 .85rem}textarea.input{resize:vertical;height:auto;min-height:6rem;padding:.6rem .85rem}.input:focus{outline:2px solid var(--color-sky-300);outline-offset:0;border-color:var(--color-sky-500)}.checkbox{cursor:pointer;align-items:flex-start;gap:.55rem;display:flex}.checkbox input{width:1.05rem;height:1.05rem;accent-color:var(--color-primary);margin-top:.3rem}fieldset{border:0;margin:0;padding:0}.choice-list{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.5rem;display:grid}.choice{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;align-items:center;gap:.6rem;padding:.7rem .9rem;display:flex}.choice:has(input:checked){border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.choice input{accent-color:var(--color-primary)}.choice small{color:var(--color-ink-soft);display:block}.card{background:var(--color-card);border:1.5px solid var(--color-border);border-radius:var(--radius);padding:1.5rem}@media (width<=640px){.container .card:not(.card .card):not(.modal .card){border-left:0;border-right:0;border-radius:0;margin-left:-1.25rem;margin-right:-1.25rem;padding-left:1.25rem;padding-right:1.25rem}.container .card.now-card{border-left:6px solid var(--color-border)}}.card+.card,.card+.section,.section+.section{margin-top:1.25rem}.card h2{margin-bottom:.8rem}.card-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.8rem;display:flex}.card-header h2{margin:0}.grid-cards{grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1rem;display:grid}.grid-cards>.card{margin-top:0}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:.95rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--color-border);vertical-align:top;padding:.65rem .75rem}.table td .btn-sm{margin-top:-.35rem;margin-bottom:-.35rem}.table th{text-transform:uppercase;letter-spacing:.05em;color:var(--color-ink-soft);font-size:.8rem;font-weight:600}.table tr:last-child td{border-bottom:0}.table .num{text-align:right;white-space:nowrap}.list{margin:0;padding:0;list-style:none}.list li{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 0;display:flex}.list li:last-child{border-bottom:0}.badge{background:var(--color-sky-100);color:var(--color-sky-700);white-space:nowrap;border-radius:999px;padding:.15rem .6rem;font-size:.78rem;font-weight:600;display:inline-block}.badge-success{background:var(--color-success-bg);color:var(--color-success-text)}.badge-warning{background:var(--color-warning-bg);color:var(--color-warning-text)}.badge-danger{background:var(--color-danger-bg);color:var(--color-danger-text)}.badge-muted{color:var(--color-ink-soft);background:#eef2f5}.alert{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-sky-100);padding:.8rem 1rem}.alert-error{background:var(--color-danger-bg);border-color:var(--color-danger-border);color:var(--color-danger-text)}.alert-success{background:var(--color-success-bg);color:var(--color-success-text);border-color:#b7e2c6}.alert-warning{background:var(--color-warning-bg);color:var(--color-warning-text);border-color:#f1dc9c}.empty{text-align:center;color:var(--color-ink-soft);padding:2rem 1rem}.loading{text-align:center;color:var(--color-ink-soft);padding:3rem 1rem}.spinner{vertical-align:-.2rem;border:2px solid;border-right-color:#0000;border-radius:50%;width:1.1rem;height:1.1rem;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}dl.details{grid-template-columns:max-content 1fr;gap:.45rem 1.25rem;margin:0;display:grid}dl.details dt{color:var(--color-ink-soft)}dl.details dd{margin:0}@media (width<=640px){dl.details{grid-template-columns:minmax(0,1fr);gap:0}dl.details dt{font-size:.85rem;font-weight:600}dl.details dt:not(:first-child){margin-top:.75rem}dl.details dd{overflow-wrap:anywhere}}.modal-backdrop{z-index:50;background:#12374f59;justify-content:center;align-items:flex-start;padding:6vh 1rem 1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--color-surface);border-radius:var(--radius);width:100%;max-width:34rem;box-shadow:var(--shadow-md);padding:1.5rem}.modal h2{margin-bottom:1rem}.hero{background:linear-gradient(180deg, var(--color-sky-200) 0%, var(--color-bg) 100%);padding:4.5rem 0 3.5rem}.hero h1{max-width:18ch;font-size:clamp(2.2rem,5vw,3.6rem)}.hero p{max-width:38rem;color:var(--color-ink-soft);font-size:1.15rem}.hero .actions{justify-content:flex-start;margin-top:1.5rem}.section{padding:3rem 0}.notice-banner{background:var(--color-accent);color:var(--color-ink);text-align:center;padding:.6rem 1rem;font-weight:600}.auth-card{max-width:30rem;margin:3rem auto}.signup-card{max-width:44rem;margin:2.5rem auto}.error-page{text-align:center;max-width:36rem;margin:6rem auto;padding:0 1.25rem}.payment-status{border-radius:var(--radius-sm);background:var(--color-sky-100);align-items:center;gap:.75rem;padding:1rem;display:flex}.mock-banner{font-size:.85rem}.input[aria-invalid=true]{border-color:var(--color-danger-text);outline-color:var(--color-danger-border)}.multiselect{position:relative}.multiselect summary{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;align-items:center;list-style:none;display:flex;overflow:hidden}.multiselect summary::-webkit-details-marker{display:none}.multiselect summary:after{content:"▾";color:var(--color-ink-soft);margin-left:auto;padding-left:.5rem}.multiselect__menu{z-index:30;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);min-width:100%;max-height:18rem;box-shadow:var(--shadow-md);flex-direction:column;gap:.4rem;padding:.75rem;display:flex;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto}.segmented{background:var(--color-sky-100);border-radius:999px;gap:2px;padding:3px;display:inline-flex}.segmented button{font:inherit;color:var(--color-ink-soft);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:.4rem .9rem;font-size:.9rem;font-weight:600}.segmented button.active{background:var(--color-surface);color:var(--color-ink);box-shadow:var(--shadow-sm)}.toolbar{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1rem;display:flex}.toolbar .input{width:auto}.toolbar .spacer{flex:1}.timegrid-wrap,.monthgrid-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow-x:auto}.timegrid-wrap{overflow-y:hidden}.timegrid{min-width:min-content;padding-bottom:10px;display:grid}.timegrid__corner,.timegrid__head{z-index:2;background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:.5rem;position:sticky;top:0}.timegrid__head{text-align:center;border-left:1px solid var(--color-border);flex-direction:column;font-size:.9rem;display:flex}.timegrid__head.is-today{background:var(--color-sky-100)}.timegrid__axis{position:relative}.timegrid__axis span{color:var(--color-ink-soft);font-size:.72rem;position:absolute;right:.4rem;transform:translateY(-50%)}.timegrid__col{border-left:1px solid var(--color-border);position:relative}.timegrid__col.is-shaded{background:repeating-linear-gradient(45deg,#f6f8fa,#f6f8fa 8px,#eef2f5 8px 16px)}.timegrid__shade-label{overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;color:var(--color-ink-soft);text-align:center;font-size:.75rem;font-weight:600;position:absolute;top:.4rem;left:.4rem;right:.4rem}.timegrid__line{border-top:1px dashed #e3edf5;position:absolute;left:0;right:0}.timegrid__band{color:var(--color-danger-text);background:repeating-linear-gradient(45deg,#a231310f,#a231310f 8px,#a231311f 8px 16px);padding:.2rem .3rem;font-size:.72rem;position:absolute;left:0;right:0;overflow:hidden}.timegrid__event{box-sizing:border-box;background:var(--color-sky-200);min-height:0;color:var(--color-ink);font:inherit;text-align:left;cursor:pointer;z-index:1;border:1px solid #12374f26;border-radius:6px;flex-direction:column;align-items:flex-start;gap:0;padding:.15rem .35rem;font-size:.75rem;line-height:1.2;display:flex;position:absolute;overflow:hidden}.timegrid__event:hover{z-index:3;box-shadow:var(--shadow-md)}.timegrid__event.has-conflict{border:2px solid var(--color-danger-text)}.timegrid__event.is-cancelled{opacity:.55;text-decoration:line-through;background:repeating-linear-gradient(45deg,#fff,#fff 6px,#f1f4f7 6px 12px)!important}.timegrid__time{font-weight:700}.timegrid__title{overflow-wrap:anywhere;-webkit-box-orient:vertical;font-weight:600;display:-webkit-box;overflow:hidden}.timegrid__time,.timegrid__sub{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.timegrid__sub{color:var(--color-ink-soft)}.timegrid__inline-title{font-weight:600}.monthgrid{grid-template-columns:2.2rem repeat(7,minmax(7rem,1fr));min-width:min-content;display:grid}.monthgrid__dayname{text-align:center;border-bottom:1px solid var(--color-border);text-transform:capitalize;padding:.5rem;font-size:.85rem;font-weight:600}.monthgrid__week{border-bottom:1px solid var(--color-border);justify-content:center;align-items:flex-start;padding-top:.5rem;display:flex}.monthgrid__cell{border-left:1px solid var(--color-border);border-bottom:1px solid var(--color-border);flex-direction:column;gap:2px;min-height:7rem;padding:.3rem;display:flex}.monthgrid__cell.is-outside{background:#fafcfd}.monthgrid__cell.is-outside .monthgrid__date{color:#a3b4c2}.monthgrid__cell.is-today .monthgrid__date{background:var(--color-primary);color:#fff}.monthgrid__cell.is-shaded{background:repeating-linear-gradient(45deg,#f6f8fa,#f6f8fa 8px,#eef2f5 8px 16px)}.monthgrid__date{font:inherit;cursor:pointer;color:var(--color-ink);background:0 0;border:0;border-radius:999px;align-self:flex-start;padding:.1rem .4rem;font-size:.85rem;font-weight:700}.monthgrid__shade{color:var(--color-ink-soft);font-size:.72rem;font-weight:600}.monthgrid__event,.monthgrid__more{border:0;border-left:3px solid var(--color-sky-500);background:var(--color-sky-100);font:inherit;text-align:left;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;color:var(--color-ink);border-radius:4px;padding:.1rem .3rem;font-size:.72rem;overflow:hidden}.monthgrid__event.has-conflict{background:var(--color-danger-bg)}.monthgrid__event.is-cancelled{opacity:.6;text-decoration:line-through}.monthgrid__more{color:var(--color-primary);background:0 0;border-left-color:#0000;font-weight:600}.legend{color:var(--color-ink-soft);flex-wrap:wrap;gap:1rem;margin-top:.75rem;font-size:.8rem;display:flex}.legend span:before{content:"";vertical-align:-.1rem;background:var(--swatch,var(--color-sky-200));border:var(--swatch-border,1px solid #12374f26);border-radius:3px;width:.8rem;height:.8rem;margin-right:.35rem;display:inline-block}.swatch{background:var(--color-sky-200);vertical-align:0;border:1px solid #12374f26;border-radius:3px;width:.7rem;height:.7rem;margin-right:.45rem;display:inline-block}.batchbar{z-index:5;border-radius:var(--radius-sm);background:var(--color-sky-100);border:1px solid var(--color-sky-300);flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.6rem .8rem;display:flex;position:sticky;top:4.5rem}.table tr.is-past td{color:var(--color-ink-soft)}.linklike{font:inherit;color:var(--color-primary);cursor:pointer;text-align:left;background:0 0;border:0;padding:0;text-decoration:underline}.inline-picker{align-items:center;gap:.25rem;display:inline-flex}.inline-picker .input{width:9rem;height:2.1rem}.pattern{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fbfdff;flex-direction:column;gap:.75rem;padding:1rem;display:flex}.pattern__head{justify-content:space-between;align-items:center;display:flex}.ledger+.ledger{border-top:1px solid var(--color-border);margin-top:1.25rem;padding-top:1.25rem}.ledger__head{flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-bottom:.4rem;display:flex}span.cap,strong.cap{display:inline-block}.cap:first-letter{text-transform:uppercase}.agefinder{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:1.75rem}.agefinder__result{flex-direction:column;gap:1rem;margin-top:1rem;display:flex}.agefinder__period p{margin-bottom:.5rem}.chips{flex-wrap:wrap;gap:.5rem;display:flex}.chip{background:var(--color-sky-100);color:var(--color-sky-600);border:1.5px solid #0000;border-radius:999px;padding:.45rem .95rem;font-weight:700;text-decoration:none;display:inline-block}.chip:hover{border-color:var(--color-sky-600)}.prose{max-width:46rem}.prose p,.prose li{font-size:1.05rem}.prose h2{margin-top:2rem}.lead{color:var(--color-ink-soft);max-width:44rem;font-size:1.25rem;line-height:1.5}.page-hero{padding:3rem 0 2rem}.page-hero h1{letter-spacing:-.04em;max-width:22ch;font-size:clamp(2.2rem,4.6vw,3.4rem);line-height:1.05}.breadcrumbs{color:var(--color-ink-soft);margin-bottom:.75rem;font-size:.85rem}.breadcrumbs a{color:var(--color-ink-soft)}.facts{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.75rem;margin:1.5rem 0;display:grid}.fact{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.9rem 1rem}.fact span{color:var(--color-ink-soft);font-size:.8rem;display:block}.fact strong{font-size:1.1rem}.checklist{margin:0 0 1rem;padding:0;list-style:none}.checklist li{margin-bottom:.45rem;padding-left:1.8rem;position:relative}.checklist li:before{content:"✓";color:var(--color-primary);font-weight:700;position:absolute;top:0;left:0}.two-col{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start;gap:2rem;display:grid}@media (width<=860px){.two-col{grid-template-columns:minmax(0,1fr)}}.review{margin:0}.review blockquote{margin:0 0 .5rem;font-size:1rem}.review figcaption{color:var(--color-ink-soft);font-weight:600}.level-card{color:inherit;flex-direction:column;text-decoration:none;transition:transform .15s,box-shadow .15s;display:flex}.level-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.level-card .meta{color:var(--color-ink-soft);margin-top:auto;padding-top:.75rem;font-size:.85rem}.faq details{border-bottom:1px solid var(--color-border);padding:.9rem 0}.faq summary{cursor:pointer;font-size:1.05rem;font-weight:600}.faq details p{margin:.6rem 0 0}.site-footer__cols{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:1.5rem;margin-bottom:1.5rem;display:grid}.site-footer h3{color:#fff;letter-spacing:0;margin-bottom:.6rem;font-size:.95rem}.site-footer ul{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.site-footer a{color:#dfe7ee}.term-status{border-radius:var(--radius-sm);background:#ffffffb3;padding:.6rem 1rem;display:inline-block;color:var(--color-ink)!important;font-size:1rem!important}.hero__text .prose p{color:var(--color-ink-soft);max-width:38rem;font-size:1.15rem}.list li.is-unbooked strong{color:var(--color-ink-soft);text-decoration:line-through}.person-card+.person-card{margin-top:1.25rem}.person-card__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.person-card__head h2{margin:0}.stat-row{flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;display:flex}.door-code{letter-spacing:.1em;font-family:ui-monospace,monospace;font-size:1.3rem;font-weight:700}.card-attention{background:#fffcf2;border-color:#f1dc9c}.tabs{flex-wrap:wrap;gap:.4rem;margin-bottom:1.25rem;display:flex}.tabs a,.tabs button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-ink);font:inherit;cursor:pointer;border-radius:999px;padding:.45rem .9rem;font-weight:600;text-decoration:none}.tabs .active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.course-option{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 0;display:flex}.course-option:last-child{border-bottom:0}button.chip{font:inherit;cursor:pointer;font-weight:600}.chip-active,.chip-active:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.dot{vertical-align:.05rem;border-radius:50%;width:.65rem;height:.65rem;display:inline-block}.dot-green{background:#2f9e5b}.dot-red{background:#d64545}.attendance-grid td,.attendance-grid th{text-align:center;white-space:nowrap}.attendance-grid td:first-child,.attendance-grid th:first-child{text-align:left}.attendance-grid .cell-present{color:var(--color-success-text);font-weight:700}.attendance-grid .cell-absent{color:var(--color-danger-text);font-weight:700}.attendance-grid .cell-unbooked{color:var(--color-warning-text)}.attendance-grid th.is-cancelled{opacity:.6;text-decoration:line-through}.datetime-input{grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:.4rem;display:grid}.unbook-rule{flex-direction:column;gap:.4rem;display:flex}.unbook-rule .inline-picker .input{height:2.8rem}details.more{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fbfdff;padding:.75rem 1rem}details.more summary{cursor:pointer;font-weight:600}details.more[open] summary{margin-bottom:.75rem}.occupancy{border-collapse:collapse;min-width:100%;font-size:.8rem}.occupancy th,.occupancy td{border:1px solid var(--color-border);vertical-align:top;padding:2px}.occupancy thead th{background:var(--color-surface);padding:.5rem;position:sticky;top:0}.occupancy tbody th{white-space:nowrap;color:var(--color-ink-soft);padding:.3rem .5rem;font-weight:600}.occ-cell{box-sizing:border-box;height:calc(var(--occ-units,1) * 2.7rem);color:var(--color-ink);background:var(--color-sky-100);border-radius:4px;flex-direction:column;justify-content:space-between;min-width:10rem;margin:1px 0;padding:.25rem .4rem;text-decoration:none;display:flex;overflow:hidden}.occ-cell.is-full strong:after{content:" ●";color:var(--color-ink)}.occ-queue{background:var(--color-danger-text);color:#fff;border-radius:3px;margin-left:.3rem;padding:0 .3rem;font-size:.7rem;font-weight:700}.occ-name,.occ-line{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.occ-line{justify-content:space-between;gap:.4rem;display:flex}.occ-staff{color:var(--color-ink-soft);text-overflow:ellipsis;overflow:hidden}.big-number{color:var(--color-primary);font-size:2rem}.hbar{grid-template-columns:8rem 1fr 3rem;align-items:center;gap:.75rem;margin-bottom:.4rem;display:grid}.hbar__track{background:var(--color-sky-100);border-radius:999px;height:.9rem;overflow:hidden}.hbar__fill{background:var(--color-primary);border-radius:999px;height:100%;display:block}.bar{background:linear-gradient(90deg, var(--color-primary) var(--w), var(--color-sky-100) var(--w));vertical-align:.05rem;border-radius:999px;width:4rem;height:.5rem;margin-right:.5rem;display:inline-block}.mail-preview{white-space:pre-wrap;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fbfdff;max-height:26rem;margin:0;padding:1rem;font-family:inherit;font-size:.9rem;overflow:auto}.audience{grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:1.5rem;display:grid}.criterion{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fbfdff;flex-direction:column;gap:.5rem;margin-bottom:.6rem;padding:.75rem;display:flex}.criterion__head{justify-content:space-between;align-items:center;display:flex}.save-bar{background:linear-gradient(180deg, #eff9ff00, var(--color-bg) 40%);padding:.75rem 0;position:sticky;bottom:0}.mfa-qr{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.mfa-qr img{border:1px solid var(--color-border);background:#fff;border-radius:8px}.mfa-secret{letter-spacing:.05em;word-break:break-all;font-size:.95rem}.recovery-codes{columns:2;background:var(--color-sky-100);border-radius:8px;padding:.75rem 1rem;font-size:1rem;line-height:1.8}ol.steps{margin:0;padding-left:1.25rem}.impersonation-bar{background:var(--color-warning-bg);border-bottom:1px solid var(--color-border);color:var(--color-warning-text);font-size:.9rem}.impersonation-bar__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-top:.45rem;padding-bottom:.45rem;display:flex}.impersonation-bar__button{background:var(--color-ink);border-color:var(--color-ink);color:#fff}.eyebrow{background:var(--color-sky-100);color:var(--color-sky-600);border-radius:999px;align-items:center;gap:.55rem;margin:0 0 1.25rem;padding:.4rem .95rem;font-size:.85rem;font-weight:700;display:inline-flex}.eyebrow:before{content:"";background:var(--color-sky-500);border-radius:50%;width:.45rem;height:.45rem;animation:2s infinite eyebrow-pulse}@keyframes eyebrow-pulse{50%{opacity:.3}}.home-hero{padding:3rem 0 4.5rem}.home-hero__grid{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:center;gap:3rem;display:grid}.home-hero h1{letter-spacing:-.04em;margin:0 0 1.25rem;font-size:clamp(2.6rem,5.8vw,4.6rem);line-height:1}.home-hero h1 em{color:var(--color-highlight);font-style:normal}.home-hero__text p{color:var(--color-ink-soft);max-width:36ch;font-size:1.25rem;line-height:1.5}.home-hero__text strong{color:var(--color-ink)}.home-hero .actions{justify-content:flex-start;margin-top:1.75rem}.home-hero__photo{justify-self:end;width:100%;max-width:30rem}.home-hero__photo img{aspect-ratio:1;object-fit:cover;width:100%;height:auto;box-shadow:var(--shadow-md);border-radius:48% 52% 46% 54%/50% 44% 56% 50%;display:block}@media (prefers-reduced-motion:reduce){.eyebrow:before{animation:none}}.home-facts{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));display:grid}.home-fact{border-left:1px solid var(--color-border);padding:1.6rem 1.5rem}.home-fact:first-child{border-left:0;padding-left:0}.home-fact strong{font-family:var(--font-heading);letter-spacing:-.025em;margin-bottom:.4rem;font-size:1.5rem;font-weight:800;line-height:1.1;display:block}.home-fact p{color:var(--color-ink-soft);margin:0;font-size:.95rem}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:1.75rem;display:flex}.section-head h2{letter-spacing:-.035em;margin:0;font-size:clamp(2rem,4vw,2.9rem)}.section-head p{max-width:44ch;color:var(--color-ink-soft);margin:0}.group-cards{grid-template-columns:repeat(auto-fit,minmax(19rem,1fr));gap:1.25rem;display:grid}.group-card{border-radius:var(--radius);background:var(--color-panel);color:inherit;flex-direction:column;padding:1.75rem;text-decoration:none;transition:transform .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}a.group-card:hover{box-shadow:var(--shadow-md);transform:translateY(-4px)}.group-card--babysim{background:var(--color-sky-100)}.group-card--simskola{background:var(--color-green-pale)}.group-card--finder{background:var(--color-surface);border:1.5px solid var(--color-border)}.group-card--finder h2{font-size:1.5rem}.group-card__age{background:var(--color-surface);color:var(--color-sky-600);border-radius:999px;align-self:flex-start;padding:.3rem .8rem;font-size:.8rem;font-weight:700}.group-card h3{font-family:var(--font-heading);letter-spacing:-.03em;margin:1rem 0 .5rem;font-size:1.8rem;font-weight:800;line-height:1.05}.group-card>p{color:var(--color-ink-soft)}.group-card__levels{margin:0 0 1.25rem;padding:0;list-style:none}.group-card__levels li{border-top:1px solid #0d223514;justify-content:space-between;gap:1rem;padding:.5rem 0;font-size:.95rem;font-weight:600;display:flex}.group-card__levels li .muted{white-space:nowrap;font-weight:500}.group-card__go{color:var(--color-sky-600);margin-top:auto;font-weight:700}.group-card__go:after{content:" →";transition:transform .2s;display:inline-block}a.group-card:hover .group-card__go:after{transform:translate(4px)}.quote{background:var(--color-ink);color:#fff;border-radius:32px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:2rem;margin:0;padding:3rem 3.5rem;display:grid;position:relative;overflow:hidden}.quote__mark{font-family:var(--font-heading);color:var(--color-accent);font-size:8rem;font-weight:800;line-height:.75}.quote blockquote{max-width:46ch;font-family:var(--font-heading);letter-spacing:-.01em;margin:.5rem 0 1rem;font-size:clamp(1.25rem,2.2vw,1.6rem);font-weight:500;line-height:1.35}.quote figcaption{opacity:.7;font-weight:600}.stars{color:var(--color-accent);letter-spacing:3px}.quote__duck{aspect-ratio:1;background:url(/logo.png) 50%/contain no-repeat;width:9rem;position:absolute;bottom:-2rem;right:2.5rem;transform:rotate(-10deg)}.reviews-row{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1.25rem;margin-top:1.25rem;display:grid}.review--more{color:var(--color-sky-600);background:var(--color-sky-100);border-color:#0000;place-items:center;font-weight:700;text-decoration:none;display:grid}@media (width<=860px){.home-hero__grid{grid-template-columns:minmax(0,1fr)}.home-hero__photo{order:-1;justify-self:center;max-width:min(13rem,33svh)}.home-fact{border-left:0;border-top:1px solid var(--color-border);padding-left:0}.quote{grid-template-columns:minmax(0,1fr);padding:2rem}.quote__mark{display:none}.quote__duck{width:6rem}}.group-card--finder .agefinder{box-shadow:none;background:0 0;border:0;padding:0}.reviews-row>.card,.group-cards>.card{margin-top:0}.group-hero{padding:3rem 0 2.5rem}.group-hero__grid{grid-template-columns:minmax(0,1fr) 23rem;align-items:start;gap:3rem;display:grid}.group-hero h1{letter-spacing:-.04em;margin:0 0 1rem;font-size:clamp(2.4rem,5vw,3.8rem);line-height:1.02}.keyfacts{border-radius:var(--radius);background:var(--color-panel);gap:.9rem;padding:1.6rem;display:grid}.keyfacts h2{margin:0 0 .25rem;font-size:1.15rem}.keyfacts__item{color:var(--color-ink);grid-template-columns:2.6rem minmax(0,1fr);align-items:center;gap:.8rem;font-size:.95rem;font-weight:600;display:grid}.keyfacts__icon{background:var(--color-surface);width:2.6rem;height:2.6rem;color:var(--color-sky-500);border-radius:12px;place-items:center;display:grid}a.keyfacts__link{color:var(--color-sky-600);text-decoration:none}a.keyfacts__link:hover .keyfacts__icon{background:var(--color-sky-600);color:#fff}.pillars{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1.5rem;margin:.5rem 0 1rem;display:grid}.pillar{border-top:3px solid var(--color-ink);color:var(--color-ink-soft);padding-top:1.25rem}.pillar:nth-child(3n+2){border-color:var(--color-sky-500)}.pillar:nth-child(3n+3){border-color:var(--color-sky-600)}.pillar p{margin:0}.pillar p>strong:first-child{font-family:var(--font-heading);letter-spacing:-.015em;color:var(--color-ink);margin-bottom:.45rem;font-size:1.2rem;font-weight:700;display:block}.ladder{gap:.75rem;display:grid}.rung{border:1.5px solid var(--color-border);color:inherit;border-radius:18px;grid-template-columns:3.75rem minmax(0,1fr) auto;align-items:center;gap:1.25rem;padding:1.15rem 1.4rem;text-decoration:none;transition:border-color .2s,transform .2s;display:grid}.rung:hover{border-color:var(--color-ink);transform:translate(4px)}.rung__num{background:var(--color-sky-100);width:3.25rem;height:3.25rem;color:var(--color-sky-600);font-family:var(--font-heading);border-radius:50%;place-items:center;font-size:1.5rem;font-weight:800;display:grid}.rung--parent .rung__num{background:var(--color-green-pale);color:var(--color-green)}.rung h3{margin:0 0 .2rem;font-size:1.2rem}.rung p{color:var(--color-ink-soft);margin:0;font-size:.95rem}.rung__meta{text-align:right;color:var(--color-ink-soft);white-space:nowrap;font-size:.875rem}.rung__meta strong{font-family:var(--font-heading);color:var(--color-ink);font-size:1.3rem;font-weight:800;display:block}.tag{background:var(--color-green-pale);color:var(--color-green);font-family:var(--font-body);letter-spacing:0;vertical-align:.2em;border-radius:999px;margin-left:.5rem;padding:.15rem .6rem;font-size:.75rem;font-weight:700;display:inline-block}.tag--solo{background:var(--color-sky-100);color:var(--color-sky-600)}@media (width<=860px){.group-hero__grid{grid-template-columns:minmax(0,1fr)}.rung{grid-template-columns:3rem minmax(0,1fr)}.rung__meta{text-align:left;grid-column:2}}.list li.upcoming{justify-content:flex-start;gap:1rem}.upcoming__info{flex:1;min-width:0}.date-tile{background:var(--color-panel);border-radius:14px;flex:0 0 4.25rem;place-items:center;padding:.45rem 0;line-height:1.1;display:grid}.date-tile span{text-transform:uppercase;letter-spacing:.04em;color:var(--color-ink-soft);font-size:.7rem;font-weight:700}.date-tile b{font-family:var(--font-heading);font-size:1.5rem;font-weight:800}.list li.upcoming.is-unbooked .date-tile{opacity:.5}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.tooltip{z-index:1000;background:var(--color-ink);color:#fff;white-space:pre-line;pointer-events:none;border-radius:10px;width:max-content;max-width:18rem;padding:.45rem .7rem;font-size:.82rem;font-weight:500;line-height:1.4;animation:.12s ease-out tooltip-in;position:fixed;transform:translate(-50%,-100%);box-shadow:0 10px 30px -10px #0d223573}.tooltip--below{transform:translate(-50%)}.tooltip:after{content:"";left:calc(50% + var(--arrow-shift,0px));border:6px solid #0000;border-top-color:var(--color-ink);position:absolute;top:100%;translate:-50%}.tooltip--below:after{border-top-color:#0000;border-bottom-color:var(--color-ink);top:auto;bottom:100%}@keyframes tooltip-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.tooltip{animation:none}}[data-tooltip]{cursor:help}a[data-tooltip],button[data-tooltip]{cursor:pointer}.danger-zone{border-color:var(--color-danger-border)}.danger-zone h2{color:var(--color-danger-text)}.batch-series{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.batch-series>select{width:auto}.batch-rows th,.batch-rows td{vertical-align:middle;padding:.45rem .3rem}.batch-rows th:first-child,.batch-rows td:first-child{padding-left:0}.batch-rows th:last-child,.batch-rows td:last-child{width:1%;padding-right:0}.batch-rows td:first-child .input{min-width:7.5rem}.batch-rows td:nth-child(2){width:6rem}.batch-rows td:nth-child(2) .input{min-width:4.75rem}.batch-rows td:nth-child(3) .input{min-width:6.5rem}.btn.icon-button{padding:.4rem;line-height:0}.date-chips{flex-wrap:wrap;gap:.3rem;display:flex}.date-chip{border:1px solid var(--color-sky-300);background:var(--color-sky-100);color:var(--color-ink);font:inherit;cursor:pointer;border-radius:999px;padding:.15rem .5rem;font-size:.8rem}.date-chip.is-skipped{border-color:var(--color-border);color:var(--color-ink-soft);background:0 0;text-decoration:line-through}.date-chip.is-closed{border-style:dashed}.date-chip:disabled{cursor:default}.chip--returning{border-style:dashed}.chip--returning:after{content:" ★";color:var(--color-highlight)}.returning-note{color:var(--color-ink-soft);margin:-.25rem 0 .75rem;font-size:.9rem}.rec-course+.rec-course{border-top:1px solid var(--color-border);margin-top:1.5rem;padding-top:1rem}.rec-course h3{margin:0 0 .5rem;font-size:1rem}.finder-period h2{margin-top:0}.finder-period+.finder-period{margin-top:1.5rem}.finder-period.is-next{border-color:var(--color-highlight);background:linear-gradient(180deg, var(--color-sky-100), var(--color-surface) 9rem);box-shadow:var(--shadow-md)}.finder-period__next{background:var(--color-primary);color:var(--color-primary-contrast)}.finder-period.is-started{box-shadow:none;opacity:.6;background:0 0;border-style:dashed}.finder-period.is-started h2{font-size:1.15rem}.finder-period__badge{vertical-align:middle;margin-left:.5rem}.finder-period.is-started .finder-levels{filter:grayscale()}.finder-period.is-collapsed .finder-levels{pointer-events:none;max-height:7rem;overflow:hidden;-webkit-mask-image:linear-gradient(#000 20%,#0000);mask-image:linear-gradient(#000 20%,#0000)}.finder-period__more{margin-top:.25rem}.finder-note{margin-top:2.5rem}.finder-levels{grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1rem;margin-top:1rem;display:grid}.finder-level{border:1.5px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:inherit;flex-direction:column;gap:.4rem;padding:1.25rem;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.finder-level:hover{border-color:var(--color-highlight);transform:translateY(-2px)}.finder-level h3,.finder-level p{margin:0}.finder-level__facts{color:var(--color-ink-soft);font-size:.9rem}.finder-level__go{color:var(--color-primary);margin-top:auto;padding-top:.5rem;font-size:.9rem;font-weight:600}.contact-layout{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start;gap:1.5rem;display:grid}.contact-aside{gap:1rem;display:grid}.contact-aside .card,.contact-layout>.card{margin:0}.contact-aside .card h2{margin-top:0}@media (width<=860px){.contact-layout{grid-template-columns:minmax(0,1fr)}}.hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.day-nav strong{margin-left:.5rem}.day-nav .input{width:100%}.pass-row.needs-attention{box-shadow:inset 3px 0 0 var(--color-danger-text);padding-left:.75rem}.pass-row.is-cancelled{opacity:.6}.pass-row__badges{flex-wrap:wrap;align-items:center;gap:.3rem;margin-top:.25rem;display:flex}.th-with-control{align-items:center;gap:1rem;display:inline-flex}.th-with-control .checkbox{text-transform:none;letter-spacing:normal;font-weight:400}.home-hero__login{margin:1rem 0 0}.date-input{align-items:center;display:flex;position:relative}.date-input .input{width:100%;padding-right:2.8rem}.date-input__button{border-radius:var(--radius-sm);width:2.2rem;height:2.2rem;color:var(--color-ink-soft);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex;position:absolute;right:.35rem}.date-input__button:hover,.date-input__button[aria-expanded=true]{background:var(--color-sky-100);color:var(--color-primary)}.date-picker{z-index:30;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);width:19rem;max-width:calc(100vw - 2rem);box-shadow:var(--shadow-md);padding:.75rem;position:absolute;top:calc(100% + .4rem);left:0;right:auto}.date-picker__head{align-items:center;gap:.35rem;margin-bottom:.5rem;display:flex}.date-picker__head .input{flex:auto;min-width:0;height:2.3rem;padding:0 .5rem}.date-picker__head select:last-of-type{flex:0 0 5.5rem}.date-picker__grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:.15rem;display:grid}.date-picker__weekday{color:var(--color-ink-soft);padding:.2rem 0;font-size:.72rem}.date-picker__day{height:2.2rem;color:var(--color-ink);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;font-size:.9rem}.date-picker__day:hover{background:var(--color-sky-100)}.date-picker__day.is-today{box-shadow:inset 0 0 0 1px var(--color-sky-300)}.date-picker__day.is-selected{background:var(--color-primary);color:var(--color-primary-contrast)}.user-search .input{flex:18rem;width:auto}.range-inputs{align-items:center;gap:.4rem;display:flex}.range-inputs .input{width:5rem}.email-choices{flex-direction:column;gap:.5rem;display:flex}.email-choices .btn{overflow-wrap:anywhere;justify-content:flex-start}.now-list{gap:1rem;display:grid}.now-card{border-left:6px solid var(--color-border);flex-direction:column;align-items:flex-start;gap:.5rem;display:flex}.now-card h2{margin:0}.now-card .btn{width:100%;max-width:22rem;margin-top:.5rem}.now-card:not(.is-live){opacity:.85}.drawer-menus{display:none}@media (width<=860px){.site-menu--tabs .drawer-menus{display:block}.site-menu--tabs .site-nav,.site-menu--tabs .account-nav a{display:none}.drawer-menus .tabs{margin-bottom:.75rem}.drawer-menus .tabs button{flex:1;padding:.5rem .6rem;font-size:.95rem}.drawer-menus .menu-list a{padding:.7rem .75rem;font-size:1.05rem}.site-menu--tabs .account-nav{align-items:flex-start}}.pager{justify-content:center;align-items:center;gap:1rem;margin-top:1rem;display:flex}.pager--top{margin:0 0 1rem}.action-choices{gap:.6rem;display:grid}.action-choice{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font:inherit;text-align:left;cursor:pointer;flex-direction:column;align-items:flex-start;gap:.2rem;padding:.85rem 1rem;display:flex}.action-choice:hover{border-color:var(--color-primary);background:var(--color-sky-100)}.logout-button__label{display:none}@media (width<=860px){.logout-button__icon{display:none}.logout-button__label{display:inline}}.unpublished-icon{vertical-align:-.15rem;color:var(--color-ink-soft);margin-right:.35rem;display:inline-flex}.table-middle th,.table-middle td{vertical-align:middle}.chip__note{font-weight:400}.booking-page{max-width:46rem}.booking-page>.card+.alert,.booking-page>.alert+.card,.booking-page>.alert+.alert{margin-top:1.25rem}.booking-dates{columns:2;margin:.5rem 0 0;padding-left:1.2rem}@media (width<=40rem){.booking-dates{columns:1}}.change-old{color:var(--color-danger-text)}.change-new{color:var(--color-green)}.live{color:#eaf6ff;font-family:var(--font-body);z-index:10;background:radial-gradient(120% 80% at 50% -10%,#1d7fc4 0%,#0e4f8c 35%,#0b2f5b 70%,#061a33 100%);position:fixed;inset:0;overflow:hidden auto}.live__caustics{pointer-events:none;opacity:.18;mix-blend-mode:screen;background:radial-gradient(40% 25% at 20% 30%,#9fe3ff 0,#0000 60%),radial-gradient(35% 20% at 70% 20%,#c8f1ff 0,#0000 60%),radial-gradient(30% 22% at 50% 70%,#8fd9ff 0,#0000 60%);animation:18s ease-in-out infinite alternate live-caustics;position:absolute;inset:-20%}@keyframes live-caustics{0%{transform:translate(-3%,-2%)rotate(0)scale(1)}to{transform:translate(3%,2%)rotate(6deg)scale(1.08)}}.live__bubbles span{pointer-events:none;background:radial-gradient(circle at 30% 30%,#ffffffe6,#ffffff26 45%,#ffffff0d 70%);border:1px solid #ffffff59;border-radius:50%;animation:linear infinite live-rise;position:absolute;bottom:-40px}@keyframes live-rise{0%{opacity:0;transform:translate(0)}10%{opacity:.8}50%{transform:translate(14px,-55vh)}to{opacity:0;transform:translate(-10px,-115vh)}}.live__waves{pointer-events:none;width:100%;height:70px;position:fixed;bottom:0;left:0;right:0}.live__wave--back{fill:#50b4f02e;animation:9s ease-in-out infinite alternate live-wave}.live__wave--front{fill:#8cd7ff24;animation:6s ease-in-out infinite alternate-reverse live-wave}@keyframes live-wave{0%{transform:translate(-40px)}to{transform:translate(40px)}}.live__header{justify-content:space-between;align-items:center;padding:1.1rem 2rem .4rem;display:flex;position:relative}.live__brand{font-family:var(--font-heading);letter-spacing:-.01em;align-items:center;gap:.75rem;font-size:1.6rem;display:flex}.live__duck{filter:drop-shadow(0 4px 10px #00000059);background:url(/logo.png) 50%/contain no-repeat;width:44px;height:44px;animation:3.5s ease-in-out infinite live-bob}@keyframes live-bob{0%,to{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-6px)rotate(4deg)}}.live__brand strong{color:#ffd84d}.live__header-right{align-items:center;gap:1rem;display:flex}.live__online{background:#ffffff1a;border-radius:999px;align-items:center;gap:.5rem;padding:.35rem .85rem;font-weight:600;display:inline-flex}.live__pulse{background:#4ade80;border-radius:50%;width:.65rem;height:.65rem;animation:1.8s infinite live-pulse;box-shadow:0 0 #4ade80b3}@keyframes live-pulse{70%{box-shadow:0 0 0 10px #4ade8000}to{box-shadow:0 0 #4ade8000}}.live__clock{font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:700}.live__btn{color:#eaf6ff;font:inherit;cursor:pointer;background:0 0;border:1px solid #ffffff4d;border-radius:999px;padding:.35rem .85rem;font-weight:600;text-decoration:none}.live__btn:hover{background:#ffffff1f}.live__loading{text-align:center;margin-top:30vh;font-size:1.5rem;position:relative}.live__grid{grid-template:"countdown countdown feed""tiles tiles feed""lanes charts visits"1fr/1.35fr 1fr 1fr;align-items:start;gap:1.1rem;max-width:120rem;margin:0 auto;padding:.8rem 2rem 5rem;display:grid;position:relative}.live__panel{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#061a3373;border:1px solid #ffffff1f;border-radius:22px;padding:1.2rem 1.4rem;box-shadow:0 10px 30px #0003,inset 0 1px #ffffff14}.live__label{letter-spacing:.12em;text-transform:uppercase;color:#9fd4f5;margin:0 0 .6rem;font-size:.8rem;font-weight:700}.live__muted{color:#9cbcd6;font-size:.9em}.live__eyebrow{color:#ffd84d;margin:0;font-size:1.15rem;font-weight:700}.live__sub{color:#cfe8fb;margin:.6rem 0 0;font-size:1.15rem}.live__countdown{text-align:center;grid-area:countdown;padding:1.6rem}.live__digits{justify-content:center;gap:1.1rem;margin-top:.9rem;display:flex}.live__digit{color:#0b2f5b;background:linear-gradient(#fffffff2,#e1f3fff2),repeating-linear-gradient(0deg,#0000 0 22px,#0b2f5b0f 22px 23px);border-radius:18px;min-width:8.5rem;padding:.9rem .6rem .6rem;box-shadow:0 8px #04162d59,inset 0 -4px #2894cc40}.live__digit-n{font-family:var(--font-heading);font-variant-numeric:tabular-nums;font-size:clamp(3rem,6vw,5.5rem);line-height:1;display:block}.live__digit-l{letter-spacing:.1em;text-transform:uppercase;color:#2894cc;font-size:.85rem;font-weight:700}.live__digits.is-final .live__digit{animation:1s ease-in-out infinite live-shake}@keyframes live-shake{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.live__open h1{font-family:var(--font-heading);color:#fff;margin:.4rem 0;font-size:clamp(2.5rem,5vw,4.5rem);animation:2.5s ease-in-out infinite live-bob}.live__also{color:#ffd84d;margin:.8rem 0 0;font-weight:600}.live__later{text-align:left;border-top:1px dashed #fff3;margin-top:1.2rem;padding-top:.8rem}.live__later-row{justify-content:space-between;gap:1rem;padding:.25rem 0;display:flex}.live__tiles{grid-area:tiles;grid-template-columns:repeat(6,1fr);gap:1rem;display:grid}.live__tile{background:linear-gradient(160deg,#2894cc59,#061a3373);border:1px solid #ffffff24;border-radius:20px;flex-direction:column;align-items:flex-start;gap:.1rem;padding:1rem 1.1rem;display:flex}.live__tile-emoji{font-size:1.6rem}.live__tile-value{font-family:var(--font-heading);color:#fff;font-variant-numeric:tabular-nums;font-size:clamp(1.8rem,2.6vw,2.6rem);line-height:1.1}.live__tile-label{color:#cfe8fb;font-size:.95rem;font-weight:600}.live__feed{contain:size;grid-area:feed;align-self:stretch;min-height:0;overflow:hidden}.live__feed ul,.live__ticker,.live__visits ol{margin:0;padding:0;list-style:none}.live__feed li{border-bottom:1px solid #ffffff14;grid-template-columns:2.4rem 1fr auto;align-items:center;gap:.6rem;padding:.55rem 0;font-size:1.05rem;display:grid}.live__emoji{background:#ffffff1f;border-radius:50%;place-items:center;width:2.2rem;height:2.2rem;font-size:1.2rem;display:grid}.live__feed li.is-fresh{animation:.9s cubic-bezier(.2,1.4,.4,1) live-in}.live__feed li.is-fresh .live__emoji{animation:1.2s ease-out live-pop}@keyframes live-in{0%{opacity:0;background:#ffd84d40;transform:translateY(-14px)scale(.96)}to{opacity:1;background:0 0;transform:none}}@keyframes live-pop{0%{background:#ffd84d;transform:scale(.4)}60%{transform:scale(1.25)}to{transform:scale(1)}}.live__lanes{grid-area:lanes}.live__lane{grid-template-columns:9.5rem 1fr 6.5rem;align-items:center;gap:.7rem;padding:.18rem 0;display:grid}.live__lane-name{white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:600;overflow:hidden}.live__lane-track{background:#ffffff14;border-radius:4px;height:1.1rem;position:relative;overflow:hidden;box-shadow:inset 0 2px #ffffff0f}.live__lane-track:after{content:"";opacity:.55;background:repeating-linear-gradient(90deg,#ff6b6b 0 10px,#fff 10px 20px);height:2px;position:absolute;inset:auto 0 0}.live__lane-water{background:linear-gradient(90deg,#2894cc,#4fc3f7);border-radius:0 4px 4px 0;height:100%;transition:width 1.2s cubic-bezier(.3,1.2,.4,1);display:block}.live__lane-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.live__total{color:#cfe8fb;margin:.8rem 0 0}.live__charts{grid-area:charts;gap:1rem;display:grid}.live__spark-head{justify-content:space-between;align-items:baseline;margin-bottom:.3rem;display:flex}.live__spark svg{cursor:crosshair;width:100%;height:5.5rem;display:block}.live__spark-axis{color:#9cbcd6;justify-content:space-between;font-size:.8rem;display:flex}.live__visits{grid-area:visits}.live__visits ol li{counter-increment:top;justify-content:space-between;padding:.25rem 0;display:flex}.live__visits ol li:before{content:counter(top) ".";color:#ffd84d;margin-right:.5rem;font-weight:700}.live__visits ol li span:first-child{flex:1}.live__ticker li{padding:.25rem 0;font-size:.95rem;animation:.6s ease-out live-in}.live__splash{pointer-events:none;z-index:20;width:0;height:0;position:fixed;top:22%;left:50%}.live__splash span{width:12px;height:12px;transform:rotate(var(--a)) translateX(0);background:radial-gradient(circle at 30% 30%,#fff,#7fd3ff);border-radius:50%;animation:1.4s ease-out forwards live-splash;position:absolute}@keyframes live-splash{to{transform:rotate(var(--a)) translateX(260px);opacity:0}}@media (width<=1200px){.live__grid{grid-template-columns:1fr 1fr;grid-template-areas:"countdown countdown""tiles tiles""feed lanes""charts visits"}.live__tiles{grid-template-columns:repeat(3,1fr)}}@media (prefers-reduced-motion:reduce){.live *,.live :before,.live :after{transition:none!important;animation:none!important}}.multiselect__bulk{border-bottom:1px solid var(--color-border);gap:1rem;margin-bottom:.3rem;padding:.2rem 0 .5rem;font-size:.85rem;display:flex}.multiselect__bulk button:disabled{opacity:.45;cursor:default}.bar.bar--done{background:linear-gradient(90deg, var(--color-green) var(--w), var(--color-green-pale) var(--w))}.period-title{margin:1.5rem 0 .5rem}.period-date{flex-direction:row;align-items:center;gap:.4rem;margin:0}.period-date .date-input{width:10rem}.period-grid{grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));gap:.75rem;display:grid}.period-stat{border-radius:var(--radius-sm);background:var(--color-surface);border:1px solid var(--color-border);flex-direction:column;gap:.1rem;padding:.8rem .9rem;display:flex}.period-stat strong{font-family:var(--font-heading);font-variant-numeric:tabular-nums;font-size:1.7rem;line-height:1.1}.period-stat>span:not(.muted){font-size:.9rem;font-weight:600}.period-stat--warn strong{color:var(--color-warning-text)}.period-stat--bad strong{color:var(--color-danger-text)}.period-chart svg{width:100%;height:9rem;display:block}.period-axis{justify-content:space-between;margin-top:.3rem;display:flex}.age-note{color:var(--color-warning-text);margin-top:.4rem;font-weight:600}.age-note-box{margin-top:1rem}
