/* ietüt app.css. Generated by design-system/build.sh; edit design-system/css. */
@font-face{font-family:Figtree;src:url(../fonts/figtree.1so7d7yvzq.woff2) format("woff2"),url(../fonts/figtree.woff2) format("woff2");font-weight:400 700;font-display:swap;unicode-range:U+0000-00FF,U+011E-011F,U+0130-0131,U+015E-015F,U+02C6,U+02DA,U+02DC,U+0307,U+2000-206F,U+20AC,U+2122,U+2190-2193,U+2212,U+2215,U+2248,U+2260,U+2264-2265,U+2713,U+FEFF,U+FFFD}
@font-face{font-family:Figtree;src:url(../fonts/figtree-ext.u4rhoxxi1w.woff2) format("woff2"),url(../fonts/figtree-ext.woff2) format("woff2");font-weight:400 700;font-display:swap;unicode-range:U+0100-011D,U+0120-012F,U+0132-015D,U+0160-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Bricolage Grotesque";src:url(../fonts/bricolage.qog7b22qn0.woff2) format("woff2"),url(../fonts/bricolage.woff2) format("woff2");font-weight:600 800;font-display:swap;unicode-range:U+0000-00FF,U+011E-011F,U+0130-0131,U+015E-015F,U+02C6,U+02DA,U+02DC,U+0307,U+2000-206F,U+20AC,U+2122,U+2190-2193,U+2212,U+2215,U+2248,U+2260,U+2264-2265,U+2713,U+FEFF,U+FFFD}
@font-face{font-family:"Bricolage Grotesque";src:url(../fonts/bricolage-ext.xa1e3fpx27.woff2) format("woff2"),url(../fonts/bricolage-ext.woff2) format("woff2");font-weight:600 800;font-display:swap;unicode-range:U+0100-011D,U+0120-012F,U+0132-015D,U+0160-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Mono";src:url(../fonts/plexmono-400.rwlp1uwdat.woff2) format("woff2"),url(../fonts/plexmono-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url(../fonts/plexmono-500.x6tzohwury.woff2) format("woff2"),url(../fonts/plexmono-500.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url(../fonts/plexmono-600.e3uxeq30fl.woff2) format("woff2"),url(../fonts/plexmono-600.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"STIX Two Text";src:url(../fonts/stix-italic.d3ux0bwg75.woff2) format("woff2"),url(../fonts/stix-italic.woff2) format("woff2");font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:"Figtree Fallback";src:local("Arial"),local("ArialMT");size-adjust:98.72%;ascent-override:96.23%;descent-override:25.32%;line-gap-override:0%}
@font-face{font-family:"Bricolage Fallback";src:local("Arial Bold"),local("Arial-BoldMT");font-weight:600 800;size-adjust:99.5%;ascent-override:93.47%;descent-override:27.14%;line-gap-override:0%}
:root{
--navy:#10243B;--blue:#2563EB;--blue-ink:#1D4ED8;--blue-bg:#EAF0FD;
--teal:#0D9488;--teal-ink:#0F766E;--teal-bg:#E3F3F0;
--amber:#F59E0B;--amber-ink:#8A4A0B;--amber-bg:#FDF1D8;
--red:#B42318;--red-bg:#FDECEA;
--grey-bg:#EEF2F6;--grey-dot:#8A97A8;
--paper:#F8FAFC;--surface:#FFFFFF;--line:#E3E8EF;--line-strong:#CBD5E1;--line-soft:#EEF2F6;
--text:#10243B;--text-2:#3F4E63;--text-3:#5E6B7D;--icon-off:#8A97A8;
--on-navy:#B9C7DA;--ring:#8FA3BF;
--grid:rgba(37,99,235,.08);
--font-ui:Figtree,"Figtree Fallback","Segoe UI",system-ui,sans-serif;
--font-head:"Bricolage Grotesque","Bricolage Fallback","Avenir Next",system-ui,sans-serif;
--font-mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
--font-math:"STIX Two Text","Cambria Math","Times New Roman",serif;
--r-sm:8px;--r:10px;--r-md:12px;--r-lg:14px;--r-card:20px;
--pad:16px;--side-w:240px;
--shadow:0 12px 32px rgba(16,36,59,.14);
color-scheme:light;
}
@media (min-width:52rem){:root{--pad:24px}}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--text);font:400 16px/1.5 var(--font-ui)}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure,fieldset{margin:0}
ul,ol{padding:0;list-style:none}
fieldset{border:0;padding:0;min-width:0}
img,svg{display:block;max-width:100%}
svg{flex:none}
.i{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--blue-ink);text-decoration:none}
a:hover{color:var(--navy);text-decoration:underline}
:is(h1,h2,h3,.h) a,.row-main>a,.table td:first-child>a{color:inherit}
h1,h2,h3,.h{font-family:var(--font-head);letter-spacing:-.02em;line-height:1.1}
h1{font-size:clamp(1.75rem,1.2rem + 2vw,2.5rem);font-weight:740}
h2{font-size:clamp(1.25rem,1.1rem + .4vw,1.375rem);font-weight:700;letter-spacing:-.01em}
h3,.h3{font-size:1.25rem;font-weight:700;letter-spacing:-.01em}
.h-xl{font-size:clamp(2rem,1rem + 2.6vw,2.875rem);letter-spacing:-.025em;line-height:1.05}
strong,b{font-weight:700}
:is(h1,h2,.h) .mono{font-weight:500}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
[hidden]{display:none!important}
.sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.mono,.num,time{font-family:var(--font-mono)}
.num{font-variant-numeric:tabular-nums}
.formula{font-family:var(--font-math);font-style:italic}
.eyebrow{font:600 13px/1.4 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.label-mono{font:600 12.5px/1.4 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}
.display{font-size:clamp(2.125rem,1rem + 3.4vw,3.625rem);font-weight:760;letter-spacing:-.025em;line-height:1.02}
.lede{font-size:clamp(1rem,.9rem + .4vw,1.125rem);line-height:1.55;color:var(--text-2);max-width:52ch}
.muted{color:var(--text-3)}
.meta{font-size:14px;color:var(--text-3)}
.meta.mono{font-size:13px}
.small{font-size:13.5px}
.ok{color:var(--teal-ink)}.wait{color:var(--amber-ink)}.bad{color:var(--red)}
.link{font-weight:600}
a.link,.kv-act a,.card-head>a:not(.btn),.auth-links a,.lesson-body>a{display:inline-flex;align-items:center;min-height:44px;margin-block:-12px}
:is(.btn-sm,.toggle>*,.seg>*,.texbar button,a.tchip){position:relative}
:is(.btn-sm,.toggle>*,.seg>*,.texbar button,a.tchip)::after{content:"";position:absolute;inset:-4px -2px}
a.tchip::after{inset:-9px -2px}
a.avatar{position:relative}
a.avatar::after{content:"";position:absolute;inset:-4px}
.brand{display:inline-flex;align-items:center;gap:10px;min-height:44px;font:760 20px/1 var(--font-head);letter-spacing:-.03em;color:var(--text)}
.brand .logo{margin-top:.12em}
.brand:hover{color:inherit;text-decoration:none}
.logo{--s:7px;display:inline-flex;align-items:center;gap:3px;padding:7px 8px;border-radius:9px;background:var(--navy)}
.logo i{width:var(--s);height:var(--s);border-radius:50%;border:1.5px solid var(--ring)}
.logo i:nth-child(2){border:0;background:var(--amber)}
.logo-lg{--s:8px;gap:4px;padding:9px 10px;border-radius:10px}
.logo-light{background:var(--paper)}
.brand:has(.logo-lg){gap:12px}
.app{min-height:100vh}
.side{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 12px;padding:12px 16px 0;border-bottom:1px solid var(--line)}
.side>.nav,.side>.nav-groups{grid-column:1/-1;display:flex;gap:4px;overflow-x:auto;margin:0 -16px;padding:2px 16px 12px;scrollbar-width:none}
.side>.nav::-webkit-scrollbar,.side>.nav-groups::-webkit-scrollbar{display:none}
.nav-group{display:contents}
.nav-group>.nav{display:flex;gap:4px}
.nav-label{display:none}
.nav a{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 12px;border:1px solid transparent;border-radius:var(--r);color:var(--text-2);font-size:15px;white-space:nowrap}
.nav a:hover{background:rgba(16,36,59,.04);color:var(--text);text-decoration:none}
.nav a[aria-current=page]{background:var(--surface);border-color:var(--line);color:var(--text);font-weight:650}
.nav svg{width:20px;height:20px}
.nav .grow{flex:1}
.count{font:600 12px/1 var(--font-mono);padding:4px 8px;border-radius:999px;background:var(--amber-bg);color:var(--amber-ink)}
.me{grid-row:1;grid-column:2;display:flex;align-items:center;gap:10px}
.me-text{display:none}
.me-text strong{font-size:14.5px}
.me-text span{font-size:13px;color:var(--text-3)}
.main{padding:20px 16px 48px;min-width:0}
.wrap{max-width:1120px;margin:0 auto;display:flex;flex-direction:column;gap:28px}
@media (min-width:52rem){
.app{display:grid;grid-template-columns:var(--side-w) minmax(0,1fr)}
.side{position:sticky;top:0;height:100vh;height:100dvh;overflow-y:auto;display:flex;flex-direction:column;gap:28px;padding:28px 18px;border:0;border-right:1px solid var(--line)}
.side>.brand{padding:0 10px}
.side>.nav,.side>.nav-groups{flex-direction:column;gap:2px;overflow:visible;margin:0;padding:0}
.nav-group{display:flex;flex-direction:column;gap:2px}
.nav-group>.nav{flex-direction:column;gap:2px}
.side>.nav-groups{gap:26px}
.nav-label{display:block;font:600 11.5px/1.4 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);padding:0 12px 6px}
.me{margin-top:auto;padding:12px;border-top:1px solid var(--line)}
.me-text{display:flex;flex-direction:column;flex:1;min-width:0}
.main{padding:32px 40px 56px}
}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.page-head>div:first-child{display:flex;flex-direction:column;gap:6px;min-width:0}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.back{display:inline-flex;align-items:center;gap:4px;min-height:44px;padding-right:12px;font-size:15px;font-weight:600;color:var(--text-2)}
.back svg{width:22px;height:22px;color:var(--text)}
.stack{display:flex;flex-direction:column;gap:12px}
.stack>:is(.pill,.success-mark,.btn:not(.btn-block)){align-self:flex-start}
.stack-tight{display:flex;flex-direction:column;gap:4px;min-width:0}
.stack-lg{display:flex;flex-direction:column;gap:24px;min-width:0}
.cluster{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
form.cluster:has(>.field){align-items:flex-end}
@media (max-width:40rem){form.cluster>.field{flex:1 1 10rem}}
.spread{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px}
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:24px;align-items:start}
.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:24px;align-items:start}
.flow{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}
.flow>*{min-width:0}
.col-narrow{flex:1 1 300px}
.col-wide{flex:2.4 1 560px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 16px;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);color:var(--text);font-size:15px;font-weight:600;line-height:1;white-space:nowrap;text-decoration:none}
.btn:hover{border-color:var(--grey-dot);color:var(--text);text-decoration:none}
.btn svg{width:18px;height:18px;stroke-width:2}
.btn-primary{border-color:transparent;background:var(--blue);color:#fff;font-weight:700}
.btn-primary:hover{border-color:transparent;background:var(--blue-ink);color:#fff}
.btn-link,.btn-quiet{border-color:transparent;background:transparent;padding:0 12px;color:var(--blue-ink)}
.btn-quiet{color:var(--text-2)}
.btn-link:hover,.btn-quiet:hover{border-color:transparent;background:rgba(16,36,59,.04)}
.btn-danger{color:var(--red)}
.btn-danger:hover{border-color:var(--red);color:var(--red)}
.btn-sm{height:40px;padding:0 14px;font-size:14.5px}
.btn-md{height:48px;padding:0 20px;border-radius:var(--r-md);font-size:16px}
.btn-lg{height:52px;padding:0 20px;border-radius:var(--r-md);font-size:16.5px}
.btn-block{display:flex;width:100%}
.btn-icon{width:44px;padding:0}
.btn:disabled,.btn[aria-disabled=true]{opacity:.5;pointer-events:none}
.btn-group{display:inline-flex;overflow:hidden;border:1px solid var(--line-strong);border-radius:var(--r)}
.btn-group>.btn{border:0;border-radius:0}
.btn-group>.btn+.btn{border-left:1px solid var(--line)}
.htmx-request.btn,.htmx-request .btn[type=submit]{opacity:.7;cursor:progress}
.htmx-indicator{opacity:0;transition:opacity .2s}
.htmx-request .htmx-indicator,.htmx-request.htmx-indicator{opacity:1}
.pill{--bg:var(--grey-bg);--fg:var(--text-2);--dot:var(--grey-dot);display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--bg);color:var(--fg);font-size:13px;font-weight:600;line-height:1.35;white-space:nowrap}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--dot)}
.pill-info{--bg:var(--blue-bg);--fg:var(--blue-ink);--dot:var(--blue)}
.pill-ok{--bg:var(--teal-bg);--fg:var(--teal-ink);--dot:var(--teal)}
.pill-wait{--bg:var(--amber-bg);--fg:var(--amber-ink);--dot:var(--amber)}
.pill-bad{--bg:var(--red-bg);--fg:var(--red);--dot:var(--red)}
.pill-sm{padding:3px 9px;font-size:12.5px}
.pill-lg{padding:5px 11px;font-size:13.5px;gap:7px}
.pill-lg::before{width:7px;height:7px}
.pill-plain::before{display:none}
.pill svg{width:14px;height:14px}
.form{display:flex;flex-direction:column;gap:18px}
.field{display:flex;flex-direction:column;gap:7px;min-width:0}
.field>label,.field>legend,.label{font-size:14px;font-weight:600;color:var(--text-2)}
.input,.field :is(input:not([type=checkbox],[type=radio],[type=file]),select,textarea){width:100%;height:48px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);color:var(--text);font-size:16px}
.field textarea,textarea.input{height:auto;min-height:120px;padding:12px;line-height:1.5;resize:vertical}
.field select,select.input{appearance:none;padding-right:40px;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%235E6B7D' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center}
.input:focus,.field :is(input,select,textarea):focus{outline:2px solid var(--blue);outline-offset:1px}
::placeholder{color:var(--icon-off);opacity:1}
.input-group{display:flex;align-items:stretch;height:48px;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);overflow:hidden}
.input-group:focus-within{outline:2px solid var(--blue);outline-offset:1px}
.field .input-group>input,.input-group>input{flex:1;min-width:0;height:auto;border:0;border-radius:0;outline:0;background:transparent}
.prefix{display:flex;align-items:center;padding:0 12px;border-right:1px solid var(--line);background:var(--paper);font:400 15px var(--font-mono);color:var(--text-3)}
input[type=tel],input[data-phone]{font-family:var(--font-mono);letter-spacing:.02em}
.reveal{padding:0 14px;border:0;background:transparent;color:var(--blue-ink);font-size:14px;font-weight:600}
.form-lg .input,.form-lg .field :is(input:not([type=checkbox],[type=radio],[type=file]),select),.form-lg .input-group{height:52px;border-radius:var(--r-md);font-size:17px}
.form-lg .prefix{padding:0 14px}
.form-lg .input-group>input{padding:0 14px}
.hint{font-size:13.5px;line-height:1.5;color:var(--text-3)}
.field-error,.field-validation-error{font-size:13.5px;line-height:1.5;color:var(--red)}
[aria-invalid=true],.input-validation-error,.input-group:has([aria-invalid=true]){border:2px solid var(--red)!important}
.input-group>[aria-invalid=true]{border:0!important}
input[type=checkbox],input[type=radio]{width:18px;height:18px;margin:0;accent-color:var(--navy)}
.check{display:inline-flex;align-items:center;gap:9px;min-height:44px;font-size:15px;color:var(--text-2);cursor:pointer}
.divider{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--text-3)}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:var(--line)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--pad);min-width:0}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.card.list{padding:20px 0 8px}
.card.list>.card-head,.card.list>h2{padding:0 var(--pad) 12px}
.card.list.bare{padding:0}
.card.list.bare>.rows>:first-child{border-top:0}
.card.stack{gap:16px}
.row{display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px;padding:16px var(--pad);border-top:1px solid var(--line)}
.row-main{flex:1 1 100%;min-width:0;display:flex;flex-direction:column;gap:3px}
.row-main>strong{font-size:16px}
.row>.media{flex:1 1 220px;min-width:0}
.row>form:last-child{margin-left:auto}
.card.stack>.rows>.row{padding-inline:0}
.kind{flex:1 1 100%;font:600 12px/1.4 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.kind.wait{color:var(--amber-ink)}
@media (min-width:40rem){.row-main{flex-basis:200px}.kind{flex:none;width:92px}}
.lines>li{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--line);font-size:15px}
.lines>li:last-child{border-bottom:0}
.kv>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;align-items:center;padding:15px 20px;border-top:1px solid var(--line-soft)}
.kv>div:first-child{border-top:0}
.kv dt{grid-column:1;font-size:13.5px;color:var(--text-3)}
.kv dd{grid-column:1;font-size:15.5px;font-weight:700}
.kv .kv-act{grid-column:2;grid-row:1/span 2;font-size:14px;font-weight:600}
.note{padding:10px 14px;border-radius:var(--r);background:var(--paper);font-size:14px;line-height:1.45;color:var(--text-3)}
.note-warn{background:var(--amber-bg);color:var(--amber-ink)}
.note-error,.validation-summary-errors{background:var(--red-bg);color:var(--red)}
.validation-summary-errors{padding:10px 14px;border-radius:var(--r);font-size:14px}
.validation-summary-errors ul{padding-left:18px;list-style:disc}
.callout{padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);font-size:14.5px;line-height:1.55;color:var(--text-2)}
.callout strong{color:var(--text)}
.avatar{--bg:var(--navy);--fg:#fff;display:inline-flex;align-items:center;justify-content:center;flex:none;width:36px;height:36px;border-radius:50%;background:var(--bg);color:var(--fg);font-size:14px;font-weight:700}
.avatar-lg{width:44px;height:44px;font-size:15px}
.avatar-xl{width:60px;height:60px;font-size:20px}
.avatar-teal{--bg:var(--teal-bg);--fg:var(--teal-ink)}
.avatar-blue{--bg:var(--blue-bg);--fg:var(--blue-ink)}
a.avatar:hover{color:var(--fg);text-decoration:none;box-shadow:0 0 0 2px var(--line-strong)}
.table-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card)}
.table{width:100%;min-width:460px;border-collapse:collapse;font-size:15px}
.table th{padding:16px 12px 10px;font:600 13px var(--font-ui);color:var(--text-3);text-align:left}
.table td{padding:13px 12px;border-top:1px solid var(--line-soft)}
.table :is(th,td):first-child{padding-left:var(--pad)}
.table :is(th,td):last-child{padding-right:var(--pad)}
.table td:first-child{font-weight:600}
.table .num{text-align:right}
.table :is(td.mono,td.num,td>time){white-space:nowrap}
.table td.mono:first-child{font-weight:500}
.meter{display:block;width:100%;height:8px;border:0;border-radius:999px;background:var(--line);overflow:hidden;appearance:none}
.meter::-webkit-progress-bar{background:var(--line)}
.meter::-webkit-progress-value{background:var(--navy);border-radius:999px}
.meter::-moz-progress-bar{background:var(--navy);border-radius:999px}
.meter-sm{height:6px}
.choices{display:flex;flex-wrap:wrap;gap:10px 18px}
.choice{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:16px;cursor:pointer}
.choice input{position:absolute;opacity:0;width:1px;height:1px}
.bubble{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1.5px solid var(--line-strong);border-radius:50%;font:600 13px var(--font-mono);color:var(--text-3)}
.choice:hover .bubble{border-color:var(--navy)}
.choice input:checked+.bubble{border-color:var(--navy);background:var(--navy);color:#fff}
.choice input:focus-visible+.bubble{outline:2px solid var(--blue);outline-offset:2px}
.star{position:relative;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex:none;cursor:pointer}
.star input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.star svg{width:22px;height:22px;fill:none;stroke:var(--icon-off);stroke-width:1.6;stroke-linejoin:round}
.star:hover svg{stroke:var(--amber)}
.star input:checked+svg{fill:var(--amber);stroke:var(--amber)}
.star input:focus-visible+svg{outline:2px solid var(--blue);outline-offset:4px;border-radius:4px}
.star-icon{width:14px;height:14px;fill:var(--amber);stroke:var(--amber);stroke-width:1.6;stroke-linejoin:round}
.seg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.seg label{position:relative;cursor:pointer}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg>label>span,.seg>button{display:flex;align-items:center;justify-content:center;width:100%;height:38px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text-2);font-size:13.5px;font-weight:600}
.seg label:hover span,.seg>button:hover{border-color:var(--line-strong)}
.seg :is(input:checked+span,[aria-pressed=true]).is-ok{border-color:var(--teal);background:var(--teal-bg);color:var(--teal-ink)}
.seg :is(input:checked+span,[aria-pressed=true]).is-bad{border-color:var(--red);background:var(--red-bg);color:var(--red)}
.seg input:focus-visible+span{outline:2px solid var(--blue);outline-offset:2px}
.bell{position:relative;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--text)}
.bell:hover{border-color:var(--line-strong);color:var(--text)}
.bell svg{width:20px;height:20px}
.bell-count{position:absolute;top:-6px;right:-6px;display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 4px;border:2px solid var(--paper);border-radius:999px;background:var(--amber);color:var(--navy);font:600 11.5px/1 var(--font-mono)}
.popover{inset:auto 0 0 0;width:100%;max-height:80vh;margin:0;padding:8px 0;border:1px solid var(--line);border-radius:18px 18px 0 0;background:var(--surface);color:var(--text);box-shadow:0 18px 40px rgba(16,36,59,.14);overflow-y:auto}
.popover::backdrop{background:rgba(16,36,59,.2)}
@media (min-width:52rem){.popover{inset:76px 40px auto auto;width:380px;border-radius:18px}.popover::backdrop{background:transparent}}
.popover-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 18px 12px}
.notif{display:flex;gap:12px;padding:13px 18px;border-top:1px solid var(--line-soft)}
.notif.unread{background:#FBFCFE}
.notif::before{content:"";flex:none;width:8px;height:8px;margin-top:7px;border-radius:50%;background:transparent}
.notif.unread::before{background:var(--navy)}
.notif>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.notif p{font-size:14.5px;line-height:1.45}
.notif-kind{font:600 11.5px/1.4 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.notif-kind.ok{color:var(--teal-ink)}.notif-kind.wait{color:var(--amber-ink)}.notif-kind.bad{color:var(--red)}
.notif time{display:block;font-size:12.5px;color:var(--text-3)}
.empty{display:flex;flex-direction:column;justify-content:center;gap:12px;padding:28px;border:1px dashed var(--line-strong);border-radius:18px;background:linear-gradient(var(--grid) 1px,transparent 1px) 0 0/22px 22px,linear-gradient(90deg,var(--grid) 1px,transparent 1px) 0 0/22px 22px var(--paper)}
.empty-mark{font:italic 34px/1 var(--font-math);color:#A3AFBF}
.empty-title{font:680 clamp(1.3125rem,1.15rem + .5vw,1.5rem)/1.15 var(--font-head);letter-spacing:-.01em}
.empty p:not(.empty-title){font-size:15px;line-height:1.5;color:var(--text-2);max-width:34ch}
.empty-inline{flex-direction:row;align-items:center;gap:14px;padding:18px;border:0;border-radius:var(--r-md);background-size:16px 16px}
.empty-inline .empty-mark{font-size:26px}
.empty-inline strong{display:block;font-size:15px}
.empty-inline p{font-size:14px!important}
.errorpage{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;min-height:100vh;min-height:100dvh;padding:32px 16px;background:linear-gradient(var(--grid) 1px,transparent 1px) 0 0/22px 22px,linear-gradient(90deg,var(--grid) 1px,transparent 1px) 0 0/22px 22px var(--paper)}
.errorpage>.card{display:flex;flex-direction:column;gap:12px;width:100%;max-width:440px;padding:28px}
.errorpage h1{font-size:clamp(1.5rem,1.2rem + 1vw,1.75rem)}
.errorpage .cluster{margin-top:4px}
.sheet{width:100%;max-width:100%;margin:auto 0 0;padding:24px 20px calc(24px + env(safe-area-inset-bottom));border:0;border-radius:var(--r-card) var(--r-card) 0 0;background:var(--surface);color:var(--text);box-shadow:var(--shadow)}
.sheet::backdrop{background:rgba(16,36,59,.35)}
.sheet[open]{display:flex;flex-direction:column;gap:16px}
@media (min-width:40rem){.sheet{max-width:480px;margin:auto;padding:28px;border-radius:var(--r-card)}}
.toasts{position:fixed;z-index:20;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}
.toast{display:flex;align-items:center;gap:10px;max-width:440px;padding:12px 16px;border-radius:var(--r-md);background:var(--navy);color:#fff;font-size:15px;line-height:1.4;box-shadow:var(--shadow);pointer-events:auto;animation:toast-in .2s ease-out}
.toast::before{content:"✓";display:inline-flex;align-items:center;justify-content:center;flex:none;width:22px;height:22px;border-radius:50%;background:var(--teal-ink);font-size:12px;font-weight:800}
.toast-warn::before{content:"!";background:var(--amber);color:var(--navy)}
.toast-error::before{content:"×";background:var(--red);font-size:15px}
@keyframes toast-in{from{opacity:0;transform:translateY(8px)}}
@media (min-width:52rem){.toasts{left:auto;right:24px;bottom:24px;align-items:flex-end}}
:is(.toggle,.pick,.level) input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
:is(.toggle>*,.pick,.option,.level):has(input:focus-visible){outline:2px solid var(--blue);outline-offset:2px}
.toggle{display:flex;gap:4px;padding:4px;border-radius:var(--r-md);background:var(--grey-bg)}
.toggle>*{position:relative;flex:1;display:flex;align-items:center;justify-content:center;gap:10px;min-height:40px;padding:0 14px;border:0;border-radius:9px;background:none;color:var(--text);font-size:14.5px;font-weight:600;text-align:left;cursor:pointer}
.toggle>:hover{color:var(--text);text-decoration:none}
.toggle:not(.toggle-lg)>*{white-space:nowrap}
.toggle>:is([aria-pressed=true],[aria-current],:has(input:checked)){background:var(--surface);box-shadow:0 1px 3px rgba(16,36,59,.14)}
.toggle-lg{border-radius:14px}
.toggle-lg>*{justify-content:flex-start;min-height:52px;padding:0 12px;border-radius:11px}
.toggle .dot{flex:none;width:18px;height:18px;border:1.5px solid var(--text-3);border-radius:50%}
.toggle>:is([aria-pressed=true],[aria-current],:has(input:checked)) .dot{border-color:var(--navy);background:var(--navy)}
.toggle small{display:block;font-size:12.5px;font-weight:400;color:var(--text-2)}
.picks{display:flex;flex-wrap:wrap;gap:6px}
.pick{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 14px;border:1.5px solid var(--line);border-radius:var(--r);background:var(--surface);color:var(--text);font-size:14.5px;font-weight:600;cursor:pointer}
.pick:hover{border-color:var(--line-strong);color:var(--text);text-decoration:none}
.pick:is([aria-pressed=true],[aria-current],:has(input:checked)){border-color:var(--navy);background:var(--navy);color:#fff}
.pick:is(:disabled,[aria-disabled=true],:has(input:disabled)){border-color:var(--line-soft);background:#F1F4F8;color:var(--text-3);cursor:not-allowed}
.options{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:10px}
.options-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.option{position:relative;display:flex;align-items:center;gap:10px;min-height:56px;padding:12px 14px;border:1.5px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--text);font-size:15px;text-align:left;cursor:pointer}
.option:hover{border-color:var(--line-strong);color:var(--text);text-decoration:none}
.option:is([aria-pressed=true],[aria-current],:has(input:checked)){border-color:var(--navy)}
.option>span{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}
.option small{font-size:13px;color:var(--text-3)}
.option svg{width:20px;height:20px}
.option-sm{min-height:48px;padding:0 12px;border-radius:var(--r)}
.option>small:last-child{font:13px var(--font-mono)}
.bubble.is-on{border-color:var(--navy);background:var(--navy);color:#fff}
.seg-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.seg :is(input:checked+span,[aria-pressed=true]).is-wait{border-color:var(--amber);background:var(--amber-bg);color:var(--amber-ink)}
.seg :is(input:checked+span,[aria-pressed=true]).is-none{border-color:var(--text-3);background:var(--grey-bg);color:var(--text-2)}
.seg-md>label>span,.seg-md>button{height:44px;border-radius:var(--r)}
.seg-lg{gap:8px}
.seg-lg>label>span,.seg-lg>button{height:52px;border:1.5px solid var(--line-strong);border-radius:var(--r-md);color:var(--text);font-size:15.5px;font-weight:700}
.note-info{background:var(--blue-bg);color:var(--text)}
.step-n{display:inline-flex;align-items:center;justify-content:center;flex:none;width:28px;height:28px;border:1.5px solid var(--line-strong);border-radius:50%;background:var(--surface);font:600 12.5px var(--font-mono);color:var(--text-3)}
.is-done .step-n{border-color:var(--navy);background:var(--navy);color:#fff}
[aria-current=step] .step-n{border:2px solid var(--navy);color:var(--text)}
.is-warn .step-n{border-color:var(--red)}
.steps{display:grid;grid-auto-columns:minmax(108px,1fr);grid-auto-flow:column;gap:6px;overflow-x:auto}
.steps :is(a,button){display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:100%;min-height:76px;padding:10px 4px 6px;border:0;border-top:3px solid var(--line);background:none;color:var(--text-2);font-size:14px;font-weight:600;line-height:1.3;text-align:left}
.steps :is(.is-done,[aria-current=step]){border-top-color:var(--navy);color:var(--text)}
.steps [aria-current=step]{font-weight:700}
.steps a:hover,.steps-v a:hover{color:var(--text);text-decoration:none}
.steps-v{display:flex;flex-direction:column;gap:2px}
.steps-v :is(a,button){display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:0 12px;border:0;border-radius:var(--r-md);background:none;color:var(--text);font-size:15px;font-weight:600;text-align:left}
.steps-v [aria-current=step]{background:var(--surface);font-weight:700}
.steps-v .step-n{width:30px;height:30px;font-size:13px}
.steps-v small{display:block;font-size:12.5px;font-weight:400;color:var(--text-3)}
.steps-v .is-warn small{color:var(--red)}
.statusline li{position:relative;display:flex;gap:12px;padding-bottom:12px}
.statusline li::before{content:"";flex:none;width:14px;height:14px;margin-top:3px;border:2px solid var(--line-strong);border-radius:50%;background:var(--surface)}
.statusline li::after{content:"";position:absolute;top:19px;bottom:0;left:6.25px;width:1.5px;background:var(--line)}
.statusline li:last-child::after{display:none}
.statusline .is-done::before{border-color:var(--navy);background:var(--navy)}
.statusline .is-done::after{background:var(--navy)}
.statusline [aria-current=step]::before{border-color:var(--navy)}
.statusline li>div{display:flex;flex-direction:column;gap:2px}
.statusline strong{font-size:14.5px;color:var(--text-2)}
.statusline :is(.is-done,[aria-current=step]) strong{color:var(--text)}
.statusline small{font-size:13px;line-height:1.4;color:var(--text-3)}
.file{display:flex;align-items:center;gap:12px;padding:10px 12px 10px 14px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
.file-icon{display:inline-flex;align-items:flex-end;justify-content:center;flex:none;width:34px;height:40px;padding-bottom:4px;border:1px solid var(--line);border-radius:6px;font:600 9.5px var(--font-mono);color:var(--text-3)}
.file-text{display:flex;flex:1;flex-direction:column;min-width:0}
.file-text strong{font-size:14.5px}
.file small{font-size:13px;color:var(--text-3)}
.files{border:1px solid var(--line);border-radius:var(--r-lg)}
.files>.file{flex-wrap:wrap;padding:14px 16px;border:0;border-top:1px solid var(--line-soft);border-radius:0;background:none}
.files>.file:first-child{border-top:0}
.skel-row{display:flex;align-items:center;gap:12px}
.skel-lines{display:flex;flex:1;flex-direction:column;gap:7px}
.skel,.skel-pill{display:block;width:62%;height:12px;border-radius:6px;background:var(--line);animation:skel 1.2s ease-in-out infinite alternate}
.skel+.skel{width:40%;height:10px;background:var(--line-soft)}
.skel-pill{flex:none;width:84px;height:22px;border-radius:999px;background:var(--line-soft)}
@keyframes skel{to{opacity:.5}}
.alert{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:var(--r-lg);background:var(--red-bg)}
.alert>div{display:flex;flex:1 1 200px;flex-direction:column;gap:2px;font-size:14px}
.alert strong{font-size:15px;color:var(--red)}
.alert .btn{border-color:var(--red);color:var(--red)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));overflow:hidden;padding:0}
.stats>div{display:flex;flex-direction:column;gap:4px;padding:16px 20px;box-shadow:-1px -1px 0 var(--line-soft)}
.stats>div>strong{font-size:17px}
.stats small{font-size:13.5px;color:var(--text-3)}
.stats small:is(.ok,.wait,.bad){font-weight:600}
.stats small.ok{color:var(--teal-ink)}.stats small.wait{color:var(--amber-ink)}.stats small.bad{color:var(--red)}
.tag{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;background:#F1F4F8;color:var(--text-2);font-size:12.5px;font-weight:600}
.tag-lg{padding:5px 10px;border-radius:var(--r-sm);font-size:14px;font-weight:400}
.ph{padding:2px 7px;border-radius:6px;background:var(--grey-bg);color:var(--text-2);font:500 14px var(--font-mono)}
.photo,.photo-ph{flex:none;width:128px;aspect-ratio:1;border-radius:16px;object-fit:cover}
.photo-ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px dashed #A3AFBF;background:var(--grey-bg);color:var(--text-3);font-size:12.5px;font-weight:600}
.photo-lg{width:220px;border-radius:20px;font-size:14px}
.verified{display:inline-flex;align-items:center;gap:5px;color:var(--teal-ink);font-weight:600}
.verified svg{width:14px;height:14px}
.iconline{display:flex;align-items:flex-start;gap:8px}
.iconline svg{width:16px;height:16px;margin-top:2px}
.crumb{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-size:14.5px;font-weight:600}
.crumb svg{width:18px;height:18px}
.success-mark{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:var(--teal-bg);color:var(--teal-ink)}
.success-mark svg{width:30px;height:30px;stroke-width:2.2}
.card.is-invalid{border-color:var(--red)}
.texbar{display:flex;flex-wrap:wrap;gap:4px}
.texbar button{min-width:44px;height:40px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:var(--paper);font:italic 17px var(--font-math)}
.texbar button:hover{border-color:var(--line-strong)}
.preview{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid var(--line);border-radius:22px;background:var(--surface)}
.preview-q{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid var(--line);border-radius:var(--r-lg)}
.preview-q>:nth-child(2){min-height:30px;font:italic 24px var(--font-math);text-align:center}
.answer{display:flex;align-items:center;gap:12px;min-height:46px;padding:0 12px;border:1px solid var(--line);border-radius:var(--r-md);font:italic 17px var(--font-math)}
.answer .bubble{width:28px;height:28px;border-color:var(--icon-off);font-size:12.5px;font-style:normal;color:var(--text-2)}
.answer.is-key{border-color:var(--teal);background:var(--teal-bg)}
.answer small{margin-left:auto;font:700 12.5px var(--font-ui);color:var(--teal-ink)}
.keyrow{display:flex;align-items:center;gap:10px}
.keyrow .choice{gap:0}
.keyrow .bubble{width:34px;height:34px;font-size:13.5px}
.keyrow .input{flex:1;min-width:0;height:44px;font:italic 17px var(--font-math)}
.keyrow>small{width:92px;font-size:13px;font-weight:600;color:var(--teal-ink)}
.a4{width:100%;max-width:210mm;margin:0 auto;padding:14mm;border:1px solid var(--line-strong);background:#fff;box-shadow:0 4px 12px rgba(16,36,59,.08)}
@media screen{.a4{aspect-ratio:210/297}}
@media print{.a4{max-width:none;padding:0;border:0;box-shadow:none}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@page{size:A4;margin:12mm}
@media print{.side,.actions,.toasts,.bell,.actionbar,.tabbar,.site-head,.no-print{display:none!important}.app{display:block}.main{padding:0}body,.card{background:#fff}a{color:inherit}.card,section{break-inside:avoid}}
.auth{display:flex;flex-wrap:wrap;min-height:100vh}
.auth-hero{flex:1 1 520px;min-width:0;display:flex;flex-direction:column;justify-content:space-between;gap:28px;padding:24px 20px 28px;background:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px) 0 0/24px 24px,linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px) 0 0/24px 24px var(--navy);color:var(--paper)}
.auth-hero .brand{color:var(--paper);font-size:24px;gap:12px}
.auth-copy{display:flex;flex-direction:column;gap:22px;max-width:560px}
.auth-hero .lede{color:var(--on-navy);max-width:44ch}
.auth-sample{display:none;flex-direction:column;gap:14px;max-width:400px;margin-top:18px;padding:20px 22px;border-radius:16px;background:var(--surface);color:var(--text);box-shadow:0 18px 40px rgba(4,12,24,.35)}
.auth-sample strong{font:700 20px/1.2 var(--font-head)}
.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--line);border-radius:var(--r-sm);font-size:13.5px;color:var(--text-2)}
.chip.formula{font-size:15px;color:var(--text)}
.auth-links{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:14px}
.auth-links a{color:var(--on-navy)}
.auth-links a:hover{color:#fff}
.auth-main{flex:1 1 440px;min-width:0;display:flex;align-items:center;justify-content:center;padding:36px 20px 56px}
.auth-form{width:100%;max-width:400px;gap:22px}
.auth-form .title{font-size:clamp(2rem,1.6rem + 1vw,2.375rem)}
.auth-form .title+p{margin-top:8px;color:var(--text-2)}
.pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pair .btn{height:48px;padding:0 10px;white-space:normal;text-align:center}
@media (min-width:52rem){
.auth-hero{gap:48px;padding:56px 64px}
.auth-sample{display:flex}
.auth-main{padding:56px 24px}
}
.split{display:flex;flex-wrap:wrap;padding:0;overflow:hidden;container-type:inline-size}
.split-main{flex:3 1 420px;min-width:0;display:flex;flex-direction:column;gap:16px;padding:24px var(--pad)}
.split-aside{flex:2 1 300px;min-width:0;display:flex;flex-direction:column;gap:14px;padding:24px var(--pad);background:var(--paper);border-left:1px solid var(--line)}
@container (max-width:719.98px){.split-aside{border-left:0;border-top:1px solid var(--line)}}
@media (min-width:52rem){.split-main,.split-aside{padding:28px 32px}}
.big-time{font-size:clamp(2.25rem,1.6rem + 1.6vw,2.75rem);font-weight:740;line-height:1.05}
.big-time .mono{font-weight:500}
.big-num{font:500 40px/1 var(--font-mono);letter-spacing:-.02em}
.big-num span{color:var(--icon-off)}
.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;text-align:center}
.week li{display:flex;flex-direction:column;gap:6px;min-width:0;padding:10px 0;border:1px solid transparent;border-radius:var(--r-md)}
.week .wd{font-size:12px;color:var(--text-3);text-decoration:none}
.week .day{font:500 17px/1.2 var(--font-mono)}
.week .ev{overflow:hidden;font-size:11px;color:var(--text-3);white-space:nowrap;text-overflow:ellipsis}
.week b.ev{font-weight:600}
.week time.ev{font-weight:600;color:var(--blue-ink)}
.week .ev.ok{color:var(--teal-ink)}
.week .is-today{background:var(--navy);color:#fff}
.week .is-today .wd{color:var(--on-navy)}
.week .is-today .day{font-weight:600}
.week .is-today .ev{color:#fff}
.week .is-off{background:var(--amber-bg)}
.week .is-off :is(.wd,.day,.ev){color:var(--amber-ink)}
.week .is-exam{border:1px dashed var(--line-strong)}
.week .is-exam .ev{color:var(--text)}
@media (min-width:52rem){.week{gap:6px}.week li{padding:10px 2px}.week .ev{font-size:11.5px}}
.timeline{display:flex;flex-direction:column;gap:10px}
.lesson{display:flex;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
.lesson>time{width:48px;flex:none;font-size:15px;font-weight:600;color:var(--text-3)}
.lesson-body{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.lesson-body>strong,.lesson-body>a{font-size:15.5px;font-weight:700;color:var(--text)}
.lesson-body .meta{font-size:13.5px}
.lesson-body>:last-child:not(:nth-child(2)){margin-top:2px}
.lesson.is-now>time{color:var(--blue-ink)}
.lesson.is-selected{padding:13px 15px;border:2px solid var(--navy)}
.lesson.is-selected>time{color:var(--text)}
.qgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));gap:12px}
.qgrid-lg{grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr))}
.qcard{display:flex;flex-direction:column;gap:10px;min-width:0;padding:12px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
.qcard.is-starred,.qcard:has(.star input:checked){padding:11.5px;border:1.5px solid var(--amber)}
.qcard-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:20px}
.qcard-head .star{margin:-12px -12px -12px 0}
.qnum{font:600 12.5px var(--font-mono);color:var(--text-3)}
.prio{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--amber-ink)}
.qthumb{display:flex;align-items:center;justify-content:center;height:76px;padding:0 8px;overflow:hidden;border-radius:9px;background:linear-gradient(var(--grid) 1px,transparent 1px) 0 0/12px 12px,linear-gradient(90deg,var(--grid) 1px,transparent 1px) 0 0/12px 12px var(--paper);font:italic 17px/1.3 var(--font-math);text-align:center}
.qthumb:has(img){padding:0}
.qthumb .katex{font-size:1.05em}
.qthumb img{width:100%;height:100%;object-fit:cover;object-position:top}
.upload-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:128px;padding:12px;border:1.5px dashed var(--line-strong);border-radius:var(--r-lg);color:var(--blue-ink);font-size:14.5px;font-weight:600;text-align:center;cursor:pointer}
.upload-tile:hover{border-color:var(--blue)}
.upload-tile:focus-within{outline:2px solid var(--blue);outline-offset:2px}
.upload-tile svg{width:26px;height:26px}
.upload-tile small{font-size:12.5px;font-weight:500;color:var(--text-3)}
.resultbar{width:100%;height:14px;border-radius:999px;overflow:hidden}
.resultbar-sm{height:12px;border-radius:4px}
.resultbar .ok,.legend .ok::before{fill:var(--teal);background:var(--teal)}
.resultbar .bad,.legend .bad::before{fill:var(--red);background:var(--red)}
.resultbar .none,.legend .none::before{fill:var(--line-strong);background:var(--line-strong)}
.legend{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:15px;color:var(--text-2)}
.legend>span{display:inline-flex;align-items:center;gap:8px}
.legend>span::before{content:"";width:10px;height:10px;border-radius:3px}
.legend strong{font-family:var(--font-mono);color:var(--text)}
.datebadge{display:flex;flex-direction:column;flex:none;width:52px;height:60px;overflow:hidden;border:1px solid var(--line);border-radius:var(--r);text-align:center}
.datebadge b{padding:3px 0;background:var(--navy);color:#fff;font-size:11px;letter-spacing:.06em}
.datebadge span{flex:1;display:flex;align-items:center;justify-content:center;font:600 22px var(--font-mono)}
.media{display:flex;align-items:flex-start;gap:18px}
.media>div{display:flex;flex-direction:column;gap:6px;min-width:0}
.person{display:flex;align-items:center;gap:12px}
.person>span{display:flex;flex-direction:column;min-width:0}
.person strong{font-size:15.5px}
.person .meta{font-size:13.5px}
.result{display:flex;flex-wrap:wrap;gap:28px 40px}
.result>*{display:flex;flex-direction:column;min-width:0}
.result>:first-child{flex:3 1 420px;gap:16px}
.result>:last-child{flex:2 1 280px;gap:10px}
.focus{display:flex;flex-direction:column;max-width:560px;min-height:100vh;min-height:100dvh;margin:0 auto}
.topbar{display:flex;align-items:center;padding:10px 12px 0}
.focus-body{flex:1;display:flex;flex-direction:column;gap:14px;padding:6px 20px 16px}
.focus-body h1{font-size:28px}
.actionbar{position:sticky;bottom:0;z-index:5;display:flex;flex-direction:column;gap:8px;padding:14px 20px calc(22px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface);text-align:center}
.actionbar .hint{font-size:13px}
.focus-body .daypick{margin-inline:-20px;padding-inline:20px}
@media (min-width:52rem){.focus{min-height:0;margin:40px auto;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface)}.focus .actionbar{position:static}.focus-body .daypick{margin-inline:0;padding-inline:0}}
.site-head{border-bottom:1px solid var(--line);background:var(--surface)}
.site-head>div{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;max-width:1248px;margin:0 auto;padding:10px 16px}
.site-head .brand{min-height:44px;font-size:23px}
.site-nav{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px}
.site-nav a:not(.btn){display:inline-flex;align-items:center;min-height:44px;padding:0 12px;color:var(--text-2);font-size:15px;font-weight:600}
.site-nav a:not(.btn):hover{color:var(--text);text-decoration:none}
.site-nav a[aria-current=page]{color:var(--text);font-weight:700;box-shadow:inset 0 -2px 0 var(--navy)}
@media (max-width:51.99rem){.site-nav a:not(.btn){display:none}}
.site-main{display:flex;flex-direction:column;gap:24px;max-width:1248px;margin:0 auto;padding:28px 16px 56px}
@media (min-width:52rem){.site-head>div{padding:14px 24px}.site-main{padding:40px 24px 64px}}
.filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px 16px;padding:16px 18px;border-radius:18px}
.filters>.field{flex:1 1 180px}
.filters>fieldset{flex:1 1 280px}
.tcard{display:flex;flex-wrap:wrap;align-items:flex-start;gap:20px 28px;padding:20px}
.tcard>div{display:flex;flex-direction:column;gap:10px;min-width:0}
.tcard>div:nth-child(2){flex:1 1 360px}
.tcard>div:last-child{flex:0 1 240px;align-items:flex-start}
.tcard :is(h2,h3){font-size:26px;font-weight:720}
.tcard-lg{gap:28px 40px;padding:28px;border-radius:24px}
.tcard-lg>div:last-child{flex:1 1 420px}
.score{font:600 24px var(--font-mono)}
.score-lg{font-size:48px;font-weight:500;letter-spacing:-.02em;line-height:1}
.crit{display:flex;flex:1 1 320px;flex-direction:column;gap:10px}
.crit>div{display:grid;grid-template-columns:minmax(0,150px) minmax(0,1fr) 36px;align-items:center;gap:12px}
.crit dt{font-size:14.5px}
.crit dd:last-child{font:600 14px var(--font-mono);text-align:right}
.review{display:flex;flex-direction:column;gap:10px;padding:18px 20px;border-radius:18px}
.review>p{font-size:16px;line-height:1.55;max-width:70ch}
.review>.btn{align-self:flex-start}
.reply{display:flex;flex-direction:column;gap:4px;margin-left:20px;padding:12px 14px;border-radius:var(--r-md);background:var(--paper);font-size:15px;line-height:1.5}
.reply strong{font-size:14px}
.tchip{display:inline-flex;align-items:center;padding:4px 10px;border-radius:var(--r-sm);background:#F1F4F8;color:var(--text);font:14px var(--font-mono)}
a.tchip:hover{background:var(--line);color:var(--text);text-decoration:none}
.lp-hero{background:var(--navy);color:var(--paper)}
.lp-hero>div{display:flex;flex-wrap:wrap;align-items:center;gap:40px 64px;max-width:1248px;margin:0 auto;padding:44px 16px 56px}
.lp-hero-copy{display:flex;flex:1.3 1 460px;flex-direction:column;gap:22px;min-width:0}
.lp-hero .eyebrow{letter-spacing:.08em;color:var(--on-navy)}
.lp-hero h1{max-width:15ch;font-size:clamp(2.25rem,1.2rem + 3.4vw,3.875rem);font-weight:760;letter-spacing:-.025em;line-height:1.03;text-wrap:balance}
.lp-hero .lede{max-width:46ch;font-size:clamp(1.0625rem,.95rem + .4vw,1.1875rem);color:var(--on-navy)}
.lp-hero .note-line{max-width:52ch;font-size:15px;line-height:1.5;color:var(--on-navy)}
.btn-on-navy{border-color:var(--ring);background:transparent;color:var(--paper)}
.btn-on-navy:hover{border-color:var(--paper);color:var(--paper)}
.lp-card{display:flex;flex:1 1 340px;flex-direction:column;gap:18px;min-width:0;max-width:440px;padding:20px;border-radius:20px;background:var(--surface);color:var(--text);box-shadow:0 18px 40px rgba(4,12,24,.35)}
.lp-card :is(.photo,.photo-ph){width:100%;aspect-ratio:4/3;border-radius:14px}
.lp-card strong.h{font-size:24px;font-weight:720}
.lp-section{display:flex;flex-direction:column;gap:28px;max-width:1248px;margin:0 auto;padding:64px 16px 8px;scroll-margin-top:16px}
.lp-section h2{max-width:22ch;font-size:clamp(1.875rem,1.3rem + 1.6vw,2.5rem);font-weight:740;line-height:1.08;letter-spacing:-.02em}
.lp-section h2+p{max-width:60ch;font-size:17px;line-height:1.5;color:var(--text-2)}
.lp-label{font:600 13px/1.4 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}
.lp-split{display:flex;flex-wrap:wrap;gap:28px 72px}
.lp-split>:first-child{display:flex;flex:1 1 340px;flex-direction:column;gap:14px;min-width:0}
.lp-split>:last-child{display:flex;flex:1.6 1 520px;flex-direction:column;gap:28px;min-width:0}
.lp-prose{max-width:60ch;font-size:clamp(1.0625rem,.95rem + .4vw,1.1875rem);line-height:1.6}
.lp-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));gap:16px}
.lp-cards>*{display:flex;flex-direction:column;gap:8px;padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.lp-cards strong{font-size:17px;line-height:1.3}
.lp-cards p{font-size:15px;line-height:1.5;color:var(--text-2)}
.lp-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:20px}
.lp-steps>article{display:flex;flex-direction:column;gap:20px;padding:24px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface)}
.lp-steps h3{font-size:24px;font-weight:720}
.lp-steps ol{display:flex;flex-direction:column;gap:16px}
.lp-steps li{display:flex;gap:14px}
.lp-steps .step-n{width:32px;height:32px;font-size:13px}
.lp-steps li>span:last-child{display:flex;flex-direction:column;gap:3px;font-size:15px;line-height:1.5;color:var(--text-2)}
.lp-steps li strong{font-size:16px;color:var(--text)}
.lp-types{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(440px,100%),1fr));gap:20px}
.lp-types>article{display:flex;flex-direction:column;gap:14px;padding:24px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface)}
.lp-types h3{font-size:26px;font-weight:720}
.lp-types p{max-width:52ch;font-size:16px;line-height:1.55;color:var(--text-2)}
.lp-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--r-md);background:var(--grey-bg);color:var(--text)}
.lp-icon svg{width:24px;height:24px}
.lp-slots>div{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:10px 0;border-top:1px solid var(--line)}
.lp-slots>div>:first-child{flex:none;width:100%;font-size:15px;font-weight:600}
@media (min-width:40rem){.lp-slots>div>:first-child{width:104px}}
a.slot{display:inline-flex;align-items:center;height:44px;padding:0 14px;border:1px solid var(--line-strong);border-radius:var(--r);color:var(--text);font:500 15px var(--font-mono)}
a.slot:hover{border-color:var(--navy);color:var(--text);text-decoration:none}
.faq{border-top:1px solid var(--line)}
.faq:last-child{border-bottom:1px solid var(--line)}
.faq>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;padding:12px 0;font-size:17px;font-weight:600;list-style:none;cursor:pointer}
.faq>summary::-webkit-details-marker{display:none}
.faq>summary::after{content:"";flex:none;width:9px;height:9px;margin-right:6px;border:solid var(--text-3);border-width:0 2px 2px 0;transform:rotate(45deg) translateY(-3px);transition:transform .2s}
.faq[open]>summary::after{transform:rotate(-135deg) translateY(-3px)}
.faq>p{max-width:72ch;padding:0 0 18px;font-size:16px;line-height:1.6;color:var(--text-2)}
.lp-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px 48px;padding-top:36px;border-top:1px solid var(--line)}
.lp-cta>div{display:flex;flex:1 1 480px;flex-direction:column;gap:10px;min-width:0}
.lp-cta h2{font-size:clamp(1.5rem,1.2rem + .8vw,1.875rem);font-weight:720;line-height:1.15;letter-spacing:-.015em}
.lp-foot{margin-top:56px;border-top:1px solid var(--line);background:var(--surface)}
.lp-foot>div{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;max-width:1248px;margin:0 auto;padding:16px}
.lp-foot small{font-size:14px;color:var(--text-3)}
.lp-foot nav{display:flex;flex-wrap:wrap;gap:0 8px}
.lp-foot nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 8px;font-size:14.5px;color:var(--text-2)}
@media (min-width:52rem){.lp-hero>div{padding:72px 24px 80px}.lp-section{padding:96px 24px 8px}.lp-steps>article,.lp-types>article{padding:28px}.lp-foot>div{padding:20px 24px}}
.player{overflow:hidden;border-radius:16px;background:var(--navy);color:#fff}
.player-screen{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:16/9}
.player video{display:block;width:100%;height:100%;background:var(--navy)}
.player-tag{position:absolute;top:12px;left:12px;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.14);font-size:13px;font-weight:600;pointer-events:none}
.player-screen .formula{font-size:26px;color:var(--on-navy)}
.player-play{position:absolute;display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border:0;border-radius:50%;background:#fff;color:var(--navy);box-shadow:0 8px 24px rgba(4,12,24,.35)}
.player-play svg{width:26px;height:26px;fill:currentColor;stroke:none}
.player-meta{display:flex;flex-direction:column;gap:8px;padding:0 14px 12px}
.player .meter{height:4px;background:rgba(255,255,255,.22)}
.player .meter::-webkit-progress-bar{background:rgba(255,255,255,.22)}
.player .meter::-webkit-progress-value{background:var(--amber)}
.player .meter::-moz-progress-bar{background:var(--amber)}
.player-time{display:flex;justify-content:space-between;font:12.5px var(--font-mono);color:var(--on-navy)}
.levels{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px}
.level{position:relative;display:flex;align-items:center;gap:8px;min-height:56px;padding:0 10px;border:1.5px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--text);text-align:left;cursor:pointer}
.level:hover{border-color:var(--line-strong);color:var(--text);text-decoration:none}
.level>span:last-child{display:flex;flex-direction:column;min-width:0}
.level strong{font-size:14px}
.level small{font:12px var(--font-mono);color:var(--text-3)}
.level .bubble{width:28px;height:28px;border-color:var(--icon-off);font-size:12.5px;color:var(--text-2)}
.level:is([aria-pressed=true],[aria-current],:has(input:checked)){border-color:var(--navy)}
.level:is([aria-pressed=true],[aria-current],:has(input:checked)) .bubble{border-color:var(--navy);background:var(--navy);color:#fff}
.daypick{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}
.daypick .pick{flex:none;flex-direction:column;gap:2px;width:58px;min-height:68px;padding:0;border-radius:var(--r-md)}
.daypick b{font-size:12.5px}
.daypick .pick>span{font:500 18px var(--font-mono)}
.daypick small{font-size:11.5px;font-weight:600}
.slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.slots .pick{height:48px;border-color:var(--line-strong);font:500 16px var(--font-mono)}
.pages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.page{position:relative;display:flex;flex-direction:column;justify-content:flex-end;aspect-ratio:3/4;overflow:hidden;border:1px solid var(--line);border-radius:var(--r);background:repeating-linear-gradient(transparent 0 13px,var(--line-soft) 13px 14px) var(--surface)}
.page img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.page-label{position:relative;padding:5px 8px;border-top:1px solid var(--line-soft);background:rgba(255,255,255,.92);font-size:12.5px;font-weight:600}
.page-x{position:absolute;top:0;right:0;display:flex;align-items:flex-start;justify-content:flex-end;width:44px;height:44px;padding:6px;border:0;background:none}
.page-x::before{content:"×";display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--navy);color:#fff;font-size:17px;line-height:1}
.page .pill{position:absolute;top:6px;right:6px}
.page.is-loading{align-items:center;justify-content:center;gap:8px;padding:10px;background:var(--surface);font-size:12.5px;font-weight:600;color:var(--text-2)}
.pages .upload-tile{aspect-ratio:3/4;min-height:0;gap:6px;padding:6px;border-radius:var(--r);font-size:13.5px}
.viewer{display:flex;flex-direction:column;gap:12px;padding:14px}
.viewer-stage{display:flex;justify-content:center;overflow:auto;padding:18px;border-radius:var(--r-md);background:var(--grey-bg)}
.viewer-stage>*{width:calc(min(100%,560px) * var(--zoom,1));max-width:none;flex:none;transform:rotate(var(--rot,0deg));box-shadow:0 4px 14px rgba(16,36,59,.1);transition:transform .2s}
.paper{position:relative;display:flex;flex-direction:column;gap:40px;min-height:560px;padding:34px 28px 28px 56px;background:repeating-linear-gradient(transparent 0 33px,var(--line) 33px 34px) #fff;font:italic 19px/34px var(--font-math);color:#1F3550}
.paper::before{content:"";position:absolute;top:0;bottom:0;left:44px;width:1px;background:#F3B7B1}
.paper>div{display:flex;align-items:flex-start;gap:14px;white-space:pre-line}
.paper>div>:first-child{flex:1}
.mark{display:inline-flex;align-items:center;justify-content:center;flex:none;width:34px;height:34px;border:2px solid currentColor;border-radius:50%;font:normal 700 15px var(--font-mono)}
.mark-ok{color:var(--teal-ink)}.mark-bad{color:var(--red)}.mark-blank{color:var(--text-3)}
.mark-none{border-style:dashed;color:#A3AFBF}
.dots{display:flex;flex-wrap:wrap;gap:4px}
.dots>i{width:16px;height:16px;border:1.5px dashed var(--grey-dot);border-radius:50%}
.dots>.ok{border:0;background:var(--teal)}.dots>.bad{border:0;background:var(--red)}.dots>.blank{border:0;background:var(--line-strong)}
.qrow{display:flex;align-items:center;gap:10px}
.qrow>.mono{flex:none;width:56px;font-size:14px;font-weight:600;white-space:nowrap}
.qrow>.seg{flex:1}
.now{display:flex;align-items:center;gap:12px;padding:12px 12px 12px 16px;border-radius:16px;background:var(--navy);color:#fff}
.now>div{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}
.now .label-mono{font-size:12px;color:var(--on-navy)}
.now small{font-size:13px;color:var(--on-navy)}
.now .btn{border:0;background:#fff;color:var(--navy);font-weight:700}
.lessonpick{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}
.lessonpick>*{display:flex;flex:none;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-width:104px;min-height:60px;padding:6px 12px;border:1.5px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--text);text-align:left}
.lessonpick>:hover{color:var(--text);text-decoration:none}
.lessonpick>:is([aria-current],[aria-pressed=true]){border-color:var(--navy)}
.lessonpick time{font-size:13px;font-weight:600;color:var(--text-3)}
.lessonpick .is-now time{color:var(--blue-ink)}
.lessonpick strong{font-size:14px}
.lessonpick small{font-size:12px;font-weight:600;color:var(--text-3)}
.lessonpick small:is(.ok,.wait){color:inherit}
.lessonpick small.ok{color:var(--teal-ink)}.lessonpick small.wait{color:var(--amber-ink)}
.actionbar-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.tabbar{position:sticky;bottom:0;z-index:5;display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;padding:4px 6px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface)}
.tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:56px;color:var(--text-2);font-size:12.5px;font-weight:600}
.tabbar a:hover{color:var(--text);text-decoration:none}
.tabbar a[aria-current=page]{color:var(--text);font-weight:700}
.tabbar svg{width:22px;height:22px}
.has-tabbar .side>.nav{display:none}
@media (min-width:52rem){.tabbar{display:none}.has-tabbar .side>.nav{display:flex}}
.wgrid-scroll{overflow-x:auto}
.wgrid{display:grid;grid-template-columns:56px repeat(7,minmax(0,1fr));gap:6px;min-width:880px}
.wg-day{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center}
.wg-day>span{font-size:12.5px;font-weight:600;color:var(--text-3)}
.wg-day>b{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;font:500 18px var(--font-mono)}
.wg-day>small{font-size:12.5px;color:var(--text-2)}
.wg-day.is-today>span{color:var(--text)}
.wg-day.is-today>b{border-radius:50%;background:var(--navy);color:#fff;font-size:16px;font-weight:600}
.wg-day.is-holiday>*{color:var(--amber-ink)}
.wg-gutter,.wg-col{position:relative;height:calc(var(--hours,11) * 48px)}
.wgrid>:first-child,.wg-gutter{position:sticky;left:0;z-index:2;background:var(--surface)}
.wg-gutter li{height:48px;font:12px/1 var(--font-mono);color:var(--text-3);text-align:right;padding-right:6px}
.wg-now-label{position:absolute;right:6px;top:calc(var(--at) * .8px - 7px);padding:1px 0;background:var(--paper);font:600 12px/1 var(--font-mono);color:var(--amber-ink)}
.wg-col{overflow:hidden;border:1px solid var(--line);border-radius:var(--r);background:repeating-linear-gradient(transparent 0 47px,var(--line-soft) 47px 48px) var(--surface)}
.wg-col.is-today{border-color:var(--navy);box-shadow:0 0 0 .5px var(--navy)}
.wg-col.is-holiday{background:var(--amber-bg)}
.wg-col.is-closed{background:#F1F4F8}
.wg-off{position:absolute;left:0;right:0;top:calc(var(--start) * .8px);height:calc(var(--dur) * .8px);background:#F1F4F8}
.wg-lesson{position:absolute;left:4px;right:4px;top:calc(var(--start) * .8px + 2px);height:calc(var(--dur) * .8px - 4px);display:flex;flex-direction:column;gap:1px;overflow:hidden;padding:4px 8px;border-radius:var(--r-sm);background:var(--blue-bg);color:var(--text)}
a.wg-lesson:hover{color:var(--text);text-decoration:none;box-shadow:0 0 0 1.5px var(--line-strong)}
.wg-lesson>span{font:600 11.5px/1.3 var(--font-mono);color:var(--blue-ink)}
.wg-lesson>strong{overflow:hidden;font-size:13.5px;white-space:nowrap;text-overflow:ellipsis}
.wg-lesson:not(.is-away){z-index:1}
.wg-lesson.is-done{background:var(--teal-bg)}
.wg-lesson.is-done>span{color:var(--teal-ink)}
.wg-lesson.is-now{background:var(--navy);color:#fff}
.wg-lesson.is-now>span{color:var(--on-navy)}
.wg-lesson.is-moved{border:1.5px dashed var(--text-3);background:var(--surface)}
.wg-lesson.is-moved>span{color:var(--text-2)}
.wg-lesson.is-away{border:1.5px dashed var(--amber-ink);background:none;color:var(--amber-ink)}
.wg-lesson.is-away>span{color:inherit}
.wg-lesson.is-away>strong{text-decoration:line-through}
.wg-now{position:absolute;left:0;right:0;top:calc(var(--at) * .8px);height:2px;background:var(--amber)}
.wg-now::before{content:"";position:absolute;left:-1px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--amber)}
.wg-note{position:absolute;top:12px;left:8px;right:8px;display:flex;flex-direction:column;gap:2px;text-align:center;font-size:12px}
.wg-note strong{font-size:13px}
.is-holiday .wg-note{color:var(--amber-ink)}
.is-closed .wg-note{font-size:13px;font-weight:600;color:var(--text-3)}
.legend-keys{gap:8px 18px;font-size:13.5px}
.legend-keys>span::before{width:14px;height:14px;border:1px solid transparent;border-radius:4px}
.legend .k-free::before{border-color:var(--line-strong);background:var(--surface)}
.legend .k-closed::before{background:#F1F4F8}
.legend .k-holiday::before{background:var(--amber-bg)}
.legend .k-done::before{background:var(--teal-bg)}
.legend .k-planned::before{background:var(--blue-bg)}
.legend .k-now::before{background:var(--navy)}
.legend .k-moved::before{border:1.5px dashed var(--text-3)}
.avail>li{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;min-height:44px;border-top:1px solid var(--line-soft)}
.avail>li>:first-child{width:96px;font-size:15px;font-weight:600}
.datebadge.is-range{height:56px}
.datebadge.is-range span{font-size:15px}
.a4-tray{display:flex;justify-content:center;padding:16px;border-radius:var(--r-md);background:#F1F4F8}
.a4.a4-mini{max-width:250px;padding:14px 14px 10px;overflow:hidden;aspect-ratio:1/1.414}
.a4-mini .print-head{padding-bottom:6px}
.a4-mini .print-head strong{font-size:12.5px}
.a4-mini .print-head span{font-size:10.5px}
.a4-mini .print-week{grid-template-columns:1fr;gap:8px;margin-top:8px}
.a4-mini .print-week h3{font-size:11px}
.a4-mini .print-week :is(li,p){font-size:10.5px}
.avail-edit>li{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:12px 0;border-top:1px solid var(--line-soft)}
.avail-edit>li:first-child{border-top:0}
.avail-name{flex:0 0 100%;font-size:15px;font-weight:600}
.range{display:inline-flex;align-items:center;gap:6px;color:var(--text-3)}
.input.input-time{width:auto;min-width:112px;height:44px;padding:0 10px;font:16px var(--font-mono)}
.range-more>summary{display:inline-flex;align-items:center;min-height:44px;color:var(--blue-ink);font-size:14.5px;font-weight:600;list-style:none;cursor:pointer}
.range-more>summary::-webkit-details-marker{display:none}
.range-more[open]>summary{display:none}
.avail-edit .tag{margin-left:auto}
.avail-edit .field-error{flex-basis:100%}
@media (min-width:40rem){.avail-name{flex-basis:96px}}
.print-head{display:flex;flex-direction:column;gap:2px;padding-bottom:8px;border-bottom:1.5px solid var(--navy)}
.print-head strong{font:700 18px var(--font-head)}
.print-week{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 28px;margin-top:16px}
.print-week section{display:flex;flex-direction:column;gap:3px;break-inside:avoid}
.print-week h3{font:700 14px var(--font-ui);letter-spacing:0}
.print-week li,.print-week p{font-size:13px;color:var(--text-2)}
.print-week time{color:var(--text)}
