.spinner{align-items:center;display:inline-flex}.spinner-ring{border:2px solid;border-radius:var(--r-full);border-block-start-color:#0000;block-size:1.25em;inline-size:1.25em;animation:.8s linear infinite spinner-turn}@keyframes spinner-turn{to{transform:rotate(1turn)}}.shell{grid-template-rows:auto 1fr auto;min-block-size:100vh;display:grid}.shell-skip{z-index:20;padding-block:var(--space-2);padding-inline:var(--space-4);border:var(--border);border-radius:var(--r-sm);background:var(--primary);color:var(--ink);font-weight:700;position:absolute;inset-block-start:var(--space-3);inset-inline-start:var(--space-3);transform:translateY(-200%)}.shell-skip:focus{transform:none}.shell-header{justify-content:space-between;align-items:center;gap:var(--space-4);padding-block:var(--space-3);padding-inline:var(--space-4);border-block-end:var(--border-strong) solid var(--ink);background:var(--surface);display:flex;position:relative}.shell-brand{align-items:center;gap:var(--space-3);min-block-size:var(--touch-min);color:var(--ink);text-decoration:none;display:inline-flex}.shell-mark{border:var(--border);border-radius:var(--r-md);background:var(--primary);block-size:44px;inline-size:44px;box-shadow:var(--shadow-sm);transition:transform var(--duration) var(--ease), box-shadow var(--duration) var(--ease);place-items:center;display:grid}.shell-brand-text{line-height:1.3;display:grid}.shell-brand-text strong{font-family:var(--font-display);font-weight:800}.shell-brand-text small{color:var(--ink-muted)}.shell-menu-toggle{inline-size:var(--touch-min);block-size:var(--touch-min);border:var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-sm);color:var(--ink);cursor:pointer;transition:transform var(--duration) var(--ease), box-shadow var(--duration) var(--ease);place-items:center;display:grid}.shell-brand:active .shell-mark{transform:var(--press);box-shadow:none}.shell-menu-toggle:active,.shell-menu-toggle[aria-expanded=true]{background:var(--primary);transform:var(--press);box-shadow:none}.shell-nav{inset-block-start:100%;inset-inline:var(--space-4);z-index:10;padding:var(--space-2);border:var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow);position:absolute}.shell-nav ul{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.shell-nav a{min-block-size:var(--touch-min);padding-inline:var(--space-4);border:var(--border-width) solid transparent;border-radius:var(--r-sm);color:var(--ink);align-items:center;font-weight:700;text-decoration:none;display:flex}.shell-nav a[aria-current=page]{border-color:var(--ink);background:var(--active);color:var(--on-active);box-shadow:var(--shadow-sm)}.shell-main{inline-size:min(100%,1100px);padding:var(--space-5) var(--space-4);margin-inline:auto}.shell-main:focus{outline:none}.shell-footer{padding:var(--space-5) var(--space-4);border-block-start:var(--border-strong) solid var(--ink);background:var(--surface);color:var(--ink-muted);font-size:var(--text-sm);text-align:center}@media (hover:hover){.shell-brand:hover:not(:active) .shell-mark,.shell-menu-toggle:hover:not(:active):not([aria-expanded=true]){transform:var(--lift);box-shadow:var(--shadow)}.shell-nav a:hover{border-color:var(--ink)}}@media (width>=768px){.shell-menu-toggle{display:none}.shell-nav,.shell-nav[hidden]{box-shadow:none;border:0;padding:0;display:block;position:static}.shell-nav ul{gap:var(--space-2);display:flex}}.alert{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border:var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-sm);color:var(--ink);border-inline-start-width:8px;display:flex}.alert .icon{flex:none;margin-block-start:.2em}.alert-body{flex:1}.alert-info{background:var(--secondary-soft)}.alert-success{background:var(--success-bg)}.alert-error{background:var(--error-bg)}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-block-size:var(--touch-min);min-inline-size:var(--touch-min);padding-block:var(--space-2);padding-inline:var(--space-5);border:var(--border);border-radius:var(--r-md);color:var(--ink);text-align:center;cursor:pointer;transition:transform var(--duration) var(--ease), box-shadow var(--duration) var(--ease), background-color var(--duration) var(--ease);font-weight:700;line-height:1.4;text-decoration:none;display:inline-flex;position:relative}.btn-primary{background:var(--primary);box-shadow:var(--shadow-sm)}.btn-secondary{background:var(--surface);box-shadow:var(--shadow-sm)}@media (hover:hover){.btn-primary:hover:not(:disabled):not([aria-disabled=true]){background:var(--primary-hover)}.btn-primary:hover:not(:disabled):not([aria-disabled=true]):not(:active),.btn-secondary:hover:not(:disabled):not([aria-disabled=true]):not(:active){transform:var(--lift);box-shadow:var(--shadow)}}.btn-primary:active:not(:disabled):not([aria-disabled=true]),.btn-secondary:active:not(:disabled):not([aria-disabled=true]){transform:var(--press);box-shadow:none}.btn-ghost{background:var(--bg)}@media (hover:hover){.btn-ghost:hover:not(:disabled):not([aria-disabled=true]):not(:active){transform:var(--lift);background:var(--surface);box-shadow:var(--shadow-sm)}}.btn-ghost:active:not(:disabled):not([aria-disabled=true]){transform:var(--press)}.btn:disabled,.btn[aria-disabled=true]{box-shadow:none;opacity:.55;cursor:not-allowed}.btn[aria-busy=true]{opacity:1;cursor:progress}.btn[aria-busy=true] .btn-label{visibility:hidden}.btn-spinner{justify-content:center;position:absolute;inset:0}.field{gap:var(--space-2);display:grid}.field-label{font-weight:700}.field-required,.field-hint{color:var(--ink-muted);font-size:var(--text-sm);font-weight:400}.field-control{inline-size:100%;min-block-size:var(--touch-min);padding-block:var(--space-2);padding-inline:var(--space-4);border:var(--border);border-radius:var(--r-sm);background:var(--surface);transition:box-shadow var(--duration) var(--ease)}.field-control:focus-visible{outline:var(--focus-width) solid var(--primary);outline-offset:0;box-shadow:0 0 0 calc(var(--focus-width) + 2px) var(--ink), var(--shadow-sm)}@media (hover:hover){.field-control:hover{box-shadow:var(--shadow-sm)}}textarea.field-control{resize:vertical;min-block-size:8rem}.field-invalid .field-control{border-color:var(--error);border-width:var(--border-strong)}.field-error{align-items:center;gap:var(--space-1);color:var(--error);font-size:var(--text-sm);font-weight:700;display:flex}.surface{padding:var(--space-5);border:var(--border);border-radius:var(--r-lg)}.surface-card{background:var(--surface);box-shadow:var(--shadow)}.surface-flat{background:var(--surface-muted)}.auth-page{padding-block:var(--space-6);place-items:center;display:grid}.auth-card{gap:var(--space-5);inline-size:min(100%,460px);display:grid}.auth-card h1{font-size:var(--text-xl)}.auth-form{gap:var(--space-4);display:grid}.auth-actions{gap:var(--space-3);display:grid}.auth-links{justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;font-weight:600;display:flex}.auth-divider{align-items:center;gap:var(--space-3);color:var(--ink-muted);font-size:var(--text-sm);display:flex}.auth-divider:before,.auth-divider:after{content:"";border-block-start:2px solid var(--ink);flex:1}.avatar{flex:none;display:inline-grid}.avatar-image{object-fit:contain;block-size:100%;inline-size:100%}.avatar-placeholder{border:var(--border);border-radius:var(--r-md);background:var(--primary);box-shadow:var(--shadow-sm);place-items:center;display:grid}.avatar-image{border:var(--border);border-radius:var(--r-md);background:var(--bg);box-shadow:var(--shadow-sm)}.badge{align-items:center;gap:var(--space-1);padding-block:2px;padding-inline:var(--space-3);border:2px solid var(--ink);border-radius:var(--r-sm);color:var(--ink);font-size:var(--text-sm);font-weight:700;line-height:1.5;display:inline-flex}.badge-free{background:var(--secondary-soft)}.badge-locked{background:var(--surface-muted)}.badge-pending{background:var(--warning-bg)}.badge-success{background:var(--success-bg)}.badge-error{background:var(--error-bg)}.home{gap:var(--space-6);display:grid}.home-intro,.home-welcome{align-items:center;gap:var(--space-5);padding:var(--space-5) var(--space-6);border:var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-lg);flex-wrap:wrap;display:flex}.home-intro{gap:var(--space-3);background:var(--secondary-tint);display:grid}.home-steps{gap:var(--space-3) var(--space-5);flex-wrap:wrap;margin:0;padding:0;font-weight:700;list-style:none;display:flex}.home-steps li{align-items:center;gap:var(--space-2);display:inline-flex}.home-intro-actions{gap:var(--space-3);flex-wrap:wrap;margin:0;display:flex}.home-welcome-text{gap:var(--space-3);flex:320px;justify-items:start;display:grid}.home-welcome-text h1{font-size:clamp(1.75rem,1.2rem + 2vw,2.5rem)}.home-blocks{gap:var(--space-1);flex-wrap:wrap;inline-size:100%;display:flex}.home-blocks span{border:2px solid var(--ink);border-radius:var(--r-sm);background:var(--surface);flex:1 0 14px;block-size:18px;max-inline-size:36px}.home-blocks span.is-done{background:var(--primary)}.home-units-title{font-size:var(--text-xl)}.unit-grid{gap:var(--space-5);align-items:flex-start;display:flex}.unit-column{gap:var(--space-6);flex:1 1 0;min-inline-size:0;display:grid}@media (width<=899px){.unit-grid{align-items:stretch;gap:var(--space-6);flex-direction:column}.unit-column{display:contents}}.unit-card{border:var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow);display:grid;overflow:hidden}.unit-card-art{min-block-size:168px;padding:var(--space-3) var(--space-5) 0;border-block-end:var(--border);background:var(--primary);justify-content:flex-start;align-items:flex-end;display:flex;position:relative}.unit-card.is-even .unit-card-art{background:var(--secondary-tint)}.unit-card-art img{border:var(--border);border-radius:var(--r-md) var(--r-md) 0 0;background:var(--surface);object-fit:cover;border-block-end:0;block-size:150px;inline-size:150px;margin-block-end:-1px}.unit-card-number{font-family:var(--font-display);color:var(--ink);font-size:7.5rem;font-weight:900;line-height:1;position:absolute;inset-block-start:var(--space-2);inset-inline-end:var(--space-5)}.unit-card-head{gap:var(--space-1);padding:var(--space-5) var(--space-5) 0;display:grid}.unit-card-head h3{font-size:var(--text-lg)}.unit-count{font-size:var(--text-sm);color:var(--ink-muted);font-weight:700}.unit-description{color:var(--ink-muted)}.unit-card .lesson-list{padding:var(--space-4) var(--space-5) var(--space-5)}.lesson-row-number{border:2px solid var(--ink);border-radius:var(--r-sm);background:var(--surface-muted);block-size:32px;inline-size:32px;font-family:var(--font-display);flex:none;place-items:center;font-weight:800;display:inline-grid}.lesson-row.is-done .lesson-row-number{background:var(--primary)}.term-banner{align-items:center;gap:var(--space-5);padding:var(--space-5) var(--space-6);border:var(--border);border-radius:var(--r-lg);background:var(--lime);box-shadow:var(--shadow-lg);flex-wrap:wrap;display:flex}.term-banner img{border:var(--border);border-radius:var(--r-md);background:var(--surface);block-size:120px;inline-size:120px}.term-banner-text{gap:var(--space-2);flex:260px;display:grid}.term-banner-text h3{font-size:var(--text-xl)}.term-banner-links{gap:var(--space-3);flex:320px;margin:0;padding:0;list-style:none;display:grid}@media (width<=760px){.home-intro,.home-welcome,.term-banner{padding:var(--space-4)}.unit-card-art img{block-size:120px;inline-size:120px}.unit-card-number{font-size:5.5rem}}.lesson-list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.lesson-row{justify-content:space-between;align-items:center;gap:var(--space-3);min-block-size:var(--touch-min);padding:var(--space-3) var(--space-4);border:var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-sm);color:var(--ink);transition:transform var(--duration) var(--ease), box-shadow var(--duration) var(--ease);flex-wrap:wrap;font-weight:700;text-decoration:none;display:flex}.lesson-row:active{transform:var(--press);box-shadow:none}@media (hover:hover){.lesson-row:hover:not(:active){transform:var(--lift);box-shadow:var(--shadow)}}.lesson-row.is-free,.lesson-row.is-locked{position:relative}.lesson-row.is-free{margin-block-start:var(--space-3)}.lesson-row-corner{position:absolute;inset-block-start:0;inset-inline-start:var(--space-4);transform:translateY(-55%)}.lesson-row-corner .badge{background:var(--primary);box-shadow:var(--shadow-sm)}.lesson-row.is-locked{background:var(--surface-muted)}.lesson-row.is-locked .lesson-row-number{background:var(--primary);margin-block-start:10px;position:relative}.lesson-row.is-locked .lesson-row-number:before{content:"";border:3px solid var(--ink);border-block-end:0;border-start-start-radius:9px;border-start-end-radius:9px;block-size:11px;inline-size:18px;margin-inline:auto;position:absolute;inset-block-end:calc(100% + 2px);inset-inline:0}.lesson-row-badges{gap:var(--space-2);flex-wrap:wrap;display:inline-flex}.empty-state{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);flex-wrap:wrap;font-weight:600;display:flex}.lesson-shell{gap:var(--space-5);display:grid}.lesson-hero{gap:var(--space-5);padding:var(--space-5);border:var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow);align-items:center;display:grid}.lesson-hero.has-cover{grid-template-columns:minmax(0,1fr) minmax(0,300px)}.lesson-hero-text{gap:var(--space-3);display:grid}.lesson-hero-top{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.lesson-hero h1{font-size:clamp(1.8rem,4.2vw,2.8rem);font-weight:900;line-height:var(--leading-heading)}.lesson-back{min-block-size:36px;padding-inline:var(--space-3);font-size:var(--text-sm)}.lesson-description{max-inline-size:60ch;color:var(--ink-muted);font-size:var(--text-reading)}.lesson-cover{aspect-ratio:16/9;object-fit:cover;border:var(--border);border-radius:var(--r-md);inline-size:100%}.lesson-tabs{z-index:5;border:var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm);grid-template-columns:repeat(4,minmax(0,1fr));display:grid;position:sticky;inset-block-start:env(safe-area-inset-top,0px)}.lesson-tabs a{justify-content:center;align-items:center;gap:var(--space-2);min-block-size:56px;padding-inline:var(--space-2);color:var(--ink);font-family:var(--font-display);font-weight:800;font-size:var(--text-lg);text-decoration:none;display:flex}.lesson-tabs a+a{border-inline-start:var(--border)}.lesson-tabs a[aria-current=page]{background:var(--active);color:var(--on-active);box-shadow:inset 0 -5px 0 var(--ink)}@media (hover:hover){.lesson-tabs a:not([aria-current=page]):hover{background:var(--surface-muted)}}.lesson-tab-panel{min-inline-size:0}.lesson-tab-heading,.lesson-tab-section h2{font-size:var(--text-xl);font-weight:900}.lesson-tab-section{gap:var(--space-4);display:grid}.lesson-tab-intro{color:var(--ink-muted)}.lesson-exam-list{padding:0}.lesson-row-title{align-items:center;gap:var(--space-2);display:inline-flex}.lesson-row-meta{font-size:var(--text-sm)}.lesson-workspace{gap:var(--space-6);align-items:start;display:grid}@media (width>=1000px){.lesson-workspace{grid-template-columns:minmax(0,1fr) 270px}}.lesson-reading{gap:var(--space-6);min-inline-size:0;max-inline-size:72ch;display:grid}.lesson-aside{position:sticky;inset-block-start:88px}@media (width<=999px){.lesson-aside{display:none}}.lesson-outline{padding:var(--space-4);border:var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.lesson-outline h2{border-block-end:var(--border);font-size:var(--text-base);margin-block-end:var(--space-3);padding-block-end:var(--space-2);font-weight:900}.lesson-outline ol{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.lesson-outline button{align-items:center;gap:var(--space-2);min-block-size:40px;inline-size:100%;padding:var(--space-1) var(--space-2);border-radius:var(--r-sm);color:var(--ink);font:inherit;text-align:start;cursor:pointer;background:0 0;border:2px solid #0000;font-weight:700;display:flex}@media (hover:hover){.lesson-outline button:hover{border-color:var(--ink);background:var(--primary)}}.outline-number{border:2px solid var(--ink);border-radius:var(--r-sm);background:var(--primary);block-size:26px;inline-size:26px;font-family:var(--font-display);font-size:var(--text-sm);flex:none;place-items:center;font-weight:900;display:inline-grid}.lesson-body{counter-reset:lesson-section;font-size:var(--text-reading);line-height:2}.lesson-body>*+*{margin-block-start:var(--space-4)}.lesson-body h2,.lesson-body h3,.lesson-panel h2{scroll-margin-block-start:96px}.lesson-body h2{align-items:center;gap:var(--space-3);border-block-start:var(--border);font-family:var(--font-display);font-size:clamp(1.45rem,2.6vw,1.85rem);font-weight:900;line-height:var(--leading-heading);margin-block-start:var(--space-7);padding-block-start:var(--space-5);display:flex}.lesson-body h2:first-child{border-block-start:0;margin-block-start:0;padding-block-start:0}.lesson-body h2:before{counter-increment:lesson-section;content:counter(lesson-section);border:var(--border);border-radius:var(--r-md);background:var(--primary);block-size:44px;inline-size:44px;box-shadow:var(--shadow-sm);flex:none;place-items:center;font-size:1.1rem;display:inline-grid}.lesson-body h3{border-inline-start:6px solid var(--primary);margin-block-start:var(--space-6);padding-inline-start:var(--space-3);font-size:1.25rem;font-weight:800}.lesson-body h2+*,.lesson-body h3+*{margin-block-start:var(--space-3)}.lesson-body strong{box-shadow:inset 0 -.45em 0 var(--primary);font-weight:800}.lesson-body ul,.lesson-body ol{gap:var(--space-2);padding-inline-start:var(--space-6);display:grid}.lesson-body ul{list-style:none}.lesson-body ul>li{position:relative}.lesson-body ul>li:before{content:"";border:2px solid var(--ink);background:var(--primary);block-size:10px;inline-size:10px;position:absolute;inset-block-start:.8em;inset-inline-start:calc(-1 * var(--space-5))}.lesson-body ol>li::marker{font-family:var(--font-display);font-weight:900}.lesson-body blockquote{padding:var(--space-4) var(--space-5);border:var(--border);border-radius:var(--r-md);background:var(--surface-muted);border-inline-start-width:8px;margin-inline:0}.lesson-body img{border:var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-sm)}.lesson-body img[src^="/lesson-images/"]{aspect-ratio:16/9;object-fit:contain;background:var(--surface);inline-size:100%;display:block}.lesson-body img[src^="/lesson-images/"]+p{color:var(--ink-muted);font-size:var(--text-sm);text-align:center;margin-block-start:var(--space-2)}.lesson-body img[src^="/illustrations/"]{background:var(--surface);inline-size:min(100%,360px);margin-inline:auto;display:block}.lesson-body code{border:2px solid var(--ink);border-radius:var(--r-sm);background:var(--surface-muted);direction:ltr;unicode-bidi:isolate;padding-inline:.3em;font-size:.92em}.lesson-body pre{padding:var(--space-4);border:var(--border);border-radius:var(--r-md);background:var(--ink);color:var(--surface);text-align:start;direction:ltr;overflow-x:auto}.lesson-body pre code{color:inherit;background:0 0;border:0;padding:0}.lesson-body hr{border:0;border-block-start:var(--border)}.lesson-panel{border:var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.lesson-panel h2{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-block-end:var(--border);font-size:var(--text-lg);font-weight:900;display:flex}.lesson-panel-summary h2{background:var(--primary)}.lesson-panel-notes h2{background:var(--lime)}.lesson-panel .lesson-body{padding:var(--space-4) var(--space-5) var(--space-5)}.lesson-next{gap:var(--space-4);padding:var(--space-5);border:var(--border);border-radius:var(--r-lg);background:var(--surface-muted);display:grid}.lesson-next h2{font-size:var(--text-xl);font-weight:900}.lesson-next-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.lesson-completion{align-items:center;gap:var(--space-3);border-block-start:var(--border);flex-wrap:wrap;padding-block-start:var(--space-4);display:flex}.lesson-hint{border-block-start:var(--border);padding-block-start:var(--space-4);font-weight:600}.lesson-locked{gap:var(--space-5);padding:var(--space-5);border:var(--border);border-radius:var(--r-lg);background:var(--surface-muted);box-shadow:var(--shadow);flex-wrap:wrap;align-items:flex-start;display:flex}.lesson-locked-text{gap:var(--space-3);flex:280px;justify-items:start;display:grid}@media (width<=760px){.lesson-hero{gap:var(--space-4);padding:var(--space-4)}.lesson-hero h1{font-size:1.6rem}.lesson-hero.has-cover{grid-template-columns:1fr}.lesson-cover{order:-1}.lesson-tabs a{min-block-size:60px;font-size:var(--text-base);flex-direction:column;gap:2px}.lesson-next-actions .btn{flex:100%}}.choice{align-items:center;gap:var(--space-3);min-block-size:var(--touch-min);padding-block:var(--space-3);padding-inline:var(--space-4);border:var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-sm);cursor:pointer;transition:transform var(--duration) var(--ease), box-shadow var(--duration) var(--ease), background-color var(--duration) var(--ease);flex-wrap:wrap;display:flex}@media (hover:hover){.choice:where(:hover):not(:has(.choice-input:disabled)){transform:var(--lift);box-shadow:var(--shadow)}}.choice:where(:active):not(:has(.choice-input:disabled)){transform:var(--press);box-shadow:none}.choice:where(:has(.choice-input:checked)){background:var(--secondary-soft);border-width:var(--border-strong)}.choice:has(.choice-input:focus-visible){outline:var(--focus-width) solid var(--focus);outline-offset:var(--focus-offset)}.choice-input{block-size:1.25rem;inline-size:1.25rem;accent-color:var(--ink);flex:none;margin:0}.choice-input:focus-visible{outline:none}.choice-text{flex:1}.choice-status{align-items:center;gap:var(--space-1);padding-block:2px;padding-inline:var(--space-2);border:2px solid var(--ink);border-radius:var(--r-sm);background:var(--surface);font-size:var(--text-sm);font-weight:700;display:inline-flex}.choice-correct{background:var(--success-bg);border-width:var(--border-strong)}.choice-incorrect{background:var(--error-bg);border-width:var(--border-strong)}.choice:has(.choice-input:disabled){cursor:default}.choice:has(.choice-input:disabled):not(.choice-correct,.choice-incorrect){box-shadow:none;opacity:.6}.copy-guard{-webkit-user-select:none;user-select:none}.copy-guard textarea,.copy-guard input{-webkit-user-select:text;user-select:text}.copy-guard-toast{z-index:50;padding-block:var(--space-2);padding-inline:var(--space-4);border:var(--border);border-radius:var(--r-md);background:var(--primary);box-shadow:var(--shadow-sm);font-weight:700;position:fixed;inset-block-end:var(--space-5);inset-inline-start:50%;transform:translate(50%)}.copy-guard-toast:not([data-visible]){display:none}.practice{gap:var(--space-5);max-inline-size:780px;margin-inline:auto;display:grid}.practice-intro{align-items:center;gap:var(--space-2) var(--space-3);color:var(--ink-muted);flex-wrap:wrap;display:flex}.practice-question{gap:var(--space-4);display:grid}.practice-question-title{align-items:flex-start;gap:var(--space-3);font-family:var(--font-body);font-size:var(--text-reading);white-space:pre-wrap;font-weight:700;line-height:1.7;display:flex}.practice-number{border:2px solid var(--ink);border-radius:var(--r-sm);background:var(--primary);block-size:36px;inline-size:36px;font-family:var(--font-display);flex:none;place-items:center;font-weight:900;display:grid}.practice-options{gap:var(--space-3);border:0;margin:0;padding:0;display:grid}.practice-actions,.practice-footer{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.practice-result{font-weight:700}.practice-result span{align-items:center;gap:var(--space-1);display:inline-flex}.practice-result-correct{color:var(--success)}.practice-result-incorrect{color:var(--error)}.practice-result-unanswered,.practice-result-answered{color:var(--ink-muted)}.practice-sample{gap:var(--space-2);padding:var(--space-4);border:2px solid var(--ink);border-radius:var(--r-md);background:var(--success-bg);display:grid}.practice-sample p{white-space:pre-wrap}.practice-sample h3{font-size:var(--text-base)}.practice-revealed{font-weight:700}.practice-footer{border-block-start:var(--border);padding-block-start:var(--space-4)}.exam-points-label{padding-inline:var(--space-2);border:2px solid var(--ink);border-radius:var(--r-sm);background:var(--surface-muted);font-size:var(--text-sm);flex:none;margin-inline-start:auto}.exam-facts{gap:var(--space-2);margin:var(--space-4) 0;padding-inline-start:var(--space-5);font-weight:600;display:grid}.exam-confirm,.exam-result{gap:var(--space-4);display:grid}.exam-score{font-family:var(--font-display);font-size:clamp(2rem,6vw,3rem);font-weight:900}.score-breakdown{gap:var(--space-2);margin:0;display:grid}.score-breakdown>div{justify-content:space-between;gap:var(--space-2);padding-block:var(--space-2);border-block-end:2px solid var(--ink);flex-wrap:wrap;display:flex}.score-breakdown dt{font-weight:700}.score-breakdown dd{margin:0;font-weight:800}.review-essay{white-space:pre-wrap}.results-empty{justify-items:center;gap:var(--space-4);text-align:center;display:grid}.results-list{gap:var(--space-3);margin:var(--space-4) 0;padding:0;list-style:none;display:grid}.results-row{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:2px solid var(--ink);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);flex-wrap:wrap;text-decoration:none;display:flex}.results-row-latest{background:var(--secondary-tint);border-width:3px}.results-score{font-weight:800}.practice-sample.review-own{background:var(--surface-muted)}.self-score{align-items:end;gap:var(--space-3);flex-wrap:wrap;display:flex}.self-score .field{flex:16rem}.self-score-status{flex-basis:100%;margin:0;font-weight:700}.practice-explanation{padding:var(--space-3) var(--space-4);border:2px solid var(--ink);border-radius:var(--r-sm);background:var(--surface-muted);border-inline-start-width:6px}.admin{gap:var(--space-5);grid-template-columns:220px minmax(0,1fr);align-items:start;display:grid}.admin-nav{padding:var(--space-3);border:var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm);position:sticky;inset-block-start:var(--space-4)}.admin-nav ul{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.admin-nav a{min-block-size:var(--touch-min);padding-inline:var(--space-3);border:var(--border-width) solid transparent;border-radius:var(--r-sm);color:var(--ink);align-items:center;font-weight:700;text-decoration:none;display:flex}.admin-nav a[aria-current=page]{border-color:var(--ink);background:var(--active);color:var(--on-active);box-shadow:var(--shadow-sm)}@media (hover:hover){.admin-nav a:not([aria-current=page]):hover{border-color:var(--ink);background:var(--primary)}}.admin-content{gap:var(--space-5);min-inline-size:0;display:grid}@media (width<=767px){.admin{grid-template-columns:1fr}.admin-nav{position:static}.admin-nav ul{flex-wrap:wrap;display:flex}}.admin-unit,.admin-form,.admin-list{gap:var(--space-4);display:grid}.admin-list{margin:0;padding:0;list-style:none}.admin-list>li{padding-block:var(--space-2);border-block-end:2px solid var(--ink)}.admin-row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.admin-row h2{font-size:var(--text-lg)}.admin-row>a{font-weight:700}.admin-row-actions,.admin-move{gap:var(--space-2);flex-wrap:wrap;margin-inline-start:auto;display:inline-flex}.admin-move{margin-inline-start:0}.admin-move .btn{padding-inline:var(--space-2)}.admin-subtitle{font-size:var(--text-base)}.admin-muted{color:var(--ink-muted)}.admin-inline-form{align-items:end;gap:var(--space-3);flex-wrap:wrap;display:flex}.admin-inline-form .field{flex:240px}.admin-check{align-items:center;gap:var(--space-3);min-block-size:var(--touch-min);cursor:pointer;font-weight:700;display:flex}.admin-check input{block-size:1.25rem;inline-size:1.25rem;accent-color:var(--ink)}.admin-cover-preview{border:var(--border);border-radius:var(--r-md);max-inline-size:320px}.admin-fieldset{gap:var(--space-3);padding:var(--space-4);border:2px solid var(--ink);border-radius:var(--r-md);margin:0;display:grid}.admin-fieldset legend{padding-inline:var(--space-2);font-weight:700}.question-option{align-items:end;gap:var(--space-3);flex-wrap:wrap;display:flex}.question-option .field{flex:220px}.admin-question{gap:var(--space-3);display:grid}.admin-question-body{white-space:pre-wrap;font-weight:700}.admin-question-options{margin:0;padding-inline-start:var(--space-5)}.codes-created{gap:var(--space-3);margin-block-start:var(--space-4);display:grid}.codes-list{padding:var(--space-4);border:2px solid var(--ink);border-radius:var(--r-md);background:var(--surface-muted);font-size:var(--text-lg);letter-spacing:.08em;-webkit-user-select:all;user-select:all;margin:0;font-weight:700}.admin-table-wrap{border:var(--border);border-radius:var(--r-md);overflow-x:auto}.admin-table{border-collapse:collapse;background:var(--surface);inline-size:100%}.admin-table th,.admin-table td{padding:var(--space-2) var(--space-3);border-block-end:2px solid var(--ink);text-align:start;white-space:nowrap}.admin-table th{background:var(--primary);font-weight:800}.exam-total{font-weight:800}.exam-question-row{align-items:end}.exam-question-text{flex:260px;font-weight:600}.exam-points{inline-size:110px}.student-grant{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.student-confirm{padding:var(--space-4);border:var(--border);border-radius:var(--r-md);background:var(--warning-bg);margin-block-start:var(--space-4)}@media (width<=767px){.admin-table-wrap:has(.admin-table-stack){border:0}.admin-table-stack thead{clip-path:inset(50%);block-size:1px;inline-size:1px;position:absolute;overflow:hidden}.admin-table-stack,.admin-table-stack tbody,.admin-table-stack tr,.admin-table-stack td{display:block}.admin-table-stack{background:0 0}.admin-table-stack tr{border:var(--border);border-radius:var(--r-md);background:var(--surface);margin-block-end:var(--space-3)}.admin-table-stack td{justify-content:space-between;gap:var(--space-3);white-space:normal;display:flex}.admin-table-stack tr td:last-child{border-block-end:0}.admin-table-stack td:before{content:attr(data-label);font-weight:800}}.phones-confirm{gap:var(--space-2);flex-wrap:wrap;display:inline-flex}.rich-editor{gap:var(--space-2);display:grid}.rich-editor-toolbar{gap:var(--space-1);flex-wrap:wrap;display:flex}.rich-editor-tool{min-block-size:var(--touch-min);min-inline-size:var(--touch-min);padding-inline:var(--space-3);border:2px solid var(--ink);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);cursor:pointer;font-weight:700}.rich-editor-tool[aria-pressed=true],.rich-editor-tool[aria-expanded=true]{background:var(--active);color:var(--on-active);box-shadow:var(--shadow-sm)}@media (hover:hover){.rich-editor-tool:not([aria-pressed=true]):not([aria-expanded=true]):hover{background:var(--primary)}}.rich-editor-image{gap:var(--space-3);padding:var(--space-4);border:2px dashed var(--ink);border-radius:var(--r-md);background:var(--surface-muted);display:grid}.rich-editor-content{min-block-size:10rem;padding:var(--space-4);border:var(--border);border-radius:var(--r-sm);background:var(--surface);line-height:var(--leading-body)}.rich-editor-content:focus-visible{outline:var(--focus-width) solid var(--focus);outline-offset:var(--focus-offset);box-shadow:var(--shadow-sm)}.rich-editor-content>*+*{margin-block-start:var(--space-3)}.rich-editor-content img{border:2px solid var(--ink);max-inline-size:100%}.rich-editor-content blockquote{border-inline-start:4px solid var(--ink);margin-inline:0;padding-inline-start:var(--space-4)}.rich-editor-content pre{padding:var(--space-3);border-radius:var(--r-sm);background:var(--ink);color:var(--surface);text-align:start;direction:ltr;overflow-x:auto}:root{--bg:#fff7e8;--surface:#fff;--surface-muted:#fff1d6;--ink:#111;--ink-muted:#3f3f46;--on-ink-muted:#d4d4d8;--primary:#ffd23f;--primary-hover:#ffc21a;--secondary:#26a7ff;--secondary-soft:#6fc0ff;--secondary-tint:#c4e4ff;--lime:#baf45a;--active:#ffd23f;--on-active:#111;--focus:#1d4ed8;--success:#166534;--success-bg:#bbf7d0;--error:#b91c1c;--error-bg:#fecaca;--warning:#92400e;--warning-bg:#fde68a;--sx:1;--border-width:3px;--border-strong:4px;--border:var(--border-width) solid var(--ink);--shadow-sm:calc(4px * var(--sx)) 4px 0 var(--ink);--shadow:calc(6px * var(--sx)) 6px 0 var(--ink);--shadow-lg:calc(10px * var(--sx)) 10px 0 var(--ink);--r-sm:2px;--r-md:4px;--r-lg:6px;--r-full:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--font-body:"IBM Plex Sans Arabic", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Rubik", var(--font-body);--text-sm:.875rem;--text-base:1rem;--text-reading:1.125rem;--text-lg:1.25rem;--text-xl:1.75rem;--leading-body:1.75;--leading-heading:1.3;--reading-width:70ch;--focus-width:3px;--focus-offset:3px;--touch-min:44px;--duration:.14s;--ease:ease-out;--lift:translate(calc(-2px * var(--sx)), -2px);--press:translate(calc(4px * var(--sx)), 4px)}:root[dir=rtl]{--sx:-1}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);min-block-size:100vh;color:var(--ink);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-body);text-align:start;-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,h4{font-family:var(--font-display);line-height:var(--leading-heading);margin:0}p{margin:0}img{block-size:auto;max-inline-size:100%;display:block}button,input,textarea,select{font:inherit;color:inherit}a{color:var(--ink);-webkit-text-decoration-color:var(--primary);text-decoration-color:var(--primary);text-underline-offset:4px;font-weight:700;text-decoration-thickness:3px}@media (hover:hover){a:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}}:focus-visible{outline:var(--focus-width) solid var(--focus);outline-offset:var(--focus-offset)}::selection{background:var(--primary);color:var(--ink)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;block-size:1px;inline-size:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.state-illustration{border:var(--border);border-radius:var(--r-md);background:var(--surface);block-size:120px;inline-size:120px;box-shadow:var(--shadow-sm)}
