:root{--kb-bg:#fffaf0;--kb-surface:#fff;--kb-surface-2:#fff3e2;--kb-border:#ebddcc;--kb-border-strong:#d9c4ab;--kb-text:#2e2015;--kb-text-2:#6e5b4a;--kb-text-3:#9c8672;--kb-text-inverse:#fff9f2;--kb-brand:#c2410c;--kb-brand-hover:#a3360a;--kb-brand-soft:#fdebdd;--kb-brown:#6b4a32;--kb-teal:#0d9488;--kb-teal-soft:#d7f4f0;--kb-sky:#0284c7;--kb-sky-soft:#ddf2fd;--kb-sun:#d97706;--kb-sun-soft:#fef3d6;--kb-pink:#db2777;--kb-pink-soft:#fde7f1;--kb-success:#16a34a;--kb-success-soft:#dcf5e4;--kb-danger:#dc2626;--kb-danger-soft:#fde3e3;--kb-warn:#b45309;--kb-warn-soft:#fef0d8;--kb-streak:#ea580c;--kb-xp:#b45309;--kb-xp-soft:#fde9c4;--kb-font:"Nunito", "Segoe UI", system-ui, -apple-system, sans-serif;--kb-fs-display:48px;--kb-fs-h1:36px;--kb-fs-h2:28px;--kb-fs-h3:22px;--kb-fs-lg:18px;--kb-fs-body:16px;--kb-fs-sm:14px;--kb-fs-xs:12.5px;--kb-lh-tight:1.15;--kb-lh-body:1.5;--kb-sp-1:4px;--kb-sp-2:8px;--kb-sp-3:12px;--kb-sp-4:16px;--kb-sp-5:24px;--kb-sp-6:32px;--kb-sp-7:48px;--kb-sp-8:64px;--kb-r-sm:8px;--kb-r-md:14px;--kb-r-lg:20px;--kb-r-xl:28px;--kb-r-full:999px;--kb-shadow-sm:0 1px 2px #2e20150f;--kb-shadow-md:0 2px 8px #2e201514;--kb-shadow-lg:0 8px 24px #2e201524;--kb-shadow-pop:0 12px 40px #2e201533;--kb-t-fast:.15s;--kb-t-base:.3s;--kb-t-slow:.6s;--kb-ease:cubic-bezier(.34,1.3,.5,1)}[data-theme=dark]{--kb-bg:#1b130d;--kb-surface:#261c13;--kb-surface-2:#322419;--kb-border:#3e2e21;--kb-border-strong:#55402e;--kb-text:#f5eadd;--kb-text-2:#c9b39d;--kb-text-3:#8f7a66;--kb-text-inverse:#2e2015;--kb-brand:#fb923c;--kb-brand-hover:#fda45c;--kb-brand-soft:#3a2312;--kb-brown:#c89b76;--kb-teal:#2dd4bf;--kb-teal-soft:#12332f;--kb-sky:#38bdf8;--kb-sky-soft:#14293a;--kb-sun:#fbbf24;--kb-sun-soft:#38290e;--kb-pink:#f472b6;--kb-pink-soft:#3a1a2b;--kb-success:#4ade80;--kb-success-soft:#14301e;--kb-danger:#f87171;--kb-danger-soft:#3a1717;--kb-warn:#fbbf24;--kb-warn-soft:#33260f;--kb-streak:#fb923c;--kb-xp:#fbbf24;--kb-xp-soft:#33260f;--kb-shadow-sm:0 1px 2px #0000004d;--kb-shadow-md:0 2px 8px #0006;--kb-shadow-lg:0 8px 24px #00000080;--kb-shadow-pop:0 12px 40px #0009}@media (prefers-reduced-motion:reduce){:root{--kb-t-fast:0s;--kb-t-base:0s;--kb-t-slow:0s}}:root{--text:var(--kb-text);--muted:var(--kb-text-2);--text-h:var(--kb-text);--bg:var(--kb-bg);--surface:var(--kb-surface);--surface-strong:var(--kb-surface-2);--border:var(--kb-border);--accent:var(--kb-brand);--shadow:var(--kb-shadow-lg);--hero-from:#3b1f14;--hero-mid:#7c2d12;--hero-to:#111827;--hero-accent-glow:#fbbf24;--hero-text:#fff7ed;--hero-text-soft:#fed7aa;--error:var(--kb-danger);--error-bg:var(--kb-danger-soft);--success:var(--kb-success);--pill-text:#7c2d12;--pill-bg:#ffedd5;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:40px;--space-xxl:56px;--radius-sm:var(--kb-r-sm);--radius-md:var(--kb-r-md);--radius-lg:var(--kb-r-lg);--radius-pill:999px;--sans:var(--kb-font);--heading:var(--kb-font);--mono:ui-monospace, SFMono-Regular, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font:16px/150% var(--sans);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}body{margin:0}*,:before,:after{box-sizing:border-box}button,textarea{font:inherit}select,input:not([type=radio]):not([type=checkbox]),textarea{color:var(--text);background:var(--surface);border:1.5px solid var(--kb-border-strong,var(--border));border-radius:var(--kb-r-md,8px);font:inherit;padding:8px 12px}select option{color:var(--text);background:var(--surface)}select:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--text-h)}h1{font:700 64px/.98 var(--heading);letter-spacing:0;margin-bottom:20px}h2{letter-spacing:0;margin-bottom:0;font-size:34px;line-height:110%}h3{margin-bottom:0;font-size:22px;line-height:118%}p{margin-bottom:0}@media (width<=860px){h1{word-break:break-word;font-size:clamp(32px,8vw,46px)}h2{font-size:28px}}.offline-indicator{color:#856404;background-color:#fff3cd;border-bottom:1px solid #ffc107;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;display:flex}.offline-icon{font-size:1rem}.offline-text{font-weight:500}pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}.app-shell{background:var(--bg);flex-direction:column;min-height:100svh;display:flex}.workspace{gap:var(--space-lg);flex-direction:column;width:100%;max-width:1240px;margin:0 auto;padding:28px 28px 48px;display:flex}.topbar,.action-row,.section-heading{justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.topbar{z-index:30;background:var(--surface);border-bottom:1px solid var(--border);width:100%;min-height:64px;box-shadow:var(--kb-shadow-sm);align-items:center;gap:18px;padding:0 28px;display:flex;position:sticky;top:0}.action-row{flex-wrap:wrap}.section-heading{align-items:flex-end;margin-bottom:22px}.card,.feedback-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-lg);background:var(--surface);box-shadow:var(--kb-shadow-md)}.login-card{gap:var(--space-md);max-width:560px;margin:auto;display:grid}.download-card{gap:var(--space-md);background:linear-gradient(135deg, var(--surface) 0%, var(--surface-strong) 100%);border-color:#c2410c59;max-width:640px;display:grid}.download-meta{gap:var(--space-sm);color:var(--muted);font-size:14px;font-weight:700;display:grid}.download-button{width:fit-content;text-decoration:none}.download-page{gap:var(--space-lg);display:grid}.download-card-beta{background:linear-gradient(135deg,#fffbeb 0%,#fef3c7 100%);border-color:#ca8a0480}.beta-pill{margin-left:var(--space-sm);color:#78350f;letter-spacing:.6px;vertical-align:middle;background:#fde68a;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:900;display:inline-block}.beta-disclaimer{color:#92400e;font-size:14px}.download-unavailable{color:var(--muted);font-size:14px}.due-reviews-card{justify-content:space-between;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg);background:var(--surface-strong);border-left:4px solid var(--accent);flex-direction:row;display:flex}.due-reviews-card .primary-button{flex-shrink:0}@media (width<=600px){.due-reviews-card{flex-direction:column;align-items:stretch}}.deck-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.deck-card{gap:var(--space-md);flex-direction:column;display:flex}.learning-screen{gap:var(--space-lg);display:grid}.learning-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.learning-card{gap:var(--space-md);flex-direction:column;display:flex}.learning-card .primary-button{width:fit-content;margin-top:auto}.learning-empty-state{gap:var(--space-sm);border:1px dashed var(--border);border-radius:var(--radius-lg);padding:var(--space-lg);color:var(--muted);background:var(--surface);display:grid}.learning-empty-state h3{color:var(--text-h);margin:0}.deck-actions{gap:var(--space-sm);flex-wrap:wrap;margin-top:auto;display:flex}.deck-actions .primary-button,.deck-actions .ghost-button{flex:1}.deck-meta,.language-pill{color:var(--muted);gap:10px;font-size:14px;display:flex}.language-pill{border-radius:var(--radius-pill);width:fit-content;color:var(--pill-text);background:var(--pill-bg);padding:4px 10px;font-weight:700}.review-screen{gap:22px;max-width:760px;display:grid}.review-progress-track,.deck-progress-track{background:var(--kb-surface-2);border:1px solid var(--kb-border);border-radius:999px;height:10px;overflow:hidden}.review-progress-fill,.deck-progress-fill{background:var(--kb-brand);height:100%;transition:width .3s var(--kb-ease,ease);border-radius:999px}.deck-progress-track{height:8px;margin-top:4px}.review-empty-state{text-align:center;background:var(--kb-surface);border:1px solid var(--kb-border);border-radius:var(--radius-lg);justify-items:center;gap:12px;padding:40px 24px;display:grid}.review-empty-emoji{font-size:44px;line-height:1}.review-empty-state p{max-width:46ch;color:var(--kb-text-2)}.review-empty-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:6px;display:flex}.connection-search-combo{flex:1;min-width:220px;position:relative}.connection-search-combo input{width:100%}.connection-autocomplete{z-index:30;background:var(--kb-surface);border:1px solid var(--kb-border-strong);border-radius:var(--radius-lg);gap:2px;margin:0;padding:6px;list-style:none;display:grid;position:absolute;top:calc(100% + 6px);left:0;right:0;box-shadow:0 12px 28px #2e201524}.connection-autocomplete li{border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex}.connection-autocomplete li:hover{background:var(--kb-surface-2)}.connection-autocomplete .autocomplete-name{flex:1;font-weight:600}.search-result-avatar{background:var(--kb-brand-soft);width:48px;height:48px;color:var(--kb-brand);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;font-weight:800;display:inline-flex}.search-result-avatar.small{width:32px;height:32px;font-size:13px}.connection-search-page{gap:20px;display:grid}.search-result-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.search-result-card{align-items:flex-start;gap:14px;display:flex}.search-result-body{flex:1;gap:8px;display:grid}.search-result-body h3{margin:0}.search-result-status{color:var(--kb-text-2);font-size:var(--kb-fs-sm)}.search-result-status.success{color:var(--kb-success,#2f9e44);font-weight:600}.search-result-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.doc-source-panel{background:var(--kb-surface-2);border-radius:var(--radius-lg);gap:8px;margin-bottom:12px;padding:12px;display:grid}.doc-source-upload{cursor:pointer;border-radius:var(--kb-r-md,8px);align-items:center;width:fit-content;font-weight:600;display:inline-flex;position:relative}.doc-source-upload:focus-within{outline:2px solid var(--accent);outline-offset:2px}.doc-source-upload input[type=file]{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.doc-supplement-toggle{font-size:var(--kb-fs-sm);color:var(--kb-text-2);align-items:center;gap:8px;display:flex}.doc-clear{font-size:var(--kb-fs-xs);justify-self:start}.doc-notice{font-size:var(--kb-fs-sm);color:var(--kb-text-2);margin:0}.rooms-page{gap:20px;display:grid}.rooms-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.rooms-item{grid-template-columns:auto auto 1fr auto;align-items:center;gap:14px;padding:14px 18px;display:grid}.rooms-code{letter-spacing:3px;color:var(--kb-brand);font-weight:800}.rooms-status{font-size:var(--kb-fs-xs);background:var(--kb-surface-2);border-radius:999px;padding:3px 10px;font-weight:700}.rooms-status.status-open{background:var(--kb-success-soft,#dcf5e4);color:var(--kb-success,#16a34a)}.rooms-status.status-lobby{background:var(--kb-brand-soft);color:var(--kb-brand)}.rooms-guests{color:var(--kb-text-2);font-size:var(--kb-fs-sm)}.room-start{justify-items:center;gap:8px;margin-top:6px;display:grid}.room-start-count{color:var(--kb-text-2);margin:0;font-weight:700}.room-start-btn{padding:12px 32px;font-size:18px}.guest-lobby{text-align:center;padding:28px}.guest-lobby-count{color:var(--kb-brand);margin:0 0 8px;font-size:24px;font-weight:800}.guest-page{gap:20px;max-width:640px;margin:0 auto;display:grid}.guest-join{gap:12px;padding:24px;display:grid}.guest-join input{font:inherit;border:1.5px solid var(--kb-border-strong);border-radius:var(--radius-lg);padding:12px 14px;font-size:18px}.guest-note{font-size:var(--kb-fs-sm);color:var(--kb-text-2)}.guest-done{text-align:center;padding:32px}.guest-total{color:var(--kb-brand);margin:0;font-size:44px;font-weight:800}.room-host-page{gap:20px;display:grid}.room-join{text-align:center;justify-items:center;gap:14px;padding:28px;display:grid}.room-code{font-family:var(--kb-font);letter-spacing:10px;color:var(--kb-brand);background:var(--kb-brand-soft);border-radius:var(--radius-lg);padding:10px 24px;font-size:56px;font-weight:800}.room-qr{border-radius:var(--radius-lg);border:1px solid var(--kb-border);background:#fff;padding:12px}.room-join-url{font-size:var(--kb-fs-sm);color:var(--kb-text-2);word-break:break-all}.room-hint{color:var(--kb-text-2);max-width:42ch}.room-scoreboard-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.room-empty{color:var(--kb-text-2)}.room-rank{gap:8px;margin:0;padding:0;list-style:none;display:grid}.room-rank li{grid-template-columns:28px 1fr 90px auto auto auto;align-items:center;gap:10px;display:grid}.room-rank li.revoked{opacity:.45}.rank-pos{color:var(--kb-text-2);font-weight:800}.rank-name{font-weight:600}.rank-bar{background:var(--kb-surface-2);border-radius:999px;height:8px;overflow:hidden}.rank-bar-fill{background:var(--kb-brand);border-radius:999px;height:100%;display:block}.rank-points{white-space:nowrap;font-weight:700}.rank-meta{font-size:var(--kb-fs-xs);color:var(--kb-text-3);white-space:nowrap}.rank-kick{color:var(--kb-danger);cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:14px}.answer-list{gap:12px;display:grid}.answer-option{border:1.5px solid var(--kb-border-strong);border-radius:var(--kb-r-md);color:var(--muted);background:var(--surface);font:inherit;text-align:left;cursor:pointer;min-height:48px;padding:13px 16px;font-size:16px;font-weight:700;transition:border-color .15s,background .15s,transform 80ms}.answer-option:hover:not(:disabled){border-color:var(--kb-teal);transform:translateY(-1px)}.answer-option.selected{border:2.5px solid var(--kb-teal);background:var(--kb-teal-soft);color:var(--text-h);font-weight:800}.answer-option:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.answer-option.correct{border:2.5px solid var(--success);background:var(--kb-success-soft,#16a34a1f);color:var(--text-h);font-weight:800}.feedback-card{gap:var(--space-sm);box-shadow:none;display:grid}.feedback-card.success{border:2px solid var(--success);box-shadow:0 8px 24px #16a34a2e}.feedback-card.retry{border:2px solid #ea580c;box-shadow:0 8px 24px #ea580c24}.feedback-metrics{gap:var(--space-sm);margin-top:var(--space-sm);display:flex}.metric{background:var(--bg);border-radius:var(--radius-md);border:1px solid var(--border);flex-direction:column;flex:1;gap:4px;padding:12px;display:flex}.metric-value{color:var(--text-h);font-size:18px;font-weight:900}.metric-label{color:var(--muted);font-size:13px;font-weight:700}.feedback-meta{color:var(--muted);flex-direction:row;justify-content:space-between;gap:12px;margin-top:8px;font-size:14px;display:flex}.feedback-meta .next-review{color:var(--text);font-weight:500}.streak-status{font-weight:700}.streak-status.success{color:var(--success)}.streak-status.muted{color:var(--muted)}.primary-button,.ghost-button{border-radius:var(--kb-r-md);max-width:100%;min-height:44px;font:inherit;cursor:pointer;border:0;padding:10px 18px;font-weight:900;transition:filter .15s,background .15s,transform 80ms,box-shadow 80ms}.primary-button{color:var(--kb-text-inverse);background:var(--kb-brand);box-shadow:0 3px 0 var(--kb-brand-hover)}.primary-button:hover:not(:disabled){filter:brightness(1.08)}.primary-button:active:not(:disabled){box-shadow:0 1px 0 var(--kb-brand-hover);transform:translateY(2px)}.primary-button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.ghost-button{color:var(--text-h);background:var(--surface-strong)}.ghost-button:hover:not(:disabled){background:var(--border)}.ghost-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.primary-button:disabled,.ghost-button:disabled,.answer-option:disabled{cursor:not-allowed;opacity:.62}.error-banner,.loading-note{border-radius:var(--radius-md);padding:12px 14px}.error-banner{color:var(--error);background:var(--error-bg)}.loading-note{color:var(--muted);background:var(--surface-strong)}.eyebrow{margin:0 0 var(--space-sm);color:var(--accent);letter-spacing:0;text-transform:uppercase;font-size:13px;font-weight:900}label{color:var(--text-h);font-weight:800}textarea{box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--text-h);background:var(--bg);font:14px/150% var(--mono);resize:vertical;padding:14px}textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.step-indicator{padding:var(--space-md) 0;justify-content:center;align-items:center;gap:0;display:flex;overflow-x:auto}.step-item{align-items:center;gap:var(--space-sm);padding:var(--space-sm) 12px;border-radius:var(--radius-sm);color:var(--muted);font-size:13px;font-weight:700;display:flex}.step-item.step-active{color:var(--accent);background:var(--surface-strong)}.step-item.step-done{color:var(--success)}.step-icon{align-items:center;display:flex}.step-label{white-space:nowrap}.step-connector{background:var(--border);border-radius:1px;width:24px;height:2px;margin:0 4px}.profile-card{max-width:560px}.privacy-card{max-width:720px;line-height:1.7}.privacy-updated{margin-top:var(--space-lg);color:var(--muted);font-size:14px}.profile-list{margin:var(--space-md) 0 0;gap:4px;padding:0;display:grid}.profile-row{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:12px;padding:10px 0;font-size:15px;display:flex}.profile-row dt{width:100px;min-width:100px;color:var(--muted);flex-shrink:0;font-weight:700}.profile-row dd{color:var(--text-h);flex-wrap:wrap;align-items:center;gap:4px;margin:0;font-weight:500;display:flex}.profile-divider{border:none;border-top:1px solid var(--border);margin:var(--space-md) 0 0}.profile-stats-heading{margin-top:var(--space-md)}.profile-stats{color:var(--text-h);border:1px solid var(--border);border-radius:var(--radius-md);margin-top:12px;overflow:hidden}.profile-stats span{background:var(--surface-strong);border:none;border-radius:0}.loading-screen{min-height:100svh;color:var(--muted);justify-content:center;align-items:center;font-size:18px;display:flex}@media (width<=860px){.app-shell{flex-direction:column;display:flex}.workspace{padding:20px 16px 40px}.action-row,.section-heading{flex-direction:column;align-items:stretch}.topbar{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding-bottom:8px;overflow-x:auto}.topbar .ghost-button{white-space:nowrap;flex-shrink:0;width:auto}.step-indicator{justify-content:flex-start}.primary-button,.ghost-button,.download-button{box-sizing:border-box;text-align:center;width:100%}}.landing-page{min-height:100svh;color:var(--hero-text);background:radial-gradient(circle at 20% 20%, #fbbf2459, transparent 50%), radial-gradient(circle at 80% 80%, #ea580c40, transparent 50%), linear-gradient(145deg, var(--hero-from) 0%, var(--hero-mid) 55%, var(--hero-to) 100%);box-sizing:border-box;flex-direction:column;padding:40px;display:flex}.landing-nav{justify-content:space-between;align-items:center;width:100%;max-width:1200px;margin:0 auto;padding-bottom:60px;display:flex}.landing-brand{color:var(--hero-text);letter-spacing:-.04em;font-size:28px;font-weight:900}.landing-content{grid-template-columns:1fr 1fr;align-items:center;gap:80px;width:100%;max-width:1200px;margin:auto;display:grid}.landing-hero{flex-direction:column;gap:24px;display:flex}.landing-hero h1{color:var(--hero-text);text-shadow:0 4px 20px #0003;margin:0;font-size:clamp(48px,6vw,76px);line-height:1.05}.landing-hero p{color:var(--hero-text-soft);max-width:500px;font-size:24px;line-height:1.5}.landing-cards{flex-direction:column;gap:32px;display:flex}.landing-card{-webkit-backdrop-filter:blur(24px);background:#ffffff0a;border:1px solid #ffffff14;border-radius:32px;flex-direction:column;gap:16px;padding:40px;transition:transform .3s cubic-bezier(.175,.885,.32,1.275);display:flex;box-shadow:0 24px 40px #0003}.landing-card:hover{background:#ffffff0f;border:1px solid #ffffff26;transform:translateY(-8px)}.landing-card h2{color:var(--hero-text);margin-bottom:0;font-size:32px}.landing-card p{color:var(--hero-text-soft);margin-bottom:12px;font-size:18px}.landing-footer{text-align:center;color:#fff7ed66;margin-top:auto;padding-top:60px;font-size:15px}.landing-footer a{color:#fff7edb3;text-decoration:none;transition:color .2s}.landing-footer a:hover{color:var(--hero-text)}.primary-button.glow{width:fit-content;padding:16px 24px;font-size:18px;transition:all .2s;box-shadow:0 0 20px #ea580c66}.primary-button.glow:hover{transform:scale(1.02);box-shadow:0 0 30px #ea580c99}.download-meta-landing{color:#fff7ed99;flex-direction:column;gap:8px;margin-bottom:8px;font-size:14px;font-weight:600;display:flex}@media (width<=960px){.landing-content{grid-template-columns:1fr;gap:40px}}.flag-admin-head{justify-content:space-between;align-items:center;gap:var(--space-md);flex-wrap:wrap;display:flex}.flag-notice{background:color-mix(in srgb, var(--success) 14%, transparent);color:var(--success);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);margin:var(--space-sm) 0}.flag-empty{color:var(--muted);padding:var(--space-lg) 0}.danger-button{appearance:none;border:1px solid color-mix(in srgb, var(--error) 45%, var(--border));background:var(--error-bg);color:var(--error);border-radius:var(--radius-md);padding:var(--space-xs) var(--space-md);font:inherit;cursor:pointer;font-weight:600}.danger-button:hover:not(:disabled){background:color-mix(in srgb, var(--error) 18%, var(--error-bg))}.danger-button:disabled{opacity:.5;cursor:not-allowed}.flag-table{border-collapse:collapse;width:100%;margin-top:var(--space-md);font-size:.95rem}.flag-table th,.flag-table td{text-align:left;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border);vertical-align:top}.flag-table th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.flag-key{font-family:var(--mono);color:var(--text-h);font-weight:600;display:block}.flag-desc{color:var(--muted);font-size:.85rem;display:block}.flag-audit{color:var(--muted);white-space:nowrap;font-size:.85rem}.flag-state{padding:2px var(--space-sm);border-radius:var(--radius-pill);background:var(--surface-strong);color:var(--muted);font-size:.8rem;font-weight:600;display:inline-block}.flag-state--on{background:color-mix(in srgb, var(--success) 16%, transparent);color:var(--success)}.flag-state--off{background:var(--surface-strong);color:var(--muted)}.flag-state--percentage,.flag-state--targeted{background:var(--pill-bg);color:var(--pill-text)}.flag-row-actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.flag-editor,.flag-confirm{margin-top:var(--space-lg);padding:var(--space-lg);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-strong)}.flag-field{gap:var(--space-xs);margin-bottom:var(--space-md);flex-direction:column;display:flex}.flag-field>span{color:var(--text-h);font-size:.9rem;font-weight:600}.flag-field input[type=text],.flag-field textarea{font:inherit;padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text)}.flag-field input:disabled{opacity:.7}.flag-hint{color:var(--muted);font-size:.8rem}.flag-hint--error{color:var(--error)}.flag-hint--warn{color:var(--warning,#b45309)}.flag-lifecycle{padding:2px var(--space-sm);border-radius:var(--radius-pill);background:var(--surface-strong);color:var(--muted);font-size:.8rem;font-weight:600;display:inline-block}.flag-lifecycle--declared{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent)}.flag-lifecycle--active{background:color-mix(in srgb, var(--success) 16%, transparent);color:var(--success)}.flag-lifecycle--orphan{background:color-mix(in srgb, var(--warning,#b45309) 16%, transparent);color:var(--warning,#b45309)}.flag-kap-id{color:var(--accent);opacity:.8;margin-top:1px;font-size:.75rem;display:block}.flag-toggle{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);display:flex}.flag-presets{gap:var(--space-sm);margin-top:var(--space-xs);display:flex}.preset-button{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--radius-md);padding:var(--space-xs) var(--space-md);font:inherit;cursor:pointer}.preset-button--active{border-color:var(--accent);color:var(--accent);font-weight:600}.flag-targeting{gap:var(--space-md);grid-template-columns:1fr 1fr;display:grid}.flag-editor-actions,.flag-confirm-actions{gap:var(--space-sm);margin-top:var(--space-md);flex-wrap:wrap;display:flex}.flag-archive{margin-left:auto}@media (width<=720px){.flag-targeting{grid-template-columns:1fr}.flag-archive{margin-left:0}}.agent-chat{gap:var(--space-md);height:calc(100svh - var(--space-xl) * 2);min-height:0;display:flex;overflow:hidden}.agent-chat-sidebar{gap:var(--space-md);width:220px;padding:var(--space-md);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.agent-chat-sidebar-title{color:var(--text-h);margin:0;font-size:18px;line-height:1.3}.agent-chat-room-list{gap:var(--space-xs);flex-direction:column;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.agent-chat-room-list li{display:flex}.agent-chat-room-button{text-align:left;width:100%;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);color:var(--text);font:inherit;cursor:pointer;word-break:break-word;background:0 0;border:1px solid #0000;font-weight:600;transition:background .15s,border-color .15s,color .15s}.agent-chat-room-button:hover{background:var(--surface-strong)}.agent-chat-room-button.active{background:var(--surface-strong);border-color:var(--border);color:var(--text-h)}.agent-chat-main{gap:var(--space-md);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.agent-chat-rooms{align-items:center;gap:var(--space-sm);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.agent-chat-rooms select{font:inherit;padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text-h)}.agent-chat-create-room{gap:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border);flex-wrap:wrap;margin-top:auto;display:flex}.agent-chat-room-admin-actions{gap:var(--space-xs);margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border);display:grid}.agent-chat-room-admin-actions .ghost-button{width:100%}.agent-chat-admin-notice{color:var(--accent);margin:0;font-size:.85rem}.agent-chat-admin-confirm{gap:var(--space-xs);padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-sm,8px);background:var(--surface-strong,#0000000a);display:grid}.agent-chat-admin-confirm p{margin:0;font-size:.85rem}.agent-chat-admin-confirm-buttons{gap:var(--space-xs);display:flex}.agent-chat-admin-confirm-buttons button{flex:1}.agent-chat-create-room input[type=text]{font:inherit;padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text-h);width:100%}.agent-chat-member-picker{gap:var(--space-xs);display:grid}.agent-chat-member-picker-head{justify-content:space-between;align-items:center;gap:var(--space-sm);color:var(--text-h);font-size:13px;font-weight:700;display:flex}.agent-chat-member-count{color:var(--muted);font-size:12px;font-weight:600}.agent-chat-member-list{gap:6px;max-height:180px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.agent-chat-member-option{align-items:center;gap:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text-h);cursor:pointer;padding:9px 10px;display:flex}.agent-chat-member-option.selected{border-color:color-mix(in srgb, var(--accent) 55%, var(--border));background:color-mix(in srgb, var(--accent) 10%, var(--surface))}.agent-chat-member-option input[type=checkbox]{accent-color:var(--accent);flex-shrink:0;margin:0}.agent-chat-member-empty{color:var(--muted);margin:0;padding:10px 0;font-size:13px}.chat-reconnecting{border-radius:var(--radius-md);color:var(--warning,#f59e0b);background:color-mix(in srgb, var(--warning,#f59e0b) 14%, var(--surface));margin:0;padding:8px 14px;font-size:13px;font-weight:700}.agent-chat-messages{gap:var(--space-md);padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);scroll-behavior:smooth;flex-direction:column;flex:1;min-height:0;margin:0;list-style:none;display:flex;overflow-y:auto}@media (width<=720px){.agent-chat{height:auto;min-height:calc(100svh - var(--space-xl) * 2);flex-direction:column;overflow:visible}.agent-chat-sidebar{width:100%;padding:var(--space-sm);align-items:center;gap:var(--space-sm);flex-direction:row}.agent-chat-sidebar-title{flex-shrink:0;font-size:16px}.agent-chat-room-list{flex-flow:wrap;overflow:auto hidden}.agent-chat-room-button{white-space:nowrap;width:auto;padding:var(--space-xs) var(--space-sm)}.agent-chat-create-room{border-top:none;width:100%;margin-top:0;margin-left:0;padding-top:0}.agent-chat-create-room input[type=text]{flex:1}.agent-chat-member-list{max-height:140px}.agent-chat-main{min-height:60svh}}.chat-group{gap:var(--space-xs);flex-direction:column;max-width:78%;display:flex}.chat-group-left{align-self:flex-start;align-items:flex-start}.chat-group-right{align-self:flex-end;align-items:flex-end}.chat-group-meta{align-items:center;gap:var(--space-sm);color:var(--muted);font-size:13px;font-weight:700;display:flex}.chat-sender{align-items:center;gap:var(--space-xs);display:inline-flex}.chat-sender-name{color:var(--accent);font-weight:800}.chat-sender-separator{color:var(--muted);font-weight:800}.chat-admin-badge:after{content:"⭐"}.chat-recipient{border-radius:var(--radius-pill);background:var(--pill-bg);color:var(--pill-text);text-transform:uppercase;letter-spacing:.02em;padding:2px 8px;font-size:11px;font-weight:800}.chat-bubbles{gap:var(--space-xs);flex-direction:column;width:100%;display:flex}.chat-bubble{gap:var(--space-xs);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-lg);background:var(--surface-strong);color:var(--text);word-break:break-word;flex-direction:column;line-height:1.5;display:flex;position:relative}.chat-group-right .chat-bubble{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--text-h);border-bottom-right-radius:var(--space-xs)}.chat-group-left .chat-bubble{border-bottom-left-radius:var(--space-xs)}.chat-time{color:var(--muted);align-self:flex-end;font-size:11px;font-weight:600}.chat-edited-mark{color:var(--muted);align-self:flex-end;margin-top:-4px;font-size:11px;font-weight:500}.chat-edit-form{gap:var(--space-sm);margin-top:var(--space-xs);flex-direction:column;display:flex}.chat-edit-form textarea{resize:vertical;width:100%;min-height:80px;padding:var(--space-sm);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:inherit;font-size:14px}.chat-edit-actions{justify-content:flex-end;gap:var(--space-sm);display:flex}.chat-reactions{gap:var(--space-xs);margin-top:var(--space-xs);flex-wrap:wrap;display:flex}.chat-reaction{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text);white-space:nowrap;padding:2px 8px;font-size:11px;font-weight:600}.chat-message-actions{margin-top:var(--space-xs);opacity:0;justify-content:flex-end;transition:opacity .2s;display:flex}.chat-bubble:hover .chat-message-actions{opacity:1}.chat-message-actions .ghost-button{height:auto;padding:2px 8px;font-size:11px}.chat-body{white-space:pre-wrap}.chat-body-md{white-space:normal}.chat-body-md p,.chat-body-md ul,.chat-body-md ol,.chat-body-md pre,.chat-body-md table{margin:.4em 0}.chat-body-md p:first-child,.chat-body-md pre:first-child,.chat-body-md table:first-child,.chat-body-md ul:first-child,.chat-body-md ol:first-child{margin-top:0}.chat-body-md p:last-child,.chat-body-md pre:last-child,.chat-body-md table:last-child,.chat-body-md ul:last-child,.chat-body-md ol:last-child{margin-bottom:0}.chat-body-md pre{border-radius:var(--radius-md);background:var(--code-bg,#1f2937);max-width:100%;color:var(--code-text,#f3f4f6);font-size:13px;position:relative;overflow-x:auto}.chat-body-md pre>code.hljs{padding:var(--space-sm) var(--space-md);background:0 0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;display:block}.chat-body-md :not(pre)>code{border-radius:var(--radius-sm);background:var(--pill-bg);color:var(--pill-text);padding:2px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.92em}.chat-body-md .chat-copy-code{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;opacity:0;padding:4px 8px;font-size:11px;transition:opacity .15s;position:absolute;top:6px;right:6px}.chat-body-md pre:hover .chat-copy-code,.chat-body-md .chat-copy-code:focus-visible{opacity:1}.chat-body-md .chat-copy-code.copied{color:var(--success,#10b981)}.chat-msg-failed{border:2px solid var(--error,#ef4444);background:color-mix(in srgb, var(--error,#ef4444) 10%, var(--surface-strong))}.chat-failed-group .chat-confirm-actions .ghost-button{padding:var(--space-xs) var(--space-md);font-size:13px}.chat-load-older{align-self:center;display:flex}.chat-presence{background:var(--muted);width:8px;height:8px;box-shadow:inset 0 0 0 1px var(--surface);border-radius:50%}.chat-presence-idle{background:var(--success,#10b981)}.chat-presence-busy{background:var(--warning,#f59e0b)}.chat-presence-unknown{display:none}.error-banner{justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:color-mix(in srgb, var(--error,#ef4444) 12%, var(--surface));color:var(--error,#ef4444);font-weight:600;display:flex}.error-banner .ghost-button{padding:4px 8px;font-size:13px}.chat-bubble.chat-msg-confirm-request{border:2px solid color-mix(in srgb, var(--accent) 55%, var(--border));background:color-mix(in srgb, var(--accent) 10%, var(--surface-strong))}.chat-confirm-actions{gap:var(--space-sm);margin-top:var(--space-xs);display:flex}.chat-confirm-actions .primary-button,.chat-confirm-actions .ghost-button{padding:var(--space-xs) var(--space-md);font-size:13px}.chat-status-group{flex-direction:column;align-self:center;align-items:center;gap:4px;max-width:100%;display:flex}.chat-status{color:var(--muted);text-align:center;font-size:13px;font-style:italic}.agent-chat-send{gap:var(--space-sm);align-items:flex-end;display:flex}.agent-chat-send textarea{resize:none;flex:1;min-height:48px;max-height:160px}.agent-chat-send button{flex-shrink:0;min-height:48px}@media (width<=720px){.agent-chat-create-room{width:100%;margin-left:0}.agent-chat-create-room input[type=text]{flex:1}.chat-group{max-width:92%}.agent-chat-send{flex-direction:column;align-items:stretch}.agent-chat-send button{width:100%}}.county-map{width:100%;max-width:480px;height:auto;margin:0 auto;display:block}.county-map .county{fill:var(--kb-surface-2,#fff3e2);stroke:var(--kb-border-strong,#d9c4ab);stroke-width:.5px;stroke-linejoin:round;cursor:pointer;transition:fill .2s}.county-map .county:hover{fill:var(--accent);opacity:.7}.county-map .county--highlighted{fill:var(--accent);stroke:var(--accent);stroke-width:1.2px}.county-map .county--budapest{stroke-width:1px}.parent-dashboard .empty-state{padding:var(--space-lg);text-align:center;background:var(--surface);border-radius:var(--radius-md)}.parent-dashboard .empty-state .muted{color:var(--muted);margin-top:var(--space-sm);font-size:.9rem}.child-list{gap:var(--space-md);flex-direction:column;display:flex}.child-card{padding:var(--space-md)}.child-header{align-items:baseline;gap:var(--space-sm);margin-bottom:var(--space-sm);display:flex}.child-header h3{margin:0}.child-email{color:var(--muted);font-size:.85rem}.deck-progress-list{margin-top:var(--space-sm);gap:var(--space-xs);flex-direction:column;display:flex}.deck-progress-row{gap:var(--space-sm);grid-template-columns:1fr 120px 100px;align-items:center;font-size:.85rem;display:grid}.deck-progress-title{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.deck-progress-stat{color:var(--muted);text-align:right;font-size:.8rem}.progress-bar-bg{background:var(--surface-strong);border-radius:var(--radius-pill);width:100%;height:6px;overflow:hidden}.progress-bar-fill{background:var(--accent);border-radius:var(--radius-pill);height:100%;transition:width .3s}@media (width<=600px){.deck-progress-row{grid-template-columns:1fr 80px}.deck-progress-stat{text-align:left;grid-column:1/-1}}.task-render{gap:var(--space-md);display:grid}.timer{align-items:center;gap:var(--space-sm);background:var(--kb-teal-soft);color:var(--kb-teal);border:2px solid var(--kb-teal);border-radius:999px;padding:6px 14px;font-size:17px;font-weight:900;display:flex}.timer--urgent{border-color:var(--accent);color:var(--accent);animation:.8s ease-in-out infinite alternate timer-pulse}.timer-icon{font-size:20px}.timer-value{font-variant-numeric:tabular-nums}@keyframes timer-pulse{0%{background:var(--surface-strong)}to{background:#c2410c14}}.task-image-container{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface-strong);overflow:hidden}.task-image{object-fit:contain;width:100%;max-height:340px;display:block}.answer-option-image{object-fit:cover;border-radius:var(--radius-sm);width:48px;height:48px;display:block}.county-map-container{border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-sm);background:var(--surface);max-width:100%;overflow:hidden}.county-map-container .county-map{width:100%;height:auto;margin:0;display:block}.numeric-input-container{align-items:center;gap:var(--space-sm);display:flex}.numeric-field{border:2px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md);font:inherit;text-align:center;background:var(--surface);width:100%;max-width:240px;color:var(--text-h);font-size:20px;transition:border-color .15s}.numeric-field:focus{border-color:var(--accent);outline:none}.numeric-field.numeric-correct{border-color:var(--success);background:#16a34a14}.numeric-field.numeric-incorrect{border-color:var(--error);background:var(--error-bg)}.numeric-unit{color:var(--muted);font-size:18px;font-weight:700}.numeric-hint{color:var(--muted);margin:0;font-size:14px}.numeric-correct-answer{padding:var(--space-sm);border-radius:var(--radius-sm);background:var(--surface-strong);margin:0;font-size:15px}.numeric-tolerance{color:var(--muted);font-size:13px}.matching-hint{color:var(--muted);margin:0 0 var(--space-sm);font-size:14px}.matching-columns{gap:var(--space-md);grid-template-columns:1fr 1fr;display:grid}.matching-column{gap:var(--space-sm);align-content:start;display:grid}.matching-item{border:2px solid var(--border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font:inherit;text-align:left;background:var(--surface);color:var(--text-h);cursor:pointer;min-height:44px;transition:border-color .15s,background .15s}.matching-item:hover:not(:disabled){border-color:var(--accent)}.matching-selected{border-color:var(--accent);background:#c2410c14}.matching-paired{background:var(--surface-strong);border-style:dashed}.matching-correct{border-color:var(--success);background:#16a34a14}.matching-incorrect{border-color:var(--error);background:var(--error-bg)}@media (width<=500px){.matching-columns{grid-template-columns:1fr}}.ordering-hint{color:var(--muted);margin:0 0 var(--space-sm);font-size:14px}.ordering-list{gap:8px;display:grid}.ordering-item{align-items:center;gap:var(--space-sm);border:2px solid var(--border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);background:var(--surface);grid-template-columns:28px 1fr auto;min-height:48px;display:grid}.ordering-correct{border-color:var(--success);background:#16a34a14}.ordering-incorrect{border-color:var(--error);background:var(--error-bg)}.ordering-index{color:var(--muted);text-align:center;font-weight:700}.ordering-text{color:var(--text-h)}.ordering-controls{gap:4px;display:flex}.ordering-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;padding:4px 8px;font-size:12px}.ordering-btn:disabled{opacity:.3;cursor:default}.ordering-btn:hover:not(:disabled){background:var(--surface-strong)}.true-false-buttons{gap:var(--space-md);grid-template-columns:1fr 1fr;display:grid}.true-false-btn{border:3px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-xl) var(--space-lg);font:inherit;cursor:pointer;background:var(--surface);color:var(--text-h);min-height:100px;font-size:22px;font-weight:700;transition:border-color .15s,background .15s,transform .1s}.true-false-btn:hover:not(:disabled){transform:scale(1.02)}.true-false-true:hover:not(:disabled){border-color:var(--success);background:#16a34a0f}.true-false-false:hover:not(:disabled){border-color:var(--error);background:#7f1d1d0a}.true-false-btn.selected{transform:scale(1.02)}.true-false-true.selected{border-color:var(--success);background:#16a34a1a}.true-false-false.selected{border-color:var(--error);background:#7f1d1d14}.true-false-btn.correct{border-color:var(--success);background:#16a34a24;box-shadow:0 0 0 2px #16a34a33}@media (width<=400px){.true-false-buttons{grid-template-columns:1fr}}.fill-blank-text{color:var(--text-h);font-size:18px;line-height:2.2}.fill-blank-input-wrapper{vertical-align:middle;align-items:center;gap:4px;display:inline-flex}.fill-blank-input{border:none;border-bottom:2px solid var(--accent);font:inherit;color:var(--text-h);background:0 0;outline:none;min-width:60px;margin:0 4px;padding:2px 4px;font-size:18px}.fill-blank-input:focus{border-bottom-color:var(--accent);background:#c2410c0a}.fill-blank-correct{border-bottom-color:var(--success);color:var(--success)}.fill-blank-incorrect{border-bottom-color:var(--error);color:var(--error)}.fill-blank-check{font-size:14px;font-weight:700}.fill-blank-correct+.fill-blank-check{color:var(--success)}.fill-blank-incorrect+.fill-blank-check{color:var(--error)}.editor-page{flex-direction:column;gap:1.25rem;display:flex}.editor-stepper{align-items:flex-start;gap:0;padding:1rem 0;display:flex;overflow-x:auto}.editor-step{flex-shrink:0;align-items:center;gap:.5rem;display:flex;position:relative}.editor-step-circle{border:2px solid var(--border);background:var(--surface);width:2.25rem;height:2.25rem;color:var(--text,#ccc);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.9rem;font-weight:600;transition:background .2s,border-color .2s;display:flex}.editor-step-active .editor-step-circle{border-color:var(--primary,#3b82f6);background:var(--primary,#3b82f6);color:#fff}.editor-step-text{flex-direction:column;min-width:4rem;display:flex}.editor-step-desc{opacity:.65;white-space:nowrap;font-size:.7rem}.editor-step-line{background:var(--border);flex-shrink:0;align-self:center;width:2rem;height:2px;margin:0 .5rem}.editor-step-done+.editor-step-line{background:var(--success)}.editor-intro{opacity:.85;max-width:60ch}.editor-card{border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-direction:column;gap:.85rem;padding:1.25rem;display:flex}.editor-card h3{margin:0}.editor-mode-toggle{gap:.5rem;display:flex}.editor-field{flex-direction:column;gap:.35rem;max-width:28rem;display:flex}.editor-field select,.editor-field input{border-radius:8px;padding:.5rem}.editor-type-checkboxes{flex-wrap:wrap;gap:.4rem 1rem;display:flex}.editor-checkbox-label{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.3rem;font-size:.9rem;display:flex}.editor-checkbox-label input[type=checkbox]{margin:0}.editor-hint{opacity:.8;margin:0;font-size:.9rem}.editor-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.editor-copy-notice{color:var(--success,#4caf50);font-size:.9rem}.editor-prompt-view summary{cursor:pointer;opacity:.85;font-size:.9rem}.editor-prompt-view pre{white-space:pre-wrap;word-break:break-word;background:#00000040;border-radius:8px;max-height:22rem;padding:.75rem;font-size:.82rem;overflow:auto}.editor-tips{opacity:.8;margin:0;padding-left:1.1rem;font-size:.85rem}.editor-json{resize:vertical;border-radius:8px;width:100%;padding:.75rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}.editor-success{color:var(--success,#4caf50);margin:0;font-weight:600}.editor-preview-list{flex-direction:column;gap:.75rem;margin:0;padding-left:1.2rem;display:flex}.editor-preview-list li{flex-direction:column;gap:.25rem;display:flex}.editor-type-badge{text-transform:uppercase;letter-spacing:.04em;background:#ffffff1a;border-radius:999px;align-self:flex-start;padding:.1rem .45rem;font-size:.72rem}.editor-source-origin-badge{text-transform:uppercase;letter-spacing:.04em;color:#d32f2f;background:#d32f2f24;border-radius:999px;align-self:flex-start;padding:.1rem .45rem;font-size:.72rem}.editor-preview-detail{opacity:.85;font-size:.85rem}.editor-preview-body{white-space:pre-wrap;opacity:.9;border-left:2px solid var(--border);padding-left:.75rem;font-size:.88rem}.editor-question-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.25rem 0;display:flex}.editor-question-select-all{font-weight:600}.editor-question-checkbox{margin:.1rem .15rem 0 0}.editor-question-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.editor-question-row{border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem .75rem;display:flex}.editor-question-main{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.editor-status-draft,.editor-status-live{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:.1rem .45rem;font-size:.72rem}.editor-status-draft{color:#ffc107;background:#ffc1072e}.editor-status-live{color:#4caf50;background:#4caf502e}.editor-status-review{text-transform:uppercase;letter-spacing:.04em;color:#ff9800;background:#ff98002e;border-radius:999px;padding:.1rem .45rem;font-size:.72rem}.editor-warn{color:#ffc107;font-size:.8rem}.editor-row-actions{align-items:center;gap:.4rem;display:flex}.editor-upload-label{cursor:pointer;align-items:center;display:inline-flex}.editor-preview-panel{border:1px solid var(--border);background:#00000026;border-radius:10px;flex-direction:column;gap:.75rem;margin-top:.75rem;padding:1rem;display:flex}.editor-preview-panel .editor-actions{justify-content:space-between}.editor-timelimit{align-items:flex-end}.editor-timelimit .editor-field{max-width:16rem}.editor-timelimit input{border-radius:8px;padding:.45rem}.lesson-reader{flex-direction:column;gap:1.25rem;max-width:760px;margin:0 auto;padding:1rem 0;display:flex}.lesson-progress-bar-wrap{align-items:center;gap:.75rem;display:flex}.lesson-progress-label{color:var(--muted);white-space:nowrap;text-align:right;min-width:3.5rem;font-size:.85rem;font-weight:800}.lesson-progress-track{background:#f1e5d3;border-radius:999px;flex:1;height:12px;overflow:hidden}.lesson-progress-fill{background:linear-gradient(90deg, var(--kb-teal), #2dd4bf);border-radius:999px;height:100%;transition:width .3s}.lesson-page{flex-direction:column;gap:1rem;display:flex}.lesson-page-title{margin:0;font-size:1.35rem;font-weight:700}.lesson-page-image{object-fit:contain;border-radius:8px;width:100%;max-height:380px}.lesson-page-body{font-size:1rem;line-height:1.7}.lesson-page-body h1,.lesson-page-body h2,.lesson-page-body h3{margin:1em 0 .4em}.lesson-page-body p{margin:0 0 .8em}.lesson-page-body ul,.lesson-page-body ol{margin-bottom:.8em;padding-left:1.5em}.lesson-page-body code{background:#ffffff14;border-radius:4px;padding:.1em .35em;font-family:monospace;font-size:.9em}.lesson-page-body pre{background:#ffffff0f;border-radius:8px;padding:.8em 1em;overflow-x:auto}.lesson-page-body pre code{background:0 0;padding:0}.lesson-finish-banner{text-align:center;background:#7c6bf01f;border-radius:12px;flex-direction:column;align-items:center;gap:.75rem;padding:1rem;display:flex}.lesson-finish-banner p{margin:0;font-weight:600}.lesson-nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.lesson-nav-pagination{gap:.5rem;display:flex}.lesson-resume-overlay{z-index:100;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lesson-resume-card{text-align:center;flex-direction:column;gap:1rem;width:90%;max-width:380px;display:flex}.lesson-resume-card p{margin:0;font-size:1.05rem}.lesson-resume-actions{flex-direction:column;gap:.5rem;display:flex}@media (width<=600px){.lesson-nav{flex-direction:column-reverse;align-items:stretch}.lesson-nav-pagination{justify-content:space-between}.lesson-nav .ghost-button:first-child{text-align:center}}.workspace-page{gap:var(--space-lg);flex-direction:column;display:flex}.new-project-row{gap:var(--space-sm);align-items:center;display:flex}.new-project-row .text-input{flex:1}.project-list{gap:var(--space-md);flex-direction:column;display:flex}.project-card{padding:var(--space-md);gap:var(--space-sm);flex-direction:column;display:flex}.project-header{align-items:baseline;gap:var(--space-sm);flex-wrap:wrap;display:flex}.project-header h3{margin:0}.project-status{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:.1rem .45rem;font-size:.72rem}.project-status--draft{color:#ffc107;background:#ffc1072e}.project-status--in_review{color:#2196f3;background:#2196f32e}.project-status--published{color:#4caf50;background:#4caf502e}.project-meta{gap:var(--space-md);color:var(--muted);font-size:.85rem;display:flex}.project-actions{gap:var(--space-sm);margin-top:var(--space-xs);display:flex}.deck-card-placeholder{aspect-ratio:16/9;background:var(--surface-strong);border-radius:var(--radius-md);width:100%;margin-bottom:var(--space-sm)}.deck-card--readonly{opacity:.7;cursor:default}.deck-card--readonly:hover{box-shadow:none;transform:none}.empty-state{padding:var(--space-lg);text-align:center;background:var(--surface);border-radius:var(--radius-md)}.empty-state .muted{color:var(--muted);margin-top:var(--space-sm);font-size:.9rem}.offline-badge{color:#2e7d32;border-radius:var(--radius-sm);background-color:#e8f5e9;align-items:center;gap:.25rem;padding:.25rem .75rem;font-size:.85rem;font-weight:500;display:inline-flex}.tertiary-button{color:#333;border-radius:var(--radius-md);cursor:pointer;background-color:#f5f5f5;border:1px solid #ddd;padding:.5rem 1rem;font-size:.875rem;transition:all .2s}.tertiary-button:hover:not(:disabled){background-color:#eee;border-color:#bbb}.tertiary-button:disabled{opacity:.6;cursor:not-allowed}.challenge-queue,.challenge-form,.challenge-list{margin-top:var(--space-lg);padding:var(--space-md);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.challenge-queue h3,.challenge-form h3,.challenge-list h3{margin-top:0}.challenge-queue-item,.challenge-card{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-sm) 0;border-bottom:1px solid var(--border);display:flex}.sound-toggle{cursor:pointer;align-items:center;gap:.5rem;display:inline-flex}.profile-hint{color:var(--color-text-muted,#6b7280);margin:.25rem 0 0;font-size:.85rem}.nav-group{align-items:center;gap:var(--space-xs,.35rem);display:flex}.nav-groups{align-items:center;gap:var(--space-md,1rem);flex-wrap:wrap;flex:1;display:flex}.nav-group-title{text-transform:uppercase;letter-spacing:.06em;opacity:.6;margin-right:.15rem;font-size:.72rem}.nav-groups .nav-group-title{display:none}.nav-group-right{margin-left:auto}.nav-link-active{background:var(--surface,#0000000f);border-radius:8px;font-weight:700}.nav-hamburger{font-size:1.2rem;line-height:1;display:none}.nav-overlay{z-index:40;background:#00000059;position:fixed;inset:0}.nav-drawer{background:var(--bg,#fff);z-index:41;align-items:flex-start;gap:var(--space-sm,.6rem);visibility:hidden;flex-direction:column;width:min(78vw,300px);padding:1.25rem 1rem;transition:transform .2s;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:2px 0 12px #0003}.nav-drawer-open{visibility:visible;transform:translate(0)}.nav-drawer .nav-group{border-bottom:1px solid var(--border,#00000014);flex-direction:column;align-items:flex-start;width:100%;padding-bottom:.5rem}.nav-drawer .nav-group-title{margin:.4rem 0 .1rem}@media (width<=640px){.nav-hamburger{display:inline-flex}.nav-groups{display:none}}.editor-chapter-label{color:var(--kb-text-2);margin-bottom:var(--space-sm);gap:6px;font-size:13.5px;font-weight:700;display:grid}.editor-chapter-input{border:1px solid var(--border);border-radius:var(--radius-md);font:inherit;padding:9px 12px}.lesson-chapter{color:var(--kb-teal);margin:0 0 4px}.login-split{border-radius:var(--kb-r-lg,20px);box-shadow:var(--kb-shadow-lg);max-width:1100px;margin:var(--space-xl) auto;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.login-hero{background:linear-gradient(160deg, var(--kb-teal-soft) 0%, var(--kb-sky-soft) 55%, var(--kb-bg) 100%);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:44px;display:flex}.login-logo{width:180px;max-width:60%}.login-brand{color:var(--kb-text);margin-top:18px;font-size:30px;font-weight:900}.login-tagline{color:var(--kb-teal);max-width:320px;margin-top:6px;font-size:16px;font-weight:700;line-height:1.5}.login-pills{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:22px;display:flex}.login-pill{background:var(--kb-surface);border-radius:12px;padding:8px 14px;font-size:12px;font-weight:900}.login-pill.streak{color:var(--kb-streak)}.login-pill.xp{color:var(--kb-xp)}.login-pill.gift{color:var(--kb-pink)}.login-form{background:var(--kb-bg);flex-direction:column;justify-content:center;padding:44px;display:flex}.login-sub{color:var(--kb-text-2);margin:6px 0 24px}.google-button{background:var(--kb-surface);border:2px solid var(--kb-border-strong);height:54px;font:inherit;color:var(--kb-text);cursor:pointer;border-radius:16px;justify-content:center;align-items:center;gap:12px;font-size:15.5px;font-weight:900;display:flex}.google-dot{background:conic-gradient(#4285f4 0 25%, #34a853 0 50%, #fbbc05 0 75%, #ea4335 0);border-radius:50%;width:22px;height:22px}.login-android{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-sm) 0;border-bottom:1px solid var(--border);display:flex}.challenge-queue-item:last-of-type,.challenge-card:last-of-type{border-bottom:none}.challenge-queue-info,.challenge-card-info{flex-direction:column;gap:2px;min-width:0;display:flex}.challenge-queue-actions,.challenge-card-actions{gap:var(--space-sm);flex:none;display:flex}.challenge-progress-chip{border-radius:var(--radius-pill,999px);background:var(--pill-bg);width:fit-content;color:var(--pill-text);padding:2px 10px;font-size:13px;font-weight:700;display:inline-block}.challenge-instructions,.challenge-meta,.challenge-counts{color:var(--muted);margin:0;font-size:14px}.challenge-creator-note{color:var(--accent);font-size:13px;font-weight:700}.challenge-photo-preview{margin-top:var(--space-md);text-align:center}.challenge-photo-preview img{border-radius:var(--radius-lg);border:1px solid var(--border);max-width:100%;max-height:420px}.challenge-form label{margin:var(--space-sm) 0;font-weight:600;display:block}.challenge-form input:not([type=radio]):not([type=checkbox]),.challenge-form select,.challenge-form textarea{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);width:100%;max-width:480px;color:var(--text);font:inherit;margin-top:4px;padding:8px 10px;display:block}.challenge-form fieldset{border:1px solid var(--border);border-radius:var(--radius-md);margin:var(--space-sm) 0}.challenge-form fieldset label{margin-right:var(--space-md);align-items:center;gap:6px;font-weight:500;display:inline-flex}.challenge-goal-fields,.challenge-schedule-fields{gap:var(--space-md);flex-wrap:wrap;display:flex}.challenge-goal-fields label,.challenge-schedule-fields label{flex:180px}.challenge-edit-fields{gap:var(--space-sm);flex-wrap:wrap;align-items:center;width:100%;display:flex}.challenge-edit-fields input{border:1px solid var(--border);border-radius:var(--radius-md);font:inherit;border-top:1px solid var(--kb-border);color:var(--kb-text-3);flex-wrap:wrap;flex:200px;margin-top:28px;padding:16px 10px 8px;font-size:12.5px}@media (width<=760px){.login-split{grid-template-columns:1fr}}.state-panel{background:var(--kb-bg);border:1px solid var(--kb-border);text-align:center;max-width:420px;margin:var(--space-lg) auto;border-radius:18px;padding:22px}.state-mascot{border-radius:24px;width:110px;height:110px;margin:0 auto 12px;display:block}@keyframes kbFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.state-mascot.floating{animation:3s ease-in-out infinite kbFloat}@media (prefers-reduced-motion:reduce){.state-mascot.floating{animation:none}}.state-panel h3{margin:0;font-size:16px;font-weight:900}.state-text{color:var(--kb-text-2);margin:4px 0 12px;font-size:12.5px;line-height:1.5}.deck-card{border-top:6px solid var(--kb-teal)}.editor-model-matrix{margin-top:var(--space-md);padding:var(--space-md);border:1px solid var(--kb-border);border-radius:var(--radius-md);background:var(--kb-surface-2);font-size:14px}.editor-model-matrix ul{margin:8px 0;padding-left:18px}.editor-model-matrix .model-forbidden{color:var(--kb-danger);font-weight:700}.editor-model-warning{color:var(--kb-text-2);margin:8px 0 0;font-size:12.5px}.user-admin-search{border:1px solid var(--border);border-radius:var(--radius-md);width:100%;font:inherit;margin:var(--space-md) 0;padding:10px 14px}.user-admin-results{gap:6px;margin:0;padding:0;list-style:none;display:grid}.user-admin-row{gap:var(--space-md);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);width:100%;font:inherit;cursor:pointer;text-align:left;align-items:baseline;padding:10px 14px;display:flex}.user-admin-row.selected,.user-admin-row:hover{border-color:var(--accent)}.user-admin-username{color:var(--muted);margin-left:auto;font-size:13px}.user-admin-detail{margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--border)}.role-chips{gap:var(--space-sm);margin:var(--space-md) 0;flex-wrap:wrap;display:flex}.role-chip{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);font:inherit;cursor:pointer;padding:6px 14px;font-weight:700}.role-chip.active{background:var(--accent);color:var(--hero-text);border-color:var(--accent)}.role-chip.readonly{background:var(--surface-strong);color:var(--muted);cursor:not-allowed}.parent-link-row{align-items:center;gap:var(--space-md);padding:6px 0;display:flex}.user-admin-muted{color:var(--muted)}.group-section{margin:var(--space-md) 0}.group-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.group-row{align-items:center;gap:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;padding:8px 12px;display:flex}.group-row.locked{opacity:.55;cursor:not-allowed}.group-name{font-weight:700}.group-role-badge{border-radius:var(--radius-pill);background:var(--pill-bg);color:var(--pill-text);padding:2px 10px;font-size:12px;font-weight:700}.role-chip.inherited{background:var(--surface-strong);color:var(--muted);border-style:dashed}.role-chip.inherited em{font-size:11px;font-style:normal}.help-tip{display:inline-flex;position:relative}.help-tip-button{border:1.5px solid var(--kb-border-strong);background:var(--kb-surface);width:20px;height:20px;color:var(--kb-text-2);cursor:pointer;border-radius:50%;padding:0;font-size:12px;font-weight:900;line-height:1}.help-tip-bubble{z-index:30;background:var(--kb-surface);border:1px solid var(--kb-border);width:260px;box-shadow:var(--kb-shadow-md);color:var(--kb-text-2);border-radius:12px;padding:10px 12px;font-size:12.5px;line-height:1.5;position:absolute;top:26px;left:50%;transform:translate(-50%)}.help-panel{border:1px dashed var(--kb-border-strong);background:var(--kb-sun-soft,#fef3d6);margin:var(--space-sm) 0 var(--space-md);border-radius:14px}.help-panel-toggle{width:100%;font:inherit;color:var(--kb-text-2);cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:10px 14px;font-weight:800;display:flex}.help-panel-icon{background:var(--kb-sun);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:13px;font-weight:900;display:inline-flex}.help-panel-chevron{margin-left:auto}.help-panel-body{color:var(--kb-text-2);padding:0 16px 12px;font-size:13.5px;line-height:1.6}.help-panel-body p{margin:0 0 8px}.help-panel-dismiss{font:inherit;color:var(--kb-text-3);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;font-weight:700;text-decoration:underline}.help-panel-reopen{font:inherit;color:var(--kb-text-3);cursor:pointer;margin:0 0 var(--space-sm);background:0 0;border:0;padding:2px 0;font-size:12px;font-weight:700}.editor-stepper{gap:0;padding:14px 0 18px}.editor-step-circle{border:2.5px solid var(--kb-border-strong);background:var(--kb-surface);width:44px;height:44px;color:var(--kb-text-2);box-shadow:var(--kb-shadow-sm);transition:transform var(--kb-t-fast) var(--kb-ease), background var(--kb-t-fast), border-color var(--kb-t-fast);font-size:15px;font-weight:900}.editor-step-circle:hover{transform:translateY(-2px)}.editor-step-active .editor-step-circle{border-color:var(--kb-brand);background:var(--kb-brand);color:var(--kb-text-inverse);transform:scale(1.08);box-shadow:0 3px #8a2d08}.editor-step-done .editor-step-circle{border-color:var(--kb-success);background:var(--kb-success-soft);color:var(--kb-success)}.editor-step-label{color:var(--kb-text);font-size:13.5px;font-weight:900}.editor-step-desc{color:var(--kb-text-3);font-size:11.5px}.editor-step-line{background:var(--kb-border);border-radius:999px;width:34px;height:3px;margin:0 8px}.editor-step-done+* .editor-step-line,.editor-step-done .editor-step-line{background:var(--kb-success)}.editor-card{background:var(--kb-surface);border:1px solid var(--kb-border);border-top:5px solid var(--kb-brand);border-radius:var(--kb-r-lg,20px);box-shadow:var(--kb-shadow-md);padding:22px}.editor-card h3{color:var(--kb-text);margin-top:0;font-size:19px;font-weight:900}.editor-json{width:100%;min-height:260px;font-family:var(--mono);border:1.5px solid var(--kb-border-strong);background:var(--kb-surface);color:var(--kb-text);border-radius:14px;padding:14px;font-size:13px;line-height:1.55}.editor-json:focus-visible{outline:2.5px solid var(--kb-brand);outline-offset:1px}.editor-success{background:var(--kb-success-soft);color:var(--kb-success);border:1px solid var(--kb-success);border-radius:14px;align-items:center;gap:10px;padding:12px 16px;font-weight:800;display:flex}.editor-success:before{content:"🎉";font-size:20px}.editor-hint{color:var(--kb-text-3);font-size:13px;line-height:1.55}.editor-prompt-view{border:1px dashed var(--kb-border-strong);background:var(--kb-surface-2);border-radius:14px;padding:10px 14px}.editor-prompt-view summary{cursor:pointer;color:var(--kb-text-2);font-weight:800}.editor-prompt-view pre{background:var(--kb-surface);border-radius:10px;max-height:320px;padding:12px;font-size:12px;overflow:auto}.editor-tips{gap:6px;padding:0;list-style:none;display:grid}.editor-tips li{color:var(--kb-text-2);padding-left:26px;font-size:13.5px;position:relative}.editor-tips li:before{content:"📸";position:absolute;left:0}.editor-copy-notice{background:var(--kb-teal-soft);color:var(--kb-teal);animation:kbFadeIn var(--kb-t-base) var(--kb-ease);border-radius:999px;padding:6px 14px;font-size:12.5px;font-weight:900}@keyframes kbFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.editor-field label,.editor-field{color:var(--kb-text-2);font-size:13.5px;font-weight:700}.editor-field input,.editor-field select{border:1.5px solid var(--kb-border-strong);font:inherit;background:var(--kb-surface);border-radius:12px;padding:9px 12px}@media (width<=900px){.editor-stepper{flex-wrap:wrap;gap:10px}.editor-step-line{display:none}}.student-challenges-page{gap:var(--space-lg);flex-direction:column;display:flex}.student-challenge-section{gap:var(--space-sm);flex-direction:column;display:flex}.student-challenge-section-head{align-items:center;gap:var(--space-sm);display:flex}.student-challenge-section-head h3{margin:0;font-size:18px}.student-challenge-section-head p{color:var(--muted);margin:0;font-size:13px}.student-challenge-mascot{object-fit:contain;width:52px;height:52px}.student-challenge-count{background:var(--kb-teal-soft,#ccfbf1);min-width:28px;height:28px;color:var(--kb-teal,#0d9488);border-radius:999px;justify-content:center;align-items:center;margin-left:auto;padding:0 10px;font-weight:700;display:inline-flex}.student-challenge-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.student-challenge-card{gap:var(--space-xs);border:1px solid var(--border);border-radius:var(--kb-r-lg,20px);background:var(--surface);padding:var(--space-md);box-shadow:var(--kb-shadow-sm,0 1px 3px #00000014);flex-direction:column;display:flex}.student-challenge-card.expired{opacity:.6}.student-challenge-head{justify-content:space-between;align-items:flex-start;gap:var(--space-sm);display:flex}.student-challenge-head h3{margin:0;font-size:17px}.student-challenge-status{white-space:nowrap;font-size:12px;font-weight:700}.student-challenge-status.submitted{color:#b45309}.student-challenge-status.approved{color:#15803d}.student-challenge-status.rejected{color:#dc2626}.student-challenge-desc{color:var(--muted);margin:0;font-size:14px}.student-challenge-reward{color:#92400e;background:#fde9c4;border-radius:999px;align-self:flex-start;padding:3px 10px;font-size:13px;font-weight:700}.student-challenge-progress{align-items:center;gap:var(--space-sm);display:flex}.student-challenge-track{background:#f1e5d3;border-radius:999px;flex:1;height:10px;overflow:hidden}.student-challenge-fill{background:var(--kb-teal,#0d9488);border-radius:999px;height:100%;transition:width .4s}.student-challenge-progress-label{font-size:13px;font-weight:700}.student-challenge-rejection{color:#dc2626;margin:0;font-size:13px}.student-challenge-meta{justify-content:space-between;align-items:center;gap:var(--space-sm);margin-top:auto;display:flex}.student-challenge-deadline{color:var(--muted);font-size:13px}.student-challenge-deadline.expired{color:#dc2626;font-weight:700}.student-challenge-photo-hint{color:var(--muted);font-size:12px}.student-challenge-submit{padding:6px 14px;font-size:14px}.nav-brand{flex-shrink:0;align-items:center;gap:10px;text-decoration:none;display:flex}.nav-brand-logo{border-radius:var(--kb-r-md);object-fit:contain;width:38px;height:38px}.nav-brand-word{color:var(--kb-brown,#6b4a32);font-size:19px;font-weight:900}.nav-streak{color:#ea580c;white-space:nowrap;align-items:center;gap:4px;font-weight:900;display:inline-flex}.nav-xp-pill{color:#92400e;white-space:nowrap;background:#fde9c4;border-radius:999px;align-items:center;gap:5px;padding:5px 12px;font-size:14px;font-weight:900;display:inline-flex}.nav-xp-label{color:#d97706;font-size:11px;font-weight:900}.topbar .nav-link{border-radius:var(--kb-r-md);min-height:0;color:var(--muted);background:0 0;padding:9px 14px;font-size:14.5px;font-weight:800}.topbar .nav-link:hover:not(:disabled){background:var(--surface-strong)}.topbar .nav-link-active{background:var(--kb-brand-soft);color:var(--kb-brand)}.workspace h1{margin-bottom:8px;font-size:32px;font-weight:900;line-height:1.1}.workspace h2{font-size:26px;font-weight:900}@media (width<=860px){.nav-brand-word{display:none}}.challenge-form h3,.challenge-list h3,.challenge-queue h3,.user-admin-detail h3,.parent-dashboard h3{font-weight:900}.challenge-form,.challenge-list{box-shadow:var(--kb-shadow-sm)}.user-admin-row,.parent-link-row{border-radius:var(--kb-r-md)}.user-admin-row.selected{background:var(--kb-brand-soft)}.user-admin-row:hover,.parent-link-row:hover{background:var(--surface-strong)}.connections-page{gap:var(--space-md);flex-direction:column;max-width:760px;display:flex}.connection-search-row{gap:var(--space-sm);flex-wrap:wrap;display:flex}.connection-search-row input[type=search]{flex:1;min-width:180px}.connection-result-list,.connection-list{gap:var(--space-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.connection-result-list li,.connection-list li{justify-content:space-between;align-items:center;gap:var(--space-sm);border-bottom:1px solid var(--border);padding:8px 0;display:flex}.connection-list li:last-child,.connection-result-list li:last-child{border-bottom:0}.connection-actions{gap:var(--space-sm);display:flex}.connection-relationship{color:var(--muted);font-size:13px}.target-empty-hint{color:var(--muted);margin-top:4px;font-size:13px;display:block}.group-create-box{gap:var(--space-sm);border:1px dashed var(--kb-border-strong);border-radius:var(--kb-r-md);padding:var(--space-sm) var(--space-md);flex-direction:column;display:flex}.group-member-picker{gap:var(--space-sm);flex-wrap:wrap;display:flex}.group-member-option{align-items:center;gap:6px;font-size:14px;display:inline-flex}.deck-card-head{justify-content:space-between;align-items:flex-start;gap:var(--space-sm);display:flex}.deck-card-head h3{margin:0}.due-badge{background:var(--kb-brand);color:var(--kb-text-inverse);white-space:nowrap;border-radius:999px;flex:none;padding:5px 10px;font-size:12px;font-weight:900}.deck-done-note{color:var(--kb-success,#16a34a);align-self:center;font-size:14px;font-weight:800}.step-builder{gap:var(--space-sm);flex-direction:column;display:flex}.step-card{border:1px dashed var(--kb-border-strong);border-radius:var(--kb-r-md);padding:var(--space-sm) var(--space-md);gap:var(--space-sm);flex-direction:column;display:flex}.step-card-head{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.step-remove{min-height:0;padding:4px 10px;font-size:13px}.step-add-row{gap:var(--space-sm);display:flex}.student-step-list{flex-direction:column;gap:6px;margin:0;padding-left:20px;display:flex}.student-step{font-size:14px}.student-step-label{color:var(--text);display:block}.student-step-track{height:8px;margin-top:3px}.free-badge{background:var(--kb-success-soft,#dcf5e4);color:var(--kb-success,#16a34a);white-space:nowrap;border-radius:999px;flex:none;padding:5px 10px;font-size:12px;font-weight:900}.my-disputes h3{margin-top:var(--space-md);font-weight:900}.my-dispute-list{gap:var(--space-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.my-dispute-row{border-bottom:1px solid var(--border);flex-direction:column;gap:2px;padding:8px 0;display:flex}.my-dispute-status{font-size:13px;font-weight:800}.my-dispute-question{color:var(--muted);font-size:14px}.my-dispute-answer{color:var(--kb-teal,#0d9488);font-size:13px;font-style:italic}.passage-card{background:#fdf9ef;border:1px solid #ecdfc4;border-left:4px solid #d9a441;border-radius:12px;max-height:260px;margin:10px 0 14px;padding:14px 16px;overflow-y:auto}.passage-title{color:#7a5b1e;margin:0 0 6px;font-size:.95rem;font-weight:700}.passage-body{white-space:pre-wrap;color:#3d3325;font-size:.98rem;line-height:1.55}.ua-page{gap:var(--space-md);flex-direction:column;display:flex}.ua-toast{color:#fdf9ef;z-index:60;background:#2e2015;border-radius:999px;padding:10px 18px;font-size:.9rem;animation:.25s ease-out ua-toast-in;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #2e201559}@keyframes ua-toast-in{0%{opacity:0;transform:translate(-50%)translateY(8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.ua-layout{gap:var(--space-md);grid-template-columns:minmax(280px,360px) 1fr;align-items:start;display:grid}@media (width<=820px){.ua-layout{grid-template-columns:1fr}}.ua-search-panel{gap:var(--space-sm);flex-direction:column;display:flex;position:sticky;top:84px}.ua-search-box{background:var(--surface);border:1.5px solid var(--border);border-radius:999px;align-items:center;gap:8px;padding:8px 14px;transition:border-color .15s,box-shadow .15s;display:flex}.ua-search-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #d9a4412e}.ua-search-box input{background:0 0;border:none;outline:none;flex:1;font-size:.95rem}.ua-results{flex-direction:column;gap:6px;max-height:52vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.ua-row{text-align:left;border-radius:var(--radius-md);cursor:pointer;background:0 0;border:1.5px solid #0000;align-items:center;gap:10px;width:100%;padding:8px 10px;transition:background .12s,border-color .12s;display:flex}.ua-row:hover{background:var(--surface)}.ua-row.selected{background:var(--surface-strong);border-color:var(--accent)}.ua-row-text{flex-direction:column;flex:1;min-width:0;display:flex}.ua-row-text strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ua-row-sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.ua-row-roles{gap:2px;font-size:.95rem;display:flex}.ua-row-add{color:var(--accent);font-size:.8rem;font-weight:700}.ua-avatar{letter-spacing:.02em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.82rem;font-weight:800;display:inline-flex}.ua-avatar-lg{width:64px;height:64px;font-size:1.35rem}.ua-detail{gap:var(--space-md);flex-direction:column;min-width:0;display:flex}.ua-placeholder{justify-content:center;display:flex}.ua-profile{align-items:center;gap:var(--space-md);display:flex}.ua-profile-text h3{margin:0 0 2px}.ua-profile-meta{color:var(--muted);margin:0;font-size:.9rem}.ua-section h4{margin:0 0 var(--space-sm)}.ua-role-grid{gap:var(--space-sm);grid-template-columns:repeat(auto-fill,minmax(230px,1fr));display:grid}.ua-role-card{text-align:left;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-md);cursor:pointer;flex-direction:column;gap:6px;padding:12px 14px;transition:border-color .15s,background .15s,transform .1s;display:flex}.ua-role-card:hover:not(:disabled){transform:translateY(-1px)}.ua-role-card.active{border-color:var(--accent);background:#fdf6e7}.ua-role-card:disabled{opacity:.75;cursor:default}.ua-role-head{align-items:center;gap:8px;display:flex}.ua-role-icon{font-size:1.15rem}.ua-role-name{flex:1;font-weight:800}.ua-role-hint{color:var(--muted);font-size:.8rem;line-height:1.35}.ua-role-switch{background:var(--border);border-radius:999px;flex-shrink:0;width:38px;height:22px;transition:background .15s;position:relative}.ua-role-switch.on{background:var(--accent)}.ua-role-knob{background:#fff;border-radius:50%;width:16px;height:16px;transition:left .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.ua-role-switch.on .ua-role-knob{left:19px}.ua-role-extra{margin-top:var(--space-sm);flex-wrap:wrap;gap:6px;display:flex}.ua-pill{background:var(--surface);border:1px solid var(--border);color:var(--muted);border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:.78rem;display:inline-flex}.ua-pill.locked{background:#f3efe8}.ua-pill.inherited{border-style:dashed}.ua-group-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.ua-group-row{border-radius:var(--radius-md);border:1.5px solid var(--border);background:var(--surface);cursor:pointer;align-items:center;gap:10px;padding:8px 10px;display:flex}.ua-group-row.locked{opacity:.65;cursor:not-allowed}.ua-group-name{flex:1;font-weight:700}.ua-group-roles{flex-wrap:wrap;gap:4px;display:flex}.ua-child-list{margin:0 0 var(--space-sm);flex-direction:column;gap:6px;padding:0;list-style:none;display:flex}.ua-child-row{border-radius:var(--radius-md);background:var(--surface);border:1.5px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;display:flex}.ua-child-name{font-weight:600}.ua-confirm{color:var(--muted);align-items:center;gap:8px;font-size:.85rem;display:inline-flex}.ghost-button.danger{color:#b3403a;border-color:#b3403a}.ua-child-search{margin-top:var(--space-sm)}.ua-muted{color:var(--muted);font-size:.9rem}.editor-json-shortcut{justify-content:space-between;align-items:center;gap:var(--space-md);border:1.5px solid var(--accent);border-radius:var(--radius-md);margin-bottom:var(--space-md);background:#fdf6e7;padding:12px 16px;display:flex}.editor-json-shortcut p{color:var(--muted);margin:2px 0 0;font-size:.85rem}@media (width<=640px){.editor-json-shortcut{text-align:center;flex-direction:column;align-items:stretch}}
