.empty-state{display:flex;align-items:flex-start;gap:16px;width:min(100%,680px);box-sizing:border-box;margin:24px auto 4px;padding:22px 24px;border:1px dashed color-mix(in srgb,var(--accent-primary) 36%,var(--border));border-radius:12px;background:color-mix(in srgb,var(--accent-soft) 56%,var(--bg-card));color:var(--text-secondary)}.empty-state-icon{display:grid;place-items:center;flex:0 0 40px;height:40px;border:1px solid var(--border);border-radius:10px;background:var(--bg-card);color:var(--accent-primary);font:600 15px/1 JetBrains Mono,Fira Code,monospace}.empty-state-copy{min-width:0}.empty-state-copy strong{display:block;margin:1px 0 5px;color:var(--text-main);font-size:15px}.empty-state-copy p{margin:0;color:var(--text-secondary);font-size:14px;line-height:1.5}.empty-state.compact{width:100%;gap:12px;margin:10px 0;padding:14px}.empty-state.compact .empty-state-icon{flex-basis:34px;height:34px;font-size:13px}.empty-state.compact .empty-state-copy strong{font-size:14px}.empty-state.compact .empty-state-copy p{font-size:13px}@media (max-width: 640px){.empty-state{gap:12px;margin-top:18px;padding:18px}.empty-state-icon{flex-basis:36px;height:36px}}.quiz-shell{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;--quiz-font-scale: 1;--bg-page: #e7e7e5;--bg-panel: #f1f3f7;--bg-card: #ffffff;--bg-card-hover: #edf2f9;--text-main: #272727;--text-secondary: #4f5f79;--text-muted: #6b7890;--border: #cbd4e1;--success: #2f8f5b;--error: #c94a4a;--warning: #d1841f;min-height:100vh;min-height:100dvh;background:var(--bg-page);color:var(--text-main);display:flex;flex-direction:column;user-select:none;-webkit-user-select:none}.quiz-centered{box-sizing:border-box;align-items:center;justify-content:center;padding:24px}.quiz-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:28px;max-width:480px;width:100%}.quiz-card:has(.quiz-rules){max-width:560px}.quiz-card h2{margin:0 0 12px}.quiz-muted{color:var(--text-muted)}.quiz-error{color:var(--error);margin:12px 0}.quiz-loading-card{text-align:center}.quiz-loading-card h2{margin-top:18px}.quiz-load-progress{position:relative;height:7px;margin:18px 0 12px;overflow:hidden;border-radius:999px;background:#dce3ec}.quiz-load-progress>span{position:absolute;inset-block:0;width:42%;border-radius:inherit;background:var(--accent-primary, #315f9d);animation:quiz-load-progress 1.35s ease-in-out infinite}.quiz-load-hint{margin:0;color:var(--text-muted);font-size:.9rem}.quiz-start-progress{margin-top:16px;color:var(--text-secondary);font-size:.9rem}.quiz-transfer-progress{display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--text-secondary);text-align:center;font-size:.9rem}.quiz-transfer-progress .quiz-submit-spinner{margin:0}.quiz-transfer-ring{width:58px;height:58px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(var(--accent-primary, #315f9d) var(--quiz-transfer-percent),#dce3ec 0);flex-shrink:0}.quiz-transfer-ring strong{width:46px;height:46px;display:grid;place-items:center;border-radius:50%;background:var(--bg-card);color:var(--text-main);font-size:.85rem}.quiz-start-progress .quiz-load-progress{margin:0 0 8px}@keyframes quiz-load-progress{0%{left:-45%}to{left:105%}}.quiz-voided .quiz-card{border-color:var(--error)}.quiz-finish{background:radial-gradient(ellipse at 50% 42%,rgba(220,241,229,.9),transparent 58%),#f3f7f4}.quiz-shell.quiz-finish .quiz-finish-card{max-width:440px;padding:clamp(28px,6vw,44px);text-align:center;border:1px solid #dce8df;border-radius:18px;box-shadow:0 18px 50px #1b3d271a,0 2px 8px #1b3d270a;animation:quiz-finish-enter .32s ease-out both}.quiz-shell.quiz-finish .quiz-finish-card h2{margin:16px 0 8px;font-size:clamp(1.45rem,4vw,1.9rem);letter-spacing:-.03em;color:#202c24}.quiz-finish-mark{display:grid;place-items:center;width:56px;height:56px;margin:0 auto;border-radius:50%;background:#e7f5ec;color:#167344;font-size:1.8rem;font-weight:800}.quiz-submit-button{min-height:48px;min-width:min(100%,230px);margin-top:20px;border-radius:12px;font-size:1rem;font-weight:700}.quiz-shell.quiz-finish .quiz-submit-button{color:#fff;border-color:#176b3e;background:linear-gradient(145deg,#21834e,#176b3e);box-shadow:0 8px 18px #176b3e33}.quiz-shell.quiz-finish .quiz-submit-button:hover{border-color:#125832;background:linear-gradient(145deg,#1b7544,#125832)}.quiz-submit-spinner{display:block;width:34px;height:34px;margin:0 auto 18px;border:3px solid var(--border);border-top-color:#21834e;border-radius:50%;animation:quiz-submit-spin .8s linear infinite}@keyframes quiz-finish-enter{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes quiz-submit-spin{to{transform:rotate(360deg)}}.app-shell.page-quiz .quiz-shell{min-height:calc(100dvh - 110px)}@media (max-width: 900px){.app-shell.page-quiz .quiz-shell{min-height:calc(100dvh - 168px)}}.quiz-rules{background:var(--bg-page);border:1px solid var(--border);border-radius:8px;padding:14px 16px;margin:16px 0}.quiz-rules h3{margin:0 0 8px;font-size:.95em}.quiz-rules ul{margin:0;padding-left:20px}.quiz-rules li{margin:6px 0;color:var(--text-main);line-height:1.4}.quiz-rules-ack{display:flex;align-items:flex-start;gap:8px;cursor:pointer;margin-bottom:16px;-webkit-user-select:none;user-select:none}.quiz-rules-ack input{margin-top:3px;cursor:pointer}.quiz-active{position:relative;align-items:center;padding:32px}.quiz-away-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;font-size:2rem;font-weight:800;font-variant-numeric:tabular-nums;color:#fff;background:#c81414eb;animation:quiz-away-flash .6s step-start infinite}@keyframes quiz-away-flash{50%{background:#8c0000eb}}.quiz-timer{font-size:2rem;font-variant-numeric:tabular-nums;margin-bottom:32px;color:var(--accent-primary)}.quiz-question{max-width:720px;width:100%}.quiz-question-text{font-size:calc(1.4rem * var(--quiz-font-scale));margin-bottom:24px;white-space:pre-wrap;overflow-wrap:break-word;-moz-tab-size:4;tab-size:4}.quiz-options{display:flex;flex-direction:column;gap:12px}.quiz-option{display:flex;align-items:center;gap:12px;padding:14px 18px;border:1px solid var(--border);border-radius:10px;background:var(--bg-card);color:var(--text-main);text-align:left;font-size:calc(1.05rem * var(--quiz-font-scale));cursor:pointer;white-space:pre-wrap;overflow-wrap:break-word;-moz-tab-size:4;tab-size:4}.quiz-option:hover,.quiz-option:focus-visible{background:var(--bg-card-hover);outline:none;border-color:var(--accent-secondary)}.quiz-option-selected{border-color:var(--accent-primary);background:var(--bg-card-hover)}.quiz-option-focused{box-shadow:0 0 0 2px var(--accent-secondary)}.quiz-option-index{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--accent-soft);color:var(--btn-fg);font-weight:600;flex-shrink:0}.quiz-active .primary{margin-top:24px}@media (max-width: 520px){.quiz-active{padding:16px}.quiz-question-text{font-size:1.15rem;margin-bottom:16px}.quiz-option{padding:16px;font-size:1rem}.quiz-timer{font-size:1.5rem;margin-bottom:20px}.quiz-away-overlay{font-size:1.3rem}}.quiz-sync-banner{position:fixed;left:50%;bottom:16px;transform:translate(-50%);display:flex;align-items:center;gap:12px;max-width:min(720px,calc(100vw - 24px));padding:10px 16px;border-radius:10px;font-weight:600;background:#8a6d1f;color:#fff;box-shadow:0 6px 24px #00000059;z-index:60}.quiz-sync-banner-ok{background:#1f7a45}.quiz-sync-banner-warn{background:#8a6d1f}.quiz-sync-banner-button{flex:none;padding:6px 14px;border:0;border-radius:8px;font-weight:700;background:#fff;color:#3a2c05;cursor:pointer}.quiz-sync-banner-button:disabled{opacity:.7;cursor:default}.quiz-sync-panel{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0}body:has(.quiz-active) .quiz-sync-banner{display:none}:root{--c-light: #e7e7e5;--c-dark: #272727;--c-navy: #1d3366;--c-blue-deep: #5077b3;--c-blue-soft: #aabfdc;--c-gray-soft: #cbd4e1;--bg-page: var(--c-light);--bg-panel: #f1f3f7;--bg-card: #ffffff;--bg-card-hover: #edf2f9;--text-main: var(--c-dark);--text-secondary: #4f5f79;--text-muted: #6b7890;--accent-primary: var(--c-navy);--accent-secondary: var(--c-blue-deep);--accent-soft: var(--c-blue-soft);--border: var(--c-gray-soft);--focus-ring: rgba(80, 119, 179, .35);--success: #2f8f5b;--error: #c94a4a;--warning: #d1841f;--verdict-accepted: #13743c;--verdict-testing: #2459a7;--verdict-inferencing: #6840a4;--verdict-training: #006f79;--verdict-wrong: #b32643;--verdict-runtime: #a34818;--verdict-time: #3f57a0;--verdict-memory: #9b398c;--verdict-build: #896000;--verdict-archive: #87512b;--verdict-jury: #942d58;--verdict-presentation: #a04567;--verdict-hacked: #692579;--verdict-cancelled: #53626f;--verdict-precompiler: #6e6815;--verdict-unknown: #526b82;--btn-fg: #ffffff;--btn-bg: var(--accent-primary);--btn-bg-hover: color-mix(in srgb, var(--btn-bg) 82%, #ffffff 18%);--btn-border: color-mix(in srgb, var(--btn-bg) 86%, #000000 14%);--btn-border-hover: color-mix(in srgb, var(--btn-border) 72%, #ffffff 28%);--accent-text: var(--accent-primary);--accent-surface: color-mix(in srgb, var(--accent-primary) 10%, #ffffff);--header-bg: var(--accent-primary);--ui-color-scheme: normal;color-scheme:var(--ui-color-scheme)}*{box-sizing:border-box}*{scrollbar-width:thin;scrollbar-color:var(--accent-secondary) transparent}*::-webkit-scrollbar{width:12px;height:12px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--accent-secondary);border-radius:999px;border:3px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{filter:brightness(1.2)}*::-webkit-scrollbar-corner{background:transparent}body{margin:0;font-family:JetBrains Mono,Fira Code,Cascadia Mono,Consolas,Liberation Mono,Menlo,monospace;color:var(--text-main);background:var(--app-bg, var(--bg-page));min-height:100vh}button{font-family:inherit}:root[data-theme=light]{--ui-color-scheme: light}:root[data-theme=light][data-accent=blue]{--app-bg: linear-gradient(145deg, #eff6ff 0%, #e3efff 48%, #d8e8ff 100%);--theme-sidebar-start: #365ea9;--theme-sidebar-mid: #1d3366;--theme-sidebar-end: #5f89cb;--find-ring: #5077b3;--btn-bg: #1d3366;--btn-bg-hover: #264381;--btn-border: #17305f;--btn-border-hover: #1d376a}:root[data-theme=light][data-accent=black]{--app-bg: linear-gradient(145deg, #f4f5f7 0%, #ebeef2 52%, #e3e7ec 100%);--bg-card: #ffffff;--bg-card-hover: #f1f3f6;--bg-panel: #ffffff;--text-main: #20242a;--text-secondary: #4c5968;--text-muted: #657180;--border: #c6cdd6;--accent-primary: #272727;--accent-secondary: #454b53;--accent-soft: #c8cdd3;--theme-sidebar-start: #161616;--theme-sidebar-mid: #202020;--theme-sidebar-end: #333940;--shadow-hover: 0 12px 28px rgba(39, 39, 39, .2);--find-ring: #454b53;--btn-bg: #272727;--btn-bg-hover: #383d44;--btn-border: #202020;--btn-border-hover: #383d44}:root[data-theme=light][data-accent=green]{--app-bg: linear-gradient(145deg, #f2f9f4 0%, #e8f4ec 52%, #deeee4 100%);--bg-card: #ffffff;--bg-card-hover: #edf6f0;--bg-panel: #ffffff;--text-main: #1c2b23;--text-secondary: #496052;--text-muted: #607569;--border: #c3dacb;--accent-primary: #1e7b42;--accent-secondary: #348f58;--accent-soft: #b7dcc5;--theme-sidebar-start: #1d6a3d;--theme-sidebar-mid: #12462b;--theme-sidebar-end: #348455;--shadow-hover: 0 12px 28px rgba(30, 123, 66, .2);--focus-ring: rgba(30, 123, 66, .32);--find-ring: #1e7b42;--btn-bg: #1e7b42;--btn-bg-hover: #278f4f;--btn-border: #176336;--btn-border-hover: #1f7843}:root[data-theme=light][data-accent=red]{--app-bg: linear-gradient(145deg, #faf3f4 0%, #f6eaed 52%, #f0e0e4 100%);--bg-card: #ffffff;--bg-card-hover: #fbf1f3;--bg-panel: #ffffff;--text-main: #2e2024;--text-secondary: #634d54;--text-muted: #78646b;--border: #e0c5cc;--accent-primary: #a3192b;--accent-secondary: #c42a3c;--accent-soft: #e7a3ab;--focus-ring: rgba(196, 42, 60, .35);--theme-sidebar-start: #6e1220;--theme-sidebar-mid: #4a0b15;--theme-sidebar-end: #9a1a2b;--shadow-hover: 0 12px 28px rgba(110, 18, 32, .22);--find-ring: #c42a3c;--btn-bg: #a3192b;--btn-bg-hover: #b92537;--btn-border: #861524;--btn-border-hover: #9e1d2e}:root[data-theme=dark]{--ui-color-scheme: dark;--bg-page: #0b0c0f;--app-bg: #0b0c0f;--app-glow: radial-gradient(60rem 36rem at 12% -12%, color-mix(in srgb, var(--accent-primary) 16%, transparent), transparent 62%), radial-gradient(46rem 30rem at 92% 108%, color-mix(in srgb, var(--accent-primary) 10%, transparent), transparent 66%);--app-grid: linear-gradient(rgba(255, 255, 255, .025) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .025) 1px, transparent 1px);--bg-panel: #131418;--bg-card: #17181d;--bg-card-hover: #1e2026;--text-main: #f2f3f5;--text-secondary: #c9ccd3;--text-muted: #9a9fab;--border: #2a2d35;--success: #63d997;--error: #ff7d89;--warning: #ffc46b;--verdict-accepted: #63d997;--verdict-testing: #83b0ff;--verdict-inferencing: #ba9cf5;--verdict-training: #58d4d9;--verdict-wrong: #ff7d89;--verdict-runtime: #ffad79;--verdict-time: #a6a8ff;--verdict-memory: #ee9bdf;--verdict-build: #eaca65;--verdict-archive: #d9a076;--verdict-jury: #f39bc4;--verdict-presentation: #f0a3ba;--verdict-hacked: #da92f1;--verdict-cancelled: #abb7c2;--verdict-precompiler: #c6cb79;--verdict-unknown: #a1b3c7;--accent-secondary: color-mix(in srgb, var(--accent-primary) 70%, #ffffff 30%);--accent-soft: color-mix(in srgb, var(--accent-primary) 30%, #17181d);--accent-surface: color-mix(in srgb, var(--accent-primary) 16%, #17181d);--header-bg: #101115;--theme-sidebar-start: #08090b;--theme-sidebar-mid: #0d0e11;--theme-sidebar-end: #131418;--shadow-soft: 0 10px 26px rgba(0, 0, 0, .4);--shadow-hover: 0 12px 28px rgba(0, 0, 0, .5);--focus-ring: color-mix(in srgb, var(--accent-primary) 35%, transparent);--find-ring: var(--accent-secondary);--btn-bg: #0d0e11;--btn-bg-hover: #1e2026;--btn-border: var(--accent-primary);--btn-border-hover: var(--accent-secondary)}:root[data-theme=dark][data-accent=red]{--accent-primary: #e2293d;--accent-text: #ff9aa5}:root[data-theme=dark][data-accent=green]{--accent-primary: #2fbf62;--accent-text: #8ee8b2}.ui-accent-list{display:flex;gap:10px;flex-wrap:wrap}.ui-accent-dot{width:28px;height:28px;border-radius:999px;border:2px solid rgba(255,255,255,.7);box-shadow:0 0 0 1px #00000040;cursor:pointer;padding:0}.ui-accent-dot.active{box-shadow:0 0 0 3px var(--focus-ring),0 0 0 1px #00000059;transform:scale(1.08)}.ui-accent-blue{background:#1d3366}.ui-accent-black{background:#272727}.ui-accent-red{background:#c42a3c}.ui-accent-green{background:#1e7b42}:root{--panel-radius: 16px;--card-radius: 14px;--shadow-soft: 0 12px 34px rgba(29, 51, 102, .1);--shadow-hover: 0 12px 28px rgba(80, 119, 179, .2);--app-bg: linear-gradient(145deg, #eef4ff 0%, #e7f1ff 45%, #ddeafb 100%);--theme-sidebar-start: #2e4f94;--theme-sidebar-mid: #1d3366;--theme-sidebar-end: #5077b3}html,body,#root{width:100%;max-width:100%;overflow-x:hidden}.mobile-page-toggle{display:none}.app-shell{--sidebar-w: 96px;display:grid;grid-template-columns:1fr;min-height:100vh;background:var(--app-bg);max-width:100%;overflow-x:hidden;position:relative;isolation:isolate}.app-shell:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--app-glow, radial-gradient(58rem 36rem at 10% -10%, rgba(255, 255, 255, .38), rgba(255, 255, 255, 0) 62%), radial-gradient(48rem 32rem at 95% 6%, rgba(80, 119, 179, .16), rgba(80, 119, 179, 0) 68%), radial-gradient(42rem 28rem at 76% 95%, rgba(170, 191, 220, .26), rgba(170, 191, 220, 0) 66%));pointer-events:none;z-index:-2}.app-shell:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:var(--app-grid, linear-gradient(rgba(255, 255, 255, .055) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .055) 1px, transparent 1px));background-size:28px 28px;-webkit-mask-image:linear-gradient(to bottom,#00000057,#0000);mask-image:linear-gradient(to bottom,#00000057,#0000);pointer-events:none;z-index:-1}.app-shell.sidebar-open{--sidebar-w: 300px}.content-shell{min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;position:relative;margin-left:var(--sidebar-w);transition:margin-left .18s ease}.site-feedback-footer{display:flex;justify-content:center;padding:10px 20px 14px;border-top:1px solid color-mix(in srgb,var(--border) 64%,transparent);background:color-mix(in srgb,var(--bg-card) 58%,transparent)}.site-feedback-footer-bootstrap{min-height:48px;box-sizing:border-box}.site-feedback-link{color:var(--text-muted);font-size:12px;line-height:1.4;text-align:center;text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 45%,transparent);text-underline-offset:2px}.site-feedback-link:hover,.site-feedback-link:focus-visible{color:var(--accent-primary)}.app-shell.page-packs{height:100vh;overflow:hidden}.app-shell.page-packs .content-shell{min-height:0}.app-shell.page-packs .main-area{min-height:0;overflow:hidden}.app-shell.page-logs{height:100vh;overflow:hidden}.app-shell.page-logs .content-shell{min-height:0}.app-shell.page-logs .main-area{min-height:0;overflow:hidden;grid-template-rows:minmax(0,1fr)}.sidebar{overflow:hidden;background:radial-gradient(circle at 30% 0%,var(--theme-sidebar-start) 0%,var(--theme-sidebar-mid) 45%,var(--theme-sidebar-end) 100%);color:#fff;padding:16px 12px;display:flex;flex-direction:column;gap:18px;border-right:1px solid rgba(255,255,255,.12);box-shadow:inset -1px 0 #ffffff17;font-family:JetBrains Mono,Fira Code,Cascadia Mono,Consolas,Liberation Mono,Menlo,monospace;position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-w);z-index:1000;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none;box-sizing:border-box}.sidebar::-webkit-scrollbar{width:0;height:0}.brand-block{width:100%;display:flex;flex-direction:column;align-items:center;gap:2px;margin-bottom:4px}.sidebar.expanded .brand-block{flex-direction:row;justify-content:center;align-items:center;gap:8px}.brand{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;width:100%;padding:0}.brand-core{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;color:var(--accent-primary)}.brand-core svg{display:block;width:38px;height:38px;overflow:visible}.brand-glyph{fill:currentColor}.brand-role-tag{margin-top:0;margin-bottom:0;width:auto;text-align:center;font-size:11px;letter-spacing:1.8px;text-transform:lowercase;font-weight:700;color:var(--accent-primary);opacity:1;line-height:1}.nav-group{display:grid;gap:10px}.sidebar:not(.expanded) .nav-group{justify-items:center}.nav-button{border:1px solid rgba(255,255,255,.22);background:#ffffff14;color:#fff;padding:12px 14px;border-radius:14px;text-align:left;cursor:pointer;transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease;display:flex;align-items:center;gap:12px;width:100%}.sidebar:not(.expanded) .nav-button{justify-content:center;width:56px;min-width:56px;padding:8px 0;border-color:transparent;background:transparent;border-radius:12px}.sidebar:not(.expanded) .nav-button .nav-label{display:none}.sidebar:not(.expanded) .nav-button.active{border-color:transparent;background:transparent}.nav-button .nav-label{white-space:nowrap;opacity:0;transform:translate(-8px);font-weight:900;font-size:15px;text-transform:uppercase;letter-spacing:1.1px;transition:opacity .2s ease,transform .2s ease}.sidebar.expanded .nav-button .nav-label{opacity:1;transform:translate(0)}.nav-button.active{background:#ffffff38;border-color:#ffffff80}.nav-button:hover{transform:translateY(-1px);background:#ffffff29;border-color:#fff6}.sidebar .nav-button:hover{transform:none}.nav-ico{width:40px;height:40px;display:inline-flex;justify-content:center;align-items:center;border-radius:12px;border:2px solid rgba(255,255,255,.38);background:#ffffff24;box-shadow:0 0 0 1px #1d33663d;color:#f4f8ff;transition:transform .18s ease,background .18s ease}.nav-ico svg{width:22px;height:22px}.nav-button:hover .nav-ico{transform:scale(1.04);background:#fff3}.role-teacher .pack-button,.role-admin .pack-button,.role-lecturer .pack-button{background:var(--bg-card)}.role-teacher .input,.role-admin .input,.role-lecturer .input{background:var(--bg-card);color:var(--text-main)}.role-teacher .table th,.role-teacher .table td,.role-admin .table th,.role-admin .table td,.role-lecturer .table th,.role-lecturer .table td{color:var(--text-main)}.role-teacher .pack-button.active,.role-teacher .card.selected,.role-admin .pack-button.active,.role-admin .card.selected,.role-lecturer .pack-button.active,.role-lecturer .card.selected{box-shadow:0 0 0 3px #27272780}.role-teacher .history-refresh-btn:hover,.role-admin .history-refresh-btn:hover,.role-lecturer .history-refresh-btn:hover{box-shadow:0 8px 18px #27272766}.role-teacher .nav-ico,.role-admin .nav-ico,.role-lecturer .nav-ico{border-color:#ffffff47;box-shadow:0 0 0 2px #27272780}.header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 28px;position:sticky;top:0;z-index:40;background:var(--bg-card);border-bottom:1px solid rgba(140,161,196,.28)}.header-right{display:inline-flex;align-items:center;gap:10px;flex:0 0 auto;position:relative}.header-right .ghost,.glow-control .glow-toggle{transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;box-shadow:none}.header-greeting{font-weight:700;font-size:18px;text-align:center;width:100%;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-greeting-shell{position:relative;isolation:isolate;flex:1 1 auto;min-width:0}.greeting-card{border-radius:14px;padding:10px 16px;border:1px solid color-mix(in srgb,var(--accent-primary) 34%,var(--border));background:linear-gradient(135deg,color-mix(in srgb,var(--greet-bg) 72%,var(--accent-surface)),color-mix(in srgb,var(--greet-bg-right) 78%,var(--bg-card)));box-shadow:none;transition:background .24s ease,border-color .24s ease,transform .2s ease;--greet-bg: var(--accent-surface);--greet-bg-right: var(--bg-card);--greet-rgb: 80, 119, 179;--greet-rgb2: 255, 255, 255;--greet-alpha-weak: .32;--greet-alpha-strong: .55;--greet-blur: 18px;--greet-spread: 1px;--greet-speed: 1.6s;--runner-length: 22%;--runner-speed: 1.8s;--cursor-x: 50%;--cursor-y: 50%;background:linear-gradient(135deg,var(--greet-bg),var(--greet-bg-right));position:relative;z-index:1;overflow:hidden}.greeting-glow-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;border-radius:14px;opacity:0;pointer-events:none}.greeting-glow-primary{box-shadow:0 0 0 var(--greet-spread) rgba(var(--greet-rgb),var(--greet-alpha-strong)),0 0 var(--greet-blur) rgba(var(--greet-rgb),var(--greet-alpha-strong))}.greeting-glow-secondary{box-shadow:0 0 0 var(--greet-spread) rgba(var(--greet-rgb2),var(--greet-alpha-strong)),0 0 calc(var(--greet-blur) * 1.1) rgba(var(--greet-rgb2),var(--greet-alpha-strong))}.greeting-text{position:relative;z-index:3}.greeting-name-symbol{display:inline-block;margin-left:8px;font-weight:900;opacity:.92}.greeting-advanced-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2;overflow:hidden}.greeting-advanced-item{position:absolute;line-height:1;opacity:.72;filter:saturate(1.15);transform-origin:center;text-shadow:0 0 8px currentColor}.greeting-advanced-trail,.greeting-advanced-clone{position:absolute;top:0;right:0;bottom:0;left:0;display:inline-block;pointer-events:none}.greeting-advanced-trail{opacity:.32;filter:blur(1px);transform:translate(-12px,8px) scale(.92)}.greeting-advanced-clone{opacity:.45;transform:translate(10px,-8px) scale(.82)}.greeting-advanced-item.path-line{animation-name:greeting-path-line;animation-timing-function:linear;animation-iteration-count:infinite}.greeting-advanced-item.path-orbit{animation-name:greeting-path-orbit;animation-timing-function:ease-in-out;animation-iteration-count:infinite}.greeting-advanced-item.path-lemniscate{animation-name:greeting-path-lemniscate;animation-timing-function:linear;animation-iteration-count:infinite}.greeting-advanced-item.path-torus{animation-name:greeting-path-torus;animation-timing-function:ease-in-out;animation-iteration-count:infinite}.greeting-advanced-item.path-wave{animation-name:greeting-path-wave;animation-timing-function:ease-in-out;animation-iteration-count:infinite}.greeting-advanced-item.path-spiral{animation-name:greeting-path-spiral;animation-timing-function:linear;animation-iteration-count:infinite}.greeting-advanced-item.path-bounce{animation-name:greeting-path-bounce;animation-timing-function:cubic-bezier(.31,.11,.29,.99);animation-iteration-count:infinite}.greeting-advanced-item.theme-matrix{text-shadow:0 0 12px currentColor}.greeting-advanced-item.theme-unicorns{filter:saturate(1.3)}.greeting-advanced-item.theme-embers{text-shadow:0 0 10px currentColor,0 0 22px rgba(255,115,61,.4)}.greeting-card{color:var(--text-main);border-color:color-mix(in srgb,var(--accent-primary) 45%,transparent)}.greeting-card.glow-steady{box-shadow:0 0 0 var(--greet-spread) rgba(var(--greet-rgb),var(--greet-alpha-strong)),0 0 var(--greet-blur) rgba(var(--greet-rgb),var(--greet-alpha-strong))}.greeting-card.glow-breath{box-shadow:none}.header-greeting-shell.glow-breath>.greeting-glow-primary{animation:greeting-glow-breath var(--greet-speed) ease-in-out infinite}.greeting-card.glow-dragon{box-shadow:none}.header-greeting-shell.glow-dragon>.greeting-glow-primary{animation:greeting-glow-dragon-primary var(--greet-speed) linear infinite}.header-greeting-shell.glow-dragon>.greeting-glow-secondary{animation:greeting-glow-dragon-secondary var(--greet-speed) linear infinite}.greeting-card.glow-disabled{box-shadow:none;animation:none}.greeting-card.runner-enabled:before{content:"";position:absolute;top:-30%;bottom:-30%;left:0;width:100%;transform:translate(-100%) skew(-18deg);background-image:linear-gradient(90deg,rgba(var(--greet-rgb),0),rgba(var(--greet-rgb),.12),rgba(var(--greet-rgb2),.42),rgba(var(--greet-rgb),.12),rgba(var(--greet-rgb),0));background-repeat:no-repeat;background-position:center;background-size:var(--runner-length) 100%;animation:runner-slide var(--runner-speed) linear infinite;pointer-events:none}.greeting-card.cursor-reactive:after{content:"";position:absolute;top:-35%;right:-35%;bottom:-35%;left:-35%;background:radial-gradient(circle at var(--cursor-x) var(--cursor-y),rgba(var(--greet-rgb2),.38),rgba(var(--greet-rgb),.12) 24%,rgba(var(--greet-rgb),0) 58%);pointer-events:none}.greeting-card.pulse-accepted{animation:pulse-accepted .85s ease-out}.greeting-card.pulse-verdict{animation:pulse-verdict .85s ease-out}.greeting-card.pulse-rating{animation:pulse-rating .85s ease-out}.glow-control{position:relative}.glow-toggle{width:auto;min-width:0;height:46px;padding:0 15px;margin:0;display:inline-flex;align-items:center;justify-content:center;gap:9px;flex:0 0 auto;line-height:1;color:var(--text-main);background:color-mix(in srgb,var(--accent-primary) 8%,var(--bg-card));border:1px solid color-mix(in srgb,var(--accent-primary) 28%,var(--border));box-shadow:none;border-radius:13px;font:inherit;font-size:13px;font-weight:800;white-space:nowrap}.glow-control .glow-toggle svg{width:19px;height:19px;display:block;color:var(--accent-primary)}.glow-control .glow-toggle:hover{background:var(--accent-surface);border-color:var(--accent-primary);transform:translateY(-1px)}.settings-toggle-label{display:inline}.glow-panel{position:absolute;right:0;top:calc(100% + 8px);width:min(94vw,760px);border-radius:16px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-main);box-shadow:none;padding:18px;display:grid;gap:14px;z-index:41;max-height:calc(100dvh - 110px);overflow:auto;--glow-btn-fg: var(--text-secondary);--glow-btn-fg-hover: var(--btn-fg);--glow-btn-bg: var(--bg-card-hover);--glow-btn-bg-hover: var(--accent-primary);--glow-btn-border: var(--border);--glow-btn-border-hover: var(--accent-primary)}.glow-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 2px 12px;border-bottom:1px solid var(--border)}.glow-panel-header>div{display:grid;gap:3px}.glow-panel-header>.glow-panel-title{display:flex;align-items:center;gap:12px}.glow-panel-title>div{display:grid;gap:3px}.vega-version{display:inline-flex;align-items:center;gap:5px;width:max-content;padding:4px 7px;border:1px solid var(--border);border-radius:7px;background:var(--bg-card-hover);color:var(--text-muted);font-family:inherit;font-size:10px;font-weight:700;line-height:1.2;letter-spacing:.04em;white-space:nowrap}.vega-version span{color:var(--accent-primary);font-size:inherit;font-weight:800;letter-spacing:0;text-transform:none}.login-version{justify-self:center}.glow-panel-header span{color:var(--text-muted);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.glow-panel-header strong{color:var(--text-main);font-size:18px}.glow-logout{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 11px;border:1px solid color-mix(in srgb,var(--error) 42%,var(--border));border-radius:11px;background:color-mix(in srgb,var(--error) 8%,var(--bg-card));color:var(--error);font:inherit;font-size:12px;font-weight:800;cursor:pointer;transition:background .16s ease,border-color .16s ease,transform .16s ease}.glow-logout svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.glow-logout:hover{background:color-mix(in srgb,var(--error) 15%,var(--bg-card));border-color:var(--error);transform:translateY(-1px)}.glow-avatar-section{display:grid;gap:6px;padding-bottom:10px;margin-bottom:4px;border-bottom:1px solid var(--border)}.glow-avatar-label{font-weight:700;font-size:12px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.02em}.glow-settings-layout{display:grid;grid-template-columns:184px minmax(0,1fr);gap:18px;min-height:300px}.glow-settings-nav{display:flex;flex-direction:column;gap:5px;padding-right:14px;border-right:1px solid var(--border)}.glow-settings-content{min-width:0;max-height:min(68vh,620px);overflow:auto;padding:2px 4px 6px 0}.glow-tab{display:grid;gap:3px;text-align:left;border:1px solid transparent;border-radius:10px;padding:10px 11px;background:transparent;font:inherit;font-size:13px;cursor:pointer;color:var(--glow-btn-fg);transition:background .16s ease,border-color .16s ease,color .16s ease}.glow-tab strong{color:inherit;font-size:13px}.glow-tab span{color:var(--text-muted);font-size:10px;font-weight:500}.glow-tab.active{background:var(--accent-surface);border-color:color-mix(in srgb,var(--accent-primary) 30%,var(--border));color:var(--text-main)}.glow-tab:hover{background:var(--bg-card-hover);border-color:var(--border);color:var(--text-main)}.glow-settings-block{display:grid;gap:11px;padding:13px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--bg-card) 78%,var(--bg-card-hover))}.glow-settings-block-title{display:grid;gap:3px}.glow-settings-block-title strong{color:var(--text-main);font-size:13px}.glow-settings-block-title span{color:var(--text-muted);font-size:11px;line-height:1.45}.glow-settings-content .secondary,.glow-settings-content .primary,.glow-settings-content .glow-mode-btn,.glow-settings-content .glow-reset,.glow-settings-content .glow-preset-save,.glow-settings-content .glow-preset-apply{min-height:38px;border-radius:10px;padding:0 12px;font:inherit;font-size:12px;font-weight:750}.glow-settings-content .secondary,.glow-settings-content .primary,.glow-settings-content .glow-mode-btn,.glow-settings-content .glow-reset{color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border)}.glow-settings-content .secondary:hover:not(:disabled),.glow-settings-content .primary:hover:not(:disabled),.glow-settings-content .glow-mode-btn:hover,.glow-settings-content .glow-reset:hover{color:var(--text-main);background:var(--bg-card-hover);border-color:color-mix(in srgb,var(--accent-primary) 42%,var(--border));transform:none}.glow-settings-content :is(button,input,select,textarea):focus-visible{outline:3px solid color-mix(in srgb,var(--accent-primary) 38%,transparent);outline-offset:2px}.glow-settings-content .glow-mode-btn.active{color:var(--accent-primary);background:var(--accent-surface);border-color:color-mix(in srgb,var(--accent-primary) 48%,var(--border))}.glow-settings-content .glow-danger-action{color:var(--error);border-color:color-mix(in srgb,var(--error) 36%,var(--border));background:color-mix(in srgb,var(--error) 5%,var(--bg-card))}.glow-settings-content .glow-online-action{color:var(--accent-primary)}.glow-settings-content .glow-color-dot{width:28px;height:28px;border:2px solid var(--bg-card)}.glow-settings-content .glow-color-dot.active{outline:2px solid var(--accent-primary);box-shadow:none}.glow-profile-tab{display:grid;gap:16px}.glow-profile-intro{display:grid;gap:7px;padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--bg-card-hover)}.glow-profile-intro>span{color:var(--text-muted);font-size:10px;font-weight:800;letter-spacing:.09em}.glow-profile-intro strong{color:var(--text-main);font-size:18px}.glow-profile-intro p{margin:0;color:var(--text-secondary);font-size:12px;line-height:1.55}.glow-theme-settings{display:grid;gap:12px}.glow-theme-section{display:grid;gap:10px;padding:14px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--bg-card) 78%,var(--bg-card-hover))}.glow-theme-heading{display:grid;gap:3px}.glow-theme-heading strong{color:var(--text-main);font-size:13px}.glow-theme-heading span,.glow-theme-footer>span{color:var(--text-muted);font-size:11px;line-height:1.45}.glow-theme-mode-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.glow-theme-mode{display:grid;grid-template-columns:42px minmax(0,1fr) 18px;align-items:center;gap:10px;min-height:62px;padding:9px;border:1px solid var(--border);border-radius:10px;background:var(--bg-card);color:var(--text-main);text-align:left;cursor:pointer}.glow-theme-mode>span:nth-child(2){display:grid;gap:3px}.glow-theme-mode strong{color:var(--text-main);font-size:12px}.glow-theme-mode small{color:var(--text-muted);font-size:10px}.glow-theme-mode>b,.glow-theme-accent>b{color:var(--accent-primary);font-size:13px}.glow-theme-mode.active{border-color:color-mix(in srgb,var(--accent-primary) 52%,var(--border));background:var(--accent-surface)}.glow-theme-preview{display:flex;align-items:end;gap:3px;height:32px;padding:5px;border:1px solid var(--border);border-radius:7px}.glow-theme-preview.light{background:#f6f8fc}.glow-theme-preview.dark{background:#202632;border-color:#465064}.glow-theme-preview i{display:block;width:7px;height:14px;border-radius:3px 3px 1px 1px;background:#a9b4c4}.glow-theme-preview i:first-child{height:20px;background:var(--accent-primary)}.glow-theme-preview i:last-child{height:10px}.glow-theme-accent-list{display:flex;flex-wrap:wrap;gap:7px}.glow-theme-accent{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 10px;border:1px solid var(--border);border-radius:9px;background:var(--bg-card);color:var(--text-secondary);font:inherit;font-size:11px;font-weight:700;cursor:pointer}.glow-theme-accent i{width:15px;height:15px;border-radius:50%;background:var(--swatch)}.glow-theme-accent.blue{--swatch: #2876d2}.glow-theme-accent.black{--swatch: #343a46}.glow-theme-accent.green{--swatch: #23834f}.glow-theme-accent.red{--swatch: #c44444}.glow-theme-accent.active{border-color:color-mix(in srgb,var(--accent-primary) 52%,var(--border));background:var(--accent-surface);color:var(--text-main)}.glow-theme-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:2px 3px}.glow-theme-footer>span{max-width:210px}.glow-theme-footer .secondary{flex:none}.glow-subject-role{display:grid;gap:6px;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:var(--bg-card)}.glow-subject-role span{color:var(--text-muted);font-size:10px;font-weight:800;letter-spacing:.08em}.glow-subject-role strong{color:var(--text-main);font-size:13px}.glow-subject-role b{justify-self:start;padding:4px 9px;border-radius:999px;background:var(--accent-surface);color:var(--accent-primary);font-size:11px}.glow-field{display:grid;gap:5px}.glow-actions-row{grid-template-columns:1fr 1fr;gap:6px}.glow-switches{grid-template-columns:1fr 1fr;gap:6px 10px}.glow-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.glow-label{font-size:12px;font-weight:700;color:var(--text-secondary)}.glow-mode-list{display:flex;gap:6px;flex-wrap:wrap}.glow-mode-btn{border:1px solid var(--border);border-radius:9px;padding:6px 9px;background:var(--glow-btn-bg);cursor:pointer;font-size:12px;font-weight:800;color:var(--glow-btn-fg);border-color:var(--glow-btn-border);transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.glow-mode-btn.active{background:var(--glow-btn-bg-hover);border-color:var(--glow-btn-border-hover);color:var(--glow-btn-fg-hover)}.glow-mode-btn:hover{background:var(--glow-btn-bg-hover);border-color:var(--glow-btn-border-hover);color:var(--glow-btn-fg-hover);transform:translateY(-1px)}.glow-palette{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.glow-color-dot{width:20px;height:20px;border-radius:999px;border:1px solid rgba(0,0,0,.24);cursor:pointer;padding:0}.glow-color-dot.active{box-shadow:0 0 0 2px #1d336673}.glow-reset{border:1px solid var(--border);border-radius:9px;background:var(--glow-btn-bg);padding:5px 8px;font-size:12px;font-weight:800;cursor:pointer;color:var(--glow-btn-fg);border-color:var(--glow-btn-border);transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.glow-reset:hover{background:var(--glow-btn-bg-hover);border-color:var(--glow-btn-border-hover);color:var(--glow-btn-fg-hover);transform:translateY(-1px)}.glow-picker{width:100%;height:38px;border-radius:50%;border:1px solid var(--border);padding:2px;background:#fff;cursor:pointer}.glow-picker.wheel{width:44px;height:44px;justify-self:start}.glow-switch{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700}.glow-presets-section{display:grid;gap:12px;padding:14px;border:1px solid var(--border);border-radius:13px;background:color-mix(in srgb,var(--bg-card) 76%,var(--bg-card-hover))}.glow-presets-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.glow-presets-header h3{margin:0;color:var(--text-main);font-size:14px;line-height:1.3}.glow-presets-header p{margin:4px 0 0;color:var(--text-muted);font-size:12px;line-height:1.45}.glow-presets-count{display:grid;min-width:26px;height:26px;padding:0 6px;place-items:center;border:1px solid var(--border);border-radius:8px;background:var(--bg-card);color:var(--text-secondary);font-size:12px;font-weight:800}.glow-presets-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px}.glow-preset-name-field{display:grid;min-width:0;gap:5px;color:var(--text-secondary);font-size:11px;font-weight:700}.glow-preset-name-field .input{min-width:0;min-height:38px;box-sizing:border-box}.glow-preset-save,.glow-preset-apply{min-height:38px;padding:0 12px;border:1px solid var(--border);border-radius:9px;background:var(--accent-primary);color:var(--btn-fg, #fff);font:inherit;font-size:12px;font-weight:800;white-space:nowrap;cursor:pointer;transition:background .16s ease,border-color .16s ease,opacity .16s ease}.glow-preset-save:hover:not(:disabled),.glow-preset-apply:hover{background:color-mix(in srgb,var(--accent-primary) 84%,var(--text-main))}.glow-preset-save:disabled{cursor:not-allowed;opacity:.5}.glow-presets-list{max-height:190px;overflow:auto;display:grid;gap:7px;padding-right:2px}.glow-presets-empty{display:grid;gap:3px;padding:13px;border:1px dashed var(--border);border-radius:10px;color:var(--text-muted);font-size:12px}.glow-presets-empty strong{color:var(--text-secondary)}.glow-preset-item{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:9px 10px;border:1px solid var(--border);border-radius:10px;background:var(--bg-card)}.glow-preset-info{display:grid;min-width:0;gap:3px}.glow-preset-info strong{overflow:hidden;color:var(--text-main);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.glow-preset-info span,.glow-presets-footer{color:var(--text-muted);font-size:11px}.glow-preset-actions{display:flex;flex:0 0 auto;align-items:center;gap:6px}.glow-preset-apply{min-height:32px;padding:0 10px;background:var(--bg-card-hover);color:var(--text-main)}.glow-preset-apply:hover{border-color:var(--accent-primary);background:var(--accent-surface)}.glow-preset-delete{display:grid;width:32px;height:32px;padding:7px;place-items:center;border:1px solid var(--border);border-radius:9px;background:transparent;color:var(--text-muted);cursor:pointer}.glow-preset-delete svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.glow-preset-delete:hover{border-color:var(--error);background:color-mix(in srgb,var(--error) 9%,transparent);color:var(--error)}.glow-settings-content .glow-preset-delete{width:38px;height:38px;border-radius:10px}.glow-presets-footer{margin-top:-4px}.glow-muted{color:var(--text-muted);font-size:12px}.glow-toast{border:1px solid transparent;border-radius:9px;padding:7px 9px;font-size:12px;font-weight:800}.glow-toast.ok{border-color:#2f8f5b73;color:#1e7b49;background:#2f8f5b24}.glow-toast.error{border-color:#c94a4a73;color:#ad3737;background:#c94a4a24}.glow-toast.info{border-color:#5077b373;color:#1d3366;background:#5077b31f}.user-css-box{border-top:1px solid color-mix(in srgb,var(--border) 75%,rgba(255,255,255,.6));padding-top:10px}.user-css-upload{justify-self:start;min-height:34px;padding:7px 11px;font-size:13px;cursor:pointer}.user-css-error{color:#a82d2d;font-size:12px;font-weight:700}.glow-panel .secondary,.glow-panel .primary{color:var(--glow-btn-fg);background:var(--glow-btn-bg);border-color:var(--glow-btn-border);font-weight:800;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.glow-panel .secondary:hover,.glow-panel .primary:hover{color:var(--glow-btn-fg-hover);background:var(--glow-btn-bg-hover);border-color:var(--glow-btn-border-hover);transform:translateY(-1px)}.glow-panel button:disabled,.glow-panel .secondary:disabled,.glow-panel .primary:disabled{opacity:.65;cursor:default}.glow-panel button:disabled:hover,.glow-panel .secondary:disabled:hover,.glow-panel .primary:disabled:hover{color:var(--glow-btn-fg);background:var(--glow-btn-bg);border-color:var(--glow-btn-border);transform:none}.main-area{padding:0 28px 28px;display:grid;gap:18px;min-width:0}.work-toast{position:sticky;top:12px;z-index:20;justify-self:stretch;border-radius:12px;padding:10px 12px;font-size:13px;font-weight:800;box-shadow:0 10px 24px #0f253f1f;animation:work-toast-pop .18s ease-out}.work-toast.error{border:1px solid rgba(201,74,74,.58);background:#c94a4aeb;color:#fff3f3}.work-toast.ok{border:1px solid rgba(47,143,91,.45);background:#2f8f5b33;color:#1e6f45}@keyframes work-toast-pop{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.main-area>*{min-width:0}.panel{background:var(--bg-card);border:1px solid color-mix(in srgb,var(--border) 64%,rgba(255,255,255,.7));border-radius:var(--panel-radius);box-shadow:var(--shadow-soft),inset 0 1px #ffffffc2;padding:20px;min-width:0}.page-loader{min-height:132px;border:1px solid color-mix(in srgb,var(--border) 78%,var(--accent-primary));border-radius:var(--card-radius, 14px);background:color-mix(in srgb,var(--bg-card) 94%,transparent);display:grid;place-items:center;gap:12px;padding:18px;color:var(--text-secondary);z-index:8;box-shadow:var(--shadow-soft, 0 8px 24px rgba(20, 40, 80, .08));animation:page-loader-enter .16s ease-out both}.page-loader.compact{min-height:78px;padding:12px}.route-loader-placeholder{min-height:48px;display:grid;place-items:center;align-content:center;gap:8px;color:var(--text-secondary);font-size:.82rem}.route-loader-progress{position:relative;display:block;width:min(220px,42%);height:3px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--accent-primary) 14%,var(--bg-card))}.route-loader-progress:after{position:absolute;inset:0 auto 0 0;width:36%;border-radius:inherit;background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary));content:"";animation:pl-progress-sweep 1.35s ease-in-out infinite}.page-loader-label{color:var(--text-secondary);font-size:.82rem;line-height:1.35;text-align:center}@keyframes page-loader-enter{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.page-loader.overlay{position:absolute;inset:0 0 auto;display:block;height:3px;min-height:0;overflow:hidden;padding:0;border:0;border-radius:999px;background:color-mix(in srgb,var(--accent-primary) 14%,var(--bg-card));box-shadow:none;pointer-events:none;animation:none}.history-content-shell,.rating-content-shell,.submission-route-shell,.submission-detail-shell,.submissions-inspector-content-shell,.submission-attempts-shell,.plag-results-body-shell,.plag-admin-table-shell,.lc-dashboard-shell,.lc-task-table-shell,.teacher-groups-rating-shell,.teacher-pack-table-shell,.submission-archive-main-shell{position:relative}.history-loading-skeleton{overflow:hidden;border-radius:8px}.history-loading-skeleton .table{width:100%;table-layout:fixed}.history-skeleton-line{display:block;width:78%;height:11px;border-radius:999px;background:color-mix(in srgb,var(--text-muted) 16%,transparent);animation:pl-skeleton-breathe 1.8s ease-in-out infinite}.history-skeleton-line.short{width:48%}.history-skeleton-line.medium{width:64%}.rating-content-shell{overflow-x:auto;-webkit-overflow-scrolling:touch}.page-loader-spinner{width:26px;height:26px;border-radius:50%;border:3px solid color-mix(in srgb,var(--accent-primary) 18%,transparent);border-top-color:var(--accent-secondary);animation:page-loader-spin .8s linear infinite}.page-loader-lines{display:grid;gap:7px;width:min(280px,80%);animation:page-loader-lines-breathe 1.8s ease-in-out infinite}.page-loader-lines span{height:8px;border-radius:999px;background:linear-gradient(100deg,color-mix(in srgb,var(--text-muted) 10%,transparent) 18%,color-mix(in srgb,var(--accent-primary) 22%,transparent),color-mix(in srgb,var(--text-muted) 10%,transparent) 66%);background-size:220% 100%;animation:pl-skeleton-shimmer 1.7s ease-in-out infinite}.page-loader-lines span:nth-child(2){width:76%}.page-loader-lines span:nth-child(3){width:58%}@keyframes page-loader-spin{to{transform:rotate(360deg)}}@keyframes page-loader-lines-breathe{0%,to{opacity:.72}50%{opacity:1}}.section-title{margin:0 0 14px;font-size:22px;font-weight:800;color:var(--accent-primary)}.history-title-row{display:flex;align-items:center;justify-content:center;margin-bottom:8px;position:relative}.history-title{text-align:center}.history-title-row .history-refresh-btn{position:absolute;right:0}.history-refresh-btn{width:36px;height:36px;border-radius:10px;border:1px solid var(--border);background:color-mix(in srgb,var(--bg-card) 86%,rgba(255,255,255,.75));color:var(--accent-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.history-refresh-btn:hover{transform:translateY(-1px);border-color:var(--accent-secondary);box-shadow:0 10px 22px #5077b33d}.history-refresh-btn:disabled{opacity:.7;cursor:default}.history-refresh-btn svg{width:18px;height:18px}.history-refresh-btn.spinning svg{animation:refresh-spin .8s linear infinite}.history-code-btn{min-width:68px;padding:7px 10px;font-size:13px;white-space:nowrap}.submission-number-link{border:0;background:transparent;color:#1d5fcc;text-decoration:underline;text-underline-offset:2px;font-weight:800;font-size:17px;letter-spacing:.2px;cursor:pointer;padding:0}.submission-number-link:disabled{opacity:.55;cursor:default}.submission-number-link[aria-disabled=true]{opacity:.55;cursor:default;text-decoration:none}.history-preview{margin-top:14px;border:1px solid var(--border);border-radius:12px;background:var(--bg-card-hover);padding:12px}.history-preview-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}.history-preview-task{font-weight:700}.history-preview-verdict{font-size:13px;color:var(--text-secondary)}.history-preview-reason{margin-bottom:10px;color:var(--text-secondary);font-size:14px}.history-preview-code{margin:0;border-radius:10px;background:#0d1117;color:#f0f6fc;padding:10px 12px;overflow:auto;max-height:340px}@keyframes refresh-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes greeting-glow-breath{0%,to{opacity:var(--greet-glow-weak-opacity)}50%{opacity:1}}@keyframes greeting-glow-dragon-primary{0%,40%,to{opacity:var(--greet-glow-weak-opacity)}20%,60%{opacity:0}}@keyframes greeting-glow-dragon-secondary{0%,40%,to{opacity:0}20%,60%{opacity:1}}@keyframes runner-slide{0%{transform:translate(-100%) skew(-18deg)}to{transform:translate(100%) skew(-18deg)}}@keyframes pulse-accepted{0%{box-shadow:0 0 #35ba671a}35%{box-shadow:0 0 0 3px #35ba6773,0 0 24px #35ba676b}to{box-shadow:none}}@keyframes pulse-verdict{0%{box-shadow:0 0 #dc65511a}35%{box-shadow:0 0 0 3px #dc65516b,0 0 20px #dc655159}to{box-shadow:none}}@keyframes pulse-rating{0%{box-shadow:0 0 #5077b31a}35%{box-shadow:0 0 0 3px #5077b373,0 0 20px #5077b359}to{box-shadow:none}}@keyframes greeting-path-line{0%{transform:translate3d(-160%,-30%,0) rotate(var(--fx-tilt));opacity:0}8%{opacity:.8}50%{transform:translate3d(20%,calc(-1 * var(--fx-drift)),0) rotate(calc(var(--fx-tilt) * -1));opacity:.9}92%{opacity:.75}to{transform:translate3d(160%,var(--fx-drift),0) rotate(var(--fx-tilt));opacity:0}}@keyframes greeting-path-orbit{0%{transform:translateZ(0) rotate(0)}25%{transform:translate3d(calc(var(--fx-drift) * .8),calc(var(--fx-drift) * -.5),0) rotate(90deg)}50%{transform:translate3d(0,calc(var(--fx-drift) * -1.2),0) rotate(180deg)}75%{transform:translate3d(calc(var(--fx-drift) * -.8),calc(var(--fx-drift) * -.4),0) rotate(270deg)}to{transform:translateZ(0) rotate(360deg)}}@keyframes greeting-path-lemniscate{0%{transform:translateZ(0) rotate(var(--fx-tilt))}12.5%{transform:translate3d(calc(var(--fx-drift) * .7),calc(var(--fx-drift) * -.55),0) rotate(calc(var(--fx-tilt) * -1))}25%{transform:translate3d(var(--fx-drift),0,0) rotate(var(--fx-tilt))}37.5%{transform:translate3d(calc(var(--fx-drift) * .7),calc(var(--fx-drift) * .55),0) rotate(calc(var(--fx-tilt) * -1))}50%{transform:translateZ(0) rotate(var(--fx-tilt))}62.5%{transform:translate3d(calc(var(--fx-drift) * -.7),calc(var(--fx-drift) * -.55),0) rotate(calc(var(--fx-tilt) * -1))}75%{transform:translate3d(calc(var(--fx-drift) * -1),0,0) rotate(var(--fx-tilt))}87.5%{transform:translate3d(calc(var(--fx-drift) * -.7),calc(var(--fx-drift) * .55),0) rotate(calc(var(--fx-tilt) * -1))}to{transform:translateZ(0) rotate(var(--fx-tilt))}}@keyframes greeting-path-torus{0%{transform:translateZ(0) scale(.9)}20%{transform:translate3d(calc(var(--fx-drift) * .7),calc(var(--fx-drift) * -.25),0) scale(1)}40%{transform:translate3d(calc(var(--fx-drift) * .1),calc(var(--fx-drift) * -.7),0) scale(1.05)}60%{transform:translate3d(calc(var(--fx-drift) * -.7),calc(var(--fx-drift) * -.25),0) scale(1)}80%{transform:translate3d(calc(var(--fx-drift) * -.1),calc(var(--fx-drift) * .45),0) scale(.92)}to{transform:translateZ(0) scale(.9)}}@keyframes greeting-path-wave{0%{transform:translate3d(-120%,0,0) rotate(var(--fx-tilt));opacity:0}12%{opacity:.72}50%{transform:translate3d(0,calc(var(--fx-drift) * -.72),0) rotate(calc(var(--fx-tilt) * -1));opacity:.9}88%{opacity:.72}to{transform:translate3d(120%,0,0) rotate(var(--fx-tilt));opacity:0}}@keyframes greeting-path-spiral{0%{transform:translateZ(0) scale(.72) rotate(0)}25%{transform:translate3d(calc(var(--fx-drift) * .34),calc(var(--fx-drift) * -.4),0) scale(.92) rotate(90deg)}50%{transform:translate3d(calc(var(--fx-drift) * .68),0,0) scale(1.08) rotate(180deg)}75%{transform:translate3d(calc(var(--fx-drift) * .34),calc(var(--fx-drift) * .4),0) scale(.92) rotate(270deg)}to{transform:translateZ(0) scale(.72) rotate(360deg)}}@keyframes greeting-path-bounce{0%{transform:translate3d(calc(var(--fx-drift) * -.8),calc(var(--fx-drift) * -.9),0) rotate(var(--fx-tilt));opacity:.7}40%{transform:translate3d(calc(var(--fx-drift) * -.16),calc(var(--fx-drift) * .8),0) rotate(calc(var(--fx-tilt) * -1));opacity:.92}62%{transform:translate3d(calc(var(--fx-drift) * .34),calc(var(--fx-drift) * -.24),0) rotate(var(--fx-tilt));opacity:.88}to{transform:translate3d(calc(var(--fx-drift) * .94),calc(var(--fx-drift) * .74),0) rotate(calc(var(--fx-tilt) * -1));opacity:.68}}.submissions-inspector{display:grid;gap:12px}.submissions-inspector>.panel{padding:14px}.submissions-inspector-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.submissions-inspector-title-row{display:flex;align-items:center;gap:14px;min-width:260px}.submissions-inspector-title-row .section-title{margin-bottom:0}.submission-mode-switch{display:inline-flex;align-items:center;padding:3px;gap:3px;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--bg-card) 82%,transparent)}.submission-mode-switch button{height:32px;border:0;border-radius:6px;padding:0 12px;color:var(--text-muted);background:transparent;cursor:pointer}.submission-mode-switch button.active{color:var(--text-main);background:var(--bg-card-hover);box-shadow:inset 0 0 0 1px var(--border)}.submission-id-search{display:flex;align-items:center;gap:12px}.submission-id-search .input{width:180px}.submission-id-search .secondary{min-height:38px}.submissions-inspector-grid{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(320px,1.1fr) minmax(280px,1fr);gap:12px;align-items:start}.submissions-person-panel,.submissions-picker-panel,.submissions-attempts-panel{display:grid;gap:10px}.submission-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:30px;color:var(--text-main);font-weight:800}.submission-panel-head span:last-child{color:var(--text-muted);font-size:13px;font-weight:700}.submission-person-search{width:100%;min-height:38px}.submission-person-list,.submission-task-list{display:grid;gap:6px;max-height:420px;overflow:auto;padding-right:2px}.submission-person-btn,.submission-task-btn,.submission-attempt-btn,.submission-pack-btn{width:100%;border:1px solid var(--border);border-radius:8px;background:var(--bg-card-hover);color:var(--text-main);cursor:pointer;text-align:left}.submission-person-btn{display:grid;gap:3px;padding:10px 11px}.submission-person-btn.active,.submission-task-btn.active,.submission-attempt-btn.active,.submission-pack-btn.active{border-color:var(--accent-secondary);background:color-mix(in srgb,var(--accent-secondary) 14%,var(--bg-card-hover))}.submission-person-name,.submission-task-main,.submission-attempt-id{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800}.submission-role-tag,.submission-baseline-tag{display:inline-flex;align-items:center;width:fit-content;margin-left:7px;padding:2px 7px;border:1px solid color-mix(in srgb,var(--accent-secondary) 45%,transparent);border-radius:999px;color:var(--accent-secondary);background:color-mix(in srgb,var(--accent-secondary) 12%,transparent);font-size:10px;font-weight:800;line-height:1.4;vertical-align:middle;white-space:nowrap}.submission-role-tag.lecturer{color:#7c3aed;border-color:color-mix(in srgb,#7c3aed 40%,transparent);background:color-mix(in srgb,#7c3aed 10%,transparent)}.submission-role-tag.resource_manager{color:#b45309;border-color:color-mix(in srgb,#b45309 40%,transparent);background:color-mix(in srgb,#b45309 10%,transparent)}.submission-baseline-tag{color:#0369a1;border-color:color-mix(in srgb,#0284c7 38%,transparent);background:color-mix(in srgb,#0ea5e9 12%,transparent)}.submission-baseline-tag.primary{color:#a16207;border-color:color-mix(in srgb,#eab308 48%,transparent);background:color-mix(in srgb,#facc15 16%,transparent)}.history-baseline-row>td{background:color-mix(in srgb,#0ea5e9 5%,transparent)}.submission-person-meta,.submission-task-meta,.submission-attempt-meta{color:var(--text-muted);font-size:12px}.submission-pack-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:6px}.submission-pack-btn{display:flex;justify-content:space-between;align-items:center;min-height:36px;padding:8px 10px;font-weight:800}.submission-pack-btn span:last-child{color:var(--text-muted);font-size:12px}.submission-task-btn{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:10px 11px}.submission-task-meta{grid-column:1 / -1}.submission-status-dot{align-self:start;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:800;color:var(--text-main);background:color-mix(in srgb,var(--text-muted) 14%,transparent)}.submission-status-dot.scored{color:#167544;background:#22c55e29}.submission-status-dot.failed{color:#9f1239;background:#f43f5e24}.submission-status-dot.pending{color:#92400e;background:#f59e0b29}.submission-attempt-btn{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 10px;padding:10px 11px}.submission-attempt-date{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);font-size:12px;text-align:right}.submission-attempt-status,.submission-attempt-meta,.submission-attempt-tags{grid-column:1 / -1}.submission-attempt-tags{display:flex;flex-wrap:wrap;gap:4px}.submission-attempt-tags .submission-role-tag,.submission-attempt-tags .submission-baseline-tag{margin-left:0}.submission-list-note,.submissions-inspector-loading,.submissions-inspector-error{color:var(--text-muted)}.submissions-inspector-error{color:var(--error)}@media (max-width: 920px){.submissions-inspector-head,.submissions-inspector-title-row,.submission-id-search{flex-direction:column;align-items:stretch}.submissions-inspector-grid{grid-template-columns:1fr}.submission-id-search .input{width:100%}.submission-person-list,.submission-task-list{max-height:300px}}@media (max-width: 900px){.content-shell{width:calc(100% - 72px);max-width:calc(100% - 72px);box-sizing:border-box}.header{width:100%;max-width:100%;box-sizing:border-box;padding-inline:12px}.header-greeting-shell,.header-greeting,.greeting-card{min-width:0;max-width:100%;box-sizing:border-box}.header-greeting,.header-greeting-shell{white-space:normal;overflow-wrap:anywhere}.header-right{width:100%;max-width:100%;box-sizing:border-box;flex-wrap:wrap}.header-right>button,.header-right>.glow-toggle{flex:0 0 auto}.main-area,.panel,.card,.packs-shell,.pack-list,.submit-panel{width:100%;max-width:100%;box-sizing:border-box}.main-area{padding-inline:12px;overflow-x:hidden}.pack-list{overflow-x:hidden}.pack-button,.submit-select,.submit-actions>button,.submit-textarea,.submit-comment{min-width:0;max-width:100%;box-sizing:border-box}.submit-selectors,.submit-actions{width:100%;max-width:100%}}@media (max-width: 560px){.history-title-row{flex-wrap:wrap;gap:8px}.rating-pagination-row{flex-wrap:wrap;justify-content:center;row-gap:8px}.rating-pagination-row .rating-page-btn,.rating-pagination-row .sort-toggle-btn,.rating-pagination-row .find-me-btn,.rating-pagination-row .submit-select{flex:0 0 auto}.rating-page-meta{flex:0 0 100%;order:10;text-align:center}.history-content-shell .table{display:block;overflow-x:visible;font-size:13px}.history-content-shell .table thead{display:none}.history-content-shell .table tbody{display:block;width:100%}.history-content-shell .table tr{display:block;width:100%;border:1px solid var(--border);border-radius:10px;margin-bottom:10px;padding:8px 12px;background:var(--bg-card)}.history-content-shell .table tr.history-task-separator{border:none;background:transparent;padding:10px 2px 4px;margin-bottom:2px}.history-content-shell .table td{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:5px 0;border-top:none;text-align:right}.history-content-shell .table td:before{content:attr(data-label);flex:none;color:var(--text-secondary);font-weight:700;font-size:11px;text-align:left}.history-content-shell .table td[data-label=""]:before{content:none}.history-content-shell .table td[colspan]{display:block;text-align:left;padding:0}.history-content-shell .table td[colspan]:before{content:none}}.pack-layout{display:grid;gap:14px}.packs-shell{position:relative;display:grid;grid-template-columns:286px 1fr;gap:16px;min-height:0}.packs-shell-compact{display:block}.packs-shell-compact .pack-list{display:flex;gap:10px;max-height:none;overflow-x:auto;padding:2px 2px 12px}.packs-shell-compact .pack-button{flex:0 1 240px;min-width:180px}.packs-shell-compact .card-grid{max-height:calc(100vh - 280px)}.packs-shell-empty{display:block}.pack-content{display:grid;align-content:start;gap:12px;min-width:0}.context-empty-state{min-height:190px;display:grid;place-content:center;justify-items:center;gap:8px;padding:28px;border:1px dashed var(--border);border-radius:var(--card-radius);color:var(--text-secondary);text-align:center}.context-empty-state strong{color:var(--text-main);font-size:16px}.context-empty-state span{max-width:420px;font-size:13px}.context-empty-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--bg-card-hover);color:var(--accent-secondary);font-size:22px}.lc-year-pipeline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.lc-year-pipeline-step{display:grid;gap:5px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-card-hover);color:var(--text-muted);font-size:13px}.lc-year-pipeline-step b{color:var(--text-main);font-size:14px}.lc-next-pack-hint{margin-top:12px}.lc-overview-dataset-actions{margin:10px 0 16px}@media (max-width: 760px){.lc-year-pipeline{grid-template-columns:1fr}}.pack-list{display:grid;gap:10px;align-content:start;max-height:calc(100vh - 180px);overflow-y:auto;scrollbar-gutter:stable;padding:4px}.pack-button{border:1px solid var(--border);background:var(--bg-card);border-radius:12px;text-align:left;padding:12px;cursor:pointer;display:grid;gap:3px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease}.pack-button:hover{transform:translateY(-1px);box-shadow:var(--shadow-soft);background:var(--bg-card-hover)}.pack-button.active{border-color:var(--accent-secondary);box-shadow:0 0 0 3px #5077b333}.pack-title{color:var(--text-main);font-weight:800;font-size:16px}.pack-meta{color:var(--text-secondary);font-size:13px}.active-pack-deadline{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 10px;padding:10px 13px;border:1px solid color-mix(in srgb,var(--accent-primary) 22%,var(--border));border-radius:12px;background:color-mix(in srgb,var(--accent-primary) 5%,var(--bg-card));color:var(--text-secondary);font-size:13px}.active-pack-deadline-label{color:var(--text-muted);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.active-pack-deadline strong{color:var(--text-main)}.active-pack-deadline.late{border-color:color-mix(in srgb,var(--warning) 38%,var(--border))}.active-pack-deadline.late strong{color:var(--warning)}.active-pack-deadline.fail{border-color:color-mix(in srgb,var(--error) 38%,var(--border))}.active-pack-deadline.fail strong{color:var(--error)}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;align-content:start;max-height:calc(100vh - 180px);overflow-y:auto;scrollbar-gutter:stable;padding:2px}.card{border:1px solid var(--border);border-radius:var(--card-radius);background:var(--bg-card);padding:16px;position:relative;transition:transform .25s ease,box-shadow .25s ease,background .25s ease}.card:hover{transform:translateY(-2px);background:var(--bg-card-hover);box-shadow:var(--shadow-hover)}.card.selected{border-color:var(--accent-secondary);box-shadow:0 0 0 3px #5077b333}.task-working-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:4px 10px;margin-bottom:8px;border:1px solid var(--border);font-size:12px;font-weight:900;letter-spacing:.02em;white-space:normal;text-align:center;max-width:100%}.task-working-badge.ok{border-color:#2f8f5b6b;color:#1e7b49;background:#2f8f5b21}.task-working-badge.late{border-color:#c99e2e80;color:#93720f;background:#c99e2e24}.task-working-badge.fail{border-color:#c94a4a6b;color:#ad3737;background:#c94a4a1f}.primary,.secondary,.ghost{padding:13px 17px;border-radius:12px;cursor:pointer;transition:.2s ease;font-weight:800;font-size:15px;color:var(--btn-fg);border:1px solid var(--btn-border)}.primary{background:linear-gradient(145deg,var(--btn-bg),color-mix(in srgb,var(--btn-bg) 74%,#ffffff 26%));box-shadow:0 10px 20px color-mix(in srgb,var(--btn-bg) 26%,transparent)}.secondary{background:color-mix(in srgb,var(--btn-bg) 84%,transparent);border-color:color-mix(in srgb,var(--btn-border) 84%,transparent)}.ghost{background:color-mix(in srgb,var(--btn-bg) 74%,transparent);border-color:color-mix(in srgb,var(--btn-border) 80%,transparent)}.primary:hover{background:linear-gradient(145deg,var(--btn-bg-hover),color-mix(in srgb,var(--btn-bg-hover) 74%,#ffffff 26%));border-color:var(--btn-border-hover)}.secondary:hover{background:color-mix(in srgb,var(--btn-bg-hover) 84%,transparent);border-color:color-mix(in srgb,var(--btn-border-hover) 84%,transparent)}.ghost:hover{background:color-mix(in srgb,var(--btn-bg-hover) 74%,transparent);border-color:color-mix(in srgb,var(--btn-border-hover) 80%,transparent)}.primary:hover,.secondary:hover,.ghost:hover{transform:translateY(-1px)}.table{width:100%;border-collapse:collapse;font-size:14px}@media (max-width: 560px){.table{font-size:13px}.table-header-row{flex-wrap:wrap}}.table th{text-align:left;padding:12px 10px;color:var(--text-secondary);font-weight:700;background:var(--bg-panel)}.table td{padding:11px 10px;border-top:1px solid var(--border);transition:background-color .18s ease}.table tbody tr:nth-child(odd) td{background:#ffffff47}.table tbody tr:hover td{background:#aabfdc33}.table-header-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.table-header-row-tight{justify-content:flex-end;margin-bottom:8px}.find-me-btn{min-height:36px;padding:8px 12px;font-size:13px;color:#f4f8ff}.table-actions-row{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.sort-toggle-btn{min-height:36px;padding:8px 12px;font-size:13px;color:#f4f8ff}.rating-pagination-row{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-bottom:10px}.rating-page-btn{min-height:34px;padding:7px 10px;font-size:13px;color:#f4f8ff}.rating-page-meta{color:var(--text-secondary);font-size:13px;font-weight:700}.table-search-input{width:min(240px,100%);min-height:36px;padding:8px 10px;font-size:13px}.table-search-wrap{position:relative;display:inline-flex;align-items:center}.table-search-wrap .table-search-input{padding-right:34px}.table-search-clear{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:22px;height:22px;border:1px solid var(--border);border-radius:7px;background:color-mix(in srgb,var(--bg-card-hover) 82%,#ffffff);color:var(--text-secondary);font-size:14px;line-height:1;font-weight:900;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.table-search-clear:hover{border-color:color-mix(in srgb,var(--accent-secondary) 46%,var(--border));color:var(--text-main)}.table th.history-col-date,.table td.history-col-date{text-align:center;white-space:nowrap}.history-task-separator td{border-top:none;padding:12px 0 8px;background:transparent!important}.history-task-separator-inner{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:10px;border:1px solid color-mix(in srgb,var(--accent-secondary) 38%,var(--border));background:color-mix(in srgb,var(--bg-card-hover) 70%,#ffffff)}.history-task-code{font-weight:800;color:var(--text-main)}.history-task-title{font-weight:700;color:var(--text-secondary)}.history-attempt-marker{font-weight:700;color:var(--text-secondary);white-space:nowrap}.history-attempt-blank{color:var(--text-muted)}.history-task-block+.history-task-block .history-task-separator td{padding-top:16px}.corner-error-toast{position:fixed;right:24px;bottom:24px;z-index:9999;border:1px solid rgba(201,74,74,.58);background:#c94a4aeb;color:#fff3f3;border-radius:12px;padding:10px 12px;font-size:13px;font-weight:700;box-shadow:0 10px 24px #781e1e59;pointer-events:none;max-width:min(360px,calc(100vw - 48px))}.corner-error-toast__hint{margin-top:6px;font-size:12px;font-weight:500;line-height:1.35;opacity:.88}.inline-error-banner{margin-bottom:10px;border:1px solid rgba(201,74,74,.58);background:#c94a4a29;color:#a42b2b;border-radius:10px;padding:8px 10px;font-size:13px;font-weight:700}.logs-panel{height:100%;min-height:0;display:grid;grid-template-rows:auto auto auto auto auto minmax(0,1fr);gap:12px}.logs-body{position:relative;margin-top:12px;min-height:0;display:grid;grid-template-rows:auto minmax(55vh,1fr);gap:16px}.logs-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.logs-source-tabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.logs-source-tab{min-height:34px;padding:6px 12px;color:#f4f8ff}.logs-source-tab.active{border-color:var(--accent-secondary);background:color-mix(in srgb,var(--accent-secondary) 24%,#1b1f28)}.logs-select{min-width:240px}.logs-select.logs-mini{min-width:150px}.logs-search-input{min-width:220px;max-width:320px}.logs-refresh-btn{min-height:36px;color:#f4f8ff}.logs-meta{color:var(--text-secondary);font-size:12px;font-weight:700}.logs-console-wrap{border:1px solid color-mix(in srgb,var(--border) 76%,rgba(255,255,255,.4));border-radius:12px;background:#0d1117;padding:12px;min-height:55vh;overflow:auto;height:100%}.logs-console{margin:0;min-height:100%;color:#c9d1d9;font-size:13px;line-height:1.5;font-family:JetBrains Mono,Roboto Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;white-space:pre}.logs-line{display:block;white-space:pre}.logs-line.match{background:#2f6aff3d;border-radius:6px}.logs-line.lvl-error{color:#ff6b6b}.logs-line.lvl-warning{color:#e0a54a}.logs-line.lvl-debug{color:#8aa0b8}.logs-line.lvl-info{color:inherit}.logs-levels{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:6px 0 2px;font-size:12px}.logs-levels-label{color:var(--text-muted, #6b7890)}.logs-level-toggle{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border:1px solid var(--border, #cbd4e1);border-radius:999px;cursor:pointer;opacity:.55;-webkit-user-select:none;user-select:none}.logs-level-toggle.on{opacity:1}.logs-level-toggle.lvl-error.on{border-color:#ff6b6b;color:#ff6b6b}.logs-level-toggle.lvl-warning.on{border-color:#e0a54a;color:#e0a54a}.logs-level-toggle.lvl-debug.on{border-color:#8aa0b8;color:#8aa0b8}.logs-level-toggle.lvl-info.on{border-color:var(--accent-secondary, #5077b3);color:var(--accent-secondary, #5077b3)}.found-self-row td{position:relative;transition:box-shadow .24s ease,border-radius .24s ease;box-shadow:inset 0 2px color-mix(in srgb,var(--find-ring, var(--accent-secondary)) 72%,transparent),inset 0 -2px color-mix(in srgb,var(--find-ring, var(--accent-secondary)) 72%,transparent);background-color:color-mix(in srgb,var(--find-ring, var(--accent-secondary)) 10%,rgba(255,255,255,.92));animation:found-row-pulse 1.7s ease-in-out 2}.found-self-row td:first-child{box-shadow:inset 2px 2px color-mix(in srgb,var(--find-ring, var(--accent-secondary)) 72%,transparent),inset 0 -2px color-mix(in srgb,var(--find-ring, var(--accent-secondary)) 72%,transparent);border-top-left-radius:10px;border-bottom-left-radius:10px}.found-self-row td:last-child{box-shadow:inset -2px 2px color-mix(in srgb,var(--find-ring, var(--accent-secondary)) 72%,transparent),inset 0 -2px color-mix(in srgb,var(--find-ring, var(--accent-secondary)) 72%,transparent);border-top-right-radius:10px;border-bottom-right-radius:10px}@keyframes found-row-pulse{0%{background-color:color-mix(in srgb,var(--find-ring, var(--accent-secondary)) 6%,rgba(255,255,255,.94))}50%{background-color:color-mix(in srgb,var(--find-ring, var(--accent-secondary)) 16%,rgba(255,255,255,.9))}to{background-color:color-mix(in srgb,var(--find-ring, var(--accent-secondary)) 10%,rgba(255,255,255,.92))}}.status{display:inline-block;padding:6px 10px;border-radius:999px;font-size:12px}.status.scored{background:#e6f5ed;color:#1e6f45}.status.pending{background:#fff2de;color:#b96a08}.status.failed{background:#fdeaea;color:#c94a4a}.verdict-badge{display:inline-flex;align-items:center;gap:7px;position:relative;overflow:hidden;padding:5px 10px;border-radius:999px;border:1px solid transparent;background:#ffffff80;line-height:1}.verdict-icon{position:relative;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center}.verdict-icon svg{width:18px;height:18px}.verdict-emoji{font-size:16px;line-height:1}.verdict-text{font-weight:800;letter-spacing:.1px}.verdict-testing{display:inline-flex;align-items:baseline;min-width:10ch}.verdict-testing-dots{display:inline-flex;width:3ch;justify-content:flex-start}.verdict-testing-dot{opacity:.2;animation:verdict-testing-dot 1.2s ease-in-out infinite}.verdict-testing-dot.dot-1{animation-delay:0s}.verdict-testing-dot.dot-2{animation-delay:.2s}.verdict-testing-dot.dot-3{animation-delay:.4s}.verdict-badge{--verdict-color: var(--verdict-unknown);border-color:color-mix(in srgb,var(--verdict-color) 62%,var(--bg-card));background:color-mix(in srgb,var(--verdict-color) 14%,var(--bg-card))}.verdict-badge .verdict-icon,.verdict-badge .verdict-text{color:var(--verdict-color)}.verdict-badge.accepted{--verdict-color: var(--verdict-accepted)}.verdict-badge.not-tested{--verdict-color: var(--verdict-testing)}.verdict-badge.inferencing{--verdict-color: var(--verdict-inferencing)}.verdict-badge.training{--verdict-color: var(--verdict-training)}.verdict-badge.wrong-answer{--verdict-color: var(--verdict-wrong)}.verdict-badge.runtime-error{--verdict-color: var(--verdict-runtime)}.verdict-badge.time-limit{--verdict-color: var(--verdict-time)}.verdict-badge.memory-limit{--verdict-color: var(--verdict-memory)}.verdict-badge.build-error{--verdict-color: var(--verdict-build)}.verdict-badge.archive-rejected{--verdict-color: var(--verdict-archive)}.verdict-badge.jury-error{--verdict-color: var(--verdict-jury)}.verdict-badge.presentation-error{--verdict-color: var(--verdict-presentation)}.verdict-badge.hacked{--verdict-color: var(--verdict-hacked)}.verdict-badge.cancelled{--verdict-color: var(--verdict-cancelled)}.verdict-badge.precompiler-failure{--verdict-color: var(--verdict-precompiler)}.verdict-badge.accepted{background:linear-gradient(135deg,color-mix(in srgb,var(--verdict-color) 12%,var(--bg-card)),color-mix(in srgb,var(--verdict-color) 24%,var(--bg-card)));box-shadow:0 8px 20px color-mix(in srgb,var(--verdict-color) 20%,transparent);animation:verdict-success-glow 1.8s ease-in-out 1}.verdict-badge.accepted:after{content:"";position:absolute;top:-130%;left:-38%;width:30%;height:340%;transform:rotate(20deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.72),transparent);animation:verdict-success-shine 1.8s ease-in-out 1}.error-codes-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.error-code-row{--error-code-accent: var(--accent-primary);display:grid;grid-template-columns:28px minmax(96px,130px) minmax(180px,260px) minmax(0,1fr);align-items:center;gap:12px;min-width:0;padding:12px 14px;border:1px solid var(--border);border-left:3px solid var(--error-code-accent);border-radius:10px;background:var(--bg-card);color:var(--text-main)}.error-code-icon{width:28px;height:28px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;color:color-mix(in srgb,var(--error-code-accent) 70%,var(--text-main));background:color-mix(in srgb,var(--error-code-accent) 14%,var(--bg-card))}.error-code-icon svg{width:18px;height:18px}.error-code-number{font-size:12px;font-weight:700;color:var(--text-secondary)}.error-code-title{font-size:14px;font-weight:700;color:var(--text-main)}.error-code-text{margin:0;color:var(--text-secondary);font-size:13px;line-height:1.5}.error-code-copy{min-width:0}.error-code-quote{margin:5px 0 0;color:color-mix(in srgb,var(--error-code-accent) 78%,var(--text-secondary));font-size:12px;font-style:italic;line-height:1.4}.error-code-quote cite{display:block;margin-top:2px;color:var(--text-secondary);font-size:11px;font-style:normal}.error-code-row.accepted{--error-code-accent: var(--verdict-accepted)}.error-code-row.testing{--error-code-accent: var(--verdict-testing)}.error-code-row.inferencing{--error-code-accent: var(--verdict-inferencing)}.error-code-row.training{--error-code-accent: var(--verdict-training)}.error-code-row.wrong{--error-code-accent: var(--verdict-wrong)}.error-code-row.runtime{--error-code-accent: var(--verdict-runtime)}.error-code-row.time{--error-code-accent: var(--verdict-time)}.error-code-row.memory{--error-code-accent: var(--verdict-memory)}.error-code-row.build{--error-code-accent: var(--verdict-build)}.error-code-row.archive{--error-code-accent: var(--verdict-archive)}.error-code-row.jury{--error-code-accent: var(--verdict-jury)}.error-code-row.presentation{--error-code-accent: var(--verdict-presentation)}.error-code-row.hacked{--error-code-accent: var(--verdict-hacked)}.error-code-row.cancelled{--error-code-accent: var(--verdict-cancelled)}.error-code-row.precompiler{--error-code-accent: var(--verdict-precompiler)}@media (max-width: 900px){.error-code-row{grid-template-columns:28px minmax(80px,110px) minmax(0,1fr)}.error-code-text,.error-code-copy{grid-column:3}}@media (max-width: 600px){.error-code-row{grid-template-columns:28px minmax(0,1fr);gap:4px 10px}.error-code-icon{grid-row:1 / 3}.error-code-number,.error-code-title,.error-code-copy{grid-column:2}}@keyframes verdict-testing-dot{0%{opacity:.2}35%{opacity:1}to{opacity:.2}}@keyframes verdict-success-glow{0%{border-color:color-mix(in srgb,var(--verdict-color) 62%,var(--bg-card));box-shadow:0 8px 20px color-mix(in srgb,var(--verdict-color) 18%,transparent)}50%{border-color:var(--verdict-color);box-shadow:0 11px 26px color-mix(in srgb,var(--verdict-color) 34%,transparent),0 0 0 2px color-mix(in srgb,var(--verdict-color) 18%,transparent)}to{border-color:color-mix(in srgb,var(--verdict-color) 62%,var(--bg-card));box-shadow:0 8px 20px color-mix(in srgb,var(--verdict-color) 18%,transparent)}}@keyframes verdict-success-shine{0%{left:-38%;opacity:0}18%{opacity:.9}42%{opacity:0}to{left:122%;opacity:0}}.leaderboard-baseline-row{--leaderboard-baseline-fill: rgba(201, 158, 46, .1)}.table tbody tr.leaderboard-baseline-row td{background:var(--leaderboard-baseline-fill)}.table tbody tr.leaderboard-baseline-row td:first-child{box-shadow:inset 3px 0 var(--accent-secondary)}.table tbody tr.leaderboard-baseline-row:hover td{background:#c99e2e2e}.leaderboard-baseline-row .chip{font-weight:700}.leaderboard-baseline-row .cup{color:var(--accent-secondary)}.leaderboard-baseline-tag{display:inline-flex;margin-left:8px;padding:2px 7px;border-radius:999px;background:#c99e2e29;color:var(--text-secondary);font-size:11px;font-weight:600}.leaderboard-baselines{display:grid;gap:10px;margin-bottom:14px}.leaderboard-baselines-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;color:var(--text-secondary);font-size:13px}.leaderboard-baselines-head strong{color:var(--text-main);font-size:14px}.leaderboard-baselines-head .ghost{margin-left:auto}.leaderboard-baselines-list{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 6px}.leaderboard-baseline-card{display:grid;gap:3px;min-width:150px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--bg-panel);color:var(--text-main);text-align:left;cursor:pointer}.leaderboard-baseline-card:hover,.leaderboard-baseline-card.active{border-color:var(--accent-secondary);background:#c99e2e1a}.leaderboard-baseline-card-name{overflow:hidden;color:var(--text-secondary);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.leaderboard-baseline-card-count{color:var(--text-secondary);font-size:12px}.chip{display:inline-flex;align-items:center;gap:8px;font-size:12px;border-radius:999px;padding:6px 10px;border:1px solid var(--border);background:var(--bg-panel);color:var(--text-main)}.chip .cup{width:14px;height:14px;display:inline-flex;color:#c6922d}.avatar-badge{border-radius:50%;object-fit:cover;flex-shrink:0;background:var(--bg-panel);border:1px solid var(--border)}.avatar-badge-fallback{display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--text-muted, #888)}.avatar-upload{display:flex;flex-direction:column;gap:6px;width:100%}.glow-profile-tab{display:grid;gap:16px;padding:14px;border:1px solid var(--border);border-radius:13px;background:color-mix(in srgb,var(--bg-card) 76%,var(--bg-card-hover))}.glow-profile-intro{display:grid;gap:4px}.glow-profile-intro strong{color:var(--text-main);font-size:14px}.glow-profile-intro span,.avatar-profile-hint,.avatar-profile-file{color:var(--text-muted);font-size:12px;line-height:1.45}.avatar-profile-row{display:flex;align-items:center;gap:14px;min-width:0}.avatar-profile-preview{display:grid;flex:0 0 76px;width:76px;height:76px;overflow:hidden;place-items:center;border:1px solid var(--border);border-radius:50%;background:var(--bg-card);color:var(--text-muted);font-size:22px;font-weight:800}.avatar-profile-preview img{width:100%;height:100%;object-fit:cover}.avatar-profile-controls{display:grid;min-width:0;flex:1;gap:7px}.avatar-profile-actions{display:flex;flex-wrap:wrap;gap:7px}.avatar-upload-pick-btn,.avatar-upload-btn,.avatar-upload-remove-btn{min-height:34px;padding:6px 10px;font-size:12px}.avatar-profile-file{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.avatar-upload-row{display:flex;align-items:center;gap:10px}.avatar-upload-input{display:none}.avatar-upload-preview-btn{flex:none;width:40px;height:40px;border-radius:50%;border:1px solid var(--border);background:var(--bg-card);padding:0;cursor:pointer;overflow:hidden;display:flex;align-items:center;justify-content:center;transition:border-color .16s ease}.avatar-upload-preview-btn:hover{border-color:var(--accent-secondary)}.avatar-upload-preview{width:100%;height:100%;object-fit:cover;border-radius:50%}.avatar-upload-preview-placeholder{font-size:18px;font-weight:700;color:var(--text-muted);line-height:1}.avatar-upload-controls{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1 1 auto}.avatar-upload-pick-btn{min-height:0;padding:6px 10px;font-size:12px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avatar-upload-btn{min-height:0;padding:6px 10px;font-size:12px}.avatar-upload-error{font-size:12px;color:var(--error)}.avatar-upload-success{font-size:12px;color:var(--success)}.task-pdf-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid var(--border);background:var(--bg-card-hover);color:var(--text-main);font-weight:700;font-size:12px;text-decoration:none;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.task-actions-grid{margin-top:10px;display:grid;grid-template-columns:repeat(2,minmax(74px,1fr));gap:8px;max-width:220px}.task-actions-grid .task-pdf-link{width:100%}.task-pdf-link:hover{transform:translateY(-1px);border-color:var(--accent-secondary);box-shadow:0 6px 14px #5077b329}.task-pdf-link-unavailable{color:var(--text-muted);background:transparent;border-style:dashed;cursor:not-allowed;opacity:.7}.task-pdf-link-unavailable:hover{transform:none;border-color:var(--border);box-shadow:none}.task-pdf-link.row-link-disabled{pointer-events:auto;color:var(--text-muted);background:transparent;border-style:dashed;cursor:not-allowed;opacity:.7}.task-pdf-link.row-link-disabled:hover{transform:none;border-color:var(--border);box-shadow:none}.task-pdf-ico{width:14px;height:14px;display:inline-flex}.pack-status-grid{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}.pack-status-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 10px;border:1px solid var(--border);font-size:12px;font-weight:700;letter-spacing:.02em}.pack-status-pill.ok{border-color:#2f8f5b6b;color:#1e7b49;background:#2f8f5b21}.pack-status-pill.fail{border-color:#c94a4a6b;color:#ad3737;background:#c94a4a1f}.pack-status-pill.cheated{border-color:#b0202080;color:#b02020;background:#b020201a}.card.card-cheated{border-color:#b02020a6;background:#c94a4a17;box-shadow:inset 3px 0 #b02020}.task-note-view{margin-top:9px;border:1px dashed var(--border);border-radius:10px;background:#ffffff61;color:var(--text-secondary);font-size:12px;line-height:1.25;padding:8px 10px;white-space:pre-wrap}.task-viewer{display:grid;grid-template-columns:1fr;gap:12px}.code-box{border:1px solid var(--border);border-radius:var(--card-radius);background:#0d1117;color:#f0f6fc;padding:14px;overflow:auto;box-shadow:var(--shadow-soft)}.highlight-title{color:var(--text-secondary);margin:0 0 6px;font-size:13px}.flex-row{display:flex;gap:12px;flex-wrap:wrap}.rating-pack-select{width:min(50vw,720px);max-width:100%;min-width:min(360px,100%);flex:0 1 min(50vw,720px)}@media (max-width: 600px){.rating-pack-select{width:100%;min-width:0;flex-basis:100%}}.admin-upload-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:14px;align-items:start}.admin-upload-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.admin-panel-sections{display:grid;gap:10px}.admin-panel-section{border:1px solid var(--border);border-radius:8px;background:var(--bg-card);overflow:hidden}.admin-panel-section-head{min-height:50px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;background:color-mix(in srgb,var(--bg-card-hover) 82%,#ffffff 18%);border-bottom:1px solid transparent}.admin-panel-section.open .admin-panel-section-head{border-bottom-color:var(--border)}.admin-panel-section-toggle{min-height:34px;border:0;background:transparent;color:var(--text-main);display:inline-flex;align-items:center;gap:8px;padding:0;font-size:15px;font-weight:850;cursor:pointer}.admin-panel-section-toggle:hover{color:var(--accent-primary)}.admin-panel-section-chevron{width:16px;color:var(--accent-primary);font-size:15px;line-height:1}.admin-panel-section-actions{display:inline-flex;align-items:center;gap:8px}.admin-panel-section-body{padding:12px}.admin-flow-grid{display:grid;gap:12px}.admin-subsection{border:1px solid var(--border);border-radius:8px;background:var(--bg-card-hover);padding:12px;display:grid;gap:10px}.admin-subsection-title{min-height:24px;display:flex;align-items:center;color:var(--text-main);font-size:14px;font-weight:800;line-height:1.2}.admin-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;align-items:end}.admin-form-field-wide{min-width:min(100%,260px)}.admin-subsection.admin-form-field-wide{grid-column:1 / -1}.admin-form-action{min-height:40px;align-self:end}.admin-context-line{display:flex;flex-wrap:wrap;gap:8px}.admin-context-line span{border:1px solid var(--border);border-radius:8px;background:var(--bg-card);color:var(--text-secondary);min-height:30px;display:inline-flex;align-items:center;padding:0 10px;font-size:12px;font-weight:700}.admin-pack-flow-table{display:grid;gap:6px;overflow-x:auto}.admin-pack-flow-row{min-width:820px;display:grid;grid-template-columns:minmax(180px,1.2fr) 90px 130px 170px minmax(250px,1fr);gap:8px;align-items:center;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--bg-card);color:var(--text-main);font-size:13px;font-weight:700}.admin-pack-flow-row.head{min-height:34px;color:var(--text-secondary);background:transparent;border-color:transparent;padding-top:0;padding-bottom:0;font-size:12px;font-weight:850}.admin-status-pill{width:118px;min-height:30px;border:1px solid var(--border);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;padding:0 8px;font-size:12px;font-weight:850}.admin-status-pill.hidden{color:#8a5b16;border-color:#d1841f61;background:#ffe4aa66}.admin-status-pill.scheduled{color:#1d5c98;border-color:#5077b36b;background:#5077b31f}.admin-status-pill.open{color:#1f7d4a;border-color:#2f8f5b6b;background:#2f8f5b1f}.admin-status-pill.closed{color:#ad3737;border-color:#c94a4a6b;background:#c94a4a1f}.admin-action-group,.admin-semester-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.admin-semester-actions{display:grid}.admin-upload-card{border:1px solid var(--border);border-radius:8px;background:var(--bg-card);padding:14px;display:grid;gap:10px}.lecturer-course-card{display:grid;gap:10px}.lecturer-course-grid{grid-template-columns:1fr}.lecturer-release-list{display:flex;flex-wrap:wrap;gap:8px}.status-pill{width:fit-content;max-width:100%;border:1px solid var(--border);border-radius:8px;background:var(--bg-card-hover);color:var(--text-secondary);padding:7px 10px;font-size:13px}.checkbox-line{min-height:40px;border:1px solid var(--border);border-radius:8px;background:var(--bg-card);padding:0 10px;display:inline-flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:13px;font-weight:700}.admin-deadline-card{margin-top:0}.admin-upload-title{margin:0;font-size:16px;font-weight:800;color:var(--text-main)}.admin-upload-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.admin-upload-field{display:grid;gap:4px;min-width:120px;color:var(--text-secondary);font-size:12px;font-weight:700}.admin-upload-hint{color:var(--text-muted);font-size:12px}.admin-upload-num{width:96px}.admin-upload-file{display:inline-flex;align-items:center;justify-content:center;min-height:40px;color:#f4f8ff;border-color:#272727;background:#1b1f28}.admin-upload-file:hover{color:#fff;border-color:#3f3f3f;background:#252a35}.admin-upload-check{display:inline-flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:13px}.admin-upload-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.admin-upload-action-btn{min-height:40px;padding:0 14px;font-weight:800}.admin-upload-action-btn.active{border-color:color-mix(in srgb,var(--accent-primary) 52%,var(--border));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent-primary) 42%,transparent)}.admin-task-next-btn{border-radius:10px;border:1px solid color-mix(in srgb,var(--accent-secondary) 46%,var(--border));background:linear-gradient(135deg,color-mix(in srgb,var(--accent-primary) 72%,#1e2a3f),color-mix(in srgb,var(--accent-secondary) 76%,#24354d));color:#f7fbff;font-weight:900;letter-spacing:.01em;box-shadow:0 6px 14px #2a4e821f}.admin-task-next-btn:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent-secondary) 62%,var(--border));color:#fff;box-shadow:0 8px 16px #2a4e822e}.admin-task-next-btn:disabled{opacity:.65;transform:none;box-shadow:none}.admin-task-main-btn{min-width:172px}.admin-task-pack-summary{border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb,var(--bg-card-hover) 68%,#ffffff);padding:9px 11px;display:grid;gap:3px}.admin-task-pack-name{font-size:14px;font-weight:900;color:var(--text-main)}.admin-task-pack-meta{font-size:12px;font-weight:700;color:var(--text-secondary)}.admin-task-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}.admin-task-io-grid{display:grid;gap:10px}.admin-task-io-card{border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb,var(--bg-card-hover) 50%,#ffffff);padding:10px;display:grid;gap:8px}.admin-task-io-title{font-size:13px;font-weight:900;color:var(--text-main)}.admin-task-io-hint{font-size:12px;font-weight:700;color:var(--text-secondary);line-height:1.35}.admin-task-io-btn{min-width:220px}.admin-task-script-input{min-width:300px;flex:1 1 300px}.admin-task-pill{border:1px solid var(--border);border-radius:10px;background:var(--bg-card);padding:8px 10px;text-align:left;display:grid;gap:3px;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.admin-task-pill:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent-secondary) 38%,var(--border))}.admin-task-pill.active{border-color:color-mix(in srgb,var(--accent-primary) 56%,var(--border));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent-primary) 42%,transparent);background:color-mix(in srgb,var(--bg-card-hover) 76%,#ffffff)}.admin-task-pill-id{font-size:12px;font-weight:900;color:var(--text-main)}.admin-task-pill-title{font-size:12px;font-weight:700;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-upload-status{color:var(--text-secondary);font-size:13px}.admin-upload-progress{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.admin-upload-progress-track{width:100%;height:10px;border-radius:999px;border:1px solid var(--border);background:color-mix(in srgb,var(--bg-card-hover) 80%,#ffffff 20%);overflow:hidden}.admin-upload-progress-bar{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary));transition:width .2s ease}.admin-upload-progress-label{min-width:42px;text-align:right;color:var(--text-main);font-size:12px;font-weight:800}.admin-upload-alert{border:1px solid transparent;border-radius:9px;padding:8px 10px;font-size:13px;font-weight:800}.admin-upload-alert.ok{border-color:#2f8f5b6b;color:#1e7b49;background:#2f8f5b24}.admin-upload-alert.error{border-color:#c94a4a6b;color:#ad3737;background:#c94a4a24}.admin-upload-alert.warning{border-color:#d1841f85;color:#8a5b16;background:#ffe4aa9e}.admin-semester-build-wrap{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}.admin-semester-warning{flex:1 1 100%;max-width:420px;position:relative;padding-right:34px}.admin-semester-cancel-btn{width:40px;min-width:40px;height:40px;border:1px solid rgba(201,74,74,.5);border-radius:10px;background:#c94a4a1f;color:#a12834;font-size:18px;line-height:1;font-weight:900;cursor:pointer}.admin-semester-cancel-btn:hover{background:#c94a4a33}.admin-semester-cancel-btn:disabled{opacity:.65;cursor:default}.admin-semester-warning-close{position:absolute;top:4px;right:4px;width:22px;height:22px;border:1px solid rgba(138,91,22,.45);border-radius:7px;background:#fff4dbf2;color:#8a5b16;font-size:14px;line-height:1;font-weight:900;cursor:pointer}.admin-semester-warning-close:hover{background:#fff6df}.admin-deadline-grid{display:grid;gap:8px;max-height:340px;overflow:auto;padding-right:2px}.admin-deadline-row{display:grid;grid-template-columns:minmax(0,1fr) 180px 160px 220px 220px 132px;gap:8px;align-items:center}.admin-deadline-row-head{color:var(--text-secondary);font-size:12px;font-weight:800;margin-bottom:2px}.admin-deadline-visibility-head{text-align:center}.admin-deadline-visibility-cell{width:100%;justify-self:stretch;display:flex;align-items:center;justify-content:center}.admin-deadline-freeze-col-head{text-align:center}.admin-deadline-freeze-cell{width:100%;display:flex;align-items:center;justify-content:center}.admin-deadline-pack{color:var(--text-main);font-size:13px;font-weight:700}.admin-pack-download-btn{display:inline-flex;align-items:center;justify-content:center;width:132px;height:38px;padding:0 8px;border-radius:10px;font-size:12px;font-weight:900;line-height:1;justify-self:center}.admin-deadline-input{height:38px;padding:0 8px}.admin-visibility-btn{width:132px;height:38px;border:1px solid var(--border);border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;font-size:12px;font-weight:900;margin:0 auto;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.admin-visibility-btn.visible{color:#1f7d4a;background:#2f8f5b1f;border-color:#2f8f5b66}.admin-visibility-btn.hidden{color:#ad3737;background:#c94a4a1f;border-color:#c94a4a6b}.admin-visibility-btn:hover{transform:translateY(-1px);box-shadow:0 6px 12px #2c34421f}.admin-freeze-btn{width:132px;height:38px;border-radius:10px;border:1px solid var(--border);cursor:pointer;font-size:12px;font-weight:900;display:inline-flex;align-items:center;justify-content:center}.admin-freeze-btn.off{color:var(--text-secondary);background:color-mix(in srgb,var(--bg-card-hover) 72%,#ffffff)}.admin-freeze-btn.on{color:#1d5c98;background:#5077b324;border-color:#5077b373}.admin-deadline-freeze-head{margin-top:2px;color:var(--text-main);font-size:13px;font-weight:800}.admin-deadline-freeze{min-height:92px;resize:vertical}.admin-deadline-recalc-row{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.admin-deadline-recalc-wrap{display:grid;gap:8px}.admin-deadline-select{min-width:220px;height:40px;padding:0 10px}.admin-recalc-btn{border:1px solid #272727;background:#1b1f28;color:#f4f8ff;border-radius:10px;min-height:40px;padding:0 14px;font-weight:800;cursor:pointer;transition:background .2s ease,border-color .2s ease,transform .2s ease}.admin-recalc-btn:hover{background:#252a35;border-color:#3f3f3f;transform:translateY(-1px)}.admin-recalc-btn:disabled{opacity:.65;cursor:default;transform:none}.page-loader-table .pl-table{display:grid;gap:8px;width:min(320px,92%)}.pl-table-row{display:grid;grid-template-columns:1.4fr 1fr .7fr .7fr;gap:8px;animation:pl-skeleton-breathe 1.8s ease-in-out infinite}.pl-table-row:nth-child(2){animation-delay:.12s}.pl-table-row:nth-child(3){animation-delay:.24s}.pl-table-row span,.pl-line,.pl-terminal-line,.pl-detail span{height:12px;border-radius:4px;background:linear-gradient(100deg,color-mix(in srgb,var(--text-muted) 10%,transparent) 18%,color-mix(in srgb,var(--accent-primary) 22%,transparent),color-mix(in srgb,var(--text-muted) 10%,transparent) 66%);background-size:220% 100%;animation:pl-skeleton-shimmer 1.7s ease-in-out infinite}.page-loader-list .pl-list{display:grid;gap:12px;width:min(280px,88%)}.pl-list-item{display:flex;align-items:center;gap:10px}.pl-dot{width:10px;height:10px;flex:0 0 auto;border-radius:50%;background:var(--accent-secondary)}.pl-line{flex:1 1 auto;height:9px;border-radius:999px}.pl-list-item:nth-child(2) .pl-line{width:82%}.pl-list-item:nth-child(3) .pl-line{width:64%}.page-loader-cards .pl-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:12px;width:min(100%,760px)}.pl-card{display:grid;align-content:start;gap:11px;min-height:104px;padding:16px;border:1px solid color-mix(in srgb,var(--border) 78%,var(--accent-primary));border-radius:var(--card-radius, 14px);background:color-mix(in srgb,var(--bg-card) 92%,var(--accent-primary));box-shadow:var(--shadow-soft, 0 4px 14px rgba(20, 40, 80, .06))}.pl-card-title,.pl-card-line{display:block;height:11px;border-radius:999px;background:linear-gradient(100deg,color-mix(in srgb,var(--text-muted) 12%,transparent) 18%,color-mix(in srgb,var(--accent-primary) 24%,transparent),color-mix(in srgb,var(--text-muted) 12%,transparent) 66%);background-size:220% 100%;animation:pl-skeleton-shimmer 1.7s ease-in-out infinite}.pl-card-title{width:54%;height:13px}.pl-card-line{width:88%}.pl-card-line.short{width:62%}.pl-card:nth-child(2)>*{animation-delay:.12s}.pl-card:nth-child(3)>*{animation-delay:.24s}.page-loader-progress{position:absolute;inset:0 auto 0 0;width:36%;border-radius:inherit;background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary));animation:pl-progress-sweep 1.35s ease-in-out infinite}.page-loader-compare .pl-compare{display:flex;align-items:center;gap:8px;width:min(240px,84%)}.pl-compare-doc{flex:1 1 auto;height:64px;border-radius:8px;border:1px solid rgba(80,119,179,.28);background:repeating-linear-gradient(to bottom,rgba(80,119,179,.22) 0 6px,transparent 6px 12px);opacity:.8}.pl-compare-beam{flex:0 0 auto;width:3px;height:64px;border-radius:999px;background:var(--accent-secondary);box-shadow:0 0 10px 1px var(--accent-secondary);animation:pl-beam-sweep 1.6s ease-in-out infinite}.page-loader-scan .pl-scan{position:relative;width:48px;height:48px;display:grid;place-items:center}.pl-scan-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:2px solid rgba(80,119,179,.22);border-top-color:var(--accent-secondary);animation:pl-scan-rotate 1s linear infinite}.pl-scan-core{width:14px;height:14px;border-radius:50%;background:var(--accent-secondary)}.page-loader-terminal .pl-terminal{display:grid;gap:8px;width:min(240px,84%);font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace}.pl-terminal-line{display:block;height:9px;border-radius:2px}.pl-terminal-line:nth-child(2){width:70%}.pl-terminal-cursor{width:8px;height:14px;background:var(--accent-secondary);animation:pl-blink 1.1s steps(1) infinite;justify-self:start}.page-loader-detail .pl-detail{display:grid;gap:8px;width:min(260px,88%);animation:pl-skeleton-breathe 1.8s ease-in-out infinite}.pl-detail span{height:10px}.pl-detail span:nth-child(1){width:40%}.pl-detail span:nth-child(2){width:92%}.pl-detail span:nth-child(3){width:78%}.pl-detail span:nth-child(4){width:86%}.page-loader-quiz .pl-quiz{display:grid;gap:10px;width:min(220px,84%);justify-items:center}.pl-quiz-card{width:56px;height:40px;border-radius:8px;border:1px solid rgba(80,119,179,.3);background:linear-gradient(135deg,#5077b31a,#5077b33d);animation:pl-quiz-flip 1.8s ease-in-out infinite}.pl-quiz-options{display:grid;grid-template-columns:1fr 1fr;gap:6px;width:100%}.pl-quiz-options span{height:16px;border-radius:6px;border:1px solid rgba(80,119,179,.22);background:#5077b31f}@keyframes pl-quiz-flip{0%,to{transform:perspective(200px) rotateY(0)}50%{transform:perspective(200px) rotateY(180deg)}}@keyframes pl-skeleton-breathe{0%,to{opacity:.72}50%{opacity:1}}@keyframes pl-skeleton-shimmer{0%{background-position:100% 0}to{background-position:-120% 0}}@keyframes pl-progress-sweep{0%{transform:translate(-110%)}to{transform:translate(300%)}}@keyframes pl-beam-sweep{0%,to{transform:translateY(-22px);opacity:.4}50%{transform:translateY(22px);opacity:1}}@keyframes pl-scan-rotate{to{transform:rotate(360deg)}}@keyframes pl-blink{0%,49%{opacity:1}50%,to{opacity:0}}.subject-page{padding:16px 18px 60px}.subject-switcher{display:inline-flex;min-width:180px;max-width:300px;flex:0 1 300px;align-items:center;gap:8px;color:#17365f;font-size:13px;font-weight:700}.subject-switcher select{min-width:0;width:100%;height:36px;border:1px solid rgba(68,102,148,.34);border-radius:6px;background:#ffffffeb;color:#17365f;padding:0 30px 0 10px;font:inherit}.subject-switcher-stack{display:grid;flex:0 1 300px;min-width:0;gap:2px}.subject-switcher-stack>.subject-switcher{width:100%;max-width:none;flex:initial}.subject-switcher-error{overflow:hidden;color:#a23636;font-size:11px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.subject-bootstrap{min-height:100vh;display:grid;place-items:center}.resource-manager-table-shell{position:relative;min-height:48px}.rm-console{--rm-border: rgba(77, 91, 111, .2);--rm-muted: #667085;display:grid;gap:0;padding:0;overflow:hidden;color:#172033;background:#fff;border:1px solid var(--rm-border);border-radius:12px;box-shadow:0 8px 24px #1018280f;-webkit-backdrop-filter:none;backdrop-filter:none}.rm-console .primary,.rm-console .secondary,.rm-console .ghost{min-height:36px;padding:8px 12px;border-radius:6px;box-shadow:none;font-size:13px;font-weight:700;transition:background-color .12s ease,border-color .12s ease,color .12s ease;transform:none;-webkit-backdrop-filter:none;backdrop-filter:none}.rm-console .primary{border-color:#1f67b1;background:#1f67b1;color:#fff}.rm-console .primary:hover{border-color:#174f87;background:#174f87;transform:none}.rm-console .secondary{border-color:#b8c3d0;background:#fff;color:#29435f}.rm-console .secondary:hover,.rm-console .ghost:hover{border-color:#8796a8;background:#eef2f6;transform:none}.rm-console .ghost{border-color:transparent;background:transparent;color:#475467}.rm-console .ghost.danger{color:#a53636}.rm-console .ghost.danger:hover{border-color:#e2b7b7;background:#fff1f1}.rm-console .primary:disabled,.rm-console .secondary:disabled,.rm-console .ghost:disabled{opacity:.45;cursor:default}.rm-console .input{width:100%;min-height:38px;border:1px solid #b8c3d0;border-radius:6px;background:#fff;color:#172033;box-shadow:none;font-size:13px}.rm-console .input:focus{border-color:#3979bb;outline:2px solid rgba(57,121,187,.16);outline-offset:0}.rm-topbar,.rm-section-bar{display:flex;align-items:center;justify-content:space-between;gap:16px}.rm-topbar{min-height:76px;padding:16px 20px;border-bottom:1px solid var(--rm-border);background:#fbfcfe}.rm-topbar>div,.rm-section-bar>div{min-width:0}.rm-topbar h2,.rm-section-bar h3{margin:0;letter-spacing:0}.rm-topbar h2{font-size:20px}.rm-heading>span{display:block;margin-top:4px;color:var(--rm-muted);font-size:13px}.rm-topbar-tools,.rm-summary{display:flex;align-items:center;gap:10px}.rm-summary>div{display:grid;gap:2px;padding:7px 10px;border:1px solid var(--rm-border);border-radius:8px;background:#f8fafc;white-space:nowrap}.rm-summary strong{color:#172033;font-size:16px;font-variant-numeric:tabular-nums}.rm-summary span{margin:0;color:var(--rm-muted);font-size:11px}.rm-section-bar h3{font-size:16px}.rm-topbar span,.rm-section-bar span{display:block;margin-top:3px;color:var(--rm-muted);font-size:13px}.rm-icon-button{width:36px;height:36px;flex:0 0 36px;padding:9px;border:1px solid var(--rm-border);border-radius:6px;background:#fff;color:#344054;cursor:pointer}.rm-icon-button:hover{border-color:#98a2b3;background:#f7f8fa}.rm-icon-button:disabled{opacity:.45;cursor:default}.rm-icon-button.refreshing svg{animation:refresh-spin .9s linear infinite}.rm-tabs{display:flex;width:max-content;max-width:calc(100% - 40px);gap:3px;margin:10px 20px 0;padding:4px;overflow-x:auto;overscroll-behavior-inline:contain;border:1px solid var(--rm-border);border-radius:10px;background:#f3f6f9;scrollbar-width:thin}.rm-tabs .row-link,.rm-tabs button{display:inline-flex;flex:0 0 auto;align-items:center;min-height:36px;padding:0 11px;border:1px solid transparent;border-radius:7px;border-bottom-width:1px;background:transparent;color:#667085;font:inherit;font-size:13px;font-weight:700;text-decoration:none;cursor:pointer;white-space:nowrap}.rm-tabs .row-link:focus-visible,.rm-tabs button:focus-visible{outline:2px solid #3979bb;outline-offset:1px}.rm-tabs .row-link:hover,.rm-tabs button:hover{background:#edf1f5;color:#243b5a}.rm-tabs .row-link.active,.rm-tabs button.active{border-color:#c9d9e9;background:#fff;color:#174f87;box-shadow:0 1px 3px #1018281a}.rm-tabs .row-link span,.rm-tabs button span{display:inline-grid;min-width:20px;height:20px;margin-left:5px;place-items:center;border-radius:10px;background:#e8edf3;color:#475467;font-size:11px}.rm-section{display:grid;min-width:0}.rm-system-setting-card{display:grid;gap:10px;margin:0 20px 20px;padding:16px;border:1px solid var(--rm-border);border-radius:10px;background:var(--bg-card);color:var(--text-main)}.rm-system-setting-card .glow-field{margin:0}.rm-system-setting-card p{margin:0;color:var(--rm-muted);font-size:13px}.rm-section-bar{min-height:68px;padding:12px 20px}.rm-add-action{width:auto;min-width:0;height:36px;flex:0 0 auto;padding:0 13px;border-radius:7px;white-space:nowrap}.rm-section-intro{max-width:820px;margin:-2px 20px 16px;color:var(--rm-muted);font-size:13px;line-height:1.5}.rm-compiler-catalog-panel{grid-template-columns:minmax(0,1fr);width:100%;min-width:0}.rm-compiler-catalog-panel>.rm-section-bar{padding-inline:clamp(12px,2vw,20px)}.rm-compiler-subject-intro{width:auto!important;max-width:none;margin-inline:clamp(12px,2vw,20px)}.rm-compiler-subject-list{display:grid;gap:16px;min-width:0;padding:0 clamp(12px,2vw,20px) 20px}.rm-subject-compiler-card{min-width:0;overflow:hidden;border:1px solid var(--border, var(--rm-border));border-radius:12px;background:var(--bg-card);color:var(--text-main);box-shadow:0 3px 12px color-mix(in srgb,var(--accent-primary) 7%,transparent)}.rm-subject-compiler-card-header{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;min-width:0;padding:14px clamp(12px,2vw,18px);border-bottom:1px solid var(--border, var(--rm-border));background:color-mix(in srgb,var(--accent-primary) 5%,var(--bg-card))}.rm-subject-compiler-card-title{display:flex;align-items:center;flex-wrap:wrap;gap:7px 10px;min-width:0}.rm-subject-compiler-card-title h4{min-width:0;margin:0;overflow-wrap:anywhere;font-size:15px}.rm-subject-compiler-kind,.rm-subject-compiler-archived{padding:3px 7px;border:1px solid var(--border, var(--rm-border));border-radius:999px;color:var(--text-secondary, var(--rm-muted));font-size:11px;line-height:1.25}.rm-subject-compiler-archived{border-color:color-mix(in srgb,var(--warning) 45%,var(--border, var(--rm-border)));background:color-mix(in srgb,var(--warning) 10%,var(--bg-card));color:var(--warning)}.rm-subject-compiler-card-summary{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:4px 10px;min-width:0;color:var(--text-secondary, var(--rm-muted));font-size:12px;text-align:right}.rm-subject-compiler-card-header>button{white-space:nowrap}.rm-subject-compiler-card .rm-subject-compiler-assignments{display:grid;gap:8px;min-width:0;margin:0;padding:12px clamp(12px,2vw,18px) 16px;border:0}.rm-subject-compiler-tabs{display:flex;gap:4px;min-width:0;padding:0 clamp(12px,2vw,18px);border-bottom:1px solid var(--border, var(--rm-border));overflow-x:auto}.rm-subject-compiler-error{margin:10px clamp(12px,2vw,18px) 0}.rm-subject-compiler-tabs button{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;min-height:42px;padding:0 10px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--text-secondary, var(--rm-muted));cursor:pointer;font:inherit;font-size:13px}.rm-subject-compiler-tabs button:hover,.rm-subject-compiler-tabs button.active{color:var(--text-main)}.rm-subject-compiler-tabs button.active{border-bottom-color:var(--accent-primary)}.rm-subject-compiler-tabs button span{display:inline-grid;min-width:20px;min-height:20px;place-items:center;padding:0 5px;border-radius:999px;background:color-mix(in srgb,var(--accent-primary) 10%,var(--bg-card));color:var(--text-secondary, var(--rm-muted));font-size:11px}.rm-compiler-card-section{display:grid;gap:8px;min-width:0;padding:4px 0}.rm-compiler-section-title{display:grid;gap:3px;min-width:0}.rm-compiler-section-title span,.rm-compiler-inline-loading,.rm-compiler-card-empty{color:var(--text-secondary, var(--rm-muted));font-size:12px;line-height:1.45;overflow-wrap:anywhere}.rm-compiler-environment-list,.rm-compiler-assignment-list{display:grid;gap:7px;min-width:0}.rm-compiler-environment-item,.rm-compiler-assignment-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(110px,max-content) auto;align-items:center;gap:10px 14px;min-width:0;padding:10px 2px;border-bottom:1px solid var(--border, var(--rm-border));background:transparent}.rm-compiler-environment-item:last-child,.rm-compiler-assignment-card:last-child{border-bottom:0}.rm-compiler-environment-item>div,.rm-compiler-assignment-details{display:grid;gap:3px;min-width:0;overflow-wrap:anywhere}.rm-compiler-environment-item>div>span,.rm-compiler-assignment-details>span,.rm-compiler-assignment-details>small{color:var(--text-secondary, var(--rm-muted));font-size:12px;overflow-wrap:anywhere}.rm-compiler-state{justify-self:start;padding:4px 8px;border:1px solid var(--border, var(--rm-border));border-radius:999px;color:var(--text-secondary, var(--rm-muted));font-size:11px;line-height:1.3;overflow-wrap:anywhere}.rm-compiler-state.is-ready{border-color:color-mix(in srgb,var(--success) 48%,var(--border, var(--rm-border)));background:color-mix(in srgb,var(--success) 12%,var(--bg-card));color:var(--success)}.rm-compiler-toggle{display:inline-flex;align-items:center;gap:6px;min-height:32px;color:var(--text-main);font-size:12px;white-space:nowrap}.rm-compiler-toggle input{margin:0}.rm-compiler-card-section .rm-subject-compiler-runner{width:100%;max-width:560px;margin:0}.rm-compiler-card-section .inline-error-banner{margin:0}.rm-compiler-card-section .rm-warning{margin:0;overflow-wrap:anywhere}.rm-compiler-catalog-panel>.rm-manager-list{margin:0 clamp(12px,2vw,20px) 20px;overflow:hidden;border:1px solid var(--border, var(--rm-border));border-radius:10px}.rm-compiler-catalog-panel .rm-compiler-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 16px;min-width:0;padding-inline:clamp(12px,2vw,18px)}.rm-compiler-catalog-panel .rm-compiler-row code{min-width:0;overflow-wrap:anywhere;white-space:normal}@media (max-width: 820px){.rm-subject-compiler-card-header{grid-template-columns:minmax(0,1fr) auto}.rm-subject-compiler-card-summary{grid-column:1;justify-content:flex-start;text-align:left}.rm-subject-compiler-card-header>button{grid-column:2;grid-row:1 / span 2}}@media (max-width: 600px){.rm-subject-compiler-card-header{grid-template-columns:minmax(0,1fr);gap:9px}.rm-subject-compiler-card-summary,.rm-subject-compiler-card-header>button{grid-column:1;grid-row:auto}.rm-subject-compiler-card-header>button{width:100%}.rm-compiler-environment-item,.rm-compiler-assignment-card{grid-template-columns:minmax(0,1fr);align-items:start}.rm-compiler-toggle{white-space:normal}.rm-compiler-catalog-panel .rm-compiler-row{grid-template-columns:minmax(0,1fr)}}.rm-compiler-catalog-panel>.rm-field{min-width:0;margin-inline:20px}.rm-compiler-catalog-panel>.inline-error-banner{margin-inline:20px}.rm-compiler-catalog-panel>.rm-section-bar{flex-wrap:wrap;align-items:flex-start;min-width:0}.rm-compiler-catalog-panel>.rm-section-bar>div{flex:1 1 240px;overflow-wrap:anywhere}.rm-compiler-catalog-panel>.rm-section-bar .rm-add-action{max-width:100%;white-space:normal}.rm-compiler-catalog-panel .rm-compiler-catalog-help{box-sizing:border-box;width:calc(100% - 40px);min-width:0;overflow-wrap:anywhere}@media (max-width: 680px){.rm-compiler-catalog-panel>.rm-field,.rm-compiler-catalog-panel>.inline-error-banner{margin-inline:14px}.rm-compiler-catalog-panel .rm-compiler-catalog-help{width:calc(100% - 28px)}}.rm-compiler-catalog-help p{margin:0 0 8px}.rm-compiler-catalog-panel,.rm-compiler-catalog-panel *{border-radius:0!important}.rm-console .rm-section>.empty-state{margin-top:4px;margin-bottom:20px}.rm-token-panel{min-width:0}.rm-token-field{display:grid;gap:8px;min-width:0;padding:18px 20px 0}.rm-token-field>span{color:#344054;font-size:12px;font-weight:700}.rm-token-row{display:flex;min-width:0;align-items:stretch;gap:10px}.rm-token-value{display:flex;min-width:0;min-height:40px;flex:1 1 auto;align-items:center;padding:8px 12px;overflow-wrap:anywhere;border:1px solid #b8c3d0;border-radius:6px;background:#fff;color:#172033;font-size:13px;line-height:1.35}.rm-token-actions{display:flex;flex:0 0 auto;gap:8px;align-items:stretch}.rm-token-hint{max-width:760px;margin:12px 20px 20px;line-height:1.5}.rm-create-form,.rm-manager-form{display:grid;align-items:end;gap:12px;padding:14px 20px;border-top:1px solid var(--rm-border);background:#f7f9fb}.rm-create-form{grid-template-columns:repeat(2,minmax(0,1fr))}.rm-create-intro,.rm-create-submit{display:flex;align-items:center;justify-content:space-between;gap:12px;grid-column:1 / -1}.rm-create-intro{display:grid;gap:3px;padding-bottom:2px}.rm-create-intro span,.rm-create-submit .muted{font-size:12px}.rm-create-submit{justify-content:flex-end}.rm-file-drop{position:relative;display:grid;gap:3px;min-height:58px;align-content:center;padding:9px 12px;border:1px dashed #98a2b3;border-radius:6px;background:#fff;cursor:pointer}.rm-file-drop:hover,.rm-file-drop:focus-within{border-color:#2f6fed;background:#f7faff}.rm-file-drop input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;cursor:pointer;opacity:0}.rm-file-drop small{color:var(--rm-muted);font-size:11px}.rm-manager-form{grid-template-columns:minmax(240px,1fr) minmax(260px,1.2fr) auto;border-bottom:1px solid var(--rm-border)}.rm-field{display:grid;min-width:0;gap:6px}.rm-field-wide{grid-column:1 / -1}.rm-field>span{color:#475467;font-size:12px;font-weight:700}.rm-directory{border-top:1px solid var(--rm-border)}.rm-subject-head,.rm-subject-row{display:grid;grid-template-columns:minmax(230px,1.5fr) 92px minmax(150px,.8fr) 84px 72px 112px;gap:16px;align-items:center}.rm-subject-head,.rm-manager-head,.rm-audit-head{min-height:34px;padding:0 20px;border-bottom:1px solid var(--rm-border);background:#f7f8fa;color:#667085;font-size:11px;font-weight:700;text-transform:uppercase}.rm-subject{border-bottom:1px solid var(--rm-border)}.rm-subject.archived .rm-subject-row{background:#fafafa}.rm-subject-row{min-height:64px;padding:9px 20px}.rm-subject-name,.rm-person{display:grid;min-width:0;gap:3px}.rm-subject-title,.rm-subject-rename{display:flex;min-width:0;align-items:center;gap:8px}.rm-subject-title .ghost{flex:0 0 auto;padding:2px 6px;font-size:11px}.rm-subject-rename .input{min-width:0;padding:6px 8px}.rm-subject-rename button{flex:0 0 auto;padding:6px 8px}.rm-subject-name strong,.rm-person strong{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.rm-subject-name span,.rm-person span{overflow:hidden;color:var(--rm-muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.rm-status{display:inline-flex;width:max-content;align-items:center;gap:6px;color:#475467;font-size:12px;font-weight:700}.rm-status:before{width:7px;height:7px;border-radius:50%;background:#98a2b3;content:""}.rm-status.active:before{background:#25885a}.rm-role-counts{display:flex;gap:12px;color:#667085;font-size:12px}.rm-role-counts b{color:#25344a}.rm-number{font-size:13px;font-variant-numeric:tabular-nums}.rm-subject-detail{display:grid;gap:14px;min-width:0;padding:16px;background:#f8fafc;border-top:1px solid var(--rm-border)}.rm-subject-detail>*{min-width:0}.rm-subject-detail-topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;justify-content:space-between;gap:16px 24px;padding:18px;border:1px solid var(--rm-border);border-radius:12px;background:#fff}.rm-subject-detail-heading{display:grid;gap:6px;min-width:0}.rm-subject-detail-heading h3{margin:0;color:#172033;font-size:17px}.rm-subject-detail-heading p,.rm-subject-setting-card p{margin:0;color:var(--rm-muted);font-size:13px;line-height:1.5;overflow-wrap:anywhere}.rm-subject-database-actions{display:flex;align-items:flex-start;justify-content:flex-end;gap:8px;min-width:0}.rm-subject-database-actions>button{min-height:40px}.rm-import-button{display:grid;grid-template-columns:minmax(0,1fr);gap:3px;min-width:0;min-height:40px;padding:6px 10px;text-align:center;cursor:pointer}.rm-import-button input{position:fixed;width:1px;height:1px;opacity:0;pointer-events:none}.rm-import-button small{max-width:220px;overflow:hidden;color:var(--rm-muted);font-size:10px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.rm-subject-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.rm-subject-setting-card{display:grid;align-content:start;gap:8px;min-width:0;padding:14px;border:1px solid var(--rm-border);border-radius:12px;background:#fff}.rm-subject-setting.checkbox-line{width:fit-content;max-width:100%;min-height:32px;padding:0;border:0;background:transparent;color:#344054;white-space:normal;overflow-wrap:anywhere}.rm-subject-setting input{flex:0 0 auto}.rm-import-message{padding:8px 20px;color:#26734d;font-size:12px}.rm-staff-editor{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.8fr);gap:12px;min-width:0}.rm-staff-list{min-width:0;padding:16px 20px;border:1px solid var(--rm-border);border-radius:12px;background:#fff}.rm-staff-form{display:grid;align-content:start;gap:12px;padding:16px 20px;border:1px solid var(--rm-border);border-radius:12px;background:#fff}.rm-subsection-heading{display:flex;min-height:36px;align-items:center;justify-content:space-between;gap:12px;color:#344054;font-size:13px}.rm-subsection-heading span{color:var(--rm-muted);font-variant-numeric:tabular-nums}.rm-staff-form .rm-add-toggle{width:auto;min-width:92px;height:36px;flex:0 0 auto;padding:0 12px;border-radius:8px;font-size:12px;line-height:1.2;white-space:nowrap;transform:none}.rm-staff-form .rm-add-toggle[aria-expanded=true]{transform:none}.rm-project-access{display:grid;gap:12px;min-width:0;padding:16px;border:1px solid var(--rm-border);border-radius:12px;background:#fff}.rm-project-access .rm-subsection-heading{align-items:center}.rm-project-access .rm-subsection-heading select{max-width:240px}.rm-project-access>.muted{margin:0;font-size:13px;line-height:1.5;overflow-wrap:anywhere}.rm-project-group{display:grid;gap:8px;padding:12px;border:1px solid var(--rm-border);border-radius:8px;background:#fff}.rm-project-pack-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:8px}.rm-project-pack-list .checkbox-line{width:100%;min-width:0;min-height:40px;white-space:normal;overflow-wrap:anywhere}.rm-staff-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(125px,150px) auto;gap:12px;align-items:center;min-width:0;min-height:52px;padding-block:7px;border-top:1px solid var(--rm-border)}.rm-staff-row>*,.rm-staff-row .rm-person{min-width:0}.rm-role-select{min-width:0}.rm-remove-action{padding-inline:8px}.rm-subject-actions{display:flex;justify-content:flex-end;gap:8px;padding:10px 20px;border-top:1px solid var(--rm-border)}.rm-manager-list,.rm-audit-list{display:grid}.rm-manager-head,.rm-manager-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(240px,1fr) 90px;gap:16px;align-items:center}.rm-manager-row{min-height:58px;padding:8px 20px;border-bottom:1px solid var(--rm-border);font-size:13px}.rm-manager-row>span{overflow:hidden;color:var(--rm-muted);text-overflow:ellipsis;white-space:nowrap}.rm-compiler-row{grid-template-columns:minmax(220px,1fr) minmax(0,1fr)}.rm-compiler-row>div{display:grid;gap:4px;min-width:0}.rm-compiler-row>div span,.rm-compiler-row>code{overflow:hidden;color:var(--rm-muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.rm-audit-head,.rm-audit-row{display:grid;grid-template-columns:180px minmax(230px,1fr) minmax(160px,.7fr);gap:16px;align-items:center}.rm-audit-row{min-height:48px;padding:8px 20px;border-bottom:1px solid var(--rm-border);font-size:13px}.rm-audit-row time,.rm-audit-row span{color:var(--rm-muted)}.rm-empty-row{padding:18px 20px;color:var(--rm-muted);font-size:13px}.rt-console{min-width:0}.rt-topbar{align-items:flex-end}.rt-context{display:flex;min-width:min(420px,48%);align-items:flex-end;justify-content:flex-end;gap:10px}.rt-context label{display:grid;min-width:240px;gap:5px}.rt-context label>span{color:#667085;font-size:11px;font-weight:700;text-transform:uppercase}.rt-section{display:grid;min-width:0;border-top:1px solid var(--rm-border)}.rt-section:first-of-type{border-top:0}.rt-form{display:grid;align-items:end;gap:12px;padding:14px 20px;border-top:1px solid var(--rm-border);border-bottom:1px solid var(--rm-border);background:#f7f9fb}.rt-image-form{grid-template-columns:minmax(130px,.45fr) minmax(210px,.8fr) minmax(180px,.7fr)}.rt-image-form .primary{justify-self:start}.rt-file-input{padding:6px 8px}.rt-toolchain-form{grid-template-columns:minmax(160px,.6fr) minmax(280px,1.4fr) auto}.rt-method-fieldset{grid-column:1 / -1;margin:0;padding:12px;border:1px solid var(--rm-border);border-radius:8px}.rt-method-fieldset legend{padding:0 6px;color:#475467;font-size:12px;font-weight:700}.rt-submission-methods{display:flex;flex-wrap:wrap;gap:10px 20px}.rt-submission-methods label{display:flex;align-items:center;gap:7px;font-size:13px}.rt-method-fieldset>small,.rt-method-summary{display:block;margin-top:5px;color:var(--rm-muted);font-size:11px;font-weight:400}.rt-image-list,.rt-version-list{display:grid}.rt-image-head,.rt-image-row{display:grid;grid-template-columns:minmax(0,1fr) 160px 90px;gap:16px;align-items:center}.rt-version-head,.rt-version-row{display:grid;grid-template-columns:minmax(70px,.55fr) minmax(150px,1.5fr) minmax(95px,.9fr) minmax(145px,1.25fr) minmax(85px,.8fr);gap:16px;align-items:center}.rt-image-head,.rt-version-head{min-height:34px;padding:0 20px;border-bottom:1px solid var(--rm-border);background:#f7f8fa;color:#667085;font-size:11px;font-weight:700;text-transform:uppercase}.rt-image-row,.rt-version-row{min-height:56px;padding:9px 20px;border-bottom:1px solid var(--rm-border);font-size:13px}.rt-image-row code,.rt-version-row code{min-width:0;overflow:hidden;color:#475467;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;text-overflow:ellipsis;overflow-wrap:anywhere;line-height:1.35}.rt-version-status{display:flex;flex-direction:column;align-items:flex-start;gap:6px}@media (max-width: 1050px){.rm-subject-head{display:none}.rm-subject-row{grid-template-columns:minmax(190px,1fr) 90px 120px 104px}.rm-subject-row>.rm-number{display:none}.rm-staff-editor{grid-template-columns:1fr}.rm-subject-detail-topbar{grid-template-columns:minmax(0,1fr)}.rm-subject-database-actions{justify-content:flex-start;flex-wrap:wrap}.rm-staff-form{border-top:1px solid var(--rm-border)}.rm-create-form,.rm-manager-form,.rt-form{grid-template-columns:1fr}.rm-manager-head,.rm-audit-head,.rt-image-head,.rt-version-head{display:none}.rm-manager-row,.rm-audit-row{grid-template-columns:1fr;gap:5px;padding-block:12px}.rt-image-row{grid-template-columns:minmax(0,1fr) 130px 90px}.rt-version-row{grid-template-columns:minmax(70px,.55fr) minmax(140px,1.4fr) minmax(90px,.9fr) minmax(130px,1.2fr) minmax(80px,.8fr)}}@media (max-width: 680px){.rm-token-row{flex-direction:column}.rm-token-actions{width:100%}.rm-token-actions>button{flex:1 1 0}.rm-topbar,.rm-section-bar,.rm-subject-row,.rm-manager-row,.rm-audit-row,.rt-image-row,.rt-version-row{padding-inline:14px}.rm-tabs{display:flex;width:calc(100% - 28px);max-width:none;margin:8px 14px 0;gap:3px;padding:4px}.rm-tabs .row-link,.rm-tabs button{justify-content:center;min-height:34px;padding:0 10px;font-size:12px}.rm-topbar{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.rm-topbar-tools{justify-content:space-between}.rm-summary{gap:6px}.rm-summary>div{gap:5px;padding:6px 8px}.rm-section-intro{margin-inline:14px}.rm-subject-row{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding-block:12px}.rm-subject-row .rm-status,.rm-subject-row .rm-role-counts{grid-row:2}.rm-subject-row>button{grid-column:2;grid-row:1}.rm-staff-list,.rm-staff-form,.rm-subject-actions,.rm-subject-detail,.rm-create-form,.rm-manager-form{padding-inline:14px}.rm-subject-detail-topbar{gap:12px;padding:14px}.rm-subject-settings-grid{grid-template-columns:minmax(0,1fr)}.rm-subject-database-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.rm-subject-database-actions>button,.rm-subject-database-actions>label{width:100%;min-width:0}.rm-import-button small{max-width:100%}.rm-staff-row{grid-template-columns:minmax(0,1fr) minmax(100px,130px);padding-block:8px}.rm-staff-row .rm-person{grid-column:1 / -1}.rm-remove-action{grid-column:2}.rm-subject-actions{flex-direction:column}.rm-create-intro,.rm-create-submit{align-items:stretch;flex-direction:column}.rm-create-submit button,.rm-subject-detail-topbar button{width:100%}.rt-topbar{align-items:stretch;flex-direction:column}.rt-context{width:100%;min-width:0;max-width:none}.rt-context label{min-width:0;flex:1}.rt-form{padding-inline:14px}.rt-image-row,.rt-version-row{grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;padding-block:12px}.rt-image-row code,.rt-version-row code{grid-column:1 / -1;grid-row:2}.rt-image-row{grid-template-columns:minmax(0,1fr) auto}.rt-image-row>button{grid-column:2}}.subject-switcher.single{flex-direction:column;align-items:flex-start;gap:1px}.subject-switcher small{color:#64748b;font-size:11px;font-weight:600}.subject-switcher .subject-switcher-readiness{color:#a34b16}.subject-switcher.loading,.subject-switcher.error{font-weight:600;color:#64748b}.subject-switcher-spinner{width:14px;height:14px;flex:0 0 14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:subject-switcher-spin .8s linear infinite}@keyframes subject-switcher-spin{to{transform:rotate(360deg)}}.subject-switcher.error{color:#a23636}@media (max-width: 980px){.subject-switcher{min-width:140px}.subject-grid{grid-template-columns:1fr}}.hackathon-team-picker{position:relative;display:flex;align-items:center;gap:8px;min-width:0}.hackathon-team-picker>span{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-picker-current{display:inline-flex;align-items:center;gap:7px;max-width:210px}.team-picker-current>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hackathon-team-menu{position:absolute;z-index:20;top:calc(100% + 8px);left:0;display:grid;gap:6px;min-width:260px;padding:10px;border:1px solid var(--border-color, #d5d9df);background:var(--panel-background, #fff);box-shadow:0 10px 24px #0000001f}.hackathon-team-menu form{display:flex;gap:6px}.rm-environment-panel{display:grid;gap:12px;margin-top:18px;padding:16px 20px 4px;border-top:1px solid var(--border-color, #d5d9df)}.rm-subject-compilers{display:grid;gap:10px;margin-top:18px;padding:16px 20px;border-top:1px solid var(--border-color, #d5d9df)}.rm-compiler-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px 16px}.rm-compiler-options .checkbox-line{margin:0}.rm-compiler-options small{display:block;color:var(--rm-muted)}.rm-compiler-save{display:flex;align-items:center;gap:12px}.rm-subject-compiler-assignments{display:grid;gap:12px;min-width:0;margin-top:18px;padding:16px 20px;border-top:1px solid var(--border-color, #d5d9df)}.rm-subject-compiler-assignments>p{margin:0}.rm-subject-compiler-assignments .rm-subsection-heading{flex-wrap:wrap;align-items:flex-start;min-width:0}.rm-subject-compiler-assignments .rm-subsection-heading>div{flex:1 1 220px;min-width:0}.rm-subject-compiler-assignments .rm-subsection-heading>span{flex:0 1 auto;padding-top:2px}.rm-subject-compiler-assignments .rm-subsection-heading button{flex:0 1 auto;max-width:100%;white-space:normal}.rm-compiler-environments{display:grid;gap:8px;min-width:0;padding:12px;border:1px solid var(--border-color, #d5d9df);border-radius:10px;background:var(--surface-card, transparent)}.rm-compiler-environments>p{margin:0}.rm-compiler-connect-heading{display:grid;gap:3px;min-width:0}.rm-compiler-connect-heading span{color:var(--text-secondary, var(--rm-muted));font-size:13px;overflow-wrap:anywhere}.rm-subject-compiler-runner{max-width:560px}.rm-compiler-assignment-list{display:grid;gap:8px}.rm-compiler-assignment{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(90px,max-content);align-items:center;gap:12px;min-width:0;padding:11px 12px;border:1px solid var(--border-color, #d5d9df);border-radius:10px;background:var(--surface-card, transparent);cursor:pointer}.rm-compiler-assignment input{margin:0}.rm-compiler-assignment-copy{display:grid;gap:3px;min-width:0;overflow-wrap:anywhere}.rm-compiler-assignment-copy small{color:var(--text-secondary, var(--rm-muted));overflow-wrap:anywhere}.rm-compiler-assignment-status{min-width:0;color:var(--text-secondary, var(--rm-muted));font-size:13px;overflow-wrap:anywhere;text-align:right}.rm-compiler-environment-row{grid-template-columns:minmax(0,1fr) minmax(90px,max-content)}@media (max-width: 600px){.rm-subject-compiler-assignments{padding-inline:14px}.rm-subject-compiler-assignments .rm-subsection-heading{align-items:stretch}.rm-subject-compiler-assignments .rm-subsection-heading button{width:100%}.rm-compiler-assignment{grid-template-columns:auto minmax(0,1fr);align-items:start}.rm-compiler-assignment-status{grid-column:2;text-align:left}.rm-compiler-environment-row{grid-template-columns:minmax(0,1fr)}.rm-compiler-environment-row .rm-compiler-assignment-status{grid-column:1}}.rm-team-photo-row{display:flex;align-items:end;gap:12px}.rm-team-photo-row .rm-field{flex:1}.rm-environment-panel .rm-subsection-heading{align-items:center}.rm-environment-panel .rm-subsection-heading>div{min-width:0}.rm-environment-panel .rm-subsection-heading strong,.rm-environment-panel .rm-subsection-heading span{overflow-wrap:anywhere}.rm-environment-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0;color:#7c8490;font-size:12px}.rm-environment-modal-intro{display:grid;gap:4px;margin-bottom:16px;color:#475467}.rm-environment-modal-intro span{color:#7c8490;font-size:13px}.rm-build-log-wrap{display:grid;gap:8px;margin-top:18px}.rm-environment-form{display:grid;grid-template-columns:minmax(280px,1.6fr) minmax(210px,.8fr) auto;gap:10px;align-items:end}.rm-environment-form>.rm-field:first-child{min-width:0}.rm-environment-drop{position:relative;display:grid;min-height:46px;align-content:center;gap:2px;padding:8px 12px;border:1px dashed #aeb8c5;border-radius:6px;background:#fff;color:#344054;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.rm-environment-drop strong{font-size:13px}.rm-environment-drop small{font-size:11px;opacity:.8}.rm-environment-drop:hover,.rm-environment-drop.dragging{border-color:#2f6fed;background:#f5f8ff}.rm-environment-drop input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;cursor:pointer;opacity:0}.rm-environment-drop small{color:#7c8490;font-size:11px}.rm-inferred-language{width:fit-content;padding:6px 9px;border:1px solid #d8e3f8;border-radius:4px;background:#f5f8ff;color:#475467;font-size:12px}.rm-subject-actions{background:#fbfcfd}.rm-subject-actions .danger{color:#b42318}.rm-subsection-heading>div{display:grid;gap:3px}.rm-subsection-heading>div>span{font-size:12px;font-weight:400;color:#7c8490}.rm-diagnostics{display:grid;gap:6px}.rm-warning{padding:8px 10px;border-left:3px solid #d28a16;background:#fff6df;color:#76500d;font-size:13px}.rm-build-log{max-height:260px;overflow:auto;margin:0;padding:12px;border:1px solid var(--border-color, #d5d9df);background:#101216;color:#d7e0ea;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap}@media (max-width: 900px){.rm-environment-form{grid-template-columns:1fr 1fr}.rm-environment-form>:last-child{grid-column:1 / -1}}@media (max-width: 620px){.rm-environment-panel{padding-inline:14px}.rm-environment-panel .rm-subsection-heading{align-items:stretch;flex-direction:column}.rm-environment-panel .rm-subsection-heading button{width:100%}.rm-environment-form{grid-template-columns:1fr}.rm-environment-form>:last-child{grid-column:auto}}.tl-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;align-items:start}.tl-form .rm-field-wide{grid-column:1 / -1}.tl-list{display:flex;flex-direction:column}.tl-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border)}.tl-row:last-child{border-bottom:0}.tl-child{padding-left:38px}.tl-archived{opacity:.6}.tl-main{flex:1 1 320px;min-width:0;display:flex;flex-direction:column;gap:4px}.tl-title{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.tl-description{margin:0;white-space:pre-wrap}.tl-details p{margin:4px 0;word-break:break-word}.tl-packages{max-height:140px;overflow:auto}.tl-actions{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px}.login-page{max-width:560px;width:100%;margin:0;padding:38px 34px;text-align:left;display:grid;gap:16px;border:1px solid var(--border);border-radius:18px;background:var(--bg-card);box-shadow:0 18px 38px color-mix(in srgb,var(--accent-primary) 14%,transparent)}.login-site-footer{grid-column:1 / -1;grid-row:2;justify-self:center;align-self:end;display:flex;align-items:center;justify-content:center;gap:14px;min-height:150px;padding:8px 16px;border:1px solid var(--border);border-radius:18px;background:color-mix(in srgb,var(--bg-card) 94%,transparent)}.login-footer-icon{display:block;width:150px;height:150px;object-fit:contain;flex:none}.login-footer-meta{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.login-footer-meta .site-feedback-link{max-width:250px}.login-layout{min-height:100vh;box-sizing:border-box;display:grid;grid-template-columns:minmax(480px,1fr) minmax(420px,560px);grid-template-rows:minmax(auto,1fr) auto;align-items:center;gap:34px;padding:42px}.login-visual{display:grid;gap:14px}.login-brand{margin:0;font-size:44px;letter-spacing:2.2px;font-weight:900;color:var(--accent-primary)}.login-subtitle{margin:0;color:var(--text-secondary)}.login-demo-title{margin:0;color:var(--accent-primary);font-size:18px;font-weight:800}.tree-canvas{position:relative;height:340px;border-radius:20px;border:1px solid var(--border);background:radial-gradient(circle at 25% 15%,var(--bg-card) 0%,var(--accent-surface) 100%);box-shadow:0 18px 40px color-mix(in srgb,var(--accent-primary) 14%,transparent)}.tree-links{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.tree-links line{stroke:color-mix(in srgb,var(--accent-primary) 64%,var(--text-muted));stroke-width:2;opacity:.65}.tree-node{position:absolute;transform:translate(-50%,-50%);width:50px;height:50px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:800;border:2px solid color-mix(in srgb,var(--accent-primary) 34%,var(--border));background:var(--bg-card);color:var(--text-secondary);transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease,background .24s ease}.tree-node.active{border-color:color-mix(in srgb,var(--accent-primary) 70%,var(--border));background:var(--accent-surface)}.tree-node.current{transform:translate(-50%,-50%) scale(1.12);border-color:var(--accent-primary);background:linear-gradient(135deg,var(--accent-secondary),var(--accent-primary));color:var(--btn-fg, #fff);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent-primary) 22%,transparent)}.traversal-box{border-radius:14px;border:1px solid var(--border);padding:12px 14px;background:var(--bg-card-hover)}.traversal-title{font-size:13px;font-weight:800;color:var(--accent-primary);margin-bottom:6px;letter-spacing:.2px}.traversal-seq{color:var(--text-secondary);font-weight:600}.traversal-seq .on{color:var(--accent-primary);font-weight:800}.merge-box{display:grid;gap:8px;border-radius:16px;border:1px solid var(--border);background:var(--bg-card-hover);padding:12px}.merge-stage{border-radius:10px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-muted);font-family:JetBrains Mono,Fira Code,Cascadia Mono,Consolas,Liberation Mono,Menlo,monospace;padding:9px 11px;font-size:13px;opacity:.45;transform:translate(0);transition:transform .25s ease,border-color .25s ease,color .25s ease,background .25s ease,opacity .25s ease,box-shadow .25s ease}.merge-stage.done{opacity:.85;color:var(--text-secondary);border-color:color-mix(in srgb,var(--accent-primary) 35%,var(--border));background:var(--accent-surface);transform:translate(6px)}.merge-stage.current{opacity:1;color:var(--accent-primary);border-color:var(--accent-primary);background:color-mix(in srgb,var(--accent-surface) 76%,var(--bg-card));transform:translate(10px) scale(1.01);box-shadow:0 10px 22px color-mix(in srgb,var(--accent-primary) 18%,transparent);animation:merge-current-pulse .95s ease-in-out 1}@keyframes merge-current-pulse{0%{border-color:var(--accent-primary);box-shadow:0 10px 22px color-mix(in srgb,var(--accent-primary) 18%,transparent)}50%{border-color:var(--accent-secondary);box-shadow:0 14px 28px color-mix(in srgb,var(--accent-primary) 24%,transparent),0 0 0 3px color-mix(in srgb,var(--accent-primary) 16%,transparent)}to{border-color:var(--accent-primary);box-shadow:0 10px 22px color-mix(in srgb,var(--accent-primary) 18%,transparent)}}.bfs-canvas{position:relative;height:340px;border-radius:20px;border:1px solid var(--border);background:radial-gradient(circle at 25% 15%,var(--bg-card) 0%,var(--accent-surface) 100%);box-shadow:0 18px 40px color-mix(in srgb,var(--accent-primary) 14%,transparent)}.bfs-wrap{display:grid;gap:10px}.bfs-canvas svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.bfs-edge{stroke:color-mix(in srgb,var(--accent-primary) 64%,var(--text-muted));stroke-width:2;opacity:.65}.bfs-node{position:absolute;transform:translate(-50%,-50%);width:50px;height:50px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:800;border:2px solid color-mix(in srgb,var(--accent-primary) 34%,var(--border));background:var(--bg-card);color:var(--text-secondary);transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease,background .24s ease}.bfs-node.active{border-color:color-mix(in srgb,var(--accent-primary) 70%,var(--border));background:var(--accent-surface)}.bfs-node.current{transform:translate(-50%,-50%) scale(1.12);border-color:var(--accent-primary);background:linear-gradient(135deg,var(--accent-secondary),var(--accent-primary));color:var(--btn-fg, #fff);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent-primary) 22%,transparent)}.bfs-seq{border-radius:10px;border:1px solid var(--border);background:var(--bg-card-hover);padding:8px 10px;color:var(--text-secondary);font-weight:600}.bfs-seq .on{color:var(--accent-primary);font-weight:800}.login-action-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.login-main-btn{white-space:nowrap;min-width:160px}.login-password-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.login-email-preview{color:var(--text-secondary);font-size:14px}.login-password-error{color:var(--error);font-size:14px;font-weight:700}.input{width:100%;padding:12px 14px;border-radius:10px;border:1px solid var(--border);background:#fff;font-size:15px}.submit-panel{position:relative;display:grid;gap:10px;align-content:start;justify-items:center;padding-top:14px;padding-bottom:10px;border-style:solid;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.submit-panel.drag-active{border-color:color-mix(in srgb,var(--accent-primary) 62%,var(--border));background:color-mix(in srgb,var(--bg-card-hover) 82%,#ffffff);box-shadow:0 14px 34px #2575fd24}.submit-panel .section-title{text-align:center}.submit-pack-meta{width:min(760px,100%);margin:0 auto 2px;padding:10px 12px;border-radius:10px;border:1px solid color-mix(in srgb,var(--accent-primary) 38%,var(--border));background:color-mix(in srgb,var(--bg-card-hover) 68%,#ffffff);color:var(--text-main);text-align:center;font-size:14px}.submit-selectors{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:-2px}.submit-select{width:auto;min-width:150px;max-width:220px;height:38px;padding:6px 10px;font-size:14px;line-height:1.2}.submit-actions{display:flex;gap:12px;justify-content:center;align-items:center;flex-wrap:wrap}.submit-actions .secondary,.submit-actions .primary{min-width:168px;text-align:center}.submit-file-input{display:none}.submit-drop-zone{width:min(520px,100%);min-height:104px;display:grid;place-items:center;align-content:center;gap:6px;margin:2px auto 0;padding:18px;border:2px dashed color-mix(in srgb,var(--accent-primary) 34%,var(--border));border-radius:12px;background:color-mix(in srgb,var(--bg-card-hover) 64%,#ffffff);color:var(--text-main);cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .16s ease}.submit-drop-zone:hover,.submit-drop-zone.active{border-color:color-mix(in srgb,var(--accent-primary) 72%,var(--border));background:color-mix(in srgb,var(--bg-card-hover) 84%,#ffffff)}.submit-drop-zone.active{transform:translateY(-1px)}.submit-drop-zone.has-file{border-style:solid;border-color:color-mix(in srgb,var(--success) 52%,var(--border));background:color-mix(in srgb,var(--success) 10%,#ffffff)}.submit-drop-zone.disabled{opacity:.55;cursor:not-allowed}.submit-drop-title{max-width:100%;overflow-wrap:anywhere;text-align:center;font-size:16px;font-weight:800}.submit-drop-meta{max-width:100%;overflow-wrap:anywhere;text-align:center;color:var(--text-secondary);font-size:13px;font-weight:700}.submit-vg-btn{min-width:138px;opacity:.72}.submit-vg-btn:hover{opacity:.92}.submit-vg-actions{width:min(760px,100%);margin:4px auto 0;display:grid;justify-items:center;gap:10px}.submit-vg-guide{width:min(760px,100%);margin:0 auto 4px;border-radius:12px;border:1px solid color-mix(in srgb,var(--accent-secondary) 38%,var(--border));background:color-mix(in srgb,var(--bg-card-hover) 74%,#ffffff);padding:10px 12px;display:grid;gap:6px}.submit-vg-guide-title{font-size:14px;font-weight:800;font-style:italic;color:var(--text-main)}.submit-vg-guide-line{font-size:13px;font-weight:700;font-style:italic;color:var(--text-secondary)}.submit-hint,.submit-file{text-align:center}.submit-file-row{display:inline-flex;align-items:center;gap:8px}.submit-file-clear{width:24px;height:24px;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--bg-card-hover) 78%,#ffffff);color:var(--text-secondary);font-size:14px;line-height:1;font-weight:900;cursor:pointer}.submit-file-clear:hover{border-color:color-mix(in srgb,var(--accent-secondary) 46%,var(--border));color:var(--text-main)}.submit-textarea{width:min(520px,100%);min-height:92px;max-height:160px;margin:0 auto;resize:vertical;font-family:JetBrains Mono,Fira Code,Cascadia Mono,Consolas,Liberation Mono,Menlo,monospace}.submit-comment{width:min(520px,100%);min-height:72px;max-height:130px;margin:0 auto;resize:vertical;font-family:JetBrains Mono,Fira Code,Cascadia Mono,Consolas,Liberation Mono,Menlo,monospace}.submit-success{margin:4px auto 0;padding:10px 14px;border-radius:10px;border:1px solid rgba(47,143,91,.45);background:#2f8f5b24;color:#1e6f45;font-weight:700;text-align:center;animation:submit-pop .35s ease}.submit-sync-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182675;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:70;padding:20px}.submit-sync-window{width:min(580px,96vw);border-radius:14px;border:1px solid var(--border);background:var(--bg-panel);box-shadow:var(--shadow-soft);padding:22px 20px 18px;display:grid;gap:12px;justify-items:center;text-align:center}.submit-sync-window.ready{border-color:color-mix(in srgb,var(--success) 45%,var(--border))}.submit-sync-window.error{border-color:#ad393980}.submit-sync-title{margin:0;font-size:20px;font-weight:800;color:var(--text-main)}.submit-sync-hint{margin:0;color:var(--text-secondary)}.submit-sync-spinner{width:40px;height:40px;border-radius:50%;border:3px solid color-mix(in srgb,var(--accent-primary) 24%,transparent);border-top-color:var(--accent-primary);animation:submit-sync-spin .9s linear infinite}@keyframes submit-sync-spin{to{transform:rotate(360deg)}}@keyframes submit-pop{0%{opacity:0;transform:translateY(6px) scale(.98);box-shadow:0 0 #2f8f5b00}to{opacity:1;transform:translateY(0) scale(1);box-shadow:0 8px 22px #2f8f5b2e}}@media (max-width: 1200px){.packs-shell{grid-template-columns:1fr}}@media (max-width: 900px){.app-shell,.app-shell.sidebar-open{grid-template-columns:1fr}.content-shell{margin-left:72px}.app-shell{--sidebar-w: 72px}.app-shell.sidebar-open{--sidebar-w: min(82vw, 320px)}.sidebar,.sidebar.expanded{position:fixed;top:0;left:0;right:auto;bottom:0;width:var(--sidebar-w);overflow-y:auto;z-index:1000}.submit-selectors{display:grid;grid-template-columns:1fr;max-width:420px;margin:0 auto}.submit-select{width:100%;height:38px}.header{justify-content:space-between;padding:16px 20px;gap:10px;flex-wrap:wrap}.header-greeting-shell{width:100%}.header-greeting{text-align:left;width:100%}.header-right{width:auto;max-width:100%;flex:1 1 100%;box-sizing:border-box;justify-content:flex-end}.glow-panel{width:min(94vw,340px);right:0}.glow-grid{grid-template-columns:1fr}.login-layout{grid-template-columns:1fr;grid-template-rows:auto auto auto;gap:18px;padding:20px}.login-site-footer{grid-row:3;min-height:112px}.login-footer-icon{width:112px;height:112px}.login-page{max-width:none;padding:24px 20px}.tree-canvas{height:300px}.login-action-row,.login-password-row{grid-template-columns:1fr}.login-main-btn{width:100%}}@media (max-width: 900px){.header-right{width:auto;max-width:100%;flex:0 1 auto;margin-left:auto}}@media (max-width: 480px){.app-shell{--sidebar-w: min(78vw, 280px)}.content-shell{margin-left:0;width:100%;max-width:100%}.sidebar,.sidebar.expanded{transform:translate(-100%);transition:transform .2s ease;z-index:1002}.app-shell.sidebar-open .sidebar{transform:translate(0)}.sidebar .nav-button{padding:10px 6px}.sidebar-toggle{display:none}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0e1880;z-index:1000}.header{position:fixed;top:0;left:0;right:0;width:100%;box-sizing:border-box;z-index:1001;padding:10px 14px;gap:8px}.mobile-page-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;min-height:40px;flex:none;border-radius:10px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-main);padding:0;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.mobile-page-toggle svg{width:20px;height:20px}.header-greeting-shell,.header-greeting,.subject-switcher{display:none}.glow-control .glow-toggle{height:40px;padding:0 11px;border-radius:10px}.glow-control .glow-toggle svg{width:20px;height:20px}.settings-toggle-label{display:none}.glow-settings-layout{grid-template-columns:1fr;gap:12px;min-height:0}.glow-settings-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:0 0 12px;border-right:0;border-bottom:1px solid var(--border)}.glow-tab{padding:8px}.glow-tab span{display:none}.glow-settings-content{max-height:none;overflow:visible;padding:0}.glow-theme-footer{align-items:stretch;flex-direction:column}.glow-theme-footer>span{max-width:none}.glow-theme-footer .secondary{width:100%}.glow-panel{position:fixed;top:68px;left:50%;right:auto;transform:translate(-50%);width:min(94vw,520px);max-height:calc(100dvh - 84px);overflow-y:auto;z-index:1003}.role-student .sidebar [data-nav-id=packs]{display:none}.greeting-text{font-size:.95em}.main-area{padding:72px 12px 12px}.card,.panel,.quiz-card{padding:16px}.primary,.secondary,.ghost{padding:12px 14px;font-size:14px;min-height:44px}input,select,textarea{font-size:16px}.login-page{padding:18px 14px}.login-site-footer{gap:10px}.tree-canvas{height:220px}.pack-list{max-height:none}.card-grid,.packs-shell-compact .card-grid{grid-template-columns:1fr;max-height:none}.app-shell.page-packs{height:auto;overflow:visible}.app-shell.page-packs .main-area{overflow:visible}}.login-card{background:color-mix(in srgb,var(--bg-card) 92%,transparent);color:var(--text-primary);box-shadow:0 18px 38px color-mix(in srgb,var(--accent-primary) 14%,transparent);animation:login-card-enter .5s cubic-bezier(.2,.8,.2,1) both}.login-footer-icon{animation:login-logo-enter .7s cubic-bezier(.2,.8,.2,1) both}@keyframes login-logo-enter{0%{opacity:0;transform:translateY(10px) scale(.94)}to{opacity:1;transform:none}}.login-card-shake{animation:login-card-shake .42s cubic-bezier(.36,.07,.19,.97) both}.login-title{animation:login-fade-in .3s ease both}.login-stage{overflow:hidden;margin:-6px;transition:height .32s cubic-bezier(.2,.8,.2,1)}.login-stage-inner{display:grid;gap:16px;padding:6px}.login-step{display:grid;gap:16px;animation:login-step-in .34s cubic-bezier(.2,.8,.2,1) both}.login-caption{margin:0}.login-card .input{transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.login-card .input:focus{border-color:var(--accent-secondary);box-shadow:0 0 0 3px var(--focus-ring);outline:none}.login-card button{transition:transform .12s ease,box-shadow .18s ease,background-color .18s ease,opacity .18s ease}.login-card button:not(:disabled):active{transform:scale(.97)}.login-main-btn.is-loading{position:relative;color:transparent}.login-main-btn.is-loading:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:18px;height:18px;border-radius:50%;border:2px solid var(--btn-fg);border-right-color:transparent;animation:login-spin .7s linear infinite}.login-message{font-size:14px;font-weight:700;animation:login-message-in .26s ease both}.login-message-error{color:var(--error);padding:10px 12px;border-radius:10px;border:1px solid color-mix(in srgb,var(--error) 40%,transparent);background:color-mix(in srgb,var(--error) 10%,transparent)}.login-code-cells{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;min-width:0;cursor:text}.login-code-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;border:0;font-size:16px;caret-color:transparent}.login-code-cell{display:grid;place-items:center;height:48px;border-radius:10px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);font-size:22px;font-weight:800;transition:border-color .18s ease,box-shadow .18s ease}.login-code-cell.is-filled{border-color:var(--accent-secondary);animation:login-cell-pop .22s cubic-bezier(.2,.8,.2,1) both}.login-code-cells:focus-within .login-code-cell.is-current{border-color:var(--accent-secondary);box-shadow:0 0 0 3px var(--focus-ring)}@keyframes login-card-enter{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}@keyframes login-step-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:none}}@keyframes login-fade-in{0%{opacity:0}to{opacity:1}}@keyframes login-message-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@keyframes login-card-shake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-6px)}40%,60%{transform:translate(6px)}}@keyframes login-cell-pop{0%{transform:scale(.8)}60%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes login-spin{to{transform:rotate(360deg)}}@media (max-width: 480px){.login-code-cells{gap:6px}.login-code-cell{height:44px;font-size:20px}}@media (prefers-reduced-motion: reduce){.login-card,.login-card-shake,.login-title,.login-step,.login-message,.login-code-cell.is-filled,.login-footer-icon{animation:none}.login-stage,.login-card .input,.login-card button,.login-code-cell{transition:none}.login-card button:not(:disabled):active{transform:none}.login-main-btn.is-loading:after{animation-duration:2s}}.submission-view{display:grid;gap:12px}.submission-view-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.submission-meta-grid{display:flex;flex-direction:column;gap:6px;color:var(--text-secondary)}.submission-reason{border:1px solid var(--border);border-radius:10px;background:var(--bg-card-hover);padding:10px 12px}.submission-reason.error{border-color:#b43a3a59;background:#b43a3a14}.submission-integrity-panel{display:grid;gap:8px}.submission-integrity-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--bg-card-hover);padding:10px 12px}.submission-integrity-row.flagged{border-color:#b43a3a59;background:#b43a3a14}.submission-integrity-label{font-weight:700}.submission-integrity-actions{margin-left:auto;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.submission-integrity-actions:empty{display:none}@media (max-width: 560px){.submission-integrity-actions{margin-left:0;flex-basis:100%}}.submission-integrity-error{color:var(--error);flex-basis:100%}.submission-code-panel{border:1px solid #273248;border-radius:14px;background:linear-gradient(160deg,#111827,#0d1524);overflow:hidden;box-shadow:0 12px 28px #08122659}.role-student .submission-code-panel{border-color:#1f376d;background:linear-gradient(160deg,#162b55,#0f2347);box-shadow:0 12px 28px #102c5f6b}.role-teacher .submission-code-panel{border-color:#1f1f1f;background:linear-gradient(160deg,#151515,#0d0d0d);box-shadow:0 12px 28px #00000070}.role-admin .submission-code-panel,.role-lecturer .submission-code-panel{border-color:color-mix(in srgb,var(--theme-sidebar-end) 72%,#000000);background:radial-gradient(circle at 25% 0%,var(--theme-sidebar-start) 0%,var(--theme-sidebar-mid) 46%,var(--theme-sidebar-end) 100%);box-shadow:0 12px 28px #00000080}.submission-code-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid rgba(151,168,196,.22);background:#101a2cdb}.role-student .submission-code-toolbar{border-bottom-color:color-mix(in srgb,var(--theme-sidebar-end) 52%,#ffffff);background:linear-gradient(120deg,color-mix(in srgb,var(--theme-sidebar-mid) 92%,#000000),color-mix(in srgb,var(--theme-sidebar-end) 90%,#000000))}.role-teacher .submission-code-toolbar,.role-admin .submission-code-toolbar,.role-lecturer .submission-code-toolbar{border-bottom-color:color-mix(in srgb,var(--theme-sidebar-end) 50%,#ffffff);background:linear-gradient(120deg,color-mix(in srgb,var(--theme-sidebar-mid) 92%,#000000),color-mix(in srgb,var(--theme-sidebar-end) 90%,#000000))}.submission-code-title{color:#d9e6ff;font-size:13px;font-weight:800;letter-spacing:.3px;text-transform:uppercase}.submission-code-actions{display:inline-flex;align-items:center;gap:8px}.submission-code-lang{border:1px solid rgba(122,171,255,.45);border-radius:999px;color:#d9e8ff;background:#5077b34d;padding:4px 8px;font-size:11px;font-weight:700;line-height:1}.submission-copy-btn{border-color:#7aabff73;color:#dce8ff;background:#5077b338;font-size:12px;font-weight:700;padding:7px 10px}.submission-copy-btn:hover{border-color:#8fbaffcc;box-shadow:0 0 0 2px #5077b32e}.submission-code-pre{margin:0;padding:14px 16px;overflow-x:auto;overflow-y:visible;max-height:none}.submission-code-with-lines{display:grid;gap:0;font-size:15px;line-height:1.65;font-family:JetBrains Mono,Fira Code,Cascadia Mono,Consolas,Liberation Mono,Menlo,monospace;color:#dbe8ff;white-space:pre}.submission-code-row{display:grid;grid-template-columns:minmax(40px,auto) 1fr;align-items:start}.submission-code-ln{-webkit-user-select:none;user-select:none;color:#8ea3c4;opacity:.9;text-align:right;padding-right:12px;border-right:1px solid rgba(151,168,196,.22);margin-right:12px}.submission-code-line{display:block;min-height:1.65em}.submission-code-pre code,.submission-code-pre .hljs{display:block;background:transparent;color:#dbe8ff;font-size:15px;line-height:1.65;font-family:JetBrains Mono,Fira Code,Cascadia Mono,Consolas,Liberation Mono,Menlo,monospace}.submission-code-pre .hljs-keyword,.submission-code-pre .hljs-type,.submission-code-pre .hljs-literal{color:#7eb2ff;font-weight:700}.submission-code-pre .hljs-title.function_,.submission-code-pre .hljs-title.function{color:#f8d078;font-weight:700}.submission-code-pre .hljs-string{color:#79e8c8;font-weight:650}.submission-code-pre .hljs-number{color:#ffb86c;font-weight:650}.submission-code-pre .hljs-comment{color:#90a2bf;font-style:italic}.forbidden-panel{border:1px solid color-mix(in srgb,var(--accent) 18%,var(--border));background:radial-gradient(circle at 20% 10%,#d74b5a1f,#101a2c00 48%),linear-gradient(180deg,#101a2c61,#101a2c1f)}.role-student .forbidden-panel{border-color:#7aabff59;background:radial-gradient(circle at 20% 10%,#7aabff2e,#101a2c00 52%),linear-gradient(180deg,#0f23476b,#0f23472e)}.forbidden-hero{display:grid;justify-items:center;text-align:center;gap:10px;padding:18px 12px 10px}.forbidden-cross{width:92px;height:92px;color:#d74b5af2;filter:drop-shadow(0 14px 24px rgba(215,75,90,.12))}.forbidden-title{font-size:28px;font-weight:900;letter-spacing:.2px;color:var(--text-main)}.forbidden-hint{font-size:12px;color:var(--text-muted)}.forbidden-home{margin-top:8px;font-weight:800}.submission-testing-screen{min-height:52vh;display:grid;place-items:center;align-content:center;gap:16px}.submission-testing-title{font-size:28px;font-weight:900;letter-spacing:1.2px;text-transform:uppercase;color:var(--text-main)}.submission-cancel-control{display:grid;justify-items:center;gap:8px}.submission-cancel-control [role=alert]{color:var(--danger, #b42318);text-align:center}.submission-observer-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--border)}.submission-observer-row:last-child{border-bottom:0}.submit-methods{display:inline-flex;flex-wrap:wrap;gap:2px;margin:12px 0 8px;padding:3px;border:1px solid var(--border);border-radius:999px}.submit-methods button{padding:6px 16px;border:0;border-radius:999px;background:transparent;box-shadow:none;color:var(--text-secondary);cursor:pointer;font:inherit}.submit-methods button.active{background:var(--accent-primary);color:var(--btn-fg, #fff)}.submit-methods button:disabled{cursor:default;opacity:.6}.submit-options-row{width:min(760px,100%);display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px 24px;margin:4px auto 8px}.submit-options-row .submit-methods{margin:0}.submit-toolchain,.submit-compiler-select{display:flex;align-items:center;gap:10px;color:var(--text-secondary)}.submit-compiler-select .submit-select{min-width:230px;max-width:min(440px,80vw)}.submit-compiler-label{color:var(--text-secondary);font-size:14px;font-weight:600;text-decoration:none}.submit-compiler-label:hover{color:var(--accent-primary);text-decoration:underline}.submit-actions{margin-top:4px}.submit-actions .primary{min-width:200px}@media (max-width: 560px){.submit-options-row{align-items:stretch;flex-direction:column;gap:10px}.submit-toolchain,.submit-compiler-select{align-items:stretch;flex-direction:column}.submit-compiler-select .submit-select{width:100%;max-width:none}}.submit-format-hint{margin:0 0 12px;color:var(--text-secondary);line-height:1.5}.submit-github-url{width:100%;box-sizing:border-box;margin-bottom:12px}.submission-archive-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.submission-archive-badges{display:inline-flex;gap:8px;flex-wrap:wrap}.submission-archive-badge{border-radius:999px;border:1px solid color-mix(in srgb,var(--accent-secondary) 32%,var(--border));background:color-mix(in srgb,var(--bg-card-hover) 78%,#ffffff);color:var(--text-secondary);font-size:12px;font-weight:800;padding:5px 10px}.submission-download-btn{padding:6px 10px;font-size:12px;font-weight:800}.submission-tabs{display:inline-flex;gap:8px}.submission-tab{padding:8px 11px;font-size:12px}.submission-tab.active{border-color:color-mix(in srgb,var(--accent-primary) 45%,var(--border));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent-primary) 18%,transparent)}.submission-archive-grid{display:grid;grid-template-columns:1fr;gap:10px}.submission-archive-list{border:1px solid var(--border);border-radius:12px;background:var(--bg-card);padding:8px;overflow-x:auto;overflow-y:hidden;display:flex;align-items:stretch;flex-wrap:nowrap;gap:6px}.submission-archive-item{flex:0 0 auto;min-width:220px;max-width:360px;text-align:left;border:1px solid color-mix(in srgb,var(--accent-secondary) 20%,var(--border));background:color-mix(in srgb,var(--bg-card-hover) 70%,#ffffff);color:var(--text-main);border-radius:10px;padding:8px 10px;display:grid;gap:3px}.submission-archive-item.active{border-color:color-mix(in srgb,var(--accent-primary) 42%,var(--border));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent-primary) 14%,transparent)}.submission-archive-item.disabled{opacity:.62}.submission-archive-item-name{font-family:JetBrains Mono,Fira Code,Cascadia Mono,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;overflow-wrap:anywhere}.submission-archive-item-size{font-size:11px;color:var(--text-muted)}.submission-archive-main{position:relative;min-width:0;display:grid;gap:8px}.submission-archive-empty{font-size:12px;color:var(--text-muted);padding:10px}.submission-inline-note{font-size:12px;color:var(--text-secondary)}.submission-inline-note.error{color:var(--error)}.submission-logs-panel{display:grid;gap:10px}.submission-log-mode{font-size:12.5px;padding:8px 12px;border-radius:10px;border:1px solid var(--border)}.submission-log-mode.student{background:var(--bg-panel);color:var(--text-secondary)}.submission-log-mode.admin{background:#d299221f;border-color:#d2992266}.submission-runner-events{display:grid;gap:6px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--bg-panel);font-size:12px}.submission-runner-event{display:flex;justify-content:space-between;gap:12px;color:var(--text-secondary)}.submission-log-card{border:1px solid var(--border);border-radius:12px;background:var(--bg-card);overflow:hidden}.submission-log-head{padding:8px 10px;border-bottom:1px solid var(--border);font-size:12px;font-weight:900;color:var(--text-secondary)}.submission-log-pre{margin:0;padding:10px 12px;max-height:320px;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.45;color:var(--text-main);font-family:JetBrains Mono,Fira Code,Cascadia Mono,Consolas,Liberation Mono,Menlo,monospace}@media (max-width: 920px){.submission-archive-list{padding-bottom:10px}.submission-archive-item{min-width:170px;max-width:280px}}.group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.group-card{border:1px solid var(--border);border-radius:12px;background:var(--bg-card);color:var(--text-main);padding:12px;text-align:left;cursor:pointer;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease,background .2s ease}.group-card:hover{transform:translateY(-1px);border-color:var(--accent-secondary);box-shadow:0 8px 20px #5077b329}.group-card.selected{border-color:var(--accent-secondary);background:var(--bg-card-hover);box-shadow:0 0 0 3px #5077b32e}.group-card-title{font-size:15px;font-weight:800}.group-card-meta{margin-top:4px;font-size:13px;color:var(--text-secondary)}.group-card.taken{cursor:not-allowed;opacity:.6}.group-card.taken:hover{transform:none;border-color:var(--border);box-shadow:none}.group-card-owner{margin-top:6px;font-size:12px;font-weight:700}.group-card-owner.free{color:var(--success)}.group-card-owner.mine{color:var(--accent-secondary)}.group-card-owner.taken{color:var(--text-muted)}.group-save-error{margin-top:12px;font-size:13px;color:var(--error)}.teacher-groups-separator{margin:16px 0 12px;height:1px;background:var(--border)}.teacher-groups-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.teacher-groups-head .section-title{margin:0}.teacher-groups-title{margin:0;font-size:15px;font-weight:800;color:var(--text-main)}.teacher-groups-headline{margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.teacher-groups-switch-row{display:flex;align-items:center;gap:14px;margin-top:10px;margin-bottom:12px}.teacher-groups-switch-row .primary,.teacher-groups-switch-row .secondary{height:40px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;color:#f4f8ff}.teacher-groups-switch-row .teacher-groups-switch-btn.active{background:#f4f8ff;color:#0b1220;border-color:#f4f8ffe6;box-shadow:0 0 0 3px #f4f8ff59,0 12px 26px #0000002e;transform:translateY(-1px)}.teacher-groups-switch-row .teacher-groups-switch-btn:not(.active){opacity:.78}.teacher-groups-switch-row .teacher-groups-switch-btn:not(.active):hover{opacity:.92}.teacher-groups-switch-row .teacher-groups-switch-btn.active:hover{transform:translateY(-1px)}.teacher-groups-picked{font-size:13px;font-weight:700;color:var(--text-secondary)}.teacher-groups-headline .secondary{color:#f4f8ff}.teacher-groups-refresh{color:#f4f8ff;height:40px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center}.teacher-pack-filters{display:inline-flex;align-items:center;gap:8px}.teacher-pack-search-row{display:flex;justify-content:flex-end;margin-bottom:8px}.teacher-pack-select{height:40px;min-width:150px;padding:0 10px;margin:0;line-height:1}.teacher-pack-search-input{min-width:260px;width:340px;flex:0 0 auto;max-width:100%}.teacher-pack-search-wrap{width:min(340px,100%)}.teacher-pack-search-wrap .teacher-pack-search-input{width:100%}@media (max-width: 1000px){.teacher-groups-switch-row{flex-wrap:wrap}.teacher-groups-switch-row>button{min-width:0;max-width:100%}.teacher-pack-search-input{width:100%;flex:1 1 240px}.teacher-pack-search-wrap{width:100%}.teacher-pack-search-row{justify-content:stretch}}.teacher-groups-empty{margin-top:10px;padding:10px 12px;border:1px dashed var(--border);border-radius:10px;background:var(--bg-card-hover);color:var(--text-secondary);font-size:13px}.teacher-pack-table-shell{position:relative}.teacher-pack-table-wrap{position:relative;--pack-table-bg: var(--bg-card-hover);--pack-sticky-bg: var(--bg-card);max-width:100%;max-height:calc(100vh - 210px);margin-top:8px;border:1px solid var(--border);border-radius:12px;background:var(--pack-table-bg);overflow:auto;overscroll-behavior:contain;scrollbar-color:#8fa8d1 var(--pack-table-bg);scrollbar-width:thin}.teacher-pack-table{min-width:max-content;border-collapse:separate;border-spacing:0;background:var(--pack-table-bg)}.teacher-pack-table th,.teacher-pack-table td{white-space:nowrap;background:var(--pack-table-bg)}.teacher-pack-table th{position:sticky;top:0;z-index:5;background:var(--bg-card-hover)}.teacher-pack-table .teacher-pack-index-col{position:sticky;left:0;z-index:4;min-width:48px;background:var(--pack-sticky-bg);background-clip:padding-box}.teacher-pack-table .teacher-pack-student-col{position:sticky;left:48px;z-index:4;min-width:260px;max-width:320px;background:var(--pack-sticky-bg);background-clip:padding-box}.teacher-pack-table .teacher-pack-group-col{position:sticky;left:308px;z-index:4;min-width:86px;background:var(--pack-sticky-bg);background-clip:padding-box;border-right:2px solid var(--border);box-shadow:10px 0 16px #0f253f1f}.teacher-pack-table thead .teacher-pack-index-col,.teacher-pack-table thead .teacher-pack-student-col,.teacher-pack-table thead .teacher-pack-group-col{z-index:6;background:var(--pack-sticky-bg);background-clip:padding-box}.teacher-pack-table tbody tr{background:var(--pack-table-bg)}.teacher-pack-table tbody tr td.teacher-pack-index-col,.teacher-pack-table tbody tr td.teacher-pack-student-col,.teacher-pack-table tbody tr td.teacher-pack-group-col{background:var(--pack-sticky-bg)}.teacher-pack-table tbody tr:nth-child(odd) td.teacher-pack-index-col,.teacher-pack-table tbody tr:nth-child(odd) td.teacher-pack-student-col,.teacher-pack-table tbody tr:nth-child(odd) td.teacher-pack-group-col{background:#f4f7fc}.teacher-pack-table tbody tr:hover td.teacher-pack-index-col,.teacher-pack-table tbody tr:hover td.teacher-pack-student-col,.teacher-pack-table tbody tr:hover td.teacher-pack-group-col{background:#e7eef8}.teacher-pack-scroll-top{max-width:100%;overflow-x:auto;overflow-y:hidden;scrollbar-color:#8fa8d1 var(--bg-card-hover);scrollbar-width:thin}.teacher-pack-scroll-top>div{height:1px}.teacher-pack-scroll-top::-webkit-scrollbar{height:12px}.teacher-pack-scroll-top::-webkit-scrollbar-track{background:var(--bg-card-hover)}.teacher-pack-scroll-top::-webkit-scrollbar-thumb{background:#8fa8d1;border-radius:999px;border:2px solid var(--bg-card-hover)}.teacher-pack-scroll-top::-webkit-scrollbar-thumb:hover{background:#7592c4}.teacher-pack-table-wrap::-webkit-scrollbar{height:12px;width:12px}.teacher-pack-table-wrap::-webkit-scrollbar-track{background:var(--pack-table-bg)}.teacher-pack-table-wrap::-webkit-scrollbar-thumb{background:#8fa8d1;border-radius:999px;border:2px solid var(--pack-table-bg)}.teacher-pack-table-wrap::-webkit-scrollbar-thumb:hover{background:#7592c4}.teacher-pack-table-wrap::-webkit-scrollbar-corner{background:var(--pack-table-bg)}.pack-cell-status{font-weight:800}.pack-cell-status.ok{color:var(--success)}.pack-cell-status.fail{color:var(--error)}.pack-cell-status.empty{color:var(--text-muted)}.teacher-student-cell{display:inline-flex;align-items:center;gap:8px}.teacher-copy-grades{width:26px;height:26px;border:1px solid var(--accent-secondary);border-radius:8px;background:var(--bg-card);color:var(--accent-secondary);font-weight:900;cursor:pointer}.teacher-copy-grades:hover{transform:translateY(-1px);box-shadow:0 6px 14px #5077b329}.teacher-copy-grades-ico{width:14px;height:14px;display:inline-flex}.teacher-pack-panel{position:relative}.teacher-pack-toast-layer{position:absolute;left:20px;top:14px;z-index:5;display:grid;gap:8px;pointer-events:none}.teacher-pack-toast{width:fit-content;border-radius:9px;font-weight:800;font-size:13px;padding:6px 10px;box-shadow:0 10px 24px #0f253f1f}.teacher-pack-toast.ok{border:1px solid rgba(47,143,91,.5);background:#2f8f5b24;color:#1e6f45}.teacher-pack-toast.error{border:1px solid rgba(215,75,90,.55);background:#d74b5a1f;color:#a12834}.pack-cell-wrap{display:grid;gap:6px;min-width:172px}.pack-cell-mark{font-size:12px;font-weight:800;color:var(--text-secondary)}.pack-cell-time{font-size:11px;color:var(--text-muted)}.pack-cell-code-btn{width:fit-content;border-radius:8px;border:1px solid var(--accent);background:#2575fd14;color:var(--accent);font-size:12px;font-weight:800;padding:4px 8px;cursor:pointer}.pack-cell-code-btn:disabled{opacity:.6;cursor:not-allowed}.pack-cell-code-actions{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.pack-cell-actions{display:inline-flex;gap:6px}.pack-note-preview{font-size:11px;line-height:1.2;color:var(--text-secondary);border:1px dashed var(--border);border-radius:8px;padding:4px 6px;max-width:240px;white-space:normal}.pack-note-edit-btn{border-radius:8px;border:1px solid var(--accent-secondary);background:var(--bg-card);color:var(--accent-secondary);font-size:12px;font-weight:800;padding:2px 6px;cursor:pointer;width:fit-content}.pack-note-editor{display:grid;gap:6px}.pack-note-input{width:100%;min-height:62px;resize:vertical;border:1px solid var(--border);border-radius:8px;padding:6px 8px;font-size:12px;background:var(--bg-card);color:var(--text-main)}.pack-note-actions{display:inline-flex;gap:6px}.pack-note-save-btn,.pack-note-cancel-btn{border-radius:8px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-main);font-size:11px;font-weight:800;padding:3px 7px;cursor:pointer}.pack-note-save-btn{border-color:#2f8f5b;color:#2f8f5b}.pack-approve-btn,.pack-reject-btn{border-radius:8px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-main);font-size:11px;font-weight:800;padding:3px 6px;cursor:pointer}.pack-approve-btn.active{border-color:#2f8f5b;background:#2f8f5b24;color:#2f8f5b}.pack-reject-btn.active{border-color:#c94a4a;background:#c94a4a24;color:#c94a4a}.pack-approve-btn:disabled,.pack-reject-btn:disabled{opacity:.6;cursor:default}.group-filter-strip{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.group-filter-square{min-width:140px;border:1px solid var(--border);border-radius:10px;background:var(--bg-card);color:var(--text-main);padding:8px 10px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.group-filter-square:hover{border-color:var(--accent-secondary);box-shadow:0 6px 18px #5077b32e}.group-filter-square.selected{border-color:var(--accent-secondary);background:var(--bg-card-hover);box-shadow:0 0 0 2px #5077b32e}.group-filter-check{width:18px;height:18px;border-radius:4px;border:1px solid var(--accent-soft);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:900;line-height:1}.group-filter-label{font-size:13px;font-weight:700}.group-indicator{display:inline-flex;align-items:center;gap:6px;border-radius:999px;border:1px solid var(--border);padding:4px 8px;color:var(--text-main);background:var(--bg-card-hover)}.group-indicator-icon{width:14px;height:14px;color:var(--accent-secondary);display:inline-flex}.group-indicator-text{font-size:12px;font-weight:800}.teacher-groups-rating-shell,.teacher-pack-table-shell{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 560px){.teacher-groups-head,.teacher-groups-headline{flex-wrap:wrap}.teacher-pack-filters{flex-wrap:wrap;width:100%}.teacher-pack-select{min-width:0;flex:1 1 140px}.teacher-groups-refresh{flex:1 1 100%}}.sidebar-fill{flex:1}.sidebar-footer{display:flex;justify-content:center;padding:10px 0 8px}.sidebar-presence{display:flex;align-items:center;justify-content:center}.presence-dot{width:18px;height:18px;border-radius:999px;border:2px solid rgba(255,255,255,.72);background:#ffffff1f;box-shadow:0 0 0 3px #0000002e;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}.presence-dot:hover{transform:translateY(-1px) scale(1.06)}.presence-dot.ok{background:#4dff6a38;border-color:#4dff6adb;box-shadow:0 0 0 3px #4dff6a2e}.presence-dot.away{background:#ff5f5f2e;border-color:#ff5f5fd1;box-shadow:0 0 0 3px #ff5f5f24}.online-panel{position:fixed;z-index:1200;width:min(520px,calc(100vw - 32px));background:#141820eb;border:1px solid rgba(255,255,255,.14);border-radius:14px;color:#f4f8ff;box-shadow:0 18px 42px #00000052;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);overflow:hidden;transform:scale(.92);opacity:0;animation:online-panel-in .16s ease-out forwards}@keyframes online-panel-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.online-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 12px 8px;border-bottom:1px solid rgba(255,255,255,.1)}.online-panel-title{font-weight:900;letter-spacing:.06em;text-transform:uppercase;font-size:13px}.online-panel-actions{display:inline-flex;align-items:center;gap:8px}.online-panel-btn{padding:8px 10px;border-radius:10px;font-size:13px;font-weight:800}.online-panel-meta{padding:10px 12px 0;font-size:13px;color:#f4f8ffd1}.online-panel-error{margin:10px 12px 0;padding:8px 10px;border-radius:12px;border:1px solid rgba(255,95,95,.25);background:#ff5f5f1f;color:#ffdadafa;font-size:13px;font-weight:800}.online-panel-table-wrap{padding:10px 12px 12px;max-height:520px;overflow:auto}.online-panel-table{background:transparent}.online-panel-table th,.online-panel-table td{color:#f4f8ffeb}.online-panel-table th{background:#ffffff0f;border-bottom-color:#ffffff24}.online-panel-table td{border-bottom-color:#ffffff14}.online-row.role-admin td,.online-row.role-lecturer td{box-shadow:inset 4px 0 #4dff6abf}.online-row.role-teacher td{box-shadow:inset 4px 0 #5fd4ffb3}.online-row.role-student td{box-shadow:inset 4px 0 #ffffff1f}.online-role-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:900;letter-spacing:.02em;border:1px solid rgba(255,255,255,.16);background:#ffffff0f;color:#f4f8ffeb;white-space:nowrap}.online-role-pill.role-admin,.online-role-pill.role-lecturer{border-color:#4dff6a59;background:#4dff6a24;color:#dcffe4fa}.online-role-pill.role-teacher{border-color:#5fd4ff52;background:#5fd4ff1f;color:#dcf8fffa}.online-role-pill.role-student{border-color:#ffffff24;background:#ffffff0d;color:#f4f8ffe0}.online-cell-name{font-weight:900}.online-panel-empty{margin-top:10px;padding:10px 12px;border:1px dashed rgba(255,255,255,.22);border-radius:12px;color:#f4f8ffb3;font-size:13px}.lc-console{display:flex;flex-direction:column;gap:18px}.lc-console button:where(:not(.lc-tab,.lc-btn-ok,.lc-btn-warn,.lc-btn-danger)){padding:7px 12px;border:1px solid var(--border);border-radius:7px;background:var(--bg-panel);color:var(--text-main);font-size:12px;line-height:1.25;cursor:pointer;transition:background .15s ease,border-color .15s ease}.lc-console button:where(:not(.lc-tab,.lc-btn-ok,.lc-btn-warn,.lc-btn-danger)):hover{background:var(--bg-card-hover);border-color:var(--accent-soft)}.lc-console button:where(:not(.lc-tab)):disabled{opacity:.5;cursor:default}.lc-console :where(select,input[type=number],input[type=datetime-local],input[type=text]){padding:6px 9px;border:1px solid var(--border);border-radius:7px;background:var(--bg-card);color:var(--text-main);font-family:inherit;font-size:12px}.lc-console :where(.lc-btn-ok,.lc-btn-warn,.lc-btn-danger){padding:7px 14px;font-size:12px;line-height:1.25}.lc-header{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}.lc-header h3{margin:0}.lc-context{display:flex;gap:14px;flex-wrap:wrap;color:var(--text-secondary);font-size:13px}.lc-context b{color:var(--text-main)}.lc-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);flex-wrap:wrap}.lc-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;padding:10px 18px;cursor:pointer;color:var(--text-secondary);font-size:14px;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s ease,border-color .15s ease}.lc-tab:hover{color:var(--text-main)}.lc-tab.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary);font-weight:600}.lc-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:14px}.lc-card-title{margin:0;font-size:15px;font-weight:600}.lc-card-hint{color:var(--text-muted);font-size:13px}.lc-collapse{border:1px solid var(--border);border-radius:10px;background:var(--bg-panel);overflow:hidden}.lc-collapse-head{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;border:none;background:transparent;color:var(--text-main);display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:11px 13px;cursor:pointer;text-align:left}.lc-collapse-head:hover{background:var(--bg-card-hover)}.lc-collapse-title{font-size:13px;font-weight:800;min-width:0}.lc-collapse-meta{color:var(--text-muted);font-size:12px;white-space:nowrap}.lc-collapse-icon{min-width:92px;justify-self:end;color:var(--accent-primary);font-size:12px;font-weight:800;text-align:right}.lc-collapse-body{border-top:1px solid var(--border);background:var(--bg-card)}.lc-code-example{margin:0;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-panel);color:var(--text-secondary);font-size:12px;line-height:1.5;white-space:pre-wrap;overflow-x:auto;cursor:help}.lc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.lc-nsu-credentials{grid-column:1 / -1;max-width:680px}.lc-attendance-form{grid-template-columns:minmax(0,680px);align-items:start}.lc-attendance-form .lc-field{min-width:0}.lc-attendance-form .lc-field>.input{width:100%;box-sizing:border-box}.lc-attendance-form .lc-actions{align-items:center;justify-content:flex-start}.lc-attendance-form .lc-actions>button{flex:none}.lc-nsu-credential-form,.lc-nsu-credential-saved{padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--surface-muted, rgba(0, 0, 0, .03))}.lc-nsu-credential-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.lc-nsu-credential-fields .lc-field,.lc-nsu-credential-fields .input{min-width:0;width:100%;box-sizing:border-box}.lc-nsu-credential-actions,.lc-nsu-credential-saved{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lc-nsu-credential-actions{justify-content:flex-end;margin-top:12px}.lc-nsu-credential-saved{justify-content:space-between}.lc-nsu-credential-saved .lc-nsu-credential-actions{margin-top:0}@media (max-width: 540px){.lc-nsu-credential-fields{grid-template-columns:minmax(0,1fr)}.lc-nsu-credential-actions{justify-content:flex-start}}.lc-row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.lc-header-actions{display:flex;align-items:center;gap:8px}.lc-add-toggle,.rm-add-toggle{width:36px;height:36px;flex:0 0 36px;display:inline-grid;place-items:center;padding:0;border:2px solid #f4b942;border-radius:50%;background:#f4b942;color:#17202a;box-shadow:0 2px 7px #f4b9425c;font-size:24px;font-weight:700;line-height:1;cursor:pointer}.lc-add-toggle:hover,.rm-add-toggle:hover{border-color:#ffd166;background:#ffd166;box-shadow:0 3px 10px #f4b9427a}.lc-add-toggle[aria-expanded=true],.rm-add-toggle[aria-expanded=true]{border-color:#d88916;background:#d88916;color:#fff;transform:rotate(45deg)}.lc-add-toggle:focus-visible,.rm-add-toggle:focus-visible{outline:3px solid rgba(244,185,66,.45);outline-offset:3px}.lc-inline-add-form{margin-top:12px;padding-top:12px;border-top:1px solid var(--border, #eaecf0)}.lc-freeze-row{align-items:stretch}.lc-freeze-control{display:flex;flex-direction:column;gap:10px;min-width:240px;flex:1 1 280px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-panel)}.lc-freeze-control .lc-field{min-width:0}.lc-field-hint{color:var(--text-muted);font-size:12px}.lc-field{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-secondary);min-width:160px;flex:1}.lc-check-row{display:flex;align-items:center;gap:8px;color:var(--text-main);font-size:13px}.lc-check-row input{width:16px;height:16px}.lc-field input[type=file]{padding:7px 10px;border:1px dashed var(--accent-soft);border-radius:8px;background:var(--bg-panel);color:var(--text-secondary);font-size:12px;cursor:pointer}.lc-field input[type=file]:hover{border-color:var(--accent-secondary);background:var(--bg-card-hover)}.lc-field input[type=file]::file-selector-button{margin-right:10px;padding:6px 12px;border:1px solid var(--btn-border);border-radius:6px;background:var(--btn-bg);color:var(--btn-fg);font-family:inherit;font-size:12px;cursor:pointer}.lc-field input[type=file]::file-selector-button:hover{background:var(--btn-bg-hover)}.lc-actions{display:flex;gap:8px;flex-wrap:wrap}.lc-disabled-action-hint{display:inline-flex}.lc-disabled-action-hint:focus-visible{outline:2px solid var(--focus-ring, #6aa9ff);outline-offset:3px;border-radius:6px}.lc-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.lc-stats-totals{grid-template-columns:repeat(5,minmax(0,1fr))}@media (max-width: 900px){.lc-stats-totals{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}}.lc-stat{background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:14px}.lc-stat-value{font-size:22px;font-weight:700;color:var(--accent-primary)}.lc-stat-label{font-size:12px;color:var(--text-muted);margin-top:4px}.lc-pack-table{display:flex;flex-direction:column;overflow-x:auto}.lc-pack-row{display:grid;grid-template-columns:minmax(120px,2fr) 70px minmax(128px,auto) minmax(140px,1.5fr) minmax(220px,auto);gap:10px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border);font-size:13px}.lc-pack-row>*{min-width:0}.lc-pack-status{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.lc-pack-row:last-child{border-bottom:none}.lc-pack-row.head{background:var(--bg-panel);font-weight:600;color:var(--text-secondary);font-size:12px;text-transform:uppercase;letter-spacing:.03em}.lc-pack-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.lc-quiz-table{display:flex;flex-direction:column;overflow:hidden}.lc-quiz-row{display:grid;grid-template-columns:40px minmax(140px,1.3fr) 124px 46px 148px minmax(480px,3fr);gap:12px;align-items:start;padding:12px 14px;border-bottom:1px solid var(--border);font-size:13px;cursor:pointer}.lc-quiz-row>*{min-width:0}.lc-quiz-row:not(.head)>span:nth-child(-n+4){padding-top:5px}.lc-quiz-row:last-child{border-bottom:none}.lc-quiz-row.head>span:last-child{text-align:right}.lc-quiz-row.head{background:var(--bg-panel);font-weight:600;color:var(--text-secondary);font-size:12px;text-transform:uppercase;letter-spacing:.03em;cursor:default}.lc-quiz-row.selected{background:color-mix(in srgb,var(--accent-primary) 8%,var(--bg-card))}.lc-quiz-row:not(.head):hover{background:var(--bg-card-hover)}.lc-quiz-time{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--text-secondary);line-height:1.35}.lc-quiz-time .lc-quiz-countdown{font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent-primary)}.lc-quiz-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.lc-quiz-actions-main{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.lc-quiz-controls{display:flex;flex-direction:column;align-items:flex-end;gap:6px;width:100%}.lc-quiz-controls-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.lc-quiz-controls-select{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:12px;white-space:nowrap}.lc-quiz-controls-select select{min-width:132px}.lc-quiz-controls-datetime{min-width:190px}.lc-quiz-controls-note{color:var(--text-muted);font-size:12px;white-space:nowrap}.lc-quiz-controls-note.done{color:var(--success)}.lc-quiz-controls-unit{display:inline-flex;align-items:stretch;border:1px solid var(--border);border-radius:7px;background:var(--bg-card);overflow:hidden}.lc-quiz-controls-unit input{width:58px;border:none;border-radius:0;background:transparent;text-align:right}.lc-quiz-controls-unit>span{display:inline-flex;align-items:center;padding:0 7px;border-left:1px solid var(--border);color:var(--text-muted);font-size:11px;font-weight:700}.lc-quiz-monitor-row{grid-template-columns:minmax(160px,2fr) 100px 100px 110px 90px auto;cursor:default}.lc-quiz-monitor-row.head{cursor:default}.lc-datasets-card{display:flex;flex-direction:column;gap:20px}.lc-dataset-section{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid var(--border);border-radius:10px;background:var(--bg-panel);color:var(--text-main);min-width:0}.lc-dataset-section h5{margin:0;color:var(--text-main);font-size:14px;font-weight:800}.lc-dataset-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13px}.lc-dataset-section-head span{color:var(--text-muted);font-size:12px}.lc-dataset-context-bar{flex-direction:row;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;background:var(--bg-card)}.lc-dataset-context-bar .lc-card-title{margin:0}.lc-dataset-context{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.lc-dataset-context .lc-inline-select,.lc-dataset-context .lc-inline-select select{min-width:190px}.lc-dataset-archived{padding:10px 13px;border:1px solid var(--border);border-left:3px solid var(--accent-primary);border-radius:8px;color:var(--text-secondary);font-size:13px}.lc-dataset-active-row{flex-direction:row;align-items:center;flex-wrap:wrap;gap:8px 18px}.lc-dataset-active-info{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 16px;color:var(--text-secondary);font-size:13px}.lc-dataset-active-info b{color:var(--success);font-size:15px}.lc-dataset-active-info code{color:var(--text-main);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.lc-dataset-empty{color:var(--text-muted);font-size:13px}.lc-dataset-upload-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.lc-dataset-upload .lc-field{min-width:0}.lc-dataset-upload .lc-field>span{color:var(--text-muted);font-size:11px;font-weight:400}.lc-dataset-progress{display:flex;flex-direction:column;gap:6px;color:var(--text-secondary);font-size:13px}.lc-dataset-progress progress{display:block;width:100%}.lc-dataset-actions{display:flex;flex-wrap:wrap;gap:8px}.lc-dataset-section .lc-dataset-danger,.lc-dataset-section .lc-dataset-danger:hover:not(:disabled){border:1px solid color-mix(in srgb,var(--error) 70%,var(--border));background:transparent;color:color-mix(in srgb,var(--error) 62%,var(--text-main));font-weight:700}.lc-dataset-section .lc-dataset-danger:hover:not(:disabled){background:color-mix(in srgb,var(--error) 14%,var(--bg-card))}.lc-dataset-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:8px;background:var(--bg-card)}.lc-dataset-table{width:100%;min-width:520px;border-collapse:collapse;font-size:13px}.lc-dataset-table th,.lc-dataset-table td{padding:9px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.lc-dataset-table tbody tr:last-child td{border-bottom:0}.lc-dataset-table th{color:var(--text-muted);font-size:11px;font-weight:700;text-transform:uppercase}.lc-dataset-version-name{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;min-width:0}.lc-dataset-badge{padding:1px 9px;border:1px solid var(--success);border-radius:999px;background:color-mix(in srgb,var(--success) 18%,var(--bg-card));color:color-mix(in srgb,var(--success) 55%,var(--text-main));font-size:11px;font-weight:800}.lc-dataset-note{flex-basis:100%;color:var(--text-muted);font-size:11px;line-height:1.35;overflow-wrap:anywhere}.lc-dataset-row-actions{display:flex;justify-content:flex-end;gap:6px}.lc-dataset-section .lc-dataset-mini{min-height:0;padding:4px 10px;font-size:12px}@media (max-width: 560px){.lc-dataset-section{padding:13px}.lc-dataset-context,.lc-dataset-context .lc-inline-select,.lc-dataset-context .lc-inline-select select{width:100%}.lc-dataset-upload-fields{grid-template-columns:minmax(0,1fr)}.lc-dataset-actions button{flex:1 1 100%}}@media (max-width: 900px){.lc-quiz-table{overflow:visible}.lc-quiz-row,.lc-quiz-monitor-row{grid-template-columns:1fr;gap:6px}.lc-quiz-row.head,.lc-quiz-monitor-row.head{display:none}.lc-quiz-row:not(.head)>span:nth-child(-n+4){padding-top:0}.lc-quiz-row:not(.head)>span:nth-child(1):before{content:"Тест № ";color:var(--text-muted)}.lc-quiz-row:not(.head)>span:nth-child(4):after{content:" мин.";color:var(--text-muted)}.lc-quiz-actions,.lc-quiz-controls{align-items:stretch}.lc-quiz-controls-row,.lc-quiz-actions-main{justify-content:flex-start}.lc-quiz-actions button{flex:1 1 180px;min-width:0}}.lc-quiz-preview{display:flex;flex-direction:column;gap:16px}.lc-quiz-preview-question{border:1px solid var(--border);border-radius:10px;padding:12px 14px;background:var(--bg-panel)}.lc-quiz-preview-question-text{font-weight:600;margin-bottom:8px}.lc-quiz-preview-options{display:flex;flex-direction:column;gap:4px}.lc-quiz-preview-option{display:flex;gap:8px;align-items:baseline;color:var(--text-secondary);font-size:13px}.lc-quiz-preview-option.correct{color:var(--success);font-weight:700}.lc-inline-select{display:inline-flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:13px}.lc-inline-select select{min-width:180px}.lc-task-table{display:flex;flex-direction:column;overflow-x:auto}.lc-task-row{display:grid;grid-template-columns:minmax(160px,2fr) 72px minmax(130px,1fr) 86px 92px minmax(130px,1fr) 108px 110px;gap:8px;align-items:center;min-width:980px;padding:10px 14px;border-bottom:1px solid var(--border);font-size:13px}.lc-task-row.editing{background:color-mix(in srgb,var(--accent-primary) 5%,var(--bg-card))}.lc-task-row:last-child{border-bottom:none}.lc-task-row.head{background:var(--bg-panel);font-weight:600;color:var(--text-secondary);font-size:12px;text-transform:uppercase;letter-spacing:.03em}.lc-task-empty{display:block;min-width:0;color:var(--text-muted)}.lc-task-name,.lc-task-flags{display:flex;flex-direction:column;gap:3px}.lc-task-name small{color:var(--text-muted);font-size:12px}.lc-task-value{display:inline-flex;flex-direction:column;gap:2px;min-width:0;color:var(--text-main)}.lc-task-value b{font-size:13px;font-weight:700;white-space:nowrap}.lc-task-value small{color:var(--text-muted);font-size:11px;text-transform:uppercase}.lc-task-row .input{width:100%;min-width:0;padding:7px 8px;font-size:13px;font-weight:650;text-align:right}.lc-task-split{display:grid;grid-template-columns:1fr 1fr;gap:6px}.lc-field-unit{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;border:1px solid var(--border);border-radius:8px;background:var(--bg-card);overflow:hidden}.lc-field-unit .input{border:none;border-radius:0;background:transparent;padding-right:6px}.lc-field-unit span{min-width:32px;padding:0 7px;color:var(--text-muted);font-size:11px;font-weight:700;text-align:center;border-left:1px solid var(--border)}.lc-task-flags label{display:inline-flex;align-items:center;gap:5px;color:var(--text-secondary);font-size:12px}.lc-task-flags.editing label{font-weight:700}.lc-task-badges{display:inline-flex;gap:5px;flex-wrap:wrap}.lc-chip{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:2px 8px;border-radius:999px;border:1px solid var(--border);background:var(--bg-panel);color:var(--text-muted);font-size:11px;font-weight:800}.lc-chip.active{border-color:color-mix(in srgb,var(--accent-primary) 38%,#fff);background:color-mix(in srgb,var(--accent-primary) 12%,#fff);color:var(--accent-primary)}.lc-task-edit-actions{display:inline-flex;gap:6px;flex-wrap:wrap}.lc-task-edit-btn{width:32px;height:30px;border-radius:8px;border:1px solid var(--accent-secondary);background:var(--bg-card);color:var(--accent-secondary);font-size:13px;font-weight:900;cursor:pointer}.lc-task-save-btn,.lc-task-cancel-btn{border-radius:8px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-main);font-size:12px;font-weight:800;padding:6px 9px;cursor:pointer}.lc-task-save-btn{border-color:#2f8f5b;color:#2f8f5b}.lc-task-edit-btn:disabled,.lc-task-save-btn:disabled,.lc-task-cancel-btn:disabled{opacity:.55;cursor:default}.lc-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 11px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid transparent;white-space:nowrap;max-width:100%}.lc-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}.lc-pill.frozen:before{display:none}.lc-pill.hidden{background:#eceff4;color:var(--text-muted);border-color:var(--border)}.lc-pill .lc-inline-icon{width:13px;height:13px;flex:none}.lc-pill.hidden:before{display:none}.lc-pill.scheduled{background:color-mix(in srgb,var(--warning) 16%,#fff);color:var(--warning);border-color:color-mix(in srgb,var(--warning) 40%,#fff)}.lc-pill.open{background:color-mix(in srgb,var(--success) 16%,#fff);color:var(--success);border-color:color-mix(in srgb,var(--success) 40%,#fff)}.lc-pill.closed{background:color-mix(in srgb,var(--error) 14%,#fff);color:var(--error);border-color:color-mix(in srgb,var(--error) 40%,#fff)}.lc-pill.frozen{background:color-mix(in srgb,var(--accent-secondary) 16%,#fff);color:var(--accent-secondary);border-color:color-mix(in srgb,var(--accent-secondary) 40%,#fff)}.lc-pill.draft{background:var(--bg-panel);color:var(--text-muted);border-color:var(--border)}.lc-pill.published{background:color-mix(in srgb,var(--accent-secondary) 16%,#fff);color:var(--accent-secondary);border-color:color-mix(in srgb,var(--accent-secondary) 40%,#fff)}.lc-status{font-size:13px;padding:8px 12px;border-radius:8px;background:var(--bg-panel);color:var(--text-secondary)}.lc-suggest-list{display:flex;flex-direction:column;gap:2px;margin-top:6px;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;max-height:180px;overflow-y:auto}.lc-suggest-item{display:block;width:100%;text-align:left;padding:7px 12px;border:none;background:var(--bg-panel);color:var(--text-primary);font-size:13px;cursor:pointer}.lc-suggest-item:hover{background:color-mix(in srgb,var(--accent-secondary) 14%,var(--bg-panel))}.lc-status.ok{background:color-mix(in srgb,var(--success) 14%,#fff);color:var(--success)}.lc-status.error{background:color-mix(in srgb,var(--error) 12%,#fff);color:var(--error)}.lc-sem{display:inline-block;padding:2px 9px;border-radius:6px;font-size:12px;font-weight:600;border:1px solid transparent}.lc-sem-1{background:color-mix(in srgb,var(--accent-secondary) 14%,#fff);color:var(--accent-secondary);border-color:color-mix(in srgb,var(--accent-secondary) 35%,#fff)}.lc-sem-2{background:color-mix(in srgb,var(--warning) 14%,#fff);color:var(--warning);border-color:color-mix(in srgb,var(--warning) 35%,#fff)}.lc-btn-ok,.lc-btn-warn,.lc-btn-danger{border-radius:8px;padding:8px 16px;cursor:pointer;color:#fff;font-size:13px}.lc-btn-ok{background:var(--success);border:1px solid color-mix(in srgb,var(--success) 80%,#000 20%)}.lc-btn-warn{background:var(--warning);border:1px solid color-mix(in srgb,var(--warning) 80%,#000 20%)}.lc-btn-danger{background:var(--error);border:1px solid color-mix(in srgb,var(--error) 80%,#000 20%)}.lc-btn-ok:hover,.lc-btn-warn:hover,.lc-btn-danger:hover{filter:brightness(1.06)}.lc-btn-ok:disabled,.lc-btn-warn:disabled,.lc-btn-danger:disabled{opacity:.55;cursor:default;filter:none}.lc-people-list{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:10px;overflow:hidden}.lc-people-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border)}.lc-people-row:last-child{border-bottom:none}.lc-people-info{display:flex;flex-direction:column;gap:2px;min-width:0;overflow:hidden}.lc-people-name{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.lc-people-email{font-size:12px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.lc-people-row-teacher{display:grid;grid-template-columns:minmax(0,1fr) 110px;align-items:center}.lc-people-row-student{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(96px,auto) 130px 150px;align-items:center;gap:12px}.lc-people-row-head{font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em;background:var(--surface-muted, rgba(0, 0, 0, .03))}.lc-people-group-prefix{font-size:13px;font-weight:600;color:var(--text-muted)}.lc-people-group-value{font-size:14px;font-weight:600;min-width:32px}.lc-people-group-cell-editing{gap:6px}.lc-stat-refresh{border:none;background:transparent;cursor:pointer;font-size:13px;padding:0 2px}.lc-people-row-loading{display:flex;align-items:center;gap:8px;padding:10px 14px;color:var(--text-muted);font-size:13px}.lc-people-group-cell{display:flex;align-items:center;gap:4px}.lc-people-actions{display:flex}.lc-sort-toggle{border:1px solid var(--border);background:transparent;border-radius:8px;padding:4px 10px;font-size:12px;cursor:pointer;white-space:nowrap}.lc-sort-toggle:hover{background:var(--surface-muted, rgba(0, 0, 0, .04))}.lc-import-result{margin-top:12px;padding:10px 14px;border-radius:10px;font-size:13px;border:1px solid}.lc-import-result.ok{background:#22c55e14;border-color:#22c55e59}.lc-import-result.has-errors{background:#ef444414;border-color:#ef444459}.lc-import-errors{margin-top:6px}.lc-import-errors ul{margin:4px 0 0;padding-left:18px}.lc-gradebook-section{display:flex;flex-direction:column;gap:10px;margin-top:16px}.lc-gradebook-sync-list{max-height:180px;overflow-y:auto}.lc-gradebook-sync-list .lc-people-row{box-sizing:border-box;height:60px;flex-shrink:0}.lc-gradebook-page{display:grid;gap:16px}.lc-gradebook-page-heading .lc-card-hint{margin:5px 0 0}.lc-gradebook-settings,.lc-gradebook-maintenance{padding:16px;border:1px solid var(--border);border-radius:10px;background:var(--bg-panel)}.lc-gradebook-settings-head,.lc-quiz-transfer-summary-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.lc-gradebook-settings-head h5{margin:0;font-size:14px}.lc-gradebook-settings .lc-grid{margin-top:12px}.lc-gradebook-maintenance>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;font-weight:600}.lc-gradebook-maintenance>summary small{color:var(--text-muted);font-weight:400}.lc-gradebook-maintenance .lc-gradebook-section{margin-top:16px}.lc-quiz-transfer-summary{grid-column:1 / -1;padding:16px;border:1px solid var(--border);border-radius:10px;background:var(--bg-panel)}.lc-quiz-transfer-summary-head strong{font-size:14px}.lc-quiz-transfer-summary-head p{margin:4px 0 0;color:var(--text-muted);font-size:12px}.lc-quiz-transfer-issues{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.lc-quiz-transfer-issue{min-width:0;border:1px solid var(--border);border-radius:8px;background:var(--bg-card)}.lc-quiz-transfer-issue>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px;padding:8px 12px;cursor:pointer;font-size:12px;font-weight:600}.lc-quiz-transfer-issue>summary b{min-width:28px;padding:4px 6px;border-radius:6px;background:var(--bg-panel);text-align:center}.lc-quiz-transfer-issue-body{max-height:220px;overflow-y:auto;padding:10px 12px;border-top:1px solid var(--border);color:var(--text-secondary);font-size:12px}.lc-quiz-transfer-issue-body p{margin:0 0 8px}.lc-quiz-transfer-issue-body ul{margin:0;padding-left:18px}.lc-quiz-transfer-issue-body li+li{margin-top:5px}@media (max-width: 760px){.lc-quiz-transfer-issues{grid-template-columns:1fr}.lc-gradebook-settings-head,.lc-quiz-transfer-summary-head{align-items:flex-start}}.lc-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#141a2873;display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px 16px;overflow-y:auto;animation:lc-modal-backdrop-in .12s ease-out both}.lc-modal{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;width:100%;box-shadow:0 24px 60px #141a2847;display:flex;flex-direction:column;max-height:88vh;animation:lc-modal-in .16s cubic-bezier(.2,.75,.25,1) both}@keyframes lc-modal-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes lc-modal-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.lc-modal-sm{max-width:440px}.lc-modal-md{max-width:640px}.lc-modal-lg{max-width:860px}.lc-modal-xl{max-width:min(1400px,96vw);max-height:94vh}.lc-modal-full{max-width:100vw;min-width:100vw;width:100vw;min-height:100vh;height:100vh;max-height:100vh;border-radius:0;border:none}.lc-modal-backdrop-full{align-items:stretch;justify-content:stretch;padding:0;overflow:hidden}.lc-modal-full .lc-modal-body{display:flex;flex-direction:column;overflow:hidden;min-height:0;padding:12px}.lc-modal-full .plag-detail,.lc-modal-full .plag-diff{display:flex;flex-direction:column;min-height:0;flex:1}.lc-modal-full .plag-diff-body{flex:1;min-height:0;max-height:none}.lc-modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.lc-modal-title{margin:0;font-size:16px}.lc-modal-close{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;font-size:24px;line-height:1;cursor:pointer;color:var(--text-muted);padding:0 6px}.lc-modal-close:hover{color:var(--text-main)}.lc-modal-body{padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.lc-modal-foot{padding:14px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px}.lc-confirm-message{font-size:14px;color:var(--text-secondary);line-height:1.5}.lc-hidden-override{margin-top:18px;padding-top:14px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:6px}.lc-hidden-override .checkbox-line{font-weight:700}.lc-import-returning{margin-top:8px;border:1px solid rgba(199,143,40,.45);background:#c78f281f;color:#8a6412;border-radius:10px;padding:8px 10px;font-size:13px}.lc-import-returning ul{margin:6px 0;padding-left:18px}.plag-verdict-state{border-radius:10px;padding:12px 14px;margin-top:4px;border:1px solid transparent}.plag-verdict-state-title{font-weight:600;margin-bottom:10px}.plag-verdict-state.confirmed{background:#be3c371f;border-color:#be3c3773}.plag-verdict-state.rejected{background:#3c965a1f;border-color:#3c965a73}.plag-side-verdicts{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.plag-admin-card{margin-top:16px}.plag-admin-table{position:relative;display:flex;flex-direction:column;gap:2px}.plag-admin-task-block{display:flex;flex-direction:column;gap:0}.plag-admin-row{display:grid;grid-template-columns:70px 110px 120px 100px 1fr;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;background:#ffffff08}.plag-admin-row.expanded{border-radius:8px 8px 0 0;background:#58a6ff14}.plag-admin-row.head{background:transparent;font-size:12px;text-transform:uppercase;letter-spacing:.04em;opacity:.6}.plag-admin-row.empty{opacity:.6;grid-template-columns:1fr}.plag-admin-results-row{padding:12px;border:1px solid rgba(88,166,255,.18);border-top:none;border-radius:0 0 8px 8px;background:#ffffff06}.plag-admin-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.plag-switch{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.plag-run-chip{font-size:12px;padding:2px 8px;border-radius:999px;background:#ffffff14;width:fit-content}.plag-run-chip.status-success{background:#2ea04340;color:#7ee787}.plag-run-chip.status-running,.plag-run-chip.status-queued{background:#d2992240;color:#e3b341}.plag-run-chip.status-error{background:#f8514940;color:#ff7b72}.plag-run-chip.status-empty{background:#ffffff14;opacity:.7}.plag-results{width:100%}.plag-results-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.plag-run-status{display:flex;gap:12px;flex-wrap:wrap;align-items:center;font-size:13px}.plag-run-status .muted{opacity:.6}.plag-results-actions{display:flex;gap:8px}.plag-table{width:100%;border-collapse:collapse;font-size:13px}.plag-table th,.plag-table td{text-align:left;padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.08)}.plag-table th{opacity:.6;font-weight:600}.plag-table .muted{opacity:.55;font-size:12px}.plag-note{padding:20px;text-align:center;opacity:.7}.plag-meta{margin-bottom:12px}.plag-meta-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.plag-badge{font-size:12px;padding:3px 10px;border-radius:999px;background:#ffffff14;white-space:nowrap}.plag-badge.sim{background:#58a6ff38;color:#79c0ff}.plag-badge.weight{background:#d2992238;color:#e3b341}.plag-badge.cross{background:#bc8cff38;color:#d2a8ff}.plag-badge.edge-archive{background:#ff7b7233;color:#ff9a92}.plag-badge.verdict.v-confirmed{background:#f8514947;color:#ff7b72}.plag-badge.verdict.v-rejected{background:#2ea04340;color:#7ee787}.plag-badge.verdict.v-unclear{background:#d2992240;color:#e3b341}.plag-diff{border:1px solid rgba(255,255,255,.12);border-radius:8px;overflow:hidden}.plag-diff-head{display:flex;background:#ffffff0f;font-size:12.5px;font-weight:600}.plag-diff-col-title{flex:1 1 50%;min-width:0;padding:8px 12px;border-right:1px solid rgba(255,255,255,.1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plag-diff-col-title:last-child{border-right:none}.plag-diff-col-title .muted{font-weight:400;opacity:.6}.plag-diff-body{max-height:68vh;overflow-y:auto;overflow-x:hidden;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:15px;line-height:1.65}.plag-diff-row{display:flex;align-items:stretch;position:relative}.plag-frag-pct{position:absolute;left:50%;top:0;transform:translate(-50%);z-index:3;font-size:10.5px;font-weight:800;line-height:1.5;padding:0 7px;border-radius:0 0 7px 7px;color:#0d1117;box-shadow:0 1px 4px #00000059;font-variant-numeric:tabular-nums;pointer-events:none}.plag-frag-pct.plag-frag-0{background:#d29922}.plag-frag-pct.plag-frag-1{background:#58a6ff}.plag-frag-pct.plag-frag-2{background:#3fb950}.plag-frag-pct.plag-frag-3{background:#bc8cff}.plag-frag-pct.plag-frag-4{background:#ff7b72}.plag-meta-hint{font-size:12px;margin-top:6px}.plag-meta-hint code{padding:0 3px}.plag-diff-cell{flex:1 1 50%;min-width:0;display:flex;border-right:1px solid rgba(255,255,255,.08)}.plag-diff-cell:last-child{border-right:none}.plag-diff-cell.empty{background:#ffffff05}.plag-ln{flex:0 0 42px;text-align:right;padding:0 8px;opacity:.35;-webkit-user-select:none;user-select:none}.plag-lc{flex:1;min-width:0;white-space:pre-wrap;overflow-wrap:anywhere;padding-right:14px}.plag-diff-row.matched .plag-ln{opacity:.6}.plag-diff-row.plag-frag-0{background:#d2992229}.plag-diff-row.plag-frag-1{background:#58a6ff29}.plag-diff-row.plag-frag-2{background:#3fb95029}.plag-diff-row.plag-frag-3{background:#bc8cff29}.plag-diff-row.plag-frag-4{background:#ff7b7229}.plag-contrib{border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:12px 14px;margin-bottom:12px;background:#ffffff08}.plag-contrib-title{font-size:13px;font-weight:600;margin-bottom:8px;opacity:.85}.plag-contrib-bar{display:flex;height:14px;border-radius:999px;overflow:hidden;background:#ffffff0f}.plag-contrib-seg{height:100%;min-width:2px;transition:filter .15s ease}.plag-contrib-seg:hover{filter:brightness(1.25)}.plag-contrib-legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:10px}.plag-contrib-item{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;min-width:0}.plag-contrib-item b{font-variant-numeric:tabular-nums}.plag-contrib-swatch{width:12px;height:12px;border-radius:3px;flex:0 0 auto}.plag-contrib-sample{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;opacity:.7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:340px}.plag-contrib-hint{margin-top:10px;font-size:12px;opacity:.6}.plag-contrib-hint code,.plag-contrib-sample{padding:0 3px}.plag-contrib .plag-frag-0{background:#d29922}.plag-contrib .plag-frag-1{background:#58a6ff}.plag-contrib .plag-frag-2{background:#3fb950}.plag-contrib .plag-frag-3{background:#bc8cff}.plag-contrib .plag-frag-4{background:#ff7b72}.plag-verdict-box{margin-top:14px}.plag-verdict-hint{font-size:12.5px;margin-bottom:8px}.plag-verdict-hint code{padding:0 3px}.lc-btn-ok.danger{background:#d1322b;border-color:#b6241e}.lc-btn-ok.danger:hover{background:#e5453d}.plag-comment{width:100%;min-height:54px;resize:vertical;margin-bottom:8px}.plag-verdict-actions{display:flex;gap:8px;flex-wrap:wrap}.shortcut-kbd{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:4px;border:1px solid currentColor;opacity:.6;font-size:11px;font-family:inherit}.plag-summary{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 14px}.plag-clusters{display:flex;flex-direction:column;gap:10px}.plag-cluster-card{border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:10px 14px;background:#ffffff08}.plag-cluster-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}.plag-cluster-actions{display:flex;gap:8px;margin-top:6px}.plag-graph-block{display:grid;gap:8px}.plag-graph-members{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.plag-graph-member{border:1px solid rgba(88,166,255,.22);border-radius:999px;background:#58a6ff14;padding:4px 8px;font-size:12px;color:var(--text-secondary)}.plag-graph-member.src{border-color:#d2992252;background:#d299221f;color:var(--text-main)}.plag-graph{width:100%;max-width:720px;height:auto;display:block;margin:4px auto 2px}.plag-graph-edge{cursor:pointer}.plag-graph-edge:hover line{stroke:#ff9a92}.plag-graph-edge-chip{fill:var(--bg-card, #1b2230);stroke:#ffffff26}.plag-graph-edge-label{font-size:11px;fill:#ff9a92;pointer-events:none}.plag-graph-node circle{fill:#58a6ff2e;stroke:#58a6ff;stroke-width:1.5}.plag-graph-node circle.src{fill:#d2992238;stroke:#e3b341;stroke-width:2}.plag-graph-label-bg{fill:var(--bg-card, #1b2230);stroke:#ffffff1f;pointer-events:none}.plag-graph-initials{font-size:13px;font-weight:600;fill:currentColor;pointer-events:none}.plag-graph-name{font-size:11.5px;fill:currentColor;opacity:.9;pointer-events:none}.plag-graph-group{font-size:10.5px;fill:currentColor;opacity:.55;pointer-events:none}.plag-link-btn{margin-top:12px;background:none;border:none;color:#79c0ff;cursor:pointer;font-size:13px;padding:0}.plag-chain-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;font-size:13px}.plag-submission-banner{margin:12px 0;padding:12px 16px;border-radius:10px;background:#f851491f;border:1px solid rgba(248,81,73,.4)}.plag-submission-banner-head{display:flex;align-items:center;gap:12px}.plag-submission-banner-head>div{flex:1}.plag-submission-banner-icon{font-size:20px}.pack-cell-wrap.plag-flagged{border-radius:8px}.teacher-pack-table td.pack-cell-plag-confirmed{background:#d74b5a33}.teacher-pack-table td.pack-cell-plag-confirmed .pack-cell-mark{color:#a12834}.teacher-pack-table td.pack-cell-plag-cleared{background:#389e6029;transition:background .4s ease}.pack-cell-plag-btn{width:fit-content;padding:4px 8px;font-size:12px;font-weight:800;color:#b42318;background:#ffe45c;border:1px solid #f4c430;border-radius:8px;cursor:pointer;white-space:nowrap}.pack-cell-plag-btn:hover{background:#ffd43b;border-color:#eab308}@media (max-width: 900px){.plag-diff-body{max-height:60vh;font-size:14px}}.pack-cell-cheated{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 6px}.pack-cell-cheated-btn{width:fit-content;padding:2px 6px;border:none;border-radius:6px;background:transparent;color:#b42318;font-size:13px;font-weight:800;cursor:pointer;white-space:nowrap}.pack-cell-cheated-btn:hover{background:#b423181f;text-decoration:underline}.pack-cell-cheated-btn.secondary-link{font-size:12px;font-weight:700;color:var(--text-secondary)}.pack-cell-ai-btn{display:inline-flex;align-items:center;gap:4px;width:fit-content;padding:4px 8px;font-size:12px;font-weight:800;color:#fff;background:#0d0d0d;border:1px solid #333;border-radius:8px;cursor:pointer;white-space:nowrap}.pack-cell-ai-btn:hover{background:#1a1a1a}.pack-cell-ai-ico{width:14px;height:14px;display:inline-flex}.teacher-pack-table td.pack-cell-ai-confirmed{background:#d74b5a38;padding:0}.pack-cell-ai-stamp{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:64px;padding:10px 6px;border:none;background:transparent;cursor:pointer;font-size:13px;font-weight:800;color:#b42318}.pack-cell-ai-stamp:hover{color:#ff7875}.ai-flag-modal-prob{font-size:32px;font-weight:800;margin:8px 0}.ai-modal-layout{display:flex;gap:16px;flex:1;min-height:0}.ai-modal-code-pane{flex:1;min-width:0;min-height:0;border:1px solid rgba(255,255,255,.12);border-radius:8px;overflow:auto;background:#ffffff05}.ai-modal-code-pane-blue{background:#0a1120;border-color:#58a6ff66}.ai-modal-code-pane pre{margin:0;padding:14px 16px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;line-height:1.6;white-space:pre;background:transparent}.ai-modal-code-pane-blue pre,.ai-modal-code-pane-blue code{color:#e8f0ff}.ai-modal-code-pane-blue .hljs{background:transparent}.ai-modal-code-pane-blue .hljs-keyword,.ai-modal-code-pane-blue .hljs-built_in{color:#7fb3ff}.ai-modal-code-pane-blue .hljs-string{color:#9fe6a0}.ai-modal-code-pane-blue .hljs-number{color:#ffcb8b}.ai-modal-code-pane-blue .hljs-comment{color:#7d92b8}.ai-modal-code-pane-blue .hljs-title,.ai-modal-code-pane-blue .hljs-function{color:#d2b8ff}.ai-modal-side{width:300px;flex:0 0 300px;display:flex;flex-direction:column;gap:16px;overflow-y:auto;padding-right:2px}.ai-modal-side-card{border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:14px}.ai-modal-prob-big{font-size:40px;font-weight:800;line-height:1;color:#ff9a92}.ai-modal-prob-label{font-size:12px;opacity:.65;margin-top:4px}.ai-modal-stat-value{font-size:28px;font-weight:800;color:#7ee787}.ai-modal-stat-label{font-size:12px;opacity:.65;margin-top:4px}.ai-modal-meta-line{font-size:13px;opacity:.8;margin-top:4px}@media (max-width: 900px){.ai-modal-layout{flex-direction:column}.ai-modal-side{width:100%;flex:0 0 auto;flex-direction:row;flex-wrap:wrap}.ai-modal-side-card{flex:1 1 200px}}:where(a.row-link){color:inherit;text-decoration:none;cursor:pointer;display:inline-block;box-sizing:border-box}:where(a.row-link.primary,a.row-link.secondary,a.row-link.ghost){text-align:center}a.row-link:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}a.row-link-disabled{pointer-events:none;opacity:.55}.pack-window-notice{margin-bottom:10px;padding:10px 12px;border-radius:10px;border:1px solid color-mix(in srgb,var(--warning) 45%,var(--border));background:color-mix(in srgb,var(--warning) 12%,var(--bg-card));color:var(--text-main);line-height:1.4}.pack-window-notice.closed{border-color:color-mix(in srgb,var(--error) 45%,var(--border));background:color-mix(in srgb,var(--error) 10%,var(--bg-card))}.lc-pill.late{background:color-mix(in srgb,var(--warning) 16%,var(--bg-card));color:var(--warning);border-color:color-mix(in srgb,var(--warning) 40%,var(--bg-card))}.lc-close-warning{display:block;margin-top:4px;padding:2px 6px;border-radius:6px;font-size:12px;color:var(--error);background:color-mix(in srgb,var(--error) 10%,var(--bg-card))}.lc-pack-deadline.is-urgent{color:var(--warning);font-weight:700}.lc-pack-deadline.is-expired{color:var(--error);font-weight:700}:root[data-theme=dark] .header{border-bottom-color:var(--border);background:var(--header-bg);color:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}:root[data-theme=dark] .header .ghost{border-color:var(--border);background:var(--bg-card);color:var(--text-main)}:root[data-theme=dark] .header .settings-toggle{border-color:color-mix(in srgb,var(--accent-primary) 42%,var(--border));background:color-mix(in srgb,var(--accent-primary) 12%,var(--bg-card));color:var(--text-main)}:root[data-theme=dark] .greeting-card{border-color:color-mix(in srgb,var(--accent-primary) 48%,var(--border));color:var(--text-main);background:linear-gradient(135deg,color-mix(in srgb,var(--accent-primary) 20%,var(--bg-card)),color-mix(in srgb,var(--accent-primary) 8%,var(--bg-card)))}:root[data-theme=dark] .panel{border-color:var(--border);background:#111;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:none;backdrop-filter:none}:root[data-theme=dark] .page-loader:not(.overlay){border-color:var(--border);background:#171717;color:#d0d0d0}:root[data-theme=dark] .primary,:root[data-theme=dark] .secondary,:root[data-theme=dark] .ghost{border-color:var(--btn-border);background:#090909;color:#fff;box-shadow:none}:root[data-theme=dark] .primary:hover,:root[data-theme=dark] .secondary:hover,:root[data-theme=dark] .ghost:hover{border-color:var(--btn-border-hover);background:#1b1b1b}:root[data-theme=dark] .input{border-color:var(--border);background:#090909;color:#fff}:root[data-theme=dark] .input:focus{border-color:var(--accent-primary);outline-color:color-mix(in srgb,var(--accent-primary) 30%,transparent)}:root[data-theme=dark] .subject-switcher,:root[data-theme=dark] .subject-switcher small{color:#fff}:root[data-theme=dark] .subject-switcher select{border-color:var(--accent-primary);background:#090909;color:#fff}:root[data-theme=dark] .content-shell,:root[data-theme=dark] .main-area,:root[data-theme=dark] .panel,:root[data-theme=dark] .card,:root[data-theme=dark] .lc-console,:root[data-theme=dark] .lc-card,:root[data-theme=dark] .rm-console{color:var(--text-main)}:root[data-theme=dark] :where(h1,h2,h3,h4,h5,h6),:root[data-theme=dark] :where(.card-title,.lc-card-title,.rm-subject-name strong,.rm-person strong),:root[data-theme=dark] :where(.history-task-code,.history-task-title,.task-title,.pack-title){color:#fff}:root[data-theme=dark] :where(.lc-context,.lc-card-hint,.lc-collapse-meta,.lc-field,.rm-field>span,.rm-topbar span,.rm-section-bar span,.rm-subject-name span,.rm-person span,.rm-role-counts,.rm-manager-row>span,.rm-audit-row span,.rm-audit-row time,.rm-empty-row,.rating-page-meta,.history-attempt-marker,.history-attempt-blank,.admin-upload-hint,.admin-upload-status,.admin-task-pack-meta,.admin-task-io-hint){color:var(--text-muted)}:root[data-theme=dark] a:not(.nav-button){color:var(--accent-text)}:root[data-theme=dark] a:not(.nav-button):hover{color:var(--accent-text)}:root[data-theme=dark] :where(input,select,textarea,button){caret-color:var(--accent-text)}:root[data-theme=dark] .rm-token-field>span{color:#d6d6d6}:root[data-theme=dark] .rm-token-value{border-color:#555;background:#0d0d0d;color:#fff}:root[data-theme=dark] :where(input,textarea)::placeholder{color:#a9a9a9;opacity:1}:root[data-theme=dark] select option{background:#090909;color:#fff}:root[data-theme=dark] :where(input,select,textarea):disabled{color:#b0b0b0;-webkit-text-fill-color:#b0b0b0;opacity:.72}:root[data-theme=dark] input[type=file]{color:#d7d7d7}:root[data-theme=dark] input[type=file]::file-selector-button{border:1px solid var(--accent-primary);background:#090909;color:#fff}:root[data-theme=dark] .subject-switcher.loading{color:#f1d6d9}:root[data-theme=dark] .subject-switcher.error{color:#ffe1e4}:root[data-theme=dark] .table{color:var(--text-main)}:root[data-theme=dark] .table th{background:#1b1b1b;color:#e2e2e2;-webkit-backdrop-filter:none;backdrop-filter:none}:root[data-theme=dark] .table td{border-top-color:var(--border);color:#f3f3f3}:root[data-theme=dark] .table tbody tr:nth-child(odd) td{background:#141414}:root[data-theme=dark] .table tbody tr:hover td{background:var(--accent-surface)}:root[data-theme=dark] .table-search-clear,:root[data-theme=dark] .history-task-separator-inner{border-color:var(--border);background:#181818;color:#eee}:root[data-theme=dark] .inline-error-banner{border-color:var(--accent-primary);background:#351015;color:#ffb3bb}:root[data-theme=dark] .work-toast.ok{border-color:#3c9d6a;background:#102a1d;color:#9bf0be}:root[data-theme=dark] .page-loader:not(.overlay){color:#d8d8d8}:root[data-theme=dark] .pack-button{border-color:var(--border);background:#151515;color:#f5f5f5;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}:root[data-theme=dark] .pack-button:hover{border-color:var(--accent-primary);background:var(--accent-surface);box-shadow:0 10px 22px #11000352}:root[data-theme=dark] .pack-button.active{border-color:var(--accent-primary);background:var(--accent-surface);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-primary) 28%,transparent)}:root[data-theme=dark] .pack-title{color:#fff}:root[data-theme=dark] .pack-meta{color:#d6d6d6}:root[data-theme=dark] .lc-tab{color:#c5c5c5}:root[data-theme=dark] .lc-tab:hover{color:#fff}:root[data-theme=dark] .lc-tab.active,:root[data-theme=dark] .lc-collapse-icon{color:var(--accent-text)}:root[data-theme=dark] .lc-chip.active{border-color:var(--accent-primary);background:var(--accent-surface);color:var(--accent-text)}:root[data-theme=dark] .lc-collapse,:root[data-theme=dark] .lc-collapse-body,:root[data-theme=dark] .lc-code-example,:root[data-theme=dark] .admin-upload-card,:root[data-theme=dark] .admin-task-io-card{border-color:var(--border);background:#151515;color:#eee}:root[data-theme=dark] .lc-collapse-head{color:#f5f5f5}:root[data-theme=dark] .lc-collapse-head:hover{background:var(--accent-surface)}:root[data-theme=dark] :where(.lc-task-edit-btn,.pack-note-edit-btn){border-color:var(--accent-text);background:#3a2226;color:#ffd9dc}:root[data-theme=dark] :where(.lc-task-edit-btn,.pack-note-edit-btn):hover{background:#4a2a2f}:root[data-theme=dark] :where(.lc-task-save-btn,.pack-note-save-btn){border-color:#48b77a;background:#0d2116;color:#87e8ad}:root[data-theme=dark] .rm-topbar,:root[data-theme=dark] .rm-section-bar,:root[data-theme=dark] .rm-subject-row,:root[data-theme=dark] .rm-manager-row,:root[data-theme=dark] .rm-audit-row,:root[data-theme=dark] .rt-image-row,:root[data-theme=dark] .rt-version-row{color:#f5f5f5}:root[data-theme=dark] .rm-status{color:#d0d0d0}:root[data-theme=dark] .rm-status:before{background:#8e8e8e}:root[data-theme=dark] .rm-role-counts b,:root[data-theme=dark] .rm-number,:root[data-theme=dark] .rm-subsection-heading,:root[data-theme=dark] .rt-image-row code,:root[data-theme=dark] .rt-version-row code{color:#f0f0f0}:root[data-theme=dark] .rm-subject-actions,:root[data-theme=dark] .rm-staff-list{background:#111}:root[data-theme=dark] .teacher-groups-switch-row :where(.primary,.secondary),:root[data-theme=dark] :where(.rating-page-btn,.sort-toggle-btn,.find-me-btn){border-color:var(--accent-primary);background:#090909;color:#fff}:root[data-theme=dark] :where(.status.pending,.status.failed,.status.scored),:root[data-theme=dark] :where(.verdict-badge,.verdict-compact){-webkit-text-fill-color:currentColor}:root[data-theme=dark] :where(.task-working-badge.ok,.pack-status-pill.ok,.admin-upload-alert.ok){border-color:#3f9e6c;background:#102a1d;color:#8ee8b2}:root[data-theme=dark] :where(.task-working-badge.fail,.pack-status-pill.fail,.admin-upload-alert.error){border-color:#d74c5c;background:#351015;color:#ff9ba6}:root[data-theme=dark] :where(.admin-upload-alert.warning,.admin-status-pill.hidden){border-color:#b98332;background:#2d2110;color:#ffd38a}:root[data-theme=dark] .admin-status-pill.scheduled,:root[data-theme=dark] .admin-freeze-btn.on{border-color:#657fbb;background:#151d32;color:#a9c2ff}:root[data-theme=dark] :where(.admin-status-pill.open,.admin-visibility-btn.visible){border-color:#3f9e6c;background:#102a1d;color:#8ee8b2}:root[data-theme=dark] :where(.admin-status-pill.closed,.admin-visibility-btn.hidden){border-color:#d74c5c;background:#351015;color:#ff9ba6}:root[data-theme=dark] .submission-number-link{color:var(--accent-text)}:root[data-theme=dark] .submission-status-dot.scored,:root[data-theme=dark] :where(.pack-cell-status.ok,.pack-approve-btn.active){border-color:#3f9e6c;background:#102a1d;color:#8ee8b2}:root[data-theme=dark] .submission-status-dot.failed,:root[data-theme=dark] :where(.pack-cell-status.fail,.pack-reject-btn.active){border-color:#d74c5c;background:#351015;color:#ff9ba6}:root[data-theme=dark] .submission-status-dot.pending{border-color:#b98332;background:#2d2110;color:#ffd38a}:root[data-theme=dark] .teacher-pack-toast.ok{border-color:#3f9e6c;background:#102a1d;color:#8ee8b2}:root[data-theme=dark] .teacher-pack-toast.error{border-color:#d74c5c;background:#351015;color:#ff9ba6}:root[data-theme=dark] ::selection{background:var(--accent-primary);color:#fff}:root[data-theme=dark] .rm-console{--rm-border: var(--border);--rm-muted: #aaaaaa;border-color:var(--border);background:#101010;color:#f7f7f7;box-shadow:0 8px 24px #0000003d}:root[data-theme=dark] .rm-topbar{background:#141414}:root[data-theme=dark] .rm-console .primary,:root[data-theme=dark] .rm-console .secondary,:root[data-theme=dark] .rm-console .ghost{border-color:var(--accent-primary);background:#070707;color:#fff}:root[data-theme=dark] .rm-console .primary:hover,:root[data-theme=dark] .rm-console .secondary:hover,:root[data-theme=dark] .rm-console .ghost:hover{border-color:var(--accent-primary);background:#1c1c1c;color:#fff}:root[data-theme=dark] .rm-console .ghost.danger{color:var(--accent-text)}:root[data-theme=dark] .rm-console .input,:root[data-theme=dark] .rm-icon-button{border-color:var(--border);background:#070707;color:#fff}:root[data-theme=dark] .rm-console .input:focus{border-color:var(--accent-primary);outline-color:color-mix(in srgb,var(--accent-primary) 28%,transparent)}:root[data-theme=dark] .rm-tabs,:root[data-theme=dark] .rm-create-form,:root[data-theme=dark] .rm-manager-form,:root[data-theme=dark] .rm-staff-form,:root[data-theme=dark] .rt-form{background:#171717}:root[data-theme=dark] .rm-summary>div{border-color:var(--border);background:#171717}:root[data-theme=dark] .rm-summary strong{color:#fff}:root[data-theme=dark] .rm-section-intro{color:#aaa}:root[data-theme=dark] .rm-add-toggle{border-color:var(--accent-primary);background:var(--accent-primary);color:#fff;box-shadow:0 2px 8px color-mix(in srgb,var(--accent-primary) 38%,transparent)}:root[data-theme=dark] .rm-add-toggle:hover{border-color:var(--accent-text);background:var(--accent-text);box-shadow:0 3px 11px color-mix(in srgb,var(--accent-primary) 50%,transparent)}:root[data-theme=dark] .rm-add-toggle[aria-expanded=true]{border-color:var(--accent-primary);background:var(--accent-primary)}:root[data-theme=dark] .rm-tabs .row-link,:root[data-theme=dark] .rm-tabs button{color:#bdbdbd}:root[data-theme=dark] .rm-tabs .row-link:hover,:root[data-theme=dark] .rm-tabs .row-link.active,:root[data-theme=dark] .rm-tabs button:hover,:root[data-theme=dark] .rm-tabs button.active{color:#fff}:root[data-theme=dark] .rm-tabs .row-link.active,:root[data-theme=dark] .rm-tabs button.active{border-color:var(--border);background:#242424}:root[data-theme=dark] .rm-tabs .row-link:hover,:root[data-theme=dark] .rm-tabs button:hover{background:#222}:root[data-theme=dark] .rm-tabs .row-link span,:root[data-theme=dark] .rm-tabs button span{background:var(--accent-surface);color:var(--accent-text)}:root[data-theme=dark] .rm-field>span,:root[data-theme=dark] .rt-context label>span,:root[data-theme=dark] .rm-subsection-heading,:root[data-theme=dark] .rm-status,:root[data-theme=dark] .rm-role-counts,:root[data-theme=dark] .rm-audit-row time,:root[data-theme=dark] .rm-audit-row span{color:#bdbdbd}:root[data-theme=dark] .rm-subject-head,:root[data-theme=dark] .rm-manager-head,:root[data-theme=dark] .rm-audit-head,:root[data-theme=dark] .rt-image-head,:root[data-theme=dark] .rt-version-head{background:#1b1b1b;color:#d0d0d0}:root[data-theme=dark] .rm-subject.archived .rm-subject-row,:root[data-theme=dark] .rm-subject-detail{background:#151515}:root[data-theme=dark] :is(.rm-subject-detail-topbar,.rm-staff-list,.rm-staff-form,.rm-subject-setting-card,.rm-project-access,.rm-project-group){border-color:var(--border);background:#111;color:#f7f7f7}:root[data-theme=dark] .rm-subject-detail-heading p,:root[data-theme=dark] .rm-subject-setting-card p,:root[data-theme=dark] .rm-import-button small{color:#aaa}:root[data-theme=dark] .rm-subject-detail-heading h3{color:#fff}:root[data-theme=dark] .rm-subject-setting.checkbox-line{color:#f0f0f0}:root[data-theme=dark] .rm-subject-name span,:root[data-theme=dark] .rm-person span,:root[data-theme=dark] .rm-manager-row>span,:root[data-theme=dark] .rm-empty-row{color:#aaa}:root[data-theme=dark] .rm-role-counts b,:root[data-theme=dark] .rt-image-row code,:root[data-theme=dark] .rt-version-row code{color:#f2f2f2}:root[data-theme=dark] .rm-status.active:before{background:var(--accent-primary)}:root[data-page-hidden] *,:root[data-page-hidden] *:before,:root[data-page-hidden] *:after{animation-play-state:paused!important}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
