:root{--navy:#123a65;--navy2:#092642;--ink:#172b43;--muted:#66788a;--line:#d9e3ee;--sky:#edf5fc;--blue:#2472b8;--white:#fff;--success:#1d7e58;--danger:#b0474a;--lightred:#fff0ee;--shadow:0 6px 26px #1d3a5d0e}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);background:#f5f8fc}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:var(--blue)}.shell{min-height:100vh}.topbar{background:linear-gradient(105deg,var(--navy2),#135184);color:white;box-shadow:var(--shadow)}.top-inner{max-width:1180px;margin:auto;display:flex;justify-content:space-between;align-items:center;min-height:76px;padding:12px 26px;gap:20px}.brand{font-size:22px;font-weight:800;letter-spacing:-.5px}.brand small{font-size:12px;display:block;font-weight:500;letter-spacing:1.6px;color:#c6dcf2;text-transform:uppercase}.right{display:flex;align-items:center;gap:16px;font-size:14px}.container{width:min(1150px,calc(100% - 36px));margin:36px auto 80px}.narrow{max-width:520px;margin:60px auto}.panel{background:white;border:1px solid var(--line);border-radius:17px;padding:26px;box-shadow:var(--shadow)}.panel+.panel{margin-top:18px}h1{margin:0 0 9px;font-size:29px;line-height:1.17;letter-spacing:-.6px}h2{font-size:21px;margin:0 0 16px}h3{font-size:17px;margin:0 0 12px}.muted{color:var(--muted)}.tiny{font-size:12px}.lead{color:var(--muted);margin:0 0 28px;line-height:1.6}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.inline{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.spread{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.bar{margin-bottom:22px}.tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);margin:0 0 24px;flex-wrap:wrap}.tabs button{background:none;border:0;border-bottom:3px solid transparent;padding:11px 15px;color:var(--muted);font-weight:650}.tabs button.active{color:var(--navy);border-bottom-color:var(--blue)}label{display:block;font-size:13px;font-weight:650;margin-bottom:8px}input:not([type=radio]):not([type=checkbox]),select,textarea{border:1px solid #bfcfe0;background:white;width:100%;padding:11px 12px;border-radius:9px;color:var(--ink);outline:0}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2472b826}textarea{resize:vertical;min-height:72px}input[type=checkbox],input[type=radio]{accent-color:var(--navy);width:17px;height:17px;vertical-align:middle}.field{margin-bottom:16px}.field small{display:block;margin-top:4px;color:var(--muted)}.button{border:1px solid transparent;border-radius:9px;padding:11px 16px;background:var(--blue);color:white;font-weight:700;line-height:1.2}.button:hover{filter:brightness(.95)}.button.secondary{background:white;border-color:#bdd0e2;color:var(--navy)}.button.ghost{color:var(--navy);background:#eef5fc}.button.danger{color:var(--danger);background:#fff1f1;border-color:#f0c7c7}.button.small{padding:7px 10px;font-size:13px}.button:disabled{opacity:.5;cursor:default}.button.linkish{background:none;color:var(--blue);padding:4px;border:0}.tag{display:inline-block;border-radius:999px;font-size:12px;padding:5px 10px;background:#edf5fc;color:var(--navy);font-weight:700}.tag.green{background:#e8f6ee;color:#1b7251}.tag.gray{background:#f0f2f5;color:#526474}.tag.orange{background:#fff2db;color:#8b5a18}.tag.red{background:#ffeded;color:#a23c40}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;font-size:12px;color:#60768b;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--line);padding:14px 10px;white-space:nowrap}.table td{border-bottom:1px solid #edf0f4;padding:14px 10px;vertical-align:middle}.table tr:last-child td{border-bottom:0}.table td.actions{white-space:nowrap}.empty{padding:36px 16px;text-align:center;background:#f8fbfe;border:1px dashed #d7e3ed;border-radius:12px;color:var(--muted)}.notice{padding:14px 16px;border-radius:10px;background:#f0f7ff;border:1px solid #d2e6f9;color:#24496e;font-size:14px;line-height:1.5}.notice.warn{background:#fff7ed;border-color:#f0d4a9;color:#855517}.divider{border:0;border-top:1px solid var(--line);margin:22px 0}.card-item{border:1px solid var(--line);background:white;padding:22px;border-radius:15px;box-shadow:var(--shadow)}.card-item h3{margin-bottom:7px}.stat{font-size:25px;font-weight:850;color:var(--navy)}.student-test{display:flex;justify-content:space-between;gap:20px;align-items:center}.student-test p{margin:7px 0;color:var(--muted)}.question{border:1px solid var(--line);border-radius:14px;padding:22px;margin:14px 0;background:#fff}.question .q-title{font-weight:750;margin-bottom:15px;line-height:1.5}.q-options{display:grid;gap:9px}.q-option{display:flex;align-items:flex-start;gap:12px;margin:0;padding:12px 13px;border:1px solid #dce6f1;border-radius:9px;cursor:pointer;font-weight:450;font-size:15px}.q-option:has(input:checked){background:#ebf5ff;border-color:#8fb9e5}.q-option input{flex-shrink:0}.exam{max-width:870px;margin:18px auto 70px}.exam-top{display:flex;justify-content:space-between;align-items:center;gap:18px;background:white;border:1px solid var(--line);padding:18px 22px;border-radius:14px;position:sticky;top:10px;z-index:5;box-shadow:var(--shadow)}.time{font-variant-numeric:tabular-nums;font-size:25px;font-weight:800;color:var(--navy)}.save-status{font-size:12px;color:var(--muted)}.exam .question{box-shadow:var(--shadow)}.exam-mask{position:fixed;inset:0;background:#071b31ee;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}.exam-mask .panel{max-width:520px;text-align:center}.exam-mask h2{color:var(--navy)}.editor-question{background:#fafdff;border:1px solid #d8e5f2;border-radius:14px;padding:20px;margin-bottom:14px}.option-line{display:grid;grid-template-columns:30px 1fr 37px;gap:8px;align-items:center;margin:8px 0}.answer-card{padding:16px;border:1px solid var(--line);border-radius:10px;margin:12px 0;background:#f9fbfd}.answer-card .student-answer{margin:10px 0;white-space:pre-wrap;background:white;border-radius:9px;padding:12px;border:1px solid #e7edf4;font-size:14px}.section-title{margin-top:24px}.actions-row{display:flex;gap:8px;flex-wrap:wrap}.center-loading{text-align:center;padding:110px 15px;color:var(--muted)}.toast{position:fixed;bottom:25px;right:25px;z-index:200;background:#173a59;color:white;border-radius:12px;padding:13px 17px;box-shadow:0 8px 30px #0003;max-width:400px;opacity:0;pointer-events:none;transform:translateY(10px);transition:.2s}.toast.show{opacity:1;transform:translateY(0)}.toast.error{background:#a4323c}.activation-codes{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;border-radius:10px;padding:14px;background:#f0f5fa;max-height:260px;overflow:auto;font-size:13px;white-space:pre}.hidden{display:none!important}footer{color:#8190a0;font-size:12px;text-align:center;padding:25px}.login-illustration{display:flex;justify-content:center;margin:0 0 22px}.circle-logo{background:#eaf4ff;border-radius:24px;padding:18px;font-size:28px}.results-detail{border-top:1px solid var(--line);padding-top:16px;margin-top:14px}.mini-label{font-size:12px;color:#63809a;font-weight:700;text-transform:uppercase}.status-icon{font-size:23px}select#class-filter{max-width:220px}.flex-1{flex:1}.wide-btn{width:100%}.subtle{font-size:13px;line-height:1.5;color:var(--muted)}@media(max-width:650px){.top-inner{padding:14px 18px}.brand{font-size:19px}.container{width:calc(100% - 24px);margin:20px auto 65px}.panel,.card-item{padding:17px}.grid2{grid-template-columns:1fr}.student-test{align-items:flex-start;flex-direction:column}.exam-top{position:static}.question{padding:16px}.right{gap:8px}.right span{display:none}h1{font-size:25px}.time{font-size:22px}.table{font-size:13px}.table th,.table td{padding:10px 7px}.button{padding:10px 12px}}

.seb-config{border:1px solid #c7d9ed;background:#f5faff;border-radius:14px;padding:18px;margin-top:18px;}
.seb-config h3{margin:0 0 12px;}
.code-input{text-align:center;font-size:30px!important;font-weight:850;letter-spacing:9px;font-variant-numeric:tabular-nums}.code-badge{text-align:center;background:#edf6ff;border:1px solid #c9def1;border-radius:12px;padding:12px;margin:0 0 18px;color:var(--navy);font-size:20px;font-weight:800;letter-spacing:2px}.room-code-label{font-size:12px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);font-weight:750}.room-code{font-size:38px;letter-spacing:8px;font-weight:900;color:var(--navy);font-variant-numeric:tabular-nums;margin:3px 0 17px}.status-icon{font-size:44px;color:var(--success);font-weight:900}
.room-control{border-color:#b9d4ee}.room-share{display:grid;grid-template-columns:190px 1fr;gap:24px;align-items:center;margin-top:20px;padding:18px;background:#f7fbff;border:1px solid #d9e9f7;border-radius:14px}.room-share img{display:block;width:190px;height:190px;border-radius:10px;background:white}.copy-row{display:flex;gap:9px;align-items:center}.copy-row input{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.start-room{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.waiting-card{max-width:610px;margin:90px auto;text-align:center;padding:42px}.waiting-card h1{margin-top:16px}.waiting-name{font-weight:750;color:var(--navy);margin:-8px 0 24px}.waiting-pulse{width:72px;height:72px;border-radius:50%;background:#d8f1e5;margin:0 auto 20px;position:relative}.waiting-pulse:after{content:"";position:absolute;inset:21px;border-radius:50%;background:#23835e;box-shadow:0 0 0 0 #23835e66;animation:waiting-pulse 1.8s infinite}@keyframes waiting-pulse{0%{box-shadow:0 0 0 0 #23835e66}70%{box-shadow:0 0 0 18px #23835e00}100%{box-shadow:0 0 0 0 #23835e00}}@media(max-width:650px){.room-share{grid-template-columns:1fr}.room-share img{margin:auto}.copy-row{align-items:stretch;flex-direction:column}.waiting-card{margin:35px auto;padding:28px 20px}}
.password-input-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch}.password-input-wrap .password-toggle{min-width:78px}
