@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.relative{position:relative}.contents{display:contents}.grid{display:grid}.table{display:table}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.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,)}}:root{--bg:#f6f7f9;--surface:#fff;--surface-2:#eef2f6;--ink:#151922;--muted:#667085;--line:#d8dee7;--blue:#2563eb;--green:#15803d;--amber:#b45309;--red:#b91c1c;--shadow:0 18px 48px #141e3214;--tw-space-1:4px;--tw-space-2:8px;--tw-space-3:12px;--tw-space-4:16px;--tw-space-5:20px;--tw-space-6:24px;--tw-slate-50:#f8fafc;--tw-slate-100:#f1f5f9;--tw-slate-200:#e2e8f0;--tw-slate-500:#64748b;--tw-slate-900:#0f172a;--tw-blue-600:#2563eb;--tw-green-700:#15803d}*{box-sizing:border-box}html,body{min-height:100%;color:var(--tw-slate-900);background:var(--tw-slate-50);margin:0;font-family:OpenDyslexic,OpenDyslexic3,Verdana,Tahoma,Arial,sans-serif;line-height:1.55}body.font-opendyslexic,body.font-opendyslexic *{font-family:OpenDyslexic,OpenDyslexic3,Verdana,Tahoma,Arial,sans-serif!important}body.font-arial,body.font-arial *{font-family:Arial,Helvetica,sans-serif!important}body.font-times-new-roman,body.font-times-new-roman *{font-family:Times New Roman,Times,serif!important}body.font-system,body.font-system *{font-family:system-ui,-apple-system,Segoe UI,sans-serif!important}.achievement-list .achievement-item{padding:0;display:block;position:relative;overflow:visible}.achievement-list .achievement-summary{box-sizing:border-box;align-items:center;width:100%;min-height:58px;padding:12px 230px 12px 16px;display:flex}.achievement-list .achievement-summary>span:nth-of-type(2){margin-left:0}.achievement-list .achievement-expanded{box-sizing:border-box;border-top:1px solid #26404024;grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) 210px;align-items:start;gap:12px 20px;width:100%;padding:16px;display:grid}.achievement-list .achievement-expanded>.achievement-question{grid-area:1/1}.achievement-list .achievement-expanded>.achievement-status{grid-area:1/2}.achievement-list .achievement-expanded>.question-video-thumb{grid-area:2/2;width:100%;margin:0}.achievement-list .achievement-summary-actions{display:none}.achievement-list .achievement-expanded>.achievement-actions{grid-area:3/1/auto/-1;justify-content:flex-end;align-items:center;width:100%;margin:4px 0 0;display:flex}.achievement-list .achievement-expanded{padding:8px 10px 10px;display:block;position:relative}.achievement-list .achievement-expanded>.achievement-question{width:calc(100% - 310px);min-height:46px;display:block}.achievement-list .achievement-expanded>.achievement-question span,.achievement-list .achievement-expanded>.achievement-question strong{display:block}.achievement-list .achievement-expanded>.achievement-status{margin:0;position:absolute;top:8px;left:10px;transform:none}.achievement-list .achievement-expanded>.question-video-thumb{width:74px;height:42px;min-height:42px;padding:2px;position:absolute;top:8px;right:132px}.achievement-list .achievement-expanded>.question-video-thumb video{height:25px}.achievement-list .achievement-expanded>.question-video-thumb span,.achievement-list .achievement-expanded>.question-video-thumb strong{font-size:8px;line-height:9px}.achievement-list .achievement-expanded>.achievement-metrics{table-layout:fixed;width:100%;margin:0;display:table}.achievement-list .achievement-expanded>.achievement-actions{flex-direction:column;align-items:stretch;gap:3px;width:94px;margin:0;display:flex;position:absolute;top:8px;right:8px}.achievement-list .achievement-expanded>.achievement-actions .action-menu-trigger,.achievement-list .achievement-expanded>.achievement-actions .note-button{justify-content:center;min-height:20px;padding:2px 5px;font-size:10px}.achievement-list .achievement-expanded>.achievement-actions{flex-direction:row;width:auto;max-width:calc(100% - 20px)}.achievement-list .achievement-expanded>.achievement-actions .action-menu-trigger,.achievement-list .achievement-expanded>.achievement-actions .action-menu-trigger svg:last-child{display:none}.achievement-list .achievement-expanded>.achievement-actions .achievement-action-menu{display:flex}.achievement-list .achievement-expanded>.achievement-actions .action-menu-list{min-width:0;box-shadow:none;background:0 0;border:0;flex-wrap:wrap;gap:0;padding:0;display:flex;position:static}.achievement-list .achievement-expanded>.achievement-actions .action-menu-list button{color:#075985;white-space:nowrap;background:0 0;border:0;border-radius:0;min-height:20px;padding:1px 4px;font-size:10px;font-weight:600;display:inline-flex}.achievement-list .achievement-expanded>.achievement-actions .action-menu-list button+button:before{content:"|";color:#94a3b8;margin-right:4px}.achievement-list .achievement-expanded>.achievement-actions .action-menu-list button:hover{color:#be123c;background:0 0;text-decoration:underline}.achievement-list .achievement-expanded>.achievement-actions .note-button{white-space:nowrap;background:0 0;border:0;border-radius:0;min-height:20px;padding:1px 4px;font-size:10px;font-weight:600;color:#075985!important}.achievement-list .achievement-expanded>.achievement-actions .note-button:hover{background:0 0;text-decoration:underline;color:#be123c!important}.achievement-list .achievement-expanded{grid-template-rows:auto auto;grid-template-columns:minmax(220px,1fr) minmax(360px,1.7fr) 180px;gap:8px 14px;padding:8px 10px 10px;display:grid;position:relative}.achievement-list .achievement-expanded>.achievement-question{grid-area:1/1;width:auto;min-height:58px;padding:22px 0 0}.achievement-list .achievement-expanded>.achievement-status{z-index:1;margin:0;padding:0;position:absolute;top:8px;left:10px;transform:none}.achievement-list .achievement-expanded>.achievement-actions{flex-flow:wrap;grid-area:1/2;place-self:start;width:auto;max-width:100%;margin:0;padding-top:2px;display:flex;position:static}.achievement-list .achievement-expanded>.achievement-metrics{grid-area:2/1/auto/-1;width:100%;margin:0}.achievement-list .achievement-expanded>.question-video-thumb{grid-area:1/3;place-self:start end;width:74px;height:42px;margin:0;position:static}.achievement-list .achievement-expanded>.question-video-link,.achievement-list .achievement-expanded>.question-video-unavailable{color:#075985;white-space:nowrap;grid-area:1/1;place-self:start;margin-top:42px;font-size:10px;font-weight:600}.achievement-list .achievement-expanded>.achievement-actions .note-button{display:none}.achievement-list .question-note-link{color:#075985;font:inherit;cursor:pointer;background:0 0;border:0;margin-left:8px;padding:0;font-size:10px;font-weight:600;text-decoration:underline;display:inline}.achievement-list .question-note-link:hover{color:#be123c}.achievement-list .question-inline-video-link,.achievement-list .question-inline-video-empty{color:#075985;font:inherit;background:0 0;border:0;margin-left:8px;padding:0;font-size:10px;font-weight:600;display:inline}.achievement-list .question-inline-video-link{cursor:pointer;text-decoration:underline}.achievement-list .question-inline-video-link:hover{color:#be123c}.achievement-list .achievement-expanded>.question-video-link,.achievement-list .achievement-expanded>.question-video-unavailable{display:none}.achievement-list .achievement-expanded>.question-video-link{cursor:pointer;background:0 0;border:0;padding:1px 4px;text-decoration:underline}.achievement-list .achievement-expanded>.question-video-link:hover{color:#be123c}@media (max-width:780px){.achievement-list .achievement-expanded{grid-template-rows:auto;grid-template-columns:1fr}.achievement-list .achievement-expanded>.achievement-question,.achievement-list .achievement-expanded>.achievement-status,.achievement-list .achievement-expanded>.achievement-actions,.achievement-list .achievement-expanded>.achievement-metrics,.achievement-list .achievement-expanded>.question-video-thumb,.achievement-list .achievement-expanded>.question-video-link,.achievement-list .achievement-expanded>.question-video-unavailable{grid-area:auto/1}.achievement-list .achievement-expanded>.achievement-status{margin:0;padding:0;position:static}.achievement-list .achievement-expanded>.achievement-question{padding-top:0}.achievement-list .achievement-expanded>.question-video-thumb,.achievement-list .achievement-expanded>.question-video-link,.achievement-list .achievement-expanded>.question-video-unavailable{justify-self:start}.achievement-list .achievement-expanded>.question-video-link,.achievement-list .achievement-expanded>.question-video-unavailable{margin-top:0}}.achievement-list .achievement-expanded>*{min-width:0}.achievement-list .achievement-question strong{overflow-wrap:anywhere}.achievement-list .achievement-status{background:#ffffff73;border:1px solid #26404024;border-radius:7px;padding:10px}.achievement-list .achievement-metrics th,.achievement-list .achievement-metrics td{padding:7px 10px}.achievement-list .achievement-expanded{grid-template-rows:auto auto auto auto;grid-template-columns:1fr;gap:0;padding:10px 12px 12px;display:grid}.achievement-list .achievement-expanded>.achievement-question{grid-area:1/1;align-items:baseline;gap:8px;min-height:22px;display:flex}.achievement-list .achievement-expanded>.achievement-question strong{font-size:.82rem}.achievement-list .achievement-expanded>.achievement-status{background:0 0;border:0;grid-area:1/1;justify-self:start;margin-top:-2px;margin-left:0;padding:0;transform:translateY(-22px)}.achievement-list .achievement-expanded>.achievement-status strong{font-weight:500}.achievement-list .achievement-expanded>.achievement-metrics{grid-area:2/1;margin-top:4px}.achievement-list .achievement-expanded>.question-video-thumb{grid-area:3/1;justify-self:end;width:180px;margin-top:10px}.achievement-list .achievement-expanded>.achievement-actions{grid-area:4/1}.achievement-list .achievement-metrics{table-layout:fixed;font-size:.76rem}.achievement-list .achievement-metrics th{color:#20272b;white-space:nowrap;background:#eef0f1;border:1px solid #c7cbcd;font-weight:500}.achievement-list .achievement-metrics td{color:#111820;white-space:nowrap;background:#fff;border:1px solid #c7cbcd;font-weight:600}@media (max-width:780px){.achievement-list .achievement-summary{padding-right:180px}.achievement-list .achievement-expanded{grid-template-columns:1fr}.achievement-list .achievement-expanded>.achievement-question,.achievement-list .achievement-expanded>.achievement-metrics,.achievement-list .achievement-expanded>.achievement-status,.achievement-list .achievement-expanded>.question-video-thumb{grid-area:auto/1}.achievement-list .achievement-expanded>.question-video-thumb{justify-self:start;max-width:210px}.achievement-list .achievement-expanded>.achievement-status{margin:8px 0 0;transform:none}}button,input,select,textarea{font:inherit}button,a{min-height:42px}button{border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;gap:8px;padding:10px 14px;display:inline-flex}button:disabled{cursor:not-allowed;opacity:.55}button:hover,a:hover{border-color:#b7c2d2}textarea,select,input{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:7px}textarea{resize:vertical;min-height:132px;padding:12px;line-height:1.5}select{padding:11px 12px}input{min-height:42px;padding:10px 12px}.eyebrow{color:var(--blue);letter-spacing:0;text-transform:uppercase;margin:0 0 6px;font-size:12px;font-weight:700}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:28px;line-height:1.15}h2{margin-bottom:0;font-size:16px}.home-shell{place-items:center;min-height:100vh;padding:32px;display:grid}.home-panel{background:var(--surface);border:1px solid var(--line);width:min(520px,100%);box-shadow:var(--shadow);border-radius:8px;padding:28px}.home-actions{grid-template-columns:repeat(2,1fr);gap:12px;margin-top:22px;display:grid}.home-actions a{background:var(--surface-2);border:1px solid var(--line);color:var(--ink);border-radius:7px;justify-content:center;align-items:center;padding:12px;text-decoration:none;display:flex}.home-actions .login-role-card{background:linear-gradient(145deg,#f7fbfa,#e8f2ef);border:1px solid #cfe0db;border-radius:22px;min-height:190px;transition:transform .2s,box-shadow .2s,border-color .2s;position:relative;overflow:hidden;box-shadow:0 12px 24px #19433d14}.home-actions .login-role-card:hover,.home-actions .login-role-card:focus-visible{border-color:#4f8f83;outline:none;transform:translateY(-4px);box-shadow:0 16px 30px #19433d29}.login-role-card img{object-fit:contain;object-position:center bottom;width:100%;height:100%}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.server-config{border-top:1px solid var(--line);gap:12px;margin-top:22px;padding-top:18px;display:grid}.server-config-toggle{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:7px;align-items:center;gap:3px;margin:18px auto 0;padding:5px 7px;display:inline-flex}.server-config-toggle:hover,.server-config-toggle:focus-visible{color:var(--ink);border-color:var(--accent);outline:none}.server-config-chevron{transition:transform .2s}.server-config-chevron.open{transform:rotate(180deg)}.auth-back-button{border:1px solid var(--line);color:var(--muted);cursor:pointer;font:inherit;background:0 0;border-radius:7px;align-self:flex-start;align-items:center;gap:5px;padding:5px 8px;display:inline-flex}.auth-back-button:hover,.auth-back-button:focus-visible{color:var(--ink);border-color:var(--accent);outline:none}.server-config label{gap:7px;display:grid}.server-config label span{color:var(--muted);font-size:13px;font-weight:700}.nav-button,.detail-link{background:var(--surface);border:1px solid var(--line);color:var(--ink);border-radius:7px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:10px 13px;text-decoration:none;display:inline-flex}.auth-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-panel{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;gap:14px;width:min(420px,100%);padding:22px;display:grid}.auth-panel label,.token-box label{gap:7px;display:grid}.student-form{max-width:720px}.student-form label,.content-form label,.upload-control{gap:7px;display:grid}.student-form label span,.content-form label span,.upload-control span,.auth-panel label span,.token-box label span,.student-token span{color:var(--muted);font-size:13px;font-weight:700}.error-text{color:var(--red);margin-bottom:0;font-size:13px}.student-shell,.teacher-shell{min-height:100vh;padding:var(--tw-space-5)}.teacher-shell{--blue:#a31f34;--surface:#fff;--surface-2:#f3f4f6;--ink:#111827;--muted:#5f6673;--line:#d7dce2;--shadow:0 14px 34px #11182714;background:linear-gradient(90deg,#a31f340f,#0000 34%),#f7f7f5;font-family:OpenDyslexic,OpenDyslexic3,Verdana,Tahoma,Arial,sans-serif}.webgazer-indicator{background:#9aa5a5;border-radius:999px;width:9px;height:9px;margin-right:6px;display:inline-block}.webgazer-indicator.memuat{background:#eab308;animation:1s infinite webgazer-pulse}.webgazer-indicator.siap{background:#f59e0b}.webgazer-indicator.aktif{background:#16a34a}.webgazer-indicator.gagal{background:#dc2626}@keyframes webgazer-pulse{50%{opacity:.35}}.calibration-overlay{z-index:50;color:#f8fafc;background:#0a121bf0;position:fixed;inset:0}.calibration-card{text-align:center;background:#172431f5;border:1px solid #ffffff2e;border-radius:18px;width:min(460px,100% - 32px);padding:22px 26px;position:absolute;top:7vh;left:50%;transform:translate(-50%);box-shadow:0 16px 48px #0000004d}.calibration-card h1{margin:4px 0 8px;font-size:25px}.calibration-card p:not(.eyebrow){color:#d8e2ea;margin:0;line-height:1.5}.calibration-progress{color:#a7f3d0;margin-top:14px;font-weight:700}.calibration-dot{cursor:pointer;background:#ef4444;border:5px solid #fff;border-radius:999px;width:30px;height:30px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 5px #ef444440,0 4px 16px #00000073}.calibration-dot:hover,.calibration-dot:focus-visible{transform:translate(-50%,-50%)scale(1.18)}.calibration-dot.completed{background:#22c55e;border-color:#dcfce7}.student-shell{--blue:#1cb0f6;--green:#58cc02;--amber:#ffc800;--surface:#fffdf4;--surface-2:#f5fbef;--ink:#172033;--muted:#5b6880;--line:#d7e4f0;--shadow:0 8px 0 #121f3514, 0 18px 40px #121f3514;background:linear-gradient(#58cc021a,#1cb0f614 42%,#fffdf400),#fffaf0;font-family:OpenDyslexic,OpenDyslexic3,Verdana,Tahoma,Arial,sans-serif;line-height:1.55}.student-shell em,.student-shell i{font-style:normal}.student-shell button,.student-shell .nav-button,.student-shell .detail-link{border:2px solid var(--line);border-radius:8px;font-weight:800;box-shadow:0 4px #121f351f}.student-shell button:active{transform:translateY(3px);box-shadow:0 1px #1f293747}.student-shell .primary-button{background:linear-gradient(180deg, #63dc12, var(--green));color:#fff;border-color:#4cad00;box-shadow:0 5px #3f9700}.student-shell .student-topbar,.student-shell .fullscreen-request,.student-shell .stimulus,.student-shell .response-panel,.student-shell .device-panel,.student-shell .camera-card{border:1px solid var(--line);border-radius:8px}.student-shell .student-topbar{box-shadow:var(--shadow);background:#ffffffd1;padding:12px}.teacher-shell .teacher-topbar{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-bottom:4px solid #a31f34;border-radius:8px;grid-template-columns:minmax(260px,.9fr) minmax(360px,1.4fr) minmax(128px,auto);align-items:start;gap:12px;padding:12px;display:grid;position:relative}.teacher-topbar-title{min-width:0}.teacher-shell .teacher-topbar h1{font-size:24px;line-height:1.25}.teacher-topbar-info{grid-template-columns:repeat(4,minmax(118px,1fr));align-items:stretch;gap:8px;display:grid}.teacher-info-label{border-left:3px solid var(--line);background:0 0;gap:2px;min-width:0;padding:2px 8px;display:grid;overflow:hidden}.teacher-info-label span{color:var(--muted);font-size:11px;font-weight:800;line-height:1.2}.teacher-info-label strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.25;overflow:hidden}.teacher-info-label.status-ok{border-color:var(--green)}.teacher-info-label.status-warn{border-color:var(--yellow)}.teacher-primary-menu{justify-self:end;position:relative}.teacher-primary-menu summary{background:var(--green);color:#fff;cursor:pointer;border:1px solid #189b00;border-bottom-width:4px;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-width:128px;min-height:42px;padding:9px 12px;font-weight:900;list-style:none;display:inline-flex}.teacher-primary-menu summary::-webkit-details-marker{display:none}.teacher-primary-menu-list{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);z-index:20;border-radius:8px;gap:8px;min-width:230px;padding:10px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.teacher-primary-menu:not([open]) .teacher-primary-menu-list{display:none}.teacher-primary-menu-list .nav-button,.teacher-primary-menu-list button.nav-button,.teacher-primary-menu-list .theme-picker{width:100%;min-height:42px}.teacher-primary-menu-list .theme-picker{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;align-items:stretch;gap:5px;padding:8px;display:grid}.teacher-primary-menu-list .theme-picker span{color:var(--muted);font-size:12px;font-weight:800}.teacher-primary-menu-list .theme-picker select{min-height:38px}.teacher-shell .eyebrow{color:#a31f34}.theme-picker{min-width:150px}.theme-picker select{min-height:36px;padding:7px 10px}.theme-mit{font-family:OpenDyslexic,OpenDyslexic3,Verdana,Tahoma,Arial,sans-serif}.theme-minecraft{--blue:#2f7d32;--green:#15803d;--amber:#b45309;--surface:#fffdf4;--surface-2:#e8d8ad;--ink:#1f2933;--muted:#5f5132;--line:#3f3321;--shadow:0 5px 0 #3f332147;font-family:OpenDyslexic,OpenDyslexic3,Verdana,Tahoma,Arial,sans-serif}.theme-instagram{--blue:#d62976;--green:#10b981;--amber:#f59e0b;--surface:#fff;--surface-2:#fff1f7;--ink:#24142f;--muted:#6b5576;--line:#f0c7dc;--shadow:0 16px 38px #d6297624;background:linear-gradient(135deg,#f5852924,#dd2a7b1f 45%,#515bd424),#fff7fb;font-family:OpenDyslexic,OpenDyslexic3,Verdana,Tahoma,Arial,sans-serif}.theme-viola{--blue:#7652c8;--green:#2f9b78;--amber:#e3a63a;--surface:#fffdfb;--surface-2:#f0eafb;--ink:#28213d;--muted:#6c6380;--line:#d9cfee;--shadow:0 12px 30px #4a337e24;background:radial-gradient(circle at 8% 0,#d9c6ff8c,#0000 34%),linear-gradient(135deg,#ffdcb833,#0000 48%),#fbf9ff;font-family:OpenDyslexic,OpenDyslexic3,Verdana,Tahoma,Arial,sans-serif}.theme-viola .primary-button{background:linear-gradient(#8865d8,#7652c8);border-color:#6843b8;box-shadow:0 5px #5c39a7}.theme-viola .student-topbar,.theme-viola .fullscreen-request,.theme-viola .stimulus,.theme-viola .response-panel,.theme-viola .device-panel,.theme-viola .camera-card{border-color:var(--line);box-shadow:var(--shadow)}.theme-viola .eyebrow{color:#6843b8}.teacher-shell.theme-viola{--blue:#7652c8;--green:#2f9b78;--surface:#fffdfb;--surface-2:#f0eafb;--ink:#28213d;--muted:#6c6380;--line:#d9cfee;--shadow:0 12px 30px #4a337e24;background:radial-gradient(circle at 8% 0,#d9c6ff8c,#0000 34%),#fbf9ff}.teacher-shell.theme-viola .teacher-topbar{border-bottom-color:#7652c8}.teacher-shell.theme-viola .teacher-primary-menu summary{background:#7652c8;border-color:#6843b8 #6843b8 #5c39a7}.teacher-shell.theme-viola .eyebrow{color:#6843b8}body.theme-viola .teacher-shell{--blue:#7652c8;--green:#2f9b78;--surface:#fffdfb;--surface-2:#f0eafb;--ink:#28213d;--muted:#6c6380;--line:#d9cfee;--shadow:0 12px 30px #4a337e24;background:0 0}body.theme-viola .teacher-shell .teacher-topbar{border-bottom-color:#7652c8}body.theme-viola .teacher-shell .teacher-primary-menu summary{background:#7652c8;border-color:#6843b8 #6843b8 #5c39a7}.student-shell.theme-minecraft,.student-shell.theme-instagram,.student-shell.theme-viola{background:linear-gradient(180deg, var(--surface-2), #fff)}.student-topbar,.teacher-topbar{justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px;display:flex}.student-table{border:1px solid var(--line);border-radius:8px;overflow:hidden}.student-table-head,.student-table-row{grid-template-columns:minmax(170px,1.2fr) minmax(105px,.65fr) minmax(140px,.85fr) minmax(90px,.5fr) minmax(110px,.6fr) minmax(105px,.55fr);align-items:center;gap:12px;padding:12px 14px;display:grid}.student-table-head{background:var(--surface-2);color:var(--muted);font-size:13px;font-weight:700}.student-table-row{background:var(--surface);border-top:1px solid var(--line)}.status-badge{border-radius:999px;justify-content:center;padding:7px 10px;font-size:13px;font-weight:700;display:inline-flex}.status-badge.selesai{color:var(--green);background:#ecfdf3}.status-badge.berlangsung{color:var(--amber);background:#fffbeb}.status-badge.belum{background:var(--surface-2);color:var(--muted)}.student-report-toolbar{grid-template-columns:minmax(130px,1fr) minmax(150px,.8fr) minmax(170px,.9fr) auto auto;align-items:end;gap:10px;display:grid}.student-report-toolbar label{gap:5px;display:grid}.student-report-toolbar button{min-height:38px;padding:7px 10px}.print-summary{border:1px solid var(--line);background:#f8fafc;border-radius:7px;gap:4px;padding:10px;display:grid}.print-summary span,.print-content-audit p{color:var(--muted);margin:0;font-size:12px}.print-only{display:none}.detail-link{background:var(--surface-2);min-height:36px;padding:7px 10px}.disabled-link{color:var(--muted);cursor:not-allowed;opacity:.7}.detail-grid{grid-template-columns:1fr;gap:18px;margin-bottom:18px;display:grid}.settings-grid{grid-template-columns:minmax(320px,520px) minmax(280px,1fr);align-items:start;gap:18px;display:grid}.settings-panel label{gap:7px;display:grid}.settings-panel label span{color:var(--muted);font-size:13px;font-weight:800}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.summary-grid div{background:var(--surface-2);border-radius:7px;gap:6px;min-height:86px;padding:12px;display:grid}.summary-grid span,.achievement-item span,.video-item span,.video-item em{color:var(--muted);font-size:13px;font-style:normal}.summary-grid strong{font-size:20px}.video-list,.achievement-list{gap:10px;display:grid}.video-item{background:var(--surface-2);border-radius:7px;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:12px;padding:10px;display:grid}.video-item div:last-child{gap:4px;min-width:0;display:grid}.video-item span{overflow-wrap:anywhere}.video-thumb{aspect-ratio:1;color:#fff;background:#1f2937;border-radius:7px;place-items:center;display:grid}.achievement-item{background:var(--surface-2);border-radius:7px;grid-template-columns:190px minmax(360px,1fr) 180px;align-items:start;gap:8px 14px;padding:10px 12px;display:grid}.achievement-item>.achievement-summary{cursor:pointer;grid-column:1/-1;align-items:center;gap:14px;width:100%;min-width:0;padding:12px 230px 12px 14px;list-style:none;display:flex;position:relative}.achievement-item>.achievement-summary::-webkit-details-marker{display:none}.achievement-summary strong{min-width:90px;color:var(--ink,#173333)}.achievement-summary span{color:var(--muted,#657070);font-size:.82rem}.achievement-summary span:nth-of-type(2){margin-left:auto}.achievement-summary svg{transition:transform .18s}.achievement-item[open]>.achievement-summary svg,.achievement-item[open]>.achievement-summary .achievement-collapse-icon{transform:rotate(90deg)}.achievement-summary .achievement-collapse-icon{flex:none}.achievement-summary-actions{align-items:center;gap:6px;display:flex;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.achievement-summary-actions .action-menu-trigger{min-height:30px;padding:5px 8px}.achievement-summary-actions .note-button{margin:0}.achievement-expanded>.achievement-actions{display:none}.achievement-expanded{border-top:1px solid #26404024;padding:0 14px 14px}.achievement-item{position:relative}.achievement-item[open]{z-index:30}.achievement-summary-actions{z-index:40}.achievement-expanded{grid-template-columns:190px minmax(0,1fr) 180px;gap:8px 14px;display:grid}.achievement-expanded>div:first-child{grid-area:1/1/span 2}.achievement-expanded>div:nth-child(2){grid-area:1/3}.achievement-expanded>button.question-video-thumb,.achievement-expanded>div.question-video-thumb{grid-area:2/3/span 2;place-self:start end;width:min(100%,180px);min-width:0}.achievement-expanded>.achievement-metrics{grid-area:1/2/span 3;margin:0}.achievement-expanded>p{color:var(--muted);grid-area:3/1;margin:0;padding:8px 0 0;font-size:.8rem}@media (max-width:900px){.achievement-expanded{grid-template-columns:160px minmax(0,1fr)}.achievement-expanded>p{grid-area:auto/1/auto/-1}}@media (max-width:640px){.achievement-expanded{grid-template-columns:1fr}.achievement-expanded>div:first-child,.achievement-expanded>div:nth-child(2),.achievement-expanded>button.question-video-thumb,.achievement-expanded>div.question-video-thumb,.achievement-expanded>.achievement-metrics,.achievement-expanded>p{grid-area:auto/1}}.achievement-metrics{border-collapse:collapse;width:100%;margin:8px 0;font-size:.78rem}.achievement-metrics th,.achievement-metrics td{text-align:left;border-bottom:1px solid #26404024;padding:6px 8px}.compact-option-image{object-fit:contain;border-radius:6px;width:min(100%,180px);max-height:100px;margin:auto;display:block}.achievement-metrics th{color:var(--muted,#657070);white-space:nowrap;font-weight:600}.achievement-metrics td{color:var(--ink,#173333);font-weight:700}.achievement-actions{z-index:3;grid-column:1/-1;justify-content:flex-end;align-items:center;gap:6px;margin:10px 0 4px;display:flex;position:relative}.achievement-action-menu{position:relative}.action-menu-trigger{color:#fff;min-height:32px;font:inherit;cursor:pointer;background:#8b0718;border:1px solid #7c0717;border-radius:6px;align-items:center;gap:7px;padding:6px 12px;font-size:.76rem;font-weight:700;display:inline-flex}.action-menu-trigger:hover{background:#6f0614}.action-menu-list{z-index:20;border:1px solid var(--line,#ccd8d5);background:#fff;border-radius:9px;min-width:220px;padding:5px;display:grid;position:absolute;top:calc(100% + 5px);left:auto;right:0;box-shadow:0 10px 24px #122b2b2b}.action-menu-list button{color:var(--ink,#173333);text-align:left;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:8px 9px;font-size:.78rem;display:flex}.action-menu-list button:hover:not(:disabled){background:#e9f5f1}.action-menu-list button:disabled{cursor:not-allowed;opacity:.5}.calibration-result-panel{width:min(900px,100vw - 32px);max-width:900px}.calibration-result-content{gap:14px;padding:16px;display:grid}.calibration-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.calibration-summary>div{border:1px solid var(--line,#ccd8d5);background:#f7fbfa;border-radius:8px;gap:4px;padding:10px;display:grid}.calibration-summary span{color:var(--muted,#657070);font-size:.76rem}.calibration-summary strong{color:var(--ink,#173333)}.calibration-map{aspect-ratio:1000/650;background-color:#fbfdfc;background-image:linear-gradient(#1f5b4f0f 1px,#0000 1px),linear-gradient(90deg,#1f5b4f0f 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:10% 10%;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;border:1px solid #bfd3ce;border-radius:10px;overflow:hidden}.calibration-map svg{width:100%;height:100%;display:block}.calibration-error-line{stroke:#f59e0b;stroke-width:4px;stroke-dasharray:9 7;vector-effect:non-scaling-stroke}.calibration-target-mark{fill:#22c55e;stroke:#14532d;stroke-width:3px;vector-effect:non-scaling-stroke}.calibration-point-label{fill:#fff;font-size:18px;font-weight:800}.calibration-prediction-mark{stroke:#dc2626;stroke-width:5px;vector-effect:non-scaling-stroke}.calibration-legend{color:var(--muted,#657070);flex-wrap:wrap;gap:16px;font-size:.8rem;display:flex}.calibration-legend span{align-items:center;gap:6px;display:inline-flex}.calibration-legend i{width:13px;height:13px;display:inline-block}.calibration-legend i.target{background:#22c55e;border-radius:50%}.calibration-legend i.prediction{background:linear-gradient(45deg,#0000 42%,#dc2626 43% 57%,#0000 58%),linear-gradient(-45deg,#0000 42%,#dc2626 43% 57%,#0000 58%)}.calibration-point-table{border-collapse:collapse;width:100%;font-size:.82rem}.calibration-point-table th,.calibration-point-table td{border-bottom:1px solid var(--line,#ccd8d5);text-align:left;padding:7px 9px}.calibration-empty{border:1px dashed var(--line,#ccd8d5);text-align:center;border-radius:10px;margin:16px;padding:24px}@media (max-width:640px){.calibration-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.action-menu-trigger{justify-content:center;min-width:34px;min-height:30px;padding:6px}.action-menu-trigger .action-label{display:none}.action-menu-list{min-width:204px;left:auto;right:0}}.achievement-item>div:first-child,.achievement-item>.clickstream-json{grid-column:1}.achievement-item>div:first-child{grid-row:1/span 2}.achievement-item>div:nth-child(2){grid-area:1/3}.achievement-item>button.question-video-thumb,.achievement-item>div.question-video-thumb{grid-area:2/3/span 2}.achievement-item>.achievement-metrics{grid-area:1/2/span 3;margin:0}.achievement-item>.achievement-actions{grid-area:4/3;justify-content:flex-end}.achievement-item>.note-button{justify-self:end}.note-button{min-height:32px;font:inherit;cursor:pointer;background:#8b0718;border:1px solid #7c0717;border-radius:6px;align-items:center;gap:7px;padding:6px 12px;font-size:.76rem;font-weight:700;display:inline-flex;color:#fff!important}.note-button:hover,.note-button:focus{background:#6f0614;color:#fff!important}.note-modal-panel{max-width:520px}.note-modal-text{background:var(--surface-2);border-radius:8px;min-height:100px;margin:16px 0 4px;padding:14px;line-height:1.55}.achievement-item>p{color:var(--muted);border-left:1px solid #26404024;grid-area:1/3/span 2;align-self:stretch;margin:0;padding:8px;font-size:.8rem}@media (max-width:900px){.achievement-item{grid-template-columns:160px minmax(0,1fr)}.achievement-item>p{border-top:1px solid #26404024;border-left:0;grid-area:auto/1/auto/-1}}@media (max-width:640px){.achievement-item{grid-template-columns:1fr}.achievement-item>div:first-child,.achievement-item>div:nth-child(2),.achievement-item>button.question-video-thumb,.achievement-item>div.question-video-thumb,.achievement-item>.achievement-metrics,.achievement-item>.achievement-actions,.achievement-item>p,.achievement-item>.note-button{grid-area:auto/1}.achievement-item>p{border-top:1px solid #26404024}}.achievement-item div{gap:5px;display:grid}.achievement-item p{margin-bottom:0;line-height:1.45}.clickstream-json{border:1px solid var(--line);color:var(--ink);white-space:pre-wrap;background:#fffdf4;border-radius:7px;max-height:220px;margin:0;padding:10px;font-family:OpenDyslexic,OpenDyslexic3,Verdana,Tahoma,Arial,sans-serif;font-size:12px;line-height:1.6;overflow:auto}.clickstream-summary{margin-bottom:16px}.clickstream-component-list{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;display:grid}.clickstream-component-list div{background:var(--surface-2);border-radius:7px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.clickstream-component-list span{color:var(--muted);font-weight:700}.clickstream-table{grid-template-columns:minmax(160px,1.2fr) minmax(90px,.6fr) minmax(130px,.8fr) minmax(160px,1fr) minmax(80px,.45fr);gap:1px;display:grid;overflow-x:auto}.clickstream-table>span,.clickstream-table>strong{background:var(--surface-2);overflow-wrap:anywhere;min-width:0;padding:9px;font-size:13px;display:block}.clickstream-table>span{color:var(--muted);font-weight:800}.clickstream-table>strong{background:var(--surface);font-weight:700}.status-strip,.live-pill{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.status-strip span,.live-pill{background:var(--surface);border:1px solid var(--line);border-radius:999px;align-items:center;gap:7px;min-height:36px;padding:7px 11px;display:inline-flex}.status-ok{color:var(--green)}.status-warn{color:var(--amber)}.fullscreen-request{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:12px 14px;display:flex}.fullscreen-request strong{color:var(--amber)}.fullscreen-error{margin:-6px 0 14px}.student-grid{grid-template-columns:minmax(0,1fr) 320px;gap:18px;min-height:calc(100vh - 112px);display:grid}.student-grid.side-hidden{grid-template-columns:1fr}.icon-action{min-width:38px;min-height:36px;padding:7px}.student-main,.student-side,.teacher-column{align-content:start;gap:16px;display:grid}.student-main{min-height:calc(100vh - 132px);position:relative}.student-content-block{position:relative}.stimulus{border:1px solid var(--line);box-shadow:var(--shadow);background:linear-gradient(#fffdf4,#f7fbef);border-radius:8px;grid-template-rows:auto 1fr auto;min-height:390px;padding:24px;display:grid}.stimulus.preview{min-height:275px;box-shadow:none}.stimulus-meta{color:var(--muted);justify-content:space-between;gap:12px;font-size:13px;display:flex}.stimulus-content{text-align:center;place-items:center;display:grid}.stimulus-content p{overflow-wrap:anywhere;white-space:pre-line;max-width:100%;margin:0;font-size:clamp(44px,8vw,96px);font-weight:800;line-height:1.15}.stimulus.preview .stimulus-content p{font-size:48px}.stimulus-content p.long{font-size:clamp(24px,3vw,44px);line-height:1.2}.stimulus.preview .stimulus-content p.long{font-size:24px}.stimulus-image{object-fit:contain;border-radius:8px;max-width:100%;max-height:min(52vh,420px)}.stimulus.preview .stimulus-image{max-height:210px}.stimulus-instruction{color:var(--muted);text-align:center;margin-bottom:0;font-size:18px;line-height:1.7}.response-panel,.device-panel,.panel,.camera-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;padding:16px}.response-panel{gap:16px;display:grid}.feeling-panel{z-index:5;background:0 0;width:auto;padding:0;position:absolute;bottom:16px;right:16px;box-shadow:none!important;border:0!important}.response-panel span,.score-input span{color:var(--muted);font-size:13px;font-weight:700}.feeling-grid{grid-template-columns:repeat(2,74px);gap:14px;display:grid}.feeling-button{text-transform:capitalize;background:#fff;border-color:#d3e3f0;min-width:74px;height:74px;min-height:74px;padding:6px;font-weight:700;border-radius:50%!important;box-shadow:0 5px #c7d8e8,0 10px 24px #121f351f!important}.response-panel .feeling-button span{color:inherit;font-size:42px;font-weight:400;line-height:1}.feeling-button.selected{color:var(--green);background:#fff7d1;border-color:#ffc800;box-shadow:0 5px #e5ad00,0 10px 24px #ffc80038!important}.feeling-button:disabled{cursor:not-allowed;opacity:.42}.block-answer-panel{background:linear-gradient(#fffdf4,#f3fbef);padding:22px;box-shadow:0 7px #d7e4f0,0 18px 36px #121f3514;border:2px solid #d7e4f0!important}.multiple-choice-panel{box-shadow:0 7px #d7e4f0,0 18px 36px #121f3514;border:2px solid #d7e4f0!important}.multiple-choice-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.multiple-choice-option{overflow-wrap:anywhere;text-align:center;background:#fff;border:2px solid #d7e4f0;border-radius:8px;place-items:center;width:100%;min-height:96px;padding:14px;font-size:22px;font-weight:800;display:grid}.multiple-choice-option.selected{border-color:var(--green);color:var(--green);background:#ecfdf3;box-shadow:0 5px #3f9700!important}.multiple-choice-media,.stimulus-media{border-radius:7px;max-width:100%}img.multiple-choice-media{object-fit:contain;max-height:180px}video.multiple-choice-media,video.stimulus-media{max-height:260px}audio.multiple-choice-media,audio.stimulus-media{width:min(100%,360px)}.student-digital-timer{color:#22c55e;letter-spacing:0;z-index:4;background:#020617;border:2px solid #1f2937;border-radius:6px;padding:7px 10px;font-family:OpenDyslexic,OpenDyslexic3,Verdana,Tahoma,Arial,sans-serif;font-size:22px;font-weight:800;position:absolute;bottom:14px;left:14px}.assembled-answer,.answer-slot-row{color:var(--ink);text-align:center;background:#fffdf4;border:3px dashed #b7d9ef;border-radius:7px;min-height:96px;padding:18px;font-size:30px;font-weight:800}.answer-slot-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;display:flex}.answer-slot{background:#fffaf0;min-width:128px;min-height:68px;padding:12px 20px;border:3px dashed #cfe2ef!important;box-shadow:inset 0 2px #121f3508!important}.answer-slot.filled{color:#172033;background:linear-gradient(#fffdf4,#eef9ff);border-style:solid;font-size:26px;font-weight:800;border-color:#1cb0f6!important;box-shadow:0 4px #0f8fd0!important}.answer-slot.drop-target{background:#eaf7ff;border-color:#1cb0f6!important;box-shadow:inset 0 0 0 3px #1cb0f62e!important}.answer-slot.drop-active,.answer-slot-row.drop-active{border-color:#1cb0f6}.answer-slot-row.drop-target{background:#eaf7ff;border-color:#1cb0f6}.word-block-grid{flex-wrap:wrap;justify-content:center;gap:14px;min-height:86px;padding:8px;display:flex}.word-block-grid.drop-target{background:#fff4c7;border:3px dashed #ffc800;border-radius:8px}.word-block{color:#172033;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;will-change:transform;background:linear-gradient(#fffdf4,#eaf7ff);min-width:96px;min-height:72px;padding:14px 24px;font-size:28px;font-weight:800;animation:2.8s ease-in-out infinite wordBlockDance;position:relative;border-color:#1cb0f6!important;box-shadow:0 6px #0f8fd0,0 12px 24px #1cb0f629!important}.word-block:nth-child(2n){background:linear-gradient(#fffdf4,#f4ffe9);animation-delay:.18s;border-color:#58cc02!important;box-shadow:0 6px #46a302,0 12px 24px #58cc0229!important}.word-block:nth-child(3n){background:linear-gradient(#fffdf4,#fff4c7);animation-delay:.36s;border-color:#ffc800!important;box-shadow:0 6px #d5a600,0 12px 24px #ffc8002e!important}.word-block:active{cursor:grabbing}.word-block.dragging{filter:saturate(1.18);opacity:.7;z-index:30;animation:none!important}.word-block.used{display:none}.block-answer-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.block-answer-header>span{font-size:18px;line-height:1.6}.student-answer-action{min-width:74px;height:74px;min-height:74px;padding:0;border-radius:50%!important}.student-answer-action.reset{color:#5f4300;background:linear-gradient(#fff8cc,#ffc800);border-color:#d6a600!important;box-shadow:0 6px #b78900!important}.touch-drag-ghost{pointer-events:none;z-index:1000;position:fixed;top:0;left:0;transform:translate(-50%,-50%)scale(1.06)}@keyframes wordBlockDance{0%,to{transform:translateY(0)rotate(0)}45%{transform:translateY(-3px)rotate(-1deg)}70%{transform:translateY(1px)rotate(1deg)}}.camera-card{gap:12px;display:grid}.camera-card.compact{box-shadow:none;align-self:start}.camera-frame{aspect-ratio:4/3;background:#1f2937;border-radius:7px;min-height:180px;position:relative;overflow:hidden}.camera-card.compact .camera-frame{min-height:165px}.camera-video-preview{object-fit:cover;background:#111827;width:100%;height:100%;display:block}.camera-hidden-preview{opacity:0;pointer-events:none;width:1px;height:1px;position:fixed;top:0;left:-9999px}.live-camera-card .target-box,.live-camera-card .face-oval{pointer-events:none}.teacher-recording-preview .camera-frame{min-height:165px}.face-oval{border:2px solid #ffffff80;border-radius:50%;width:32%;height:42%;position:absolute;top:24%;left:34%}.target-box{border:2px solid #22c55e;border-radius:4px;width:50%;height:70%;position:absolute;top:15%;left:25%}.camera-badge{background:#ffffffe6;border-radius:999px;align-items:center;gap:6px;padding:6px 9px;font-size:12px;display:inline-flex;position:absolute;top:10px;left:10px}.camera-status{align-items:center;gap:8px;font-weight:700;display:flex}.camera-status.ok,.ack.ok{color:var(--green)}.ack.warn{color:var(--amber)}.device-panel,.camera-metrics{gap:12px;display:grid}.student-assessment-title h2{margin:0;font-size:20px;line-height:1.1}.metric-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding-top:11px;display:flex}.metric-row span{color:var(--muted)}.metric-row strong{text-align:right;align-items:center;gap:6px;display:inline-flex}.teacher-grid{align-items:start;gap:var(--tw-space-3);grid-template-columns:minmax(0,1fr) minmax(300px,340px);display:grid}.teacher-column.primary{min-width:0}.panel{gap:var(--tw-space-3);display:grid}.teacher-column.sidebar{gap:var(--tw-space-2)}.teacher-column.sidebar .panel{gap:var(--tw-space-2);padding:var(--tw-space-3)}.teacher-column.sidebar .panel-title{gap:6px}.teacher-column.sidebar h2{font-size:15px}.teacher-column.sidebar button,.teacher-column.sidebar .detail-link,.teacher-column.sidebar select,.teacher-column.sidebar input{min-height:34px;padding:6px 10px}.teacher-column.sidebar .button-row{gap:8px}.teacher-control-row{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.teacher-control-row button{width:100%;min-height:32px;padding:5px}.teacher-column.sidebar .control-panel .button-row button,.teacher-column.sidebar .control-panel button.full{min-height:32px;padding:5px 8px}.teacher-column.sidebar .control-panel button.full{justify-self:start;width:48px}.teacher-column.sidebar .control-panel .primary-button.full{justify-self:stretch;width:100%}.compact-icon-link{width:42px;min-width:42px}.teacher-column.sidebar .token-box{gap:8px;padding-bottom:10px}.teacher-column.sidebar .student-token{grid-template-columns:1fr auto;align-items:center;padding:8px 10px}.teacher-column.sidebar .student-token strong{font-size:20px}.teacher-column.sidebar .student-token em{grid-column:1/-1}.camera-side-control{background:var(--surface-2);border:1px solid var(--line);border-radius:7px;gap:8px;padding:10px;display:grid}.camera-side-control>span,.camera-side-control>em{color:var(--muted);font-size:12px;font-style:normal;font-weight:800}.camera-side-control>em{font-weight:700}.segmented-control{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;display:grid}.segmented-control button{background:0 0;border:0;border-radius:7px;min-height:42px}.segmented-control button.active{background:var(--green);color:#fff}.teacher-column.sidebar .score-input{grid-template-columns:92px minmax(96px,1fr) 24px;gap:8px}.teacher-column.sidebar .score-total{padding-top:8px}.teacher-column.sidebar .score-total strong{font-size:20px}.teacher-column.sidebar .suggestion-row{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.teacher-column.sidebar .suggestion-button{border-radius:7px;min-height:30px;padding:5px 6px;font-size:12px}.teacher-column.sidebar textarea{min-height:72px;padding:8px 10px}.teacher-column.sidebar .save-state{margin-top:-4px}.assessment-meta{background:var(--tw-slate-100);border:1px solid var(--tw-slate-200);border-radius:7px;justify-content:space-between;align-items:center;gap:8px;min-height:32px;padding:6px 9px;display:flex}.assessment-meta span,.system-score-box span{color:var(--muted);font-size:12px;font-weight:700}.assessment-meta strong,.system-score-box strong{font-size:12px}.teacher-timer{border:1px solid var(--line);background:#f8fafc;border-radius:7px;grid-template-columns:minmax(58px,1fr) auto 54px auto;align-items:center;gap:8px;padding:8px;display:grid}.teacher-timer.running{box-shadow:inset 3px 0 0 var(--blue);border-color:#93c5fd}.teacher-timer span,.teacher-timer strong,.timer-actions{align-items:center;display:inline-flex}.teacher-timer span{color:var(--muted);gap:5px;font-size:12px;font-weight:800}.teacher-timer strong{color:var(--ink);font-variant-numeric:tabular-nums;justify-content:flex-end}.teacher-timer input{min-height:30px;padding:4px 6px}.timer-actions{gap:5px}.timer-actions button{min-width:30px;min-height:30px;padding:5px}.compact-label{gap:6px;display:grid}.compact-label span{color:var(--muted);font-size:12px;font-weight:700}.question-nav{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.question-nav-button{aspect-ratio:1;color:var(--red);background:#fef2f2;border-color:#fecaca;border-radius:6px;width:34px;min-height:34px;padding:0;font-size:13px}.question-nav-button.graded{color:var(--green);background:#ecfdf3;border-color:#86efac}.question-nav-button.active{font-weight:900;box-shadow:inset 0 0 0 2px}.panel-title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.panel-title-action{margin-left:auto}.render-pulse{border:1px solid var(--line);border-radius:999px;align-items:center;gap:7px;min-height:34px;margin-left:auto;padding:6px 10px;display:inline-flex}.render-pulse strong{font-size:13px}.render-pulse em{color:var(--muted);font-size:12px;font-style:normal}.render-pulse.active{color:var(--green);background:#ecfdf3;border-color:#bbf7d0;animation:.9s ease-out renderPulse}.render-pulse.waiting{color:var(--amber);background:#fffbeb;border-color:#fde68a}.pulse-dot{background:currentColor;border-radius:999px;width:10px;height:10px;display:inline-block;position:relative}.render-pulse.active .pulse-dot:after,.pulse-ack:after{content:"";opacity:0;border:2px solid;border-radius:999px;animation:1.1s ease-out dotRipple;position:absolute;inset:-6px}.pulse-ack{position:relative}.ack-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;display:grid}.teacher-chunk-preview{background:#fffaf0;border:2px solid #d7e4f0;border-radius:8px;gap:10px;padding:14px;display:grid}.teacher-chunk-preview.active{border-color:#1cb0f6;box-shadow:0 5px #1cb0f62e}.teacher-chunk-preview span{color:var(--muted);font-size:13px;font-weight:800}.teacher-chunk-preview-row{flex-wrap:wrap;gap:8px;display:flex}.teacher-chunk-preview-row strong{color:#172033;background:#fff;border:2px dashed #b7d9ef;border-radius:8px;justify-content:center;align-items:center;min-width:74px;min-height:46px;padding:8px 12px;font-size:18px;font-weight:800;display:inline-flex}.teacher-chunk-preview.active .teacher-chunk-preview-row strong:not(:empty){background:linear-gradient(#fffdf4,#eef9ff);border-color:#1cb0f6;box-shadow:0 3px #0f8fd0}.teacher-chunk-preview em{color:var(--muted);font-size:13px;font-style:normal}.ack{background:var(--surface-2);text-align:center;border-radius:7px;padding:9px;font-size:13px;font-weight:700}@keyframes renderPulse{0%{box-shadow:0 0 #15803d59}to{box-shadow:0 0 0 14px #15803d00}}@keyframes dotRipple{0%{opacity:.55;transform:scale(.4)}to{opacity:0;transform:scale(1.9)}}.camera-teacher-grid{grid-template-columns:minmax(180px,.82fr) minmax(190px,1fr);align-items:start;gap:8px;display:grid}.camera-panel .camera-card{padding:8px}.camera-panel .camera-frame{min-height:150px}.camera-panel .camera-metrics{background:var(--surface-2);border:1px solid var(--line);border-radius:7px;align-self:stretch;gap:6px;padding:8px}.camera-panel .metric-row{min-height:32px;padding-top:6px}.teacher-bottom-grid{gap:var(--tw-space-3);grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.camera-panel,.timeline-panel{min-width:0}.button-row{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.system-score-box{background:var(--tw-slate-100);border:1px solid var(--tw-slate-200);border-radius:7px;gap:6px;padding:10px;display:grid}.upload-control input{min-height:38px;padding:7px}.content-grid{grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);align-items:start;gap:16px;display:grid}.content-form textarea{min-height:76px}.content-form{align-content:start}.content-form label{gap:5px}.content-form label span,.content-toolbar label span,.student-report-toolbar label span{color:var(--muted);font-size:12px;font-weight:800}.content-form input,.content-form select,.content-form textarea{font-size:14px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.check-control{border:1px solid var(--line);background:#f8fafc;border-radius:7px;flex-direction:row;align-items:center;gap:9px;min-height:40px;padding:8px 10px;display:flex}.check-control input{width:auto;min-height:auto}.check-control span{font-size:13px;font-weight:800}.content-list{gap:8px;display:grid}.content-toolbar{border-bottom:1px solid var(--line);gap:8px;margin-bottom:10px;padding-bottom:10px;display:grid}.edit-banner{background:#fff7ed;border:1px solid #fed7aa;border-radius:7px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.edit-banner span{color:#9a3412;font-size:13px;font-weight:800}.edit-banner button{min-height:32px;padding:5px 9px}.content-item{background:var(--tw-slate-100);border:1px solid var(--tw-slate-200);border-radius:7px;gap:8px;padding:10px;display:grid}.content-item-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.content-item.inactive{opacity:.72;background:#f8fafc}.status-toggle{border-color:var(--line);color:var(--muted);justify-content:center;justify-self:start;align-items:center;min-height:34px;padding:6px 10px;font-size:13px;display:inline-flex}.status-toggle.active{color:#047857;border-color:#86efac}.content-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-left:auto;display:flex}.content-actions .status-toggle{width:34px;min-width:34px;padding:6px}.token-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.token-actions .detail-link,.token-actions button{width:100%}.status-switch{background:#cbd5e1;border:0;border-radius:999px;width:44px;min-width:44px;height:24px;min-height:24px;padding:3px}.status-switch span{background:#fff;border-radius:999px;width:18px;height:18px;transition:transform .16s;display:block;box-shadow:0 1px 3px #0f172a40}.status-switch.active{background:var(--green)}.status-switch.active span{transform:translate(20px)}.content-item-meta{gap:3px;display:grid}.content-item span,.content-item em{color:var(--muted);font-size:12px;font-style:normal}.content-item p{color:var(--ink);margin-bottom:0;font-size:13px;line-height:1.4}.instruction-help{background:#eff6ff;border:1px solid #bfdbfe;border-radius:7px;gap:6px;padding:10px;display:grid}.instruction-help strong{color:var(--blue)}.instruction-help span{color:var(--ink);font-size:13px;line-height:1.4}.detail-insight-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.detail-insight-grid div{background:var(--surface-2);border-radius:7px;gap:5px;padding:10px;display:grid}.detail-insight-grid span,.chart-row span,.question-video-thumb span{color:var(--muted);font-size:12px;font-weight:800}.detail-insight-grid strong{font-size:20px}.chart-grid{gap:7px;display:grid}.chart-row{grid-template-columns:58px minmax(0,1fr) 40px;align-items:center;gap:8px;display:grid}.chart-row div{background:#e5e7eb;border-radius:999px;height:10px;overflow:hidden}.chart-row i{background:var(--blue);height:100%;display:block}.chart-row strong{text-align:right;font-size:12px}.question-video-thumb{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:7px;place-items:center;gap:4px;width:100%;min-height:64px;padding:7px;text-decoration:none;display:grid}.question-video-thumb strong{font-size:12px}.question-video-thumb video{object-fit:cover;background:#111827;border-radius:5px;width:100%;height:48px;display:block}.student-name-edit{align-items:center;gap:5px;display:inline-flex}.student-edit-inline{color:#075985;align-items:center;padding:2px;line-height:1;display:inline-flex}.student-edit-inline:hover{color:#be123c}.achievement-expanded>.question-video-thumb{margin-left:auto}.achievement-expanded{grid-template-columns:minmax(0,1fr) 220px;align-items:start}.achievement-expanded>div:first-child{grid-area:1/1;min-width:0}.achievement-expanded>div:nth-child(2){grid-area:1/2;min-width:0}.achievement-expanded>button.question-video-thumb,.achievement-expanded>div.question-video-thumb{grid-area:2/2;width:180px;max-width:100%}.achievement-expanded>.achievement-metrics{grid-area:2/1/span 3;min-width:0}.achievement-expanded>p{grid-area:5/1}.achievement-item>.achievement-expanded{box-sizing:border-box;grid-column:1/-1;width:100%}@media (max-width:640px){.achievement-expanded{grid-template-columns:1fr}.achievement-expanded>div:first-child,.achievement-expanded>div:nth-child(2),.achievement-expanded>button.question-video-thumb,.achievement-expanded>div.question-video-thumb,.achievement-expanded>.achievement-metrics,.achievement-expanded>p{grid-area:auto/1}}.video-player-overlay{z-index:80;background:#0f172a9e;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.video-player-panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;gap:10px;width:100%;max-width:min(860px,96vw);padding:12px;display:grid;box-shadow:0 28px 80px #0f172a47}.gaze-review-panel{width:min(100vw - 24px,1500px);max-width:none;height:calc(100vh - 24px)}.gaze-replay-screen{height:100%;overflow:auto}.gaze-review-layer{z-index:100;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.gaze-review-layer polyline,.gaze-review-layer line{fill:none;stroke:#1446d252;stroke-width:2.5px;vector-effect:non-scaling-stroke}.gaze-review-layer marker path{fill:#1446d2b3;stroke:none}.gaze-review-layer circle{fill:#ef444480;stroke:#ffcd0080;stroke-width:3px;vector-effect:non-scaling-stroke}.gaze-fixation-mark{stroke-width:3px;vector-effect:non-scaling-stroke;fill:#2563eb!important;stroke:#fff!important}.gaze-fixation-label{fill:#fff;font-size:12px;font-weight:800}.gaze-replay-screen .multiple-choice-option{min-height:64px;padding:9px;font-size:18px}.gaze-replay-screen .multiple-choice-media{max-height:150px}.eye-review-standalone{color:#173333;background:#eeeae1;min-height:100vh;padding:16px}.eye-review-standalone>header{background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;max-width:1400px;margin:0 auto 14px;padding:12px 16px;display:flex}.eye-review-stage{aspect-ratio:16/9;width:min(100%,1400px);margin:auto;position:relative;overflow:auto}.eye-review-controls{color:#526363;width:min(100%,1400px);margin:0 auto 10px;font-size:13px}.eye-review-controls button{cursor:pointer;background:#fff;border:1px solid #bfd3ce;border-radius:6px;margin-left:10px;padding:5px 9px}.eye-review-controls span{text-align:center;min-width:42px;font-weight:700;display:inline-block}.eye-review-screen{cursor:grab;background:#eeeae1;outline:none;min-height:100%;padding:12px;position:relative}.eye-review-screen:active{cursor:grabbing}.replay-answer-panel{margin-top:16px}.eye-review-screen .stimulus{width:100%}.llm-report-panel{max-width:1400px;margin:0 auto}.llm-report-content{gap:14px;display:grid}.llm-report-section{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:14px}.llm-report-section h3{text-transform:capitalize;margin:0 0 8px}.llm-report-section p{white-space:pre-wrap;margin:0;line-height:1.6}.llm-report-section ul{margin:0;padding-left:22px;line-height:1.6}.eye-review-content-preview{z-index:1;transform-origin:50%;width:100%;transition:transform .15s;position:relative}.eye-review-svg{z-index:100;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.eye-review-svg line{stroke:#1446d252;stroke-width:2.5px;marker-end:url(#review-arrow);vector-effect:non-scaling-stroke}.eye-review-fixation{stroke-width:2px;fill:#2563ebc7!important;stroke:#ffffffe6!important}.eye-review-fixation-label{fill:#fff;font-size:12px;font-weight:800}.eye-review-heatmap-label{fill:#fff;paint-order:stroke;stroke:#780000bf;stroke-width:3px;font-size:13px;font-weight:800}.eye-review-svg circle:not(.eye-review-fixation){fill:#2d2d2d94;stroke:none;filter:blur(12px);vector-effect:non-scaling-stroke}.eye-layer-controls{z-index:3;background:#ffffffeb;border:1px solid #d9d2c5;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px 14px;width:min(100%,980px);margin:0 auto 8px;padding:9px 12px;font-size:12px;display:flex;position:relative}.eye-layer-controls label{cursor:pointer;align-items:center;gap:5px;display:inline-flex}.eye-layer-controls input[type=checkbox]{accent-color:#173333;width:12px;height:12px;margin:0}.eye-review-density{fill:#f9731633!important;stroke:#f973168c!important;filter:none!important}.eye-review-svg circle:not(.eye-review-fixation):not(.eye-review-density):not(.eye-review-raw){stroke:#b91c1c8c;fill:#dc262694!important}.eye-review-fixation{opacity:1}.eye-review-raw{fill:#0f766e!important;filter:none!important}.eye-review-aoi{fill:#2563eb14;stroke:#2563ebb3;stroke-width:2px;vector-effect:non-scaling-stroke}.eye-review-aoi+text{fill:#1d4ed8;font-size:13px;font-weight:700}.eye-review-video-preview{z-index:110;object-fit:contain;background:#111;border:2px solid #fff;border-radius:8px;width:min(280px,28vw);max-height:190px;position:absolute;top:12px;left:12px;box-shadow:0 5px 18px #00000040}.eye-review-video-box{z-index:110;color:#fff;background:#111;border:2px solid #fff;border-radius:9px;width:min(280px,28vw);display:grid;position:absolute;top:12px;left:12px;overflow:hidden;box-shadow:0 5px 18px #00000047}.eye-review-video-box video{object-fit:contain;background:#111;width:100%;max-height:180px;display:block}.eye-review-video-box small{color:#e5e7eb;padding:5px 8px;font-size:11px;line-height:1.3}.eye-review-score-link{color:#93c5fd;cursor:pointer;background:0 0;border:0;justify-self:start;margin:4px 6px 0;padding:0;font-size:10px;line-height:1.2;text-decoration:underline}.eye-review-teacher-note{color:#173333;background:#fff;gap:5px;padding:8px;display:grid}.eye-review-teacher-note label{font-size:11px;font-weight:800}.eye-review-teacher-note textarea{resize:vertical;width:100%;min-height:58px;font:inherit;border:1px solid #cbd5d1;border-radius:5px;padding:6px;font-size:12px}.eye-review-teacher-note button{color:#fff;cursor:pointer;background:#173333;border:0;border-radius:5px;justify-self:start;padding:5px 8px;font-size:11px}.eye-review-teacher-note span{color:#526363;font-size:10px}.eye-review-teacher-note{border:2px solid #173333;border-radius:8px;width:min(280px,28vw);box-shadow:0 5px 18px #00000038}.eye-review-video-empty{background:#111827e6;place-items:center;min-height:72px;padding:10px;font-size:12px}.eye-fixation-table-panel{color:#173333;background:#fff;border:1px solid #d7dfdc;border-radius:8px;width:min(100%,1400px);margin:10px auto;padding:10px 12px;font-size:12px;overflow-x:auto}.eye-fixation-table-panel table{border-collapse:collapse;width:100%;margin-top:7px}.eye-fixation-table-panel th,.eye-fixation-table-panel td{text-align:left;white-space:nowrap;border-bottom:1px solid #e5ebe8;padding:5px 7px}.eye-fixation-table-panel th{color:#526363;font-size:11px}.detail-load-more{justify-content:center;padding:14px 0 4px;display:flex}.detail-load-more button{color:#173333;cursor:pointer;background:#fff;border:1px solid #bfd3ce;border-radius:7px;padding:8px 14px;font-weight:700}.gaze-analysis-panel,.gaze-table-card{color:#173333;background:#fff;border:1px solid #d7dfdc;border-radius:8px;width:min(100%,1400px);margin:10px auto;padding:10px 12px;font-size:12px}.gaze-analysis-panel .panel-title{align-items:center;gap:10px;display:flex}.gaze-analysis-panel .panel-title button{cursor:pointer;background:#fff;border:1px solid #bfd3ce;border-radius:6px;margin-left:auto;padding:5px 9px}.gaze-analysis-menu{background:#eef5f2;border:1px solid #bfd3ce;border-radius:8px;gap:0;margin-left:auto;padding:2px;display:inline-flex}.gaze-analysis-panel .panel-title .gaze-analysis-menu button{background:0 0;border:0;border-radius:5px;margin-left:0}.gaze-analysis-panel .panel-title .gaze-analysis-menu button+button{border-left:1px solid #bfd3ce;border-radius:0 5px 5px 0}.gaze-analysis-grid{grid-template-columns:repeat(6,minmax(90px,1fr));gap:8px;margin-top:10px;display:grid}.gaze-analysis-grid div{background:#f2f7f5;border-radius:5px;gap:3px;padding:7px;display:grid}.gaze-analysis-grid b{color:#526363;font-size:10px}.gaze-analysis-parameters{color:#526363;background:#f8faf9;border:1px solid #e5ebe8;border-radius:6px;gap:4px;margin-top:10px;padding:8px;display:grid}.gaze-analysis-parameters b{color:#173333}.gaze-parameters-toggle{color:#173333;cursor:pointer;font:inherit;background:#fff;border:1px solid #bfd3ce;border-radius:6px;justify-self:start;padding:5px 9px}.gaze-analysis-parameters>.gaze-parameters-toggle{display:none}.gaze-explanation-toggle{color:#173333;cursor:pointer;font:inherit;background:#fff;border:1px solid #bfd3ce;border-radius:6px;padding:5px 9px}.gaze-parameters-content{gap:4px;display:grid}.gaze-analysis-explanation{border-top:1px solid #e5ebe8;gap:5px;margin-top:5px;padding-top:8px;line-height:1.45;display:grid}.gaze-analysis-explanation p{margin:0}.gaze-analysis-parameter-editor{color:#526363;background:#f8faf9;border:1px solid #d7dfdc;border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;width:min(100%,1400px);margin:0 auto 10px;padding:10px 12px;font-size:12px;display:flex}.gaze-analysis-parameter-editor label{color:#173333;gap:3px;font-weight:600;display:grid}.gaze-analysis-parameter-editor input{color:#173333;background:#fff;border:1px solid #bfd3ce;border-radius:5px;width:92px;padding:5px 6px}.gaze-analysis-parameter-editor small{flex-basis:100%;line-height:1.4}.gaze-analysis-reference{color:#526363;background:#f8faf9;border:1px solid #d7dfdc;border-radius:8px;width:min(100%,1400px);margin:0 auto 10px;padding:10px 12px;font-size:12px;line-height:1.45}.gaze-analysis-reference strong{color:#173333}.gaze-analysis-reference p{margin:6px 0 0}.gaze-analysis-panel .gaze-analysis-parameters,.gaze-analysis-parameter-editor,.gaze-analysis-reference{display:none}.gaze-analysis-two-column{grid-template-columns:1fr 1fr;gap:10px;width:min(100%,1400px);margin:0 auto 10px;display:grid}.gaze-analysis-column{color:#526363;background:#f8faf9;border:1px solid #d7dfdc;border-radius:8px;align-content:start;gap:7px;padding:10px 12px;font-size:12px;line-height:1.45;display:grid}.gaze-analysis-column strong{color:#173333}.gaze-analysis-column label{color:#173333;justify-content:space-between;align-items:center;gap:8px;font-weight:600;display:flex}.gaze-analysis-column input{color:#173333;background:#fff;border:1px solid #bfd3ce;border-radius:5px;width:92px;padding:5px 6px}.gaze-analysis-column p{margin:0}@media (max-width:800px){.gaze-analysis-two-column{grid-template-columns:1fr}}.gaze-analysis-tables{grid-template-columns:1fr 1fr;gap:10px;width:min(100%,1400px);margin:0 auto 10px;display:grid}.gaze-table-card{width:auto;margin:0;overflow:auto}.gaze-table-card table{border-collapse:collapse;width:100%;margin-top:7px}.gaze-table-card th,.gaze-table-card td{text-align:left;white-space:nowrap;border-bottom:1px solid #e5ebe8;padding:5px 7px}.gaze-table-card th{color:#526363;font-size:11px}@media (max-width:800px){.gaze-analysis-grid{grid-template-columns:repeat(3,1fr)}.gaze-analysis-tables{grid-template-columns:1fr}}.eye-review-heatmap{fill:#dc262694!important;stroke:#b91c1c8c!important}.eye-review-fixation-group{opacity:.5}.eye-review-current-gaze{stroke-width:3px;fill:#ef4444!important;stroke:#fff!important;filter:none!important}.eye-review-interaction-marker{stroke-width:4px;fill:#00ffea!important;stroke:#07111f!important;filter:drop-shadow(0 0 5px #fff)!important}.eye-review-interactions text{fill:#07111f;paint-order:stroke;stroke:#fff;stroke-width:4px;font-size:12px;font-weight:900}.eye-review-interaction-ripple{stroke-width:5px;pointer-events:none;fill:none!important;stroke:#fff!important;filter:drop-shadow(0 0 4px #ff00c8)!important}.eye-review-interaction-event.touch .eye-review-interaction-marker{fill:#ff2bd6!important}.eye-review-interaction-event.scroll .eye-review-interaction-marker{fill:#ffe600!important}.eye-review-interaction-event.drag .eye-review-interaction-marker{fill:#ff6b00!important}.eye-review-scroll-arrow,.eye-review-drag-line{fill:none;stroke:currentColor;stroke-width:3px;vector-effect:non-scaling-stroke;pointer-events:none}.eye-review-interaction-event.scroll{color:#0891b2}.eye-review-interaction-event.drag{color:#ea580c}.density-slider input[type=range]{width:120px}.active-layer-selector{align-items:center;gap:6px;margin-right:10px;font-weight:700;display:inline-flex}.active-layer-selector select{color:#173333;background:#fff;border:1px solid #bfd3ce;border-radius:6px;max-width:260px;padding:5px 7px}.timeline-panel .panel-title{align-items:center;gap:8px;display:flex}.timeline-toggle{border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:6px;margin-left:auto;padding:4px 8px;font-size:11px}.timeline-list-compact{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:5px;max-height:210px;display:grid;overflow:auto}.timeline-list-compact .timeline-item{grid-template-columns:1fr auto;gap:2px 8px;padding:6px 8px;font-size:11px;display:grid}.timeline-list-compact .timeline-item em{grid-area:1/2/span 2;align-self:center;font-size:10px}.timeline-hidden-note{color:var(--muted);margin:0;font-size:12px}.clickstream-distance-grid{background:0 0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;padding:0;display:grid}.clickstream-combined-table{grid-template-columns:minmax(150px,1.35fr) minmax(70px,.55fr) minmax(150px,1.25fr) minmax(150px,1.6fr) minmax(80px,.7fr) minmax(80px,.7fr);overflow-x:auto}@media (max-width:900px){.clickstream-distance-grid{grid-template-columns:1fr}}.video-player-panel video{aspect-ratio:16/9;object-fit:contain;background:#111827;border-radius:7px;width:100%;max-height:72vh;display:block}.video-player-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.video-player-head div{gap:2px;display:grid}.video-player-head span{color:var(--muted);font-size:12px;font-weight:800}.video-player-head button{min-width:34px;min-height:34px;padding:6px}.draggable-video-panel{z-index:120;will-change:left, top;width:min(860px,96vw);position:fixed;transform:none}.draggable-video-head{-webkit-user-select:none;user-select:none;touch-action:none}.token-box{border-bottom:1px solid var(--line);gap:10px;padding-bottom:14px;display:grid}.student-token{background:#ecfdf3;border:1px solid #bbf7d0;border-radius:7px;gap:4px;padding:10px;display:grid}.student-token strong{color:var(--green);letter-spacing:0;font-size:24px}.student-token em{color:var(--muted);font-size:12px;font-style:normal}.primary-button{background:var(--blue);border-color:var(--blue);color:#fff}.primary-button.full,button.full{width:100%}.danger-button{color:var(--red);border-color:#fecaca}.danger-button:hover{border-color:#fca5a5}.score-input{grid-template-columns:1fr minmax(120px,180px) 32px;align-items:center;gap:12px;display:grid}.score-input input{width:100%}.score-total{border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding-top:12px;display:flex}.score-total strong{font-size:24px}.suggestion-row{flex-wrap:wrap;gap:8px;display:flex}.suggestion-button{background:var(--surface-2);color:var(--ink);border-radius:999px;min-height:34px;padding:7px 11px;font-size:13px}.suggestion-button:disabled{color:var(--muted);cursor:not-allowed;opacity:.55}.save-state,.muted{color:var(--muted);margin-bottom:0;font-size:13px}.save-state{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.timeline-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;display:grid}.timeline-item{background:var(--surface-2);border-radius:7px;align-items:center;gap:4px;padding:10px;display:grid}.timeline-item span{font-weight:700}.timeline-item strong,.timeline-item em{color:var(--muted);font-size:12px;font-style:normal}@media (max-width:920px){.student-topbar{flex-direction:column;align-items:flex-start}.teacher-shell .teacher-topbar{grid-template-columns:1fr}.teacher-topbar-info{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.teacher-primary-menu{justify-self:stretch}.teacher-primary-menu summary{width:100%}.student-grid,.teacher-grid,.detail-grid,.settings-grid,.camera-teacher-grid,.teacher-bottom-grid,.content-grid,.form-grid,.student-report-toolbar{grid-template-columns:1fr}.camera-panel,.timeline-panel{grid-column:1}.student-table-head{display:none}.student-table-row,.achievement-item{grid-template-columns:1fr}.ack-grid,.feeling-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.feeling-panel{bottom:14px;right:14px}.feeling-grid{gap:10px}.feeling-button{min-width:62px;height:62px;min-height:62px}.response-panel .feeling-button span{font-size:34px}.answer-slot{min-width:112px}.word-block{min-height:66px;padding:12px 20px;font-size:24px}.student-answer-action{min-width:66px;height:66px;min-height:66px}}@media print{.teacher-topbar,.student-report-toolbar,.detail-link,.nav-button,button{display:none!important}.teacher-shell{color:#000;background:#fff;padding:0}.panel,.student-table,.student-table-row,.student-table-head,.print-summary,.print-content-audit{box-shadow:none;break-inside:avoid}.print-only{gap:8px;display:grid}.student-table-head,.student-table-row{grid-template-columns:1.2fr .8fr 1fr .6fr .7fr;font-size:11px}.student-table-head span:last-child{display:none}}@media (max-width:560px){.student-shell,.teacher-shell{padding:var(--tw-space-3)}.teacher-topbar-info{grid-template-columns:1fr}h1{font-size:23px}.stimulus{min-height:300px}.stimulus-content p,.stimulus.preview .stimulus-content p{font-size:42px}.feeling-panel{bottom:12px;right:12px}.feeling-button{min-width:54px;height:54px;min-height:54px}.response-panel .feeling-button span{font-size:30px}.answer-slot-row{min-height:84px;padding:12px}.answer-slot{min-width:92px;min-height:60px;padding:10px 14px}.word-block{min-width:82px;min-height:62px;padding:10px 16px;font-size:22px}.student-answer-action{min-width:60px;height:60px;min-height:60px}.button-row,.home-actions{grid-template-columns:1fr}.score-input{grid-template-columns:1fr 34px}.score-input input{grid-area:2/1/auto/-1}}.eye-expression-timeline{background:#fff;border:1px solid #d7dce5;border-radius:10px;margin:12px 0;padding:10px 12px}.eye-expression-heading{flex-wrap:wrap;align-items:center;gap:12px;font-size:12px;display:flex}.eye-expression-heading span{color:#64748b}.eye-expression-track{background:#e2e8f0;border-radius:6px;height:22px;margin-top:9px;display:flex;overflow:hidden}.eye-expression-segment{cursor:pointer;border:0;border-right:1px solid #fff9;min-width:2px;height:100%}.expression-angry{background:#dc2626}.expression-disgust{background:#15803d}.expression-fear{background:#7c3aed}.expression-happy{background:#f59e0b}.expression-sad{background:#2563eb}.expression-surprise{background:#ec4899}.expression-neutral{background:#64748b}.eye-expression-legend{color:#475569;flex-wrap:wrap;gap:12px;margin-top:7px;font-size:11px;display:flex}.eye-expression-legend span{align-items:center;gap:4px;display:inline-flex}.expression-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.eye-expression-empty{color:#64748b;margin:8px 0 0;font-size:12px}.eye-expression-track{position:relative}.eye-expression-playhead{z-index:3;pointer-events:none;background:#111827;border:1px solid #fff;width:3px;position:absolute;top:-4px;bottom:-4px;transform:translate(-50%);box-shadow:0 0 0 1px #111827,0 0 8px #000000b3}.eye-expression-playhead:before{content:"";background:#111827;border:2px solid #fff;border-radius:50%;width:9px;height:9px;position:absolute;top:-5px;left:50%;transform:translate(-50%)}.eye-expression-spectrum{cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.eye-expression-spectrum line{cursor:pointer;transition:opacity .12s}.eye-expression-spectrum line:hover{opacity:1;stroke-width:3px}.eye-expression-spectrum .expression-angry{stroke:#dc2626}.eye-expression-spectrum .expression-disgust{stroke:#15803d}.eye-expression-spectrum .expression-fear{stroke:#7c3aed}.eye-expression-spectrum .expression-happy{stroke:#f59e0b}.eye-expression-spectrum .expression-sad{stroke:#2563eb}.eye-expression-spectrum .expression-surprise{stroke:#ec4899}.eye-expression-spectrum .expression-neutral{stroke:#64748b}.eye-expression-grid-line{stroke:#334155;stroke-width:.35px;stroke-dasharray:1 2;opacity:.55;vector-effect:non-scaling-stroke}.eye-expression-spectrum line:not(.eye-expression-grid-line){filter:drop-shadow(0 0 1px)}.icon-only-button{color:#334155;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;display:inline-flex}.icon-only-button:hover{color:#0f172a;background:#f1f5f9}.icon-only-button:disabled{opacity:.55;cursor:wait}.icon-spin{animation:.8s linear infinite icon-spin}@keyframes icon-spin{to{transform:rotate(360deg)}}.eye-layer-controls{flex-direction:column;align-items:flex-start;gap:8px;width:230px;margin:0;display:flex;position:fixed;top:110px;right:16px;box-shadow:0 8px 24px #17333324}@media (max-width:900px){.eye-layer-controls{width:min(100%,980px);box-shadow:none;flex-direction:row;align-items:center;margin:0 auto 8px;position:relative;top:auto;right:auto}}.eye-expression-track{background:#050505;border:1px solid #475569;height:96px}.eye-expression-spectrum{height:100%}.eye-expression-spectrum rect{cursor:pointer;filter:drop-shadow(0 0 2px)}.eye-expression-spectrum .expression-angry{fill:#ff7a00}.eye-expression-spectrum .expression-disgust{fill:#00e676}.eye-expression-spectrum .expression-fear{fill:#ff1744}.eye-expression-spectrum .expression-happy{fill:#2979ff}.eye-expression-spectrum .expression-sad{fill:#ffe600}.eye-expression-spectrum .expression-surprise{fill:#f0c}.eye-expression-spectrum .expression-neutral{fill:#00e5ff}.eye-expression-playhead{background:#fff;box-shadow:0 0 0 1px #fff,0 0 9px #fff}.eye-expression-playhead:before{background:#fff;border-color:#000}.eye-expression-grid-line{stroke:#64748b;opacity:.3}.eye-expression-legend .expression-angry{background:#ff7a00}.eye-expression-legend .expression-disgust{background:#00e676}.eye-expression-legend .expression-surprise{background:#f0c}.eye-expression-legend .expression-neutral{background:#00e5ff}.eye-expression-track{background:#020617;border-color:#334155;height:72px}.eye-expression-spectrum rect{stroke:#0f172a;stroke-width:.15px;vector-effect:non-scaling-stroke}.eye-expression-spectrum rect:hover{filter:brightness(1.45)}.eye-expression-spectrum rect.expression-angry{fill:url(#gradient-angry)!important}.eye-expression-spectrum rect.expression-disgust{fill:url(#gradient-disgust)!important}.eye-expression-spectrum rect.expression-neutral{fill:url(#gradient-neutral)!important}.expression-confidence-point{stroke:#fff;stroke-width:.8px;vector-effect:non-scaling-stroke;cursor:help}.expression-confidence-point.expression-angry{fill:#ff7a00}.expression-confidence-point.expression-disgust{fill:#00e676}.expression-confidence-point.expression-fear{fill:#ff1744}.expression-confidence-point.expression-happy{fill:#2979ff}.expression-confidence-point.expression-sad{fill:#ffe600}.expression-confidence-point.expression-surprise{fill:#f0c}.expression-confidence-point.expression-neutral{fill:#00e5ff}.expression-confidence-point:hover{r:4}.expression-model-radio{color:#334155;flex-direction:row;align-items:center;gap:8px;font-size:11px;display:inline-flex!important}.expression-model-radio label{cursor:pointer;white-space:nowrap;align-items:center;gap:3px;display:flex}.expression-model-radio input{accent-color:#173333;width:12px;height:12px;margin:0}.expression-classifier-overlay{z-index:5;text-shadow:0 1px 3px #000;pointer-events:none;font-size:10px;font-weight:700;position:absolute;top:4px;left:8px;color:#fff!important}.eye-expression-spectrum line.expression-fear{stroke:#ff1744!important}.eye-expression-spectrum line.expression-sad{stroke:#2979ff!important}.eye-expression-spectrum line.expression-happy{stroke:#ffe600!important}.eye-expression-legend .expression-fear{background:#ff1744!important}.eye-expression-legend .expression-sad{background:#2979ff!important}.eye-expression-legend .expression-happy{background:#ffe600!important}.eye-expression-spectrum rect.expression-fear{fill:#ff1744!important}.eye-expression-spectrum rect.expression-sad{fill:#2979ff!important}.eye-expression-spectrum rect.expression-happy{fill:#ffe600!important}.eye-expression-spectrum .expression-confidence-point{display:none}.eye-expression-spectrum g line.expression-fear{stroke:#ff1744!important}.eye-expression-spectrum g line.expression-sad{stroke:#2979ff!important}.eye-expression-spectrum g line.expression-happy{stroke:#ffe600!important}.eye-expression-spectrum g line.expression-angry{stroke:#ff7a00!important}.eye-expression-spectrum g line.expression-disgust{stroke:#00e676!important}.eye-expression-spectrum g line.expression-neutral{stroke:#00e5ff!important}.eye-expression-legend i.expression-fear{background:#ff1744!important}.eye-expression-legend i.expression-sad{background:#2979ff!important}.eye-expression-legend i.expression-happy{background:#ffe600!important}.eye-expression-legend i.expression-angry{background:#ff7a00!important}.eye-expression-legend i.expression-disgust{background:#00e676!important}.eye-expression-legend i.expression-neutral{background:#00e5ff!important}.eye-expression-spectrum g line.expression-surprise{stroke:#e5e7eb!important}.eye-expression-spectrum rect.expression-surprise{fill:#e5e7eb!important}.eye-expression-legend i.expression-surprise{background:#e5e7eb!important}svg.eye-expression-spectrum line[class*=expression-surprise]{stroke:#e5e7eb!important;color:#e5e7eb!important}.expression-window-tooltip{z-index:20;color:#fff;pointer-events:none;background:#0f172a;border:1px solid #94a3b8;border-radius:6px;flex-direction:column;gap:2px;min-width:145px;padding:7px 9px;font-size:11px;line-height:1.25;display:flex;position:absolute;box-shadow:0 4px 12px #00000059}.expression-window-tooltip strong{color:#f8fafc}.eye-layer-controls{width:min(100%,1400px);box-shadow:none;flex-direction:row;align-items:center;gap:6px 10px;margin:0 auto 8px;padding:6px 10px;font-size:10px;position:relative;top:auto;right:auto}.eye-layer-controls strong{font-size:10px}.eye-layer-controls label{gap:3px}.eye-layer-controls input[type=checkbox]{width:11px;height:11px}.eye-expression-legend{gap:9px;margin-top:5px;font-size:10px}.active-layer-selector{font-size:10px!important}.active-layer-selector select{padding:3px 5px;font-size:10px}.eye-review-controls{font-size:10px}.eye-review-controls button{margin-left:5px;padding:3px 6px;font-size:10px}.eye-review-controls span{min-width:32px;font-size:10px}.auth-panel{background-image:url(/iconic.png);background-position:50% 24px;background-repeat:no-repeat;background-size:64px 64px;padding-top:104px}.student-shell .student-topbar,.teacher-shell .teacher-topbar{background-image:url(/iconic.png);background-position:16px;background-repeat:no-repeat;background-size:42px 42px;padding-left:70px}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
