.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;inset:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;inset:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}@keyframes wb-fade-in{0%{opacity:0}to{opacity:.85}}.winbox{position:fixed;left:0;top:0;background:#0050ff;box-shadow:0 14px 28px #00000040,0 10px 10px #00000038;transition:width .3s,height .3s,left .3s,top .3s;transition-timing-function:cubic-bezier(.3,1,.3,1);contain:layout size;text-align:left;touch-action:none}.wb-body,.wb-header{position:absolute;left:0}.wb-header{top:0;width:100%;height:35px;line-height:35px;color:#fff;overflow:hidden;z-index:1}.wb-body{top:35px;right:0;bottom:0;overflow:auto;-webkit-overflow-scrolling:touch;overflow-scrolling:touch;will-change:contents;background:#fff;margin-top:0!important;contain:strict;z-index:0}.wb-control *,.wb-icon{background-repeat:no-repeat}.wb-drag{height:100%;padding-left:10px;cursor:move}.wb-title{font-family:Arial,sans-serif;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wb-icon{display:none;width:20px;height:100%;margin:-1px 8px 0 -3px;float:left;background-size:100%;background-position:center}.wb-e,.wb-w{width:10px;top:0}.wb-n,.wb-s{left:0;height:10px;position:absolute}.wb-n{top:-5px;right:0;cursor:n-resize;z-index:2}.wb-e{position:absolute;right:-5px;bottom:0;cursor:w-resize;z-index:2}.wb-s{bottom:-5px;right:0;cursor:n-resize;z-index:2}.wb-nw,.wb-sw,.wb-w{left:-5px}.wb-w{position:absolute;bottom:0;cursor:w-resize;z-index:2}.wb-ne,.wb-nw,.wb-sw{width:15px;height:15px;z-index:2;position:absolute}.wb-nw{top:-5px;cursor:nw-resize}.wb-ne,.wb-sw{cursor:ne-resize}.wb-ne{top:-5px;right:-5px}.wb-se,.wb-sw{bottom:-5px}.wb-se{position:absolute;right:-5px;width:15px;height:15px;cursor:nw-resize;z-index:2}.wb-control{float:right;height:100%;max-width:100%;text-align:center}.wb-control *{display:inline-block;width:30px;height:100%;max-width:100%;background-position:center;cursor:pointer}.no-close .wb-close,.no-full .wb-full,.no-header .wb-header,.no-max .wb-max,.no-min .wb-min,.no-resize .wb-body~div,.wb-body .wb-hide,.wb-show,.winbox.hide,.winbox.min .wb-body>*,.winbox.min .wb-full,.winbox.min .wb-min,.winbox.modal .wb-full,.winbox.modal .wb-max,.winbox.modal .wb-min{display:none}.winbox.max .wb-drag,.winbox.min .wb-drag{cursor:default}.wb-min{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAyIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNOCAwaDdhMSAxIDAgMCAxIDAgMkgxYTEgMSAwIDAgMSAwLTJoN3oiLz48L3N2Zz4=);background-size:14px auto;background-position:center calc(50% + 6px)}.wb-max{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9IiNmZmYiIHZpZXdCb3g9IjAgMCA5NiA5NiI+PHBhdGggZD0iTTIwIDcxLjMxMUMxNS4zNCA2OS42NyAxMiA2NS4yMyAxMiA2MFYyMGMwLTYuNjMgNS4zNy0xMiAxMi0xMmg0MGM1LjIzIDAgOS42NyAzLjM0IDExLjMxMSA4SDI0Yy0yLjIxIDAtNCAxLjc5LTQgNHY1MS4zMTF6Ii8+PHBhdGggZD0iTTkyIDc2VjM2YzAtNi42My01LjM3LTEyLTEyLTEySDQwYy02LjYzIDAtMTIgNS4zNy0xMiAxMnY0MGMwIDYuNjMgNS4zNyAxMiAxMiAxMmg0MGM2LjYzIDAgMTItNS4zNyAxMi0xMnptLTUyIDRjLTIuMjEgMC00LTEuNzktNC00VjM2YzAtMi4yMSAxLjc5LTQgNC00aDQwYzIuMjEgMCA0IDEuNzkgNCA0djQwYzAgMi4yMS0xLjc5IDQtNCA0SDQweiIvPjwvc3ZnPg==);background-size:17px auto}.wb-close{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0xIC0xIDE4IDE4Ij48cGF0aCBmaWxsPSIjZmZmIiBkPSJtMS42MTMuMjEuMDk0LjA4M0w4IDYuNTg1IDE0LjI5My4yOTNsLjA5NC0uMDgzYTEgMSAwIDAgMSAxLjQwMyAxLjQwM2wtLjA4My4wOTRMOS40MTUgOGw2LjI5MiA2LjI5M2ExIDEgMCAwIDEtMS4zMiAxLjQ5N2wtLjA5NC0uMDgzTDggOS40MTVsLTYuMjkzIDYuMjkyLS4wOTQuMDgzQTEgMSAwIDAgMSAuMjEgMTQuMzg3bC4wODMtLjA5NEw2LjU4NSA4IC4yOTMgMS43MDdBMSAxIDAgMCAxIDEuNjEzLjIxeiIvPjwvc3ZnPg==);background-size:15px auto;background-position:5px center}.wb-full{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2Utd2lkdGg9IjIuNSIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNOCAzSDVhMiAyIDAgMCAwLTIgMnYzbTE4IDBWNWEyIDIgMCAwIDAtMi0yaC0zbTAgMThoM2EyIDIgMCAwIDAgMi0ydi0zTTMgMTZ2M2EyIDIgMCAwIDAgMiAyaDMiLz48L3N2Zz4=);background-size:16px auto}.winbox.max .wb-body~div,.winbox.min .wb-body~div,.winbox.modal .wb-body~div,.winbox.modal .wb-drag,body.wb-lock iframe{pointer-events:none}.winbox.max{box-shadow:none}.winbox.max .wb-body{margin:0!important}.winbox iframe{position:absolute;width:100%;height:100%;border:0}body.wb-lock .winbox{will-change:left,top,width,height;transition:none}.winbox.modal:before{content:"";position:absolute;inset:0;background:inherit;border-radius:inherit}.winbox.modal:after{content:"";position:absolute;top:-50vh;left:-50vw;right:-50vw;bottom:-50vh;background:#0d1117;animation:wb-fade-in .2s ease-out forwards;z-index:-1}.no-animation{transition:none}.no-shadow{box-shadow:none}.no-header .wb-body{top:0}.no-move:not(.min) .wb-title{pointer-events:none}.wb-body .wb-show{display:revert}:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#dce5f0;background:#0b1220;font-synthesis:none}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}button,.button,input,select,textarea{font:inherit}button,.button{border:1px solid #35445b;background:#1b2a40;color:#e3edf7;border-radius:7px;padding:9px 13px;cursor:pointer;text-decoration:none;display:inline-block}button:hover,.button:hover{background:#29405e}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:#68dac5;color:#08231f;border-color:#68dac5;font-weight:700}.danger{color:#ffb6b1;border-color:#885454}input,textarea,select{background:#111b2b;color:#e2eaf3;border:1px solid #3a4860;border-radius:6px;padding:10px;max-width:100%}input[type=checkbox]{width:auto}label{display:block;margin:14px 0;color:#afbdd0}label input:not([type=checkbox]),label textarea{display:block;width:100%;margin-top:7px}small{display:block;color:#9dafc5;font-size:12px;margin-top:8px}p{line-height:1.6;color:#aebed1}h1,h2{color:#f0f4f9;letter-spacing:-.025em}h2{font-size:23px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.16em;color:#77d6c7;display:block;margin-bottom:10px}.card{background:#152136;border:1px solid #2b3b52;padding:28px;border-radius:14px}.landing{max-width:620px;margin:auto;padding:0 24px}.landing nav{display:flex;align-items:center;gap:12px;padding:20px 0}.landing nav strong{margin-right:auto}.landing nav a{color:#9db4cf}.landing main{display:flex;flex-direction:column;gap:16px;padding:16px 0 32px}.notice{margin:0;padding:12px 16px;border-left:2px solid #68dac5;background:#101c2d;font-size:13px}.notice p{margin:0}.sign-in h2{margin-top:0}.sign-in button.primary{width:100%;margin:12px 0}.login-note{font-size:13px;line-height:1.5}.exam-details{margin:12px 0}.challenge{white-space:normal;overflow-wrap:anywhere;font:inherit;font-size:19px;line-height:1.5;color:#f3dfaa;background:#23334b;padding:18px}.challenge>*{margin:0;color:inherit;line-height:inherit}.challenge>*+*{margin-top:1em}.challenge pre{white-space:pre-wrap;font:inherit}.challenge hr{border:0;border-top:1px solid currentColor;opacity:.5}.error{position:fixed;top:10px;left:10px;right:10px;z-index:10000000;background:#622e38;padding:12px;border:1px solid #d47e87;border-radius:8px}.error button{float:right;padding:4px}.workspace{height:100dvh;display:flex;flex-direction:column;background:#0d1626}.exam-toolbar{display:flex;align-items:center;gap:14px;padding:12px 18px;background:#142237;border-bottom:1px solid #33445b;z-index:100000}.exam-toolbar strong{display:block}.exam-toolbar .eyebrow{margin:0 0 3px;font-size:9px}.time{margin-left:auto;min-width:90px}.time span{font-size:10px;color:#9dafc5;display:block}.time b{font-size:25px;font-variant-numeric:tabular-nums}.status{font-size:12px;color:#8de1c7}.warn{color:#fac68b}.directory{padding:8px 18px;display:flex;gap:12px;align-items:center;color:#9fb1c8;font-size:12px;background:#101c2d}.directory label{margin:0 0 0 auto;display:flex;gap:8px;align-items:center}.directory input{max-width:100px}.directory span{max-width:40%;overflow:hidden}.preflight{padding:12px;display:flex;align-items:center;gap:10px;background:#1b2d45;font-size:13px}.preflight video{width:90px;height:67px;object-fit:contain}.window-area{position:relative;flex:1;overflow:hidden}.empty-workspace{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;pointer-events:none;color:#617a99}.empty-workspace span{font-size:11px;letter-spacing:.2em}.empty-workspace h2{color:#718baa}.terminal{width:100%;height:100%;padding:5px;background:#0d1420}.terminal-menu{position:fixed;z-index:2000000;width:220px;padding:6px;border:1px solid #405675;border-radius:8px;background:#142237;box-shadow:0 8px 28px #0009}.terminal-menu button{display:block;width:100%;padding:8px 12px;border:0;background:transparent;text-align:left}.terminal-menu button:hover:not(:disabled),.terminal-menu button:focus-visible{background:#2c405b}.terminal-menu [role=separator]{margin:5px 6px;border-top:1px solid #405675}.winbox{background:#2c405b;border-radius:8px;box-shadow:0 12px 50px #0009}.wb-body{background:#0d1420}.wb-title{font-family:inherit}.taskbar{padding:8px;display:flex;gap:7px;background:#142237;z-index:100000;flex-wrap:wrap}.task{display:flex;gap:2px}.taskbar button{font-size:12px;padding:7px}.clipboard{margin-left:auto;display:flex;gap:5px}.lock-overlay,.dialog-backdrop{position:absolute;inset:0;background:#08101df5;z-index:1000000;display:flex;align-items:center;justify-content:center;padding:30px;overflow:auto}.lock-overlay .card{max-width:650px}.lock-overlay button{margin:8px}.dialog-backdrop .card{width:580px;max-width:95vw;max-height:90vh;overflow:auto}.dialog-backdrop .review{width:1100px}.lock-overlay code{overflow-wrap:anywhere}.actions{display:flex;gap:10px;justify-content:flex-end;margin-top:25px}.admin{padding:30px;max-width:1600px;margin:auto}.admin>header{display:flex;gap:15px;align-items:center;flex-wrap:wrap}.admin h1{margin:0;font-size:34px}.admin>header>div{margin-right:auto}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:30px 0}.metrics>div{background:#152136;border:1px solid #2b3b52;border-radius:12px;padding:20px;color:#a6b7cd}.metrics b{display:block;font-size:32px;color:#edf2fa}.admin .card{margin-bottom:25px}.section-title{display:flex;align-items:center;gap:15px}.section-title h2{margin-right:auto}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#8fa5c0;padding:15px}td{padding:16px;border-top:1px solid #2a3b53;vertical-align:top}td button{font-size:12px;margin:3px}td .button{font-size:12px}.badge{padding:5px 8px;background:#233952;border-radius:5px;font-size:11px}.admin-columns{display:grid;grid-template-columns:1fr 1.4fr;gap:25px}.csv{width:100%;height:180px;margin:15px 0;font:13px ui-monospace,monospace}.preview{max-height:260px;overflow:auto;background:#0f1b2c;padding:10px}.preview p{font-size:13px;margin:3px}.images{display:flex;gap:18px}.images figure{margin:0;flex:1}.images img{max-width:100%}.images figcaption{font-size:12px}.timeline{max-width:100%;max-height:500px}.review input[type=range]{width:100%}a{color:#92dccf}code{font-family:ui-monospace,monospace}@media(max-width:950px){.exam-toolbar{gap:5px}.exam-toolbar button{font-size:11px}.admin-columns{grid-template-columns:1fr}}.winbox .wb-max{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Crect x='4' y='4' width='12' height='12' rx='1' fill='none' stroke='white' stroke-width='1.5'/%3E%3C/svg%3E");background-size:20px 20px}.winbox.max .wb-max{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M7 4h9v9M4 7h9v9H4z' fill='none' stroke='white' stroke-width='1.5'/%3E%3C/svg%3E")}.wb-control [role=button]:focus-visible{outline:2px solid #68dac5;outline-offset:-3px}button,.button{white-space:nowrap}.card{min-width:0}.exam-toolbar{flex-wrap:wrap}.exam-toolbar>div:first-child{min-width:160px;flex:1}.preflight{flex-wrap:wrap}.preflight-intro{flex-basis:100%}.window-area{min-height:0}.dialog-backdrop{position:fixed;z-index:1000001}.dialog-backdrop>.card{flex:0 1 580px;width:min(580px,100%);max-width:100%;margin:auto;word-break:normal;overflow-wrap:break-word}.dialog-backdrop>.review{flex-basis:1100px;width:min(1100px,100%)}.dialog-backdrop pre{white-space:pre-wrap;overflow-wrap:anywhere}.dialog-backdrop code{overflow-wrap:anywhere}.lock-overlay>.card{flex:0 1 650px;width:min(650px,100%)}.actions{flex-wrap:wrap}.add-student{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.add-student label{flex:1 1 180px;margin:0}.add-student select{width:100%;margin-top:7px}.add-student button{margin-bottom:1px}.bulk-import{margin-top:24px;padding-top:18px;border-top:1px solid #33445b}summary{cursor:pointer;color:#c6e8e1}.roster-list{max-height:360px;margin-top:14px}@media(max-width:700px){.landing{padding:0 20px}.admin{padding:16px}.metrics{grid-template-columns:repeat(2,1fr)}.card{padding:20px}.dialog-backdrop{padding:16px}}.preflight button[aria-pressed=true]{border-color:#68dac5;color:#8de1c7;opacity:1}.directory .status{max-width:none;overflow:visible;white-space:nowrap}.directory{flex-wrap:wrap}.bulk-import>button,.bulk-import>.button{margin:6px 8px 0 0}.bulk-import>select{margin-right:8px}.exam-toolbar{gap:10px;padding:10px 14px}.exam-toolbar>div:first-child{min-width:200px}.toolbar-status{display:flex;flex-wrap:wrap;gap:9px;margin-top:4px;font-size:11px}.toolbar-status .status{font-size:11px}.workspace-tools{position:relative}.workspace-tools>summary{list-style:none;border:1px solid #35445b;border-radius:7px;background:#1b2a40;padding:9px 13px;color:#e3edf7}.workspace-tools>summary::-webkit-details-marker{display:none}.tool-menu{position:absolute;right:0;top:calc(100% + 8px);width:280px;max-height:65vh;overflow:auto;padding:14px;background:#152136;border:1px solid #35445b;border-radius:10px;box-shadow:0 12px 40px #0009}.tool-menu button{display:block;width:100%;text-align:left;margin:6px 0}.tool-menu label{margin:0 0 12px}.tool-menu input{width:100%}.terminal-switcher{margin:0}.wb-control .wb-rename,.wb-control .wb-snap-left,.wb-control .wb-snap-right{font-size:19px;text-align:center;background-image:none}.lock-overlay{position:fixed}.lock-overlay>.card{max-height:calc(100dvh - 60px);overflow:auto}.recovery-checks{display:grid;grid-template-columns:1fr 1fr;gap:10px 22px;padding:14px 0;border-top:1px solid #35445b;border-bottom:1px solid #35445b}.recovery-checks>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.restore-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.restore-actions button{margin:0}.restore-actions button[aria-pressed=true]{border-color:#68dac5;color:#8de1c7;opacity:1}.recovery-feedback{padding:10px 12px;border-radius:6px;background:#0d182a;font-size:14px}@media(max-width:950px){.exam-toolbar>div:first-child{flex-basis:35%}}.wb-control>span{vertical-align:top}.wb-control .wb-rename,.wb-control .wb-snap-left,.wb-control .wb-snap-right{display:inline-flex;align-items:center;justify-content:center;line-height:1}.review-request{margin:14px 0}.review-request summary{cursor:pointer;color:#b9d6ee}.review-request label{margin:12px 0 8px}.review-request textarea{min-height:64px}.lock-overlay>.card h1{margin:12px 0;font-size:28px}.alert-settings{position:relative}.alert-settings>div{position:absolute;right:0;width:300px;padding:16px;background:#152136;border:1px solid #35445b;border-radius:8px;z-index:100}.alert-settings button{margin:4px 0}
