:root{--brand-950:#0a1b2e;--brand-900:#0f2742;--brand-800:#123456;--brand-700:#164372;--brand-600:#1d5590;--brand-500:#2c6bab;--brand-400:#4a8bc9;--brand-300:#82aeda;--brand-200:#b6d0e9;--brand-100:#dbe8f4;--brand-50:#f0f5fa;--brand-700-rgb:22 67 114;--brand-900-rgb:15 39 66;--accent-800:#8f181f;--accent-700:#a91f26;--accent-600:#c9252d;--accent-500:#de3a42;--accent-300:#f0a0a4;--accent-100:#fbdcde;--accent-50:#fdf3f3;--accent-600-rgb:201 37 45;--gray-0:#fff;--gray-25:#fcfdfe;--gray-50:#f8fafc;--gray-100:#f1f4f8;--gray-200:#e2e7eb;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--green-50:#eff9f3;--green-500:#17915a;--green-700:#0f6b43;--amber-50:#fdf8ec;--amber-500:#b4810d;--amber-700:#8a6109;--color-bg:#fbfbf9;--color-surface:var(--gray-0);--color-surface-sunken:#f8fafc;--paper-2:#f8fafc;--color-border:#e2e7eb;--color-border-strong:var(--gray-300);--color-text:var(--gray-800);--color-text-muted:var(--gray-600);--color-text-subtle:var(--gray-400);--color-text-inverse:#fff;--color-heading:var(--brand-900);--color-link:var(--brand-700);--color-link-hover:var(--brand-500);--color-focus:var(--brand-500);--on-brand-text:#fffffff0;--on-brand-muted:#ffffffb8;--on-brand-subtle:#ffffff7a;--on-brand-border:#ffffff29;--on-brand-surface:#ffffff14;--font-sans:"Plus Jakarta Sans", "Segoe UI", system-ui, -apple-system, sans-serif;--font-display:var(--font-sans);--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--text-xs:clamp(.75rem, .732rem + .081vw, .8125rem);--text-sm:clamp(.8125rem, .794rem + .081vw, .875rem);--text-md:clamp(.875rem, .857rem + .081vw, .9375rem);--text-base:clamp(.9375rem, .901rem + .161vw, 1.0625rem);--text-lg:clamp(1.0625rem, 1.026rem + .161vw, 1.1875rem);--text-xl:clamp(1.25rem, 1.196rem + .242vw, 1.4375rem);--text-2xl:clamp(1.4375rem, 1.347rem + .403vw, 1.75rem);--text-3xl:clamp(1.75rem, 1.605rem + .645vw, 2.25rem);--text-4xl:clamp(2rem, 1.7rem + 1.3vw, 3.25rem);--text-5xl:clamp(2.25rem, 1.8rem + 1.8vw, 4.25rem);--leading-tight:1.08;--leading-snug:1.3;--leading-normal:1.6;--leading-relaxed:1.75;--tracking-display:-.03em;--tracking-heading:-.022em;--tracking-base:-.008em;--tracking-label:.005em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:clamp(1rem, .964rem + .161vw, 1.125rem);--space-5:clamp(1.25rem, 1.177rem + .323vw, 1.5rem);--space-6:clamp(1.5rem, 1.391rem + .484vw, 1.875rem);--space-8:clamp(2rem, 1.855rem + .645vw, 2.5rem);--space-10:clamp(2.5rem, 2.282rem + .968vw, 3.25rem);--space-12:clamp(3rem, 2.71rem + 1.29vw, 4rem);--space-16:clamp(4rem, 3.565rem + 1.935vw, 5.5rem);--space-20:clamp(5rem, 4.419rem + 2.581vw, 7rem);--space-24:clamp(6rem, 5.274rem + 3.226vw, 8.5rem);--space-32:clamp(8rem, 7.129rem + 3.871vw, 11rem);--radius-sm:.5rem;--radius:.625rem;--radius-md:.75rem;--radius-lg:1rem;--radius-xl:1.25rem;--radius-2xl:1.75rem;--radius-full:9999px;--ring:0 0 0 1px rgb(var(--brand-900-rgb) / 8%);--ring-strong:0 0 0 1px rgb(var(--brand-900-rgb) / 12%);--shadow-xs:0 1px 2px rgb(var(--brand-900-rgb) / 4%);--shadow-sm:0 1px 3px rgb(var(--brand-900-rgb) / 6%), 0 1px 2px rgb(var(--brand-900-rgb) / 4%);--shadow:0 4px 12px rgb(var(--brand-900-rgb) / 6%), 0 1px 3px rgb(var(--brand-900-rgb) / 4%);--shadow-md:0 6px 16px rgb(var(--brand-900-rgb) / 8%), 0 2px 4px rgb(var(--brand-900-rgb) / 4%);--shadow-lg:0 12px 32px rgb(var(--brand-900-rgb) / 12%), 0 4px 8px rgb(var(--brand-900-rgb) / 6%);--shadow-floating:0 10px 30px -5px rgb(var(--brand-900-rgb) / 12%), 0 4px 10px -3px rgb(var(--brand-900-rgb) / 6%);--bevel:inset 0 1px 0 #ffffff24;--brand-fill:var(--brand-700);--brand-fill-hover:var(--brand-800);--accent-fill:var(--accent-600);--accent-fill-hover:var(--accent-700);--container:90rem;--container-page:90rem;--container-narrow:46rem;--container-wide:105rem;--gutter:clamp(1rem, .419rem + 2.581vw, 3rem);--header-height:4rem;--control-height-sm:2.25rem;--control-height:2.75rem;--control-height-lg:3.25rem;--control-padding-x:1.125em;--icon-xs:.875rem;--icon-sm:1rem;--icon:1.125rem;--icon-lg:1.25rem;--icon-xl:2.25rem;--avatar-sm:2rem;--avatar:clamp(3.25rem, 3.105rem + .645vw, 3.75rem);--avatar-lg:clamp(6rem, 5.71rem + 1.29vw, 7rem);--avatar-xl:7.5rem;--sidebar-width:clamp(17rem, 16.129rem + 3.871vw, 20rem);--nav-width:clamp(15rem, 14.274rem + 3.226vw, 17.5rem);--aside-width:clamp(20rem, 18.984rem + 4.516vw, 23.5rem);--card-min:17rem;--card-min-wide:22.5rem;--dialog-sm:32rem;--dialog-md:44rem;--dialog-lg:60rem;--hero-width:56rem;--ease:cubic-bezier(.2, 0, .2, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--duration-fast:.12s;--duration:.2s;--duration-slow:.32s;--z-dropdown:100;--z-sticky:200;--z-header:300;--z-overlay:400;--z-modal:500;--z-toast:600}@media (prefers-reduced-motion:reduce){:root{--duration-fast:0s;--duration:0s;--duration-slow:0s}}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:var(--space-6)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}:root{interpolate-size:allow-keywords}body{background:var(--color-bg);min-height:100dvh;color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);letter-spacing:var(--tracking-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;margin:0;display:flex}img,picture,svg,video,canvas{max-width:100%;height:auto;display:block}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none;padding:0}fieldset{border:0;min-width:0;margin:0;padding:0}legend{padding:0}p,li,figcaption{overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;line-height:var(--leading-tight);letter-spacing:var(--tracking-heading);color:var(--color-heading);text-wrap:balance}h1{font-size:var(--text-4xl);letter-spacing:var(--tracking-display);font-weight:800}h2{font-size:var(--text-3xl);letter-spacing:var(--tracking-display);font-weight:800}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl);line-height:var(--leading-snug)}h5{font-size:var(--text-lg);line-height:var(--leading-snug)}h6{font-size:var(--text-base);line-height:var(--leading-snug)}a{color:var(--color-link);text-underline-offset:.18em;text-decoration-thickness:1px;text-decoration-color:rgb(var(--brand-700-rgb) / 28%);transition:color var(--duration-fast) var(--ease), text-decoration-color var(--duration-fast) var(--ease)}a:hover{color:var(--color-link-hover);text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;border-radius:var(--radius-sm)}:focus:not(:focus-visible){outline:none}hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-10) 0}small{font-size:var(--text-md)}code,pre,kbd{font-family:var(--font-mono);font-size:.9em}code{background:var(--gray-100);border-radius:var(--radius-sm);padding:.1em .35em}.num{font-variant-numeric:tabular-nums}::selection{background:var(--brand-100);color:var(--brand-900)}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{top:var(--space-2);left:var(--space-2);z-index:var(--z-toast);padding:var(--space-3) var(--space-5);background:var(--brand-700);color:var(--color-text-inverse);border-radius:var(--radius);transition:transform var(--duration) var(--ease-out);font-weight:600;text-decoration:none;position:absolute;transform:translateY(-200%)}.skip-link:focus{color:var(--color-text-inverse);transform:translateY(0)}[x-cloak]{display:none!important}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}.container--page{max-width:var(--container-page)}.container--narrow{max-width:var(--container-narrow)}.container--wide{max-width:var(--container-wide)}.site-main{flex:1}.section{padding-block:var(--space-12)}.stack>*+*{margin-top:var(--space-4)}.stack--sm>*+*{margin-top:var(--space-2)}.stack--lg>*+*{margin-top:var(--space-5)}.cluster{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.cluster--sm{gap:var(--space-2)}.grid{gap:var(--space-4);display:grid}.text-center{text-align:center}.text-muted{color:var(--color-text-muted)}.text-xs{font-size:var(--text-xs)}.font-display{font-family:var(--font-display)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.hidden{display:none}@media (width<=767px){.hide-mobile{display:none!important}}@media (width>=768px){.hide-desktop{display:none!important}}.btn{--btn-bg:var(--brand-fill);--btn-fg:#fff;--btn-border:transparent;--btn-shadow:var(--shadow-xs);justify-content:center;align-items:center;gap:var(--space-2);padding:0 var(--control-padding-x);min-height:var(--control-height);border:1px solid var(--btn-border);border-radius:var(--radius);background:var(--btn-bg);color:var(--btn-fg);font-family:var(--font-sans);font-weight:600;font-size:var(--text-md);letter-spacing:var(--tracking-base);text-align:center;white-space:nowrap;box-shadow:var(--btn-shadow);transition:background-color var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease), color var(--duration-fast) var(--ease), box-shadow var(--duration-fast) var(--ease);line-height:1.25;text-decoration:none;display:inline-flex;position:relative}.btn[hidden]{display:none}.btn:hover{--btn-bg:var(--brand-fill-hover);--btn-shadow:var(--shadow-sm);color:var(--btn-fg)}.btn:active{box-shadow:var(--shadow-xs)}.btn[disabled],.btn[aria-disabled=true]{opacity:.5;pointer-events:none;box-shadow:none}.btn--accent{--btn-bg:var(--accent-fill);--btn-fg:#fff;--btn-shadow:0 1px 3px rgb(var(--accent-600-rgb) / 20%)}.btn--accent:hover{--btn-bg:var(--accent-fill-hover);--btn-shadow:0 2px 6px rgb(var(--accent-600-rgb) / 28%)}.btn--secondary{--btn-bg:var(--color-surface);--btn-fg:var(--gray-700);--btn-border:var(--color-border);--btn-shadow:var(--shadow-xs)}.btn--secondary:hover{--btn-bg:var(--color-surface);--btn-border:var(--gray-300);--btn-fg:var(--brand-800);--btn-shadow:var(--shadow-sm)}.btn--ghost{--btn-bg:transparent;--btn-fg:var(--gray-600);--btn-border:transparent;--btn-shadow:none}.btn--ghost:hover{--btn-bg:rgb(var(--brand-700-rgb) / 8%);--btn-fg:var(--brand-800);--btn-border:transparent;--btn-shadow:none}.btn--danger{--btn-bg:var(--color-surface);--btn-fg:var(--accent-700);--btn-border:var(--color-border);--btn-shadow:var(--shadow-xs)}.btn--danger:hover{--btn-bg:var(--accent-50);--btn-border:var(--accent-300);--btn-fg:var(--accent-800);--btn-shadow:var(--shadow-sm)}.btn--on-brand{--btn-bg:#fff;--btn-fg:var(--brand-900);--btn-border:transparent;--btn-shadow:0 1px 3px #0a1b2e40}.btn--on-brand:hover{--btn-bg:var(--brand-50);--btn-fg:var(--brand-950);--btn-shadow:0 2px 8px #0a1b2e52}.btn--on-brand-ghost{--btn-bg:var(--on-brand-surface);--btn-fg:#fff;--btn-border:#fff3;--btn-shadow:none}.btn--on-brand-ghost:hover{--btn-bg:#ffffff29;--btn-border:#ffffff5c;--btn-fg:#fff}.btn--sm{min-height:var(--control-height-sm);font-size:var(--text-sm);border-radius:var(--radius-sm);padding:0 .875rem}.btn--lg{min-height:var(--control-height-lg);font-size:var(--text-base);border-radius:var(--radius-md);padding:0 1.5rem}.btn--block{width:100%}.btn__icon{flex:none;width:1.1em;height:1.1em}.btn[aria-busy=true]{pointer-events:none;opacity:.8}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.badge{align-items:center;gap:var(--space-1);border-radius:var(--radius-full);background:var(--gray-100);color:var(--gray-700);font-size:var(--text-sm);white-space:nowrap;border:1px solid #0000;padding:.2rem .625rem;font-weight:550;line-height:1.4;display:inline-flex}.badge--danger{background:var(--accent-50);border-color:var(--accent-100);color:var(--accent-700)}.alert{--alert-accent:var(--brand-600);--alert-bg:#eef4fb;--alert-border:#cbdcf0;--alert-title:var(--brand-900);align-items:flex-start;gap:var(--space-3);padding:var(--space-4) var(--space-5);border:1px solid var(--alert-border);border-radius:var(--radius-md);background:var(--alert-bg);box-shadow:var(--shadow-xs);font-size:var(--text-md);line-height:var(--leading-snug);color:var(--gray-700);display:flex}.alert--success{--alert-accent:var(--green-500);--alert-bg:#eaf6f0;--alert-border:#b8e4cd;--alert-title:#0b5636;color:var(--green-700)}.alert--error{--alert-accent:var(--accent-600);--alert-bg:#fdf0f1;--alert-border:#f7c8cb;--alert-title:var(--accent-800);color:var(--accent-800)}.alert--warning{--alert-accent:var(--amber-500);--alert-bg:#fdf5e6;--alert-border:#f5e1b5;--alert-title:#6f4d07;color:var(--amber-700)}.alert--info{color:var(--brand-800)}.alert__icon{width:1.35rem;height:1.35rem;color:var(--alert-accent);flex:none}.alert__body{flex:1;min-width:0}.alert__title{font-size:var(--text-base);letter-spacing:-.01em;color:var(--alert-title);margin-bottom:var(--space-1);font-weight:700}.alert a:not(.btn){color:inherit;text-underline-offset:2px;font-weight:600;text-decoration:underline}.table{border-collapse:collapse;width:100%;font-size:var(--text-md)}.table th,.table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border);vertical-align:middle}.table th{z-index:1;background:var(--color-surface-sunken);color:var(--gray-600);font-weight:650;font-size:var(--text-sm);letter-spacing:var(--tracking-label);white-space:nowrap;position:sticky;top:0}.table tbody tr:last-child td{border-bottom:none}.table tbody tr{transition:background-color var(--duration-fast) var(--ease)}.table tbody tr:hover{background:var(--color-surface-sunken)}.pagination{justify-content:center;align-items:center;gap:var(--space-2);margin-top:var(--space-8);flex-wrap:wrap;display:flex}.pagination__item{min-width:var(--control-height);height:var(--control-height);padding-inline:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--gray-700);font-size:var(--text-md);font-variant-numeric:tabular-nums;box-shadow:var(--shadow-xs);transition:all var(--duration-fast) var(--ease);justify-content:center;align-items:center;font-weight:550;text-decoration:none;display:inline-flex}.pagination__item:hover{border-color:var(--brand-300);color:var(--brand-800);box-shadow:var(--shadow-sm)}.pagination__item[aria-current=page]{background:var(--brand-700);border-color:var(--brand-700);color:#fff;font-weight:650}.pagination__gap{color:var(--color-text-subtle);padding-inline:var(--space-1)}.tabs{gap:var(--space-6);border-bottom:1px solid var(--color-border);scrollbar-width:none;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.prose{max-width:68ch;line-height:var(--leading-relaxed);color:var(--gray-700);font-size:var(--text-lg)}.prose>*+*{margin-top:var(--space-5)}.prose>:first-child{margin-top:0}.prose h2{font-size:var(--text-2xl);margin-top:var(--space-10)}.prose h3{font-size:var(--text-xl);margin-top:var(--space-8)}.prose h4{font-size:var(--text-lg);margin-top:var(--space-8)}.prose ul,.prose ol{padding-left:var(--space-6)}.prose li+li{margin-top:var(--space-2)}.prose img{border-radius:var(--radius-md);margin-inline:auto}.prose figure{margin-inline:0}.prose figcaption{margin-top:var(--space-3);font-size:var(--text-md);color:var(--color-text-muted);text-align:center}.prose blockquote{padding:var(--space-1) 0 var(--space-1) var(--space-5);border-left:3px solid var(--brand-300);color:var(--gray-600)}.prose table{border-collapse:collapse;width:100%;font-size:var(--text-base)}.prose th,.prose td{border:1px solid var(--color-border);padding:var(--space-2) var(--space-3)}.empty{padding:var(--space-12) var(--space-6);text-align:center;border:1px dashed var(--gray-300);border-radius:var(--radius-xl);background:var(--color-surface)}.empty__text{color:var(--color-text-muted);max-width:46ch;font-size:var(--text-base);margin-inline:auto}.stat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-xs)}.avatar{border-radius:var(--radius-full);background:var(--brand-50);object-fit:cover;aspect-ratio:1;flex:none}.facts{gap:var(--space-4);display:grid}.spinner{width:var(--icon-sm);height:var(--icon-sm);border-radius:var(--radius-full);border:2px solid;border-right-color:#0000;animation:.65s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2s}}.dialog{width:100%;max-width:none;height:100%;max-height:none;padding:var(--space-4);opacity:0;transition:opacity var(--duration) var(--ease), display var(--duration) var(--ease) allow-discrete, overlay var(--duration) var(--ease) allow-discrete;background:0 0;border:0;place-items:center;display:none;position:fixed;inset:0;overflow:hidden}.dialog[open]{opacity:1;display:grid}@starting-style{.dialog[open]{opacity:0}}.dialog::backdrop{-webkit-backdrop-filter:blur(4px);opacity:0;transition:opacity var(--duration) var(--ease), display var(--duration) var(--ease) allow-discrete, overlay var(--duration) var(--ease) allow-discrete;background:#0a1b2e80}.dialog[open]::backdrop{opacity:1}@starting-style{.dialog[open]::backdrop{opacity:0}}html:has(dialog[open]){overflow:hidden}.dialog__panel{width:100%;max-width:var(--dialog-width);max-height:calc(100dvh - var(--space-16));background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-floating);border:1px solid var(--color-border);transition:transform var(--duration) var(--ease-out);flex-direction:column;display:flex;overflow:hidden}.dialog--sm{--dialog-width:var(--dialog-sm)}.dialog--md{--dialog-width:var(--dialog-md)}.dialog--lg{--dialog-width:var(--dialog-lg)}@media (width>=640px){@starting-style{.dialog[open] .dialog__panel{transform:translateY(.75rem)scale(.985)}}}.dialog__header{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-5) var(--space-4);border-bottom:1px solid var(--color-border);flex:none;display:flex}.dialog__title{min-width:0;font-size:var(--text-lg);color:var(--brand-900);text-overflow:ellipsis;margin:0;font-weight:700;overflow:hidden}.dialog__close{width:var(--control-height-sm);height:var(--control-height-sm);margin-right:calc(var(--space-2) * -1);border-radius:var(--radius-full);color:var(--gray-500);transition:background var(--duration-fast) var(--ease), color var(--duration-fast) var(--ease);flex:none;place-items:center;display:grid}.dialog__close:hover{background:var(--gray-100);color:var(--gray-800)}.dialog__body{min-height:0;padding:var(--space-5);overscroll-behavior:contain;flex:auto;overflow-y:auto}.dialog__footer{justify-content:flex-end;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border);background:var(--color-surface-sunken);flex:none;display:flex}@media (width<=639px){.dialog--sheet{align-items:end;padding:0}.dialog--sheet .dialog__panel{max-width:none;max-height:calc(100dvh - var(--space-10));border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding-bottom:env(safe-area-inset-bottom)}@starting-style{.dialog[open] .dialog__panel{transform:translateY(.75rem)scale(.985)}.dialog--sheet[open] .dialog__panel{transform:translateY(100%)scale(1)}}.dialog--sheet .dialog__header:before{content:"";top:var(--space-2);border-radius:var(--radius-full);background:var(--gray-200);width:2.25rem;height:.25rem;position:absolute;left:50%;translate:-50%}.dialog--sheet .dialog__header{padding-top:var(--space-5);position:relative}.dialog--sheet .dialog__footer{flex-wrap:wrap}.dialog--sheet .dialog__footer .btn{flex:8rem;justify-content:center}}@media (prefers-reduced-motion:reduce){.dialog,.dialog::backdrop,.dialog__panel{transition-duration:1ms}}.imp-bar{justify-content:center;align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-2) var(--space-4);background:var(--accent-700);color:var(--gray-0);font-size:var(--text-sm);text-align:center;flex-wrap:wrap;line-height:1.4;display:flex}.imp-bar__text{margin:0}.imp-bar__btn{min-height:2rem;padding:0 var(--space-3);border-radius:var(--radius-sm);color:inherit;font:inherit;cursor:pointer;background:0 0;border:1px solid #ffffff8c;font-weight:700}.imp-bar__btn:hover{background:#ffffff1f}.imp-bar__btn:focus-visible{outline:2px solid var(--gray-0);outline-offset:2px}.input,.select,.textarea{width:100%;min-height:var(--control-height);border:1px solid var(--color-border);border-radius:var(--radius);background-color:var(--color-surface);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-md);box-shadow:var(--shadow-xs);transition:border-color var(--duration-fast) var(--ease), box-shadow var(--duration-fast) var(--ease), background-color var(--duration-fast) var(--ease);padding:.625rem .875rem}.input::placeholder,.textarea::placeholder{color:var(--color-text-subtle)}.input:hover:not(:disabled),.select:hover:not(:disabled),.textarea:hover:not(:disabled){border-color:var(--gray-300)}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px rgb(var(--brand-700-rgb) / 14%);outline:none}.input:disabled,.select:disabled,.textarea:disabled{background-color:var(--color-surface-sunken);color:var(--color-text-subtle);cursor:not-allowed;box-shadow:none}.input[aria-invalid=true],.textarea[aria-invalid=true],.select[aria-invalid=true]{border-color:var(--accent-500)}.input[aria-invalid=true]:focus,.textarea[aria-invalid=true]:focus,.select[aria-invalid=true]:focus{box-shadow:0 0 0 3px rgb(var(--accent-600-rgb) / 14%)}.input[type=search]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");background-position:.75rem;background-repeat:no-repeat;padding-left:2.25rem}.input[type=search]::-webkit-search-cancel-button{appearance:none;width:var(--icon-xs);height:var(--icon-xs);cursor:pointer;opacity:.7;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E") 50%/contain no-repeat}.input[type=search]::-webkit-search-cancel-button:hover{opacity:1}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 11 7'%3E%3Cpath fill='none' stroke='%2364748b' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' d='M1 1l4.5 4.5L10 1'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;padding-right:2.25rem}.input[type=number]{font-variant-numeric:tabular-nums}.textarea{resize:vertical;min-height:8.5rem;line-height:var(--leading-normal)}.field{display:block}.field+.field{margin-top:var(--space-5)}.field__label{margin-bottom:var(--space-2);font-weight:600;font-size:var(--text-md);letter-spacing:var(--tracking-label);color:var(--gray-800);display:block}.field__hint{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.5;display:block}.field__error{align-items:flex-start;gap:var(--space-1);margin-top:var(--space-2);font-size:var(--text-sm);color:var(--accent-700);font-weight:550;display:flex}.check{align-items:flex-start;gap:var(--space-3);cursor:pointer;padding:var(--space-1) 0;border-radius:var(--radius-sm);display:flex}.check+.check{margin-top:2px}.chip{align-items:center;gap:var(--space-2);min-height:var(--control-height-sm);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);color:var(--gray-700);font-size:var(--text-sm);cursor:pointer;box-shadow:var(--shadow-xs);transition:all var(--duration-fast) var(--ease);padding:.375rem .875rem;font-weight:550;display:inline-flex;position:relative}.chip:hover{border-color:var(--brand-300);color:var(--brand-800);box-shadow:var(--shadow-sm)}.chip input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.chip:has(input:checked),.chip.is-on{background:var(--brand-700);border-color:var(--brand-700);color:#fff}.chip:has(input:checked):hover,.chip.is-on:hover{color:#fff;background:var(--brand-800)}.chip:has(input:checked):before,.chip.is-on:before{content:"";background:currentColor;flex:none;width:.8125em;height:.8125em;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m20 6-11 11-5-5'/%3E%3C/svg%3E") 50%/contain no-repeat}button.chip:disabled{cursor:not-allowed;opacity:.45;box-shadow:none;text-decoration:line-through}.combobox__control{min-height:var(--control-height);padding:.1875rem var(--space-2);gap:var(--space-1);box-shadow:var(--shadow-xs);transition:border-color var(--duration-fast) var(--ease), box-shadow var(--duration-fast) var(--ease)}.combobox__control:focus-visible,.combobox__control.is-open{border-color:var(--brand-500);box-shadow:0 0 0 3px rgb(var(--brand-700-rgb) / 14%)}.combobox__token{font-size:var(--text-sm);background:var(--brand-50);border-color:var(--brand-100);border-radius:var(--radius-sm);padding:.1875rem .5rem;font-weight:550;line-height:1.3}.combobox__menu{border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-floating);top:calc(100% + 6px)}.input[type=file]{cursor:pointer;padding:.3125rem}.input[type=file]::file-selector-button{margin-right:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-sunken);color:var(--gray-700);font-weight:600;font-size:var(--text-sm);cursor:pointer;transition:background-color var(--duration-fast) var(--ease);padding:.375rem .8125rem}.input[type=file]::file-selector-button:hover{background:var(--gray-100);border-color:var(--gray-300)}@media (width>=1000px){.filter-panel{grid-area:1/2}}.filter-panel{z-index:var(--z-sticky);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);flex-direction:column;display:flex;position:relative}@media (width>=1000px){.filter-panel{top:var(--space-4);position:sticky}@media (height<=830px){.filter-panel{max-height:calc(100dvh - var(--space-8))}}}.filter-panel .field__hint{display:none}.filter-panel .field__label{font-size:var(--text-sm);letter-spacing:var(--tracking-label);color:var(--gray-500);transition:color var(--duration-fast) var(--ease);align-items:center;gap:.375rem;margin-bottom:.4375rem;font-weight:600;line-height:1.2;display:flex}.filter-panel .field:has(.is-set) .field__label,.filter-panel__combo.is-set .field__label{color:var(--brand-700)}.filter-panel .combobox__control{border-radius:var(--radius-md);background:var(--color-surface-sunken);min-height:2.75rem;box-shadow:none;transition:border-color var(--duration-fast) var(--ease), background-color var(--duration-fast) var(--ease), box-shadow var(--duration-fast) var(--ease);border-color:#0000;padding:0 .5rem 0 .875rem}.filter-panel .combobox__control:hover{background-color:var(--gray-100)}.filter-panel .combobox__control:focus-visible,.filter-panel .combobox__control.is-open{background-color:var(--color-surface);border-color:var(--brand-500);box-shadow:0 0 0 3px rgb(var(--brand-700-rgb) / 12%)}.filter-panel .combobox__value{font-size:var(--text-base);letter-spacing:var(--tracking-base);font-weight:550}.filter-panel .combobox__text.is-placeholder,.filter-panel .combobox__placeholder{color:var(--gray-600);font-weight:500}.filter-panel .combobox__clear,.filter-panel .combobox__indicator{width:1.375rem;height:1.375rem}.filter-panel .combobox__menu{z-index:var(--z-dropdown)}.filter-panel .combobox__fallback{border-radius:var(--radius-md);background-color:var(--color-surface-sunken);width:100%;max-width:100%;min-height:2.75rem;font-size:var(--text-base);box-shadow:none;border-color:#0000;padding:0 .875rem;font-weight:550}.filter-panel select.combobox__fallback{cursor:pointer;padding-right:2.25rem}@media (width<=999px){html.filter-sheet-open{overflow:hidden}@keyframes filter-sheet-in{0%{opacity:0;transform:translateY(1.5rem)}to{opacity:1;transform:none}}}.sheet{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.intro-fold{position:relative}.intro-fold.is-folded{max-height:18rem;transition:max-height var(--duration-slow) var(--ease);overflow:hidden}.intro-fold.is-folded:after{content:"";inset-inline:0;height:var(--space-16);background:linear-gradient(to bottom, transparent, var(--color-surface));opacity:1;transition:opacity var(--duration) var(--ease);pointer-events:none;position:absolute;bottom:0}.intro-fold.is-open:after{opacity:0}.contact-reveal{gap:var(--space-3);display:grid}.contact-reveal__error{font-size:var(--text-sm);color:var(--accent-700);text-align:center;margin:0}.contact-reveal__note{font-size:var(--text-sm);color:var(--color-text-subtle);text-align:center;margin:0}.freetime{--cell:1fr;grid-template-columns:minmax(4.75rem, auto) repeat(7, var(--cell));gap:var(--space-1);font-size:var(--text-md);min-width:24rem;display:grid}.freetime__scroll{padding-bottom:var(--space-2);position:relative;overflow-x:auto}.freetime__head,.freetime__row-label{padding:var(--space-2) var(--space-1);font-size:var(--text-sm);color:var(--color-text-muted);place-items:center;font-weight:600;display:grid}.freetime__row-label{white-space:nowrap;place-items:center start}.freetime__cell{min-height:var(--control-height);border-radius:var(--radius-sm);background:var(--color-surface-sunken);border:1px solid var(--color-border);color:var(--gray-300);place-items:center;display:grid}.freetime__cell--on{background:var(--brand-fill);color:#fff;box-shadow:var(--bevel), 0 1px 2px rgb(var(--brand-900-rgb) / 16%);border-color:#0000}.freetime__cell--editable{cursor:pointer;transition:background-color var(--duration-fast) var(--ease)}.freetime__cell--editable:hover{background:var(--brand-100);color:var(--brand-500)}.freetime__cell--editable.freetime__cell--on:hover{background:var(--brand-700);color:#fff}.freetime__cell--editable:has(input:focus-visible){outline:2px solid var(--color-focus);outline-offset:1px}.freetime__cell input{opacity:0;pointer-events:none;position:absolute}.step{padding:var(--space-6) var(--space-6) var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.admin-nav{gap:2px;display:grid}.admin-nav__section{margin-top:var(--space-5);padding:0 var(--space-3) var(--space-2);font-size:var(--text-xs);letter-spacing:var(--tracking-label);color:var(--color-text-subtle);font-weight:650}.admin-nav__section:first-child{margin-top:0}.admin-nav__link{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--gray-600);font-weight:550;font-size:var(--text-md);transition:all var(--duration-fast) var(--ease);text-decoration:none;display:flex}.admin-nav__link:hover{background:rgb(var(--brand-700-rgb) / 6%);color:var(--brand-800)}.admin-nav__link[aria-current=page]{background:var(--brand-fill);color:#fff;box-shadow:var(--bevel), 0 1px 2px rgb(var(--brand-900-rgb) / 18%);font-weight:600}.admin-nav__link svg{opacity:.75;flex:none;width:1.0625rem;height:1.0625rem}.admin-nav__link--promo{background:var(--green-50);color:var(--green-700);box-shadow:inset 2px 0 0 var(--green-500)}.admin-nav__link--promo svg,.admin-nav__link[aria-current=page] svg{opacity:1}.admin-nav__badge{margin-left:auto}.plan{gap:var(--space-5);padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);flex-direction:column;display:flex;position:relative}.combobox{position:relative}.combobox__control{align-items:center;gap:var(--space-2);min-height:var(--control-height);padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);cursor:pointer;user-select:none;transition:border-color .12s,box-shadow .12s;display:flex}.combobox__control:hover{border-color:var(--color-border-strong)}.combobox__control:focus-visible,.combobox__control.is-open{border-color:var(--brand-500);box-shadow:0 0 0 3px rgb(var(--brand-700-rgb) / 10%);outline:none}.combobox__value{align-items:center;gap:var(--space-2);min-width:0;font-size:var(--text-base);flex-wrap:wrap;flex:auto;line-height:1.3;display:flex}.combobox__text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.combobox__text.is-placeholder,.combobox__placeholder{color:var(--color-text-subtle)}.combobox__token{align-items:center;gap:var(--space-1);border-radius:var(--radius-full);background:var(--brand-50);border:1px solid var(--brand-100);color:var(--brand-700);font-size:var(--text-md);padding:.125rem .25rem .125rem .5625rem;font-weight:500;display:inline-flex}.combobox__token button{width:var(--icon);height:var(--icon);border-radius:var(--radius-full);color:var(--brand-400);place-items:center;display:grid}.combobox__token button:hover{background:var(--brand-100);color:var(--brand-800)}.combobox__search{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);flex:none;display:flex}.combobox__search-icon{color:var(--color-text-subtle);flex:none}.combobox__input{min-width:0;padding:var(--space-1) 0;font-size:var(--text-base);color:var(--color-text);background:0 0;border:none;outline:none;flex:1}.combobox__input::placeholder{color:var(--color-text-subtle)}.combobox__input:disabled{cursor:not-allowed}.combobox__indicator{cursor:pointer}.combobox__spinner{border:2px solid var(--brand-100);border-top-color:var(--brand-500);border-radius:var(--radius-full);flex:none;width:1rem;height:1rem;margin:0 .25rem;animation:.7s linear infinite combobox-spin}@keyframes combobox-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.combobox__spinner{animation-duration:1.6s}}.combobox__menu{z-index:var(--z-dropdown);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:max(100%,18rem);min-width:min(100%,18rem);max-width:calc(100vw - 2rem);max-height:min(22rem,60vh);box-shadow:var(--shadow-lg);flex-direction:column;display:flex;position:absolute;top:calc(100% + 6px);left:0;overflow:hidden}.combobox__list{overscroll-behavior:contain;min-height:0;padding:var(--space-1);flex:auto;overflow-y:auto}.combobox__heading{padding:var(--space-2) var(--space-3) var(--space-1);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-subtle);font-weight:600}.combobox__option{align-items:baseline;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);text-align:left;font-size:var(--text-md);color:var(--gray-700);display:flex}.combobox__option-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.combobox__option-name mark{color:var(--brand-800);background:0 0;font-weight:700}.combobox__option-hint{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:45%;font-size:var(--text-xs);color:var(--color-text-subtle);flex:0 auto;overflow:hidden}.combobox__option-check{width:1rem;height:1rem;color:var(--brand-600);visibility:hidden;flex:none;align-self:center;place-items:center;display:grid}.combobox__option:hover,.combobox__option.is-active{background:var(--brand-50);color:var(--brand-800)}.combobox__option.is-active .combobox__option-hint{color:var(--brand-500)}.combobox__option.is-selected{font-weight:600}.combobox__option.is-selected .combobox__option-check{visibility:visible}.combobox__clear,.combobox__indicator{border-radius:var(--radius-full);width:1.5rem;height:1.5rem;color:var(--color-text-subtle);flex:none;place-items:center;transition:transform .12s;display:grid}.combobox__control.is-open .combobox__indicator{color:var(--brand-500);transform:rotate(180deg)}.combobox__clear{cursor:pointer}.combobox__clear:hover{background:var(--color-surface-sunken);color:var(--gray-800)}.combobox__empty{padding:var(--space-4) var(--space-3);font-size:var(--text-md);color:var(--color-text-muted);text-align:center}.editor{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-xs);overflow:hidden}.offerings{margin:0 0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0;list-style:none;overflow:hidden}@keyframes offering-flash{0%,40%{background:var(--brand-50)}to{background:var(--color-surface)}}@media print{.site-header,.site-footer,.filter-panel,.btn,.pagination{display:none!important}body{background:#fff}.card,.teacher-card{box-shadow:none;border-color:#ccc}}.atlas-search{z-index:var(--z-sticky);margin-inline:calc(var(--space-4) * -1);padding:var(--space-4);background:var(--color-bg);border-bottom:1px solid var(--color-border);position:sticky;top:0}.atlas-index{gap:var(--space-4);padding-top:var(--space-8);align-items:start;display:grid}.atlas-is-out{display:none!important}@media (width<=639px){.atlas-search{margin-inline:calc(var(--space-3) * -1);padding:var(--space-3)}}:root{--mk-ground:#fbfbf9;--mk-band:#f3f3ee;--mk-surface:#fff;--mk-sunken:#efefe8;--mk-ink:#121826;--mk-ink-body:#2c3240;--mk-ink-2:#424957;--mk-muted:#667085;--mk-faint:#8a92a3;--mk-icon:#98a2b3;--mk-line:#e5e5dc;--mk-line-soft:#efefe8;--mk-line-chip:#d9d9cd;--mk-line-strong:#d1d1c4;--mk-line-hover:#c9c9bb;--mk-red:#e0143a;--mk-red-hover:#c40e30;--mk-red-tint:#fdf2f4;--mk-red-tint-2:#f8d7de;--mk-red-line:#f3a5b4;--mk-red-text:#b00f2e;--mk-deep:#101623;--mk-deep-line:#222b3d;--mk-deep-text:#aab1bf;--mk-deep-text-2:#e7e9ee;--mk-red-on-deep:#ff4d6d;--mk-check-on-deep:#ff8aa0;--mk-avatar-bg:#dbe7f3;--mk-avatar-ink:#1d4a74;--mk-doodle:#1d4a74;--mk-doodle-tint:#ffe27a;--mk-shadow-search:0 18px 44px -14px #12182624, 0 2px 6px #1218260a;--mk-shadow-card-hover:0 8px 28px -10px #12182624;--mk-shadow-pop:0 22px 48px -12px #12182638;--mk-shadow-aside:0 18px 44px -18px #1218262e;--mk-container:1240px;--mk-gutter:24px;--mk-font:"Plus Jakarta Sans", "Segoe UI", system-ui, -apple-system, sans-serif}@media (width<=767px){:root{--mk-gutter:16px}}body{font-family:var(--mk-font);color:var(--mk-ink);background:var(--mk-ground);-webkit-font-smoothing:antialiased}.mk-ui,.mk-ui *,.mk-ui :before,.mk-ui :after{box-sizing:revert}.mk-ui{letter-spacing:normal;font-feature-settings:normal;color:var(--mk-ink);font-size:16px;line-height:normal}.mk-ui :where(h1,h2,h3,h4,h5,h6){letter-spacing:normal;color:inherit;text-wrap:wrap;font-family:inherit;font-weight:700;line-height:normal}.mk-ui :where(a){color:var(--mk-ink);text-underline-offset:auto;text-decoration-color:currentColor;text-decoration-thickness:auto;transition:none}.mk-ui :where(a:hover){color:var(--mk-red)}.mk-ui :where(input,textarea)::placeholder{color:var(--mk-faint);opacity:1}.mk-ui :focus-visible{outline:2px solid var(--mk-ink);outline-offset:2px}.site-header{z-index:40;backdrop-filter:blur(10px);border-bottom:1px solid var(--mk-line);background:#fbfbf9f0;position:relative}.site-header__inner{height:64px;max-width:var(--mk-container);justify-content:space-between;align-items:center;gap:24px;margin:0 auto;padding:0 16px;display:flex}.site-header__inner--wide{max-width:var(--container-wide)}.site-logo{color:var(--mk-ink);--logo-size:19px;align-items:center;text-decoration:none;display:flex}.site-logo:hover{color:var(--mk-ink)}.site-nav,.site-header__actions{display:none}.site-nav{align-items:center;gap:36px}.site-nav__link{color:var(--mk-ink-2);font-size:16px;font-weight:600;text-decoration:none}.site-nav__link:hover{color:var(--mk-ink)}.site-nav__link[aria-current=page]{color:var(--mk-ink);text-decoration:underline;text-decoration-color:var(--mk-red);text-underline-offset:8px;font-weight:700;text-decoration-thickness:2px}.site-header__actions{align-items:center;gap:12px}.site-header__login{color:var(--mk-ink-2);padding:12px;font-size:16px;font-weight:600;text-decoration:none}.site-header__login:hover{color:var(--mk-ink)}.site-header__logout{width:44px;height:44px;color:var(--mk-ink-2);border-radius:10px;place-items:center;display:inline-grid}.site-header__logout:hover{color:var(--mk-ink);background:var(--mk-band)}.menu-toggle{border:1.5px solid var(--mk-line-strong);background:var(--mk-surface);width:44px;height:44px;color:var(--mk-ink);cursor:pointer;border-radius:10px;place-items:center;padding:0;display:grid}@media (width>=960px){.site-header{backdrop-filter:saturate(1.4)blur(10px);background:#fbfbf9eb}.site-header__inner{height:72px;padding:0 24px}.site-logo{--logo-size:21px}.site-nav,.site-header__actions{display:flex}.menu-toggle{display:none}:root{--header-height:72px}}.mobile-menu{z-index:39;background:var(--mk-ground);border-top:1px solid var(--mk-line);min-height:calc(100dvh - 64px);padding:16px 16px 32px;position:absolute;top:100%;left:0;right:0}@media (width>=960px){.mobile-menu{display:none!important}}.mobile-menu__link{border-bottom:1px solid var(--mk-line);letter-spacing:-.02em;min-height:60px;color:var(--mk-ink);justify-content:space-between;align-items:center;font-size:22px;font-weight:800;text-decoration:none;display:flex}.mobile-menu__link:after{content:"→";color:var(--mk-icon);font-weight:600}.mobile-menu__link[aria-current=page]{color:var(--mk-red)}.mobile-menu__actions{flex-direction:column;gap:12px;margin-top:28px;display:flex}.mobile-menu__button{border:1.5px solid var(--mk-line-strong);background:var(--mk-surface);min-height:52px;color:var(--mk-ink);border-radius:12px;justify-content:center;align-items:center;font-size:17px;font-weight:700;text-decoration:none;display:flex}button.mobile-menu__button:hover{color:var(--color-link-hover)}.mobile-menu__button--dark{border-color:var(--mk-ink);background:var(--mk-ink);color:#fff}.mobile-menu__button--dark:hover{color:#fff}.mobile-menu__section{margin-top:24px}.mobile-menu__heading{color:var(--mk-muted);margin:0 0 8px;font-size:14px;font-weight:700}.mobile-menu__section .admin-nav__link{min-height:48px;padding-inline:0}.site-footer{isolation:isolate;background:var(--mk-deep);color:var(--mk-deep-text);position:relative}.site-footer:before{content:"";z-index:-1;background-color:var(--mk-deep-text);opacity:.06;pointer-events:none;position:absolute;inset:0;-webkit-mask:url(/doodles/pattern.svg) 0 0/360px;mask:url(/doodles/pattern.svg) 0 0/360px}.site-footer__inner{max-width:var(--mk-container);margin:0 auto;padding:48px 16px 28px}.site-footer__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.site-footer__brand{flex-direction:column;grid-column:1/-1;gap:16px;margin-bottom:12px;display:flex}.site-footer .site-footer__logo{color:#fff;--logo-size:19px;--logo-accent:var(--mk-red-on-deep);align-self:flex-start;align-items:center;text-decoration:none;display:flex}.site-footer__about{max-width:40ch;margin:0;font-size:15px;line-height:1.6}.site-footer__social{gap:16px;font-size:15px;display:flex}.site-footer__nav{flex-direction:column;display:flex}.site-footer__heading{color:#fff;margin:0 0 6px;font-size:15px;font-weight:700}.site-footer__nav ul{margin:0;padding:0;list-style:none}.site-footer a{color:var(--mk-deep-text);text-decoration:none}.site-footer a:hover{color:#fff}.site-footer__nav a{align-items:center;min-height:44px;font-size:15px;display:flex}.site-footer__bottom{border-top:1px solid var(--mk-deep-line);flex-direction:column-reverse;gap:8px;margin-top:32px;padding-top:20px;font-size:14px;display:flex}.site-footer__bottom p{margin:0}@media (width>=768px){.site-footer__inner{padding:72px 24px 32px}.site-footer__grid{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:48px}.site-footer__brand{grid-column:span 2;gap:18px;margin-bottom:0}.site-footer .site-footer__logo{--logo-size:21px}.site-footer__about{line-height:1.65}.site-footer__nav{gap:4px}.site-footer__heading{margin-bottom:10px}.site-footer__nav ul{flex-direction:column;gap:4px;display:flex}.site-footer__nav a{min-height:36px}.site-footer__bottom{flex-flow:wrap;justify-content:space-between;gap:12px;margin-top:56px;padding-top:24px}}.mk-wrap{max-width:var(--mk-container);padding-inline:var(--mk-gutter);margin-inline:auto}.mk-btn{min-height:44px;font:inherit;white-space:nowrap;cursor:pointer;border:0;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:15px;font-weight:700;line-height:1.2;text-decoration:none;transition:border-color .16s,background-color .16s,color .16s;display:inline-flex}.mk-btn--line{border:1.5px solid var(--mk-line-strong);background:var(--mk-surface);color:var(--mk-ink)}.mk-btn--line:hover{border-color:var(--mk-ink);color:var(--mk-ink)}.mk-btn--ink{border:1.5px solid var(--mk-ink);color:var(--mk-ink);background:0 0}.mk-btn--ink:hover{color:var(--mk-ink);background:var(--mk-surface)}.mk-btn--red{background:var(--mk-red);color:#fff}.mk-btn--red:hover{background:var(--mk-red-hover);color:#fff}.mk-btn--lg{border-radius:12px;min-height:52px;padding:0 22px;font-size:16px}.mk-btn--block{width:auto;display:flex}.site-header__actions .mk-btn{font-size:16px}.site-header__actions .mk-btn--ink{background:var(--mk-surface)}.mk-btn :is(svg){flex:none}.mk-crumbs{color:var(--mk-muted);flex-wrap:wrap;gap:8px;font-size:14px;display:flex}.mk-crumbs a{color:var(--mk-muted);text-decoration:none}.mk-crumbs a:hover{color:var(--mk-ink)}.mk-crumbs [aria-current=page]{color:var(--mk-ink);font-weight:600}.mk-intro{padding-top:20px}.mk-intro__row{flex-wrap:wrap;align-items:baseline;gap:6px 20px;margin-top:14px;display:flex}.mk-intro__title{letter-spacing:-.045em;color:var(--mk-ink);margin:0;font-size:36px;font-weight:800;line-height:1.05}.mk-intro__count{color:var(--mk-ink-2);margin:0;font-size:16px}.mk-intro__count strong{color:var(--mk-ink)}@media (width>=768px){.mk-intro{padding-top:32px}.mk-intro__row{margin-top:18px}.mk-intro__title{font-size:clamp(36px,4vw,52px)}.mk-intro__count{font-size:18px}}.mk-intro__doodles{display:none}@media (width>=960px){.mk-intro--doodles{position:relative}.mk-intro--doodles .mk-intro__row{padding-right:210px}.mk-intro__doodles{width:180px;height:96px;display:block;position:absolute;bottom:12px;right:8px}.mk-intro__doodles>*{position:absolute}.mk-intro__spot{--spot-size:96px;top:0;left:0}.mk-intro__loose{--doodle-size:62px;top:30px;right:0;rotate:10deg}}.mk-shead{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.mk-h2{letter-spacing:-.04em;color:var(--mk-ink);margin:0;font-size:30px;font-weight:800;line-height:1.1}@media (width>=768px){.mk-shead{margin-bottom:36px}.mk-h2{font-size:clamp(32px,3.4vw,44px);line-height:1.08}}.tcard{background:var(--mk-surface);border:1px solid var(--mk-line);color:var(--mk-ink);border-radius:18px;flex-direction:column;gap:12px;padding:16px;text-decoration:none;transition:border-color .16s,box-shadow .16s;display:flex}.tcard:hover{border-color:var(--mk-line-hover);box-shadow:var(--mk-shadow-card-hover);color:var(--mk-ink)}.tcard:hover .tcard__name{text-underline-offset:3px;text-decoration:underline 2px}.tcard__top{align-items:center;gap:14px;display:flex}.tcard__photo{object-fit:cover;background:var(--mk-band);border-radius:14px;flex:none;width:88px;height:88px}.tcard__photo--initials{background:var(--mk-avatar-bg);color:var(--mk-avatar-ink);letter-spacing:-.03em;place-items:center;font-size:32px;font-weight:800;display:grid}.tcard__identity{flex-direction:column;gap:5px;min-width:0;display:flex}.tcard__name{letter-spacing:-.025em;color:var(--mk-ink);margin:0;font-size:18px;font-weight:800;line-height:1.2}.tcard__price{color:var(--mk-muted);margin:0;font-size:14px}.tcard__price strong{color:var(--mk-ink);font-variant-numeric:tabular-nums;font-size:17px;font-weight:800}.tcard__town{color:var(--mk-ink-2);align-items:center;gap:6px;margin:0;font-size:14px;display:flex}.tcard__pin{color:var(--mk-muted);flex:none;display:none}.tcard__places{flex-wrap:wrap;gap:6px;margin:0;display:flex}.tcard__place{background:var(--mk-band);height:28px;color:var(--mk-ink-2);border-radius:8px;align-items:center;padding:0 10px;font-size:13px;font-weight:700;display:inline-flex}.tcard__subjects{color:var(--mk-ink);margin:0;font-size:15px;font-weight:700;line-height:1.45}.tcard__more{color:var(--mk-muted);font-weight:600}.tcard__third,.tcard__more--desktop{display:none}.tcard__intro{color:var(--mk-ink-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:14px;line-height:1.55;display:-webkit-box;overflow:hidden}@media (width<=767px){.tcard--lg{gap:14px;padding:18px}.tcard--lg .tcard__photo{width:96px;height:96px}.tcard--lg .tcard__identity{gap:6px}.tcard--lg .tcard__name{font-size:19px}.tcard--lg .tcard__intro{font-size:15px}}@media (width>=768px){.tcard{gap:16px;padding:20px}.tcard__top{gap:18px}.tcard__photo{width:112px;height:112px}.tcard__photo--initials{font-size:40px}.tcard__identity{gap:7px}.tcard__name{font-size:20px}.tcard__price{font-size:15px}.tcard__price strong{font-size:18px}.tcard__town{font-size:15px}.tcard__pin{display:block}.tcard__places{gap:8px}.tcard__place{height:30px;padding:0 12px}.tcard__third,.tcard__more--desktop{display:inline}.tcard__more--mobile{display:none}.tcard__intro{font-size:15px;line-height:1.6}.tcard--lg{gap:18px;padding:22px}.tcard--lg .tcard__photo{width:120px;height:120px}.tcard--lg .tcard__identity{gap:8px}.tcard--lg .tcard__name{font-size:21px}.tcard--lg .tcard__price strong{font-size:19px}.tcard--lg .tcard__intro{-webkit-line-clamp:3}}.pcard{background:var(--mk-surface);border:1px solid var(--mk-line);color:var(--mk-ink);border-radius:18px;flex-direction:column;text-decoration:none;transition:border-color .16s,box-shadow .16s;display:flex;overflow:hidden}.pcard:hover{border-color:var(--mk-line-hover);box-shadow:var(--mk-shadow-card-hover);color:var(--mk-ink)}.pcard:hover .pcard__title{text-underline-offset:4px;text-decoration:underline 2px}.pcard__image{aspect-ratio:40/21;object-fit:cover;background:var(--mk-band);width:100%;height:auto;display:block}.pcard__image--empty{place-items:center;display:grid}.pcard__doodle{--spot-size:min(96px, 60%)}.pcard__body{flex-direction:column;gap:8px;padding:16px 18px 20px;display:flex}.pcard__title{letter-spacing:-.02em;color:var(--mk-ink);margin:0;font-size:19px;font-weight:800;line-height:1.25}.pcard__meta{color:var(--mk-muted);margin:0;font-size:13px}.pcard__excerpt{color:var(--mk-ink-2);margin:0;font-size:15px;line-height:1.55}@media (width>=768px){.pcard__body{gap:10px;padding:22px 24px 26px}.pcard__title{font-size:21px}.pcard__meta{font-size:14px}.pcard__excerpt{line-height:1.6}}.mk-sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.mk-field{flex-direction:column;gap:8px;min-width:0;display:flex}.mk-field .field__label{letter-spacing:normal;text-transform:none;color:var(--mk-ink);margin:0;font-size:14px;font-weight:700}.mk-field .combobox__control{border:1.5px solid var(--mk-line-strong);background:var(--mk-surface);height:56px;min-height:0;box-shadow:none;color:var(--mk-ink);border-radius:12px;align-items:center;gap:12px;padding:0 16px;font-size:17px;display:flex}.mk-field .combobox__control:hover{border-color:var(--mk-line-strong)}.mk-field .combobox__control:focus-visible,.mk-field .combobox__control.is-open{border-color:var(--mk-ink);box-shadow:none;outline:none}.mk-field__icon{color:var(--mk-muted);flex:none}.mk-field .combobox__value{flex:1;min-width:0}.mk-field .combobox__text{color:var(--mk-ink);padding-left:2px;font-size:17px}.mk-field .combobox__text.is-placeholder{color:var(--mk-faint)}.mk-field .combobox__indicator{display:none}.mk-field .combobox__clear{color:var(--mk-muted)}.mk-field .combobox__menu{border:1px solid var(--mk-line);width:100%;min-width:0;box-shadow:var(--mk-shadow-pop);background:var(--mk-surface);border-radius:14px;top:calc(100% + 8px)}.mk-field .combobox__search{border-bottom:1px solid var(--mk-line-soft);gap:10px;padding:14px 18px}.mk-field .combobox__search-icon{width:18px;height:18px;color:var(--mk-muted)}.mk-field .combobox__input{height:24px;color:var(--mk-ink);background:0 0;border:0;padding:0;font-size:16px}.mk-field .combobox__input:focus,.mk-field .combobox__input:focus-visible{box-shadow:none;outline:none}.mk-field .combobox__option-name{flex:auto}.mk-field .combobox__option-name mark{color:var(--mk-red);background:0 0;font-weight:800}.mk-field .combobox__option-check{color:var(--mk-red)}.mk-field .combobox__list{padding:8px}.mk-field .combobox__heading{letter-spacing:normal;text-transform:none;color:var(--mk-muted);margin:6px 12px 8px;padding:0;font-size:13px;font-weight:600}.mk-field .combobox__option{min-height:44px;color:var(--mk-ink);border-radius:10px;justify-content:space-between;align-items:center;padding:0 12px;font-size:16px;font-weight:600}.mk-field .combobox__option.is-active,.mk-field .combobox__option:hover{background:var(--mk-band)}.mk-field .combobox__option-hint{color:var(--mk-muted);font-size:14px;font-weight:500}html.no-js .mk-field .combobox{display:none}.mk-field .combobox__stand-in:focus-within{border-color:var(--mk-ink)}.mk-field .combobox__fallback{min-width:0;height:auto;min-height:0;box-shadow:none;appearance:none;font:inherit;color:var(--mk-ink);background:0 0;border:0;border-radius:0;outline:none;flex:1;align-self:stretch;margin:0;padding:0 0 0 2px}.mk-field .combobox__fallback::placeholder{color:var(--mk-faint);opacity:1}.mk-field select.combobox__fallback{cursor:pointer}.mk-field select.combobox__fallback:has(option[value=""]:checked){color:var(--mk-faint)}.mk-field select.combobox__fallback option{color:var(--mk-ink)}@media (width<=767px){.mk-field .combobox__control{height:54px;padding:0 14px;font-size:16px}.mk-field .combobox__text{font-size:16px}}.combobox__sheet-head{display:none}html.ss-lock{overflow:hidden}.combobox .combobox__menu.is-sheet{z-index:1000;width:auto;min-width:0;max-width:none;max-height:none;box-shadow:none;background:var(--mk-ground);font-family:var(--mk-font);letter-spacing:normal;border:0;border-radius:0;margin:0;position:fixed;inset:0}.combobox__menu.is-sheet .combobox__sheet-head{border-bottom:1px solid var(--mk-line);flex:none;align-items:center;gap:4px;height:64px;padding:0 8px;display:flex}.combobox__back{width:44px;height:44px;color:var(--mk-ink);border-radius:10px;place-items:center;display:grid}.combobox__back:hover{background:var(--mk-band)}.combobox__sheet-title{color:var(--mk-ink);font-size:17px;font-weight:700}.combobox .combobox__menu.is-sheet .combobox__search{box-sizing:border-box;border:1.5px solid var(--mk-ink);background:var(--mk-surface);border-radius:12px;flex:none;gap:12px;height:52px;margin:12px 16px 4px;padding:0 14px}.combobox__menu.is-sheet .combobox__search-icon{width:20px;height:20px;color:var(--mk-muted)}.combobox__menu.is-sheet .combobox__input{height:24px;color:var(--mk-ink);background:0 0;border:0;padding:0;font-size:17px}.combobox__menu.is-sheet .combobox__input:focus,.combobox__menu.is-sheet .combobox__input:focus-visible{box-shadow:none;outline:none}.combobox .combobox__menu.is-sheet .combobox__list{padding:8px 8px calc(16px + env(safe-area-inset-bottom));flex:auto}.combobox .combobox__menu.is-sheet .combobox__heading{letter-spacing:normal;text-transform:none;color:var(--mk-muted);margin:10px 12px 6px;padding:0;font-size:13px;font-weight:600}.combobox .combobox__menu.is-sheet .combobox__option{min-height:52px;color:var(--mk-ink);border-radius:10px;align-items:center;padding:0 12px;font-size:17px;font-weight:600}.combobox__menu.is-sheet .combobox__option.is-active,.combobox__menu.is-sheet .combobox__option:hover{background:var(--mk-band)}.combobox__menu.is-sheet .combobox__option-hint{color:var(--mk-muted);font-size:14px;font-weight:500}.combobox__option-hint{white-space:nowrap;flex:none}.mobile-menu__section .admin-nav{flex-direction:column;gap:0;display:flex}.mobile-menu__section .admin-nav__section{letter-spacing:normal;text-transform:none;color:var(--mk-muted);margin:18px 0 4px;padding:0;font-size:13px;font-weight:700}.mobile-menu__section .admin-nav__section:first-child{margin-top:0}.mobile-menu__section .admin-nav__link{min-height:48px;color:var(--mk-ink-2);background:0 0;border-radius:0;align-items:center;gap:14px;padding:0 4px;font-size:16px;font-weight:600;text-decoration:none;display:flex}.mobile-menu__section .admin-nav__link svg{opacity:1;width:20px;height:20px;color:var(--mk-muted)}.mobile-menu__section .admin-nav__link:hover{color:var(--mk-ink);background:0 0}.mobile-menu__section .admin-nav__link[aria-current=page]{box-shadow:none;color:var(--mk-ink);background:0 0;font-weight:800}.mobile-menu__section .admin-nav__link[aria-current=page] svg{color:var(--mk-red)}.mobile-menu__section .admin-nav__badge{background:var(--mk-red);color:#fff;font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;min-width:22px;height:22px;margin-left:auto;padding:0 7px;font-size:12px;font-weight:800;display:inline-grid}.mk-doodle{width:var(--doodle-size,64px);aspect-ratio:1;background-color:var(--mk-doodle);-webkit-mask:var(--doodle) center / contain no-repeat;mask:var(--doodle) center / contain no-repeat;pointer-events:none;user-select:none;display:block}.mk-doodle--tint{background-color:var(--mk-doodle-tint)}.mk-spot{width:var(--spot-size,96px);aspect-ratio:1;pointer-events:none;flex:none;display:block;position:relative}.mk-spot>.mk-doodle{position:absolute}.mk-spot__blob{--doodle-size:92%;top:8%;left:-4%;rotate:-12deg}.mk-spot__doodle{--doodle-size:88%;top:0;left:6%}.btn{transition:background-color var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease), color var(--duration-fast) var(--ease), box-shadow var(--duration-fast) var(--ease);transform:translateY(0)}.btn:active:not([disabled]){box-shadow:var(--shadow-xs)}.teacher-card{transition:box-shadow var(--duration) var(--ease), border-color var(--duration) var(--ease)}.teacher-card:hover{border-color:var(--brand-300)}.teacher-card:has(.teacher-card__link:focus-visible){border-color:var(--brand-400);box-shadow:var(--shadow-sm), 0 0 0 3px rgb(var(--brand-700-rgb) / 14%)}.chip{transition:all var(--duration-fast) var(--ease)}.alert[data-flash]{animation:flash-in var(--duration-slow) var(--ease-out) both}@keyframes flash-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes stagger-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@supports (animation-timeline:view()){.reveal{animation:linear both reveal-in view();animation-range:entry entry 32%}}@keyframes reveal-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes disclosure-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.route-progress{height:2px;z-index:var(--z-toast);pointer-events:none;background:0 0;position:fixed;top:0;left:0;right:0}.route-progress__bar{background:var(--accent-600);width:0;height:100%;transition:width .6s var(--ease-out), opacity var(--duration) var(--ease)}.route-progress[data-active=true] .route-progress__bar{width:82%}.route-progress[data-done=true] .route-progress__bar{opacity:0;width:100%}a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{z-index:1;position:relative}@media (prefers-reduced-motion:reduce){.teacher-card:hover{transform:none}.alert[data-flash],.reveal{animation:none}.route-progress__bar{transition:none}}
