*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.\!fixed{position:fixed!important}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.rounded{border-radius:.25rem}.border{border-width:1px}.font-head{font-family:Inter,sans-serif}.text-sm{font-size:.875rem;line-height:1.25rem}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root,:root[data-theme=light]{--bg: #faf6f0;--surface: #ffffff;--surface-2: #f2ebe1;--border: #e6dccb;--ink: #3c3633;--muted: #8c817a;--primary: #e8772e;--primary-strong: #d2641e;--primary-soft: #fbe6d5;--on-primary: #ffffff;--accent: #4a6fa5;--accent-soft: #e2e8f2;--olive: #5f8f44;--olive-soft: #e8f1df;--on-olive: #ffffff;--navy: #2c2f3d;--danger: #e23b3b;--danger-soft: #fde3e3;--focus: rgba(232, 119, 46, .4);--surface-low: #fdfaf4;--surface-high: #efe7da;--error: #e23b3b;--error-container: #fde3e3;--success: #2f9e57;--success-soft: #e2f4e8;--warn: #d98a00;--warn-soft: #fdf1d8;--c0: #2f6df0;--c1: #ec4899;--c2: #e0a800;--c3: #1faa4b;--chart-bar: #e8772e;--chart-bar-dim: #d5caba;--r: 14px;font-family:Inter,system-ui,sans-serif;color:var(--ink)}:root[data-theme=dark]{--bg: #1a1d23;--surface: #22262e;--surface-2: #2b303a;--border: #353b45;--ink: #e6e9ef;--muted: #9aa3b2;--primary: #5fa8ff;--primary-strong: #4a95f0;--primary-soft: #1d2a3c;--on-primary: #0e1726;--accent: #5fe0b5;--accent-soft: #163129;--olive: #5fe0b5;--olive-soft: #163129;--on-olive: #0d2a22;--navy: #343b47;--danger: #ff6b6b;--danger-soft: #3a2326;--focus: rgba(95, 168, 255, .4);--surface-low: #262b34;--surface-high: #303643;--error: #ff6b6b;--error-container: #3a2326;--success: #4ade80;--success-soft: #17301f;--warn: #fbbf24;--warn-soft: #332a10;--chart-bar: #3987e5;--chart-bar-dim: #3a4150}*{box-sizing:border-box}body{margin:0;background:var(--surface-2);color:var(--ink);min-height:100vh;-webkit-text-size-adjust:100%}h1,h2,h3,h4,.font-head{font-family:Inter,sans-serif;font-weight:700;color:var(--ink);letter-spacing:-.01em}a{color:var(--olive)}button,input,select,textarea{font-family:inherit}select{cursor:pointer}.material-symbols-outlined{font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle}.text-sm{font-size:14px}button:focus-visible,a:focus-visible,[role=button]:focus-visible,[tabindex]:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus);border-radius:8px}.btn:focus-visible,.icon-btn:focus-visible,.chip:focus-visible,.cur-chip:focus-visible,.cur-mini-btn:focus-visible,.tool-btn:focus-visible,.tc-btn:focus-visible,.answer-card:focus-visible,.mode-opt:focus-visible,.switch:focus-visible,.fab:focus-visible{box-shadow:0 0 0 3px var(--focus)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.container{max-width:1100px;margin:0 auto;padding:24px}.center-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg);padding:24px}.home-hero{min-height:100vh;min-height:100svh;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;background:var(--bg)}.home-corner{position:absolute;top:14px;right:14px;display:flex;align-items:center;gap:8px}@media(max-width:480px){.home-corner .btn{padding:8px 10px!important}}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:40}.brand-logo{font-weight:800;font-size:22px;color:var(--ink);text-decoration:none;background:transparent;border:none;text-align:left;cursor:pointer;font-family:inherit}.card{background:var(--surface);border-radius:var(--r);padding:24px;border:1px solid var(--border);box-shadow:0 1px 3px #0000000a;width:100%}.card-narrow{max-width:440px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--primary);color:var(--on-primary);border:none;border-radius:10px;padding:11px 18px;font-family:Inter,sans-serif;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;transition:filter .12s,transform .05s,background .12s}.btn:hover:not(:disabled){background:var(--primary-strong)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-lg{padding:14px 24px;font-size:17px}.btn-block{width:100%}.btn-ghost{background:var(--surface);color:var(--ink);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-secondary{background:var(--navy);color:#fff}.btn-secondary:hover:not(:disabled){background:var(--navy);filter:brightness(1.18)}.btn-pink{background:var(--c1);color:#fff}.btn-pink:hover:not(:disabled){background:var(--c1);filter:brightness(1.06)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger);filter:brightness(.92)}.btn-create{background:var(--olive);color:var(--on-olive)}.btn-create:hover:not(:disabled){background:var(--olive);filter:brightness(1.12)}.icon-btn{width:42px;height:42px;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background .12s,transform .05s}.icon-btn:hover{background:var(--border)}.icon-btn:active{transform:translateY(1px)}label{display:block;font-weight:600;margin-bottom:6px;font-size:14px;color:var(--ink)}input,textarea,select{width:100%;padding:11px 14px;border:1.5px solid var(--border);border-radius:10px;font-size:15px;font-family:inherit;margin-bottom:14px;outline:none;background:var(--surface);color:var(--ink)}input:focus,textarea:focus,select:focus{border-color:var(--primary-strong);box-shadow:0 0 0 3px var(--focus)}textarea{resize:vertical}input[type=checkbox],input[type=radio]{width:18px;height:18px;flex-shrink:0;padding:0;margin:0;border-radius:4px;accent-color:var(--primary)}input[type=radio]{border-radius:50%}.pin-input{font-size:34px;text-align:center;letter-spacing:10px;font-weight:700;color:var(--ink)}code{background:var(--surface-2);padding:1px 6px;border-radius:6px}.pin-display{font-size:54px;font-weight:800;letter-spacing:8px;color:var(--ink);background:var(--surface);border-radius:var(--r);padding:16px 28px;display:inline-block;border:1px solid var(--border)}.multi-hint{display:flex;align-items:center;gap:10px;margin:6px auto 2px;padding:12px 16px;background:var(--primary-soft);color:var(--primary-strong, var(--primary));border:2px solid var(--primary);border-radius:14px;font-weight:800;font-size:16px;line-height:1.35}.multi-hint .material-symbols-outlined{font-size:24px;flex-shrink:0}.pt-cat{background:#2f6b3f;color:#fff;font-weight:800;font-size:18px;padding:10px 18px;border-radius:10px;letter-spacing:.01em}.pt-card{background:var(--surface);border:2px solid var(--border);border-radius:16px;padding:18px 20px}.pt-title{font-weight:800;font-size:17px;margin-bottom:12px;color:var(--ink)}.pt-label{text-transform:uppercase;letter-spacing:.04em;font-size:11.5px;font-weight:800;color:var(--primary);margin:14px 0 6px}.pt-card>.pt-label:first-child,.pt-title+.pt-label{margin-top:0}.pt-tasks{font-size:15.5px;line-height:1.55;color:var(--ink);white-space:pre-wrap}.pt-num{font-weight:800;color:var(--primary)}.pt-img{display:block;width:100%;max-height:420px;-o-object-fit:contain;object-fit:contain;border-radius:12px;margin-top:12px;background:#000}.pt-video{position:relative;width:100%;aspect-ratio:16 / 9;margin-top:12px;border-radius:12px;overflow:hidden;background:#000}.pt-video iframe,.pt-video video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.pt-res{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-direction:column;gap:6px}.pt-res li{display:flex;align-items:center;gap:8px;font-size:14.5px}.pt-res li .material-symbols-outlined{font-size:18px;color:var(--muted);flex-shrink:0}.pt-res a{color:var(--primary);text-decoration:none;font-weight:600;word-break:break-word}.pt-res a:hover{text-decoration:underline}.pt-actions{display:flex;gap:6px;justify-content:flex-end;margin-top:14px}.answers-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}@media(max-width:480px){.answers-grid{grid-template-columns:1fr;gap:10px}.answer-card{min-height:60px;padding:14px 16px;font-size:16px}}.answer-card{display:flex;align-items:center;gap:16px;background:var(--surface);border:2px solid var(--border);border-radius:16px;padding:18px 20px;cursor:pointer;text-align:left;min-height:76px;font-size:17px;font-weight:600;color:var(--ink);transition:border-color .12s,transform .05s,box-shadow .12s}.answer-card:hover:not(:disabled){border-color:#cfcec8;box-shadow:0 3px 10px #0000000f}.answer-card:active:not(:disabled){transform:translateY(1px)}.answer-card:disabled{cursor:default}.answer-card.selected{border-color:var(--primary-strong);box-shadow:0 0 0 3px var(--focus)}.answer-card.correct{border-color:var(--c3);background:var(--olive-soft)}.answer-card.wrong{opacity:.5}.answer-card.wrong-pick{border-color:var(--danger);background:var(--danger-soft)}.opt-mark{margin-left:auto;font-size:20px;font-weight:800;line-height:1}.opt-mark.ok{color:var(--success)}.opt-mark.no{color:var(--danger)}.answer-card.has-img .opt-mark{position:absolute;top:10px;right:10px;margin:0}.opt-letter{width:40px;height:40px;border-radius:12px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:17px}.opt-letter.c-0{background:var(--c0)}.opt-letter.c-1{background:var(--c1)}.opt-letter.c-2{background:var(--c2)}.opt-letter.c-3{background:var(--c3)}.answer-card{position:relative}.answer-card.has-img{flex-direction:column;align-items:stretch;padding:10px;gap:8px}.answer-card.has-img .opt-letter{position:absolute;top:10px;left:10px;z-index:1}.opt-img{width:100%;height:clamp(110px,22vh,180px);-o-object-fit:contain;object-fit:contain;background:#fff;padding:6px;box-sizing:border-box;border-radius:10px;display:block}.img-edit{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.img-edit>img{max-width:100%;max-height:200px;-o-object-fit:contain;object-fit:contain;border-radius:10px;border:1px solid var(--border);align-self:flex-start}.opt-img-edit{position:relative;flex-shrink:0}.opt-img-edit img{width:46px;height:46px;-o-object-fit:cover;object-fit:cover;border-radius:8px;border:1px solid var(--border);display:block}.opt-img-x{position:absolute;top:-7px;right:-7px;width:18px;height:18px;border:none;border-radius:999px;background:var(--danger);color:#fff;font-size:10px;cursor:pointer;line-height:1;display:flex;align-items:center;justify-content:center;z-index:2}.wg-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.wg-tb-select{width:auto;margin:0;padding:8px 12px;border-radius:10px;font-weight:600}.wg-tb-field{display:inline-flex;align-items:center;gap:6px;background:var(--surface-2);border-radius:10px;padding:4px 10px;font-size:14px;color:var(--muted)}.wg-tb-field input{width:60px;margin:0;padding:6px 8px;border:1px solid var(--border);border-radius:8px}.wg-tb-field .material-symbols-outlined{font-size:18px}.wg-question{position:relative;background:#3a1f33;border-radius:16px;min-height:210px;padding:50px 24px 26px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}.wg-q-tools{position:absolute;top:12px;left:12px;display:flex;gap:8px}.wg-q-imgwrap{position:relative}.wg-q-imgwrap img{max-height:200px;max-width:100%;border-radius:10px;-o-object-fit:contain;object-fit:contain;display:block}.wg-q-text{background:transparent;border:none;color:#fff;text-align:center;font-size:24px;font-weight:600;width:100%;max-width:640px;resize:none;outline:none;margin:0}.wg-q-text::-moz-placeholder{color:#ffffff8c}.wg-q-text::placeholder{color:#ffffff8c}.wg-q-text:focus{box-shadow:none;border:none}.wg-answers{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:16px}.wg-opt{position:relative;border-radius:16px;min-height:150px;padding:44px 16px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}.wg-c0{background:#2f6df0}.wg-c1{background:#14b8a6}.wg-c2{background:#e0a800}.wg-c3{background:#ec4899}.wg-opt.is-correct{box-shadow:0 0 0 4px #fff,0 0 0 8px #1faa4b}.wg-opt-top{position:absolute;top:10px;left:10px;right:10px;display:flex;align-items:center;gap:6px}.wg-opt-icon{width:30px;height:30px;border:none;border-radius:8px;background:#00000040;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.wg-opt-icon:hover{background:#0000006b}.wg-opt-icon .material-symbols-outlined{font-size:18px}.wg-check{margin-left:auto;width:30px;height:30px;border-radius:999px;border:2px solid rgba(255,255,255,.7);background:transparent;color:#fffc;cursor:pointer;display:flex;align-items:center;justify-content:center}.wg-check .material-symbols-outlined{font-size:18px}.wg-check.on{background:#1faa4b;border-color:#fff;color:#fff}.wg-opt-img{max-height:110px;max-width:100%;border-radius:10px;-o-object-fit:contain;object-fit:contain}.wg-opt-text{background:transparent;border:none;color:#fff;text-align:center;font-size:18px;font-weight:600;width:100%;resize:none;outline:none;margin:0}.wg-opt-text::-moz-placeholder{color:#ffffffb3}.wg-opt-text::placeholder{color:#ffffffb3}.wg-opt-text:focus{box-shadow:none;border:none}.wg-add-opt{min-height:150px;border:2px dashed var(--border);border-radius:16px;background:var(--surface);color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center}.wg-add-opt:hover{background:var(--surface-2)}.wg-add-opt .material-symbols-outlined{font-size:32px}.muted{color:var(--muted)}.row{display:flex;gap:12px;align-items:center}.between{display:flex;justify-content:space-between;align-items:center}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-top:18px}.quiz-card{background:var(--surface);border-radius:var(--r);padding:18px;border:1px solid var(--border);box-shadow:0 1px 3px #0000000a;display:flex;flex-direction:column;gap:8px}button.quiz-card{transition:border-color .12s,box-shadow .15s,transform .12s}button.quiz-card:hover{border-color:var(--primary);box-shadow:0 6px 18px #00000014;transform:translateY(-2px)}button.quiz-card:active{transform:translateY(0)}.list-row{display:flex;align-items:center;gap:14px;padding:12px 16px;width:100%;text-align:left;background:var(--surface-low);border-radius:12px;border:1px solid var(--border);cursor:pointer;transition:background .12s,border-color .12s}.list-row:hover{background:var(--surface-high);border-color:var(--primary)}.badge{display:inline-block;background:var(--olive-soft);color:var(--olive);border-radius:999px;padding:4px 12px;font-size:13px;font-weight:600;width:-moz-fit-content;width:fit-content}.badge-mini{font-size:10px;color:var(--olive);background:var(--olive-soft);border-radius:6px;padding:1px 6px;width:-moz-fit-content;width:fit-content}.error{background:var(--danger-soft);color:var(--danger);border-radius:10px;padding:10px 14px;margin-bottom:12px;font-size:14px}.or-divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px;margin:14px 0}.or-divider:before,.or-divider:after{content:"";flex:1;height:1px;background:var(--border)}.lobby-players{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;justify-content:center}.player-chip{background:var(--surface);color:var(--ink);border-radius:999px;padding:8px 16px;font-weight:600;border:1px solid var(--border);animation:pop .25s ease}@keyframes pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}.leaderboard{list-style:none;padding:0;margin:16px 0 0}.leaderboard li{display:flex;justify-content:space-between;align-items:center;background:var(--surface);border-radius:12px;padding:14px 18px;margin-bottom:8px;font-weight:600;border:1px solid var(--border)}.leaderboard li:first-child{background:var(--primary-soft);border-color:var(--primary-strong)}.q-text{font-size:28px;font-weight:700;text-align:center;margin:10px 0;color:var(--ink)}.white{color:#fff}.center{text-align:center}.spacer{height:16px}.shell-wrapper{min-height:100vh;background:var(--bg)}.shell{display:grid;grid-template-columns:244px 1fr;min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px 12px;position:sticky;top:0;height:100vh}.side-create{width:100%;margin:12px 0 6px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--olive);color:var(--on-olive);border:none;border-radius:12px;padding:12px;font-weight:700;font-size:15px;cursor:pointer;font-family:Inter,sans-serif}.side-create:hover{filter:brightness(1.12)}.side-nav{display:flex;flex-direction:column;gap:4px;margin-top:10px;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.side-nav::-webkit-scrollbar{width:6px}.side-nav::-webkit-scrollbar-track{background:transparent}.side-nav::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}.side-nav::-webkit-scrollbar-thumb:hover{background:var(--muted)}.side-nav>.side-link{flex:0 0 auto}.side-link{display:flex;align-items:center;gap:12px;border:none;background:transparent;padding:11px 14px;border-radius:10px;font-weight:600;font-size:15px;color:var(--muted);cursor:pointer;text-align:left;width:100%}.side-link:hover:not(:disabled){background:var(--surface-2)}.side-link.active{background:var(--primary-soft);color:var(--ink);box-shadow:inset 3px 0 0 var(--primary)}.side-link.active .material-symbols-outlined{color:var(--primary)}.side-link:disabled{opacity:.5;cursor:not-allowed}.soon-badge{margin-left:auto;font-size:10px;background:var(--surface-2);color:var(--muted);border-radius:6px;padding:1px 6px;font-weight:600}.side-profile{display:flex;align-items:center;gap:10px;padding:10px;border-top:1px solid var(--border)}.side-avatar{width:38px;height:38px;border-radius:999px;background:var(--primary);color:var(--on-primary);display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.side-name{font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-logout{border:none;background:transparent;color:var(--muted);font-size:13px;cursor:pointer;padding:0}.shell-main{padding:28px 40px;max-width:1440px;width:100%;margin:0 auto}.row-action{width:42px;height:42px;border-radius:12px;border:1px solid var(--border);background:var(--surface-low);color:var(--muted);cursor:pointer;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;transition:background .15s,color .15s,border-color .15s}.row-action:hover{background:var(--surface-high);color:var(--ink)}.row-action.primary:hover{background:var(--primary-soft);color:var(--primary);border-color:var(--primary)}.row-action.danger:hover{background:var(--error-container);color:var(--error);border-color:var(--error)}.row-action:disabled{opacity:.45;cursor:default}.row-action:disabled:hover{background:var(--surface-low);color:var(--muted);border-color:var(--border)}.grant-btn{min-width:112px;height:34px;padding:0 14px;border-radius:999px;font-weight:700;font-size:13px;border:1px solid var(--border);background:var(--surface-low);color:var(--ink);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.grant-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.grant-btn.on{background:var(--success-soft);color:var(--success);border-color:transparent}.grant-btn.on:hover{background:var(--error-container);color:var(--error);border-color:var(--error)}.grant-btn:disabled{opacity:.6;cursor:default}.dash-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(430px,1fr));gap:12px 32px;align-items:start}@media(max-width:560px){.dash-cols{grid-template-columns:1fr}}@media(max-width:700px){.shell{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:50;height:auto;flex-direction:row;align-items:center;padding:10px 14px;gap:4px;border-right:none;border-bottom:1px solid var(--border)}.side-create{display:none}.side-nav{flex-direction:row;margin-top:0;gap:2px}.side-link{padding:8px 10px}.side-link span:not(.material-symbols-outlined):not(.soon-badge){display:none}.side-link-hide-mobile{display:none!important}.side-profile{border-top:none;border-left:1px solid var(--border);padding:8px;margin-left:auto}.side-profile>div:first-of-type+div{display:none}.side-name,.side-logout{display:none}.shell-main{padding:16px}}.lib-row{display:flex;align-items:center;gap:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:14px 16px;margin-bottom:10px;transition:border-color .12s,box-shadow .15s}.lib-row:hover{border-color:var(--primary);box-shadow:0 3px 12px #0000000f}.lib-thumb{width:64px;height:48px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:26px;flex-shrink:0;background:var(--primary-soft)}.share-menu{position:absolute;z-index:30;top:52px;left:0;width:320px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 40px #0000002e;padding:14px}.detail-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:16px}.detail-thumb{border:1px solid var(--border);border-radius:12px;padding:10px;background:var(--surface);font-size:13px}.wg-layout{display:grid;grid-template-columns:190px 1fr;gap:18px;margin-top:20px;align-items:start}.wg-rail{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 220px);overflow-y:auto;padding-right:4px}.wg-thumb{display:flex;gap:8px;align-items:stretch;text-align:left;padding:6px;border:2px solid transparent;border-radius:12px;background:var(--surface);cursor:pointer;transition:border-color .15s,background .15s}.wg-thumb:hover{background:var(--surface-2, var(--surface))}.wg-thumb.active{border-color:var(--primary)}.wg-thumb-num{flex:0 0 22px;font-weight:700;font-size:13px;color:var(--muted);padding-top:2px}.wg-thumb-body{flex:1;min-width:0;border-radius:8px;overflow:hidden;background:#fff;aspect-ratio:16 / 9}.thumb-q{height:100%;padding:8px;display:flex;flex-direction:column;gap:6px;background:var(--surface);color:var(--text)}.thumb-q-text{font-size:12px;font-weight:600;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.wg-main{display:flex;flex-direction:column;gap:14px}.wg-stage{background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:0 8px 30px #0000001f}.wg-q-box{aspect-ratio:16 / 9;overflow:auto;padding:28px 36px;background:var(--surface);color:var(--text)}.wg-q-box .q-text{font-size:32px}.wg-q-box .answers-grid{gap:16px;margin-top:24px}.wg-q-box .answer-card{min-height:84px;font-size:19px;padding:18px 22px}.wg-q-box .opt-letter{width:44px;height:44px;font-size:18px}.wg-controls{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:12px}.wg-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.wg-toggle input{width:18px;height:18px;cursor:pointer}.wg-toggle input:disabled{cursor:not-allowed}@media(max-width:760px){.wg-layout{grid-template-columns:1fr}.wg-rail{flex-direction:row;max-height:none;overflow-x:auto}.wg-thumb{flex:0 0 160px}}.editor-layout{display:grid;grid-template-columns:280px 1fr;gap:18px;padding:18px;align-items:start}.thumbs{position:sticky;top:80px}.thumb-list{margin-top:12px;display:flex;flex-direction:column;gap:8px;max-height:calc(100vh - 160px);overflow-y:auto}.thumb{display:flex;align-items:center;gap:8px;cursor:grab;padding:2px;border-radius:10px}.thumb:active{cursor:grabbing}.thumb.dragging{opacity:.4}.thumb-num{font-weight:700;color:var(--muted);min-width:16px;font-size:13px;text-align:center}.thumb-preview{position:relative;flex:1;aspect-ratio:16 / 9;border:1.5px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface);display:flex;align-items:center;justify-content:center}.thumb.active .thumb-preview{border-color:var(--ink);box-shadow:0 0 0 2px #1b1d271f}.thumb-preview img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;pointer-events:none}.thumb-mini{padding:8px;display:flex;flex-direction:column;gap:4px;align-items:flex-start;width:100%}.thumb-mini-text{font-size:11px;font-weight:600;line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.thumb-del{position:absolute;top:4px;right:4px;width:20px;height:20px;border:none;border-radius:6px;background:#00000080;color:#fff;font-size:11px;cursor:pointer;opacity:0;line-height:1;display:flex;align-items:center;justify-content:center}.thumb:hover .thumb-del{opacity:1}.add-menu{position:absolute;z-index:30;top:52px;left:0;right:0;background:var(--surface);border-radius:12px;box-shadow:0 12px 40px #0000002e;padding:8px;max-height:380px;overflow-y:auto;border:1px solid var(--border)}.add-item{display:block;width:100%;text-align:left;border:none;background:transparent;padding:11px 12px;border-radius:8px;cursor:pointer;font-size:14px}.add-item:hover{background:var(--surface-2)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1b1d2780;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.preview-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--navy);z-index:60;display:flex;flex-direction:column}.preview-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;color:#fff}.preview-bar strong{color:#fff}.preview-stage{flex:1;display:flex;align-items:center;justify-content:center;padding:20px;overflow:auto}.preview-slide{background:var(--surface);border-radius:16px;width:min(900px,100%);min-height:60vh;padding:40px;box-shadow:0 20px 60px #0006}.preview-controls{display:flex;justify-content:center;gap:12px;padding:16px}.blank{border-bottom:3px solid var(--olive);padding:0 10px;font-weight:700;color:var(--ink)}.match-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:16px}.match-cell{background:var(--surface-2);border-radius:12px;padding:14px;margin-bottom:10px;font-weight:600;text-align:center}.reorder-list{font-size:20px;line-height:2}.slide-canvas{background:var(--surface);border-radius:18px;padding:28px;border:1px solid var(--border);box-shadow:0 4px 16px #0000000f}.slide-inner{min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:hidden}.slide-img{max-width:100%;max-height:60vh;-o-object-fit:contain;object-fit:contain;display:block}.bar{background:var(--surface-2);border-radius:8px;height:12px;overflow:hidden;margin:8px 0 6px}.bar-fill{background:var(--primary-strong);height:100%}.timer-track{height:14px;width:100%;background:var(--surface-2);border-radius:999px;overflow:hidden}.timer-fill{height:100%;background:var(--primary);transition:width 1s linear}.import-progress{background:var(--olive-soft);color:var(--olive);border-radius:10px;padding:10px 14px;font-weight:600;margin:8px 0}.present-stage{min-height:100vh;display:flex;flex-direction:column;align-items:stretch;justify-content:center;padding:32px;gap:10px;background:var(--bg)}.present-stage>:not(.present-top):not(.present-nav):not(.present-board){width:100%;max-width:1000px;margin-left:auto;margin-right:auto}.present-stage .slide-canvas{max-width:1100px}.present-stage .q-text{font-size:34px}.present-top{position:fixed;top:16px;left:16px;display:flex;gap:8px;z-index:35}.present-nav{position:fixed;right:18px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:12px;z-index:35}.nav-btn{width:56px;height:56px;border-radius:999px;border:2px solid #fff;background:var(--navy);color:#fff;font-size:26px;cursor:pointer;box-shadow:0 6px 18px #1b1d2747;display:flex;align-items:center;justify-content:center;transition:transform .1s,box-shadow .15s,background .15s}.nav-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 22px #1b1d2759}.nav-btn:active:not(:disabled){transform:scale(.94)}.nav-btn:disabled{opacity:.35;cursor:default}.nav-btn.reveal{background:var(--primary);color:var(--on-primary)}.nav-btn.reveal:hover:not(:disabled){background:var(--primary-strong)}.present-board{position:fixed;bottom:16px;left:50%;transform:translate(-50%);width:min(560px,92%);z-index:35}.fab{position:fixed;right:28px;bottom:28px;width:58px;height:58px;border-radius:999px;background:var(--olive);color:var(--on-olive);border:none;font-size:28px;cursor:pointer;box-shadow:0 8px 22px #585b1866;z-index:30;transition:transform .12s,box-shadow .15s,filter .12s}.fab:hover{filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 12px 28px #585b1873}.fab:active{transform:translateY(0) scale(.96)}.lobby-screen{height:100vh;height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:var(--bg);overflow:hidden}.lobby-head{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:clamp(8px,1.8vh,16px) 28px;border-bottom:1px solid var(--border);background:var(--surface)}.lobby-head .lobby-title{font-weight:800;font-size:18px;display:flex;align-items:center;gap:10px}.lobby-body{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,2.5vw,28px);max-width:1080px;width:100%;margin:0 auto;padding:clamp(10px,2.6vh,32px) clamp(16px,3vw,32px);align-items:stretch;overflow:hidden}.join-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:clamp(16px,3vh,32px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(10px,2vh,18px);box-shadow:0 4px 24px #0000000d;min-height:0;overflow-y:auto}.join-step{color:var(--muted);font-size:14px;font-weight:600;align-self:flex-start}.join-url{font-size:clamp(19px,3vh,26px);font-weight:800;color:var(--ink);letter-spacing:-.01em}.join-code{font-size:clamp(40px,8.5vh,60px);font-weight:800;letter-spacing:clamp(6px,1.6vh,12px);color:var(--primary);line-height:1;font-variant-numeric:tabular-nums}.qr-wrap{background:var(--surface);padding:10px;border-radius:14px;border:1px solid var(--border)}.lobby-right{display:flex;flex-direction:column;gap:clamp(10px,1.8vh,16px);min-height:0;overflow-y:auto;scrollbar-width:thin}.players-head{display:flex;align-items:center;justify-content:space-between}.players-count{font-weight:800;font-size:20px;display:flex;align-items:center;gap:8px}.players-grid{display:flex;flex-wrap:wrap;gap:10px;align-content:flex-start;min-height:80px;flex-shrink:0;max-height:clamp(110px,30vh,420px);max-height:clamp(110px,30dvh,420px);overflow-y:auto;scrollbar-width:thin}.players-empty{color:var(--muted);font-size:15px;padding:20px 0}.player-pill{display:flex;align-items:center;gap:8px;background:var(--surface);color:var(--ink);border:1px solid var(--border);border-radius:999px;padding:8px 14px 8px 10px;font-weight:700;font-size:14px;animation:pop .25s ease}.player-pill .pp-ava{width:26px;height:26px;border-radius:999px;background:var(--primary-soft);color:var(--olive);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800}.kick-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;border:none;cursor:pointer;background:transparent;color:var(--muted);padding:0;flex-shrink:0;transition:background .15s,color .15s}.kick-btn:hover{background:var(--danger, #e5484d);color:#fff}.kick-btn .material-symbols-outlined{font-size:16px}.attendee.ans-correct{background:#6a994e24}.attendee.ans-wrong{background:#e5484d1f}.ans-summary{display:flex;gap:8px;margin:6px 0 10px}.ans-chip{display:inline-flex;align-items:center;gap:4px;font-weight:800;font-size:13px;padding:4px 10px;border-radius:999px}.ans-chip .material-symbols-outlined{font-size:16px}.ans-chip.ans-correct{background:#6a994e2e;color:var(--olive, #4d7c0f)}.ans-chip.ans-wrong{background:#e5484d29;color:var(--danger, #e5484d)}.prac-timer-wrap{position:relative}.prac-picker{position:absolute;bottom:calc(100% + 8px);left:0;z-index:60;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:8px;box-shadow:0 12px 32px #0000002e}.prac-opt{border:1px solid var(--border);background:var(--surface-low, #f5f5f5);color:var(--ink);border-radius:8px;padding:8px 10px;font-weight:700;cursor:pointer;font-size:13px}.prac-opt:hover{background:var(--primary-soft)}.prac-banner{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:90;display:flex;flex-direction:column;align-items:center;gap:clamp(4px,1vh,10px);background:var(--surface);border:3px solid var(--primary);border-radius:28px;padding:clamp(20px,4.5vh,40px) clamp(40px,7vw,80px);box-shadow:0 28px 90px #0006}.prac-banner .material-symbols-outlined{font-size:clamp(30px,5vh,44px);color:var(--primary)}.prac-banner .prac-time{font-size:clamp(64px,18vh,140px);font-weight:900;line-height:1;font-variant-numeric:tabular-nums;color:var(--ink)}.prac-banner .prac-lbl{font-size:clamp(14px,2vh,18px);color:var(--muted);font-weight:700}.prac-banner.low{border-color:var(--danger, #e5484d);animation:pracPulseCenter 1s ease infinite}.prac-banner.low .material-symbols-outlined,.prac-banner.low .prac-time{color:var(--danger, #e5484d)}@keyframes pracPulseCenter{0%,to{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.05)}}@keyframes pracPulse{0%,to{transform:translate(-50%) scale(1)}50%{transform:translate(-50%) scale(1.06)}}.stu-prac-banner{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:80;display:flex;align-items:center;gap:6px;background:#000000c7;color:#fff;border-radius:999px;padding:6px 16px;font-weight:900;font-size:20px;font-variant-numeric:tabular-nums}.stu-prac-banner .material-symbols-outlined{font-size:22px}.stu-prac-banner.low{background:var(--danger, #e5484d);animation:pracPulse 1s ease infinite}.start-bar{flex-shrink:0;display:flex;justify-content:center;padding:clamp(10px,1.8vh,18px);border-top:1px solid var(--border);background:var(--surface)}.live-wrap{height:100vh;height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:var(--bg);overflow:hidden}.live-top{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:clamp(6px,1.2vh,12px) 24px;border-bottom:1px solid var(--border);background:var(--surface)}.live-top .lt-code{font-weight:700;color:var(--muted);font-size:14px}.live-top .lt-title{font-weight:800;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-main{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-template-rows:minmax(0,1fr);gap:20px;padding:clamp(10px,2vh,22px) 24px;align-items:stretch;min-height:0;overflow:hidden}.live-main.no-side{grid-template-columns:minmax(0,1fr)}.live-content{display:flex;flex-direction:column;gap:clamp(10px,1.8vh,18px);min-height:0;overflow:hidden}.live-slide{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;container-type:size}.live-slide-box{width:min(100%,calc((100dvh - 160px) * 16 / 9));width:min(100%,calc(100cqh * 16 / 9))}.live-qcard{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:clamp(12px,2.4vh,28px) clamp(16px,2.5vw,32px);box-shadow:0 2px 12px #0000000a;flex-shrink:0;overflow:hidden}.live-qtext{font-size:clamp(1.25rem,3.5vh,2.5rem);font-weight:700;color:var(--ink);text-align:center;margin:0;line-height:1.25;max-height:26vh;max-height:26dvh;overflow:hidden}.live-qimg{display:block;max-width:100%;margin:clamp(8px,1.6vh,16px) auto 0;border-radius:12px;-o-object-fit:contain;object-fit:contain;max-height:clamp(120px,28vh,40vh);max-height:clamp(120px,28dvh,40vh)}.tc-btn.timer-start{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px;font-size:15px}.live-answers{--ans-gap: clamp(8px, 1.6vh, 14px);flex:1 1 auto;min-height:0;display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:minmax(0,1fr);gap:var(--ans-gap);max-height:calc(var(--ans-rows, 2) * clamp(84px,17vh,160px) + (var(--ans-rows, 2) - 1) * var(--ans-gap));margin-top:auto;margin-bottom:auto}.live-answers.odd-last .live-opt:last-child{grid-column:1 / -1;width:calc(50% - var(--ans-gap) / 2);justify-self:center}.live-opt{position:relative;border-radius:16px;min-height:0;height:100%;padding:clamp(8px,1.4vh,14px) clamp(12px,1.6vw,20px);display:flex;align-items:center;justify-content:center;text-align:center;gap:clamp(10px,1.5vw,16px);color:#fff;font-size:clamp(1rem,2.6vh,1.5rem);font-weight:700;transition:opacity .2s,transform .1s;overflow:hidden}.live-opt.c-0{background:var(--c0)}.live-opt.c-1{background:var(--c1)}.live-opt.c-2{background:var(--c2)}.live-opt.c-3{background:var(--c3)}.live-opt .lo-letter{width:clamp(28px,4.6vh,40px);height:clamp(28px,4.6vh,40px);border-radius:10px;background:#ffffff38;display:flex;align-items:center;justify-content:center;font-size:clamp(14px,2.4vh,20px);flex-shrink:0}.live-opt .lo-img{width:clamp(64px,10vh,110px);height:clamp(48px,8vh,84px);-o-object-fit:contain;object-fit:contain;background:#fff;padding:3px;box-sizing:border-box;border-radius:10px;flex-shrink:0}.live-opt .lo-text{flex:0 1 auto}.live-opt .lo-votes{background:#00000047;border-radius:999px;padding:4px 12px;font-size:15px;font-weight:700}.live-opt.dim{opacity:.4}.live-opt.right{box-shadow:0 0 0 4px var(--surface),0 0 0 8px #1faa4b}.live-opt .lo-check{font-size:24px}.live-textans{text-align:center;padding:14px}.live-side{display:flex;flex-direction:column;gap:clamp(10px,1.6vh,16px);min-height:0;overflow:hidden}.side-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:clamp(12px,1.8vh,18px);flex-shrink:0}.live-side .side-card:last-child{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}.timer-card{display:flex;flex-direction:column;align-items:center;gap:clamp(8px,1.4vh,12px)}.timer-ring{--pct: 100;--ring: clamp(84px, 15vh, 120px);width:var(--ring);height:var(--ring);border-radius:999px;display:flex;align-items:center;justify-content:center;background:conic-gradient(var(--primary) calc(var(--pct) * 1%),var(--surface-2) 0);transition:background .3s linear}.timer-ring.low{background:conic-gradient(var(--danger) calc(var(--pct) * 1%),var(--surface-2) 0)}.timer-ring .tr-inner{width:calc(var(--ring) - 24px);height:calc(var(--ring) - 24px);border-radius:999px;background:var(--surface);display:flex;align-items:center;justify-content:center;font-size:clamp(22px,4.4vh,34px);font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}.timer-controls{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.tc-btn{border:1px solid var(--border);background:var(--surface-2);color:var(--ink);border-radius:10px;padding:8px 12px;font-weight:700;font-size:14px;cursor:pointer}.tc-btn:hover{background:var(--border)}.tc-btn.danger{background:var(--danger);color:#fff;border-color:var(--danger)}.answered-stat{text-align:center}.answered-stat .as-num{font-size:28px;font-weight:800;color:var(--ink)}.answered-stat .as-lbl{color:var(--muted);font-size:13px}.names-toggle{display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:600;margin-bottom:10px}.attendee-list{display:flex;flex-direction:column;gap:6px;flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin}.attendee{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:10px;background:var(--surface-2);font-size:14px;font-weight:600}.attendee.done{background:var(--olive-soft);color:var(--olive)}.attendee .at-dot{width:8px;height:8px;border-radius:999px;background:var(--muted);flex-shrink:0}.attendee.done .at-dot{background:var(--olive)}.live-bottom-wrap{flex-shrink:0;display:flex;flex-direction:column;min-height:0}.live-bottom{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:clamp(8px,1.4vh,14px) 24px;border-top:1px solid var(--border);background:var(--surface)}.lb-left,.lb-right{display:flex;align-items:center;gap:10px}.lb-center{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--muted);font-size:14px}.host-peek-strip{flex-shrink:0;display:flex;gap:10px;overflow-x:auto;padding:10px 24px;border-top:1px solid var(--border);background:var(--surface-2, var(--surface))}.peek-thumb{flex:0 0 auto;width:110px;display:flex;flex-direction:column;gap:4px;text-align:left;border:2px solid transparent;border-radius:10px;padding:3px;cursor:pointer;background:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;color:inherit;transition:border-color .12s,transform .08s}.peek-thumb:hover:not(.active){border-color:var(--border)}.peek-thumb:active{transform:scale(.97)}.peek-thumb.active{border-color:var(--primary);cursor:default}.peek-thumb-num{font-size:11px;font-weight:700;color:var(--muted);padding-left:2px}.peek-thumb-body{border-radius:8px;overflow:hidden;background:#fff;aspect-ratio:16 / 9}.peek-toggle-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--muted);cursor:pointer}.peek-toggle-btn .material-symbols-outlined{font-size:17px}.peek-toggle-btn:hover:not(:disabled){background:var(--border)}.peek-toggle-btn:disabled{opacity:.4;cursor:not-allowed}.peek-toggle-btn.on{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.tool-btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--ink);border-radius:10px;padding:10px 14px;font-weight:700;font-size:14px;cursor:pointer}.tool-btn:hover:not(:disabled){background:var(--border)}.tool-btn:disabled{opacity:.4;cursor:not-allowed}.tool-btn.primary{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.tool-btn.primary:hover:not(:disabled){background:var(--primary-strong)}.spin-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0c10eb;z-index:80;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(10px,2vh,26px);padding:clamp(16px,3vh,24px);overflow:hidden}.spin-close{position:absolute;top:20px;right:24px;flex-shrink:0}.spin-title{color:#fff;font-size:clamp(18px,3.2vh,26px);font-weight:800;flex-shrink:0;text-align:center}.spin-count{color:#9aa3b2;font-weight:700;font-size:.65em}.spin-winner-banner{color:#ffd23f;font-size:clamp(22px,4.5vh,38px);font-weight:800;min-height:clamp(30px,5vh,44px);flex-shrink:0;text-align:center;line-height:1.15;overflow:hidden;text-overflow:ellipsis;max-width:min(92vw,700px);white-space:nowrap}.spin-list{display:flex;flex-direction:column;gap:clamp(6px,1.2vh,12px);width:min(440px,92%);flex:1;min-height:0;overflow-y:auto;padding:6px;scrollbar-width:thin;scrollbar-color:#2c313a transparent}.spin-item{display:flex;align-items:center;gap:14px;background:#1c2027;border:2px solid transparent;border-radius:14px;padding:clamp(10px,1.6vh,16px) 20px;color:#cfd3da;font-weight:700;font-size:clamp(14px,2vh,18px);transition:transform .12s,border-color .12s,background .12s,opacity .12s;flex-shrink:0}.spin-item .si-ava{width:clamp(28px,4vh,34px);height:clamp(28px,4vh,34px);border-radius:999px;background:#2c313a;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;flex-shrink:0}.spin-item.active{border-color:var(--primary);background:#262b34;color:#fff;transform:scale(1.04)}.spin-item.winner{border-color:#ffd23f;background:linear-gradient(90deg,#ffd23f40,#ffd23f0d);color:#fff;transform:scale(1.07);box-shadow:0 0 28px #ffd23f59}.spin-item.picked{opacity:.4}.spin-item .si-check{margin-left:auto;color:#5fe0b5;font-size:20px;flex-shrink:0}.spin-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center;flex-shrink:0}.spin-btn{background:var(--primary);color:var(--on-primary);border:none;border-radius:12px;padding:14px 36px;font-size:18px;font-weight:800;cursor:pointer}.spin-btn:disabled{opacity:.5;cursor:not-allowed}.spin-reset{color:#fff;border-color:#ffffff4d}.spin-all-picked{display:flex;flex-direction:column;align-items:center;gap:12px;color:#fff;font-size:clamp(16px,2.6vh,22px);font-weight:800}.spin-all-picked .material-symbols-outlined{font-size:clamp(36px,6vh,56px);color:#ffd23f}.lbo-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0c10f0;z-index:75;display:flex;flex-direction:column;align-items:center;padding:clamp(20px,5vh,56px) 24px clamp(12px,3vh,32px);gap:6px;cursor:pointer;overflow:hidden}.lbo-list{flex:1 1 auto;min-height:0;width:min(820px,94%);display:flex;flex-direction:column;align-items:stretch;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#2c313a transparent;cursor:default;padding-bottom:4px}.lbo-list .lbo-row{width:100%;flex-shrink:0}.lbo-title{color:#fff;font-size:clamp(24px,4.5vh,34px);font-weight:800}.lbo-skip{color:var(--primary);font-weight:700;margin-bottom:22px;font-size:15px}.lbo-head,.lbo-row{width:min(820px,94%);display:grid;grid-template-columns:70px 1fr 90px;align-items:center}.lbo-head{color:#8b909a;font-weight:700;padding:0 18px 8px;font-size:14px}.lbo-row{background:#181b21;border-radius:12px;padding:14px 18px;margin-bottom:10px;color:#fff;font-weight:700;font-size:17px;animation:pop .3s ease backwards}.lbo-row.me{background:linear-gradient(90deg,#ffd23f47,#ffd23f0a)}.lbo-row .lbo-name{display:flex;align-items:center;gap:10px}.lbo-row .lbo-score{text-align:right;font-variant-numeric:tabular-nums}.lbo-gain{color:var(--olive);font-size:13px;font-weight:700;margin-left:8px}.podium-screen{height:100vh;height:100dvh;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:clamp(10px,3vh,40px) 24px 0;overflow:hidden}.podium-head{text-align:center;margin-bottom:auto;margin-top:clamp(4px,2.5vh,40px);flex-shrink:0}.podium-head h1{font-size:clamp(24px,5vh,40px);margin:0 0 6px}.podium-row{display:flex;align-items:flex-end;justify-content:center;gap:24px;width:100%;max-width:760px}.podium-col{display:flex;flex-direction:column;align-items:center;flex:1}.podium-person{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:14px;animation:rise-in .7s cubic-bezier(.22,1,.36,1) backwards}.podium-ava{width:64px;height:64px;border-radius:999px;background:var(--primary-soft);color:var(--olive);display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:800;border:3px solid var(--surface);box-shadow:0 4px 14px #0000001f}.podium-name{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:6px 14px;font-weight:700;font-size:15px;white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis}.podium-score{color:var(--muted);font-weight:700;font-size:14px}.podium-bar{width:100%;max-width:180px;border-radius:14px 14px 0 0;color:#fff;display:flex;align-items:flex-start;justify-content:center;padding-top:14px;font-size:30px;font-weight:800;transform-origin:bottom;animation:grow-up .8s ease backwards}.podium-bar.p1{height:clamp(120px,24vh,230px);height:clamp(120px,24dvh,230px);background:linear-gradient(180deg,var(--primary),var(--primary-strong));color:var(--on-primary)}.podium-bar.p2{height:clamp(90px,18vh,170px);height:clamp(90px,18dvh,170px);background:var(--navy)}.podium-bar.p3{height:clamp(64px,12vh,120px);height:clamp(64px,12dvh,120px);background:var(--olive);color:var(--on-olive)}.podium-col.col-1 .podium-person{animation-delay:.5s}.podium-col.col-2 .podium-person{animation-delay:.2s}.podium-col.col-3 .podium-person{animation-delay:.35s}.podium-col.col-1 .podium-bar{animation-delay:.4s}.podium-col.col-2 .podium-bar{animation-delay:.1s}.podium-col.col-3 .podium-bar{animation-delay:.25s}.podium-rest{width:min(620px,94%);margin:clamp(8px,2vh,28px) auto;flex:0 1 auto;min-height:0;overflow-y:auto;scrollbar-width:thin}@keyframes rise-in{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes grow-up{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@media(max-width:820px){.lobby-body,.live-main{grid-template-columns:1fr}.live-side{flex-direction:row;flex-wrap:wrap}.live-wrap,.lobby-screen,.podium-screen{height:auto;min-height:100dvh;overflow:visible}.live-main,.lobby-body,.live-content,.live-side,.live-qcard,.lobby-right,.join-card{overflow:visible}.live-answers{flex:none;grid-auto-rows:auto;max-height:none;margin-top:0;margin-bottom:0}.live-opt{min-height:72px;height:auto}.live-qtext{max-height:none}.live-slide{flex:none}.live-slide-box{width:100%}.live-side .side-card:last-child{flex:none;display:block}.attendee-list,.players-grid{max-height:40vh}}.stu-present{position:fixed;top:0;right:0;bottom:0;left:0;background:#0c0e12;display:flex;flex-direction:column;z-index:1}.stu-top{height:56px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 16px;color:#fff}.stu-top-left,.stu-top-right{display:flex;align-items:center;gap:10px}.stu-score{display:inline-flex;align-items:center;gap:6px;background:#1c2027;border-radius:999px;padding:6px 14px;font-weight:800;color:#ffd23f;font-variant-numeric:tabular-nums}.stu-score .material-symbols-outlined{font-size:18px}.stu-slidenum{background:#1c2027;border-radius:8px;padding:6px 18px;font-weight:700;font-size:14px}.stu-code{background:#1c2027;border-radius:8px;padding:6px 14px;font-weight:800;letter-spacing:2px}.stu-icon-btn{width:38px;height:38px;border-radius:8px;border:none;background:#1c2027;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.stu-icon-btn:hover{background:#2a2f38}.stu-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:8px 16px}.stu-slide{width:min(100%,calc((100vh - 150px) * 16 / 9));width:min(100%,calc((100dvh - 150px) * 16 / 9));aspect-ratio:16 / 9}.stu-slide .slide-canvas{width:100%;height:100%;border:none;border-radius:14px;padding:0;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 12px 48px #0000008c}.stu-slide .slide-inner{width:100%;height:100%;min-height:0;padding:28px}.stu-slide .slide-img{width:100%;height:100%;max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain}.stu-foot{height:64px;flex-shrink:0;display:flex;align-items:center;gap:12px;padding:0 18px}.stu-foot .stu-ava{width:42px;height:42px;border-radius:999px;background:var(--primary);color:var(--on-primary);display:flex;align-items:center;justify-content:center;font-weight:800;flex-shrink:0}.stu-foot .stu-name{color:#fff;font-weight:700;line-height:1.2}.settings-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:18px 20px;margin-top:16px}.settings-title{display:flex;align-items:center;gap:8px;font-weight:800;font-size:16px;margin-bottom:8px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--border)}.setting-info{min-width:0}.setting-name{font-weight:700;font-size:15px}.setting-desc{color:var(--muted);font-size:13px;margin-top:2px}.setting-select{width:auto;margin:0;padding:8px 12px;border-radius:10px;font-weight:600}.switch{width:46px;height:26px;border-radius:999px;border:none;background:var(--border);position:relative;cursor:pointer;flex-shrink:0;transition:background .15s;padding:0}.switch.on{background:var(--primary)}.switch-knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:999px;background:#fff;transition:transform .15s;box-shadow:0 1px 3px #00000040}.switch.on .switch-knob{transform:translate(20px)}.cheat-badge{display:inline-flex;align-items:center;gap:3px;margin-left:8px;background:var(--danger-soft);color:var(--danger);border-radius:999px;padding:1px 8px;font-size:12px;font-weight:800;vertical-align:middle}.cheat-badge .material-symbols-outlined{font-size:14px}.cheat-flag{display:inline-flex;align-items:center;gap:2px;margin-left:auto;color:var(--danger);font-size:12px;font-weight:800}.cheat-flag .material-symbols-outlined{font-size:15px}.cheat-warn{position:fixed;top:0;left:0;right:0;z-index:60;background:var(--danger);color:#fff;text-align:center;font-weight:700;font-size:15px;padding:12px 16px;animation:pop .25s ease}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.mode-opt{display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer;border:2px solid var(--border);background:var(--surface);border-radius:12px;padding:12px;transition:border-color .12s,background .12s}.mode-opt:hover{background:var(--surface-2)}.mode-opt.active{border-color:var(--primary);background:var(--primary-soft)}.mode-opt .material-symbols-outlined{font-size:26px;color:var(--primary)}.mode-name{font-weight:800;font-size:14px}.mode-desc{color:var(--muted);font-size:12px}.test-monitor{flex:1;min-height:0;padding:clamp(12px,2.4vh,24px) 24px;max-width:980px;width:100%;margin:0 auto;overflow-y:auto;scrollbar-width:thin}.tm-stats{display:flex;gap:14px;margin-bottom:20px}.tm-stat{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px;text-align:center}.tm-num{font-size:30px;font-weight:800}.tm-lbl{color:var(--muted);font-size:13px}.tm-table{background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden}.tm-row{display:grid;grid-template-columns:44px 1fr 200px 70px 70px;align-items:center;gap:10px;padding:12px 16px;border-top:1px solid var(--border);font-weight:600}.tm-row.tm-head{border-top:none;color:var(--muted);font-size:13px;font-weight:700;background:var(--surface-2)}.tm-row.fin{background:var(--olive-soft)}.tm-rank{font-weight:800;color:var(--muted)}.tm-name{display:flex;align-items:center;gap:10px;overflow:hidden}.tm-prog{display:flex;align-items:center;gap:8px}.tm-bar{flex:1;height:8px;background:var(--surface-2);border-radius:999px;overflow:hidden}.tm-bar>span{display:block;height:100%;background:var(--primary);transition:width .3s}.tm-prog-txt{font-size:12px;color:var(--muted);min-width:42px;text-align:right}.tm-score{text-align:right;font-variant-numeric:tabular-nums}.test-run{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.test-top{display:flex;align-items:center;gap:16px;padding:14px 20px;border-bottom:1px solid var(--border);background:var(--surface)}.test-prog{font-weight:700;font-size:15px;white-space:nowrap}.test-progbar{flex:1;height:8px;background:var(--surface-2);border-radius:999px;overflow:hidden}.test-progbar>div{height:100%;background:var(--primary);transition:width .3s}.test-timer{display:inline-flex;align-items:center;gap:4px;font-weight:800;font-variant-numeric:tabular-nums}.test-timer .material-symbols-outlined{font-size:18px}.test-body{flex:1;width:100%;max-width:720px;margin:0 auto;padding:28px 20px}.test-body .q-text{margin-bottom:18px}.test-score-big{font-size:56px;font-weight:800;color:var(--primary);line-height:1;margin:8px 0}.test-score-big span{font-size:24px;color:var(--muted)}.test-lb{text-align:left;margin-top:12px}.test-lb-head,.test-lb-row{display:grid;grid-template-columns:36px 1fr 110px;align-items:center;gap:8px;padding:8px 12px}.test-lb-head{color:var(--muted);font-size:12px;font-weight:700}.test-lb-row{background:var(--surface-2);border-radius:10px;margin-bottom:6px;font-weight:600}.test-lb-row.me{background:var(--primary-soft)}.test-lb-name{display:flex;align-items:center;gap:8px;overflow:hidden}.test-lb-score{text-align:right;font-weight:700}.sce{display:flex;flex-direction:column;gap:10px}.sce-toolbar,.sce-inspector{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:8px 10px}.sce-inspector{background:var(--surface-2)}.sce-spacer{flex:1}.sce-tool{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--surface-2);color:var(--ink);border-radius:9px;padding:8px 12px;font-weight:600;font-size:14px;cursor:pointer;position:relative}.sce-tool:hover{background:var(--border)}.sce-tool.on{background:var(--primary-soft);border-color:var(--primary);color:var(--ink)}.sce-tool .material-symbols-outlined{font-size:19px}.sce-icon{width:36px;height:36px;border-radius:9px;border:1px solid var(--border);background:var(--surface-2);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.sce-icon:hover:not(:disabled){background:var(--border)}.sce-icon:disabled{opacity:.4;cursor:not-allowed}.sce-icon.on{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.sce-icon.danger:hover{background:var(--danger);color:#fff;border-color:var(--danger)}.sce-icon .material-symbols-outlined{font-size:19px}.sce-menu{position:absolute;z-index:40;top:44px;left:0;min-width:200px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 40px #0000002e;padding:6px}.sce-menu-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:none;background:transparent;padding:10px 12px;border-radius:8px;cursor:pointer;font-size:14px;color:var(--ink)}.sce-menu-item:hover{background:var(--surface-2)}.sce-select{width:auto;margin:0;padding:7px 10px;border-radius:9px;font-weight:600;font-size:14px}.sce-num{width:64px;margin:0;padding:7px 8px;border-radius:9px;font-size:14px}.sce-field{display:inline-flex;align-items:center;gap:6px}.sce-lbl{font-size:12px;color:var(--muted);font-weight:600}.sce-color{width:30px;height:30px;border-radius:8px;border:2px solid var(--border);cursor:pointer;position:relative;overflow:hidden;flex-shrink:0;display:inline-block}.sce-color input{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;width:200%;height:200%;border:none;padding:0;margin:0;cursor:pointer;opacity:0}.sce-swatches{display:inline-flex;gap:4px}.sce-swatch{width:22px;height:22px;border-radius:6px;border:1px solid var(--border);cursor:pointer;padding:0}.sce-stage-wrap{position:relative}.sce-stage-box{position:relative;width:100%;overflow:hidden;border:1px solid var(--border);border-radius:14px;background:var(--surface-2);box-shadow:0 4px 16px #0000000f;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.sce-stage{position:absolute;top:0;left:0}.sce-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--muted);pointer-events:none;font-size:15px;padding:16px;text-align:center}.sce-el{cursor:move}.sce-el.sel{outline:2px solid var(--primary)}.sce-handle{position:absolute;width:14px;height:14px;background:#fff;border:2px solid var(--primary);border-radius:3px;z-index:5}.sce-handle.h-nw{left:-7px;top:-7px;cursor:nwse-resize}.sce-handle.h-n{left:calc(50% - 7px);top:-7px;cursor:ns-resize}.sce-handle.h-ne{right:-7px;top:-7px;cursor:nesw-resize}.sce-handle.h-e{right:-7px;top:calc(50% - 7px);cursor:ew-resize}.sce-handle.h-se{right:-7px;bottom:-7px;cursor:nwse-resize}.sce-handle.h-s{left:calc(50% - 7px);bottom:-7px;cursor:ns-resize}.sce-handle.h-sw{left:-7px;bottom:-7px;cursor:nesw-resize}.sce-handle.h-w{left:-7px;top:calc(50% - 7px);cursor:ew-resize}.sce-rotate{position:absolute;left:calc(50% - 13px);top:-40px;width:26px;height:26px;background:var(--primary);color:var(--on-primary);border-radius:999px;cursor:grab;z-index:6;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px #00000040}.sce-rotate .material-symbols-outlined{font-size:16px}.add-item.tpl-item{display:flex;align-items:center;gap:10px}.add-item.tpl-item>div{flex-shrink:0;border:1px solid var(--border)}.stu-slide-wrap{width:min(100%,calc((100vh - 220px) * 16 / 9));margin:0 auto}.gs-editor{display:grid;grid-template-columns:230px 1fr;height:calc(100vh - 64px);overflow:hidden}.gs-editor.with-tpl{grid-template-columns:230px 1fr 300px}.gs-panel-title{font-weight:800;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.gs-pages{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.gs-pages-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border)}.gs-add-btn{width:32px;height:32px;border-radius:9px;border:1px solid var(--border);background:var(--primary);color:var(--on-primary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.gs-add-btn:hover:not(:disabled){background:var(--primary-strong)}.gs-add-btn:disabled{opacity:.5;cursor:not-allowed}.gs-page-list{flex:1;min-height:0;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px}.gs-page{display:flex;align-items:center;gap:8px;cursor:grab;border-radius:10px}.gs-page:active{cursor:grabbing}.gs-page.dragging{opacity:.4}.gs-page-num{font-weight:700;color:var(--muted);min-width:16px;font-size:12px;text-align:center}.gs-page-prev{position:relative;width:150px;aspect-ratio:16 / 9;border:2px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface);flex-shrink:0;display:flex;align-items:center;justify-content:center}.gs-page.active .gs-page-prev{border-color:var(--primary);box-shadow:0 0 0 2px var(--focus)}.gs-page-prev:hover .thumb-del{opacity:1}.gs-canvas{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg)}.gs-canvas-stage{flex:1;min-height:0;overflow:auto;padding:22px 26px}.gs-canvas-stage>*{max-width:1040px;margin:0 auto}.gs-notes{display:flex;align-items:center;gap:10px;padding:8px 16px;border-top:1px solid var(--border);background:var(--surface);flex-shrink:0}.gs-notes .material-symbols-outlined{color:var(--muted);font-size:20px}.gs-notes textarea{margin:0;border:none;background:transparent;resize:none;padding:6px 0;font-size:14px}.gs-notes textarea:focus{box-shadow:none}.gs-templates{background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.gs-tpl-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.gs-close{width:30px;height:30px;border:none;background:transparent;color:var(--muted);border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.gs-close:hover{background:var(--surface-2);color:var(--ink)}.gs-tpl-list{flex:1;min-height:0;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:14px}.gs-tpl-card{border:1px solid var(--border);background:var(--surface-2);border-radius:12px;padding:8px;cursor:pointer;display:flex;flex-direction:column;gap:8px;transition:border-color .12s,box-shadow .12s,transform .05s}.gs-tpl-card:hover{border-color:var(--primary);box-shadow:0 4px 16px #00000014}.gs-tpl-card:active{transform:translateY(1px)}.gs-tpl-card>div{border-radius:8px;overflow:hidden;border:1px solid var(--border)}.gs-tpl-label{font-size:13px;font-weight:700;color:var(--ink);text-align:left}.gs-pages .add-menu{top:40px;right:0;left:auto;min-width:220px}@media(max-width:900px){.gs-editor,.gs-editor.with-tpl{grid-template-columns:1fr;grid-template-rows:auto 1fr;height:auto}.gs-pages{border-right:none;border-bottom:1px solid var(--border)}.gs-page-list{flex-direction:row;overflow-x:auto}.gs-templates{position:fixed;top:0;right:0;bottom:0;width:min(320px,92vw);z-index:55;box-shadow:-8px 0 30px #0003}}.filter-bar{display:flex;flex-direction:column;gap:10px;margin:16px 0 18px}.filter-search{margin:0;max-width:420px}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1.5px solid var(--border);background:var(--surface);color:var(--ink);border-radius:999px;padding:7px 14px;font-size:14px;font-weight:600;cursor:pointer;transition:background .12s,border-color .12s}.chip:hover{background:var(--surface-2)}.chip.on{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.cat-badge{display:inline-block;font-size:12px;font-weight:700;border-radius:999px;padding:3px 11px;background:var(--primary-soft);color:var(--primary-strong)}.cat-badge.alt{background:var(--olive-soft);color:var(--olive)}.cat-badge.ghost{background:var(--surface-2);color:var(--muted)}.cat-badge.t1{background:var(--success-soft);color:var(--success)}.cat-badge.t2{background:var(--warn-soft);color:var(--warn)}.cat-badge.t3{background:var(--primary-soft);color:var(--primary-strong)}.roster-table{border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--surface)}.roster-row{display:grid;grid-template-columns:40px 1fr 110px 130px 110px;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid var(--border)}.roster-row:first-child{border-top:none}.roster-row.no-cat{grid-template-columns:40px 1fr 130px}.roster-row.with-usage{grid-template-columns:40px 1fr 100px 120px 175px 110px}.roster-head{background:var(--surface-2);color:var(--muted);font-size:13px;font-weight:700}.roster-name{display:flex;align-items:center;gap:10px;font-weight:600;overflow:hidden}@media(max-width:720px){.roster-row{grid-template-columns:28px 1fr auto}.roster-row>:nth-child(3),.roster-row>:nth-child(4){display:none}.roster-row.with-usage{grid-template-columns:28px 1fr auto auto}}.nj-panel{border:1px solid var(--warn-soft);border-radius:14px;background:var(--surface);overflow:hidden}.nj-header{width:100%;display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--warn-soft);border:none;cursor:pointer;color:var(--ink);text-align:left}.nj-header:hover{filter:brightness(.98)}.nj-count{font-size:13px;font-weight:800;padding:1px 10px;border-radius:999px;background:#f59e0b33;color:#d97706}.nj-chevron{color:var(--muted);transition:transform .2s}.nj-body{padding:14px 16px 16px}.nj-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}.nj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}.nj-card{border:1px solid var(--border);border-radius:12px;padding:12px;background:var(--surface-2);display:flex;flex-direction:column;gap:8px}.nj-card-top{display:flex;align-items:center;gap:10px}.nj-tags{display:flex;gap:6px;flex-wrap:wrap}.nj-phone{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:700;color:var(--primary-strong);text-decoration:none;width:-moz-fit-content;width:fit-content}.nj-phone:hover{text-decoration:underline}img,svg,video{max-width:100%;height:auto}.shell-main>*{min-width:0}.topbar{flex-wrap:wrap;gap:8px}.topbar .row{flex-wrap:wrap;min-width:0}.share-menu{width:min(320px,calc(100vw - 32px));max-width:calc(100vw - 32px)}.add-menu{max-width:100%}.modal-overlay>.card{max-height:90vh;overflow-y:auto}.roster-table{overflow-x:auto}@media(max-width:1024px){.shell{grid-template-columns:200px 1fr}.shell-main{padding:22px}}@media(max-width:700px){.side-nav{overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}.side-nav::-webkit-scrollbar{display:none;width:auto}.side-link{flex:0 0 auto}.side-link-hide-mobile{display:flex!important}}@media(max-width:560px){.shell-main{padding:14px 12px}h1{font-size:24px!important}.btn{padding:10px 14px;font-size:14px}.container{padding:16px}.between{gap:10px}input,textarea,select{font-size:16px}.cur-mini-btn{padding:9px 14px;font-size:14px}.kick-btn{width:30px;height:30px}.fab{right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px))}}.wg-rail,.thumb-list,.attendee-list,.gs-page-list,.gs-tpl-list,.add-menu{scrollbar-width:thin;scrollbar-color:var(--border) transparent}.wg-rail::-webkit-scrollbar,.thumb-list::-webkit-scrollbar,.attendee-list::-webkit-scrollbar,.gs-page-list::-webkit-scrollbar,.gs-tpl-list::-webkit-scrollbar,.add-menu::-webkit-scrollbar{width:8px;height:8px}.wg-rail::-webkit-scrollbar-thumb,.thumb-list::-webkit-scrollbar-thumb,.attendee-list::-webkit-scrollbar-thumb,.gs-page-list::-webkit-scrollbar-thumb,.gs-tpl-list::-webkit-scrollbar-thumb,.add-menu::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}.stats-table{width:100%;border-collapse:separate;border-spacing:0 6px;font-size:14px}.stats-table th{text-align:center;font-size:12px;font-weight:700;color:var(--muted);padding:6px 8px;white-space:nowrap;position:sticky;top:0;background:var(--bg);z-index:2}.stats-table td{padding:10px 8px;background:var(--surface-low);border-top:1px solid var(--border);border-bottom:1px solid var(--border);white-space:nowrap}.stats-table td:first-child{border-left:1px solid var(--border);border-radius:10px 0 0 10px}.stats-table td:last-child{border-right:1px solid var(--border);border-radius:0 10px 10px 0}.cur-seg{display:inline-flex;background:var(--surface-high);border-radius:999px;padding:4px;gap:4px}.cur-seg button{padding:8px 24px;border-radius:999px;border:none;cursor:pointer;font-weight:700;font-size:15px;background:transparent;color:var(--ink);transition:all .15s}.cur-seg button.active{background:var(--primary);color:var(--on-primary)}.cur-filters{display:flex;gap:24px;flex-wrap:wrap;align-items:flex-start;margin-bottom:20px}.cur-filter-group{display:flex;flex-direction:column;gap:8px}.cur-filter-label{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.cur-chip{padding:8px 16px;border-radius:10px;border:2px solid var(--border);background:transparent;color:var(--ink);font-weight:600;cursor:pointer;font-size:14px;transition:all .15s;display:inline-flex;align-items:center;gap:8px}.cur-chip:hover{border-color:var(--primary)}.cur-chip.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.cur-count{font-size:12px;font-weight:700;background:var(--surface-high);color:var(--muted);border-radius:999px;padding:1px 8px}.cur-chip.active .cur-count{background:var(--primary);color:var(--on-primary)}.cur-tabs{display:flex;border-bottom:2px solid var(--border);margin-bottom:16px;overflow-x:auto;scrollbar-width:none}.cur-tabs::-webkit-scrollbar{display:none}.cur-tab{padding:10px 20px;border:none;background:none;cursor:pointer;font-weight:700;font-size:15px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s;white-space:nowrap;display:inline-flex;align-items:center;gap:8px}.cur-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.rm-duration{display:inline-flex;align-items:center;gap:7px;margin-left:auto;background:var(--primary-soft);color:var(--primary);border-radius:999px;padding:8px 16px;font-weight:700;font-size:14px;white-space:nowrap}.rm-duration .material-symbols-outlined{font-size:18px}.rm-intro{display:flex;flex-direction:column;gap:10px;background:var(--surface-low);border:1px solid var(--border);border-radius:14px;padding:18px 20px;margin-bottom:22px}.rm-intro p{margin:0;font-size:14.5px;line-height:1.6;color:var(--muted)}.rm-modules{display:flex;flex-direction:column;gap:16px}.rm-module{border:1px solid var(--border);border-radius:16px;padding:18px 20px;display:grid;grid-template-columns:260px 1fr;gap:22px;align-items:center;box-shadow:inset 4px 0 0 var(--rm-line)}.rm-mod-head{display:flex;gap:12px;align-items:flex-start}.rm-mod-icon{flex:none;width:42px;height:42px;border-radius:12px;color:#fff;display:flex;align-items:center;justify-content:center}.rm-mod-icon .material-symbols-outlined{font-size:24px}.rm-mod-name{font-size:18px;margin:0 0 4px;line-height:1.2}.rm-mod-desc{margin:0;font-size:13px;line-height:1.5;color:var(--muted)}.rm-stages{display:flex;align-items:stretch;gap:6px}.rm-stage-wrap{display:flex;align-items:center;gap:6px;flex:1}.rm-stage{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;height:100%}.rm-stage-step{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--rm-line)}.rm-stage-title{font-weight:700;font-size:14px;line-height:1.25;color:var(--ink)}.rm-stage-months{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600;color:var(--muted);margin-top:auto}.rm-stage-months .material-symbols-outlined{font-size:15px}.rm-arrow{flex:none;color:var(--rm-line);font-size:22px;opacity:.65}@media(max-width:860px){.rm-module{grid-template-columns:1fr;gap:16px}.rm-stages{flex-direction:column}.rm-stage-wrap{flex-direction:column;align-items:stretch}.rm-arrow{transform:rotate(90deg);align-self:center;margin:-2px 0}}.cur-progress{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--surface-low);border:1px solid var(--border);border-radius:12px;margin-bottom:12px;font-size:14px;font-weight:600}.cur-progress .bar{flex:1;margin:0;height:8px}.cur-progress .bar-fill{background:var(--success)}.cur-row{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--row-tint, var(--surface-low));border-radius:12px;border:1px solid var(--border);box-shadow:inset 4px 0 0 var(--row-accent, transparent);transition:border-color .12s,background .12s,box-shadow .12s}.cur-row:hover{border-color:var(--primary)}.cur-row.drag-over{border:2px solid var(--primary);padding:11px 15px}.cur-row.dragging{opacity:.4}.cur-row.selected{border-color:var(--primary);background:var(--primary-soft)}.cur-select-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 16px;margin-bottom:12px;background:var(--primary-soft);border:1px solid var(--primary);border-radius:12px;font-size:14px;position:sticky;top:8px;z-index:20}.cur-badge-demo{font-size:11px;font-weight:800;background:var(--success-soft);color:var(--success);border-radius:6px;padding:2px 8px;margin-left:8px;vertical-align:middle;white-space:nowrap}.cur-mini-btn{border:none;cursor:pointer;border-radius:8px;display:inline-flex;align-items:center;gap:4px;padding:6px 12px;font-size:13px;font-weight:600;flex-shrink:0;transition:filter .15s}.cur-mini-btn:hover{filter:brightness(.95)}.cur-mini-btn.play{background:var(--success);color:#fff}.cur-mini-btn.view{background:var(--surface-high);color:var(--ink)}.cur-mini-btn.edit{background:var(--primary-soft);color:var(--primary)}.cur-mini-btn.del{background:var(--surface-high);color:var(--muted)}.cur-mini-btn.del:hover{background:var(--error-container);color:var(--error)}.cur-form{margin-top:12px;padding:16px;background:var(--surface-low);border-radius:12px;border:2px dashed var(--border)}.cur-form.editing{border:2px solid var(--primary)}.cur-form label.f-label{font-size:14px;font-weight:700;display:block;margin-bottom:4px}.cur-skel{height:58px;border-radius:12px;margin-bottom:8px;background:linear-gradient(90deg,var(--surface-low) 25%,var(--surface-high) 50%,var(--surface-low) 75%);background-size:200% 100%;animation:cur-skel 1.1s infinite linear}@keyframes cur-skel{to{background-position:-200% 0}}.cur-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--navy);color:#fff;padding:12px 20px;border-radius:12px;font-weight:600;font-size:14px;z-index:100;box-shadow:0 8px 24px #00000040;animation:cur-toast .2s ease-out;max-width:min(90vw,480px);text-align:center}@keyframes cur-toast{0%{opacity:0;transform:translate(-50%) translateY(8px)}}@media(max-width:720px){.cur-row{flex-wrap:wrap;padding:10px 12px}.cur-row .cur-picker{width:100%!important}.cur-seg button{padding:8px 16px;font-size:14px}.cur-filters{gap:14px}}:root{--tr-ok: var(--ink);--tr-bad: #e05561;--tr-dim: var(--muted)}.stu-lobby{min-height:100dvh;width:100%;max-width:1180px;margin:0 auto;padding:28px clamp(16px,4vw,40px) 40px;display:flex;flex-direction:column;gap:18px;justify-content:center}.stu-lobby-head{text-align:center}.stu-ava-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(52px,1fr));gap:8px}.stu-ava-btn{font-size:26px;padding:8px 0;border-radius:12px;cursor:pointer;border:2px solid var(--border);background:var(--surface);transition:transform .1s,border-color .1s}.stu-ava-btn:hover{transform:scale(1.08)}.stu-ava-btn.on{border-color:var(--primary);background:var(--primary-soft, rgba(76,141,255,.12))}.tr-wrap{display:grid;grid-template-columns:1fr;gap:18px;align-items:start}@media(min-width:920px){.tr-wrap{grid-template-columns:1fr 300px}}.tr-side{background:var(--surface-low);border:1px solid var(--border);border-radius:14px;padding:14px}.tr-area{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:clamp(24px,2.6vw,34px);line-height:1.75;font-weight:600;background:var(--surface-low);border:2px solid var(--border);border-radius:16px;padding:20px 24px;height:clamp(180px,36vh,340px);overflow:hidden;display:flex;flex-wrap:wrap;-moz-column-gap:.6em;column-gap:.6em;align-content:flex-start;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:text}.tr-word{white-space:nowrap}.tr-caret{position:absolute;left:-2px;top:8%;width:2.5px;height:84%;background:var(--primary);border-radius:2px;animation:tr-blink 1s step-end infinite}@keyframes tr-blink{0%,60%{opacity:1}61%,to{opacity:0}}.tr-overlay{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:14px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--surface) 55%,transparent);-webkit-backdrop-filter:blur(2.5px);backdrop-filter:blur(2.5px);font-weight:700;font-size:16px;pointer-events:none}@media(max-width:520px){.tr-area{font-size:21px;height:30vh;min-height:140px;padding:14px 16px}.stu-lobby{padding-top:16px;justify-content:flex-start}.stu-ava-row{grid-template-columns:repeat(6,1fr)}.stu-ava-btn{font-size:22px;padding:6px 0}}
