@font-face{font-family:Kodchasan;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/kodchasan-latin-600-normal-BlnReizo.woff2)format("woff2"),url(/assets/kodchasan-latin-600-normal-DP1drZy3.woff)format("woff")}@font-face{font-family:Kodchasan;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/kodchasan-latin-ext-600-normal-CVU0rQq5.woff2)format("woff2"),url(/assets/kodchasan-latin-ext-600-normal-D5EP74zT.woff)format("woff")}@font-face{font-family:Kodchasan;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/kodchasan-latin-700-normal-BYEX2bkL.woff2)format("woff2"),url(/assets/kodchasan-latin-700-normal-Dykfbgyu.woff)format("woff")}@font-face{font-family:Kodchasan;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/kodchasan-latin-ext-700-normal-BVFVi71M.woff2)format("woff2"),url(/assets/kodchasan-latin-ext-700-normal-QUko3kJF.woff)format("woff")}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lexend-latin-400-normal-CwRJVcUA.woff2)format("woff2"),url(/assets/lexend-latin-400-normal-CHypAkT3.woff)format("woff")}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lexend-latin-ext-400-normal-D38JI5AK.woff2)format("woff2"),url(/assets/lexend-latin-ext-400-normal-D9P7pMo-.woff)format("woff")}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/lexend-latin-500-normal-Dl-X5nog.woff2)format("woff2"),url(/assets/lexend-latin-500-normal-D9x1QWTH.woff)format("woff")}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/lexend-latin-ext-500-normal-Bo17xs96.woff2)format("woff2"),url(/assets/lexend-latin-ext-500-normal-DbCmXT_D.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff)format("woff")}:root{--nx-slate:#4a5d6e;--nx-slate-dark:#2f3e4b;--nx-slate-night:#1f2a33;--nx-slate-light:#5f7385;--nx-glacier:#1b88b8;--nx-glacier-dark:#15719a;--nx-glacier-light:#4fa8d3;--nx-white:#fff;--nx-mist-50:#f5f7f9;--nx-mist-100:#eef2f5;--nx-mist-200:#dce3e9;--nx-mist-300:#c3ced8;--nx-moss:#3e8e5a;--nx-moss-bg:#e3f1e7;--nx-dune:#d9822b;--nx-dune-bg:#fbeedf;--nx-lava:#d9480f;--nx-lava-bg:#fbe3da;--nx-info:#1b88b8;--nx-info-bg:#dff0f8;--nx-ocean:#0b5e8a;--nx-coral:#e8604c;--nx-forest:#2e5e3e;--nx-clay:#b85c2a;--nx-sand:#e6d2a8;--nx-font-display:"Kodchasan", "Lexend", "Segoe UI", sans-serif;--nx-font-body:"Lexend", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--nx-font-mono:"JetBrains Mono", ui-monospace, monospace;--nx-radius-sm:12px;--nx-radius-md:16px;--nx-radius-pill:999px;--nx-space-1:4px;--nx-space-2:8px;--nx-space-3:12px;--nx-space-4:16px;--nx-space-6:24px;--nx-space-8:32px;--nx-space-12:48px;--nx-shadow-float:0 2px 8px #2f3e4b14;--nx-focus:0 0 0 3px var(--nx-glacier);--nx-duration:.18s;--nx-bg:var(--nx-mist-50);--nx-surface:var(--nx-white);--nx-surface-2:var(--nx-mist-100);--nx-border:var(--nx-mist-200);--nx-text:var(--nx-slate-dark);--nx-text-2:var(--nx-slate-light);--nx-heading:var(--nx-slate);--nx-accent:var(--nx-glacier);--nx-link:var(--nx-glacier-dark);--nx-disabled:var(--nx-mist-300);--nx-moss-text:var(--nx-moss);--nx-dune-text:#a85f14;--nx-lava-text:var(--nx-lava);--nx-info-text:var(--nx-glacier-dark);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--nx-bg:var(--nx-slate-night);--nx-surface:var(--nx-slate-dark);--nx-text:var(--nx-mist-50);--nx-text-2:var(--nx-mist-300);--nx-accent:var(--nx-glacier-light);--nx-surface-2:var(--nx-slate-night);--nx-border:#3e5061;--nx-heading:var(--nx-mist-50);--nx-link:var(--nx-glacier-light);--nx-disabled:var(--nx-slate-light);--nx-moss-bg:#3e8e5a2e;--nx-dune-bg:#d9822b2e;--nx-lava-bg:#d9480f2e;--nx-info-bg:#1b88b82e;--nx-shadow-float:0 2px 8px #00000059;--nx-moss-text:#7cc495;--nx-dune-text:#f0a960;--nx-lava-text:#f48a63;--nx-info-text:var(--nx-glacier-light)}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--nx-bg);color:var(--nx-text);font-family:var(--nx-font-body);margin:0;font-size:17px;line-height:1.55}h1,h2,h3,h4,h5{color:var(--nx-heading);margin:0 0 var(--nx-space-3);font-family:var(--nx-font-display)}h1,h2{letter-spacing:-.01em;font-weight:700;line-height:1.1}h3,h4,h5{font-weight:600;line-height:1.2}h1{font-size:40px}h2{font-size:32px}h3{font-size:24px}h4{font-size:20px}h5{font-size:17px}p{margin:0 0 var(--nx-space-4);max-width:70ch}small,.nx-small{font-size:14px}.nx-caption{color:var(--nx-text-2);font-size:12px}.nx-muted{color:var(--nx-text-2)}.nx-mono,code{font-family:var(--nx-font-mono);font-size:.94em}.nx-label-caps{font-family:var(--nx-font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--nx-text-2);font-size:12px;font-weight:600}@media (width<=640px){body{font-size:16px}h1{font-size:32px}h2{font-size:26px}h3{font-size:20px}h4{font-size:18px}}:focus{outline:none}:focus-visible{box-shadow:var(--nx-focus);border-radius:var(--nx-radius-sm);outline:none}[tabindex="-1"]:focus,[tabindex="-1"]:focus-visible{box-shadow:none;outline:none}.nx-visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.nx-btn{justify-content:center;align-items:center;gap:var(--nx-space-2);min-height:44px;padding:0 var(--nx-space-6);border-radius:var(--nx-radius-sm);background:var(--nx-glacier);color:var(--nx-white);font-family:var(--nx-font-display);cursor:pointer;transition:background-color var(--nx-duration) ease-out, border-color var(--nx-duration) ease-out;border:2px solid #0000;font-size:16px;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.nx-btn:hover{background:var(--nx-glacier-dark)}.nx-btn:disabled,.nx-btn[aria-disabled=true]{background:var(--nx-disabled);color:var(--nx-white);cursor:not-allowed;border-color:#0000}.nx-btn--secondary{border-color:var(--nx-heading);color:var(--nx-heading);background:0 0}.nx-btn--secondary:hover{background:var(--nx-surface-2)}.nx-btn--secondary:disabled{border-color:var(--nx-disabled);color:var(--nx-disabled);background:0 0}.nx-btn--ghost{color:var(--nx-heading);text-underline-offset:3px;background:0 0;border-color:#0000;text-decoration:underline}.nx-btn--ghost:hover{background:var(--nx-surface-2)}.nx-btn--danger{background:var(--nx-lava)}.nx-btn--danger:hover{background:#b83b0b}.nx-btn--small{min-height:32px;padding:0 var(--nx-space-3);border-radius:10px;font-size:14px}.nx-btn svg{flex:none;width:18px;height:18px}.nx-link{color:var(--nx-link);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:500;text-decoration:none}.nx-link:hover{text-underline-offset:3px;text-decoration:underline}p a,li a{color:var(--nx-link);text-underline-offset:3px;text-decoration:underline}.nx-field{gap:var(--nx-space-1);display:grid}.nx-label{color:var(--nx-text-2);font-size:14px;font-weight:500}.nx-input,.nx-select,.nx-textarea{width:100%;min-height:44px;padding:0 var(--nx-space-3);border:1px solid var(--nx-border);border-radius:var(--nx-radius-sm);background:var(--nx-surface-2);color:var(--nx-text);font:inherit;transition:box-shadow var(--nx-duration) ease-out}.nx-textarea{padding:var(--nx-space-3);resize:vertical;min-height:120px;line-height:1.5}.nx-input:focus,.nx-select:focus,.nx-textarea:focus{box-shadow:var(--nx-focus);border-color:#0000}.nx-input[aria-invalid=true]{border-color:var(--nx-lava)}.nx-input::placeholder,.nx-textarea::placeholder{color:var(--nx-text-2);opacity:.8}.nx-check{align-items:center;gap:var(--nx-space-2);cursor:pointer;display:inline-flex}.nx-check input{width:20px;height:20px;accent-color:var(--nx-glacier)}.nx-card{background:var(--nx-surface);border:1px solid var(--nx-border);border-radius:var(--nx-radius-md);padding:var(--nx-space-6);position:relative;overflow:hidden}.nx-card[class*=nx-card--]:before{content:"";background:var(--nx-card-status);height:4px;position:absolute;inset:0 0 auto}.nx-card--success{--nx-card-status:var(--nx-moss)}.nx-card--warning{--nx-card-status:var(--nx-dune)}.nx-card--danger{--nx-card-status:var(--nx-lava)}.nx-card--info{--nx-card-status:var(--nx-glacier)}.nx-table-wrap{border:1px solid var(--nx-border);border-radius:var(--nx-radius-md);overflow-x:auto}.nx-table{border-collapse:collapse;background:var(--nx-surface);width:100%;font-size:15px}.nx-table th{padding:var(--nx-space-3) var(--nx-space-4);text-align:left;font-family:var(--nx-font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--nx-text-2);border-bottom:1px solid var(--nx-border);white-space:nowrap;font-size:12px;font-weight:600}.nx-table td{padding:var(--nx-space-3) var(--nx-space-4);vertical-align:middle}.nx-table tbody tr:nth-child(2n){background:var(--nx-bg)}.nx-table .nx-num{text-align:right;font-family:var(--nx-font-mono);font-variant-numeric:tabular-nums}.nx-badge{align-items:center;gap:var(--nx-space-1);padding:2px var(--nx-space-3);border-radius:var(--nx-radius-pill);background:var(--nx-surface-2);color:var(--nx-text-2);white-space:nowrap;font-size:14px;font-weight:500;line-height:1.6;display:inline-flex}.nx-badge svg{flex:none;width:14px;height:14px}.nx-badge--success{background:var(--nx-moss-bg);color:var(--nx-moss-text)}.nx-badge--warning{background:var(--nx-dune-bg);color:var(--nx-dune-text)}.nx-badge--danger{background:var(--nx-lava-bg);color:var(--nx-lava-text)}.nx-badge--info{background:var(--nx-info-bg);color:var(--nx-info-text)}.nx-msg{align-items:flex-start;gap:var(--nx-space-3);padding:var(--nx-space-3) var(--nx-space-4);border-left:4px solid var(--nx-msg-color,var(--nx-glacier));border-radius:4px var(--nx-radius-sm) var(--nx-radius-sm) 4px;background:var(--nx-msg-bg,var(--nx-info-bg));color:var(--nx-text);display:flex}.nx-msg svg{width:20px;height:20px;color:var(--nx-msg-text,var(--nx-info-text));flex:none;margin-top:2px}.nx-msg>div{white-space:normal;overflow-wrap:anywhere;flex:1;min-width:0}.nx-msg--success{--nx-msg-color:var(--nx-moss);--nx-msg-bg:var(--nx-moss-bg);--nx-msg-text:var(--nx-moss-text)}.nx-msg--warning{--nx-msg-color:var(--nx-dune);--nx-msg-bg:var(--nx-dune-bg);--nx-msg-text:var(--nx-dune-text)}.nx-msg--danger{--nx-msg-color:var(--nx-lava);--nx-msg-bg:var(--nx-lava-bg);--nx-msg-text:var(--nx-lava-text)}.nx-msg--info{--nx-msg-color:var(--nx-glacier);--nx-msg-bg:var(--nx-info-bg);--nx-msg-text:var(--nx-info-text)}.nx-tabs{gap:var(--nx-space-1);border-bottom:1px solid var(--nx-border);display:flex;overflow-x:auto}.nx-tab{padding:var(--nx-space-3) var(--nx-space-4);color:var(--nx-text-2);font-family:var(--nx-font-display);cursor:pointer;white-space:nowrap;transition:color var(--nx-duration) ease-out, border-color var(--nx-duration) ease-out;background:0 0;border:0;border-bottom:3px solid #0000;font-size:16px;font-weight:600}.nx-tab:hover{color:var(--nx-heading)}.nx-tab[aria-selected=true]{color:var(--nx-accent);border-bottom-color:var(--nx-accent)}.nx-dialog{max-width:min(480px,100vw - 32px);padding:var(--nx-space-6);border:1px solid var(--nx-border);border-radius:var(--nx-radius-md);background:var(--nx-surface);color:var(--nx-text);box-shadow:var(--nx-shadow-float)}.nx-dialog::backdrop{background:#1f2a3373}.nx-contours{background-color:var(--nx-bg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='360' height='360' viewBox='0 0 100 100'%3E%3Cg fill='none' stroke='%23DCE3E9' stroke-width='0.8' stroke-linecap='round'%3E%3Cpath d='M22 60 C14 46 22 26 44 20 C66 14 86 28 84 50 C82 72 62 84 42 80 C32 78 26 68 22 60 Z'/%3E%3Cpath d='M34 58 C29 48 36 36 50 33 C64 30 74 41 72 54 C70 66 57 72 46 68 C40 66 37 63 34 58 Z'/%3E%3Cpath d='M46 56 C43 50 47 43 55 42 C63 41 68 47 66 54 C64 60 57 63 51 61 C49 60 47 58 46 56 Z'/%3E%3Cpath d='M8 70 C2 50 10 16 42 8 C74 0 98 22 96 52 C94 82 66 98 38 92 C22 88 12 82 8 70 Z'/%3E%3C/g%3E%3C/svg%3E")}@media (prefers-color-scheme:dark){.nx-contours{background-image:none}}.nx-wordmark{font-family:var(--nx-font-display);letter-spacing:-.01em;color:var(--nx-heading);align-items:center;font-weight:700;line-height:1;display:inline-flex}.nx-wordmark__x{width:.78em;height:.78em;color:var(--nx-glacier);margin:0 .02em}.nx-wordmark--negative{color:var(--nx-white)}@media (prefers-color-scheme:dark){.nx-wordmark__x{color:var(--nx-glacier-light)}}.nx-powered{color:var(--nx-text-2);white-space:nowrap;font-size:13px;text-decoration:none}.nx-powered__name{font-family:var(--nx-font-display);font-weight:600}.nx-powered__4{color:var(--nx-glacier-dark);font-size:1.25em;line-height:0}@media (prefers-color-scheme:dark){.nx-powered__4{color:var(--nx-glacier-light)}}a.nx-powered:hover .nx-powered__name{text-underline-offset:3px;text-decoration:underline}.nx-logo-compact{align-items:center;gap:10px;font-size:26px;text-decoration:none;display:inline-flex}.nx-logo-compact img{width:32px;height:32px;display:block}.nx-logo-full{width:100%;max-width:360px;height:auto;display:block}.nx-only-dark{display:none}@media (prefers-color-scheme:dark){.nx-only-light{display:none}.nx-only-dark{display:block}}.nx-route{justify-content:space-between;align-items:center;gap:var(--nx-space-1);height:32px;margin:0;padding:0;list-style:none;display:flex;position:relative}.nx-route:before{content:"";border-top:3px dotted var(--nx-mist-300);position:absolute;top:50%;left:6px;right:6px}.nx-route__stop{background:var(--nx-mist-300);border-radius:50%;flex:none;width:12px;height:12px;position:relative}.nx-route__stop--done{background:var(--nx-moss)}.nx-route__stop--current{background:0 0;border-radius:0;width:24px;height:28px;margin-top:-10px}.nx-route__stop--current svg{width:24px;height:28px;animation:.3s ease-out nx-pin-land;display:block}@media (prefers-color-scheme:dark){.nx-route:before{border-top-color:var(--nx-slate-light)}.nx-route__stop--open{background:var(--nx-slate-light)}}@keyframes nx-pin-land{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important;animation-duration:0s!important}}body{min-height:100vh}#app{flex-direction:column;min-height:100vh;display:flex}.pf-header{background:var(--nx-surface);border-bottom:1px solid var(--nx-border)}.pf-header__inner{max-width:1160px;padding:var(--nx-space-3) var(--nx-space-6);align-items:center;gap:var(--nx-space-6);margin:0 auto;display:flex}.pf-header__user{align-items:center;gap:var(--nx-space-4);margin-left:auto;display:flex}.pf-header__name{font-weight:500}.pf-header__sub{color:var(--nx-text-2);font-weight:400}.pf-header--teacher{background:var(--nx-slate-dark);border-bottom-color:var(--nx-slate-dark);color:var(--nx-white)}.pf-header--teacher .pf-header__sub{color:var(--nx-mist-300)}.pf-header--teacher .nx-btn--secondary{border-color:var(--nx-mist-300);color:var(--nx-white)}.pf-header--teacher .nx-btn--secondary:hover{background:#ffffff14}.pf-nav a{color:var(--nx-mist-300);font-family:var(--nx-font-display);padding:var(--nx-space-2) 0;border-bottom:3px solid #0000;font-weight:600;text-decoration:none}.pf-nav{gap:var(--nx-space-6);display:flex}.pf-nav a:hover,.pf-nav a[aria-current=page]{color:var(--nx-white);border-bottom-color:var(--nx-glacier-light)}.pf-header__account{color:inherit;padding:var(--nx-space-2) 0;border-bottom:3px solid #0000;text-decoration:none}.pf-header--teacher .pf-header__account{color:var(--nx-white)}.pf-header__account:hover,.pf-header__account[aria-current=page]{text-underline-offset:4px;text-decoration:underline}.pf-header--teacher .pf-header__account[aria-current=page]{border-bottom-color:var(--nx-glacier-light);text-decoration:none}@media (width<=640px){.pf-header__inner{padding:var(--nx-space-3) var(--nx-space-4);gap:var(--nx-space-3);flex-wrap:wrap}.pf-header__name:not(.pf-header__account){display:none}.nx-logo-compact{font-size:22px}}.pf-main{width:100%;max-width:1160px;padding:var(--nx-space-6) var(--nx-space-6) var(--nx-space-8);flex:1;margin:0 auto}@media (width<=640px){.pf-main{padding:var(--nx-space-4)}}.pf-main h1{font-size:32px}@media (width<=640px){.pf-main h1{font-size:26px}}.pf-stack{gap:var(--nx-space-4);display:grid}.pf-actions{gap:var(--nx-space-3);flex-wrap:wrap;align-items:center;display:flex}.pf-actions--end{justify-content:flex-end}.pf-page-head{justify-content:space-between;align-items:flex-end;gap:var(--nx-space-4);margin-bottom:var(--nx-space-4);flex-wrap:wrap;display:flex}.pf-page-head h1{margin:0}.pf-section{margin-top:var(--nx-space-6)}.pf-empty{padding:var(--nx-space-6);text-align:center;color:var(--nx-text-2)}.pf-empty p{margin-inline:auto}.pf-intro{margin:0}.pf-msg:not(:empty),.pf-form-msg:not(:empty){margin-bottom:var(--nx-space-4)}.pf-rows{gap:var(--nx-space-2);margin:0;padding:0;list-style:none;display:grid}.pf-row{background:var(--nx-surface);border:1px solid var(--nx-border);border-radius:var(--nx-radius-sm)}.pf-row__line{align-items:center;gap:var(--nx-space-3);padding:var(--nx-space-1) var(--nx-space-3) var(--nx-space-1) var(--nx-space-4);min-height:56px;display:flex}.pf-row__toggle{align-items:center;gap:var(--nx-space-4);min-width:0;min-height:44px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:auto;padding:0;text-decoration:none;display:flex}.pf-row__toggle:hover .pf-row__name{color:var(--nx-link)}.pf-row__name{min-width:0;font-family:var(--nx-font-display);color:var(--nx-heading);overflow-wrap:anywhere;flex:0 220px;font-size:17px;font-weight:600}.pf-row__facts{gap:var(--nx-space-1) var(--nx-space-4);color:var(--nx-text-2);flex-wrap:wrap;font-size:14px;display:flex}.pf-row__chevron{color:var(--nx-text-2);margin-left:auto;display:inline-flex}.pf-row__chevron svg{width:18px;height:18px;transition:transform var(--nx-duration) ease-out}.pf-row__toggle[aria-expanded=true] .pf-row__chevron svg{transform:rotate(180deg)}.pf-row__go,.pf-row__extra{flex:none}.pf-row__details{padding:var(--nx-space-3) var(--nx-space-4) var(--nx-space-4);border-top:1px solid var(--nx-border)}.pf-row__details[hidden]{display:none}.pf-row>.pf-form-msg:not(:empty){margin:0 var(--nx-space-4) var(--nx-space-3)}.pf-row__points{margin:0 0 var(--nx-space-2);font-size:15px}.pf-row--done .pf-row__name{color:var(--nx-text)}.pf-app-row.pf-row--enabled{box-shadow:inset 4px 0 0 var(--nx-moss)}@media (width<=560px){.pf-row__line{padding:var(--nx-space-2) var(--nx-space-3);flex-wrap:wrap}.pf-row__toggle{row-gap:var(--nx-space-1);flex-wrap:wrap;flex-basis:100%}.pf-row__name{flex-basis:calc(100% - 40px)}.pf-row__toggle .pf-route-mini{flex-basis:100%;order:1;max-width:none}.pf-row__go{margin-left:auto}}.nx-route.pf-route-mini{flex:160px;max-width:280px;height:24px}.pf-route-mini:before{border-top-width:2px;left:4px;right:4px}.pf-route-mini .nx-route__stop{width:8px;height:8px}.pf-route-mini .nx-route__stop--current{width:16px;height:19px;margin-top:-8px}.pf-route-mini .nx-route__stop--current svg{width:16px;height:19px}.pf-stops{gap:var(--nx-space-1);margin:0;padding:0;list-style:none;display:grid}.pf-stops__item{gap:var(--nx-space-2);grid-template-columns:20px minmax(0,1fr) auto;align-items:center;font-size:15px;display:grid}.pf-stops__item svg{width:18px;height:18px;color:var(--nx-slate-light)}.pf-stops__item--done svg{color:var(--nx-moss)}.pf-stops__item--current svg,.pf-stops__item--started svg{color:var(--nx-accent)}.pf-stops__item--current span:first-of-type{font-weight:600}.pf-stops__status{color:var(--nx-text-2);text-align:right;font-size:13px}.pf-finished>summary{cursor:pointer;margin:var(--nx-space-6) 0 var(--nx-space-2);align-items:center;gap:var(--nx-space-2);min-height:44px;display:flex}.pf-switch{align-items:center;gap:var(--nx-space-2);cursor:pointer;flex:none;min-height:44px;font-size:14px;display:inline-flex}.pf-switch input{appearance:none;border-radius:var(--nx-radius-pill);background:var(--nx-slate-light);cursor:pointer;width:40px;height:24px;transition:background var(--nx-duration) ease-out;flex:none;margin:0;position:relative}.pf-switch input:before{content:"";background:var(--nx-white);width:18px;height:18px;transition:transform var(--nx-duration) ease-out;border-radius:50%;position:absolute;top:3px;left:3px}.pf-switch input:checked{background:var(--nx-moss)}.pf-switch input:checked:before{transform:translate(16px)}.pf-switch input:focus-visible{box-shadow:var(--nx-focus);outline:none}.pf-switch input:disabled{opacity:.6;cursor:progress}.pf-footer{border-top:1px solid var(--nx-border);background:var(--nx-bg)}.pf-footer__inner{max-width:1160px;padding:var(--nx-space-3) var(--nx-space-6);gap:var(--nx-space-1) var(--nx-space-2);color:var(--nx-text-2);flex-wrap:wrap;align-items:center;margin:0 auto;font-size:13px;display:flex}.pf-footer a{color:var(--nx-text-2);text-underline-offset:3px;padding:var(--nx-space-2) 0;text-decoration:underline}.pf-footer a:hover{color:var(--nx-heading)}.pf-footer .nx-powered{padding-left:var(--nx-space-4);margin-left:auto}@media (width<=640px){.pf-footer__inner{padding:var(--nx-space-2) var(--nx-space-4)}}.pf-legal{max-width:760px;margin:0 auto}.pf-legal h1{margin-bottom:var(--nx-space-4)}.pf-legal h2{margin:var(--nx-space-6) 0 var(--nx-space-2);font-size:22px}.pf-legal h3{margin:var(--nx-space-4) 0 var(--nx-space-2);font-size:18px}.pf-legal p,.pf-legal ul{margin:0 0 var(--nx-space-3);max-width:none}.pf-legal ul{padding-left:var(--nx-space-6);gap:var(--nx-space-1);display:grid}.pf-legal{overflow-wrap:anywhere}.pf-privacy-note{color:var(--nx-text-2);margin:0}.pf-auth{padding:var(--nx-space-8) var(--nx-space-4);flex:1;place-items:center;display:grid}.pf-auth__card{gap:var(--nx-space-4);width:100%;max-width:440px;padding:var(--nx-space-8);display:grid}.pf-auth__card h1{margin:0}.pf-auth__logo{margin:0 auto var(--nx-space-2);width:100%;max-width:340px}.pf-auth__foot{justify-content:space-between;align-items:center;gap:var(--nx-space-4);font-size:14px;display:flex}.pf-lang{gap:var(--nx-space-2);color:var(--nx-text-2);align-items:center;display:inline-flex}.pf-lang [aria-pressed=true]{color:var(--nx-heading);text-underline-offset:3px;font-weight:600;text-decoration:underline}@media (width<=640px){.pf-auth__card{padding:var(--nx-space-6)}}.pf-code-input{font-family:var(--nx-font-mono);letter-spacing:.06em;text-align:center;font-size:20px}.pf-section-card{margin-bottom:var(--nx-space-6)}details.pf-section>summary{cursor:pointer;margin-bottom:var(--nx-space-3)}.pf-form-grid{gap:var(--nx-space-4);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.pf-cell-actions{gap:var(--nx-space-3);flex-wrap:wrap;justify-content:flex-end;align-items:center;display:flex}.pf-back{margin-bottom:var(--nx-space-3);font-size:15px;display:inline-block}.pf-tab-panel{padding-top:var(--nx-space-4);gap:var(--nx-space-4);display:grid}.pf-table-head{justify-content:space-between}.pf-table-head h3{margin:0}.pf-code{white-space:nowrap;letter-spacing:.04em}.pf-row-inactive td{color:var(--nx-text-2)}.pf-fieldset{border:1px solid var(--nx-border);border-radius:var(--nx-radius-sm);padding:var(--nx-space-3) var(--nx-space-4);gap:var(--nx-space-2);margin:0;display:grid}.pf-fieldset legend{padding:0 var(--nx-space-1)}.pf-section-list{gap:var(--nx-space-2);padding-left:var(--nx-space-6);display:grid}.pf-section-list label:has(input:disabled){color:var(--nx-text-2)}.pf-dashboard-view{max-width:320px}.pf-dashboard-view:empty{display:none}.pf-dashboard-table td{vertical-align:top;min-width:170px}.pf-dashboard-table td:first-child{white-space:nowrap;min-width:0}.pf-dashboard-table th:first-child,.pf-dashboard-table td:first-child{z-index:1;background:var(--nx-surface);box-shadow:inset -1px 0 0 var(--nx-border);position:sticky;left:0}.pf-dashboard-table tbody tr:nth-child(2n) td:first-child{background:var(--nx-bg)}.pf-dashboard-table th:nth-child(n+3),.pf-dashboard-table td:nth-child(n+3){border-left:1px dashed var(--nx-mist-300)}.pf-dashboard-table--single td:last-child{width:100%}.pf-cell{gap:var(--nx-space-2);display:grid}.pf-cell__body{gap:2px;min-width:0;display:grid}.pf-cell__line{white-space:nowrap;text-overflow:ellipsis;min-width:0;line-height:1.4;display:block;overflow:hidden}.pf-cell__section{font-weight:600}.pf-cell__section--none{color:var(--nx-text-2);font-weight:400}.pf-cell__meta{color:var(--nx-text-2);font-size:13px}.pf-cell__actions{align-items:center;gap:var(--nx-space-1);display:flex}.pf-icon-btn.nx-btn{min-width:36px;padding:0 var(--nx-space-2)}.pf-icon-btn svg{width:18px;height:18px}.pf-cell--wide{gap:var(--nx-space-2) var(--nx-space-4);grid-template-columns:minmax(140px,240px) minmax(0,1fr) auto;align-items:center}.pf-cell--wide .pf-route-mini{max-width:none}@media (width<=720px){.pf-cell--wide{grid-template-columns:minmax(0,1fr)}}.pf-menu-btn.nx-btn{min-width:36px;padding:0 var(--nx-space-2);font-size:20px;line-height:1;text-decoration:none}.pf-menu{min-width:260px;max-width:min(360px,100vw - 16px);max-height:calc(100vh - 16px);padding:var(--nx-space-3);border:1px solid var(--nx-border);border-radius:var(--nx-radius-sm);background:var(--nx-surface);color:var(--nx-text);box-shadow:var(--nx-shadow-float);margin:0;position:fixed;inset:auto;overflow:auto}.pf-details:popover-open{gap:var(--nx-space-2);display:grid}[popover]:not(:popover-open){display:none}.pf-details p{margin:0}.pf-details__title{font-family:var(--nx-font-display);color:var(--nx-heading);font-weight:600}.pf-details .pf-route-mini{max-width:none}.pf-flash{animation:1.2s ease-out pf-flash}@keyframes pf-flash{0%{background:var(--nx-info-bg)}to{background:0 0}}.pf-account{gap:var(--nx-space-4);max-width:640px;display:grid}.pf-account p{margin:0}.pf-account__danger-title{margin:0;font-size:20px}.pf-facts{gap:var(--nx-space-2) var(--nx-space-4);grid-template-columns:max-content minmax(0,1fr);margin:0;display:grid}.pf-facts dt{color:var(--nx-text-2)}.pf-facts dd{overflow-wrap:anywhere;margin:0;font-weight:500}.pf-print-cards{display:none}@media print{:root{--nx-bg:#fff;--nx-surface:#fff;--nx-text:#2f3e4b;--nx-text-2:#5f7385;--nx-heading:#4a5d6e}@page{margin:12mm}body{background:#fff}.pf-header,.pf-no-print,.pf-students,.pf-msg,.nx-tabs{display:none!important}.pf-main{max-width:none;padding:0}.pf-tab-panel{padding:0;display:block}.pf-print-cards{grid-template-columns:1fr 1fr;gap:6mm;display:grid}.pf-print-card{break-inside:avoid;border:1px dashed #9aa8b5;border-radius:4mm;gap:2mm;padding:6mm;display:grid}.pf-print-card p{margin:0}.pf-print-card .nx-logo-compact{font-size:18px}.pf-print-card .nx-logo-compact img{width:24px;height:24px}.pf-print-card__name{font-size:15px;font-weight:500}.pf-print-card__label{text-transform:uppercase;letter-spacing:.1em;color:#5f7385;font-size:11px}.pf-print-card__code{font-family:var(--nx-font-mono);letter-spacing:.06em;color:#2f3e4b;font-size:22px}.pf-print-card__hint{color:#5f7385;font-size:12px}}
