:root{
  --burgundy:#790819;--burgundy-2:#930d24;--burgundy-3:#b31733;--wine:#520510;
  --red:#db2442;--red-soft:#fff0f2;--gold:#c99b49;--green:#2baa62;--blue:#2f7ce5;
  --ink:#171c28;--muted:#697386;--line:#e6e8ed;--surface:#fff;--bg:#f5f6f8;
  --shadow:0 8px 24px rgba(50,35,40,.08);--shadow-lg:0 22px 55px rgba(80,8,26,.16);
  --radius:16px;--radius-sm:11px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.muted{color:var(--muted)}.small{font-size:12px}.error{color:#b42318;font-size:13px;font-weight:700}.success{color:#16794a;font-size:13px;font-weight:700}
svg.ico{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}

/* LOGIN */
.login-shell{min-height:100vh;background:#f4f5f7;display:grid;place-items:center;padding:26px;position:relative;overflow:hidden}
.login-shell-split:before{content:"";position:absolute;left:-180px;top:-180px;width:460px;height:460px;border-radius:50%;background:rgba(121,8,25,.045)}
.login-shell-split:after{content:"";position:absolute;right:-220px;bottom:-220px;width:520px;height:520px;border-radius:50%;border:80px solid rgba(121,8,25,.035)}
.login-card{position:relative;z-index:2}
.login-card-split{width:min(1040px,100%);min-height:590px;display:grid;grid-template-columns:1.02fr .98fr;background:#fff;border-radius:26px;overflow:hidden;border:1px solid #eadfe2;box-shadow:0 28px 80px rgba(63,15,27,.18)}
.login-brand-panel{position:relative;overflow:hidden;background:linear-gradient(150deg,#720617 0%,#8e0b22 52%,#650511 100%);color:#fff;padding:54px 48px 34px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.login-brand-panel:before{content:"";position:absolute;left:-120px;bottom:-170px;width:470px;height:360px;border:1px solid rgba(255,255,255,.10);border-radius:50%;transform:rotate(18deg)}
.login-brand-panel:after{content:"";position:absolute;right:-160px;top:-170px;width:390px;height:390px;border:58px solid rgba(255,255,255,.035);border-radius:50%}
.login-brand-glow{position:absolute;border-radius:50%;pointer-events:none}.login-brand-glow-a{width:230px;height:230px;left:35px;top:60px;background:radial-gradient(circle,rgba(255,255,255,.08),transparent 68%)}.login-brand-glow-b{width:320px;height:320px;right:-80px;bottom:15px;background:radial-gradient(circle,rgba(202,158,79,.11),transparent 65%)}
.login-brand-content{position:relative;z-index:2;width:100%;display:flex;flex-direction:column;align-items:center}
.login-logo-wrap{width:126px;height:126px;border-radius:50%;background:#fff;display:grid;place-items:center;padding:7px;box-shadow:0 16px 34px rgba(35,0,8,.30);border:4px solid rgba(255,255,255,.38)}
.login-logo{width:100%;height:100%;object-fit:contain;border-radius:50%;background:#fff}
.login-school{margin-top:23px;font-size:22px;font-weight:750;line-height:1.25;color:#fff;max-width:100%}
.login-arena{margin:14px 0 0;font-size:34px;line-height:1.12;letter-spacing:.018em;color:#fff;font-weight:950;text-transform:uppercase;max-width:100%}
.login-motto{margin-top:15px;white-space:nowrap;font-size:12px;font-weight:850;letter-spacing:.13em;color:#f0c979;line-height:1.2;max-width:100%}
.login-brand-foot{position:absolute;z-index:2;left:36px;right:36px;bottom:28px;display:flex;align-items:center;justify-content:center;gap:12px;color:#dcb7bf;font-size:10px;font-weight:800;letter-spacing:.13em;white-space:nowrap}.login-brand-line{height:1px;width:42px;background:rgba(255,255,255,.26)}
.login-form-panel{background:#fff;display:flex;align-items:center;justify-content:center;padding:48px 54px}
.login-form-inner{width:min(420px,100%)}
.login-form-badge{width:52px;height:52px;border-radius:15px;background:#fff0f2;color:#8e0b22;display:grid;place-items:center;margin-bottom:18px;border:1px solid #f1d9de}.login-form-badge .ico{width:27px;height:27px}
.login-form-heading{margin-bottom:25px}.login-kicker{display:block;color:#9b132b;font-size:11px;font-weight:900;letter-spacing:.16em;margin-bottom:7px}.login-form-heading h2{font-size:29px;line-height:1.2;margin:0 0 7px;color:#191f2b}.login-form-heading p{margin:0;color:#727b8b;font-size:13px;line-height:1.5}
.login-form{margin-top:4px}.login-field{margin:14px 0}.login-field label{color:#343b49}.login-field input{min-height:46px;background:#fbfbfc;border-color:#dfe2e8}.login-field input:focus{background:#fff}
.login-error{min-height:18px;margin:2px 0 5px}.login-submit{margin-top:3px;min-height:50px;font-size:16px;letter-spacing:.02em;box-shadow:0 10px 22px rgba(121,8,25,.20)}
.login-note{border-top:1px solid #eee5e7;margin-top:20px;padding-top:15px;display:flex;align-items:center;gap:7px;color:#7c8492;font-size:10.5px;line-height:1.45}.login-note .ico{width:15px;height:15px}

@media(max-width:900px){.login-shell{padding:18px}.login-card-split{grid-template-columns:1fr;min-height:0;width:min(590px,100%)}.login-brand-panel{padding:30px 26px 24px;min-height:280px}.login-logo-wrap{width:92px;height:92px}.login-school{font-size:18px;margin-top:14px}.login-arena{font-size:27px;margin-top:9px}.login-motto{font-size:10px;letter-spacing:.09em;margin-top:10px}.login-brand-foot{position:static;margin-top:24px}.login-form-panel{padding:34px 34px 32px}}
@media(max-width:620px){.login-shell{padding:10px}.login-card-split{border-radius:19px}.login-brand-panel{padding:25px 18px 20px;min-height:235px}.login-logo-wrap{width:78px;height:78px}.login-school{font-size:16px}.login-arena{font-size:22px}.login-motto{font-size:8.9px;letter-spacing:.055em}.login-brand-foot{font-size:8.5px;gap:8px;margin-top:18px}.login-brand-line{width:24px}.login-form-panel{padding:28px 22px 25px}.login-form-heading h2{font-size:25px}.login-form-badge{width:46px;height:46px;margin-bottom:14px}}
@media(max-width:390px){.login-motto{font-size:8px;letter-spacing:.025em}.login-arena{font-size:20px}.login-school{font-size:15px}.login-brand-foot{display:none}}

/* FORM + BUTTON */
.field{display:grid;gap:7px;margin:13px 0}.field label{font-size:13px;font-weight:800;color:#303746}.field input,.field select,.field textarea{width:100%;border:1px solid #d9dde5;border-radius:11px;padding:11px 12px;background:#fff;color:var(--ink);outline:none;transition:.18s}.field input:focus,.field select:focus,.field textarea:focus{border-color:#a7253a;box-shadow:0 0 0 3px rgba(145,13,36,.09)}
.btn{border:1px solid #dde1e7;border-radius:10px;padding:9px 13px;font-weight:800;background:#fff;color:#343b49;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:.18s;text-decoration:none}.btn:hover{transform:translateY(-1px);box-shadow:0 5px 12px rgba(30,20,25,.08)}.btn.primary{background:linear-gradient(135deg,var(--burgundy-2),var(--burgundy));border-color:var(--burgundy);color:#fff}.btn.primary:hover{background:linear-gradient(135deg,#a3122c,#710717)}.btn.danger{background:#fff1f2;color:#a20d24;border-color:#f7cbd2}.btn.good{background:#ebf9f0;color:#16794a;border-color:#c9edd7}.btn.good.ready-to-start{background:#dff7e8;color:#086838;border-color:#8bd3a6;box-shadow:0 0 0 3px rgba(28,150,86,.12),0 7px 18px rgba(20,120,70,.16);animation:readyStartPulse 1.25s ease-in-out infinite}@keyframes readyStartPulse{0%,100%{transform:translateY(0);box-shadow:0 0 0 3px rgba(28,150,86,.10),0 6px 16px rgba(20,120,70,.14)}50%{transform:translateY(-1px);box-shadow:0 0 0 6px rgba(28,150,86,.06),0 9px 22px rgba(20,120,70,.20)}}.btn.block{width:100%;padding:12px}.btn.big{padding:14px 24px;border-radius:12px;font-size:16px}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.note{font-size:13px;line-height:1.55;background:#faf7f8;border:1px solid #eee2e5;border-radius:11px;padding:12px;margin-top:16px}

/* APP FRAME */
.app-shell{min-height:100vh;display:grid;grid-template-rows:90px 1fr}.topbar{height:90px;display:grid;grid-template-columns:310px minmax(350px,1fr) 118px;align-items:center;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;box-shadow:0 2px 10px rgba(50,30,35,.04)}
.brand-zone{height:100%;display:flex;align-items:center;gap:14px;padding:0 24px;background:linear-gradient(135deg,#790819 0%,#980c25 100%);color:#fff;position:relative;overflow:hidden}.brand-zone:after{content:"";position:absolute;right:-38px;top:-18px;width:82px;height:126px;background:#fff;transform:rotate(17deg);border-radius:18px}.brand-zone img{width:66px;height:66px;background:#fff;border-radius:50%;padding:2px;position:relative;z-index:1}.brand-school{position:relative;z-index:1}.brand-school b{display:block;font-size:17px}.brand-school span{display:block;font-size:12px;color:#f5dce1;margin-top:4px}
.arena-title{text-align:center;line-height:1.1}.arena-title b{font-size:23px;color:#8b1024;letter-spacing:.03em}.arena-title span{display:block;color:#333b4b;font-size:13px;margin-top:6px}.arena-title .motto{font-family:Georgia,serif;font-style:italic;color:#767c88;font-size:14px;margin-top:7px}
.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;padding-right:18px}.lan-dot{width:8px;height:8px;border-radius:50%;background:#29b765;box-shadow:0 0 0 4px rgba(41,183,101,.12);flex:0 0 auto}
.user-menu{display:flex;align-items:center}.avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#f2d8dd,#fff);color:#8d0a20;font-weight:900;border:2px solid #fff;box-shadow:0 0 0 1px #e2cfd3;position:relative}.avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}.avatar-only{cursor:default}.avatar-only:after{content:attr(data-tooltip);position:absolute;right:0;top:calc(100% + 9px);background:#242936;color:#fff;padding:7px 10px;border-radius:8px;font-size:11px;font-weight:750;white-space:nowrap;opacity:0;visibility:hidden;transform:translateY(-3px);transition:.16s;box-shadow:0 8px 20px rgba(20,20,28,.18);pointer-events:none;z-index:40}.avatar-only:before{content:"";position:absolute;right:13px;top:calc(100% + 3px);border:6px solid transparent;border-bottom-color:#242936;opacity:0;visibility:hidden;transition:.16s}.avatar-only:hover:after,.avatar-only:hover:before{opacity:1;visibility:visible;transform:translateY(0)}
.main{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:0}.sidebar{background:linear-gradient(180deg,#7b0719 0%,#680512 100%);color:#fff;min-height:calc(100vh - 90px);padding:18px 12px 16px;position:sticky;top:90px;height:calc(100vh - 90px);display:flex;flex-direction:column}.nav-group{display:grid;gap:6px}.navbtn{display:flex;width:100%;align-items:center;gap:12px;border:0;background:transparent;padding:12px 14px;border-radius:10px;color:#fbeef1;text-align:left;font-weight:750}.navbtn:hover{background:rgba(255,255,255,.08)}.navbtn.active{background:linear-gradient(90deg,rgba(255,255,255,.18),rgba(255,255,255,.09));box-shadow:inset 3px 0 0 #fff;color:#fff}.sidebar-bottom{margin-top:auto;padding:12px 10px 2px;display:grid;gap:10px}.sidebar-lan{display:flex;align-items:center;gap:8px;color:#e8f8ee;font-size:11px;font-weight:800;background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.10);padding:9px 10px;border-radius:10px;letter-spacing:0}.sidebar-lan .ico{width:15px;height:15px}.sidebar-lan .lan-dot{width:7px;height:7px;box-shadow:0 0 0 3px rgba(41,183,101,.12)}.sidebar-slogan{color:#d7b8be;font-size:8.8px;font-weight:800;letter-spacing:.055em;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.content{padding:24px 26px 30px;min-width:0;overflow:auto}.page-head{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;margin-bottom:18px}.page-head h1{font-size:25px;margin:0 0 5px}.page-head p{margin:0;color:var(--muted)}

/* GENERAL CARDS */
.grid{display:grid;gap:15px}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:var(--surface);border:1px solid #e8e9ed;border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.card-title{display:flex;align-items:center;gap:10px;color:#8c0c21}.card-title h3{margin:0;font-size:17px}.card-title p{margin:2px 0 0;color:var(--muted);font-size:12px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.section-head-left{display:flex;align-items:center;gap:11px}.section-icon{width:40px;height:40px;border-radius:11px;background:#fff0f2;color:#9c1026;display:grid;place-items:center}.section-icon .ico{width:22px;height:22px}
.stats-grid{align-items:stretch}.stat-card{display:grid;grid-template-columns:50px minmax(0,1fr);align-items:center;gap:14px;padding:16px 17px;min-height:88px}.stat-icon{width:50px;height:50px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,#9c0b24,#6e0717);color:#fff;box-shadow:0 8px 18px rgba(121,8,25,.17)}.stat-icon.green{background:linear-gradient(135deg,#5d814a,#456b36)}.stat-icon.gold{background:linear-gradient(135deg,#ad8131,#87611d)}.stat-icon.red{background:linear-gradient(135deg,#c20f2c,#8d081f)}.stat-content{min-width:0;display:grid;gap:4px}.stat-label{display:block;font-size:11.5px;font-weight:750;color:var(--muted);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-value-row{display:flex;align-items:baseline;justify-content:space-between;gap:7px;min-width:0}.stat-value-row b{font-size:26px;line-height:1;font-weight:900;color:#1c2230}.stat-note{font-size:9.5px;font-weight:800;color:#198b4d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;text-align:right}.stat-note.live{background:#fff1f2;color:#b3122b;padding:4px 6px;border-radius:999px}

/* DASHBOARD */
.quick-match{margin-top:16px;padding:20px}.quick-grid{display:grid;grid-template-columns:minmax(0,1fr) 66px minmax(0,1fr);gap:14px;align-items:end}.vs-mark{text-align:center;color:#920e24;font-weight:950;font-size:21px;padding-bottom:15px}.vs-mark .ico{width:27px;height:27px;margin:auto;display:block;margin-bottom:4px}.quick-settings{display:grid;grid-template-columns:1fr 1fr 1fr .9fr .9fr 1.2fr;gap:0;margin-top:14px;border:1px solid var(--line);border-radius:13px;overflow:hidden}.setting-cell{padding:13px 14px;border-right:1px solid var(--line);min-width:0}.setting-cell:last-child{border-right:0}.setting-cell label{font-size:12px;color:#434b59;font-weight:800;display:block;margin-bottom:7px}.setting-cell input[type=number]{width:100%;border:1px solid #d7dbe2;border-radius:9px;padding:8px 9px}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.switch{position:relative;width:46px;height:25px}.switch input{opacity:0;width:0;height:0}.switch i{position:absolute;inset:0;border-radius:99px;background:#d6d9df;transition:.2s}.switch i:after{content:"";position:absolute;width:19px;height:19px;left:3px;top:3px;background:#fff;border-radius:50%;box-shadow:0 2px 6px rgba(0,0,0,.2);transition:.2s}.switch input:checked+i{background:#960d25}.switch input:checked+i:after{transform:translateX(21px)}.start-quick{height:100%;width:100%;min-height:63px;background:linear-gradient(135deg,#a10b27,#760718);color:#fff;border:0;border-radius:0;font-size:16px;font-weight:900;display:flex;align-items:center;justify-content:center;gap:10px}.start-quick:hover{filter:brightness(1.05)}
.live-table{margin-top:16px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:13px;background:#fff}.table{width:100%;border-collapse:collapse;min-width:820px}.table th,.table td{padding:11px 12px;border-bottom:1px solid #edf0f3;text-align:left;font-size:12px;vertical-align:middle}.table th{background:#f7f8fa;color:#5b6474;font-size:11px;font-weight:850}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:#fcfafb}.student-cell{display:flex;align-items:center;gap:9px}.mini-avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#f5dfe3;color:#8c0b21;font-weight:900}.mini-avatar.alt{background:#dfeaff;color:#2f65aa}.student-cell b{display:block;font-size:12px}.student-cell span{display:block;font-size:10px;color:var(--muted);margin-top:2px}.match-versus{color:#8992a1;font-weight:900}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:850;background:#eef1f5;color:#596274}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge.running{background:#e6f7ec;color:#1d8a4c}.badge.waiting{background:#fff5dc;color:#9d6a10}.badge.finished{background:#eeeefc;color:#5554aa}.progressbar{height:8px;background:#eceff3;border-radius:99px;overflow:hidden}.progressbar i{display:block;height:100%;background:linear-gradient(90deg,#d7183a,#9f0d27);border-radius:99px}.progressbar.blue i{background:linear-gradient(90deg,#4b8df2,#286bc8)}

/* LIST / BANK */
.toolbar{display:flex;gap:8px;flex-wrap:wrap}.qtype{font-size:10px;font-weight:900;text-transform:uppercase;color:#9c0f25;letter-spacing:.05em}.qstem{font-weight:750;line-height:1.5}.actions{display:flex;gap:7px;flex-wrap:wrap}.question-list{display:grid;gap:12px}.question-item{padding:16px 18px}.question-meta{display:flex;gap:8px;align-items:center;margin-bottom:8px}.topic-chip,.diff-chip{font-size:10px;font-weight:850;padding:4px 7px;border-radius:999px;background:#fff0f2;color:#971027}.diff-chip{background:#f1f3f6;color:#687183}

/* MODAL */
.modal-backdrop{position:fixed;inset:0;background:rgba(30,10,15,.46);display:grid;place-items:center;padding:18px;z-index:50;backdrop-filter:blur(3px)}.modal{width:min(800px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;padding:22px;box-shadow:0 26px 80px rgba(35,0,10,.25)}.modal h2{margin:0 0 7px;color:#790819}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.checklist{max-height:245px;overflow:auto;border:1px solid var(--line);border-radius:11px;padding:7px}.checkitem{display:flex;gap:9px;align-items:flex-start;padding:9px;border-radius:8px}.checkitem:hover{background:#faf6f7}

/* STUDENT HOME */
.student-home{max-width:1100px;margin:0 auto}.match-card{display:flex;justify-content:space-between;gap:16px;align-items:center;border-left:4px solid #8b0a20}.match-card h3{margin:0 0 6px}.match-card+.match-card{margin-top:12px}

/* EXAM – SPECIAL FULL LAYOUT */
.app-shell.exam-mode{grid-template-rows:86px 1fr}.app-shell.exam-mode .main{display:block}.app-shell.exam-mode .content{padding:14px 18px 22px}.app-shell.exam-mode .topbar{height:86px;grid-template-columns:auto minmax(0,1fr) auto;background:linear-gradient(90deg,#650512 0%,#8c0a21 62%,#660512 100%);color:#fff;border:0}.app-shell.exam-mode .brand-zone{background:transparent}.app-shell.exam-mode .brand-zone:after{display:none}.app-shell.exam-mode .brand-school span{color:#efcbd2}.app-shell.exam-mode .arena-title b{color:#fff;font-size:25px}.app-shell.exam-mode .arena-title span{color:#ffeef1}.app-shell.exam-mode .arena-title .motto{display:none}.app-shell.exam-mode .lan-pill{background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.17);color:#fff}.app-shell.exam-mode .user-info span{color:#e8c8cf}.app-shell.exam-mode .btn.top-logout{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.15);color:#fff}
.exam-shell{max-width:1600px;margin:0 auto}.duel-banner{display:grid;grid-template-columns:1fr 96px 1fr;align-items:center;gap:16px;background:linear-gradient(105deg,#750719,#a00c29 48%,#5a0510);border-radius:15px;color:#fff;padding:18px 26px;box-shadow:0 12px 26px rgba(95,7,23,.19);margin-bottom:14px;position:relative;overflow:hidden}.duel-banner:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,rgba(255,255,255,.12),transparent 32%);pointer-events:none}.duel-person{position:relative;z-index:1}.duel-person.right{text-align:right}.duel-name{font-size:18px;font-weight:900}.duel-sub{font-size:11px;color:#f1cfd5;margin-top:4px}.duel-stat{display:flex;justify-content:space-between;gap:8px;font-size:11px;margin-top:9px}.duel-person.right .duel-stat{flex-direction:row-reverse}.duel-vs{position:relative;z-index:1;text-align:center;font-size:38px;font-weight:950;color:#ffb0bd;text-shadow:0 3px 18px rgba(255,255,255,.18)}.duel-vs small{display:block;font-size:9px;color:#e5afb8;letter-spacing:.18em;margin-top:4px}
.exam-grid{display:grid;grid-template-columns:250px minmax(0,1fr) 285px;gap:14px;align-items:start}.exam-panel{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow)}.qnav{padding:16px;position:sticky;top:100px}.qnav-title{display:flex;align-items:center;gap:8px;color:#8f0b22;font-weight:900;font-size:14px;border-bottom:1px solid #eceef2;padding-bottom:12px;margin-bottom:13px}.qsection{margin-bottom:18px}.qsection-title{font-size:12px;font-weight:900;color:#760719;margin-bottom:9px}.qnav-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.qnum{height:37px;border:1px solid #dfe3e9;background:#f7f8fa;border-radius:8px;font-weight:850;color:#303746}.qnum.done{background:#e8f8ee;border-color:#bce8cb;color:#258952}.qnum.active{background:#8f0b22;color:#fff;border-color:#8f0b22;box-shadow:0 5px 12px rgba(143,11,34,.19)}.legend{border-top:1px solid #eceef2;padding-top:12px;margin-top:8px;display:grid;gap:7px;font-size:10px;color:#616a79}.legend-item{display:flex;align-items:center;gap:7px}.legend-dot{width:10px;height:10px;border-radius:50%;background:#d8dde4}.legend-dot.done{background:#3fb66e}.legend-dot.active{background:#940d25}.submit-wrap{margin-top:14px}.submit-wrap .btn{width:100%}
.question-card{padding:22px 24px;min-height:500px}.question-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.part-label{display:inline-flex;align-items:center;gap:7px;background:#fff0f2;color:#9a1026;padding:7px 10px;border-radius:9px;font-size:11px;font-weight:900}.question-index{background:#f3f4f7;padding:7px 11px;border-radius:9px;font-weight:900;font-size:12px}.stem{font-size:18px;line-height:1.55;font-weight:800;margin-bottom:19px;color:#1d2431}.option{display:flex;gap:12px;align-items:flex-start;border:1px solid #dce1e8;border-radius:10px;padding:13px 14px;margin:9px 0;transition:.16s;background:#fff}.option:hover{border-color:#c998a3;background:#fffafb}.option:has(input:checked){border-color:#9c0f27;background:#fff1f3;box-shadow:inset 3px 0 0 #9c0f27}.option input{margin-top:3px;accent-color:#8d0a20}.tf-row{display:grid;grid-template-columns:minmax(0,1fr) 95px 95px;gap:10px;align-items:center;border:1px solid #e1e4ea;border-radius:10px;padding:12px 13px;margin:9px 0}.tf-row:has(input:checked){border-color:#d6a5ae;background:#fffafb}.tf-choice{display:flex;align-items:center;justify-content:center;gap:5px;font-size:12px;font-weight:800;border:1px solid #e1e4ea;border-radius:8px;padding:8px;background:#fff}.tf-choice:has(input:checked){border-color:#9d1027;color:#8f0b22;background:#fff1f3}.tf-choice input{accent-color:#8d0a20}.exam-actions{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:10px;margin-top:22px}.save-next{background:linear-gradient(135deg,#a00c28,#760718);color:#fff;border:0;border-radius:10px;font-weight:900;padding:12px 14px}.save-next:hover{filter:brightness(1.05)}
.right-stack{display:grid;gap:13px;position:sticky;top:100px}.side-card{padding:15px 16px}.side-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:900;color:#8f0b22;margin-bottom:10px}.timer-panel{text-align:center}.timer-big{font-size:31px;letter-spacing:.06em;font-weight:950;color:#d31d3b;margin:9px 0}.timer-caption{font-size:10px;color:var(--muted)}.focus-note{background:#fff0f2;border-radius:9px;padding:10px;font-size:11px;color:#9b2436;margin-top:10px}.progress-person{margin:11px 0}.progress-person-head{display:flex;justify-content:space-between;gap:10px;font-size:11px;font-weight:800;margin-bottom:6px}.match-info{display:grid;gap:7px;font-size:10px}.match-info div{display:flex;justify-content:space-between;gap:10px;border-bottom:1px dashed #e2e5ea;padding-bottom:6px}.match-info div:last-child{border:0}.result-box{text-align:center;padding:42px}.result-box .winner{font-size:34px;font-weight:950;color:#8c0b21}.result-crown{font-size:38px;margin-bottom:8px}

/* BACKUP */
.backup-card h3{margin-top:0;color:#7f091c}

/* RESPONSIVE */
@media(max-width:1180px){.topbar{grid-template-columns:280px 1fr 265px}.grid.cols-4{grid-template-columns:repeat(2,1fr)}.quick-settings{grid-template-columns:repeat(3,1fr)}.setting-cell{border-bottom:1px solid var(--line)}.exam-grid{grid-template-columns:220px minmax(0,1fr)}.right-stack{grid-column:1/-1;position:static;grid-template-columns:repeat(3,1fr)}.qnav{top:100px}}
@media(max-width:900px){.app-shell{grid-template-rows:auto 1fr}.topbar{height:auto;grid-template-columns:1fr;gap:0;position:static}.brand-zone{height:76px}.arena-title{padding:12px}.top-actions{padding:10px 14px;border-top:1px solid #eee}.main{grid-template-columns:1fr}.sidebar{position:static;height:auto;min-height:0;display:block;padding:8px 10px}.nav-group{display:flex;overflow:auto}.navbtn{width:auto;white-space:nowrap}.sidebar-bottom{display:none}.content{padding:16px}.quick-grid{grid-template-columns:1fr}.vs-mark{padding:0}.quick-settings{grid-template-columns:1fr 1fr}.login-card-single{width:min(520px,100%)}.exam-grid{grid-template-columns:1fr}.qnav,.right-stack{position:static}.right-stack{grid-template-columns:1fr 1fr}.app-shell.exam-mode .topbar{grid-template-columns:1fr;height:auto}.app-shell.exam-mode .content{padding:10px}.duel-banner{grid-template-columns:1fr 58px 1fr}.qnav-grid{grid-template-columns:repeat(8,1fr)}}
@media(max-width:620px){.content{padding:12px}.grid.cols-4,.grid.cols-2,.row{grid-template-columns:1fr}.quick-settings{grid-template-columns:1fr}.quick-settings .setting-cell{border-right:0}.login-form-pane{padding:30px 24px}.right-stack{grid-template-columns:1fr}.duel-banner{padding:14px 12px;grid-template-columns:1fr 45px 1fr}.duel-name{font-size:14px}.duel-vs{font-size:28px}.question-card{padding:17px 15px}.stem{font-size:16px}.tf-row{grid-template-columns:1fr 82px 82px}.exam-actions{grid-template-columns:1fr 1fr}.exam-actions .save-next{grid-column:1/-1;grid-row:1}.qnav-grid{grid-template-columns:repeat(6,1fr)}.user-info,.lan-pill{display:none}}

/* BRANDING SETTINGS V0.5 */

.branding-grid{align-items:start}.branding-preview-card h3{margin-top:0;color:#7f091c}.branding-preview{display:flex;align-items:center;gap:18px;padding:22px;border:1px solid #eadde1;border-radius:16px;background:linear-gradient(135deg,#fff,#fff7f8)}.branding-preview img{width:94px;height:94px;object-fit:contain;border-radius:50%;background:#fff;border:1px solid #eadde1;padding:5px;box-shadow:0 8px 20px rgba(91,7,22,.09)}.branding-preview div{min-width:0}.branding-preview b{display:block;font-size:20px;color:#690715;line-height:1.25}.branding-preview span{display:block;margin-top:7px;font-size:12px;font-weight:800;color:#9b1930;letter-spacing:.03em}.branding-preview em{display:block;margin-top:7px;font-size:10px;font-style:normal;font-weight:800;letter-spacing:.08em;color:#6b7280;white-space:nowrap}.brand-school b{font-size:16px;line-height:1.25}.brand-zone>img{object-fit:contain}.login-brand-top>div{min-width:0}.login-brand-top b{display:block;line-height:1.3}.login-logo{object-fit:contain}


/* LOGIN LAYOUT V0.7 */
.login-brand-panel{justify-content:stretch;padding:38px 46px 34px}
.login-brand-content{height:100%;min-height:510px;display:flex;flex-direction:column;align-items:center;width:100%}
.login-brand-top{display:flex;flex-direction:column;align-items:center;width:100%;padding-top:4px}
.login-logo-wrap{width:118px;height:118px}
.login-school{margin-top:10px;font-size:20px;font-weight:760;line-height:1.25}
.login-brand-center{margin:86px 0 auto;display:flex;flex-direction:column;align-items:center;width:100%;padding:10px 0 28px}
.login-arena{margin:0;font-size:34px;line-height:1.12;font-weight:950}
.login-motto{margin-top:14px;font-size:11.5px;letter-spacing:.12em;white-space:nowrap}
.login-brand-foot{display:none}

.login-form-panel{padding:44px 54px}
.login-form-inner{display:flex;flex-direction:column;align-items:stretch}
.login-form-badge{width:82px;height:82px;border-radius:22px;margin:0 auto 16px;background:#fff1f3;border:1px solid #eed6dc;box-shadow:0 10px 24px rgba(121,8,25,.08)}
.login-form-badge .ico{width:43px;height:43px;stroke-width:1.75}
.login-form-heading{text-align:center;margin-bottom:24px}
.login-form-heading h2{font-size:29px;margin:0 0 7px;color:#191f2b;text-align:center}
.login-form-heading p{max-width:330px;margin:0 auto;color:#727b8b;font-size:13px;line-height:1.5;text-align:center}
.login-kicker{display:none!important}

@media(max-width:900px){
  .login-brand-panel{padding:28px 26px 24px}
  .login-brand-content{min-height:260px}
  .login-brand-center{margin:26px 0 0;padding:0}
  .login-logo-wrap{width:90px;height:90px}
  .login-school{margin-top:8px;font-size:18px}
  .login-arena{font-size:27px}
  .login-motto{font-size:9.8px;letter-spacing:.08em;margin-top:10px}
  .login-form-badge{width:70px;height:70px;margin-bottom:14px}
  .login-form-badge .ico{width:37px;height:37px}
}
@media(max-width:620px){
  .login-brand-content{min-height:220px}
  .login-brand-center{margin-top:20px}
  .login-logo-wrap{width:76px;height:76px}
  .login-school{font-size:16px}
  .login-arena{font-size:22px}
  .login-motto{font-size:8.8px;letter-spacing:.05em}
  .login-form-panel{padding:28px 22px 25px}
  .login-form-badge{width:62px;height:62px}
  .login-form-badge .ico{width:32px;height:32px}
}

/* V0.9 compact identity / LAN placement */
.app-shell.exam-mode .avatar{background:rgba(255,255,255,.96);color:#8d0a20}.app-shell.exam-mode .avatar-only:after{background:#fff;color:#650512}.app-shell.exam-mode .avatar-only:before{border-bottom-color:#fff}
@media(max-width:1320px){.stat-card{grid-template-columns:44px minmax(0,1fr);gap:11px;padding:15px}.stat-icon{width:44px;height:44px}.stat-label{font-size:10.8px}.stat-value-row b{font-size:24px}.stat-note{font-size:9px}}

/* V0.12 base - Phòng chờ, trạng thái sẵn sàng và điều khiển trận */
.ready-inline{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:850;color:#9b6a12;background:#fff6df;border:1px solid #f1dfaa;padding:6px 9px;border-radius:999px;white-space:nowrap}.ready-inline .ico{width:14px;height:14px}.ready-inline.is-ready{color:#207f48;background:#e9f8ef;border-color:#c2e8cf}
.ready-count{display:inline-flex;min-width:42px;height:28px;align-items:center;justify-content:center;border-radius:999px;background:#fff5df;border:1px solid #f0dda7;color:#9a6914;font-size:11px;font-weight:900}.ready-count.complete{background:#e8f7ee;border-color:#bce6ca;color:#1d8248}
.watch-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;border-bottom:1px solid #eceff2;padding-bottom:14px;margin-bottom:14px}.watch-head h2{margin:4px 0 2px}.watch-actions{justify-content:flex-end;margin-top:16px}.watch-actions .btn{min-width:118px}
.ready-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 16px;border:1px solid #f0dda7;background:#fff8e8;border-radius:13px;margin-bottom:14px}.ready-summary.complete{background:#ecf8f0;border-color:#c5e7d0}.ready-summary b{display:block;font-size:14px;color:#75500e}.ready-summary.complete b{color:#216f43}.ready-summary span{display:block;font-size:11px;color:#707887;margin-top:4px}.ready-ring{width:56px;height:56px;flex:0 0 56px;border-radius:50%;display:grid;place-items:center;background:#fff;border:5px solid #e9cc84;color:#8e6213;font-weight:950;font-size:14px}.ready-summary.complete .ready-ring{border-color:#63bf82;color:#237c49}
.ready-list{display:grid;gap:9px}.ready-person{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:11px;align-items:center;border:1px solid #e5e8ed;border-radius:12px;padding:11px 12px;background:#fff}.ready-person>div b{display:block;font-size:12px}.ready-person>div span{display:block;color:var(--muted);font-size:10px;margin-top:2px}.ready-state{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:7px 10px;font-size:10px;font-weight:900;white-space:nowrap}.ready-state .ico{width:13px;height:13px}.ready-state.yes{background:#e9f8ef;color:#1e8148;border:1px solid #c0e8cd}.ready-state.no{background:#fff5df;color:#936313;border:1px solid #efdcaa}
.waiting-shell{max-width:980px;margin:14px auto 30px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 18px 48px rgba(78,9,21,.10);overflow:hidden}.waiting-brand{text-align:center;padding:28px 30px 20px;background:linear-gradient(180deg,#fff8f9,#fff)}.waiting-icon{width:62px;height:62px;border-radius:18px;background:linear-gradient(145deg,#a20d28,#720616);color:#fff;display:grid;place-items:center;margin:0 auto 12px;box-shadow:0 12px 24px rgba(132,7,28,.18)}.waiting-icon .ico{width:31px;height:31px}.waiting-brand h1{margin:7px 0 5px;color:#74101e;font-size:27px}.waiting-brand p{margin:0;color:var(--muted);font-size:12px}.waiting-duel{display:grid;grid-template-columns:1fr 70px 1fr;gap:15px;align-items:center;padding:18px 36px;background:#7f091d;color:#fff}.waiting-player{display:grid;justify-items:center;gap:8px;text-align:center}.waiting-player b{font-size:15px}.wait-avatar{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#850b20;font-size:18px;font-weight:950;border:4px solid rgba(255,255,255,.2)}.wait-avatar.alt{background:#eef4ff;color:#2f63a4}.waiting-vs{text-align:center;font-size:28px;font-weight:950;color:#f5b2bd}.waiting-control{padding:22px 30px 28px;text-align:center}.waiting-control .ready-summary{text-align:left}.ready-toggle{min-width:310px;justify-content:center;font-weight:950;padding:12px 18px}.waiting-note{max-width:620px;margin:14px auto;color:#676f7d;background:#f8f9fb}.waiting-control>#backStu{margin-top:8px}
@media(max-width:700px){.ready-person{grid-template-columns:34px 1fr}.ready-person .ready-state{grid-column:1/-1;justify-content:center}.waiting-duel{padding:16px 14px;grid-template-columns:1fr 46px 1fr}.waiting-control{padding:18px 16px 22px}.ready-toggle{min-width:0;width:100%}.waiting-brand h1{font-size:22px}.ready-summary{align-items:flex-start}.ready-ring{width:48px;height:48px;flex-basis:48px;border-width:4px}}

/* V0.12 - Student header alignment + restrained duel styling */
/* Center the exam title against the viewport, not against uneven grid columns. */
.app-shell.exam-mode .topbar{position:sticky}
.app-shell.exam-mode .arena-title{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:max-content;
  max-width:46vw;
  text-align:center;
  z-index:3;
  pointer-events:none;
}
.app-shell.exam-mode .arena-title b,
.app-shell.exam-mode .arena-title span{display:block;text-align:center}

/* Clean duel emphasis: no flames, no decorative animation. */
.waiting-duel,.duel-banner{position:relative;overflow:hidden;isolation:isolate}
.waiting-duel:before,.duel-banner:before{
  content:"";
  position:absolute;
  left:50%;top:50%;
  width:220px;height:110px;
  transform:translate(-50%,-50%);
  background:radial-gradient(ellipse,rgba(255,255,255,.12) 0%,rgba(255,255,255,.045) 48%,transparent 72%);
  pointer-events:none;z-index:-1;
}
.waiting-vs,.duel-vs{position:relative;text-shadow:none;letter-spacing:.02em}
.waiting-vs:after,.duel-vs:after{
  content:"";display:block;width:34px;height:2px;border-radius:99px;
  margin:7px auto 0;background:rgba(255,255,255,.34)
}
.waiting-control{padding-top:26px}
.waiting-control .ready-toggle{box-shadow:0 8px 20px rgba(121,8,25,.12)}
.waiting-note{margin-top:16px}

/* Server-synchronised 3-second countdown before the question paper is exposed. */
.countdown-shell{min-height:calc(100vh - 118px);display:grid;place-items:center;padding:28px}
.countdown-card{width:min(760px,100%);text-align:center;background:#fff;border:1px solid #eadfe2;border-radius:24px;box-shadow:0 24px 70px rgba(78,9,21,.14);overflow:hidden;padding:0 0 34px}
.countdown-kicker{background:linear-gradient(135deg,#7b0719,#980e29);color:#fff;font-size:12px;font-weight:950;letter-spacing:.16em;padding:16px}
.countdown-duel{display:grid;grid-template-columns:1fr 82px 1fr;gap:16px;align-items:center;padding:28px 46px 10px}
.countdown-player{display:grid;justify-items:center;gap:8px;color:#2c313b}.countdown-player b{font-size:15px}
.countdown-vs{font-size:25px;font-weight:950;color:#8c0b21}
.countdown-number{width:132px;height:132px;border-radius:50%;display:grid;place-items:center;margin:12px auto 10px;background:#7f091d;color:#fff;font-size:62px;line-height:1;font-weight:950;box-shadow:0 0 0 10px #f8e9ec,0 14px 34px rgba(111,5,23,.20);font-variant-numeric:tabular-nums}
.countdown-number:not(:empty){animation:countdownPop .82s ease-out infinite}
.countdown-text{font-size:12px;font-weight:850;letter-spacing:.12em;color:#7a808c;text-transform:uppercase}
@keyframes countdownPop{0%{transform:scale(.90);opacity:.72}35%{transform:scale(1);opacity:1}100%{transform:scale(1);opacity:1}}

@media(max-width:900px){
  .app-shell.exam-mode .arena-title{position:static;transform:none;max-width:none;width:auto;pointer-events:auto;padding:10px 12px}
}
@media(max-width:700px){
  .countdown-shell{padding:14px}.countdown-duel{padding:22px 14px 8px;grid-template-columns:1fr 48px 1fr}.countdown-number{width:112px;height:112px;font-size:54px}.countdown-player b{font-size:12px}
}
@media(prefers-reduced-motion:reduce){.countdown-number{animation:none!important}}
.admin-countdown{display:grid;justify-items:center;gap:8px;padding:28px 18px;border:1px solid #eadde1;background:#fff8f9;border-radius:15px;text-align:center}.admin-countdown span{font-size:10px;font-weight:900;letter-spacing:.12em;color:#7c1324}.admin-countdown b{font-size:44px;line-height:1;color:#8c0b21}.admin-countdown em{font-style:normal;font-size:11px;color:#747b87}


/* V0.13 - student header spacing, stronger VS, electric waiting-room accent */
.app-shell.exam-mode .brand-zone{width:max-content;min-width:330px;padding-left:28px;padding-right:18px}
.app-shell.exam-mode .top-actions{justify-self:end;width:max-content;padding-right:10px;padding-left:8px;gap:8px}
.app-shell.exam-mode .top-actions .avatar{width:44px;height:44px}
.app-shell.exam-mode .top-actions .top-logout{width:46px;height:44px;padding:0}

/* Make VS more prominent without crowding contestant information. */
.duel-banner{grid-template-columns:minmax(0,1fr) 126px minmax(0,1fr)}
.duel-vs{font-size:52px;line-height:.95;color:#ffc0cb;font-weight:950}
.duel-vs small{font-size:9px;line-height:1.35;margin-top:9px;letter-spacing:.16em}

.waiting-duel{grid-template-columns:minmax(0,1fr) 124px minmax(0,1fr);padding:22px 38px;background:linear-gradient(105deg,#720617,#8d0a22 48%,#650512);position:relative;overflow:hidden}
.waiting-vs{font-size:48px;line-height:1;font-weight:1000;color:#ffd6dd;z-index:3;text-shadow:0 0 20px rgba(255,205,215,.22)}
.waiting-vs:after{content:"";display:block;width:46px;height:2px;border-radius:99px;margin:10px auto 0;background:rgba(255,255,255,.42)}
.waiting-vs:before{content:"⚡";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(1);font-size:88px;line-height:1;color:rgba(255,217,82,.075);z-index:-1;filter:blur(.2px);animation:vsElectricPulse 1.8s ease-in-out infinite}

/* Thin animated electric trace around the waiting duel panel. */
.waiting-duel::after{content:"";position:absolute;inset:0;padding:2px;border-radius:0;background:conic-gradient(from var(--electric-angle,0deg),transparent 0 30%,rgba(255,255,255,.15) 36%,#ffd86a 40%,#fff 42%,#e01f42 45%,transparent 51% 78%,rgba(255,216,106,.55) 84%,transparent 90% 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;z-index:4;animation:electricOrbit 3.2s linear infinite;opacity:.72}
.waiting-duel .waiting-player{position:relative;z-index:2}
.waiting-duel .wait-avatar{box-shadow:0 0 0 1px rgba(255,255,255,.18),0 7px 18px rgba(0,0,0,.10)}

@property --electric-angle{syntax:"<angle>";inherits:false;initial-value:0deg}
@keyframes electricOrbit{to{--electric-angle:360deg}}
@keyframes vsElectricPulse{0%,100%{opacity:.45;transform:translate(-50%,-50%) scale(.96)}50%{opacity:.9;transform:translate(-50%,-50%) scale(1.05)}}

@media(max-width:1180px){
  .app-shell.exam-mode .brand-zone{min-width:270px;padding-left:18px}
  .duel-banner{grid-template-columns:minmax(0,1fr) 105px minmax(0,1fr)}
  .duel-vs{font-size:46px}
}
@media(max-width:900px){
  .app-shell.exam-mode .brand-zone{width:100%;min-width:0;padding:0 18px}
  .app-shell.exam-mode .top-actions{justify-self:stretch;width:auto;padding:9px 12px;justify-content:flex-end}
  .waiting-duel{grid-template-columns:1fr 82px 1fr;padding:18px 16px}
  .waiting-vs{font-size:40px}
  .duel-banner{grid-template-columns:1fr 82px 1fr}
  .duel-vs{font-size:42px}
}
@media(max-width:620px){
  .waiting-duel{grid-template-columns:1fr 58px 1fr;padding:16px 10px}
  .waiting-vs{font-size:32px}
  .duel-banner{grid-template-columns:1fr 58px 1fr}
  .duel-vs{font-size:34px}
}
@media(prefers-reduced-motion:reduce){.waiting-duel::after,.waiting-vs:before{animation:none!important}}

.countdown-vs{font-size:34px}

/* V0.14 - stronger, larger electric orbit in the waiting room */
.waiting-duel{
  box-shadow:
    0 0 0 1px rgba(255,255,255,.10) inset,
    0 0 24px rgba(231,25,61,.20),
    0 0 42px rgba(255,200,82,.08);
}
.waiting-duel::after{
  inset:-1px;
  padding:4px;
  background:conic-gradient(
    from var(--electric-angle,0deg),
    transparent 0 20%,
    rgba(255,255,255,.22) 24%,
    #ffcf4d 28%,
    #fff7c7 30%,
    #ffffff 31.5%,
    #ff7b92 34%,
    #e5163b 38%,
    transparent 43% 66%,
    rgba(255,255,255,.16) 70%,
    #ffd767 74%,
    #fff 76%,
    #e0193e 80%,
    transparent 86% 100%
  );
  animation:electricOrbit 2.15s linear infinite,electricEdgePulse 1.05s ease-in-out infinite;
  opacity:.98;
  filter:drop-shadow(0 0 5px rgba(255,228,132,.72)) drop-shadow(0 0 11px rgba(226,23,58,.38));
}
.waiting-duel::before{
  content:"";
  position:absolute;
  inset:2px;
  border-radius:3px;
  pointer-events:none;
  z-index:3;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.18),
    inset 0 0 14px rgba(255,218,92,.11),
    0 0 16px rgba(255,206,79,.16);
  animation:electricInnerPulse 1.15s ease-in-out infinite;
}
.waiting-vs{font-size:54px;text-shadow:0 0 10px rgba(255,255,255,.18),0 0 24px rgba(255,64,96,.24)}
.waiting-vs:before{
  font-size:108px;
  color:rgba(255,220,86,.12);
  animation:vsElectricPulse 1.25s ease-in-out infinite;
}
.waiting-vs:after{width:58px;height:3px;box-shadow:0 0 8px rgba(255,224,120,.55)}
@keyframes electricEdgePulse{
  0%,100%{filter:drop-shadow(0 0 4px rgba(255,228,132,.60)) drop-shadow(0 0 8px rgba(226,23,58,.26))}
  50%{filter:drop-shadow(0 0 9px rgba(255,238,176,.95)) drop-shadow(0 0 18px rgba(239,28,65,.48))}
}
@keyframes electricInnerPulse{
  0%,100%{opacity:.48}
  50%{opacity:1}
}
@media(max-width:900px){
  .waiting-duel::after{padding:3px}
  .waiting-vs{font-size:46px}
  .waiting-vs:before{font-size:92px}
}
@media(max-width:620px){
  .waiting-duel::after{padding:3px;animation-duration:2.45s,1.2s}
  .waiting-vs{font-size:37px}
  .waiting-vs:before{font-size:74px}
}
@media(prefers-reduced-motion:reduce){
  .waiting-duel::before,.waiting-duel::after,.waiting-vs:before{animation:none!important}
}

/* V0.15 - Focus/fullscreen exam mode, compact navigator, realtime autosave */
.exam-shell{position:relative}
.exam-fullscreen-btn{
  position:absolute;right:12px;top:10px;z-index:12;
  width:38px;height:38px;border-radius:10px;border:1px solid rgba(255,255,255,.28);
  background:rgba(70,0,14,.24);color:#fff;display:grid;place-items:center;padding:0;
  box-shadow:0 5px 14px rgba(42,0,9,.18);backdrop-filter:blur(5px)
}
.exam-fullscreen-btn:hover{background:rgba(255,255,255,.16);transform:translateY(-1px)}
.exam-fullscreen-btn .ico{width:19px;height:19px}.exam-fullscreen-btn span{display:none}
.duel-person.right{padding-right:42px}

/* Only the contestant role is shown below each name; school name is intentionally omitted. */
.duel-sub{font-size:10px;font-weight:900;letter-spacing:.13em;color:#f5dbe0;margin-top:5px}

/* Compact question navigator: designed to remain usable with large question sets. */
.exam-grid{grid-template-columns:190px minmax(0,1fr) 260px;gap:11px}
.qnav{padding:11px 10px;top:98px;max-height:calc(100vh - 112px);display:flex;flex-direction:column;overflow:hidden}
.qnav-title{font-size:12px;padding-bottom:8px;margin-bottom:8px;gap:6px;flex:0 0 auto}
.qnav-title .ico{width:16px;height:16px}.qnav-title span{margin-left:auto;min-width:24px;height:22px;padding:0 7px;border-radius:999px;background:#fff0f2;color:#8f0b22;display:grid;place-items:center;font-size:10px}
.qnav-scroll{overflow:auto;min-height:90px;max-height:calc(100vh - 350px);padding-right:2px;scrollbar-width:thin;scrollbar-color:#c8ccd3 transparent}
.qsection{margin-bottom:11px}.qsection-title{font-size:10.5px;margin-bottom:6px;line-height:1.25}
.qnav-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
.qnum{height:29px;min-width:0;border-radius:6px;font-size:10.5px;padding:0}
.qnum.active{box-shadow:0 3px 8px rgba(143,11,34,.16)}
.legend{padding-top:8px;margin-top:7px;gap:5px;font-size:9px;flex:0 0 auto}.legend-dot{width:8px;height:8px}
.submit-wrap{margin-top:9px;flex:0 0 auto}.submit-wrap .btn{padding:8px 9px;font-size:10.5px}

.question-card{padding:19px 21px;min-height:455px}
.question-topline{margin-bottom:16px}.question-meta-right{display:flex;align-items:center;gap:9px}
.autosave-status{display:inline-flex;align-items:center;white-space:nowrap;font-size:9.5px;font-weight:850;color:#6e7684;padding:5px 7px;border-radius:999px;background:#f5f6f8}
.autosave-status.saving{color:#996a11;background:#fff6df}.autosave-status.saved{color:#237d49;background:#eaf8ef}.autosave-status.error{color:#a40e25;background:#fff0f2}
.exam-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:19px}.exam-actions .next-question{justify-self:stretch}

.right-stack{gap:11px;top:98px}.side-card{padding:13px 14px}.side-title{font-size:12px;margin-bottom:8px}.timer-big{font-size:29px;margin:7px 0}.focus-note{padding:8px;font-size:10px;margin-top:8px}.progress-person{margin:9px 0}

/* Fullscreen / focus mode: browser fullscreen when available, plus a CSS fallback. */
.app-shell.exam-mode.exam-fullscreen{grid-template-rows:1fr;min-height:100vh}
.app-shell.exam-mode.exam-fullscreen .topbar{display:none!important}
.app-shell.exam-mode.exam-fullscreen .main{min-height:100vh}
.app-shell.exam-mode.exam-fullscreen .content{padding:8px 10px 12px;min-height:100vh}
.app-shell.exam-mode.exam-fullscreen .exam-shell{max-width:none;width:100%}
.app-shell.exam-mode.exam-fullscreen .duel-banner{margin-bottom:9px;padding-top:15px;padding-bottom:15px}
.app-shell.exam-mode.exam-fullscreen .qnav,.app-shell.exam-mode.exam-fullscreen .right-stack{top:8px}
.app-shell.exam-mode.exam-fullscreen .qnav{max-height:calc(100vh - 160px)}
.app-shell.exam-mode.exam-fullscreen .qnav-scroll{max-height:calc(100vh - 385px)}
.app-shell.exam-mode.exam-fullscreen .exam-fullscreen-btn{position:fixed;right:9px;top:9px;background:rgba(91,4,21,.88);border-color:rgba(255,255,255,.35);z-index:80}

@media(max-width:1180px){
  .exam-grid{grid-template-columns:175px minmax(0,1fr)}
  .right-stack{grid-column:1/-1;grid-template-columns:repeat(3,1fr);position:static}
  .qnav-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .qnav-scroll{max-height:calc(100vh - 355px)}
}
@media(max-width:900px){
  .exam-grid{grid-template-columns:1fr}.qnav,.right-stack{position:static;max-height:none}.qnav-scroll{max-height:230px}.qnav-grid{grid-template-columns:repeat(10,minmax(29px,1fr))}.duel-person.right{padding-right:38px}
  .app-shell.exam-mode.exam-fullscreen .qnav{max-height:none}.app-shell.exam-mode.exam-fullscreen .qnav-scroll{max-height:250px}
}
@media(max-width:620px){
  .qnav-grid{grid-template-columns:repeat(7,minmax(28px,1fr))}.question-meta-right{gap:5px}.autosave-status{font-size:8.5px}.exam-actions{grid-template-columns:1fr 1fr}.duel-person.right{padding-right:34px}.exam-fullscreen-btn{width:34px;height:34px;right:7px;top:7px}
}

/* V0.16 - Symmetrical exam side columns */
:root{--exam-side-width:230px}
.exam-grid{
  grid-template-columns:var(--exam-side-width) minmax(0,1fr) var(--exam-side-width);
  gap:12px;
  align-items:start;
}
.qnav,.right-stack{min-width:0;width:100%}

/* Keep both side columns visually balanced on medium desktop widths. */
@media (min-width:901px) and (max-width:1180px){
  :root{--exam-side-width:205px}
  .exam-grid{
    grid-template-columns:var(--exam-side-width) minmax(0,1fr) var(--exam-side-width);
    gap:10px;
  }
  .right-stack{
    grid-column:auto;
    grid-template-columns:1fr;
    position:sticky;
    top:98px;
  }
  .qnav{top:98px}
  .qnav-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .qnav-scroll{max-height:calc(100vh - 355px)}
  .side-card{padding:12px 12px}
  .timer-big{font-size:27px}
}

/* V0.17 - Two question display modes: one-by-one or all questions */
.exam-viewbar{
  display:flex;align-items:center;justify-content:flex-end;gap:10px;
  margin:-2px 0 10px;padding:0 2px;color:#6c7280;font-size:11px;font-weight:800
}
.exam-view-switch{display:inline-flex;align-items:center;padding:3px;background:#eef0f4;border:1px solid #e0e3e8;border-radius:10px;box-shadow:inset 0 1px 1px rgba(0,0,0,.03)}
.exam-view-switch button{border:0;background:transparent;color:#6d7480;font:inherit;font-weight:900;padding:7px 12px;border-radius:7px;cursor:pointer;transition:.16s}
.exam-view-switch button:hover{color:#8f0b22;background:#fff8f9}
.exam-view-switch button.active{background:#8f0b22;color:#fff;box-shadow:0 4px 12px rgba(143,11,34,.18)}
.all-question-list{display:grid;gap:12px;min-width:0}
.all-question-card{padding:18px 20px;min-height:0;scroll-margin-top:108px}
.all-question-card .question-topline{margin-bottom:14px}
.all-question-card .stem{font-size:17px;margin-bottom:15px}
.all-question-card .option{padding:11px 13px;margin:7px 0}
.all-question-card .tf-row{padding:10px 12px;margin:7px 0}
.exam-grid.all-mode{align-items:start}
.app-shell.exam-mode.exam-fullscreen .all-question-card{scroll-margin-top:12px}
.app-shell.exam-mode.exam-fullscreen .exam-viewbar{margin-bottom:8px}

/* V0.17 also restores the intended stacked layout on narrow screens after the V0.16 symmetry rules. */
@media(max-width:900px){
  .exam-grid,.exam-grid.all-mode{grid-template-columns:1fr!important}
  .qnav,.right-stack{position:static!important;max-height:none;width:100%}
  .right-stack{grid-template-columns:1fr!important;grid-column:auto!important}
  .qnav-scroll{max-height:230px}
  .qnav-grid{grid-template-columns:repeat(10,minmax(29px,1fr))}
  .exam-viewbar{justify-content:center;margin-top:2px}
  .all-question-card{scroll-margin-top:12px}
}
@media(max-width:620px){
  .exam-viewbar{justify-content:space-between;gap:7px;font-size:10px}
  .exam-view-switch button{padding:6px 9px}
  .all-question-card{padding:15px 14px}
  .all-question-card .stem{font-size:16px}
  .qnav-grid{grid-template-columns:repeat(7,minmax(28px,1fr))}
}

/* V0.18 - Fixed exam frame: only the middle question column scrolls */
@media (min-width:901px){
  .app-shell.exam-mode .content.exam-content-fixed{
    height:calc(100vh - 86px);
    min-height:0;
    overflow:hidden;
    padding:10px 16px 12px;
  }
  .app-shell.exam-mode.exam-fullscreen .content.exam-content-fixed{
    height:100vh;
    min-height:0;
    overflow:hidden;
    padding:8px 10px 10px;
  }
  .exam-content-fixed .exam-shell{
    height:100%;
    min-height:0;
    display:flex;
    flex-direction:column;
    overflow:hidden;
  }
  .exam-content-fixed .duel-banner,
  .exam-content-fixed .exam-viewbar{
    flex:0 0 auto;
  }
  .exam-content-fixed .exam-grid{
    flex:1 1 auto;
    min-height:0;
    height:0;
    align-items:stretch;
    overflow:hidden;
  }
  /* Left navigator and right information rail stay fixed in place. */
  .exam-content-fixed .qnav,
  .exam-content-fixed .right-stack{
    position:static;
    top:auto;
    height:100%;
    max-height:none;
    min-height:0;
    overflow:hidden;
  }
  .exam-content-fixed .qnav{
    display:flex;
    flex-direction:column;
  }
  .exam-content-fixed .qnav-scroll{
    flex:1 1 auto;
    min-height:0;
    max-height:none;
    overflow:visible;
    padding-right:0;
  }
  /* Make the navigator dense enough that typical 40-100 question sets fit without a second scrollbar. */
  .exam-content-fixed .qnav-grid{gap:3px}
  .exam-content-fixed .qnum{height:25px;font-size:9.8px;border-radius:5px}
  .exam-content-fixed .qsection{margin-bottom:8px}
  .exam-content-fixed .qsection-title{font-size:9.7px;margin-bottom:5px}
  .exam-content-fixed .legend{font-size:8.6px;gap:4px;padding-top:6px;margin-top:5px}
  .exam-content-fixed .submit-wrap{margin-top:7px}
  .exam-content-fixed .submit-wrap .btn{padding:7px 8px}

  .exam-content-fixed .right-stack{
    display:grid;
    grid-template-rows:auto auto minmax(0,1fr);
    align-content:start;
    gap:10px;
  }
  .exam-content-fixed .right-stack .side-card{min-height:0}
  .exam-content-fixed .right-stack .side-card:last-child{overflow:hidden}

  /* This is the only scrolling region while the duel is running. */
  .exam-content-fixed .question-card,
  .exam-content-fixed .all-question-list{
    height:100%;
    min-height:0;
    max-height:100%;
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
    scrollbar-width:thin;
    scrollbar-color:#b7bcc5 transparent;
  }
  .exam-content-fixed .question-card{min-height:0}
  .exam-content-fixed .all-question-list{
    align-content:start;
    padding-right:3px;
  }
  .exam-content-fixed .question-card::-webkit-scrollbar,
  .exam-content-fixed .all-question-list::-webkit-scrollbar{width:8px}
  .exam-content-fixed .question-card::-webkit-scrollbar-track,
  .exam-content-fixed .all-question-list::-webkit-scrollbar-track{background:transparent}
  .exam-content-fixed .question-card::-webkit-scrollbar-thumb,
  .exam-content-fixed .all-question-list::-webkit-scrollbar-thumb{background:#c2c6ce;border-radius:999px;border:2px solid transparent;background-clip:padding-box}
  .exam-content-fixed .question-card::-webkit-scrollbar-thumb:hover,
  .exam-content-fixed .all-question-list::-webkit-scrollbar-thumb:hover{background:#9fa5af;background-clip:padding-box}
  .exam-content-fixed .all-question-card{scroll-margin-top:8px}
}

/* Adaptive density keeps the fixed left rail usable without adding another scrollbar. */
@media (min-width:901px){
  .exam-content-fixed .qnav.qnav-dense .qnav-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:3px}
  .exam-content-fixed .qnav.qnav-dense .qnum{height:23px;font-size:9.2px}
  .exam-content-fixed .qnav.qnav-dense .qsection-title{font-size:9.2px}
  .exam-content-fixed .qnav.qnav-dense .legend{font-size:8.2px}
  .exam-content-fixed .qnav.qnav-ultra .qnav-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}
  .exam-content-fixed .qnav.qnav-ultra .qnum{height:21px;font-size:8.7px;border-radius:4px}
  .exam-content-fixed .qnav.qnav-ultra .qsection{margin-bottom:6px}
  .exam-content-fixed .qnav.qnav-ultra .qsection-title{font-size:8.8px;margin-bottom:4px}
  .exam-content-fixed .qnav.qnav-ultra .legend{font-size:7.9px;gap:3px}
}

/* V0.19 - Fix All Questions mode: each question card keeps its natural content height. */
.all-question-list{
  display:flex!important;
  flex-direction:column;
  gap:12px;
  align-items:stretch;
  align-content:initial!important;
}
.all-question-card{
  flex:0 0 auto!important;
  width:100%;
  height:auto!important;
  min-height:max-content;
  overflow:visible!important;
  box-sizing:border-box;
}
.all-question-card .question-topline,
.all-question-card .stem,
.all-question-card .option,
.all-question-card .tf-row{
  flex-shrink:0;
}
@media (min-width:901px){
  .exam-content-fixed .all-question-list{
    display:flex!important;
    flex-direction:column;
    align-items:stretch;
    height:100%;
    min-height:0;
    max-height:100%;
    overflow-y:auto;
    overflow-x:hidden;
    padding-right:3px;
  }
  .exam-content-fixed .all-question-card{
    flex:0 0 auto!important;
    height:auto!important;
    min-height:max-content;
    overflow:visible!important;
  }
}
/* V0.20 - Tạo trận tự động theo phạm vi ngân hàng */
.auto-scope{margin-top:13px;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}.scope-toggle{width:100%;border:0;background:#fff;padding:11px 14px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;color:#6f0a1c;text-align:left}.scope-toggle>span:first-child{display:flex;align-items:center;gap:8px;min-width:0}.scope-toggle .ico{width:18px;height:18px}.scope-toggle small{font-weight:600;color:#747b87;margin-left:8px}.scope-chevron{font-size:19px;transition:.2s}.scope-toggle.open .scope-chevron{transform:rotate(180deg)}.scope-body{padding:12px 14px 14px;border-top:1px solid var(--line);display:grid;grid-template-columns:1.4fr 1fr;gap:18px}.scope-group>label{display:block;font-size:12px;font-weight:900;color:#5e6570;margin-bottom:8px;text-transform:uppercase;letter-spacing:.02em}.scope-chips{display:flex;flex-wrap:wrap;gap:7px}.scope-chip{position:relative;cursor:pointer}.scope-chip input{position:absolute;opacity:0;pointer-events:none}.scope-chip span{display:inline-flex;align-items:center;min-height:30px;padding:5px 10px;border:1px solid #dfe2e7;border-radius:999px;background:#fff;font-size:12px;font-weight:800;color:#525967;transition:.15s}.scope-chip input:checked+span{background:#fff0f3;border-color:#c71938;color:#8a0b20;box-shadow:inset 0 0 0 1px rgba(151,11,35,.08)}.match-mode-tabs{display:grid;grid-template-columns:1fr 1fr;background:#f5f6f8;border-radius:11px;padding:4px;margin:14px 0}.mode-tab{border:0;border-radius:8px;padding:9px 12px;background:transparent;color:#616875;font-weight:850;cursor:pointer}.mode-tab.active{background:#fff;color:#8d0b21;box-shadow:0 2px 9px rgba(35,0,10,.08)}.pool-summary{margin:10px 0 13px;padding:9px 11px;border-radius:9px;background:#f8f9fb;color:#606773;font-size:12px}.student-pick{max-height:170px}
@media(max-width:900px){.scope-body{grid-template-columns:1fr}.scope-toggle>span:first-child{flex-wrap:wrap}.scope-toggle small{width:100%;margin-left:26px}}

/* V0.21 - Scalable topic picker + compact fixed right rail */
.topic-select{position:relative;min-width:0}
.topic-select-trigger{width:100%;min-height:46px;border:1px solid #dfe2e7;border-radius:10px;background:#fff;padding:8px 10px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:#4f5662;cursor:pointer;text-align:left;transition:.16s}
.topic-select-trigger:hover,.topic-select-trigger.open{border-color:#bf7180;box-shadow:0 0 0 3px rgba(143,11,34,.06)}
.topic-select-trigger>span:first-child{display:flex;align-items:center;gap:9px;min-width:0}.topic-select-trigger .ico{width:17px;height:17px;color:#8f0b22;flex:0 0 auto}.topic-select-trigger b{display:block;font-size:12px;color:#303642;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topic-select-trigger small{display:block;margin-top:2px;font-size:9.5px;color:#858b96;font-weight:650}.topic-select-chevron{font-size:18px;color:#7f8793;transition:.16s}.topic-select-trigger.open .topic-select-chevron{transform:rotate(180deg)}
.topic-select-menu{position:absolute;z-index:35;left:0;right:auto;top:calc(100% + 6px);background:#fff;border:1px solid #dfe2e7;border-radius:12px;box-shadow:0 16px 38px rgba(30,8,14,.16);padding:10px;width:min(720px,calc(100vw - 90px));min-width:min(560px,calc(100vw - 90px))}
.topic-select-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin-bottom:8px}.topic-search-wrap{height:36px;border:1px solid #dfe2e7;border-radius:8px;display:flex;align-items:center;gap:7px;padding:0 9px;background:#fafbfc}.topic-search-wrap .ico{width:14px;height:14px;color:#8c93a0}.topic-search-wrap input{border:0!important;outline:0;background:transparent;width:100%;padding:0!important;font-size:11px}.topic-select-actions{display:flex;gap:5px}.topic-select-actions button{border:1px solid #e0e3e8;background:#fff;border-radius:7px;padding:7px 8px;font-size:9.5px;font-weight:800;color:#68707d;cursor:pointer;white-space:nowrap}.topic-select-actions button:hover{border-color:#c68c97;color:#8f0b22;background:#fff7f8}
.topic-stat-legend{display:flex;flex-wrap:wrap;gap:5px 12px;padding:7px 9px;margin-bottom:8px;border-radius:8px;background:#f7f8fa;color:#7b828d;font-size:9px}.topic-stat-legend span{white-space:nowrap}.topic-stat-legend b{color:#7f0a1e;margin-right:2px}
.topic-select-list{max-height:360px;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding-right:2px;scrollbar-width:thin}.topic-select-item{cursor:pointer;min-width:0}.topic-select-item input{position:absolute;opacity:0;pointer-events:none}.topic-select-card{display:flex;align-items:flex-start;gap:8px;min-height:82px;padding:8px 9px;border:1px solid #e8ebef;border-radius:9px;background:#fff;color:#4f5662;transition:.13s}.topic-select-card>i{width:14px;height:14px;border:1px solid #cfd4db;border-radius:4px;flex:0 0 auto;position:relative;background:#fff;margin-top:2px}.topic-select-item input:checked+.topic-select-card{border-color:#df9ba8;background:#fff6f7;box-shadow:inset 0 0 0 1px rgba(147,13,36,.03)}.topic-select-item input:checked+.topic-select-card>i{background:#930d24;border-color:#930d24}.topic-select-item input:checked+.topic-select-card>i:after{content:"";position:absolute;left:3px;top:1px;width:4px;height:7px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.topic-stat-content{display:grid;gap:4px;min-width:0;flex:1}.topic-stat-title{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.topic-stat-title>b{font-size:10.5px;color:#3f4651;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topic-stat-title>em{font-style:normal;font-size:8.5px;font-weight:850;color:#9a2135;background:#fff0f3;border-radius:999px;padding:2px 6px;white-space:nowrap}.topic-stat-line{display:grid;grid-template-columns:46px minmax(0,1fr);gap:6px;align-items:center}.topic-stat-line>strong{font-size:9px;color:#6c7380;white-space:nowrap}.topic-stat-line>strong u{text-decoration:none;color:#8e0b22}.topic-level-mini{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px}.topic-level-mini span{display:flex;align-items:center;justify-content:space-between;gap:2px;padding:2px 4px;border-radius:5px;background:#f5f6f8;font-size:7.5px;color:#848b96}.topic-level-mini em{font-style:normal}.topic-level-mini b{font-size:8px;color:#4a515d}
.scope-chip span{gap:5px}.scope-chip-count{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#f0f1f4;color:#626a76;font-size:9px}.scope-chip input:checked+span .scope-chip-count{background:#8f0b22;color:#fff}.scope-help{margin-top:7px;font-size:9px;color:#8a919c;line-height:1.35}
.auto-scope,.scope-body,.scope-group{overflow:visible}

@media (min-width:901px){
  .exam-content-fixed .right-stack{display:flex;flex-direction:column;gap:7px;overflow:hidden!important}
  .exam-content-fixed .right-stack .side-card{flex:0 0 auto;padding:9px 10px;border-radius:12px;overflow:hidden}
  .exam-content-fixed .right-stack .side-title{font-size:10.8px;margin-bottom:5px;gap:6px;line-height:1.15}.exam-content-fixed .right-stack .side-title .ico{width:16px;height:16px}
  .exam-content-fixed .right-stack .timer-big{font-size:25px;line-height:1;margin:4px 0 3px}.exam-content-fixed .right-stack .timer-caption{font-size:8.8px}.exam-content-fixed .right-stack .focus-note{display:none}
  .exam-content-fixed .right-stack .progress-person{margin:6px 0}.exam-content-fixed .right-stack .progress-person-head{font-size:9.5px;margin-bottom:4px;gap:6px}.exam-content-fixed .right-stack .progressbar{height:6px}
  .exam-content-fixed .right-stack .side-card:last-child{flex:1 1 auto;min-height:0;overflow:hidden!important}
  .exam-content-fixed .right-stack .match-info{gap:3px;font-size:8.9px}.exam-content-fixed .right-stack .match-info div{padding-bottom:4px;gap:6px;line-height:1.2}.exam-content-fixed .right-stack .match-info div:last-child{display:none}
}
@media (min-width:901px) and (max-height:800px){
  .exam-content-fixed .right-stack{gap:6px}.exam-content-fixed .right-stack .side-card{padding:8px 9px}.exam-content-fixed .right-stack .side-title{font-size:10px;margin-bottom:4px}.exam-content-fixed .right-stack .timer-big{font-size:23px}.exam-content-fixed .right-stack .progress-person{margin:5px 0}.exam-content-fixed .right-stack .match-info{font-size:8.4px}.exam-content-fixed .right-stack .match-info div{padding-bottom:3px}
}
@media(max-width:720px){.topic-select-menu{width:calc(100vw - 36px);min-width:0;left:0}.topic-select-toolbar{grid-template-columns:1fr}.topic-select-actions{justify-content:flex-end}.topic-select-list{grid-template-columns:1fr;max-height:330px}}

/* V0.23 - Guided match builder: clickable steps + always-visible navigation */
.match-builder-modal{width:min(1040px,96vw)!important;height:min(760px,94vh)!important;max-height:94vh!important;overflow:hidden!important;padding:0!important;display:flex;flex-direction:column}
.match-builder-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 24px 14px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fff 0%,#fffafb 100%)}
.match-builder-head h2{margin:3px 0 3px!important;font-size:24px}.match-builder-head p{margin:0;color:#737a86;font-size:12px}.builder-close{width:36px;height:36px;border:1px solid #e4e6eb;border-radius:10px;background:#fff;color:#727986;font-size:23px;line-height:1;cursor:pointer}.builder-close:hover{border-color:#c98995;color:#8e0b22;background:#fff8f9}
.builder-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:0 24px;border-bottom:1px solid var(--line);background:#fff}.builder-step{position:relative;border:0;background:transparent;padding:13px 8px 14px 42px;text-align:left;cursor:pointer;color:#828994;min-height:66px}.builder-step{transition:background .16s ease,color .16s ease,opacity .16s ease}.builder-step:not(.active):hover{background:#fff8f9}.builder-step:not(.available){opacity:.72}.builder-step.available{opacity:1}.builder-step span{position:absolute;left:8px;top:16px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#f1f2f5;color:#7b828e;font-weight:900;font-size:11px}.builder-step b{display:block;font-size:12px;color:#5d6571}.builder-step small{display:block;font-size:9.5px;margin-top:2px;color:#9aa0aa}.builder-step.active{background:linear-gradient(180deg,#fff 0%,#fff5f7 100%)}.builder-step.active:after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:3px;background:#980d25;border-radius:3px 3px 0 0}.builder-step.active span{background:#960d24;color:#fff;box-shadow:0 4px 12px rgba(151,11,35,.22)}.builder-step.active b{color:#840a20}.builder-step.done span{background:#e8f7ed;color:#218444}.builder-step.done b{color:#414954}
.builder-body{padding:20px 24px 16px;overflow:auto;min-height:0;flex:1 1 auto;overscroll-behavior:contain}.builder-pane{display:none}.builder-pane.active{display:block}.builder-section-title{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}.builder-section-title>span{flex:0 0 34px;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#960d24;color:#fff;font-weight:950;font-size:11px;box-shadow:0 5px 14px rgba(151,11,35,.16)}.builder-section-title h3{margin:0;color:#5f0717;font-size:17px}.builder-section-title p{margin:3px 0 0;color:#7d8490;font-size:11px;line-height:1.45}
.builder-card{border:1px solid #e5e7eb;border-radius:14px;background:#fff;padding:16px;box-shadow:0 5px 18px rgba(28,8,14,.035)}.builder-note{margin-top:14px;padding:10px 12px;border-radius:10px;background:#f7f8fa;color:#666e79;font-size:11px}.builder-note b{color:#7d0a1d}.input-suffix{display:grid;grid-template-columns:minmax(0,1fr) auto;border:1px solid #dfe2e7;border-radius:9px;overflow:hidden;background:#fff}.input-suffix input{border:0!important;border-radius:0!important}.input-suffix>span{display:flex;align-items:center;padding:0 11px;border-left:1px solid #e5e7eb;background:#f8f9fb;color:#777e89;font-size:11px;font-weight:800}
.duel-picker{display:grid;grid-template-columns:minmax(0,1fr) 90px minmax(0,1fr);align-items:center;gap:16px;padding:22px 24px}.duel-pick-side{text-align:center}.duel-pick-side>label{display:block;font-size:10px;font-weight:950;letter-spacing:.06em;color:#8c1227;margin-bottom:10px}.duel-pick-side select{width:100%;margin-top:11px}.duel-pick-side>b{display:block;margin-top:8px;color:#303642;font-size:12px}.duel-pick-avatar{width:62px;height:62px;margin:0 auto;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#ffe5ea,#fff);border:3px solid #fff;box-shadow:0 0 0 2px #b31a34,0 8px 20px rgba(119,8,28,.13);font-size:18px;font-weight:950;color:#8d0b21}.duel-pick-avatar.alt{background:linear-gradient(135deg,#edf3ff,#fff);box-shadow:0 0 0 2px #617fb0,0 8px 20px rgba(38,70,118,.12);color:#385b91}.duel-pick-vs{text-align:center;color:#8d0b21}.duel-pick-vs span{display:block;font-size:32px;font-weight:1000;line-height:1}.duel-pick-vs small{display:block;margin-top:5px;font-size:8px;font-weight:900;letter-spacing:.12em;color:#9c7b81}.builder-alert{margin-top:10px;padding:9px 11px;border-radius:9px;background:#fff0f2;border:1px solid #f2c5cd;color:#9a0e25;font-size:11px;font-weight:800}
.builder-mode-tabs{margin:0 0 12px}.builder-question-config{padding:0;overflow:visible}.builder-subtitle{display:flex;align-items:center;justify-content:space-between;padding:13px 15px 10px}.builder-subtitle b{font-size:12px;color:#670718}.builder-subtitle span{font-size:10px;color:#8b929d}.question-count-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 15px 14px}.question-count-box{border:1px solid #e8e9ed;border-radius:11px;padding:12px;background:#fbfbfc}.question-count-box>span{display:block;font-size:9px;font-weight:950;color:#9a2135}.question-count-box>b{display:block;font-size:12px;color:#3f4651;margin:2px 0 9px}.builder-divider{height:1px;background:#eceef2}.builder-scope-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.9fr);gap:15px;padding:0 15px 14px}.pool-summary-strong{margin:0 15px 15px!important;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px 12px}.pool-summary-strong>span{font-size:10px;color:#777f8a}.pool-summary-strong>b{grid-row:1/3;grid-column:2;font-size:12px}.pool-summary-strong>b.ok{color:#218444}.pool-summary-strong>b.bad{color:#b20f2a}.pool-summary-strong>small{font-size:9.5px;color:#9097a1}
.manual-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:12px;align-items:end;margin-bottom:10px}.manual-toolbar .field{margin:0}.manual-selected{height:44px;border:1px solid #e1e4e8;border-radius:9px;display:flex;align-items:center;justify-content:space-between;padding:0 11px;background:#fafbfc}.manual-selected span{font-size:10px;color:#7e8590}.manual-selected b{font-size:16px;color:#8d0b21}.manual-question-list{max-height:300px}.builder-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.option-toggle{display:flex;align-items:flex-start;gap:9px;padding:11px 12px;border:1px solid #e3e5e9;border-radius:11px;background:#fff;cursor:pointer}.option-toggle input{margin-top:3px}.option-toggle b{display:block;font-size:11px;color:#4d545f}.option-toggle small{display:block;margin-top:2px;font-size:9.5px;color:#9096a0}
.builder-review{display:grid;gap:12px}.review-duel{display:grid;grid-template-columns:1fr 76px 1fr;align-items:center;border:1px solid #e4e6ea;border-radius:14px;padding:18px;background:linear-gradient(90deg,#fff 0%,#fff7f8 50%,#fff 100%)}.review-duel>div{text-align:center}.review-duel .mini-avatar{margin:0 auto 7px;display:grid}.review-duel b{display:block;color:#343a45;font-size:12px}.review-duel small{display:block;margin-top:2px;color:#969ca6;font-size:9px}.review-duel>strong{text-align:center;font-size:28px;color:#9b0e25}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #e5e7eb;border-radius:13px;overflow:hidden;background:#fff}.review-grid>div{padding:13px 14px;border-right:1px solid #eceef1;border-bottom:1px solid #eceef1;min-height:74px}.review-grid>div:nth-child(3n){border-right:0}.review-grid>div:nth-last-child(-n+3){border-bottom:0}.review-grid span{display:block;font-size:9.5px;color:#8c929c;margin-bottom:5px}.review-grid b{display:block;color:#3f4651;font-size:12px}.review-grid small{display:block;color:#9298a2;font-size:9px;margin-top:3px;line-height:1.4}.review-ready{padding:11px 13px;border-radius:10px;background:#eef9f2;color:#39704b;font-size:10.5px}.review-ready .ico{width:16px;height:16px;vertical-align:-4px;margin-right:5px}
.builder-error{padding:0 24px;min-height:18px}.builder-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 24px 18px;border-top:1px solid var(--line);background:#fff;flex:0 0 auto;box-shadow:0 -8px 20px rgba(32,8,14,.04);z-index:2}.builder-footer-right{display:flex;gap:8px}.builder-footer .btn.primary{min-width:132px;justify-content:center}.builder-footer #mSave{min-width:230px}
@media(max-width:800px){.match-builder-modal{width:98vw!important;height:96vh!important;max-height:96vh!important}.builder-steps{padding:0 10px}.builder-step{padding-left:34px}.builder-step small{display:none}.builder-step span{left:3px}.builder-body{padding:16px}.duel-picker{grid-template-columns:1fr 54px 1fr;padding:16px 10px}.duel-pick-vs span{font-size:24px}.builder-scope-grid,.review-grid{grid-template-columns:1fr}.review-grid>div{border-right:0!important;border-bottom:1px solid #eceef1!important}.review-grid>div:last-child{border-bottom:0!important}.builder-options{grid-template-columns:1fr}.builder-footer{padding-left:16px;padding-right:16px}.builder-footer #mSave{min-width:0}.builder-section-title p{font-size:10px}}
@media(max-width:560px){.builder-step b{font-size:10px}.builder-step{padding-left:29px;padding-right:2px}.builder-step span{width:23px;height:23px}.question-count-grid,.duel-picker{grid-template-columns:1fr}.duel-pick-vs{padding:4px}.duel-pick-vs span{font-size:22px}.builder-footer{align-items:stretch}.builder-footer-right{flex:1;justify-content:flex-end}.builder-footer .btn{padding-left:9px;padding-right:9px;font-size:10px}}

/* V0.25 - searchable student picker + topic quota builder */
.student-search-select{display:grid;gap:7px;margin-top:11px}.student-search-select input{width:100%;height:38px;border:1px solid #dde1e7;border-radius:9px;padding:0 10px;font-size:11px;background:#fff}.student-search-select input:focus{outline:none;border-color:#b86a79;box-shadow:0 0 0 3px rgba(143,11,34,.06)}.student-search-select select{margin-top:0!important}
.quota-difficulty-wrap{padding:0 15px 14px}.builder-subtitle.compact{padding-top:12px;padding-bottom:8px}.builder-scope-single{padding:0 15px 12px}
.auto-strategy-tabs{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:0 15px 14px}.auto-strategy{border:1px solid #e3e5e9;border-radius:11px;background:#fff;padding:11px 12px;text-align:left;cursor:pointer;transition:.15s}.auto-strategy b{display:block;color:#434954;font-size:11.5px}.auto-strategy small{display:block;margin-top:3px;color:#8a9099;font-size:9.5px;line-height:1.35}.auto-strategy:hover{border-color:#c78692;background:#fffafb}.auto-strategy.active{border-color:#9a1530;background:#fff4f6;box-shadow:inset 0 0 0 1px rgba(143,11,34,.04)}.auto-strategy.active b{color:#8c0d24}
.quota-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,320px);gap:12px;align-items:center;padding:12px 15px 10px;border-top:1px solid #eceef2}.quota-toolbar>div:first-child b{display:block;color:#660718;font-size:12px}.quota-toolbar>div:first-child span{display:block;margin-top:2px;color:#8a909a;font-size:9.5px}.quota-search{height:36px}
.quota-table-wrap{margin:0 15px 12px;border:1px solid #e4e7eb;border-radius:11px;overflow:auto;max-height:330px;background:#fff}.quota-table{width:100%;border-collapse:collapse;min-width:690px}.quota-table th{position:sticky;top:0;z-index:2;background:#f7f8fa;color:#69717d;font-size:9.5px;text-align:left;padding:9px 10px;border-bottom:1px solid #e5e8ec}.quota-table th:nth-child(2),.quota-table th:nth-child(3),.quota-table th:nth-child(4){text-align:center}.quota-table td{padding:9px 10px;border-bottom:1px solid #eef0f3;vertical-align:middle}.quota-table tr:last-child td{border-bottom:0}.quota-table td:first-child{min-width:300px}.quota-table td:first-child>b{display:block;color:#343b46;font-size:11px}.quota-table td:first-child>small{display:block;margin-top:3px;color:#89909a;font-size:8.8px;line-height:1.45}.quota-table td:nth-child(n+2){text-align:center}.quota-available{display:inline-flex;align-items:center;justify-content:center;padding:5px 7px;border-radius:7px;background:#f4f6f8;color:#5d6571;font-size:9.5px;font-weight:850;white-space:nowrap}.quota-input{width:64px!important;height:34px!important;text-align:center;padding:0 5px!important;font-weight:850;color:#333}.quota-input.invalid{border-color:#d83a53!important;background:#fff2f4!important;color:#a40f28}.quota-row.hidden{display:none}.quota-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 15px 15px}.quota-footer>div{text-align:right}.quota-footer span{display:block;font-size:9px;color:#8e949e}.quota-footer b{display:block;margin-top:1px;color:#7f0b20;font-size:13px}.quota-footer small{display:block;margin-top:2px;color:#75808b;font-size:9.5px}.quota-footer small.bad{color:#b4102b;font-weight:800}
@media(max-width:800px){.auto-strategy-tabs{grid-template-columns:1fr}.quota-toolbar{grid-template-columns:1fr}.quota-table-wrap{max-height:300px}.quota-footer{align-items:flex-end}.student-search-select input{font-size:10px}}

/* V0.26 - nhập đề trực tiếp từ tệp Word */
.builder-mode-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
.word-import-card{padding:0;overflow:hidden}
.word-import-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 17px;border-bottom:1px solid #eceef2;background:linear-gradient(180deg,#fff,#fcfcfd)}
.word-import-head>div{min-width:0}.word-import-head b{display:block;color:#69081a;font-size:13px}.word-import-head span{display:block;color:#818894;font-size:10px;margin-top:3px;line-height:1.45}
.word-file-btn{position:relative;flex:0 0 auto;white-space:nowrap}.word-file-btn.loading{opacity:.72;pointer-events:none}
.word-format-note{margin:13px 16px 0;padding:10px 12px;border:1px solid #eadfe2;border-radius:10px;background:#fff7f8;color:#666d77;font-size:10px;line-height:1.6}.word-format-note b{color:#7d0b20}.word-format-note code{padding:2px 5px;border-radius:5px;background:#fff;border:1px solid #eadfe2;color:#7d0b20;font-family:Consolas,monospace;font-size:9.5px}
.word-empty{margin:14px 16px 16px;min-height:145px;border:1px dashed #d9dce2;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#9aa0a9;background:#fafbfc;padding:22px}.word-empty .ico{width:31px;height:31px;color:#a61a31;margin-bottom:8px}.word-empty b{font-size:12px;color:#5e6570}.word-empty span{font-size:10px;max-width:430px;margin-top:4px;line-height:1.45}
#mWordResult{padding:14px 16px 16px}.word-file-summary{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(88px,.55fr));gap:9px}.word-file-summary>div{border:1px solid #e4e6ea;border-radius:10px;padding:10px 11px;background:#fff}.word-file-summary>div:first-child{background:#fff8f9;border-color:#ead9dd}.word-file-summary span{display:block;font-size:8.5px;font-weight:900;letter-spacing:.04em;color:#9298a2}.word-file-summary b{display:block;margin-top:3px;font-size:12px;color:#4c535e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.word-type-stat{text-align:center}.word-type-stat b{font-size:18px;color:#8e0b22}.word-type-stat.total{background:#850b20!important;border-color:#850b20!important}.word-type-stat.total span,.word-type-stat.total b{color:#fff}
.word-valid,.word-errors{margin-top:11px;border-radius:10px;padding:10px 12px;font-size:10px}.word-valid{display:flex;align-items:center;gap:7px;background:#eef9f3;border:1px solid #c9ead7;color:#247b4d;font-weight:800}.word-valid .ico{width:17px;height:17px}.word-errors{display:flex;flex-direction:column;gap:3px;background:#fff2f4;border:1px solid #f2c9d1;color:#9c1730}.word-errors>b{margin-bottom:3px}.word-errors em{font-style:normal;color:#a45c69}
.word-preview{margin-top:12px;border:1px solid #e7e9ed;border-radius:10px;overflow:hidden}.word-preview>b{display:block;padding:9px 11px;background:#f8f9fa;color:#616873;font-size:10px}.word-preview>div{display:grid;grid-template-columns:40px 52px minmax(0,1fr);align-items:start;gap:8px;padding:8px 11px;border-top:1px solid #eef0f2}.word-preview strong{font-size:10px;color:#535a65;padding-top:2px}.word-preview p{margin:0;font-size:10px;color:#6d747e;line-height:1.4}.word-qtype{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:3px 6px;font-size:8px;font-weight:950;background:#fff0f3;color:#95132b}.word-qtype.tf{background:#f2f0ff;color:#5b45a1}
@media(max-width:900px){.word-file-summary{grid-template-columns:1fr 1fr}.word-file-summary>div:first-child{grid-column:1/-1}.word-import-head{align-items:flex-start;flex-direction:column}.builder-mode-tabs{grid-template-columns:1fr}}

/* V0.27 - Word mẫu + nội dung Tin học có code/hình ảnh */
.word-import-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.word-template-btn{white-space:nowrap;text-decoration:none}
.word-rich-summary{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 12px}
.word-rich-summary span{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border:1px solid #ead7dc;background:#fff7f8;border-radius:999px;color:#6e1b2c;font-size:12px}
.word-rich-summary b{font-size:13px;color:#9f0d29}
.rich-question-content{display:flex;flex-direction:column;gap:10px}
.question-rich-text{white-space:normal;line-height:1.55}
.question-code-wrap{border:1px solid #d9dde5;border-radius:12px;overflow:hidden;background:#f6f7f9;margin:2px 0 4px}
.question-code-label{padding:6px 10px;background:#e9ebef;border-bottom:1px solid #d9dde5;color:#6d1b2c;font-size:11px;font-weight:900;letter-spacing:.08em}
.question-code{margin:0;padding:12px 14px;overflow:auto;white-space:pre;tab-size:4;font-family:Consolas,"Courier New",monospace;font-size:14px;line-height:1.48;color:#17202d;background:#f8f9fb}
.question-code code{font-family:inherit}
.question-figure{margin:4px auto 8px;text-align:center;max-width:100%}
.question-figure img{display:block;max-width:min(100%,820px);max-height:420px;width:auto;height:auto;object-fit:contain;margin:0 auto;border-radius:10px;border:1px solid #e0e2e6;background:#fff}
@media(max-width:900px){.word-import-head{align-items:flex-start}.word-import-actions{justify-content:flex-start}.question-code{font-size:13px}.question-figure img{max-height:320px}}

/* V0.28 - Word rich preview/editor before temporary save */
.word-errors small{margin-top:5px;color:#7f5560;line-height:1.45}
.word-review-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 10px;padding:8px;border:1px solid #e5e7eb;border-radius:11px;background:#f8f9fb}
.word-view-tabs{display:flex;gap:5px;padding:3px;background:#eef0f3;border-radius:9px}.word-view-tabs button{border:0;background:transparent;color:#66707d;border-radius:7px;padding:7px 10px;font-size:10px;font-weight:850;display:flex;align-items:center;gap:6px;cursor:pointer}.word-view-tabs button .ico{width:14px;height:14px}.word-view-tabs button.active{background:#fff;color:#8e0b22;box-shadow:0 2px 8px rgba(40,0,10,.08)}
.word-save-actions{display:flex;align-items:center;gap:8px}.word-save-state{font-size:9.5px;font-weight:800}.word-save-state.saved{color:#21824f}.word-save-state.dirty{color:#a05b18}.word-save-actions .btn{min-width:150px;justify-content:center}
.word-full-review{display:flex;flex-direction:column;gap:12px;max-height:430px;overflow:auto;padding:2px 3px 4px;scrollbar-width:thin}
.word-preview-q,.word-editor-q{border:1px solid #e3e6ea;border-radius:12px;background:#fff;overflow:hidden;flex:0 0 auto}.word-preview-qhead,.word-editor-qhead{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px;background:#f7f8fa;border-bottom:1px solid #e9ebef}.word-preview-qhead>div,.word-editor-qhead>div{display:flex;align-items:center;gap:8px}.word-preview-qhead b,.word-editor-qhead b{color:#4c535e;font-size:11px}.word-editor-qhead small{font-size:9px;color:#89909b}
.word-preview-stem{padding:12px 14px;font-size:12px;color:#27303b;line-height:1.5}.word-preview-stem .question-code{font-size:11.5px}.word-preview-stem .question-code-label{font-size:9px}.word-preview-stem .question-figure img{max-height:250px}
.word-preview-options,.word-preview-tf{padding:0 14px 13px;display:grid;gap:7px}.word-preview-option,.word-preview-statement{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:8px;align-items:flex-start;border:1px solid #e4e7eb;border-radius:9px;padding:8px 9px;background:#fff}.word-preview-option>span,.word-preview-statement>span{font-size:8.5px;font-weight:900;border-radius:999px;padding:3px 6px;background:#f2f3f5;color:#767e89;white-space:nowrap}.word-preview-option.correct,.word-preview-statement.correct{border-color:#d69aa6;background:#fff6f7}.word-preview-option.correct>span,.word-preview-statement.correct>span{background:#8f0b22;color:#fff}.word-preview-option .rich-question-content,.word-preview-statement .rich-question-content{gap:6px;font-size:10.5px}.word-preview-option .question-code,.word-preview-statement .question-code{font-size:10.5px;padding:8px 9px}.word-preview-option .question-code-label,.word-preview-statement .question-code-label{font-size:8px;padding:4px 7px}.word-preview-option .question-figure img,.word-preview-statement .question-figure img{max-height:190px}
.word-edit-section{padding:10px 12px;border-top:1px solid #eceef1}.word-edit-section:first-of-type{border-top:0}.word-edit-section>h5{margin:0 0 7px;color:#6c0a1b;font-size:10px}.word-edit-section.correct{background:#fffafb}.word-edit-option-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.word-edit-option-head label{font-size:10px;font-weight:850;color:#535b67}.word-edit-option-head input{accent-color:#8f0b22}
.word-block-editor{display:grid;gap:7px}.word-edit-block{border:1px solid #dfe3e8;border-radius:9px;overflow:hidden;background:#fff}.word-edit-block-head{height:28px;padding:0 7px;display:flex;align-items:center;justify-content:space-between;gap:7px;background:#f3f5f7;border-bottom:1px solid #e3e6ea}.word-edit-block-head>b{font-size:8px;color:#77808c;letter-spacing:.05em}.word-edit-block-head select{margin-left:auto;border:1px solid #d7dbe1;background:#fff;border-radius:6px;height:22px;font-size:8.5px;color:#59616d}.icon-btn.tiny{width:23px;height:23px;padding:0;border:0;background:transparent;color:#8b929c;font-size:16px;cursor:pointer}.icon-btn.tiny:hover{color:#a50f29;background:#fff0f3}.word-edit-block textarea{display:block;width:100%;min-height:62px;border:0;resize:vertical;padding:8px 9px;font:11px/1.45 system-ui,sans-serif;color:#303744;outline:none}.word-edit-block.code textarea{min-height:88px;background:#fbfcfd;font-family:Consolas,"Courier New",monospace;white-space:pre;tab-size:4}.word-add-blocks{display:flex;gap:6px}.btn.mini{padding:5px 8px;font-size:8.5px;min-height:27px}.danger-text{color:#a2112a!important}.word-edit-image{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px;align-items:center;border:1px solid #e0e3e7;border-radius:9px;padding:7px;background:#fafbfc}.word-edit-image img{width:110px;height:74px;object-fit:contain;background:#fff;border:1px solid #e2e4e8;border-radius:7px}.word-edit-image b{display:block;font-size:10px;color:#4c535e}.word-edit-image span{display:block;margin:2px 0 6px;font-size:8.5px;color:#8b929d}
.rich-option .option-body{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px;align-items:flex-start;width:100%}.rich-option .option-body>.rich-question-content{gap:7px}.rich-tf .tf-statement{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px;align-items:flex-start;min-width:0}.rich-tf .tf-statement>.rich-question-content{gap:7px}
@media(max-width:800px){.word-review-toolbar{align-items:stretch;flex-direction:column}.word-save-actions{justify-content:space-between}.word-full-review{max-height:390px}.word-preview-option,.word-preview-statement{grid-template-columns:24px minmax(0,1fr)}.word-preview-option>span,.word-preview-statement>span{grid-column:2}.word-edit-image{grid-template-columns:90px 1fr}.word-edit-image img{width:90px;height:64px}}

/* V0.29 - Xem lại bài chi tiết */
.result-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:18px}
.review-modal-backdrop{z-index:1600;padding:12px;background:rgba(28,6,12,.58);backdrop-filter:blur(5px)}
.review-modal-card{width:min(1180px,96vw);height:min(92vh,900px);max-height:92vh;padding:0;overflow:hidden;border-radius:20px;display:grid;grid-template-rows:auto auto auto minmax(0,1fr);background:#f6f7f9}
.review-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 24px 16px;background:linear-gradient(135deg,#7f071b,#a40c28);color:#fff}
.review-modal-head .eyebrow{display:block;font-size:11px;font-weight:900;letter-spacing:.14em;opacity:.78}.review-modal-head h2{margin:4px 0 2px;color:#fff;font-size:24px}.review-modal-head p{margin:0;opacity:.82;font-weight:650}
.review-close{width:38px;height:38px;border:1px solid rgba(255,255,255,.35);border-radius:11px;background:rgba(255,255,255,.1);color:#fff;font-size:26px;line-height:1;cursor:pointer}.review-close:hover{background:rgba(255,255,255,.2)}
.review-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:14px 22px;background:#fff;border-bottom:1px solid #e4e6ea}.review-summary>div{padding:11px 14px;border:1px solid #e5e7eb;border-radius:12px;background:#fbfbfc}.review-summary span{display:block;font-size:11px;color:#727985;font-weight:700}.review-summary b{display:block;margin-top:2px;color:#8d0a20;font-size:21px}
.review-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 22px;border-bottom:1px solid #e1e4e8;background:#fafbfc}.review-filter{display:flex;gap:4px;padding:3px;border:1px solid #dde1e6;border-radius:10px;background:#fff}.review-filter button{border:0;background:transparent;border-radius:7px;padding:7px 11px;font-weight:800;color:#69717d;cursor:pointer}.review-filter button.active{background:#8f0a22;color:#fff}.review-toolbar>.muted{font-size:11px}
.review-body{overflow:auto;padding:16px 22px 26px;scrollbar-gutter:stable}.review-q{background:#fff;border:1px solid #e1e4e8;border-radius:15px;padding:16px;margin-bottom:14px;box-shadow:0 5px 18px rgba(22,27,35,.04)}.review-q.correct{border-left:4px solid #25a55f}.review-q.wrong{border-left:4px solid #d2344a}.review-q.partial{border-left:4px solid #d99b1f}.review-hidden{display:none!important}
.review-q-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.review-q-head>div{display:flex;align-items:center;gap:8px}.review-no{font-weight:900;color:#17202c}.review-type{font-size:10px;font-weight:850;color:#8d0a20;background:#fff0f3;border-radius:999px;padding:4px 8px}.review-status{font-size:10px;font-weight:900;border-radius:999px;padding:5px 9px}.review-status.correct{background:#e7f7ee;color:#187946}.review-status.wrong{background:#fdebed;color:#b11f36}.review-status.partial{background:#fff4dc;color:#976410}
.review-stem{font-size:15px;font-weight:650;color:#202834;margin-bottom:12px}.review-options{display:grid;gap:8px}.review-option{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:start;padding:10px 12px;border:1px solid #e1e4e8;border-radius:11px;background:#fff}.review-option-key{font-weight:900;color:#343c47}.review-option-note{font-size:10px;font-weight:850;color:#68717e;text-align:right}.review-option.is-correct{border-color:#8ed8ad;background:#f0fbf5}.review-option.is-correct .review-option-note{color:#157943}.review-option.is-wrong{border-color:#ef9baa;background:#fff3f5}.review-option.is-wrong .review-option-note{color:#b41f38}.review-option.is-selected:not(.is-wrong):not(.is-correct){background:#f6f7f9}
.review-tf-list{display:grid;gap:9px}.review-tf-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:11px 12px;border:1px solid #e1e4e8;border-radius:11px}.review-tf-row.is-correct{background:#f1fbf5;border-color:#a1deb9}.review-tf-row.is-wrong{background:#fff4f5;border-color:#efabb7}.review-tf-content{display:flex;gap:7px;align-items:flex-start}.review-tf-content>b{color:#8d0a20}.review-tf-answer{display:flex;gap:10px;align-items:center;white-space:nowrap;font-size:10px}.review-tf-answer span{padding:4px 7px;border-radius:7px;background:#fff;border:1px solid #e4e6e9}.review-explain{margin-top:12px;padding:10px 12px;border-radius:10px;background:#f5f6f8;color:#4b5563;font-size:12px}.review-explain>b{display:block;color:#7f091c;margin-bottom:4px}
.review-option .rich-question-content,.review-tf-content .rich-question-content{margin:0}.review-option .question-code-wrap,.review-tf-content .question-code-wrap{margin:5px 0}.review-option .question-figure,.review-tf-content .question-figure{margin:6px 0}
@media(max-width:760px){.review-summary{grid-template-columns:1fr 1fr}.review-toolbar{align-items:flex-start;flex-direction:column}.review-option{grid-template-columns:24px minmax(0,1fr)}.review-option-note{grid-column:2;text-align:left}.review-tf-row{grid-template-columns:1fr}.review-tf-answer{white-space:normal;flex-wrap:wrap}}

/* V0.30 - khóa bài ngay sau khi học sinh nộp */
.submitted-shell{min-height:calc(100vh - 118px);display:grid;place-items:center;padding:28px}
.submitted-card{width:min(760px,94vw);background:#fff;border:1px solid #eadde0;border-radius:22px;padding:34px 38px;text-align:center;box-shadow:0 22px 60px rgba(88,7,24,.16)}
.submitted-icon{width:78px;height:78px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#0f9b57,#08743f);color:#fff;box-shadow:0 12px 28px rgba(12,132,73,.24)}
.submitted-icon svg{width:36px;height:36px}
.submitted-card h1{margin:5px 0 10px;color:#861026;font-size:34px;letter-spacing:.03em}
.submitted-lead{max-width:610px;margin:0 auto;color:#5f6670;line-height:1.65}
.submitted-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0 18px}
.submitted-stats>div{min-height:96px;border:1px solid #e5e8ec;border-radius:14px;background:#fafbfc;padding:14px 12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.submitted-stats span{font-size:11px;color:#7a828d;font-weight:700}.submitted-stats b{font-size:17px;color:#202733}.submitted-stats small{font-size:10px;color:#7d8590}
.submitted-note{margin:4px auto 18px;display:inline-flex;align-items:center;gap:7px;border-radius:999px;background:#fff4f6;color:#8e1027;padding:9px 14px;font-size:11px;font-weight:700}
.submitted-note svg{width:15px;height:15px}
@media(max-width:760px){.submitted-card{padding:26px 18px}.submitted-stats{grid-template-columns:1fr}.submitted-shell{padding:16px}.submitted-card h1{font-size:28px}}

/* V0.31 - Màn hình chiến thắng / vinh danh */
.victory-page{min-height:calc(100vh - 74px);display:flex;flex-direction:column;background:#15040a;overflow:auto;margin:-22px;padding:0 0 24px;color:#fff}
.victory-stage{position:relative;isolation:isolate;min-height:720px;padding:30px 42px 34px;overflow:hidden;background:radial-gradient(circle at 50% 28%,rgba(201,39,68,.32),transparent 29%),linear-gradient(145deg,#26040d 0%,#520818 47%,#26040d 100%);border-bottom:1px solid rgba(255,255,255,.08)}
.victory-bg-grid{position:absolute;inset:0;z-index:-3;opacity:.25;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(to bottom,#000,transparent 84%)}
.victory-glow{position:absolute;z-index:-2;left:50%;top:130px;width:600px;height:350px;transform:translateX(-50%);background:radial-gradient(ellipse,rgba(255,206,104,.20),rgba(210,32,66,.14) 38%,transparent 70%);filter:blur(5px);pointer-events:none}
.victory-particles{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}.victory-particles i{position:absolute;left:var(--x);top:-25px;width:7px;height:16px;border-radius:2px;background:linear-gradient(#f7d889,#f4a62a);opacity:.72;transform:rotate(var(--rot));animation:victoryFall var(--dur) linear var(--delay) infinite}.victory-particles i:nth-child(3n){background:linear-gradient(#fff,#d9c4c9);width:5px}.victory-particles i:nth-child(4n){background:linear-gradient(#ff6d83,#b40c2a);height:12px}
@keyframes victoryFall{0%{transform:translateY(-30px) rotate(var(--rot));opacity:0}10%{opacity:.8}100%{transform:translateY(760px) rotate(calc(var(--rot) + 320deg));opacity:0}}
.victory-top{text-align:center;position:relative;z-index:2}.victory-kicker{display:block;font-size:10px;font-weight:950;letter-spacing:.2em;color:#e7bbc4}.victory-top>b{display:block;margin-top:5px;font-size:16px;color:#fff;letter-spacing:.02em}
.victory-hero{position:relative;text-align:center;z-index:2;padding-top:14px}.victory-rays{position:absolute;left:50%;top:64px;width:360px;height:360px;transform:translate(-50%,-50%);border-radius:50%;background:repeating-conic-gradient(from 0deg,rgba(255,220,126,.09) 0 4deg,transparent 4deg 18deg);mask-image:radial-gradient(circle,#000 0 30%,transparent 68%);animation:victorySpin 24s linear infinite;z-index:-1}@keyframes victorySpin{to{transform:translate(-50%,-50%) rotate(360deg)}}
.victory-trophy{width:94px;height:94px;margin:13px auto 7px;border-radius:50%;display:grid;place-items:center;color:#4c2100;background:linear-gradient(145deg,#fff0ae,#f4b93b 52%,#d78612);box-shadow:0 0 0 7px rgba(255,216,117,.08),0 18px 55px rgba(244,173,40,.26)}.victory-trophy .ico{width:53px;height:53px;stroke-width:1.8}
.victory-title>span{display:block;color:#f4d48b;font-size:10px;font-weight:950;letter-spacing:.18em;margin-top:8px}.victory-title h1{margin:2px 0 0;font-size:44px;line-height:1;font-weight:1000;letter-spacing:.055em;color:#fff;text-shadow:0 4px 26px rgba(250,202,96,.25)}.victory-title p{margin:8px 0 0;font-size:20px;font-weight:900;color:#ffd972}.victory-title.tie h1{color:#fff1cf}.victory-title.tie p{color:#e9cfd5}
.victory-scoreline{margin:15px auto 0;display:inline-grid;grid-template-columns:auto auto auto;align-items:center;gap:15px;padding:8px 16px;border:1px solid rgba(255,255,255,.13);border-radius:999px;background:rgba(14,2,6,.34);backdrop-filter:blur(5px)}.victory-scoreline b{font-size:23px;color:#fff}.victory-scoreline span{font-size:9px;font-weight:900;letter-spacing:.11em;color:#e5bfc7}
.victory-duel{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;max-width:980px;margin:25px auto 0}.victory-player{position:relative;min-height:255px;padding:25px 25px 20px;border:1px solid rgba(255,255,255,.12);border-radius:22px;background:linear-gradient(155deg,rgba(255,255,255,.115),rgba(255,255,255,.05));box-shadow:0 16px 40px rgba(0,0,0,.17);backdrop-filter:blur(8px);text-align:center}.victory-player.champion{border-color:rgba(255,218,112,.58);background:linear-gradient(155deg,rgba(255,215,106,.16),rgba(255,255,255,.07));box-shadow:0 0 0 1px rgba(255,208,88,.12),0 18px 55px rgba(232,158,35,.16)}
.victory-champion-tag{position:absolute;top:-13px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:5px;white-space:nowrap;padding:6px 11px;border-radius:999px;background:linear-gradient(135deg,#ffe69a,#d99218);color:#5f3200;font-size:8px;font-weight:1000;letter-spacing:.07em;box-shadow:0 7px 18px rgba(0,0,0,.18)}.victory-champion-tag .ico{width:13px;height:13px}
.victory-avatar{width:60px;height:60px;margin:0 auto 9px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#fff,#e8d7da);color:#7e0a1f;border:3px solid rgba(255,255,255,.8);box-shadow:0 9px 25px rgba(0,0,0,.2);font-size:17px;font-weight:1000}.victory-avatar.alt{background:linear-gradient(145deg,#fff,#dce4ef);color:#274663}.victory-player.champion .victory-avatar{border-color:#ffd667;box-shadow:0 0 0 5px rgba(255,212,92,.1),0 10px 26px rgba(0,0,0,.2)}
.victory-player-label{display:inline-block;font-size:8px;font-weight:950;letter-spacing:.12em;color:#d9b5bd}.victory-player h3{margin:4px 0 4px;font-size:17px;color:#fff}.victory-player-score{font-size:30px;font-weight:1000;color:#ffd66d}.victory-player-score small{font-size:10px;color:#e1c9cf;margin-left:4px;font-weight:800}
.victory-player-stats{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:13px}.victory-player-stats>div{padding:8px 9px;border:1px solid rgba(255,255,255,.085);border-radius:10px;background:rgba(12,2,6,.20)}.victory-player-stats span{display:block;font-size:8px;color:#cbb8bd}.victory-player-stats b{display:block;margin-top:2px;font-size:11px;color:#fff}
.victory-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;padding:18px 16px 0;background:#15040a}.victory-actions .btn,.victory-modal-actions .btn{min-height:40px}.victory-primary{border-color:#f0c55f!important;background:linear-gradient(135deg,#f2c75d,#d99a1c)!important;color:#4b2600!important;font-weight:950!important}.victory-secondary{border:1px solid #d8c2c8!important;background:#fff7f8!important;color:#7f1023!important;font-weight:900!important;box-shadow:0 6px 18px rgba(88,14,30,.10)!important}.victory-secondary .ico{color:#7f1023!important}.victory-secondary:hover{background:#fff!important;border-color:#c998a3!important}
.winnerM{border-color:#e4b64f!important;background:#fff8e7!important;color:#7d4b00!important}
.victory-modal-backdrop{position:fixed;inset:0;z-index:1400;background:rgba(20,2,8,.78);backdrop-filter:blur(7px);display:grid;place-items:center;padding:14px;overflow:auto}.victory-modal-card{width:min(1180px,97vw);max-height:96vh;overflow:auto;border-radius:24px;background:#18050b;box-shadow:0 34px 100px rgba(0,0,0,.48)}.victory-stage.compact{min-height:650px;border-bottom:0;padding-top:24px}.victory-modal-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;padding:16px 20px 20px;border-top:1px solid rgba(255,255,255,.08);background:#160409}.victory-modal-actions .btn:not(.primary){background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16);color:#fff}
@media(max-width:820px){.victory-page{margin:-14px}.victory-stage{min-height:auto;padding:24px 14px 28px}.victory-title h1{font-size:34px}.victory-title p{font-size:17px}.victory-duel{grid-template-columns:1fr;max-width:520px}.victory-player{min-height:230px}.victory-scoreline{gap:10px}.victory-player-stats{grid-template-columns:1fr 1fr}.victory-particles i{animation-duration:4s!important}.victory-stage.compact{min-height:auto}}
@media(prefers-reduced-motion:reduce){.victory-particles i,.victory-rays{animation:none!important}.victory-particles{display:none}}

/* ===== V0.32: Bảng xếp hạng & hồ sơ thi đấu ===== */
.ranking-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 18px}
.rank-stat-card{background:#fff;border:1px solid #eadde0;border-radius:16px;padding:16px 18px;box-shadow:0 8px 24px rgba(76,12,25,.06);display:flex;flex-direction:column;gap:6px;min-height:88px;justify-content:center}
.rank-stat-card span{font-size:12px;color:#7d6b70;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.rank-stat-card b{font-size:26px;color:#641022;line-height:1.05}
.rank-stat-card.accent{background:linear-gradient(135deg,#761126,#a51c38);border-color:transparent;color:#fff}
.rank-stat-card.accent span,.rank-stat-card.accent b{color:#fff}
.ranking-table-wrap{overflow:auto}
.ranking-table{min-width:1180px}
.ranking-table tr.is-me{background:#fff6f7}
.ranking-table tr.is-me td:first-child{box-shadow:inset 4px 0 #8b1128}
.rank-no{font-weight:900;display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:34px;border-radius:999px;background:#f5eef0;color:#6e1224}
.rank-no.rank-1,.rank-no.rank-2,.rank-no.rank-3{font-size:20px;background:transparent}
.win-text{color:#16804a}.elo-value{color:#8d0a20;font-size:16px}.streak{color:#a95c00;white-space:nowrap}
.form-pills{display:flex;gap:5px;align-items:center;flex-wrap:nowrap}
.form-pill{width:24px;height:24px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:900;color:#fff}
.form-pill.win{background:#17814b}.form-pill.draw{background:#8b7c43}.form-pill.loss{background:#b02a40}
.btn.compact{padding:7px 10px;font-size:12px;white-space:nowrap}
.student-cell small{display:block;color:#8c7b7f;font-size:11px;margin-top:2px}.table-sub{display:block;color:#9b8b8f;font-size:11px;margin-top:2px}
.outcome-badge{display:inline-flex;align-items:center;justify-content:center;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.05em;color:#fff}
.outcome-badge.win{background:#17814b}.outcome-badge.draw{background:#8b7c43}.outcome-badge.loss{background:#b02a40}
.profile-head{align-items:center}.profile-title{display:flex;align-items:center;gap:15px}.profile-title h1{margin:2px 0 3px}.profile-title p{margin:0}
.profile-avatar{width:64px;height:64px;border-radius:18px;background:linear-gradient(145deg,#7b1025,#b42945);color:#fff;font-size:24px;font-weight:900;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 24px rgba(123,16,37,.22)}
.profile-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}
.profile-kpi{background:#fff;border:1px solid #eadde0;border-radius:16px;padding:17px 18px;display:flex;flex-direction:column;gap:6px;min-height:108px;box-shadow:0 8px 22px rgba(76,12,25,.05)}
.profile-kpi span{font-size:12px;font-weight:800;color:#806d72;text-transform:uppercase;letter-spacing:.03em}.profile-kpi>b{font-size:25px;color:#641022}.profile-kpi small{color:#85767a;min-height:23px;display:flex;align-items:center}
.profile-kpi.primary{background:linear-gradient(135deg,#721025,#9f1934);border-color:transparent}.profile-kpi.primary span,.profile-kpi.primary>b,.profile-kpi.primary small{color:#fff}
.profile-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.85fr);gap:16px;margin-bottom:16px}
.profile-chart-card,.topic-card,.profile-history{padding:18px}.card-title-row{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.card-title-row h3{margin:0;color:#6b1022;font-size:17px}.card-title-row p{margin:4px 0 0;color:#8d7e82;font-size:12px}
.progress-chart{position:relative;height:210px;background:linear-gradient(180deg,#fff,#fbf7f8);border:1px solid #efe2e5;border-radius:14px;padding:8px 10px 24px;overflow:hidden}.progress-chart svg{width:100%;height:170px;overflow:visible}.chart-axis{stroke:#dfd3d6;stroke-width:1}.chart-line{fill:none;stroke:#8d1029;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.chart-dot{fill:#fff;stroke:#8d1029;stroke-width:3}.progress-chart-labels{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;font-size:10px;color:#97878b;text-align:center;overflow:hidden}.empty-progress{height:190px;display:flex;align-items:center;justify-content:center;color:#918186;background:#fbf8f9;border:1px dashed #e5d8dc;border-radius:14px}
.topic-performance-list{display:flex;flex-direction:column;gap:13px;max-height:300px;overflow:auto;padding-right:4px}.topic-performance>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:12px}.topic-performance span{display:flex;align-items:baseline;gap:7px}.topic-performance span small,.topic-performance>small{color:#94858a;font-size:11px}.topic-performance strong{color:#6f1023}.topic-performance-bar{height:9px!important;border-radius:999px;background:#eee3e6;margin:6px 0 4px;overflow:hidden}.topic-performance-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#7c1026,#bd3651)}
.profile-history{margin-bottom:18px}.profile-history .table-wrap{overflow:auto}.profile-history table{min-width:920px}
.ranking-config-card{margin-top:16px;display:grid;grid-template-columns:1fr auto auto;gap:18px;align-items:center}.ranking-config-card h3{margin:0 0 5px;color:#6e1023}.ranking-config-card p{margin:0;max-width:780px}.elo-toggle{display:flex;align-items:center;gap:9px;cursor:pointer;white-space:nowrap}.elo-toggle input{display:none}.elo-toggle span{width:46px;height:25px;background:#c8bcc0;border-radius:999px;position:relative;transition:.2s}.elo-toggle span:after{content:"";position:absolute;width:19px;height:19px;border-radius:50%;background:#fff;left:3px;top:3px;box-shadow:0 2px 6px #0002;transition:.2s}.elo-toggle input:checked+span{background:#8d1029}.elo-toggle input:checked+span:after{transform:translateX(21px)}.elo-toggle b{color:#6e1023;font-size:13px}
@media(max-width:1180px){.ranking-stats,.profile-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-grid{grid-template-columns:1fr}.ranking-config-card{grid-template-columns:1fr auto}.ranking-config-card .btn{grid-column:1/-1;justify-self:start}}
@media(max-width:720px){.ranking-stats,.profile-summary-grid{grid-template-columns:1fr}.profile-title{align-items:flex-start}.profile-avatar{width:52px;height:52px;border-radius:14px}.profile-head{align-items:flex-start}.ranking-config-card{grid-template-columns:1fr}.progress-chart-labels{display:none}}

/* V0.33 - Question Bank redesign */
.question-bank-head{align-items:center}.question-bank-head .actions{justify-content:flex-end}
.qb-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.qb-stats .card{padding:15px 17px;display:flex;align-items:center;justify-content:space-between;min-height:70px}.qb-stats span{font-size:11px;color:#757d89;font-weight:800}.qb-stats b{font-size:24px;color:#790819}
.qb-toolbar{display:grid;grid-template-columns:minmax(250px,1fr) 160px 190px 170px;gap:10px;padding:12px;margin-bottom:12px;position:sticky;top:0;z-index:4}.qb-toolbar select,.qb-toolbar input{height:42px;border:1px solid #dde1e7;border-radius:10px;background:#fff;padding:0 11px;color:#353d49;outline:none}.qb-toolbar select:focus,.qb-toolbar input:focus{border-color:#9c1930;box-shadow:0 0 0 3px rgba(145,13,36,.08)}.qb-search{position:relative;display:flex;align-items:center}.qb-search .ico{position:absolute;left:11px;width:17px;height:17px;color:#8f96a1;z-index:1}.qb-search input{width:100%;padding-left:37px}
.qb-selection{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff3f5;border:1px solid #ecc6ce;border-radius:11px;padding:9px 12px;margin-bottom:10px}.qb-selection>div{display:flex;align-items:center;gap:9px}.qb-selection b{color:#8e0c23}.qb-selection span{font-size:11px;color:#7c848f}
.qb-list-head{display:flex;align-items:center;justify-content:space-between;padding:7px 8px;color:#7a828e;font-size:11px}.qb-list-head label{display:flex;align-items:center;gap:7px;font-weight:800}.qb-list{display:grid;gap:9px}.qb-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;padding:13px 14px;transition:.15s}.qb-row:hover{border-color:#d9b6bd;box-shadow:0 7px 24px rgba(79,5,20,.06)}.qb-check{display:grid;place-items:center}.qb-check input,.qb-list-head input{accent-color:#8c0b22;width:16px;height:16px}.qb-main{min-width:0}.qb-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:6px}.qb-type{font-size:9px;font-weight:950;letter-spacing:.06em;padding:4px 7px;border-radius:7px;background:#fff0f2;color:#971027}.qb-type.tf{background:#eef3ff;color:#3158a4}.qb-rich{font-size:8.5px;font-weight:900;padding:4px 6px;border-radius:7px;background:#f1ecff;color:#6c46a0}.qb-stem{font-size:13px;line-height:1.45;color:#252c37;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.qb-stem>b{color:#8a1025;margin-right:4px}.qb-source{margin-top:6px;color:#9299a3;font-size:9.5px}.qb-actions{display:flex;align-items:center;gap:6px}.qb-actions .btn.mini{padding:7px 8px;font-size:9.5px}.icon-btn.danger-soft{color:#a20e27;background:#fff1f3;border-color:#efd2d8}.qb-pager{display:flex;align-items:center;justify-content:center;gap:12px;padding:16px 0}.qb-pager span{font-size:11px;color:#707884}.empty-state{padding:34px;text-align:center;display:grid;gap:5px}.empty-state b{color:#5c6470}.empty-state span{color:#9298a1;font-size:11px}
.qb-editor-wrap{width:min(1120px,97vw)!important;padding:0!important;overflow:hidden!important}.qb-editor-modal,.qb-preview-modal{display:flex;flex-direction:column;max-height:94vh}.qb-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:18px 20px 12px;border-bottom:1px solid #eceef2}.qb-editor-head h2{margin:2px 0 0}.qb-editor-head p{margin:4px 0 0;font-size:11px}.eyebrow{font-size:9px;color:#9a1930;font-weight:950;letter-spacing:.08em}.qb-editor-grid{display:grid;grid-template-columns:180px minmax(240px,1fr) 190px;gap:11px;padding:5px 20px}.qb-editor-grid .field{margin:8px 0}.qb-editor-modal>#qeContent{padding:0 20px;overflow:auto;min-height:0;flex:1}.qb-editor-modal>.field{margin:10px 20px}.qb-edit-section{border:1px solid #e2e5ea;border-radius:12px;background:#fbfbfc;padding:12px;margin:10px 0}.qb-edit-section>h4{font-size:11px;margin:0 0 8px;color:#781125}.qb-answer-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.qb-edit-section.option{margin:0}.qb-edit-section.option.correct{border-color:#93cfaa;background:#f4fbf6}.qb-option-head{margin-bottom:7px;border-bottom:1px solid #e7e9ed;padding-bottom:7px}.qb-option-head label{font-size:11px;font-weight:850;display:flex;align-items:center;gap:6px}.qb-option-head input{accent-color:#14824b}.qb-blocks{display:grid;gap:7px}.qb-block{border:1px solid #e0e3e8;border-radius:9px;background:#fff;padding:8px;position:relative}.qb-block-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}.qb-block-head b{font-size:8.5px;color:#8b1830;letter-spacing:.07em}.qb-block-head select{font-size:9px;padding:4px 6px;border:1px solid #dce0e6;border-radius:7px;margin-left:auto}.qb-block textarea{width:100%;min-height:64px;border:0;outline:0;resize:vertical;font:inherit;line-height:1.45;color:#2e3540;background:transparent}.qb-block textarea.code{font-family:Consolas,"Courier New",monospace;white-space:pre;tab-size:4;min-height:84px;background:#f7f8fa;border-radius:7px;padding:8px}.qb-block.image{display:grid;grid-template-columns:100px minmax(0,1fr) 32px;align-items:center;gap:10px}.qb-block.image img{max-width:100px;max-height:75px;object-fit:contain;background:#f6f7f9;border-radius:7px}.qb-block.image div{display:grid;gap:3px}.qb-block.image span{font-size:9.5px;color:#89909a}.qb-add-block{display:flex;gap:6px}.qb-editor-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 20px;border-top:1px solid #eceef2;background:#fff}.qb-editor-footer>div{display:flex;gap:8px}
.qb-preview-wrap{width:min(950px,96vw)!important;padding:0!important;overflow:hidden!important}.qb-preview-modal{max-height:94vh}.qb-preview-meta{display:flex;gap:7px;padding:12px 20px 0;align-items:center}.qb-preview-paper{margin:12px 20px;padding:20px;border:1px solid #e1e4e9;border-radius:13px;background:#fff;overflow:auto;min-height:0}.qb-preview-paper .stem{font-size:16px}.qb-preview-answer{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:flex-start;gap:8px;border:1px solid #dfe3e8;border-radius:10px;padding:11px 12px;margin:8px 0}.qb-preview-answer.correct{border-color:#8dceaa;background:#f2fbf5;box-shadow:inset 3px 0 #20884e}.qb-preview-answer>b{color:#721025}.qb-preview-answer>span{font-size:9px;font-weight:900;color:#167b46;background:#dcf3e4;border-radius:999px;padding:4px 7px}.qb-explanation{margin:0 20px 18px;background:#fff7e8;border:1px solid #f0d6a0;border-radius:11px;padding:11px 13px}.qb-explanation b{font-size:10px;color:#7b5b13}.qb-explanation p{font-size:11px;margin:5px 0 0;line-height:1.5;color:#5d5a51}
.qb-import-grid{display:grid;grid-template-columns:1.3fr 1fr 190px;gap:10px;padding:6px 20px}.qb-import-grid .field{margin:8px 0}.qb-editor-wrap>.actions{padding:0 20px 10px}.qb-import-result{padding:0 20px;max-height:43vh;overflow:auto}.qb-import-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:5px 0 10px}.qb-import-summary>div{border:1px solid #e4e7eb;border-radius:10px;padding:10px 11px;background:#fafbfc;display:flex;justify-content:space-between;align-items:center}.qb-import-summary span{font-size:9.5px;color:#7f8792}.qb-import-summary b{font-size:18px;color:#7d0b20}.qb-import-errors{display:grid;gap:3px;background:#fff0f2;border:1px solid #edc6ce;border-radius:10px;padding:10px 12px;color:#98142b;font-size:10px}.qb-import-preview{display:grid;gap:7px;margin-top:10px}.qb-import-preview>div{display:grid;gap:3px;padding:9px 10px;border:1px solid #e4e6ea;border-radius:9px}.qb-import-preview b{font-size:10px;color:#721025}.qb-import-preview span{font-size:10px;color:#666f7b}
@media(max-width:1050px){.qb-toolbar{grid-template-columns:1fr 1fr}.qb-stats{grid-template-columns:repeat(2,1fr)}.qb-answer-grid{grid-template-columns:1fr}.qb-import-grid{grid-template-columns:1fr 1fr}.qb-import-grid .field:first-child{grid-column:1/-1}}
@media(max-width:700px){.question-bank-head{align-items:flex-start}.question-bank-head .actions{width:100%}.qb-toolbar{grid-template-columns:1fr;position:static}.qb-row{grid-template-columns:28px minmax(0,1fr)}.qb-actions{grid-column:2;justify-content:flex-start}.qb-editor-grid,.qb-import-grid{grid-template-columns:1fr}.qb-import-grid .field:first-child{grid-column:auto}.qb-stats{grid-template-columns:1fr 1fr}.qb-block.image{grid-template-columns:75px minmax(0,1fr) 28px}.qb-block.image img{max-width:75px}.qb-import-summary{grid-template-columns:1fr 1fr}}


/* V0.34 - Question bank visual editor */
.qb-meta-panel{background:#fbfbfc;border-bottom:1px solid #eceef2;padding:2px 0}.qb-editor-tip{margin:9px 20px 2px;padding:9px 11px;border:1px solid #ead7dc;background:#fff7f8;border-radius:10px;display:flex;align-items:center;gap:8px;font-size:10.5px;color:#6a5960}.qb-editor-tip .ico{width:16px;height:16px;color:#891127;flex:0 0 auto}.qb-explanation-field{margin-left:20px!important;margin-right:20px!important}.qb-editor-modal>#qeContent{padding-top:2px}
.qb-section-title{display:flex;justify-content:space-between;margin-bottom:9px}.qb-section-title>div,.qb-answer-title{display:flex;align-items:center;gap:9px}.qb-section-title>div>span,.qb-answer-title>span{width:27px;height:27px;border-radius:9px;background:#7e0c21;color:#fff;display:grid;place-items:center;font-weight:950;font-size:11px;flex:0 0 auto}.qb-section-title h4{margin:0!important;font-size:12px!important;color:#3b424d!important}.qb-section-title small,.qb-answer-title small{display:block;color:#8a919b;font-size:9.5px;margin-top:2px}.qb-answer-title{margin:14px 0 8px}.qb-answer-title b{font-size:12px;color:#3d444e}
.qb-answer-grid{grid-template-columns:1fr!important;gap:9px}.qb-edit-section.option{padding:10px 12px}.qb-option-head{margin-bottom:8px}.qb-option-head label{font-size:11px;cursor:pointer}.qb-option-letter{width:28px;height:28px;border-radius:9px;background:#f3e7e9;color:#821026;display:grid;place-items:center;font-size:13px;font-weight:950}.qb-option-letter.tf{text-transform:lowercase}.qb-edit-section.option.correct .qb-option-letter{background:#21804d;color:#fff}
.qb-blocks{gap:8px}.qb-block{padding:9px 10px}.qb-block-head{justify-content:flex-start}.qb-block-head>b{margin-right:auto}.qb-block-order{display:flex;gap:3px}.qb-block-order .icon-btn{width:25px;height:25px}.qb-block-order .icon-btn:disabled{opacity:.25;cursor:not-allowed}.qb-add-block{align-items:center;padding:7px 8px;border:1px dashed #d7dbe1;border-radius:9px;background:#fafbfc}.qb-add-block>span{font-size:9px;font-weight:850;color:#838b96;margin-right:3px}.qb-add-block .image-add{border-color:#d5bbc1;color:#7f1025;background:#fff6f7}
.qb-block.image{grid-template-columns:140px minmax(0,1fr) auto 32px;padding:9px}.qb-image-preview{height:98px;border:1px solid #e1e4e8;border-radius:8px;background:#f7f8fa;display:grid;place-items:center;overflow:hidden}.qb-image-preview img{max-width:100%!important;max-height:98px!important;object-fit:contain}.qb-image-info{display:grid;align-content:center;gap:5px}.qb-image-info>b{font-size:9px;color:#821027}.qb-image-info label{font-size:9px;color:#737b86;display:grid;gap:3px}.qb-image-info input{height:32px;border:1px solid #dfe2e7;border-radius:7px;padding:0 8px;font-size:10px}.qb-image-info small{font-size:8.5px;color:#9a9fa7}
.qb-row-has-image{grid-template-columns:30px 68px minmax(0,1fr) auto}.qb-row-thumb{width:64px;height:50px;border-radius:8px;border:1px solid #e0e3e8;background:#f7f8fa;object-fit:cover}.qb-row-media-placeholder{width:64px;height:50px;border-radius:8px;background:#f5f1f2;display:grid;place-items:center;font-size:8px;color:#8c6d74;font-weight:850}
@media(max-width:700px){.qb-block.image{grid-template-columns:90px minmax(0,1fr) 30px}.qb-block.image .qb-block-order{display:none}.qb-image-preview{height:70px}.qb-image-preview img{max-height:70px!important}.qb-add-block{flex-wrap:wrap}.qb-add-block>span{width:100%}}

/* V0.35 - Question bank UX + hierarchical topics */
.qb-stats .card small{display:block;margin-top:2px;font-size:9.5px;color:#8c929b;font-weight:700}.qb-toolbar-v2{grid-template-columns:minmax(280px,1.4fr) 180px minmax(250px,.9fr) 190px}.qb-toolbar-v2 select{min-width:0}
.topic-manager-wrap{width:min(1080px,96vw)!important;padding:0!important;overflow:hidden!important}.topic-manager{display:flex;flex-direction:column;max-height:92vh}.topic-manager-body{display:grid;grid-template-columns:310px minmax(0,1fr);gap:14px;padding:16px 18px 18px;overflow:hidden;min-height:0}.topic-form-card,.topic-tree-card{border:1px solid #e2e5e9;border-radius:14px;background:#fff}.topic-form-card{padding:15px;align-self:start}.topic-form-card h3{margin:0 0 10px;color:#6f0d20}.topic-form-card .field{margin:10px 0}.topic-form-actions{display:flex;gap:8px;margin-top:12px}.topic-manager-note{margin-top:14px;padding:10px;border-radius:10px;background:#fff6f7;border:1px solid #eddadd;color:#73656a;font-size:10px;line-height:1.5}.topic-tree-card{display:flex;flex-direction:column;min-height:0;overflow:hidden}.topic-tree-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #eceef1}.topic-tree-toolbar>div:first-child{display:grid;gap:2px}.topic-tree-toolbar b{font-size:12px;color:#3d434c}.topic-tree-toolbar span{font-size:9.5px;color:#8b9199}.qb-search.compact{min-width:220px;padding:0 9px;height:36px}.topic-tree{overflow:auto;padding:8px}.topic-tree-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 9px 9px calc(10px + var(--depth)*24px);border-radius:9px;border:1px solid transparent}.topic-tree-row:hover{background:#faf7f8;border-color:#eee1e4}.topic-tree-main{display:flex;align-items:center;gap:9px;min-width:0}.topic-tree-dot{width:8px;height:8px;border-radius:50%;background:#8a1026;box-shadow:0 0 0 4px #f6e9eb;flex:0 0 auto}.topic-tree-main>div{display:grid;gap:2px;min-width:0}.topic-tree-main b{font-size:11px;color:#343b44}.topic-tree-main small{font-size:9px;color:#89909a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topic-tree-actions{display:flex;gap:5px;flex:0 0 auto}.topic-tree-actions .btn.mini{padding:6px 8px;font-size:9px}
.qb-editor-v2-wrap{width:min(1180px,97vw)!important;height:min(860px,94vh)!important;padding:0!important;overflow:hidden!important}.qb-editor-v2{height:100%;max-height:none!important}.qb-head-actions{display:flex;align-items:center;gap:8px}.qb-editor-v2-body{display:grid;grid-template-columns:210px minmax(0,1fr);min-height:0;flex:1;overflow:hidden;background:#f7f8fa}.qb-editor-nav{padding:12px;border-right:1px solid #e3e6ea;background:#fff;display:flex;flex-direction:column;gap:6px}.qb-editor-nav>button{border:0;background:transparent;border-radius:10px;padding:10px;display:grid;grid-template-columns:30px minmax(0,1fr);gap:9px;text-align:left;cursor:pointer;color:#5e6671}.qb-editor-nav>button>span{width:29px;height:29px;border-radius:9px;background:#f2f3f5;display:grid;place-items:center;font-size:10px;font-weight:950}.qb-editor-nav>button>div{display:grid;gap:2px}.qb-editor-nav b{font-size:10.5px}.qb-editor-nav small{font-size:8.5px;color:#9a9fa6}.qb-editor-nav>button.active{background:#fff0f2;color:#7d0d22}.qb-editor-nav>button.active>span{background:#8b1027;color:#fff}.qb-editor-nav>button.active small{color:#97747b}.qb-editor-help{margin-top:auto;border-radius:10px;background:#f7f2f3;padding:10px;display:grid;gap:4px}.qb-editor-help b{font-size:9px;color:#7e1024}.qb-editor-help span{font-size:8.5px;line-height:1.45;color:#7f7478}.qb-editor-workspace{overflow:auto;padding:18px 20px 28px;min-height:0}.qe-pane-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.qe-pane-head>span{width:34px;height:34px;border-radius:10px;background:#831027;color:#fff;display:grid;place-items:center;font-size:10px;font-weight:950}.qe-pane-head h3{margin:0;color:#2f3640;font-size:15px}.qe-pane-head p{margin:2px 0 0;color:#89909a;font-size:10px}.qe-simple-card{border:1px solid #e0e4e8;background:#fff;border-radius:13px;padding:15px}.qe-classify-grid{display:grid;grid-template-columns:230px minmax(320px,1fr) 200px;gap:12px}.qe-classify-grid .field{margin:0}.topic-pick-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.field-help{display:block;margin-top:5px;font-size:8.8px;color:#9298a0}.rich-compose-card .qb-add-block,.qe-answer-editor .qb-add-block{margin-top:9px}.qe-answer-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}.qe-answer-tabs button{border:1px solid #dde1e6;background:#fff;border-radius:10px;padding:9px;display:flex;align-items:center;gap:9px;cursor:pointer;text-align:left}.qe-answer-tabs button>span{width:30px;height:30px;border-radius:9px;background:#f1f2f4;display:grid;place-items:center;font-size:14px;font-weight:950;color:#6e1425}.qe-answer-tabs button>small{font-size:9px;color:#8f959e}.qe-answer-tabs button.active{border-color:#a54456;box-shadow:0 0 0 2px #f6e5e8;background:#fff9fa}.qe-answer-tabs button.active>span{background:#821127;color:#fff}.qe-answer-tabs button.correct{border-color:#b5dbc3}.qe-answer-tabs button.correct:not(.active)>span{background:#e0f3e6;color:#177546}.qe-answer-status{margin-bottom:12px;padding-bottom:11px;border-bottom:1px solid #eceef1}.answer-mark{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:800;color:#3e4650;cursor:pointer}.answer-mark input{accent-color:#18804b;width:17px;height:17px}.answer-mark.tf input{accent-color:#8a1026}.qe-explanation{min-height:230px!important;line-height:1.55}.qb-save-hint{font-size:9.5px;color:#8b9199}.qb-editor-v2 .qb-block{box-shadow:none}.qb-editor-v2 .qb-block textarea{min-height:88px}.qb-editor-v2 .qb-block textarea.code{min-height:120px}.qb-editor-v2 .qb-block.image{grid-template-columns:170px minmax(0,1fr) auto 32px}.qb-editor-v2 .qb-image-preview{height:120px}.qb-editor-v2 .qb-image-preview img{max-height:120px!important}.qb-import-v2{grid-template-columns:1.2fr 1.2fr 190px}.qb-import-actions{padding:0 20px 8px}
@media(max-width:900px){.qb-toolbar-v2{grid-template-columns:1fr 1fr}.topic-manager-body{grid-template-columns:1fr;overflow:auto}.topic-tree-card{min-height:320px}.qb-editor-v2-body{grid-template-columns:1fr}.qb-editor-nav{display:grid;grid-template-columns:repeat(4,1fr);border-right:0;border-bottom:1px solid #e3e6ea;padding:8px}.qb-editor-nav>button{grid-template-columns:24px 1fr;padding:7px}.qb-editor-nav>button>span{width:24px;height:24px}.qb-editor-nav small,.qb-editor-help{display:none}.qe-classify-grid{grid-template-columns:1fr}.qb-import-v2{grid-template-columns:1fr}}
@media(max-width:620px){.qb-toolbar-v2{grid-template-columns:1fr}.qe-answer-tabs{grid-template-columns:1fr 1fr}.qb-editor-v2 .qb-block.image{grid-template-columns:90px minmax(0,1fr) 30px}.qb-editor-v2 .qb-block.image .qb-block-order{display:none}.topic-tree-actions .tmChild{display:none}}

/* V0.36 - Word import preview/edit inside Question Bank */
.qb-word-import-wrap{width:min(1260px,96vw);height:min(900px,94vh);max-height:94vh;display:flex;flex-direction:column;overflow:hidden}
.qb-word-import-wrap .qb-editor-head{flex:0 0 auto}
.qb-word-import-wrap .qb-import-grid,.qb-word-import-wrap .qb-import-actions{flex:0 0 auto}
.qb-word-import-wrap .qb-import-result{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.qb-word-import-wrap .qb-editor-footer{flex:0 0 auto}
.qb-word-toolbar{flex:0 0 auto;margin-top:10px}
.qb-bank-word-review{flex:1 1 auto;min-height:260px;overflow:auto;padding-right:6px;margin-top:10px}
.qb-bank-word-review.preview{background:#f7f8fa;border:1px solid #e6e8ed;border-radius:16px;padding:16px}
.qb-bank-word-review.edit{background:#f7f8fa;border:1px solid #e6e8ed;border-radius:16px;padding:14px}
.qb-import-errors small{display:block;margin-top:8px;color:#667085;font-weight:500}
@media(max-width:900px){.qb-word-import-wrap{width:98vw;height:96vh}.qb-import-v2{grid-template-columns:1fr}.qb-bank-word-review{min-height:220px}}

/* V0.37 - Full-screen Word import workspace */
.qb-word-import-backdrop{
  padding:0!important;
  place-items:stretch!important;
  background:#f4f5f7!important;
  backdrop-filter:none!important;
}
.qb-word-import-backdrop>.modal.qb-word-import-wrap{
  width:100vw!important;
  height:100vh!important;
  max-width:none!important;
  max-height:none!important;
  border-radius:0!important;
  box-shadow:none!important;
  overflow:hidden!important;
  padding:0!important;
}
.qb-word-import-wrap{
  display:flex!important;
  flex-direction:column!important;
  min-height:0!important;
}
.qb-word-import-wrap .qb-editor-head{
  padding:12px 22px 9px!important;
  min-height:72px;
  background:#fff;
}
.qb-word-import-wrap .qb-editor-head h2{font-size:21px;margin-top:0!important}
.qb-word-import-wrap .qb-editor-head p{font-size:10px!important;margin-top:2px!important}
.qb-word-import-wrap .qb-import-grid{
  padding:8px 22px 4px!important;
  gap:10px!important;
  background:#fff;
  border-bottom:0;
}
.qb-word-import-wrap .qb-import-grid .field{margin:3px 0!important}
.qb-word-import-wrap .qb-import-grid label{margin-bottom:5px}
.qb-word-import-wrap .qb-import-actions{
  padding:4px 22px 8px!important;
  background:#fff;
  border-bottom:1px solid #e8eaee;
}
.qb-word-import-wrap .qb-import-result{
  max-height:none!important;
  flex:1 1 auto!important;
  min-height:0!important;
  overflow:hidden!important;
  padding:0 22px 10px!important;
  display:flex!important;
  flex-direction:column!important;
  background:#f5f6f8;
}
.qb-word-import-wrap .qb-import-summary{
  flex:0 0 auto;
  margin:10px 0 7px!important;
  gap:8px;
}
.qb-word-import-wrap .qb-import-summary>div{padding:7px 10px!important;background:#fff}
.qb-word-import-wrap .qb-import-summary b{font-size:16px!important}
.qb-word-import-wrap .qb-import-errors,
.qb-word-import-wrap .qb-import-result>.note{
  flex:0 0 auto;
  margin:0 0 7px!important;
  padding:7px 10px!important;
  font-size:9.5px!important;
}
.qb-word-import-wrap .qb-import-errors span{display:inline;margin-right:9px}
.qb-word-import-wrap .qb-import-errors small{margin-top:4px!important}
.qb-word-import-wrap .qb-word-toolbar{
  position:relative!important;
  top:auto!important;
  z-index:6;
  flex:0 0 auto!important;
  margin:0!important;
  padding:7px 0!important;
  background:#f5f6f8;
  border-top:1px solid #e8eaee;
  border-bottom:1px solid #e1e4e8;
}
.qb-word-import-wrap .word-view-tabs button{min-height:36px}
.qb-word-import-wrap .qb-bank-word-review{
  flex:1 1 auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:auto!important;
  margin:8px 0 0!important;
  padding:14px 16px 34px!important;
  scroll-padding-top:14px;
}
.qb-word-import-wrap .qb-bank-word-review.preview,
.qb-word-import-wrap .qb-bank-word-review.edit{
  border-radius:13px!important;
  background:#fff!important;
}
.qb-word-import-wrap .qb-editor-footer{
  flex:0 0 auto!important;
  padding:9px 22px!important;
  min-height:58px;
  box-shadow:0 -5px 18px rgba(23,28,35,.05);
  z-index:8;
}
.qb-word-import-wrap .word-preview-q,
.qb-word-import-wrap .word-editor-q{max-width:1180px;margin-left:auto;margin-right:auto;width:100%}
.qb-word-import-wrap .word-preview-q{margin-bottom:13px}
.qb-word-import-wrap .word-editor-q{margin-bottom:14px}

@media(max-height:760px){
  .qb-word-import-wrap .qb-editor-head{min-height:60px;padding:8px 18px 6px!important}
  .qb-word-import-wrap .qb-editor-head h2{font-size:18px}
  .qb-word-import-wrap .qb-import-grid{padding:5px 18px 2px!important}
  .qb-word-import-wrap .qb-import-actions{padding:2px 18px 5px!important}
  .qb-word-import-wrap .qb-import-summary{margin:6px 0 5px!important}
  .qb-word-import-wrap .qb-import-result{padding:0 18px 7px!important}
  .qb-word-import-wrap .qb-editor-footer{padding:6px 18px!important;min-height:50px}
}
@media(max-width:900px){
  .qb-word-import-backdrop>.modal.qb-word-import-wrap{height:100dvh!important}
  .qb-word-import-wrap .qb-import-grid{grid-template-columns:1fr 1fr!important}
  .qb-word-import-wrap .qb-import-grid .field:first-child{grid-column:1/-1}
  .qb-word-import-wrap .qb-import-summary{grid-template-columns:repeat(4,1fr)!important}
}
@media(max-width:620px){
  .qb-word-import-wrap .qb-import-grid{grid-template-columns:1fr!important}
  .qb-word-import-wrap .qb-import-grid .field:first-child{grid-column:auto}
  .qb-word-import-wrap .qb-import-summary{grid-template-columns:1fr 1fr!important}
  .qb-word-import-wrap .qb-editor-footer{align-items:flex-start;flex-direction:column}
  .qb-word-import-wrap .qb-editor-footer>div{width:100%;justify-content:flex-end}
}

/* V0.38 - Word import: two-column workspace (left info, right data) */
.qb-word-import-backdrop>.modal.qb-word-import-v038{
  width:100vw!important;height:100vh!important;max-width:none!important;max-height:none!important;
  padding:0!important;border-radius:0!important;overflow:hidden!important;background:#f5f6f8!important;
}
.qb-word-v038-layout{height:100%;min-height:0;display:grid;grid-template-columns:360px minmax(0,1fr);background:#f5f6f8}
.qb-word-side{min-width:0;min-height:0;background:#fff;border-right:1px solid #e1e4e9;display:flex;flex-direction:column;box-shadow:5px 0 20px rgba(34,21,25,.035);z-index:2}
.qb-word-side-head{flex:0 0 auto;padding:22px 20px 15px;border-bottom:1px solid #eceef2}
.qb-word-side-head h2{margin:4px 0 5px;color:#741126;font-size:21px;line-height:1.15}.qb-word-side-head p{margin:0;color:#858c96;font-size:10.5px;line-height:1.5}
.qb-word-side-body{flex:1 1 auto;min-height:0;overflow:auto;padding:15px 16px 18px;scrollbar-width:thin}
.qb-word-side-section{padding:0 0 15px;margin-bottom:15px;border-bottom:1px solid #edf0f3}.qb-word-side-section:last-of-type{margin-bottom:8px}
.qb-word-side-section h4{margin:0 0 10px;color:#6f1426;font-size:11px}.qb-word-side-section .field{margin:0 0 10px}.qb-word-side-section .field label{font-size:10.5px;margin-bottom:5px}.qb-word-side-section input[type=file],.qb-word-side-section select{width:100%;min-height:42px}
.qb-word-side-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.qb-word-side-actions .btn{justify-content:center;min-width:0;padding-left:8px;padding-right:8px}
.qb-word-side .topic-pick-row{grid-template-columns:minmax(0,1fr) 42px}.qb-word-side .btn.icon-only{padding:0;display:grid;place-items:center;min-width:42px;width:42px}
.qb-word-side-stats{border-bottom:0!important;padding-bottom:4px!important}.qb-word-side-empty{border:1px dashed #d9dde3;border-radius:11px;background:#fafbfc;padding:16px 12px;text-align:center;color:#999fa7;font-size:10px;line-height:1.45}
.qb-word-v038-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.qb-word-v038-stats>div{border:1px solid #e4e7eb;border-radius:11px;background:#fafbfc;padding:10px 11px}.qb-word-v038-stats span{display:block;font-size:8.5px;color:#8c939e;font-weight:850}.qb-word-v038-stats b{display:block;margin-top:3px;font-size:19px;color:#831027}
.qb-word-file-name{margin-top:8px;border:1px solid #eadde0;background:#fff8f9;border-radius:10px;padding:9px 10px}.qb-word-file-name span{display:block;color:#9298a1;font-size:8px;font-weight:900;text-transform:uppercase}.qb-word-file-name b{display:block;margin-top:3px;color:#5b626c;font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qb-word-side-alert{margin:9px 0 0!important;padding:10px!important;font-size:9px!important}.qb-word-side-alert span{display:block!important;margin:3px 0 0!important;line-height:1.4}.qb-word-side-alert small{display:block!important;margin-top:6px!important;line-height:1.4}
.qb-word-side-ok{margin-top:9px;display:flex;gap:6px;align-items:flex-start;border:1px solid #caead7;background:#eff9f3;color:#27794d;border-radius:10px;padding:9px 10px;font-size:9.5px;font-weight:750;line-height:1.4}.qb-word-side-ok .ico{width:15px;height:15px;flex:0 0 auto}
.qb-word-side-error{margin:7px 0 0;font-size:9.5px;line-height:1.4}
.qb-word-side-footer{flex:0 0 auto;border-top:1px solid #e7e9ed;background:#fff;padding:11px 14px 13px;box-shadow:0 -5px 18px rgba(36,22,27,.04)}.qb-word-side-footer>span{display:block;min-height:17px;font-size:9px;line-height:1.35;margin-bottom:8px}.qb-word-side-footer>div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px}.qb-word-side-footer .btn.primary{justify-content:center;min-width:0}
.qb-word-main{min-width:0;min-height:0;display:flex;flex-direction:column;background:#f5f6f8;overflow:hidden}
.qb-word-main-head{height:84px;flex:0 0 84px;padding:16px 22px 13px;background:#fff;border-bottom:1px solid #e4e7eb;display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.qb-word-main-head h3{margin:3px 0 3px;color:#2e3540;font-size:18px}.qb-word-main-head p{margin:0;color:#89909a;font-size:10px}.qb-word-main-head .review-close{position:static;flex:0 0 auto}
.qb-word-main-result{flex:1 1 auto!important;min-height:0!important;max-height:none!important;overflow:hidden!important;padding:0 20px 18px!important;display:flex!important;flex-direction:column!important;background:#f5f6f8!important}
.qb-word-main-empty{height:100%;min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#9aa0a9;gap:7px}.qb-word-main-empty>div{width:54px;height:54px;border-radius:16px;background:#fff0f3;color:#94142b;display:grid;place-items:center}.qb-word-main-empty .ico{width:26px;height:26px}.qb-word-main-empty b{font-size:13px;color:#59616c}.qb-word-main-empty span{font-size:10px;color:#9299a2}
.qb-word-import-v038 .qb-word-toolbar{flex:0 0 auto!important;margin:0 -20px!important;padding:9px 20px!important;background:#fff!important;border-bottom:1px solid #e2e5e9!important;border-top:0!important;position:relative!important}.qb-word-import-v038 .word-view-tabs button{min-height:36px}
.qb-word-import-v038 .qb-bank-word-review{flex:1 1 auto!important;min-height:0!important;max-height:none!important;overflow:auto!important;margin:12px 0 0!important;padding:15px 16px 32px!important;border-radius:14px!important;background:#fff!important;border:1px solid #e3e6ea!important;scrollbar-width:thin}
.qb-word-import-v038 .word-preview-q,.qb-word-import-v038 .word-editor-q{max-width:1120px;width:100%;margin-left:auto;margin-right:auto}.qb-word-import-v038 .word-preview-q,.qb-word-import-v038 .word-editor-q{margin-bottom:13px}

@media(max-width:1120px){.qb-word-v038-layout{grid-template-columns:320px minmax(0,1fr)}.qb-word-side-head{padding-left:16px;padding-right:16px}.qb-word-side-body{padding-left:13px;padding-right:13px}.qb-word-main-result{padding-left:14px!important;padding-right:14px!important}.qb-word-import-v038 .qb-word-toolbar{margin-left:-14px!important;margin-right:-14px!important;padding-left:14px!important;padding-right:14px!important}}
@media(max-width:760px){.qb-word-v038-layout{grid-template-columns:285px minmax(520px,1fr);overflow:auto}.qb-word-side{position:sticky;left:0;height:100vh}.qb-word-main{min-width:520px}.qb-word-side-head h2{font-size:17px}.qb-word-side-actions{grid-template-columns:1fr}.qb-word-side-footer>div{grid-template-columns:1fr}.qb-word-side-footer .btn{width:100%;justify-content:center}}


/* V0.39 - close controls: visible on light dialog headers */
.dialog-close{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:78px;height:38px;padding:0 12px;border:1px solid #e3c7cd;border-radius:10px;background:#fff;color:#7f091c;font-size:12px;font-weight:850;cursor:pointer;box-shadow:0 2px 7px rgba(70,12,24,.06);flex:0 0 auto}
.dialog-close:hover{background:#fff3f5;border-color:#c98996;color:#970d26}
.dialog-close:active{transform:translateY(1px)}
.dialog-close span{display:inline-block}
.qb-preview-wrap .qb-editor-head,.topic-manager-wrap .qb-editor-head{align-items:center}
.qb-preview-wrap .dialog-close,.topic-manager-wrap .dialog-close,.qb-word-main-head .dialog-close{position:sticky;right:0;top:0;z-index:4}
@media(max-width:700px){.dialog-close{min-width:38px;width:38px;padding:0}.dialog-close span{display:none}}

/* V0.40 - Question bank compact management */
.question-bank-head.qb-head-compact{margin-bottom:8px;min-height:44px;align-items:center}.question-bank-head.qb-head-compact h1{margin:0;font-size:24px}.question-bank-head.qb-head-compact .actions{gap:7px}.question-bank-head.qb-head-compact .btn{padding:8px 11px}
.qb-mini-stats{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 8px}.qb-mini-stats>span{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border:1px solid #e2e5e9;border-radius:999px;background:#fff;color:#6e7580;font-size:9.5px;font-weight:750;line-height:1}.qb-mini-stats b{font-size:12px;color:#791026}.qb-mini-stats .warn{background:#fff7e8;border-color:#f1dfb7;color:#8a641e}.qb-mini-stats .warn b{color:#a46f0b}
.qb-toolbar-v40{display:grid;grid-template-columns:minmax(260px,1.55fr) repeat(4,minmax(126px,.8fr));gap:7px;padding:9px 10px;margin-bottom:8px}.qb-toolbar-v40 .qb-search{min-width:0;height:38px}.qb-toolbar-v40 select{min-width:0;height:38px;padding:7px 9px;border:1px solid #dce0e5;border-radius:9px;background:#fff;color:#4f5762;font-size:10px;font-weight:700}.qb-toolbar-v40 .qb-search input{font-size:10.5px}
.qb-selection{margin:5px 0 8px!important;padding:8px 10px!important;min-height:44px}.qb-selection>div:first-child{gap:3px}.qb-selection>div:first-child span{font-size:9px}.qb-selection-actions{display:flex;gap:7px;align-items:center}.qb-selection-actions .btn{padding:7px 10px;font-size:9.5px}
.qb-list-head-v40{padding:5px 8px!important;margin-bottom:5px!important;min-height:28px}.qb-list-head-v40 label,.qb-list-head-v40 span{font-size:9px!important}
.qb-list-v40{gap:5px!important}.qb-row-v40{min-height:76px!important;padding:8px 9px!important;border-radius:11px!important;grid-template-columns:26px auto minmax(0,1fr) auto!important;gap:8px!important;box-shadow:none!important}.qb-row-v40:hover{border-color:#d9c2c7;box-shadow:0 4px 12px rgba(71,25,35,.06)!important}.qb-row-v40.is-hidden{opacity:.62;background:#f7f7f8}.qb-row-v40 .qb-check{align-self:start;padding-top:2px}.qb-row-v40 .qb-row-thumb{width:56px!important;height:56px!important;border-radius:8px!important;object-fit:cover}.qb-row-v40 .qb-main{min-width:0}.qb-row-v40 .qb-meta{gap:4px!important;margin-bottom:4px!important;flex-wrap:nowrap;overflow:hidden}.qb-row-v40 .qb-meta>span{white-space:nowrap}.qb-code{font-size:9px;font-weight:950;color:#771027;background:#f7e9ec;border:1px solid #edd5da;border-radius:6px;padding:3px 5px;letter-spacing:.02em}.qb-status{font-size:8px;font-weight:900;padding:3px 6px;border-radius:999px}.qb-status.active{background:#eaf7ef;color:#177849;border:1px solid #ccebd8}.qb-status.inactive{background:#f0f1f3;color:#737b86;border:1px solid #e0e3e7}.qb-dup{font-size:8px;font-weight:900;padding:3px 6px;border-radius:999px;background:#fff2db;color:#925f00;border:1px solid #efdaa9}.qb-row-v40 .qb-stem{font-size:10.5px!important;line-height:1.34!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0!important;color:#303741}.qb-row-info{display:flex;align-items:center;gap:9px;margin-top:4px;color:#8b919a;font-size:8.5px;white-space:nowrap;overflow:hidden}.qb-row-info span{position:relative}.qb-row-info span+span:before{content:'·';margin-right:9px;color:#c0c4c9}.qb-row-info b{color:#555d67}.qb-row-v40 .qb-actions{gap:4px!important;align-self:center}.qb-row-v40 .qb-actions .btn.mini{padding:6px 8px;font-size:9px}.qb-row-v40 .qb-actions .icon-btn{width:30px;height:30px}.qb-row-v40 .qb-actions .ico{width:15px;height:15px}.qb-pager{margin-top:8px!important}.qb-pager .btn{padding:7px 10px}.qb-pager span{font-size:9.5px}
.qb-bulk-modal{width:min(520px,92vw)}.qb-bulk-body{padding:14px 18px}.qb-bulk-body .field{margin:10px 0}.qb-bulk-modal .qb-editor-footer{padding:10px 18px}
.qe-classify-grid{grid-template-columns:190px minmax(300px,1fr) 170px 160px!important}
@media(max-width:1280px){.qb-toolbar-v40{grid-template-columns:minmax(240px,1.4fr) repeat(3,minmax(120px,1fr))}.qb-row-info span:first-child{max-width:180px;overflow:hidden;text-overflow:ellipsis}}
@media(max-width:980px){.qb-toolbar-v40{grid-template-columns:1fr 1fr 1fr}.qb-toolbar-v40 .qb-search{grid-column:1/-1}.qb-row-v40{grid-template-columns:24px minmax(0,1fr) auto!important}.qb-row-v40 .qb-row-thumb{display:none}.qb-row-info{flex-wrap:wrap;white-space:normal}.qe-classify-grid{grid-template-columns:1fr!important}}
@media(max-width:650px){.qb-toolbar-v40{grid-template-columns:1fr 1fr}.qb-toolbar-v40 .qb-search{grid-column:1/-1}.qb-row-v40{grid-template-columns:22px minmax(0,1fr)!important}.qb-row-v40 .qb-actions{grid-column:2;justify-content:flex-end}.qb-row-v40 .qb-meta{flex-wrap:wrap}.qb-selection{align-items:flex-start}.qb-selection-actions{flex-wrap:wrap;justify-content:flex-end}.qb-mini-stats{gap:4px}.qb-mini-stats>span{padding:4px 7px}}

/* V0.41 - Cleaner question row actions */
.qb-row-v40{overflow:visible!important}
.qb-actions-v41{display:flex;align-items:center;gap:6px!important;position:relative;white-space:nowrap}
.qb-action-btn{height:32px;padding:0 10px;border:1px solid #d9dde3;border-radius:9px;background:#fff;color:#4b535e;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:9.5px;font-weight:850;cursor:pointer;transition:.15s ease}
.qb-action-btn .ico{width:14px!important;height:14px!important}
.qb-action-btn:hover{border-color:#c6aeb4;background:#fbf7f8;color:#7f0c20;transform:translateY(-1px)}
.qb-action-btn.primary-soft{border-color:#ead2d7;background:#fff5f6;color:#8e0d23}
.qb-action-btn.primary-soft:hover{background:#fcebee;border-color:#d9aeb7}
.qb-more-wrap{position:relative;display:inline-flex}
.qb-more-btn{width:34px;height:32px;border:1px solid #d9dde3;border-radius:9px;background:#fff;color:#636b76;display:grid;place-items:center;cursor:pointer;transition:.15s ease}
.qb-more-btn .ico{width:17px!important;height:17px!important}
.qb-more-btn:hover,.qb-more-wrap.open .qb-more-btn{background:#f7f2f3;border-color:#cfaeb5;color:#870c21}
.qb-more-menu{display:none;position:absolute;right:0;top:calc(100% + 6px);min-width:190px;padding:6px;background:#fff;border:1px solid #e0e3e7;border-radius:11px;box-shadow:0 14px 34px rgba(31,24,27,.16);z-index:120}
.qb-more-wrap.open .qb-more-menu{display:block;animation:qbMenuIn .12s ease-out}
@keyframes qbMenuIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.qb-menu-item{width:100%;min-height:36px;border:0;border-radius:8px;background:transparent;color:#434b56;display:flex;align-items:center;gap:9px;padding:7px 9px;text-align:left;font-size:10px;font-weight:800;cursor:pointer}
.qb-menu-item:hover{background:#f5f6f8;color:#751027}
.qb-menu-item .ico{width:15px!important;height:15px!important;flex:0 0 auto}
.qb-menu-symbol{width:15px;height:15px;display:grid;place-items:center;font-weight:950;color:#7d8590}
.qb-menu-sep{height:1px;background:#eceef1;margin:4px 3px}
.qb-menu-item.danger{color:#aa1930}
.qb-menu-item.danger:hover{background:#fff0f2;color:#970d25}
@media(max-width:980px){.qb-action-btn span{display:none}.qb-action-btn{width:34px;padding:0}.qb-actions-v41{gap:4px!important}.qb-more-menu{right:0}}
@media(max-width:650px){.qb-actions-v41{justify-content:flex-start!important}.qb-action-btn span{display:inline}.qb-action-btn{width:auto;padding:0 9px}.qb-more-menu{left:auto;right:0}}

/* V0.42 - Keep per-question actions pinned to the right edge */
.qb-row-v40{
  grid-template-columns:26px 56px minmax(0,1fr) max-content!important;
  align-items:center!important;
}
.qb-row-v40>.qb-check{grid-column:1!important;grid-row:1!important;align-self:start!important}
.qb-row-v40>.qb-row-thumb{grid-column:2!important;grid-row:1!important}
.qb-row-v40>.qb-main{grid-column:3!important;grid-row:1!important;min-width:0!important}
.qb-row-v40>.qb-actions-v41{
  grid-column:4!important;
  grid-row:1!important;
  justify-self:end!important;
  align-self:center!important;
  margin-left:auto!important;
  padding-left:10px!important;
}
/* When a row has no thumbnail, preserve the same reading/action alignment. */
.qb-row-v40:not(.qb-row-has-image)>.qb-main{grid-column:2 / 4!important}
.qb-row-v40:not(.qb-row-has-image)>.qb-actions-v41{grid-column:4!important}

@media(max-width:980px){
  .qb-row-v40{grid-template-columns:24px minmax(0,1fr) max-content!important}
  .qb-row-v40>.qb-row-thumb{display:none!important}
  .qb-row-v40>.qb-main,
  .qb-row-v40:not(.qb-row-has-image)>.qb-main{grid-column:2!important}
  .qb-row-v40>.qb-actions-v41,
  .qb-row-v40:not(.qb-row-has-image)>.qb-actions-v41{grid-column:3!important;justify-self:end!important}
}
@media(max-width:650px){
  .qb-row-v40{grid-template-columns:22px minmax(0,1fr)!important}
  .qb-row-v40>.qb-main,
  .qb-row-v40:not(.qb-row-has-image)>.qb-main{grid-column:2!important;grid-row:1!important}
  .qb-row-v40>.qb-actions-v41,
  .qb-row-v40:not(.qb-row-has-image)>.qb-actions-v41{
    grid-column:2!important;
    grid-row:2!important;
    justify-self:end!important;
    margin-top:5px!important;
    padding-left:0!important;
  }
}

/* V0.43 - Advanced match matrix: Topic × Type × Difficulty */
.auto-strategy-tabs.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.matrix-help{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 15px 10px}
.matrix-help>div:first-child b{display:block;color:#343b46;font-size:11.5px}.matrix-help>div:first-child span{display:block;margin-top:3px;color:#858d98;font-size:9.5px}
.matrix-table-wrap{margin:0 15px 12px;border:1px solid #e2e6eb;border-radius:12px;overflow:auto;max-height:350px;background:#fff}
.matrix-table{width:100%;border-collapse:separate;border-spacing:0;min-width:980px}
.matrix-table th{position:sticky;top:0;z-index:4;background:#f7f8fa;color:#66707c;font-size:9px;font-weight:850;text-align:center;padding:7px 5px;border-bottom:1px solid #e4e8ed;border-right:1px solid #edf0f3;white-space:nowrap}
.matrix-table thead tr:nth-child(2) th{top:31px;z-index:5;background:#fafbfc}
.matrix-table th.matrix-topic-col{left:0;z-index:7;text-align:left;min-width:220px;padding-left:10px}.matrix-table .matrix-group.single{color:#1f6da8;background:#f4f9fd}.matrix-table .matrix-group.tf{color:#8d0a20;background:#fff5f7}
.matrix-table td{padding:6px 5px;border-bottom:1px solid #eef1f4;border-right:1px solid #f1f3f5;text-align:center;vertical-align:middle;background:#fff}
.matrix-table tr:last-child td{border-bottom:0}.matrix-row.hidden{display:none}
.matrix-table td.matrix-topic{position:sticky;left:0;z-index:2;text-align:left;padding:7px 10px;background:#fff;box-shadow:2px 0 0 #f1f3f5}
.matrix-topic b{display:block;color:#343b46;font-size:10.5px;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.matrix-topic small{display:block;color:#949aa3;font-size:8.5px;margin-top:2px}
.matrix-cell{display:flex;align-items:center;justify-content:center;gap:2px;min-width:72px}.matrix-input{width:45px!important;height:30px!important;padding:0 3px!important;text-align:center;font-size:10px!important;font-weight:850;color:#2d343e;border-radius:7px!important}.matrix-input.invalid{border-color:#d9314d!important;background:#fff2f4!important;color:#a60b25}.matrix-avail{min-width:20px;color:#99a0aa;font-size:8.5px;font-weight:750}.matrix-row-total{font-weight:900;color:#850b20;background:#fffafb!important;min-width:46px}
.matrix-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding:0 15px 15px}.matrix-summary{text-align:right}.matrix-summary>span{display:block;color:#8d949e;font-size:9px}.matrix-summary>b{display:block;color:#820b20;font-size:14px;margin-top:1px}.matrix-summary>small{display:block;color:#58616e;font-size:9px;margin-top:2px}.matrix-summary>em{display:block;color:#7c8590;font-style:normal;font-size:9px;margin-top:2px}.matrix-summary>em.bad{color:#b20f2a;font-weight:850}.matrix-summary>em.ok{color:#167342;font-weight:850}
@media(max-width:900px){.auto-strategy-tabs.three{grid-template-columns:1fr}.matrix-help{align-items:flex-start;flex-direction:column}.matrix-help .topic-search-wrap{width:100%}.matrix-table-wrap{max-height:320px}}


/* V0.44 - Full-screen two-column match builder */
.match-builder-modal{
  width:100vw!important;height:100vh!important;max-width:none!important;max-height:none!important;
  border-radius:0!important;padding:0!important;overflow:hidden!important;
  display:grid!important;grid-template-columns:clamp(292px,22vw,350px) minmax(0,1fr);
  grid-template-rows:auto minmax(0,1fr) auto auto;background:#fff
}
.match-builder-modal .match-builder-head{
  grid-column:1;grid-row:1;padding:28px 24px 20px;border-right:1px solid #e5e7eb;border-bottom:1px solid #e7e9ed;
  background:linear-gradient(155deg,#fff 0%,#fff7f8 72%,#fff 100%);position:relative;min-width:0
}
.match-builder-modal .match-builder-head>div{min-width:0;padding-right:38px}
.match-builder-modal .match-builder-head h2{font-size:26px!important;line-height:1.14;margin:5px 0 7px!important}
.match-builder-modal .match-builder-head p{font-size:11px;line-height:1.5;max-width:260px}
.match-builder-modal .builder-close{position:absolute;right:16px;top:16px;width:38px;height:38px;border-radius:11px;z-index:3}
.match-builder-modal .builder-steps{
  grid-column:1;grid-row:2/5;display:flex!important;flex-direction:column;gap:8px;padding:16px 14px 18px;
  border-right:1px solid #e5e7eb;border-bottom:0;background:#fbfbfc;overflow:auto;min-height:0
}
.match-builder-modal .builder-step{
  flex:0 0 auto;min-height:72px;width:100%;padding:14px 12px 14px 54px;border:1px solid transparent;border-radius:13px;
  background:transparent;text-align:left;color:#7f8792
}
.match-builder-modal .builder-step:hover{background:#fff;border-color:#eee1e4}
.match-builder-modal .builder-step span{left:14px;top:19px;width:30px;height:30px;font-size:11px}
.match-builder-modal .builder-step b{font-size:12px;margin-top:1px}
.match-builder-modal .builder-step small{font-size:9.5px;line-height:1.35;margin-top:4px}
.match-builder-modal .builder-step.active{
  background:#fff3f5!important;border-color:#d9aab3!important;box-shadow:0 8px 22px rgba(95,7,24,.055)
}
.match-builder-modal .builder-step.active:after{display:none}
.match-builder-modal .builder-step.active span{background:#950d25;color:#fff;box-shadow:0 5px 13px rgba(151,11,35,.2)}
.match-builder-modal .builder-step.active b{color:#7d091d}
.match-builder-modal .builder-step.done{background:#f8fcf9;border-color:#e2eee6}
.match-builder-modal .builder-step.done span{background:#e4f5ea;color:#27824a}
.match-builder-modal .builder-steps:after{
  content:"TẠO TRẬN  →  PHÒNG CHỜ  →  3 · 2 · 1  →  GIAO ĐẤU";display:block;margin-top:auto;padding:14px 12px;
  border:1px solid #eadde0;border-radius:12px;background:#fff;color:#8a5360;font-size:8.5px;font-weight:900;letter-spacing:.055em;
  line-height:1.55;text-align:center
}
.match-builder-modal .builder-body{
  grid-column:2;grid-row:1/3;padding:28px 34px 24px;overflow:auto;min-width:0;min-height:0;background:#f7f8fa;
  overscroll-behavior:contain;scrollbar-gutter:stable
}
.match-builder-modal .builder-pane{width:100%;max-width:1280px;margin:0 auto}
.match-builder-modal .builder-section-title{margin-bottom:16px;position:sticky;top:-28px;z-index:5;padding:16px 0 12px;background:linear-gradient(#f7f8fa 82%,rgba(247,248,250,.88))}
.match-builder-modal .builder-section-title h3{font-size:19px}.match-builder-modal .builder-section-title p{font-size:11px;max-width:760px}
.match-builder-modal .builder-card{border-radius:15px;box-shadow:0 7px 22px rgba(28,8,14,.035)}
.match-builder-modal .builder-question-config{background:#fff}
.match-builder-modal .quota-table-wrap,.match-builder-modal .matrix-table-wrap{max-height:calc(100vh - 355px);min-height:260px}
.match-builder-modal .manual-question-list{max-height:calc(100vh - 390px)}
.match-builder-modal #wordMode{min-height:calc(100vh - 210px)}
.match-builder-modal .builder-error{
  grid-column:2;grid-row:3;padding:4px 34px 2px;min-height:22px;background:#fff;color:#a20f29;border-top:1px solid #f1f2f4
}
.match-builder-modal .builder-footer{
  grid-column:2;grid-row:4;padding:12px 34px 16px;border-top:0;background:#fff;box-shadow:0 -8px 24px rgba(32,8,14,.045);z-index:6
}
.match-builder-modal .builder-footer #mSave{min-width:250px}
.match-builder-modal .review-grid{grid-template-columns:repeat(3,minmax(0,1fr))}

@media(max-width:980px){
  .match-builder-modal{grid-template-columns:260px minmax(0,1fr)}
  .match-builder-modal .match-builder-head{padding:22px 18px 16px}.match-builder-modal .match-builder-head h2{font-size:22px!important}
  .match-builder-modal .builder-body{padding:22px 22px 18px}.match-builder-modal .builder-section-title{top:-22px}
  .match-builder-modal .builder-error{padding-left:22px;padding-right:22px}.match-builder-modal .builder-footer{padding-left:22px;padding-right:22px}
}
@media(max-width:760px){
  .match-builder-modal{display:flex!important;flex-direction:column;width:100vw!important;height:100vh!important}
  .match-builder-modal .match-builder-head{flex:0 0 auto;border-right:0;padding:16px 18px 12px}.match-builder-modal .match-builder-head p{display:none}
  .match-builder-modal .builder-steps{flex:0 0 auto;display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));padding:0 8px;gap:2px;border-right:0;border-bottom:1px solid #e5e7eb;overflow:visible}
  .match-builder-modal .builder-steps:after{display:none}.match-builder-modal .builder-step{min-height:54px;padding:9px 3px 8px 30px;border-radius:8px}.match-builder-modal .builder-step span{left:3px;top:14px;width:23px;height:23px}.match-builder-modal .builder-step small{display:none}.match-builder-modal .builder-step b{font-size:9.5px}
  .match-builder-modal .builder-body{flex:1 1 auto;padding:14px 14px 12px}.match-builder-modal .builder-section-title{position:static;padding:0;background:none}
  .match-builder-modal .builder-error{flex:0 0 auto;padding:2px 14px}.match-builder-modal .builder-footer{flex:0 0 auto;padding:10px 14px 12px}
  .match-builder-modal .quota-table-wrap,.match-builder-modal .matrix-table-wrap,.match-builder-modal .manual-question-list{max-height:360px}
}


/* V0.45 - TRUE viewport fullscreen for match builder.
   The previous V0.44 modal still inherited the generic modal backdrop padding,
   which left a visible frame around the screen. */
html:has(.match-builder-backdrop),body:has(.match-builder-backdrop){overflow:hidden!important}
.match-builder-backdrop{
  position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;
  padding:0!important;margin:0!important;display:block!important;place-items:initial!important;
  background:#fff!important;backdrop-filter:none!important;z-index:5000!important;overflow:hidden!important
}
.match-builder-backdrop>.match-builder-modal{
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
  min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;
  margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important
}
.match-builder-backdrop .builder-body{height:100%;max-height:none!important}
@supports(height:100dvh){.match-builder-backdrop{height:100dvh!important}}
/* V0.47 - Giải đấu loại trực tiếp */
.tour-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;margin-bottom:18px}.tour-list-card{border:1px solid #eadde0;background:#fff;border-radius:18px;padding:18px 20px;display:flex;align-items:center;justify-content:space-between;text-align:left;cursor:pointer;box-shadow:0 8px 28px rgba(80,0,20,.05);transition:.18s}.tour-list-card:hover{transform:translateY(-2px);border-color:#c98c98;box-shadow:0 12px 30px rgba(80,0,20,.09)}.tour-list-card h3{margin:8px 0 4px;color:#7f091c}.tour-list-card p{margin:0;color:#6d737e;font-size:13px}.tour-status{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:800}.tour-status.active{background:#fff0f2;color:#9b0b25}.tour-status.finished{background:#edf8f1;color:#227a48}.tour-list-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:155px}.tour-list-side span{font-size:11px;color:#969ba5;text-transform:uppercase;font-weight:700}.tour-list-side b{color:#26303f}.tour-list-side i{font-style:normal;font-size:30px;color:#9b0b25;line-height:1}.tour-detail{background:#fff;border:1px solid #eadde0;border-radius:20px;overflow:hidden;box-shadow:0 10px 36px rgba(80,0,20,.06)}.tour-detail-head{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #f0e7e9}.tour-detail-head h2{margin:3px 0;color:#7f091c}.tour-detail-head p{margin:0;color:#7a808a}.tour-champion{display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#fff5d7,#fffaf0);border:1px solid #ecd58f;border-radius:14px;padding:10px 14px;font-size:23px}.tour-champion span{font-size:10px;color:#986d0d;font-weight:900;display:block}.tour-champion b{font-size:14px;color:#6d4b00}.tour-bracket{display:flex;gap:22px;overflow-x:auto;padding:22px;background:#faf9fa}.tour-round{min-width:290px;display:flex;flex-direction:column}.tour-round-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.tour-round-title b{color:#8d0a20;font-size:16px}.tour-round-title span{font-size:11px;color:#888}.tour-round-slots{display:flex;flex-direction:column;gap:16px;justify-content:space-around;flex:1}.tour-slot{background:#fff;border:1px solid #eadde0;border-radius:16px;padding:12px;box-shadow:0 6px 18px rgba(70,0,15,.05);position:relative}.tour-slot-no{font-size:10px;font-weight:900;color:#a76a75;text-transform:uppercase;margin-bottom:7px}.tour-player{display:grid;grid-template-columns:34px 1fr auto;gap:9px;align-items:center;padding:8px;border-radius:10px;background:#f8f8fa;min-height:48px}.tour-player+.tour-vs{margin-top:3px}.tour-player.winner{background:#eef9f2;border:1px solid #cfe9d8}.tour-player.empty{opacity:.55}.tour-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#f4dfe4;color:#8d0a20;font-weight:900;font-size:12px}.tour-player b{font-size:13px;color:#232a36}.tour-player strong{font-size:15px;color:#8d0a20}.tour-player em{grid-column:2/4;font-style:normal;font-size:10px;color:#24804d;font-weight:800;margin-top:-5px}.tour-vs{text-align:center;font-size:10px;font-weight:900;color:#c3a6ad;line-height:18px}.tour-slot-actions{margin-top:10px;display:flex;justify-content:flex-end}.tour-wait,.tour-advanced{font-size:11px;font-weight:700;color:#7a808a}.tour-advanced{color:#267a4b}.tour-tie{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end}.tour-tie span{width:100%;font-size:10px;color:#9a6b73;text-align:right}.tour-tie button{border:1px solid #d9a5af;background:#fff6f7;color:#8d0a20;border-radius:8px;padding:5px 7px;font-size:10px;font-weight:800;cursor:pointer}.tour-create-wrap .modal{width:min(1180px,96vw);max-height:92vh;padding:0;overflow:hidden}.tour-create{display:flex;flex-direction:column;max-height:92vh}.tour-create>.match-builder-head{padding:22px 24px;border-bottom:1px solid #eee}.tour-create-grid{display:grid;grid-template-columns:360px 1fr;gap:0;min-height:0;flex:1;overflow:hidden}.tour-create-settings{padding:20px;border-right:1px solid #eee;background:#fcf8f9}.tour-create-note{font-size:12px;color:#6f747d;background:#fff;border:1px solid #eadde0;border-radius:12px;padding:12px;line-height:1.55}.tour-student-picker{padding:18px;display:flex;flex-direction:column;min-height:0}.tour-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.tour-picker-head>div{display:flex;flex-direction:column}.tour-picker-head span{font-size:11px;color:#8a9098}.tour-picker-head input{width:310px;max-width:50%;border:1px solid #dfe3e8;border-radius:10px;padding:9px 11px}.tour-student-list{overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding-right:4px}.tour-student-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #e4e6ea;border-radius:12px;cursor:pointer;background:#fff}.tour-student-item:has(input:checked){border-color:#b82842;background:#fff4f6}.tour-student-item input{accent-color:#8d0a20}.tour-student-item span:last-child{display:flex;flex-direction:column;min-width:0}.tour-student-item b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tour-student-item small{font-size:11px;color:#8a9098}.tour-create>.error{padding:0 24px}.tour-create>.qb-editor-footer{position:static;border-top:1px solid #eee;background:#fff}
@media(max-width:900px){.tour-create-grid{grid-template-columns:1fr;overflow:auto}.tour-create-settings{border-right:0;border-bottom:1px solid #eee}.tour-student-list{grid-template-columns:1fr}.tour-picker-head{align-items:stretch;flex-direction:column}.tour-picker-head input{max-width:none;width:100%}.tour-list{grid-template-columns:1fr}.tour-bracket{padding:14px}.tour-round{min-width:270px}}


/* V0.48 - Optimized fullscreen tournament builder */
html:has(.tour-builder-backdrop),body:has(.tour-builder-backdrop){overflow:hidden!important}
.tour-builder-backdrop{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;padding:0!important;margin:0!important;display:block!important;background:#fff!important;z-index:10000!important}
.tour-builder-host{width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;padding:0!important;margin:0!important;border-radius:0!important;overflow:hidden!important;background:#fff!important}
.tour-builder-modal{width:100%;height:100%;display:grid;grid-template-columns:310px minmax(0,1fr);background:#f7f8fa;color:#282f3a}
.tour-builder-side{min-width:0;background:linear-gradient(165deg,#fff 0%,#fff7f8 65%,#fff 100%);border-right:1px solid #e4e7eb;display:flex;flex-direction:column;overflow:hidden}
.tour-builder-brand{padding:28px 24px 20px;border-bottom:1px solid #e7e9ed}.tour-builder-brand h2{font-size:25px;color:#7e0a1e;margin:5px 0 7px;line-height:1.12}.tour-builder-brand p{font-size:11px;color:#7b838e;line-height:1.5;margin:0}
.tour-builder-steps{padding:16px 14px;display:flex;flex-direction:column;gap:8px}.tour-builder-step{border:1px solid transparent;border-radius:13px;background:transparent;display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;text-align:left;padding:12px;cursor:pointer;color:#6e7682}.tour-builder-step:hover{background:#fff;border-color:#eee1e4}.tour-builder-step>span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#f0f2f5;color:#747c87;font-size:11px;font-weight:900}.tour-builder-step b{display:block;font-size:12px;color:#515965}.tour-builder-step small{display:block;font-size:9.5px;color:#969ca5;margin-top:3px;line-height:1.35}.tour-builder-step.active{background:#fff1f4;border-color:#d9a6b0;box-shadow:0 7px 18px rgba(94,7,24,.05)}.tour-builder-step.active>span{background:#930c24;color:#fff}.tour-builder-step.active b{color:#800a1e}.tour-builder-step.done{background:#f6fbf7;border-color:#e1ede4}.tour-builder-step.done>span{background:#e3f4e8;color:#267b47}
.tour-builder-summary{margin:auto 14px 18px;border:1px solid #eadde0;border-radius:13px;background:#fff;padding:13px 14px;display:flex;flex-direction:column;gap:4px}.tour-builder-summary>span{font-size:8.5px;font-weight:900;color:#9d6873;letter-spacing:.08em}.tour-builder-summary>b{font-size:13px;color:#7f091d}.tour-builder-summary>small,.tour-builder-summary>em{font-size:10px;color:#777f8a;font-style:normal}
.tour-builder-main{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;background:#f7f8fa}.tour-builder-top{padding:22px 30px 16px;background:#fff;border-bottom:1px solid #e4e7eb;display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.tour-builder-top h3{margin:3px 0 4px;color:#7f091d;font-size:20px}.tour-builder-top p{margin:0;font-size:11px;color:#7b838e}.tour-builder-body{overflow:auto;min-height:0;padding:22px 30px 26px;overscroll-behavior:contain;scrollbar-gutter:stable}.tour-builder-pane{display:none;max-width:1220px;margin:0 auto}.tour-builder-pane.active{display:block}.tour-builder-error{min-height:22px;padding:3px 30px;background:#fff;color:#b00e29;font-size:11px;border-top:1px solid #eef0f2}.tour-builder-footer{padding:11px 30px 15px;background:#fff;box-shadow:0 -8px 22px rgba(32,8,14,.045);display:flex;align-items:center;justify-content:space-between;gap:12px}.tour-builder-footer>div{display:flex;gap:9px}.tour-builder-footer #tcSave{min-width:210px}
.tour-form-card,.tour-section-block{background:#fff;border:1px solid #e4e7eb;border-radius:16px;padding:18px 20px;margin-bottom:16px;box-shadow:0 6px 20px rgba(28,8,14,.03)}.tour-form-card .field{margin:0}.tour-form-card input{height:48px;font-size:14px}.tour-section-heading{display:flex;flex-direction:column;gap:3px;margin-bottom:12px}.tour-section-heading>b{font-size:13px;color:#343b46}.tour-section-heading>span{font-size:10px;color:#8b929d}.tour-size-options,.tour-seed-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.tour-seed-options{grid-template-columns:repeat(2,minmax(0,1fr))}.tour-option-card{position:relative;display:grid;grid-template-columns:46px minmax(0,1fr) 22px;gap:11px;align-items:center;padding:14px;border:1px solid #dfe3e8;border-radius:13px;background:#fff;cursor:pointer;transition:.15s}.tour-option-card:hover{border-color:#cda4ad;background:#fffafb}.tour-option-card input{position:absolute;opacity:0;pointer-events:none}.tour-option-card:has(input:checked){border-color:#a82039;background:#fff3f5;box-shadow:0 6px 16px rgba(133,10,31,.06)}.tour-option-icon,.tour-seed-symbol{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;background:#f4f5f7;color:#7c0a1e;font-size:15px;font-weight:900}.tour-option-card:has(input:checked) .tour-option-icon,.tour-option-card:has(input:checked) .tour-seed-symbol{background:#980d25;color:#fff}.tour-option-card b{display:block;font-size:12px;color:#343b46}.tour-option-card small{display:block;font-size:9.5px;color:#8b929d;line-height:1.4;margin-top:3px}.tour-option-card>i{font-style:normal;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#e9f6ed;color:#21804a;font-size:10px;opacity:0}.tour-option-card:has(input:checked)>i{opacity:1}
.tour-student-toolbar{position:sticky;top:-22px;z-index:7;background:#f7f8fa;padding:14px 0 12px;display:flex;align-items:center;justify-content:space-between;gap:16px}.tour-student-toolbar>div:first-child b{display:block;color:#343b46;font-size:13px}.tour-student-toolbar>div:first-child span{display:block;color:#8b929d;font-size:10px;margin-top:2px}.tour-search-box{width:min(420px,45%);position:relative}.tour-search-box .ico{position:absolute;left:11px;top:10px;width:17px;color:#8b929d}.tour-search-box input{width:100%;height:38px;padding:0 12px 0 36px;border:1px solid #dfe3e8;border-radius:10px;background:#fff}.tour-picker-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px;align-items:start}.tour-available-panel,.tour-selected-panel{background:#fff;border:1px solid #e3e6ea;border-radius:15px;overflow:hidden}.tour-mini-head{height:46px;padding:0 14px;border-bottom:1px solid #eceff2;display:flex;align-items:center;justify-content:space-between;gap:10px}.tour-mini-head>span{font-size:11px;font-weight:850;color:#4d5560}.tour-mini-head>small{font-size:9.5px;color:#8b929d}.tour-mini-head button{border:0;background:transparent;color:#940d24;font-size:9.5px;font-weight:800;cursor:pointer}.tour-student-list-v48{padding:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:calc(100dvh - 260px);overflow:auto}.tour-student-item-v48{display:grid;grid-template-columns:18px 36px minmax(0,1fr) 22px;gap:9px;align-items:center;padding:9px 10px;border:1px solid #e5e8ec;border-radius:11px;background:#fff;cursor:pointer;min-width:0}.tour-student-item-v48:hover{border-color:#d3b4bb;background:#fffafb}.tour-student-item-v48.selected{border-color:#bc4458;background:#fff4f6}.tour-student-item-v48 input{accent-color:#980d25}.tour-student-text{min-width:0;display:flex;flex-direction:column}.tour-student-text b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tour-student-text small{font-size:9px;color:#9299a3;margin-top:2px}.tour-checkmark{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#e9f6ed;color:#25814b;font-size:9px;opacity:0}.tour-student-item-v48.selected .tour-checkmark{opacity:1}.tour-student-item-v48.hidden{display:none}.tour-selected-panel{position:sticky;top:58px}.tour-selected-list{padding:9px;display:flex;flex-direction:column;gap:7px;max-height:calc(100dvh - 260px);overflow:auto}.tour-selected-row{display:grid;grid-template-columns:24px 34px minmax(0,1fr) 25px;gap:8px;align-items:center;padding:8px;border-radius:10px;background:#f8f9fa;border:1px solid #eceff2}.tour-selected-row>span:first-child{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#8d0a20;font-size:9px;font-weight:900}.tour-selected-row div{min-width:0;display:flex;flex-direction:column}.tour-selected-row b{font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tour-selected-row small{font-size:8.5px;color:#9097a1}.tour-selected-row button{border:0;background:transparent;color:#a13b4d;font-size:17px;cursor:pointer}.tour-empty-selected{padding:24px 12px;text-align:center;color:#999fa8;font-size:10px}
.tour-review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.tour-review-card{background:#fff;border:1px solid #e3e6ea;border-radius:14px;padding:15px 16px}.tour-review-card span{display:block;font-size:9px;color:#8e959f;text-transform:uppercase;font-weight:800}.tour-review-card b{display:block;margin-top:5px;color:#7f091d;font-size:13px}.tour-review-section{background:#fff;border:1px solid #e3e6ea;border-radius:15px;padding:16px;margin-bottom:14px}.tour-review-students{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tour-review-student{display:grid;grid-template-columns:25px 34px minmax(0,1fr);gap:9px;align-items:center;padding:9px 10px;background:#f8f9fa;border:1px solid #eceff2;border-radius:10px}.tour-review-student>span:first-child{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#8d0a20;font-size:9px;font-weight:900}.tour-review-student div{display:flex;flex-direction:column;min-width:0}.tour-review-student b{font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tour-review-student small{font-size:8.5px;color:#9198a2}.tour-final-note{border:1px solid #eadde0;background:#fff8f9;border-radius:12px;padding:12px 14px;color:#6f5a5f;font-size:10.5px;line-height:1.5}.tour-final-note b{color:#8a0b21}
@media(max-width:950px){.tour-builder-modal{grid-template-columns:260px minmax(0,1fr)}.tour-builder-brand{padding:22px 18px 17px}.tour-builder-body,.tour-builder-top{padding-left:20px;padding-right:20px}.tour-picker-layout{grid-template-columns:1fr 280px}.tour-student-list-v48{grid-template-columns:1fr}}
@media(max-width:720px){.tour-builder-modal{display:flex;flex-direction:column}.tour-builder-side{flex:0 0 auto;border-right:0;border-bottom:1px solid #e4e7eb}.tour-builder-brand{padding:13px 16px 10px}.tour-builder-brand p,.tour-builder-summary{display:none}.tour-builder-steps{display:grid;grid-template-columns:repeat(3,1fr);padding:6px 9px;gap:5px}.tour-builder-step{grid-template-columns:24px minmax(0,1fr);padding:7px;min-height:45px}.tour-builder-step>span{width:22px;height:22px}.tour-builder-step small{display:none}.tour-builder-main{flex:1;min-height:0}.tour-builder-top{padding:12px 14px 9px}.tour-builder-top p{display:none}.tour-builder-body{padding:12px 14px}.tour-size-options,.tour-seed-options,.tour-review-grid,.tour-review-students{grid-template-columns:1fr}.tour-student-toolbar{position:static;align-items:stretch;flex-direction:column;padding:0 0 10px}.tour-search-box{width:100%}.tour-picker-layout{grid-template-columns:1fr}.tour-selected-panel{position:static}.tour-student-list-v48,.tour-selected-list{max-height:280px}.tour-builder-footer{padding:9px 14px}.tour-builder-error{padding-left:14px;padding-right:14px}}

/* V0.50 - Distinguish independent matches from tournament matches */
.match-name-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:3px}.match-name-line>b{min-width:0}.match-origin{display:inline-flex;align-items:center;justify-content:center;height:21px;padding:0 8px;border-radius:999px;font-size:9px;font-weight:900;letter-spacing:.045em;white-space:nowrap}.match-origin.solo{background:#f1f3f5;color:#616a75;border:1px solid #e1e4e8}.match-origin.tour{background:#fff0f3;color:#920d25;border:1px solid #efc8d0}.match-tour-meta{display:flex;align-items:center;gap:5px;color:#8a5360;font-size:10px;font-weight:750;margin:2px 0 4px;white-space:normal}.match-tour-meta .ico{width:13px;height:13px;color:#a1132d;flex:0 0 auto}.match-source-toolbar{display:flex;align-items:center;gap:12px;margin:-2px 0 12px;padding:8px 10px;background:#fff;border:1px solid #ebeef1;border-radius:12px}.match-source-toolbar>span{font-size:10px;font-weight:850;color:#737b86;text-transform:uppercase;letter-spacing:.04em}.match-source-tabs{display:flex;gap:6px;flex-wrap:wrap}.match-source-tabs button{height:30px;border:1px solid #dfe3e8;background:#fff;border-radius:9px;padding:0 10px;color:#626b76;font-size:10px;font-weight:800;cursor:pointer}.match-source-tabs button b{display:inline-grid;place-items:center;min-width:19px;height:19px;margin-left:4px;border-radius:999px;background:#f1f3f5;font-size:9px}.match-source-tabs button.active{border-color:#b73d53;background:#fff4f6;color:#8d0a20}.match-source-tabs button.active b{background:#8d0a20;color:#fff}.match-filter-empty{padding:26px;text-align:center;color:#9097a0;font-size:12px}.student-match-card{align-items:center}.student-match-main{min-width:0;flex:1}.student-match-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:2px}.student-match-title h3{margin:0;color:#2b313b}.student-match-card .actions{flex-wrap:wrap;justify-content:flex-end}.student-match-card .match-tour-meta{margin-top:4px;margin-bottom:5px}
@media(max-width:760px){.match-source-toolbar{align-items:flex-start;flex-direction:column}.match-source-tabs{width:100%}.match-source-tabs button{flex:1}.student-match-card{align-items:flex-start}.student-match-card .actions{width:100%;justify-content:flex-start;margin-top:10px}}

/* V0.51 - Student match cards: matchup first, source/context second */
.student-home-matches{max-width:1180px;margin:0 auto}.compact-student-head{margin-bottom:14px}.compact-student-head p{margin-top:4px}.student-match-card-v2{padding:0;overflow:hidden;border:1px solid #e8e9ec;border-left:0;box-shadow:0 8px 24px rgba(36,22,27,.055);margin-bottom:12px}.student-match-card-v2.is-tournament{border-top:3px solid #9b0f27}.student-match-card-v2.is-independent{border-top:3px solid #d4d9df}.student-match-topline{min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 16px;border-bottom:1px solid #eef0f2;background:#fbfbfc}.student-match-context{min-width:0;display:flex;align-items:center;gap:7px;color:#717884;font-size:10.5px;white-space:nowrap;overflow:hidden}.student-match-context b{color:#333a45;max-width:260px;overflow:hidden;text-overflow:ellipsis}.student-match-context>span:not(.match-origin){overflow:hidden;text-overflow:ellipsis}.student-match-context-sep{color:#c2c6cc;flex:0 0 auto}.student-match-custom-name{max-width:310px}.student-match-status{flex:0 0 auto}.student-match-duel{display:grid;grid-template-columns:minmax(0,1fr) 145px minmax(0,1fr);align-items:center;gap:16px;padding:16px 18px 13px}.student-match-person{display:flex;align-items:center;gap:11px;min-width:0}.student-match-person.opponent{justify-content:flex-end;text-align:right}.student-match-person>div{min-width:0;display:flex;flex-direction:column;gap:2px}.student-match-person b{font-size:16px;line-height:1.15;color:#242b35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-match-person span:not(.student-match-avatar){font-size:9px;font-weight:900;letter-spacing:.09em;color:#9299a3}.student-match-avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;background:#fff2f4;border:1px solid #eccbd2;color:#970e27;font-size:12px;font-weight:950;box-shadow:inset 0 0 0 3px #fff}.student-match-person.opponent .student-match-avatar{background:#f3f5f7;border-color:#dce1e6;color:#65707d}.student-match-vs{text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px}.student-match-vs strong{font-size:24px;line-height:1;color:#a30f29;letter-spacing:.02em}.student-match-vs span{font-size:10px;color:#878e98;white-space:nowrap}.student-match-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:#fff;border-top:1px solid #f0f1f3}.student-match-note{display:flex;align-items:center;gap:7px;color:#7c8490;font-size:10.5px;min-width:0}.student-match-note span{display:flex;align-items:center;gap:5px}.student-match-note .ico{width:14px;height:14px}.student-submitted-note{color:#8d0a20!important;font-weight:800}.student-match-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto}.student-match-actions .btn{min-height:35px}.empty-student-matches{padding:28px;text-align:center;color:#858d97}
@media(max-width:880px){.student-match-duel{grid-template-columns:minmax(0,1fr) 90px minmax(0,1fr);gap:8px;padding-inline:12px}.student-match-person b{font-size:14px}.student-match-avatar{width:36px;height:36px}.student-match-vs strong{font-size:21px}.student-match-context b{max-width:170px}.student-match-custom-name{max-width:180px}}
@media(max-width:650px){.student-match-topline{align-items:flex-start}.student-match-context{white-space:normal;flex-wrap:wrap}.student-match-duel{grid-template-columns:1fr 54px 1fr}.student-match-avatar{display:none}.student-match-person b{font-size:13px}.student-match-vs span{display:none}.student-match-bottom{align-items:flex-start;flex-direction:column}.student-match-actions{width:100%;justify-content:flex-end}}

/* V0.52 - Team vs Team */
.match-origin.team{background:#f2e8ff;color:#6f2c91;border-color:#dcc9ee}
.team-battle-list{display:grid;gap:16px}
.team-battle-card{background:#fff;border:1px solid #eadde0;border-radius:20px;padding:20px 22px;box-shadow:0 10px 32px rgba(91,9,28,.07)}
.team-battle-head,.team-battle-foot{display:flex;align-items:center;justify-content:space-between;gap:16px}
.team-battle-head h3{margin:5px 0 3px;font-size:21px;color:#2c2430}.team-battle-head p{margin:0;color:#78808d}
.team-battle-badge{font-size:11px;font-weight:900;letter-spacing:.08em;color:#8f0b21;background:#fff0f3;border:1px solid #f1cbd3;border-radius:999px;padding:5px 9px}
.team-battle-versus{display:grid;grid-template-columns:1fr 72px 1fr;align-items:center;gap:18px;margin:18px 0;padding:16px;background:#faf8f9;border:1px solid #eee5e7;border-radius:16px}
.team-battle-versus section{min-width:0}.team-battle-versus section:last-child{text-align:right}.team-battle-versus section.my-team{background:#fff5f6;border:1px solid #f0ccd3;border-radius:14px;padding:12px}
.team-battle-versus small{font-size:10px;font-weight:900;letter-spacing:.08em;color:#8e7f84}.team-battle-versus h4{font-size:20px;color:#840a20;margin:4px 0 10px}.team-battle-vs{text-align:center;font-size:30px;font-weight:1000;color:#a20d27}
.team-member-chips{display:flex;flex-wrap:wrap;gap:7px}.team-battle-versus section:last-child .team-member-chips{justify-content:flex-end}
.team-member-chips>span{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid #e7dfe1;border-radius:999px;padding:4px 8px 4px 4px;max-width:100%}.team-member-chips i,.team-member-chips .team-chip-avatar{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#f7e7eb;color:#8c0b21;font-style:normal;font-size:10px;font-weight:900;flex:0 0 25px;overflow:hidden}.team-member-chips .team-chip-avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}.team-member-chips b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-member-chips em{font-style:normal;font-size:11px;font-weight:900;color:#16814a}
.team-battle-foot{padding-top:2px;color:#65707e;font-size:13px}.empty-team-battles{text-align:center;padding:42px;color:#7b818a}

.team-builder-overlay{position:fixed;inset:0;z-index:1000;background:#f5f6f8;display:block}
.team-builder-shell{height:100dvh;display:grid;grid-template-columns:330px minmax(0,1fr);background:#f5f6f8}
.team-builder-side{background:linear-gradient(180deg,#fff8f9,#fff);border-right:1px solid #eadde0;padding:34px 26px 24px;display:flex;flex-direction:column;gap:26px;overflow:hidden}
.team-builder-side h2{font-size:30px;line-height:1.08;color:#7f091c;margin:8px 0}.team-builder-side p{color:#7b8088;line-height:1.5}
.team-builder-steps{display:grid;gap:10px}.team-builder-steps button{border:1px solid transparent;background:transparent;padding:13px;border-radius:14px;display:flex;align-items:center;gap:12px;text-align:left;color:#6e737c}.team-builder-steps button span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#f0f1f3;font-weight:900}.team-builder-steps button b{font-size:14px}.team-builder-steps button.active{background:#fff0f3;border-color:#ecc2cb;color:#8b0b22}.team-builder-steps button.active span{background:#9d0b26;color:#fff}
.team-builder-hint{margin-top:auto;border:1px solid #eddde0;background:#fff;border-radius:14px;padding:13px;color:#7d6770;font-size:12px;font-weight:700;line-height:1.5}
.team-builder-main{height:100dvh;min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#f7f8fa}.team-builder-main>header{height:92px;background:#fff;border-bottom:1px solid #e6e9ed;display:flex;align-items:center;justify-content:space-between;padding:18px 30px}.team-builder-main>header h2{margin:0;color:#2c2530}.team-builder-main>header p{margin:5px 0 0;color:#7c828c}.team-builder-body{overflow:auto;padding:24px 30px}.tb-pane{display:none}.tb-pane.active{display:block}.team-builder-footer{background:#fff;border-top:1px solid #e4e7eb;padding:13px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px}.team-builder-footer .builder-alert{color:#ae1630;font-weight:700;min-height:20px}.team-builder-footer .actions{display:flex;gap:8px;margin-left:auto}
.team-size-field{max-width:230px}.team-pick-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;min-height:560px}.team-pick-panel{background:#fff;border:1px solid #e4e7eb;border-radius:18px;padding:18px;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:12px}.team-pick-title{display:flex;align-items:center;gap:10px}.team-pick-title>span{width:42px;height:42px;border-radius:13px;background:#9d0b26;color:#fff;display:grid;place-items:center;font-weight:1000;font-size:18px}.team-pick-title.alt>span{background:#344d8e}.team-pick-title b{display:block;color:#2d2730}.team-pick-title small{color:#838994}.team-search{height:42px;border:1px solid #dfe3e8;border-radius:12px;padding:0 13px;font:inherit}.team-pick-list{overflow:auto;display:grid;align-content:start;gap:7px;padding-right:4px}.team-student-option{display:grid;grid-template-columns:auto 36px minmax(0,1fr) auto;align-items:center;gap:9px;border:1px solid #e6e8ec;background:#fff;border-radius:12px;padding:8px 10px;cursor:pointer}.team-student-option:hover{border-color:#d6aeb7;background:#fffafb}.team-student-option.blocked{opacity:.45}.team-student-option .mini-avatar{width:32px;height:32px}.team-student-option b{font-size:13px}.team-student-option small{color:#8a9099;font-size:11px}.team-student-option input{accent-color:#9b0b25}
.team-topic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:230px;overflow:auto;padding:4px}.team-topic-grid label{display:flex;align-items:center;gap:7px;padding:9px 10px;border:1px solid #e3e6ea;border-radius:10px;background:#fff;font-size:12px;font-weight:700}.team-topic-grid input{accent-color:#9c0b25}.builder-options-row{display:flex;gap:22px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid #edf0f2}.toggle-line{display:flex;align-items:center;gap:8px;font-weight:700;color:#545b66}.toggle-line input{width:18px;height:18px;accent-color:#9c0b25}
.team-review-versus{display:grid;grid-template-columns:1fr 70px 1fr;align-items:start;gap:16px;margin-top:20px}.team-review-versus section{border:1px solid #e7dfe2;border-radius:16px;padding:16px;background:#fff}.team-review-versus section:last-child{text-align:right}.team-review-versus small{font-weight:900;color:#9a0b25}.team-review-versus h4{font-size:20px;margin:6px 0 12px}.team-review-versus section b{display:block;padding:4px 0;color:#4a4f57}.team-review-versus>strong{text-align:center;font-size:28px;color:#a10c27;padding-top:44px}

.waiting-team-duel{display:grid;grid-template-columns:1fr 90px 1fr;gap:22px;align-items:center;width:min(1100px,94vw);margin:24px auto}.waiting-team-duel>section{background:#fff;border:1px solid #eadde0;border-radius:20px;padding:20px}.waiting-team-duel>section.mine{box-shadow:0 0 0 2px #b20f2e inset}.waiting-team-duel small{font-weight:900;color:#9e0d28}.waiting-team-duel h2{margin:5px 0 14px;color:#2d2730}.waiting-team-members{display:grid;gap:7px}.waiting-team-members>div{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:8px;align-items:center;border-top:1px solid #f0ecee;padding:7px 0}.waiting-team-members b{font-size:13px}.waiting-team-members .ready-state{font-size:10px;padding:4px 7px}.team-waiting-shell .waiting-vs{font-size:44px}
.team-duel-banner .duel-person .duel-sub{font-size:11px;letter-spacing:.05em}.right-stack .progress-person small{display:block;margin-top:6px;color:#8b9199;font-size:10px}

.team-result-backdrop{position:fixed;inset:0;z-index:1200;background:rgba(20,7,11,.68);display:grid;place-items:center;padding:24px}.team-result-modal{width:min(1100px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:22px;box-shadow:0 30px 90px #0007}.team-result-stage{padding:28px}.team-result-stage>.team-result-kicker{text-align:center;color:#9b0c26;font-weight:900;letter-spacing:.08em}.team-result-stage>h2{text-align:center;margin:7px 0 24px}.team-result-score{display:grid;grid-template-columns:1fr 90px 1fr;align-items:center;gap:18px}.team-result-score>section{border:1px solid #eadfe2;border-radius:18px;padding:20px;text-align:center}.team-result-score>section.winner{background:linear-gradient(180deg,#fff6e8,#fff);border-color:#e8c887;box-shadow:0 12px 34px rgba(178,126,26,.16)}.team-result-score h3{margin:5px 0 10px}.team-result-score strong{font-size:40px;color:#930c25}.team-result-vs{text-align:center;font-size:32px;font-weight:1000;color:#a30d29}.team-result-note{text-align:center;margin-top:20px;font-weight:800;color:#70535c}.team-result-actions{padding:0 28px 24px;text-align:center}
.team-victory-stage{min-height:620px;border-radius:26px;background:radial-gradient(circle at 50% 28%,#d83a55 0,#8e0a22 34%,#4a0512 100%);color:#fff;position:relative;overflow:hidden;padding:44px 34px}.team-victory-trophy{text-align:center}.team-victory-trophy .ico{width:74px;height:74px;stroke:#ffd77a}.team-victory-title{text-align:center;position:relative;z-index:2}.team-victory-title span{font-weight:900;letter-spacing:.15em;color:#f4c9cf}.team-victory-title h1{font-size:56px;margin:5px 0}.team-victory-title p{font-size:24px;font-weight:900;margin:0 0 28px}.team-victory-grid{display:grid;grid-template-columns:1fr 90px 1fr;gap:18px;align-items:center;position:relative;z-index:2}.team-victory-side{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.18);border-radius:20px;padding:20px}.team-victory-side.winner{background:rgba(255,216,114,.16);border-color:#f5d675;box-shadow:0 0 38px rgba(255,207,86,.18)}.team-victory-side>span{font-size:11px;font-weight:900;letter-spacing:.1em;color:#f3c8ce}.team-victory-side h2{margin:5px 0}.team-victory-side>strong{font-size:38px;color:#ffe390}.team-victory-side>strong small{font-size:12px;color:#fff;margin-left:6px}.team-victory-vs{text-align:center;font-size:34px;font-weight:1000}.team-victory-members{display:grid;gap:6px;margin-top:15px}.team-victory-members>div{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:8px;background:rgba(255,255,255,.08);border-radius:10px;padding:6px 8px}.team-victory-members i{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#fff2;color:#fff;font-style:normal;font-size:10px;font-weight:900}.team-victory-members b{font-size:12px}.team-victory-members em{font-style:normal;font-weight:900;color:#ffe496}
.student-match-card-v2.is-team{border-left-color:#6f2c91}.student-match-card-v2.is-team .student-match-avatar{background:#f0e7f7;color:#6f2c91}

@media(max-width:1000px){.team-builder-shell{grid-template-columns:260px minmax(0,1fr)}.team-topic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.team-pick-grid{grid-template-columns:1fr;min-height:auto}.team-battle-versus,.waiting-team-duel,.team-result-score,.team-victory-grid{grid-template-columns:1fr}.team-battle-vs,.team-result-vs,.team-victory-vs{padding:4px}.waiting-team-duel{width:94vw}.team-battle-versus section:last-child,.team-review-versus section:last-child{text-align:left}.team-battle-versus section:last-child .team-member-chips{justify-content:flex-start}}
@media(max-width:760px){.team-builder-shell{display:block;overflow:auto}.team-builder-side{position:sticky;top:0;z-index:3;padding:12px 16px;gap:10px}.team-builder-side>div:first-child,.team-builder-hint{display:none}.team-builder-steps{grid-template-columns:repeat(4,1fr);gap:5px}.team-builder-steps button{padding:7px;justify-content:center}.team-builder-steps button b{display:none}.team-builder-main{height:auto;min-height:calc(100dvh - 70px)}.team-builder-main>header{height:auto;padding:12px 16px}.team-builder-body{padding:14px}.team-builder-footer{position:sticky;bottom:0}.team-topic-grid{grid-template-columns:1fr}.team-battle-head,.team-battle-foot{align-items:flex-start;flex-direction:column}.team-battle-foot .actions{width:100%}.team-battle-foot .actions .btn{flex:1}.team-review-versus{grid-template-columns:1fr}.team-review-versus>strong{padding:0}}

/* V0.53 - Đồng bộ bộ tạo đề Team vs Team với 1 vs 1 */
.team-exam-config{display:grid;gap:14px;min-width:0}
.team-exam-config>.builder-subtitle:first-child{margin-top:0}
.team-exam-config .builder-card{margin:0}
.team-exam-config .word-full-review{max-height:none}
.team-exam-config .word-import-card{min-height:360px}
.team-exam-config .manual-question-list{max-height:calc(100dvh - 390px);min-height:280px;overflow:auto}
.team-exam-config .matrix-table-wrap,.team-exam-config .quota-table-wrap{max-height:calc(100dvh - 430px);min-height:260px;overflow:auto}
.team-exam-review{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.team-exam-review>div{border:1px solid #e5e7eb;border-radius:14px;background:#fff;padding:14px;display:grid;gap:4px}
.team-exam-review span{font-size:11px;font-weight:900;color:#9b1530;text-transform:uppercase;letter-spacing:.05em}
.team-exam-review b{font-size:16px;color:#2e2931}.team-exam-review small{color:#717782;line-height:1.45}
@media(max-width:900px){.team-exam-review{grid-template-columns:1fr}.team-exam-config .manual-question-list,.team-exam-config .matrix-table-wrap,.team-exam-config .quota-table-wrap{max-height:50vh}}

/* V0.54 - Tối ưu phòng chờ Team vs Team phía học sinh */
.team-waiting-shell{
  width:min(1180px,calc(100vw - 32px));
  max-width:none;
  margin:12px auto 22px;
  overflow:hidden;
}
.team-waiting-shell .waiting-brand{
  padding:18px 24px 12px;
}
.team-waiting-shell .waiting-icon{
  width:52px;
  height:52px;
  border-radius:15px;
  margin-bottom:9px;
}
.team-waiting-shell .waiting-icon .ico{width:27px;height:27px}
.team-waiting-shell .waiting-brand h1{
  margin:5px 0 4px;
  font-size:25px;
  line-height:1.2;
}
.team-waiting-shell .waiting-brand p{font-size:11px}
.waiting-team-duel{
  width:auto;
  margin:12px 18px 10px;
  grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr);
  gap:14px;
  align-items:stretch;
}
.waiting-team-duel>section{
  min-width:0;
  overflow:hidden;
  border-radius:16px;
  padding:15px 16px;
}
.waiting-team-duel h2{
  margin:4px 0 10px;
  font-size:22px;
  line-height:1.15;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.waiting-team-duel .waiting-vs{
  align-self:center;
  justify-self:center;
  width:64px;
  font-size:40px;
  line-height:1;
}
.waiting-team-duel .waiting-vs:before{font-size:72px}
.waiting-team-duel .waiting-vs:after{width:40px;margin-top:7px}
.waiting-team-members{gap:4px}
.waiting-team-members>div{
  grid-template-columns:34px minmax(0,1fr) auto;
  gap:7px;
  min-width:0;
  padding:6px 0;
}
.waiting-team-members .wait-avatar{
  width:34px;
  height:34px;
  border-width:2px;
  font-size:12px;
}
.waiting-team-members b{
  min-width:0;
  font-size:12px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.waiting-team-members .ready-state{
  max-width:116px;
  padding:4px 7px;
  font-size:9px;
  line-height:1.15;
  overflow:hidden;
  text-overflow:ellipsis;
}
.team-waiting-shell .waiting-control{
  padding:10px 22px 18px;
}
.team-waiting-shell .waiting-note{
  margin:9px auto;
  padding:9px 12px;
  font-size:11px;
  line-height:1.35;
}
.team-waiting-shell .ready-toggle{
  min-width:280px;
  padding:10px 16px;
}
.team-waiting-shell .waiting-control>#backStu{margin-top:3px}

@media(max-width:980px){
  .team-waiting-shell{width:calc(100vw - 20px);margin:10px auto 18px}
  .waiting-team-duel{margin:10px 12px;grid-template-columns:minmax(0,1fr) 52px minmax(0,1fr);gap:9px}
  .waiting-team-duel>section{padding:13px 12px}
  .waiting-team-duel h2{font-size:19px}
  .waiting-team-duel .waiting-vs{width:52px;font-size:34px}
  .waiting-team-duel .waiting-vs:before{font-size:62px}
  .waiting-team-members>div{grid-template-columns:30px minmax(0,1fr);gap:7px;padding:6px 0}
  .waiting-team-members .wait-avatar{width:30px;height:30px;font-size:10px}
  .waiting-team-members .ready-state{grid-column:2;justify-self:start;max-width:100%;margin-top:-2px}
}

@media(max-width:760px){
  .team-waiting-shell{width:calc(100vw - 12px);border-radius:14px}
  .team-waiting-shell .waiting-brand{padding:14px 14px 9px}
  .team-waiting-shell .waiting-brand h1{font-size:21px}
  .waiting-team-duel{
    grid-template-columns:1fr;
    margin:8px 10px;
    gap:8px;
  }
  .waiting-team-duel .waiting-vs{
    width:auto;
    font-size:28px;
    padding:1px 0;
  }
  .waiting-team-duel .waiting-vs:before{display:none}
  .waiting-team-duel .waiting-vs:after{width:32px;height:2px;margin-top:4px}
  .waiting-team-duel>section{padding:12px}
  .waiting-team-duel h2{font-size:18px;margin-bottom:8px}
  .waiting-team-members>div{grid-template-columns:30px minmax(0,1fr) auto}
  .waiting-team-members .ready-state{grid-column:auto;justify-self:end;max-width:108px;margin-top:0}
  .team-waiting-shell .waiting-control{padding:8px 12px 14px}
  .team-waiting-shell .ready-toggle{min-width:0;width:100%}
  .team-waiting-shell .waiting-note{font-size:10px}
}


/* V0.55 - Sidebar cuộn riêng + vinh danh Team vs Team đồng bộ đấu đơn */
.sidebar{
  overflow:hidden;
}
.sidebar .nav-group{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  align-content:start;
  padding-right:4px;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.32) transparent;
}
.sidebar .nav-group::-webkit-scrollbar{width:5px}
.sidebar .nav-group::-webkit-scrollbar-track{background:transparent}
.sidebar .nav-group::-webkit-scrollbar-thumb{background:rgba(255,255,255,.28);border-radius:999px}
.sidebar .nav-group::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.42)}
.sidebar-bottom{flex:0 0 auto;margin-top:10px}

.team-victory-stage-v2{min-height:720px}
.team-victory-duel-v2{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr);
  gap:16px;
  align-items:center;
  max-width:1040px;
  margin:24px auto 0;
}
.team-victory-card-v2{
  position:relative;
  min-width:0;
  padding:24px 22px 20px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:22px;
  background:linear-gradient(155deg,rgba(255,255,255,.115),rgba(255,255,255,.05));
  box-shadow:0 16px 40px rgba(0,0,0,.17);
  backdrop-filter:blur(8px);
  text-align:center;
}
.team-victory-card-v2.champion{
  border-color:rgba(255,218,112,.62);
  background:linear-gradient(155deg,rgba(255,215,106,.17),rgba(255,255,255,.07));
  box-shadow:0 0 0 1px rgba(255,208,88,.14),0 18px 58px rgba(232,158,35,.20);
}
.team-victory-team-avatar{
  width:62px;height:62px;margin:0 auto 9px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(145deg,#fff,#e8d7da);color:#7e0a1f;border:3px solid rgba(255,255,255,.82);
  box-shadow:0 9px 25px rgba(0,0,0,.2);font-size:17px;font-weight:1000;
}
.team-victory-team-avatar.alt{background:linear-gradient(145deg,#fff,#dce4ef);color:#274663}
.team-victory-card-v2.champion .team-victory-team-avatar{border-color:#ffd667;box-shadow:0 0 0 5px rgba(255,212,92,.1),0 10px 26px rgba(0,0,0,.2)}
.team-victory-card-v2 h3{margin:4px 0 5px;font-size:21px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.team-victory-team-score{font-size:32px;font-weight:1000;color:#ffd66d}
.team-victory-team-score small{font-size:10px;color:#e1c9cf;margin-left:4px;font-weight:800}
.team-victory-members-v2{display:grid;gap:6px;margin-top:14px}
.team-victory-members-v2>div{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 9px;border:1px solid rgba(255,255,255,.075);border-radius:10px;background:rgba(12,2,6,.18);text-align:left}
.team-victory-members-v2 i,.team-victory-members-v2 .team-victory-member-avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.12);font-style:normal;font-size:10px;font-weight:950;color:#fff;flex:0 0 30px;overflow:hidden}
.team-victory-members-v2 .team-victory-member-avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
.team-victory-members-v2 b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:#fff}
.team-victory-members-v2 em{font-style:normal;font-size:11px;font-weight:950;color:#ffe496}
.team-victory-vs-v2{text-align:center;font-size:30px;font-weight:1000;color:#efbec7;text-shadow:0 0 22px rgba(244,190,201,.22)}
.team-victory-modal-card{width:min(1180px,97vw)}
.team-victory-modal-card .team-victory-stage-v2.compact{min-height:650px;border-bottom:0;padding-top:24px}

@media(max-width:1000px){
  .team-victory-duel-v2{grid-template-columns:1fr;max-width:560px}
  .team-victory-vs-v2{padding:1px 0;font-size:24px}
}
@media(max-width:900px){
  .sidebar .nav-group{display:flex;overflow-x:auto;overflow-y:hidden;padding-right:0;padding-bottom:3px}
  .sidebar-bottom{display:none}
}
@media(max-width:820px){
  .team-victory-stage-v2{min-height:auto}
  .team-victory-card-v2{padding:20px 16px 16px}
  .team-victory-card-v2 h3{font-size:18px}
  .team-victory-team-score{font-size:28px}
}

/* V0.58 - Nút xem bài gọn dạng icon trong màn hình vinh danh đội */
.team-victory-member-row{
  display:grid !important;
  grid-template-columns:34px minmax(0,1fr) auto 34px;
  align-items:center;
  gap:10px;
}
.team-victory-member-row b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.team-member-review{
  position:relative;
  width:30px;
  height:30px;
  padding:0;
  border:1px solid rgba(139,0,24,.14);
  background:rgba(255,255,255,.78);
  color:#8b0018;
  border-radius:50%;
  display:inline-grid;
  place-items:center;
  cursor:pointer;
  box-shadow:0 2px 8px rgba(72,8,20,.06);
  transition:transform .15s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease;
  justify-self:end;
}
.team-member-review:hover{
  background:#8b0018;
  color:#fff;
  border-color:#8b0018;
  transform:translateY(-1px);
  box-shadow:0 5px 14px rgba(139,0,24,.18);
}
.team-member-review:focus-visible{outline:3px solid rgba(139,0,24,.18);outline-offset:2px}
.team-member-review svg{width:14px;height:14px;display:block}
.team-member-review::after{
  content:attr(data-tip);
  position:absolute;
  right:0;
  bottom:calc(100% + 7px);
  padding:5px 8px;
  border-radius:7px;
  background:#2f3137;
  color:#fff;
  font-size:10px;
  font-weight:800;
  white-space:nowrap;
  opacity:0;
  pointer-events:none;
  transform:translateY(3px);
  transition:.14s ease;
  z-index:4;
}
.team-member-review:hover::after,.team-member-review:focus-visible::after{opacity:1;transform:translateY(0)}
@media(max-width:900px){
  .team-victory-member-row{grid-template-columns:30px minmax(0,1fr) auto 32px;gap:8px}
  .team-member-review{width:28px;height:28px}
}

/* V0.57 - Lớp overlay: Xem bài luôn nằm trên bảng vinh danh */
.review-modal-backdrop{z-index:1600!important}
.victory-modal-backdrop,.team-victory-modal-backdrop{z-index:1400}

/* V0.60 - Thách đấu 1 vs 1 */
.match-origin.challenge{background:#fff0f3;color:#9c0d29;border:1px solid #efc2cc}.student-match-card-v2.is-challenge{border-color:#edd0d6}
.challenge-create{padding:18px}.challenge-create-head{display:flex;gap:12px;align-items:center;margin-bottom:16px}.challenge-create-head h3{margin:0;color:#7f091c}.challenge-create-head p{margin:3px 0 0;color:#6d6670;font-size:13px}.challenge-create-grid{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(420px,1.25fr);gap:18px}.challenge-create select{width:100%;min-height:190px;margin-top:8px;border:1px solid #ddd0d4;border-radius:12px;padding:6px;background:#fff}.field-label{font-size:12px;font-weight:800;color:#5c5157;display:block;margin-bottom:8px}.challenge-template-grid{display:grid;gap:9px}.challenge-template{display:block;border:1px solid #e2d6d9;border-radius:13px;padding:12px;cursor:pointer;background:#fff;transition:.15s}.challenge-template input{position:absolute;opacity:0}.challenge-template.selected{border-color:#9b1730;box-shadow:0 0 0 2px #9b173018;background:#fff7f8}.challenge-template b{display:block;color:#651020}.challenge-template span{display:block;font-weight:800;margin-top:3px}.challenge-template small{display:block;color:#777;margin-top:4px}.challenge-send{margin-top:12px;width:100%}.challenge-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.challenge-section-title{display:flex;justify-content:space-between;align-items:center;margin:10px 2px}.challenge-section-title h3{margin:0;color:#681123}.challenge-section-title span{min-width:28px;height:28px;border-radius:14px;background:#f1e3e7;color:#8d1530;display:grid;place-items:center;font-weight:900}.challenge-list{display:grid;gap:10px}.challenge-list.compact{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.challenge-card{background:#fff;border:1px solid #e7dadd;border-radius:14px;padding:13px;box-shadow:0 6px 18px #6d1d2a0b}.challenge-card-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.challenge-status{font-size:10px;font-weight:900;border-radius:999px;padding:5px 8px;text-transform:uppercase}.challenge-status.pending{background:#fff3d6;color:#8a5a00}.challenge-status.accepted{background:#e8f7ef;color:#16794a}.challenge-status.declined,.challenge-status.cancelled,.challenge-status.expired{background:#f1eef0;color:#6f6469}.challenge-expire{font-size:11px;color:#8c7d83}.challenge-card h4{margin:10px 0 3px;color:#4f1823}.challenge-template-name{font-size:13px;font-weight:900;color:#8e1730}.challenge-meta{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0;color:#6d6268;font-size:11px}.challenge-meta span{display:flex;gap:5px;align-items:center;background:#f8f4f5;padding:5px 7px;border-radius:8px}.challenge-meta svg{width:13px;height:13px}.challenge-actions{display:flex;gap:7px;justify-content:flex-end;flex-wrap:wrap}.challenge-empty{padding:22px;text-align:center;color:#8a7f84;border:1px dashed #dfd2d6;border-radius:12px;background:#faf8f9}.challenge-history{margin-top:18px}.challenge-disabled{border-left:4px solid #a10f2c;color:#74142a}.challenge-admin-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.challenge-admin-summary>div{background:#fff;border:1px solid #eadde0;border-radius:13px;padding:14px}.challenge-admin-summary b{display:block;font-size:24px;color:#8e1730}.challenge-admin-summary span{font-size:11px;color:#7e7176}.challenge-settings-card{margin-top:16px}.challenge-settings-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.challenge-settings-head h3{margin:0;color:#7f091c}.challenge-settings-grid{display:grid;grid-template-columns:180px 180px 1fr;gap:12px;align-items:end;margin:14px 0}.challenge-elo-box{display:flex;gap:8px;align-items:center;padding:12px;border:1px solid #eadde0;border-radius:10px;font-size:12px;font-weight:800}.challenge-template-settings{border-top:1px solid #eee2e5;padding-top:12px;margin-top:8px}.challenge-template-setting{display:grid;grid-template-columns:1.1fr 85px 85px 85px 1.5fr;gap:8px;margin:8px 0}.challenge-template-setting input{min-width:0;border:1px solid #dfd3d6;border-radius:9px;padding:8px}.challenge-settings-card>.btn{margin-top:10px}
@media(max-width:900px){.challenge-create-grid,.challenge-columns{grid-template-columns:1fr}.challenge-admin-summary{grid-template-columns:1fr 1fr}.challenge-settings-grid{grid-template-columns:1fr}.challenge-template-setting{grid-template-columns:1fr 70px 70px 70px}.challenge-template-setting .ctsDiff{grid-column:1/-1}}


/* V0.61 - Thách đấu tự động bắt đầu khi đủ 2/2 Sẵn sàng */
.challenge-auto-note{border-color:rgba(139,28,43,.24);background:linear-gradient(135deg,#fff7f8,#fff);color:#651827}
.challenge-auto-note::before{content:"⚡";margin-right:7px}


/* V0.62 - Lời thách đấu xuất hiện ngay khi học sinh vào hệ thống */
.navbtn{position:relative}
.nav-challenge-badge{margin-left:auto;min-width:21px;height:21px;padding:0 6px;border-radius:999px;background:#ffdf46;color:#6d0c20;display:inline-grid;place-items:center;font-size:10px;font-style:normal;font-weight:950;box-shadow:0 0 0 2px rgba(255,255,255,.13);animation:challengeBadgePulse 1.8s ease-in-out infinite}
.nav-challenge-badge.hidden{display:none!important}
@keyframes challengeBadgePulse{0%,100%{transform:scale(1)}50%{transform:scale(1.09)}}
.challenge-alert-backdrop{position:fixed;inset:0;z-index:1750;background:rgba(30,8,14,.44);backdrop-filter:blur(4px);display:grid;place-items:center;padding:20px}
.challenge-alert-panel{width:min(760px,calc(100vw - 32px));max-height:min(82dvh,760px);background:#fff;border:1px solid #ead7dc;border-radius:22px;box-shadow:0 30px 90px rgba(42,4,13,.33);display:flex;flex-direction:column;overflow:hidden;animation:challengeAlertIn .2s ease-out}
@keyframes challengeAlertIn{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
.challenge-alert-head{display:grid;grid-template-columns:58px minmax(0,1fr) 38px;gap:14px;align-items:center;padding:18px 20px;background:linear-gradient(135deg,#7f091c,#a51531);color:#fff}
.challenge-alert-icon{width:56px;height:56px;border-radius:18px;display:grid;place-items:center;background:rgba(255,255,255,.14);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.challenge-alert-icon svg{width:29px;height:29px}.challenge-alert-head .eyebrow{color:#ffdbe2}.challenge-alert-head h2{margin:2px 0 3px;font-size:20px}.challenge-alert-head p{margin:0;color:#f8dfe4;font-size:12px;line-height:1.5}
.challenge-alert-close{width:34px;height:34px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:23px;cursor:pointer}.challenge-alert-close:hover{background:rgba(255,255,255,.22)}
.challenge-alert-list{padding:16px 18px;overflow:auto;display:grid;gap:10px;background:#fbf8f9}.challenge-alert-list .challenge-card{box-shadow:none;border-color:#ead3d9}.challenge-alert-list .challenge-card h4{font-size:16px}
.challenge-alert-foot{display:flex;justify-content:flex-end;gap:9px;padding:13px 18px;border-top:1px solid #eee0e4;background:#fff}
.student-incoming-challenges{border:1px solid #e7bcc6;background:linear-gradient(135deg,#fff7f9,#fff);border-radius:16px;padding:12px 14px;margin-bottom:14px;box-shadow:0 8px 22px rgba(126,10,31,.07)}
.student-incoming-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.student-incoming-head>div{display:flex;align-items:center;gap:8px;min-width:0}.student-incoming-head b{color:#7d0b20;font-size:13px}.student-incoming-head span:not(.student-incoming-pulse){color:#74686d;font-size:11px}
.student-incoming-pulse{width:9px;height:9px;border-radius:50%;background:#d91f42;box-shadow:0 0 0 0 rgba(217,31,66,.35);animation:incomingPulse 1.7s infinite;flex:0 0 auto}@keyframes incomingPulse{0%{box-shadow:0 0 0 0 rgba(217,31,66,.34)}70%{box-shadow:0 0 0 8px rgba(217,31,66,0)}100%{box-shadow:0 0 0 0 rgba(217,31,66,0)}}
.student-incoming-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:9px}.student-incoming-list .challenge-card{padding:11px;box-shadow:none;background:#fff}.student-incoming-list .challenge-card h4{margin:7px 0 2px}.student-incoming-list .challenge-meta{margin:7px 0}.student-incoming-list .challenge-actions{margin-top:4px}
.challenge-incoming-spotlight{border:1px solid #e7bcc6;background:linear-gradient(135deg,#fff7f9,#fff);border-radius:16px;padding:14px;margin-bottom:14px}.challenge-incoming-spotlight-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.challenge-incoming-spotlight-head>div{display:grid;grid-template-columns:auto 1fr;column-gap:9px;align-items:center}.challenge-incoming-spotlight-head h3{margin:0;color:#7d0b20}.challenge-incoming-spotlight-head p{grid-column:2;margin:2px 0 0;color:#73666b;font-size:11px}.challenge-incoming-spotlight-head strong{min-width:34px;height:34px;border-radius:17px;background:#8c0b24;color:#fff;display:grid;place-items:center}
.challenge-outgoing-section{margin-top:16px}
@media(max-width:720px){.challenge-alert-backdrop{padding:10px}.challenge-alert-panel{width:100%;max-height:90dvh;border-radius:17px}.challenge-alert-head{grid-template-columns:46px minmax(0,1fr) 34px;padding:14px}.challenge-alert-icon{width:44px;height:44px;border-radius:14px}.challenge-alert-head h2{font-size:17px}.challenge-alert-list{padding:11px}.challenge-alert-foot{padding:10px}.student-incoming-head{align-items:flex-start}.student-incoming-head>div{flex-wrap:wrap}.student-incoming-head span:not(.student-incoming-pulse){width:100%;padding-left:17px}.student-incoming-list{grid-template-columns:1fr}}

/* V0.63 - Thách đấu: danh sách bên ngoài + trình tạo full-screen như Tạo trận */
.challenge-builder-modal .builder-steps:after{content:"CHỌN ĐỐI THỦ  →  CẤU HÌNH  →  GỬI THÁCH ĐẤU"}
.challenge-builder-modal .builder-footer #ccSend{min-width:210px}
.challenge-opponent-picker{padding:16px;display:flex;flex-direction:column;min-height:0}
.challenge-builder-search{height:42px;border:1px solid #dde2e8;border-radius:11px;background:#fff;display:flex;align-items:center;gap:8px;padding:0 12px;margin-bottom:12px}
.challenge-builder-search svg{width:16px;height:16px;color:#89919c}.challenge-builder-search input{border:0;outline:0;min-width:0;flex:1;font:inherit;background:transparent}
.challenge-opponent-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;overflow:auto;max-height:calc(100dvh - 255px);padding:2px}
.challenge-opponent-item{min-width:0;border:1px solid #e2e6eb;border-radius:13px;background:#fff;display:grid;grid-template-columns:40px minmax(0,1fr) 28px;align-items:center;gap:10px;padding:11px 12px;text-align:left;cursor:pointer;transition:.15s}
.challenge-opponent-item:hover{border-color:#d3a1ab;background:#fffafb}.challenge-opponent-item.selected{border-color:#aa2540;background:#fff3f5;box-shadow:0 0 0 2px rgba(153,14,40,.07)}
.challenge-opponent-item>span:nth-child(2){min-width:0;display:flex;flex-direction:column}.challenge-opponent-item b{font-size:12px;color:#303741;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.challenge-opponent-item small{font-size:10px;color:#9299a3;margin-top:2px}.challenge-opponent-item i{font-style:normal;width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:#eceff2;color:transparent;font-size:11px;font-weight:900}.challenge-opponent-item.selected i{background:#8d0a20;color:#fff}
.challenge-config-card{padding:16px}.challenge-template-grid-builder{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:10px}.challenge-template-grid-builder .challenge-template{min-height:112px}
.challenge-count-config{display:grid;grid-template-columns:minmax(220px,320px) minmax(0,1fr);gap:18px;align-items:end;margin-top:4px}.challenge-count-preview{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:2px}.challenge-count-preview span{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 12px;border:1px solid #eadde0;border-radius:10px;background:#fff8f9;color:#7c2435;font-size:11px;font-weight:800}.challenge-count-preview b{font-size:16px;margin-right:4px;color:#8b0b23}
.challenge-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.challenge-review-card{background:#fff;border:1px solid #e1e5ea;border-radius:15px;padding:16px;min-height:108px;box-shadow:0 7px 22px rgba(28,8,14,.035)}.challenge-review-card>span{display:block;color:#9299a3;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}.challenge-review-card>b{display:block;color:#741127;font-size:16px}.challenge-review-card>small{display:block;margin-top:5px;color:#77808b;font-size:10px;line-height:1.45}.challenge-review-person{display:flex;align-items:center;gap:10px}.challenge-review-person>i{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#f4dfe4;color:#861128;font-style:normal;font-weight:900}.challenge-review-person div{display:flex;flex-direction:column;min-width:0}.challenge-review-person b{color:#343b46;font-size:13px}.challenge-review-person small{color:#8c949e;font-size:10px;margin-top:2px}.challenge-final-note{margin-top:14px;padding:13px 15px;border:1px solid #e5d4d8;border-radius:12px;background:#fff8f9;color:#71404a;font-size:11px;line-height:1.55}
.challenge-ready-section{padding:14px;border:1px solid #bddfc9;background:linear-gradient(135deg,#f3fbf6,#fff);border-radius:16px;margin-bottom:15px}.challenge-ready-section .challenge-section-title{margin-top:0}.challenge-card.ready{border-color:#b9dec6;background:#fbfffc}.challenge-status.ready{background:#e5f7eb;color:#177344}
.challenge-list-section{margin-top:4px}.challenge-section-title>div{min-width:0}.challenge-section-title>div h3{margin:0}.challenge-section-title>div small{display:block;color:#91878c;font-size:10px;margin-top:3px;font-weight:500}.challenge-section-title>span{flex:0 0 auto}
@media(max-width:980px){.challenge-template-grid-builder{grid-template-columns:1fr}.challenge-opponent-list{grid-template-columns:1fr}.challenge-count-config{grid-template-columns:1fr}.challenge-review-grid{grid-template-columns:1fr}}
@media(max-width:760px){.challenge-builder-modal .builder-steps{grid-template-columns:repeat(3,minmax(0,1fr))!important}.challenge-opponent-list{max-height:320px}.challenge-count-preview span{min-height:34px;padding:0 9px}}

/* V0.64 - Thách đấu Tự chọn + gửi công khai tới tất cả */
.challenge-audience-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}
.challenge-audience-card{border:1px solid #e2e6eb;background:#fff;border-radius:15px;min-height:92px;padding:14px 15px;display:grid;grid-template-columns:42px minmax(0,1fr) 28px;align-items:center;gap:12px;text-align:left;cursor:pointer;transition:.15s;color:#4c535e}
.challenge-audience-card>.ico{width:25px;height:25px;padding:8px;box-sizing:content-box;border-radius:12px;background:#f5ecef;color:#841127}
.challenge-audience-card div{min-width:0;display:flex;flex-direction:column;gap:4px}.challenge-audience-card b{font-size:13px;color:#343b46}.challenge-audience-card span{font-size:10px;color:#818894;line-height:1.45}.challenge-audience-card i{font-style:normal;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#eef0f3;color:transparent;font-weight:900}
.challenge-audience-card:hover{border-color:#cf98a4;background:#fffafb}.challenge-audience-card.selected{border-color:#9f1834;background:#fff5f7;box-shadow:0 0 0 2px rgba(142,12,38,.06)}.challenge-audience-card.selected i{background:#8c0b24;color:#fff}
.challenge-broadcast-info{border:1px solid #dec0c8;background:linear-gradient(135deg,#fff7f9,#fff);border-radius:16px;padding:18px;display:grid;grid-template-columns:54px minmax(0,1fr);gap:14px;align-items:center}.challenge-broadcast-info.hidden{display:none!important}.challenge-broadcast-icon{width:52px;height:52px;border-radius:16px;background:#8b0c24;color:#fff;display:grid;place-items:center;box-shadow:0 10px 24px rgba(126,10,31,.18)}.challenge-broadcast-icon .ico{width:27px;height:27px}.challenge-broadcast-info b{color:#761126;font-size:14px}.challenge-broadcast-info p{margin:5px 0 0;color:#736971;font-size:11px;line-height:1.55}
.challenge-template.custom-template{border-style:dashed}.challenge-template.custom-template.selected{border-style:solid;background:linear-gradient(135deg,#fff5f7,#fff)}
.challenge-preset-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.challenge-preset-summary.hidden{display:none!important}.challenge-preset-summary>div{border:1px solid #e8dde0;background:#fffafb;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:4px}.challenge-preset-summary span{font-size:9px;font-weight:900;text-transform:uppercase;color:#999097}.challenge-preset-summary b{color:#722037;font-size:13px}.challenge-preset-summary small{color:#8a8187;font-size:10px;line-height:1.4}
.challenge-custom-form{margin-top:14px;border:1px solid #ddb8c1;background:linear-gradient(135deg,#fff7f9,#fff);border-radius:15px;padding:15px}.challenge-custom-form.hidden{display:none!important}.challenge-custom-title{display:flex;justify-content:space-between;gap:12px;align-items:end;margin-bottom:12px}.challenge-custom-title b{color:#7c1026;font-size:13px}.challenge-custom-title span{color:#91868c;font-size:10px}.challenge-custom-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.challenge-custom-total{margin-top:11px;padding:10px 12px;border-radius:10px;background:#8a0d25;color:#fff;font-size:11px;font-weight:700}.challenge-custom-total b{font-size:17px;margin-right:3px}
.challenge-review-broadcast{display:flex;align-items:center;gap:11px}.challenge-review-broadcast>.ico{width:24px;height:24px;padding:9px;box-sizing:content-box;border-radius:12px;background:#f4dfe4;color:#841027}.challenge-review-broadcast>div{display:flex;flex-direction:column;gap:3px}.challenge-review-broadcast b{color:#343b46;font-size:13px}.challenge-review-broadcast small{color:#888f98;font-size:10px}
.challenge-card.broadcast{border-color:#dfbcc5;background:linear-gradient(135deg,#fffafd,#fff)}.challenge-card-top>div{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.challenge-public-badge{display:inline-flex;align-items:center;gap:4px;height:23px;padding:0 8px;border-radius:999px;background:#f3dce2;color:#7f1026;font-size:8px;font-weight:950;letter-spacing:.04em}.challenge-public-badge .ico{width:11px;height:11px}.challenge-first-accept-note{margin:8px 0 2px;padding:8px 10px;border-radius:9px;background:#fff0c9;color:#76520b;font-size:9px;font-weight:800}
@media(max-width:850px){.challenge-audience-grid{grid-template-columns:1fr}.challenge-custom-grid{grid-template-columns:1fr}.challenge-preset-summary{grid-template-columns:1fr}}
@media(min-width:1180px){.challenge-template-grid-builder{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* V0.65 - Người gửi được báo rõ khi lời thách đấu đã có người nhận */
.challenge-accepted-backdrop{position:fixed;inset:0;z-index:1820;background:rgba(24,6,12,.5);backdrop-filter:blur(5px);display:grid;place-items:center;padding:18px}
.challenge-accepted-panel{position:relative;width:min(560px,calc(100vw - 28px));overflow:hidden;border-radius:24px;border:1px solid #ead1d7;background:linear-gradient(180deg,#fff 0%,#fff9fa 100%);box-shadow:0 34px 100px rgba(44,5,14,.38);padding:26px 28px 24px;text-align:center;animation:challengeAcceptedIn .22s ease-out}
@keyframes challengeAcceptedIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.challenge-accepted-glow{position:absolute;width:300px;height:300px;border-radius:50%;left:50%;top:-190px;transform:translateX(-50%);background:radial-gradient(circle,rgba(159,17,48,.20),rgba(159,17,48,0) 70%);pointer-events:none}
.challenge-accepted-close{position:absolute;right:14px;top:14px;width:34px;height:34px;border:0;border-radius:50%;background:#f6ecef;color:#7e1127;font-size:22px;cursor:pointer;z-index:2}.challenge-accepted-close:hover{background:#eed8de}
.challenge-accepted-icon{position:relative;margin:2px auto 10px;width:66px;height:66px;border-radius:22px;display:grid;place-items:center;background:linear-gradient(135deg,#7d091e,#ae1a39);color:#fff;box-shadow:0 15px 34px rgba(133,8,34,.25)}.challenge-accepted-icon .ico{width:34px;height:34px}
.challenge-accepted-panel .eyebrow{color:#9c1530}.challenge-accepted-panel h2{margin:4px 0 16px;color:#5e1121;font-size:25px}.challenge-accepted-panel>p{margin:14px auto 0;max-width:460px;color:#75686e;font-size:12px;line-height:1.6}
.challenge-accepted-opponent{display:flex;align-items:center;justify-content:center;gap:12px;padding:13px 15px;border:1px solid #ead9dd;border-radius:15px;background:#fff;max-width:360px;margin:0 auto}.challenge-accepted-opponent .mini-avatar.big{width:48px;height:48px;font-size:14px}.challenge-accepted-opponent div{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.challenge-accepted-opponent small{font-size:9px;font-weight:900;color:#9a8e94;letter-spacing:.06em}.challenge-accepted-opponent b{font-size:15px;color:#34383f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:245px}
.challenge-accepted-meta{display:flex;justify-content:center;flex-wrap:wrap;gap:7px;margin-top:12px}.challenge-accepted-meta span{display:inline-flex;align-items:center;gap:5px;border-radius:999px;background:#f7eef1;color:#74162a;padding:6px 9px;font-size:10px;font-weight:800}.challenge-accepted-meta .ico{width:13px;height:13px}
.challenge-accepted-actions{display:flex;justify-content:center;gap:9px;margin-top:18px}.challenge-accepted-actions .btn.primary{min-width:190px}.challenge-accepted-more{margin-top:11px;color:#8b7e84;font-size:10px}
@media(max-width:620px){.challenge-accepted-backdrop{padding:10px}.challenge-accepted-panel{padding:22px 16px 18px;border-radius:18px}.challenge-accepted-panel h2{font-size:20px}.challenge-accepted-actions{flex-direction:column-reverse}.challenge-accepted-actions .btn{width:100%}.challenge-accepted-opponent b{max-width:190px}}

/* V0.67 - Realtime Thách đấu phía giáo viên */
.challenge-admin-head{align-items:center}
.challenge-live-indicator{display:flex;align-items:center;gap:7px;min-height:38px;padding:8px 12px;border:1px solid #bfe0ca;border-radius:999px;background:#f3fbf6;color:#176b42;box-shadow:0 5px 18px rgba(27,121,73,.08)}
.challenge-live-indicator i{width:9px;height:9px;border-radius:50%;background:#24b36b;box-shadow:0 0 0 5px rgba(36,179,107,.12);animation:challengeLivePulse 1.2s ease-in-out infinite}
.challenge-live-indicator b{font-size:10px;letter-spacing:.09em}.challenge-live-indicator span{font-size:10px;color:#608071;white-space:nowrap}
@keyframes challengeLivePulse{50%{box-shadow:0 0 0 8px rgba(36,179,107,.02);opacity:.72}}
.challenge-admin-summary.live{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}
.challenge-admin-summary.live>div{padding:12px 14px;min-height:74px;display:flex;flex-direction:column;justify-content:center}
.challenge-admin-summary.live b{font-size:22px;line-height:1}.challenge-admin-summary.live span{margin-top:6px;font-size:10px;font-weight:800}
.challenge-admin-section{margin:0 0 18px;padding:13px;border:1px solid #e9dde0;border-radius:16px;background:#fcfafb}
.challenge-admin-section .challenge-section-title{margin:0 1px 11px}
.challenge-admin-section.attention{border-color:#ecdcae;background:linear-gradient(135deg,#fffdf7,#fff)}
.challenge-admin-section.ready{border-color:#c9dfd1;background:linear-gradient(135deg,#f7fcf9,#fff)}
.challenge-admin-section.running{border-color:#efc1cb;background:linear-gradient(135deg,#fff7f8,#fff)}
.challenge-admin-section.history{background:#faf9f9}
.challenge-card.admin-live{position:relative;overflow:hidden}
.challenge-card.admin-live::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#c7bcc0}
.challenge-card.admin-live.pending::before{background:#d39a20}.challenge-card.admin-live.waiting::before{background:#2b9a62}.challenge-card.admin-live.running::before{background:#b20e2d}.challenge-card.admin-live.finished::before{background:#6a5560}
.challenge-status.waiting{background:#e6f7ed!important;color:#167448!important}.challenge-status.running{background:#fde6eb!important;color:#a20c29!important}.challenge-status.finished{background:#eee9eb!important;color:#5f5057!important}
.challenge-live-meta{display:inline-flex;align-items:center;gap:4px;height:23px;padding:0 8px;border-radius:999px;font-size:9px;font-weight:900;background:#f3f0f1;color:#5e5357}
.challenge-live-meta .ico{width:11px;height:11px}.challenge-live-meta.waiting{background:#eaf8ef;color:#177446}.challenge-live-meta.running{background:#fce8ec;color:#9a1230}.challenge-live-meta.finished{background:#eeebec;color:#5c4f54}
@media(max-width:1100px){.challenge-admin-summary.live{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.challenge-admin-head{align-items:flex-start}.challenge-live-indicator span{display:none}.challenge-admin-summary.live{grid-template-columns:1fr 1fr}.challenge-admin-section{padding:10px}}


/* V0.68 - True realtime SSE cho Thách đấu giáo viên */
.challenge-live-indicator.offline{border-color:#ead7b3;background:#fffaf0;color:#8b6417}
.challenge-live-indicator.offline i{background:#d89a2b;box-shadow:0 0 0 5px rgba(216,154,43,.12);animation:none}
.challenge-live-indicator.offline span{color:#8a7856}


/* V0.72 - Tách độc lập Trận đấu / Thách đấu / Đấu đội / Giải đấu */
.module-phase-tabs{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 14px;
}
.module-phase-tabs button{
  min-height:54px;border:1px solid #e5dadd;background:#fff;border-radius:14px;padding:9px 14px;
  display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;
  color:#675e62;font-weight:850;box-shadow:0 5px 16px rgba(91,9,31,.035);transition:.16s;
}
.module-phase-tabs button span{font-size:12px}
.module-phase-tabs button b{
  min-width:30px;height:30px;padding:0 8px;border-radius:999px;display:grid;place-items:center;
  background:#f4eef0;color:#8d1530;font-size:13px;
}
.module-phase-tabs button:hover{border-color:#cb9ba5;transform:translateY(-1px)}
.module-phase-tabs button.active{border-color:#9c1730;background:#fff5f7;color:#7d1025;box-shadow:0 0 0 2px rgba(156,23,48,.08)}
.module-phase-tabs button.active b{background:#8d0a20;color:#fff}
.module-phase-tabs button[data-module-phase="running"].active{border-color:#b67a1d;background:#fffaf0;color:#805300}
.module-phase-tabs button[data-module-phase="running"].active b{background:#a96c0c}
.module-phase-tabs button[data-module-phase="finished"].active{border-color:#5f9f78;background:#f4fbf7;color:#23623e}
.module-phase-tabs button[data-module-phase="finished"].active b{background:#2e7b4c}
.module-phase-note{display:flex;align-items:center;gap:10px;margin:-2px 0 12px;padding:10px 12px;border:1px solid #ece3e5;border-radius:12px;background:#fcfafb;color:#685f63}
.module-phase-note>span{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;background:#f3e7ea;color:#8d0a20}
.module-phase-note b{display:block;font-size:11px;color:#5a242e}.module-phase-note small{display:block;font-size:10px;color:#8b8185;margin-top:2px}
.module-phase-empty{margin-top:12px}
.module-phase-table{margin-top:0}
.challenge-state-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}
.challenge-state-list.student{margin-top:2px}
.challenge-admin-summary.live.three-state{grid-template-columns:repeat(3,minmax(0,1fr))}
.challenge-admin-summary.live.three-state small{font-size:9px;color:#94888c;margin-top:4px}
.tour-status.waiting{background:#f1f3f5;color:#66707a}
.tour-status.running{background:#fff1d8;color:#956000}
.tour-status.finished{background:#edf8f1;color:#227a48}
.student-independent-list{display:grid;gap:14px}
.ready-count.submitted{background:#fff3da;color:#8a5b00}
@media(max-width:760px){
  .module-phase-tabs{grid-template-columns:1fr}
  .module-phase-tabs button{min-height:46px}
  .challenge-state-list{grid-template-columns:1fr}
  .challenge-admin-summary.live.three-state{grid-template-columns:1fr}
}

/* V0.74 - realtime indicators for independent modules */
.arena-page-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.arena-live-indicator{white-space:nowrap}
@media(max-width:820px){.arena-page-actions{width:100%;justify-content:space-between}.arena-live-indicator span{display:none}}

/* V0.75 - compact module headers: realtime remains active in background */
.page-head.compact-module-head{align-items:center;margin-bottom:12px;min-height:40px}
.page-head.compact-module-head h1{margin:0;font-size:25px;line-height:1.15}
.compact-main-action{min-height:38px;padding:8px 12px;border-radius:10px;white-space:nowrap}
@media(max-width:640px){
  .page-head.compact-module-head{gap:10px;align-items:center}
  .page-head.compact-module-head h1{font-size:22px}
  .compact-main-action{padding:8px 10px;font-size:12px}
}
/* Compact three-state switch: keep status visible without consuming a card-height row */
.module-phase-tabs{gap:7px;margin-bottom:10px}
.module-phase-tabs button{min-height:42px;padding:6px 10px;border-radius:11px;box-shadow:none}
.module-phase-tabs button span{font-size:11px}
.module-phase-tabs button b{min-width:25px;height:25px;padding:0 6px;font-size:11px}
@media(max-width:760px){
  .module-phase-tabs{gap:6px}
  .module-phase-tabs button{min-height:40px;padding:6px 9px}
}

/* V0.76 - Teacher live work monitor */
.watch-player-card{margin:10px 0;padding:14px 15px}.watch-player-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.watch-progress-row{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.watch-submitted{color:#118044}.live-work-backdrop{z-index:1750!important;padding:12px;background:rgba(28,6,12,.62);backdrop-filter:blur(5px)}
.live-work-card{width:min(1180px,96vw);height:min(92vh,900px);max-height:92vh;padding:0;overflow:hidden;border-radius:20px;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;background:#f6f7f9}
.live-work-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 22px 14px;background:linear-gradient(135deg,#7f071b,#a40c28);color:#fff}.live-work-head .eyebrow{color:#fff;opacity:.76}.live-work-head h2{margin:3px 0 2px;color:#fff;font-size:23px}.live-work-head p{margin:0;opacity:.82;font-size:11px}.live-work-person{display:flex;align-items:center;gap:12px}.live-work-avatar{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#8c0c22;font-weight:950;border:3px solid rgba(255,255,255,.22)}
.live-work-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:0;background:#fff;border-bottom:1px solid #e3e6eb}.live-work-summary>div{padding:11px 16px;border-right:1px solid #eceef2}.live-work-summary>div:last-child{border-right:0}.live-work-summary span,.live-work-summary small{display:block;color:#7c8490;font-size:9.5px}.live-work-summary b{display:block;margin:2px 0;font-size:14px;color:#353d48}
.live-work-main{min-height:0;display:grid;grid-template-columns:210px minmax(0,1fr);gap:0}.live-work-nav{background:#fff;border-right:1px solid #e3e6eb;padding:14px;overflow:auto}.live-work-nav-title{font-size:9px;font-weight:950;color:#8d1428;letter-spacing:.1em;margin-bottom:9px}.live-work-nav-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.live-work-num{height:34px;border:1px solid #dfe3e8;background:#fff;border-radius:8px;font-size:11px;font-weight:900;color:#606874;cursor:pointer}.live-work-num.done{background:#edf8f1;border-color:#b7dec5;color:#177945}.live-work-num.active{box-shadow:0 0 0 2px #9d1027 inset;border-color:#9d1027;color:#8f0b22}.live-work-legend{display:grid;gap:6px;margin-top:14px;font-size:9.5px;color:#7d8590}.live-work-legend span{display:flex;align-items:center;gap:7px}.live-work-legend i{width:12px;height:12px;border-radius:4px;border:1px solid #dfe3e8;background:#fff}.live-work-legend i.done{background:#edf8f1;border-color:#b7dec5}
.live-work-paper{min-width:0;overflow:auto;padding:16px 18px}.live-work-question{background:#fff;border:1px solid #e2e5ea;border-radius:14px;padding:17px 18px;box-shadow:0 6px 18px rgba(39,43,52,.04)}.live-work-question-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.live-work-question-head>div{display:flex;align-items:center;gap:7px}.live-work-answer-state{font-size:9px;font-weight:900;padding:5px 8px;border-radius:999px;background:#f1f3f6;color:#737b86}.live-work-answer-state.done{background:#e7f6ec;color:#187846}.live-work-options{display:grid;gap:8px}.live-work-option{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:flex-start;gap:9px;border:1px solid #e0e4e9;border-radius:10px;padding:10px 11px;background:#fff}.live-work-option.selected{border-color:#a9132d;background:#fff3f5;box-shadow:inset 3px 0 #9b0e26}.live-work-key{font-weight:950;color:#761326}.live-work-option-body{min-width:0}.live-work-picked{font-size:8.5px;font-weight:950;color:#fff;background:#950d25;border-radius:999px;padding:4px 7px;white-space:nowrap}.live-work-tf-list{display:grid;gap:8px}.live-work-tf-row{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:10px;align-items:center;border:1px solid #e0e4e9;border-radius:10px;padding:10px 11px;background:#fff}.live-work-tf-content{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px;align-items:flex-start}.live-work-tf-choice{text-align:center;border-radius:8px;padding:7px 8px;background:#f2f3f5;color:#7b828c;font-size:10px;font-weight:900}.live-work-tf-choice.true{background:#e8f6ed;color:#197b49}.live-work-tf-choice.false{background:#fff0f2;color:#a10f29}.live-work-security{display:flex;align-items:center;gap:7px;margin-top:14px;padding:9px 10px;border-radius:9px;background:#fff8e8;border:1px solid #efddb0;color:#79601f;font-size:9.5px;font-weight:750}.live-work-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;border-top:1px solid #e3e6eb;background:#fff;color:#6d7580;font-size:9.5px}.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#22a65c;box-shadow:0 0 0 4px rgba(34,166,92,.12);margin-right:6px}
@media(max-width:760px){.watch-player-top{align-items:flex-start;flex-direction:column}.live-work-card{width:98vw;height:95vh;max-height:95vh}.live-work-summary{grid-template-columns:1fr}.live-work-summary>div{border-right:0;border-bottom:1px solid #eceef2}.live-work-main{grid-template-columns:1fr}.live-work-nav{border-right:0;border-bottom:1px solid #e3e6eb;max-height:145px}.live-work-nav-grid{grid-template-columns:repeat(8,1fr)}.live-work-paper{padding:12px}.live-work-tf-row{grid-template-columns:1fr}.live-work-head h2{font-size:19px}}

/* V0.77 - Full-screen dual live monitor */
.duel-monitor{position:fixed;inset:0;z-index:3000;background:#eef1f5;color:#212833;font-family:inherit}.duel-monitor:fullscreen{width:100vw;height:100vh}.duel-monitor-shell{height:100%;display:grid;grid-template-rows:58px minmax(0,1fr);overflow:hidden}.duel-monitor-top{display:grid;grid-template-columns:minmax(260px,1fr) auto minmax(360px,1fr);align-items:center;gap:18px;padding:7px 14px 7px 18px;background:#fff;border-bottom:1px solid #dfe3e9;box-shadow:0 2px 10px rgba(28,35,45,.06);z-index:6}.duel-monitor-top h1{margin:1px 0 0;font-size:16px;line-height:1.1;color:#751127;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.duel-kicker{display:block;font-size:8px;font-weight:950;letter-spacing:.12em;color:#9a1830}.duel-top-center{display:flex;align-items:center;gap:7px;padding:6px 11px;border-radius:999px;background:#f7f9fa;border:1px solid #e1e5e9;font-size:9px}.duel-top-center b{font-size:9px;color:#18814c;letter-spacing:.08em}.duel-top-center em{font-style:normal;color:#6d7580}.duel-top-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px}.duel-mode-switch{display:flex;padding:3px;border:1px solid #dfe3e8;background:#f4f6f8;border-radius:10px}.duel-mode-switch button{height:31px;padding:0 11px;display:flex;align-items:center;gap:6px;border:0;background:transparent;border-radius:7px;color:#65707b;font-size:9px;font-weight:900;cursor:pointer}.duel-mode-switch button svg{width:13px;height:13px}.duel-mode-switch button.active{background:#8f0d25;color:#fff;box-shadow:0 2px 7px rgba(119,12,34,.2)}.duel-close-btn{width:34px;height:34px;border:1px solid #e1e4e8;border-radius:10px;background:#fff;color:#751127;font-size:22px;line-height:1;cursor:pointer}.duel-close-btn:hover{background:#fff0f3;border-color:#d9a9b2}
.duel-stage{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);gap:0;overflow:hidden}.duel-pane-host{min-width:0;min-height:0;overflow:hidden}.duel-side{height:100%;min-width:0;display:grid;grid-template-rows:auto auto minmax(0,1fr);background:#f7f8fa}.duel-side.left{border-right:1px solid #e0e3e8}.duel-player-head{min-height:73px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 13px;background:#fff;border-bottom:1px solid #e3e6eb}.duel-player-id{min-width:0;display:flex;align-items:center;gap:10px}.duel-avatar{flex:0 0 auto;width:39px;height:39px;border-radius:50%;display:grid;place-items:center;background:#8e0b24;color:#fff;font-size:11px;font-weight:950;box-shadow:0 0 0 4px #f8e8ec}.duel-avatar.alt{background:#263d69;box-shadow:0 0 0 4px #e9edf6}.duel-player-id>div{min-width:0}.duel-player-id small{display:block;font-size:7px;font-weight:950;letter-spacing:.1em;color:#9a1730}.duel-player-id h2{margin:1px 0 2px;font-size:15px;color:#2e333b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.duel-player-id span{display:block;font-size:8.5px;color:#737c87;white-space:nowrap}.duel-player-status{text-align:right;flex:0 0 auto}.duel-player-status b{display:block;color:#8e0c24;font-size:16px;font-variant-numeric:tabular-nums}.duel-player-status span{display:block;margin-top:2px;font-size:7.5px;color:#8a929d}.duel-nav-wrap{position:relative;z-index:3;background:#fff;padding:7px 10px 6px;border-bottom:1px solid #e4e7eb;box-shadow:0 3px 9px rgba(35,40,48,.035)}.duel-nav-grid{display:flex;align-items:center;gap:5px;overflow-x:auto;padding:1px 1px 4px;scrollbar-width:thin}.duel-qnum{position:relative;flex:0 0 27px;width:27px;height:27px;border:1px solid #dce1e6;background:#fff;border-radius:7px;color:#646d77;font-size:9px;font-weight:950;cursor:pointer}.duel-qnum.done{background:#e9f6ee;border-color:#b9ddc7;color:#177645}.duel-qnum.active{border-color:#940e26;box-shadow:0 0 0 2px #940e26 inset;color:#890b21;background:#fff}.duel-qnum.latest{border-color:#e2a329}.duel-qnum.latest i{position:absolute;right:-2px;top:-2px;width:7px;height:7px;border-radius:50%;background:#f0a61b;border:1px solid #fff;box-shadow:0 0 0 2px rgba(240,166,27,.12)}.duel-nav-legend{display:flex;align-items:center;gap:12px;margin-top:1px;color:#858d97;font-size:7.5px}.duel-nav-legend span{display:flex;align-items:center;gap:4px}.duel-nav-legend i{width:8px;height:8px;border-radius:3px;border:1px solid #d8dde2;background:#fff}.duel-nav-legend i.done{background:#e9f6ee;border-color:#b9ddc7}.duel-nav-legend i.latest{border-color:#e2a329;background:#fff8e8}.duel-paper-scroll{min-height:0;overflow:auto;padding:10px 11px 22px;scroll-behavior:smooth}.duel-all-questions{display:grid;gap:10px}.duel-question-anchor{scroll-margin-top:10px}.duel-one-question{min-height:100%}.duel-side .live-work-question.compact{border-radius:11px;padding:12px 13px;box-shadow:0 3px 11px rgba(35,40,48,.035)}.duel-side .live-work-question.compact .live-work-question-head{margin-bottom:9px}.duel-side .live-work-question.compact .review-stem{font-size:11px;line-height:1.45}.duel-side .live-work-question.compact .live-work-options,.duel-side .live-work-question.compact .live-work-tf-list{gap:6px}.duel-side .live-work-question.compact .live-work-option{grid-template-columns:23px minmax(0,1fr) auto;padding:7px 8px;gap:7px;border-radius:8px;font-size:10px}.duel-side .live-work-question.compact .live-work-tf-row{grid-template-columns:minmax(0,1fr) 68px;padding:7px 8px;gap:7px;border-radius:8px;font-size:10px}.duel-side .live-work-question.compact .live-work-tf-choice{padding:5px 6px;font-size:8.5px}.duel-side .live-work-question.compact .live-work-picked{font-size:7.5px;padding:3px 6px}.duel-vs{position:relative;z-index:4;display:grid;place-items:center;background:#f0f2f5;border-left:1px solid #e1e4e8;border-right:1px solid #e1e4e8}.duel-vs span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#8f0d25;color:#fff;font-size:9px;font-weight:950;border:3px solid #fff;box-shadow:0 3px 12px rgba(102,11,31,.22)}.duel-monitor-loading{height:100%;display:grid;place-content:center;justify-items:center;gap:10px;background:#f5f6f8;color:#6f7782}.duel-monitor-loading b{font-size:14px;color:#7f1025}.duel-monitor-loading span{font-size:9px}.duel-loader{width:32px;height:32px;border-radius:50%;border:3px solid #ead7dc;border-top-color:#921027;animation:duelspin .75s linear infinite}@keyframes duelspin{to{transform:rotate(360deg)}}.duel-empty{padding:30px;text-align:center;color:#7e8792;background:#fff;border:1px dashed #d9dde2;border-radius:12px}
@media(max-width:1050px){.duel-monitor-top{grid-template-columns:minmax(190px,1fr) auto}.duel-top-center{display:none}.duel-player-id span{white-space:normal}.duel-player-status span{display:none}.duel-stage{grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr)}.duel-vs span{width:26px;height:26px}}

/* V0.78 - Challenge duel monitor */
.challenge-duel-monitor .duel-kicker{display:inline-flex;align-items:center;gap:7px}.challenge-duel-monitor .duel-kicker .ico{width:17px;height:17px}.challenge-card .challenge-actions .challengeDuel{white-space:nowrap}.challenge-card .challenge-actions .challengeDuel+.challengeEnter{background:#fff;color:#7d1022;border-color:#d9b7bd}


/* V0.79 - follow the question currently viewed by each player */
.duel-follow-switch{display:flex;padding:3px;border:1px solid #dfe3e8;background:#f4f6f8;border-radius:10px}
.duel-follow-switch button{height:31px;padding:0 10px;display:flex;align-items:center;gap:5px;border:0;background:transparent;border-radius:7px;color:#65707b;font-size:8.5px;font-weight:900;cursor:pointer;white-space:nowrap}
.duel-follow-switch button svg{width:12px;height:12px}
.duel-follow-switch button.active{background:#243b67;color:#fff;box-shadow:0 2px 7px rgba(36,59,103,.18)}
.duel-qnum.focus{border-color:#243b67;box-shadow:0 0 0 2px rgba(36,59,103,.22);color:#243b67}
.duel-qnum.focus.done{background:#e9f6ee;color:#174b39}
.duel-qnum .focus-dot{position:absolute;left:-3px;top:-3px;width:8px;height:8px;border-radius:50%;background:#243b67;border:1.5px solid #fff;box-shadow:0 0 0 2px rgba(36,59,103,.12)}
.duel-qnum .latest-dot{position:absolute;right:-2px;top:-2px;width:7px;height:7px;border-radius:50%;background:#f0a61b;border:1px solid #fff;box-shadow:0 0 0 2px rgba(240,166,27,.12)}
.duel-nav-legend i.focus{border-color:#243b67;background:#edf1f8;box-shadow:0 0 0 1px rgba(36,59,103,.08)}
.duel-current-focus{font-weight:850;color:#243b67!important}
@media(max-width:1250px){.duel-monitor-top{grid-template-columns:minmax(180px,1fr) auto}.duel-top-center{display:none}.duel-follow-switch button{padding:0 8px}.duel-mode-switch button{padding:0 8px}}

/* V0.80 - submitted player and final-result states in full-screen duel monitor */
.duel-side.is-submitted{grid-template-rows:auto minmax(0,1fr);background:linear-gradient(180deg,#f8fafb 0%,#eef3f2 100%)}
.duel-side.is-submitted .duel-player-head{border-bottom-color:#dce6e1}
.duel-side.is-submitted .duel-player-status b{font-size:11px;letter-spacing:.08em;color:#187447;background:#eaf6ef;border:1px solid #cce7d7;border-radius:999px;padding:6px 9px}
.duel-submitted-state{min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px 32px;background:radial-gradient(circle at 50% 35%,#fff 0,#f7faf8 45%,#eef3f1 100%)}
.duel-submitted-state.right{background:radial-gradient(circle at 50% 35%,#fff 0,#f7f9fc 45%,#eef1f6 100%)}
.duel-submitted-check{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:#e8f6ee;color:#18804c;border:1px solid #bee1cc;box-shadow:0 10px 28px rgba(24,128,76,.12);margin-bottom:14px}
.duel-submitted-check svg{width:28px;height:28px;stroke-width:2.6}
.duel-submitted-kicker{font-size:8px;font-weight:950;letter-spacing:.14em;color:#6c7a72}
.duel-submitted-state h3{margin:5px 0 7px;font-size:23px;letter-spacing:.03em;color:#167a49}
.duel-submitted-state p{max-width:440px;margin:0;color:#707a75;font-size:10px;line-height:1.55}
.duel-submitted-stats{width:min(100%,470px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:22px 0 14px}
.duel-submitted-stats>div{padding:12px 8px;background:#fff;border:1px solid #dfe7e2;border-radius:11px;box-shadow:0 3px 12px rgba(35,53,45,.035)}
.duel-submitted-stats span,.duel-submitted-stats small{display:block;font-size:7.5px;color:#8b938f}
.duel-submitted-stats b{display:block;margin:4px 0 2px;font-size:14px;color:#303b35;font-variant-numeric:tabular-nums}
.duel-submitted-wait{display:flex;align-items:center;gap:7px;margin-top:5px;padding:8px 12px;border-radius:999px;background:#fff;border:1px solid #dfe6e2;color:#6e7973;font-size:8px;font-weight:850}
.duel-submitted-wait svg{width:13px;height:13px;color:#8d6c19}
.duel-final-shell{height:100%;display:grid;grid-template-rows:64px minmax(0,1fr);background:#eef1f4;overflow:hidden}
.duel-final-top{grid-template-columns:minmax(260px,1fr) auto minmax(120px,1fr)}
.duel-final-status{text-align:center;min-width:260px}
.duel-final-status span{display:block;font-size:7.5px;font-weight:900;letter-spacing:.12em;color:#8c9299}
.duel-final-status b{display:block;margin-top:3px;font-size:14px;color:#8b0d24;white-space:nowrap}
.duel-final-stage{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 180px minmax(0,1fr);align-items:center;gap:24px;padding:34px clamp(26px,5vw,80px);overflow:auto}
.duel-result-player{min-width:0;min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#fff;border:1px solid #dfe3e8;border-radius:20px;padding:28px;box-shadow:0 10px 30px rgba(34,42,54,.06)}
.duel-result-player.winner{border-color:#e2c276;box-shadow:0 12px 38px rgba(175,127,15,.13);background:linear-gradient(180deg,#fffdf7 0,#fff 62%)}
.duel-result-avatar{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:#8e0c25;color:#fff;font-size:18px;font-weight:950;box-shadow:0 0 0 6px #f7e8ec}
.duel-result-avatar.alt{background:#273e6b;box-shadow:0 0 0 6px #e9edf5}
.duel-result-player small{margin-top:14px;font-size:7.5px;font-weight:950;letter-spacing:.12em;color:#9097a0}
.duel-result-player h2{margin:5px 0 10px;font-size:19px;color:#2c323a}
.duel-result-player>b{font-size:31px;line-height:1;color:#8e0c25;font-variant-numeric:tabular-nums}
.duel-result-player>span{margin:8px 0 18px;font-size:9px;color:#7a838d}
.duel-result-player .duelReviewFinal{margin-top:3px}
.duel-final-vs{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.duel-final-vs>span{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:#8f0d25;color:#fff;border:6px solid #fff;box-shadow:0 7px 24px rgba(111,12,33,.18);font-size:15px;font-weight:950}
.duel-final-vs>b{margin-top:15px;font-size:24px;color:#323842;font-variant-numeric:tabular-nums;white-space:nowrap}
.duel-final-vs>small{margin-top:5px;color:#858d96;font-size:8px}
@media(max-width:1000px){.duel-submitted-stats{grid-template-columns:1fr}.duel-final-stage{grid-template-columns:1fr;gap:14px;padding:20px}.duel-final-vs{order:2}.duel-result-player{min-height:250px}.duel-final-stage .duel-result-player:last-child{order:3}}

/* V0.81 - Team battle live monitor */
.team-live-monitor{position:fixed;inset:0;z-index:2800;background:#eef1f5;color:#202731;font-family:inherit}
.team-live-monitor:fullscreen{width:100vw;height:100vh}
.team-live-loading{height:100%;display:grid;place-content:center;justify-items:center;gap:10px;background:#f4f6f8;color:#6f7782}.team-live-loading b{font-size:15px;color:#7f1025}.team-live-loading span{font-size:9px}
.team-live-shell{height:100%;display:grid;grid-template-rows:66px minmax(0,1fr) 48px;overflow:hidden}
.team-live-top{display:grid;grid-template-columns:minmax(260px,1fr) auto minmax(360px,1fr);align-items:center;gap:18px;padding:8px 14px 8px 18px;background:#fff;border-bottom:1px solid #dfe3e8;box-shadow:0 2px 10px rgba(30,35,42,.06);z-index:3}.team-live-top h1{margin:2px 0 0;font-size:17px;color:#751127;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-live-top .duel-kicker{display:flex;align-items:center;gap:6px}.team-live-top .duel-kicker svg{width:14px;height:14px}
.team-live-clock{text-align:center;padding:5px 16px;border-radius:12px;background:#f7f9fa;border:1px solid #e1e5e9;min-width:150px}.team-live-clock span,.team-live-clock small{display:block;font-size:7.5px;color:#818a95}.team-live-clock b{display:block;margin:1px 0;font-size:18px;color:#8b0d24;font-variant-numeric:tabular-nums}.team-live-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.team-live-actions .btn{height:34px;font-size:9px}
.team-live-stage{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 70px minmax(0,1fr);gap:0;padding:16px;background:linear-gradient(180deg,#f3f5f7,#eceff3);overflow:hidden}
.team-live-team{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);background:#fff;border:1px solid #dfe3e8;border-radius:16px;overflow:hidden;box-shadow:0 10px 28px rgba(37,43,51,.055)}.team-live-team.a{border-top:3px solid #8f0d25}.team-live-team.b{border-top:3px solid #2f4f7b}
.team-live-team-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:#fff;border-bottom:1px solid #e7eaee}.team-live-team-head small{display:block;font-size:8px;font-weight:950;letter-spacing:.12em;color:#8d96a0}.team-live-team-head h2{margin:2px 0 0;font-size:20px;color:#7e1024}.team-live-team.b .team-live-team-head h2{color:#294a75}.team-live-team-head>div:last-child{text-align:right}.team-live-team-head>div:last-child b{display:block;font-size:18px;color:#29313b}.team-live-team-head>div:last-child span{display:block;font-size:7.5px;color:#858e99}
.team-live-members{min-height:0;overflow:auto;padding:10px;display:grid;align-content:start;gap:8px}.team-live-member{width:100%;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;text-align:left;padding:10px 11px;border:1px solid #e2e6ea;border-radius:12px;background:#fff;color:#28303a;cursor:pointer;transition:.16s ease}.team-live-member:hover{border-color:#c9b2b8;background:#fffafb;transform:translateY(-1px)}.team-live-member.selected{border-color:#9c1930;box-shadow:0 0 0 2px rgba(156,25,48,.08);background:#fff8f9}.team-live-member.b.selected{border-color:#365d8d;box-shadow:0 0 0 2px rgba(54,93,141,.08);background:#f8fbff}.team-live-member.submitted{background:#f7fbf9;border-color:#cee4d7}
.team-live-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#8e0d25;color:#fff;font-size:10px;font-weight:950;box-shadow:0 0 0 4px #f8e8ec}.team-live-avatar.alt{background:#2f507b;box-shadow:0 0 0 4px #e9eef6}.team-live-member-main{min-width:0}.team-live-member-main>b{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-live-member-main>small{display:block;margin-top:3px;font-size:8.5px;color:#737c87}.team-live-member-main>i{display:block;height:4px;margin-top:7px;border-radius:999px;background:#edf0f3;overflow:hidden}.team-live-member-main>i>em{display:block;height:100%;background:#9b1a31;border-radius:999px}.team-live-member.b .team-live-member-main>i>em{background:#3f638f}.team-live-member.submitted .team-live-member-main>i>em{background:#31905f}.team-live-member-state{min-width:58px;text-align:right;color:#78818c}.team-live-member-state svg{width:13px;height:13px;color:#16804b;vertical-align:middle}.team-live-member-state b{display:block;margin-top:2px;font-size:9px;color:#68727d}.team-live-member.submitted .team-live-member-state b{color:#16804b}
.team-live-center{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#7d8792;text-align:center}.team-live-center>span{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#8f0d25;color:#fff;border:4px solid #fff;box-shadow:0 4px 14px rgba(92,10,27,.18);font-size:11px;font-weight:950}.team-live-center small{font-size:7.5px;line-height:1.45}.team-live-center i{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid #dde2e7}.team-live-center i svg{width:13px;height:13px}
.team-live-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 16px;background:#fff;border-top:1px solid #dde2e7}.team-live-foot>div{display:flex;align-items:center;gap:8px;font-size:8px;color:#77818c}.team-live-foot b{color:#343c46}.team-live-foot em{font-style:normal}.team-live-pick{padding:6px 9px;border-radius:8px;background:#f7f8fa;border:1px solid #e5e8ec;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-live-pick b{color:#761128}
.team-live-result-shell{height:100%;overflow:auto;background:#18050b}.team-live-result-bar{height:58px;position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:0 14px 0 18px;background:#fff;border-bottom:1px solid #e1e4e8}.team-live-result-bar span{display:block;font-size:8px;font-weight:950;letter-spacing:.12em;color:#9a1730}.team-live-result-bar b{display:block;margin-top:2px;font-size:14px;color:#741126}.team-live-result-shell .team-victory-stage-v2.compact{min-height:calc(100vh - 58px);border-radius:0}
.team-duel-monitor .duel-kicker{display:flex;align-items:center;gap:6px}.team-duel-monitor .duel-kicker svg{width:14px;height:14px}.team-duel-result-shell{height:100%;overflow:auto;background:#18050b;position:relative}.team-duel-result-close{position:fixed;right:14px;top:12px;z-index:8}.team-duel-result-shell .team-victory-stage-v2.compact{min-height:100vh;border-radius:0}
@media(max-width:1100px){.team-live-top{grid-template-columns:minmax(220px,1fr) auto}.team-live-clock{display:none}.team-live-stage{grid-template-columns:minmax(0,1fr) 50px minmax(0,1fr);padding:10px}.team-live-foot>div:first-child em{display:none}}
@media(max-width:760px){.team-live-shell{grid-template-rows:auto minmax(0,1fr) auto}.team-live-top{grid-template-columns:1fr auto;padding:9px 10px}.team-live-actions .btn{display:none}.team-live-stage{grid-template-columns:1fr;overflow:auto}.team-live-center{padding:8px}.team-live-center small,.team-live-center i{display:none}.team-live-team{min-height:320px}.team-live-foot{padding:8px 10px;align-items:flex-start;flex-direction:column}.team-live-foot>div:last-child{width:100%;overflow:auto}}

/* V0.82 - Phòng giám sát Giải đấu realtime */
.tour-detail-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.tour-monitor-open{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.tour-monitor-open b{min-width:20px;height:20px;padding:0 6px;border-radius:999px;display:grid;place-items:center;background:rgba(255,255,255,.18);font-size:10px}.tour-slot.is-live{border-color:#d59aa6;box-shadow:0 0 0 2px rgba(142,13,37,.06),0 8px 22px rgba(76,0,18,.08)}.tour-slot.is-live .tour-slot-no{display:flex;align-items:center;justify-content:space-between;gap:8px}.tour-slot-no em{display:inline-flex;align-items:center;gap:5px;font-style:normal;font-size:8px;letter-spacing:.08em;color:#1d7c4d}.tour-slot-no .live-dot{width:7px;height:7px}
.tournament-live-monitor{position:fixed;inset:0;z-index:2700;background:#eef1f5;color:#202731;font-family:inherit;overflow:hidden}.tournament-live-shell{height:100%;display:grid;grid-template-rows:64px minmax(0,1fr)}.tournament-live-top{display:grid;grid-template-columns:minmax(280px,1fr) auto 42px;align-items:center;gap:18px;padding:8px 14px 8px 20px;background:#fff;border-bottom:1px solid #dfe3e9;box-shadow:0 2px 12px rgba(25,31,40,.06);z-index:3}.tournament-live-top .duel-kicker{display:flex;align-items:center;gap:7px}.tournament-live-top .duel-kicker svg{width:15px;height:15px}.tournament-live-top h1{margin:2px 0 0;font-size:18px;line-height:1.1;color:#7d1025;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tournament-live-summary{display:flex;align-items:center;gap:8px}.tournament-live-summary>span{display:flex;align-items:center;gap:5px;height:32px;padding:0 10px;border:1px solid #e0e4e8;border-radius:10px;background:#f8fafb;color:#707985;font-size:9px;font-weight:800}.tournament-live-summary b{font-size:12px;color:#303741}.tournament-live-summary .live-dot{width:8px;height:8px}.tournament-live-body{min-height:0;overflow:auto;padding:18px 20px 26px}.tournament-live-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:0 0 12px}.tournament-live-section-head>div{display:flex;flex-direction:column;gap:2px}.tournament-live-section-head b{font-size:15px;color:#313944}.tournament-live-section-head span{font-size:9px;color:#7e8792}.tournament-live-section-head em{font-style:normal;font-size:9px;font-weight:950;color:#fff;background:#8d0b23;border-radius:999px;padding:6px 10px}.tournament-live-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:13px;align-items:start}.tournament-live-card{background:#fff;border:1px solid #e0e4e8;border-radius:16px;overflow:hidden;box-shadow:0 5px 18px rgba(24,31,42,.05)}.tour-live-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border-bottom:1px solid #eceff2;background:linear-gradient(180deg,#fff,#fbfcfd)}.tour-live-card-head>div{min-width:0;display:flex;flex-direction:column;gap:2px}.tour-live-card-head span{font-size:8px;font-weight:950;letter-spacing:.08em;text-transform:uppercase;color:#9a5c69}.tour-live-card-head b{font-size:11px;color:#303741;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tour-live-card-head strong{flex:0 0 auto;font-size:17px;color:#8d0b23;font-variant-numeric:tabular-nums}.tour-live-versus{display:grid;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);align-items:stretch;min-height:104px}.tour-live-player{min-width:0;padding:12px 13px;display:flex;flex-direction:column;justify-content:center;gap:10px}.tour-live-player.submitted{background:#f2faf5}.tour-live-player-id{display:flex;align-items:center;gap:9px;min-width:0}.tour-live-player-id>div{min-width:0}.tour-live-player-id b{display:block;font-size:11px;color:#292f38;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tour-live-player-id small{display:block;margin-top:2px;font-size:8px;color:#78818b}.tour-live-avatar{width:34px;height:34px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;background:#8d0b23;color:#fff;font-size:10px;font-weight:950;box-shadow:0 0 0 3px #f8e9ec}.tour-live-avatar.alt{background:#27416e;box-shadow:0 0 0 3px #e9eef7}.tour-live-player-progress{display:grid;grid-template-columns:minmax(0,1fr) 32px;gap:7px;align-items:center}.tour-live-player-progress>span{height:6px;border-radius:999px;background:#edf0f2;overflow:hidden}.tour-live-player-progress i{display:block;height:100%;background:#8d0b23;border-radius:inherit}.tour-live-player.submitted .tour-live-player-progress i{background:#24804d}.tour-live-player-progress b{font-size:8px;color:#747d87;text-align:right}.tour-live-vs{display:grid;place-items:center;background:#f5f6f8;border-left:1px solid #eceff2;border-right:1px solid #eceff2;color:#a66e79;font-size:9px;font-weight:950}.tour-live-card-foot{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 11px;border-top:1px solid #eceff2;background:#fbfcfd}.tour-live-card-foot>span{font-size:8.5px;color:#747d87}.tour-live-card-foot>div{display:flex;gap:6px}.tour-live-card-foot .btn{height:30px;padding:0 9px;font-size:8.5px}.tournament-live-empty{min-height:330px;display:grid;place-content:center;justify-items:center;text-align:center;background:#fff;border:1px dashed #d8dde3;border-radius:16px;color:#737d88}.tournament-live-empty>span{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#fff1f3;color:#8d0b23;margin-bottom:10px}.tournament-live-empty svg{width:24px;height:24px}.tournament-live-empty h2{margin:0 0 5px;font-size:16px;color:#333b45}.tournament-live-empty p{max-width:420px;margin:0;font-size:9px;line-height:1.6}.tournament-waiting-strip{margin-top:14px;padding:10px 12px;border:1px solid #e1e5e9;border-radius:13px;background:#fff;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.tournament-waiting-strip>div{margin-right:auto;display:flex;flex-direction:column}.tournament-waiting-strip b{font-size:10px;color:#343c46}.tournament-waiting-strip div span{font-size:8px;color:#808894}.tour-wait-chip{display:inline-flex;padding:5px 8px;border-radius:999px;background:#f5f6f8;color:#68717c;font-size:8px;font-weight:800}.tournament-live-loading{height:100%;display:grid;place-content:center;justify-items:center;gap:9px;background:#f5f6f8;color:#777f89}.tournament-live-loading b{font-size:14px;color:#7f1025}.tournament-live-loading span{font-size:9px}.tournament-duel-monitor .duel-kicker{display:flex;align-items:center;gap:6px}.tournament-duel-monitor .duel-kicker svg{width:15px;height:15px}
@media(max-width:1050px){.tournament-live-top{grid-template-columns:minmax(220px,1fr) 42px}.tournament-live-summary{display:none}.tournament-live-grid{grid-template-columns:1fr}.tour-detail-head{align-items:flex-start}.tour-detail-actions{align-items:flex-end}}
@media(max-width:700px){.tournament-live-body{padding:10px}.tournament-live-grid{grid-template-columns:1fr}.tour-live-versus{grid-template-columns:1fr}.tour-live-vs{min-height:24px;border:0;border-top:1px solid #eceff2;border-bottom:1px solid #eceff2}.tour-live-card-foot{align-items:flex-start;flex-direction:column}.tournament-live-top h1{font-size:14px}.tour-detail-head{flex-direction:column}.tour-detail-actions{width:100%;justify-content:flex-start}}

/* V0.83 - Rà soát giao diện: gọn hơn, ưu tiên nội dung và thao tác chính */
@media(min-width:901px){
  .main{grid-template-columns:220px minmax(0,1fr)}
  .sidebar{padding:14px 10px 13px}
  .nav-group{gap:3px}
  .navbtn{padding:10px 11px;gap:10px;border-radius:9px;font-size:12px}
  .navbtn .ico{width:17px;height:17px}
  .content{padding:18px 20px 26px}
}

.page-head.compact-module-head{min-height:34px;margin-bottom:9px}
.page-head.compact-module-head h1{font-size:23px}
.compact-main-action{min-height:34px;padding:7px 11px;font-size:11.5px;border-radius:9px}

/* Ba trạng thái trở thành segmented control thay vì ba thẻ lớn. */
.module-phase-tabs{
  display:flex;align-items:center;gap:3px;width:max-content;max-width:100%;
  padding:3px;margin:0 0 10px;background:#eceff2;border:1px solid #e0e3e7;border-radius:10px;
}
.module-phase-tabs button{
  flex:0 0 auto;min-height:32px;padding:4px 9px;border:0!important;border-radius:7px;
  background:transparent!important;box-shadow:none!important;transform:none!important;
  color:#68707c!important;gap:6px;
}
.module-phase-tabs button span{font-size:10.5px}
.module-phase-tabs button b{
  min-width:22px;height:22px;padding:0 5px;font-size:10px;background:#dfe3e7!important;color:#5f6874!important;
}
.module-phase-tabs button.active{background:#fff!important;color:#781024!important;box-shadow:0 1px 4px rgba(32,38,45,.10)!important}
.module-phase-tabs button.active b{background:#8d0a20!important;color:#fff!important}
.module-phase-tabs button[data-module-phase="running"].active{color:#805300!important}
.module-phase-tabs button[data-module-phase="running"].active b{background:#a96c0c!important}
.module-phase-tabs button[data-module-phase="finished"].active{color:#23623e!important}
.module-phase-tabs button[data-module-phase="finished"].active b{background:#2e7b4c!important}

/* Bảng dữ liệu gọn hơn, giảm đường viền và chiều cao hàng. */
.table th,.table td{padding:9px 10px}
.table th{font-size:10.5px}
.table td{font-size:11.5px}
.table-wrap{border-radius:11px}

/* Nút phụ bớt cảm giác "button line"; thao tác chính vẫn nổi bật. */
.actions{gap:5px}
.actions .btn{min-height:31px;padding:6px 9px;border-radius:8px;font-size:10.5px;box-shadow:none}
.actions .btn:not(.primary):not(.danger):not(.good){background:#f5f6f8;border-color:transparent;color:#4f5966}
.actions .btn:not(.primary):not(.danger):not(.good):hover{background:#eceff2;box-shadow:none}

/* Đấu đội: giảm khoảng trắng nhưng giữ hai đội dễ quan sát. */
.team-battle-list{gap:10px}
.team-battle-card{padding:14px 16px;border-radius:15px;box-shadow:0 5px 18px rgba(91,9,28,.045)}
.team-battle-head h3{margin-top:0}
.team-battle-head p{margin-top:3px;font-size:10.5px}
.team-battle-versus{margin:10px 0}
.team-battle-foot{padding-top:9px}
.team-member-chip{padding:5px 7px}

/* Giải đấu: danh sách đóng vai trò điều hướng, không cần card quá cao. */
.tour-list{gap:8px}
.tour-list-card{padding:12px 14px;border-radius:13px;box-shadow:0 4px 14px rgba(72,21,34,.035)}
.tour-list-card h3{margin:4px 0 2px;font-size:15px}
.tour-list-card p{margin:0;font-size:10.5px}
.tour-list-side span{font-size:9px}
.tour-list-side b{font-size:10.5px}

/* Thách đấu giữ bố cục riêng V0.71, chỉ bỏ các chú thích lặp để dành chỗ cho danh sách. */
.challenge-section-title{margin:7px 2px}
.challenge-section-title>div small{display:none}
.challenge-ready-section{padding:10px 12px;margin-bottom:10px;border-radius:13px}
.challenge-history{margin-top:12px}
.challenge-card{padding:11px 12px;box-shadow:0 4px 14px rgba(70,24,32,.035)}
.challenge-meta{margin:7px 0}

/* Học sinh: thẻ trận gọn hơn, tên và VS vẫn là trọng tâm. */
.student-home-matches{max-width:1240px}
.student-independent-list{gap:9px}
.student-match-card-v2{margin-bottom:9px;box-shadow:0 5px 16px rgba(36,22,27,.04)}
.student-match-topline{min-height:35px;padding:7px 13px}
.student-match-duel{padding:12px 15px 10px}
.student-match-bottom{padding:8px 13px}
.student-match-avatar{width:38px;height:38px}
.student-match-person b{font-size:15px}
.student-match-vs strong{font-size:21px}
.student-match-actions .btn{min-height:32px;padding:7px 10px}

/* Tinh giản tiêu đề các bảng/khối dashboard. */
.section-head{padding-top:0}
.live-table{margin-top:12px}

@media(max-width:760px){
  .module-phase-tabs{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}
  .module-phase-tabs button{min-width:0;justify-content:center;padding:4px 5px}
  .module-phase-tabs button span{font-size:9.5px;white-space:nowrap}
  .module-phase-tabs button b{min-width:20px;height:20px}
  .team-battle-card{padding:12px}
}

/* V0.84 - cấu hình điểm giao đấu */
.scoring-config-card{margin-top:16px}.scoring-config-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.scoring-config-head h3{margin:0 0 4px;color:#7f091c}.scoring-config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}.scoring-tf-box{margin-top:14px;padding:14px;border:1px solid #eadde0;border-radius:14px;background:#fffafb}.scoring-tf-box>div:first-child{display:flex;flex-direction:column;gap:3px}.scoring-tf-box>div:first-child span{font-size:13px;color:#68707b}.scoring-percent-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}.scoring-percent-grid label{padding:10px;border:1px solid #eee2e4;border-radius:12px;background:#fff}.scoring-percent-grid label>span{display:block;font-size:12px;font-weight:700;margin-bottom:6px}.scoring-percent-grid label>div{display:flex;align-items:center;gap:6px}.scoring-percent-grid input{width:100%;min-width:0}.scoring-percent-grid em{font-style:normal;font-weight:800;color:#8d0a20}.scoring-percent-grid small{display:block;margin-top:5px;color:#68707b}.scoring-example{display:flex;gap:10px;align-items:flex-start;margin:12px 0;padding:10px 12px;border-radius:11px;background:#f6f7f9;font-size:13px}.scoring-example>b{color:#7f091c;white-space:nowrap}.scoring-example span{color:#4d5661}@media(max-width:820px){.scoring-config-grid,.scoring-percent-grid{grid-template-columns:1fr 1fr}.scoring-config-head{flex-direction:column}}

/* V0.85 scoring options */
.scoring-options-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.scoring-option-card{display:flex;align-items:flex-start;gap:10px;border:1px solid #e1e4e8;border-radius:11px;padding:12px;background:#fff;cursor:pointer}.scoring-option-card input{position:absolute;opacity:0;pointer-events:none}.scoring-option-card>span{width:34px;height:20px;border-radius:999px;background:#d9dde3;position:relative;flex:0 0 auto;margin-top:1px;transition:.16s}.scoring-option-card>span:after{content:"";position:absolute;width:14px;height:14px;border-radius:50%;background:#fff;left:3px;top:3px;box-shadow:0 1px 4px rgba(0,0,0,.18);transition:.16s}.scoring-option-card input:checked+span{background:#8f0b22}.scoring-option-card input:checked+span:after{left:17px}.scoring-option-card b{display:block;font-size:12px;color:#4b525e}.scoring-option-card small{display:block;margin-top:3px;color:#818894;font-size:10px;line-height:1.4}.time-tiebreak-note{display:block;margin-top:7px;color:#8b0b21;font-weight:800}@media(max-width:760px){.scoring-options-grid{grid-template-columns:1fr}}

/* V0.86 - Lịch sử đối đầu chi tiết */
.h2h-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}.h2h-kpis>div{background:#fff;border:1px solid #eceff2;border-radius:13px;padding:12px 14px;box-shadow:0 4px 15px rgba(50,42,45,.035)}.h2h-kpis span{display:block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#8b929c}.h2h-kpis b{display:block;margin-top:3px;font-size:22px;color:#7f0b20}.h2h-kpis small{display:block;margin-top:2px;color:#747c87;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.h2h-picker{padding:12px 14px;margin-bottom:12px}.h2h-picker-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.h2h-picker-title>div:first-child{display:flex;flex-direction:column;gap:2px}.h2h-picker-title b{font-size:13px;color:#4d5560}.h2h-picker-title small{font-size:10px;color:#8a919b}.h2h-search-wrap{height:34px;min-width:290px;display:flex;align-items:center;gap:7px;border:1px solid #e3e6ea;border-radius:9px;padding:0 9px;background:#f8f9fa}.h2h-search-wrap .ico{width:15px;height:15px;color:#78808b}.h2h-search-wrap input{border:0;outline:0;background:transparent;width:100%;font-size:11px}.h2h-picker-row{display:grid;grid-template-columns:minmax(190px,1fr) 45px minmax(190px,1fr) auto;align-items:end;gap:9px;margin-top:10px}.h2h-picker-row label{display:flex;flex-direction:column;gap:4px}.h2h-picker-row label>span{font-size:9.5px;font-weight:800;text-transform:uppercase;color:#858d98}.h2h-picker-row select{height:36px;border:1px solid #dde1e6;border-radius:9px;background:#fff;padding:0 9px;font-size:11px}.h2h-picker-vs{height:36px;display:flex;align-items:center;justify-content:center;font-weight:1000;color:#8d0a20;font-size:14px}.h2h-table-wrap{background:#fff}.h2h-pair-cell{display:grid;grid-template-columns:30px minmax(100px,1fr) 28px 30px minmax(100px,1fr);align-items:center;gap:7px;min-width:360px}.h2h-pair-cell .mini-avatar{width:30px;height:30px;font-size:9px}.h2h-pair-cell .mini-avatar.alt{background:#e9eef6;color:#385d86}.h2h-pair-cell>span:not(.mini-avatar){display:flex;flex-direction:column;min-width:0}.h2h-pair-cell>span b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.h2h-pair-cell>span small{font-size:9px;color:#9299a2}.h2h-pair-cell>em{font-style:normal;font-size:9px;font-weight:1000;color:#a1a6ad;text-align:center}.h2h-record{display:inline-grid;grid-template-columns:24px 24px 24px;border-radius:8px;overflow:hidden;border:1px solid #e6e8eb}.h2h-record>*{height:25px;display:flex;align-items:center;justify-content:center;font-size:10px}.h2h-record b:first-child{background:#eff8f3;color:#257044}.h2h-record span{background:#f5f5f6;color:#767d87}.h2h-record b:last-child{background:#fff0f2;color:#9b1830}.h2h-split-stat{display:flex;align-items:center;gap:5px;font-weight:800;color:#4c5560}.h2h-split-stat span:first-child{color:#8d0a20}.h2h-split-stat span:last-child{color:#315f8d}.h2h-split-stat i{font-style:normal;color:#adb2b9}.h2h-split-stat.time{font-variant-numeric:tabular-nums;font-size:10px}.h2h-modal-backdrop{z-index:150}.h2h-modal{width:min(1380px,96vw);height:min(860px,93vh);max-width:none;display:flex;flex-direction:column;overflow:hidden;padding:0;background:#f7f8fa}.h2h-modal-head{position:relative;background:linear-gradient(135deg,#670819,#990f28);color:#fff;padding:16px 58px 16px 18px}.h2h-modal-head .review-close{position:absolute;right:14px;top:12px;color:#fff;border-color:#ffffff55;background:#ffffff18}.h2h-duel-head{display:grid;grid-template-columns:minmax(0,1fr) 180px minmax(0,1fr);align-items:center;gap:16px}.h2h-duel-person{display:flex;align-items:center;gap:11px;min-width:0}.h2h-duel-person.right{justify-content:flex-end;text-align:right}.h2h-duel-person>span{width:48px;height:48px;border-radius:14px;background:#fff;color:#7c0a1f;display:flex;align-items:center;justify-content:center;font-weight:1000;font-size:15px;box-shadow:0 7px 20px #0003;flex:0 0 auto}.h2h-duel-person>span.alt{color:#315f8d}.h2h-duel-person>div{display:flex;flex-direction:column;min-width:0}.h2h-duel-person small{font-size:8px;font-weight:900;letter-spacing:.12em;opacity:.72}.h2h-duel-person b{font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.h2h-duel-person em{font-style:normal;font-size:10px;opacity:.75}.h2h-big-vs{text-align:center}.h2h-big-vs>span{display:inline-flex;width:38px;height:38px;align-items:center;justify-content:center;border-radius:10px;background:#ffffff18;font-size:20px;font-weight:1000}.h2h-big-vs>i{font-style:normal;font-size:11px;font-weight:1000;margin:0 6px;opacity:.8}.h2h-big-vs>small{display:block;margin-top:4px;font-size:9px;opacity:.75}.h2h-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px 12px}.h2h-summary>div{background:#fff;border:1px solid #e7e9ed;border-radius:11px;padding:9px 11px}.h2h-summary span{display:block;font-size:9px;font-weight:800;text-transform:uppercase;color:#8a919b}.h2h-summary b{display:block;margin-top:2px;font-size:14px;color:#4e5661}.h2h-summary b i{font-style:normal;color:#adb3bb;margin:0 5px}.h2h-summary small{display:block;margin-top:2px;font-size:9px;color:#959ca6}.h2h-history-head{padding:0 13px 8px}.h2h-history-head h3{margin:0;font-size:13px;color:#4d5560}.h2h-history-head p{margin:2px 0 0;font-size:9.5px;color:#858d97}.h2h-history-wrap{margin:0 12px 12px;overflow:auto;flex:1;background:#fff}.h2h-source{display:inline-flex;align-items:center;height:22px;padding:0 7px;border-radius:999px;font-size:8.5px;font-weight:900;white-space:nowrap;background:#eef0f3;color:#646c77}.h2h-source.challenge{background:#fff1f3;color:#91142a}.h2h-source.tournament{background:#fff7e8;color:#8c5c07}.h2h-scoreline{display:flex;align-items:center;gap:4px;white-space:nowrap}.h2h-scoreline b:first-child{color:#8d0a20}.h2h-scoreline b:nth-of-type(2){color:#315f8d}.h2h-scoreline span{font-size:9px;color:#8b929b}.h2h-scoreline i{font-style:normal;color:#b0b5bc;margin:0 2px}.h2h-scoreline.raw,.h2h-scoreline.time{font-size:9.5px;font-variant-numeric:tabular-nums}.h2h-outcome{display:inline-flex;align-items:center;min-height:23px;padding:0 7px;border-radius:7px;font-size:8.5px;font-weight:900;white-space:nowrap}.h2h-outcome.a{background:#eef8f2;color:#236f43}.h2h-outcome.b{background:#fff0f2;color:#9b1830}.h2h-outcome.draw{background:#f0f1f3;color:#666e78}@media(max-width:900px){.h2h-kpis{grid-template-columns:1fr}.h2h-picker-title{align-items:stretch;flex-direction:column}.h2h-search-wrap{min-width:0}.h2h-picker-row{grid-template-columns:1fr 34px 1fr}.h2h-picker-row .btn{grid-column:1/-1}.h2h-duel-head{grid-template-columns:1fr}.h2h-duel-person.right{justify-content:flex-start;text-align:left;flex-direction:row-reverse}.h2h-big-vs{order:-1}.h2h-summary{grid-template-columns:1fr}}

/* V0.87 - Đối đầu theo học sinh + Đối đầu của tôi */
.h2h-mode-tabs{display:inline-flex;align-items:center;gap:3px;padding:3px;background:#f0f2f5;border:1px solid #e3e6ea;border-radius:10px;margin:0 0 12px}.h2h-mode-tabs button{border:0;background:transparent;color:#707985;font-size:10.5px;font-weight:850;padding:7px 12px;border-radius:7px;cursor:pointer}.h2h-mode-tabs button.active{background:#fff;color:#850b21;box-shadow:0 2px 8px #2d1f2212}.h2h-mode-pane.hidden{display:none!important}.h2h-compact-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;margin-bottom:9px}.h2h-compact-toolbar>div:first-child{display:flex;flex-direction:column;gap:1px}.h2h-compact-toolbar b{font-size:12px;color:#4d5560}.h2h-compact-toolbar small{font-size:9.5px;color:#8b929b}.h2h-student-picker{display:flex;align-items:end;justify-content:space-between;gap:16px;padding:12px 14px;margin-bottom:10px}.h2h-student-picker>div:first-child{display:flex;flex-direction:column;gap:2px}.h2h-student-picker>div:first-child b{font-size:13px;color:#4c5560}.h2h-student-picker>div:first-child small{font-size:9.5px;color:#8a919b}.h2h-student-controls{display:flex;align-items:end;gap:8px;min-width:min(520px,60%)}.h2h-student-controls label{display:flex;flex-direction:column;gap:3px;flex:1}.h2h-student-controls label:last-child{max-width:180px}.h2h-student-controls span{font-size:8.5px;font-weight:900;text-transform:uppercase;color:#8b929c}.h2h-student-controls select{height:34px;border:1px solid #dde1e6;background:#fff;border-radius:8px;padding:0 9px;font-size:10.5px}.h2h-student-summary{display:grid;grid-template-columns:minmax(260px,1.8fr) repeat(3,minmax(120px,.7fr));gap:8px;margin-bottom:10px}.h2h-student-summary>div{background:#fff;border:1px solid #e7e9ed;border-radius:11px;padding:9px 11px;min-width:0}.h2h-student-main{display:flex;align-items:center;gap:9px}.h2h-student-main .profile-avatar.mini{width:38px;height:38px;border-radius:11px;font-size:11px;flex:0 0 auto}.h2h-student-main>div{display:flex;flex-direction:column;min-width:0}.h2h-student-main small,.h2h-student-summary>div:not(.h2h-student-main)>span{font-size:8px;font-weight:900;letter-spacing:.07em;color:#9299a2;text-transform:uppercase}.h2h-student-main b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.h2h-student-main em{font-style:normal;font-size:9px;color:#8d949e}.h2h-student-summary>div:not(.h2h-student-main)>b{display:block;margin-top:4px;font-size:17px;color:#7f0b20}.h2h-student-table-wrap{background:#fff}.h2h-empty-student{padding:22px;text-align:center;color:#8a919b;font-size:11px}.h2h-record.personal b:last-child{background:#fff0f2;color:#9b1830}
.my-h2h-page{max-width:none}.my-h2h-hero{display:grid;grid-template-columns:minmax(260px,1.6fr) repeat(3,minmax(120px,.65fr));gap:9px;margin-bottom:10px}.my-h2h-hero>div{background:#fff;border:1px solid #e6e9ed;border-radius:13px;padding:11px 13px;box-shadow:0 4px 14px #30232808}.my-h2h-self{display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#fff,#fff8f9)!important}.my-h2h-self>span{width:43px;height:43px;border-radius:13px;display:flex;align-items:center;justify-content:center;background:#850b21;color:#fff;font-weight:1000;font-size:13px;flex:0 0 auto}.my-h2h-self>div{display:flex;flex-direction:column;min-width:0}.my-h2h-self small{font-size:8px;font-weight:900;letter-spacing:.1em;color:#a14b5b}.my-h2h-self b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.my-h2h-self em{font-style:normal;font-size:9px;color:#9097a0}.my-h2h-hero>div:not(.my-h2h-self)>span{display:block;font-size:8.5px;font-weight:900;text-transform:uppercase;color:#8c939c}.my-h2h-hero>div:not(.my-h2h-self)>b{display:block;margin-top:4px;font-size:19px;color:#7f0b20}.my-h2h-toolbar{display:flex;align-items:end;justify-content:space-between;gap:10px;padding:9px 11px;margin-bottom:10px}.my-h2h-toolbar .h2h-search-wrap{min-width:280px;flex:1;max-width:520px}.my-h2h-toolbar label{display:flex;flex-direction:column;gap:3px}.my-h2h-toolbar label span{font-size:8px;font-weight:900;text-transform:uppercase;color:#8c939c}.my-h2h-toolbar select{height:34px;border:1px solid #dde1e6;border-radius:8px;background:#fff;padding:0 9px;font-size:10.5px}.my-h2h-grid{display:grid;grid-template-columns:repeat(3,minmax(250px,1fr));gap:10px}.my-h2h-card{background:#fff;border:1px solid #e5e8ec;border-radius:14px;padding:11px;box-shadow:0 5px 18px #30232808;display:flex;flex-direction:column;gap:10px}.my-h2h-card-top{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:9px}.my-h2h-avatar{width:42px;height:42px;border-radius:13px;background:#edf2f8;color:#315f8d;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:1000}.my-h2h-card-top>div{display:flex;flex-direction:column;min-width:0}.my-h2h-card-top small{font-size:7.5px;font-weight:900;letter-spacing:.08em;color:#969ca5}.my-h2h-card-top b{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.my-h2h-card-top em{font-style:normal;font-size:8.5px;color:#9299a2}.my-h2h-card-top>strong{font-size:19px;color:#7f0b20;text-align:center;line-height:1}.my-h2h-card-top>strong small{display:block;margin-top:3px;font-size:7px;color:#8f969f;text-transform:uppercase}.my-h2h-record{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.my-h2h-record>div{border-radius:9px;padding:6px 8px;text-align:center}.my-h2h-record span{display:block;font-size:7.5px;font-weight:900;text-transform:uppercase}.my-h2h-record b{display:block;font-size:16px;margin-top:1px}.my-h2h-record .win{background:#eef8f2;color:#277047}.my-h2h-record .draw{background:#f2f3f5;color:#707781}.my-h2h-record .loss{background:#fff0f2;color:#9b1830}.my-h2h-meta{display:grid;grid-template-columns:.7fr 1fr 1.2fr;gap:5px}.my-h2h-meta>div{background:#f8f9fa;border-radius:8px;padding:6px 7px;min-width:0}.my-h2h-meta span{display:block;font-size:7px;font-weight:850;color:#9299a2;text-transform:uppercase}.my-h2h-meta b{display:block;margin-top:2px;font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.my-h2h-meta b i{font-style:normal;color:#adb2b9;margin:0 2px}.my-h2h-card .btn{width:100%;justify-content:center}.my-h2h-empty{grid-column:1/-1;text-align:center;padding:25px;color:#858d97}.my-h2h-modal .h2h-duel-person:first-child>span{background:#fff;color:#7f0b20}
@media(max-width:1100px){.my-h2h-grid{grid-template-columns:repeat(2,minmax(240px,1fr))}.h2h-student-summary,.my-h2h-hero{grid-template-columns:1fr 1fr}.h2h-student-main,.my-h2h-self{grid-column:1/-1}}
@media(max-width:760px){.h2h-mode-tabs{display:flex;overflow:auto}.h2h-mode-tabs button{white-space:nowrap}.h2h-student-picker,.h2h-compact-toolbar,.my-h2h-toolbar{align-items:stretch;flex-direction:column}.h2h-student-controls{min-width:0;width:100%;flex-direction:column}.h2h-student-controls label,.h2h-student-controls label:last-child{max-width:none;width:100%}.h2h-student-summary,.my-h2h-hero{grid-template-columns:1fr}.h2h-student-main,.my-h2h-self{grid-column:auto}.my-h2h-grid{grid-template-columns:1fr}.my-h2h-toolbar .h2h-search-wrap{min-width:0;max-width:none}.my-h2h-meta{grid-template-columns:1fr}.my-h2h-modal .h2h-history-wrap{overflow:auto}}

/* ===== V0.89: Ranking + individual analytics ===== */
.ranking-stats-v89{grid-template-columns:repeat(4,minmax(0,1fr))}
.ranking-stats-v89 .rank-stat-card b small{font-size:11px;color:#90858a;margin-left:2px;font-weight:800}
.ranking-stats-v89 .rank-stat-card>small{display:block;margin-top:3px;font-size:10px;color:#8b8387}
.ranking-toolbar-v89{display:grid;grid-template-columns:minmax(260px,1fr) 220px auto;gap:10px;align-items:end;padding:10px 12px;margin-bottom:10px}
.ranking-toolbar-v89 label{display:grid;gap:4px;font-size:9px;color:#8b8387;font-weight:850;text-transform:uppercase;letter-spacing:.04em}
.ranking-toolbar-v89 select,.ranking-toolbar-v89 input{height:36px;border:1px solid #ddd5d8;border-radius:9px;background:#fff;padding:0 10px;font:inherit;color:#433c3f}
.ranking-search{position:relative}.ranking-search svg{position:absolute;left:11px;top:10px;width:15px;height:15px;color:#92898d}.ranking-search input{width:100%;padding-left:34px}
.rank-played-toggle{display:flex!important;align-items:center;gap:7px;height:36px;padding:0 10px;border:1px solid #e1d9dc;border-radius:9px;background:#faf8f9;text-transform:none!important;letter-spacing:0!important;font-size:11px!important;color:#625b5e!important}.rank-played-toggle input{width:15px;height:15px;margin:0}
.ranking-table-v89{min-width:1260px}.elo-delta{display:inline-flex;min-width:34px;justify-content:center;font-weight:900;color:#777}.elo-delta.up{color:#14804b}.elo-delta.down{color:#b2303f}.profile-summary-v89{grid-template-columns:repeat(6,minmax(0,1fr))}.profile-form-big{font-size:13px!important;line-height:1.4}.profile-grid-v89{grid-template-columns:minmax(0,1.6fr) minmax(280px,.7fr)}
.accuracy-card-v89{padding:16px}.accuracy-v89{display:grid;gap:15px}.accuracy-v89>div{display:grid;grid-template-columns:1fr auto;gap:3px 12px}.accuracy-v89 span{font-size:11px;font-weight:850;color:#6a6064}.accuracy-v89 b{font-size:20px;color:#7d1025}.accuracy-v89 small{font-size:9px;color:#8e878a}.accuracy-v89 i{grid-column:1/-1;height:7px;border-radius:999px;background:#eee8ea;overflow:hidden;margin-top:4px}.accuracy-v89 i em{display:block;height:100%;border-radius:inherit;background:#8b1128}.topic-card-v89{margin-top:14px}
@media(max-width:1250px){.profile-summary-v89{grid-template-columns:repeat(3,minmax(0,1fr))}.ranking-toolbar-v89{grid-template-columns:1fr 190px}.rank-played-toggle{grid-column:1/-1;justify-self:start}}
@media(max-width:800px){.ranking-stats-v89{grid-template-columns:1fr 1fr}.profile-summary-v89{grid-template-columns:1fr 1fr}.profile-grid-v89{grid-template-columns:1fr}.ranking-toolbar-v89{grid-template-columns:1fr}.rank-played-toggle{grid-column:auto}.ranking-toolbar-v89 label{width:100%}}

/* ===== V0.90: Luyện tập cá nhân ===== */
.practice-page{max-width:1500px;margin:0 auto}.practice-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-bottom:10px}.practice-kpis>div{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:11px 13px}.practice-kpis span{display:block;font-size:9px;font-weight:900;text-transform:uppercase;color:#89919c;letter-spacing:.05em}.practice-kpis b{display:block;margin-top:3px;font-size:21px;color:#7e0c21}.practice-kpis b small{font-size:10px;color:#999;font-weight:800;margin-left:2px}
.practice-resume{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 13px;margin-bottom:10px;border-color:#e8cbd1;background:linear-gradient(100deg,#fff8f9,#fff)}.practice-resume>div{display:flex;align-items:center;gap:10px}.practice-resume>div>div{display:flex;flex-direction:column;gap:2px}.practice-resume b{font-size:12.5px}.practice-resume small{font-size:9.5px;color:#7f8792}.practice-live-dot{width:9px;height:9px;border-radius:50%;background:#a6112b;box-shadow:0 0 0 5px #a6112b16;flex:0 0 auto;animation:practicePulse 1.5s ease-in-out infinite}@keyframes practicePulse{50%{box-shadow:0 0 0 8px #a6112b08}}
.practice-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(270px,.65fr);gap:12px;align-items:start}.practice-builder{padding:14px}.practice-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.practice-section-title.second{margin-top:15px;padding-top:14px;border-top:1px solid #eceef1}.practice-section-title>div{display:flex;align-items:center;gap:9px}.practice-section-title>div>span{width:27px;height:27px;border-radius:8px;display:grid;place-items:center;background:#8a0d23;color:#fff;font-size:9px;font-weight:950}.practice-section-title>div>div{display:flex;flex-direction:column}.practice-section-title b{font-size:12px}.practice-section-title small{font-size:9px;color:#8b929c;margin-top:1px}.practice-clear{border:0;background:#f5f1f2;color:#801126;font-size:9px;font-weight:900;border-radius:7px;padding:6px 9px}
.practice-topic-search{height:36px;display:flex;align-items:center;gap:7px;border:1px solid #e0e3e7;border-radius:9px;padding:0 10px;background:#fafbfc}.practice-topic-search svg{width:15px;color:#9097a1}.practice-topic-search input{border:0;outline:0;background:transparent;width:100%;font-size:10.5px}.practice-topic-list{margin-top:7px;border:1px solid #e4e7eb;border-radius:10px;max-height:225px;overflow:auto;background:#fff}.practice-topic-row{display:block;border-bottom:1px solid #f0f1f3}.practice-topic-row:last-child{border-bottom:0}.practice-topic-row>input{position:absolute;opacity:0;pointer-events:none}.practice-topic-row>span{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px 8px calc(10px + var(--depth,0)*12px);cursor:pointer;transition:.15s}.practice-topic-row>span:before{content:"";width:14px;height:14px;border:1.5px solid #cbd0d7;border-radius:4px;background:#fff;flex:0 0 auto}.practice-topic-row>span b{font-size:10.5px;font-weight:800;flex:1}.practice-topic-row>span small{font-size:8.5px;color:#8d949d;white-space:nowrap}.practice-topic-row>input:checked+span{background:#fff5f6;color:#7f0c21}.practice-topic-row>input:checked+span:before{background:#8a0d23;border-color:#8a0d23;box-shadow:inset 0 0 0 3px #fff}
.practice-diff-list{display:flex;flex-wrap:wrap;gap:7px}.practice-diff-list label input{position:absolute;opacity:0}.practice-diff-list label span{display:block;padding:7px 10px;border:1px solid #e0e3e7;border-radius:8px;background:#fff;font-size:9.5px;font-weight:850;color:#59616d;cursor:pointer}.practice-diff-list label input:checked+span{background:#8a0d23;color:#fff;border-color:#8a0d23}.practice-config-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.practice-config-grid label{display:grid;gap:4px}.practice-config-grid label>span{font-size:8.5px;font-weight:900;color:#747d88;text-transform:uppercase}.practice-config-grid label>div{display:flex;align-items:center;border:1px solid #dfe3e7;border-radius:9px;overflow:hidden;background:#fff}.practice-config-grid input{min-width:0;width:100%;height:38px;border:0;outline:0;padding:0 10px;font-weight:850;color:#343b45}.practice-config-grid em{font-style:normal;font-size:9px;color:#89909a;padding-right:10px;white-space:nowrap}.practice-options{display:flex;gap:14px;margin-top:11px;flex-wrap:wrap}.practice-options label{display:flex;align-items:center;gap:6px;font-size:9.5px;font-weight:750;color:#616a75}.practice-options input{width:14px;height:14px;accent-color:#850c21}.practice-pool-info{margin-top:10px;padding:8px 10px;border-radius:8px;background:#f6f7f8;color:#737b86;font-size:9px}.practice-start{width:100%;margin-top:10px;min-height:42px;letter-spacing:.02em}
.practice-bank-summary{padding:13px}.practice-bank-summary>b{font-size:11px}.practice-bank-summary>div{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:9px 0}.practice-bank-summary>div span{background:#f7f8fa;border-radius:9px;padding:8px;font-size:8.5px;color:#727a85}.practice-bank-summary strong{display:block;font-size:18px;color:#7e0c21}.practice-bank-summary>small{font-size:8.5px;color:#8d949d;line-height:1.4}.practice-history{margin-top:11px}.practice-history-head{display:flex;align-items:center;justify-content:space-between;margin:0 2px 7px}.practice-history-head b{font-size:10.5px}.practice-history-head span{font-size:8.5px;color:#8c949d}.practice-history-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;background:#fff;border:1px solid #e6e8ec;border-radius:11px;padding:9px 10px;margin-bottom:7px;align-items:center}.practice-history-card>div:first-child{display:flex;flex-direction:column;gap:1px}.practice-history-card>div:first-child span{font-size:7.5px;color:#969ca4}.practice-history-card>div:first-child b{font-size:10px}.practice-history-card>div:first-child small{font-size:8px;color:#8c939c}.practice-history-score{text-align:right;line-height:1}.practice-history-score strong{font-size:17px;color:#7d0c21}.practice-history-score span{font-size:8px;color:#90969e}.practice-history-card .btn{grid-column:1/-1;width:100%;height:30px;padding:4px 8px;font-size:9px}
.practice-body-grid{grid-template-columns:190px minmax(0,1fr) 235px}.practice-side-panel{display:flex;flex-direction:column;gap:10px;min-width:0}.practice-learning-note{padding:13px;display:flex;flex-direction:column;gap:7px}.practice-learning-note b{display:flex;align-items:center;gap:6px;font-size:10.5px;color:#7e0c21}.practice-learning-note span{font-size:9px;color:#747c87;line-height:1.5}.practice-exam .exam-match-name small{display:block}.practice-review-modal .review-summary{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:1100px){.practice-layout{grid-template-columns:1fr}.practice-layout>aside{display:grid;grid-template-columns:1fr 1.5fr;gap:10px}.practice-history{margin-top:0}.practice-body-grid{grid-template-columns:165px minmax(0,1fr)}.practice-side-panel{display:none}}
@media(max-width:760px){.practice-kpis{grid-template-columns:1fr 1fr}.practice-kpis>div:first-child{grid-column:1/-1}.practice-config-grid{grid-template-columns:1fr}.practice-layout>aside{display:block}.practice-history{margin-top:10px}.practice-body-grid{display:block}.practice-body-grid>.qnav{margin-bottom:8px}.practice-review-modal .review-summary{grid-template-columns:1fr 1fr}.practice-resume{align-items:stretch;flex-direction:column}.practice-resume .btn{width:100%}}

/* ===== V0.90: Thiết lập Luyện tập ===== */
.practice-settings-card{margin-top:16px}.practice-settings-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.practice-settings-head h3{margin:0 0 5px;color:#7f091c}.practice-settings-head p{margin:0}.practice-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,220px));gap:14px;margin-top:16px}.practice-settings-card .actions{margin-top:14px}@media(max-width:760px){.practice-settings-head{flex-direction:column}.practice-settings-grid{grid-template-columns:1fr}}

/* ===== V0.91: Luyện tập - giao diện ổn định + phân hệ giáo viên ===== */
.practice-student-page,.practice-admin-page{width:100%;min-width:0}
.practice-student-stats,.practice-admin-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:10px}
.practice-student-stats>div,.practice-admin-kpis>div{background:#fff;border:1px solid #e7e9ed;border-radius:11px;padding:10px 12px;min-width:0}
.practice-student-stats span,.practice-admin-kpis span{display:block;font-size:9px;font-weight:850;color:#858d98;text-transform:uppercase;letter-spacing:.045em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.practice-student-stats b,.practice-admin-kpis b{display:block;margin-top:3px;font-size:20px;line-height:1.05;color:#7f0b20}
.practice-student-stats b small,.practice-admin-kpis b small{font-size:9px;color:#8d949d;font-weight:800;margin-left:2px}
.practice-resume-v91{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff8f9;border:1px solid #ead4d9;border-radius:11px;padding:10px 12px;margin-bottom:10px}
.practice-resume-v91>div{display:flex;align-items:center;gap:10px;min-width:0}.practice-resume-v91>div>span:last-child{display:flex;flex-direction:column;min-width:0}.practice-resume-v91 b{font-size:11.5px}.practice-resume-v91 small{font-size:9px;color:#7d8590;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.practice-student-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:11px;align-items:start}
.practice-create-card{padding:13px;min-width:0}.practice-create-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:10px;border-bottom:1px solid #eceef1}.practice-create-head>div{display:flex;flex-direction:column;gap:2px}.practice-create-head b{font-size:13px;color:#4c545f}.practice-create-head span{font-size:9.5px;color:#8a919b}
.practice-block{padding-top:12px}.practice-block+.practice-block{margin-top:11px;border-top:1px solid #eef0f2}.practice-block-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.practice-block-head>b{font-size:11px;color:#4f5762}.practice-block-head>span{font-size:8.8px;color:#8b929c}.practice-block-head button{border:0;background:#f4f5f7;color:#6b7380;border-radius:7px;padding:5px 8px;font-size:8.5px;font-weight:850}
.practice-search{height:34px;display:flex;align-items:center;gap:7px;background:#f8f9fa;border:1px solid #e1e4e8;border-radius:8px;padding:0 9px}.practice-search .ico{width:14px;height:14px;color:#7e8793}.practice-search input{border:0;outline:0;background:transparent;width:100%;font-size:10px;min-width:0}
.practice-topic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:7px;max-height:205px;overflow:auto;padding-right:2px}
.practice-topic-choice{position:relative;display:grid;grid-template-columns:16px minmax(0,1fr);gap:7px;align-items:center;border:1px solid #e5e7eb;border-radius:8px;background:#fff;padding:7px 8px;cursor:pointer;min-width:0}.practice-topic-choice:hover{border-color:#d6b8bf;background:#fffafa}.practice-topic-choice>input{position:absolute;opacity:0;pointer-events:none}.practice-topic-box{width:14px;height:14px;border:1.5px solid #c8ced5;border-radius:4px;display:block;background:#fff;position:relative}.practice-topic-choice>input:checked+.practice-topic-box{background:#850c21;border-color:#850c21}.practice-topic-choice>input:checked+.practice-topic-box:after{content:"";position:absolute;left:3px;top:1px;width:5px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.practice-topic-copy{display:flex;flex-direction:column;min-width:0}.practice-topic-copy b{font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#4e5661}.practice-topic-copy small{font-size:8px;color:#969ca4;margin-top:1px}.practice-empty-bank{grid-column:1/-1;padding:18px;text-align:center;color:#89919b;font-size:10px;background:#f8f9fa;border-radius:8px}
.practice-student-page .practice-config-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.practice-student-page .practice-config-grid input{height:36px;font-size:11px}.practice-student-page .practice-options{margin-top:9px}.practice-student-page .practice-pool-info{margin-top:8px;padding:7px 9px}.practice-student-page .practice-start{margin-top:8px;min-height:40px}
.practice-student-side{display:flex;flex-direction:column;gap:10px;min-width:0}.practice-bank-summary-v91{padding:12px}.practice-bank-summary-v91>div:first-child{display:flex;flex-direction:column;gap:2px}.practice-bank-summary-v91>div:first-child b{font-size:11px;color:#4e5661}.practice-bank-summary-v91>div:first-child span{font-size:8.5px;color:#9097a0}.practice-bank-numbers{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}.practice-bank-numbers>div{background:#f7f8fa;border-radius:8px;padding:8px}.practice-bank-numbers strong{display:block;font-size:18px;color:#7f0b20}.practice-bank-numbers span{font-size:8.2px;color:#858d97}.practice-history-v91 .practice-history-head{margin:0 2px 6px}.practice-history-empty{padding:12px;font-size:9px;text-align:center}.practice-history-v91 .practice-history-card{margin-bottom:6px}

.practice-admin-page .page-head{margin-bottom:9px}.practice-admin-settings{padding:11px 13px;margin-bottom:10px}.practice-admin-settings-title{display:flex;align-items:center;justify-content:space-between;gap:14px}.practice-admin-settings-title>div{display:flex;flex-direction:column;gap:2px}.practice-admin-settings-title>div>b{font-size:12px;color:#4e5661}.practice-admin-settings-title>div>span{font-size:8.8px;color:#8c939d}.practice-admin-settings-fields{display:grid;grid-template-columns:190px 210px auto;gap:8px;align-items:end;margin-top:9px}.practice-admin-settings-fields>label{display:grid;gap:4px}.practice-admin-settings-fields>label>span{font-size:8.5px;font-weight:850;color:#7e8792;text-transform:uppercase}.practice-admin-settings-fields input{height:34px;border:1px solid #dde1e6;border-radius:8px;padding:0 9px;outline:none;min-width:0;width:100%}.practice-admin-settings-fields label>div{display:flex;align-items:center;border:1px solid #dde1e6;border-radius:8px;background:#fff;overflow:hidden}.practice-admin-settings-fields label>div input{border:0}.practice-admin-settings-fields em{font-style:normal;font-size:8.5px;color:#8b929c;padding-right:9px}.practice-admin-settings-fields>.btn{height:34px;justify-self:start}
.practice-admin-list{padding:0;overflow:hidden}.practice-admin-list-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid #e8eaed}.practice-admin-list-head>div:first-child{display:flex;flex-direction:column;gap:1px}.practice-admin-list-head b{font-size:11px;color:#4d5560}.practice-admin-list-head span{font-size:8px;color:#9399a2}.practice-admin-filters{display:flex;gap:7px;align-items:center}.practice-admin-search{height:32px;width:250px;display:flex;align-items:center;gap:6px;border:1px solid #dfe3e7;background:#f8f9fa;border-radius:8px;padding:0 8px}.practice-admin-search .ico{width:14px;height:14px;color:#808995}.practice-admin-search input{border:0;outline:0;background:transparent;width:100%;font-size:9.5px}.practice-admin-filters select{height:32px;border:1px solid #dfe3e7;border-radius:8px;background:#fff;padding:0 8px;font-size:9.5px;color:#555e6a}.practice-admin-table{min-width:900px}.practice-admin-table th,.practice-admin-table td{padding:9px 10px}.practice-admin-progress{min-width:120px}.practice-admin-progress>span{display:block;font-size:9px;font-weight:850;color:#626b77;margin-bottom:4px}.practice-admin-progress .progressbar{height:6px}.practice-admin-modal{width:min(1180px,95vw);height:min(850px,93vh);max-width:none;display:flex;flex-direction:column;overflow:hidden}.practice-admin-modal .review-body{overflow:auto}.practice-admin-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.practice-admin-live-note{margin:0 12px 10px;padding:8px 10px;border-radius:8px;background:#fff8e8;border:1px solid #efdfb8;color:#765a1d;font-size:9px}.practice-live-q{background:#fff;border:1px solid #e5e8ec;border-radius:10px;padding:11px;margin-bottom:9px}.practice-live-qhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.practice-live-qhead b{font-size:10px;color:#7f0b20}.practice-live-qhead span{font-size:8px;color:#8c939d;text-transform:uppercase;font-weight:850}.practice-live-options{display:grid;gap:6px;margin-top:8px}.practice-live-option{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:7px;align-items:start;border:1px solid #e6e8ec;border-radius:8px;padding:7px 8px;font-size:9.5px}.practice-live-option.selected{border-color:#9d2639;background:#fff5f6}.practice-live-option>span{font-size:8px;font-weight:850;color:#8c0b21}.practice-live-tf{display:grid;gap:6px;margin-top:8px}.practice-live-tf>div{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;border:1px solid #e6e8ec;border-radius:8px;padding:7px 8px;font-size:9.5px}.practice-live-tf em{font-style:normal;white-space:nowrap;font-size:8.5px;font-weight:850;color:#8e949d}.practice-live-tf em.yes{color:#1f7f49}.practice-live-tf em.no{color:#a1142c}

@media(max-width:1100px){.practice-student-grid{grid-template-columns:1fr}.practice-student-side{display:grid;grid-template-columns:300px minmax(0,1fr);align-items:start}.practice-admin-settings-fields{grid-template-columns:1fr 1fr auto}.practice-admin-search{width:210px}}
@media(max-width:760px){.practice-student-stats,.practice-admin-kpis{grid-template-columns:1fr 1fr}.practice-topic-grid{grid-template-columns:1fr}.practice-student-page .practice-config-grid{grid-template-columns:1fr}.practice-student-side{display:block}.practice-history-v91{margin-top:10px}.practice-resume-v91{align-items:stretch;flex-direction:column}.practice-resume-v91 .btn{width:100%}.practice-admin-settings-title{align-items:flex-start;flex-direction:column}.practice-admin-settings-fields{grid-template-columns:1fr}.practice-admin-settings-fields>.btn{width:100%}.practice-admin-list-head{align-items:stretch;flex-direction:column}.practice-admin-filters{align-items:stretch;flex-direction:column}.practice-admin-search{width:100%}.practice-admin-summary{grid-template-columns:1fr 1fr}}

/* ===== V0.92: sửa giao diện làm bài Luyện tập + đưa cấu hình về Cấu hình ===== */
.practice-config-card{margin-top:14px;padding:16px 18px}
.practice-config-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.practice-config-head h3{margin:0;color:#7f091c;font-size:17px}.practice-config-head p{margin:4px 0 0;font-size:11px}
.practice-config-settings-grid{display:grid;grid-template-columns:minmax(220px,320px) minmax(220px,320px);gap:12px;margin-top:12px}.practice-config-settings-grid .field{margin:0}.practice-config-settings-grid .field>span{font-size:11px;font-weight:850;color:#555d68}.practice-config-settings-grid input{height:40px}

.practice-exam{max-width:1700px;width:100%;margin:0 auto}
.practice-exam-toolbar{display:grid;grid-template-columns:minmax(210px,1fr) auto auto auto;align-items:center;gap:10px;min-height:50px;margin:0 0 9px;padding:7px 10px;background:#fff;border:1px solid #e2e5ea;border-radius:12px;box-shadow:0 4px 14px rgba(36,28,32,.05)}
.practice-exam-title{display:flex;align-items:center;min-width:0}.practice-exam-title>div{display:flex;flex-direction:column;min-width:0}.practice-exam-title b{font-size:11px;letter-spacing:.045em;color:#7f0b20;white-space:nowrap}.practice-exam-title small{margin-top:1px;font-size:8.5px;color:#858d97;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.practice-exam-title .live-dot{width:7px;height:7px;margin:0 9px 0 2px}
.practice-view-switch{justify-self:center;padding:2px;border-radius:9px}.practice-view-switch button{padding:6px 10px;font-size:9.5px;border-radius:7px}
.practice-exam-timer{height:34px;display:flex;align-items:center;gap:6px;padding:0 10px;border:1px solid #ead8dc;background:#fff8f9;border-radius:9px;white-space:nowrap}.practice-exam-timer .ico{width:15px;height:15px;color:#8e0b22}.practice-exam-timer span{font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#8a6870}.practice-exam-timer b{font-size:14px;font-variant-numeric:tabular-nums;color:#8d0b21;letter-spacing:.03em}
.practice-exam-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}.practice-exam-actions .btn{height:34px;padding:0 9px;font-size:9px;border-radius:8px;white-space:nowrap}.practice-exam-actions .ico{width:14px;height:14px}
.practice-body-grid{grid-template-columns:190px minmax(0,1fr) 220px;gap:10px;min-height:0}.practice-body-grid>.qnav{padding:10px}.practice-body-grid .qnav-title{font-size:10.5px;margin-bottom:7px;padding-bottom:7px}.practice-body-grid .qsection{margin-bottom:10px}.practice-body-grid .qsection-title{font-size:9px;margin-bottom:5px;color:#6f7681}.practice-body-grid .qnav-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.practice-body-grid .qnum{height:27px;font-size:9.5px;border-radius:6px;padding:0}.practice-body-grid .legend{font-size:8.2px;gap:4px;padding-top:7px;margin-top:5px}.practice-body-grid .legend-dot{width:8px;height:8px}.practice-body-grid .submit-wrap{margin-top:7px}.practice-body-grid .submit-wrap .btn{height:32px;padding:0 8px;font-size:9px}
.practice-body-grid .exam-question-area{min-width:0;min-height:0;height:100%}.practice-exam .question-card{padding:18px 20px}.practice-exam .question-topline{margin-bottom:14px}.practice-exam .stem{font-size:16px;line-height:1.55;margin-bottom:15px}.practice-exam .option{padding:10px 12px;margin:7px 0}.practice-exam .tf-row{padding:9px 10px;margin:7px 0}.practice-exam .exam-actions{margin-top:14px}.practice-exam .exam-actions .btn{min-height:36px;padding:8px 11px;font-size:10px}
.practice-side-panel{min-width:0}.practice-side-panel .side-card,.practice-side-panel .practice-learning-note{padding:10px 11px}.practice-side-panel .side-title{font-size:10px;margin-bottom:7px}.practice-side-panel .side-title .ico{width:15px;height:15px}.practice-side-panel .match-info{font-size:8.8px;gap:4px}.practice-side-panel .match-info div{padding-bottom:4px}.practice-learning-note{gap:5px}.practice-learning-note b{font-size:9.5px}.practice-learning-note span{font-size:8.5px;line-height:1.45}
.app-shell.exam-mode.exam-fullscreen .practice-exam-toolbar{margin-bottom:7px}

@media (min-width:901px){
  .exam-content-fixed .practice-exam-toolbar{flex:0 0 auto}
  .exam-content-fixed .practice-body-grid{flex:1 1 auto;min-height:0;height:0}
  .exam-content-fixed .practice-body-grid .qnav-scroll{overflow:auto;max-height:none;min-height:0;flex:1 1 auto;padding-right:2px}
  .exam-content-fixed .practice-body-grid .qnav{height:100%;display:flex;flex-direction:column}
  .exam-content-fixed .practice-body-grid .question-card,.exam-content-fixed .practice-body-grid .all-question-list{height:100%;max-height:100%;min-height:0;overflow-y:auto}
  .exam-content-fixed .practice-side-panel{height:100%;overflow:hidden}
}
@media(max-width:1050px){.practice-exam-toolbar{grid-template-columns:minmax(190px,1fr) auto auto}.practice-exam-actions{grid-column:1/-1;justify-content:flex-end}.practice-body-grid{grid-template-columns:175px minmax(0,1fr) 195px}}
@media(max-width:900px){.practice-exam-toolbar{grid-template-columns:1fr auto;gap:7px}.practice-exam-title{grid-column:1/-1}.practice-view-switch{justify-self:start}.practice-exam-actions{grid-column:1/-1;justify-content:flex-start;flex-wrap:wrap}.practice-body-grid{grid-template-columns:1fr!important}.practice-body-grid>.qnav,.practice-side-panel{position:static!important;height:auto!important}.practice-body-grid .qnav-scroll{max-height:180px}.practice-body-grid .qnav-grid{grid-template-columns:repeat(10,minmax(28px,1fr))}.practice-side-panel{display:grid;grid-template-columns:1fr 1fr}.practice-config-head{flex-direction:column}.practice-config-settings-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.practice-exam-toolbar{grid-template-columns:1fr}.practice-view-switch,.practice-exam-timer{justify-self:stretch}.practice-view-switch{display:grid;grid-template-columns:1fr 1fr}.practice-exam-timer{justify-content:center}.practice-exam-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.practice-exam-actions .btn{width:100%}.practice-body-grid .qnav-grid{grid-template-columns:repeat(7,minmax(28px,1fr))}.practice-side-panel{display:block}.practice-learning-note{margin-top:8px}.practice-config-settings-grid{grid-template-columns:1fr}}

/* ===== V0.93 · THI TRỰC TUYẾN ===== */
.online-exam-admin-page,.online-exam-student-page{display:flex;flex-direction:column;gap:14px;min-height:0}
.online-exam-tabs{margin-top:0}
.online-exam-admin-card{padding:0;overflow:hidden}
.online-exam-admin-card .table{margin:0}
.online-exam-admin-card .table td{vertical-align:middle}
.online-exam-admin-card .table-actions{display:flex;align-items:center;gap:7px;justify-content:flex-end;white-space:nowrap}
.online-exam-empty{padding:28px;text-align:center;color:var(--muted);font-weight:700}
.online-exam-student-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.online-exam-student-card{background:#fff;border:1px solid #eadde0;border-radius:16px;padding:18px;box-shadow:0 7px 22px rgba(87,16,29,.05);display:flex;flex-direction:column;gap:14px;min-height:250px}
.online-exam-student-card:hover{border-color:#d9b9c0;box-shadow:0 10px 28px rgba(87,16,29,.08)}
.online-exam-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.online-exam-card-head h3{font-size:20px;margin:4px 0 0;color:#311319;line-height:1.25}
.online-exam-card-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.online-exam-card-meta>div{background:#faf7f8;border:1px solid #f0e5e8;border-radius:11px;padding:10px 11px;display:flex;flex-direction:column;gap:4px}
.online-exam-card-meta span{font-size:11px;color:#77646a;display:flex;align-items:center;gap:4px}.online-exam-card-meta .ico{width:13px;height:13px}.online-exam-card-meta b{font-size:14px;color:#4f1722}
.online-exam-window{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:12px;color:#6f5d62}.online-exam-window span{background:#fff;border-top:1px dashed #e5d8dc;padding-top:9px}.online-exam-window b{display:block;color:#3a2429;margin-top:2px}
.online-exam-card-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px}.online-exam-card-foot>span{font-size:12px;color:#75656a;line-height:1.4;max-width:62%}.online-exam-card-foot em{font-size:12px;color:#8c7a7f;font-style:normal;font-weight:700;text-align:right}
.online-builder-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;border-bottom:1px solid #eee;padding-bottom:14px}.online-builder-head h2{margin:3px 0 4px;font-size:24px}.online-builder-head p{margin:0;color:var(--muted)}
.online-builder-body{display:flex;flex-direction:column;gap:13px;max-height:68vh;overflow:auto;padding:14px 2px 4px}.online-builder-section{border:1px solid #eadde1;border-radius:14px;background:#fff;padding:15px}.online-builder-section h3{margin:0 0 12px;font-size:16px;color:#5d1021}.online-builder-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.online-builder-title-row h3{margin:0}
.online-time-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px}.online-time-grid label{display:flex;flex-direction:column;gap:6px}.online-time-grid label>span{font-size:12px;font-weight:800;color:#5f4d52}.online-time-grid input,.online-time-grid select{height:40px;border:1px solid #dcd1d4;border-radius:9px;padding:0 9px;background:#fff}
.online-student-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:235px;overflow:auto;margin-top:9px}.online-student-picker label{display:flex;align-items:center;gap:9px;padding:8px 10px;border:1px solid #eee2e5;border-radius:10px;cursor:pointer}.online-student-picker label:has(input:checked){border-color:#c86b7d;background:#fff7f8}.online-student-picker label>span:last-child{display:flex;flex-direction:column;min-width:0}.online-student-picker small{color:#8a777c}.online-student-picker input{accent-color:#9b0f29}
.online-count-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.online-count-grid label{background:#faf7f8;border:1px solid #eee1e4;border-radius:11px;padding:11px}.online-count-grid label>span{display:block;font-size:12px;font-weight:800;color:#625056;margin-bottom:7px}.online-count-grid label>div{display:flex;align-items:center;gap:7px}.online-count-grid input{width:90px;height:38px;border:1px solid #d8cdd0;border-radius:8px;padding:0 8px}.online-count-grid em{font-style:normal;color:#87757a;font-size:12px}
.online-chip-list{display:flex;flex-wrap:wrap;gap:7px;margin:7px 0 12px}.online-chip-list label{cursor:pointer}.online-chip-list input{display:none}.online-chip-list span{display:block;padding:7px 10px;border:1px solid #ded3d6;border-radius:999px;font-size:12px;font-weight:700;background:#fff}.online-chip-list input:checked+span{background:#99162c;border-color:#99162c;color:#fff}
.online-question-picker{max-height:280px;overflow:auto;border:1px solid #ece1e4;border-radius:11px;margin-top:8px}.online-question-picker label{display:flex;gap:9px;padding:9px 11px;border-bottom:1px solid #f1e8ea;cursor:pointer}.online-question-picker label:last-child{border-bottom:0}.online-question-picker label:has(input:checked){background:#fff5f7}.online-question-picker label>span{display:flex;flex-direction:column;gap:3px}.online-question-picker b{font-size:12px;color:#68162a}.online-question-picker small{font-size:12px;color:#67585c;line-height:1.35}.online-question-picker input{margin-top:2px;accent-color:#9b0f29}
.online-builder-foot{display:flex;justify-content:flex-end;gap:9px;padding-top:13px;border-top:1px solid #eee;margin-top:12px}.online-builder-body textarea{resize:vertical;min-height:62px}
.modal:has(.online-builder-head){width:min(980px,94vw);max-width:980px}
.online-exam-monitor{width:min(1120px,96vw)!important;max-width:1120px!important;max-height:90vh;overflow:auto}.online-exam-monitor-kpi{grid-template-columns:repeat(4,1fr)}.online-monitor-table{margin-top:12px;max-height:56vh;overflow:auto}.online-monitor-table thead th{position:sticky;top:0;background:#fff;z-index:2}
.online-exam-play .practice-exam-title small{max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.online-exam-toolbar{border-bottom-color:#eadde0}.online-exam-play .practice-learning-note{border-left:3px solid #99162c}
@media(max-width:1100px){.online-exam-student-grid{grid-template-columns:1fr}.online-exam-card-meta{grid-template-columns:repeat(2,1fr)}.online-time-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.online-student-picker{grid-template-columns:1fr}.online-time-grid{grid-template-columns:1fr}.online-exam-card-meta{grid-template-columns:1fr 1fr}.online-exam-window{grid-template-columns:1fr}.online-exam-card-foot{align-items:stretch;flex-direction:column}.online-exam-card-foot>span{max-width:none}.online-exam-card-foot .btn{width:100%}}

/* ===== V0.94 · THI TRỰC TUYẾN: NGUỒN ĐỀ + SỬA KỲ THI ===== */
.modal:has(.online-builder-head){width:min(1220px,96vw);max-width:1220px}
.online-source-title{margin-bottom:12px}
.online-source-title h3{margin:0 0 3px}.online-source-title p{margin:0}
.online-source-mini{display:flex!important;align-items:center;gap:4px;color:#8b6d74!important;margin-top:3px}.online-source-mini .ico{width:12px;height:12px}
.online-exam-student-table-card{padding:0;overflow:hidden}
.online-exam-student-row td{vertical-align:middle}
.online-exam-student-row .table-actions{display:flex;justify-content:flex-end;align-items:center;white-space:nowrap}
.online-student-action-note{font-size:11px;font-weight:700;color:#8e7d82;white-space:nowrap}
.student-exam-note{max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8c7b80!important}
.oe-word-existing{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border:1px solid #d9eadf;background:#f8fffa;border-radius:12px;margin-top:12px}.oe-word-existing>div{display:flex;align-items:center;gap:10px}.oe-word-existing .ico{color:#189259;width:22px;height:22px}.oe-word-existing span{display:flex;flex-direction:column}.oe-word-existing small{color:#728078;margin-top:2px}.oe-word-existing em{font-style:normal;font-size:12px;color:#6d7b72}
.word-online-result{margin-top:12px}.oe-word-preview-list{max-height:360px;overflow:auto;border:1px solid #eee3e6;border-radius:12px;background:#fff;margin-top:10px}.oe-word-preview-q{padding:14px 16px;border-bottom:1px solid #f0e7e9}.oe-word-preview-q:last-child{border-bottom:0}.oe-word-preview-q>b{display:block;color:#7f1025;font-size:12px;margin-bottom:8px}.oe-word-preview-q .stem{font-size:14px;line-height:1.5;margin-bottom:8px}.oe-word-preview-options{display:grid;gap:6px;font-size:13px}.oe-word-preview-options>div{display:flex;gap:7px;padding:7px 9px;border-radius:8px;background:#faf8f9}.oe-word-preview-options strong{color:#7d1528;min-width:22px}.oe-word-save-row{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:10px}
@media(max-width:900px){.modal:has(.online-builder-head){width:96vw}.online-exam-student-table-card .table{min-width:850px}}


/* ===== V0.95: Tạo/Sửa kỳ thi full màn hình hai cột ===== */
.oe-builder-backdrop{padding:0!important;align-items:stretch!important;justify-content:stretch!important;background:rgba(26,14,18,.34)}
.oe-builder-backdrop>.modal.oe-builder-full{width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;margin:0!important;border-radius:0!important;padding:0!important;overflow:hidden!important;display:grid!important;grid-template-rows:82px minmax(0,1fr) 66px;background:#f5f6f8;box-shadow:none!important}
.oe-builder-full .online-builder-head{height:82px;padding:15px 24px!important;margin:0!important;background:#fff;border-bottom:1px solid #e4e6ea;align-items:center}
.oe-builder-full .online-builder-head h2{font-size:21px;margin:2px 0 2px}.oe-builder-full .online-builder-head p{font-size:10.5px}.oe-builder-full .online-builder-head .review-close{position:static}
.oe-builder-workspace{min-height:0;display:grid;grid-template-columns:270px minmax(0,1fr);overflow:hidden;background:#f5f6f8}
.oe-builder-side{min-height:0;background:#fff;border-right:1px solid #e1e4e8;display:flex;flex-direction:column;padding:17px 13px 14px;box-shadow:5px 0 18px rgba(45,26,31,.035);z-index:2}
.oe-builder-side-title{padding:0 9px 13px;border-bottom:1px solid #eceef1}.oe-builder-side-title span{display:block;font-size:8.5px;color:#9a8b90;font-weight:900;letter-spacing:.08em}.oe-builder-side-title b{display:block;margin-top:3px;color:#781126;font-size:16px}
.oe-builder-nav{display:grid;gap:5px;padding:12px 0}.oe-builder-nav button{width:100%;border:1px solid transparent;background:transparent;border-radius:11px;padding:10px 9px;display:grid;grid-template-columns:30px minmax(0,1fr);gap:8px;text-align:left;cursor:pointer;transition:.16s ease}.oe-builder-nav button>span{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:#f4f5f7;color:#8b929b;font-size:9px;font-weight:900}.oe-builder-nav button div{min-width:0}.oe-builder-nav button b{display:block;color:#4b5059;font-size:11px}.oe-builder-nav button small{display:block;margin-top:2px;color:#969ca5;font-size:8.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.oe-builder-nav button:hover{background:#faf7f8;border-color:#eee2e5}.oe-builder-nav button.active{background:#fff3f5;border-color:#eacbd2;box-shadow:0 5px 14px rgba(124,16,39,.06)}.oe-builder-nav button.active>span{background:#8e1028;color:#fff}.oe-builder-nav button.active b{color:#791126}
.oe-builder-side-note{margin-top:auto;border:1px solid #e5e8ec;background:#fafbfc;border-radius:11px;padding:10px 11px;color:#808792;font-size:9px;line-height:1.45}.oe-builder-side-note b{display:flex;align-items:center;gap:5px;color:#5d646d;margin-bottom:3px}.oe-builder-side-note .ico{width:13px;height:13px}
.oe-builder-main{min-width:0;min-height:0;overflow:auto;padding:18px 22px 28px;scrollbar-width:thin}.oe-builder-main>.online-builder-section{max-width:1280px;margin:0 auto!important;border:0!important;border-radius:15px!important;box-shadow:0 4px 18px rgba(44,27,32,.04);padding:20px!important}.oe-builder-main>.online-builder-section.hidden{display:none!important}.oe-builder-main>.builder-alert{max-width:1280px;margin:10px auto 0}
.oe-builder-full .online-builder-foot{height:66px;margin:0!important;padding:10px 22px!important;background:#fff;border-top:1px solid #e1e4e8;align-items:center;box-shadow:0 -5px 18px rgba(42,25,30,.035)}
.oe-builder-full .online-builder-foot .btn{min-width:110px}.oe-builder-full .online-builder-foot .btn.primary{min-width:170px}
.oe-builder-full .online-student-picker{max-height:calc(100dvh - 310px);overflow:auto;align-content:start}.oe-builder-full .builder-card{box-shadow:none}
.oe-review-panel-head{padding-bottom:13px;border-bottom:1px solid #eceef1}.oe-review-panel-head h3{margin:4px 0 4px!important;font-size:22px!important;color:#3d2026!important}.oe-review-panel-head p{margin:0;color:#8a9099;font-size:10.5px}.oe-builder-review-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:15px}.oe-builder-review-grid>div{border:1px solid #e6e8ec;background:#fafbfc;border-radius:11px;padding:11px 12px}.oe-builder-review-grid>div.wide{grid-column:span 2}.oe-builder-review-grid span{display:block;color:#90969f;font-size:8.5px;font-weight:850;text-transform:uppercase;letter-spacing:.03em}.oe-builder-review-grid b{display:block;margin-top:4px;color:#424850;font-size:12px;line-height:1.4}.oe-review-ready{margin-top:13px;border:1px solid #cae8d5;background:#f2faf5;color:#2f704a;border-radius:11px;padding:11px 12px;font-size:10px;display:flex;gap:6px;align-items:center}.oe-review-ready .ico{width:15px;height:15px}

/* Word trong Thi trực tuyến: danh sách câu + xem/chỉnh sửa câu đang chọn */
.oe-builder-full #oeWordMode{min-height:calc(100dvh - 280px);display:flex;flex-direction:column}.oe-builder-full #oeWordMode.hidden{display:none!important}.oe-builder-full .word-online-result{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;margin-top:10px}.oe-word-empty-large{min-height:360px!important;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:5px}.oe-word-empty-large b{color:#555d67;font-size:13px}.oe-word-empty-large span{color:#969da6;font-size:10px;max-width:420px;text-align:center}
.oe-word-summary{flex:0 0 auto;margin:0!important}.oe-word-workspace{flex:1 1 auto;min-height:420px;display:grid;grid-template-columns:250px minmax(0,1fr);border:1px solid #e1e4e8;border-radius:13px;overflow:hidden;background:#fff;margin-top:9px}.oe-word-question-list{min-width:0;min-height:0;border-right:1px solid #e3e6ea;background:#fafbfc;display:flex;flex-direction:column}.oe-word-list-head{height:45px;flex:0 0 45px;padding:0 11px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e4e7eb}.oe-word-list-head b{font-size:10px;color:#5a616b}.oe-word-list-head span{font-size:8.5px;color:#8d949e;background:#fff;border:1px solid #e1e4e8;border-radius:12px;padding:3px 7px}.oe-word-list-scroll{flex:1 1 auto;min-height:0;overflow:auto;padding:7px;scrollbar-width:thin}.oe-word-list-scroll button{width:100%;border:1px solid transparent;background:transparent;border-radius:9px;padding:8px;display:grid;grid-template-columns:34px minmax(0,1fr);gap:7px;text-align:left;cursor:pointer;margin-bottom:3px}.oe-word-list-scroll button:hover{background:#fff;border-color:#e3e6ea}.oe-word-list-scroll button.active{background:#fff0f3;border-color:#e5c4cc}.oe-word-list-scroll button .word-qtype{margin:0;align-self:start}.oe-word-list-scroll button b{display:block;color:#555c66;font-size:9.5px}.oe-word-list-scroll button small{display:block;margin-top:2px;color:#959ba4;font-size:8px;line-height:1.35}.oe-word-list-scroll button.active b{color:#831027}
.oe-word-question-main{min-width:0;min-height:0;display:flex;flex-direction:column;background:#f6f7f9}.oe-word-main-toolbar{height:48px;flex:0 0 48px;padding:6px 11px;background:#fff;border-bottom:1px solid #e1e4e8;display:flex;align-items:center;justify-content:space-between;gap:10px}.oe-word-main-toolbar .word-view-tabs{margin:0}.oe-word-main-toolbar .word-view-tabs button{min-height:34px}.oe-word-question-scroll{flex:1 1 auto;min-height:0;overflow:auto;padding:13px 15px 28px;scrollbar-width:thin}.oe-word-one{max-width:1000px!important;margin:0 auto!important;width:100%}.oe-word-one.word-editor-q{margin-bottom:0!important}.oe-word-type-switch{display:flex;align-items:center;gap:6px;font-size:8.5px;color:#8b929b}.oe-word-type-switch select{height:29px;border:1px solid #d9dde2;border-radius:7px;background:#fff;color:#4f5660;font-size:9px}.oe-word-explain-input{width:100%;min-height:84px;border:1px solid #dfe3e7;border-radius:9px;padding:9px;resize:vertical}.oe-word-explanation{margin:10px 12px 12px;border:1px solid #e2e5e9;background:#fafbfc;border-radius:9px;padding:9px 10px}.oe-word-explanation b{display:block;color:#6e1628;font-size:9px;margin-bottom:3px}.oe-word-explanation span{font-size:10px;color:#5c636d;line-height:1.5}.oe-word-errors{flex:0 0 auto;margin:8px 0 0!important}
.oe-word-save-row{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:9px!important;border:1px solid #e5e7eb;background:#fafbfc;border-radius:11px;padding:9px 10px}.oe-word-save-row>div b{display:block;color:#555c66;font-size:9.5px}.oe-word-save-row>div span{display:block;color:#969ca5;font-size:8.5px;margin-top:2px}.oe-word-save-row .btn{white-space:nowrap}

@media(max-width:980px){.oe-builder-workspace{grid-template-columns:220px minmax(640px,1fr);overflow:auto}.oe-builder-side{position:sticky;left:0;height:100%;z-index:5}.oe-builder-main{min-width:640px}.oe-builder-review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.oe-word-workspace{grid-template-columns:220px minmax(0,1fr)}}


/* ===== V0.96: xáo câu theo dạng + xem thử đúng giao diện học sinh ===== */
.oe-builder-foot-left{display:flex;align-items:center;gap:8px}.oe-builder-full .online-builder-foot{justify-content:space-between}.oe-builder-full #oeStudentPreview{border-color:#d9c4c9;background:#fff;color:#791126}.oe-builder-full #oeStudentPreview:hover{background:#fff5f7}
.oe-student-preview-overlay{position:fixed;inset:0;z-index:10080;background:#f4f5f7;padding:10px;overflow:hidden}.oe-student-preview-screen{height:100%;max-width:1700px;margin:0 auto;display:flex;flex-direction:column;min-height:0}.oe-preview-toolbar{flex:0 0 auto;margin-bottom:8px}.oe-preview-toolbar .practice-exam-actions{display:flex!important;grid-column:auto!important}.oe-preview-body{flex:1 1 auto;min-height:0;height:auto!important;overflow:hidden}.oe-preview-body>.qnav,.oe-preview-body>.right-stack{height:100%;max-height:none;position:static}.oe-preview-body>.qnav{display:flex;flex-direction:column}.oe-preview-body .qnav-scroll{flex:1 1 auto;min-height:0;max-height:none;overflow:auto}.oe-preview-body>.exam-question-area{min-height:0;height:100%;overflow:auto;padding-right:3px}.oe-preview-body>.right-stack{overflow:auto}.oe-preview-body .all-question-list{padding-bottom:20px}.oe-preview-body .question-card,.oe-preview-body .all-question-card{box-shadow:none}.oe-preview-body .autosave-status.saved{color:#7b3a48;background:#fff4f6;border-color:#ead3d8}
@media(max-width:1050px){.oe-preview-body{overflow:auto;display:block}.oe-preview-body>.qnav,.oe-preview-body>.right-stack,.oe-preview-body>.exam-question-area{height:auto;overflow:visible}.oe-preview-body>.qnav{margin-bottom:8px}.oe-preview-toolbar{grid-template-columns:1fr auto}.oe-preview-toolbar .practice-exam-title{grid-column:1/-1}.oe-preview-toolbar .practice-exam-actions{grid-column:1/-1!important;justify-content:flex-start}}
@media(max-width:650px){.oe-student-preview-overlay{padding:5px}.oe-preview-toolbar .practice-exam-actions{display:grid!important;grid-template-columns:1fr 1fr;width:100%}.oe-builder-foot-left{gap:5px}.oe-builder-full .online-builder-foot .btn{min-width:0!important}.oe-builder-full #oeStudentPreview{max-width:180px}}

/* ===== V0.97: xem thử chỉ sau khi kỳ thi đã lưu ===== */
.oeSavedPreview{white-space:nowrap}

/* V0.98 - Phòng thi realtime dạng card + xem bài tại chỗ */
.badge.offline{background:#fff1f1;color:#a92b2b;border-color:#f0c7c7}
.online-room-backdrop{padding:18px!important;align-items:stretch!important;justify-content:stretch!important}
.online-exam-room{width:100%!important;max-width:none!important;height:calc(100vh - 36px)!important;max-height:none!important;overflow:hidden!important;display:flex;flex-direction:column;background:#f6f8fb;border-radius:18px}
.online-room-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 22px 14px;background:#fff;border-bottom:1px solid var(--line)}
.online-room-head h2{margin:2px 0 4px;font-size:24px}.online-room-head p{margin:0;color:var(--muted);font-size:13px}
.online-room-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:12px 16px;background:#fff;border-bottom:1px solid var(--line)}
.online-room-kpis>div{border:1px solid var(--line);border-radius:12px;padding:9px 12px;display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.online-room-kpis span{font-size:12px;color:var(--muted);white-space:nowrap}.online-room-kpis b{font-size:18px}.online-room-score{background:#faf7f7}
.online-room-layout{display:grid;grid-template-columns:minmax(420px,44%) minmax(0,56%);gap:12px;padding:12px;flex:1;min-height:0}
.online-room-roster,.online-room-viewer{background:#fff;border:1px solid var(--line);border-radius:14px;min-height:0;overflow:hidden}
.online-room-roster{display:flex;flex-direction:column}
.online-room-roster-head{padding:12px 14px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:9px}
.online-room-roster-head>div:first-child{display:flex;align-items:center;justify-content:space-between}.online-room-roster-head>div:first-child>b{font-size:15px}.online-room-roster-head>div:first-child>span{font-size:12px;color:var(--muted)}
.online-room-filter-row{display:grid!important;grid-template-columns:minmax(0,1fr) 150px;gap:8px}
.online-room-search{height:36px;border:1px solid var(--line);border-radius:9px;display:flex!important;align-items:center;gap:7px;padding:0 10px;background:#fff}.online-room-search svg{width:15px}.online-room-search input{border:0;outline:0;width:100%;min-width:0;background:transparent}
.online-room-filter-row select{height:36px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:0 8px}
.online-room-cards{padding:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;overflow:auto;align-content:start}
.online-room-student-card{position:relative;text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px;min-width:0;cursor:pointer;transition:.16s ease;color:inherit;font:inherit}
.online-room-student-card:hover{border-color:#c6a9ad;box-shadow:0 4px 14px rgba(78,22,31,.07);transform:translateY(-1px)}
.online-room-student-card.selected{border-color:var(--primary);box-shadow:0 0 0 2px rgba(101,25,38,.10)}
.online-room-student-card.running{border-left:4px solid #2c8c59}.online-room-student-card.offline{border-left:4px solid #c44343;background:#fffafa}.online-room-student-card.finished{border-left:4px solid #6c6f83}.online-room-student-card.waiting{border-left:4px solid #c6a55a;background:#fffdf8}
.online-room-student-card:disabled{cursor:default;opacity:.82}.online-room-student-card:disabled:hover{transform:none;box-shadow:none;border-color:var(--line)}
.online-room-card-top{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:8px;align-items:center}.online-room-card-top .mini-avatar{width:34px;height:34px}
.online-room-student-name{display:flex;flex-direction:column;min-width:0}.online-room-student-name b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.online-room-student-name small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.online-room-state{font-style:normal;font-size:10px;font-weight:700;padding:4px 6px;border-radius:999px;white-space:nowrap;background:#f1f2f5;color:#555}.online-room-state.running{background:#eaf7ef;color:#26754c}.online-room-state.offline{background:#ffeaea;color:#a62e2e}.online-room-state.finished{background:#eef0f5;color:#555a6b}.online-room-state.waiting{background:#fff5dd;color:#8b6a17}
.online-room-progress{margin-top:10px}.online-room-progress>div:first-child{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted);margin-bottom:5px}.online-room-progress b{color:var(--text);font-size:12px}.online-room-progress .progressbar{height:5px}
.online-room-card-meta{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}.online-room-card-meta>span{display:flex;flex-direction:column;padding:7px 8px;border-radius:8px;background:#f7f8fa;min-width:0}.online-room-card-meta small{font-size:10px;color:var(--muted)}.online-room-card-meta b{font-size:11px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.online-room-card-score{position:absolute;right:9px;bottom:8px;font-size:11px;font-weight:800;color:var(--primary)}
.online-room-empty{grid-column:1/-1;text-align:center;color:var(--muted);padding:30px 8px;font-size:13px}
.online-room-viewer{display:flex;flex-direction:column}
.online-room-viewer-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:var(--muted);text-align:center;padding:24px}.online-room-viewer-empty svg{width:30px;height:30px;opacity:.55}.online-room-viewer-empty b{color:var(--text);font-size:16px}
.online-room-view-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:14px 16px 10px;border-bottom:1px solid var(--line)}.online-room-view-head h3{margin:2px 0 3px;font-size:19px}.online-room-view-head p{margin:0;color:var(--muted);font-size:12px}.online-room-view-status{display:flex;align-items:center;gap:8px}.online-room-view-status>b{font-size:20px;color:var(--primary)}
.online-room-question-nav{display:flex;flex-direction:column;gap:7px;padding:9px 12px;border-bottom:1px solid var(--line);max-height:116px;overflow:auto;background:#fafbfc}.online-room-nav-part{display:flex;align-items:flex-start;gap:10px}.online-room-nav-part>span{font-size:10px;font-weight:800;color:var(--muted);width:112px;flex:0 0 112px;padding-top:5px}.online-room-nav-part>div{display:flex;flex-wrap:wrap;gap:5px}.online-room-qnum{width:27px;height:27px;padding:0;border-radius:7px;border:1px solid var(--line);background:#fff;font-size:11px;font-weight:700;cursor:pointer}.online-room-qnum.done{background:#eef6f1;border-color:#bcd8c7}.online-room-qnum.current{border-color:var(--primary);box-shadow:0 0 0 2px rgba(101,25,38,.10);color:var(--primary)}
.online-room-note{margin:8px 12px 0;padding:7px 10px;font-size:11px}
.online-room-answer-scroll{padding:10px 12px 18px;overflow:auto;flex:1;min-height:0;scroll-behavior:smooth}.online-room-question-wrap{scroll-margin-top:8px}.online-room-question-wrap.current>.practice-live-q{border-color:#d2aeb5;box-shadow:0 0 0 2px rgba(101,25,38,.05)}
.online-room-answer-scroll .practice-live-q,.online-room-answer-scroll .review-question{margin-bottom:10px}
@media(max-width:1050px){.online-room-layout{grid-template-columns:minmax(330px,42%) minmax(0,58%)}.online-room-cards{grid-template-columns:1fr}.online-room-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.online-room-backdrop{padding:0!important}.online-exam-room{height:100vh!important;border-radius:0}.online-room-layout{grid-template-columns:1fr;grid-template-rows:44% 56%;padding:8px}.online-room-kpis{grid-template-columns:repeat(2,1fr);padding:8px}.online-room-score{display:none}.online-room-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.online-room-head{padding:12px}.online-room-head h2{font-size:19px}.online-room-filter-row{grid-template-columns:1fr}.online-room-filter-row select{display:none}}

/* V0.99 - Phòng thi full màn hình + phòng chờ học sinh */
.online-room-screen{position:fixed;inset:0;z-index:3100;background:#f4f6f9;color:var(--text);display:flex;flex-direction:column;overflow:hidden}
.online-room-full-head{height:72px;flex:0 0 72px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 20px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 2px 10px rgba(30,36,45,.05);z-index:2}
.online-room-head-left,.online-room-head-right{display:flex;align-items:center;gap:12px;min-width:0}.online-room-head-left>div{min-width:0}.online-room-head-left .eyebrow{font-size:8px;letter-spacing:.12em}.online-room-head-left h1{margin:1px 0 2px;color:#801126;font-size:19px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.online-room-head-left p{margin:0;color:var(--muted);font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.online-room-back.hidden{visibility:hidden;pointer-events:none}
.online-room-head-right{flex:0 0 auto}.online-room-countdown{height:44px;min-width:128px;padding:5px 12px;border:1px solid #e3e6ea;border-radius:10px;background:#fafbfc;display:flex;flex-direction:column;align-items:center;justify-content:center}.online-room-countdown span{font-size:8px;color:#7d8690;font-weight:800;text-transform:uppercase}.online-room-countdown b{font-size:16px;color:#7f1025;font-variant-numeric:tabular-nums;letter-spacing:.03em}.online-room-full-head #oeMonClose{font-size:20px;line-height:1}
.online-room-full-main{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding:12px 16px 16px}
.online-room-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;flex:0 0 auto}.online-room-summary>div{height:50px;border:1px solid #e1e5e9;border-radius:11px;background:#fff;padding:7px 11px;display:flex;align-items:center;justify-content:space-between;gap:8px}.online-room-summary span{font-size:9px;color:#7f8791;font-weight:750}.online-room-summary b{font-size:18px;color:#363d46}
.online-room-tools{flex:0 0 auto;display:flex;align-items:end;justify-content:space-between;gap:16px;padding:11px 1px 9px}.online-room-tools>div:first-child{display:flex;flex-direction:column;gap:1px}.online-room-tools>div:first-child b{font-size:13px}.online-room-tools>div:first-child span{font-size:9px;color:var(--muted)}.online-room-tools .online-room-filter-row{display:flex!important;grid-template-columns:none;align-items:center;gap:7px}.online-room-tools .online-room-search{width:230px}.online-room-tools select{width:145px}
.online-room-card-grid{flex:1;min-height:0;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-auto-rows:max-content;align-content:start;gap:10px;padding:1px 2px 10px}
.online-room-big-card{position:relative;min-width:0;min-height:177px;text-align:left;background:#fff;border:1px solid #dfe3e8;border-left-width:4px;border-radius:14px;padding:12px;cursor:pointer;color:inherit;font:inherit;transition:.15s ease;box-shadow:0 3px 12px rgba(30,36,45,.035)}.online-room-big-card:hover{transform:translateY(-2px);box-shadow:0 7px 20px rgba(30,36,45,.08);border-color:#cbb3b8}.online-room-big-card.running{border-left-color:#258451}.online-room-big-card.offline{border-left-color:#c94747;background:#fffafa}.online-room-big-card.finished{border-left-color:#737988}.online-room-big-card.ready{border-left-color:#2d7598;background:#fbfdff}.online-room-big-card.waiting{border-left-color:#c6a14d;background:#fffdf8}
.online-room-big-top{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:9px;align-items:center}.online-room-big-avatar{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#821126;color:#fff;font-size:11px;font-weight:950;box-shadow:0 0 0 3px #f7e9ec;flex:0 0 auto}.online-room-big-top>div{min-width:0;display:flex;flex-direction:column}.online-room-big-top>div b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.online-room-big-top>div small{font-size:9px;color:var(--muted);margin-top:1px}.online-room-big-top em{font-style:normal;font-size:8px;font-weight:900;padding:4px 6px;border-radius:999px;background:#eef1f4;color:#59616a;white-space:nowrap}.online-room-big-card.running .online-room-big-top em{background:#eaf7ef;color:#24744b}.online-room-big-card.offline .online-room-big-top em{background:#ffeaea;color:#a62e2e}.online-room-big-card.ready .online-room-big-top em{background:#e9f4fb;color:#286b8e}.online-room-big-card.finished .online-room-big-top em{background:#eef0f4;color:#59606d}.online-room-big-card.waiting .online-room-big-top em{background:#fff3d9;color:#876313}
.online-room-big-progress{margin:13px 0 10px;display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:8px;align-items:center}.online-room-big-progress>span{height:6px;background:#edf0f3;border-radius:999px;overflow:hidden}.online-room-big-progress i{display:block;height:100%;border-radius:inherit;background:#8b1328}.online-room-big-card.running .online-room-big-progress i{background:#278152}.online-room-big-progress>b{font-size:9px;color:#6e7781;text-align:right}
.online-room-big-meta{display:grid;grid-template-columns:1fr 1fr;gap:7px}.online-room-big-meta>div{min-width:0;border-radius:8px;background:#f6f7f9;padding:7px 8px;display:flex;flex-direction:column}.online-room-big-meta span{font-size:8px;color:#8a9199}.online-room-big-meta b{font-size:9.5px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.online-room-big-score{position:absolute;right:11px;bottom:9px;color:#7f1025;font-size:16px;font-weight:950}.online-room-big-score small{font-size:8px}.online-room-card-hint{display:block;margin-top:9px;font-size:8px;color:#989ea6}.online-room-grid-empty{grid-column:1/-1;min-height:260px;border:1px dashed #d6dbe0;border-radius:14px;background:#fff;display:grid;place-items:center;color:var(--muted);font-size:11px}
.online-room-detail-loading,.online-room-detail-empty{flex:1;min-height:0}.online-room-detail-loading{display:grid;place-items:center;color:var(--muted)}.online-room-detail-empty{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px;padding:16px;background:#f4f6f9}.online-room-detail-person,.online-room-detail-empty-note{background:#fff;border:1px solid #e1e5e9;border-radius:15px}.online-room-detail-person{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:25px;text-align:center}.online-room-detail-person .online-room-big-avatar{width:66px;height:66px;border-radius:18px;font-size:16px}.online-room-detail-person h2{margin:14px 0 2px;font-size:18px}.online-room-detail-person p{margin:0 0 10px;color:var(--muted);font-size:10px}.online-room-detail-empty-note{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted)}.online-room-detail-empty-note svg{width:34px;height:34px;margin-bottom:10px;opacity:.5}.online-room-detail-empty-note h3{margin:0 0 5px;color:var(--text);font-size:17px}.online-room-detail-empty-note p{margin:0;font-size:10px}
.online-room-detail-main{flex:1;min-height:0;display:grid;grid-template-columns:260px minmax(0,1fr);gap:12px;padding:12px;background:#f4f6f9;overflow:hidden}.online-room-detail-side,.online-room-detail-paper{background:#fff;border:1px solid #dfe3e8;border-radius:14px;min-height:0;overflow:hidden}.online-room-detail-side{display:flex;flex-direction:column}.online-room-detail-profile{display:flex;flex-direction:column;align-items:center;text-align:center;padding:17px 14px 12px;border-bottom:1px solid #eceff2}.online-room-detail-profile .online-room-big-avatar{width:52px;height:52px;border-radius:15px}.online-room-detail-profile h2{font-size:15px;margin:9px 0 1px}.online-room-detail-profile p{font-size:9px;color:var(--muted);margin:0 0 8px}.online-room-detail-profile strong{font-size:20px;color:#7f1025;margin-top:7px}.online-room-detail-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:9px}.online-room-detail-stats>div{background:#f7f8fa;border-radius:8px;padding:7px;display:flex;flex-direction:column}.online-room-detail-stats span{font-size:8px;color:#89919a}.online-room-detail-stats b{font-size:10px;margin-top:2px}.online-room-detail-side .online-room-question-nav{flex:1;min-height:0;max-height:none;overflow:auto;border-top:1px solid #eceff2;border-bottom:0}.online-room-detail-side .online-room-nav-part{display:block}.online-room-detail-side .online-room-nav-part>span{display:block;width:auto;padding:0 0 6px}.online-room-detail-side .online-room-nav-part>div{display:grid;grid-template-columns:repeat(6,27px)}.online-room-detail-paper{display:flex;flex-direction:column}.online-room-detail-paper .online-room-answer-scroll{flex:1;min-height:0;overflow:auto;padding:12px 14px 22px}
.online-waiting-present{color:#287b56!important;font-weight:800}.online-waiting-room{height:100%;min-height:0;display:flex;flex-direction:column;background:#f3f5f8}.online-waiting-stage{flex:1;min-height:0;overflow:auto;padding:24px;display:grid;place-items:center}.online-waiting-info{position:relative;width:min(760px,100%);background:#fff;border:1px solid #dfe3e8;border-radius:20px;box-shadow:0 15px 45px rgba(28,34,43,.08);padding:26px 34px 28px;text-align:center}.online-waiting-card-head{min-height:32px;margin:-4px 0 8px;display:flex;align-items:center;justify-content:space-between;gap:12px}.online-waiting-card-head>div{display:flex;align-items:center}.online-waiting-exit{white-space:nowrap}.online-waiting-logo{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;margin:0 auto 12px;background:#f8e9ec;color:#821126}.online-waiting-logo svg{width:29px;height:29px}.online-waiting-kicker{display:block;font-size:9px;font-weight:950;letter-spacing:.13em;color:#9a6570}.online-waiting-info h2{margin:5px 0 16px;font-size:24px;color:#303741}.online-waiting-countdown{width:min(360px,100%);margin:0 auto 20px;padding:12px 18px;border-radius:14px;background:#7f1025;color:#fff;display:flex;flex-direction:column}.online-waiting-countdown span{font-size:9px;font-weight:800;opacity:.8;text-transform:uppercase}.online-waiting-countdown b{font-size:35px;line-height:1.15;letter-spacing:.08em;font-variant-numeric:tabular-nums}.online-waiting-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.online-waiting-facts>div{border:1px solid #e5e8ec;background:#fafbfc;border-radius:10px;padding:9px;display:flex;flex-direction:column}.online-waiting-facts span{font-size:8px;color:#868e97}.online-waiting-facts b{font-size:10px;margin-top:3px}.online-waiting-instructions{margin-top:12px;text-align:left;border:1px solid #ece4d0;background:#fffdf7;border-radius:11px;padding:10px 12px}.online-waiting-instructions>b{display:flex;align-items:center;gap:6px;font-size:9px;color:#765b1e}.online-waiting-instructions svg{width:14px}.online-waiting-instructions p{margin:5px 0 0;font-size:10px;line-height:1.55;color:#626973}.online-waiting-action{margin-top:18px;display:flex;flex-direction:column;align-items:center;gap:6px}.online-waiting-action .btn{min-width:250px;height:42px;font-size:10px;font-weight:900}.online-waiting-action small{font-size:8.5px;color:#8a9199}.online-waiting-action .waiting-disabled{opacity:.65}
@media(max-width:1100px){.online-room-card-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.online-room-summary{grid-template-columns:repeat(5,1fr)}.online-room-detail-main{grid-template-columns:230px minmax(0,1fr)}}
@media(max-width:760px){.online-room-full-head{height:auto;min-height:66px;padding:8px 10px;gap:8px}.online-room-head-left p{display:none}.online-room-countdown{min-width:100px}.online-room-full-main{padding:8px}.online-room-summary{grid-template-columns:repeat(2,1fr)}.online-room-summary>div:last-child{display:none}.online-room-tools{align-items:stretch;flex-direction:column}.online-room-tools .online-room-filter-row{display:grid!important;grid-template-columns:1fr!important}.online-room-tools .online-room-search,.online-room-tools select{width:100%}.online-room-card-grid{grid-template-columns:1fr 1fr}.online-room-detail-main,.online-room-detail-empty{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.online-room-detail-side{max-height:270px}.online-waiting-stage{padding:10px}.online-waiting-info{padding:18px 14px 20px}.online-waiting-card-head{margin:0 0 10px}.online-waiting-card-head .badge{display:inline-flex}.online-waiting-exit{padding-inline:10px}.online-waiting-facts{grid-template-columns:1fr 1fr}.online-waiting-countdown b{font-size:29px}}

/* V0.100 - tinh gọn phòng chờ thi trực tuyến: bỏ thanh trắng dư, đưa Rời phòng chờ vào thẻ chính */

/* V0.102 - Giao diện phân hệ độc lập: 4 khối chính, menu chỉ của phân hệ đang mở */
.workspace-sidebar{padding-top:12px;overflow:hidden}
.simple-workspace-sidebar .sidebar-back{flex:0 0 auto;margin:0 2px 12px;background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.09)}
.simple-workspace-sidebar .sidebar-back:hover{background:rgba(255,255,255,.14)}
.workspace-identity{flex:0 0 auto;margin:0 2px 16px;padding:11px 10px;display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;align-items:center;border:1px solid rgba(255,255,255,.16);border-radius:12px;background:rgba(255,255,255,.105);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.workspace-current-icon{width:38px;height:38px;border-radius:10px;background:#fff;color:#8b0d23;display:grid;place-items:center}.workspace-current-icon .ico{width:20px;height:20px}
.workspace-identity>span:last-child{min-width:0}.workspace-identity small{display:block;margin-bottom:3px;font-size:7.5px;letter-spacing:.115em;font-weight:950;color:#ddb7bf}.workspace-identity b{display:block;color:#fff;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ws-id-practice .workspace-current-icon{color:#9d6b16}.ws-id-online .workspace-current-icon{color:#2e628f}.ws-id-manage .workspace-current-icon{color:#4d5865}
.sidebar-section-title{flex:0 0 auto;padding:0 12px 7px;font-size:7.5px;letter-spacing:.13em;font-weight:950;color:#cda6ae}
.simple-workspace-sidebar .workspace-nav{flex:1 1 auto!important;min-height:70px;padding:0 2px 8px!important;align-content:start}
.simple-workspace-sidebar .workspace-nav .navbtn{font-size:11.5px}
.sidebar-empty{padding:12px;color:#d9b5bd;font-size:10px;text-align:center}
.avatar-button{padding:0;appearance:none;-webkit-appearance:none;cursor:pointer;font:inherit}

/* Màn hình chọn phân hệ: không có sidebar */
.app-shell.hub-mode .hub-main{display:block;min-height:calc(100vh - 90px);background:linear-gradient(180deg,#f7f8fa 0%,#f4f5f7 100%)}
.app-shell.hub-mode .hub-content{padding:34px 38px 42px;overflow:auto}
.system-hub{max-width:1160px;margin:0 auto;padding:2px 0 24px}
.system-hub-head{margin:4px 0 22px}.system-hub-head span{display:block;font-size:9px;font-weight:950;letter-spacing:.15em;color:#97152d}.system-hub-head h1{margin:5px 0 6px;font-size:30px;color:#202632}.system-hub-head p{margin:0;max-width:760px;color:#707986;font-size:12px;line-height:1.55}
.workspace-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.workspace-card{min-height:170px;border:1px solid #e1e4e8;border-radius:17px;background:#fff;padding:22px 22px 20px;text-align:left;display:grid;grid-template-columns:58px minmax(0,1fr) 24px;align-items:center;gap:17px;box-shadow:0 8px 24px rgba(38,29,33,.065);transition:.18s;position:relative;overflow:hidden;color:#232a35}
.workspace-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#8d0d24}.workspace-card.ws-practice:before{background:#b47a1d}.workspace-card.ws-online:before{background:#2e628f}.workspace-card.ws-manage:before{background:#596573}
.workspace-card:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 14px 32px rgba(38,29,33,.105);border-color:#d4d8de}.workspace-card:focus-visible{outline:3px solid rgba(145,13,36,.16);outline-offset:2px}.workspace-card.disabled{opacity:.5;cursor:not-allowed;transform:none}
.workspace-card-icon{width:58px;height:58px;border-radius:15px;background:#fff0f2;color:#8d0d24;display:grid;place-items:center}.workspace-card-icon .ico{width:28px;height:28px}.ws-practice .workspace-card-icon{background:#fff5e5;color:#a46e12}.ws-online .workspace-card-icon{background:#edf5fb;color:#2e628f}.ws-manage .workspace-card-icon{background:#eef1f4;color:#4d5865}
.workspace-card-main{min-width:0}.workspace-card-main>small{display:block;margin:0 0 5px;font-size:8px;letter-spacing:.13em;font-weight:950;color:#9299a4}.workspace-card-main>b{display:block;font-size:22px;line-height:1.2;color:#272d37}.workspace-card-main>em{display:block;margin-top:8px;font-size:11px;line-height:1.55;font-style:normal;color:#737c88}
.workspace-card-arrow{display:grid;place-items:center;color:#99172f}.workspace-card-arrow .ico{width:21px;height:21px}.ws-practice .workspace-card-arrow{color:#a36d12}.ws-online .workspace-card-arrow{color:#2e628f}.ws-manage .workspace-card-arrow{color:#596573}
.hub-profile-link{margin:16px 0 0 auto;border:0;background:transparent;color:#7d1528;font-size:10px;font-weight:850;display:flex;align-items:center;gap:6px;padding:7px 2px}.hub-profile-link .ico{width:15px;height:15px}

@media(min-width:901px){
  .simple-workspace-sidebar{display:flex!important}
  .simple-workspace-sidebar .sidebar-bottom{margin-top:9px}
}
@media(max-width:900px){
  .app-shell.hub-mode .hub-main{min-height:0}
  .app-shell.hub-mode .hub-content{padding:20px 16px 28px}
  .simple-workspace-sidebar{overflow:visible!important;padding:8px 10px}
  .simple-workspace-sidebar .sidebar-back{display:inline-flex!important;width:auto;margin:0 7px 7px 0;vertical-align:top}
  .workspace-identity{display:inline-grid;width:min(260px,68vw);margin:0 0 7px;vertical-align:top;padding:7px 9px;grid-template-columns:32px minmax(0,1fr)}
  .workspace-current-icon{width:32px;height:32px;border-radius:8px}.workspace-current-icon .ico{width:17px;height:17px}
  .workspace-identity small{font-size:6.8px}.workspace-identity b{font-size:12px}
  .sidebar-section-title{display:none}
  .simple-workspace-sidebar .workspace-nav{display:flex!important;width:100%;overflow-x:auto;padding:4px 0 2px!important;gap:4px}
  .simple-workspace-sidebar .workspace-nav .navbtn{width:auto;white-space:nowrap}
  .system-hub-head h1{font-size:25px}
}
@media(max-width:720px){
  .workspace-card-grid{grid-template-columns:1fr}
  .workspace-card{min-height:130px;padding:17px;grid-template-columns:48px minmax(0,1fr) 20px;gap:13px}
  .workspace-card-icon{width:48px;height:48px;border-radius:13px}.workspace-card-icon .ico{width:23px;height:23px}
  .workspace-card-main>b{font-size:19px}.workspace-card-main>em{font-size:10px;margin-top:6px}
}
@media(max-width:460px){
  .workspace-card{grid-template-columns:44px minmax(0,1fr);min-height:118px}.workspace-card-arrow{display:none}.workspace-card-icon{width:44px;height:44px}.system-hub-head p{font-size:11px}
}

/* V0.103 - Tinh gọn menu: bỏ nhận diện phân hệ đang mở, bỏ nhãn chức năng; ẩn IP với học sinh */
.simple-workspace-sidebar .workspace-nav{padding-top:2px!important}
@media(max-width:900px){.simple-workspace-sidebar .workspace-nav{padding-top:4px!important}}


/* V0.104 - Học sinh: Hồ sơ của tôi là một khối chính độc lập như Quản trị của admin */
.workspace-card.ws-profile:before{background:#7b4f9f}
.ws-profile .workspace-card-icon{background:#f3edf8;color:#71478f}
.ws-profile .workspace-card-arrow{color:#71478f}


/* V0.105 - Tinh gọn giao diện bên trong phân hệ Đấu trường */
@media(min-width:901px){
  .app-shell.workspace-arena:not(.hub-mode):not(.exam-mode) .main{
    grid-template-columns:208px minmax(0,1fr);
  }
  .app-shell.workspace-arena:not(.hub-mode):not(.exam-mode) .simple-workspace-sidebar{
    padding:12px 9px 12px;
    overflow:hidden;
  }
  .app-shell.workspace-arena:not(.hub-mode):not(.exam-mode) .simple-workspace-sidebar .sidebar-back{
    min-height:40px;
    margin:0 1px 10px;
    padding:9px 11px;
    border-radius:9px;
    background:rgba(255,255,255,.07);
    border:1px solid rgba(255,255,255,.10);
    color:#f7e9ec;
    font-size:10.5px;
    font-weight:850;
  }
  .app-shell.workspace-arena:not(.hub-mode):not(.exam-mode) .simple-workspace-sidebar .sidebar-back:hover{
    background:rgba(255,255,255,.12);
  }
  .app-shell.workspace-arena:not(.hub-mode):not(.exam-mode) .simple-workspace-sidebar .workspace-nav{
    flex:0 1 auto!important;
    min-height:0;
    overflow:visible;
    display:grid;
    gap:3px;
    padding:0 1px 4px!important;
  }
  .app-shell.workspace-arena:not(.hub-mode):not(.exam-mode) .workspace-nav .navbtn{
    min-height:40px;
    padding:9px 10px;
    gap:10px;
    border-radius:9px;
    font-size:11px;
    font-weight:760;
    color:#f2dfe4;
  }
  .app-shell.workspace-arena:not(.hub-mode):not(.exam-mode) .workspace-nav .navbtn>.ico{
    width:16px;
    height:16px;
    flex:0 0 16px;
    opacity:.9;
  }
  .app-shell.workspace-arena:not(.hub-mode):not(.exam-mode) .workspace-nav .navbtn:hover{
    background:rgba(255,255,255,.075);
    color:#fff;
  }
  .app-shell.workspace-arena:not(.hub-mode):not(.exam-mode) .workspace-nav .navbtn.active{
    background:rgba(255,255,255,.15);
    box-shadow:inset 3px 0 0 rgba(255,255,255,.96);
    color:#fff;
  }
  .app-shell.workspace-arena:not(.hub-mode):not(.exam-mode) .workspace-nav .navbtn.active>.ico{
    opacity:1;
  }
  .app-shell.workspace-arena:not(.hub-mode):not(.exam-mode) .sidebar-bottom{
    margin-top:auto;
    padding:9px 3px 0;
    gap:7px;
  }
  .app-shell.workspace-arena:not(.hub-mode):not(.exam-mode) .sidebar-lan{
    padding:7px 8px;
    border-radius:8px;
    font-size:9.5px;
  }
  .app-shell.workspace-arena:not(.hub-mode):not(.exam-mode) .sidebar-slogan{
    font-size:7.7px;
    letter-spacing:.04em;
  }
  .app-shell.workspace-arena:not(.hub-mode):not(.exam-mode) .content{
    padding:20px 24px 28px;
    background:#f6f7f9;
  }
  .app-shell.workspace-arena:not(.hub-mode):not(.exam-mode) .page-head{
    margin-bottom:14px;
  }
  .app-shell.workspace-arena:not(.hub-mode):not(.exam-mode) .page-head h1{
    font-size:24px;
    line-height:1.2;
  }
}
@media(min-width:901px) and (max-height:760px){
  .app-shell.workspace-arena:not(.hub-mode):not(.exam-mode) .simple-workspace-sidebar .workspace-nav{
    flex:1 1 auto!important;
    overflow-y:auto;
  }
  .app-shell.workspace-arena:not(.hub-mode):not(.exam-mode) .workspace-nav .navbtn{
    min-height:36px;
    padding-top:7px;
    padding-bottom:7px;
  }
  .app-shell.workspace-arena:not(.hub-mode):not(.exam-mode) .sidebar-bottom{
    margin-top:7px;
  }
}
@media(min-width:1400px){
  .app-shell.workspace-arena:not(.hub-mode):not(.exam-mode) .content{
    padding-left:28px;
    padding-right:28px;
  }
}

/* V0.106 - Tối ưu giao diện phân hệ Luyện tập */
@media(min-width:901px){
  .app-shell.workspace-practice:not(.hub-mode):not(.exam-mode) .main{
    grid-template-columns:208px minmax(0,1fr);
  }
  .app-shell.workspace-practice:not(.hub-mode):not(.exam-mode) .simple-workspace-sidebar{
    padding:12px 9px 12px;
    overflow:hidden;
  }
  .app-shell.workspace-practice:not(.hub-mode):not(.exam-mode) .simple-workspace-sidebar .sidebar-back{
    min-height:40px;
    margin:0 1px 10px;
    padding:9px 11px;
    border-radius:9px;
    background:rgba(255,255,255,.07);
    border:1px solid rgba(255,255,255,.10);
    color:#f7e9ec;
    font-size:10.5px;
    font-weight:850;
  }
  .app-shell.workspace-practice:not(.hub-mode):not(.exam-mode) .simple-workspace-sidebar .sidebar-back:hover{
    background:rgba(255,255,255,.12);
  }
  .app-shell.workspace-practice:not(.hub-mode):not(.exam-mode) .simple-workspace-sidebar .workspace-nav{
    flex:0 1 auto!important;
    min-height:0;
    overflow:visible;
    display:grid;
    gap:3px;
    padding:0 1px 4px!important;
  }
  .app-shell.workspace-practice:not(.hub-mode):not(.exam-mode) .workspace-nav .navbtn{
    min-height:40px;
    padding:9px 10px;
    gap:10px;
    border-radius:9px;
    font-size:11px;
    font-weight:760;
    color:#f2dfe4;
  }
  .app-shell.workspace-practice:not(.hub-mode):not(.exam-mode) .workspace-nav .navbtn>.ico{
    width:16px;
    height:16px;
    flex:0 0 16px;
    opacity:.9;
  }
  .app-shell.workspace-practice:not(.hub-mode):not(.exam-mode) .workspace-nav .navbtn:hover{
    background:rgba(255,255,255,.075);
    color:#fff;
  }
  .app-shell.workspace-practice:not(.hub-mode):not(.exam-mode) .workspace-nav .navbtn.active{
    background:rgba(255,255,255,.15);
    box-shadow:inset 3px 0 0 rgba(255,255,255,.96);
    color:#fff;
  }
  .app-shell.workspace-practice:not(.hub-mode):not(.exam-mode) .sidebar-bottom{
    margin-top:auto;
    padding:9px 3px 0;
    gap:7px;
  }
  .app-shell.workspace-practice:not(.hub-mode):not(.exam-mode) .sidebar-lan{
    padding:7px 8px;
    border-radius:8px;
    font-size:9.5px;
  }
  .app-shell.workspace-practice:not(.hub-mode):not(.exam-mode) .sidebar-slogan{
    font-size:7.7px;
    letter-spacing:.04em;
  }
  .app-shell.workspace-practice:not(.hub-mode):not(.exam-mode) .content{
    padding:20px 24px 28px;
    background:#f6f7f9;
  }
  .app-shell.workspace-practice:not(.hub-mode):not(.exam-mode) .page-head{
    margin-bottom:14px;
  }
  .app-shell.workspace-practice:not(.hub-mode):not(.exam-mode) .page-head h1{
    font-size:24px;
    line-height:1.2;
  }
}

/* Học sinh - trang tạo lượt luyện tập */
.workspace-practice .practice-student-page{
  max-width:1500px;
  margin:0 auto;
}
.workspace-practice .practice-student-stats{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-bottom:12px;
}
.workspace-practice .practice-student-stats>div{
  min-height:66px;
  padding:12px 14px;
  border-radius:12px;
  border-color:#e1e5e9;
  box-shadow:0 2px 8px rgba(31,36,44,.025);
}
.workspace-practice .practice-student-stats span{
  font-size:10px;
  letter-spacing:.035em;
}
.workspace-practice .practice-student-stats b{
  margin-top:5px;
  font-size:23px;
}
.workspace-practice .practice-student-stats b small{
  font-size:10px;
}
.workspace-practice .practice-resume-v91{
  margin-bottom:12px;
  padding:11px 14px;
  border-radius:12px;
}
.workspace-practice .practice-resume-v91 b{font-size:12px}
.workspace-practice .practice-resume-v91 small{font-size:10px;margin-top:3px}
.workspace-practice .practice-student-grid{
  grid-template-columns:minmax(0,1fr) 320px;
  gap:12px;
}
.workspace-practice .practice-create-card{
  padding:16px 17px 17px;
  border-radius:13px;
}
.workspace-practice .practice-create-head{
  padding-bottom:12px;
}
.workspace-practice .practice-create-head b{
  font-size:14px;
  color:#343b45;
}
.workspace-practice .practice-create-head span{
  margin-top:2px;
  font-size:10.5px;
  line-height:1.45;
}
.workspace-practice .practice-block{
  padding-top:14px;
}
.workspace-practice .practice-block+.practice-block{
  margin-top:13px;
}
.workspace-practice .practice-block-head{
  margin-bottom:9px;
}
.workspace-practice .practice-block-head>b{
  font-size:12px;
  color:#414953;
}
.workspace-practice .practice-block-head>span{
  font-size:9.5px;
}
.workspace-practice .practice-block-head button{
  padding:6px 9px;
  font-size:9.5px;
}
.workspace-practice .practice-search{
  height:38px;
  padding:0 10px;
  border-radius:9px;
}
.workspace-practice .practice-search input{
  font-size:11px;
}
.workspace-practice .practice-topic-grid{
  gap:7px;
  margin-top:8px;
  max-height:232px;
}
.workspace-practice .practice-topic-choice{
  grid-template-columns:18px minmax(0,1fr);
  gap:8px;
  min-height:48px;
  padding:8px 9px;
  border-radius:9px;
}
.workspace-practice .practice-topic-box{
  width:16px;
  height:16px;
}
.workspace-practice .practice-topic-choice>input:checked+.practice-topic-box:after{
  left:4px;
  top:1px;
}
.workspace-practice .practice-topic-copy b{
  font-size:10.5px;
}
.workspace-practice .practice-topic-copy small{
  margin-top:2px;
  font-size:8.8px;
}
.workspace-practice .practice-student-page .practice-config-grid{
  gap:9px;
}
.workspace-practice .practice-student-page .practice-config-grid label>span{
  font-size:9.5px;
}
.workspace-practice .practice-student-page .practice-config-grid input{
  height:40px;
  font-size:12px;
}
.workspace-practice .practice-student-page .practice-options{
  margin-top:10px;
  gap:8px 14px;
}
.workspace-practice .practice-student-page .practice-options label{
  font-size:10px;
}
.workspace-practice .practice-student-page .practice-pool-info{
  margin-top:10px;
  padding:8px 10px;
  font-size:9.5px;
  border-radius:8px;
}
.workspace-practice .practice-student-page .practice-start{
  min-height:42px;
  margin-top:10px;
  font-size:10.5px;
}
.workspace-practice .practice-student-side{
  gap:12px;
}
.workspace-practice .practice-bank-summary-v91{
  padding:14px;
  border-radius:12px;
}
.workspace-practice .practice-bank-summary-v91>div:first-child b{
  font-size:12.5px;
  color:#3f4650;
}
.workspace-practice .practice-bank-summary-v91>div:first-child span{
  margin-top:2px;
  font-size:9.5px;
  line-height:1.4;
}
.workspace-practice .practice-bank-numbers{
  gap:8px;
  margin-top:11px;
}
.workspace-practice .practice-bank-numbers>div{
  padding:10px;
  border-radius:9px;
}
.workspace-practice .practice-bank-numbers strong{
  font-size:21px;
}
.workspace-practice .practice-bank-numbers span{
  font-size:9px;
}
.workspace-practice .practice-history-v91 .practice-history-head{
  margin:0 2px 8px;
}
.workspace-practice .practice-history-v91 .practice-history-head b{
  font-size:12px;
}
.workspace-practice .practice-history-v91 .practice-history-head span{
  font-size:9px;
}
.workspace-practice .practice-history-v91 .practice-history-card{
  margin-bottom:7px;
  padding:10px 11px;
  border-radius:10px;
}
.workspace-practice .practice-history-card>div:first-child b{
  font-size:10.5px;
}
.workspace-practice .practice-history-card>div:first-child span,
.workspace-practice .practice-history-card>div:first-child small{
  font-size:8.8px;
}
.workspace-practice .practice-history-score strong{
  font-size:17px;
}
.workspace-practice .practice-history-card .btn{
  min-height:31px;
  font-size:9px;
}

/* Giáo viên - theo dõi luyện tập */
.workspace-practice .practice-admin-page{
  max-width:1540px;
  margin:0 auto;
}
.workspace-practice .practice-admin-kpis{
  gap:10px;
  margin-bottom:12px;
}
.workspace-practice .practice-admin-kpis>div{
  min-height:66px;
  padding:12px 14px;
  border-radius:12px;
  border-color:#e1e5e9;
  box-shadow:0 2px 8px rgba(31,36,44,.025);
}
.workspace-practice .practice-admin-kpis span{
  font-size:10px;
}
.workspace-practice .practice-admin-kpis b{
  margin-top:5px;
  font-size:22px;
}
.workspace-practice .practice-admin-list{
  border-radius:13px;
}
.workspace-practice .practice-admin-list-head{
  padding:12px 14px;
}
.workspace-practice .practice-admin-list-head>div:first-child{
  gap:2px;
}
.workspace-practice .practice-admin-list-head b{
  font-size:12.5px;
  color:#3f4650;
}
.workspace-practice .practice-admin-list-head span{
  font-size:9px;
}
.workspace-practice .practice-admin-filters{
  gap:8px;
}
.workspace-practice .practice-admin-search{
  width:290px;
  height:36px;
  padding:0 10px;
  border-radius:9px;
}
.workspace-practice .practice-admin-search input{
  font-size:10.5px;
}
.workspace-practice .practice-admin-filters select{
  height:36px;
  padding:0 9px;
  border-radius:9px;
  font-size:10px;
}
.workspace-practice .practice-admin-table{
  min-width:940px;
}
.workspace-practice .practice-admin-table th{
  padding:10px 11px;
  font-size:9.5px;
}
.workspace-practice .practice-admin-table td{
  padding:10px 11px;
  font-size:10.5px;
}
.workspace-practice .practice-admin-table .table-sub{
  margin-top:3px;
  font-size:8.8px;
}
.workspace-practice .practice-admin-progress>span{
  font-size:10px;
}
.workspace-practice .practice-admin-progress .progressbar{
  height:7px;
}
.workspace-practice #practiceAdminRefresh{
  min-height:37px;
  padding:8px 11px;
  font-size:10px;
}

@media(min-width:901px) and (max-height:760px){
  .app-shell.workspace-practice:not(.hub-mode):not(.exam-mode) .simple-workspace-sidebar .workspace-nav{
    flex:1 1 auto!important;
    overflow-y:auto;
  }
  .app-shell.workspace-practice:not(.hub-mode):not(.exam-mode) .workspace-nav .navbtn{
    min-height:36px;
    padding-top:7px;
    padding-bottom:7px;
  }
  .app-shell.workspace-practice:not(.hub-mode):not(.exam-mode) .sidebar-bottom{
    margin-top:7px;
  }
}
@media(max-width:1100px){
  .workspace-practice .practice-student-grid{grid-template-columns:1fr}
  .workspace-practice .practice-student-side{display:grid;grid-template-columns:300px minmax(0,1fr);align-items:start}
}
@media(max-width:760px){
  .workspace-practice .practice-student-stats{grid-template-columns:1fr 1fr}
  .workspace-practice .practice-student-stats>div:first-child{grid-column:1/-1}
  .workspace-practice .practice-student-side{display:block}
  .workspace-practice .practice-history-v91{margin-top:10px}
}
@media(min-width:1400px){
  .app-shell.workspace-practice:not(.hub-mode):not(.exam-mode) .content{
    padding-left:28px;
    padding-right:28px;
  }
  .workspace-practice .practice-student-grid{grid-template-columns:minmax(0,1fr) 340px}
}


/* ===== V0.107 · Tối ưu giao diện phân hệ Thi trực tuyến ===== */
/* Giữ phân hệ độc lập, tăng vùng làm việc và giảm cảm giác menu/nội dung bị dàn trải. */
@media(min-width:901px){
  .app-shell.workspace-online:not(.hub-mode):not(.exam-mode) .main{
    grid-template-columns:208px minmax(0,1fr);
  }
  .app-shell.workspace-online:not(.hub-mode):not(.exam-mode) .sidebar{
    width:auto;
  }
  .app-shell.workspace-online:not(.hub-mode):not(.exam-mode) .content{
    padding:20px 24px 28px;
    background:#f6f7f9;
  }
}
.app-shell.workspace-online:not(.hub-mode):not(.exam-mode) .simple-workspace-sidebar{
  padding:12px 10px 11px;
}
.app-shell.workspace-online:not(.hub-mode):not(.exam-mode) .simple-workspace-sidebar .sidebar-back{
  min-height:39px;
  margin-bottom:10px;
  padding:8px 10px;
  border-radius:10px;
}
.app-shell.workspace-online:not(.hub-mode):not(.exam-mode) .workspace-nav{
  gap:5px;
}
.app-shell.workspace-online:not(.hub-mode):not(.exam-mode) .workspace-nav .navbtn{
  min-height:39px;
  padding:8px 10px;
  border-radius:10px;
  font-size:10.5px;
}
.app-shell.workspace-online:not(.hub-mode):not(.exam-mode) .workspace-nav .navbtn .ico{
  width:17px;height:17px;
}

/* Trang danh sách kỳ thi - dùng chung cho giáo viên và học sinh */
.workspace-online .online-exam-admin-page,
.workspace-online .online-exam-student-page{
  width:100%;
  max-width:1540px;
  margin:0 auto;
  gap:10px;
}
.workspace-online .compact-module-head{
  min-height:48px;
  margin-bottom:0;
  align-items:center;
}
.workspace-online .compact-module-head h1{
  font-size:27px;
  line-height:1.15;
  margin:0;
}
.workspace-online .compact-main-action{
  min-height:39px;
  padding:8px 13px;
  border-radius:10px;
  font-size:10.5px;
}
.workspace-online .online-exam-tabs{
  width:max-content;
  max-width:100%;
  padding:3px;
  border-radius:11px;
  gap:3px;
}
.workspace-online .online-exam-tabs button{
  min-width:132px;
  min-height:35px;
  padding:6px 10px;
  border-radius:8px;
  font-size:10px;
}
.workspace-online .online-exam-tabs button b{
  min-width:21px;
  height:21px;
  padding:0 6px;
  display:inline-grid;
  place-items:center;
  border-radius:999px;
  font-size:9px;
}
.workspace-online .online-exam-admin-card,
.workspace-online .online-exam-student-table-card{
  border-radius:13px;
  border-color:#e0e4e8;
  box-shadow:0 3px 12px rgba(31,36,44,.03);
}
.workspace-online .online-exam-admin-card .table-wrap,
.workspace-online .online-exam-student-table-card .table-wrap{
  max-height:calc(100vh - 265px);
  overflow:auto;
  scrollbar-width:thin;
}
.workspace-online .online-exam-admin-card thead th,
.workspace-online .online-exam-student-table-card thead th{
  position:sticky;
  top:0;
  z-index:3;
  background:#f7f8fa;
  border-bottom:1px solid #dfe3e7;
  padding:10px 12px;
  font-size:9.5px;
  letter-spacing:.015em;
  white-space:nowrap;
}
.workspace-online .online-exam-admin-card tbody td,
.workspace-online .online-exam-student-table-card tbody td{
  padding:11px 12px;
  font-size:10.5px;
  border-bottom-color:#edf0f2;
}
.workspace-online .online-exam-admin-row,
.workspace-online .online-exam-student-row{
  transition:background .14s ease;
}
.workspace-online .online-exam-admin-row:hover,
.workspace-online .online-exam-student-row:hover{
  background:#fafbfc;
}
.workspace-online .online-exam-admin-row[data-online-item="running"],
.workspace-online .online-exam-student-row[data-online-item="running"]{
  box-shadow:inset 3px 0 0 #2d8a59;
}
.workspace-online .online-exam-admin-row[data-online-item="waiting"],
.workspace-online .online-exam-student-row[data-online-item="waiting"]{
  box-shadow:inset 3px 0 0 #c39a3d;
}
.workspace-online .online-exam-admin-row[data-online-item="finished"],
.workspace-online .online-exam-student-row[data-online-item="finished"]{
  box-shadow:inset 3px 0 0 #9299a3;
}
.workspace-online .online-exam-admin-card tbody td:first-child,
.workspace-online .online-exam-student-table-card tbody td:first-child{
  min-width:245px;
}
.workspace-online .online-exam-admin-card tbody td:first-child>b,
.workspace-online .online-exam-student-table-card tbody td:first-child>b{
  display:block;
  color:#343b44;
  font-size:11.5px;
  line-height:1.35;
}
.workspace-online .online-exam-admin-card .table-sub,
.workspace-online .online-exam-student-table-card .table-sub{
  margin-top:3px;
  font-size:8.8px;
  line-height:1.35;
  color:#858d97;
}
.workspace-online .online-source-mini{
  margin-top:4px!important;
  color:#785d64!important;
}
.workspace-online .online-exam-admin-card td:nth-child(2),
.workspace-online .online-exam-student-table-card td:nth-child(2){
  min-width:170px;
  font-variant-numeric:tabular-nums;
}
.workspace-online .online-exam-admin-card td:nth-child(3),
.workspace-online .online-exam-student-table-card td:nth-child(3){
  min-width:125px;
}
.workspace-online .online-exam-admin-card .table-actions,
.workspace-online .online-exam-student-table-card .table-actions{
  gap:5px;
}
.workspace-online .online-exam-admin-card .table-actions .btn,
.workspace-online .online-exam-student-table-card .table-actions .btn{
  min-height:31px;
  padding:6px 8px;
  border-radius:8px;
  font-size:9px;
}
.workspace-online .online-exam-admin-card .table-actions .icon-btn{
  width:31px;height:31px;
  border-radius:8px;
}
.workspace-online .online-exam-empty{
  padding:42px 24px;
  font-size:11px;
  color:#8a929c;
  background:#fff;
}
.workspace-online .online-student-action-note{
  font-size:9px;
  color:#858d97;
}
.workspace-online .online-waiting-present{
  color:#26744b!important;
  font-weight:800;
}
.workspace-online .student-exam-note{
  max-width:430px;
}

/* Tạo/Sửa kỳ thi: gọn hơn nhưng dễ đọc, tận dụng chiều rộng màn hình */
.oe-builder-full .online-builder-head{
  height:72px;
  padding:11px 22px!important;
}
.oe-builder-backdrop>.modal.oe-builder-full{
  grid-template-rows:72px minmax(0,1fr) 62px;
}
.oe-builder-full .online-builder-head h2{
  font-size:20px;
}
.oe-builder-full .online-builder-head p{
  font-size:10px;
}
.oe-builder-workspace{
  grid-template-columns:230px minmax(0,1fr);
}
.oe-builder-side{
  padding:14px 11px 12px;
}
.oe-builder-side-title{
  padding:0 8px 10px;
}
.oe-builder-side-title b{
  font-size:14px;
}
.oe-builder-nav{
  gap:4px;
  padding:10px 0;
}
.oe-builder-nav button{
  border-radius:9px;
  padding:8px;
  grid-template-columns:28px minmax(0,1fr);
  gap:7px;
}
.oe-builder-nav button>span{
  width:27px;height:27px;
  border-radius:7px;
}
.oe-builder-main{
  padding:15px 18px 24px;
}
.oe-builder-main>.online-builder-section{
  padding:17px!important;
  border-radius:13px!important;
}
.oe-builder-main .field label,
.oe-builder-main .online-time-grid label>span{
  font-size:10.5px;
}
.oe-builder-main input,
.oe-builder-main select{
  font-size:10.5px;
}
.oe-builder-main .online-time-grid{
  gap:8px;
}
.oe-builder-main .online-time-grid input,
.oe-builder-main .online-time-grid select{
  height:37px;
  border-radius:8px;
}
.oe-builder-full .online-student-picker{
  gap:6px;
}
.oe-builder-full .online-student-picker label{
  padding:7px 9px;
  border-radius:9px;
}
.oe-builder-full .online-builder-foot{
  height:62px;
  padding:9px 20px!important;
}
.oe-builder-full .online-builder-foot .btn{
  min-height:36px;
  border-radius:9px;
}

/* Phòng thi giáo viên: ưu tiên vùng danh sách và bài làm, giảm khoảng trống. */
.online-room-full-head{
  height:64px;
  flex-basis:64px;
  padding:0 16px;
}
.online-room-head-left h1{font-size:18px}
.online-room-countdown{height:40px;min-width:120px}
.online-room-full-main{padding:9px 12px 12px}
.online-room-summary{gap:7px}
.online-room-summary>div{height:46px;padding:6px 10px;border-radius:9px}
.online-room-summary b{font-size:17px}
.online-room-layout{gap:9px;padding:9px 0 0;grid-template-columns:minmax(370px,40%) minmax(0,60%)}
.online-room-roster,.online-room-viewer{border-radius:11px}
.online-room-roster-head{padding:10px 11px;gap:7px}
.online-room-cards{padding:8px;gap:7px}
.online-room-student-card{padding:9px;border-radius:10px}
.online-room-answer-scroll{padding:8px 10px 15px}

@media(min-width:1400px){
  .app-shell.workspace-online:not(.hub-mode):not(.exam-mode) .content{
    padding-left:28px;
    padding-right:28px;
  }
  .workspace-online .online-exam-admin-card tbody td:first-child,
  .workspace-online .online-exam-student-table-card tbody td:first-child{
    min-width:310px;
  }
}
@media(min-width:901px) and (max-height:760px){
  .workspace-online .online-exam-admin-card .table-wrap,
  .workspace-online .online-exam-student-table-card .table-wrap{
    max-height:calc(100vh - 230px);
  }
  .app-shell.workspace-online:not(.hub-mode):not(.exam-mode) .workspace-nav .navbtn{
    min-height:36px;
    padding-top:7px;
    padding-bottom:7px;
  }
}
@media(max-width:1050px){
  .workspace-online .online-exam-admin-card .table,
  .workspace-online .online-exam-student-table-card .table{min-width:900px}
  .oe-builder-workspace{grid-template-columns:205px minmax(650px,1fr);overflow:auto}
  .online-room-layout{grid-template-columns:minmax(320px,39%) minmax(0,61%)}
}
@media(max-width:760px){
  .workspace-online .online-exam-tabs{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}
  .workspace-online .online-exam-tabs button{min-width:0}
  .workspace-online .compact-module-head h1{font-size:23px}
  .workspace-online .online-exam-admin-card .table-wrap,
  .workspace-online .online-exam-student-table-card .table-wrap{max-height:none}
}


/* ===== V0.108 · Hoàn thiện Quản trị và Hồ sơ của tôi ===== */
@media(min-width:901px){
  .app-shell.workspace-manage:not(.hub-mode):not(.exam-mode) .main,
  .app-shell.workspace-profile:not(.hub-mode):not(.exam-mode) .main{grid-template-columns:208px minmax(0,1fr)}
  .app-shell.workspace-manage:not(.hub-mode):not(.exam-mode) .simple-workspace-sidebar,
  .app-shell.workspace-profile:not(.hub-mode):not(.exam-mode) .simple-workspace-sidebar{padding:12px 9px;overflow:hidden}
  .app-shell.workspace-manage:not(.hub-mode):not(.exam-mode) .simple-workspace-sidebar .sidebar-back,
  .app-shell.workspace-profile:not(.hub-mode):not(.exam-mode) .simple-workspace-sidebar .sidebar-back{min-height:40px;margin:0 1px 10px;padding:9px 11px;border-radius:9px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.10);color:#f7e9ec;font-size:10.5px;font-weight:850}
  .app-shell.workspace-manage:not(.hub-mode):not(.exam-mode) .workspace-nav,
  .app-shell.workspace-profile:not(.hub-mode):not(.exam-mode) .workspace-nav{flex:0 1 auto!important;min-height:0;overflow:visible;display:grid;gap:3px;padding:0 1px 4px!important}
  .app-shell.workspace-manage:not(.hub-mode):not(.exam-mode) .workspace-nav .navbtn,
  .app-shell.workspace-profile:not(.hub-mode):not(.exam-mode) .workspace-nav .navbtn{min-height:40px;padding:9px 10px;gap:10px;border-radius:9px;font-size:11px;font-weight:760;color:#f2dfe4}
  .app-shell.workspace-manage:not(.hub-mode):not(.exam-mode) .workspace-nav .navbtn>.ico,
  .app-shell.workspace-profile:not(.hub-mode):not(.exam-mode) .workspace-nav .navbtn>.ico{width:16px;height:16px;flex:0 0 16px;opacity:.9}
  .app-shell.workspace-manage:not(.hub-mode):not(.exam-mode) .workspace-nav .navbtn:hover,
  .app-shell.workspace-profile:not(.hub-mode):not(.exam-mode) .workspace-nav .navbtn:hover{background:rgba(255,255,255,.075);color:#fff}
  .app-shell.workspace-manage:not(.hub-mode):not(.exam-mode) .workspace-nav .navbtn.active,
  .app-shell.workspace-profile:not(.hub-mode):not(.exam-mode) .workspace-nav .navbtn.active{background:rgba(255,255,255,.15);box-shadow:inset 3px 0 0 rgba(255,255,255,.96);color:#fff}
  .app-shell.workspace-manage:not(.hub-mode):not(.exam-mode) .sidebar-bottom,
  .app-shell.workspace-profile:not(.hub-mode):not(.exam-mode) .sidebar-bottom{margin-top:auto;padding:9px 3px 0;gap:7px}
  .app-shell.workspace-manage:not(.hub-mode):not(.exam-mode) .content,
  .app-shell.workspace-profile:not(.hub-mode):not(.exam-mode) .content{padding:20px 24px 28px;background:#f6f7f9}
}

.manage-page-head{margin-bottom:13px!important}.manage-page-head h1{font-size:24px!important}.manage-page-head p{margin:4px 0 0;color:#7a828c;font-size:10.5px}
.manage-user-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:0 0 11px}
.manage-user-kpis>div{min-height:68px;padding:11px 13px;border:1px solid #e3e6ea;border-radius:11px;background:#fff;box-shadow:0 4px 13px rgba(34,41,49,.035);display:flex;flex-direction:column;justify-content:center;gap:3px}
.manage-user-kpis span{font-size:9px;font-weight:800;color:#858c95;text-transform:uppercase;letter-spacing:.045em}.manage-user-kpis b{font-size:21px;color:#303641;line-height:1}
.manage-user-list{padding:0!important;overflow:hidden;border-radius:12px!important}.manage-user-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 155px 165px;gap:8px;padding:10px;border-bottom:1px solid #e7e9ec;background:#fff}
.manage-user-search{height:36px;border:1px solid #dfe3e7;border-radius:8px;display:flex;align-items:center;gap:7px;padding:0 10px;background:#fafbfc}.manage-user-search .ico{width:14px;color:#8d949e}.manage-user-search input{border:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;width:100%;font-size:10.5px}.manage-user-toolbar select{height:36px;border-radius:8px;font-size:10px}
.manage-user-table{min-width:760px}.manage-user-table th{font-size:9px;padding:9px 12px}.manage-user-table td{padding:10px 12px;font-size:10.5px}.manage-user-table tbody tr:hover{background:#fafbfc}.manage-username{font-size:10.5px;color:#4d5661}.manage-role{display:inline-flex;padding:5px 8px;border-radius:999px;background:#f1f3f5;color:#58616c;font-size:8.5px;font-weight:850}.manage-role.admin{background:#fff0f2;color:#8c152b}.manage-user-actions{gap:5px}.manage-user-actions .btn{min-height:30px;padding:6px 8px;font-size:8.8px}.manage-empty-row{text-align:center;padding:34px!important}

/* Ngân hàng câu hỏi trong Quản trị: tận dụng chiều rộng và giữ toolbar gọn. */
.workspace-manage .question-bank-head{margin-bottom:9px}.workspace-manage .qb-mini-stats{margin-bottom:9px}.workspace-manage .qb-toolbar{border-radius:11px!important}.workspace-manage .qb-row{border-radius:11px!important}

/* Cấu hình: thanh chuyển nhanh luôn rõ, không tạo thêm menu trái. */
.manage-settings-jump{position:sticky;top:0;z-index:15;display:flex;gap:6px;flex-wrap:wrap;margin:0 0 11px;padding:7px;border:1px solid #e1e4e8;border-radius:11px;background:rgba(255,255,255,.96);box-shadow:0 5px 15px rgba(37,44,52,.045);backdrop-filter:blur(7px)}
.manage-settings-jump button{border:0;border-radius:8px;background:#f3f4f6;color:#555f6a;padding:8px 10px;font-size:9.5px;font-weight:800;cursor:pointer}.manage-settings-jump button:hover{background:#8a1027;color:#fff}.manage-settings-section{scroll-margin-top:62px;margin-bottom:11px!important}.workspace-manage .branding-grid{gap:11px}.workspace-manage .branding-preview-card,.workspace-manage .scoring-config-card,.workspace-manage .practice-config-card,.workspace-manage .ranking-config-card,.workspace-manage .challenge-settings-card{border-radius:12px!important;box-shadow:0 5px 16px rgba(39,46,54,.04)}
.workspace-manage .branding-preview{padding:15px;border-radius:11px}.workspace-manage .branding-preview img{width:70px;height:70px}.workspace-manage .branding-preview b{font-size:16px}.workspace-manage .branding-preview span{font-size:10px}.workspace-manage .branding-preview em{font-size:8px}.workspace-manage .scoring-config-card,.workspace-manage .practice-config-card,.workspace-manage .challenge-settings-card{padding:15px}.workspace-manage .ranking-config-card{padding:13px 15px}

/* Sao lưu / khôi phục: hai nhiệm vụ tách biệt và dễ nhận biết. */
.manage-backup-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:1040px}.manage-backup-card{min-height:280px;padding:20px!important;border-radius:14px!important;display:flex;flex-direction:column;align-items:flex-start}.manage-backup-icon{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:#eef6f1;color:#28784e;margin-bottom:14px}.manage-backup-icon .ico{width:22px;height:22px}.manage-backup-card.danger-zone .manage-backup-icon{background:#fff0f2;color:#a3263d}.manage-backup-card h2{margin:4px 0 8px;font-size:18px;color:#303640}.manage-backup-card p{margin:0;color:#737c86;font-size:10.5px;line-height:1.6;max-width:470px}.manage-backup-card>.btn{margin-top:auto;min-height:38px}.manage-backup-output{margin-top:8px}.manage-restore-picker{width:100%;margin:16px 0 10px;display:grid;gap:6px}.manage-restore-picker>span{font-size:9px;font-weight:850;color:#656e78}.manage-restore-picker input{width:100%;padding:8px;border:1px dashed #cfd4da;border-radius:9px;background:#fafbfc;font-size:9px}.manage-backup-note{max-width:1040px;margin-top:10px;padding:10px 12px;border-radius:9px;background:#fff8e8;border:1px solid #eee0b9;color:#755d28;font-size:9.5px}

/* Hồ sơ học sinh: một không gian cá nhân riêng, gọn và dễ quét. */
.workspace-profile .student-profile-page{max-width:1320px;margin:0 auto}.workspace-profile .profile-head{margin-bottom:12px}.workspace-profile .profile-title{gap:12px}.workspace-profile .profile-avatar{width:56px;height:56px;border-radius:15px;font-size:20px}.workspace-profile .profile-title h1{font-size:23px}.workspace-profile .profile-title p{font-size:10px;color:#7f8790}.workspace-profile .profile-summary-v89{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-bottom:11px}.workspace-profile .profile-kpi{min-height:88px;padding:13px 14px;border-radius:11px;box-shadow:0 4px 13px rgba(39,46,54,.035)}.workspace-profile .profile-kpi span{font-size:8.5px}.workspace-profile .profile-kpi>b{font-size:21px}.workspace-profile .profile-kpi small{font-size:8.7px;min-height:16px}.workspace-profile .profile-grid-v89{gap:11px;margin-bottom:11px}.workspace-profile .profile-chart-card,.workspace-profile .accuracy-card-v89,.workspace-profile .topic-card-v89,.workspace-profile .profile-history{border-radius:12px!important;box-shadow:0 5px 15px rgba(39,46,54,.04)}.workspace-profile .card-title-row h3{font-size:14px}.workspace-profile .card-title-row p{font-size:9px}.workspace-profile .profile-history .table-wrap{max-height:360px;overflow:auto}.workspace-profile .profile-history th{position:sticky;top:0;z-index:1;background:#fafbfc}.workspace-profile .profile-history td{font-size:9.5px}.workspace-profile .profile-history th{font-size:8.7px}

@media(min-width:1400px){.app-shell.workspace-manage:not(.hub-mode):not(.exam-mode) .content,.app-shell.workspace-profile:not(.hub-mode):not(.exam-mode) .content{padding-left:28px;padding-right:28px}}
@media(min-width:901px) and (max-height:760px){.app-shell.workspace-manage:not(.hub-mode):not(.exam-mode) .workspace-nav,.app-shell.workspace-profile:not(.hub-mode):not(.exam-mode) .workspace-nav{flex:1 1 auto!important;overflow-y:auto}.app-shell.workspace-manage:not(.hub-mode):not(.exam-mode) .workspace-nav .navbtn,.app-shell.workspace-profile:not(.hub-mode):not(.exam-mode) .workspace-nav .navbtn{min-height:36px;padding-top:7px;padding-bottom:7px}}
@media(max-width:1100px){.manage-user-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.manage-backup-grid{grid-template-columns:1fr}.workspace-profile .profile-summary-v89{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.manage-user-toolbar{grid-template-columns:1fr}.manage-user-kpis{grid-template-columns:1fr 1fr}.manage-settings-jump{position:static}.workspace-profile .profile-summary-v89{grid-template-columns:1fr}.manage-backup-card{min-height:240px}}

/* ===== V0.109 · Tối ưu màn hình mở đầu: chỉ còn 4 khối phân hệ ===== */
.app-shell.hub-mode .hub-main{
  background:linear-gradient(180deg,#f7f8fa 0%,#f3f5f7 100%);
}
.app-shell.hub-mode .hub-content{
  padding:30px 38px 38px;
  display:grid;
  place-items:center;
  overflow:auto;
}
.app-shell.hub-mode .system-hub{
  width:100%;
  max-width:1280px;
  margin:0 auto;
  padding:0;
}
.app-shell.hub-mode .workspace-card-grid-four{
  width:100%;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:15px;
}
.app-shell.hub-mode .workspace-card{
  min-height:228px;
  padding:22px 20px 19px;
  grid-template-columns:1fr 26px;
  grid-template-rows:auto 1fr;
  align-items:start;
  gap:17px 10px;
  border-radius:18px;
  box-shadow:0 8px 24px rgba(38,29,33,.055);
}
.app-shell.hub-mode .workspace-card:before{
  left:0;
  right:0;
  top:0;
  bottom:auto;
  width:auto;
  height:4px;
}
.app-shell.hub-mode .workspace-card-icon{
  grid-column:1/-1;
  width:58px;
  height:58px;
  border-radius:16px;
}
.app-shell.hub-mode .workspace-card-main{
  align-self:end;
}
.app-shell.hub-mode .workspace-card-main>b{
  font-size:21px;
  letter-spacing:-.015em;
}
.app-shell.hub-mode .workspace-card-main>em{
  margin-top:7px;
  font-size:10.5px;
  line-height:1.5;
  min-height:32px;
}
.app-shell.hub-mode .workspace-card-arrow{
  align-self:end;
  justify-self:end;
  width:26px;
  height:26px;
  border-radius:9px;
  background:#f5f6f8;
}
.app-shell.hub-mode .workspace-card-arrow .ico{
  width:16px;
  height:16px;
}
.app-shell.hub-mode .workspace-card:hover:not(:disabled){
  transform:translateY(-3px);
  box-shadow:0 14px 32px rgba(38,29,33,.09);
}
@media(max-width:1180px){
  .app-shell.hub-mode .system-hub{max-width:900px}
  .app-shell.hub-mode .workspace-card-grid-four{grid-template-columns:repeat(2,minmax(0,1fr))}
  .app-shell.hub-mode .workspace-card{min-height:170px;grid-template-columns:54px minmax(0,1fr) 24px;grid-template-rows:1fr;align-items:center;gap:15px;padding:20px}
  .app-shell.hub-mode .workspace-card-icon{grid-column:auto;width:54px;height:54px;border-radius:15px}
  .app-shell.hub-mode .workspace-card-main{align-self:center}
  .app-shell.hub-mode .workspace-card-arrow{align-self:center}
  .app-shell.hub-mode .workspace-card-main>em{min-height:0}
}
@media(max-width:720px){
  .app-shell.hub-mode .hub-content{padding:18px 14px 24px;display:block}
  .app-shell.hub-mode .workspace-card-grid-four{grid-template-columns:1fr;gap:10px}
  .app-shell.hub-mode .workspace-card{min-height:116px;padding:15px 16px;grid-template-columns:46px minmax(0,1fr) 22px;gap:12px}
  .app-shell.hub-mode .workspace-card-icon{width:46px;height:46px;border-radius:13px}
  .app-shell.hub-mode .workspace-card-main>b{font-size:18px}
  .app-shell.hub-mode .workspace-card-main>em{font-size:9.5px;margin-top:4px}
}

/* ===== V0.110 · Hoàn thiện phân hệ Luyện tập ===== */
.workspace-practice .practice-home-page,
.workspace-practice .practice-assigned-page,
.workspace-practice .practice-history-page,
.workspace-practice .practice-assignments-admin,
.workspace-practice .practice-progress-admin{width:100%;min-width:0}
.workspace-practice .compact-module-head p{margin:4px 0 0;font-size:10px;line-height:1.45;color:#858d97}
.practice-home-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:2px 0 12px}
.practice-home-action{min-height:92px;border:1px solid #e4e7eb;border-radius:15px;background:#fff;padding:15px 16px;display:grid;grid-template-columns:48px minmax(0,1fr) auto 20px;gap:12px;align-items:center;text-align:left;cursor:pointer;transition:.16s;box-shadow:0 5px 18px rgba(30,35,42,.035);color:#4c5560}
.practice-home-action:hover{transform:translateY(-1px);border-color:#d9b6bd;box-shadow:0 10px 24px rgba(63,33,39,.07)}
.practice-home-action>span:first-child{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;background:#fff2f4;color:#8a0d23}.practice-home-action.assigned>span:first-child{background:#f0f5ff;color:#315e9d}
.practice-home-action>span:first-child .ico{width:23px;height:23px}.practice-home-action>div{display:flex;flex-direction:column;gap:4px;min-width:0}.practice-home-action b{font-size:15px;color:#343b45}.practice-home-action small{font-size:9.5px;color:#858d97;line-height:1.45}.practice-home-action>em{font-style:normal;min-width:22px;height:22px;border-radius:11px;background:#950f27;color:#fff;display:grid;place-items:center;font-size:9px;font-weight:900}.practice-home-action>em:empty{display:none}.practice-home-action>.ico{width:18px;color:#9aa1a9}
.practice-home-kpis,.practice-assigned-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:12px}.practice-home-kpis>div,.practice-assigned-kpis>div{background:#fff;border:1px solid #e7e9ed;border-radius:11px;padding:10px 12px}.practice-home-kpis span,.practice-assigned-kpis span{display:block;font-size:8.7px;font-weight:850;color:#858d98;text-transform:uppercase;letter-spacing:.04em}.practice-home-kpis b,.practice-assigned-kpis b{display:block;margin-top:3px;color:#7f0b20;font-size:20px}.practice-home-kpis small{font-size:9px;color:#8c949d}
.practice-home-resume{margin-bottom:12px}.practice-home-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:12px;align-items:start}.practice-progress-card,.practice-recent-card{padding:14px}.practice-recent-card{background:transparent;border:0;padding:0;box-shadow:none}.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}.section-title-row>div{display:flex;flex-direction:column;gap:2px}.section-title-row b{font-size:12px;color:#414a55}.section-title-row span{font-size:8.8px;color:#9299a2}.section-title-row .link-btn{font-size:9px}
.practice-progress-list{display:grid;gap:10px}.practice-progress-list>div{display:grid;grid-template-columns:minmax(130px,1fr) minmax(120px,1.6fr) 48px 45px;align-items:center;gap:9px}.practice-progress-list>div>span{font-size:9.5px;font-weight:800;color:#5b6470;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.practice-progress-list .progressbar{height:7px}.practice-progress-list>div>b{text-align:right;font-size:10px;color:#7f0b20}.practice-progress-list>div>small{font-size:8px;color:#9299a2;text-align:right}
.empty-state.compact{padding:20px 12px;font-size:9.5px;text-align:center;color:#8b929b;background:#f8f9fa;border-radius:10px}
.practice-assigned-list{display:grid;gap:9px}.practice-assigned-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;background:#fff;border:1px solid #e4e7eb;border-radius:13px;padding:13px 14px;position:relative;overflow:hidden}.practice-assigned-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#9a1230}.practice-assigned-card.phase-upcoming:before{background:#be8b24}.practice-assigned-card.phase-closed:before{background:#9aa1aa}.practice-assigned-main{min-width:0}.practice-assigned-title>div{display:flex;align-items:center;gap:7px;margin-bottom:5px}.practice-assigned-title h3{margin:0;font-size:14px;color:#343c46}.practice-assigned-title p{margin:5px 0 0;font-size:9.5px;color:#7e8791;line-height:1.45}.assigned-attempt-state{font-size:8.3px;font-weight:850;color:#69727e}.practice-assigned-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:9px}.practice-assigned-meta span{display:flex;align-items:center;gap:4px;font-size:8.5px;color:#6f7883}.practice-assigned-meta .ico{width:13px;height:13px}.practice-assigned-scope{display:block;margin-top:7px;font-size:8.4px;color:#969ca4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.practice-assigned-action .btn{min-width:108px}
.practice-history-full{padding:0;overflow:hidden}.practice-history-tools{display:flex;gap:8px;justify-content:flex-end;padding:10px 12px;border-bottom:1px solid #e7e9ed}.practice-history-tools select{height:34px;border:1px solid #dfe3e7;border-radius:8px;background:#fff;padding:0 9px;font-size:9.5px;color:#5b6470}.practice-history-table{min-width:940px}.practice-history-table th,.practice-history-table td{padding:10px}.practice-history-scope{display:block;max-width:280px;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#626b76}.practice-score-strong{color:#7f0b20;font-size:11px}
.practice-assignment-admin-list{display:grid;gap:9px}.practice-assignment-admin-card{background:#fff;border:1px solid #e4e7eb;border-radius:13px;padding:13px 14px;display:grid;grid-template-columns:minmax(220px,1.15fr) minmax(320px,1fr) minmax(220px,.8fr) auto;gap:15px;align-items:center}.practice-assignment-admin-title>div{display:flex;align-items:center;gap:7px}.practice-assignment-admin-title>div>span:last-child{font-size:8px;color:#9aa1a9}.practice-assignment-admin-title h3{font-size:13px;margin:6px 0 3px;color:#3f4751}.practice-assignment-admin-title p{font-size:8.7px;color:#858d97;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.practice-assignment-admin-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.practice-assignment-admin-stats>div{background:#f7f8fa;border-radius:8px;padding:7px 8px}.practice-assignment-admin-stats span{font-size:7.5px;color:#8b929b;display:block}.practice-assignment-admin-stats b{display:block;margin-top:2px;font-size:13px;color:#626a74}.practice-assignment-admin-time{display:flex;flex-direction:column;gap:3px;font-size:8.2px;color:#7f8791}.practice-assignment-admin-actions{display:flex;gap:5px;justify-content:flex-end;flex-wrap:wrap}.practice-assignment-admin-actions .btn{font-size:8.5px}
.practice-assignment-modal .modal{width:min(1080px,94vw);max-width:none;max-height:92vh;overflow:auto}.practice-assignment-builder{padding:2px}.modal-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:12px}.modal-title-row h2{margin:2px 0 0}.modal-title-row p{margin:4px 0 0;font-size:9px;color:#8b929b}.practice-assignment-builder-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.practice-assignment-builder-grid>section{border:1px solid #e5e8ec;border-radius:11px;padding:11px;min-width:0}.practice-assignment-builder-grid h3{font-size:11px;color:#4d5661;margin:0}.practice-builder-tools{display:flex;gap:10px;justify-content:flex-end;margin:-18px 0 6px}.practice-assignment-students{max-height:210px;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:7px}.practice-assignment-students>label{display:grid;grid-template-columns:auto 30px minmax(0,1fr);align-items:center;gap:6px;border:1px solid #e5e7eb;border-radius:8px;padding:6px 7px;cursor:pointer}.practice-assignment-students>label>input{width:14px;height:14px}.practice-assignment-students>label>span:last-child{display:flex;flex-direction:column;min-width:0}.practice-assignment-students b{font-size:8.8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.practice-assignment-students small{font-size:7.5px;color:#949aa2}.practice-assignment-topics{max-height:210px}.pa-diffs{margin-top:8px}.assignment-config{margin-top:10px}.practice-assignment-time{margin-top:10px}
.practice-assignment-detail{min-width:min(880px,88vw)}.practice-assignment-detail-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:10px 0 12px}.practice-assignment-detail-kpis>div{background:#f7f8fa;border-radius:9px;padding:8px 9px}.practice-assignment-detail-kpis span{display:block;font-size:7.8px;color:#8b929b}.practice-assignment-detail-kpis b{display:block;margin-top:2px;font-size:16px;color:#7f0b20}.practice-progress-admin-list{padding:0;overflow:hidden}.practice-progress-admin-list .practice-admin-list-head{padding:10px 12px}.practice-progress-admin-list table{min-width:900px}
@media(max-width:1180px){.practice-home-grid{grid-template-columns:1fr}.practice-assignment-admin-card{grid-template-columns:1fr 1fr}.practice-assignment-admin-actions{justify-content:flex-start}.practice-assignment-builder-grid{grid-template-columns:1fr}}
@media(max-width:760px){.practice-home-actions{grid-template-columns:1fr}.practice-home-kpis,.practice-assigned-kpis{grid-template-columns:1fr 1fr}.practice-progress-list>div{grid-template-columns:minmax(100px,1fr) minmax(90px,1fr) 42px}.practice-progress-list>div>small{display:none}.practice-assigned-card{grid-template-columns:1fr}.practice-assigned-action .btn{width:100%}.practice-history-tools{flex-direction:column}.practice-history-tools .practice-admin-search{width:100%}.practice-assignment-admin-card{grid-template-columns:1fr}.practice-assignment-admin-stats{grid-template-columns:1fr 1fr}.practice-assignment-students{grid-template-columns:1fr}.practice-assignment-detail{min-width:0}.practice-assignment-detail-kpis{grid-template-columns:1fr 1fr}}
.workspace-practice .practice-create-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.practice-scope-switch{display:inline-flex;border:1px solid #e0e3e7;border-radius:9px;padding:2px;background:#f7f8fa}.practice-scope-switch button{border:0;background:transparent;border-radius:7px;padding:6px 10px;font-size:8.8px;font-weight:850;color:#747d88;cursor:pointer}.practice-scope-switch button.active{background:#fff;color:#850c21;box-shadow:0 1px 4px rgba(0,0,0,.08)}
@media(max-width:760px){.workspace-practice .practice-create-head{align-items:stretch;flex-direction:column}.practice-scope-switch{align-self:flex-start}}

/* ===== V0.111 · Lịch sử học sinh + giao bài luyện theo luồng giao đề ===== */
.practice-assignment-source{display:flex;align-items:center;gap:5px;margin-top:6px;color:#6f7883;font-size:8.3px;font-weight:750}
.practice-assignment-source .ico{width:13px;height:13px}
.practice-student-history-link{border:0;background:transparent;padding:0;display:flex;align-items:center;gap:8px;text-align:left;cursor:pointer;color:inherit}
.practice-student-history-link:hover b{color:#850c21;text-decoration:underline}
.practice-student-history-link>span:last-child{display:flex;flex-direction:column;gap:1px}
.practice-student-history-link small{font-size:8px;color:#9299a2}
.practice-student-history-backdrop{z-index:70}
.practice-student-history-modal{width:min(1220px,95vw);max-width:none;max-height:92vh;display:flex;flex-direction:column;overflow:hidden}
.practice-student-history-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:12px 16px;border-bottom:1px solid #e5e8ec;background:#fafbfc}
.practice-student-history-kpis>div{background:#fff;border:1px solid #e6e9ed;border-radius:10px;padding:8px 10px}
.practice-student-history-kpis span{display:block;font-size:7.8px;color:#8b929b;text-transform:uppercase;font-weight:850;letter-spacing:.035em}
.practice-student-history-kpis b{display:block;margin-top:2px;font-size:16px;color:#7f0b20}
.practice-student-history-kpis small{font-size:8px;color:#8c949d}
.practice-student-history-tools{display:grid;grid-template-columns:minmax(260px,1fr) 180px 180px;gap:8px;padding:10px 16px;border-bottom:1px solid #e6e9ed;background:#fff}
.practice-student-history-tools select{height:34px;border:1px solid #dfe3e7;border-radius:8px;background:#fff;padding:0 9px;font-size:9px;color:#5b6470}
.practice-student-history-table-wrap{overflow:auto;flex:1;min-height:0}
.practice-student-history-table-wrap table{min-width:1050px}
.practice-student-history-table-wrap th,.practice-student-history-table-wrap td{padding:10px 11px}
.practice-student-history-table-wrap td:nth-child(3){max-width:320px}
.practice-student-history-table-wrap td:nth-child(3)>span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.workspace-practice .oe-builder-backdrop .oe-builder-side-title span{letter-spacing:.055em}
.workspace-practice .oe-builder-backdrop .oe-builder-review-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:900px){.practice-student-history-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-student-history-tools{grid-template-columns:1fr 1fr}.practice-student-history-tools .practice-admin-search{grid-column:1/-1}.workspace-practice .oe-builder-backdrop .oe-builder-review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.practice-student-history-modal{width:98vw;max-height:96vh}.practice-student-history-kpis{grid-template-columns:1fr 1fr;padding:9px}.practice-student-history-tools{grid-template-columns:1fr;padding:9px}.practice-student-history-tools .practice-admin-search{grid-column:auto}}

/* ===== V0.112 · Đợt luyện nhiều lượt + làm lại cụm thao tác ===== */
.practice-assignment-admin-card.v112{
  grid-template-columns:minmax(270px,1.15fr) minmax(300px,.95fr) minmax(245px,.85fr) 176px;
  gap:18px;padding:17px 18px;border-radius:15px;border:1px solid #e3e6ea;
  box-shadow:0 4px 16px rgba(45,30,34,.035);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease
}
.practice-assignment-admin-card.v112:hover{border-color:#d8c8cd;box-shadow:0 8px 24px rgba(72,28,41,.07);transform:translateY(-1px)}
.practice-assignment-admin-card.v112 .practice-assignment-admin-title>div{gap:8px}
.practice-assignment-admin-card.v112 .practice-assignment-admin-title>div>span:last-child{font-size:10px}
.practice-assignment-admin-card.v112 .practice-assignment-admin-title h3{font-size:15px;line-height:1.3;margin:7px 0 5px;color:#202731}
.practice-assignment-admin-card.v112 .practice-assignment-admin-title p{font-size:11px;line-height:1.45;color:#6f7883}
.practice-assignment-admin-card.v112 .practice-assignment-source{display:flex;align-items:center;gap:5px;margin-top:7px;font-size:10px;color:#8a5360;font-weight:750}
.practice-assignment-admin-card.v112 .practice-assignment-source .ico{width:14px;height:14px}
.practice-assignment-admin-stats.v112{gap:7px}
.practice-assignment-admin-stats.v112>div{padding:10px 10px;border:1px solid #eef0f2;background:#f8f9fa;border-radius:10px}
.practice-assignment-admin-stats.v112 span{font-size:9px;letter-spacing:.01em;color:#7b848e}
.practice-assignment-admin-stats.v112 b{font-size:17px;margin-top:4px;color:#3d4650}
.practice-assignment-admin-time.v112{gap:5px;font-size:10.5px;line-height:1.35;color:#66717c}
.practice-assignment-admin-time.v112>span:first-child{color:#4e5863}
.practice-assignment-admin-time.v112 em{font-style:normal;font-size:9.5px;color:#97142f;background:#fff3f6;border-radius:8px;padding:5px 7px;width:max-content;max-width:100%}
.practice-assignment-admin-actions.v112{display:flex;flex-direction:column;gap:7px;align-items:stretch;justify-content:center;min-width:0}
.pa-action-main,.pa-action-tool,.pa-inline-action,.practice-action-btn{font:inherit;cursor:pointer;border:0;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:.15s ease;text-decoration:none}
.pa-action-main{height:39px;border-radius:10px;background:#8f0d28;color:#fff;font-size:11px;font-weight:850;padding:0 14px;box-shadow:0 5px 12px rgba(143,13,40,.15)}
.pa-action-main:hover{background:#761022;transform:translateY(-1px)}
.pa-action-main .ico{width:16px;height:16px}
.pa-action-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.pa-action-tool{height:31px;border:1px solid #dfe3e7;border-radius:8px;background:#fff;color:#59636e;font-size:9px;font-weight:800;padding:0 5px;min-width:0}
.pa-action-tool .ico{width:13px;height:13px;flex:0 0 auto}.pa-action-tool span{overflow:hidden;text-overflow:ellipsis}
.pa-action-tool:hover{border-color:#c7afb6;background:#fff7f9;color:#821229}.pa-action-tool.danger{border-color:#f0d5d9;color:#a52539;background:#fffafa}.pa-action-tool.danger:hover{background:#fff0f2;border-color:#ddaab3}
.practice-new-assignment{min-height:42px;padding:0 18px!important;border-radius:11px!important}

.practice-assigned-card{padding:16px 18px;gap:18px;border-radius:14px}
.practice-assigned-title h3{font-size:15px}.practice-assigned-title p{font-size:11px;max-width:900px}.assigned-attempt-state{font-size:9.5px}
.practice-assigned-meta{gap:13px;margin-top:10px}.practice-assigned-meta span{font-size:10px}.practice-assigned-meta .ico{width:14px;height:14px}
.practice-assigned-result{display:flex;align-items:center;gap:10px;margin-top:9px}.practice-assigned-result span{font-size:10px;color:#77818c}.practice-assigned-result b{font-size:10px;color:#8d1730;background:#fff3f6;border-radius:999px;padding:4px 8px}
.practice-assigned-scope{font-size:9.5px;margin-top:8px}
.practice-assigned-action{display:flex;flex-direction:column;gap:7px;min-width:178px}
.practice-action-btn{min-height:40px;border-radius:10px;padding:0 13px;font-size:10.5px;font-weight:850;white-space:nowrap}
.practice-action-btn .ico{width:15px;height:15px}.practice-action-btn.primary{background:#8f0d28;color:#fff;box-shadow:0 5px 12px rgba(143,13,40,.14)}.practice-action-btn.primary:hover{background:#771024;transform:translateY(-1px)}
.practice-action-btn.ghost{border:1px solid #dfd4d7;background:#fff;color:#721126}.practice-action-btn.ghost:hover{background:#fff5f7;border-color:#caaeb5}.practice-action-btn.disabled{background:#f2f4f6;color:#9aa1a9;border:1px solid #e4e7ea;cursor:not-allowed}

.practice-assignment-detail.v112{min-width:min(1120px,88vw)}
.practice-assignment-detail-kpis.v112{grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}.practice-assignment-detail-kpis.v112>div{padding:10px 11px}
.practice-assignment-rule-note{display:flex;align-items:flex-start;gap:8px;margin:10px 0 12px;padding:10px 12px;border:1px solid #ead9dd;background:#fff8fa;border-radius:10px;color:#6e2737;font-size:10.5px;line-height:1.45}.practice-assignment-rule-note .ico{width:16px;height:16px;flex:0 0 auto;margin-top:1px}
.practice-assignment-detail-table th{white-space:nowrap}.practice-assignment-detail-table td{vertical-align:middle}.pa-row-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.pa-inline-action{min-height:31px;border:1px solid #dddfe3;background:#fff;color:#5b6470;border-radius:8px;padding:0 9px;font-size:9.5px;font-weight:800}.pa-inline-action .ico{width:13px;height:13px}.pa-inline-action:hover{border-color:#c9afb6;color:#801128;background:#fff7f9}.pa-inline-action.primary{background:#8f0d28;border-color:#8f0d28;color:#fff}.pa-inline-action.primary:hover{background:#751023}
.practice-attempt-list-modal{min-width:min(830px,84vw)}.practice-attempt-table td,.practice-attempt-table th{vertical-align:middle}

@media(max-width:1350px){.practice-assignment-admin-card.v112{grid-template-columns:minmax(260px,1.15fr) minmax(280px,1fr) minmax(220px,.9fr);}.practice-assignment-admin-actions.v112{grid-column:1/-1;flex-direction:row;justify-content:flex-end}.practice-assignment-admin-actions.v112 .pa-action-main{min-width:150px}.pa-action-tools{display:flex}.pa-action-tool{min-width:78px;padding:0 9px}}
@media(max-width:900px){.practice-assignment-admin-card.v112{grid-template-columns:1fr}.practice-assignment-admin-actions.v112{grid-column:auto;justify-content:stretch;display:grid;grid-template-columns:1fr}.pa-action-tools{display:grid;grid-template-columns:repeat(3,1fr)}.practice-assignment-detail.v112{min-width:0}.practice-assignment-detail-kpis.v112{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.practice-assigned-card{grid-template-columns:1fr}.practice-assigned-action{min-width:0}.practice-assignment-detail-kpis.v112{grid-template-columns:repeat(2,1fr)}}

/* ===== V0.113 · Tổng quan luyện tập + theo dõi full màn hình ===== */
.practice-overview-v113 .compact-module-head{margin-bottom:10px}
.practice-overview-insights{display:grid;grid-template-columns:1.05fr 1.1fr .95fr;gap:10px;margin:0 0 10px}
.practice-insight-card{padding:14px 15px;min-width:0;overflow:hidden}
.practice-insight-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.practice-insight-head>div{min-width:0}.practice-insight-head b{display:block;font-size:12px;color:#353d47}.practice-insight-head span{display:block;margin-top:2px;font-size:8.8px;color:#8a929c}
.insight-count{flex:0 0 auto;display:grid!important;place-items:center;min-width:28px;height:25px;margin:0!important;padding:0 7px;border-radius:999px;background:#f8eef1;color:#8b1530!important;font-size:9px!important;font-weight:900}
.practice-member-rank,.practice-topic-rank{display:grid;gap:4px}
.practice-member-item,.practice-topic-rank-item{font:inherit;border:0;background:transparent;cursor:pointer;width:100%;min-width:0;text-align:left}
.practice-member-item{display:grid;grid-template-columns:22px 31px minmax(0,1fr) auto;gap:7px;align-items:center;padding:6px 6px;border-radius:9px}
.practice-member-item:hover,.practice-topic-rank-item:hover{background:#faf6f7}.rank-no{font-size:9px;font-weight:900;color:#a0a6ad;text-align:center}.practice-member-item .mini-avatar{width:30px;height:30px;font-size:9px}.member-copy{min-width:0}.member-copy b{display:block;font-size:10.5px;color:#3f4751;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-copy small{display:block;margin-top:1px;font-size:8.5px;color:#8a929a}.member-score{font-size:11px;font-weight:900;color:#801228}.member-score small{font-size:7.5px;color:#9aa0a7;margin-left:1px}
.practice-topic-rank-item{display:grid;gap:5px;padding:6px 7px;border-radius:9px}.topic-rank-copy{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.topic-rank-copy b{font-size:9.7px;color:#4b535d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topic-rank-copy small{flex:0 0 auto;font-size:8px;color:#8c939b}.topic-rank-bar{height:5px;border-radius:999px;background:#f0f2f4;overflow:hidden}.topic-rank-bar i{display:block;height:100%;border-radius:999px;background:#9a1730}
.practice-week-chart{height:108px;display:grid;grid-template-columns:repeat(7,1fr);gap:5px;align-items:end;padding:4px 1px 0}.practice-week-chart>div{height:100%;display:grid;grid-template-rows:minmax(0,1fr) 15px 14px;align-items:end;text-align:center}.week-bar{height:100%;display:flex;align-items:flex-end;justify-content:center;border-radius:6px;background:#fafafb;overflow:hidden}.week-bar i{display:block;width:52%;min-height:3px;border-radius:5px 5px 2px 2px;background:#9b1932}.practice-week-chart b{font-size:8.5px;color:#626a73;line-height:15px}.practice-week-chart small{font-size:7.7px;color:#969ca4;line-height:14px;text-transform:uppercase}.practice-bank-mini{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid #eef0f2;margin-top:9px;padding-top:9px}.practice-bank-mini span{font-size:8.5px;color:#8d949c}.practice-bank-mini b{font-size:9px;color:#5d6670;text-align:right}.practice-insight-empty{padding:20px 8px;text-align:center;color:#959ca4;font-size:9px}

/* All actions on an assignment card have the same visual weight and dimensions. */
.practice-assignment-admin-actions.v113{display:grid;grid-template-columns:repeat(2,minmax(86px,1fr));gap:6px;align-items:center;justify-content:end;min-width:190px}
.practice-assignment-admin-actions.v113 .pa-action-tool{height:36px;min-width:0;padding:0 9px;border-radius:9px;font-size:9.5px}
.pa-action-tool.primary{background:#8f0d28;border-color:#8f0d28;color:#fff;box-shadow:none}.pa-action-tool.primary:hover{background:#751023;border-color:#751023;color:#fff}.pa-action-tool.primary .ico{color:#fff}

/* Full-window assignment monitoring workspace. */
.practice-assignment-monitor{position:fixed;inset:0;z-index:45;background:#f3f5f7;color:#242b33;font-family:inherit}
.practice-monitor-shell{height:100vh;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}
.practice-monitor-top{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 18px 10px 22px;background:#fff;border-bottom:1px solid #dde2e7;box-shadow:0 2px 10px rgba(31,38,46,.05);z-index:2}
.practice-monitor-heading{min-width:0}.practice-monitor-heading>.eyebrow{font-size:8px}.practice-monitor-heading>div{display:flex;align-items:center;gap:10px;min-width:0}.practice-monitor-heading h1{margin:2px 0 1px;font-size:20px;line-height:1.2;color:#791126;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.practice-monitor-heading p{margin:0;font-size:9.5px;color:#777f88;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.practice-monitor-top-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.practice-monitor-refresh{height:34px;border:1px solid #dfe3e7;border-radius:9px;background:#fff;color:#5e6670;font:inherit;font-size:9px;font-weight:850;display:inline-flex;align-items:center;gap:6px;padding:0 11px;cursor:pointer}.practice-monitor-refresh:hover{border-color:#cbb6bc;background:#fff8fa;color:#801128}.practice-monitor-refresh .ico{width:13px;height:13px}
.practice-monitor-main{min-height:0;overflow:auto;padding:14px 18px 22px}.practice-monitor-summary,.practice-monitor-table-card{max-width:1600px;margin-left:auto;margin-right:auto}.practice-assignment-detail-kpis.v113{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:0 0 9px}.practice-assignment-detail-kpis.v113>div{background:#fff;border:1px solid #e4e8ec;border-radius:11px;padding:10px 12px}.practice-assignment-detail-kpis.v113 span{display:block;font-size:8px;font-weight:850;color:#858d96;text-transform:uppercase;letter-spacing:.025em}.practice-assignment-detail-kpis.v113 b{display:block;margin-top:3px;font-size:18px;color:#801229}.practice-assignment-rule-note.v113{margin:0 0 10px;background:#fff;border-color:#eadfe2}
.practice-monitor-table-card{padding:0;overflow:hidden;border-radius:13px}.practice-monitor-table-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 13px;border-bottom:1px solid #eceff2;background:#fff}.practice-monitor-table-head>div:first-child b{display:block;font-size:12px;color:#424a54}.practice-monitor-table-head>div:first-child span{display:block;margin-top:2px;font-size:8.8px;color:#9097a0}.practice-monitor-tools{display:flex;align-items:center;gap:7px}.practice-monitor-tools .practice-admin-search{width:250px}.practice-monitor-tools select{height:34px;min-width:125px;border:1px solid #dfe3e7;border-radius:8px;background:#fff;padding:0 9px;font:inherit;font-size:9px;color:#5e6670;outline:none}.practice-monitor-table-wrap{max-height:calc(100vh - 245px);overflow:auto}.practice-monitor-table-wrap table{min-width:980px}.practice-monitor-table-wrap thead th{position:sticky;top:0;z-index:1;background:#f8f9fa}.practice-monitor-table-wrap td{vertical-align:middle}

@media(max-width:1250px){.practice-overview-insights{grid-template-columns:1fr 1fr}.practice-week-card{grid-column:1/-1}.practice-week-chart{height:90px}.practice-assignment-admin-actions.v113{grid-column:1/-1;grid-template-columns:repeat(4,minmax(90px,120px));justify-content:end}.practice-assignment-admin-actions.v113 .pa-action-tool{width:100%}}
@media(max-width:900px){.practice-overview-insights{grid-template-columns:1fr}.practice-week-card{grid-column:auto}.practice-assignment-admin-actions.v113{grid-column:auto;grid-template-columns:1fr 1fr;justify-content:stretch}.practice-assignment-detail-kpis.v113{grid-template-columns:repeat(3,1fr)}.practice-monitor-top{padding-left:12px}.practice-monitor-main{padding:10px}.practice-monitor-heading p{display:none}.practice-monitor-table-head{align-items:stretch;flex-direction:column}.practice-monitor-tools{width:100%}.practice-monitor-tools .practice-admin-search{width:100%}}
@media(max-width:620px){.practice-assignment-detail-kpis.v113{grid-template-columns:1fr 1fr}.practice-monitor-refresh{display:none}.practice-monitor-heading h1{font-size:16px}.practice-monitor-main{padding:8px}.practice-monitor-tools{flex-direction:column;align-items:stretch}.practice-monitor-tools select{width:100%}.practice-assignment-admin-actions.v113{grid-template-columns:1fr 1fr}}
@media(max-width:1350px) and (min-width:901px){.practice-assignment-admin-actions.v113{grid-column:1/-1;grid-template-columns:repeat(4,minmax(90px,120px));justify-content:end}}


/* ===== V0.114 · Giao bài luyện theo wizard tuần tự ===== */
.oe-builder-foot-right{display:flex;align-items:center;gap:8px}
.oe-builder-nav button:disabled{cursor:not-allowed;opacity:.46;background:transparent;border-color:transparent;box-shadow:none}
.oe-builder-nav button:disabled:hover{background:transparent;border-color:transparent}
.oe-builder-nav button.done:not(.active)>span{background:#edf7f0;color:#207a43}
.oe-builder-nav button.done:not(.active){border-color:#e7ece9}
.oe-builder-nav button.done:not(.active) b{color:#4d6556}
.oe-builder-full #oeNext,.oe-builder-full #oeSave{min-width:155px}
.oe-builder-full #oeBack{min-width:110px}
@media(max-width:650px){.oe-builder-foot-right{gap:5px}.oe-builder-full #oeNext,.oe-builder-full #oeSave,.oe-builder-full #oeBack{min-width:0}}

/* ===== V0.115 · Báo cáo thống kê Luyện tập ===== */
.practice-report-page{width:100%;min-width:0;padding-bottom:24px}
.practice-report-filter{padding:12px 13px;margin-bottom:10px;overflow:visible}
.practice-report-filter-main{display:grid;grid-template-columns:150px 132px 132px 140px minmax(180px,1fr) minmax(180px,1fr) minmax(180px,1fr) 104px;gap:8px;align-items:end}
.practice-report-filter-main label{display:grid;gap:4px;min-width:0}
.practice-report-filter-main label>span{font-size:8px;font-weight:850;color:#858d96;text-transform:uppercase;letter-spacing:.035em}
.practice-report-filter-main select,.practice-report-filter-main input{width:100%;height:35px;border:1px solid #dfe3e7;border-radius:9px;background:#fff;padding:0 9px;color:#4e5761;font:inherit;font-size:9.2px;outline:none}
.practice-report-filter-main select:focus,.practice-report-filter-main input:focus{border-color:#bfa4ac;box-shadow:0 0 0 2px rgba(143,13,40,.06)}
.practice-report-apply{height:35px;padding:0 12px;font-size:9px}
.practice-report-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:10px}
.practice-report-kpis>div{min-width:0;background:#fff;border:1px solid #e4e8ec;border-radius:11px;padding:10px 12px}
.practice-report-kpis span{display:block;font-size:7.8px;font-weight:850;color:#868e98;text-transform:uppercase;letter-spacing:.035em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.practice-report-kpis b{display:block;margin-top:3px;font-size:19px;line-height:1.1;color:#801229;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.practice-report-kpis b em{font-size:8px;font-style:normal;color:#9198a0;font-weight:800}
.practice-report-kpis small{display:block;margin-top:3px;font-size:8px;color:#969da5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.practice-report-chart-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr);gap:10px;margin-bottom:10px}
.practice-report-chart-card,.practice-report-table-card{padding:0;overflow:hidden}
.practice-report-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #edf0f2;background:#fff}
.practice-report-card-head>div{min-width:0}.practice-report-card-head b{display:block;font-size:11.5px;color:#3d4650}.practice-report-card-head span{display:block;margin-top:2px;font-size:8.5px;color:#8e959d}.practice-report-card-head>em{font-style:normal;flex:0 0 auto;font-size:8.5px;font-weight:850;color:#801229;background:#fbf2f4;border-radius:999px;padding:5px 8px}
.practice-report-timeline{height:175px;display:flex;align-items:stretch;gap:6px;padding:14px 14px 11px;overflow-x:auto}
.practice-report-timebar{min-width:24px;flex:1;display:grid;grid-template-rows:minmax(0,1fr) 17px 18px;align-items:end;text-align:center}
.practice-report-timebar>span{height:100%;display:flex;align-items:flex-end;justify-content:center;border-radius:7px;background:#fafafb;overflow:hidden}
.practice-report-timebar>span i{display:block;width:58%;min-height:3px;border-radius:5px 5px 2px 2px;background:#941630}
.practice-report-timebar>b{font-size:8.5px;color:#5d6670;line-height:17px}.practice-report-timebar>small{font-size:7.4px;color:#979ea6;line-height:18px;white-space:nowrap}
.practice-report-bands{display:grid;gap:12px;padding:18px 15px}
.practice-report-band{display:grid;grid-template-columns:88px minmax(90px,1fr) 32px;gap:8px;align-items:center}.practice-report-band>span{font-size:8.8px;color:#626b75}.practice-report-band>div{height:8px;border-radius:999px;background:#f0f2f4;overflow:hidden}.practice-report-band>div i{display:block;height:100%;border-radius:999px;background:#9b1932}.practice-report-band>b{text-align:right;font-size:9px;color:#414a54}
.practice-report-topics,.practice-report-difficulties{display:grid;gap:4px;padding:10px 12px 13px}
.practice-report-topic{display:grid;grid-template-columns:23px minmax(0,1fr) 48px;gap:8px;align-items:center;padding:7px 5px;border-radius:9px}.practice-report-topic:hover{background:#fbf7f8}.practice-report-topic>div{min-width:0}.practice-report-topic>div>b{display:block;font-size:9.4px;color:#4b535d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.practice-report-topic>div>small{display:block;margin:1px 0 4px;font-size:7.7px;color:#9299a1}.practice-report-topic>div>span{display:block;height:4px;border-radius:99px;background:#f0f2f4;overflow:hidden}.practice-report-topic>div>span i{display:block;height:100%;border-radius:99px;background:#9a1730}.practice-report-topic>strong{text-align:right;font-size:9.8px;color:#801229}
.practice-report-difficulty{display:grid;grid-template-columns:110px minmax(0,1fr) 48px;gap:9px;align-items:center;padding:9px 5px}.practice-report-difficulty>div b{display:block;font-size:9.3px;color:#4b535d}.practice-report-difficulty>div small{display:block;margin-top:1px;font-size:7.7px;color:#9299a1}.practice-report-difficulty>span{height:7px;border-radius:99px;background:#f0f2f4;overflow:hidden}.practice-report-difficulty>span i{display:block;height:100%;border-radius:99px;background:#8e1830}.practice-report-difficulty>strong{text-align:right;font-size:9.5px;color:#801229}
.practice-report-empty{padding:35px 15px;text-align:center;color:#9299a1;font-size:9px}
.practice-report-table-card{margin-bottom:10px}
.practice-report-table{min-width:1050px}.practice-report-table th,.practice-report-table td{padding:9px 10px;vertical-align:middle}.practice-report-table td:nth-child(2){min-width:190px}.practice-report-table .btn.compact{height:32px;min-width:82px;padding:0 9px;font-size:8.7px}
.practice-report-warning{margin-top:8px;padding:9px 11px;border:1px solid #eed9de;border-radius:9px;background:#fff8fa;color:#7d5260;font-size:8.7px}
@media(max-width:1450px){.practice-report-filter-main{grid-template-columns:repeat(4,minmax(150px,1fr))}.practice-report-apply{width:100%}.practice-report-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1050px){.practice-report-chart-grid{grid-template-columns:1fr}.practice-report-filter-main{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-report-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-report-timeline{height:150px}}
@media(max-width:620px){.practice-report-filter-main{grid-template-columns:1fr}.practice-report-kpis{grid-template-columns:1fr 1fr}.practice-report-card-head{align-items:flex-start}.practice-report-timeline{height:135px}.practice-report-band{grid-template-columns:78px minmax(70px,1fr) 26px}}

/* ===== V0.116 · Hoàn thiện phân hệ Thi trực tuyến ===== */
.online-overview-page,.online-results-page,.online-report-page,.online-student-home,.online-history-page{display:flex;flex-direction:column;gap:14px;min-height:0}
.online-overview-kpis,.online-results-kpis,.online-report-kpis,.online-student-home-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.online-report-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
.online-overview-kpis>div,.online-results-kpis>div,.online-report-kpis>div,.online-student-home-kpis>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;min-width:0;display:flex;flex-direction:column;gap:3px}
.online-overview-kpis span,.online-results-kpis span,.online-report-kpis span,.online-student-home-kpis span{font-size:11px;color:var(--muted);font-weight:700}
.online-overview-kpis b,.online-results-kpis b,.online-report-kpis b,.online-student-home-kpis b{font-size:24px;line-height:1.15;color:#741126}
.online-overview-kpis small,.online-report-kpis small{font-size:10px;color:var(--muted)}
.online-overview-grid,.online-report-grid,.online-student-home-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(330px,.8fr);gap:12px;min-height:0}
.online-overview-section,.online-report-card,.online-overview-foot,.online-student-home-grid>.card{padding:16px}
.online-overview-exam-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.online-overview-exam{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #e4e7eb;border-radius:12px;padding:11px 12px;background:#fff}
.online-overview-exam.live{border-left:4px solid #2c8c59;background:#fbfffc}.online-overview-exam h3{font-size:14px;margin:5px 0 2px}.online-overview-exam p{font-size:10.5px;color:var(--muted);margin:0}.online-overview-subtitle{font-size:10px;font-weight:900;color:#7c848d;text-transform:uppercase;letter-spacing:.08em;margin:5px 0 0}
.online-overview-students{display:flex;flex-direction:column;gap:7px;margin-top:12px}.online-overview-student{display:grid;grid-template-columns:24px 34px minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;text-align:left;border:1px solid #e6e8ec;background:#fff;border-radius:11px;padding:9px 10px;color:inherit;cursor:pointer}.online-overview-student:hover{border-color:#caa9b0;background:#fffafb}.online-overview-student>span:first-child{font-size:10px;font-weight:900;color:#8b1328;text-align:center}.online-overview-student .mini-avatar{width:34px;height:34px}.online-overview-student div{min-width:0;display:flex;flex-direction:column}.online-overview-student div b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.online-overview-student div small{font-size:9.5px;color:var(--muted)}.online-overview-student strong{font-size:12px;color:#7f1025}
.online-overview-foot{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#e9ebee;padding:1px;overflow:hidden}.online-overview-foot>div{background:#fff;padding:13px 15px;display:flex;align-items:baseline;gap:7px}.online-overview-foot b{font-size:20px;color:#7e1025}.online-overview-foot span{font-size:10px;color:var(--muted)}
.online-results-filter,.online-report-filter{padding:12px 14px}.online-results-filter-row,.online-report-filter-grid{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(220px,1.2fr) auto;gap:9px;align-items:end}.online-report-filter-grid{grid-template-columns:repeat(5,minmax(140px,1fr)) auto}.online-results-filter-row.student{grid-template-columns:minmax(0,1fr) 180px}.online-results-filter label,.online-report-filter label{display:flex;flex-direction:column;gap:4px}.online-results-filter label>span,.online-report-filter label>span{font-size:9px;color:var(--muted);font-weight:800}.online-results-filter select,.online-report-filter select,.online-report-filter input{height:37px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:0 9px;min-width:0}.online-results-search{height:37px;border:1px solid var(--line);border-radius:9px;background:#fff;display:flex;align-items:center;gap:7px;padding:0 10px}.online-results-search svg{width:15px}.online-results-search input{border:0;outline:0;width:100%;background:transparent}
.online-results-table-card{padding:0;overflow:hidden}.online-results-table-card .table{margin:0}.online-results-table-card td{vertical-align:middle}.online-results-table-card .btn{white-space:nowrap}
.online-report-card .section-title-row{margin-bottom:12px}.online-report-card .section-title-row em{font-style:normal;font-size:10px;color:var(--muted)}.online-report-topic-list{display:flex;flex-direction:column;gap:10px}.online-report-topic-list>div{display:grid;grid-template-columns:minmax(120px,1fr) minmax(100px,1.2fr) 48px;gap:10px;align-items:center}.online-report-topic-list span{display:flex;flex-direction:column;min-width:0}.online-report-topic-list span b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.online-report-topic-list span small{font-size:9px;color:var(--muted)}.online-report-topic-list>div>i{height:6px;border-radius:999px;background:#edf0f2;overflow:hidden}.online-report-topic-list>div>i>em{display:block;height:100%;background:#8a172b;border-radius:inherit}.online-report-topic-list strong{font-size:10px;text-align:right;color:#741126}
.online-student-focus{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 22px;border-radius:16px;background:linear-gradient(135deg,#6e1022,#94162f);color:#fff;box-shadow:0 10px 26px rgba(85,15,30,.16)}.online-student-focus>div{min-width:0}.online-student-focus span{font-size:9px;font-weight:900;letter-spacing:.12em;opacity:.75}.online-student-focus h2{margin:5px 0 4px;font-size:22px}.online-student-focus p{margin:0;font-size:11px;opacity:.82}.online-student-focus .btn{background:#fff;color:#741126;border-color:#fff}.online-student-mini-exams,.online-student-recent-results{display:flex;flex-direction:column;gap:8px;margin-top:12px}.oeStudentMini,.oeStudentReview{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;border:1px solid #e5e8ec;border-radius:11px;background:#fff;text-align:left;color:inherit;padding:10px 11px;cursor:pointer}.oeStudentMini:hover,.oeStudentReview:hover{border-color:#c9a9b0;background:#fffafb}.oeStudentMini>div,.oeStudentReview>div{display:flex;flex-direction:column;min-width:0}.oeStudentMini b,.oeStudentReview b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.oeStudentMini small,.oeStudentReview small{font-size:9.5px;color:var(--muted)}.oeStudentReview strong{font-size:13px;color:#7a1025}.oeStudentMini>svg,.oeStudentReview>svg{width:15px;color:#9b7680}
@media(max-width:1180px){.online-report-kpis{grid-template-columns:repeat(3,1fr)}.online-report-filter-grid{grid-template-columns:repeat(3,1fr)}.online-overview-grid,.online-report-grid,.online-student-home-grid{grid-template-columns:1fr}}
@media(max-width:820px){.online-overview-kpis,.online-results-kpis,.online-student-home-kpis{grid-template-columns:repeat(2,1fr)}.online-report-kpis{grid-template-columns:repeat(2,1fr)}.online-results-filter-row,.online-report-filter-grid{grid-template-columns:1fr 1fr}.online-overview-foot{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.online-overview-kpis,.online-results-kpis,.online-report-kpis,.online-student-home-kpis{grid-template-columns:1fr 1fr}.online-results-filter-row,.online-results-filter-row.student,.online-report-filter-grid{grid-template-columns:1fr}.online-student-focus{align-items:flex-start;flex-direction:column}.online-overview-foot{grid-template-columns:1fr}.online-report-topic-list>div{grid-template-columns:minmax(100px,1fr) 90px 42px}}

/* ===== V0.117 · Kết quả theo kỳ thi + xuất Excel chi tiết ===== */
.exam-result-index .online-results-kpis>div small{margin-top:2px;font-size:9px;color:var(--muted)}
.online-result-exam-list{padding:0;overflow:hidden}.online-result-list-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border-bottom:1px solid var(--line);background:#fff}.online-result-list-head>div:first-child b{display:block;font-size:12px;color:#404852}.online-result-list-head>div:first-child span{display:block;margin-top:2px;font-size:9px;color:var(--muted)}.online-result-list-head .online-results-search{width:280px}.oeDownloadExamResults{text-decoration:none}
.online-exam-result-monitor{position:fixed;inset:0;z-index:1500;background:#f5f6f8;color:var(--text)}
.online-result-monitor-shell{height:100vh;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}
.online-result-monitor-top{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 18px 10px 22px;background:#fff;border-bottom:1px solid #dde2e7;box-shadow:0 2px 10px rgba(31,38,46,.05);z-index:2}
.online-result-monitor-heading{min-width:0}.online-result-monitor-heading>.eyebrow{font-size:8px}.online-result-monitor-heading>div{display:flex;align-items:center;gap:10px;min-width:0}.online-result-monitor-heading h1{margin:2px 0 1px;font-size:20px;line-height:1.2;color:#791126;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.online-result-monitor-heading p{margin:0;font-size:9.5px;color:#777f88;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.online-result-monitor-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.online-result-monitor-actions>a{text-decoration:none}
.online-result-monitor-main{min-height:0;overflow:auto;padding:14px 18px 22px}.online-result-monitor-kpis,.online-result-monitor-card,.online-result-export-note{max-width:1660px;margin-left:auto;margin-right:auto}.online-result-monitor-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:10px}.online-result-monitor-kpis>div{background:#fff;border:1px solid #e2e6ea;border-radius:11px;padding:10px 12px}.online-result-monitor-kpis span{display:block;font-size:8px;font-weight:850;color:#858d96;text-transform:uppercase;letter-spacing:.025em}.online-result-monitor-kpis b{display:block;margin-top:3px;font-size:18px;color:#801229}
.online-result-monitor-card{padding:0;overflow:hidden;border-radius:13px}.online-result-monitor-table-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 13px;border-bottom:1px solid #eceff2;background:#fff}.online-result-monitor-table-head>div:first-child b{display:block;font-size:12px;color:#424a54}.online-result-monitor-table-head>div:first-child span{display:block;margin-top:2px;font-size:8.8px;color:#9097a0}.online-result-monitor-tools{display:flex;align-items:center;gap:7px}.online-result-monitor-tools .online-results-search{width:250px}.online-result-monitor-tools select{height:37px;min-width:130px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:0 9px;font:inherit;font-size:10px;color:#5e6670;outline:none}.online-result-monitor-table{max-height:calc(100vh - 250px);overflow:auto}.online-result-monitor-table table{min-width:1280px;margin:0}.online-result-monitor-table thead th{position:sticky;top:0;z-index:1;background:#f8f9fa}.online-result-monitor-table td{vertical-align:middle}.oerm-score{color:#7c1026;font-size:13px}.online-result-export-note{margin-top:9px;border:1px solid #e8dde0;border-radius:10px;background:#fff;padding:9px 12px;font-size:9px;color:#68717b;display:flex;align-items:center;gap:6px}.online-result-export-note .ico{width:13px;height:13px;color:#7d1428}
@media(max-width:980px){.online-result-monitor-kpis{grid-template-columns:repeat(3,1fr)}.online-result-monitor-top{padding-left:12px}.online-result-monitor-main{padding:10px}.online-result-monitor-heading p{display:none}.online-result-monitor-table-head{align-items:stretch;flex-direction:column}.online-result-monitor-tools{width:100%}.online-result-monitor-tools .online-results-search{width:100%}}
@media(max-width:620px){.online-result-list-head{align-items:stretch;flex-direction:column}.online-result-list-head .online-results-search{width:100%}.online-result-monitor-kpis{grid-template-columns:1fr 1fr}.online-result-monitor-main{padding:8px}.online-result-monitor-tools{flex-direction:column;align-items:stretch}.online-result-monitor-tools select{width:100%}.online-result-monitor-actions .btn{font-size:9px;padding-left:9px;padding-right:9px}.online-result-monitor-heading h1{font-size:16px}}

/* ===== V0.118 · Cấu hình điểm kỳ thi theo từng phần / từng câu ===== */
.oe-score-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:14px;border-bottom:1px solid #e8eaee}.oe-score-head h3{margin:4px 0!important;font-size:22px!important;color:#3d2026!important}.oe-score-head p{margin:0;color:#828993;font-size:10.5px;max-width:760px;line-height:1.55}.oe-score-total{min-width:106px;border:1px solid #e4cbd1;background:#fff7f8;border-radius:14px;padding:10px 14px;text-align:center}.oe-score-total span{display:block;font-size:8px;font-weight:900;color:#9b6974;letter-spacing:.08em}.oe-score-total b{display:block;margin-top:2px;font-size:25px;color:#7b1127}.oe-score-empty{margin-top:18px;border:1px dashed #d8dce1;background:#fafbfc;border-radius:13px;padding:18px;color:#69717c;font-size:11px;display:flex;align-items:center;gap:7px}.oe-score-empty .ico{width:16px;height:16px}.oe-score-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}.oe-score-part{border:1px solid #e3e6ea;border-radius:14px;background:#fff;overflow:hidden}.oe-score-part.disabled{opacity:.65}.oe-score-part-head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;padding:13px 14px;background:#fafbfc;border-bottom:1px solid #eceef1}.oe-score-part-head>div span{display:block;font-size:8px;color:#9b7f86;font-weight:900;letter-spacing:.08em}.oe-score-part-head>div b{display:block;margin-top:2px;font-size:13px;color:#4a3338}.oe-score-part-head>div small{display:block;margin-top:2px;color:#9299a1;font-size:9px}.oe-score-part-head>label{display:grid;gap:4px;font-size:8.5px;color:#777f89;font-weight:800;white-space:nowrap}.oe-score-part-head>label input{width:92px!important;height:34px!important;text-align:right;font-weight:850;color:#671124;background:#fff}.oe-score-mode{display:flex;align-items:center;gap:13px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid #eef0f2;font-size:9.5px}.oe-score-mode label{display:flex;align-items:center;gap:5px;color:#555d67;font-weight:750}.oe-score-mode input{width:auto!important;height:auto!important}.oe-score-mode .link-btn{margin-left:auto;font-size:9px}.oe-score-table-wrap{max-height:310px;overflow:auto}.oe-score-table{width:100%;border-collapse:collapse;font-size:10px}.oe-score-table th,.oe-score-table td{padding:8px 14px;border-bottom:1px solid #f0f1f3;text-align:left}.oe-score-table th{position:sticky;top:0;z-index:1;background:#fff;color:#7d858f;font-size:8.5px;text-transform:uppercase;letter-spacing:.035em}.oe-score-table th:last-child,.oe-score-table td:last-child{text-align:right}.oe-score-table input{width:92px!important;height:31px!important;padding:5px 8px!important;text-align:right}.oe-score-table input:disabled{background:#f7f8fa;color:#515862;border-color:#eceef1}.oe-score-table tfoot td{position:sticky;bottom:0;background:#fafbfc;border-top:1px solid #e4e7eb;border-bottom:0;color:#646c76;font-weight:750}.oe-score-table tfoot b{color:#711126}.oe-score-none{padding:22px 14px;color:#979da5;font-size:10px;text-align:center}.oe-tf-rule-card{margin-top:14px;border:1px solid #e0e4e8;border-radius:14px;background:#fbfcfd;padding:14px}.oe-tf-rule-head b{display:block;color:#4b3338;font-size:12px}.oe-tf-rule-head span{display:block;margin-top:3px;color:#858c95;font-size:9.5px;line-height:1.5}.oe-tf-rule-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:11px}.oe-tf-rule-grid label{border:1px solid #e5e8eb;background:#fff;border-radius:10px;padding:9px}.oe-tf-rule-grid label>span{display:block;color:#7c838c;font-size:8.5px;font-weight:800}.oe-tf-rule-grid label>div{display:flex;align-items:center;gap:4px;margin-top:5px}.oe-tf-rule-grid input{min-width:0!important;width:100%!important;height:32px!important;text-align:right}.oe-tf-rule-grid b{font-size:9px;color:#7d858e}.oe-tf-rule-grid .locked{background:#f5f6f8}.oe-tf-presets{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px}.oe-tf-presets>span{font-size:8.5px;color:#858c95;font-weight:800}.oe-tf-presets button{border:1px solid #dddfe3;background:#fff;border-radius:999px;padding:6px 9px;color:#626a74;font-size:8.5px;cursor:pointer}.oe-tf-presets button:hover{border-color:#cbaab2;color:#781127;background:#fff7f8}.oe-score-status{margin-top:13px;border-radius:10px;padding:10px 12px;font-size:9.5px;display:flex;align-items:center;gap:6px}.oe-score-status.good{border:1px solid #cce7d5;background:#f2faf5;color:#2f704a}.oe-score-status.bad{border:1px solid #efd1d7;background:#fff5f6;color:#8b2940}.oe-score-status .ico{width:14px;height:14px}.oe-review-ready.warn{border-color:#efd1d7;background:#fff5f6;color:#8b2940}
@media(max-width:980px){.oe-score-sections{grid-template-columns:1fr}.oe-tf-rule-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.oe-score-head{flex-direction:column}.oe-score-total{width:100%}.oe-score-part-head{align-items:flex-start}.oe-tf-rule-grid{grid-template-columns:1fr 1fr}.oe-score-mode .link-btn{margin-left:0}}

/* V0.121 - Phân tích kết quả theo từng kỳ thi */
.online-exam-analysis-screen{position:fixed;inset:0;z-index:2200;background:#f4f6f8;color:#27313a}
.oea-shell{height:100vh;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}
.oea-top{min-height:78px;background:#fff;border-bottom:1px solid #dde3e8;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:11px 18px 11px 22px;box-shadow:0 2px 10px rgba(31,38,46,.05)}
.oea-top>div:first-child{min-width:0}.oea-top .eyebrow{font-size:8px;color:#8a172b;font-weight:850;letter-spacing:.09em}.oea-top h1{margin:2px 0 1px;font-size:21px;line-height:1.2;color:#791126;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.oea-top p{margin:0;font-size:9.5px;color:#7d858e}.oea-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.oea-actions a{text-decoration:none}
.oea-main{min-height:0;overflow:auto;padding:14px 18px 26px;display:flex;flex-direction:column;gap:12px}.oea-main>*{width:min(1660px,100%);margin-left:auto;margin-right:auto}
.oea-kpis{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}.oea-kpis>div{background:#fff;border:1px solid #e1e6eb;border-radius:11px;padding:10px 12px;min-width:0}.oea-kpis span{display:block;font-size:8px;text-transform:uppercase;font-weight:850;color:#858d96;letter-spacing:.025em}.oea-kpis b{display:block;margin-top:3px;font-size:18px;color:#801229}.oea-kpis small{font-size:8.5px;color:#6d7680}
.oea-grid.two{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:12px}.oea-card{padding:15px;overflow:hidden}.oea-card .section-title-row{margin-bottom:12px}.oea-card .section-title-row em{font-size:9px;color:#7b838d;font-style:normal}
.oea-hist{height:250px;display:flex;align-items:flex-end;gap:7px;padding:12px 8px 0;border-bottom:1px solid #e6eaee}.oea-hbar{flex:1;min-width:0;height:100%;display:grid;grid-template-rows:minmax(0,1fr) 25px;align-items:end}.oea-hbar>div{height:100%;display:flex;align-items:flex-end;justify-content:center;position:relative}.oea-hbar i{display:block;width:min(42px,72%);min-height:0;border-radius:7px 7px 2px 2px;background:linear-gradient(180deg,#9a1b35,#741126)}.oea-hbar b{position:absolute;bottom:calc(var(--bar,0px) + 4px);font-size:9px;color:#555e68;transform:translateY(-3px)}.oea-hbar span{text-align:center;font-size:8px;color:#707983;white-space:nowrap}
.oea-dist-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.oea-dist-grid>div{background:#f8f9fa;border:1px solid #e7eaed;border-radius:10px;padding:11px}.oea-dist-grid span{display:block;font-size:8px;color:#848c95;font-weight:800;text-transform:uppercase}.oea-dist-grid b{display:block;margin-top:3px;color:#791126;font-size:17px}.oea-thresholds{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:10px}.oea-thresholds span{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#fff;border:1px solid #eceff2;border-radius:8px;padding:6px 8px;font-size:8px}.oea-thresholds b{color:#737b85}.oea-thresholds em{font-style:normal;font-weight:850;color:#7b1328}
.oea-hard-list,.oea-topic-list{display:flex;flex-direction:column;gap:7px}.oea-hard-row{display:grid;grid-template-columns:24px minmax(0,1fr) 58px 54px;gap:8px;align-items:center;padding:8px 9px;border:1px solid #edf0f2;border-radius:9px;background:#fff}.oea-hard-row>span{width:23px;height:23px;border-radius:7px;background:#f3e8eb;color:#7b1328;display:grid;place-items:center;font-size:9px;font-weight:850}.oea-hard-row>div{min-width:0}.oea-hard-row b{display:block;font-size:9px;color:#424a53}.oea-hard-row small{display:block;margin-top:1px;font-size:8px;color:#818992;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.oea-hard-row strong{font-size:10px;color:#a01932;text-align:right}.oea-hard-row em{font-style:normal;font-size:8px;color:#8a929a;text-align:right}
.oea-topic-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(100px,1.25fr) 55px;gap:10px;align-items:center}.oea-topic-row>div{min-width:0}.oea-topic-row b{display:block;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.oea-topic-row small{font-size:8px;color:#89919a}.oea-topic-row>i{height:7px;border-radius:999px;background:#edf0f2;overflow:hidden}.oea-topic-row>i>em{display:block;height:100%;border-radius:inherit;background:#8a172b}.oea-topic-row strong{text-align:right;font-size:9px;color:#7a1328}
.oea-question-table{max-height:430px;overflow:auto}.oea-question-table table{min-width:1250px}.oea-question-table thead th{position:sticky;top:0;z-index:1;background:#f8f9fa}.oea-question-table .oea-stem{max-width:360px;min-width:260px;white-space:normal;line-height:1.45;font-size:9px;color:#59636d}.oea-question-table strong{color:#1f7a4c}.oea-question-table strong.low{color:#b4233d}
@media(max-width:1300px){.oea-kpis{grid-template-columns:repeat(4,1fr)}.oea-grid.two{grid-template-columns:1fr}}
@media(max-width:760px){.oea-top{align-items:flex-start;padding:9px 10px}.oea-top p{display:none}.oea-actions .btn{font-size:8px;padding:7px 8px}.oea-kpis{grid-template-columns:1fr 1fr}.oea-main{padding:9px}.oea-thresholds{grid-template-columns:repeat(2,1fr)}.oea-hist{height:210px;gap:3px}.oea-hbar span{font-size:7px}.oea-hard-row{grid-template-columns:22px minmax(0,1fr) 48px}.oea-hard-row em{display:none}}

/* V0.122 - Phân tích chi tiết từng câu */
.oeq-card{padding:0!important}.oeq-title-row{padding:14px 16px 12px;margin:0!important;border-bottom:1px solid #e9edf1;align-items:center}.oeq-filters{display:flex;gap:6px;align-items:center}.oeq-filters button{height:34px;padding:0 13px;border:1px solid #dfe4e8;background:#fff;border-radius:9px;color:#66707a;font:inherit;font-size:9px;font-weight:800;cursor:pointer}.oeq-filters button.active{background:#8c1028;border-color:#8c1028;color:#fff}.oeq-head{display:grid;grid-template-columns:78px minmax(320px,1fr) 150px 120px 185px 135px;gap:14px;align-items:center;padding:9px 14px;background:#f7f9fa;border-bottom:1px solid #e6ebef;color:#75808a;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.035em}.oeq-list{display:flex;flex-direction:column}.oeq-row{border-bottom:1px solid #e9edf0;background:#fff}.oeq-row:last-child{border-bottom:0}.oeq-row[hidden]{display:none}.oeq-main{display:grid;grid-template-columns:78px minmax(320px,1fr) 150px 120px 185px 135px;gap:14px;align-items:center;padding:13px 14px}.oeq-main:hover{background:#fcfbfb}.oeq-number{display:flex;align-items:center;gap:8px}.oeq-number>b{font-size:13px;color:#26313b}.oeq-number .qb-type{min-width:24px;height:24px;border-radius:8px;display:grid;place-items:center;font-size:8px}.oeq-content{min-width:0}.oeq-content>div{font-size:9.6px;line-height:1.5;color:#3f4953}.oeq-content>small{display:block;margin-top:3px;font-size:7.9px;color:#99a0a8}.oeq-metric b,.oeq-score>b{display:block;font-size:11px;color:#7e1027}.oeq-metric span,.oeq-score span{display:block;margin-top:3px;font-size:8px;color:#8d959e}.oeq-metric.blank b{color:#6f7b86}.oeq-score i{display:block;width:100%;height:7px;background:#eef1f3;border-radius:999px;overflow:hidden;margin-top:5px}.oeq-score i em{display:block;height:100%;border-radius:inherit;background:#8c1630}.oeq-action{display:flex;justify-content:flex-start;align-items:center}.oeq-action>span{color:#a0a7ae}.oeq-action .btn{min-width:108px;justify-content:center}.oeq-tf-detail{display:none;margin:0 14px 14px 106px;border:1px solid #e2e6ea;border-radius:11px;overflow:hidden;background:#fafbfc}.oeq-tf-detail.open{display:block}.oeq-tf-head,.oeq-tf-row{display:grid;grid-template-columns:54px 92px repeat(4,minmax(110px,1fr));gap:0;align-items:center}.oeq-tf-head{background:#f1f4f6;color:#7b858f;font-size:7.8px;font-weight:900;text-transform:uppercase}.oeq-tf-head span,.oeq-tf-row>*{padding:8px 10px;border-right:1px solid #e4e8eb}.oeq-tf-head span:last-child,.oeq-tf-row>*:last-child{border-right:0}.oeq-tf-row{border-top:1px solid #e7ebee;background:#fff;font-size:8.8px;color:#58626c}.oeq-tf-row>b{font-size:10px;color:#801229}.oeq-system-answer{color:#244f73}.oeq-tf-row span small{display:block;margin-top:2px;color:#98a0a8;font-size:7.5px}.oeq-tf-row span>b{color:#207849;font-size:9px}
@media(max-width:1200px){.oeq-head,.oeq-main{grid-template-columns:64px minmax(260px,1fr) 125px 105px 155px 115px;gap:10px}.oeq-tf-detail{margin-left:88px}}
@media(max-width:900px){.oeq-head{display:none}.oeq-main{grid-template-columns:52px minmax(0,1fr) 1fr 1fr;gap:9px}.oeq-content{grid-column:2/-1}.oeq-score{grid-column:2/4}.oeq-action{grid-column:4}.oeq-tf-detail{margin:0 10px 12px}.oeq-tf-head,.oeq-tf-row{grid-template-columns:38px 70px repeat(4,minmax(95px,1fr));min-width:650px}.oeq-tf-detail{overflow:auto}.oeq-title-row{align-items:flex-start;gap:10px}.oeq-filters{flex-wrap:wrap}}

/* V0.123 - Trang phân tích kết quả kỳ thi bám mẫu dashboard */
.workspace-online .content:has(.oea123-page){padding:16px 18px 30px;background:#f5f7fa}
.oea123-page{width:100%;max-width:1700px;margin:0 auto;display:flex;flex-direction:column;gap:14px;color:#172033}
.oea123-breadcrumb{display:flex;align-items:center;gap:8px;color:#7c8796;font-size:12px;margin:0 2px -2px}.oea123-breadcrumb button{border:0;background:transparent;padding:0;color:#627083;font-weight:750}.oea123-breadcrumb button:hover{color:#8b1025}.oea123-breadcrumb b{color:#7f8997;font-weight:700}
.oea123-titlebar{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.oea123-titleline{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.oea123-titlebar h1{margin:0;font-size:26px;line-height:1.2;color:#172033}.oea123-titlebar p{margin:7px 0 0;color:#7c8796;font-size:12px}.oea123-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.oea123-actions .btn{min-height:39px}.oea123-release{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:10px;font-weight:850;white-space:nowrap}.oea123-release .ico{width:14px;height:14px}.oea123-release.ok{background:#ddf7e7;color:#187b49}.oea123-release.wait{background:#fff4db;color:#9b6811}
.oea123-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.oea123-kpi{min-height:102px;border:1px solid #e0e6ed;border-radius:13px;background:#fff;display:flex;align-items:center;gap:12px;padding:15px 16px;box-shadow:0 3px 12px rgba(30,42,60,.035)}.oea123-kpi-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;flex:0 0 auto}.oea123-kpi-icon .ico{width:23px;height:23px}.oea123-kpi-icon.blue{background:#eaf3ff;color:#2e6fb9}.oea123-kpi-icon.green{background:#e8f8ee;color:#198651}.oea123-kpi-icon.red{background:#fff0f0;color:#b43b42}.oea123-kpi-icon.gold{background:#fff5dc;color:#c18310}.oea123-kpi>div{min-width:0}.oea123-kpi small{display:block;font-size:11.5px;color:#4e5b70;font-weight:750}.oea123-kpi b{display:block;margin-top:4px;font-size:24px;line-height:1;color:#152039}.oea123-kpi em{display:block;margin-top:5px;font-style:normal;color:#748095;font-size:10.5px}
.oea123-tabs{position:sticky;top:0;z-index:8;display:grid;grid-template-columns:repeat(5,1fr);min-height:45px;background:#eef1f5;border:1px solid #e3e7ed;border-radius:12px;overflow:hidden;box-shadow:0 5px 14px rgba(27,37,52,.04)}.oea123-tabs button{border:0;background:transparent;color:#566276;font-weight:800;font-size:12px;transition:.16s}.oea123-tabs button:hover{background:#f8f9fb;color:#801229}.oea123-tabs button.active{background:linear-gradient(135deg,#98112a,#7a0a1f);color:#fff}
.oea123-card{background:#fff;border:1px solid #e0e6ed;border-radius:14px;box-shadow:0 4px 14px rgba(30,42,60,.035);overflow:hidden;scroll-margin-top:58px}.oea123-card-head,.oea123-question-head,.oea123-score-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:14px 16px 12px;border-bottom:1px solid #edf0f4}.oea123-card-head h2,.oea123-question-head h2,.oea123-score-head h2{margin:0;color:#1b263b;font-size:17px}.oea123-card-head p,.oea123-question-head p,.oea123-score-head p{margin:4px 0 0;color:#8993a3;font-size:10.5px}.oea123-card-head>span{font-size:10.5px;color:#758094}.oea123-card-head>span b{color:#7e1027}
.oea123-overview{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(250px,.55fr) minmax(360px,.9fr);gap:12px;scroll-margin-top:58px}.oea123-chart-card,.oea123-stat-card,.oea123-hard-card{min-height:300px}.oea123-hist-wrap{height:226px;display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px;padding:12px 16px 2px}.oea123-yaxis{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;color:#8d96a5;font-size:9px;padding-bottom:28px}.oea123-hist{border-left:1px solid #dfe4ea;border-bottom:1px solid #dfe4ea;background:repeating-linear-gradient(to top,transparent 0,transparent 24%,#eef1f4 24.5%,transparent 25%);display:flex;align-items:flex-end;gap:8px;padding:0 8px}.oea123-hbar{height:100%;flex:1;min-width:0;display:grid;grid-template-rows:minmax(0,1fr) 27px;align-items:end}.oea123-hbar-track{height:100%;display:flex;align-items:flex-end;justify-content:center;position:relative}.oea123-hbar-track i{display:block;width:min(48px,72%);min-height:2px;background:linear-gradient(180deg,#b85d70,#8b1830);border-radius:5px 5px 1px 1px}.oea123-hbar-track b{position:absolute;bottom:calc(var(--bar,0%) + 3px);font-size:9px;color:#3c4657;transform:translateY(-4px)}.oea123-hbar>span{text-align:center;color:#6e798c;font-size:8.5px;white-space:nowrap;padding-top:6px}.oea123-xlabel{text-align:center;color:#667286;font-size:10px;padding:1px 0 12px}
.oea123-stat-card{padding-bottom:4px}.oea123-stat-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 15px;border-bottom:1px solid #edf0f4}.oea123-stat-row:last-child{border-bottom:0}.oea123-stat-row>span{width:28px;height:28px;border-radius:8px;background:#f4f7fb;color:#345e91;display:grid;place-items:center;font-weight:950}.oea123-stat-row>span .ico{width:16px;height:16px}.oea123-stat-row em{font-style:normal;color:#4c586c;font-size:11px}.oea123-stat-row b{color:#18243a;font-size:13px}.oea123-sigma{font-size:19px}
.oea123-hard-card .table-wrap{border:0;border-radius:0}.oea123-mini-table{width:100%;border-collapse:collapse;min-width:0}.oea123-mini-table th,.oea123-mini-table td{padding:10px 9px;border-bottom:1px solid #edf0f4;text-align:left;font-size:10.5px}.oea123-mini-table th{background:#f7f9fb;color:#5f6c80;font-size:9.5px}.oea123-mini-table td:nth-child(1){width:44px;text-align:center}.oea123-mini-table td:nth-child(3),.oea123-mini-table td:nth-child(4){text-align:center;white-space:nowrap}.oea123-mini-table td b{display:block}.oea123-mini-table td small{display:block;color:#8993a2;margin-top:2px}.oea123-mini-table strong{color:#9b1730}
.oea123-frequency .table-wrap{border:0;border-radius:0}.oea123-frequency-table{width:100%;border-collapse:collapse;min-width:900px}.oea123-frequency-table th,.oea123-frequency-table td{padding:10px 9px;border-right:1px solid #edf0f4;border-bottom:1px solid #edf0f4;text-align:center;font-size:10px}.oea123-frequency-table th{background:#f7f9fb;color:#5d697d;font-weight:850}.oea123-frequency-table tbody th{text-align:left;padding-left:16px}.oea123-frequency-table td b{color:#801229}
.oea123-question-card{padding:0}.oea123-question-head{align-items:center}.oea123-question-tools{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}.oea123-qsearch,.oea123-score-search{height:36px;border:1px solid #dfe5eb;background:#fff;border-radius:9px;display:flex;align-items:center;gap:7px;padding:0 10px;color:#7c8796}.oea123-qsearch .ico,.oea123-score-search .ico{width:15px;height:15px}.oea123-qsearch input,.oea123-score-search input{border:0;outline:none;background:transparent;min-width:190px;color:#283246;font-size:10.5px}.oea123-qfilters{display:flex;gap:6px}.oea123-qfilters button{height:36px;border:1px solid #dfe5eb;background:#fff;border-radius:9px;padding:0 13px;color:#677386;font-size:10px;font-weight:800}.oea123-qfilters button.active{background:#8e1028;border-color:#8e1028;color:#fff}.oea123-qhead,.oea123-qmain{display:grid;grid-template-columns:78px minmax(330px,1fr) 145px 115px 180px 118px;gap:12px;align-items:center}.oea123-qhead{padding:10px 14px;background:#f7f9fb;border-bottom:1px solid #e5eaf0;color:#667286;text-transform:uppercase;font-size:8.5px;font-weight:900;letter-spacing:.03em}.oea123-qrow{border-bottom:1px solid #e9edf2;background:#fff}.oea123-qrow:last-child{border-bottom:0}.oea123-qrow[hidden]{display:none}.oea123-qmain{padding:13px 14px}.oea123-qmain:hover{background:#fcfcfd}.oea123-qno{display:flex;align-items:center;gap:8px}.oea123-qno>b{font-size:13px}.oea123-qno>span{width:22px;height:22px;border-radius:7px;background:#f5e9ed;color:#8a1228;display:grid;place-items:center;font-size:8px;font-weight:900}.oea123-qcontent{min-width:0}.oea123-qcontent>b{display:block;color:#3b4659;font-size:11px;line-height:1.45;font-weight:650}.oea123-qcontent>small{display:block;margin-top:4px;color:#98a1af;font-size:8.5px}.oea123-qmetric b,.oea123-qscore>b{display:block;font-size:12px;color:#8b1027}.oea123-qmetric small,.oea123-qscore small{display:block;margin-top:3px;color:#919aa8;font-size:8.5px}.oea123-qmetric.blank b{color:#667489}.oea123-qscore>b{color:#2a65a3}.oea123-qscore>i{display:block;margin:6px 0 0;height:6px;border-radius:999px;background:#edf0f4;overflow:hidden;max-width:120px}.oea123-qscore>i>em{display:block;height:100%;background:#8f1831;border-radius:inherit}.oea123-detail-btn{min-width:88px;height:31px;border:1px solid #dde3e9;background:#fff;color:#4d596d;border-radius:8px;font-size:9.5px;font-weight:800}.oea123-detail-btn:hover{border-color:#b77d89;color:#8b1027;background:#fff9fa}.oea123-qdetail{display:none;margin:0 14px 14px 104px;border:1px solid #dfe5eb;border-radius:11px;background:#fbfcfd;overflow:hidden}.oea123-qdetail.open{display:block}.oea123-qdetail-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:#f4f7f9;border-bottom:1px solid #e2e7ec;font-size:10px}.oea123-qdetail-title span{color:#6c7789}.oea123-qdetail-title strong{color:#821128}.oea123-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:11px}.oea123-choice{display:grid;grid-template-columns:30px minmax(0,1fr);gap:9px;border:1px solid #e4e8ed;border-radius:9px;background:#fff;padding:10px}.oea123-choice>span{width:28px;height:28px;border-radius:8px;background:#eef2f6;color:#5e6b7e;display:grid;place-items:center;font-weight:900;font-size:10px}.oea123-choice.correct{border-color:#bce5c9;background:#fbfffc}.oea123-choice.correct>span{background:#e0f6e7;color:#187d49}.oea123-choice b{display:block;font-size:9.5px;color:#465165;line-height:1.35}.oea123-choice small{display:block;margin-top:3px;color:#8791a0;font-size:8px}.oea123-choice i{display:block;height:5px;background:#edf0f3;border-radius:999px;margin-top:6px;overflow:hidden}.oea123-choice i em{display:block;height:100%;background:#8d1730;border-radius:inherit}.oea123-choice.correct i em{background:#278a54}.oea123-blank-note{padding:0 12px 11px;color:#8791a0;font-size:9px}.oea123-tf-table{overflow:auto}.oea123-tf-head,.oea123-tf-row{display:grid;grid-template-columns:42px minmax(240px,1.6fr) 78px repeat(4,minmax(95px,1fr));min-width:900px;align-items:center}.oea123-tf-head{background:#f4f7f9;color:#697587;text-transform:uppercase;font-size:7.8px;font-weight:900}.oea123-tf-head>*,.oea123-tf-row>*{padding:8px 9px;border-right:1px solid #e4e8ed}.oea123-tf-head>*:last-child,.oea123-tf-row>*:last-child{border-right:0}.oea123-tf-row{border-top:1px solid #e4e8ed;background:#fff;color:#4f5a6d;font-size:9px}.oea123-tf-row>b{color:#861229;font-size:10px}.oea123-tf-row>strong{color:#245f8e}.oea123-tf-row span small{display:block;margin-top:2px;color:#939cab;font-size:7.7px}.oea123-tf-row span>b{color:#1b8050}.oea123-tf-statement{line-height:1.35}
.oea123-table{width:100%;border-collapse:collapse;min-width:860px}.oea123-table th,.oea123-table td{padding:10px 11px;border-bottom:1px solid #edf0f4;text-align:left;font-size:10.5px;vertical-align:middle}.oea123-table th{background:#f7f9fb;color:#5c697d;font-size:9.5px;font-weight:850}.oea123-table tbody tr:hover{background:#fcfcfd}.oea123-stem-cell{max-width:460px;white-space:normal;line-height:1.4;color:#526074}.oea123-low{color:#a01a31}.oea123-score-head{align-items:center}.oea123-score-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.oea123-score-tools select{height:36px;border:1px solid #dfe5eb;border-radius:9px;padding:0 10px;background:#fff;color:#556175;font-size:10px}.oea123-student{display:flex;align-items:center;gap:8px}.oea123-student>span{width:30px;height:30px;border-radius:50%;background:#f3e5e9;color:#871229;display:grid;place-items:center;font-size:9px;font-weight:900}.oea123-student b{display:block}.oea123-student small{display:block;margin-top:2px;color:#9099a8;font-size:8px}.oea123-status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:8.5px;font-weight:850}.oea123-status.finished{background:#dcf6e6;color:#17794a}.oea123-status.active{background:#fff3d9;color:#9b6711}.oea123-status.none{background:#eef1f5;color:#677386}.oea123-eye{width:33px;height:29px;border:1px solid #dfe4ea;border-radius:8px;background:#fff;color:#47566c;display:grid;place-items:center}.oea123-eye .ico{width:15px;height:15px}.oea123-eye:hover{color:#8b1027;border-color:#cda3ac}.oea123-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 13px;color:#7d8796;font-size:9.5px;border-top:1px solid #edf0f4}.oea123-pager>div{display:flex;align-items:center;gap:5px}.oea123-pager button{min-width:30px;height:30px;border:1px solid #dfe4ea;background:#fff;border-radius:7px;color:#566276;font-size:9.5px;font-weight:800}.oea123-pager button.active{background:#8c1028;border-color:#8c1028;color:#fff}.oea123-pager button:disabled{opacity:.4;cursor:not-allowed}.oea123-pager span{padding:0 2px}
@media(max-width:1450px){.oea123-kpis{grid-template-columns:repeat(3,1fr)}.oea123-overview{grid-template-columns:minmax(0,1.2fr) minmax(250px,.65fr)}.oea123-hard-card{grid-column:1/-1}.oea123-hard-card .table-wrap{max-height:260px}.oea123-qhead,.oea123-qmain{grid-template-columns:66px minmax(280px,1fr) 125px 100px 155px 105px;gap:9px}}
@media(max-width:1050px){.oea123-titlebar{flex-direction:column}.oea123-actions{justify-content:flex-start}.oea123-overview{grid-template-columns:1fr}.oea123-hard-card{grid-column:auto}.oea123-qhead{display:none}.oea123-qmain{grid-template-columns:52px minmax(0,1fr) 1fr 1fr;gap:10px}.oea123-qcontent{grid-column:2/-1}.oea123-qscore{grid-column:2/4}.oea123-qaction{grid-column:4}.oea123-qdetail{margin-left:14px}.oea123-question-head{align-items:flex-start;flex-direction:column}.oea123-question-tools{width:100%;justify-content:space-between}.oea123-qsearch{flex:1}.oea123-qsearch input{width:100%;min-width:0}.oea123-choice-grid{grid-template-columns:1fr}}
@media(max-width:760px){.workspace-online .content:has(.oea123-page){padding:10px}.oea123-page{gap:10px}.oea123-titlebar h1{font-size:21px}.oea123-titlebar p{font-size:10px;line-height:1.5}.oea123-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.oea123-actions .btn{width:100%;font-size:10px}.oea123-actions .btn:last-child{grid-column:1/-1}.oea123-kpis{grid-template-columns:1fr 1fr;gap:8px}.oea123-kpi{min-height:84px;padding:10px}.oea123-kpi-icon{width:36px;height:36px}.oea123-kpi b{font-size:20px}.oea123-tabs{grid-template-columns:1fr 1fr;position:static}.oea123-tabs button{min-height:40px}.oea123-tabs button:last-child{grid-column:1/-1}.oea123-hist-wrap{height:210px;padding-left:9px;padding-right:9px}.oea123-hist{gap:3px;padding:0 3px}.oea123-hbar>span{font-size:7px;transform:rotate(-18deg);transform-origin:50% 0}.oea123-qmain{grid-template-columns:44px minmax(0,1fr)}.oea123-qcontent{grid-column:2}.oea123-qmetric,.oea123-qscore,.oea123-qaction{grid-column:2}.oea123-qmetric,.oea123-qscore{display:grid;grid-template-columns:100px minmax(0,1fr);align-items:center;gap:8px}.oea123-qscore>i{max-width:none}.oea123-qaction{justify-self:start}.oea123-qfilters{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.oea123-qfilters button{padding:0 5px}.oea123-score-head{align-items:flex-start;flex-direction:column}.oea123-score-tools{width:100%}.oea123-score-tools select,.oea123-score-search{width:100%}.oea123-score-search input{width:100%;min-width:0}.oea123-pager{align-items:flex-start;flex-direction:column}}
@media(max-width:430px){.oea123-kpis{grid-template-columns:1fr}.oea123-titleline{align-items:flex-start;flex-direction:column}.oea123-actions{grid-template-columns:1fr}.oea123-actions .btn:last-child{grid-column:auto}.oea123-tf-head,.oea123-tf-row{min-width:760px}}
@media print{
  body.oea123-printing{background:#fff}.oea123-printing .topbar,.oea123-printing .sidebar,.oea123-printing .oea123-actions,.oea123-printing .oea123-tabs,.oea123-printing .oea123-breadcrumb,.oea123-printing .oea123-question-tools,.oea123-printing .oea123-score-tools,.oea123-printing .oea123-pager,.oea123-printing .oea123-qaction{display:none!important}.oea123-printing .app-shell{display:block}.oea123-printing .main{display:block}.oea123-printing .content{padding:0!important;overflow:visible!important}.oea123-printing .oea123-page{max-width:none;display:block}.oea123-printing .oea123-page>*{margin-bottom:10px;break-inside:avoid}.oea123-printing .oea123-card{box-shadow:none}.oea123-printing .oea123-qdetail{display:none!important}
}

/* ===== V0.124 · Kết quả kỳ thi: một lối vào + bảng điểm gọn, dễ đọc ===== */
.exam-result-index .online-result-exam-list .table-actions{justify-content:flex-end}
.exam-result-index .oe-result-index-action{width:142px;text-align:right;white-space:nowrap}
.exam-result-index .oe-result-index-action .btn{min-width:118px;justify-content:center}

.online-result-monitor-main{padding:16px 20px 24px}
.online-result-monitor-kpis{gap:10px;margin-bottom:12px}
.online-result-monitor-kpis>div{min-height:68px;padding:11px 13px;border-radius:12px;display:flex;flex-direction:column;justify-content:center}
.online-result-monitor-kpis span{font-size:9px;letter-spacing:.02em}
.online-result-monitor-kpis b{font-size:20px}
.online-result-monitor-card{border-radius:14px;box-shadow:0 5px 18px rgba(31,38,46,.045)}
.online-result-monitor-table-head{padding:12px 14px}
.online-result-monitor-table-head>div:first-child b{font-size:13px;color:#2f3742}
.online-result-monitor-table-head>div:first-child span{font-size:9.5px}
.online-result-monitor-tools .online-results-search{width:300px}
.online-result-monitor-tools select{min-width:150px;font-size:10.5px}
.online-result-monitor-table{max-height:calc(100vh - 244px)}
.online-result-monitor-table table{min-width:900px;table-layout:fixed}
.online-result-monitor-table th,.online-result-monitor-table td{padding:10px 11px}
.online-result-monitor-table thead th{font-size:9px;color:#667181;text-transform:uppercase;letter-spacing:.025em;border-bottom:1px solid #dfe4e9}
.online-result-monitor-table thead th:nth-child(1){width:55px;text-align:center}
.online-result-monitor-table thead th:nth-child(2){width:auto}
.online-result-monitor-table thead th:nth-child(3){width:160px}
.online-result-monitor-table thead th:nth-child(4),
.online-result-monitor-table thead th:nth-child(5){width:120px;text-align:center}
.online-result-monitor-table thead th:nth-child(6){width:130px;text-align:center}
.online-result-monitor-table thead th:nth-child(7){width:105px;text-align:center}
.online-result-monitor-table thead th>span{display:flex;flex-direction:column;align-items:center;gap:1px}
.online-result-monitor-table thead th>span small{font-size:7.8px;color:#9aa2ad;text-transform:none;letter-spacing:0;font-weight:700}
.online-result-monitor-table tbody tr:hover{background:#fffafb}
.oerm-stt{text-align:center;color:#838b96;font-weight:750}
.oerm-student .mini-avatar{width:34px;height:34px}
.oerm-student b{font-size:11.5px;color:#2e3744}
.oerm-student small{display:block;margin-top:2px;color:#929aa5;font-size:8.5px}
.oerm-status-cell{white-space:nowrap}
.oerm-status{display:inline-flex;align-items:center;justify-content:center;min-width:78px;padding:5px 9px;border-radius:999px;font-size:8.7px;font-weight:850}
.oerm-status.finished{background:#e1f6e9;color:#19784b}.oerm-status.active{background:#fff2d8;color:#93620d}.oerm-status.none{background:#eef1f4;color:#697381}
.oerm-time{display:block;margin-top:4px;color:#929aa5;font-size:7.8px;white-space:normal;line-height:1.25}
.oerm-score-part,.oerm-total{text-align:center;font-variant-numeric:tabular-nums}
.oerm-score-part b{font-size:12px;color:#3c4654}.oerm-score-part small{display:block;margin-top:1px;color:#a0a7b0;font-size:8px}
.oerm-total strong{display:inline-block;min-width:48px;padding:5px 8px;border-radius:8px;background:#f7e9ed;color:#801229;font-size:13px}.oerm-total small{display:block;margin-top:2px;color:#a0a7b0;font-size:8px}
.oerm-action{text-align:center}.oerm-action .btn{min-width:82px;justify-content:center}

.oea124-score-wrap{border-top:0}
.oea124-score-table{min-width:820px;table-layout:fixed}
.oea124-score-table th,.oea124-score-table td{padding:11px 12px}
.oea124-score-table th:nth-child(1){width:58px;text-align:center}
.oea124-score-table th:nth-child(2){width:auto}
.oea124-score-table th:nth-child(3),.oea124-score-table th:nth-child(4){width:120px;text-align:center}
.oea124-score-table th:nth-child(5){width:130px;text-align:center}
.oea124-score-table th:nth-child(6){width:150px}
.oea124-score-table th:nth-child(7){width:70px;text-align:center}
.oea124-score-table tbody tr:hover{background:#fffafb}
.oea124-stt{text-align:center;color:#7e8794;font-weight:750}
.oea124-th-score{display:flex;flex-direction:column;align-items:center;gap:1px}.oea124-th-score small{font-size:7.8px;color:#9ba3ad;text-transform:none;letter-spacing:0;font-weight:700}
.oea124-score-cell,.oea124-total-cell{text-align:center;font-variant-numeric:tabular-nums}
.oea124-score-cell>b{font-size:12px;color:#394454}.oea124-score-cell>small{display:block;color:#a0a7b1;font-size:8px;margin-top:1px}
.oea124-total-cell>strong{display:inline-block;min-width:50px;padding:5px 9px;border-radius:8px;background:#f6e8ec;color:#821229;font-size:13px}.oea124-total-cell>small{display:block;color:#a0a7b1;font-size:8px;margin-top:2px}
.oea124-status-time{display:block;margin-top:4px;color:#969eaa;font-size:7.8px;line-height:1.25}
.oea124-view-cell{text-align:center}.oea124-view-cell .oea123-eye{margin:0 auto}
.oea123-score-head{padding:13px 15px;background:#fff}
.oea123-score-tools{gap:7px}.oea123-score-search{min-width:260px}.oea123-score-tools select{min-width:145px}
.oea123-pager{background:#fbfcfd;padding:10px 12px}

@media(max-width:980px){
  .online-result-monitor-table table{min-width:820px}
  .online-result-monitor-tools .online-results-search{width:100%}
  .oea123-score-search{min-width:0;flex:1}
}
@media(max-width:620px){
  .exam-result-index .oe-result-index-action{width:auto;text-align:left}
  .online-result-monitor-main{padding:9px}
  .online-result-monitor-table{max-height:none}
  .oea123-score-tools{display:grid;grid-template-columns:1fr;width:100%}
  .oea123-score-tools select,.oea123-score-search{width:100%}
}
\n\n/* ===== V0.125 · Bảng điểm kỳ thi: gọn hơn + thời gian làm bài ===== */
.online-result-monitor-card{overflow:hidden}
.online-result-monitor-table{overflow-y:auto;overflow-x:hidden}
.online-result-monitor-table .oerm-score-table{width:100%;min-width:0;table-layout:fixed}
.online-result-monitor-table .oerm-score-table th,.online-result-monitor-table .oerm-score-table td{padding:12px 10px;border-bottom:1px solid #edf0f3}
.online-result-monitor-table .oerm-score-table thead th{height:48px;background:#f7f8fa;color:#586474;font-size:9px;font-weight:900;letter-spacing:.03em}
.online-result-monitor-table .oerm-score-table thead th:nth-child(1){width:48px}
.online-result-monitor-table .oerm-score-table thead th:nth-child(2){width:auto;text-align:left}
.online-result-monitor-table .oerm-score-table thead th:nth-child(3){width:150px;text-align:center}
.online-result-monitor-table .oerm-score-table thead th:nth-child(4),
.online-result-monitor-table .oerm-score-table thead th:nth-child(5){width:105px;text-align:center}
.online-result-monitor-table .oerm-score-table thead th:nth-child(6){width:115px;text-align:center}
.online-result-monitor-table .oerm-score-table thead th:nth-child(7){width:140px;text-align:center}
.online-result-monitor-table .oerm-score-table thead th:nth-child(8){width:64px;text-align:center}
.oerm-student .mini-avatar{width:36px;height:36px;flex:0 0 36px;font-size:9px}
.oerm-student b{font-size:12px;color:#253041}.oerm-student small{font-size:8.5px;color:#929aa5}
.oerm-duration{text-align:center;font-variant-numeric:tabular-nums}.oerm-duration b{display:block;font-size:11px;color:#344052;font-weight:850;white-space:nowrap}.oerm-duration small{display:block;margin-top:2px;font-size:8px;color:#9a7a31}
.oerm-score-part b{font-size:13px;color:#2f3a49}.oerm-total strong{min-width:54px;padding:6px 10px;font-size:14px;background:#f7e8ed}
.oerm-score-part small,.oerm-total small{display:none}
.oerm-status-cell{text-align:center}.oerm-status{min-width:76px;padding:5px 8px}.oerm-status-note{display:block;margin-top:4px;color:#9aa2ac;font-size:7.5px;line-height:1.2;white-space:normal}
.oerm-action{text-align:center}.oerm-eye{width:34px;height:34px;border:1px solid #dbe1e7;border-radius:9px;background:#fff;color:#566270;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:.16s}.oerm-eye:hover{border-color:#9e263b;color:#8a1128;background:#fff8fa}.oerm-eye .ico{width:16px;height:16px}
.oerm-row:hover{background:#fffafb}.oerm-row td:first-child{border-left:3px solid transparent}.oerm-row[data-status="finished"]:hover td:first-child{border-left-color:#9b1c32}

.oea124-score-wrap{overflow-x:hidden}
.oea124-score-table{width:100%;min-width:0;table-layout:fixed}
.oea124-score-table th:nth-child(1){width:48px}.oea124-score-table th:nth-child(2){width:auto}.oea124-score-table th:nth-child(3){width:150px;text-align:center}.oea124-score-table th:nth-child(4),.oea124-score-table th:nth-child(5){width:105px;text-align:center}.oea124-score-table th:nth-child(6){width:115px;text-align:center}.oea124-score-table th:nth-child(7){width:140px;text-align:center}.oea124-score-table th:nth-child(8){width:64px;text-align:center}
.oea125-duration{text-align:center;font-variant-numeric:tabular-nums}.oea125-duration b{font-size:10.5px;color:#344052;white-space:nowrap}
.oea124-score-cell>b{font-size:12.5px}.oea124-score-cell>small,.oea124-total-cell>small{display:none}.oea124-total-cell>strong{font-size:13.5px;padding:6px 9px}
.oea124-view-cell .oea123-eye{width:32px;height:32px}

@media(max-width:1100px){
 .online-result-monitor-table{overflow-x:auto}.online-result-monitor-table .oerm-score-table{min-width:900px}
 .oea124-score-wrap{overflow-x:auto}.oea124-score-table{min-width:900px}
}

/* ===== V0.126 · Phòng thi / giám sát realtime ===== */
.oe126-room-head{min-height:76px;height:76px;padding:0 18px 0 20px}
.oe126-room-head-actions{gap:9px}
.oe126-live{height:42px;display:flex;align-items:center;gap:8px;padding:0 11px;border:1px solid #e0e4e8;border-radius:10px;background:#fff;min-width:132px}
.oe126-live>i{width:9px;height:9px;border-radius:50%;background:#a6adb5;box-shadow:0 0 0 4px #f0f2f4;flex:0 0 auto}
.oe126-live>span{display:flex;flex-direction:column;line-height:1.05}.oe126-live b{font-size:9px;letter-spacing:.08em;color:#68717b}.oe126-live small{font-size:8px;color:#9299a1;margin-top:3px;white-space:nowrap}
.oe126-live.on{border-color:#cfe6d8;background:#f7fcf9}.oe126-live.on>i{background:#1c9a59;box-shadow:0 0 0 4px #dff3e8}.oe126-live.on b{color:#197a49}
.oe126-live.off{border-color:#ecd8dc;background:#fffafb}.oe126-live.off>i{background:#be4052;box-shadow:0 0 0 4px #f7e3e7}.oe126-live.off b{color:#9b263a}
.oe126-end-exam{height:40px;padding:0 12px;white-space:nowrap}
.oe126-room-main{padding:11px 14px 14px;background:#f4f6f9}
.oe126-room-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;flex:0 0 auto}
.oe126-room-kpis button{height:58px;border:1px solid #dfe4e8;border-radius:11px;background:#fff;padding:7px 11px;display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;cursor:pointer;color:#303842;transition:.14s ease}
.oe126-room-kpis button:hover{border-color:#c8afb5;box-shadow:0 4px 12px rgba(61,26,33,.05)}
.oe126-room-kpis button.active{border-color:#8a1730;box-shadow:0 0 0 2px rgba(138,23,48,.08);background:#fffafb}
.oe126-room-kpis button>span{display:flex;align-items:center;gap:6px;font-size:9.5px;font-weight:800;color:#737c86;white-space:nowrap}.oe126-room-kpis button .ico{width:15px;height:15px}.oe126-room-kpis button>b{font-size:19px;color:#2f3740}
.oe126-room-kpis button.running.active{background:#f5fcf8;border-color:#80bd9d}.oe126-room-kpis button.offline.active{background:#fff8f8;border-color:#d79494}.oe126-room-kpis button.finished.active{background:#f7f8fa;border-color:#aeb5bf}.oe126-room-kpis button.ready.active{background:#f5faff;border-color:#8eb8d1}.oe126-room-kpis button.waiting.active{background:#fffdf7;border-color:#d5bb75}
.oe126-room-toolbar{min-height:59px;display:flex;align-items:end;justify-content:space-between;gap:14px;padding:10px 1px 8px;flex:0 0 auto}.oe126-room-toolbar h2{font-size:15px;margin:0 0 2px}.oe126-room-toolbar p{font-size:9.5px;color:#858d96;margin:0}.oe126-room-search{width:290px;height:38px;border-radius:10px}
.oe126-monitor{flex:1;min-height:0;background:#fff;border:1px solid #dde2e7;border-radius:13px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 3px 12px rgba(32,40,48,.035)}
.oe126-monitor-head,.oe126-monitor-row{display:grid;grid-template-columns:minmax(220px,2.2fr) 120px minmax(170px,1.45fr) 92px 138px 120px 46px;gap:10px;align-items:center}
.oe126-monitor-head{height:42px;flex:0 0 42px;padding:0 13px;background:#f7f8fa;border-bottom:1px solid #e4e8ec;color:#69737d;font-size:8.5px;font-weight:900;text-transform:uppercase;letter-spacing:.035em}
.oe126-monitor-body{flex:1;min-height:0;overflow:auto}
.oe126-monitor-row{min-height:68px;padding:7px 13px;border-bottom:1px solid #edf0f2;cursor:pointer;transition:.12s ease;outline:none}.oe126-monitor-row:last-child{border-bottom:0}.oe126-monitor-row:hover,.oe126-monitor-row:focus-visible{background:#fbfcfd}.oe126-monitor-row.offline{background:#fffafa}.oe126-monitor-row.offline:hover{background:#fff5f5}.oe126-monitor-row.hidden{display:none!important}
.oe126-student{display:flex;align-items:center;gap:9px;min-width:0}.oe126-student .mini-avatar{width:37px;height:37px;flex:0 0 37px}.oe126-student>span:last-child{display:flex;flex-direction:column;min-width:0}.oe126-student b{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.oe126-student small{font-size:8.5px;color:#9299a1;margin-top:2px}
.oe126-state{display:inline-flex;align-items:center;justify-content:center;min-width:78px;min-height:25px;padding:0 8px;border-radius:999px;background:#eef1f4;color:#5d6670;font-size:8.5px;font-weight:900;white-space:nowrap}.oe126-state.running{background:#e4f5eb;color:#1e7849}.oe126-state.offline{background:#ffe9e9;color:#ad3030}.oe126-state.finished{background:#eceff3;color:#555e6a}.oe126-state.ready{background:#e6f3fb;color:#226b91}.oe126-state.waiting{background:#fff3d8;color:#856419}
.oe126-progress-cell>div{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:8px;align-items:center}.oe126-progress-cell>div>span{height:6px;background:#edf0f3;border-radius:99px;overflow:hidden}.oe126-progress-cell i{height:100%;display:block;border-radius:inherit;background:#8b1328}.oe126-monitor-row.running .oe126-progress-cell i{background:#278153}.oe126-progress-cell b{font-size:9.5px;text-align:right}.oe126-progress-cell>small{display:block;font-size:8px;color:#949ba3;margin-top:4px}
.oe126-current-q b{font-size:10px;color:#4a535d}.oe126-time-cell{display:flex;flex-direction:column}.oe126-time-cell b{font-size:10px;font-variant-numeric:tabular-nums}.oe126-time-cell small{font-size:8px;color:#949ba3;margin-top:2px}.oe126-activity-col{display:flex;flex-direction:column;min-width:0}.oe126-activity-col b{font-size:9px;color:#5c6670;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.oe126-activity-col small{font-size:7.5px;margin-top:3px;color:#a82d3c}.oe126-open-cell{display:flex;justify-content:flex-end}.oe126-eye{width:32px;height:32px;border:1px solid #dce1e6;border-radius:9px;background:#fff;display:grid;place-items:center;cursor:pointer;color:#4d5965}.oe126-eye:hover{border-color:#9e6873;color:#861329;background:#fff9fa}.oe126-eye .ico{width:15px;height:15px}
.oe126-room-empty,.oe126-room-empty-filter{padding:34px;text-align:center;color:#8b929a;font-size:10px}.oe126-room-empty-filter.hidden{display:none}
.oe126-detail-main{grid-template-columns:285px minmax(0,1fr)}.oe126-detail-empty{grid-template-columns:300px minmax(0,1fr)}
.oe126-detail-stats{grid-template-columns:1fr 1fr}.oe126-detail-stats>div{min-height:48px;justify-content:center}.oe126-detail-stats span{font-size:8px}.oe126-detail-stats b{font-size:10px;font-variant-numeric:tabular-nums}
.oe126-connection-alert{margin:9px 9px 0;padding:9px;border:1px solid #f0c7c7;border-radius:9px;background:#fff5f5;display:flex;gap:8px;color:#9c2b37}.oe126-connection-alert .ico{width:17px;height:17px;flex:0 0 auto;margin-top:1px}.oe126-connection-alert>div{display:flex;flex-direction:column}.oe126-connection-alert b{font-size:9px}.oe126-connection-alert span{font-size:7.8px;line-height:1.45;margin-top:3px;color:#7e5056}
.oe126-detail-actions{padding:8px 9px 10px;border-top:1px solid #eef0f2;border-bottom:1px solid #eef0f2}.oe126-detail-actions .btn{width:100%;justify-content:center;height:35px}.oe126-detail-actions small{display:block;text-align:center;font-size:7.5px;color:#939aa2;margin-top:5px;line-height:1.35}
.oe126-detail-remaining,.oe126-live-countdown{font-variant-numeric:tabular-nums}
@media(max-width:1180px){.oe126-room-kpis{grid-template-columns:repeat(3,1fr)}.oe126-room-kpis button{height:50px}.oe126-monitor-head,.oe126-monitor-row{grid-template-columns:minmax(190px,2fr) 112px minmax(150px,1.25fr) 80px 120px 44px}.oe126-activity-col{display:none!important}.oe126-detail-main{grid-template-columns:250px minmax(0,1fr)}.oe126-live{display:none}}
@media(max-width:820px){.oe126-room-head{height:auto;min-height:68px}.oe126-end-exam{display:none}.oe126-room-main{padding:8px}.oe126-room-kpis{grid-template-columns:repeat(2,1fr)}.oe126-room-toolbar{align-items:stretch;flex-direction:column}.oe126-room-search{width:100%}.oe126-monitor-head{display:none}.oe126-monitor-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;min-height:unset;padding:11px}.oe126-monitor-row>div{min-width:0}.oe126-progress-cell{grid-column:1/-1}.oe126-current-q,.oe126-time-cell{display:none}.oe126-open-cell{position:absolute;right:12px}.oe126-monitor-row{position:relative}.oe126-detail-main,.oe126-detail-empty{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}}

/* V0.127 - giữ nguyên bố cục phòng thi V0.125; chỉ bổ sung thao tác cần thiết */
.online-room-v127-actions{padding:8px 9px;border-top:1px solid #eef0f2}.online-room-v127-actions .btn{width:100%;justify-content:center;height:34px}

/* ===== V0.129 · Thi trực tuyến phía học sinh: tập trung, dễ quan sát ===== */
.online-student-exam-v128{width:100%;max-width:1720px;margin:0 auto;min-width:0}
.online-exam-toolbar-v128{display:grid;grid-template-columns:minmax(300px,1fr) auto auto auto auto;align-items:center;gap:9px;flex:0 0 auto;margin-bottom:9px;padding:8px 10px;background:#fff;border:1px solid #e2e5e9;border-radius:12px;box-shadow:0 4px 14px rgba(41,31,35,.05)}
.online-exam-identity-v128{display:flex;align-items:center;gap:10px;min-width:0}.online-exam-mark-v128{width:34px;height:34px;border-radius:10px;background:#fff1f3;color:#8e1027;display:grid;place-items:center;flex:0 0 auto}.online-exam-mark-v128 .ico{width:18px;height:18px}.online-exam-identity-v128>div{display:flex;flex-direction:column;min-width:0}.online-exam-identity-v128 small{font-size:8px;font-weight:950;letter-spacing:.08em;color:#9a6671}.online-exam-identity-v128 b{font-size:12px;color:#34171d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.online-exam-identity-v128 div>span{font-size:8.5px;color:#89919b;margin-top:1px}
.online-view-switch-v128{justify-self:center;background:#f5f6f8;border:1px solid #e5e7eb;border-radius:9px;padding:2px;display:flex}.online-view-switch-v128 button{height:30px;border:0;background:transparent;border-radius:7px;padding:0 11px;font-size:9px;font-weight:850;color:#6a7280}.online-view-switch-v128 button.active{background:#fff;color:#851126;box-shadow:0 1px 5px rgba(45,35,39,.10)}
.online-toolbar-progress-v128{height:34px;min-width:70px;border:1px solid #e3e6ea;border-radius:9px;background:#fafbfc;padding:0 9px;display:flex;flex-direction:column;justify-content:center;align-items:center;line-height:1}.online-toolbar-progress-v128 span{font-size:7.5px;color:#8b929c;text-transform:uppercase;font-weight:900;letter-spacing:.05em}.online-toolbar-progress-v128 b{font-size:12px;color:#434c59;margin-top:2px;font-variant-numeric:tabular-nums}
.online-exam-timer-v128{height:36px;display:flex;align-items:center;gap:6px;padding:0 10px;border:1px solid #ead8dc;background:#fff8f9;border-radius:9px;white-space:nowrap;transition:.18s}.online-exam-timer-v128 .ico{width:15px;height:15px;color:#8e1027}.online-exam-timer-v128 span{font-size:7.5px;font-weight:900;text-transform:uppercase;letter-spacing:.055em;color:#8b6870}.online-exam-timer-v128 b{font-size:14px;font-variant-numeric:tabular-nums;color:#8d1026;letter-spacing:.03em}.online-exam-timer-v128.warning{background:#fff9e9;border-color:#eadca8}.online-exam-timer-v128.warning .ico,.online-exam-timer-v128.warning b{color:#9a6810}.online-exam-timer-v128.danger{background:#fff0f2;border-color:#e4aab5;box-shadow:0 0 0 2px rgba(167,18,46,.05)}.online-exam-timer-v128.danger .ico,.online-exam-timer-v128.danger b{color:#ae102d}
.online-toolbar-actions-v128{display:flex;gap:6px;justify-content:flex-end}.online-toolbar-actions-v128 .btn{height:34px;padding:0 9px;font-size:8.7px;border-radius:8px;white-space:nowrap}.online-toolbar-actions-v128 .ico{width:14px;height:14px}
.online-exam-grid-v128{display:grid;grid-template-columns:198px minmax(0,1fr) 226px;gap:10px;min-height:0;align-items:stretch}.online-qnav-v128{padding:10px;min-width:0}.online-qnav-head-v128{padding-bottom:8px;border-bottom:1px solid #eceef1;margin-bottom:8px}.online-qnav-head-v128>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px}.online-qnav-head-v128 b{font-size:10.5px;color:#4b5360}.online-qnav-head-v128 span{font-size:9px;font-weight:900;color:#8b1026}.online-progress-track-v128{height:5px!important;margin-top:7px;border-radius:99px;background:#eef0f3;overflow:hidden}.online-progress-track-v128 i{display:block;height:100%;background:#8d1329;border-radius:inherit;transition:width .2s}
.online-qsection-v128{margin-bottom:10px}.online-qsection-v128 .qsection-title{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#69717d!important;font-size:8.8px!important;font-weight:900;text-transform:uppercase;letter-spacing:.035em}.online-qsection-v128 .qsection-title b{min-width:19px;height:18px;padding:0 5px;border-radius:99px;background:#f1f3f5;color:#79818d;display:grid;place-items:center;font-size:7.5px}.online-qnav-v128 .qnav-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.online-qnav-v128 .qnum{height:28px;padding:0;border-radius:6px;font-size:9.5px;background:#f7f8fa}.online-qnav-v128 .qnum.done{background:#eaf7ef;border-color:#bfe4cc;color:#257f4c}.online-qnav-v128 .qnum.active{background:#8e1128;border-color:#8e1128;color:#fff;box-shadow:none}.online-qnav-summary-v128{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding-top:7px;border-top:1px solid #eceef1}.online-qnav-summary-v128>div{background:#f8f9fa;border-radius:7px;padding:6px 7px;display:flex;align-items:center;justify-content:space-between}.online-qnav-summary-v128 span{font-size:7.7px;color:#8b929c}.online-qnav-summary-v128 b{font-size:10px;color:#4f5865}.online-legend-v128{grid-template-columns:1fr;gap:3px!important;font-size:7.8px!important}.online-submit-v128{height:34px!important;font-size:9.5px!important;font-weight:950;letter-spacing:.035em}
.online-question-area-v128{min-width:0;min-height:0;height:100%}.online-question-card-v128{border-radius:13px;box-shadow:none}.online-question-card-v128 .online-question-top-v128{position:sticky;top:0;z-index:3;margin:-18px -20px 15px;padding:12px 20px 10px;background:rgba(255,255,255,.96);backdrop-filter:blur(5px);border-bottom:1px solid #eceef1}.online-question-card-v128.all-question-card .online-question-top-v128{margin:-18px -20px 14px}.online-question-card-v128 .part-label{background:#fff1f3;color:#8b1026;border:1px solid #f0d9de;padding:6px 9px;font-size:8.7px;letter-spacing:.025em}.online-question-card-v128 .question-index{display:flex;align-items:baseline;gap:3px;background:#f5f6f8;color:#424b57;padding:6px 9px;font-size:10px}.online-question-card-v128 .question-index small{font-size:7.5px;color:#9299a3}.online-question-card-v128 .autosave-status{border:1px solid #e5e8ec;background:#fafbfc;color:#8b929c;font-size:8px;padding:5px 7px}.online-question-card-v128 .autosave-status.saved{color:#267c4d;background:#eef9f2;border-color:#d2eadb}.online-question-card-v128 .autosave-status.saving{color:#986711;background:#fff8e9;border-color:#efe2b9}.online-question-card-v128 .autosave-status.error{color:#a4132d;background:#fff1f3;border-color:#edcbd2}
.online-question-card-v128 .stem{font-size:16.5px;line-height:1.62;color:#202733;font-weight:760}.online-question-card-v128 .option{min-height:46px;border-radius:10px;padding:11px 13px;margin:8px 0;align-items:center}.online-question-card-v128 .option-body{display:flex;align-items:flex-start;gap:7px;line-height:1.5}.online-question-card-v128 .option-body>b{min-width:18px;color:#7d1226}.online-question-card-v128 .option:has(input:checked){background:#fff6f7;border-color:#c88c98;box-shadow:inset 3px 0 0 #8c1027}.online-question-card-v128 .tf-row{border-radius:10px;padding:11px 12px;grid-template-columns:minmax(0,1fr) 90px 90px}.online-question-card-v128 .tf-choice{min-height:35px}.online-question-actions-v128{grid-template-columns:1fr auto 1fr!important;align-items:center}.online-question-position{font-size:9px;font-weight:900;color:#9299a2;min-width:46px;text-align:center}.online-all-list-v128{gap:10px;padding-right:2px}.online-all-list-v128 .all-question-card{margin-bottom:0}
.online-exam-side-v128{display:flex;flex-direction:column;gap:10px;min-width:0;height:100%;overflow:hidden}.online-attempt-card-v128,.online-instruction-v128,.online-exam-help-v128{padding:11px 12px}.online-attempt-card-v128 .side-title,.online-instruction-v128 .side-title{font-size:9px;font-weight:900;color:#6e7480;display:flex;align-items:center;gap:5px;border-bottom:1px solid #eceef1;padding-bottom:7px;margin-bottom:8px}.online-attempt-card-v128 .side-title .ico,.online-instruction-v128 .side-title .ico{width:14px;height:14px;color:#8b1127}.online-attempt-facts-v128{display:grid;gap:6px}.online-attempt-facts-v128>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 8px;background:#f8f9fa;border-radius:8px}.online-attempt-facts-v128 span{font-size:8px;color:#838b96}.online-attempt-facts-v128 b{font-size:9.5px;color:#3e4652;font-style:normal}.online-attempt-facts-v128 b i{font-style:normal;color:#8c1127}.online-instruction-v128{max-height:260px;overflow:auto}.online-instruction-v128 p{margin:0;font-size:8.8px;line-height:1.55;color:#737b86}.online-exam-help-v128{margin-top:auto;border-left:3px solid #8f132a;display:flex;flex-direction:column;gap:5px}.online-exam-help-v128 b{font-size:9px;color:#7e1025}.online-exam-help-v128 span{font-size:8.4px;line-height:1.5;color:#818893}
@media(min-width:901px){.exam-content-fixed .online-student-exam-v128{height:100%;display:flex;flex-direction:column;overflow:hidden}.exam-content-fixed .online-exam-grid-v128{flex:1 1 auto;height:0;min-height:0;overflow:hidden}.exam-content-fixed .online-qnav-v128{height:100%;display:flex;flex-direction:column;overflow:hidden}.exam-content-fixed .online-qnav-v128 .qnav-scroll{flex:1 1 auto;min-height:0;max-height:none;overflow:auto;padding-right:2px}.exam-content-fixed .online-question-area-v128{height:100%;min-height:0;overflow:hidden}.exam-content-fixed .online-question-area-v128>.question-card,.exam-content-fixed .online-question-area-v128>.all-question-list{height:100%;max-height:100%;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#bfc4cb transparent}.exam-content-fixed .online-exam-side-v128{height:100%}}
@media(max-width:1160px){.online-exam-toolbar-v128{grid-template-columns:minmax(240px,1fr) auto auto auto}.online-toolbar-progress-v128{display:none}.online-exam-grid-v128{grid-template-columns:182px minmax(0,1fr) 205px}}
@media(max-width:900px){.online-exam-toolbar-v128{grid-template-columns:1fr auto;gap:7px}.online-exam-identity-v128{grid-column:1/-1}.online-view-switch-v128{justify-self:start}.online-exam-timer-v128{justify-self:end}.online-toolbar-actions-v128{grid-column:1/-1;justify-content:flex-start}.online-exam-grid-v128{display:block}.online-qnav-v128{margin-bottom:9px}.online-qnav-v128 .qnav-scroll{max-height:200px;overflow:auto}.online-qnav-v128 .qnav-grid{grid-template-columns:repeat(10,minmax(28px,1fr))}.online-qnav-summary-v128,.online-legend-v128{display:none}.online-exam-side-v128{display:grid;grid-template-columns:1fr 1fr;height:auto;margin-top:9px;overflow:visible}.online-exam-help-v128{display:none}.online-question-card-v128 .online-question-top-v128{position:static;margin:-18px -20px 15px}.online-instruction-v128{max-height:none}}
@media(max-width:620px){.online-exam-toolbar-v128{grid-template-columns:1fr}.online-view-switch-v128,.online-exam-timer-v128{justify-self:stretch}.online-view-switch-v128{display:grid;grid-template-columns:1fr 1fr}.online-exam-timer-v128{justify-content:center}.online-toolbar-actions-v128{display:grid;grid-template-columns:1fr 1fr}.online-toolbar-actions-v128 .btn{width:100%}.online-qnav-v128 .qnav-grid{grid-template-columns:repeat(7,minmax(28px,1fr))}.online-exam-side-v128{display:block}.online-instruction-v128{margin-top:8px}.online-question-card-v128 .stem{font-size:15.5px}.online-question-card-v128 .tf-row{grid-template-columns:1fr 78px 78px}.online-question-actions-v128{grid-template-columns:1fr 1fr!important}.online-question-position{display:none}}

/* V0.129 · Xem lại bài sau khi công bố kết quả */
.online-review-backdrop-v128{padding:8px}.online-review-v128{width:min(1320px,98vw);height:calc(100vh - 16px);max-height:calc(100vh - 16px);border-radius:16px;grid-template-rows:auto auto auto minmax(0,1fr)}.online-review-head-v128{align-items:center;padding:15px 20px}.online-review-head-v128 h2{font-size:18px;margin:2px 0}.online-review-head-v128 p{font-size:9px}.online-review-total-v128{margin-left:auto;display:flex;align-items:baseline;gap:4px;padding:8px 12px;background:#fff4f6;border:1px solid #ead5da;border-radius:10px}.online-review-total-v128 span{font-size:8px;font-weight:900;color:#89626b;text-transform:uppercase}.online-review-total-v128 b{font-size:22px;color:#8b1027}.online-review-total-v128 small{font-size:10px;color:#8c7580}.online-review-summary-v128{grid-template-columns:repeat(3,minmax(0,1fr));padding:9px 20px}.online-review-summary-v128>div{min-height:55px}.online-review-toolbar-v128{padding:9px 20px}.online-review-toolbar-v128 .review-filter button{display:flex;align-items:center;gap:6px}.online-review-toolbar-v128 .review-filter button b{min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:rgba(0,0,0,.06);display:grid;place-items:center;font-size:8px}.online-review-toolbar-v128 .review-filter button.active b{background:rgba(255,255,255,.20)}.online-review-toolbar-v128>span{font-size:9px;color:#89919c}.online-review-body-v128{padding:12px 20px 22px}.online-review-body-v128 .review-q{border-radius:12px;box-shadow:none}.online-review-body-v128 .review-q-head{padding:10px 12px}.online-review-body-v128 .review-stem{font-size:14px}.online-review-body-v128 .review-option,.online-review-body-v128 .review-tf-row{font-size:11px}
@media(max-width:760px){.online-review-head-v128{align-items:flex-start}.online-review-total-v128{margin-left:0}.online-review-summary-v128{grid-template-columns:1fr}.online-review-toolbar-v128{align-items:flex-start}.online-review-toolbar-v128>span{display:none}}

/* ===== V0.129 · Công bố kết quả kỳ thi ===== */
.oe-release-policy-v129{min-height:64px;padding:9px 11px;border:1px solid #e2e5e9;border-radius:10px;background:#fafbfc;display:flex;flex-direction:column;justify-content:center;gap:3px}
.oe-release-policy-v129>span{font-size:8.5px;font-weight:900;color:#7c8490;text-transform:uppercase;letter-spacing:.035em}.oe-release-policy-v129>b{font-size:10.5px;color:#333c47}.oe-release-policy-v129>small{font-size:8.2px;line-height:1.4;color:#8d949d}
.oe-publish-state{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:27px;padding:0 9px;border-radius:999px;font-size:8.8px;font-weight:900;white-space:nowrap;border:1px solid transparent}.oe-publish-state .ico{width:13px;height:13px}.oe-publish-state.published{background:#eaf7ef;color:#207647;border-color:#c8e7d3}.oe-publish-state.pending{background:#fff5e1;color:#846119;border-color:#efdfb7}
.online-result-monitor-actions>.oe-publish-state{height:38px;padding:0 12px}.online-result-monitor-actions #oermPublish{white-space:nowrap}
@media(max-width:900px){.online-result-monitor-actions>.oe-publish-state{display:none}.oe-release-policy-v129{grid-column:1/-1}}


/* ===== V0.130 · Phòng chờ thi: luôn có lối thoát ===== */
.online-waiting-exit{display:inline-flex!important;align-items:center;justify-content:center;gap:7px;min-width:86px;height:36px;padding:0 12px!important;border-color:#d9dee5!important;background:#fff!important;color:#4a5360!important;font-weight:850!important}
.online-waiting-exit:hover{border-color:#a40e25!important;color:#8b1025!important;background:#fff7f8!important}
.online-waiting-exit-x{font-size:20px;line-height:1;font-weight:500;margin-top:-1px}
@media(max-width:560px){.online-waiting-exit{min-width:40px;width:40px;padding:0!important;font-size:0}.online-waiting-exit-x{font-size:21px}}

/* V0.131 — Báo cáo thống kê Thi trực tuyến */
.oe131-page{display:flex;flex-direction:column;gap:14px;min-height:0;padding-bottom:18px}.oe131-head{margin-bottom:0}.oe131-head h1{margin:0 0 4px;font-size:25px}.oe131-head p{margin:0;color:var(--muted);font-size:12px}.oe131-filter{padding:13px 14px}.oe131-filter-main{display:grid;grid-template-columns:minmax(150px,.75fr) minmax(220px,1.25fr) minmax(220px,1.25fr) auto auto;gap:10px;align-items:end}.oe131-filter label,.oe131-custom-date label{display:flex;flex-direction:column;gap:5px;min-width:0}.oe131-filter label>span,.oe131-custom-date label>span{font-size:10px;font-weight:800;color:#667085}.oe131-filter select,.oe131-filter input{height:39px;border:1px solid #dfe3e8;border-radius:10px;background:#fff;padding:0 10px;min-width:0;width:100%}.oe131-custom-date{display:flex;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid #eef0f2}.oe131-custom-date.hidden{display:none}.oe131-custom-date label{width:190px}.oe131-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.oe131-kpis article{background:#fff;border:1px solid #e2e6ea;border-radius:14px;padding:14px 15px;display:flex;flex-direction:column;gap:4px;min-width:0}.oe131-kpis span{font-size:10px;font-weight:800;color:#667085;text-transform:uppercase;letter-spacing:.02em}.oe131-kpis b{font-size:25px;line-height:1.05;color:#811229}.oe131-kpis small{font-size:10px;color:#89909a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.oe131-card{padding:0;overflow:hidden}.oe131-card-head{padding:14px 16px;border-bottom:1px solid #edf0f3;display:flex;align-items:center;justify-content:space-between;gap:14px}.oe131-card-head h2{font-size:15px;margin:0 0 3px;color:#182230}.oe131-card-head p{font-size:10px;margin:0;color:#85909d}.oe131-card-head>span{font-size:10px;font-weight:800;color:#7b1128;background:#fbf0f3;border-radius:999px;padding:6px 9px;white-space:nowrap}.oe131-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);gap:14px}.oe131-table{width:100%;border-collapse:collapse;table-layout:auto}.oe131-table th{height:42px;background:#f7f8fa;border-bottom:1px solid #e6e9ed;padding:8px 10px;text-align:left;color:#53606f;font-size:9.5px;font-weight:800;white-space:nowrap}.oe131-table td{border-bottom:1px solid #edf0f3;padding:10px;font-size:11px;vertical-align:middle}.oe131-table tbody tr:last-child td{border-bottom:0}.oe131-table tbody tr:hover{background:#fcfafb}.oe131-table td small{display:block;font-size:9px;color:#97a0aa;margin-top:2px}.oe131-index{width:34px;text-align:center!important;color:#718096}.oe131-exam-name{display:flex;flex-direction:column;min-width:180px}.oe131-exam-name b{font-size:11.5px;color:#182230}.oe131-release{display:inline-flex;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:800;white-space:nowrap}.oe131-release.yes{background:#e5f7ec;color:#147a42}.oe131-release.no{background:#f1f3f5;color:#6b7280}.oe131-eye{width:34px;height:32px;border:1px solid #dde2e7;border-radius:9px;background:#fff;display:inline-flex;align-items:center;justify-content:center;color:#405064;cursor:pointer}.oe131-eye:hover{border-color:#a61b35;color:#8a132a;background:#fff8fa}.oe131-eye svg{width:15px}.oe131-timeline{height:215px;padding:16px 14px 12px;display:flex;align-items:flex-end;gap:9px;overflow-x:auto}.oe131-timebar{height:100%;min-width:38px;display:grid;grid-template-rows:minmax(0,1fr) auto auto;gap:4px;justify-items:center;flex:1}.oe131-timebar>span{height:100%;width:24px;background:#f2f3f5;border-radius:7px 7px 3px 3px;display:flex;align-items:flex-end;overflow:hidden}.oe131-timebar>span i{display:block;width:100%;background:#8a172b;border-radius:7px 7px 3px 3px}.oe131-timebar b{font-size:10px}.oe131-timebar small{font-size:8.5px;color:#7d8792;white-space:nowrap}.oe131-bands{padding:15px 16px;display:flex;flex-direction:column;gap:13px}.oe131-band{display:grid;grid-template-columns:82px minmax(0,1fr) 28px;align-items:center;gap:9px}.oe131-band>span{font-size:10px;color:#53606f}.oe131-band>div{height:8px;background:#f0f2f4;border-radius:999px;overflow:hidden}.oe131-band>div i{display:block;height:100%;background:#8a172b;border-radius:999px}.oe131-band>b{text-align:right;font-size:11px}.oe131-topics,.oe131-top-list{padding:10px 14px 14px}.oe131-topic{display:grid;grid-template-columns:26px minmax(0,1fr) 50px;align-items:center;gap:9px;padding:8px 0;border-bottom:1px solid #f0f2f4}.oe131-topic:last-child{border-bottom:0}.oe131-rank{width:24px;height:24px;border-radius:7px;background:#f7edf0;color:#8a172b;font-size:9px;font-weight:800;display:flex;align-items:center;justify-content:center}.oe131-topic>div{min-width:0}.oe131-topic b{font-size:10.5px}.oe131-topic small{display:block;font-size:8.8px;color:#9199a3;margin:2px 0 5px}.oe131-topic i{display:block;height:5px;background:#f0f2f4;border-radius:999px;overflow:hidden}.oe131-topic i em{display:block;height:100%;background:#8a172b}.oe131-topic strong{text-align:right;font-size:10px;color:#7b1128}.oe131-top-student{width:100%;border:0;background:transparent;display:grid;grid-template-columns:26px 34px minmax(0,1fr) 42px;align-items:center;gap:8px;padding:8px 2px;border-bottom:1px solid #f0f2f4;text-align:left;cursor:pointer}.oe131-top-student:last-child{border-bottom:0}.oe131-top-student:hover{background:#fcf8f9}.oe131-top-student .mini-avatar{width:32px;height:32px}.oe131-top-student div{min-width:0}.oe131-top-student b{display:block;font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.oe131-top-student small{display:block;font-size:8.8px;color:#9199a3;margin-top:2px}.oe131-top-student>strong{text-align:right;font-size:12px;color:#7b1128}.oe131-student{display:flex;align-items:center;gap:8px;min-width:190px}.oe131-student>span{width:34px;height:34px;border-radius:50%;background:#f4dde3;color:#8a172b;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:800;flex:none}.oe131-student b{font-size:11px}.oe131-filter-student{border:1px solid #e0e4e8;background:#fff;border-radius:8px;padding:6px 9px;font-size:9px;font-weight:800;color:#53606f;cursor:pointer}.oe131-filter-student:hover{border-color:#a61b35;color:#8a132a}.oe131-note{font-size:10px;color:#8a5a00;background:#fff7e0;border:1px solid #f1dfae;border-radius:10px;padding:9px 11px}.oe131-student-table strong{color:#7b1128}.oe131-exams .table-wrap,.oe131-card>.table-wrap{overflow:auto}
@media(max-width:1350px){.oe131-kpis{grid-template-columns:repeat(3,1fr)}.oe131-filter-main{grid-template-columns:1fr 1fr 1fr auto auto}.oe131-grid{grid-template-columns:1fr}}
@media(max-width:900px){.oe131-filter-main{grid-template-columns:1fr 1fr}.oe131-kpis{grid-template-columns:repeat(2,1fr)}.oe131-custom-date{flex-wrap:wrap}.oe131-custom-date label{width:calc(50% - 5px)}}
@media(max-width:560px){.oe131-filter-main{grid-template-columns:1fr}.oe131-kpis{grid-template-columns:1fr 1fr}.oe131-custom-date label{width:100%}.oe131-head{align-items:flex-start}.oe131-head .btn{width:100%;justify-content:center}}

/* V0.132 - shared loading/error states across workspaces */
.view-loading,.view-error{min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:1px solid #e4e7eb;border-radius:18px;background:#fff;padding:32px;color:#1f2937}
.view-loading b,.view-error b{font-size:17px;margin-top:12px}.view-loading small,.view-error p{margin:5px 0 0;color:#7a8390;font-size:12px}.view-loading-spinner{width:32px;height:32px;border:3px solid #e8eaed;border-top-color:#8c0b21;border-radius:50%;animation:v132spin .8s linear infinite}.view-error>span{width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:#fff2f4;color:#9a1530}.view-error .btn{margin-top:16px;min-width:110px}@keyframes v132spin{to{transform:rotate(360deg)}}
@media(max-width:700px){.view-loading,.view-error{min-height:210px;border-radius:14px;padding:24px 16px}}


/* V0.133 - account profile */
.profile-avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
.account-profile-wrap{width:min(1120px,calc(100vw - 28px))!important;height:min(760px,calc(100vh - 28px))!important;max-height:calc(100vh - 28px)!important;padding:0!important;overflow:hidden!important}
@supports (height:100dvh){.account-profile-wrap{height:min(760px,calc(100dvh - 28px))!important;max-height:calc(100dvh - 28px)!important}}
.account-profile-modal{height:100%;display:flex;flex-direction:column;overflow:hidden;background:#fff}
.account-profile-modal .qb-editor-head{padding:18px 20px;border-bottom:1px solid #e7e9ed;background:#fff;flex:0 0 auto}
.account-profile-body{display:grid;grid-template-columns:230px minmax(0,1fr);gap:0;min-height:0;flex:1 1 auto;overflow:hidden;background:#fff}
.account-avatar-card{padding:24px 20px;border-right:1px solid #e7e9ed;background:#fafbfc;display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px;min-height:0}
.account-avatar-preview{width:112px;height:112px;border-radius:28px;background:linear-gradient(145deg,#7b1025,#b42945);color:#fff;font-size:36px;font-weight:900;display:grid;place-items:center;overflow:hidden;box-shadow:0 12px 28px rgba(123,16,37,.18);margin-bottom:6px}
.account-avatar-preview img{width:100%;height:100%;object-fit:cover;display:block}
.account-avatar-card>b{font-size:15px;color:#2f343b}.account-avatar-card>span{font-size:10px;color:#77808a}.account-avatar-card>small{font-size:9px;font-weight:850;color:#8d0a20;background:#f8eaed;border-radius:999px;padding:5px 9px}
.account-avatar-card>p{font-size:9px;line-height:1.5;color:#8b929b;margin:3px 0 0}.account-avatar-upload{margin-top:10px;cursor:pointer}.account-avatar-upload input{display:none}
.account-profile-main{display:flex;flex-direction:column;min-width:0;min-height:0}
.account-profile-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;padding:24px 26px 10px}
.account-profile-form{display:flex;flex-direction:column;gap:14px}.account-profile-form .field{margin:0}.account-profile-form .field small{display:block;margin-top:5px;color:#9299a1;font-size:9px}.account-profile-form input[readonly]{background:#f6f7f8;color:#69717b;cursor:not-allowed}
.account-profile-actions{flex:0 0 auto;padding:14px 18px;border-top:1px solid #eceef1;display:flex;justify-content:space-between;align-items:center;gap:16px;background:#fff;box-shadow:0 -8px 20px rgba(25,32,44,.04)}.account-profile-actions>span{font-size:9px;color:#858d97;line-height:1.45;max-width:320px}.account-profile-actions .btn{flex:0 0 auto}.account-profile-action-buttons{justify-content:flex-end}
@media(max-width:760px){.account-profile-wrap{width:calc(100vw - 16px)!important;height:calc(100vh - 16px)!important;max-height:calc(100vh - 16px)!important}@supports (height:100dvh){.account-profile-wrap{height:calc(100dvh - 16px)!important;max-height:calc(100dvh - 16px)!important}}.account-profile-body{grid-template-columns:1fr}.account-avatar-card{border-right:0;border-bottom:1px solid #e7e9ed;padding:18px}.account-avatar-preview{width:86px;height:86px;border-radius:22px;font-size:28px}.account-profile-scroll{padding:16px 16px 8px}.account-profile-actions{padding:12px 16px;align-items:flex-end;flex-direction:column}.account-profile-actions>span{max-width:none}.account-profile-actions .btn{width:100%}}
@media(max-width:620px){.account-profile-modal .qb-editor-head p{display:none}.account-profile-form .row{grid-template-columns:1fr}.account-profile-actions{align-items:stretch;gap:10px}.account-profile-action-buttons{width:100%;display:grid;grid-template-columns:1fr 1fr}.account-profile-action-buttons .btn:last-child{grid-column:1/-1}}

/* V0.134 - managed student/account profile */
.manage-user-table{min-width:860px}.manage-user-row{cursor:pointer}.manage-user-row:focus{outline:2px solid rgba(127,11,32,.18);outline-offset:-2px}.manage-user-name{border:0;background:transparent;padding:0;display:flex;align-items:center;gap:9px;text-align:left;cursor:pointer;color:inherit;min-width:0}.manage-user-name>span:last-child{display:flex;flex-direction:column;min-width:0}.manage-user-name b{font-size:10.8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.manage-user-name small{font-size:8.4px;color:#949aa2;margin-top:2px}.manage-user-avatar{overflow:hidden;flex:0 0 auto}.manage-user-avatar img{width:100%;height:100%;object-fit:cover;display:block}.manage-class{font-size:10px;color:#555f6a}.manage-user-detail-cell{text-align:right;width:92px}.manage-user-detail-cell .btn{white-space:nowrap}
.managed-profile-wrap{width:min(1040px,96vw)!important;max-width:1040px!important;padding:0!important;overflow:hidden}.managed-profile-modal .qb-editor-head{padding:17px 20px;border-bottom:1px solid #e7e9ed;background:#fff}.managed-profile-modal .qb-editor-head h2{margin-top:3px}.managed-profile-body{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:520px;background:#fff}.managed-avatar-card{padding:24px 18px;border-right:1px solid #e7e9ed;background:#fafbfc;display:flex;align-items:center;flex-direction:column;text-align:center}.managed-avatar-preview{width:108px;height:108px;border-radius:28px;background:#7f0b20;color:#fff;display:flex;align-items:center;justify-content:center;font-size:34px;font-weight:900;overflow:hidden;box-shadow:0 8px 22px rgba(77,15,30,.12)}.managed-avatar-preview img{width:100%;height:100%;object-fit:cover;display:block}.managed-avatar-card>b{margin-top:13px;font-size:14px;color:#333b45;max-width:100%;overflow:hidden;text-overflow:ellipsis}.managed-avatar-card>span{font-size:10px;color:#7f8790;margin-top:3px}.managed-avatar-card>small{font-size:9px;color:#8d152c;font-weight:800;margin-top:7px}.managed-avatar-upload{margin-top:18px;width:100%;justify-content:center}.managed-avatar-card>.btn.compact{margin-top:7px}.managed-avatar-card>p{font-size:8.5px;color:#939aa3;line-height:1.45;margin:10px 3px 0}.managed-profile-main{padding:18px 22px 20px;display:flex;flex-direction:column;min-width:0}.managed-profile-activity{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:15px}.managed-profile-activity>div{border:1px solid #e6e9ed;border-radius:10px;padding:10px 11px;background:#fff;min-width:0}.managed-profile-activity span{display:block;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.045em;color:#8b929c}.managed-profile-activity b{display:block;margin-top:4px;font-size:17px;color:#701126;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.managed-profile-activity b.activity-date{font-size:10.5px;line-height:1.35;margin-top:7px}.managed-profile-activity small{display:block;font-size:8px;color:#9298a0;margin-top:2px}.managed-profile-form{display:flex;flex-direction:column;gap:12px}.managed-profile-form .field{margin:0}.managed-profile-form .field small{display:block;margin-top:4px;font-size:8.5px;color:#9198a1}.managed-profile-form input[readonly]{background:#f6f7f8;color:#707883;cursor:not-allowed}.managed-profile-actions{margin-top:auto;padding-top:17px;border-top:1px solid #eaecf0;display:flex;align-items:center;justify-content:space-between;gap:12px}.managed-profile-actions>div{display:flex;gap:7px;align-items:center}.managed-profile-actions .danger-soft{color:#a5283d;border-color:#efcbd2;background:#fff8f9}.managed-profile-actions .danger-soft:hover{background:#fff0f2}.managed-profile-actions>.btn.primary{min-width:132px;justify-content:center}
@media(max-width:900px){.managed-profile-activity{grid-template-columns:repeat(2,minmax(0,1fr))}.managed-profile-body{grid-template-columns:200px minmax(0,1fr)}}
@media(max-width:700px){.managed-profile-wrap{width:96vw!important}.managed-profile-body{grid-template-columns:1fr;max-height:78vh;overflow:auto}.managed-avatar-card{border-right:0;border-bottom:1px solid #e7e9ed;padding:16px}.managed-avatar-preview{width:82px;height:82px;border-radius:22px;font-size:27px}.managed-avatar-upload{max-width:220px}.managed-profile-main{padding:16px}.managed-profile-activity{grid-template-columns:1fr 1fr}.managed-profile-actions{align-items:stretch;flex-direction:column-reverse}.managed-profile-actions>div{display:grid;grid-template-columns:1fr 1fr}.managed-profile-actions>.btn.primary{width:100%}}

/* V0.135 - clean login: no sample/test account hints */
.login-form-heading{margin-bottom:22px}
.login-form-heading h2{margin-bottom:0}

/* V0.137 - school years, classes and teacher assignments */
.manage-user-kpis.five{grid-template-columns:repeat(5,minmax(0,1fr))}
.manage-role.teacher{background:#eef4ff;color:#24579b}.manage-role.admin{background:#f7e9ed;color:#8c1028}.manage-role.student{background:#eef8f2;color:#1b7047}
.school-structure-page{display:flex;flex-direction:column;gap:14px}.structure-yearbar{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #e3e7ec;border-radius:15px;background:#fff;padding:14px 16px}.structure-yearbar>div:first-child{display:flex;align-items:center;gap:10px}.structure-yearbar span{font-size:9px;font-weight:850;color:#7d8793;text-transform:uppercase;letter-spacing:.045em}.structure-yearbar select{min-width:190px;height:38px;border:1px solid #dfe3e8;border-radius:10px;padding:0 11px;background:#fff;font-weight:800;color:#27313c}.structure-year-actions{display:flex;align-items:center;gap:8px}.structure-current-badge{display:inline-flex;align-items:center;height:28px;border-radius:999px;padding:0 10px;background:#f1f3f5;color:#747d87;font-size:8px!important}.structure-current-badge.current{background:#e8f6ee;color:#187647}
.structure-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.structure-kpis>div{border:1px solid #e3e7ec;border-radius:14px;background:#fff;padding:13px 15px}.structure-kpis span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.04em;color:#87909a;font-weight:900}.structure-kpis b{display:block;margin-top:5px;font-size:21px;color:#7f1027}
.structure-grade-groups{display:flex;flex-direction:column;gap:14px}.structure-grade{border:1px solid #e2e6eb;background:#fff;border-radius:16px;padding:14px}.structure-grade-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.structure-grade-head b{font-size:14px;color:#313a45}.structure-grade-head span{font-size:9px;color:#8b949e;margin-left:8px}.structure-class-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.structure-class-card{border:1px solid #e3e7ec;border-radius:13px;padding:13px;background:#fbfcfd;display:flex;flex-direction:column;min-height:190px}.structure-class-top{display:flex;justify-content:space-between;align-items:center}.structure-class-top>span{font-size:8px;font-weight:900;color:#8b1730;background:#f7eaed;border-radius:999px;padding:5px 8px}.structure-class-card h3{font-size:18px;margin:8px 0 4px;color:#242d36}.structure-class-count{display:flex;align-items:baseline;gap:5px}.structure-class-count b{font-size:20px;color:#7f1027}.structure-class-count span{font-size:9px;color:#8b929b}.structure-teachers{margin:10px 0 12px;padding-top:9px;border-top:1px solid #e8ebef;display:flex;flex-direction:column;gap:4px;min-height:48px}.structure-teachers>span{font-size:8px;text-transform:uppercase;font-weight:900;color:#9299a2}.structure-teachers em{font-style:normal;font-size:9.5px;font-weight:800;color:#39434e}.structure-teachers small{font-size:8.5px;color:#8b929b}.structure-class-card>.btn{margin-top:auto;width:100%;justify-content:center}.structure-empty{border:1px dashed #dfe3e8;border-radius:12px;padding:24px;text-align:center;color:#9299a1;font-size:9px;background:#fafbfc}
.class-members-wrap{width:min(1120px,96vw)!important;max-width:1120px!important;padding:0!important;overflow:hidden}.class-members-modal .qb-editor-head{padding:17px 20px;border-bottom:1px solid #e5e8ec}.class-members-body{display:grid;grid-template-columns:42% 58%;min-height:500px;max-height:68vh}.class-members-body>section{padding:16px 18px;min-width:0}.class-members-body>section+section{border-left:1px solid #e6e9ed}.class-member-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.class-member-section-head>div:first-child{display:flex;flex-direction:column}.class-member-section-head b{font-size:12px;color:#313a44}.class-member-section-head span{font-size:8.5px;color:#9198a1;margin-top:2px}.class-teacher-list,.class-student-list{display:flex;flex-direction:column;gap:6px;overflow:auto;padding-right:4px}.class-teacher-list{max-height:420px}.class-student-list{max-height:420px}.class-teacher-row,.class-student-row{display:flex;align-items:center;gap:9px;border:1px solid #e6e9ed;border-radius:10px;background:#fff;padding:8px 9px;cursor:pointer}.class-teacher-row:hover,.class-student-row:hover{background:#fafbfc}.class-teacher-row>span:nth-of-type(2),.class-student-row>span:nth-of-type(2){display:flex;flex-direction:column;min-width:0;flex:1}.class-teacher-row b,.class-student-row b{font-size:9.6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.class-teacher-row small,.class-student-row small{font-size:8px;color:#9299a2;margin-top:2px}.class-teacher-row select{width:105px;height:31px;border:1px solid #dfe3e8;border-radius:8px;background:#fff;padding:0 6px;font-size:8.5px;font-weight:800}.class-teacher-row input,.class-student-row input{width:16px;height:16px;accent-color:#8c1028}.class-student-search{display:flex;align-items:center;gap:6px;border:1px solid #e1e5ea;border-radius:9px;height:34px;padding:0 9px;min-width:210px}.class-student-search .ico{width:14px}.class-student-search input{border:0;outline:0;width:100%;font-size:9px;background:transparent}.class-members-actions{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 18px;border-top:1px solid #e6e9ed;background:#fafbfc}.class-members-actions span{font-size:8.5px;color:#7f8790}.class-members-error{padding:0 18px 12px;background:#fafbfc}.field small{display:block;margin-top:4px;font-size:8.5px;color:#9098a1}
@media(max-width:1100px){.structure-class-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.manage-user-kpis.five{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.structure-yearbar{align-items:stretch;flex-direction:column}.structure-yearbar>div:first-child{align-items:stretch;flex-direction:column}.structure-yearbar select{width:100%}.structure-kpis,.manage-user-kpis.five{grid-template-columns:repeat(2,minmax(0,1fr))}.structure-class-grid{grid-template-columns:1fr}.class-members-body{grid-template-columns:1fr;max-height:72vh;overflow:auto}.class-members-body>section+section{border-left:0;border-top:1px solid #e6e9ed}.class-teacher-list,.class-student-list{max-height:300px}.class-member-section-head{align-items:stretch;flex-direction:column}.class-student-search{min-width:0;width:100%}.class-members-actions{align-items:stretch;flex-direction:column}.class-members-actions .btn{width:100%}}

/* V0.139 - teacher ↔ class connection and class-scoped student pickers */
.my-classes-page{display:flex;flex-direction:column;gap:14px}.my-class-yearbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;border:1px solid var(--line);border-radius:14px;background:#fff}.my-class-yearbar>div{display:flex;align-items:center;gap:10px}.my-class-yearbar span{font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.045em;color:#7c8590}.my-class-yearbar select{height:38px;min-width:190px;border:1px solid #dfe3e8;border-radius:10px;background:#fff;padding:0 10px;font-weight:800;color:#27313c}.my-class-scope-note{padding:7px 10px;border-radius:999px;background:#f7eaed;color:#8a132a!important;text-transform:none!important;letter-spacing:0!important}
.my-class-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.my-class-kpis>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px 15px}.my-class-kpis span{display:block;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:#87909a}.my-class-kpis b{display:block;margin-top:5px;font-size:22px;color:#7f1027}.my-class-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.my-class-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px;display:flex;flex-direction:column;min-height:240px;box-shadow:0 5px 16px rgba(50,35,40,.04)}.my-class-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.my-class-card-head>div>span{display:block;font-size:8px;font-weight:900;color:#8b1730;text-transform:uppercase;letter-spacing:.045em}.my-class-card-head h3{margin:4px 0 0;font-size:23px;color:#242d36}.my-class-role{font-style:normal;font-size:8px;font-weight:900;border-radius:999px;padding:6px 9px;background:#e9f6ee;color:#187647;white-space:nowrap}.my-class-role.collab{background:#eef4ff;color:#24579b}.my-class-numbers{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:15px}.my-class-numbers>div{background:#fafbfc;border:1px solid #e8ebef;border-radius:11px;padding:10px}.my-class-numbers b{display:block;font-size:20px;color:#7f1027}.my-class-numbers span{font-size:8.5px;color:#878f98}.my-class-coworker{margin:12px 0;padding-top:10px;border-top:1px solid #e8ebef;min-height:47px}.my-class-coworker span{display:block;font-size:8px;text-transform:uppercase;font-weight:900;color:#949ba4}.my-class-coworker b{display:block;margin-top:4px;font-size:9.5px;color:#3c4650;line-height:1.4}.my-class-coworker.empty span{text-transform:none;font-weight:700;line-height:1.45}.my-class-card>.btn{margin-top:auto;width:100%}.my-class-empty{padding:42px 20px!important}.my-class-empty .ico{width:34px;height:34px;margin-bottom:8px;color:#8b1730}
.my-class-students-wrap{width:min(860px,95vw)!important;max-width:860px!important;padding:0!important;overflow:hidden}.my-class-students-modal .qb-editor-head{padding:17px 20px;border-bottom:1px solid var(--line)}.my-class-student-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;background:#fafbfc;border-bottom:1px solid var(--line)}.my-class-student-toolbar>span{font-size:9px;color:#7f8790}.my-class-student-toolbar>span b{color:#7f1027}.my-class-student-list{max-height:58vh;overflow:auto;padding:10px 16px;display:flex;flex-direction:column;gap:6px}.my-class-student-row{display:grid;grid-template-columns:34px 36px minmax(0,1fr) auto;align-items:center;gap:9px;border:1px solid #e7eaee;border-radius:10px;padding:8px 10px;background:#fff}.my-class-stt{font-size:8.5px;color:#8d959e;text-align:center}.my-class-student-name{display:flex;flex-direction:column;min-width:0}.my-class-student-name b{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.my-class-student-name small{font-size:8px;color:#8f97a0;margin-top:2px}.my-class-students-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 16px;border-top:1px solid var(--line);background:#fafbfc}.my-class-students-foot span{font-size:8.5px;color:#7f8790}
.student-scope-tools{display:grid;grid-template-columns:minmax(180px,240px) minmax(240px,1fr) auto;align-items:end;gap:10px;margin:8px 0 10px}.student-scope-tools>label{display:flex;flex-direction:column;gap:5px}.student-scope-tools>label>span{font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:#7e8791}.student-scope-tools select{height:38px;border:1px solid #dde2e8;border-radius:10px;background:#fff;padding:0 10px;font-size:10px;font-weight:800;color:#303946}.student-scope-tools .practice-search{margin:0;height:38px}.student-scope-count{font-size:8.5px;color:#7f8790;white-space:nowrap;padding-bottom:10px}.online-student-picker label small{display:block}
@media(max-width:1050px){.my-class-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.my-class-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.my-class-yearbar{align-items:stretch;flex-direction:column}.my-class-yearbar>div{align-items:stretch;flex-direction:column}.my-class-yearbar select{width:100%}.my-class-grid{grid-template-columns:1fr}.my-class-kpis{grid-template-columns:1fr 1fr}.student-scope-tools{grid-template-columns:1fr}.student-scope-count{padding-bottom:0}.my-class-student-toolbar,.my-class-students-foot{align-items:stretch;flex-direction:column}.my-class-student-toolbar .class-student-search{width:100%}}

/* V0.140 - class-aware team battles, tournaments and reports */
.class-filter-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 13px;margin:0 0 11px;background:#fff;border:1px solid var(--line);border-radius:12px}.class-filter-bar>div{display:flex;align-items:center;gap:8px}.class-filter-bar .ico{width:16px;height:16px;color:#851127}.class-filter-bar span{font-size:9px;font-weight:900;color:#5c6570}.class-filter-bar select{height:36px;min-width:180px;border:1px solid #dce1e6;border-radius:9px;background:#fff;padding:0 10px;font-size:9.5px;font-weight:800;color:#2f3944}.class-filter-bar small{font-size:8.5px;color:#87909a}.class-summary{display:inline-flex!important;align-items:center;gap:5px!important;margin-top:5px;padding:4px 7px;border-radius:999px;background:#f7eef0;color:#851127!important;font-size:8px!important;font-weight:850!important}.class-summary .ico{width:12px;height:12px}.team-member-chips>span{flex-wrap:wrap}.team-member-chips>span>small{width:100%;padding-left:28px;margin-top:-2px;font-size:7px;color:#8f969f;font-weight:700}.team-picker-filter{display:grid;grid-template-columns:minmax(110px,150px) minmax(0,1fr);gap:7px;margin-bottom:8px}.team-picker-filter select,.tour-filter-tools>select{height:36px;border:1px solid #dfe3e8;border-radius:9px;background:#fff;padding:0 9px;font-size:9px;font-weight:800;color:#38434e}.team-picker-filter .team-search{margin:0;min-width:0}.team-picker-empty{padding:16px 8px;text-align:center}.tour-filter-tools{display:flex;align-items:center;gap:8px}.tour-filter-tools>select{min-width:145px}.tour-filter-tools .tour-search-box{min-width:250px}.tour-list-card .class-summary{margin-top:6px}.tour-student-text small,.tour-selected-row small,.tour-review-student small{line-height:1.35}
@media(max-width:760px){.class-filter-bar{align-items:stretch;flex-direction:column}.class-filter-bar>div{align-items:stretch;flex-direction:column}.class-filter-bar select{width:100%}.team-picker-filter{grid-template-columns:1fr}.tour-filter-tools{align-items:stretch;flex-direction:column}.tour-filter-tools>select,.tour-filter-tools .tour-search-box{width:100%;min-width:0}}

/* V0.141 - fix create exam/practice builder initialization; keep class-aware student data */


/* V0.142 - chọn một hoặc nhiều lớp khi giao bài / tạo kỳ thi */
.student-class-scope{border:1px solid #e4e7ec;border-radius:12px;background:#fbfcfd;padding:10px 12px;margin:8px 0 10px}
.student-class-scope-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:9px}
.student-class-scope-head>div:first-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.student-class-scope-head>div:first-child>b{font-size:11px;color:#303946}
.student-class-scope-head>div:first-child>span{font-size:9px;color:#7e8791;line-height:1.45}
.student-class-scope-head>div:last-child{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.student-class-choice-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.student-class-choice-grid>label{display:flex;align-items:center;gap:8px;min-width:0;border:1px solid #e1e5ea;border-radius:10px;background:#fff;padding:8px 9px;cursor:pointer;transition:.15s ease}
.student-class-choice-grid>label:has(input:checked),.student-class-choice-grid>label:has(input:indeterminate){border-color:#b75469;background:#fff6f8;box-shadow:0 0 0 1px rgba(155,15,41,.05)}
.student-class-choice-grid input{width:16px;height:16px;accent-color:#9b0f29;flex:0 0 auto}
.student-class-choice-grid>label>span{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.student-class-choice-grid>label b{font-size:10px;color:#303946;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.student-class-choice-grid>label small{font-size:8.5px;color:#7f8790;margin-top:2px}
.student-scope-tools.multi-class{grid-template-columns:minmax(260px,1fr) auto}
@media(max-width:980px){.student-class-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.student-class-scope-head{flex-direction:column}.student-class-scope-head>div:last-child{justify-content:flex-start}.student-class-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-scope-tools.multi-class{grid-template-columns:1fr}}
@media(max-width:440px){.student-class-choice-grid{grid-template-columns:1fr}}

/* V0.143 - student picker phương án B: lớp trái, học sinh phải */
.student-picker-section-v143{padding:0!important;overflow:hidden;background:#fff!important}
.student-picker-heading-v143{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:16px 18px 13px;border-bottom:1px solid #e7e9ed;background:#fff}
.student-picker-heading-v143>div:first-child{min-width:0}.student-picker-kicker{display:block;font-size:7.8px;font-weight:900;letter-spacing:.075em;color:#9a1831;margin-bottom:3px}.student-picker-heading-v143 h3{margin:0!important;font-size:16px!important;color:#402128!important}.student-picker-heading-v143 p{margin:3px 0 0;font-size:9px;color:#848c95;line-height:1.4}
.student-selection-summary-v143{display:flex;align-items:center;gap:7px;flex:0 0 auto}.student-selection-summary-v143 span,.student-selection-summary-v143 b{display:inline-flex;align-items:center;height:28px;border-radius:999px;padding:0 10px;font-size:8.5px;white-space:nowrap}.student-selection-summary-v143 span{background:#f2f4f6;color:#6d7680;font-weight:850}.student-selection-summary-v143 b{background:#f8e9ed;color:#8d1229;font-weight:900}
.student-assignment-split-v143{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:430px;max-height:calc(100dvh - 278px)}
.student-class-panel-v143{display:flex;flex-direction:column;min-width:0;background:#fafbfc;border-right:1px solid #e6e9ed;padding:12px 10px 10px}
.student-panel-title-v143{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 3px 9px}.student-panel-title-v143>div{display:flex;flex-direction:column;min-width:0}.student-panel-title-v143 b{font-size:10.5px;color:#313a45}.student-panel-title-v143 small{margin-top:2px;font-size:8px;color:#8e969f}.student-panel-title-v143>span{display:grid;place-items:center;min-width:25px;height:25px;padding:0 7px;border-radius:999px;background:#eef1f4;color:#6f7882;font-size:8px;font-weight:900}
.student-class-search-v143,.student-roster-search-v143{height:36px;display:flex;align-items:center;gap:7px;border:1px solid #dfe3e8;border-radius:9px;background:#fff;padding:0 9px;transition:.15s ease}.student-class-search-v143:focus-within,.student-roster-search-v143:focus-within{border-color:#bd7a88;box-shadow:0 0 0 3px rgba(144,16,41,.06)}.student-class-search-v143 .ico,.student-roster-search-v143 .ico{width:13px;height:13px;color:#929aa3;flex:0 0 auto}.student-class-search-v143 input,.student-roster-search-v143 input{width:100%!important;height:auto!important;padding:0!important;border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;font-size:9px!important;color:#313a45}
.student-class-list-v143{display:flex;flex-direction:column;gap:5px;overflow:auto;min-height:0;margin:9px -2px 8px 0;padding:0 4px 2px 0;scrollbar-width:thin}.student-class-row-v143{display:grid;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:46px;border:1px solid #e4e7eb;border-radius:9px;background:#fff;padding:7px 8px;cursor:pointer;transition:.13s ease}.student-class-row-v143:hover{border-color:#d3c4c8;background:#fff}.student-class-row-v143:has(input:checked),.student-class-row-v143:has(input:indeterminate){border-color:#c46f80;background:#fff7f8}.student-class-row-v143 input{width:15px!important;height:15px!important;margin:0!important;accent-color:#98142d}.student-class-copy-v143{display:flex;flex-direction:column;min-width:0}.student-class-copy-v143 b{font-size:9.3px;color:#303944;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-class-copy-v143 small{margin-top:2px;font-size:7.7px;color:#8f97a0}.student-class-state-v143{font-style:normal;font-size:7.2px;font-weight:850;color:#9aa0a7;white-space:nowrap}.student-class-row-v143[data-pick-state="all"] .student-class-state-v143{color:#1d754d}.student-class-row-v143[data-pick-state="part"] .student-class-state-v143{color:#9a5b1d}
.student-class-actions-v143{display:grid;grid-template-columns:1fr auto;gap:6px;padding-top:8px;border-top:1px solid #e5e8ec}.picker-mini-btn-v143{height:31px;border:1px solid #dcc9ce;border-radius:8px;background:#fff;color:#791329;padding:0 9px;display:inline-flex;align-items:center;justify-content:center;gap:5px;font-size:8.2px;font-weight:850;cursor:pointer;white-space:nowrap;transition:.13s ease}.picker-mini-btn-v143:hover{border-color:#b85d71;background:#fff7f8}.picker-mini-btn-v143 .ico{width:12px;height:12px}.picker-mini-btn-v143.quiet{border-color:#e0e3e7;color:#727b85;background:#fff}.picker-mini-btn-v143.quiet:hover{border-color:#cdd2d8;background:#f7f8f9;color:#4c5661}
.student-roster-panel-v143{display:flex;flex-direction:column;min-width:0;min-height:0;padding:12px 13px 10px;background:#fff}.student-roster-toolbar-v143{display:flex;align-items:center;justify-content:space-between;gap:10px}.student-roster-search-v143{width:min(430px,52%);flex:1}.student-roster-actions-v143{display:flex;align-items:center;gap:6px;flex:0 0 auto}.student-roster-context-v143{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 2px 7px;color:#79828c}.student-roster-context-v143>span{font-size:8.3px;font-weight:800;color:#5f6872}.student-roster-context-v143>small{font-size:7.8px;color:#969da5;text-align:right}
.oe-builder-full .student-picker-grid-v143{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:none!important;overflow:auto;min-height:0;flex:1;margin:0;padding:1px 3px 4px 1px;align-content:start;scrollbar-width:thin}.student-picker-grid-v143 label{position:relative;display:grid!important;grid-template-columns:16px 33px minmax(0,1fr) auto!important;align-items:center;gap:8px;min-height:52px;padding:7px 8px!important;border:1px solid #e5e8ec!important;border-radius:10px!important;background:#fff;transition:.13s ease}.student-picker-grid-v143 label:hover{border-color:#d7c7cb!important}.student-picker-grid-v143 label:has(input:checked){border-color:#c86f80!important;background:#fff8f9!important}.student-picker-grid-v143 input.oeStudent{width:15px!important;height:15px!important;margin:0!important;accent-color:#98142d}.student-picker-grid-v143 .mini-avatar{width:33px;height:33px;display:grid;place-items:center;border-radius:50%;font-size:9.5px;font-weight:900;color:#97152e;background:#f7e3e8;flex:0 0 auto}.student-card-copy-v143{display:flex!important;flex-direction:column;min-width:0!important}.student-card-copy-v143 b{font-size:9.5px;color:#232c35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-card-copy-v143 small{font-size:7.8px!important;color:#9299a1!important;margin-top:2px}.student-card-class-v143{font-style:normal;max-width:108px;border-radius:999px;background:#f1f3f5;color:#68717b;padding:4px 7px;font-size:7.3px;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-picker-grid-v143 label:has(input:checked) .student-card-class-v143{background:#f5e4e8;color:#8d1730}
.student-roster-empty-v143{flex:1;min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#969da5;padding:22px}.student-roster-empty-v143.hidden{display:none!important}.student-roster-empty-v143 .ico{width:25px;height:25px;color:#b8bec5;margin-bottom:7px}.student-roster-empty-v143 b{font-size:10px;color:#6d7680}.student-roster-empty-v143 span{max-width:320px;margin-top:4px;font-size:8.2px;line-height:1.45}
@media(max-width:1050px){.student-assignment-split-v143{grid-template-columns:220px minmax(0,1fr)}.oe-builder-full .student-picker-grid-v143{grid-template-columns:1fr}.student-card-class-v143{max-width:130px}}
@media(max-width:760px){.student-picker-heading-v143{align-items:flex-start;flex-direction:column}.student-selection-summary-v143{width:100%;justify-content:flex-start}.student-assignment-split-v143{grid-template-columns:1fr;max-height:none}.student-class-panel-v143{border-right:0;border-bottom:1px solid #e6e9ed}.student-class-list-v143{max-height:190px}.student-roster-toolbar-v143{align-items:stretch;flex-direction:column}.student-roster-search-v143{width:100%}.student-roster-actions-v143{width:100%;flex-wrap:wrap}.student-roster-context-v143{align-items:flex-start;flex-direction:column}.student-roster-context-v143>small{text-align:left}.oe-builder-full .student-picker-grid-v143{max-height:360px!important}.student-card-class-v143{max-width:100px}}
.student-class-list-v143{flex:1}
/* Nút điều hướng trình tạo: nhẹ, gọn và phân cấp rõ hơn */
.oe-builder-full .online-builder-foot{height:58px!important;padding:8px 18px!important}
.oe-builder-full .online-builder-foot .btn{min-height:34px!important;height:34px;border-radius:9px!important;padding:0 13px!important;font-size:9.2px!important;box-shadow:none!important}
.oe-builder-full .online-builder-foot #oeCancel{min-width:auto!important;border-color:transparent!important;background:transparent!important;color:#7d858e!important;font-weight:800}
.oe-builder-full .online-builder-foot #oeCancel:hover{background:#f4f5f6!important;color:#4f5862!important}
.oe-builder-full .online-builder-foot #oeBack{min-width:104px!important;border-color:#dfe3e7!important;background:#fff!important;color:#48525d!important}
.oe-builder-full .online-builder-foot #oeNext{min-width:132px!important;background:#98142d!important;border-color:#98142d!important;color:#fff!important;padding-left:16px!important;padding-right:14px!important}
.oe-builder-full .online-builder-foot #oeNext:hover{background:#851127!important;border-color:#851127!important}
.oe-builder-full .online-builder-foot #oeSave{min-width:150px!important;background:#98142d!important;border-color:#98142d!important;color:#fff!important}
.oe-builder-full .online-builder-foot .ico{width:13px!important;height:13px!important}


/* V0.144 - tối ưu khoảng làm việc bước chọn lớp / học sinh */
.oe-builder-backdrop>.modal.oe-builder-full{
  grid-template-rows:58px minmax(0,1fr) 56px!important;
}
.oe-builder-full .online-builder-head{
  height:58px!important;
  padding:8px 20px!important;
}
.oe-builder-full .online-builder-head>div:first-child{
  display:flex;
  align-items:baseline;
  gap:10px;
  min-width:0;
}
.oe-builder-full .online-builder-head .eyebrow{
  margin:0!important;
  font-size:7.5px!important;
  flex:0 0 auto;
}
.oe-builder-full .online-builder-head h2{
  margin:0!important;
  font-size:18px!important;
  line-height:1.15;
  white-space:nowrap;
}
.oe-builder-full .online-builder-head p{display:none!important}
.oe-builder-full .online-builder-foot{
  height:56px!important;
  padding:7px 18px!important;
}
.oe-builder-main:has(>.student-picker-section-v143:not(.hidden)){
  padding-top:10px!important;
  padding-bottom:14px!important;
}
.oe-builder-main>.student-picker-section-v143{
  max-width:1380px!important;
}
.student-picker-heading-v144{
  min-height:48px;
  align-items:center!important;
  padding:8px 14px!important;
  gap:10px!important;
}
.student-picker-heading-v144 h3{
  font-size:14.5px!important;
  line-height:1.15!important;
}
.student-picker-heading-v144 .student-picker-kicker,
.student-picker-heading-v144 p{display:none!important}
.student-picker-heading-v144 .student-selection-summary-v143{gap:5px}
.student-picker-heading-v144 .student-selection-summary-v143 span,
.student-picker-heading-v144 .student-selection-summary-v143 b{
  height:24px;
  padding:0 9px;
  font-size:8px;
}
.student-assignment-split-v143{
  min-height:470px!important;
  max-height:calc(100dvh - 190px)!important;
}
.student-class-panel-v143{
  padding:8px 8px 8px!important;
}
.student-panel-title-v144{
  min-height:28px;
  padding:0 2px 5px!important;
}
.student-panel-title-v144>div{display:block!important}
.student-panel-title-v144 b{font-size:10px!important}
.student-panel-title-v144 small{display:none!important}
.student-panel-title-v144>span{
  min-width:22px!important;
  height:22px!important;
  padding:0 6px!important;
  font-size:7.6px!important;
}
.student-class-search-v143,.student-roster-search-v143{
  height:32px!important;
  border-radius:8px!important;
}
.student-class-list-v143{
  margin-top:6px!important;
  margin-bottom:6px!important;
  gap:4px!important;
}
.student-class-row-v143{
  min-height:42px!important;
  padding:6px 7px!important;
}
.student-class-actions-v143{
  gap:5px!important;
  padding-top:6px!important;
}
.picker-mini-btn-v143{
  height:28px!important;
  border-radius:7px!important;
  padding:0 8px!important;
  font-size:7.8px!important;
}
.student-roster-panel-v143{
  padding:8px 10px 8px!important;
}
.student-roster-toolbar-v143{gap:7px!important}
.student-roster-actions-v143{gap:5px!important}
.student-roster-context-v144{
  min-height:22px;
  padding:5px 2px 4px!important;
  justify-content:flex-start!important;
}
.student-roster-context-v144>span{
  font-size:7.9px!important;
  color:#727b85!important;
}
.student-roster-context-v144>small{display:none!important}
.oe-builder-full .student-picker-grid-v143{
  gap:5px!important;
}
.student-picker-grid-v143 label{
  min-height:48px!important;
  padding:6px 8px!important;
}
.student-picker-grid-v143 .mini-avatar{
  width:31px!important;
  height:31px!important;
  font-size:9px!important;
}
@media(max-width:760px){
  .oe-builder-backdrop>.modal.oe-builder-full{grid-template-rows:54px minmax(0,1fr) 54px!important}
  .oe-builder-full .online-builder-head{height:54px!important;padding:7px 12px!important}
  .oe-builder-full .online-builder-head .eyebrow{display:none!important}
  .oe-builder-full .online-builder-head h2{font-size:16px!important}
  .student-picker-heading-v144{padding:7px 10px!important;min-height:44px}
  .student-assignment-split-v143{max-height:none!important;min-height:0!important}
}

/* V0.146 - phân quyền chức năng giáo viên */
.managed-profile-wrap{max-height:92vh!important}
.managed-profile-body{max-height:calc(92vh - 82px);overflow:hidden}
.managed-profile-main{overflow-y:auto}
.teacher-permission-panel{border:1px solid #e5e8ec;border-radius:13px;background:#fbfcfd;padding:13px 14px;margin-top:1px}
.teacher-permission-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.teacher-permission-head>div:first-child{min-width:0}.teacher-permission-head b{display:block;font-size:12px;color:#313842}.teacher-permission-head span{display:block;font-size:8.5px;color:#8b939d;margin-top:2px}.teacher-permission-head>div:last-child{display:flex;gap:5px;flex:0 0 auto}
.teacher-permission-head .btn.compact{height:28px;padding:0 9px;font-size:8px;border-radius:8px;background:#fff}
.teacher-permission-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.teacher-permission-row{display:grid;grid-template-columns:30px minmax(0,1fr) 38px;align-items:center;gap:8px;border:1px solid #e6e9ed;border-radius:10px;background:#fff;padding:8px 9px;cursor:pointer;transition:.15s ease}
.teacher-permission-row:hover{border-color:#d4bac1;box-shadow:0 3px 12px rgba(85,23,38,.06)}
.teacher-permission-icon{width:28px;height:28px;border-radius:8px;background:#f7eef1;color:#7d1127;display:flex;align-items:center;justify-content:center}.teacher-permission-icon .ico{width:15px;height:15px}
.teacher-permission-copy{min-width:0}.teacher-permission-copy b{display:block;font-size:9px;color:#343b44}.teacher-permission-copy small{display:block;font-size:7.5px;line-height:1.35;color:#9299a2;margin-top:2px}
.teacher-permission-switch{width:34px;height:20px;position:relative;display:block}.teacher-permission-switch input{position:absolute;opacity:0;pointer-events:none}.teacher-permission-switch i{position:absolute;inset:0;border-radius:20px;background:#d8dde3;transition:.18s ease}.teacher-permission-switch i:after{content:'';position:absolute;width:14px;height:14px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0002;transition:.18s ease}.teacher-permission-switch input:checked+i{background:#86152c}.teacher-permission-switch input:checked+i:after{transform:translateX(14px)}
.teacher-permission-note{display:flex;align-items:center;gap:6px;margin-top:9px;padding-top:9px;border-top:1px dashed #e1e4e8;color:#818994;font-size:8px;line-height:1.4}.teacher-permission-note .ico{width:13px;height:13px;color:#7f1127;flex:0 0 auto}
@media(max-width:760px){.teacher-permission-grid{grid-template-columns:1fr}.teacher-permission-head{align-items:flex-start;flex-direction:column}.teacher-permission-head>div:last-child{align-self:stretch}.teacher-permission-head .btn.compact{flex:1}.managed-profile-body{max-height:none;overflow:auto}.managed-profile-main{overflow:visible}}

/* V0.147 - Phân quyền giáo viên theo nhóm quyền/phân hệ */
.permission-admin-page{display:flex;flex-direction:column;gap:12px;min-height:calc(100vh - 86px)}
.permission-page-head{margin-bottom:0}
.permission-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.permission-kpis>div{border:1px solid #e6e8eb;border-radius:12px;background:#fff;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:54px}
.permission-kpis span{font-size:8.5px;color:#858d97;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.permission-kpis b{font-size:16px;color:#2f3540}
.permission-workspace{padding:0;display:grid;grid-template-columns:280px minmax(0,1fr);min-height:520px;overflow:hidden}
.permission-module-list{border-right:1px solid #e6e8eb;background:#fafbfc;padding:12px;min-width:0}
.permission-module-title{display:flex;align-items:center;justify-content:space-between;padding:2px 4px 10px}.permission-module-title b{font-size:11px;color:#313842}.permission-module-title span{font-size:8px;color:#9098a1}
.permission-module-item{width:100%;border:1px solid transparent;background:transparent;border-radius:10px;display:grid;grid-template-columns:34px minmax(0,1fr) 14px;gap:8px;align-items:center;padding:8px 9px;text-align:left;margin-bottom:4px;cursor:pointer;color:#59616c;transition:.15s ease}
.permission-module-item:hover{background:#fff;border-color:#e2e5e9}.permission-module-item.active{background:#fff;border-color:#d9c4ca;box-shadow:0 4px 14px rgba(95,20,38,.07);color:#711127}
.permission-module-item>.ico{width:13px;height:13px;color:#9aa1a9}.permission-module-item.active>.ico{color:#7d1127}.permission-module-item>span:nth-child(2){min-width:0}.permission-module-item b{display:block;font-size:9.5px;line-height:1.3}.permission-module-item small{display:block;font-size:7.5px;color:#9098a1;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.permission-module-icon{width:32px;height:32px;border-radius:9px;background:#f1f3f5;display:flex;align-items:center;justify-content:center;color:#737b85}.permission-module-icon .ico{width:15px;height:15px}.permission-module-item.active .permission-module-icon{background:#f8ecef;color:#7d1127}
.permission-module-detail{padding:18px 20px;min-width:0;background:#fff}
.permission-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;border-bottom:1px solid #eceef0;padding-bottom:14px;margin-bottom:12px}.permission-detail-head>div:first-child>span,.teacher-override-detail-head>div>span{font-size:7.5px;font-weight:800;letter-spacing:.12em;color:#8d1730}.permission-detail-head h2{font-size:19px;margin:3px 0 4px;color:#252b34}.permission-detail-head p{font-size:9px;color:#838b95;margin:0;line-height:1.45}.permission-module-actions{display:flex;gap:6px;flex:0 0 auto}.permission-module-actions .btn{height:30px;padding:0 10px;font-size:8px}
.permission-action-list{display:flex;flex-direction:column;gap:6px}.permission-action-row{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:14px;align-items:center;border:1px solid #e7e9ec;border-radius:10px;padding:10px 11px;background:#fff;cursor:pointer;transition:.15s ease}.permission-action-row:hover{border-color:#d7c6cb;background:#fefcfc}.permission-action-row.muted-by-module{opacity:.53;background:#fafafa}.permission-action-row b{display:block;font-size:9.5px;color:#353c46}.permission-action-row small{display:block;font-size:7.8px;color:#959ca5;margin-top:2px;line-height:1.35}
.permission-switch{width:34px;height:20px;display:block;position:relative}.permission-switch input{position:absolute;opacity:0;pointer-events:none}.permission-switch i{position:absolute;inset:0;background:#d8dde2;border-radius:22px;transition:.18s}.permission-switch i:after{content:'';position:absolute;width:14px;height:14px;left:3px;top:3px;background:#fff;border-radius:50%;box-shadow:0 1px 4px #0002;transition:.18s}.permission-switch input:checked+i{background:#7f1127}.permission-switch input:checked+i:after{transform:translateX(14px)}
.permission-detail-tip,.permission-bottom-note{display:flex;align-items:center;gap:7px;font-size:8px;color:#7d858f;line-height:1.45}.permission-detail-tip{margin-top:12px;padding:9px 10px;border-radius:9px;background:#f7f8f9}.permission-detail-tip .ico,.permission-bottom-note .ico{width:13px;height:13px;color:#7f1127;flex:0 0 auto}.permission-bottom-note{padding:0 4px 4px}.permission-bottom-note b{color:#59616b}.permission-page-head .btn.attention{box-shadow:0 0 0 3px rgba(127,17,39,.10)}

/* Thẻ quyền gọn trong chi tiết giáo viên */
.teacher-permission-summary{border:1px solid #e3e6ea;border-radius:11px;background:#fbfcfd;padding:10px 11px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:9px;align-items:center}.teacher-permission-summary-icon{width:32px;height:32px;border-radius:9px;background:#f7ecef;color:#7d1127;display:flex;align-items:center;justify-content:center}.teacher-permission-summary-icon .ico{width:15px;height:15px}.teacher-permission-summary-copy{min-width:0}.teacher-permission-summary-copy b{display:block;font-size:9px;color:#343b44}.teacher-permission-summary-copy span{display:block;font-size:8.5px;color:#7c142a;font-weight:700;margin-top:1px}.teacher-permission-summary-copy small{display:block;font-size:7.3px;color:#949ba4;margin-top:2px}.teacher-permission-summary>.btn{height:29px;padding:0 10px;font-size:8px;background:#fff}

/* Cấu hình quyền riêng của một giáo viên */
.teacher-override-wrap{width:min(900px,94vw)!important;max-width:900px!important;padding:0!important;overflow:hidden!important}.teacher-override-modal{display:flex;flex-direction:column;max-height:86vh}.teacher-override-modal>.qb-editor-head{padding:15px 17px 12px;border-bottom:1px solid #e7e9ec}.teacher-override-layout{display:grid;grid-template-columns:245px minmax(0,1fr);min-height:430px;overflow:hidden}.teacher-override-layout>aside{background:#fafbfc;border-right:1px solid #e6e8eb;padding:11px;overflow:auto}.teacher-override-layout>main{padding:16px 18px;overflow:auto;min-width:0}.teacher-override-side-title{display:flex;align-items:center;justify-content:space-between;padding:2px 4px 9px}.teacher-override-side-title b{font-size:10px;color:#343a43}.teacher-override-side-title span{font-size:7.5px;color:#8c949d}
.teacher-override-module{width:100%;display:grid;grid-template-columns:29px minmax(0,1fr) 13px;gap:7px;align-items:center;border:1px solid transparent;border-radius:9px;background:transparent;padding:7px 8px;text-align:left;color:#5f6772;cursor:pointer;margin-bottom:3px}.teacher-override-module:hover{background:#fff;border-color:#e3e6e9}.teacher-override-module.active{background:#fff;border-color:#dbc8cd;color:#741128}.teacher-override-module>span:first-child{width:28px;height:28px;border-radius:8px;background:#f0f2f4;display:flex;align-items:center;justify-content:center}.teacher-override-module>span:first-child .ico{width:14px;height:14px}.teacher-override-module.active>span:first-child{background:#f8ecef;color:#7d1127}.teacher-override-module>span:nth-child(2){min-width:0}.teacher-override-module b{display:block;font-size:8.8px}.teacher-override-module small{display:block;font-size:7px;color:#9299a2;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.teacher-override-module>.ico{width:12px;height:12px;color:#9ba2aa}
.teacher-override-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid #eceef0;margin-bottom:10px}.teacher-override-detail-head h3{font-size:17px;margin:3px 0 3px;color:#2d333c}.teacher-override-detail-head p{font-size:8.5px;color:#89919a;margin:0;line-height:1.4}.teacher-override-detail-head .btn{height:29px;padding:0 9px;font-size:7.8px;white-space:nowrap}
.teacher-override-action-list{display:flex;flex-direction:column;gap:6px}.teacher-override-action{display:grid;grid-template-columns:minmax(0,1fr) 155px 74px;gap:9px;align-items:center;border:1px solid #e7e9ec;border-radius:9px;padding:8px 9px;background:#fff}.teacher-override-action b{display:block;font-size:8.8px;color:#373e47}.teacher-override-action small{display:block;font-size:7.2px;color:#949ba4;margin-top:2px}.teacher-override-action select{height:30px;border:1px solid #dfe3e7;border-radius:8px;background:#fff;padding:0 7px;font-size:7.7px;color:#4c545e;min-width:0}.teacher-effective{font-size:7.2px;font-weight:800;border-radius:20px;padding:5px 6px;text-align:center;white-space:nowrap}.teacher-effective.allow{background:#edf7f0;color:#277344}.teacher-effective.deny{background:#f8eeee;color:#9b3545}.teacher-override-help{margin-top:10px;background:#f7f8f9;border-radius:9px;padding:8px 9px;font-size:7.7px;color:#7d858f;display:flex;align-items:flex-start;gap:6px;line-height:1.45}.teacher-override-help .ico{width:12px;height:12px;color:#7d1127;flex:0 0 auto;margin-top:1px}
.teacher-override-foot{border-top:1px solid #e6e8eb;padding:10px 13px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fbfcfd}.teacher-override-foot>div{display:flex;gap:6px}.teacher-override-foot .btn{height:31px;padding:0 11px;font-size:8px}

@media(max-width:820px){.permission-kpis{grid-template-columns:1fr 1fr}.permission-workspace{grid-template-columns:1fr;min-height:0}.permission-module-list{border-right:0;border-bottom:1px solid #e6e8eb}.permission-module-list>#permModuleList{display:grid;grid-template-columns:1fr 1fr;gap:4px}.permission-module-item{margin:0}.permission-module-detail{padding:14px}.teacher-override-layout{grid-template-columns:1fr;overflow:auto}.teacher-override-layout>aside{border-right:0;border-bottom:1px solid #e6e8eb;max-height:210px}.teacher-override-action{grid-template-columns:1fr}.teacher-effective{justify-self:start}.teacher-override-foot{align-items:stretch;flex-direction:column}.teacher-override-foot>div{justify-content:flex-end}}
@media(max-width:560px){.permission-kpis{grid-template-columns:1fr 1fr}.permission-module-list>#permModuleList{grid-template-columns:1fr}.permission-detail-head{flex-direction:column}.permission-module-actions{width:100%}.permission-module-actions .btn{flex:1}.teacher-permission-summary{grid-template-columns:34px minmax(0,1fr)}.teacher-permission-summary>.btn{grid-column:1/-1;width:100%}}

/* V0.147 - quyền thao tác: ẩn hành động giáo viên không được cấp. */
.permission-hidden{display:none!important}


/* V0.148 - hồ sơ tài khoản: không che nội dung, footer luôn nhìn thấy */
.managed-profile-wrap{
  width:min(1180px,calc(100vw - 28px))!important;
  max-width:1180px!important;
  height:min(760px,calc(100vh - 28px))!important;
  max-height:calc(100vh - 28px)!important;
  padding:0!important;
  overflow:hidden!important;
}
@supports (height:100dvh){
  .managed-profile-wrap{height:min(760px,calc(100dvh - 28px))!important;max-height:calc(100dvh - 28px)!important}
}
.managed-profile-modal{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.managed-profile-modal>.qb-editor-head{flex:0 0 auto;padding:14px 18px 12px!important}
.managed-profile-modal>.qb-editor-head p{margin:3px 0 0;font-size:9px;line-height:1.35}
.managed-profile-body{
  flex:1 1 auto;
  min-height:0!important;
  max-height:none!important;
  overflow:hidden!important;
  grid-template-columns:220px minmax(0,1fr);
}
.managed-avatar-card{min-height:0;overflow-y:auto;padding:18px 16px}
.managed-avatar-preview{width:96px;height:96px;border-radius:24px;font-size:31px}
.managed-avatar-card>b{margin-top:10px}
.managed-avatar-upload{margin-top:14px}
.managed-profile-main{
  min-height:0!important;
  overflow:hidden!important;
  padding:0!important;
  display:flex!important;
  flex-direction:column!important;
}
.managed-profile-scroll{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:16px 20px 12px;
  scrollbar-gutter:stable;
}
.managed-profile-form{gap:10px}
.managed-profile-actions{
  flex:0 0 auto;
  margin-top:0!important;
  padding:10px 20px!important;
  border-top:1px solid #e6e9ed;
  background:#fff;
  box-shadow:0 -7px 18px rgba(35,42,52,.04);
  z-index:2;
}
.managed-profile-actions .btn{min-height:36px}
.teacher-permission-summary{margin:1px 0}

/* Cửa sổ quyền riêng cũng giữ footer cố định khi màn hình thấp */
.teacher-override-wrap{
  height:min(720px,calc(100vh - 32px))!important;
  max-height:calc(100vh - 32px)!important;
}
@supports (height:100dvh){
  .teacher-override-wrap{height:min(720px,calc(100dvh - 32px))!important;max-height:calc(100dvh - 32px)!important}
}
.teacher-override-modal{height:100%;max-height:none!important;min-height:0;overflow:hidden}
.teacher-override-layout{flex:1 1 auto;min-height:0!important;overflow:hidden!important}
.teacher-override-layout>aside,.teacher-override-layout>main{min-height:0;overflow:auto}
.teacher-override-foot{flex:0 0 auto;box-shadow:0 -6px 16px rgba(35,42,52,.035)}

@media(max-width:900px){
  .managed-profile-body{grid-template-columns:190px minmax(0,1fr)}
  .managed-profile-scroll{padding:14px 16px 10px}
  .managed-profile-actions{padding:10px 16px!important}
}
@media(max-width:700px){
  .managed-profile-wrap{width:calc(100vw - 16px)!important;height:calc(100vh - 16px)!important;max-height:calc(100vh - 16px)!important}
  @supports (height:100dvh){.managed-profile-wrap{height:calc(100dvh - 16px)!important;max-height:calc(100dvh - 16px)!important}}
  .managed-profile-body{display:flex;flex-direction:column;overflow:hidden!important;max-height:none!important}
  .managed-avatar-card{flex:0 0 auto;border-right:0;border-bottom:1px solid #e7e9ed;padding:10px 14px;display:grid;grid-template-columns:58px minmax(0,1fr) auto;grid-template-rows:auto auto auto;column-gap:10px;text-align:left;align-items:center;overflow:visible}
  .managed-avatar-preview{width:54px;height:54px;border-radius:15px;font-size:18px;grid-row:1/4}
  .managed-avatar-card>b{margin:0;font-size:12px;align-self:end}.managed-avatar-card>span{margin:0;font-size:8px}.managed-avatar-card>small{margin:0;font-size:8px;align-self:start}
  .managed-avatar-upload{margin:0;width:auto;grid-column:3;grid-row:1/3;align-self:center}.managed-avatar-card>.btn.compact{grid-column:3;grid-row:3;margin:0}.managed-avatar-card>p{display:none}
  .managed-profile-main{flex:1 1 auto;min-height:0!important}
  .managed-profile-scroll{padding:12px 13px 8px}
  .managed-profile-actions{padding:9px 13px!important;flex-direction:row;align-items:center}
  .managed-profile-actions>div{display:flex;grid-template-columns:none;flex-wrap:wrap}.managed-profile-actions>.btn.primary{width:auto;min-width:122px}
}
@media(max-width:520px){
  .managed-profile-modal>.qb-editor-head p{display:none}
  .managed-profile-actions{align-items:stretch;flex-direction:column-reverse}
  .managed-profile-actions>div{display:grid;grid-template-columns:1fr 1fr}
  .managed-profile-actions>.btn.primary{width:100%}
}

/* V0.149 - Đề cá nhân & quy trình duyệt câu hỏi vào ngân hàng */
.pe-page-head p{margin:5px 0 0;color:#7a7174;font-size:13px;max-width:760px}.pe-summary{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 12px}.pe-summary>span{display:inline-flex;gap:5px;align-items:center;padding:7px 11px;border-radius:999px;background:#f5f6f7;color:#555;font-size:12px;border:1px solid #ececef}.pe-summary .pending{background:#fff7e9;color:#915d00;border-color:#f7dfaa}.pe-summary .approved{background:#edf9f2;color:#14733b;border-color:#cbead8}.pe-toolbar{display:flex;align-items:center;gap:10px;padding:10px 12px;margin-bottom:12px}.pe-toolbar .qb-search{flex:1;min-width:260px}.pe-toolbar select{min-width:190px}.pe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px}.pe-card{padding:16px;display:flex;flex-direction:column;gap:12px;min-height:220px}.pe-card-top{display:flex;justify-content:space-between;gap:14px}.pe-card-top h3{margin:4px 0 5px;font-size:18px;color:#211b1d}.pe-card-top p{margin:0;color:#81777a;font-size:12px;line-height:1.5;min-height:36px}.pe-kicker{font-size:10px;font-weight:900;letter-spacing:.08em;color:#9b0a23}.pe-card-counts,.pe-card-status{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.pe-card-counts span{font-size:11px;color:#6f6568;padding:5px 8px;border-radius:8px;background:#f8f8f9}.pe-card-counts span:first-child{color:#221b1d;background:#f2f2f4}.pe-card footer{margin-top:auto;padding-top:10px;border-top:1px solid #eee;display:flex;justify-content:space-between;gap:10px;align-items:center}.pe-card footer small{color:#989094}.pe-pill{display:inline-flex;align-items:center;white-space:nowrap;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:800;border:1px solid transparent}.pe-pill.pending{background:#fff7e9;color:#8b5b00;border-color:#f5dea9}.pe-pill.approved{background:#edf9f2;color:#13723a;border-color:#cae9d7}.pe-pill.rejected{background:#fff0f1;color:#9c1f2e;border-color:#f1cbd0}.pe-pill.changes{background:#fff4e8;color:#a34f00;border-color:#f3d1aa}.pe-pill.draft{background:#f3f4f6;color:#6d7178;border-color:#e2e4e8}.pe-empty{grid-column:1/-1;min-height:190px}.pe-create{min-width:min(560px,88vw);padding:4px}.pe-create .modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.pe-create .modal-head h2{margin:3px 0}.pe-create .modal-head p{margin:0;color:#777}.pe-create textarea{min-height:100px}.pe-create>.actions{justify-content:flex-end;margin-top:16px}
.pe-detail-backdrop{z-index:7000}.pe-detail-modal{width:min(1180px,94vw);height:min(820px,91vh);padding:0;display:flex;flex-direction:column;overflow:hidden}.pe-detail-head{padding:18px 22px;border-bottom:1px solid #ebe9ea;display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.pe-detail-head h2{margin:3px 0 4px;font-size:24px;color:#71091b}.pe-detail-head p{margin:0;color:#807579;max-width:700px;font-size:12px}.pe-detail-head>.actions{display:flex;gap:8px;align-items:center}.pe-detail-summary{display:flex;align-items:center;gap:9px;padding:10px 22px;background:#fafafa;border-bottom:1px solid #eee;font-size:11px;color:#62595c}.pe-detail-summary>span{padding:4px 7px;border-radius:7px;background:#fff;border:1px solid #e8e8ea}.pe-detail-summary .pending{color:#8b5b00}.pe-detail-summary .approved{color:#14733b}.pe-detail-summary .pe-submit{margin-left:auto}.pe-question-list{overflow:auto;padding:12px 18px 18px;display:flex;flex-direction:column;gap:9px;flex:1}.pe-question-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:12px;align-items:start;padding:13px 14px;border:1px solid #e9e6e7;border-radius:13px;background:#fff}.pe-q-index{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:#f8ecef;color:#9b0a23;font-weight:900}.pe-q-main h4{margin:7px 0 0;font-size:13px;line-height:1.5;color:#272123;font-weight:750}.pe-q-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.pe-q-meta>span:not(.qb-type):not(.pe-pill){font-size:10px;color:#756b6e;padding:3px 6px;background:#f6f6f7;border-radius:6px}.pe-q-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end;max-width:260px}.pe-review-note{margin-top:8px;padding:7px 9px;border-radius:8px;font-size:11px}.pe-review-note.changes,.pe-review-note.rejected{background:#fff6ed;color:#844109}.pe-review-note.approved{background:#eff9f3;color:#196b3b}.pe-bank-link{display:block;margin-top:6px;color:#187341}.pe-detail-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 18px;border-top:1px solid #e9e6e7;background:#fff}.pe-detail-footer span{font-size:11px;color:#82787b}
.approval-tabs{display:flex;align-items:center;gap:6px;margin-bottom:10px;border-bottom:1px solid #e8e5e6;padding-bottom:8px}.approval-tabs button{border:1px solid transparent;background:transparent;border-radius:9px;padding:8px 10px;font-weight:750;color:#6b6265;display:inline-flex;gap:7px;align-items:center;cursor:pointer}.approval-tabs button b{min-width:20px;height:20px;padding:0 5px;border-radius:999px;display:grid;place-items:center;background:#efeff1;font-size:10px}.approval-tabs button.active{background:#f8ecef;color:#970b25;border-color:#efd5da}.approval-tabs button.active b{background:#970b25;color:#fff}.approval-list{display:flex;flex-direction:column;gap:9px}.approval-row{display:grid;grid-template-columns:245px minmax(0,1fr) auto;gap:16px;align-items:center;padding:13px 15px}.approval-author{display:flex;align-items:center;gap:10px}.approval-author .avatar{width:38px;height:38px;font-size:12px}.approval-author>div:last-child{min-width:0}.approval-author b,.approval-author span,.approval-author small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.approval-author b{font-size:12px}.approval-author span{font-size:10px;color:#766d70;margin-top:2px}.approval-author small{font-size:9px;color:#9a9395;margin-top:2px}.approval-question>div{display:flex;gap:6px;align-items:center;margin-bottom:5px}.approval-question>div>span:not(.qb-type){font-size:9px;background:#f5f5f6;padding:3px 6px;border-radius:5px;color:#70676a}.approval-question>b{display:block;font-size:12px;line-height:1.45;color:#292326}.approval-question>small{display:block;margin-top:5px;color:#92520d}.approval-actions{display:flex;gap:6px;align-items:center}.approval-review-modal{width:min(960px,90vw)}.approval-review-modal>header{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:15px;border-bottom:1px solid #ece9ea}.approval-review-modal>header h2{margin:3px 0}.approval-review-modal>header p{margin:0;color:#7c7275}.approval-review-body{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(290px,.8fr);gap:18px;padding:18px 0}.approval-preview-box{padding:15px;border:1px solid #e8e4e5;border-radius:12px;background:#fbfbfc}.approval-stem{margin:12px 0;font-size:14px;line-height:1.55}.approval-form{display:flex;flex-direction:column;gap:8px}.approval-form textarea{min-height:120px}.approval-review-modal>footer{display:flex;justify-content:flex-end;gap:8px;padding-top:14px;border-top:1px solid #ece9ea}
@media(max-width:900px){.pe-grid{grid-template-columns:1fr}.pe-detail-modal{width:96vw;height:94vh}.pe-detail-head{padding:14px;flex-direction:column}.pe-detail-summary{padding:8px 14px;overflow-x:auto}.pe-question-row{grid-template-columns:32px 1fr}.pe-q-actions{grid-column:2;justify-content:flex-start;max-width:none}.approval-row{grid-template-columns:1fr}.approval-review-body{grid-template-columns:1fr}.pe-toolbar{flex-direction:column;align-items:stretch}.pe-toolbar select{width:100%}}

/* V0.150 - trang Hồ sơ cá nhân trong khối Quản lí giáo viên */
.account-profile-page-card{display:flex;align-items:center;gap:24px;padding:28px;max-width:920px}
.account-profile-page-avatar{width:108px;height:108px;border-radius:28px;background:#970b27;color:#fff;display:grid;place-items:center;flex:0 0 auto;overflow:hidden;font-size:34px;font-weight:800}
.account-profile-page-avatar img{width:100%;height:100%;object-fit:cover}
.account-profile-page-main{min-width:0;flex:1}.account-profile-page-main h2{margin:0 0 4px;font-size:25px}.account-profile-page-main>p{margin:0 0 20px;color:#737985}
.account-profile-page-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px}.account-profile-page-grid>div{border:1px solid #e7e9ee;border-radius:14px;padding:13px 15px;background:#fafbfc}.account-profile-page-grid span{display:block;color:#7b818b;font-size:12px;margin-bottom:5px}.account-profile-page-grid b{font-size:14px;word-break:break-word}
@media(max-width:760px){.account-profile-page-card{align-items:flex-start;gap:16px;padding:18px}.account-profile-page-avatar{width:80px;height:80px;border-radius:22px}.account-profile-page-grid{grid-template-columns:1fr}}

/* V0.151 - dùng Đề cá nhân trực tiếp cho bài luyện / kỳ thi / trận đấu */
.personal-source-card-v151{padding:18px 20px;display:grid;gap:16px}
.personal-source-head-v151{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.personal-source-head-v151 b{display:block;font-size:15px;color:var(--text,#172033);margin-bottom:4px}
.personal-source-head-v151 span{display:block;font-size:12.5px;line-height:1.55;color:var(--muted,#6b7280)}
.personal-source-picker-v151{display:grid;grid-template-columns:minmax(280px,1.15fr) minmax(260px,.85fr);gap:14px;align-items:stretch}
.personal-source-picker-v151>label{display:flex;flex-direction:column;gap:7px;padding:14px;border:1px solid #e6e8ee;border-radius:13px;background:#fff}
.personal-source-picker-v151>label>span{font-size:12px;font-weight:800;letter-spacing:.02em;color:#5f6675}
.personal-source-picker-v151 select{width:100%;min-height:42px;border:1px solid #d8dce5;border-radius:10px;background:#fff;padding:0 12px;font:inherit;color:#202636;outline:none}
.personal-source-picker-v151 select:focus{border-color:#8f2332;box-shadow:0 0 0 3px rgba(143,35,50,.08)}
.personal-source-summary-v151{display:flex;align-items:center;gap:11px;min-height:72px;padding:14px 16px;border:1px solid #ece3e5;border-radius:13px;background:#fffafb;color:#7a2030}
.personal-source-summary-v151 svg{width:20px;height:20px;flex:0 0 auto}
.personal-source-summary-v151 span{min-width:0}
.personal-source-summary-v151 b{display:block;color:#3c2026;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.personal-source-summary-v151 small{display:block;margin-top:4px;color:#7a6c70;font-size:12px;line-height:1.45}
@media(max-width:820px){.personal-source-picker-v151{grid-template-columns:1fr}.personal-source-card-v151{padding:14px}}

/* V0.152 - Ngân hàng câu hỏi cá nhân giáo viên */
.personal-owner-chip{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;background:#eef3ff;color:#34507b;font-size:10px;font-weight:800;border:1px solid #dce6f7}
.personal-bank-row.is-pending{border-color:#f0dbad;background:linear-gradient(90deg,#fffdf7 0,#fff 20%)}
.personal-source-filter-v152{display:flex;align-items:center;gap:8px;border:1px solid #e3e6ec;border-radius:11px;background:#fff;padding:0 11px;min-height:42px}
.personal-source-filter-v152 svg{width:16px;height:16px;color:#777f8d;flex:0 0 auto}.personal-source-filter-v152 input{border:0!important;outline:0!important;box-shadow:none!important;width:100%;min-width:0;background:transparent;padding:9px 0;font:inherit}
.personal-question-picker-v152{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:330px;overflow:auto;padding:2px 3px 2px 0}
.personal-q-v152{display:flex;align-items:flex-start;gap:9px;padding:10px 11px;border:1px solid #e6e8ed;border-radius:11px;background:#fff;cursor:pointer;min-width:0;transition:.15s ease}
.personal-q-v152:hover{border-color:#d6bcc2;background:#fffbfc}.personal-q-v152:has(input:checked){border-color:#b77481;background:#fff5f7;box-shadow:0 0 0 2px rgba(151,11,39,.045)}
.personal-q-v152>input{margin-top:3px;flex:0 0 auto}.personal-q-v152>span{min-width:0;display:block}.personal-q-v152 b,.personal-q-v152 small,.personal-q-v152 em{display:block}.personal-q-v152 b{font-size:11px;color:#3d262b}.personal-q-v152 small{margin-top:2px;font-size:10px;color:#7a7377}.personal-q-v152 em{margin-top:5px;font-style:normal;font-size:11px;line-height:1.4;color:#4c5058;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.personal-source-legacy-v152{display:flex;align-items:flex-start;gap:8px;padding:9px 11px;border-radius:10px;background:#fff8e9;border:1px solid #f1ddb0;color:#835600;font-size:11px;line-height:1.45}.personal-source-legacy-v152 svg{width:16px;height:16px;flex:0 0 auto;margin-top:1px}
@media(max-width:850px){.personal-question-picker-v152{grid-template-columns:1fr;max-height:290px}}

/* V0.153 - bảo mật tài khoản lần đầu + đồng bộ ảnh đại diện */
.password-first-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 12% 18%,rgba(121,8,25,.08),transparent 28%),radial-gradient(circle at 86% 82%,rgba(201,155,73,.08),transparent 24%),#f5f6f8}
.password-first-card{width:min(720px,100%);background:#fff;border:1px solid #eadfe2;border-radius:24px;box-shadow:0 28px 80px rgba(63,15,27,.16);padding:30px}
.password-first-brand{display:flex;gap:18px;align-items:center;padding-bottom:22px;margin-bottom:20px;border-bottom:1px solid #eee6e8}.password-first-brand img{width:78px;height:78px;object-fit:contain;border-radius:50%;background:#fff;border:1px solid #eadfe2;padding:3px}.password-first-brand small{display:block;font-size:11px;font-weight:900;color:#8f0b22;letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px}.password-first-brand h1{margin:0;color:#720617;font-size:28px}.password-first-brand p{margin:7px 0 0;color:#697386;line-height:1.5;font-size:13px}
.password-change-form{display:grid;gap:2px}.password-security-note{display:flex;align-items:flex-start;gap:9px;padding:11px 12px;border-radius:11px;background:#fff7e7;border:1px solid #f0ddb3;color:#765516;font-size:12px;font-weight:750;line-height:1.45;margin-bottom:4px}.password-security-note .ico{width:17px;height:17px;margin-top:1px}.password-exit{margin-top:6px;background:#fafafa;color:#697386}.password-change-form .row{margin:0}
.change-password-wrap{width:min(520px,calc(100vw - 28px))!important;max-height:calc(100vh - 28px)!important;overflow:hidden!important;padding:0!important}.change-password-modal{display:flex;flex-direction:column;max-height:calc(100vh - 28px)}.change-password-modal .qb-editor-head{padding:20px 22px 15px;border-bottom:1px solid #ece6e8}.change-password-body{padding:18px 22px 22px;overflow:auto}.change-password-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.account-profile-action-buttons{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
@media(max-width:620px){.password-first-shell{padding:10px}.password-first-card{padding:20px 17px;border-radius:18px}.password-first-brand{align-items:flex-start}.password-first-brand img{width:60px;height:60px}.password-first-brand h1{font-size:23px}.password-change-form .row{grid-template-columns:1fr}.account-profile-action-buttons{width:100%}.account-profile-action-buttons .btn{flex:1}}

/* Ảnh đại diện dùng chung ở mọi màn hình có người dùng. */
.mini-avatar,.avatar,.wait-avatar,.duel-avatar,.duel-result-avatar,.live-work-avatar,.online-room-big-avatar,.victory-avatar,.team-live-avatar,.tour-avatar,.tour-live-avatar,.profile-avatar,.my-h2h-avatar,.h2h-avatar,.challenge-review-avatar,.team-chip-avatar,.team-victory-member-avatar,.oea123-avatar,.oe131-avatar,.duel-pick-avatar-inner{overflow:hidden;flex:0 0 auto}
.mini-avatar img,.avatar img,.wait-avatar img,.duel-avatar img,.duel-result-avatar img,.live-work-avatar img,.online-room-big-avatar img,.victory-avatar img,.team-live-avatar img,.tour-avatar img,.tour-live-avatar img,.profile-avatar img,.my-h2h-avatar img,.h2h-avatar img,.challenge-review-avatar img,.team-chip-avatar img,.team-victory-member-avatar img,.oea123-avatar img,.oe131-avatar img,.duel-pick-avatar-inner img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
.duel-pick-avatar-inner{width:100%;height:100%;display:grid;place-items:center;border-radius:inherit}.team-chip-avatar,.team-victory-member-avatar,.challenge-review-avatar,.h2h-avatar,.oea123-avatar,.oe131-avatar{display:inline-grid;place-items:center;border-radius:50%}

/* V0.153 - trạng thái mật khẩu tạm thời trong quản trị */
.badge.password-pending{background:#fff7ed;color:#9a3412;border-color:#fed7aa;white-space:nowrap}
.managed-password-state{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;margin:2px 0 14px;border:1px solid #fed7aa;background:#fff7ed;border-radius:12px;color:#9a3412}
.managed-password-state>svg{width:18px;height:18px;flex:0 0 18px;margin-top:1px}
.managed-password-state div{display:flex;flex-direction:column;gap:2px}
.managed-password-state b{font-size:13px}
.managed-password-state span{font-size:12px;line-height:1.45;color:#7c2d12}

/* V0.154 - workspace duyệt câu hỏi + luồng chỉnh sửa/gửi lại */
.approval-toolbar-v154{display:flex;align-items:center;gap:12px}.approval-toolbar-v154 .qb-search{flex:1}.approval-toolbar-note{font-size:10px;color:#766d70;display:flex;align-items:center;gap:6px;white-space:nowrap}.approval-toolbar-note svg{width:14px;height:14px;color:#970b25}
.modal.approval-workspace-wrap-v154{width:min(1460px,97vw);height:min(94vh,920px);max-height:94vh;padding:0;overflow:hidden;border-radius:18px;background:#fff}.approval-workspace-v154{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:0}.approval-workspace-head{padding:16px 20px 13px;border-bottom:1px solid #ece8e9;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;background:#fff}.approval-workspace-title{min-width:0}.approval-workspace-title .eyebrow{font-size:10px;letter-spacing:.08em;font-weight:850;color:#a10c29}.approval-workspace-title h2{margin:3px 0 5px;font-size:22px;line-height:1.15;color:#311f24}.approval-request-meta{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.approval-request-meta span,.approval-request-meta strong{font-size:10px;border:1px solid #ebe7e8;background:#faf9fa;color:#766d70;border-radius:999px;padding:4px 8px}.approval-request-meta strong{background:#f8ecef;border-color:#efd4da;color:#970b25}.approval-workspace-body{display:grid;grid-template-columns:minmax(0,1fr) 360px;min-height:0;overflow:hidden;background:#f7f7f8}.approval-question-pane{min-width:0;min-height:0;overflow:auto;padding:16px 18px 24px}.approval-decision-pane{min-width:0;min-height:0;overflow:auto;border-left:1px solid #e8e5e6;background:#fff;padding:16px;display:flex;flex-direction:column;gap:12px}.approval-pane-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.approval-pane-head>div{display:flex;flex-direction:column;gap:2px}.approval-pane-head b{font-size:13px;color:#35292c}.approval-pane-head span{font-size:10px;color:#887f82}.approval-paper{border:1px solid #e4e0e2;border-radius:14px;background:#fff;padding:18px;box-shadow:0 4px 16px rgba(49,20,28,.04)}.approval-paper-head{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding-bottom:11px;border-bottom:1px solid #efeced}.approval-paper-stem{font-size:15px;line-height:1.6;color:#251f21;padding:16px 0 13px}.approval-paper-stem pre,.approval-paper-stem .rich-code,.approval-paper pre{max-width:100%;overflow:auto}.approval-answer-list{display:flex;flex-direction:column;gap:8px}.approval-answer-item{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:9px;align-items:start;border:1px solid #e7e3e4;border-radius:10px;padding:10px 11px;background:#fcfcfd}.approval-answer-item>b{color:#6d6266}.approval-answer-item>div{min-width:0;line-height:1.5}.approval-answer-item>span{font-size:9px;font-weight:800;border-radius:999px;padding:4px 7px;background:#f0eeee;color:#756b6e;white-space:nowrap}.approval-answer-item.correct{border-color:#b8dcc8;background:#f5fbf7}.approval-answer-item.correct>span{background:#dff3e7;color:#197044}.approval-answer-list.tf .approval-answer-item.wrong>span{background:#f6ecee;color:#9c1830}.approval-paper-explain{margin-top:13px;border-radius:10px;background:#fff8e9;border:1px solid #f0dfb7;padding:11px 12px}.approval-paper-explain>b{display:block;font-size:10px;text-transform:uppercase;color:#8b5b13;margin-bottom:5px}.approval-paper-explain>div{font-size:12px;line-height:1.5;color:#5b4b34}.approval-side-card{border:1px solid #e9e5e6;border-radius:12px;padding:13px;background:#fff}.approval-side-card.grow{display:flex;flex-direction:column;min-height:250px}.approval-side-title{margin-bottom:10px}.approval-side-title b,.approval-side-title span{display:block}.approval-side-title b{font-size:12px;color:#35292c}.approval-side-title span{font-size:9px;color:#8d8587;margin-top:2px;line-height:1.4}.approval-decision-pane .field{margin-bottom:10px}.approval-decision-pane .field:last-child{margin-bottom:0}.approval-decision-pane label{font-size:10px;font-weight:800;color:#544a4d;display:block;margin-bottom:5px}.approval-decision-pane select,.approval-decision-pane textarea{width:100%;border:1px solid #ded9db;border-radius:9px;background:#fff;padding:10px 11px;font:inherit}.approval-decision-pane textarea{min-height:135px;resize:vertical;line-height:1.45}.approval-flow-hint{margin-top:10px;padding:10px;border-radius:9px;background:#f8f4f5;color:#655a5d;font-size:9.5px;line-height:1.45}.approval-flow-hint svg{width:13px;height:13px;vertical-align:-2px;color:#970b25;margin-right:3px}.approval-workspace-footer{display:flex;justify-content:space-between;align-items:center;gap:14px;border-top:1px solid #e7e3e4;background:#fff;padding:12px 16px;box-shadow:0 -6px 18px rgba(43,22,27,.04)}.approval-footer-left,.approval-footer-right{display:flex;align-items:center;gap:8px}.approval-workspace-footer .btn{min-height:38px}.approval-workspace-footer .btn.primary{min-width:170px}.approval-workspace-footer .btn:disabled{opacity:.55;cursor:wait}
@media(max-width:1050px){.approval-workspace-body{grid-template-columns:minmax(0,1fr) 310px}.approval-toolbar-note{display:none}}
@media(max-width:820px){.modal.approval-workspace-wrap-v154{width:98vw;height:96vh;max-height:96vh}.approval-workspace-head{padding:12px 14px}.approval-workspace-title h2{font-size:18px}.approval-workspace-body{grid-template-columns:1fr;overflow:auto}.approval-question-pane,.approval-decision-pane{overflow:visible}.approval-decision-pane{border-left:0;border-top:1px solid #e8e5e6}.approval-workspace-footer{position:sticky;bottom:0;flex-direction:column;align-items:stretch}.approval-footer-left,.approval-footer-right{display:grid;grid-template-columns:1fr 1fr}.approval-footer-right .btn.primary{min-width:0}.approval-answer-item{grid-template-columns:24px minmax(0,1fr)}.approval-answer-item>span{grid-column:2;justify-self:start}}

/* V0.155 - trạng thái yêu cầu chỉnh sửa rõ ràng cho giáo viên */
.qb-mini-stats .changes{background:#fff1ed;border-color:#efc9bd;color:#98452c}.qb-mini-stats .changes b{color:#a63a1d}
.personal-bank-row.is-changes-requested{border-color:#e5ad9e!important;background:linear-gradient(90deg,#fff5f1 0,#fff 26%)!important;box-shadow:0 0 0 1px rgba(169,61,31,.03)!important}
.pb-change-request{margin-top:7px;padding:8px 9px;border:1px solid #efc8bd;border-radius:9px;background:#fff4f0;display:flex;align-items:center;justify-content:space-between;gap:10px;color:#7d3523}
.pb-change-request>div{display:flex;align-items:flex-start;gap:7px;min-width:0}.pb-change-request .ico{width:16px;height:16px;flex:0 0 auto;margin-top:1px;color:#aa3f22}.pb-change-request span{display:flex;flex-direction:column;gap:2px;min-width:0}.pb-change-request b{font-size:10px;color:#8d2f19}.pb-change-request small{font-size:9px;line-height:1.35;color:#835a50;white-space:normal}.pb-change-request .btn{flex:0 0 auto;border-color:#dc9b88;background:#fff;color:#8d2f19;font-weight:850}
@media(max-width:760px){.pb-change-request{align-items:flex-start;flex-direction:column}.pb-change-request .btn{align-self:flex-end}}

/* V0.157 - teacher personal bank status statistics */
.qb-mini-stats .rejected{background:#fff0f1;border-color:#efc5ca;color:#96303b}.qb-mini-stats .rejected b{color:#a61125}
.qb-mini-stats .pb-stat-filter{cursor:pointer;transition:.15s ease;user-select:none}.qb-mini-stats .pb-stat-filter:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(80,20,32,.09)}

/* V0.159 - tối ưu Ngân hàng cá nhân và trình thêm câu hỏi */
.personal-bank-head-v159{margin-bottom:6px!important;min-height:40px!important}.personal-bank-head-v159 h1{font-size:22px!important}.personal-bank-head-v159 .actions{gap:6px!important}.personal-bank-head-v159 .actions .btn{min-height:34px;padding:7px 10px!important}
.personal-bank-toolbar-v159{padding:7px 8px!important;margin-bottom:6px!important;border-radius:10px!important;box-shadow:none!important}.personal-bank-toolbar-v159 .qb-search,.personal-bank-toolbar-v159 select{height:35px!important}.personal-bank-selection-v159{padding:8px 10px!important;margin-bottom:6px!important;min-height:44px}.personal-bank-selection-v159>div:first-child{display:flex;align-items:center}.personal-bank-selection-v159 .qb-selection-actions{gap:6px}
.personal-bank-row{min-height:68px!important;padding:7px 8px!important}.personal-bank-row .qb-meta{margin-bottom:3px!important}.personal-bank-row .qb-stem{font-size:10.5px!important;line-height:1.3!important}.personal-bank-row .qb-row-info{margin-top:3px!important}.personal-bank-row .qb-actions-v41{gap:3px!important}.personal-bank-empty-v159{padding:26px!important}
.personal-question-editor-v159 .qb-editor-head{padding:13px 18px 10px!important}.personal-question-editor-v159 .qb-editor-v2-body{grid-template-columns:180px minmax(0,1fr)}.personal-question-editor-v159 .qb-editor-nav{padding:9px;gap:4px}.personal-question-editor-v159 .qb-editor-nav>button{padding:8px;grid-template-columns:28px minmax(0,1fr);gap:7px}.personal-question-editor-v159 .qb-editor-nav>button>span{width:27px;height:27px}.personal-question-editor-v159 .qb-editor-workspace{padding:14px 18px 20px}.personal-question-editor-v159 .qe-pane-head{margin-bottom:9px}.personal-question-editor-v159 .qe-simple-card{padding:13px}.personal-question-editor-v159 .qb-editor-footer{padding:9px 18px!important}.qb-step-footer{font-size:10px;color:#7b818a;font-weight:800}.personal-question-editor-v159 .qb-editor-footer>div:last-child{display:flex;gap:6px}
@media(max-width:900px){.personal-question-editor-v159 .qb-editor-v2-body{grid-template-columns:1fr}.personal-question-editor-v159 .qb-editor-nav{grid-template-columns:repeat(4,1fr)}}

/* V0.160 - nguồn câu hỏi thống nhất cho các hoạt động */
.source-step-v160{display:flex;flex-direction:column;gap:10px;min-width:0}
.source-mode-tabs-v160{display:flex;flex-wrap:wrap;gap:6px;padding:4px;border:1px solid #e5e7ea;border-radius:11px;background:#f7f8f9}
.source-mode-tabs-v160 .tab,.source-mode-tabs-v160 button{min-height:34px;padding:7px 11px;border:1px solid transparent;border-radius:8px;background:transparent;color:#69717b;font-size:9px;font-weight:800;cursor:pointer;transition:.15s ease}
.source-mode-tabs-v160 .tab:hover,.source-mode-tabs-v160 button:hover{background:#fff;color:#6f1327}.source-mode-tabs-v160 .tab.active,.source-mode-tabs-v160 button.active{background:#fff;border-color:#d9c7cc;color:#761329;box-shadow:0 2px 9px rgba(85,18,33,.07)}
.source-mixed-v160{padding:12px!important;border:1px solid #e4e6e9!important;border-radius:12px!important;background:#fbfcfd!important}
.source-mixed-head-v160{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:9px;padding-bottom:9px;border-bottom:1px solid #eceef0}.source-mixed-head-v160>div:first-child{min-width:0}.source-mixed-head-v160 b{display:block;font-size:11px;color:#303740}.source-mixed-head-v160 span{display:block;margin-top:2px;font-size:8px;line-height:1.4;color:#8b929b}
.source-mixed-total-v160{flex:0 0 auto;display:flex;align-items:center;gap:7px;border:1px solid #e3d2d7;border-radius:9px;background:#fff;padding:6px 9px;color:#7d172d}.source-mixed-total-v160 span{font-size:7.5px;margin:0;color:#8c7c81}.source-mixed-total-v160 b{font-size:13px;color:#781228}
.source-dual-v160,.tournament-source-dual-v160{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;min-width:0}
.source-bank-panel-v160{min-width:0;border:1px solid #e4e7ea;border-radius:10px;background:#fff;padding:9px;display:flex;flex-direction:column;gap:7px}
.source-bank-title-v160{display:flex;align-items:center;justify-content:space-between;gap:9px}.source-bank-title-v160 b{font-size:9.5px;color:#333b45}.source-bank-title-v160 small{font-size:7.5px;font-weight:800;color:#7c142a;background:#f8ecef;border-radius:20px;padding:3px 7px;white-space:nowrap}
.source-bank-search-v160{width:100%;height:34px;border:1px solid #dde1e5;border-radius:8px;background:#fbfcfd;padding:0 9px;font-size:9px;color:#3e4650;outline:none}.source-bank-search-v160:focus{border-color:#b88794;background:#fff;box-shadow:0 0 0 2px rgba(126,17,40,.06)}
.source-bank-list-v160{min-height:170px;max-height:300px;overflow:auto;border-top:1px solid #f0f1f2;padding-top:5px}.source-bank-list-v160 .checkitem{padding:6px 5px!important;border-radius:7px}.source-bank-list-v160 .checkitem:hover{background:#faf6f7}
.source-default-options-v160{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:9px 10px;border:1px solid #e7e9ec;border-radius:10px;background:#fafbfc}.source-default-options-v160 label{display:flex;align-items:center;gap:7px;min-width:0;font-size:8.5px;color:#626b75}.source-default-options-v160 input[type="number"]{height:32px;min-width:0;border:1px solid #dde1e5;border-radius:8px;padding:0 8px;background:#fff}
.tournament-source-dual-v160 .source-bank-list-v160{max-height:330px}.source-step-v160 .builder-card{margin:0}
@media(max-width:900px){.source-dual-v160,.tournament-source-dual-v160{grid-template-columns:1fr}.source-bank-list-v160{max-height:230px}.source-default-options-v160{grid-template-columns:1fr}.source-mixed-head-v160{align-items:stretch}.source-mixed-total-v160{align-self:flex-start}}
@media(max-width:620px){.source-mode-tabs-v160{display:grid;grid-template-columns:1fr 1fr}.source-mode-tabs-v160 .tab,.source-mode-tabs-v160 button{width:100%;padding:7px 6px}.source-mixed-head-v160{flex-direction:column}.source-bank-panel-v160{padding:7px}.source-bank-list-v160{min-height:130px;max-height:200px}}

/* V0.161 — tách cách tạo bộ câu khỏi nguồn ngân hàng */
.source-method-tabs-v161{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px}
.source-method-tabs-v161 .mode-tab{min-height:54px;padding:12px 16px;border-radius:13px;font-weight:800}
.source-choice-row-v161{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:10px 0 16px;padding:11px 14px;border:1px solid #eadfe1;border-radius:13px;background:#fff}
.source-choice-row-v161>span{font-size:13px;font-weight:800;color:#5d4e52;white-space:nowrap}
.source-choice-row-v161>div{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.source-choice-v161{appearance:none;border:1px solid #ded3d6;background:#f8f6f7;color:#5c5356;border-radius:10px;padding:9px 13px;font:inherit;font-size:13px;font-weight:750;cursor:pointer;transition:.15s ease}
.source-choice-v161:hover{border-color:#b88992;background:#fff}
.source-choice-v161.active{border-color:#a20b24;background:#fff1f3;color:#8f071e;box-shadow:0 0 0 1px rgba(162,11,36,.04) inset}
.tour-bank-note-v161{margin:0 0 14px;padding:10px 13px;border-radius:11px;background:#f8f6f7;color:#71666a;font-size:12px;line-height:1.45}
@media(max-width:820px){.source-choice-row-v161{align-items:flex-start;flex-direction:column;gap:9px}.source-choice-row-v161>div{justify-content:flex-start}.source-method-tabs-v161{grid-template-columns:1fr!important}}

/* V0.163 — tối giản vùng chọn nguồn câu hỏi, ưu tiên không gian làm đề */
.source-method-tabs-v161{gap:6px!important;margin:0 0 6px!important}
.source-method-tabs-v161 .mode-tab{min-height:38px!important;padding:8px 12px!important;border-radius:10px!important;font-size:12px!important}
.source-choice-row-v161{justify-content:flex-start!important;gap:8px!important;margin:4px 0 8px!important;padding:0!important;border:0!important;background:transparent!important}
.source-choice-row-v161>span{display:none!important}
.source-choice-row-v161>div{justify-content:flex-start!important;gap:6px!important}
.source-choice-v161{padding:7px 10px!important;border-radius:9px!important;font-size:11px!important}
.builder-question-config{padding:11px!important}
.builder-question-config .builder-subtitle{margin:7px 0!important}
.builder-question-config .builder-subtitle>span,.team-exam-config .builder-subtitle>span,.online-source-title p,.builder-pane[data-pane="3"] .builder-section-title p,.tour-builder-pane[data-pane="3"] .tour-section-heading>span,.scope-help,.tour-bank-note-v161,.source-mixed-head-v160>div:first-child>span,.personal-source-head-v151 span,.quota-toolbar>div>span,.matrix-help>div>span{display:none!important}
.builder-question-config .builder-divider{margin:7px 0!important}
.auto-strategy-tabs.three{gap:6px!important;margin-bottom:8px!important}
.auto-strategy-tabs.three .auto-strategy{min-height:40px!important;padding:8px 9px!important}
.auto-strategy-tabs.three .auto-strategy small{display:none!important}
.auto-strategy-tabs.three .auto-strategy b{font-size:10px!important}
.question-count-grid{gap:7px!important}
.question-count-box{padding:9px!important}
.quota-difficulty-wrap{margin-bottom:4px!important}
.scope-chips{gap:5px!important}
.scope-chip span{padding:6px 8px!important}
.source-mixed-v160{padding:8px!important}
.source-mixed-head-v160{margin-bottom:6px!important;padding-bottom:6px!important}
.source-bank-panel-v160{padding:7px!important;gap:5px!important}
.source-bank-search-v160{height:31px!important}
.source-bank-list-v160{min-height:210px!important;max-height:360px!important}
.personal-source-card-v151{padding:9px!important}
.personal-source-head-v151{margin-bottom:6px!important}
.manual-toolbar{margin-bottom:6px!important}
.manual-toolbar .field label{display:none!important}
.manual-toolbar .field input{height:33px!important}
.manual-question-list{max-height:390px!important}
.team-exam-config>.builder-subtitle:first-child{margin-bottom:5px!important}
.tour-builder-pane[data-pane="3"] .tour-section-block{padding-top:10px!important}
.tour-builder-pane[data-pane="3"] .source-default-options-v160{margin-top:6px!important}
@media(max-width:820px){.source-method-tabs-v161{grid-template-columns:repeat(3,minmax(0,1fr))!important}.source-method-tabs-v161 .mode-tab{width:auto!important;padding:8px 5px!important}.source-bank-list-v160{min-height:150px!important;max-height:250px!important}}

/* ================= V0.164 · Kết quả Đấu trường theo trận ================= */
.arena-results-toolbar{display:grid;grid-template-columns:minmax(280px,1fr) 180px 160px auto;gap:10px;align-items:center;margin:0 0 14px;padding:12px 14px;background:#fff;border:1px solid #eadde1;border-radius:14px;box-shadow:0 5px 18px rgba(87,9,28,.05)}
.arena-results-toolbar select,.arena-results-toolbar input{height:42px;border:1px solid #ddcbd0;border-radius:10px;background:#fff;color:#26171c;font:inherit}
.arena-results-toolbar select{padding:0 34px 0 12px}.arena-results-toolbar>span{font-weight:800;color:#761127;white-space:nowrap;text-align:right}
.arena-results-search{display:flex;align-items:center;gap:9px}.arena-results-search .ico{width:18px;height:18px;color:#8e6a73}.arena-results-search input{width:100%;padding:0 12px}
.arena-results-list{display:flex;flex-direction:column;gap:10px}
.arena-result-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;background:#fff;border:1px solid #eadde1;border-radius:15px;padding:14px 15px;box-shadow:0 4px 16px rgba(87,9,28,.04)}
.arena-result-row:hover{border-color:#d4aab4;box-shadow:0 7px 22px rgba(87,9,28,.08)}
.arena-result-main{min-width:0}.arena-result-meta{display:flex;align-items:baseline;gap:10px;margin-bottom:10px;min-width:0}.arena-result-meta>b{font-size:15px;color:#28171c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.arena-result-meta>span{font-size:12px;color:#8a7379;white-space:nowrap}
.arena-result-versus{display:grid;grid-template-columns:minmax(180px,1fr) 180px minmax(180px,1fr);align-items:center;gap:12px}.arena-result-versus.team{grid-template-columns:minmax(150px,1fr) 190px minmax(150px,1fr)}
.arena-result-person{display:flex;align-items:center;gap:9px;min-width:0;padding:7px 9px;border-radius:10px}.arena-result-person.right{justify-content:flex-end}.arena-result-person>div{min-width:0}.arena-result-person b,.arena-result-team b{display:block;color:#2d1b20;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.arena-result-person small,.arena-result-team small{display:block;color:#8c747a;font-size:12px;margin-top:2px}.arena-result-person.winner,.arena-result-team.winner{background:#fff6f8}.arena-result-person.winner b,.arena-result-team.winner b{color:#8c0b22}
.arena-result-team.right{text-align:right}.arena-result-score{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;justify-items:center;column-gap:8px}.arena-result-score strong{font-size:25px;line-height:1;color:#7f0a20}.arena-result-score>span{color:#a58d93}.arena-result-score small{grid-column:1/-1;margin-top:5px;color:#836a70;font-size:11px}
.arena-result-actions{display:flex;gap:7px;align-items:center;white-space:nowrap}.arena-result-actions .btn{min-height:36px;text-decoration:none}
.arena-results-empty{padding:42px 20px;text-align:center;background:#fff;border:1px dashed #dbc9ce;border-radius:14px;color:#8b7278}

.arena-result-detail-backdrop,.arena-compare-backdrop{z-index:1200;background:rgba(25,8,13,.6);backdrop-filter:blur(3px)}
.arena-result-detail-card{width:min(1180px,96vw);height:min(820px,92vh);max-width:none;display:flex;flex-direction:column;padding:0;overflow:hidden;border-radius:18px;background:#f8f5f6}
.arena-result-detail-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;background:#fff;border-bottom:1px solid #eadde1}.arena-result-detail-head h2{margin:0 0 4px;font-size:21px;color:#321820}.arena-result-detail-head p{margin:0;color:#867077;font-size:13px}.arena-result-detail-head .actions{display:flex;align-items:center;gap:8px}.arena-result-detail-head .review-close{position:static}
.arena-result-detail-scoreline{display:grid;grid-template-columns:1fr 180px 1fr;gap:22px;align-items:center;padding:22px 28px;background:#fff}.arena-result-detail-scoreline section{text-align:center;padding:15px;border:1px solid transparent;border-radius:14px}.arena-result-detail-scoreline section.winner{border-color:#e4bcc6;background:#fff7f9}.result-detail-avatar{width:62px;height:62px;margin:0 auto 9px}.arena-result-detail-scoreline h3{margin:3px 0 2px;font-size:18px}.arena-result-detail-scoreline section small{color:#8b747a}.arena-result-detail-scoreline section strong{display:block;margin-top:8px;font-size:34px;color:#800b22}.arena-result-detail-scoreline>div{text-align:center}.arena-result-detail-scoreline>div>span{display:block;font-size:14px;font-weight:900;color:#9b858b;letter-spacing:1px}.arena-result-detail-scoreline>div>b{display:block;margin-top:5px;color:#7d0a20}.arena-result-detail-scoreline>div>small{display:block;color:#8a747a;margin-top:3px}
.arena-result-detail-body{padding:0 22px 22px;overflow:auto}.arena-result-compare-table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid #eadde1;border-radius:13px;overflow:hidden}.arena-result-compare-table th,.arena-result-compare-table td{padding:11px 14px;border-bottom:1px solid #f0e6e8;text-align:center}.arena-result-compare-table tbody tr:last-child th,.arena-result-compare-table tbody tr:last-child td{border-bottom:0}.arena-result-compare-table thead th{background:#faf7f8;color:#6e555c;font-size:12px}.arena-result-compare-table tbody th{text-align:left;color:#6d555c;font-weight:700;width:24%}.arena-result-compare-table tbody td{font-weight:800;color:#2c1a1f}
.arena-result-detail-buttons{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;margin-top:14px}.arena-result-detail-buttons .btn{justify-content:center;min-height:42px}
.arena-result-team-summary{display:flex;gap:28px;padding:16px 22px;background:#fff;border-bottom:1px solid #eee3e6}.arena-result-team-summary>div{display:flex;align-items:baseline;gap:7px}.arena-result-team-summary span{color:#8b747a;font-size:12px}.arena-result-team-summary b{color:#6f0b1e}
.arena-result-team-grid{display:grid;grid-template-columns:1fr 60px 1fr;align-items:start;gap:14px;padding:20px;overflow:auto}.arena-result-detail-team{background:#fff;border:1px solid #eadde1;border-radius:14px;overflow:hidden}.arena-result-detail-team.winner{border-color:#dca5b2}.arena-result-team-title{display:flex;align-items:center;justify-content:space-between;padding:15px 16px;border-bottom:1px solid #efe5e7}.arena-result-team-title small{font-size:10px;color:#9a8389;font-weight:800}.arena-result-team-title h3{margin:2px 0 0}.arena-result-team-title strong{font-size:28px;color:#7f0a20}.arena-result-member-list>div{display:grid;grid-template-columns:minmax(0,1fr) 70px auto;align-items:center;gap:8px;padding:10px 13px;border-bottom:1px solid #f2e9eb}.arena-result-member-list>div:last-child{border-bottom:0}.arena-result-member-list>div>span{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:8px;align-items:center}.arena-result-member-list>div>span .mini-avatar{grid-row:1/3}.arena-result-member-list>div>span b,.arena-result-member-list>div>span small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.arena-result-member-list>div>span small{font-size:11px;color:#8e777d}.arena-result-member-list em{font-style:normal;font-weight:900;text-align:right;color:#7e0a20}.arena-result-detail-vs{align-self:center;text-align:center;font-weight:1000;color:#9a8389;padding-top:80px}

.arena-compare-card{width:min(1240px,97vw);height:min(900px,94vh);max-width:none;padding:0;display:flex;flex-direction:column;overflow:hidden;background:#f8f5f6;border-radius:18px}.arena-compare-summary{display:grid;grid-template-columns:1fr 70px 1fr;align-items:center;padding:13px 22px;background:#fff;border-bottom:1px solid #eadde1}.arena-compare-summary>div{display:flex;align-items:center;justify-content:center;gap:10px}.arena-compare-summary>div strong{font-size:25px;color:#7e0a20}.arena-compare-summary>span{text-align:center;font-weight:900;color:#a18b90}.arena-compare-body{padding:15px 20px 24px;overflow:auto}.arena-compare-question{background:#fff;border:1px solid #eadde1;border-radius:13px;margin-bottom:11px;overflow:hidden}.arena-compare-qhead{display:flex;justify-content:space-between;align-items:center;padding:10px 13px;border-bottom:1px solid #f0e7e9}.arena-compare-qhead span{font-size:11px;color:#8c747a}.arena-compare-stem{padding:13px 15px;line-height:1.55}.arena-compare-answers{display:grid;grid-template-columns:1fr 150px 1fr;border-top:1px solid #f0e7e9}.arena-compare-answers>div{padding:10px 13px;text-align:center;border-right:1px solid #f0e7e9}.arena-compare-answers>div:last-child{border-right:0}.arena-compare-answers small{display:block;color:#8d777d;margin-bottom:4px}.arena-compare-answers b{font-size:15px}.arena-compare-answers .correct{background:#f2fbf4}.arena-compare-answers .partial{background:#fff9ec}.arena-compare-answers .wrong{background:#fff3f4}.arena-compare-answers .correct-answer{background:#f8f5f6;color:#6f0b1e}

@media (max-width:980px){.arena-results-toolbar{grid-template-columns:1fr 1fr}.arena-results-toolbar>span{text-align:left}.arena-result-row{grid-template-columns:1fr}.arena-result-actions{justify-content:flex-end}.arena-result-versus,.arena-result-versus.team{grid-template-columns:1fr 130px 1fr}.arena-result-detail-scoreline{grid-template-columns:1fr 120px 1fr}.arena-result-team-grid{grid-template-columns:1fr}.arena-result-detail-vs{padding:0}.arena-result-detail-buttons{grid-template-columns:1fr}.arena-result-team-grid>.arena-result-detail-vs{display:none}}
@media (max-width:680px){.arena-results-toolbar{grid-template-columns:1fr}.arena-result-meta{display:block}.arena-result-meta>span{display:block;margin-top:4px}.arena-result-versus,.arena-result-versus.team{grid-template-columns:1fr}.arena-result-score{order:2}.arena-result-person:last-child,.arena-result-team.right{order:3}.arena-result-team.right{text-align:left}.arena-result-detail-card,.arena-compare-card{width:100vw;height:100vh;border-radius:0}.arena-result-detail-head{padding:13px 14px}.arena-result-detail-head .actions>a{display:none}.arena-result-detail-scoreline{grid-template-columns:1fr 80px 1fr;padding:14px 8px;gap:4px}.result-detail-avatar{width:48px;height:48px}.arena-result-detail-scoreline h3{font-size:14px}.arena-result-detail-scoreline section strong{font-size:26px}.arena-result-detail-body{padding:0 8px 16px}.arena-result-compare-table th,.arena-result-compare-table td{padding:9px 7px;font-size:12px}.arena-compare-answers{grid-template-columns:1fr}.arena-compare-answers>div{border-right:0;border-bottom:1px solid #f0e7e9}.arena-compare-summary{grid-template-columns:1fr 42px 1fr;padding:10px}.arena-result-member-list>div{grid-template-columns:1fr 50px}.arena-result-member-list button{grid-column:1/-1}}

/* ================= V0.165 · Tối ưu chi tiết kết quả đối đầu ================= */
.arena-result-detail-card{
  width:min(980px,94vw);
  height:auto;
  max-height:88vh;
  border-radius:18px;
  background:#f7f4f5;
}
.arena-result-detail-head{
  padding:15px 18px;
  gap:12px;
}
.arena-result-detail-head h2{
  font-size:20px;
  line-height:1.25;
}
.arena-result-detail-head p{
  font-size:12px;
  line-height:1.45;
}
.arena-result-detail-scoreline{
  grid-template-columns:minmax(0,1fr) 138px minmax(0,1fr);
  gap:14px;
  padding:18px 20px 16px;
  background:#fff;
}
.arena-result-detail-scoreline section{
  position:relative;
  min-width:0;
  padding:14px 14px 13px;
  border:1px solid #e7dde0;
  border-radius:14px;
  background:#fff;
  box-shadow:0 3px 12px rgba(67,18,30,.035);
}
.arena-result-detail-scoreline section.winner{
  border-color:#c87587;
  background:#fff8f9;
  box-shadow:0 5px 16px rgba(127,10,32,.07);
}
.arena-result-detail-scoreline section.winner::after{
  content:'THẮNG';
  position:absolute;
  top:10px;
  right:10px;
  padding:3px 7px;
  border-radius:999px;
  background:#8a1028;
  color:#fff;
  font-size:8px;
  font-weight:900;
  letter-spacing:.05em;
}
.result-detail-avatar{
  width:76px;
  height:76px;
  margin:0 auto 9px;
  border-radius:50%;
  overflow:hidden;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  background:#f4e7ea;
  color:#8a1028;
  border:2px solid #eee1e4;
  font-size:22px;
  font-weight:900;
}
.result-detail-avatar img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  border-radius:50%;
}
.arena-result-detail-scoreline section.winner .result-detail-avatar{
  border-color:#b64d63;
  box-shadow:0 0 0 3px #f8e6ea;
}
.arena-result-detail-scoreline h3{
  max-width:100%;
  margin:3px 0 2px;
  font-size:16px;
  line-height:1.25;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.arena-result-detail-scoreline section small{
  display:block;
  min-height:17px;
  font-size:11px;
  color:#87737a;
}
.arena-result-detail-scoreline section strong{
  display:block;
  margin-top:6px;
  font-size:31px;
  line-height:1;
  color:#870e27;
}
.arena-result-detail-scoreline>div{
  align-self:center;
  text-align:center;
  padding:4px 0;
}
.arena-result-detail-scoreline>div>span{
  width:46px;
  height:46px;
  margin:0 auto 8px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#f4ecee;
  color:#7f1026;
  font-size:13px;
  font-weight:950;
  letter-spacing:.06em;
}
.arena-result-detail-scoreline>div>b{
  display:block;
  margin:0;
  color:#7d0a20;
  font-size:13px;
  line-height:1.3;
}
.arena-result-detail-scoreline>div>small{
  margin-top:3px;
  font-size:10.5px;
  color:#8a747a;
}
.arena-result-detail-body{
  padding:0 20px 18px;
  overflow:auto;
}
.arena-result-compare-table{
  border-radius:12px;
}
.arena-result-compare-table th,.arena-result-compare-table td{
  padding:9px 12px;
}
.arena-result-detail-buttons{
  gap:8px;
  margin-top:10px;
}
.arena-result-detail-buttons .btn{
  min-height:39px;
}

/* Danh sách kết quả: avatar luôn tròn và gọn */
.arena-result-person .mini-avatar,
.arena-result-member-list .mini-avatar{
  border-radius:50%;
  overflow:hidden;
}
.arena-result-person .mini-avatar img,
.arena-result-member-list .mini-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:50%;
}

@media (max-width:680px){
  .arena-result-detail-card{
    width:100vw;
    max-height:none;
    height:100vh;
    border-radius:0;
  }
  .arena-result-detail-scoreline{
    grid-template-columns:minmax(0,1fr) 66px minmax(0,1fr);
    gap:6px;
    padding:12px 8px;
  }
  .arena-result-detail-scoreline section{
    padding:10px 7px 9px;
  }
  .arena-result-detail-scoreline section.winner::after{
    top:6px;
    right:6px;
    font-size:7px;
    padding:2px 5px;
  }
  .result-detail-avatar{
    width:56px;
    height:56px;
    margin-bottom:7px;
    font-size:17px;
  }
  .arena-result-detail-scoreline h3{
    font-size:12px;
  }
  .arena-result-detail-scoreline section strong{
    font-size:25px;
  }
  .arena-result-detail-scoreline>div>span{
    width:38px;
    height:38px;
    margin-bottom:6px;
    font-size:11px;
  }
  .arena-result-detail-scoreline>div>b{
    font-size:10px;
  }
  .arena-result-detail-scoreline>div>small{
    font-size:9px;
  }
  .arena-result-detail-body{
    padding:0 8px 14px;
  }
}


/* ================= V0.166 · Nút đóng nổi bật ở Kết quả Đấu trường ================= */
.arena-result-detail-head{
  position:relative;
  z-index:6;
}
.arena-result-detail-head .actions{
  flex:0 0 auto;
}
.arena-result-close-btn{
  min-width:92px;
  height:42px;
  padding:0 13px 0 10px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:1px solid #79091f;
  border-radius:11px;
  background:#8b1028;
  color:#fff;
  box-shadow:0 5px 14px rgba(123,10,31,.18);
  font:inherit;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
  white-space:nowrap;
  transition:background .15s ease,transform .15s ease,box-shadow .15s ease;
}
.arena-result-close-btn:hover{
  background:#6f081c;
  box-shadow:0 7px 18px rgba(123,10,31,.24);
  transform:translateY(-1px);
}
.arena-result-close-btn:active{
  transform:translateY(0);
}
.arena-result-close-btn:focus-visible{
  outline:3px solid rgba(139,16,40,.22);
  outline-offset:2px;
}
.arena-result-close-x{
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
  border-radius:7px;
  background:rgba(255,255,255,.14);
  font-size:22px;
  font-weight:500;
  line-height:1;
}
.arena-result-close-btn.compact-close{
  min-width:86px;
  height:40px;
}
@media (max-width:680px){
  .arena-result-detail-head{
    align-items:flex-start;
  }
  .arena-result-detail-head .actions{
    gap:6px;
  }
  .arena-result-close-btn{
    min-width:78px;
    height:38px;
    padding:0 9px;
  }
  .arena-result-close-x{
    width:21px;
    height:21px;
    font-size:19px;
  }
}

/* ================= V0.167 · Kết quả Giải đấu theo sơ đồ nhánh ================= */
.arena-tournament-result-row{
  display:grid;
  grid-template-columns:54px minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  padding:15px 17px;
  background:#fff;
  border:1px solid #eadde1;
  border-radius:15px;
  box-shadow:0 4px 14px rgba(72,16,29,.035);
}
.arena-tournament-result-row:hover{border-color:#d6aeb8;box-shadow:0 7px 22px rgba(87,9,28,.07)}
.arena-tournament-result-icon{
  width:46px;height:46px;border-radius:14px;display:grid;place-items:center;
  background:#fff1f4;color:#8a1028;border:1px solid #efd5dc;
}
.arena-tournament-result-icon svg{width:22px;height:22px}
.arena-tournament-result-main{min-width:0}
.arena-tournament-result-title{display:flex;align-items:center;justify-content:space-between;gap:18px;min-width:0}
.arena-tournament-result-title>div:first-child{min-width:0}
.arena-tournament-result-title>div:first-child>span{display:block;font-size:9px;letter-spacing:.08em;font-weight:900;color:#a4737e}
.arena-tournament-result-title h3{margin:3px 0 4px;color:#341a21;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.arena-tournament-result-title p{margin:0;color:#89747a;font-size:11.5px}
.arena-tournament-podium,.arena-tournament-progress{min-width:180px;text-align:right}
.arena-tournament-podium span,.arena-tournament-progress span{display:block;color:#9a7c84;font-size:9px;text-transform:uppercase;font-weight:900;letter-spacing:.06em}
.arena-tournament-podium b,.arena-tournament-progress b{display:block;margin-top:2px;color:#7f0a20;font-size:13px}
.arena-tournament-podium b svg{width:14px;height:14px;vertical-align:-2px}
.arena-tournament-podium small,.arena-tournament-progress small{display:block;margin-top:2px;color:#8b777d;font-size:10.5px}
.arena-tournament-result-actions{display:flex;gap:7px;align-items:center;white-space:nowrap}
.arena-tournament-result-actions .btn{text-decoration:none;min-height:36px}

.arena-tournament-result-backdrop{z-index:1190;background:rgba(25,8,13,.64);backdrop-filter:blur(3px)}
.arena-tournament-result-card{
  width:min(1400px,97vw);
  height:min(900px,94vh);
  max-width:none;
  padding:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border-radius:18px;
  background:#f7f4f5;
}
.arena-tournament-result-head{flex:0 0 auto}
.arena-tournament-result-summary{
  flex:0 0 auto;
  min-height:92px;
  padding:13px 20px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  background:#fff;
  border-bottom:1px solid #eadde1;
}
.arena-tournament-champion{display:flex;align-items:stretch;gap:9px}
.arena-tournament-champion>div{
  min-width:210px;
  padding:9px 13px;
  display:grid;
  grid-template-columns:38px 1fr;
  grid-template-rows:auto auto;
  column-gap:9px;
  align-items:center;
  border:1px solid #e2c78a;
  border-radius:12px;
  background:#fffaf0;
}
.arena-tournament-champion>div>span{grid-row:1/3;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#f8e7b7;color:#835f07;font-weight:950}
.arena-tournament-champion>div>span svg{width:19px;height:19px}
.arena-tournament-champion>div>small{font-size:8px;font-weight:950;letter-spacing:.08em;color:#98720f}
.arena-tournament-champion>div>b{font-size:13px;color:#604504;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.arena-tournament-champion>div.runner{border-color:#dddde2;background:#fafafa}
.arena-tournament-champion>div.runner>span{background:#e8e8eb;color:#64646e}
.arena-tournament-champion>div.runner>small{color:#777780}.arena-tournament-champion>div.runner>b{color:#3e3e45}
.arena-tournament-running-summary{display:flex;align-items:baseline;gap:8px}.arena-tournament-running-summary b{font-size:28px;color:#7f0a20}.arena-tournament-running-summary span{font-size:12px;color:#8b747a}
.arena-tournament-result-note{text-align:right}.arena-tournament-result-note b{display:block;color:#43242c;font-size:13px}.arena-tournament-result-note span{display:block;margin-top:3px;color:#8a747a;font-size:11px}

.arena-tournament-bracket{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  display:flex;
  align-items:stretch;
  gap:0;
  padding:18px 20px 24px;
  background:#f8f5f6;
}
.arena-tournament-round{
  min-width:300px;
  flex:1 0 300px;
  display:flex;
  flex-direction:column;
}
.arena-tournament-round>header{display:flex;justify-content:space-between;align-items:center;padding:0 8px 10px}
.arena-tournament-round>header b{font-size:13px;color:#7d0a20}.arena-tournament-round>header span{font-size:10px;color:#968087}
.arena-tournament-round-slots{flex:1;display:flex;flex-direction:column;justify-content:space-around;gap:16px;padding:4px 8px}
.arena-tournament-round-arrow{width:32px;flex:0 0 32px;display:grid;place-items:center;color:#c9aeb5;font-size:31px;font-weight:300}
.arena-tournament-slot{
  position:relative;
  padding:10px;
  border:1px solid #e2d7da;
  border-radius:13px;
  background:#fff;
  box-shadow:0 4px 13px rgba(66,14,27,.035);
}
.arena-tournament-slot.clickable{cursor:pointer;transition:.15s ease}
.arena-tournament-slot.clickable:hover,.arena-tournament-slot.clickable:focus-visible{border-color:#bd7585;box-shadow:0 7px 18px rgba(100,15,36,.09);transform:translateY(-1px);outline:none}
.arena-tournament-slot-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px;color:#987983;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.arena-tournament-slot-head b{font-size:8px;color:#43805d}.arena-tournament-slot-head b.live{color:#9a1028}
.arena-tournament-player{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:8px;align-items:center;min-height:47px;padding:6px 7px;border-radius:9px;background:#f8f7f8}
.arena-tournament-player.winner{background:#fff3f6;box-shadow:inset 0 0 0 1px #e8bbc5}
.arena-tournament-player.empty{opacity:.55}
.arena-tournament-avatar{width:34px;height:34px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:#f1e2e6;color:#86102a;font-size:11px;font-weight:900}
.arena-tournament-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.arena-tournament-player>div{min-width:0}.arena-tournament-player b{display:block;color:#2e2024;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.arena-tournament-player small{display:block;margin-top:1px;color:#948087;font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.arena-tournament-player strong{font-size:16px;color:#7f0a20}.arena-tournament-player em{position:absolute;right:6px;bottom:2px;display:flex;align-items:center;gap:2px;font-style:normal;font-size:7.5px;font-weight:900;color:#8b1028}.arena-tournament-player em svg{width:9px;height:9px}
.arena-tournament-vs{text-align:center;height:16px;line-height:16px;color:#c2a9b0;font-size:8px;font-weight:950}
.arena-tournament-slot-open{margin-top:7px;padding-top:7px;border-top:1px solid #f1e9eb;display:flex;align-items:center;justify-content:center;gap:5px;color:#7f0a20;font-size:9px;font-weight:850}.arena-tournament-slot-open svg{width:12px;height:12px}

@media (max-width:980px){
  .arena-tournament-result-row{grid-template-columns:46px minmax(0,1fr)}
  .arena-tournament-result-actions{grid-column:1/-1;justify-content:flex-end}
  .arena-tournament-result-title{align-items:flex-start}.arena-tournament-podium,.arena-tournament-progress{min-width:145px}
  .arena-tournament-result-summary{align-items:flex-start}.arena-tournament-result-note{display:none}
}
@media (max-width:680px){
  .arena-tournament-result-row{grid-template-columns:1fr;padding:13px}.arena-tournament-result-icon{display:none}
  .arena-tournament-result-title{display:block}.arena-tournament-podium,.arena-tournament-progress{text-align:left;margin-top:9px;min-width:0}
  .arena-tournament-result-actions{justify-content:stretch;display:grid;grid-template-columns:1fr 1fr}.arena-tournament-result-actions .btn{justify-content:center}
  .arena-tournament-result-card{width:100vw;height:100vh;max-height:none;border-radius:0}
  .arena-tournament-result-head .actions>a{display:none}
  .arena-tournament-result-summary{min-height:0;padding:10px 12px}.arena-tournament-champion{width:100%;display:grid;grid-template-columns:1fr 1fr}.arena-tournament-champion>div{min-width:0}
  .arena-tournament-bracket{padding:12px;gap:0}.arena-tournament-round{min-width:270px;flex-basis:270px}.arena-tournament-round-arrow{width:18px;flex-basis:18px}
}

/* ================= V0.168 · Vòng đời trận đấu ================= */
.badge.archived{background:#f1eef0;color:#66575c;border:1px solid #d9cfd3}
.match-row-actions{align-items:center;flex-wrap:wrap}.match-row-actions .manageM{white-space:nowrap}
.match-life-wrap{width:min(640px,calc(100vw - 28px));padding:0;overflow:hidden}
.match-life-modal{background:#fff}.match-life-modal .qb-editor-head{padding:18px 20px;border-bottom:1px solid #eee5e8}.match-life-modal .qb-editor-head h2{margin:3px 0 2px}.match-life-modal .qb-editor-head p{margin:0;color:#88767d;font-size:12px}
.match-life-actions{display:grid;gap:8px;padding:16px 18px 18px}.match-life-action{appearance:none;border:1px solid #eadfe2;background:#fff;border-radius:12px;padding:12px 14px;display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;align-items:center;text-align:left;color:#32282b;cursor:pointer;transition:.15s ease}.match-life-action:hover{border-color:#c98997;background:#fff8fa;transform:translateY(-1px);box-shadow:0 8px 20px rgba(96,16,36,.07)}.match-life-action>.ico{width:20px;height:20px;color:#86102a}.match-life-action span{min-width:0}.match-life-action b{display:block;font-size:13px}.match-life-action small{display:block;margin-top:2px;color:#8a7b80;font-size:11px;line-height:1.35}.match-life-action.danger{border-color:#efcbd2;background:#fff9fa}.match-life-action.danger>.ico,.match-life-action.danger b{color:#a20d29}.match-life-note{margin:0 18px 18px;padding:10px 12px;border-radius:10px;background:#f8f5f6;color:#796a70;font-size:11px}
.match-edit-wrap{width:min(980px,calc(100vw - 28px));max-height:92vh;padding:0;overflow:hidden}.match-edit-modal{display:flex;flex-direction:column;max-height:92vh;background:#fff}.match-edit-modal>.qb-editor-head{padding:16px 18px;border-bottom:1px solid #eee5e8}.match-edit-modal>.qb-editor-head h2{margin:3px 0 2px}.match-edit-modal>.qb-editor-head p{margin:0;color:#88767d;font-size:11px}
.match-edit-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(150px,.8fr);gap:10px 12px;padding:14px 18px 4px}.match-edit-grid .field{margin:0}.match-edit-grid .field>span{display:block;margin-bottom:5px;color:#55474c;font-size:11px;font-weight:800}.match-edit-grid input,.match-edit-grid select{width:100%}
.match-edit-toggle-row{display:flex;gap:18px;padding:8px 18px 12px;color:#5d5055;font-size:11px;font-weight:750}.match-edit-toggle-row label{display:flex;align-items:center;gap:7px}.match-edit-toggle-row input{accent-color:#86102a}
.match-edit-bank{margin:0 18px;border:1px solid #eadfe2;border-radius:12px;overflow:hidden;min-height:0;display:flex;flex-direction:column}.match-edit-bank-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:#fbf9fa;border-bottom:1px solid #eee5e8}.match-edit-bank-head>div:first-child{display:flex;align-items:baseline;gap:9px}.match-edit-bank-head b{font-size:12px}.match-edit-bank-head span{font-size:10px;color:#8f7d84}.match-edit-bank-head .qb-search{width:min(330px,45vw)}
.match-edit-q-list{overflow:auto;max-height:42vh;padding:6px}.match-edit-q{display:grid;grid-template-columns:20px 34px minmax(0,1fr);gap:8px;align-items:center;padding:8px 9px;border-radius:8px;cursor:pointer}.match-edit-q:hover{background:#fbf6f7}.match-edit-q input{accent-color:#86102a}.match-edit-qtype{display:grid;place-items:center;height:24px;border-radius:7px;background:#f3e7ea;color:#86102a;font-size:9px;font-weight:900}.match-edit-qtype.tf{background:#eef1f8;color:#465a85}.match-edit-q span:last-child{min-width:0}.match-edit-q b{display:block;color:#403438;font-size:10.5px}.match-edit-q small{display:block;margin-top:2px;color:#887b80;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.match-edit-modal>.error{min-height:18px;margin:8px 18px 0}.match-edit-actions{display:flex;justify-content:flex-end;gap:8px;padding:10px 18px 16px;border-top:1px solid #f1eaec;margin-top:8px}
@media (max-width:720px){.match-edit-grid{grid-template-columns:1fr}.match-edit-bank-head{align-items:stretch;flex-direction:column}.match-edit-bank-head .qb-search{width:100%}.match-edit-q-list{max-height:36vh}.match-edit-toggle-row{flex-wrap:wrap}.match-life-wrap,.match-edit-wrap{width:100vw;max-width:none;border-radius:0}}

/* ================= V0.169 · Kết quả của tôi theo từng trận ================= */
.my-results-v169{max-width:1180px;margin:0 auto;padding-bottom:28px}
.my-result-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:10px 0 12px}.my-result-kpis>div{padding:12px 15px;border:1px solid #eadfe2;border-radius:13px;background:#fff}.my-result-kpis span{display:block;color:#8d7b81;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.my-result-kpis b{display:block;margin-top:3px;color:#321f25;font-size:24px}.my-result-kpis .win b{color:#217044}.my-result-kpis .draw b{color:#7a6770}.my-result-kpis .loss b{color:#9c1c35}
.my-result-filterbar{display:flex;gap:7px;align-items:center;overflow:auto;padding:2px 0 10px}.my-result-filterbar button{border:1px solid #e5d8dc;background:#fff;color:#6f5a61;border-radius:999px;padding:8px 13px;font:inherit;font-size:11px;font-weight:850;white-space:nowrap;cursor:pointer}.my-result-filterbar button.active{background:#86102a;border-color:#86102a;color:#fff}
.my-result-list{display:grid;gap:11px}.my-result-empty{padding:26px;text-align:center;color:#8a777d}
.my-result-card{border:1px solid #e8dce0;border-radius:16px;background:#fff;box-shadow:0 5px 16px rgba(72,16,29,.035);overflow:hidden}.my-result-card:hover{border-color:#d9b5be;box-shadow:0 8px 24px rgba(75,14,30,.06)}
.my-result-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:13px 16px 9px}.my-result-card-head>div{min-width:0}.my-result-card-head b{display:block;color:#352329;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.my-result-card-head span{display:block;margin-top:3px;color:#917e84;font-size:10.5px}.my-result-outcome{display:inline-flex;align-items:center;justify-content:center;min-width:64px;padding:6px 9px;border-radius:9px;font-size:10px;font-weight:950;letter-spacing:.05em}.my-result-outcome.W{background:#eaf7ef;color:#1c7040;border:1px solid #c9e8d4}.my-result-outcome.L{background:#fff0f3;color:#9b1933;border:1px solid #efced6}.my-result-outcome.D{background:#f3f1f2;color:#6f6267;border:1px solid #dfd9dc}
.my-result-achievement{margin:0 16px 7px;padding:7px 10px;border-radius:9px;background:#fff8e8;color:#80620e;font-size:10px}.my-result-achievement svg{width:13px;height:13px;vertical-align:-2px}.my-result-achievement b{margin-left:4px}
.my-result-duel-row{display:grid;grid-template-columns:minmax(0,1fr) 115px minmax(0,1fr);gap:10px;align-items:center;padding:7px 16px 12px}.my-result-person{min-width:0;display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:10px}.my-result-person.opponent{grid-template-columns:auto minmax(0,1fr) 58px;text-align:right}.my-result-avatar{width:58px;height:58px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:#f1e3e7;border:2px solid #e0bdc6;color:#811028;font-size:15px;font-weight:950;box-shadow:0 3px 10px rgba(88,14,34,.07)}.my-result-avatar img{width:100%;height:100%;display:block;object-fit:cover;border-radius:50%}.my-result-person-name{min-width:0}.my-result-person-name b{display:block;color:#35252a;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.my-result-person-name span{display:block;margin-top:3px;color:#958289;font-size:9px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.my-result-score{color:#7e0b22;font-size:25px;font-weight:950;white-space:nowrap}.my-result-score small{font-size:10px;color:#947e85;margin-left:2px}.my-result-vs{text-align:center}.my-result-vs>b{display:block;color:#7c0a20;font-size:19px;letter-spacing:.08em}.my-result-vs>span{display:block;margin-top:3px;color:#96838a;font-size:9px;line-height:1.35}.my-result-team-avatar svg{width:23px;height:23px}.team-scoreline .my-result-score{font-size:30px}
.my-result-card-foot{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:9px 16px 12px;border-top:1px solid #f0e8ea;background:#fdfcfc}.my-result-mini-stats{display:grid;grid-template-columns:repeat(4,minmax(70px,1fr));gap:5px}.my-result-stat{min-width:0}.my-result-stat span{display:block;color:#9a878d;font-size:8.5px;font-weight:800;text-transform:uppercase}.my-result-stat b{display:block;margin-top:2px;color:#4b3a40;font-size:11.5px}.my-result-card-actions{display:flex;gap:7px;white-space:nowrap}.my-result-card-actions .btn{min-height:34px}
.my-result-detail-backdrop{z-index:1230;background:rgba(29,10,16,.63);backdrop-filter:blur(3px)}.my-result-detail-modal{width:min(960px,95vw);max-width:none;max-height:92vh;padding:0;overflow:auto;border-radius:18px;background:#f8f5f6}.my-result-detail-head{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:flex-start;gap:15px;padding:15px 18px;background:#fff;border-bottom:1px solid #eadfe2}.my-result-detail-head h2{margin:2px 0 3px;color:#38242b;font-size:19px}.my-result-detail-head p{margin:0;color:#8d7a81;font-size:10.5px}.my-result-detail-head .duel-close-btn{position:static;min-width:88px;height:40px;display:inline-flex;align-items:center;justify-content:center;gap:5px;background:#86102a;color:#fff;border:1px solid #750a21;border-radius:10px;box-shadow:0 4px 12px rgba(104,9,31,.17);font-size:18px}.my-result-detail-head .duel-close-btn span{font-size:10px;font-weight:900}.my-result-detail-achievement{display:flex;align-items:center;justify-content:center;gap:7px;padding:9px 14px;background:#fff8e7;color:#7d600f;border-bottom:1px solid #eddba5;font-size:10.5px}.my-result-detail-achievement svg{width:15px;height:15px}.my-result-detail-achievement b{font-size:12px}
.my-result-detail-hero{display:grid;grid-template-columns:1fr 145px 1fr;gap:14px;align-items:center;padding:18px;background:#fff}.my-result-detail-hero .side{text-align:center;min-width:0}.my-result-avatar.detail{width:72px;height:72px;margin:0 auto 8px;font-size:18px}.my-result-detail-hero .side>b{display:block;color:#38262c;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.my-result-detail-hero .side>strong{display:block;margin-top:5px;color:#7e0a22;font-size:31px}.my-result-detail-hero .side>strong small{font-size:11px;color:#947f86}.my-result-detail-hero .center{text-align:center}.my-result-detail-hero .center>.my-result-outcome{margin-bottom:7px}.my-result-detail-hero .center>b{display:block;color:#7c0a21;font-size:18px}.my-result-detail-hero .center>span{display:block;margin-top:4px;color:#8e7b82;font-size:9.5px;line-height:1.35}
.my-result-compare-table{margin:14px 18px;background:#fff;border:1px solid #eadfe2;border-radius:13px;overflow:hidden}.my-result-compare-table>div{display:grid;grid-template-columns:1.2fr 1fr 1fr;align-items:center;border-bottom:1px solid #f0e8ea}.my-result-compare-table>div:last-child{border-bottom:0}.my-result-compare-table>div>*{padding:9px 12px;text-align:center}.my-result-compare-table>div>span{text-align:left;color:#756269;font-size:10px;font-weight:750}.my-result-compare-table>div>b{color:#3b2b30;font-size:11px}.my-result-compare-table>div.head{background:#fbf9fa}.my-result-compare-table>div.head>*{font-size:9.5px;color:#806e74;text-transform:uppercase}.my-result-detail-personal{margin:14px 18px;padding:13px 15px;background:#fff;border:1px solid #eadfe2;border-radius:13px}.my-result-detail-personal h3{margin:0 0 9px;font-size:13px;color:#3c2930}.my-result-detail-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.my-result-detail-personal>p{margin:10px 0 0;color:#76636a;font-size:10px}.my-result-detail-personal>p b{color:#7f0b22;font-size:13px}
.my-result-detail-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px 16px}.my-result-detail-foot>span{color:#88757c;font-size:10px;line-height:1.4}.my-result-detail-foot .btn{white-space:nowrap}
@media (max-width:820px){.my-result-duel-row{grid-template-columns:1fr 80px 1fr}.my-result-person{grid-template-columns:48px minmax(0,1fr)}.my-result-person.opponent{grid-template-columns:minmax(0,1fr) 48px}.my-result-person .my-result-score{grid-column:1/-1;text-align:center}.my-result-person.opponent .my-result-score{grid-row:2;grid-column:1/-1}.my-result-avatar{width:48px;height:48px}.my-result-card-foot{grid-template-columns:1fr}.my-result-card-actions{justify-content:flex-end}.my-result-detail-hero{grid-template-columns:1fr 95px 1fr}}
@media (max-width:600px){.my-result-kpis{grid-template-columns:repeat(2,1fr)}.my-result-card-head{padding:11px 12px 6px}.my-result-duel-row{grid-template-columns:1fr 52px 1fr;padding:6px 10px 10px;gap:4px}.my-result-person,.my-result-person.opponent{display:flex;flex-direction:column;text-align:center;gap:5px}.my-result-person.opponent .my-result-score{order:3}.my-result-avatar{width:45px;height:45px}.my-result-person-name b{font-size:10.5px}.my-result-person-name span{font-size:7.5px}.my-result-score{font-size:20px}.my-result-vs>b{font-size:15px}.my-result-vs>span{font-size:7.5px}.my-result-card-foot{padding:8px 10px 11px}.my-result-mini-stats{grid-template-columns:repeat(2,1fr);gap:7px}.my-result-card-actions{display:grid;grid-template-columns:1fr 1fr}.my-result-card-actions .btn{justify-content:center}.my-result-detail-modal{width:100vw;max-height:100vh;height:100vh;border-radius:0}.my-result-detail-head{padding:12px}.my-result-detail-head .duel-close-btn{min-width:74px}.my-result-detail-hero{grid-template-columns:1fr 58px 1fr;padding:12px 7px;gap:2px}.my-result-avatar.detail{width:52px;height:52px}.my-result-detail-hero .side>b{font-size:10.5px}.my-result-detail-hero .side>strong{font-size:23px}.my-result-detail-hero .center>span{font-size:7.5px}.my-result-compare-table{margin:9px}.my-result-compare-table>div>*{padding:8px 5px}.my-result-detail-personal{margin:9px}.my-result-detail-stats{grid-template-columns:repeat(2,1fr)}.my-result-detail-foot{align-items:stretch;flex-direction:column;padding:9px 11px 14px}.my-result-detail-foot .btn{justify-content:center;width:100%}}

/* V0.172 - Thống kê Đấu trường tổng hợp */
.arena-stat-page-head .actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.arena-stat-page-head select{min-width:160px;height:38px;border:1px solid #dfe2e6;border-radius:10px;background:#fff;padding:0 11px;font:inherit;color:#343a43}
.arena-stat-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}.arena-stat-metric{padding:16px 18px;min-height:108px;display:flex;flex-direction:column;justify-content:center}.arena-stat-metric span{font-size:11px;font-weight:800;color:#727984}.arena-stat-metric b{font-size:31px;line-height:1.05;color:#222a34;margin:7px 0 4px}.arena-stat-metric small{font-size:10px;color:#8b929b}.arena-stat-metric.accent{border-color:#e8c8cf;background:#fff9fa}.arena-stat-metric.accent b{color:#970b25}
.arena-stat-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.arena-stat-panel{padding:17px 18px;min-width:0}.arena-stat-panel.arena-stat-wide{grid-column:1/-1}.arena-stat-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.arena-stat-title h3{margin:0;color:#332b2e;font-size:15px}.arena-stat-title p{margin:4px 0 0;color:#858c95;font-size:10px}
.arena-stat-bars{display:flex;flex-direction:column;gap:11px}.arena-stat-bar-row{display:grid;grid-template-columns:88px minmax(0,1fr) 32px;gap:10px;align-items:center}.arena-stat-bar-row>span{font-size:10.5px;font-weight:750;color:#5d646e}.arena-stat-bar-row>div{height:9px;background:#f0f1f3;border-radius:999px;overflow:hidden}.arena-stat-bar-row>div>i{display:block;height:100%;background:#980d28;border-radius:999px}.arena-stat-bars.score .arena-stat-bar-row>div>i{background:#b42846}.arena-stat-bar-row>b{text-align:right;font-size:11px;color:#353b44}
.arena-trend{height:150px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;align-items:end;padding-top:8px}.arena-trend-col{height:100%;display:grid;grid-template-rows:20px minmax(0,1fr) 19px;gap:4px;align-items:end;text-align:center}.arena-trend-col>b{font-size:9px;color:#6f7680}.arena-trend-col>div{height:100%;min-height:70px;border-radius:8px;background:#f5f3f4;display:flex;align-items:flex-end;justify-content:center;overflow:hidden;padding:0 5px}.arena-trend-col i{display:block;width:100%;min-height:3px;background:linear-gradient(180deg,#b52643,#85091f);border-radius:6px 6px 2px 2px}.arena-trend-col>span{font-size:9px;color:#818892;white-space:nowrap}
.arena-stat-students{display:flex;flex-direction:column;gap:7px}.arena-stat-top-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 14px}.arena-stat-student{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:9px;align-items:center;padding:8px 9px;border:1px solid #ebecef;border-radius:11px;background:#fff}.arena-stat-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#f7e9ec;color:#910b25;font-size:10px;font-weight:900}.arena-stat-student>div{min-width:0}.arena-stat-student>div b,.arena-stat-student>div small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.arena-stat-student>div b{font-size:10.5px;color:#303640}.arena-stat-student>div small{font-size:8.5px;color:#9298a1;margin-top:2px}.arena-stat-student>strong{text-align:right;color:#8e0a23;font-size:11px;white-space:nowrap}.arena-stat-student>strong small{display:block;color:#8c929a;font-size:8px;font-weight:500;margin-top:2px}
@media(max-width:1050px){.arena-stat-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.arena-stat-layout{grid-template-columns:1fr}.arena-stat-panel.arena-stat-wide{grid-column:auto}.arena-stat-top-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.arena-stat-page-head .actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.arena-stat-page-head .actions select{grid-column:1/-1;width:100%}.arena-stat-metrics{grid-template-columns:1fr 1fr;gap:8px}.arena-stat-metric{min-height:90px;padding:13px}.arena-stat-metric b{font-size:25px}.arena-stat-panel{padding:14px}.arena-stat-top-grid{grid-template-columns:1fr}.arena-stat-bar-row{grid-template-columns:74px minmax(0,1fr) 26px}.arena-trend{gap:5px}.arena-trend-col>div{padding:0 3px}}
@media(max-width:480px){.arena-stat-metrics{grid-template-columns:1fr}.arena-stat-page-head .actions{grid-template-columns:1fr}.arena-stat-page-head .actions select{grid-column:auto}.arena-stat-student{grid-template-columns:32px minmax(0,1fr)}.arena-stat-student>strong{grid-column:2;text-align:left}.arena-stat-avatar{width:32px;height:32px}}

/* V0.173 - Nhật ký hoạt động hệ thống */
.audit-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}
.audit-kpis>.card{padding:14px 16px;min-height:92px;display:flex;flex-direction:column;justify-content:center}
.audit-kpis span{font-size:9px;font-weight:850;letter-spacing:.04em;text-transform:uppercase;color:#858c96}
.audit-kpis b{font-size:23px;line-height:1.1;color:#2b2528;margin-top:5px}.audit-kpis small{font-size:9px;color:#9298a1;margin-top:3px;line-height:1.35}.audit-kpis .accent{border-color:#ead1d7;background:#fffafb}.audit-kpis .accent b{font-size:16px;color:#8b0b22}
.audit-panel{padding:0;overflow:hidden}.audit-toolbar{display:grid;grid-template-columns:minmax(280px,1fr) 170px 220px 130px;gap:8px;padding:11px 12px;border-bottom:1px solid #e7e9ed;background:#fbfbfc}.audit-toolbar select{height:36px;border:1px solid #dfe3e8;border-radius:9px;background:#fff;padding:0 9px;font-size:10px;color:#535d68}.audit-search{height:36px;border:1px solid #dfe3e8;border-radius:9px;background:#fff;display:flex;align-items:center;gap:8px;padding:0 10px}.audit-search .ico{width:15px;height:15px;color:#89919b}.audit-search input{border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;height:auto!important;min-width:0;width:100%;font-size:10px}
.audit-table-wrap{max-height:calc(100vh - 355px);min-height:320px;overflow:auto}.audit-table{min-width:980px}.audit-table thead th{position:sticky;top:0;z-index:2;background:#fafbfc}.audit-table th,.audit-table td{padding:10px 12px}.audit-table td{font-size:9.5px;vertical-align:middle}.audit-table td:first-child{white-space:nowrap}.audit-table code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px;background:#f4f5f6;border-radius:6px;padding:3px 5px;color:#626a74}.audit-person{display:flex;align-items:center;gap:8px;min-width:180px}.audit-person>span{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#f7e8eb;color:#8d0a22;font-weight:900;font-size:10px;flex:0 0 auto}.audit-person>div{min-width:0}.audit-person b,.audit-person small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.audit-person b{font-size:10px;color:#303741}.audit-person small{font-size:8.5px;color:#9299a2;margin-top:2px}.audit-action{display:inline-flex;align-items:center;border-radius:7px;padding:4px 7px;font-size:9px;font-weight:850;background:#f3f4f6;color:#59616b}.audit-action.security{background:#fff4e7;color:#8b5a08}.audit-action.account{background:#eef5ff;color:#315f9d}.audit-action.users{background:#f3edff;color:#6544a5}.audit-action.arena{background:#f9e9ed;color:#900c27}
@media(max-width:1050px){.audit-kpis{grid-template-columns:1fr 1fr}.audit-toolbar{grid-template-columns:1fr 1fr}.audit-search{grid-column:1/-1}.audit-table-wrap{max-height:calc(100vh - 430px)}}
@media(max-width:620px){.audit-kpis{grid-template-columns:1fr 1fr}.audit-toolbar{grid-template-columns:1fr}.audit-search{grid-column:auto}.audit-table-wrap{max-height:calc(100vh - 500px)}}

/* V0.174 - kiểm tra sẵn sàng hệ thống trước buổi thi */
.system-check-page{display:flex;flex-direction:column;gap:12px}.system-check-loading{padding:28px;text-align:center;color:#777f89}.system-check-hero{padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-left:5px solid #17814a}.system-check-hero.attention{border-left-color:#b77908}.system-check-hero.blocked{border-left-color:#ae243a}.system-check-hero>div:first-child{display:flex;align-items:center;gap:16px}.system-check-score{font-size:38px;line-height:1;font-weight:900;color:#6f0a1d;min-width:92px}.system-check-score small{font-size:17px;color:#8b929b}.system-check-hero h2{margin:0 0 4px;font-size:21px}.system-check-hero p{margin:0;color:#7a818a;font-size:11px}.system-check-access{min-width:260px;text-align:right}.system-check-access span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#939aa3;font-weight:850}.system-check-access b{display:block;margin-top:5px;color:#6f0a1d;font-size:14px;word-break:break-all}.system-check-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.system-check-kpis>.card{padding:14px 16px}.system-check-kpis span,.system-check-kpis small{display:block;color:#8a919b;font-size:9px}.system-check-kpis b{display:block;margin:4px 0 2px;color:#313944;font-size:22px}.system-check-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.system-check-item{padding:14px 16px;display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;align-items:start}.system-check-indicator{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:950;background:#e9f7ef;color:#187743}.system-check-item.warn .system-check-indicator{background:#fff3dc;color:#9a6500}.system-check-item.fail .system-check-indicator{background:#fff0f2;color:#a61c35}.system-check-item-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.system-check-item h3{margin:1px 0 0;font-size:13px;color:#303741}.system-check-item-head>b{font-size:9px;padding:4px 7px;border-radius:999px;background:#edf8f1;color:#1b7144;white-space:nowrap}.system-check-item.warn .system-check-item-head>b{background:#fff5e3;color:#936200}.system-check-item.fail .system-check-item-head>b{background:#fff0f2;color:#9a2037}.system-check-item p{margin:5px 0 0;color:#707884;font-size:10.5px;line-height:1.45}.system-check-item small{display:block;margin-top:6px;color:#8e5d07;font-size:9px;line-height:1.45}.system-check-item.fail small{color:#9a2037}.system-check-foot{padding:15px 18px;display:flex;align-items:center;justify-content:space-between;gap:14px}.system-check-foot>div:first-child{display:flex;flex-direction:column;gap:3px}.system-check-foot b{font-size:12px}.system-check-foot span{font-size:10px;color:#7f8791}.system-check-foot #sysBackupOut{flex:0 0 auto}
@media(max-width:980px){.system-check-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.system-check-list{grid-template-columns:1fr}.system-check-hero{align-items:flex-start;flex-direction:column}.system-check-access{text-align:left;min-width:0}}
@media(max-width:620px){.system-check-kpis{grid-template-columns:1fr 1fr}.system-check-score{font-size:31px;min-width:78px}.system-check-hero{padding:15px}.system-check-item{padding:12px}.system-check-foot{align-items:stretch;flex-direction:column}.system-check-foot #sysBackupOut .btn{width:100%}}

/* V0.175 - Quản lý nội dung giáo viên + Xem như giáo viên (chỉ đọc) */
.teacher-preview-bar{min-height:46px;display:flex;align-items:center;gap:9px;padding:7px 16px;background:#fff5d9;border-bottom:1px solid #ead49b;color:#654b13;font-size:12px;position:relative;z-index:20}.teacher-preview-bar>.ico{width:17px;height:17px;flex:0 0 auto}.teacher-preview-bar>span{flex:1;min-width:0}.teacher-preview-bar strong{color:#8b111f}.teacher-preview-bar .btn{min-height:32px;padding:6px 11px;background:#7f0b20;color:#fff;border-color:#7f0b20;white-space:nowrap}.teacher-preview-bar .btn:hover{background:#650818}
.tc-head p{max-width:760px}.tc-toolbar{display:flex;align-items:center;gap:14px;padding:11px 13px;margin-bottom:13px}.tc-toolbar .qb-search{flex:1}.tc-toolbar>span{font-size:11px;color:#787f88;white-space:nowrap}.tc-toolbar>span b{color:#7f0b20;font-size:15px}.tc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:12px}.tc-teacher-card{padding:16px;display:flex;flex-direction:column;gap:13px}.tc-teacher-top{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:11px;align-items:center}.tc-avatar{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#7f0b20,#b62945);color:#fff;font-size:14px;font-weight:900;overflow:hidden;flex:0 0 auto}.tc-avatar img{width:100%;height:100%;object-fit:cover}.tc-avatar.big{width:62px;height:62px;font-size:18px}.tc-teacher-top h3{margin:0 0 3px;font-size:15px;color:#282f38}.tc-teacher-top p{margin:0;color:#7d858f;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tc-active{font-size:9px;font-weight:800;border-radius:999px;padding:5px 8px}.tc-active.on{background:#edf8f1;color:#187344}.tc-active.off{background:#f1f2f4;color:#7a7f86}.tc-counts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.tc-counts span{display:flex;flex-direction:column;align-items:center;gap:2px;border:1px solid #e9e9ec;border-radius:10px;padding:8px 5px;color:#8a8f96;font-size:8px;text-align:center}.tc-counts b{font-size:16px;color:#6f1022}.tc-teacher-card footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:11px;border-top:1px solid #ececef}.tc-teacher-card footer small{font-size:8.5px;color:#91969d}.tc-teacher-card footer>div{display:flex;gap:6px}
.tc-detail-head{align-items:center}.tc-title{display:flex;align-items:center;gap:12px;min-width:0}.tc-title>div:last-child{min-width:0}.tc-title h1{margin:2px 0 4px}.tc-title p{margin:0}.tc-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:12px}.tc-kpis span{background:#fff;border:1px solid #e7e8eb;border-radius:12px;padding:10px 11px;color:#858b94;font-size:9px;display:flex;flex-direction:column;gap:3px}.tc-kpis b{font-size:20px;color:#721025}.tc-tabs{display:flex;gap:5px;align-items:center;border-bottom:1px solid #e6e7ea;margin-bottom:12px;overflow-x:auto;padding-bottom:7px}.tc-tabs button{border:0;background:transparent;border-radius:9px;padding:8px 10px;font:inherit;font-size:10px;font-weight:800;color:#737a84;white-space:nowrap;cursor:pointer}.tc-tabs button.active{background:#f7e9ed;color:#8c0d26}.tc-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.tc-overview-grid>.card{padding:15px}.tc-overview-grid h3{margin:0 0 10px;font-size:13px}.tc-class-list,.tc-submission-line{display:flex;flex-wrap:wrap;gap:6px}.tc-class-list span,.tc-submission-line span{border:1px solid #e6e7ea;background:#fafafa;border-radius:999px;padding:6px 8px;font-size:9px;color:#656d77}.tc-submission-line b{color:#7f0b20}.tc-list{display:flex;flex-direction:column;gap:9px}.tc-item{padding:13px 15px;display:flex;align-items:center;justify-content:space-between;gap:16px}.tc-item>div{min-width:0}.tc-item h3{margin:3px 0 4px;font-size:14px;color:#2a3038}.tc-item p{margin:0 0 4px;color:#707782;font-size:10.5px;line-height:1.45}.tc-item small{font-size:8.5px;color:#969ba2}.tc-item>.btn{flex:0 0 auto}
.tc-item-wrap{width:min(1060px,96vw)!important;max-height:92vh!important;padding:0!important;overflow:hidden!important}.tc-item-modal{height:min(820px,92vh);display:flex;flex-direction:column;min-height:0}.tc-item-modal>header{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;padding:16px 19px;border-bottom:1px solid #e8e8eb;background:#fff;flex:0 0 auto}.tc-item-modal>header h2{margin:3px 0 3px}.tc-item-modal>header p{margin:0;color:#7d848e;font-size:10px}.tc-item-scroll{overflow:auto;padding:14px 17px 20px;flex:1}.tc-detail-meta{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:11px}.tc-detail-meta span{border:1px solid #e7e8eb;border-radius:9px;background:#fafafa;padding:7px 9px;font-size:9px;color:#747b84}.tc-question-list{display:flex;flex-direction:column;gap:7px}.tc-question-list article{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid #e6e7ea;border-radius:11px;padding:9px 10px;background:#fff}.tc-question-list article>span{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:#f7e9ed;color:#861026;font-weight:900;font-size:10px}.tc-question-list article>div{min-width:0}.tc-question-list article b{display:block;font-size:10.5px;color:#30363e;line-height:1.45}.tc-question-list article small{display:block;margin-top:3px;font-size:8px;color:#92989f}
@media(max-width:920px){.tc-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.tc-overview-grid{grid-template-columns:1fr}.tc-grid{grid-template-columns:1fr}.tc-counts{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.teacher-preview-bar{align-items:flex-start;flex-wrap:wrap}.teacher-preview-bar>span{flex-basis:calc(100% - 30px)}.teacher-preview-bar .btn{width:100%}.tc-detail-head{align-items:flex-start;flex-direction:column}.tc-title{align-items:flex-start}.tc-avatar.big{width:50px;height:50px}.tc-detail-head>.actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.tc-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.tc-teacher-top{grid-template-columns:44px 1fr}.tc-active{grid-column:2;justify-self:start}.tc-teacher-card footer{align-items:flex-start;flex-direction:column}.tc-teacher-card footer>div{width:100%;display:grid;grid-template-columns:1fr 1fr}.tc-item{align-items:flex-start;flex-direction:column}.tc-item>.btn{width:100%}.tc-question-list article{grid-template-columns:30px minmax(0,1fr)}.tc-question-list article>.btn{grid-column:2;justify-self:start}}

/* V0.176 - Trung tâm quản trị nội dung toàn hệ thống */
.cc-page{display:flex;flex-direction:column;gap:12px;min-width:0}.cc-head{margin-bottom:0}.cc-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.cc-kpis>div{background:#fff;border:1px solid #e8e7ea;border-radius:13px;padding:13px 15px;min-width:0}.cc-kpis span,.cc-kpis small{display:block}.cc-kpis span{font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.045em;color:#898087}.cc-kpis b{display:block;margin:4px 0 2px;font-size:24px;color:#781126}.cc-kpis small{font-size:9px;color:#939099;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cc-tabs{display:flex;gap:5px;align-items:center;border-bottom:1px solid #e8e5e7;padding:0 2px 7px}.cc-tabs button{border:1px solid transparent;background:transparent;border-radius:9px;padding:8px 11px;font:inherit;font-size:11px;font-weight:800;color:#6c6468;cursor:pointer}.cc-tabs button:hover{background:#f8f5f6}.cc-tabs button.active{background:#f7ebee;border-color:#efd2d9;color:#8f0b24}.cc-overview-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.65fr);gap:12px}.cc-teacher-summary,.cc-topic-quick,.cc-question-workspace,.cc-activity-workspace,.cc-topic-table{padding:15px;min-width:0}.cc-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:11px}.cc-section-head h3{margin:0 0 3px;font-size:15px}.cc-section-head p{margin:0;color:#888089;font-size:10px}.cc-section-head .qb-search.compact{width:260px;min-width:200px}.cc-teacher-table{min-width:760px}.cc-teacher-table td:first-child b,.cc-teacher-table td:first-child small{display:block}.cc-teacher-table td:first-child small{font-size:8.5px;color:#929099;margin-top:2px;max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cc-topic-quick>h3{font-size:15px;margin:0 0 10px}.cc-topic-quick>div{display:flex;flex-direction:column;gap:6px}.cc-topic-quick button{border:1px solid #ebe8ea;background:#fff;border-radius:10px;padding:9px 10px;display:grid;grid-template-columns:minmax(0,1fr) auto;text-align:left;gap:2px 9px;cursor:pointer}.cc-topic-quick button:hover{border-color:#d8a9b4;background:#fffafb}.cc-topic-quick button span{font-size:10px;font-weight:800;color:#393236;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cc-topic-quick button b{grid-row:1/3;grid-column:2;font-size:17px;color:#8b0d25;align-self:center}.cc-topic-quick button small{font-size:8.5px;color:#91898e}.cc-filterbar{display:grid;grid-template-columns:minmax(260px,1fr) repeat(5,minmax(130px,auto));gap:7px;align-items:center;margin-bottom:10px}.cc-filterbar select{height:38px;border:1px solid #dedbe0;background:#fff;border-radius:9px;padding:0 9px;font:inherit;font-size:10px;color:#565057;min-width:0}.cc-filterbar .qb-search{min-width:0}.cc-question-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 2px 9px;border-bottom:1px solid #efedef}.cc-question-summary b{font-size:11px;color:#5c5358}.cc-question-summary span{font-size:9px;color:#979097}.cc-question-list{display:flex;flex-direction:column}.cc-question-row{display:grid;grid-template-columns:72px minmax(300px,1.7fr) minmax(150px,.65fr) 108px 72px 18px;gap:10px;align-items:center;border:0;border-bottom:1px solid #efedef;background:#fff;padding:11px 7px;text-align:left;cursor:pointer;color:inherit}.cc-question-row:hover{background:#fcf8f9}.cc-qcode{font-size:9px;font-weight:900;color:#8d1128;background:#f8ecef;border-radius:7px;padding:5px 7px;text-align:center}.cc-qmain,.cc-qowner,.cc-quse{min-width:0}.cc-qmain b,.cc-qmain small,.cc-qowner b,.cc-qowner small,.cc-quse b,.cc-quse small{display:block}.cc-qmain b{font-size:10.5px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cc-qmain small{font-size:8.5px;color:#91898e;margin-top:3px}.cc-qowner b{font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cc-qowner small{font-size:8px;color:#999197;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cc-qstatus{font-size:8.5px;font-weight:800;border:1px solid #e0dde0;border-radius:999px;padding:5px 7px;text-align:center;white-space:nowrap;color:#6c666b;background:#f8f8f9}.cc-qstatus.shared,.cc-qstatus.approved{background:#edf8f1;border-color:#cbe6d5;color:#1d7241}.cc-qstatus.pending{background:#fff8e9;border-color:#f0dfb8;color:#8b6016}.cc-qstatus.rejected,.cc-qstatus.changes_requested{background:#fff0f2;border-color:#efcdd3;color:#9c2438}.cc-quse{text-align:center}.cc-quse b{font-size:12px;color:#3e373b}.cc-quse small{font-size:7.5px;color:#9a9498}.cc-activity-list{display:flex;flex-direction:column;gap:7px}.cc-activity-workspace .cc-filterbar{grid-template-columns:minmax(280px,1fr) 230px 200px}.cc-activity-row{border:1px solid #e9e6e8;border-radius:11px;background:#fff;padding:11px 12px;display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,.45fr) auto;gap:14px;align-items:center}.cc-activity-row>div:first-child span{font-size:8px;font-weight:900;color:#8f0d25;text-transform:uppercase}.cc-activity-row h3{margin:3px 0;font-size:12px}.cc-activity-row p{margin:0;color:#8c858a;font-size:9px}.cc-activity-owner b,.cc-activity-owner small{display:block}.cc-activity-owner b{font-size:9.5px}.cc-activity-owner small{font-size:8px;color:#979095;margin-top:2px}.cc-topic-table .table{min-width:700px}.cc-question-wrap{width:min(1100px,95vw)!important;max-width:1100px!important;padding:0!important;overflow:hidden}.cc-question-modal{display:flex;flex-direction:column;max-height:91vh}.cc-question-modal>.qb-editor-head{padding:16px 19px;border-bottom:1px solid #e8e5e7}.cc-question-body{display:grid;grid-template-columns:minmax(0,1fr) 250px;min-height:0;overflow:hidden}.cc-question-body>main{padding:16px;overflow:auto;background:#f8f7f8}.cc-question-body>aside{border-left:1px solid #e7e4e6;padding:14px;overflow:auto;background:#fff;display:flex;flex-direction:column;gap:7px}.cc-question-body>aside section{border:1px solid #ebe8ea;border-radius:9px;padding:9px 10px}.cc-question-body>aside span,.cc-question-body>aside b,.cc-question-body>aside small{display:block}.cc-question-body>aside span{font-size:8px;color:#918990;text-transform:uppercase;font-weight:850}.cc-question-body>aside b{font-size:10px;margin-top:3px;line-height:1.4}.cc-question-body>aside small{font-size:8px;color:#989197;margin-top:2px}.cc-question-body .approval-paper{box-shadow:none;margin:0}
@media(max-width:1180px){.cc-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.cc-overview-grid{grid-template-columns:1fr}.cc-filterbar{grid-template-columns:minmax(240px,1fr) repeat(2,minmax(140px,1fr))}.cc-question-row{grid-template-columns:65px minmax(260px,1fr) minmax(140px,.6fr) 100px 65px 18px}.cc-activity-workspace .cc-filterbar{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:760px){.cc-kpis{grid-template-columns:1fr 1fr}.cc-tabs{overflow-x:auto}.cc-tabs button{white-space:nowrap}.cc-filterbar,.cc-activity-workspace .cc-filterbar{grid-template-columns:1fr}.cc-question-row{grid-template-columns:58px minmax(0,1fr) 18px}.cc-qowner,.cc-qstatus,.cc-quse{display:none}.cc-activity-row{grid-template-columns:1fr auto}.cc-activity-owner{grid-column:1}.cc-question-body{grid-template-columns:1fr;overflow:auto}.cc-question-body>main,.cc-question-body>aside{overflow:visible}.cc-question-body>aside{border-left:0;border-top:1px solid #e7e4e6;display:grid;grid-template-columns:1fr 1fr}.cc-section-head{flex-direction:column}.cc-section-head .qb-search.compact{width:100%}}

/* V0.177 - Bàn giao & xử lý giáo viên */
.teacher-handling-wrap{width:min(980px,96vw)!important;max-height:92vh!important;padding:0!important;overflow:hidden!important}.teacher-handling-modal{display:flex;flex-direction:column;max-height:92vh;background:#fff}.teacher-handling-modal>.qb-editor-head{flex:0 0 auto;padding:17px 20px;border-bottom:1px solid #ece7e9}.teacher-handling-scroll{overflow:auto;padding:18px 20px 22px;display:grid;gap:14px}.teacher-handling-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.teacher-handling-summary>div{border:1px solid #e7e8ec;border-radius:11px;padding:10px 11px;background:#fafbfc;min-width:0}.teacher-handling-summary span{display:block;font-size:9px;color:#7f8791;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.teacher-handling-summary b{display:block;margin-top:4px;font-size:20px;color:#7d0b21}.teacher-handling-info{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.teacher-handling-info>div{padding:11px 12px;border-radius:10px;background:#f7f7f8;border:1px solid #ececef}.teacher-handling-info b,.teacher-handling-info span{display:block}.teacher-handling-info b{font-size:10px;color:#363c44;margin-bottom:4px}.teacher-handling-info span{font-size:10px;color:#777f89;line-height:1.45}.teacher-handling-action,.teacher-handling-delete{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 15px;border:1px solid #e7e8eb;border-radius:12px}.teacher-handling-action h3,.teacher-handling-transfer h3,.teacher-handling-delete h3{margin:0 0 4px;font-size:14px;color:#2d3137}.teacher-handling-action p,.teacher-handling-transfer p,.teacher-handling-delete p{margin:0;font-size:10px;color:#7f8790;line-height:1.5}.teacher-handling-transfer{border:1px solid #e2d2d6;border-radius:13px;padding:15px;background:#fffafa;display:grid;gap:12px}.teacher-handling-transfer>label{display:grid;gap:6px}.teacher-handling-transfer>label>span{font-size:10px;font-weight:800;color:#555c65}.teacher-handling-transfer select{width:100%;min-height:40px;border:1px solid #d8dce2;border-radius:9px;padding:0 10px;background:#fff}.teacher-handling-checks{display:grid;gap:8px;padding:11px 12px;border-radius:10px;background:#fff;border:1px solid #eee6e8}.teacher-handling-checks label{display:flex;align-items:flex-start;gap:8px;font-size:10px;color:#4d555f}.teacher-handling-checks input{margin-top:2px;accent-color:#8c1027}.teacher-handling-note{padding:9px 10px;border-radius:9px;background:#fff6e8;color:#79561e!important}.teacher-handling-transfer>.btn{justify-self:end}.teacher-handling-delete.blocked{background:#fafafa;color:#9298a0}.teacher-handling-delete.safe{background:#fff8f8;border-color:#efcfd4}.teacher-handling-delete .btn:disabled{opacity:.45;cursor:not-allowed}.cc-activity-owner em{display:block;margin-top:3px;font-style:normal;font-size:8.5px;color:#9b6570}
@media(max-width:900px){.teacher-handling-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.teacher-handling-info{grid-template-columns:1fr}.teacher-handling-action,.teacher-handling-delete{align-items:flex-start;flex-direction:column}.teacher-handling-action>.btn,.teacher-handling-delete>.btn{width:100%}}
@media(max-width:560px){.teacher-handling-summary{grid-template-columns:1fr 1fr}.teacher-handling-scroll{padding:12px}.teacher-handling-modal>.qb-editor-head p{display:none}}

/* V0.178 - Khối lớp cấu hình động & cây chủ đề theo khối */
.grade-manager-wrap{width:min(780px,94vw)!important;padding:0!important;overflow:hidden!important}.grade-manager{display:flex;flex-direction:column;max-height:90vh}.grade-manager-body{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(340px,1.2fr);gap:14px;padding:16px 18px 20px;overflow:auto}.grade-manager-body>section{border:1px solid #e3e6ea;border-radius:14px;background:#fff;padding:15px}.grade-list{display:flex;flex-direction:column;gap:7px}.grade-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px;border:1px solid #e7e9ed;border-radius:10px;background:#fbfbfc}.grade-row>div:first-child{display:grid;gap:2px}.grade-row b{font-size:12px;color:#303741}.grade-row span{font-size:9px;color:#8b929a}.grade-row>div:last-child{display:flex;gap:5px}
.topic-gradebar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 18px;background:#faf7f8;border-top:1px solid #f0e7e9;border-bottom:1px solid #e8e2e4}.topic-gradebar label{display:flex;align-items:center;gap:9px;font-size:10px;font-weight:850;color:#5d5054}.topic-gradebar select{min-width:180px;border:1px solid #dcdfe4;border-radius:9px;padding:8px 10px;background:#fff}.topic-gradebar>span{font-size:9px;color:#8d8588}.topic-tree-tools{display:flex!important;align-items:center;gap:6px}.topic-tree-connected .topic-tree-row{position:relative;padding-left:calc(10px + var(--depth)*26px)}.topic-tree-connected .topic-tree-row::before{content:"";position:absolute;left:calc(19px + (var(--depth) - 1)*26px);top:-11px;bottom:-11px;border-left:1px solid #dbcfd2;display:var(--branch-line,block)}.topic-tree-connected .topic-tree-row[style*="--depth:0"]::before{display:none}.topic-tree-connected .topic-tree-row::after{content:"";position:absolute;left:calc(19px + (var(--depth) - 1)*26px);top:50%;width:19px;border-top:1px solid #dbcfd2}.topic-tree-connected .topic-tree-row[style*="--depth:0"]::after{display:none}.topic-toggle{width:22px;height:22px;border:0;border-radius:6px;background:#f6ecef;color:#8b1026;display:grid;place-items:center;cursor:pointer;font-size:13px;font-weight:900;flex:0 0 auto;position:relative;z-index:2}.topic-toggle:hover{background:#eed9de}.topic-toggle.empty{background:transparent;color:#b7a8ac;cursor:default}.topic-tree-line{display:none}.topic-tree-row .topic-tree-main>div{min-width:0}.topic-tree-row .topic-tree-main b{font-size:11.5px}.topic-tree-row .topic-tree-main small{max-width:560px}.topic-form-card select:disabled{background:#f4f5f6;color:#777}.qe-classify-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:900px){.grade-manager-body{grid-template-columns:1fr}.topic-gradebar{align-items:flex-start;flex-direction:column}.topic-tree-tools{width:100%;flex-wrap:wrap}.topic-tree-tools .qb-search{flex:1;min-width:180px}.qe-classify-grid{grid-template-columns:1fr}}

/* V0.179 - bộ lọc Khối → Lớp → Học sinh */
.student-class-filter-v179{display:grid;grid-template-columns:minmax(118px,.8fr) minmax(0,1.2fr);gap:7px;padding:0 8px 8px}.student-class-filter-v179>select{min-width:0;border:1px solid #dfe3e8;border-radius:9px;background:#fff;padding:8px 9px;font:inherit;font-size:11px;color:#4e5662}.student-class-filter-v179 .student-class-search-v143{margin:0}.team-picker-filter.v179{grid-template-columns:minmax(105px,.7fr) minmax(110px,.8fr) minmax(150px,1.5fr)!important}.tour-filter-tools.v179{display:grid!important;grid-template-columns:minmax(110px,.7fr) minmax(120px,.8fr) minmax(220px,1.5fr);gap:8px}.duel-student-scope-v179{display:grid;grid-template-columns:1fr 1fr;gap:6px;width:100%;margin:7px 0 5px}.duel-student-scope-v179 select{width:100%;min-width:0;border:1px solid #dfe3e8;border-radius:9px;background:#fff;padding:8px 9px;font:inherit;font-size:11px}
@media(max-width:760px){.student-class-filter-v179,.team-picker-filter.v179,.tour-filter-tools.v179,.duel-student-scope-v179{grid-template-columns:1fr!important}}

/* V0.180 - lớp đang xem trong bộ chọn học sinh */
.student-class-row-v143.active-student-class-v180{border-color:#b92b47;background:#fff4f6;box-shadow:inset 3px 0 0 #970b27}
.student-class-row-v143.active-student-class-v180 .student-class-copy-v143 b{color:#87091f}

/* V0.181 - bảo đảm học sinh ngoài lớp đang xem thực sự bị ẩn.
   Một số rule của thẻ học sinh dùng display:grid!important nên .hidden chung bị ghi đè. */
.oe-builder-full .student-picker-grid-v143 label.hidden,
.student-picker-grid-v143 label.hidden{display:none!important}

/* V0.182 - nhập tài khoản hàng loạt từ Excel */
.user-import-wrap{width:min(1120px,96vw)!important;max-height:92vh!important;padding:0!important;overflow:hidden!important}
.user-import-modal{display:flex;flex-direction:column;max-height:92vh;min-height:560px;background:#fff}
.user-import-modal>.qb-editor-head{flex:0 0 auto;padding:18px 20px 14px;border-bottom:1px solid #ece7e9}
.user-import-scroll{flex:1 1 auto;min-height:0;overflow:auto;padding:18px 20px}
.user-import-start{display:grid;gap:12px}
.user-import-template,.user-import-file{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid #e6e8ed;border-radius:14px;padding:14px 16px;background:#fafbfc}
.user-import-template>div,.user-import-filepick>span{display:flex;flex-direction:column;gap:3px}.user-import-template b,.user-import-filepick b{font-size:13px;color:#30282b}.user-import-template span,.user-import-filepick small{font-size:10px;color:#858b94;line-height:1.45}
.user-import-filepick{display:flex;align-items:center;gap:10px;cursor:pointer;min-width:0;flex:1}.user-import-filepick>.ico{width:20px;height:20px;color:#970b25;flex:0 0 auto}.user-import-filepick>span{min-width:0}.user-import-filepick small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:620px}
.user-import-result{margin-top:16px}.user-import-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:10px}.user-import-summary>div{border:1px solid #e5e7eb;border-radius:12px;padding:11px 13px;background:#fff}.user-import-summary span{display:block;font-size:9px;color:#858b94;text-transform:uppercase;font-weight:850;letter-spacing:.04em}.user-import-summary b{display:block;font-size:22px;margin-top:3px;color:#2a2527}.user-import-summary .ok{background:#f3fbf6;border-color:#d2ebdb}.user-import-summary .ok b{color:#177044}.user-import-summary .bad{background:#fff7f1;border-color:#f1d8c7}.user-import-summary .bad b{color:#a55019}
.user-import-warning{display:flex;align-items:flex-start;gap:7px;padding:9px 11px;border-radius:10px;background:#fff7e8;border:1px solid #f1dfb7;color:#72531a;font-size:10px;line-height:1.45;margin-bottom:10px}.user-import-warning .ico{width:15px;height:15px;flex:0 0 auto;margin-top:1px}
.user-import-table{max-height:350px;border:1px solid #e8e9ed;border-radius:12px}.user-import-table table{min-width:900px}.user-import-table th{position:sticky;top:0;background:#f7f7f8;z-index:1}.user-import-table tr.invalid{background:#fffafa}.user-import-ok{display:inline-flex;padding:4px 7px;border-radius:999px;background:#eaf7ef;color:#167041;font-size:9px;font-weight:850}.user-import-bad{display:block;color:#a13b26;font-size:9px;line-height:1.4;max-width:320px}.user-import-more{font-size:9px;color:#8a9098;padding-top:8px}
.user-import-footer{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 18px;border-top:1px solid #e8e6e7;background:#fff;box-shadow:0 -6px 18px rgba(40,16,23,.04)}.user-import-footer>span{font-size:10px;color:#737a84}.user-import-footer>div{display:flex;gap:8px;align-items:center}
@media(max-width:760px){.user-import-modal{min-height:0;height:92vh}.user-import-template,.user-import-file{align-items:stretch;flex-direction:column}.user-import-template>.btn,.user-import-file>.btn{width:100%}.user-import-summary{grid-template-columns:1fr 1fr 1fr}.user-import-footer{align-items:stretch;flex-direction:column}.user-import-footer>div{display:grid;grid-template-columns:1fr 1fr}.user-import-footer .btn{width:100%}}

/* V0.183 - cây chủ đề: giữ nút thao tác luôn thấy + sắp xếp thủ công */
.topic-manager-wrap{width:min(1280px,98vw)!important}
.topic-manager-body{grid-template-columns:290px minmax(0,1fr)}
.topic-tree-toolbar{flex-wrap:wrap}.topic-tree-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.topic-tree{overflow:auto}.topic-tree-row{display:grid!important;grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:10px;min-width:680px}
.topic-tree-main{min-width:0}.topic-tree-main>div{min-width:0}.topic-tree-main b,.topic-tree-main small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topic-tree-actions{display:flex!important;align-items:center;gap:4px;flex:0 0 auto;position:sticky;right:0;z-index:3;padding:3px 4px 3px 10px;background:linear-gradient(90deg,rgba(255,255,255,0),#fff 10px,#fff 100%)}
.topic-tree-row:hover .topic-tree-actions{background:linear-gradient(90deg,rgba(250,247,248,0),#faf7f8 10px,#faf7f8 100%)}
.topic-tree-actions .icon-btn{width:30px;height:30px;min-width:30px;padding:0;display:grid;place-items:center}.topic-tree-actions .btn.mini{height:30px;padding:0 8px;white-space:nowrap}
.topic-tree-actions .tmMove{font-size:15px;font-weight:900}.topic-tree-actions .tmMove:disabled{opacity:.28;cursor:default}
@media(max-width:900px){.topic-manager-wrap{width:98vw!important}.topic-manager-body{grid-template-columns:1fr}.topic-tree-card{min-height:360px}}
@media(max-width:620px){.topic-tree-actions .tmChild{display:inline-flex!important}.topic-tree-row{min-width:620px}.topic-tree-toolbar{align-items:flex-start}.topic-tree-tools{justify-content:flex-start;width:100%}.topic-tree-tools .qb-search.compact{min-width:180px;flex:1}}

/* V0.185 - Sao lưu & phục hồi theo nội dung */
.backup-tabs{display:flex;gap:6px;margin:0 0 12px;border-bottom:1px solid #e8e8eb;padding-bottom:8px}.backup-tabs button{border:1px solid transparent;background:transparent;border-radius:9px;padding:9px 13px;font-weight:800;color:#69717c;cursor:pointer}.backup-tabs button.active{background:#f8ecef;color:#8d0a20;border-color:#ead3d9}.backup-pane{max-width:1120px}.backup-workspace{padding:18px!important}.backup-mode-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.backup-mode-row>label{display:flex;gap:10px;align-items:flex-start;padding:14px;border:1px solid #e4e7eb;border-radius:12px;cursor:pointer;background:#fff}.backup-mode-row>label:has(input:checked){border-color:#b63149;background:#fff7f8}.backup-mode-row input{margin-top:3px;accent-color:#8d0a20}.backup-mode-row span{display:flex;flex-direction:column;gap:3px}.backup-mode-row b{font-size:13px;color:#303640}.backup-mode-row small{font-size:10px;color:#818894;line-height:1.45}.backup-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.backup-module-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr));margin:8px 0}.backup-module-item{display:flex;gap:8px;align-items:flex-start;border:1px solid #e5e7eb;border-radius:10px;padding:10px 11px;background:#fafbfc;cursor:pointer}.backup-module-item:has(input:checked){background:#fff7f8;border-color:#e0a8b2}.backup-module-item input{margin-top:2px;accent-color:#8d0a20}.backup-module-item span{min-width:0;display:flex;flex-direction:column;gap:2px}.backup-module-item b{font-size:10.5px;color:#38404a}.backup-module-item small{font-size:8.7px;color:#89919a;line-height:1.35}.backup-actions{display:flex;align-items:center;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid #eceef1}.backup-restore-head,.backup-list-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-bottom:14px;border-bottom:1px solid #eceef1}.backup-restore-head>div,.backup-list-head>div{display:flex;flex-direction:column;gap:3px}.backup-restore-head b,.backup-list-head b{font-size:13px}.backup-restore-head span,.backup-list-head span{font-size:10px;color:#7f8790}.backup-restore-head input{max-width:420px;border:1px dashed #cfd4da;border-radius:9px;padding:8px;font-size:9px}.backup-preview{margin-top:14px;border:1px solid #e3e6ea;border-radius:12px;padding:14px;background:#fff}.backup-preview.empty,.backup-preview.loading{min-height:100px;display:grid;place-items:center;color:#8a919b}.backup-preview.error{background:#fff5f6;border-color:#efc5cd;color:#9b2338}.backup-preview-title{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-bottom:12px;border-bottom:1px solid #eceef1}.backup-preview-title>div:first-child{display:flex;flex-direction:column;gap:3px}.backup-preview-title b{font-size:14px}.backup-preview-title span{font-size:9px;color:#858d97}.backup-preview-kpis{display:flex;gap:8px}.backup-preview-kpis span{min-width:74px;padding:8px 10px;border-radius:9px;background:#f5f6f8;text-align:center;font-size:8px;color:#777f88}.backup-preview-kpis b{display:block;font-size:16px;color:#7f0b20}.backup-restore-options{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:16px;padding-top:14px}.backup-restore-options>div>b{display:block;font-size:11px;margin-bottom:8px}.backup-policy{display:flex;flex-direction:column;gap:9px;border-left:1px solid #eceef1;padding-left:16px}.backup-policy label{font-size:10px;color:#5f6670;line-height:1.4}.backup-policy input{accent-color:#8d0a20}.backup-full-restore{margin-top:7px;padding:10px;border-radius:9px;background:#fff1f3;color:#8f1730!important}.backup-preview-actions{display:flex;align-items:center;gap:12px;margin-top:14px;padding-top:13px;border-top:1px solid #eceef1}.backup-preview-actions small{font-size:9px;color:#818995}.backup-history-table{display:flex;flex-direction:column}.backup-history-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 3px;border-bottom:1px solid #eceef1}.backup-history-row>div:first-child{min-width:0;display:flex;flex-direction:column;gap:3px}.backup-history-row b{font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.backup-history-row span{font-size:8.8px;color:#89909a}.backup-history-actions{display:flex;gap:6px}.backup-list-empty{padding:30px;text-align:center;color:#8a919b;font-size:10px}.backup-list-empty.error{color:#9b2338}.danger-soft{color:#a2263d!important;border-color:#efcbd2!important;background:#fff8f9!important}
@media(max-width:900px){.backup-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.backup-restore-options{grid-template-columns:1fr}.backup-policy{border-left:0;border-top:1px solid #eceef1;padding:14px 0 0}.backup-restore-head{align-items:flex-start;flex-direction:column}.backup-restore-head input{max-width:none;width:100%}}
@media(max-width:620px){.backup-mode-row,.backup-module-grid,.backup-module-grid.compact{grid-template-columns:1fr}.backup-tabs{overflow-x:auto}.backup-preview-title,.backup-history-row{align-items:flex-start;flex-direction:column}.backup-history-actions{width:100%}.backup-history-actions .btn{flex:1}.backup-preview-actions{align-items:stretch;flex-direction:column}.backup-preview-actions .btn{width:100%}}

/* V0.186 - phân trang ngân hàng câu hỏi: 50/100 + trang đầu/cuối */
.qb-pager{justify-content:space-between!important;gap:12px!important;flex-wrap:wrap;padding:14px 2px!important}
.qb-page-size,.qb-page-nav{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.qb-page-size{font-size:10px;color:#707884}
.qb-page-size select{height:34px;border:1px solid #dfe2e7;border-radius:9px;background:#fff;padding:0 28px 0 10px;color:#3f4650;font:inherit;font-size:10px;font-weight:750}
.qb-page-nav{justify-content:flex-end;margin-left:auto}
.qb-page-nav>span{min-width:190px;text-align:center;font-size:10px!important;color:#69717d}
.qb-page-nav .btn{min-height:34px;padding:7px 10px!important;white-space:nowrap}
@media(max-width:780px){.qb-pager{align-items:stretch}.qb-page-size{width:100%;justify-content:flex-start}.qb-page-nav{width:100%;justify-content:center;margin-left:0}.qb-page-nav>span{order:-1;width:100%;min-width:0}.qb-page-nav .btn{flex:1;min-width:92px}}

/* V0.187 - Thống kê ngân hàng câu hỏi theo khối / cây chủ đề */
.question-stats-page{display:flex;flex-direction:column;gap:12px;min-width:0}
.qstat-toolbar{display:flex;align-items:flex-end;gap:10px;padding:12px 14px;flex-wrap:wrap}
.qstat-toolbar label{display:flex;flex-direction:column;gap:5px;min-width:220px}.qstat-toolbar label span{font-size:10px;font-weight:850;color:#666d78}.qstat-toolbar select{min-height:38px;border:1px solid #dfe3e8;border-radius:9px;background:#fff;padding:0 10px;font:inherit;color:#303642}
.qstat-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.qstat-kpis>.card{padding:14px 16px;min-height:82px}.qstat-kpis span{font-size:10px;font-weight:800;color:#7c838d;text-transform:uppercase;letter-spacing:.035em}.qstat-kpis b{display:block;margin-top:7px;color:#781026;font-size:25px;line-height:1}
.qstat-section{display:flex;flex-direction:column;gap:9px}.qstat-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}.qstat-section-head h2,.qstat-table-head h2{margin:0;font-size:17px;color:#30282b}.qstat-section-head p,.qstat-table-head p{margin:3px 0 0;color:#858b93;font-size:10px}
.qstat-grade-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}.qstat-grade-card{padding:12px 14px;text-align:left;cursor:pointer;border:1px solid #e7e8ec;transition:.15s;background:#fff}.qstat-grade-card:hover{border-color:#c88996;box-shadow:0 5px 16px rgba(104,16,37,.08);transform:translateY(-1px)}.qstat-grade-card span{display:block;color:#646c76;font-size:10px;font-weight:800}.qstat-grade-card b{display:block;color:#811128;font-size:23px;margin:5px 0 3px}.qstat-grade-card small{font-size:9px;color:#9298a0}
.qstat-table-card{padding:0;overflow:hidden}.qstat-table-head{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 16px;border-bottom:1px solid #eceef1}.qstat-table-head>span{font-size:10px;color:#828994;background:#f5f6f8;border-radius:999px;padding:5px 9px;white-space:nowrap}.qstat-table{width:100%;border-collapse:collapse;min-width:760px}.qstat-table th{background:#fafafb;color:#68717c;text-align:left;font-size:9px;text-transform:uppercase;letter-spacing:.04em;padding:9px 12px;border-bottom:1px solid #e6e8eb}.qstat-table td{padding:9px 12px;border-bottom:1px solid #eef0f2;font-size:10.5px;color:#333a43;vertical-align:middle}.qstat-table tbody tr:hover{background:#fcfafb}.qstat-table td.num,.qstat-table th:nth-child(n+3){text-align:center}.qstat-table td.num{font-variant-numeric:tabular-nums}.qstat-table td.branch-total b{color:#8b0f28}.qstat-table tr.has-children td{background:#fffdfd}.qstat-table tr.unassigned td{background:#fff9ed}
.qstat-grade-name{white-space:nowrap;color:#6a727c;font-weight:750}.qstat-topic{display:flex;align-items:flex-start;gap:7px;padding-left:calc(var(--qdepth,0) * 19px);min-width:250px}.qstat-topic>.qstat-branch{width:14px;flex:0 0 14px;color:#b16a79;font-size:11px;line-height:17px}.qstat-topic>span:last-child{display:flex;flex-direction:column;min-width:0}.qstat-topic b{font-size:11px;color:#2d333b;line-height:1.35}.qstat-topic small{font-size:8.5px;color:#999fa7;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:520px}
@media(max-width:1000px){.qstat-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.qstat-grade-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.qstat-toolbar{align-items:stretch}.qstat-toolbar label{min-width:0;flex:1 1 100%}.qstat-kpis{grid-template-columns:1fr 1fr}.qstat-grade-grid{grid-template-columns:1fr 1fr}.qstat-table-head{align-items:flex-start}.qstat-table-head p{max-width:500px}}

/* V0.189 - Mobile-first application shell and touch layout */
.mobile-menu-toggle,.mobile-nav-backdrop{display:none}
@media(max-width:900px){
  html,body{max-width:100%;overflow-x:hidden}
  body{font-size:14px}
  .app-shell{min-height:100dvh;grid-template-rows:auto 1fr!important}
  .app-shell:not(.exam-mode) .topbar{height:62px!important;min-height:62px;display:grid!important;grid-template-columns:48px minmax(0,1fr) auto!important;gap:0!important;position:sticky!important;top:0!important;z-index:120!important;background:#fff;box-shadow:0 2px 12px rgba(55,25,34,.08)}
  .app-shell:not(.exam-mode) .mobile-menu-toggle{display:inline-flex;width:40px;height:40px;margin-left:7px;align-items:center;justify-content:center;border:0;border-radius:10px;background:#f8ecef;color:#850d24;padding:0;z-index:2}
  .app-shell:not(.exam-mode) .mobile-menu-toggle .ico{width:21px;height:21px}
  .app-shell:not(.exam-mode) .brand-zone{height:62px!important;min-width:0!important;width:auto!important;padding:0 8px!important;gap:8px!important;background:transparent!important;color:#6f091b!important;overflow:hidden}
  .app-shell:not(.exam-mode) .brand-zone:after{display:none!important}
  .app-shell:not(.exam-mode) .brand-zone img{width:38px!important;height:38px!important;flex:0 0 38px;border:1px solid #eadce0;padding:1px}
  .app-shell:not(.exam-mode) .brand-school{min-width:0}
  .app-shell:not(.exam-mode) .brand-school b{font-size:12px!important;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#71091b}
  .app-shell:not(.exam-mode) .brand-school span{display:none!important}
  .app-shell:not(.exam-mode) .arena-title{display:none!important}
  .app-shell:not(.exam-mode) .top-actions{height:62px;padding:0 7px!important;border:0!important;gap:5px!important;justify-self:end!important;width:auto!important}
  .app-shell:not(.exam-mode) .top-actions .avatar{width:36px!important;height:36px!important;font-size:11px}
  .app-shell:not(.exam-mode) .top-actions .top-logout{width:38px;height:38px;padding:0!important;border-radius:10px}
  .app-shell:not(.exam-mode) .top-actions .top-logout .ico{width:18px;height:18px}

  .app-shell:not(.exam-mode):not(.hub-mode) .main{display:block!important;grid-template-columns:1fr!important;min-height:calc(100dvh - 62px)}
  .app-shell:not(.exam-mode):not(.hub-mode) .sidebar,
  .app-shell:not(.exam-mode):not(.hub-mode) .simple-workspace-sidebar{display:flex!important;position:fixed!important;left:0!important;top:62px!important;bottom:0!important;width:min(84vw,320px)!important;height:auto!important;min-height:0!important;padding:10px 9px 14px!important;z-index:112!important;transform:translateX(-105%);transition:transform .22s ease;box-shadow:18px 0 38px rgba(31,9,15,.20);overflow:hidden!important}
  .app-shell.mobile-nav-open:not(.exam-mode) .sidebar{transform:translateX(0)}
  .mobile-nav-backdrop{position:fixed;inset:62px 0 0 0;z-index:111;border:0;background:rgba(20,12,15,.44);backdrop-filter:blur(1px);padding:0}
  .app-shell.mobile-nav-open .mobile-nav-backdrop{display:block}
  .app-shell:not(.exam-mode) .sidebar .workspace-nav,
  .app-shell:not(.exam-mode) .sidebar .nav-group{display:grid!important;grid-auto-flow:row!important;grid-template-columns:1fr!important;gap:4px!important;overflow-y:auto!important;overflow-x:hidden!important;min-height:0;flex:1 1 auto!important;padding:2px!important}
  .app-shell:not(.exam-mode) .sidebar .navbtn{width:100%!important;min-height:44px!important;padding:10px 12px!important;white-space:normal!important;line-height:1.3;text-align:left;border-radius:10px;font-size:12px!important}
  .app-shell:not(.exam-mode) .sidebar .sidebar-back{flex:0 0 auto!important;margin-bottom:8px!important}
  .app-shell:not(.exam-mode) .sidebar .sidebar-bottom{display:grid!important;flex:0 0 auto;margin-top:8px!important;padding:8px 2px 0!important}
  .app-shell:not(.exam-mode) .sidebar .sidebar-slogan{font-size:8px}

  .teacher-preview-bar{position:relative;z-index:30;flex-wrap:wrap;padding:8px 10px!important;gap:7px!important}
  .teacher-preview-bar>span{flex:1 1 calc(100% - 34px);font-size:10px!important}
  .teacher-preview-bar .btn{width:100%;min-height:38px}

  .content{width:100%;max-width:100vw;padding:12px!important;overflow-x:hidden!important}
  .page-head,.page-head.compact-module-head{min-height:0!important;margin-bottom:12px!important;gap:10px!important;align-items:stretch!important;flex-direction:column!important}
  .page-head h1,.page-head.compact-module-head h1{font-size:21px!important;line-height:1.2;margin-bottom:3px!important}
  .page-head p{font-size:11px!important;line-height:1.45}
  .page-head>.actions{width:100%;display:flex;flex-wrap:wrap;gap:7px!important}
  .page-head>.actions>.btn,.page-head>.actions>button{min-height:40px;flex:1 1 145px}
  .page-head>.actions>select,.page-head>.actions>input{min-height:40px;flex:1 1 160px;max-width:none!important}
  .section-head{align-items:flex-start;flex-direction:column;gap:9px}
  .section-head>.actions{width:100%;display:flex;flex-wrap:wrap;gap:7px}
  .section-head>.actions .btn{flex:1 1 130px}
  .card{border-radius:13px;padding:13px;box-shadow:0 4px 16px rgba(50,35,40,.055)}
  .grid.cols-4,.grid.cols-3,.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}
  :is(.qb-stats,.practice-kpis,.oe131-kpis,.cc-kpis,.tc-kpis,.arena-stat-metrics,.audit-kpis,.system-check-kpis,.qstat-kpis){grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}

  .btn{min-height:40px;padding:9px 11px;touch-action:manipulation}
  input,select,textarea{font-size:16px!important}
  .field input,.field select{min-height:43px}
  .field textarea{min-height:96px}
  .table-wrap{max-width:100%;overflow-x:auto!important;overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
  .table{min-width:720px}
  .table th,.table td{padding:9px 10px;font-size:11px}
  .qb-pager{gap:7px!important}
  .qb-page-nav{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px!important}
  .qb-page-nav>span{grid-column:1/-1!important;text-align:center!important;order:-1!important}
  .qb-page-nav .btn{min-width:0!important;padding:8px 5px!important;font-size:10px}

  .modal-backdrop:not(.online-room-backdrop){padding:6px!important;align-items:center!important}
  .modal-backdrop:not(.online-room-backdrop)>.modal{width:calc(100vw - 12px)!important;max-width:calc(100vw - 12px)!important;max-height:calc(100dvh - 12px)!important;border-radius:14px!important;padding:14px!important;overflow:auto}
  .qb-editor-head,.modal-head,.review-modal-head{gap:10px!important}
  .dialog-close,.review-close{min-width:42px;min-height:40px;flex:0 0 auto}
  .qb-editor-footer,.modal-footer{position:sticky;bottom:0;z-index:5;background:#fff;padding:10px!important;box-shadow:0 -5px 14px rgba(35,25,29,.07)}

  .workspace-card-grid,.workspace-card-grid-four{grid-template-columns:1fr!important;gap:10px!important}
  .workspace-card{min-height:112px!important;padding:16px!important}
  .workspace-card-main>b{font-size:16px!important}

  .topic-manager-wrap{width:calc(100vw - 10px)!important;max-width:none!important}
  .topic-manager-body{display:block!important;overflow:auto!important}
  .topic-tree-card{min-height:0!important;max-height:none!important;overflow:auto!important}
  .topic-tree-row{min-width:560px!important}
  .topic-tree-toolbar{position:sticky;left:0;z-index:3;background:#fff;padding-bottom:8px}

  .cc-tabs,.tc-tabs,.backup-tabs,.approval-tabs{overflow-x:auto!important;flex-wrap:nowrap!important;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .cc-tabs::-webkit-scrollbar,.tc-tabs::-webkit-scrollbar,.backup-tabs::-webkit-scrollbar,.approval-tabs::-webkit-scrollbar{display:none}
  .cc-tabs button,.tc-tabs button,.backup-tabs button,.approval-tabs button{white-space:nowrap;min-height:38px}
  .cc-filterbar,.cc-activity-workspace .cc-filterbar,.audit-toolbar,.qstat-toolbar{grid-template-columns:1fr!important}
  .cc-question-row{grid-template-columns:55px minmax(0,1fr) 18px!important;gap:7px!important}
  .cc-qowner,.cc-qstatus,.cc-quse{display:none!important}

  /* Student/exam header: compact and always leaves space for the paper. */
  .app-shell.exam-mode .topbar{height:56px!important;min-height:56px!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;position:sticky!important;top:0!important;z-index:120!important;background:#fff!important;box-shadow:0 2px 10px rgba(60,25,35,.08)}
  .app-shell.exam-mode .brand-zone{display:none!important}
  .app-shell.exam-mode .arena-title{display:block!important;position:static!important;transform:none!important;width:auto!important;max-width:none!important;padding:7px 10px!important;text-align:left!important;overflow:hidden}
  .app-shell.exam-mode .arena-title b{font-size:13px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .app-shell.exam-mode .arena-title .top-context{font-size:9px!important;margin-top:3px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .app-shell.exam-mode .arena-title .motto{display:none!important}
  .app-shell.exam-mode .top-actions{height:56px!important;width:auto!important;padding:0 7px!important;border:0!important;gap:5px!important}
  .app-shell.exam-mode .top-actions .avatar{width:34px!important;height:34px!important}
  .app-shell.exam-mode .top-actions .top-logout{width:37px;height:37px;padding:0!important}
  .app-shell.exam-mode .main{display:block!important;min-height:calc(100dvh - 56px)}
  .app-shell.exam-mode .content{padding:7px!important;overflow:visible!important}
  .exam-content-fixed{height:auto!important;min-height:calc(100dvh - 70px)!important;overflow:visible!important}
  .exam-shell{width:100%;max-width:none;margin:0!important}
  .duel-banner{margin-bottom:7px!important;padding:10px 8px!important;grid-template-columns:minmax(0,1fr) 46px minmax(0,1fr)!important;gap:5px!important;border-radius:11px!important}
  .duel-name{font-size:12px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .duel-sub,.duel-stat{font-size:8px!important}
  .duel-vs{font-size:25px!important}
  .exam-grid,.practice-body-grid,.online-exam-grid-v128{display:block!important;height:auto!important;overflow:visible!important}
  .qnav,.online-qnav-v128,.practice-body-grid>.qnav{position:static!important;height:auto!important;max-height:none!important;margin-bottom:7px!important;padding:8px!important}
  .qnav-scroll,.online-qnav-v128 .qnav-scroll,.practice-body-grid .qnav-scroll{max-height:142px!important;overflow:auto!important;-webkit-overflow-scrolling:touch}
  .qnav-grid,.practice-body-grid .qnav-grid,.online-qnav-v128 .qnav-grid{grid-template-columns:repeat(7,minmax(31px,1fr))!important;gap:4px!important}
  .qnum,.practice-body-grid .qnum,.online-qnav-v128 .qnum{min-width:31px;height:32px!important;font-size:10px!important}
  .legend,.online-legend-v128,.online-qnav-summary-v128{display:none!important}
  .submit-wrap{margin-top:7px!important}
  .submit-wrap .btn{height:40px!important;font-size:11px!important}
  .exam-question-area,.online-question-area-v128,.practice-body-grid .exam-question-area{height:auto!important;min-height:0!important;overflow:visible!important;padding:0!important}
  .question-card,.all-question-card,.online-question-card-v128{height:auto!important;max-height:none!important;overflow:visible!important;padding:14px 12px!important;border-radius:12px!important}
  .question-topline,.online-question-top-v128{margin:-14px -12px 12px!important;padding:9px 10px!important;gap:7px!important}
  .stem,.online-question-card-v128 .stem,.practice-exam .stem{font-size:15px!important;line-height:1.55!important;overflow-wrap:anywhere}
  .option{min-height:46px;padding:11px!important;margin:7px 0!important}
  .tf-row,.online-question-card-v128 .tf-row{grid-template-columns:minmax(0,1fr) 62px 62px!important;gap:5px!important;padding:8px!important}
  .tf-row label{min-height:39px;display:flex;align-items:center;justify-content:center}
  .exam-actions,.online-question-actions-v128{grid-template-columns:1fr 1fr!important;gap:7px!important}
  .exam-actions .btn,.online-question-actions-v128 .btn{min-height:43px!important}
  .right-stack,.practice-side-panel,.online-exam-side-v128{position:static!important;display:block!important;height:auto!important;margin-top:7px!important;overflow:visible!important}
  .right-stack>.exam-panel,.practice-side-panel>.exam-panel,.online-exam-side-v128>.exam-panel{margin-bottom:7px}
  .practice-exam-toolbar,.online-exam-toolbar-v128{position:sticky;top:56px;z-index:20;margin-bottom:7px!important;border-radius:10px!important;padding:7px!important;box-shadow:0 4px 14px rgba(45,25,31,.08)}
  .practice-exam-actions,.online-toolbar-actions-v128{gap:6px!important}
  .practice-exam-actions .btn,.online-toolbar-actions-v128 .btn{min-height:38px!important;font-size:9px!important;padding:7px!important}
  .practice-exam-title b,.online-exam-identity-v128 b{font-size:11px!important}
  .practice-exam-title small,.online-exam-identity-v128 span{font-size:8px!important;white-space:normal!important}
  .practice-exam-timer,.online-exam-timer-v128{min-height:38px!important}
  .all-question-list{gap:8px!important}
  .waiting-shell{margin:7px auto 18px;border-radius:14px}
  .waiting-brand{padding:18px 12px 14px}
  .waiting-duel{grid-template-columns:1fr 38px 1fr!important;gap:5px!important;padding:12px 8px!important}
  .wait-avatar{width:46px;height:46px}
  .waiting-player b{font-size:11px!important}
  .waiting-vs{font-size:22px!important}
}

@media(max-width:480px){
  .app-shell:not(.exam-mode) .topbar{grid-template-columns:45px minmax(0,1fr) auto!important}
  .app-shell:not(.exam-mode) .brand-zone img{width:34px!important;height:34px!important;flex-basis:34px}
  .app-shell:not(.exam-mode) .brand-school b{font-size:11px!important}
  .content{padding:9px!important}
  .page-head h1,.page-head.compact-module-head h1{font-size:19px!important}
  .page-head>.actions{display:grid!important;grid-template-columns:1fr 1fr!important}
  .page-head>.actions>*{width:100%!important;min-width:0!important}
  .grid.cols-4,.grid.cols-3,.grid.cols-2{grid-template-columns:1fr!important}
  :is(.qb-stats,.practice-kpis,.oe131-kpis,.cc-kpis,.tc-kpis,.arena-stat-metrics,.audit-kpis,.system-check-kpis,.qstat-kpis){grid-template-columns:1fr 1fr!important}
  .card{padding:11px}
  .modal-backdrop:not(.online-room-backdrop){padding:3px!important}
  .modal-backdrop:not(.online-room-backdrop)>.modal{width:calc(100vw - 6px)!important;max-width:calc(100vw - 6px)!important;max-height:calc(100dvh - 6px)!important;border-radius:11px!important;padding:11px!important}
  .qb-page-nav{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .qnav-grid,.practice-body-grid .qnav-grid,.online-qnav-v128 .qnav-grid{grid-template-columns:repeat(6,minmax(31px,1fr))!important}
  .tf-row,.online-question-card-v128 .tf-row{grid-template-columns:minmax(0,1fr) 56px 56px!important;font-size:11px}
  .practice-exam-toolbar,.online-exam-toolbar-v128{top:56px}
  .practice-exam-actions,.online-toolbar-actions-v128{grid-template-columns:1fr 1fr!important;width:100%}
}

@media(hover:none) and (pointer:coarse){
  .btn:hover,.navbtn:hover,.workspace-card:hover{transform:none!important;box-shadow:none}
  .btn,.navbtn,.qnum,.option,label,button{touch-action:manipulation}
}

/* V0.190 - Màn xem giao đấu tối ưu riêng cho điện thoại */
.duel-mobile-player-tabs{display:none}
@media(max-width:760px){
  .duel-monitor-shell{grid-template-rows:auto auto minmax(0,1fr)!important;background:#f4f6f8}
  .duel-monitor-top{position:relative!important;display:flex!important;flex-wrap:wrap!important;align-items:flex-start!important;gap:8px!important;padding:10px 48px 9px 10px!important;min-height:0!important;background:#fff}
  .duel-monitor-top>div:first-child{width:100%;min-width:0;padding-right:2px}
  .duel-monitor-top h1{font-size:18px!important;line-height:1.2!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;margin-top:3px!important}
  .duel-kicker{font-size:9px!important;line-height:1.2!important}
  .duel-top-center{display:none!important}
  .duel-top-actions{width:100%!important;display:flex!important;justify-content:flex-start!important;align-items:center!important;gap:6px!important;flex-wrap:wrap!important}
  .duel-follow-switch,.duel-mode-switch{flex:1 1 auto!important;min-width:0!important;display:grid!important;grid-template-columns:1fr 1fr!important;padding:3px!important}
  .duel-follow-switch button,.duel-mode-switch button{min-width:0!important;height:38px!important;justify-content:center!important;padding:0 7px!important;font-size:10px!important;white-space:nowrap!important}
  .duel-follow-switch button svg,.duel-mode-switch button svg{width:14px!important;height:14px!important}
  .duel-close-btn{position:absolute!important;right:8px!important;top:8px!important;width:38px!important;height:38px!important;border-radius:10px!important;background:#fff4f6!important;border-color:#edc8d0!important;color:#8f0d25!important;font-size:24px!important;z-index:10}

  .duel-mobile-player-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:7px 8px;background:#fff;border-bottom:1px solid #dfe3e8;box-shadow:0 2px 7px rgba(30,38,48,.04);z-index:5}
  .duel-mobile-player-tab{min-width:0;border:1px solid #dfe3e8;background:#f8f9fb;border-radius:11px;padding:8px 9px;text-align:left;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:7px;row-gap:1px;color:#313843;cursor:pointer;touch-action:manipulation}
  .duel-mobile-player-tab>span{grid-row:1/3;align-self:center;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#f4e6ea;color:#8f0d25;font-size:8px;font-weight:950}
  .duel-mobile-player-tab>b{min-width:0;font-size:11px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .duel-mobile-player-tab>small{min-width:0;font-size:8px;color:#77818c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .duel-mobile-player-tab.active{border-color:#9d1730;background:#fff4f6;box-shadow:0 0 0 2px rgba(157,23,48,.08) inset}
  .duel-mobile-player-tab.active>span{background:#8f0d25;color:#fff}
  .duel-mobile-player-tab.submitted:not(.active){background:#f4faf6;border-color:#d3e8dc}
  .duel-mobile-player-tab.submitted:not(.active)>span{background:#e3f4e9;color:#187647}

  .duel-stage{display:block!important;min-height:0!important;overflow:hidden!important;background:#f4f6f8}
  .duel-pane-host{display:none!important;width:100%!important;height:100%!important;min-height:0!important;overflow:hidden!important}
  .duel-pane-host.mobile-active{display:block!important}
  .duel-stage>.duel-vs{display:none!important}
  .duel-side{height:100%!important;min-height:0!important;border:0!important;grid-template-rows:auto auto minmax(0,1fr)!important}
  .duel-side.is-submitted{grid-template-rows:auto minmax(0,1fr)!important}
  .duel-player-head{min-height:70px!important;padding:10px 11px!important;gap:8px!important}
  .duel-player-id{gap:9px!important;min-width:0!important;flex:1 1 auto!important}
  .duel-avatar{width:43px!important;height:43px!important;font-size:12px!important;box-shadow:0 0 0 3px #f8e8ec!important}
  .duel-avatar.alt{box-shadow:0 0 0 3px #e9edf6!important}
  .duel-player-id h2{font-size:14px!important;line-height:1.2!important;white-space:normal!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden!important}
  .duel-player-id small{font-size:8px!important}
  .duel-player-id span{font-size:9px!important;white-space:normal!important;line-height:1.3!important}
  .duel-player-status{min-width:70px!important}
  .duel-player-status b{font-size:14px!important}
  .duel-player-status span{display:block!important;font-size:8px!important;white-space:normal!important;line-height:1.25!important}
  .duel-side.is-submitted .duel-player-status b{font-size:9px!important;padding:5px 7px!important}

  .duel-nav-wrap{padding:7px 8px 5px!important}
  .duel-nav-grid{gap:6px!important;padding-bottom:5px!important}
  .duel-qnum{flex-basis:34px!important;width:34px!important;height:34px!important;font-size:11px!important;border-radius:8px!important}
  .duel-nav-legend{gap:9px!important;font-size:8px!important;overflow-x:auto!important;white-space:nowrap!important;padding-bottom:2px!important}
  .duel-paper-scroll{padding:9px 8px 18px!important;overflow:auto!important;-webkit-overflow-scrolling:touch}
  .duel-all-questions{gap:9px!important}
  .duel-side .live-work-question.compact{padding:13px 12px!important;border-radius:11px!important}
  .duel-side .live-work-question.compact .review-stem{font-size:14px!important;line-height:1.55!important;overflow-wrap:anywhere}
  .duel-side .live-work-question.compact .live-work-option{grid-template-columns:26px minmax(0,1fr) auto!important;padding:10px 9px!important;gap:8px!important;border-radius:9px!important;font-size:13px!important;line-height:1.45!important}
  .duel-side .live-work-question.compact .live-work-tf-row{grid-template-columns:minmax(0,1fr) 68px!important;padding:9px!important;gap:7px!important;font-size:12px!important}
  .duel-side .live-work-question.compact .live-work-tf-choice{font-size:10px!important;min-height:34px!important;display:grid!important;place-items:center!important}
  .duel-side .live-work-question.compact .live-work-picked{font-size:8px!important;white-space:nowrap!important}

  .duel-submitted-state{justify-content:flex-start!important;overflow:auto!important;padding:24px 14px 26px!important}
  .duel-submitted-check{width:58px!important;height:58px!important;margin-bottom:11px!important}
  .duel-submitted-state h3{font-size:24px!important}
  .duel-submitted-state p{font-size:11px!important;line-height:1.55!important;max-width:360px!important}
  .duel-submitted-stats{grid-template-columns:1fr!important;width:100%!important;max-width:390px!important;margin:17px 0 12px!important;gap:7px!important}
  .duel-submitted-stats>div{padding:11px 9px!important}
  .duel-submitted-stats span,.duel-submitted-stats small{font-size:8.5px!important}
  .duel-submitted-stats b{font-size:15px!important}
  .duel-submitted-wait{max-width:390px!important;border-radius:12px!important;font-size:9px!important;line-height:1.35!important;text-align:left!important}
}

@media(max-width:420px){
  .duel-monitor-top{padding-left:8px!important;padding-bottom:8px!important}
  .duel-monitor-top h1{font-size:17px!important}
  .duel-follow-switch button,.duel-mode-switch button{font-size:9px!important;padding:0 5px!important}
  .duel-mobile-player-tabs{padding:6px!important;gap:5px!important}
  .duel-mobile-player-tab{padding:7px!important;column-gap:6px!important}
  .duel-mobile-player-tab>span{width:31px;height:31px;font-size:7.5px!important}
  .duel-mobile-player-tab>b{font-size:10px!important}
  .duel-mobile-player-tab>small{font-size:7.5px!important}
  .duel-player-status{min-width:62px!important}
}

/* V0.191 - Phòng học trực tuyến & phòng tự học */
.live-page-head{align-items:flex-end}.live-room-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 14px}.live-room-summary>div{background:#fff;border:1px solid #eadfe2;border-radius:14px;padding:14px 16px;display:flex;align-items:baseline;gap:9px;box-shadow:0 5px 18px rgba(74,11,28,.04)}.live-room-summary b{font-size:24px;color:#7f0b20}.live-room-summary span{font-size:11px;color:#777f89;font-weight:700}.live-room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px}.live-room-card{background:#fff;border:1px solid #eadfe2;border-radius:17px;padding:16px;display:flex;flex-direction:column;gap:13px;box-shadow:0 7px 22px rgba(64,12,25,.045)}.live-room-card.teacher{border-top:3px solid #7f0b20}.live-room-card.self_study{border-top:3px solid #b87816}.live-room-card-top{display:grid;grid-template-columns:48px minmax(0,1fr);gap:11px}.live-room-owner-avatar{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#f3e0e4;color:#7f0b20;font-weight:900;overflow:hidden}.live-room-owner-avatar img{width:100%;height:100%;object-fit:cover}.live-room-card-top span{font-size:9px;font-weight:900;color:#9a6570;text-transform:uppercase;letter-spacing:.045em}.live-room-card-top h3{margin:3px 0 5px;color:#311f24;font-size:16px}.live-room-card-top p{margin:0;color:#7a7376;font-size:11px;line-height:1.5;min-height:32px}.live-room-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.live-room-meta span{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border-radius:999px;background:#f7f7f8;color:#69717c;font-size:9px}.live-room-meta svg{width:13px;height:13px}.live-room-card-foot{border-top:1px solid #efebec;padding-top:11px;display:flex;align-items:center;justify-content:space-between;gap:10px}.live-room-card-foot>div{min-width:0}.live-room-card-foot b,.live-room-card-foot small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-room-card-foot b{font-size:11px}.live-room-card-foot small{font-size:8.5px;color:#92979e;margin-top:2px}.live-empty{grid-column:1/-1;min-height:180px;display:grid;place-items:center;text-align:center}.live-empty b,.live-empty span{display:block}.live-empty span{font-size:11px;color:#7f8790}.live-mine-modal{width:min(680px,88vw)}.live-mine-list{display:flex;flex-direction:column;gap:7px;max-height:60vh;overflow:auto;padding-top:12px}.live-mine-list button{border:1px solid #e6e1e3;background:#fff;border-radius:11px;padding:11px 12px;display:flex;align-items:center;justify-content:space-between;text-align:left;cursor:pointer}.live-mine-list button:hover{background:#faf5f6}.live-mine-list span b,.live-mine-list span small{display:block}.live-mine-list span b{font-size:12px}.live-mine-list span small{font-size:9px;color:#858b93;margin-top:3px}.live-mine-list em{font-size:10px;font-style:normal;color:#8c1027;font-weight:850}.live-create-modal{width:min(720px,92vw);overflow:hidden}.live-create-form{padding:16px 3px 5px}.live-create-note{padding:11px 12px;border-radius:10px;background:#f9f2f4;border:1px solid #eadadd;color:#6f535a;font-size:11px}.live-create-foot{display:flex;justify-content:flex-end;gap:8px;padding-top:14px;border-top:1px solid #eee}.live-room-page{min-height:calc(100vh - 100px)}.live-room-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;padding-bottom:13px;border-bottom:1px solid #eae6e7;margin-bottom:13px}.live-room-head h1{margin:2px 0 2px;color:#6f091c;font-size:22px}.live-room-head p{margin:0;color:#777f88;font-size:10px}.live-room-main{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px;align-items:start}.live-stage{min-width:0;display:flex;flex-direction:column;gap:12px}.live-media-placeholder{min-height:180px;border:1px dashed #d8c1c6;background:linear-gradient(145deg,#fbf5f6,#fff);border-radius:17px;display:grid;place-items:center;text-align:center;align-content:center;gap:7px;padding:22px}.live-media-placeholder>div{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#8b0d25;color:#fff}.live-media-placeholder svg{width:22px;height:22px}.live-media-placeholder b{font-size:15px;color:#3c292e}.live-media-placeholder span{font-size:11px;color:#6e7078}.live-media-placeholder small{font-size:9px;color:#a08f94}.live-side{position:sticky;top:78px}.live-members-card,.live-chat-card,.live-poll-card{background:#fff;border:1px solid #e7e3e4;border-radius:15px;overflow:hidden}.live-panel-title{display:flex;align-items:center;justify-content:space-between;padding:11px 13px;border-bottom:1px solid #eee;background:#fcfbfb}.live-panel-title b{font-size:12px}.live-panel-title span{font-size:9px;color:#858b94}.live-members-card>div:last-child{max-height:65vh;overflow:auto}.live-member{display:grid;grid-template-columns:36px minmax(0,1fr) auto auto;gap:9px;align-items:center;padding:9px 11px;border-bottom:1px solid #f1eff0}.live-member:last-child{border-bottom:0}.live-member.offline{opacity:.58}.live-member.raised{background:#fff8e8}.live-member-avatar,.live-msg-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#f0dde1;color:#831027;font-weight:850;font-size:11px;overflow:hidden}.live-member-avatar img,.live-msg-avatar img{width:100%;height:100%;object-fit:cover}.live-member>div:nth-child(2){min-width:0}.live-member b,.live-member span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-member b{font-size:10.5px}.live-member span{font-size:8.5px;color:#8b9299;margin-top:2px}.live-member em{font-style:normal;font-size:17px}.liveKick{border:0;background:#f6e8eb;color:#8d0b22;width:25px;height:25px;border-radius:50%;font-size:17px;cursor:pointer}.live-messages{height:290px;overflow:auto;padding:11px 12px;display:flex;flex-direction:column;gap:9px}.live-msg{display:grid;grid-template-columns:30px minmax(0,1fr);gap:7px;max-width:82%}.live-msg.mine{align-self:flex-end;grid-template-columns:minmax(0,1fr);max-width:76%}.live-msg.mine .live-msg-avatar{display:none}.live-msg-avatar{width:30px;height:30px;font-size:9px}.live-msg>div:last-child{background:#f5f5f6;border-radius:4px 12px 12px 12px;padding:7px 9px}.live-msg.mine>div:last-child{background:#f5e6e9;border-radius:12px 4px 12px 12px}.live-msg span{display:flex;gap:8px;align-items:center}.live-msg span b{font-size:8.8px}.live-msg span small{font-size:7.5px;color:#9a9da3}.live-msg p{margin:3px 0 0;font-size:10.5px;line-height:1.45;white-space:pre-wrap;word-break:break-word}.live-empty-chat{margin:auto;color:#9a9ea4;font-size:10px}.live-chat-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;padding:9px;border-top:1px solid #eee}.live-chat-form input{min-width:0}.live-poll-card{padding:15px}.live-poll-head{display:flex;align-items:flex-start;justify-content:space-between;gap:13px}.live-poll-head span{display:block;font-size:8px;color:#9b0a25;font-weight:900;letter-spacing:.07em}.live-poll-head b{display:block;margin-top:4px;font-size:14px;line-height:1.45;color:#2d2527}.live-poll-head em{font-size:9px;color:#7e848c;font-style:normal;white-space:nowrap}.live-poll-options{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:13px}.live-poll-option{border:1px solid #e5e2e3;background:#fff;border-radius:10px;display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:center;padding:10px;text-align:left;cursor:pointer}.live-poll-option strong{width:27px;height:27px;border-radius:8px;background:#f4ecee;color:#8a0b23;display:grid;place-items:center}.live-poll-option span{font-size:11px;line-height:1.4}.live-poll-option em{font-size:9px;color:#8a9098;font-style:normal}.live-poll-option.selected{border-color:#b85e70;background:#fff8f9}.live-poll-option.correct{border-color:#74b590;background:#f1fbf5}.live-poll-option.correct strong{background:#dff3e7;color:#176d3c}.live-poll-explain{margin-top:10px;padding:9px 11px;background:#f3faf6;border:1px solid #d7ebdf;border-radius:9px}.live-poll-explain b,.live-poll-explain span{display:block}.live-poll-explain b{font-size:10px;color:#176d3c}.live-poll-explain span{font-size:9px;color:#607166;margin-top:3px}.live-poll-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:10px}.live-quick-modal{width:min(900px,94vw);overflow:hidden}.live-quick-tabs{display:flex;gap:5px;border-bottom:1px solid #e9e5e6;margin-top:8px}.live-quick-tabs button{border:0;background:transparent;padding:9px 11px;font-weight:800;color:#747b83;cursor:pointer}.live-quick-tabs button.active{color:#8a0c23;border-bottom:2px solid #8a0c23}.live-quick-pane{padding-top:12px}.live-quick-pane .qb-search{display:grid;grid-template-columns:1fr auto;gap:7px}.live-quick-list{max-height:55vh;overflow:auto;display:flex;flex-direction:column;gap:6px;margin-top:9px}.live-quick-q{border:1px solid #e6e2e3;background:#fff;border-radius:10px;padding:10px 11px;display:flex;align-items:center;justify-content:space-between;text-align:left;gap:10px;cursor:pointer}.live-quick-q:hover{background:#faf6f7}.live-quick-q span{min-width:0}.live-quick-q b,.live-quick-q small{display:block}.live-quick-q b{font-size:8.5px;color:#8b0c24}.live-quick-q small{font-size:10.5px;color:#383033;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-quick-q em{font-size:9px;font-style:normal;font-weight:850;color:#8a0b23}.workspace-classroom .sidebar{background:linear-gradient(180deg,#6d0b1e,#4e0715)}
@media(max-width:900px){.live-room-main{grid-template-columns:1fr}.live-side{position:static}.live-members-card>div:last-child{max-height:300px}.live-room-head{grid-template-columns:1fr auto}.live-room-head>#liveBack{grid-column:1/-1;justify-self:start}.live-poll-options{grid-template-columns:1fr}}
@media(max-width:620px){.live-room-summary{grid-template-columns:1fr 1fr}.live-room-summary>div{padding:11px 12px}.live-room-summary b{font-size:20px}.live-room-grid{grid-template-columns:1fr}.live-room-card{padding:13px}.live-room-head{display:flex;flex-wrap:wrap;gap:8px}.live-room-head>#liveBack{width:auto}.live-room-head>#liveHeadInfo{width:100%;order:2}.live-room-head>#liveHeadActions{width:100%;order:3;display:grid;grid-template-columns:1fr 1fr}.live-room-head>#liveHeadActions .btn:last-child:nth-child(3){grid-column:1/-1}.live-media-placeholder{min-height:130px;padding:15px}.live-media-placeholder small{display:none}.live-messages{height:260px}.live-msg{max-width:92%}.live-msg.mine{max-width:88%}.live-chat-form{grid-template-columns:1fr auto}.live-poll-card{padding:12px}.live-poll-head{flex-direction:column}.live-poll-options{grid-template-columns:1fr}.live-create-modal,.live-quick-modal{width:calc(100vw - 12px)!important}.live-create-form .row{grid-template-columns:1fr}.live-quick-list{max-height:48vh}.live-room-owner-avatar{width:42px;height:42px}.live-room-card-top{grid-template-columns:42px 1fr}.live-side{order:-1}}
.live-attendance-modal{width:min(880px,94vw)}.live-attendance-list{max-height:65vh;overflow:auto;margin-top:10px}.live-attendance-row{display:grid;grid-template-columns:1.4fr .7fr .65fr .6fr .7fr;gap:9px;align-items:center;padding:9px 10px;border-bottom:1px solid #eee;font-size:10px}.live-attendance-row.head{position:sticky;top:0;background:#fafafa;font-weight:900;color:#6f737b;z-index:1}.live-attendance-row span:first-child b,.live-attendance-row span:first-child small{display:block}.live-attendance-row span:first-child small{font-size:8px;color:#90959c;margin-top:2px}.live-attendance-row .online{color:#187648;font-weight:800}.live-attendance-row .offline{color:#8b9098}@media(max-width:620px){.live-attendance-row{grid-template-columns:1.5fr .7fr .7fr}.live-attendance-row span:nth-child(4),.live-attendance-row.head span:nth-child(4){display:none}.live-attendance-row span:nth-child(5){font-size:8.5px}}

/* V0.192 - Phòng học bố cục kiểu Zoom: stage chính + panel phải Thành viên/Chat */
.live-room-page{min-height:calc(100vh - 100px);display:flex;flex-direction:column;min-width:0}
.live-room-main{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:12px;align-items:stretch;min-height:0}
.live-room-main.panel-hidden{grid-template-columns:minmax(0,1fr)}
.live-room-main.panel-hidden .live-side{display:none!important}
.live-stage{min-width:0;min-height:0;display:flex;flex-direction:column;gap:12px}
.live-media-placeholder{min-height:430px;flex:1 1 auto}
.live-side{position:sticky;top:78px;align-self:start;min-width:0}
.live-side-shell{height:calc(100vh - 215px);min-height:520px;max-height:780px;background:#fff;border:1px solid #e7e3e4;border-radius:15px;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);box-shadow:0 8px 28px rgba(57,20,30,.06)}
.live-side-tabs{display:grid;grid-template-columns:1fr 1fr 38px;align-items:stretch;border-bottom:1px solid #e9e5e6;background:#fbfafb}
.live-side-tabs>button:not(.live-side-close){border:0;background:transparent;min-height:46px;padding:0 10px;display:flex;align-items:center;justify-content:center;gap:6px;color:#68707a;font:inherit;font-size:10px;font-weight:850;cursor:pointer;border-bottom:2px solid transparent}
.live-side-tabs>button:not(.live-side-close) svg{width:15px;height:15px}
.live-side-tabs>button:not(.live-side-close).active{color:#8b0c24;background:#fff;border-bottom-color:#8b0c24}
.live-side-tabs>button span{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#f1e8ea;color:#8b0c24;font-size:8px;font-weight:900}
.live-side-close{border:0;border-left:1px solid #ebe7e8;background:#fff;color:#7a6f73;font-size:22px;cursor:pointer}.live-side-close:hover{background:#f8ecef;color:#8b0c24}
.live-side-pane{display:none;min-height:0;overflow:hidden}.live-side-pane.active{display:flex;flex-direction:column}
.live-members-list{min-height:0;overflow:auto;flex:1 1 auto}
.live-side-pane[data-live-side-pane="chat"] .live-messages{height:auto;min-height:0;flex:1 1 auto}
.live-side-pane[data-live-side-pane="chat"] .live-chat-form{flex:0 0 auto}
.live-panel-toggle{white-space:nowrap}
.live-poll-card{flex:0 0 auto}
@media(max-width:1180px){.live-room-main{grid-template-columns:minmax(0,1fr) 310px}.live-media-placeholder{min-height:360px}.live-room-head{gap:10px}.live-room-head .actions{gap:6px;flex-wrap:wrap;justify-content:flex-end}}
@media(max-width:900px){
  .live-room-main{display:block;min-height:0}.live-room-main.panel-hidden .live-side{display:none!important}.live-stage{width:100%}.live-media-placeholder{min-height:300px}
  .live-side{position:fixed!important;z-index:85;right:10px;top:70px;bottom:10px;width:min(390px,calc(100vw - 20px));max-width:none;align-self:auto;filter:drop-shadow(0 18px 38px rgba(37,10,18,.22))}
  .live-side-shell{height:100%;min-height:0;max-height:none;border-radius:16px}
  .live-room-page.live-panel-open:after{content:"";position:fixed;inset:0;background:rgba(30,10,15,.22);z-index:80;pointer-events:none}
  .live-room-head{grid-template-columns:auto minmax(0,1fr);align-items:start}.live-room-head>#liveHeadActions{grid-column:1/-1;display:flex;overflow-x:auto;justify-content:flex-start;padding-bottom:2px}.live-room-head>#liveHeadActions .btn{flex:0 0 auto}
}
@media(max-width:620px){
  .live-room-page{min-height:calc(100dvh - 70px)}.live-room-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;margin-bottom:8px}.live-room-head>#liveBack{width:auto;align-self:start}.live-room-head>#liveHeadInfo{width:auto;order:initial;min-width:0}.live-room-head>#liveHeadInfo h1{font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-room-head>#liveHeadInfo p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-room-head>#liveHeadActions{width:auto;order:initial;grid-column:1/-1;display:flex;gap:6px;overflow-x:auto}.live-room-head>#liveHeadActions .btn{min-height:38px;padding:0 11px;font-size:9px}
  .live-media-placeholder{min-height:250px;border-radius:14px;padding:18px}.live-media-placeholder b{font-size:14px}.live-media-placeholder span{font-size:10px}.live-side{top:8px;right:6px;bottom:8px;width:calc(100vw - 12px)}.live-side-shell{border-radius:17px}.live-side-tabs>button:not(.live-side-close){min-height:50px;font-size:11px}.live-messages{padding:10px;height:auto}.live-chat-form{padding:9px}.live-chat-form input{min-height:42px}.live-chat-form button{min-height:42px}.live-member{padding:11px}.live-member-avatar{width:40px;height:40px}.live-poll-card{border-radius:13px}.live-poll-options{grid-template-columns:1fr}
}

/* V0.193 - LiveKit camera / micro / chia sẻ màn hình */
.live-media-stage{position:relative;min-height:430px;flex:1 1 auto;border-radius:17px;background:#17191f;overflow:hidden;border:1px solid #2a2e36;display:flex;flex-direction:column;gap:8px;padding:10px}
.live-media-empty{position:absolute;inset:0;z-index:3;display:grid;place-items:center;align-content:center;text-align:center;gap:8px;padding:22px;background:linear-gradient(145deg,#22252c,#111318);color:#fff}.live-media-empty>div{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;background:#94132c}.live-media-empty svg{width:23px;height:23px}.live-media-empty b{font-size:17px}.live-media-empty span{font-size:11px;color:#d5d8de;max-width:520px}.live-media-empty small{font-size:9px;color:#969da7}.live-media-empty .btn{margin-top:4px}.live-media-empty.hidden{display:none!important}
.live-screen-share-stage{flex:1 1 auto;min-height:270px;border-radius:12px;overflow:hidden;background:#08090b;display:grid;place-items:center}.live-screen-share-stage.hidden{display:none!important}.live-screen-share-stage .live-media-tile{width:100%;height:100%;min-height:270px}
.live-video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;align-content:start}.live-screen-share-stage:not(.hidden)+.live-video-grid{grid-template-columns:repeat(auto-fit,minmax(120px,180px));flex:0 0 auto}.live-screen-share-stage:not(.hidden)+.live-video-grid .live-media-tile{min-height:100px}
.live-media-tile{position:relative;min-height:180px;border-radius:12px;overflow:hidden;background:#292d35;display:grid;place-items:center;color:#fff;border:1px solid #383d47}.live-media-tile.screen-share{min-height:300px;border:0;border-radius:10px}.live-media-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#050506}.live-media-tile.screen-share .live-media-video{object-fit:contain}.live-media-avatar{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;background:#8e1730;font-size:22px;font-weight:900}.live-media-name{position:absolute;left:8px;bottom:7px;z-index:2;max-width:calc(100% - 16px);padding:5px 8px;border-radius:7px;background:rgba(0,0,0,.58);font-size:9px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-media-tile.muted .live-media-video{display:none}.live-audio-bin{position:absolute;width:1px;height:1px;overflow:hidden;opacity:.01;pointer-events:none}
.live-media-controls{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;background:#fff;border:1px solid #e6e2e3;border-radius:14px;padding:8px 10px;box-shadow:0 5px 18px rgba(40,16,22,.05)}.live-media-controls>span{margin-right:auto;font-size:9px;color:#747b84;font-weight:800;padding:0 4px}.live-media-controls .btn{min-height:38px}.live-media-controls .btn.active{background:#8d1028;color:#fff;border-color:#8d1028}.live-media-controls .btn:disabled{opacity:.45}
.livekit-settings{margin-top:14px;padding:14px;border:1px solid #e7dfe1;border-radius:14px;background:#fcfafb}.livekit-settings h4{margin:0 0 3px;color:#67101f;font-size:14px}.livekit-note{margin-top:10px;padding:9px 11px;border-radius:9px;background:#f5f6f7;color:#69717b;font-size:9.5px;line-height:1.5}.livekit-note b{color:#731126}
@media(max-width:1180px){.live-media-stage{min-height:360px}.live-media-tile{min-height:150px}}
@media(max-width:900px){.live-media-stage{min-height:330px}.live-video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.live-media-controls{position:sticky;bottom:6px;z-index:5}.live-media-controls>span{width:100%;text-align:center;margin:0}.live-screen-share-stage{min-height:230px}.live-screen-share-stage .live-media-tile{min-height:230px}}
@media(max-width:620px){.live-media-stage{min-height:280px;padding:6px;border-radius:14px}.live-media-empty{padding:15px}.live-media-empty>div{width:44px;height:44px}.live-video-grid{grid-template-columns:1fr 1fr;gap:5px}.live-media-tile{min-height:120px;border-radius:9px}.live-media-avatar{width:52px;height:52px;font-size:17px}.live-media-name{font-size:8px;left:5px;bottom:5px;padding:4px 6px}.live-screen-share-stage{min-height:210px}.live-screen-share-stage .live-media-tile{min-height:210px}.live-screen-share-stage:not(.hidden)+.live-video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.live-media-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:7px}.live-media-controls>span{grid-column:1/-1}.live-media-controls .btn{width:100%;justify-content:center;min-height:42px}.livekit-settings .practice-config-settings-grid{grid-template-columns:1fr}}

/* V0.194 - Phòng học immersive toàn màn hình kiểu Zoom / Meet */
.app-shell.live-room-mode{height:100vh;min-height:100vh;display:block;background:#0d0f13;overflow:hidden}
@supports(height:100dvh){.app-shell.live-room-mode{height:100dvh;min-height:100dvh}}
.live-room-shell-main{display:block!important;height:100%;min-height:0;background:#0d0f13;overflow:hidden}
.live-room-shell-content{padding:0!important;margin:0!important;max-width:none!important;width:100%!important;height:100%;min-height:0;overflow:hidden!important;background:#0d0f13}
.live-room-page.live-immersive{height:100vh;min-height:0!important;width:100%;overflow:hidden;display:grid;grid-template-rows:62px minmax(0,1fr);background:#0d0f13;color:#fff;position:relative}
@supports(height:100dvh){.live-room-page.live-immersive{height:100dvh}}
.live-room-page.live-immersive:fullscreen{height:100vh;width:100vw;background:#0d0f13}
.live-room-topbar{height:62px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:0 16px;background:rgba(18,20,25,.98);border-bottom:1px solid #292d35;z-index:30;min-width:0}
.live-room-back,.live-top-leave{border:1px solid #343944;background:#22262d;color:#f5f6f8;border-radius:10px;min-height:38px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:800;cursor:pointer;white-space:nowrap}
.live-room-back:hover{background:#2c313a}.live-room-back .ico{width:17px;height:17px}
.live-room-title{min-width:0}.live-room-title h1{margin:0;color:#fff;font-size:17px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-room-title p{margin:3px 0 0;color:#949ba6;font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.live-room-topmeta{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.live-media-status,.live-online-pill{display:inline-flex;align-items:center;min-height:30px;padding:0 9px;border-radius:999px;background:#252931;color:#b9c0ca;font-size:9px;font-weight:800;white-space:nowrap}.live-online-pill{color:#7fe0a7;background:#173026}.live-top-leave{background:#9a122b;border-color:#9a122b;color:#fff}.live-top-leave:hover{background:#b01835}
.live-room-page.live-immersive .live-room-main{height:100%;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:0;overflow:hidden;background:#0d0f13}
.live-room-page.live-immersive .live-room-main.panel-hidden{grid-template-columns:minmax(0,1fr)}
.live-room-page.live-immersive .live-room-main.panel-hidden .live-side{display:none!important}
.live-room-page.live-immersive .live-stage{height:100%;min-height:0;min-width:0;position:relative;display:block;overflow:hidden;background:#0b0d10}
.live-room-page.live-immersive .live-media-stage{height:100%;min-height:0;max-height:none!important;flex:none;border:0;border-radius:0;background:#0b0d10;padding:10px 10px 92px;gap:9px;overflow:hidden}
.live-room-page.live-immersive .live-media-empty{background:radial-gradient(circle at 50% 45%,#282c34 0,#171a20 43%,#0c0e12 100%)}
.live-room-page.live-immersive .live-screen-share-stage{min-height:0;flex:1 1 auto;height:calc(100% - 120px);border-radius:8px;background:#050607}
.live-room-page.live-immersive .live-screen-share-stage .live-media-tile{min-height:0;height:100%;border-radius:8px}
.live-room-page.live-immersive .live-video-grid{flex:1 1 auto;min-height:0;height:100%;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-auto-rows:minmax(160px,1fr);align-content:stretch;overflow:auto;padding:1px}
.live-room-page.live-immersive .live-screen-share-stage:not(.hidden)+.live-video-grid{height:auto;max-height:126px;flex:0 0 126px;grid-template-columns:repeat(auto-fit,minmax(120px,180px));grid-auto-rows:118px;overflow-x:auto;overflow-y:hidden;align-content:start}
.live-room-page.live-immersive .live-media-tile{min-height:0;height:100%;border-radius:10px;background:#242830;border-color:#343a45}.live-room-page.live-immersive .live-media-tile.screen-share{min-height:0;height:100%}.live-room-page.live-immersive .live-media-avatar{width:84px;height:84px;font-size:25px}.live-room-page.live-immersive .live-media-name{font-size:10px;padding:6px 9px;bottom:8px;left:8px}
.live-control-dock{position:absolute;z-index:24;left:50%;bottom:14px;transform:translateX(-50%);max-width:calc(100% - 28px);display:flex;align-items:center;justify-content:center;gap:5px;padding:7px 8px;border:1px solid rgba(255,255,255,.10);border-radius:16px;background:rgba(24,27,33,.94);box-shadow:0 12px 36px rgba(0,0,0,.40);backdrop-filter:blur(12px);white-space:nowrap}
.live-toolbar-dynamic{display:contents}.live-dock-btn{position:relative;border:0;background:transparent;color:#e7e9ed;border-radius:11px;min-width:62px;height:52px;padding:5px 7px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font:inherit;font-weight:750;cursor:pointer;transition:.15s}.live-dock-btn .ico{width:19px;height:19px}.live-dock-btn span{font-size:8.5px;line-height:1;white-space:nowrap}.live-dock-btn:hover{background:#333842}.live-dock-btn.active{background:#6f1528;color:#fff}.live-dock-btn.danger,.live-dock-btn.leave{color:#ffb3bf}.live-dock-btn.danger:hover,.live-dock-btn.leave:hover{background:#8d1329;color:#fff}.live-dock-btn:disabled{opacity:.4;cursor:not-allowed}.live-dock-btn em{position:absolute;right:7px;top:5px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;display:grid;place-items:center;background:#a91632;color:#fff;font-size:7.5px;font-style:normal;font-weight:900}.live-room-closed{padding:6px 9px;border-radius:999px;background:#343842;color:#bbb;font-size:9px;font-weight:800}
.live-room-page.live-immersive .live-side{position:static!important;align-self:stretch;width:auto;min-width:0;max-width:none;height:100%;filter:none;border-left:1px solid #2a2e35;background:#f8f8f9;z-index:20}
.live-room-page.live-immersive .live-side-shell{height:100%;min-height:0;max-height:none;border:0;border-radius:0;box-shadow:none;background:#fff}
.live-room-page.live-immersive .live-side-tabs{min-height:52px}.live-room-page.live-immersive .live-side-pane{min-height:0}.live-room-page.live-immersive .live-members-list{height:100%}.live-room-page.live-immersive .live-messages{height:auto;min-height:0}
.live-poll-floating:not(:empty){position:absolute;z-index:23;left:14px;bottom:84px;width:min(760px,calc(100% - 28px));max-height:55%;overflow:auto;filter:drop-shadow(0 16px 32px rgba(0,0,0,.28))}.live-poll-floating .live-poll-card{margin:0;background:#fff;color:#1e222a;border-radius:15px}
.live-room-page.live-immersive .live-media-controls{display:none!important}

@media(max-width:1100px){
  .live-room-page.live-immersive .live-room-main{grid-template-columns:minmax(0,1fr) 320px}
  .live-dock-btn{min-width:56px}.live-dock-btn span{font-size:8px}
}
@media(max-width:900px){
  .live-room-page.live-immersive{grid-template-rows:56px minmax(0,1fr)}
  .live-room-topbar{height:56px;padding:0 9px;gap:8px}.live-room-back{width:38px;min-height:36px;padding:0}.live-room-back span{display:none}.live-room-title h1{font-size:14px}.live-room-title p{font-size:8px}.live-media-status{display:none}.live-online-pill{min-height:27px;padding:0 7px}.live-top-leave{min-height:34px;padding:0 9px;font-size:9px}
  .live-room-page.live-immersive .live-room-main{display:block;height:100%}.live-room-page.live-immersive .live-stage{width:100%;height:100%}.live-room-page.live-immersive .live-media-stage{padding:6px 6px 86px}.live-room-page.live-immersive .live-video-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(130px,1fr)}
  .live-room-page.live-immersive .live-side{position:fixed!important;z-index:90;right:0;top:0;bottom:0;width:min(390px,92vw);height:100vh;border-left:1px solid #dadde2;box-shadow:-18px 0 40px rgba(0,0,0,.28)}
  @supports(height:100dvh){.live-room-page.live-immersive .live-side{height:100dvh}}
  .live-room-page.live-immersive.live-panel-open:after{content:"";position:fixed;inset:0;z-index:85;background:rgba(0,0,0,.46);pointer-events:none}
  .live-control-dock{justify-content:flex-start;left:8px;right:8px;bottom:8px;transform:none;max-width:none;overflow-x:auto;overflow-y:hidden;padding:6px;scrollbar-width:none}.live-control-dock::-webkit-scrollbar{display:none}.live-dock-btn{flex:0 0 58px;min-width:58px;height:50px}.live-poll-floating:not(:empty){left:8px;bottom:76px;width:calc(100% - 16px);max-height:48%}
}
@media(max-width:620px){
  .live-room-topmeta{gap:5px}.live-online-pill{display:none}.live-top-leave{font-size:0;width:36px;padding:0}.live-top-leave:after{content:"×";font-size:22px;font-weight:600}.live-room-title p{display:none}.live-room-title h1{font-size:13px}
  .live-room-page.live-immersive .live-video-grid{grid-template-columns:1fr;grid-auto-rows:minmax(170px,1fr)}.live-room-page.live-immersive .live-screen-share-stage:not(.hidden)+.live-video-grid{grid-template-columns:repeat(2,minmax(120px,1fr));max-height:100px;flex-basis:100px;grid-auto-rows:94px}.live-room-page.live-immersive .live-media-avatar{width:62px;height:62px;font-size:19px}
  .live-dock-btn{flex-basis:54px;min-width:54px;height:48px;padding:4px}.live-dock-btn .ico{width:18px;height:18px}.live-dock-btn span{font-size:7.5px}.live-room-page.live-immersive .live-side{width:100vw}.live-side-shell{border-radius:0!important}.live-side-tabs>button:not(.live-side-close){min-height:52px}
}

/* V0.195 - tương tác phòng học: chat rõ hơn, tệp, điểm danh và câu hỏi nhanh trong panel */
.live-room-page.live-immersive .live-room-main{grid-template-columns:minmax(0,1fr) 390px}
.live-room-page.live-immersive .live-side-tabs{grid-template-columns:repeat(4,minmax(0,1fr)) 38px;background:#fff}
.live-side-tabs>button:not(.live-side-close){padding:0 5px;gap:4px;font-size:9px;min-width:0;flex-direction:column}
.live-side-tabs>button:not(.live-side-close) .ico{width:16px;height:16px}
.live-side-tabs>button:not(.live-side-close)>span{display:block!important;min-width:0!important;height:auto!important;padding:0!important;border-radius:0!important;background:transparent!important;color:inherit!important;font-size:8px!important;font-weight:850!important;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.live-side-tabs>button:not(.live-side-close)>em{position:absolute;margin:0 0 19px 24px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:#a20d29;color:#fff;font-size:7px;font-style:normal;display:grid;place-items:center}
.live-side-tabs>button:not(.live-side-close){position:relative}
.live-chat-pane{background:#f5f6f8}
.live-room-page.live-immersive .live-messages{padding:14px 12px 10px;gap:11px;background:#f5f6f8}
.live-msg{max-width:88%;grid-template-columns:31px minmax(0,1fr);gap:7px;align-items:flex-end}
.live-msg.mine{max-width:84%;grid-template-columns:minmax(0,1fr);margin-left:auto}
.live-msg-bubble{background:#fff!important;border:1px solid #e2e5e9;border-radius:6px 15px 15px 15px!important;padding:9px 11px!important;box-shadow:0 2px 7px rgba(29,35,45,.055);color:#20242b}
.live-msg.mine .live-msg-bubble{background:#8b1029!important;border-color:#8b1029;border-radius:15px 6px 15px 15px!important;color:#fff}
.live-msg-meta{display:flex!important;align-items:center;gap:8px;margin-bottom:3px}.live-msg-meta b{font-size:9.5px!important;color:#31353c}.live-msg-meta small{font-size:7.7px!important;color:#89909a!important}.live-msg.mine .live-msg-meta b,.live-msg.mine .live-msg-meta small{color:#fff!important;opacity:.86}
.live-msg p{font-size:11.5px!important;line-height:1.48!important;color:inherit;margin:2px 0 0!important}
.live-msg-avatar{width:31px;height:31px;box-shadow:0 0 0 2px #fff}
.live-empty-chat{margin:auto;text-align:center;color:#8b929c;font-size:10px;padding:24px}
.live-chat-form{grid-template-columns:36px 36px minmax(0,1fr) 42px!important;gap:5px!important;padding:9px 10px!important;background:#fff;border-top:1px solid #dfe2e7!important;align-items:end}
.live-chat-form textarea{width:100%;min-height:38px;max-height:96px;resize:none;border:1px solid #d9dde4;border-radius:12px;padding:9px 11px;font:inherit;font-size:11px;line-height:1.35;color:#20242b;background:#fff;outline:none}.live-chat-form textarea:focus{border-color:#a84458;box-shadow:0 0 0 3px rgba(139,16,41,.08)}
.live-chat-tool,.live-chat-send{border:0;width:36px;height:38px;border-radius:11px;display:grid;place-items:center;cursor:pointer}.live-chat-tool{background:#f0f2f5;color:#4f5662}.live-chat-tool:hover{background:#e5e8ed;color:#821027}.live-chat-tool .ico,.live-chat-send .ico{width:17px;height:17px}.live-chat-send{width:42px;background:#8b1029;color:#fff}.live-chat-send span{display:none}.live-chat-send:hover{background:#a51532}.live-chat-send:disabled,.live-chat-tool:disabled{opacity:.5;cursor:not-allowed}
.live-emoji-menu{position:absolute;left:8px;bottom:58px;width:210px;display:grid;grid-template-columns:repeat(6,1fr);gap:3px;padding:8px;border-radius:12px;background:#fff;border:1px solid #e0e3e8;box-shadow:0 12px 32px rgba(20,25,35,.16);z-index:8}.live-emoji-menu.hidden{display:none}.live-emoji-menu button{border:0;background:transparent;border-radius:7px;font-size:18px;height:30px;cursor:pointer}.live-emoji-menu button:hover{background:#f1f2f4}
.live-chat-pane{position:relative}
.live-chat-file{margin-top:3px}.live-chat-file.image>a:first-child{display:block;margin:-3px -4px 7px}.live-chat-file.image img{display:block;width:100%;max-height:220px;object-fit:cover;border-radius:10px}.live-chat-file-meta{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px;border-radius:10px;background:rgba(80,87,98,.08);color:inherit;text-decoration:none}.live-msg.mine .live-chat-file-meta{background:rgba(255,255,255,.14)}.live-chat-file-icon{width:32px;height:32px;border-radius:8px;background:#fff;display:grid;place-items:center;color:#8b1029}.live-chat-file-icon .ico{width:16px;height:16px}.live-chat-file-meta>span:nth-child(2){min-width:0}.live-chat-file-meta b,.live-chat-file-meta small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-chat-file-meta b{font-size:9.5px}.live-chat-file-meta small{font-size:8px;opacity:.7;margin-top:2px}.live-chat-file-meta em{font-size:8px;font-style:normal;font-weight:850}.live-chat-file>p{margin-top:6px!important}
.live-side-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:13px 13px 10px;border-bottom:1px solid #e7e9ed;background:#fff}.live-side-section-head>div{min-width:0}.live-side-section-head b,.live-side-section-head span{display:block}.live-side-section-head b{font-size:12px;color:#282d34}.live-side-section-head span{font-size:8.5px;color:#858c96;margin-top:2px}.live-mini-btn{border:1px solid #d9dde3;background:#fff;border-radius:8px;padding:6px 8px;font-size:8.5px;font-weight:800;color:#701126;cursor:pointer}.live-mini-btn:hover{background:#f8edef}
.live-attendance-pane,.live-quick-side{height:100%;min-height:0;display:flex;flex-direction:column;background:#f7f8f9}
.live-attendance-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;padding:9px 10px;background:#fff;border-bottom:1px solid #e8eaee}.live-attendance-kpis span{padding:7px 3px;text-align:center;border-radius:9px;background:#f4f5f7;color:#707782;font-size:7.5px}.live-attendance-kpis b{display:block;font-size:14px;color:#7f0b20;margin-bottom:1px}
.live-attendance-tools{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;padding:9px 10px;background:#fff;border-bottom:1px solid #e8eaee}.live-attendance-tools input{min-width:0;border:1px solid #dce0e5;border-radius:9px;padding:8px 9px;font-size:9px}.live-attendance-tools .btn{padding:0 9px;min-height:34px;font-size:8.5px}
.live-attendance-side-list{min-height:0;overflow:auto;flex:1;padding:8px;display:flex;flex-direction:column;gap:6px}.live-attendance-item{display:grid;grid-template-columns:minmax(0,1fr) 95px;gap:5px 8px;align-items:center;padding:9px;background:#fff;border:1px solid #e3e6ea;border-radius:11px}.live-attendance-person{display:grid;grid-template-columns:35px minmax(0,1fr);gap:8px;align-items:center;min-width:0}.live-attendance-person>div{min-width:0}.live-attendance-person b,.live-attendance-person span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-attendance-person b{font-size:9.5px;color:#292e36}.live-attendance-person span{font-size:7.8px;color:#868e98;margin-top:2px}.live-attendance-item select{width:95px;border:1px solid #d8dde3;border-radius:8px;padding:6px 5px;background:#fff;font-size:8.5px;color:#333}.live-attendance-item>small{grid-column:1/-1;font-size:7.5px;color:#9299a2;padding-left:43px}.live-side-empty{text-align:center;color:#9298a1;font-size:9px;padding:26px 12px}
.live-quick-side-tabs{display:grid;grid-template-columns:1fr 1fr;background:#fff;border-bottom:1px solid #e7e9ed;padding:0 10px}.live-quick-side-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;padding:9px 5px;font-size:9px;font-weight:850;color:#727a85;cursor:pointer}.live-quick-side-tabs button.active{color:#8b1029;border-bottom-color:#8b1029}
.live-quick-side [data-qpanel]{min-height:0;overflow:auto;flex:1;padding:10px}.live-quick-side [data-qpanel].hidden{display:none}.live-quick-search{display:grid;grid-template-columns:minmax(0,1fr) 36px;gap:6px}.live-quick-search input{border:1px solid #dce0e5;border-radius:9px;padding:8px 9px;font-size:9px}.live-quick-search button{border:0;border-radius:9px;background:#8b1029;color:#fff;display:grid;place-items:center}.live-quick-search .ico{width:15px;height:15px}.live-quick-side-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}.live-quick-side-q{border:1px solid #e0e3e7;background:#fff;border-radius:10px;padding:9px;display:grid;grid-template-columns:minmax(0,1fr) 22px;gap:7px;align-items:center;text-align:left;cursor:pointer}.live-quick-side-q:hover{border-color:#c6818e;background:#fff9fa}.live-quick-side-q>span{min-width:0}.live-quick-side-q b,.live-quick-side-q small{display:block}.live-quick-side-q b{font-size:7.5px;color:#8b1029}.live-quick-side-q small{font-size:9px;color:#343941;line-height:1.35;margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.live-quick-side-q .ico{width:14px;height:14px;color:#8b1029}
.live-quick-side textarea{width:100%;border:1px solid #dce0e5;border-radius:10px;padding:9px;font:inherit;font-size:10px;resize:vertical;margin-bottom:7px}.live-quick-option-input{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;margin-bottom:6px}.live-quick-option-input b{height:32px;display:grid;place-items:center;background:#f1e5e8;color:#8b1029;border-radius:8px 0 0 8px}.live-quick-option-input input{height:32px;border:1px solid #dce0e5;border-left:0;border-radius:0 8px 8px 0;padding:0 8px;font-size:9px}.live-quick-manual-foot{display:grid;grid-template-columns:1fr auto;gap:6px;margin-top:9px}.live-quick-manual-foot select{border:1px solid #dce0e5;border-radius:8px;padding:7px;font-size:9px}.live-quick-manual-foot .btn{font-size:8.5px}
.live-live-dot{display:inline-flex!important;align-items:center!important;justify-content:center!important;background:#b20f2d!important;color:#fff!important;border-radius:999px!important;padding:4px 7px!important;font-size:7px!important;font-weight:900!important;letter-spacing:.05em}
.live-quick-current{padding:11px;overflow:auto}.live-quick-current h3{font-size:12px;line-height:1.45;margin:0 0 10px;color:#282d34}.live-quick-result{margin-bottom:8px}.live-quick-result>div{display:grid;grid-template-columns:22px minmax(0,1fr) 26px;gap:6px;align-items:center}.live-quick-result>div b{width:22px;height:22px;border-radius:7px;background:#f0e5e8;color:#8b1029;display:grid;place-items:center}.live-quick-result>div span{font-size:9px;color:#343941}.live-quick-result>div em{font-size:8px;font-style:normal;text-align:right;color:#757c86}.live-quick-result>i{display:block;height:5px;border-radius:999px;background:#e7e9ed;margin:4px 0 0 28px;overflow:hidden}.live-quick-result>i u{display:block;height:100%;background:#9a1932;border-radius:999px;text-decoration:none}.live-quick-result>small{display:block;text-align:right;font-size:7px;color:#8a9099;margin-top:2px}.live-quick-result.correct>div b{background:#dff3e7;color:#176d3c}.live-quick-result.correct>i u{background:#2b8b57}.live-quick-answer{margin:0 11px 10px;padding:9px;border-radius:9px;background:#eef9f3;color:#176d3c;font-size:9px}.live-quick-answer .ico{width:14px;height:14px;vertical-align:-3px}.live-quick-answer span{display:block;margin-top:4px;color:#617269}.live-quick-actions{display:flex;gap:6px;padding:10px 11px;border-top:1px solid #e4e7eb;background:#fff;margin-top:auto}.live-quick-actions .btn{flex:1;font-size:8.5px}
@media(max-width:1200px){.live-room-page.live-immersive .live-room-main{grid-template-columns:minmax(0,1fr) 350px}.live-side-tabs>button:not(.live-side-close)>span{font-size:7px!important}}
@media(max-width:900px){.live-room-page.live-immersive .live-side-tabs{grid-template-columns:repeat(4,minmax(0,1fr)) 40px}.live-side-tabs>button:not(.live-side-close){min-height:58px!important}.live-side-tabs>button:not(.live-side-close)>span{font-size:8px!important}.live-chat-form{grid-template-columns:38px 38px minmax(0,1fr) 42px!important}.live-attendance-item{grid-template-columns:minmax(0,1fr) 92px}}
@media(max-width:480px){.live-side-tabs>button:not(.live-side-close)>span{display:none!important}.live-side-tabs>button:not(.live-side-close) .ico{width:19px;height:19px}.live-side-tabs>button:not(.live-side-close){min-height:52px!important}.live-attendance-kpis{grid-template-columns:repeat(2,1fr)}.live-attendance-tools{grid-template-columns:1fr}.live-attendance-tools .btn{min-height:36px}.live-chat-form{padding:7px!important;grid-template-columns:34px 34px minmax(0,1fr) 38px!important}.live-chat-tool{width:34px}.live-chat-send{width:38px}.live-msg{max-width:94%}.live-msg.mine{max-width:90%}}

/* V0.196 - bố cục phòng học, bốc câu hỏi nâng cao và ghi hình */
.live-layout-menu{position:absolute;left:50%;bottom:82px;transform:translateX(-50%);z-index:75;width:min(390px,calc(100vw - 24px));display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:9px;background:rgba(29,32,39,.98);border:1px solid #3b404b;border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.38)}
.live-layout-menu.hidden{display:none!important}.live-layout-menu button{border:1px solid transparent;background:#252932;color:#edf0f4;border-radius:10px;padding:10px;display:flex;align-items:center;gap:9px;text-align:left;cursor:pointer}.live-layout-menu button:hover,.live-layout-menu button.active{background:#3a1c25;border-color:#8f2d43}.live-layout-menu .ico{width:18px;height:18px;flex:0 0 auto}.live-layout-menu span{min-width:0}.live-layout-menu b,.live-layout-menu small{display:block}.live-layout-menu b{font-size:10px}.live-layout-menu small{margin-top:2px;color:#9fa6b1;font-size:8px;line-height:1.35}
.live-media-stage.live-layout-grid .live-screen-share-stage:not(.hidden){height:42%;flex:0 0 42%;min-height:180px}.live-media-stage.live-layout-grid .live-screen-share-stage:not(.hidden)+.live-video-grid{height:auto;max-height:none;flex:1 1 auto;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-auto-rows:minmax(130px,1fr);overflow:auto}
.live-media-stage.live-layout-speaker .live-video-grid{grid-template-columns:repeat(4,minmax(120px,1fr));grid-auto-rows:minmax(110px,1fr)}.live-media-stage.live-layout-speaker .live-media-tile.active-speaker{grid-column:1/-1;grid-row:span 3;min-height:300px;order:-1;border-color:#b3213e;box-shadow:0 0 0 2px rgba(179,33,62,.2)}
.live-media-stage.live-layout-speaker .live-screen-share-stage:not(.hidden){height:55%;flex:0 0 55%}.live-media-stage.live-layout-speaker .live-screen-share-stage:not(.hidden)+.live-video-grid{max-height:150px;flex:0 0 150px;grid-template-columns:repeat(auto-fit,minmax(120px,180px));grid-auto-rows:140px}
.live-media-stage.live-layout-share .live-screen-share-stage:not(.hidden){height:calc(100% - 125px);flex:1 1 auto}.live-media-stage.live-layout-share .live-screen-share-stage:not(.hidden)+.live-video-grid{height:auto;max-height:120px;flex:0 0 120px;grid-template-columns:repeat(auto-fit,minmax(120px,180px));grid-auto-rows:112px;overflow-x:auto;overflow-y:hidden}
.live-media-stage.live-layout-share-only .live-screen-share-stage:not(.hidden){height:100%;flex:1 1 auto}.live-media-stage.live-layout-share-only .live-screen-share-stage:not(.hidden)+.live-video-grid{display:none}.live-media-stage.live-layout-share-only .live-screen-share-stage.hidden+.live-video-grid{display:grid}
.live-dock-btn.record.active{background:#8f1129;color:#fff}.live-dock-btn.record.recording:before{content:"";width:8px;height:8px;border-radius:50%;background:#ff3b4e;position:absolute;left:7px;top:7px;box-shadow:0 0 0 0 rgba(255,59,78,.7);animation:liveRecPulse 1.25s infinite}.live-dock-btn.record em{background:#e12642!important;font-size:6.7px!important;right:4px!important;top:3px!important}
@keyframes liveRecPulse{0%{box-shadow:0 0 0 0 rgba(255,59,78,.65)}70%{box-shadow:0 0 0 7px rgba(255,59,78,0)}100%{box-shadow:0 0 0 0 rgba(255,59,78,0)}}
.live-question-filters{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:10px 0}.live-question-filters select{min-width:0;width:100%;border:1px solid #dfe2e7;border-radius:9px;background:#fff;padding:8px 9px;font:inherit;font-size:9px}.live-random-btn{border:1px solid #ead2d8!important;background:#fff4f6!important;color:#97112b!important;font-size:17px!important}.live-q-source{display:inline-flex;border-radius:999px;padding:2px 6px;font-size:7px;font-style:normal;vertical-align:1px}.live-q-source.shared{background:#e9f4ed;color:#19683b}.live-q-source.personal{background:#f7e9ee;color:#911832}
.live-recording-settings{margin-top:16px;padding-top:15px;border-top:1px solid #ece5e7}.live-recording-settings .checkline{display:flex;align-items:center;gap:8px;margin:8px 0 2px;font-size:10px;color:#5f5860}.live-recording-settings .checkline input{accent-color:#8d0b24}
@media(max-width:900px){.live-layout-menu{position:fixed;bottom:70px;left:8px;right:8px;transform:none;width:auto;grid-template-columns:1fr 1fr}.live-media-stage.live-layout-speaker .live-video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.live-media-stage.live-layout-speaker .live-media-tile.active-speaker{grid-row:span 2;min-height:220px}.live-question-filters{grid-template-columns:1fr}.live-media-stage.live-layout-grid .live-screen-share-stage:not(.hidden){height:38%;flex-basis:38%}}
@media(max-width:520px){.live-layout-menu{grid-template-columns:1fr}.live-layout-menu small{display:none}.live-media-stage.live-layout-speaker .live-video-grid{grid-template-columns:1fr}.live-media-stage.live-layout-grid .live-screen-share-stage:not(.hidden){height:45%;flex-basis:45%}}
.live-recording-status{display:inline-flex;align-items:center;min-height:30px;padding:0 9px;border-radius:999px;background:#59101d;color:#ffbdc8;font-size:9px;font-weight:900;white-space:nowrap;animation:liveRecText 1.5s ease-in-out infinite}.live-recording-status.hidden{display:none!important}@keyframes liveRecText{50%{opacity:.72}}
@media(max-width:620px){.live-recording-status{font-size:0;width:28px;padding:0;justify-content:center}.live-recording-status:after{content:"●";font-size:12px;color:#ff526a}}

/* V0.197 - fix mobile phòng học: quyền camera/micro, âm thanh, câu hỏi có thể thu gọn, ưu tiên màn hình chia sẻ */
.live-recording-settings{display:none!important}
.live-dock-btn.needs-action{background:#8b5d10!important;color:#fff!important;animation:liveAudioAttention 1.3s ease-in-out infinite}
@keyframes liveAudioAttention{0%,100%{box-shadow:0 0 0 0 rgba(255,190,55,.0)}50%{box-shadow:0 0 0 5px rgba(255,190,55,.22)}}
.live-poll-head{position:relative;padding-right:34px}
.live-poll-local-close{position:absolute;right:0;top:-3px;width:30px;height:30px;border:0;border-radius:50%;background:#f2f3f5;color:#4c535c;font-size:21px;line-height:1;display:grid;place-items:center;cursor:pointer}
.live-poll-local-close:hover{background:#e4e6e9;color:#8b0c24}
.live-poll-reopen{border:1px solid rgba(255,255,255,.18);background:rgba(24,27,33,.96);color:#fff;border-radius:14px;display:flex;align-items:center;gap:9px;padding:9px 12px;box-shadow:0 10px 26px rgba(0,0,0,.32);cursor:pointer;max-width:230px}
.live-poll-reopen .ico{width:18px;height:18px;color:#ffc24b}.live-poll-reopen span{display:flex;flex-direction:column;text-align:left}.live-poll-reopen b{font-size:10px}.live-poll-reopen small{font-size:8px;color:#bcc2ca;margin-top:2px}
.live-screen-share-stage:not(.hidden){display:grid!important;visibility:visible!important;opacity:1!important}
.live-screen-share-stage .live-media-video{object-fit:contain!important;background:#050506}
@media(max-width:900px){
  .live-dock-btn.needs-action{order:-1}
  .live-poll-floating:not(:empty){z-index:36;max-height:min(62vh,520px)}
  .live-poll-floating:has(.live-poll-reopen){width:auto;max-height:none;overflow:visible;filter:none}
  .live-poll-floating .live-poll-card{box-shadow:0 14px 36px rgba(0,0,0,.38)}
  .live-media-stage.live-layout-share-only .live-screen-share-stage:not(.hidden){position:relative;inset:auto;width:100%;height:100%;min-height:0;flex:1 1 auto}
  .live-media-stage.live-layout-share-only .live-screen-share-stage:not(.hidden) .live-media-tile{height:100%!important;min-height:0!important}
}
@media(max-width:620px){
  .live-poll-floating:not(:empty){left:6px;right:6px;bottom:70px;width:auto;max-height:64vh}
  .live-poll-card{padding:11px!important}.live-poll-head b{font-size:12px!important}.live-poll-option{padding:9px!important}.live-poll-option span{font-size:10px!important}
  .live-poll-local-close{width:32px;height:32px;right:-2px;top:-2px}
  .live-poll-reopen{padding:8px 10px;border-radius:12px}
  .live-room-page.live-immersive .live-screen-share-stage:not(.hidden){border-radius:4px}
}

/* V0.198 - Điều hành phòng học, lịch phòng và quyền chủ phòng tự học */
.live-lobby-tabs{display:flex;gap:7px;margin:0 0 13px;padding:0 2px}.live-lobby-tabs button{border:1px solid #e3e5e9;background:#fff;color:#666f7a;border-radius:999px;padding:8px 13px;font:inherit;font-size:10px;font-weight:800;cursor:pointer}.live-lobby-tabs button.active{background:#7d1025;border-color:#7d1025;color:#fff}.live-room-card.upcoming{opacity:.94}.live-room-card.waiting_host{border-color:#e8c98d}.live-schedule-box{margin-top:4px;border:1px solid #e5e7eb;background:#fafbfc;border-radius:13px;padding:12px}.live-schedule-box>.checkline{margin:0}.live-schedule-box #lcScheduleFields{margin-top:12px}.live-host-open{align-self:center;margin-top:22px!important}.live-member-bulk{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px 8px 9px;border-bottom:1px solid #e9ebee;background:#fafbfc;position:sticky;top:0;z-index:2}.live-member-bulk button{border:1px solid #dde1e6;background:#fff;border-radius:9px;min-height:32px;font-size:8.5px;font-weight:800;color:#4f5864;cursor:pointer}.live-member-bulk button:hover{border-color:#be9ca4;color:#7e1025}.live-member-bulk small{grid-column:1/-1;color:#858d97;font-size:7.5px;line-height:1.4}.live-member-info{min-width:0}.live-presenter-badge{display:inline-flex!important;margin-top:3px!important;color:#226941!important;background:#edf8f1;border-radius:999px;padding:2px 6px;font-size:7px!important;font-weight:800}.live-member-controls{display:flex;gap:3px;align-items:center;margin-left:auto}.live-member-controls button{width:29px;height:29px;border-radius:8px;border:1px solid #e0e3e7;background:#fff;display:grid;place-items:center;cursor:pointer;font-size:12px;padding:0}.live-member-controls button.active{background:#fff0f1;color:#9b1630;border-color:#ecc7ce}.live-member-controls button.presenter{background:#ecf7f0;color:#207248;border-color:#bfe2cc}.live-member-controls .liveKick{color:#9b1830}.live-end-confirm{width:min(560px,92vw)}.live-end-confirm-body{padding:6px 2px 18px}.live-end-warning{display:flex;gap:12px;align-items:flex-start;background:#fff5f5;border:1px solid #f0d0d5;border-radius:13px;padding:14px;color:#5b333a}.live-end-warning .ico{width:22px;height:22px;flex:0 0 auto;color:#9a1730}.live-end-warning span{display:flex;flex-direction:column;gap:3px}.live-end-warning b{font-size:13px}.live-end-warning small{font-size:9px;color:#806c70;line-height:1.5}.live-ended-overlay{position:fixed;inset:0;z-index:20000;background:rgba(12,12,16,.82);backdrop-filter:blur(10px);display:grid;place-items:center;padding:18px}.live-ended-card{width:min(560px,94vw);background:#fff;border-radius:22px;padding:28px;text-align:center;box-shadow:0 30px 90px rgba(0,0,0,.35)}.live-ended-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;background:#edf8f1;color:#1b7b49;font-size:30px;font-weight:900}.live-ended-card h2{margin:6px 0;color:#6f0d20}.live-ended-card>p{margin:0 auto 18px;max-width:420px;color:#727984;font-size:11px;line-height:1.55}.live-ended-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}.live-ended-stats>div{border:1px solid #e7e9ed;border-radius:12px;padding:11px;background:#fafbfc}.live-ended-stats b{display:block;font-size:22px;color:#7d1025}.live-ended-stats span{font-size:8px;color:#858c96}.live-ended-att{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:-5px 0 15px}.live-ended-att span{border-radius:999px;background:#f4f5f7;padding:5px 8px;font-size:8px;color:#6f7680}.live-ended-card>.btn{min-width:160px}
@media(max-width:900px){.live-member-controls{gap:2px}.live-member-controls button{width:32px;height:32px}.live-schedule-box .row{grid-template-columns:1fr}.live-host-open{margin-top:6px!important}.live-ended-card{padding:22px 16px}.live-ended-stats{gap:5px}.live-ended-stats b{font-size:18px}}
@media(max-width:480px){.live-member{grid-template-columns:38px minmax(0,1fr) auto!important}.live-member-controls{grid-column:2/-1;justify-content:flex-end;width:100%}.live-member-bulk{position:static}.live-ended-stats{grid-template-columns:1fr 1fr 1fr}.live-ended-card h2{font-size:20px}}

/* V0.199 - Tao/len lich & kiem soat ra vao phong hoc */
.live-room-card.ended{opacity:.8;border-top-color:#9aa1aa}.live-room-card.ended .live-room-card-foot small{color:#737b86}.live-room-flags{display:flex;flex-wrap:wrap;gap:5px;margin-top:-4px}.live-room-flags span{display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border-radius:999px;background:#f7f2f3;color:#7b2435;font-size:7.5px;font-weight:800}.live-room-flags .ico{width:11px;height:11px}
.live-create-v199{width:min(860px,94vw);max-height:min(90vh,860px);display:flex;flex-direction:column;overflow:hidden}.live-create-v199 .live-create-form{overflow:auto;padding-right:3px}.live-create-mode{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 14px}.live-create-mode button{border:1px solid #e0e3e8;background:#fff;border-radius:13px;padding:10px 12px;display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer;color:#616976}.live-create-mode button.active{border-color:#9b2940;background:#fff7f8;color:#7b1025;box-shadow:0 0 0 2px rgba(127,11,32,.05)}.live-create-mode .ico{width:20px;height:20px}.live-create-mode span,.live-create-mode b,.live-create-mode small{display:block}.live-create-mode b{font-size:11px}.live-create-mode small{font-size:8px;color:#8a929c;margin-top:2px}.live-create-section{border:1px solid #e7e9ed;border-radius:14px;padding:13px;margin-bottom:10px;background:#fff}.live-create-section>h3{margin:0 0 10px;font-size:11px;color:#5a3038}.live-permission-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.live-permission-grid label{position:relative;cursor:pointer}.live-permission-grid input{position:absolute;opacity:0;pointer-events:none}.live-permission-grid span{border:1px solid #e4e6ea;border-radius:11px;padding:9px 10px;display:grid;grid-template-columns:24px minmax(0,1fr);grid-template-rows:auto auto;column-gap:8px;background:#fafbfc}.live-permission-grid span>b{font-size:9.5px}.live-permission-grid span>small{grid-column:2;font-size:7.5px;color:#858d97;margin-top:2px}.live-permission-grid input:checked+span{border-color:#c88996;background:#fff6f7;color:#771126}.live-access-options{display:flex;flex-direction:column;gap:5px}.live-access-options>small,.live-schedule-right>small{font-size:8px;color:#838b95;line-height:1.45;margin-left:24px}.live-schedule-right{padding-top:22px}.live-schedule-right .checkline{margin:0}.live-dock-btn.locked{background:#fff2d9!important;color:#7b4b00!important;border-color:#e2bd73!important}.live-dock-btn.blocked{opacity:.55;cursor:not-allowed}.live-join-requests{border-bottom:1px solid #e8eaee;background:#fff9ed}.live-join-request-title{display:flex;align-items:center;justify-content:space-between;padding:9px 10px;color:#714a0d}.live-join-request-title b{display:flex;align-items:center;gap:5px;font-size:9px}.live-join-request-title span{min-width:20px;height:20px;border-radius:999px;display:grid;place-items:center;background:#f0d59e;font-size:8px;font-weight:900}.live-join-request{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 10px;border-top:1px solid #f0e3c9}.live-join-request>.live-member-avatar{width:34px;height:34px}.live-join-request>div:nth-child(2){min-width:0}.live-join-request b,.live-join-request small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-join-request b{font-size:9.5px}.live-join-request small{font-size:7.5px;color:#827b70;margin-top:2px}.live-join-request-actions{display:flex;gap:4px}.live-join-request-actions button{border:0;border-radius:8px;padding:6px 8px;font-size:7.5px;font-weight:850;cursor:pointer}.live-join-request-actions .approve{background:#e8f6ed;color:#19683d}.live-join-request-actions .reject{background:#f9e8eb;color:#8c1830}
@media(max-width:620px){.live-create-mode{grid-template-columns:1fr 1fr}.live-permission-grid{grid-template-columns:1fr}.live-schedule-right{padding-top:0}.live-join-request{grid-template-columns:32px minmax(0,1fr)}.live-join-request-actions{grid-column:2;justify-content:flex-start}.live-room-flags{margin-top:-2px}}
.live-history-modal{width:min(680px,94vw);max-height:88vh;overflow:auto}.live-history-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.live-history-stats>div{border:1px solid #e6e8ec;border-radius:12px;background:#fafbfc;padding:12px;text-align:center}.live-history-stats b{display:block;font-size:22px;color:#7d1025}.live-history-stats span{font-size:8px;color:#818995}.live-history-att{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.live-history-att span{padding:5px 8px;border-radius:999px;background:#f4f5f7;font-size:8px;color:#68717c}.live-history-list{border:1px solid #e6e8ec;border-radius:13px;overflow:hidden}.live-history-list-head{display:flex;justify-content:space-between;padding:9px 11px;background:#fafbfc;border-bottom:1px solid #e6e8ec;font-size:9px}.live-history-member{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px 11px;border-bottom:1px solid #f0f1f3}.live-history-member:last-child{border-bottom:0}.live-history-member>div:nth-child(2){min-width:0}.live-history-member b,.live-history-member small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-history-member b{font-size:9.5px}.live-history-member small{font-size:7.5px;color:#858d97;margin-top:2px}.live-history-member em{font-size:8px;font-style:normal;color:#747c86}


/* V0.200 - Bảng điều hành thành viên dành cho giáo viên */
.live-dock-btn.attention{background:#47361a;color:#ffd98a}.live-dock-btn.attention:hover{background:#65491b;color:#fff1c7}
.live-member-admin-v200{position:sticky;top:0;z-index:6;background:#fff;border-bottom:1px solid #e6e9ed;padding:9px 9px 8px;box-shadow:0 4px 12px rgba(36,43,52,.035)}
.live-member-kpis-v200{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-bottom:7px}.live-member-kpis-v200 span{min-width:0;border:1px solid #e8eaee;border-radius:9px;background:#f8f9fa;padding:6px 3px;text-align:center;color:#78808a;font-size:7px;line-height:1.15}.live-member-kpis-v200 span b{display:block;color:#343a42;font-size:13px;margin-bottom:1px}.live-member-kpis-v200 span.hot{background:#fff8e8;border-color:#ead49e;color:#806222}.live-member-kpis-v200 span.hot b{color:#93630a}
.live-member-search-v200{height:34px;display:grid;grid-template-columns:minmax(0,1fr) 31px;border:1px solid #dce1e6;border-radius:9px;background:#fff;overflow:hidden}.live-member-search-v200:focus-within{border-color:#b8707e;box-shadow:0 0 0 2px rgba(139,16,41,.06)}.live-member-search-v200 input{min-width:0;border:0;outline:0;padding:0 9px;background:transparent;font:inherit;font-size:8.5px;color:#343a43}.live-member-search-v200 button{border:0;border-left:1px solid #edf0f2;background:#fafbfc;color:#8b929b;cursor:pointer;font-size:17px}.live-member-search-v200 button:hover{background:#f7ecef;color:#8b1029}
.live-member-filters-v200{display:flex;gap:4px;overflow-x:auto;margin-top:6px;padding-bottom:1px;scrollbar-width:none}.live-member-filters-v200::-webkit-scrollbar{display:none}.live-member-filters-v200 button{flex:0 0 auto;border:1px solid #e1e4e8;background:#fff;color:#69717c;border-radius:999px;padding:5px 8px;font:inherit;font-size:7.5px;font-weight:850;cursor:pointer}.live-member-filters-v200 button.active{background:#7f1026;border-color:#7f1026;color:#fff}
.live-member-bulk-v200{position:sticky;top:126px;z-index:5;grid-template-columns:repeat(3,1fr);padding-top:7px;background:#fbfbfc}.live-member-bulk-v200 small{grid-column:1/-1}.live-member-bulk-v200 button{padding:0 4px;white-space:nowrap}
.live-join-requests{position:relative;z-index:7}.live-join-request-title{position:sticky;top:0;z-index:2;background:#fff9ed}.live-join-request-head-actions{display:flex;align-items:center;gap:4px}.live-join-request-head-actions button{border:1px solid #e4c98e;background:#fff;border-radius:7px;padding:5px 6px;color:#795619;font-size:7px;font-weight:850;cursor:pointer}.live-join-request-head-actions button:hover{background:#fff2d7}.live-join-request-head-actions span{min-width:20px;height:20px;border-radius:999px;display:grid;place-items:center;background:#f0d59e;font-size:8px;font-weight:900}
.live-member{align-items:center}.live-member.raised{background:#fffaf0;border-left:3px solid #d99b28}.live-member-name-line{display:flex;align-items:center;gap:5px;min-width:0}.live-member-name-line>b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-hand-v200{font-style:normal;font-size:11px;flex:0 0 auto;animation:liveHandPulse 1.7s ease-in-out infinite}@keyframes liveHandPulse{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
.live-member-media-v200{display:flex;align-items:center;gap:3px;flex-wrap:wrap;margin-top:4px}.live-member-media-v200 i{font-style:normal;display:inline-flex;align-items:center;min-height:18px;padding:0 5px;border-radius:999px;background:#f1f3f5;color:#77808a;font-size:6.8px;font-weight:800}.live-member-media-v200 i.on{background:#e8f7ee;color:#187142}.live-member-media-v200 i.ready{background:#eaf3fb;color:#276d94}.live-member-media-v200 i.blocked{background:#fdecee;color:#9a2538}.live-member-media-v200 i.unknown{background:#f5f5f6;color:#9a9fa6}
.live-member-filter-empty-v200{text-align:center;padding:22px 12px;color:#8c949d;font-size:8.5px}.live-member-filter-empty-v200.hidden{display:none!important}
@media(max-width:900px){.live-member-admin-v200{top:0}.live-member-bulk-v200{top:126px}.live-member-kpis-v200 span b{font-size:14px}}
@media(max-width:480px){.live-member-kpis-v200{grid-template-columns:repeat(2,1fr)}.live-member-bulk-v200{position:static;grid-template-columns:1fr 1fr}.live-member-bulk-v200 button:nth-child(3){grid-column:1/-1}.live-join-request-head-actions button{padding:5px}.live-member-media-v200 i{font-size:6.5px}.live-member-admin-v200{position:sticky}.live-member-controls{margin-top:3px}}

/* V0.201 - Tạo phòng học: workspace lớn, không cuộn ngang, dễ thao tác */
.live-create-backdrop-v201{padding:14px!important;background:rgba(26,9,14,.52)!important;backdrop-filter:blur(5px)!important}
.live-create-backdrop-v201>.modal.live-create-wrap-v201{width:min(1180px,calc(100vw - 28px))!important;max-width:1180px!important;height:min(820px,calc(100dvh - 28px))!important;max-height:none!important;padding:0!important;overflow:hidden!important;border-radius:18px!important;background:#f6f7f9!important}
.live-create-v201{height:100%;min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;background:#f6f7f9;color:#2f3741}
.live-create-head-v201{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 22px 14px;background:#fff;border-bottom:1px solid #e5e8ec}
.live-create-head-v201 h2{margin:3px 0 4px!important;font-size:23px;line-height:1.15;color:#701126}.live-create-head-v201 p{margin:0;max-width:700px;color:#78808a;font-size:11px;line-height:1.5}.live-create-head-v201 .dialog-close{margin-top:0}
.live-create-mode-v201{display:flex;gap:8px;padding:10px 22px;background:#fff;border-bottom:1px solid #e6e9ed}
.live-create-mode-v201 button{min-width:210px;border:1px solid #dde2e7;background:#f8f9fa;border-radius:11px;padding:9px 12px;display:grid;grid-template-columns:28px minmax(0,1fr);gap:9px;align-items:center;text-align:left;color:#626b76;cursor:pointer;transition:.15s}.live-create-mode-v201 button:hover{background:#fff}.live-create-mode-v201 button.active{border-color:#a95565;background:#fff3f5;color:#771126;box-shadow:0 0 0 2px rgba(127,16,38,.05)}.live-create-mode-v201 .ico{width:18px;height:18px}.live-create-mode-v201 b,.live-create-mode-v201 small{display:block}.live-create-mode-v201 b{font-size:11px}.live-create-mode-v201 small{margin-top:2px;color:#8d949d;font-size:8px}
.live-create-body-v201{min-height:0;overflow:auto;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.85fr);gap:14px;padding:15px 18px 20px}.live-create-main-v201,.live-create-side-v201{min-width:0;display:flex;flex-direction:column;gap:12px}.live-create-side-v201{align-self:start;position:sticky;top:0}
.live-create-card-v201{min-width:0;border:1px solid #e0e4e8;border-radius:14px;background:#fff;padding:15px 16px;box-shadow:0 4px 14px rgba(43,50,60,.025)}.live-create-card-title-v201{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px}.live-create-card-title-v201>span{width:27px;height:27px;border-radius:8px;display:grid;place-items:center;flex:0 0 auto;background:#7f1026;color:#fff;font-size:10px;font-weight:900}.live-create-card-title-v201 h3{margin:1px 0 2px;font-size:13px;color:#3b424c}.live-create-card-title-v201 p{margin:0;color:#9097a0;font-size:8.5px;line-height:1.45}.live-create-card-v201 .field{margin:10px 0}.live-create-card-v201 .field label{font-size:10.5px;color:#515a66}.live-create-card-v201 .field label em{font-style:normal;color:#a5122c}.live-create-card-v201 .field input,.live-create-card-v201 .field select,.live-create-card-v201 .field textarea{padding:10px 11px;border-radius:9px;font-size:11px;min-width:0}.live-create-card-v201 .field textarea{resize:vertical;min-height:76px}.live-create-card-v201 .field small{font-size:8px;color:#9097a0}.live-create-fields-v201{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:10px}.live-create-fields-v201 .field{margin:8px 0 0}.live-create-note{font-size:10px!important}
.live-permission-grid-v201{display:grid;grid-template-columns:1fr;gap:7px}.live-permission-grid-v201 label{cursor:pointer}.live-permission-grid-v201 input{position:absolute;opacity:0;pointer-events:none}.live-permission-grid-v201 label>span{display:grid;grid-template-columns:32px minmax(0,1fr) 34px;gap:9px;align-items:center;min-height:51px;padding:8px 10px;border:1px solid #e2e5e9;border-radius:10px;background:#fafbfc;transition:.15s}.live-permission-grid-v201 label>span>.ico{width:17px;height:17px;color:#737c87;justify-self:center}.live-permission-grid-v201 label>span>div{min-width:0}.live-permission-grid-v201 b,.live-permission-grid-v201 small{display:block}.live-permission-grid-v201 b{font-size:10px;color:#404851}.live-permission-grid-v201 small{font-size:8px;color:#9097a0;margin-top:2px}.live-permission-grid-v201 em{position:relative;width:31px;height:18px;border-radius:999px;background:#cfd4da;transition:.15s}.live-permission-grid-v201 em:after{content:"";position:absolute;top:3px;left:3px;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;transition:.15s}.live-permission-grid-v201 input:checked+span{background:#fff7f8;border-color:#d8a7b0}.live-permission-grid-v201 input:checked+span>.ico,.live-permission-grid-v201 input:checked+span b{color:#7d1025}.live-permission-grid-v201 input:checked+span em{background:#861229}.live-permission-grid-v201 input:checked+span em:after{transform:translateX(13px)}
.live-switch-row-v201{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px;align-items:center;cursor:pointer;padding:10px 0}.live-switch-row-v201>input{position:absolute;opacity:0;pointer-events:none}.live-switch-row-v201>span{position:relative;width:34px;height:20px;border-radius:999px;background:#cfd4da;transition:.15s}.live-switch-row-v201>span:after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;transition:.15s}.live-switch-row-v201>input:checked+span{background:#861229}.live-switch-row-v201>input:checked+span:after{transform:translateX(14px)}.live-switch-row-v201 b,.live-switch-row-v201 small{display:block}.live-switch-row-v201 b{font-size:10px;color:#414952}.live-switch-row-v201 small{font-size:8px;color:#8e959f;line-height:1.45;margin-top:2px}.live-schedule-options-v201{display:grid;grid-template-columns:190px minmax(0,1fr);gap:14px;align-items:center}.live-schedule-options-v201 .field{margin:8px 0}.live-create-tip-v201{display:flex;gap:8px;align-items:flex-start;margin-top:9px;padding:9px 10px;border-radius:9px;background:#fff8e9;border:1px solid #f0dfb4;color:#685331}.live-create-tip-v201>.ico{width:16px;height:16px;flex:0 0 auto;margin-top:1px}.live-create-tip-v201 b,.live-create-tip-v201 small{display:block}.live-create-tip-v201 b{font-size:9px}.live-create-tip-v201 small{font-size:7.8px;line-height:1.45;margin-top:2px}
.live-create-foot-v201{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 18px;background:#fff;border-top:1px solid #e2e5e9;box-shadow:0 -6px 18px rgba(39,47,57,.035)}.live-create-foot-v201>div:first-child{min-width:0}.live-create-foot-v201 #lcModeHint{display:block;color:#858d97;font-size:8.5px}.live-create-foot-v201 .error{margin-top:3px;font-size:9px}.live-create-foot-v201 .actions{display:flex;gap:8px;flex:0 0 auto}.live-create-foot-v201 .btn{min-width:100px}.live-create-foot-v201 .btn.primary{min-width:170px}
@media(max-width:850px){.live-create-backdrop-v201{padding:6px!important}.live-create-backdrop-v201>.modal.live-create-wrap-v201{width:calc(100vw - 12px)!important;height:calc(100dvh - 12px)!important;border-radius:13px!important}.live-create-body-v201{grid-template-columns:1fr;padding:12px}.live-create-side-v201{position:static}.live-create-fields-v201,.live-schedule-options-v201{grid-template-columns:1fr 1fr}.live-create-mode-v201{padding:9px 14px}.live-create-head-v201{padding:14px}.live-create-foot-v201{padding:9px 12px}}
@media(max-width:620px){.live-create-backdrop-v201{padding:0!important}.live-create-backdrop-v201>.modal.live-create-wrap-v201{width:100vw!important;max-width:100vw!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important}.live-create-v201{grid-template-rows:auto auto minmax(0,1fr) auto}.live-create-head-v201{padding:12px 12px 9px}.live-create-head-v201 h2{font-size:19px}.live-create-head-v201 p{font-size:9px}.live-create-head-v201 .dialog-close span{display:none}.live-create-mode-v201{display:grid;grid-template-columns:1fr 1fr;padding:8px 10px}.live-create-mode-v201 button{min-width:0;padding:8px;grid-template-columns:22px minmax(0,1fr);gap:6px}.live-create-mode-v201 small{display:none}.live-create-body-v201{display:block;padding:10px;overflow:auto}.live-create-main-v201,.live-create-side-v201{gap:9px}.live-create-side-v201{margin-top:9px}.live-create-card-v201{padding:12px}.live-create-fields-v201,.live-schedule-options-v201{grid-template-columns:1fr}.live-create-permission-grid-v201{grid-template-columns:1fr}.live-create-foot-v201{padding:8px 10px}.live-create-foot-v201 #lcModeHint{display:none}.live-create-foot-v201>div:first-child{flex:1}.live-create-foot-v201 .actions{display:grid;grid-template-columns:80px minmax(125px,1fr)}.live-create-foot-v201 .btn,.live-create-foot-v201 .btn.primary{min-width:0;padding-left:10px;padding-right:10px}}
.live-create-v201{width:100%!important;max-width:none!important;overflow:hidden!important;box-sizing:border-box}.live-create-body-v201{overflow-x:hidden}

/* V0.202 - Phòng của tôi: quản lý lịch/phòng theo dạng workspace, không dùng popup nhỏ */
.live-my-head-v202{margin-bottom:16px}.live-my-summary-v202{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}.live-my-summary-v202>button,.live-my-pending-v202{min-height:86px;border:1px solid #e4e6ea;background:#fff;border-radius:16px;padding:14px 16px;display:flex;align-items:center;gap:12px;text-align:left;box-shadow:0 6px 20px rgba(46,24,30,.04)}.live-my-summary-v202>button{cursor:pointer;font:inherit;transition:.16s ease}.live-my-summary-v202>button:hover{transform:translateY(-1px);border-color:#d9bcc2}.live-my-summary-v202>button.active{border-color:#9a1b32;background:#fff8f9;box-shadow:0 8px 24px rgba(122,16,36,.08)}.live-summary-icon-v202,.live-my-pending-v202>span{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#f5f0f1;color:#821228;flex:0 0 auto}.live-summary-icon-v202 .ico,.live-my-pending-v202>span .ico{width:19px;height:19px}.live-my-summary-v202 b{display:block;font-size:25px;line-height:1;color:#33272a}.live-my-summary-v202 small{display:block;margin-top:6px;font-size:10px;color:#7a818b;font-weight:750}.live-my-pending-v202{background:#fafbfc}.live-my-toolbar-v202{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 0 12px;padding:0 2px}.live-my-toolbar-v202 h2{margin:0;color:#36292c;font-size:17px}.live-my-toolbar-v202 p{margin:4px 0 0;color:#838992;font-size:10px}.live-my-search-v202{width:min(330px,42vw);height:40px;border:1px solid #dfe2e6;border-radius:12px;background:#fff;display:flex;align-items:center;gap:8px;padding:0 11px;color:#7f8790}.live-my-search-v202 .ico{width:16px;height:16px}.live-my-search-v202 input{border:0;outline:0;background:transparent;width:100%;min-width:0;font:inherit;font-size:11px;color:#333}.live-my-list-v202{display:flex;flex-direction:column;gap:10px}.live-my-room-v202{display:grid;grid-template-columns:142px minmax(0,1fr) auto;align-items:stretch;background:#fff;border:1px solid #e4e6ea;border-radius:17px;overflow:hidden;box-shadow:0 6px 22px rgba(54,31,36,.045)}.live-my-room-state-v202{padding:16px 14px;background:#f8fafb;border-right:1px solid #eceef1;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:7px}.live-state-dot-v202{width:9px;height:9px;border-radius:50%;background:#a0a7b0;box-shadow:0 0 0 4px rgba(160,167,176,.12)}.live-my-room-state-v202 b{font-size:10px;color:#59616b}.live-my-room-state-v202 em{font-style:normal;font-size:8px;padding:4px 7px;border-radius:999px;background:#fff1d8;color:#8c5a00;font-weight:800}.live-my-room-v202.upcoming .live-state-dot-v202{background:#d18a16;box-shadow:0 0 0 4px rgba(209,138,22,.12)}.live-my-room-v202.upcoming .live-my-room-state-v202 b{color:#8d5a07}.live-my-room-v202.live .live-state-dot-v202,.live-my-room-v202.ready .live-state-dot-v202{background:#198754;box-shadow:0 0 0 4px rgba(25,135,84,.12)}.live-my-room-v202.live .live-my-room-state-v202 b,.live-my-room-v202.ready .live-my-room-state-v202 b{color:#176b47}.live-my-room-v202.ended .live-state-dot-v202,.live-my-room-v202.cancelled .live-state-dot-v202{background:#8c939c}.live-my-room-main-v202{padding:15px 17px;min-width:0}.live-my-room-title-v202{display:grid;grid-template-columns:42px minmax(0,1fr);gap:11px;align-items:center}.live-my-room-title-v202 .live-room-owner-avatar{width:42px;height:42px}.live-my-room-title-v202 h3{margin:0;font-size:14px;color:#31272a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-my-room-title-v202 p{margin:4px 0 0;color:#858b93;font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-my-room-facts-v202{display:flex;flex-wrap:wrap;gap:7px 13px;margin-top:12px}.live-my-room-facts-v202>span{display:inline-flex;align-items:center;gap:5px;color:#747c86;font-size:9px}.live-my-room-facts-v202 .ico{width:13px;height:13px;color:#8f4253}.live-my-room-facts-v202 b{font-weight:700}.live-my-room-actions-v202{padding:14px 15px;border-left:1px solid #eceef1;display:flex;align-items:center;justify-content:flex-end;gap:7px;min-width:285px}.live-my-room-actions-v202 .btn{white-space:nowrap;min-height:36px}.live-my-room-actions-v202 .btn .ico{width:14px;height:14px}.btn.danger.subtle{background:#fff;color:#a11d34;border-color:#efcdd3}.btn.danger.subtle:hover{background:#fff3f5}.live-my-room-v202.cancelled{opacity:.78}.live-my-empty-v202{min-height:245px;border:1px dashed #daddE2;border-radius:17px;background:#fbfcfd;display:grid;place-items:center;align-content:center;text-align:center;padding:30px;color:#8b929a}.live-my-empty-v202>.ico{width:34px;height:34px;margin-bottom:12px;color:#aab0b7}.live-my-empty-v202 b{font-size:14px;color:#515861}.live-my-empty-v202 span{font-size:10px;margin-top:5px}.live-schedule-edit-v202{width:min(760px,92vw)}.live-schedule-edit-body-v202{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:16px 2px 18px}.live-schedule-edit-body-v202>.field:nth-child(3){grid-column:1/-1;max-width:240px}.live-schedule-edit-body-v202>.live-switch-row-v201,.live-schedule-edit-body-v202>.error{grid-column:1/-1}.live-cancel-v202{width:min(590px,92vw)}.live-cancel-v202 .live-end-warning{margin:12px 0 18px}
@media(max-width:980px){.live-my-summary-v202{grid-template-columns:1fr 1fr}.live-my-room-v202{grid-template-columns:118px minmax(0,1fr)}.live-my-room-actions-v202{grid-column:1/-1;border-left:0;border-top:1px solid #eceef1;min-width:0;justify-content:flex-end;padding:10px 14px}.live-my-room-state-v202{grid-row:1;border-right:1px solid #eceef1}.live-my-room-main-v202{grid-row:1}.live-my-toolbar-v202{align-items:stretch;flex-direction:column}.live-my-search-v202{width:100%}}
@media(max-width:620px){.live-my-head-v202 .actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.live-my-summary-v202{gap:7px}.live-my-summary-v202>button,.live-my-pending-v202{min-height:72px;padding:10px}.live-summary-icon-v202,.live-my-pending-v202>span{width:34px;height:34px;border-radius:10px}.live-my-summary-v202 b{font-size:21px}.live-my-summary-v202 small{font-size:8.5px}.live-my-room-v202{display:flex;flex-direction:column}.live-my-room-state-v202{border-right:0;border-bottom:1px solid #eceef1;padding:9px 13px;flex-direction:row;align-items:center;justify-content:flex-start}.live-my-room-state-v202 em{margin-left:auto}.live-my-room-main-v202{padding:13px}.live-my-room-facts-v202{display:grid;grid-template-columns:1fr 1fr;gap:8px}.live-my-room-actions-v202{display:grid;grid-template-columns:1fr 1fr;padding:10px}.live-my-room-actions-v202 .btn:first-child:last-child{grid-column:1/-1}.live-my-room-actions-v202 .btn:first-child:nth-last-child(3){grid-column:1/-1}.live-schedule-edit-v202{width:calc(100vw - 12px)!important}.live-schedule-edit-body-v202{grid-template-columns:1fr}.live-schedule-edit-body-v202>.field:nth-child(3),.live-schedule-edit-body-v202>.live-switch-row-v201,.live-schedule-edit-body-v202>.error{grid-column:1}.live-schedule-edit-body-v202>.field:nth-child(3){max-width:none}}
.live-history-cancel-v202{display:flex;gap:11px;align-items:flex-start;margin:14px 0;padding:13px 14px;border:1px solid #eadfd1;border-radius:12px;background:#fffaf2;color:#6d5328}.live-history-cancel-v202>.ico{width:20px;height:20px;flex:0 0 auto}.live-history-cancel-v202 b,.live-history-cancel-v202 span{display:block}.live-history-cancel-v202 b{font-size:11px}.live-history-cancel-v202 span{font-size:9px;line-height:1.5;margin-top:3px;color:#856f4a}

/* V0.203 - Màn đang học: sân khấu ưu tiên, panel nổi, ghim người học và chế độ tập trung */
.live-room-page.live-immersive .live-room-main{grid-template-columns:minmax(0,1fr)!important;position:relative}
.live-room-page.live-immersive .live-stage{width:100%;height:100%}
.live-room-page.live-immersive .live-side{position:fixed!important;z-index:88;right:0;top:62px;bottom:0;width:min(370px,92vw)!important;height:auto!important;border-left:1px solid #d9dde3!important;background:#fff!important;box-shadow:-16px 0 42px rgba(0,0,0,.22)!important;transition:transform .18s ease,opacity .18s ease}
.live-room-page.live-immersive .live-side-shell{border-radius:16px 0 0 0!important;overflow:hidden}
.live-room-page.live-immersive .live-room-main.panel-hidden .live-side{display:none!important}
.live-room-page.live-immersive.live-panel-open .live-stage{width:100%}
.live-room-page.live-immersive .live-media-stage{padding:8px 8px 82px!important;gap:7px}
.live-room-page.live-immersive .live-screen-share-stage{border-radius:6px!important}
.live-room-page.live-immersive .live-screen-share-stage:not(.hidden)+.live-video-grid{max-height:108px!important;flex-basis:108px!important;grid-auto-rows:100px!important;grid-template-columns:repeat(auto-fit,minmax(118px,170px))!important;gap:6px}
.live-room-page.live-immersive .live-video-grid{gap:7px;scrollbar-width:thin;scrollbar-color:#4a4f58 transparent}
.live-room-page.live-immersive .live-media-tile{border-radius:9px!important}
.live-room-page.live-immersive .live-media-tile.camera.pinned{order:-3;border-color:#f0b33d!important;box-shadow:0 0 0 2px rgba(240,179,61,.32),0 10px 28px rgba(0,0,0,.25)}
.live-room-page.live-immersive .live-screen-share-stage.hidden+.live-video-grid .live-media-tile.camera.pinned{grid-column:span 2;grid-row:span 2;min-height:300px!important}
.live-media-stage.live-layout-speaker .live-video-grid .live-media-tile.camera.pinned{grid-column:1/-1!important;grid-row:span 3!important;min-height:320px!important;order:-4!important}
.live-room-page.live-immersive .live-screen-share-stage:not(.hidden)+.live-video-grid .live-media-tile.camera.pinned{grid-column:span 2;min-width:230px}
.live-media-pin{position:absolute;right:7px;top:7px;z-index:5;width:29px;height:29px;border:1px solid rgba(255,255,255,.18);border-radius:9px;background:rgba(14,16,20,.65);color:#e8ebef;display:grid;place-items:center;cursor:pointer;font-size:13px;opacity:0;transform:translateY(-2px);transition:.15s ease}
.live-media-tile:hover .live-media-pin,.live-media-pin.active{opacity:1;transform:none}.live-media-pin:hover,.live-media-pin.active{background:#8a1830;border-color:#b4485c;color:#fff}
.live-pinned-badge{display:inline-flex;align-items:center;max-width:170px;min-height:30px;padding:0 9px;border-radius:999px;background:#3b311d;color:#f6c866;font-size:8.5px;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-pinned-badge.hidden{display:none!important}

.live-control-dock{bottom:10px!important;gap:3px!important;padding:5px 6px!important;border-radius:14px!important;background:rgba(23,26,31,.95)!important}
.live-control-dock .live-dock-btn{min-width:58px;height:48px;padding:4px 6px;border-radius:9px}
.live-control-dock .live-dock-btn .ico{width:18px;height:18px}.live-control-dock .live-dock-btn span{font-size:7.8px}
.live-control-dock #liveFocusBtn{color:#dfe7f3}.live-control-dock #liveFocusBtn.active{background:#24445d;color:#dff2ff}
.live-toolbar-dynamic{display:contents}
.live-tools-wrap{position:relative;display:flex;align-items:center}.live-tools-wrap.hidden{display:none!important}
.live-tools-menu{position:absolute;left:50%;bottom:61px;transform:translateX(-50%);z-index:95;width:315px;padding:8px;border:1px solid #3b4049;border-radius:14px;background:rgba(25,28,34,.985);box-shadow:0 18px 50px rgba(0,0,0,.42);color:#fff}.live-tools-menu.hidden{display:none!important}
.live-tools-menu-head{padding:6px 7px 9px;border-bottom:1px solid #3b4049;margin-bottom:6px}.live-tools-menu-head b,.live-tools-menu-head small{display:block}.live-tools-menu-head b{font-size:10px}.live-tools-menu-head small{font-size:7.5px;color:#9fa7b2;margin-top:2px}
.live-tools-dynamic{display:flex;flex-direction:column;gap:4px}.live-tool-action{position:relative;width:100%;border:1px solid transparent;background:#252930;color:#f0f2f5;border-radius:10px;padding:9px 10px;display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:center;text-align:left;cursor:pointer}.live-tool-action:hover,.live-tool-action.active{background:#343943;border-color:#4b515d}.live-tool-action.attention{background:#493816;border-color:#745b22}.live-tool-action.danger{color:#ffc1ca}.live-tool-action.danger:hover{background:#6f1a2a;border-color:#8f2c40}.live-tool-action>.ico{width:18px;height:18px}.live-tool-action>span{min-width:0}.live-tool-action b,.live-tool-action small{display:block}.live-tool-action b{font-size:9.5px}.live-tool-action small{font-size:7.5px;color:#a7aeb8;margin-top:2px;line-height:1.35}.live-tool-action em{min-width:19px;height:19px;border-radius:999px;background:#b71c3a;color:#fff;font-size:7px;font-style:normal;font-weight:900;display:grid;place-items:center}
#liveToolsBtn.attention{background:#4c3917;color:#ffdd8b}.live-tools-wrap #liveToolsBadge:empty{display:none}

.live-room-page.live-immersive.live-focus-mode{grid-template-rows:0 minmax(0,1fr)!important}
.live-room-page.live-immersive.live-focus-mode .live-room-topbar{height:0!important;min-height:0!important;padding:0!important;border:0!important;opacity:0;pointer-events:none;overflow:hidden}
.live-room-page.live-immersive.live-focus-mode .live-side{top:0!important}
.live-room-page.live-immersive.live-focus-mode .live-media-stage{padding-top:4px!important}
.live-room-page.live-immersive.live-focus-mode .live-control-dock{opacity:.82;transition:opacity .15s ease}.live-room-page.live-immersive.live-focus-mode .live-control-dock:hover{opacity:1}
.live-room-page.live-immersive.live-focus-mode .live-poll-floating:not(:empty){bottom:74px}

@media(max-width:1100px){
  .live-room-page.live-immersive .live-side{width:min(350px,94vw)!important}
  .live-control-dock .live-dock-btn{min-width:54px}
  .live-control-dock .live-dock-btn span{font-size:7.2px}
}
@media(max-width:900px){
  .live-room-page.live-immersive .live-side{top:0!important;bottom:0;width:min(390px,96vw)!important;height:100dvh!important;border-radius:0!important}
  .live-room-page.live-immersive .live-side-shell{border-radius:0!important}
  .live-pinned-badge{display:none!important}
  .live-control-dock{left:6px!important;right:6px!important;bottom:6px!important;transform:none!important;max-width:none!important;overflow-x:auto;overflow-y:visible!important;justify-content:flex-start!important;scrollbar-width:none}
  .live-control-dock .live-dock-btn{flex:0 0 53px;min-width:53px;height:48px}
  .live-tools-wrap{flex:0 0 auto}
  .live-tools-menu{position:fixed;left:8px;right:8px;bottom:66px;transform:none;width:auto;max-height:65dvh;overflow:auto}
  .live-media-pin{opacity:1;width:28px;height:28px}
  .live-room-page.live-immersive .live-screen-share-stage:not(.hidden)+.live-video-grid .live-media-tile.camera.pinned{min-width:180px}
  .live-room-page.live-immersive .live-screen-share-stage.hidden+.live-video-grid .live-media-tile.camera.pinned{grid-column:1/-1;grid-row:span 2;min-height:220px!important}
}
@media(max-width:620px){
  .live-room-page.live-immersive .live-media-stage{padding:4px 4px 68px!important}
  .live-room-page.live-immersive .live-screen-share-stage:not(.hidden)+.live-video-grid{max-height:88px!important;flex-basis:88px!important;grid-auto-rows:82px!important;grid-template-columns:repeat(auto-fit,minmax(105px,145px))!important}
  .live-control-dock .live-dock-btn{flex-basis:49px;min-width:49px;height:46px}.live-control-dock .live-dock-btn span{font-size:6.8px}
  .live-tools-menu{left:5px;right:5px;bottom:60px}
  .live-media-pin{right:5px;top:5px;width:27px;height:27px;border-radius:8px}
}


/* V0.204 - Xác nhận kết thúc buổi học: gọn, rõ và không che quá nhiều nội dung */
.live-end-backdrop-v204{background:rgba(25,15,18,.56);backdrop-filter:blur(5px)}
.live-end-backdrop-v204>.modal.live-end-confirm-wrap-v204{width:min(500px,calc(100vw - 28px));max-height:calc(100dvh - 28px);padding:0;overflow:hidden;border-radius:20px;box-shadow:0 28px 80px rgba(20,8,12,.32)}
.live-end-confirm-v204{position:relative;padding:26px 26px 22px;background:#fff;text-align:left}
.live-end-x-v204{position:absolute;right:14px;top:14px;width:34px;height:34px;border:1px solid #e4e7eb;border-radius:10px;background:#fff;color:#727985;font:700 20px/1 Arial,sans-serif;display:grid;place-items:center;cursor:pointer;transition:.15s ease}
.live-end-x-v204:hover{background:#f7f8fa;color:#8b1027;border-color:#d7c3c8}
.live-end-icon-v204{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;margin-bottom:16px;background:#fff0f2;color:#a2142f;border:1px solid #f0cbd2}
.live-end-icon-v204 .ico{width:22px;height:22px}
.live-end-confirm-v204>.eyebrow{display:block;margin-bottom:5px}
.live-end-confirm-v204 h2{margin:0!important;color:#33282b!important;font-size:24px;line-height:1.18}
.live-end-lead-v204{margin:8px 42px 0 0;color:#6f7680;font-size:11px;line-height:1.55}
.live-end-lead-v204 strong{color:#7d1025;font-weight:850}
.live-end-impact-v204{display:grid;gap:8px;margin:19px 0 20px}
.live-end-impact-v204>div{display:grid;grid-template-columns:32px minmax(0,1fr);gap:10px;align-items:start;padding:10px 11px;border:1px solid #e7e9ed;border-radius:12px;background:#fafbfc}
.live-end-impact-v204>div>.ico{width:18px;height:18px;margin:3px auto 0;color:#8c1a31}
.live-end-impact-v204 span{min-width:0}
.live-end-impact-v204 b,.live-end-impact-v204 small{display:block}
.live-end-impact-v204 b{font-size:10.5px;color:#393135}
.live-end-impact-v204 small{margin-top:3px;color:#858b94;font-size:8.5px;line-height:1.45}
.live-end-actions-v204{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding-top:15px;border-top:1px solid #eceef1}
.live-end-actions-v204 .btn{min-height:42px;justify-content:center}
.live-end-actions-v204 .btn .ico{width:15px;height:15px}
.live-end-actions-v204 .btn.danger{box-shadow:none}
@media(max-width:520px){.live-end-backdrop-v204{padding:10px}.live-end-backdrop-v204>.modal.live-end-confirm-wrap-v204{width:100%;max-height:calc(100dvh - 20px);border-radius:16px}.live-end-confirm-v204{padding:22px 18px 18px}.live-end-confirm-v204 h2{font-size:21px}.live-end-lead-v204{margin-right:30px}.live-end-actions-v204{grid-template-columns:1fr}.live-end-actions-v204 #lecEnd{grid-row:1}.live-end-actions-v204 #lecCancel{grid-row:2}}


/* V0.205 - xem lại buổi học gọn hơn */
.live-history-backdrop-v205{backdrop-filter:blur(2px)}
.live-history-wrap-v205{width:min(760px,94vw)!important;max-width:min(760px,94vw)!important;max-height:min(88vh,820px)!important;padding:0!important;overflow:hidden!important;border-radius:22px!important}
.live-history-modal-v205{display:flex;flex-direction:column;min-height:0}
.live-history-head-v205{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:22px 24px 14px;border-bottom:1px solid #f0e7e9}
.live-history-head-v205 h2{margin:4px 0 6px;color:#7f091c;font-size:22px}
.live-history-head-v205 p{margin:0;color:#6f7782;font-size:13px}
.live-history-close-v205{width:40px;height:40px;border-radius:12px;border:1px solid #eadde0;background:#fff;color:#8f0b21;font-size:26px;line-height:1;cursor:pointer;display:grid;place-items:center;flex:0 0 auto}
.live-history-close-v205:hover{background:#fff5f7}
.live-history-meta-v205{display:flex;flex-wrap:wrap;gap:8px;padding:14px 24px 0}.live-history-meta-v205 span{display:inline-flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid #ece7ea;border-radius:999px;background:#faf8f9;color:#5f6670;font-size:12px}.live-history-meta-v205 .ico{width:14px;height:14px}.live-history-meta-v205 b{color:#8d0a20}
.live-history-kpis-v205{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;padding:16px 24px 8px}.live-history-kpis-v205>div{border:1px solid #ece7ea;border-radius:16px;background:#fcfbfc;padding:14px 12px;text-align:center}.live-history-kpis-v205 b{display:block;font-size:28px;line-height:1.1;color:#8d0a20}.live-history-kpis-v205 span{display:block;margin-top:5px;font-size:12px;color:#7a818c}
.live-history-att-v205{display:flex;flex-wrap:wrap;gap:8px;padding:4px 24px 0}.live-history-att-v205 span{padding:7px 10px;border-radius:999px;background:#f4f5f7;color:#66707c;font-size:12px}.live-history-att-v205 b{color:#811027}
.live-history-section-v205{padding:18px 24px 10px;min-height:0;display:flex;flex-direction:column;gap:10px}.live-history-section-head-v205{display:flex;justify-content:space-between;align-items:center;gap:10px}.live-history-section-head-v205 b{font-size:15px;color:#293240}.live-history-section-head-v205 span{font-size:12px;color:#8a9098}
.live-history-members-v205{border:1px solid #ece7ea;border-radius:16px;overflow:auto;max-height:42vh;background:#fff}.live-history-member-v205{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid #f3eef0}.live-history-member-v205:last-child{border-bottom:0}.live-history-member-main-v205{min-width:0}.live-history-member-main-v205 b{display:block;font-size:14px;color:#27303d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-history-member-main-v205 small{display:block;margin-top:3px;font-size:12px;color:#87909b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-history-member-side-v205{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.live-history-member-side-v205 span{font-size:12px;font-weight:700;color:#7a0c20}.live-history-member-side-v205 em{font-style:normal;font-size:11px;color:#2d7b4f;background:#eef8f1;border-radius:999px;padding:3px 8px}
.live-history-empty-v205{padding:20px;color:#7d8792;font-size:13px;text-align:center}
.live-history-foot-v205{padding:0 24px 22px;display:flex;justify-content:flex-end}
.live-history-cancel-v205{display:flex;gap:11px;align-items:flex-start;margin:16px 24px 4px;padding:13px 14px;border:1px solid #eadfd1;border-radius:14px;background:#fffaf2;color:#6d5328}.live-history-cancel-v205>.ico{width:20px;height:20px;flex:0 0 auto}.live-history-cancel-v205 b,.live-history-cancel-v205 span{display:block}.live-history-cancel-v205 b{font-size:14px}.live-history-cancel-v205 span{font-size:12px;line-height:1.55;margin-top:4px;color:#856f4a}
@media (max-width:760px){.live-history-wrap-v205{width:min(100vw - 12px,760px)!important;max-width:min(100vw - 12px,760px)!important;border-radius:16px!important}.live-history-head-v205{padding:16px 16px 10px}.live-history-head-v205 h2{font-size:19px}.live-history-meta-v205,.live-history-kpis-v205,.live-history-att-v205,.live-history-section-v205,.live-history-foot-v205{padding-left:16px;padding-right:16px}.live-history-kpis-v205{grid-template-columns:repeat(2,minmax(0,1fr))}.live-history-member-v205{grid-template-columns:40px minmax(0,1fr);align-items:flex-start}.live-history-member-side-v205{grid-column:2;align-items:flex-start;flex-direction:row;flex-wrap:wrap}}

/* V0.206 - điểm danh tự động và báo cáo buổi học */
.live-attendance-auto-note-v206{display:flex;align-items:flex-start;gap:8px;margin:0 0 10px;padding:10px 11px;border:1px solid #e8e2e5;border-radius:12px;background:#fbf9fa;color:#646d77;font-size:11px;line-height:1.5}.live-attendance-auto-note-v206>.ico{width:16px;height:16px;flex:0 0 auto;color:#8d0a20}.live-attendance-auto-note-v206 b{color:#7f091c}
.live-attendance-item-v206{align-items:start}.live-attendance-metrics-v206{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:5px;margin-top:6px;padding-left:44px}.live-attendance-metrics-v206 span{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;background:#f4f5f7;color:#68717c;font-size:9px}.live-attendance-metrics-v206 span.warn{background:#fff5e8;color:#a05d00}.live-attendance-metrics-v206 span.auto{background:#eef6ff;color:#2563a3}.live-attendance-metrics-v206 span.manual{background:#eef8f1;color:#28794d}
.live-history-kpis-v206{grid-template-columns:repeat(4,minmax(0,1fr))}.live-history-att-v206{padding-top:8px}.live-history-att-v206 span.present{background:#eef8f1;color:#28794d}.live-history-att-v206 span.late{background:#fff7e9;color:#9a6104}.live-history-att-v206 span.absent{background:#fff0f2;color:#9a1730}.live-history-att-v206 span.excused{background:#eef4ff;color:#2d5ea5}
.live-history-auto-note-v206{display:flex;gap:9px;align-items:flex-start;margin:10px 24px 0;padding:10px 12px;border:1px solid #e7e4e6;border-radius:13px;background:#faf9fa;color:#616a75;font-size:11px;line-height:1.5}.live-history-auto-note-v206>.ico{width:16px;height:16px;flex:0 0 auto;color:#8d0a20}.live-history-auto-note-v206 b{color:#7f091c}
.live-history-member-v206{align-items:start}.live-history-presence-v206{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.live-history-presence-v206 span{font-size:10px;color:#6c7580;background:#f5f6f7;border-radius:999px;padding:3px 7px}.live-history-member-side-v205 small{font-size:10px;color:#7c8792}.live-att-status-v206{font-style:normal!important;border-radius:999px!important;padding:4px 8px!important;font-size:10px!important;font-weight:800}.live-att-status-v206.present{background:#eef8f1!important;color:#28794d!important}.live-att-status-v206.late{background:#fff7e9!important;color:#9a6104!important}.live-att-status-v206.absent{background:#fff0f2!important;color:#9a1730!important}.live-att-status-v206.excused{background:#eef4ff!important;color:#2d5ea5!important}.live-history-foot-v206{gap:8px;align-items:center}.live-history-foot-v206 .btn.primary{margin-right:auto;text-decoration:none}
@media (max-width:760px){.live-history-kpis-v206{grid-template-columns:repeat(2,minmax(0,1fr))}.live-history-auto-note-v206{margin-left:16px;margin-right:16px}.live-attendance-metrics-v206{padding-left:0}.live-history-foot-v206{flex-wrap:wrap}.live-history-foot-v206 .btn.primary{margin-right:0;flex:1 1 100%;justify-content:center}.live-history-foot-v206 .btn:not(.primary){margin-left:auto}}

/* V0.207 - phòng thảo luận nhóm nhỏ */
.live-breakout-badge-v207{border:1px solid #d9a8b1;background:#fff5f7;color:#8d0a20;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap}.live-breakout-badge-v207:hover{background:#ffecef}.live-breakout-pane-v207{padding:14px;overflow:auto;height:100%;box-sizing:border-box}.live-breakout-head-v207{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}.live-breakout-head-v207>div{display:flex;flex-direction:column;gap:4px}.live-breakout-head-v207 b{font-size:14px;color:#2b3340}.live-breakout-head-v207 span{font-size:11px;line-height:1.45;color:#7f8791}.live-breakout-head-v207.active{position:sticky;top:0;background:#fff;z-index:2;padding-bottom:8px;border-bottom:1px solid #f1e9eb}.live-mini-btn.danger{color:#9b0b25;border-color:#dfb2bb;background:#fff6f7}.live-breakout-setup-v207{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0}.live-breakout-setup-v207 label{display:flex;flex-direction:column;gap:6px;font-size:11px;color:#59616d;font-weight:700}.live-breakout-setup-v207 select{border:1px solid #dfe3e8;border-radius:10px;padding:9px 10px;background:#fff;font:inherit;color:#2e3744}.live-breakout-note-v207{display:flex;gap:9px;align-items:flex-start;padding:11px 12px;border:1px solid #e6e0e2;border-radius:12px;background:#faf8f9;margin:10px 0 12px}.live-breakout-note-v207.compact{margin-top:0}.live-breakout-note-v207 .ico{width:18px;height:18px;color:#8d0a20;flex:0 0 auto}.live-breakout-note-v207 span,.live-breakout-note-v207 b,.live-breakout-note-v207 small{display:block}.live-breakout-note-v207 b{font-size:11px;color:#4a515c}.live-breakout-note-v207 small{font-size:10px;color:#7f8791;line-height:1.45;margin-top:3px}.live-breakout-start-v207{width:100%;justify-content:center}.live-breakout-current-v207{border:1px solid #e3c1c7;background:linear-gradient(180deg,#fff7f8,#fff);border-radius:16px;padding:16px;text-align:center}.live-breakout-current-v207 h3{margin:4px 0;color:#830b20;font-size:20px}.live-breakout-current-v207 strong{display:block;font-size:28px;color:#202936;margin:7px 0}.live-breakout-current-v207 p{margin:0;color:#6e7681;font-size:11px;line-height:1.55}.live-breakout-group-members-v207{margin-top:12px;border:1px solid #ece7e9;border-radius:14px;overflow:hidden}.live-breakout-group-members-v207>div{display:flex;align-items:center;gap:9px;padding:10px 11px;border-bottom:1px solid #f1edef}.live-breakout-group-members-v207>div:last-child{border-bottom:0}.live-breakout-group-members-v207 span{min-width:0}.live-breakout-group-members-v207 b,.live-breakout-group-members-v207 small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-breakout-group-members-v207 b{font-size:11px}.live-breakout-group-members-v207 small{font-size:9px;color:#858c96;margin-top:2px}.live-breakout-visit-banner-v207{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:12px;background:#eef8f2;border:1px solid #cce5d4;margin-bottom:10px;color:#356c4b}.live-breakout-visit-banner-v207 .ico{width:16px;height:16px}.live-breakout-visit-banner-v207 span{font-size:11px;flex:1}.live-breakout-visit-banner-v207 button{border:0;background:#fff;color:#286b45;border-radius:8px;padding:6px 8px;font-size:10px;font-weight:800;cursor:pointer}.live-breakout-groups-v207{display:flex;flex-direction:column;gap:10px}.live-breakout-group-v207{border:1px solid #e7e1e3;border-radius:14px;background:#fff;overflow:hidden}.live-breakout-group-v207.current{border-color:#be7d89;box-shadow:0 0 0 2px rgba(141,10,32,.06)}.live-breakout-group-v207>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 11px;background:#fbf9fa;border-bottom:1px solid #eee8ea}.live-breakout-group-v207>header>div{display:flex;flex-direction:column}.live-breakout-group-v207>header b{font-size:12px;color:#333b47}.live-breakout-group-v207>header span{font-size:9px;color:#858d97}.live-breakout-group-v207>header button{border:1px solid #d8c9cc;background:#fff;border-radius:8px;padding:6px 8px;font-size:9px;font-weight:800;color:#7b1022;cursor:pointer}.live-breakout-group-v207>header button.active{background:#8d0a20;color:#fff;border-color:#8d0a20}.live-breakout-member-list-v207>div{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:8px;align-items:center;padding:9px 10px;border-bottom:1px solid #f4f0f1}.live-breakout-member-list-v207>div:last-child{border-bottom:0}.live-breakout-member-list-v207>div>div{display:flex;align-items:center;gap:8px;min-width:0}.live-breakout-member-list-v207>div>div>span{min-width:0}.live-breakout-member-list-v207 b,.live-breakout-member-list-v207 small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-breakout-member-list-v207 b{font-size:10px}.live-breakout-member-list-v207 small{font-size:8px;color:#858d97}.live-breakout-member-list-v207 select{width:100%;border:1px solid #e1dadd;border-radius:8px;padding:6px 5px;background:#fff;color:#5f2731;font-size:9px}.live-side-tabs [data-live-side-tab="breakout"]{min-width:max-content}
@media(max-width:900px){.live-breakout-badge-v207{max-width:145px;overflow:hidden;text-overflow:ellipsis}.live-breakout-pane-v207{padding:10px}.live-breakout-setup-v207{grid-template-columns:1fr}.live-breakout-member-list-v207>div{grid-template-columns:minmax(0,1fr) 86px}.live-breakout-current-v207 strong{font-size:24px}}

/* V0.208 - mẫu phòng học + lịch lặp lại */
.live-template-bar-v208{display:grid;grid-template-columns:minmax(210px,1fr) minmax(220px,320px) auto auto;gap:10px;align-items:center;margin:0 28px 14px;padding:12px 14px;border:1px solid #eadfe2;border-radius:15px;background:#fffafb}
.live-template-bar-v208>div:first-child{display:flex;align-items:center;gap:10px;min-width:0}.live-template-bar-v208>div:first-child>div{display:flex;flex-direction:column;min-width:0}.live-template-bar-v208 b{font-size:13px;color:#701023}.live-template-bar-v208 small{font-size:11px;color:#838994;margin-top:2px}.live-template-icon-v208{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#f7e9ed;color:#8d0a20;flex:0 0 auto}.live-template-icon-v208 .ico{width:17px;height:17px}.live-template-bar-v208 select,.live-template-save-v208 input{height:40px;border:1px solid #dfe3e8;border-radius:10px;background:#fff;padding:0 11px;min-width:0}
.live-template-save-v208{display:flex;gap:8px;align-items:center;margin:-5px 28px 14px;padding:10px 12px;border:1px dashed #d8b2bb;border-radius:12px;background:#fff7f8}.live-template-save-v208 input{flex:1}
.live-repeat-v208{margin-top:12px;padding-top:12px;border-top:1px solid #eee7e9}.live-repeat-config-v208{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:12px;margin-top:10px;padding:12px;border-radius:13px;background:#faf8f9;border:1px solid #ece5e7}.live-repeat-config-v208>div>label,.live-repeat-config-v208 .field>label{display:block;font-size:11px;font-weight:800;color:#505965;margin-bottom:7px}.live-repeat-days-v208{display:flex;gap:6px;flex-wrap:wrap}.live-repeat-days-v208 label{cursor:pointer}.live-repeat-days-v208 input{position:absolute;opacity:0;pointer-events:none}.live-repeat-days-v208 span{display:grid;place-items:center;min-width:38px;height:34px;padding:0 8px;border-radius:9px;border:1px solid #dfe2e6;background:#fff;color:#65707b;font-size:11px;font-weight:800}.live-repeat-days-v208 input:checked+span{background:#8d0a20;color:#fff;border-color:#8d0a20;box-shadow:0 4px 12px rgba(141,10,32,.15)}.live-repeat-config-v208 .field{margin:0}.live-repeat-summary-v208{grid-column:1/-1;padding:8px 10px;border-radius:9px;background:#fff;color:#7a5b62;font-size:11px;border:1px solid #eee5e7}.live-series-tag-v208{background:#f5eef8!important;border-color:#e5d5ec!important;color:#6b387d!important}.live-series-cancel-wrap-v208{width:min(480px,94vw)!important;padding:0!important;overflow:hidden!important}.live-series-cancel-v208{padding:24px}.live-series-cancel-v208 h2{font-size:21px;margin:5px 0 8px}.live-series-cancel-v208>p{font-size:13px;line-height:1.55;color:#69717c;margin:0 0 14px}.live-series-cancel-note-v208{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#fff7ed;border:1px solid #f1dfc9;border-radius:11px;color:#79562b;font-size:12px}.live-series-cancel-note-v208 .ico{width:16px;height:16px;flex:0 0 auto}
@media(max-width:900px){.live-template-bar-v208{grid-template-columns:1fr 1fr;margin-left:16px;margin-right:16px}.live-template-bar-v208>div:first-child{grid-column:1/-1}.live-template-save-v208{margin-left:16px;margin-right:16px}.live-repeat-config-v208{grid-template-columns:1fr}}
@media(max-width:620px){.live-template-bar-v208{grid-template-columns:1fr;gap:8px;margin:0 10px 10px}.live-template-bar-v208>div:first-child{grid-column:auto}.live-template-bar-v208 select,.live-template-bar-v208 .btn{width:100%}.live-template-save-v208{margin:0 10px 10px;display:grid;grid-template-columns:1fr 1fr}.live-template-save-v208 input{grid-column:1/-1;width:100%}.live-repeat-days-v208{display:grid;grid-template-columns:repeat(4,1fr)}.live-repeat-days-v208 span{min-width:0;width:100%}}


/* V0.209 - tinh chỉnh giao diện tạo phòng và báo cáo buổi học */
.live-create-backdrop-v209{backdrop-filter:blur(4px)!important}
.live-create-wrap-v209{width:min(1120px,calc(100vw - 28px))!important;max-width:1120px!important;height:min(800px,calc(100dvh - 28px))!important;border-radius:22px!important;box-shadow:0 28px 80px rgba(24,8,13,.26)!important}
.live-create-v209{background:#f7f8fa}
.live-create-v209 .live-create-head-v201{padding:16px 18px 12px}
.live-create-v209 .live-create-head-v201 h2{font-size:21px}
.live-create-v209 .live-create-head-v201 p{font-size:12px;max-width:760px}
.live-create-close-v209{width:42px;height:42px;border-radius:12px;border:1px solid #eadde0;background:#fff;color:#8d0a20;font-size:26px;line-height:1;display:grid;place-items:center;padding:0;min-width:auto}.live-create-close-v209 span{display:none}.live-create-close-v209:hover{background:#fff5f7}
.live-create-v209 .live-create-mode-v201{padding:8px 18px}.live-create-v209 .live-template-bar-v208{margin:0 18px 12px}.live-create-v209 .live-template-save-v208{margin:-2px 18px 12px}.live-create-v209 .live-create-body-v201{padding:12px 18px 18px;gap:12px;grid-template-columns:minmax(0,1.35fr) minmax(320px,.9fr)}.live-create-v209 .live-create-card-v201{padding:14px 15px;border-radius:16px}.live-create-v209 .live-create-card-title-v201{margin-bottom:8px}.live-create-v209 .live-create-card-title-v201 h3{font-size:14px}.live-create-v209 .live-create-card-title-v201 p{font-size:11px}.live-create-v209 .live-create-card-v201 .field label{font-size:12px}.live-create-v209 .live-create-card-v201 .field input,.live-create-v209 .live-create-card-v201 .field select,.live-create-v209 .live-create-card-v201 .field textarea{font-size:12px;padding:11px 12px}.live-create-v209 .live-create-card-v201 .field small,.live-create-v209 .live-switch-row-v201 small,.live-create-v209 .live-permission-grid-v201 small,.live-create-v209 .live-create-tip-v201 small{font-size:11px}.live-create-v209 .live-switch-row-v201 b,.live-create-v209 .live-permission-grid-v201 b,.live-create-v209 .live-create-tip-v201 b{font-size:12px}.live-create-v209 .live-create-foot-v201{padding:10px 18px}.live-create-v209 .live-create-foot-v201 #lcModeHint{font-size:11px}
@media(max-width:900px){.live-create-wrap-v209{width:calc(100vw - 12px)!important;height:calc(100dvh - 12px)!important;border-radius:16px!important}.live-create-v209 .live-template-bar-v208,.live-create-v209 .live-template-save-v208{margin-left:12px;margin-right:12px}.live-create-v209 .live-create-mode-v201,.live-create-v209 .live-create-head-v201,.live-create-v209 .live-create-body-v201,.live-create-v209 .live-create-foot-v201{padding-left:12px;padding-right:12px}.live-create-v209 .live-create-body-v201{grid-template-columns:1fr}}
@media(max-width:620px){.live-create-wrap-v209{width:100vw!important;max-width:100vw!important;height:100dvh!important;border-radius:0!important}.live-create-v209 .live-create-head-v201{padding:12px 12px 10px}.live-create-close-v209{width:38px;height:38px;font-size:24px}.live-create-v209 .live-create-body-v201{padding:10px}.live-create-v209 .live-create-card-title-v201 p,.live-create-v209 .live-create-card-v201 .field small,.live-create-v209 .live-switch-row-v201 small,.live-create-v209 .live-permission-grid-v201 small,.live-create-v209 .live-create-tip-v201 small{font-size:10px}}

.live-history-backdrop-v209{backdrop-filter:blur(4px)!important}
.live-history-wrap-v209{width:min(980px,94vw)!important;max-width:min(980px,94vw)!important;max-height:min(88vh,860px)!important;border-radius:24px!important;box-shadow:0 28px 80px rgba(24,8,13,.26)!important}
.live-history-modal-v209 .live-history-head-v205{padding:18px 20px 12px}.live-history-modal-v209 .live-history-head-v205 h2{font-size:20px}.live-history-modal-v209 .live-history-head-v205 p{font-size:12px}.live-history-close-v209{width:42px;height:42px;border-radius:12px;font-size:28px}
.live-history-modal-v209 .live-history-meta-v205{padding:10px 20px 0}.live-history-modal-v209 .live-history-meta-v205 span{font-size:11px;padding:7px 10px}.live-history-modal-v209 .live-history-kpis-v206{padding:12px 20px 8px;grid-template-columns:repeat(4,minmax(0,1fr))}.live-history-modal-v209 .live-history-kpis-v206>div{padding:12px 10px}.live-history-modal-v209 .live-history-kpis-v206 b{font-size:24px}.live-history-modal-v209 .live-history-kpis-v206 span{font-size:11px}.live-history-modal-v209 .live-history-att-v206{padding:2px 20px 0}.live-history-modal-v209 .live-history-att-v206 span{font-size:11px}.live-history-auto-note-v206{margin:10px 20px 0;font-size:11px;line-height:1.55}.live-history-modal-v209 .live-history-section-v205{padding:14px 20px 10px}.live-history-modal-v209 .live-history-section-head-v205 b{font-size:15px}.live-history-modal-v209 .live-history-section-head-v205 span{font-size:12px}.live-history-modal-v209 .live-history-members-v205{max-height:36vh;border-radius:14px}.live-history-modal-v209 .live-history-member-v206{padding:10px 12px;grid-template-columns:42px minmax(0,1fr) 132px}.live-history-modal-v209 .live-history-member-main-v205 b{font-size:14px}.live-history-modal-v209 .live-history-member-main-v205 small{font-size:11px}.live-history-modal-v209 .live-history-presence-v206 span{font-size:10px;padding:5px 8px}.live-history-modal-v209 .live-history-member-side-v205 span,.live-history-modal-v209 .live-history-member-side-v205 small{font-size:10px}.live-history-modal-v209 .live-history-foot-v206{padding:0 20px 18px}.live-history-modal-v209 .live-history-foot-v206 .btn{min-width:110px}
@media(max-width:900px){.live-history-wrap-v209{width:calc(100vw - 12px)!important;max-width:calc(100vw - 12px)!important}.live-history-modal-v209 .live-history-kpis-v206{grid-template-columns:repeat(2,minmax(0,1fr))}.live-history-modal-v209 .live-history-member-v206{grid-template-columns:42px minmax(0,1fr)}}
@media(max-width:620px){.live-history-wrap-v209{width:calc(100vw - 8px)!important;max-width:calc(100vw - 8px)!important;max-height:calc(100dvh - 8px)!important;border-radius:16px!important}.live-history-modal-v209 .live-history-head-v205,.live-history-modal-v209 .live-history-meta-v205,.live-history-modal-v209 .live-history-kpis-v206,.live-history-modal-v209 .live-history-att-v206,.live-history-auto-note-v206,.live-history-modal-v209 .live-history-section-v205,.live-history-modal-v209 .live-history-foot-v206{padding-left:14px;padding-right:14px}.live-history-modal-v209 .live-history-head-v205{padding-top:14px;padding-bottom:10px}.live-history-modal-v209 .live-history-head-v205 h2{font-size:18px}.live-history-modal-v209 .live-history-kpis-v206 b{font-size:21px}.live-history-modal-v209 .live-history-member-v206{grid-template-columns:38px minmax(0,1fr)}.live-history-modal-v209 .live-history-member-side-v205{grid-column:2;align-items:flex-start;flex-direction:row;flex-wrap:wrap;gap:6px}}


/* V0.210 - sửa chồng lấn vùng Mẫu phòng trong form Tạo phòng */
.live-create-v209{grid-template-rows:auto auto auto minmax(0,1fr) auto!important}
.live-template-area-v210{min-height:0;background:#f7f8fa;padding-top:10px;position:relative;z-index:2}
.live-template-area-v210.student{height:0;min-height:0;padding:0;overflow:hidden}
.live-template-area-v210 .live-template-bar-v208{margin-top:0;margin-bottom:10px}
.live-template-area-v210 .live-template-save-v208{margin-top:0;margin-bottom:10px}
.live-create-v209 .live-create-body-v201{position:relative;z-index:1}
@media(max-width:900px){.live-template-area-v210{padding-top:8px}}
@media(max-width:620px){.live-template-area-v210{padding-top:6px}.live-template-area-v210.student{height:0;padding:0}}


/* V0.212 - quản lý bài luyện đã giao */
.practice-assignment-tabs-v212{display:flex;align-items:center;gap:6px;margin:10px 0 12px}.practice-assignment-tabs-v212 button{border:1px solid #e1e4e8;background:#fff;border-radius:10px;padding:8px 11px;color:#66707b;font-size:11px;font-weight:800;cursor:pointer}.practice-assignment-tabs-v212 button.active{background:#8d0a20;border-color:#8d0a20;color:#fff}.practice-assignment-tabs-v212 button span{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:999px;margin-left:5px;background:#f0f1f3;color:#6d7580;font-size:9px}.practice-assignment-tabs-v212 button.active span{background:#fff2;color:#fff}
.practice-assignment-admin-actions.v212{display:grid;grid-template-columns:repeat(2,minmax(88px,1fr));gap:6px;min-width:196px}.practice-assignment-admin-actions.v212 .pa-action-tool{height:35px}.practice-assignment-admin-actions.v212 .assignmentDelete{grid-column:1/-1}
.practice-paper-wrap-v212{width:min(960px,95vw)!important;max-width:960px!important;max-height:92vh!important;padding:0!important;overflow:hidden!important;border-radius:20px!important}.practice-paper-modal-v212{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;max-height:92vh}.practice-paper-head-v212{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 20px 12px;border-bottom:1px solid #eee7e9}.practice-paper-head-v212 h2{font-size:20px;margin:4px 0 5px}.practice-paper-head-v212 p{font-size:12px;color:#747c87;margin:0}.practice-paper-summary-v212{display:flex;gap:8px;padding:10px 20px;background:#faf8f9;border-bottom:1px solid #eee7e9}.practice-paper-summary-v212 span{padding:6px 9px;border-radius:999px;background:#fff;border:1px solid #e6dfe1;font-size:11px;color:#69717c}.practice-paper-summary-v212 b{color:#8d0a20}.practice-paper-body-v212{overflow:auto;padding:16px 20px;background:#f7f7f8}.practice-paper-q-v212{background:#fff;border:1px solid #e4e6e9;border-radius:14px;padding:14px 15px;margin-bottom:11px}.practice-paper-q-meta-v212{display:flex;gap:6px;align-items:center;margin-bottom:8px}.practice-paper-q-meta-v212 span,.practice-paper-q-meta-v212 em{font-style:normal;font-size:9px;font-weight:800;padding:4px 7px;border-radius:999px;background:#f4f5f7;color:#68717c}.practice-paper-q-meta-v212 span{background:#fff0f2;color:#8d0a20}.practice-paper-q-title-v212{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px;font-size:13px;line-height:1.55;color:#2f3742}.practice-paper-options-v212,.practice-paper-tf-v212{display:grid;gap:7px;margin-top:10px}.practice-paper-options-v212>div,.practice-paper-tf-v212>div{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:8px;align-items:start;padding:8px 9px;border-radius:9px;background:#fafbfc;border:1px solid #eceef0;font-size:12px}.practice-paper-options-v212>div.correct,.practice-paper-tf-v212>div.correct{background:#eef8f2;border-color:#cce6d6}.practice-paper-tf-v212>div.wrong em{color:#9a1730}.practice-paper-options-v212 em,.practice-paper-tf-v212 em{font-style:normal;font-size:10px;font-weight:800;color:#27784b}.practice-paper-explain-v212{margin-top:9px;padding:9px 10px;border-radius:9px;background:#fff9e9;color:#6e5b37;font-size:11px}.practice-paper-foot-v212{display:flex;justify-content:flex-end;padding:10px 20px 16px;border-top:1px solid #eee7e9;background:#fff}
.practice-safe-edit-wrap-v212{width:min(700px,94vw)!important;max-width:700px!important;padding:0!important;overflow:hidden!important}.practice-safe-edit-v212>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px 20px 12px;border-bottom:1px solid #eee}.practice-safe-edit-v212>header h2{margin:4px 0 5px;font-size:20px}.practice-safe-edit-v212>header p{margin:0;color:#737b86;font-size:12px;line-height:1.5}.practice-safe-edit-note-v212{display:flex;gap:9px;align-items:flex-start;margin:13px 20px 0;padding:10px 11px;border:1px solid #eadbd0;border-radius:11px;background:#fffaf2;color:#70572e}.practice-safe-edit-note-v212 .ico{width:18px;height:18px;flex:0 0 auto}.practice-safe-edit-note-v212 b,.practice-safe-edit-note-v212 small{display:block}.practice-safe-edit-note-v212 b{font-size:12px}.practice-safe-edit-note-v212 small{font-size:10px;margin-top:2px;line-height:1.45}.practice-safe-edit-form-v212{padding:10px 20px 6px}.practice-safe-edit-grid-v212{display:grid;grid-template-columns:140px 1fr 1fr;gap:10px}.practice-safe-edit-v212 footer{display:flex;justify-content:flex-end;gap:8px;padding:10px 20px 18px}
@media(max-width:900px){.practice-assignment-admin-actions.v212{grid-template-columns:repeat(3,1fr);grid-column:auto}.practice-assignment-admin-actions.v212 .assignmentDelete{grid-column:auto}.practice-safe-edit-grid-v212{grid-template-columns:1fr}.practice-paper-wrap-v212{width:calc(100vw - 10px)!important;max-width:calc(100vw - 10px)!important}}
@media(max-width:620px){.practice-assignment-tabs-v212{display:grid;grid-template-columns:1fr 1fr}.practice-assignment-admin-actions.v212{grid-template-columns:1fr 1fr}.practice-assignment-admin-actions.v212 .assignmentDelete{grid-column:1/-1}.practice-paper-head-v212,.practice-paper-summary-v212,.practice-paper-body-v212,.practice-paper-foot-v212{padding-left:12px;padding-right:12px}.practice-paper-q-title-v212{grid-template-columns:1fr}.practice-paper-options-v212>div,.practice-paper-tf-v212>div{grid-template-columns:22px minmax(0,1fr)}}


/* ===== V0.214 · Thẻ giao bài luyện gọn hơn, nút tinh hơn ===== */
.practice-assignment-admin-card.v214{grid-template-columns:minmax(290px,1.28fr) minmax(255px,.92fr) minmax(235px,.9fr) 158px;gap:14px;padding:14px 15px;border-radius:14px;border:1px solid #e6e8ec;background:linear-gradient(180deg,#fff 0%,#fcfcfd 100%);box-shadow:0 2px 10px rgba(38,27,31,.035)}
.practice-assignment-admin-card.v214:hover{box-shadow:0 8px 20px rgba(50,30,36,.06);border-color:#ddd6da;transform:translateY(-1px)}
.practice-assignment-admin-card.v214 .practice-assignment-admin-title>div{align-items:center;gap:7px}.practice-assignment-admin-card.v214 .practice-assignment-admin-title>div>span:last-child{font-size:9px;color:#9aa1aa}.practice-assignment-admin-card.v214 .practice-assignment-admin-title h3{font-size:14px;line-height:1.28;margin:6px 0 4px;color:#28313b}.practice-assignment-admin-card.v214 .practice-assignment-admin-title p{font-size:10.5px;line-height:1.42;color:#747d87}.practice-assignment-admin-card.v214 .practice-assignment-source{margin-top:6px;font-size:9.5px;color:#96606d}
.practice-assignment-admin-card.v214 .practice-assignment-admin-stats.v112{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;align-content:start}.practice-assignment-admin-card.v214 .practice-assignment-admin-stats.v112>div{padding:8px 9px;border-radius:9px;background:#f8f9fb;border:1px solid #eef1f4}.practice-assignment-admin-card.v214 .practice-assignment-admin-stats.v112 span{font-size:8.2px}.practice-assignment-admin-card.v214 .practice-assignment-admin-stats.v112 b{font-size:15px;margin-top:3px;color:#3f4751}
.practice-assignment-admin-card.v214 .practice-assignment-admin-time.v112{gap:4px;font-size:9.7px;line-height:1.4}.practice-assignment-admin-card.v214 .practice-assignment-admin-time.v112 em{font-size:8.8px;padding:4px 7px;border-radius:999px;background:#fbf3f5;color:#8a1630;border:1px solid #f0d9df;width:auto}
.practice-assignment-admin-actions.v214{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;align-self:start;justify-self:end;width:100%;min-width:0}.practice-assignment-admin-actions.v214 .pa-action-tool{height:34px;border-radius:9px;font-size:8.8px;font-weight:800;padding:0 8px;background:#fff;border:1px solid #e1e5e8;color:#5f6974;box-shadow:none}.practice-assignment-admin-actions.v214 .pa-action-tool .ico{width:12px;height:12px}.practice-assignment-admin-actions.v214 .pa-action-tool:hover{background:#fcf7f8;border-color:#ccb6bd;color:#821229}.practice-assignment-admin-actions.v214 .pa-action-tool.primary{background:#8f0d28;border-color:#8f0d28;color:#fff}.practice-assignment-admin-actions.v214 .pa-action-tool.primary:hover{background:#781024;border-color:#781024;color:#fff}.practice-assignment-admin-actions.v214 .pa-action-tool.danger{background:#fff;border-color:#efd8dc;color:#a4273a}.practice-assignment-admin-actions.v214 .pa-action-tool.danger:hover{background:#fff3f5;border-color:#dfb0b9}.practice-assignment-admin-actions.v214 .assignmentDetail{grid-column:1/-1;height:36px}.practice-assignment-admin-actions.v214 .assignmentDelete{grid-column:1/-1}
@media(max-width:1350px){.practice-assignment-admin-card.v214{grid-template-columns:minmax(260px,1.2fr) minmax(230px,.9fr) minmax(220px,.92fr)}.practice-assignment-admin-actions.v214{grid-column:1/-1;grid-template-columns:repeat(5,minmax(88px,1fr));justify-self:stretch}.practice-assignment-admin-actions.v214 .assignmentDetail,.practice-assignment-admin-actions.v214 .assignmentDelete{grid-column:auto;height:34px}}
@media(max-width:900px){.practice-assignment-admin-card.v214{grid-template-columns:1fr}.practice-assignment-admin-actions.v214{grid-column:auto;grid-template-columns:repeat(2,minmax(0,1fr))}.practice-assignment-admin-actions.v214 .assignmentDetail,.practice-assignment-admin-actions.v214 .assignmentDelete{grid-column:1/-1}}
@media(max-width:620px){.practice-assignment-admin-card.v214{padding:12px}.practice-assignment-admin-card.v214 .practice-assignment-admin-stats.v112{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-assignment-admin-actions.v214 .pa-action-tool{font-size:8.5px}}


/* ===== V0.215 · Thẻ bài luyện siêu gọn ===== */
.practice-assignment-admin-list{gap:7px!important}
.practice-assignment-card-v215{display:grid;grid-template-columns:minmax(260px,1.35fr) minmax(245px,.9fr) minmax(245px,.92fr) auto;align-items:center;gap:12px;padding:10px 12px;background:#fff;border:1px solid #e5e8eb;border-radius:12px;box-shadow:0 2px 8px rgba(39,28,32,.025);transition:.15s ease;min-height:88px}
.practice-assignment-card-v215:hover{border-color:#d8dadd;box-shadow:0 6px 15px rgba(49,32,38,.05)}
.practice-assignment-main-v215{min-width:0}.practice-assignment-status-v215{display:flex;align-items:center;gap:6px}.practice-assignment-status-v215>span{font-size:8.5px;color:#9aa1aa}.practice-assignment-main-v215 h3{margin:5px 0 4px;font-size:13px;line-height:1.25;color:#26303a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.practice-assignment-meta-v215{display:flex;align-items:center;gap:10px;min-width:0;color:#7d858e;font-size:9px}.practice-assignment-meta-v215>span{display:inline-flex;align-items:center;gap:4px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.practice-assignment-meta-v215>span:first-child{color:#945665;flex:0 0 auto}.practice-assignment-meta-v215 .ico{width:12px;height:12px}
.practice-assignment-stats-v215{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;border:1px solid #eef0f2;border-radius:10px;background:#fafbfc;overflow:hidden}.practice-assignment-stats-v215>span{min-width:0;text-align:center;padding:7px 5px;border-left:1px solid #eef0f2}.practice-assignment-stats-v215>span:first-child{border-left:0}.practice-assignment-stats-v215 b{display:block;font-size:14px;line-height:1.1;color:#424a54}.practice-assignment-stats-v215 small{display:block;margin-top:3px;font-size:7.8px;color:#8e959d;white-space:nowrap}
.practice-assignment-time-v215{min-width:0;display:flex;flex-direction:column;gap:3px;color:#7b838d}.practice-assignment-time-v215 strong{font-size:9.6px;color:#4d5660;white-space:nowrap}.practice-assignment-time-v215>span{font-size:8.7px;white-space:nowrap}.practice-assignment-time-v215 em{align-self:flex-start;font-style:normal;font-size:8.2px;color:#8f1730;background:#fbf3f5;border:1px solid #f0dde1;border-radius:999px;padding:3px 6px;white-space:nowrap}
.practice-assignment-actions-v215{display:flex;align-items:center;justify-content:flex-end;gap:4px;flex-wrap:nowrap}.pa-mini-v215{height:30px;border:1px solid #e0e4e7;border-radius:8px;background:#fff;color:#5f6872;font:inherit;font-size:8.3px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:0 7px;cursor:pointer;white-space:nowrap;transition:.14s ease}.pa-mini-v215 .ico{width:11px;height:11px}.pa-mini-v215:hover{background:#fbf6f7;border-color:#cfb9bf;color:#7f1126}.pa-mini-v215.primary{background:#8d0a20;border-color:#8d0a20;color:#fff}.pa-mini-v215.primary:hover{background:#741021;border-color:#741021;color:#fff}.pa-mini-v215.danger{color:#a12a3c;border-color:#efdadd;background:#fff}.pa-mini-v215.danger:hover{background:#fff3f5;border-color:#dfb3bb}
@media(max-width:1380px){.practice-assignment-card-v215{grid-template-columns:minmax(250px,1.2fr) minmax(230px,.9fr) minmax(220px,.9fr)}.practice-assignment-actions-v215{grid-column:1/-1;justify-content:flex-end;margin-top:-2px}.pa-mini-v215{height:29px}}
@media(max-width:980px){.practice-assignment-card-v215{grid-template-columns:1fr 1fr}.practice-assignment-time-v215{grid-column:1}.practice-assignment-actions-v215{grid-column:2;justify-content:flex-end;align-self:end;flex-wrap:wrap}.practice-assignment-stats-v215{grid-column:2;grid-row:1}.practice-assignment-main-v215{grid-column:1;grid-row:1}}
@media(max-width:700px){.practice-assignment-card-v215{grid-template-columns:1fr;padding:10px}.practice-assignment-main-v215,.practice-assignment-stats-v215,.practice-assignment-time-v215,.practice-assignment-actions-v215{grid-column:1;grid-row:auto}.practice-assignment-actions-v215{justify-content:flex-start;flex-wrap:wrap}.pa-mini-v215{height:30px}.practice-assignment-meta-v215{flex-wrap:wrap}.practice-assignment-time-v215 strong,.practice-assignment-time-v215>span{white-space:normal}}


/* ===== V0.216 · Giao bài luyện đồng bộ dạng bảng với Kỳ thi ===== */
.practice-assignments-v216 .compact-module-head{margin-bottom:12px}
.practice-assignments-v216 .practice-assignment-tabs-v216{margin-bottom:12px}
.practice-assignment-table-card-v216{padding:0!important;overflow:hidden;border-radius:13px;border:1px solid #e0e4e8;box-shadow:0 3px 12px rgba(31,36,44,.03)}
.practice-assignment-table-card-v216 .table-wrap{max-height:calc(100vh - 300px);overflow:auto;scrollbar-width:thin}
.practice-assignment-table-v216{width:100%;border-collapse:collapse}
.practice-assignment-table-v216 thead th{position:sticky;top:0;z-index:3;background:#f7f8fa;border-bottom:1px solid #dfe3e7;padding:10px 12px;font-size:9.5px;letter-spacing:.015em;white-space:nowrap;text-align:left;color:#5f6873}
.practice-assignment-table-v216 tbody td{padding:11px 12px;font-size:10.5px;border-bottom:1px solid #edf0f2;vertical-align:middle}
.practice-assignment-table-v216 tbody tr:last-child td{border-bottom:0}
.practice-assignment-row-v216{transition:background .14s ease}
.practice-assignment-row-v216:hover{background:#fafbfc}
.practice-assignment-row-v216[data-practice-phase="open"]{box-shadow:inset 3px 0 0 #2d8a59}
.practice-assignment-row-v216[data-practice-phase="upcoming"]{box-shadow:inset 3px 0 0 #c39a3d}
.practice-assignment-row-v216[data-practice-phase="closed"],.practice-assignment-row-v216[data-practice-phase="archived"]{box-shadow:inset 3px 0 0 #9299a3}
.practice-assignment-table-v216 tbody td:first-child{min-width:290px}
.practice-assignment-table-v216 tbody td:first-child>b{display:block;color:#343b44;font-size:11.5px;line-height:1.35}
.practice-assignment-table-v216 .table-sub{display:block;margin-top:3px;font-size:8.7px;line-height:1.35;color:#8a929b;font-weight:500}
.practice-source-mini-v216{display:flex!important;align-items:center;gap:4px;max-width:440px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.practice-source-mini-v216 .ico{width:12px;height:12px;flex:0 0 auto;color:#945263}
.practice-assignment-table-v216 td:nth-child(2){min-width:175px}.practice-assignment-table-v216 td:nth-child(3){min-width:145px}.practice-assignment-table-v216 td:nth-child(4){min-width:85px}.practice-assignment-table-v216 td:nth-child(5){min-width:145px}
.practice-table-actions-v216{display:flex;justify-content:flex-end;align-items:center;gap:6px;flex-wrap:nowrap;white-space:nowrap;min-width:max-content}
.practice-table-actions-v216 .btn.compact{min-height:34px;padding:0 10px;border-radius:9px;font-size:9px;font-weight:800;gap:5px;background:#fff;border:1px solid #dfe3e7;color:#59636e;box-shadow:none}
.practice-table-actions-v216 .btn.compact:hover{border-color:#c7afb6;background:#fff7f9;color:#821229}
.practice-table-actions-v216 .btn.compact .ico{width:13px;height:13px}
.practice-table-actions-v216 .assignmentDetail{background:#fff;border-color:#d9dfe4;color:#4e5964}
.practice-table-actions-v216 .icon-btn{width:34px;height:34px;border-radius:9px;border:1px solid #dfe3e7;background:#fff;color:#66717b;display:grid;place-items:center;cursor:pointer;padding:0}
.practice-table-actions-v216 .icon-btn .ico{width:14px;height:14px}
.practice-table-actions-v216 .icon-btn:hover{border-color:#c7afb6;background:#fff7f9;color:#821229}
.practice-table-actions-v216 .icon-btn.danger{border-color:#efd8dc;color:#a4273a}.practice-table-actions-v216 .icon-btn.danger:hover{background:#fff1f3;border-color:#dfb0b9}
.practice-assignment-empty-v216{padding:28px;text-align:center;color:#8d949c;font-size:10.5px;background:#fff}
@media(max-width:1180px){.practice-assignment-table-card-v216 .table-wrap{overflow:auto}.practice-assignment-table-v216{min-width:1080px}}
@media(max-width:760px){.practice-assignments-v216 .compact-module-head{align-items:flex-start}.practice-assignments-v216 .compact-main-action{min-height:38px}.practice-assignment-table-card-v216 .table-wrap{max-height:calc(100dvh - 280px)}}


/* ===== V0.217 · Giao bài luyện tránh tràn trên desktop ===== */
@media(min-width:1181px){
  .practice-assignment-table-card-v216 .table-wrap{overflow-x:hidden;overflow-y:auto}
  .practice-assignment-table-v216{table-layout:fixed;min-width:0!important}
  .practice-assignment-table-v216 thead th,.practice-assignment-table-v216 tbody td{padding:9px 10px}
  .practice-assignment-table-v216 thead th:nth-child(1),.practice-assignment-table-v216 tbody td:nth-child(1){width:30%;min-width:0}
  .practice-assignment-table-v216 thead th:nth-child(2),.practice-assignment-table-v216 tbody td:nth-child(2){width:15%;min-width:0}
  .practice-assignment-table-v216 thead th:nth-child(3),.practice-assignment-table-v216 tbody td:nth-child(3){width:13%;min-width:0}
  .practice-assignment-table-v216 thead th:nth-child(4),.practice-assignment-table-v216 tbody td:nth-child(4){width:7%;min-width:0}
  .practice-assignment-table-v216 thead th:nth-child(5),.practice-assignment-table-v216 tbody td:nth-child(5){width:12%;min-width:0}
  .practice-assignment-table-v216 thead th:nth-child(6),.practice-assignment-table-v216 tbody td:nth-child(6){width:23%;min-width:0}
  .practice-assignment-table-v216 tbody td:first-child>b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .practice-assignment-table-v216 .table-sub{font-size:8.3px}
  .practice-source-mini-v216{max-width:none}
  .practice-source-mini-v216,.practice-assignment-table-v216 td:nth-child(2) .table-sub,.practice-assignment-table-v216 td:nth-child(3) .table-sub,.practice-assignment-table-v216 td:nth-child(5) .table-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .practice-table-actions-v216{gap:4px;min-width:0;flex-wrap:nowrap}
  .practice-table-actions-v216 .btn.compact{min-height:31px;height:31px;padding:0 8px;font-size:8.4px;border-radius:8px;gap:4px}
  .practice-table-actions-v216 .btn.compact .ico,.practice-table-actions-v216 .icon-btn .ico{width:12px;height:12px}
  .practice-table-actions-v216 .icon-btn{width:31px;height:31px;border-radius:8px}
}
@media(max-width:1180px){
  .practice-assignment-table-v216{min-width:1040px}
}

/* ===== V0.218 · Quản trị nội dung theo giáo viên trong từng phân hệ ===== */
.module-teacher-grid-v218{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.module-teacher-card-v218{font:inherit;appearance:none;border:1px solid #e2e6ea;background:#fff;border-radius:15px;padding:14px;display:grid;grid-template-columns:46px minmax(0,1fr) auto 18px;gap:11px;align-items:center;text-align:left;cursor:pointer;box-shadow:0 3px 12px rgba(32,38,46,.035);transition:.15s}.module-teacher-card-v218:hover{border-color:#d4b9c0;box-shadow:0 8px 22px rgba(73,29,42,.07);transform:translateY(-1px)}.module-teacher-avatar-v218{width:46px!important;height:46px!important;border-radius:50%!important;font-size:13px!important;flex:0 0 auto}.module-teacher-copy-v218{min-width:0}.module-teacher-copy-v218 .eyebrow{font-size:7.5px}.module-teacher-copy-v218 h3{margin:3px 0 2px;font-size:13px;color:#303844;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.module-teacher-copy-v218 p{margin:0;font-size:9px;color:#8a929c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.module-teacher-stats-v218{display:grid;grid-template-columns:repeat(2,minmax(62px,1fr));gap:5px}.module-teacher-stats-v218 span{display:flex;flex-direction:column;gap:1px;padding:6px 7px;border-radius:9px;background:#f8f9fa;color:#8a929b;font-size:7.5px;text-align:center}.module-teacher-stats-v218 b{font-size:12px;color:#7f1026}.module-teacher-card-v218>.ico{width:17px;height:17px;color:#a3a9b1}.module-owner-back-v218{font:inherit;border:0;background:transparent;color:#861128;padding:0;margin:0 0 5px;display:inline-flex;align-items:center;gap:4px;font-size:9px;font-weight:850;cursor:pointer}.module-owner-back-v218 .ico{width:13px;height:13px}.module-owner-back-v218:hover{text-decoration:underline}.practice-assignments-v218 .page-head p,.online-exam-admin-v218 .page-head p{max-width:720px}
@media(max-width:1200px){.module-teacher-grid-v218{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.module-teacher-grid-v218{grid-template-columns:1fr}.module-teacher-card-v218{grid-template-columns:42px minmax(0,1fr) 16px}.module-teacher-avatar-v218{width:42px!important;height:42px!important}.module-teacher-stats-v218{grid-column:1/-1;grid-row:2;grid-template-columns:repeat(4,minmax(0,1fr))}.module-teacher-card-v218>.ico{grid-column:3;grid-row:1}}

/* ===== V0.220 · Cấu hình công bố kết quả kỳ thi ===== */
.online-time-grid-v220{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.oe-release-config-v220{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-top:12px;padding:13px 14px;border:1px solid #e3dadd;border-radius:13px;background:#fcfafb}
.oe-release-config-title-v220{grid-column:1/-1;display:flex;align-items:baseline;gap:9px;border-bottom:1px solid #eee6e8;padding-bottom:8px}.oe-release-config-title-v220 .eyebrow{font-size:8px}.oe-release-config-title-v220 b{font-size:11px;color:#3b444e}
.oe-release-config-v220>label{display:flex;flex-direction:column;gap:6px}.oe-release-config-v220>label>span{font-size:10px;font-weight:850;color:#59626d}.oe-release-config-v220 select{height:39px;border:1px solid #ddd4d7;border-radius:9px;background:#fff;padding:0 10px;font:inherit;font-size:10px;color:#3f4853;outline:none}.oe-release-config-v220 select:focus{border-color:#ae7180;box-shadow:0 0 0 2px rgba(141,10,32,.06)}
.oe-release-hint-v220{grid-column:1/-1;display:flex;align-items:flex-start;gap:8px;padding:9px 10px;border-radius:10px;background:#fff7f8;border:1px solid #edd8dd;color:#6f3744}.oe-release-hint-v220>.ico{width:16px;height:16px;flex:0 0 auto;margin-top:1px}.oe-release-hint-v220 span,.oe-release-hint-v220 b,.oe-release-hint-v220 small{display:block}.oe-release-hint-v220 b{font-size:9.5px}.oe-release-hint-v220 small{margin-top:2px;font-size:8.5px;line-height:1.5;color:#805f67}.oe-release-hint-v220 strong{color:#801128}
.oe-publish-state.auto{background:#eef4ff;color:#426798;border-color:#d7e2f2}
.online-result-visibility-note-v220{display:flex;align-items:flex-start;gap:10px;margin:12px 20px;padding:12px 13px;border:1px solid #e2e5e9;border-radius:11px;background:#fafbfc;color:#5e6772}.online-result-visibility-note-v220>.ico{width:18px;height:18px;flex:0 0 auto;color:#8d1028}.online-result-visibility-note-v220 span,.online-result-visibility-note-v220 b,.online-result-visibility-note-v220 small{display:block}.online-result-visibility-note-v220 b{font-size:11px;color:#424b56}.online-result-visibility-note-v220 small{font-size:9px;line-height:1.5;margin-top:3px;color:#7f8791}
.online-review-v128 .online-review-summary-v128{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
@media(max-width:900px){.online-time-grid-v220{grid-template-columns:1fr 1fr!important}.oe-release-config-v220{grid-template-columns:1fr}.oe-release-config-title-v220,.oe-release-hint-v220{grid-column:auto}}
@media(max-width:620px){.online-time-grid-v220{grid-template-columns:1fr!important}.oe-release-config-v220{padding:10px}.online-result-visibility-note-v220{margin:10px 12px}.online-review-v128 .online-review-summary-v128{grid-template-columns:1fr 1fr}}


/* ===== V0.221 · Thiết kế lại card giáo viên ở Luyện tập & Kỳ thi ===== */
.module-teacher-grid-v221{display:grid;grid-template-columns:repeat(auto-fill,minmax(390px,520px));gap:14px;justify-content:start;align-items:start}
.module-teacher-card-v221{position:relative;display:block!important;width:100%;min-height:138px;padding:0!important;border:1px solid #e3e6ea!important;border-radius:17px!important;background:#fff!important;overflow:hidden;text-align:left;box-shadow:0 4px 16px rgba(34,39,46,.045)!important;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease!important}
.module-teacher-card-v221:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#8f1028;opacity:.92}
.module-teacher-card-v221:hover{transform:translateY(-2px)!important;border-color:#d5bcc2!important;box-shadow:0 10px 26px rgba(64,31,40,.09)!important}
.module-teacher-card-v221:focus-visible{outline:3px solid rgba(143,16,40,.16);outline-offset:2px}
.module-teacher-main-v221{display:grid;grid-template-columns:54px minmax(0,1fr) 36px;gap:12px;align-items:center;padding:15px 16px 13px 18px}
.module-teacher-avatar-v221{width:54px!important;height:54px!important;border-radius:50%!important;font-size:15px!important;box-shadow:0 0 0 4px #faf2f4;border:1px solid #ead7dc;background:#f4e2e6!important;color:#7f1026!important}
.module-teacher-copy-v221{min-width:0}.module-teacher-name-row-v221{display:flex;align-items:center;gap:8px;min-width:0}.module-teacher-name-row-v221 h3{margin:0!important;font-size:14px!important;line-height:1.25;color:#2e3540!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.module-teacher-copy-v221 p{margin:5px 0 0!important;font-size:10.5px!important;color:#858d97!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.module-teacher-role-v221{flex:0 0 auto;display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border-radius:999px;background:#f2f4f6;color:#707985;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.035em}.module-teacher-role-v221.admin{background:#fff0f3;color:#8d1029;border:1px solid #f0d6dd}
.module-teacher-arrow-v221{width:34px;height:34px;border-radius:10px;border:1px solid #e5e8eb;background:#fafbfc;display:grid;place-items:center;color:#8d1028;transition:.15s}.module-teacher-arrow-v221 .ico{width:16px;height:16px}.module-teacher-card-v221:hover .module-teacher-arrow-v221{background:#8d1028;border-color:#8d1028;color:#fff;transform:translateX(2px)}
.module-teacher-stats-v221{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:0!important;border-top:1px solid #edf0f2;background:#fbfcfd;padding:0!important}.module-teacher-stats-v221 span{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;padding:8px 6px!important;border-radius:0!important;background:transparent!important;text-align:center;color:#818a94!important}.module-teacher-stats-v221 span+span{border-left:1px solid #edf0f2}.module-teacher-stats-v221 b{font-size:15px!important;line-height:1;color:#7f1026!important}.module-teacher-stats-v221 small{display:block;font-size:8.5px;line-height:1.2;color:#8a929b;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
@media(max-width:1180px){.module-teacher-grid-v221{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch}}
@media(max-width:760px){.module-teacher-grid-v221{grid-template-columns:1fr}.module-teacher-card-v221{min-height:0}.module-teacher-main-v221{grid-template-columns:48px minmax(0,1fr) 32px;padding:13px 13px 11px 16px}.module-teacher-avatar-v221{width:48px!important;height:48px!important}.module-teacher-arrow-v221{width:31px;height:31px}.module-teacher-name-row-v221{align-items:flex-start;flex-direction:column;gap:4px}.module-teacher-role-v221{min-height:19px;font-size:7.5px}.module-teacher-stats-v221{grid-template-columns:repeat(2,minmax(0,1fr))!important}.module-teacher-stats-v221 span:nth-child(3){border-left:0;border-top:1px solid #edf0f2}.module-teacher-stats-v221 span:nth-child(4){border-top:1px solid #edf0f2}.module-teacher-stats-v221 span{min-height:46px}.module-teacher-stats-v221 small{font-size:8px}}


/* ===== V0.222 · Card giáo viên compact, lưới 3 cột ===== */
.module-teacher-grid-v222{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important;align-items:stretch!important;justify-content:stretch!important;width:100%}
.module-teacher-card-v222{position:relative!important;display:flex!important;flex-direction:column!important;justify-content:space-between!important;width:100%!important;min-width:0!important;min-height:112px!important;padding:0!important;border:1px solid #e4e7eb!important;border-radius:14px!important;background:#fff!important;overflow:hidden!important;box-shadow:0 2px 9px rgba(32,37,44,.035)!important;transform:none!important}
.module-teacher-card-v222:before{width:3px!important;background:#8b1027!important}
.module-teacher-card-v222:hover{transform:translateY(-1px)!important;border-color:#d8c6cb!important;box-shadow:0 7px 18px rgba(62,33,41,.065)!important}
.module-teacher-main-v222{display:grid!important;grid-template-columns:44px minmax(0,1fr) 28px!important;gap:10px!important;align-items:center!important;padding:12px 12px 8px 14px!important}
.module-teacher-avatar-v222{width:44px!important;height:44px!important;border-radius:12px!important;border:1px solid #eadde1!important;box-shadow:none!important;background:linear-gradient(145deg,#f9eff2,#f2e3e7)!important;color:#861229!important;font-size:12px!important;font-weight:900!important;display:grid!important;place-items:center!important;overflow:hidden!important}
.module-teacher-avatar-v222 img{width:100%!important;height:100%!important;object-fit:cover!important;border-radius:inherit!important;display:block!important}
.module-teacher-copy-v222{min-width:0!important}.module-teacher-name-row-v222{display:flex!important;align-items:center!important;gap:6px!important;min-width:0!important}.module-teacher-name-row-v222 h3{margin:0!important;font-size:12.5px!important;line-height:1.25!important;color:#2f3742!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.module-teacher-copy-v222 p{margin:4px 0 0!important;font-size:9px!important;color:#8c949d!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.module-teacher-role-v222{min-height:18px!important;padding:0 6px!important;font-size:6.8px!important;letter-spacing:.03em!important;background:#f4f5f7!important;color:#737c86!important;border:0!important}.module-teacher-role-v222.admin{background:#fff1f4!important;color:#8b1028!important;border:1px solid #efd8de!important}
.module-teacher-arrow-v222{width:27px!important;height:27px!important;border-radius:8px!important;border:0!important;background:#f7f8fa!important;color:#8d1028!important;box-shadow:inset 0 0 0 1px #e7e9ec!important}.module-teacher-arrow-v222 .ico{width:13px!important;height:13px!important}.module-teacher-card-v222:hover .module-teacher-arrow-v222{background:#8d1028!important;color:#fff!important;box-shadow:none!important;transform:none!important}
.module-teacher-stats-v222{display:flex!important;align-items:center!important;gap:5px!important;flex-wrap:wrap!important;border-top:0!important;background:transparent!important;padding:0 12px 11px 14px!important}
.module-teacher-stats-v222 span{display:inline-flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:4px!important;min-height:25px!important;padding:4px 7px!important;border:1px solid #edf0f2!important;border-radius:8px!important;background:#f8f9fa!important;color:#7d8690!important;font-size:7.5px!important;white-space:nowrap!important}
.module-teacher-stats-v222 span+span{border-left:1px solid #edf0f2!important}.module-teacher-stats-v222 b{font-size:10.5px!important;line-height:1!important;color:#7f1026!important}.module-teacher-stats-v222 small{font-size:7.4px!important;line-height:1!important;color:#8a929b!important;font-weight:700!important;max-width:none!important;overflow:visible!important;text-overflow:clip!important}
@media(max-width:1250px){.module-teacher-grid-v222{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:760px){.module-teacher-grid-v222{grid-template-columns:1fr!important}.module-teacher-card-v222{min-height:104px!important}.module-teacher-main-v222{grid-template-columns:42px minmax(0,1fr) 27px!important;padding:11px 11px 7px 13px!important}.module-teacher-avatar-v222{width:42px!important;height:42px!important}.module-teacher-name-row-v222{align-items:center!important;flex-direction:row!important;gap:5px!important}.module-teacher-stats-v222{grid-template-columns:none!important;display:flex!important;padding:0 11px 10px 13px!important}.module-teacher-stats-v222 span{min-height:24px!important;border-top:1px solid #edf0f2!important}.module-teacher-stats-v222 span:nth-child(3),.module-teacher-stats-v222 span:nth-child(4){border-left:1px solid #edf0f2!important}}


/* ===== V0.223 · Card giáo viên cân xứng và nổi bật hơn ===== */
.module-teacher-grid-v223{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:16px!important;
  align-items:stretch!important;
  width:100%!important;
}
.module-teacher-card-v223{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 226px!important;
  grid-template-rows:1fr!important;
  align-items:stretch!important;
  min-height:142px!important;
  padding:0!important;
  border:1px solid #e1e5e9!important;
  border-radius:18px!important;
  background:linear-gradient(135deg,#ffffff 0%,#ffffff 68%,#fbf7f8 100%)!important;
  box-shadow:0 5px 18px rgba(48,31,37,.055)!important;
  overflow:hidden!important;
  position:relative!important;
}
.module-teacher-card-v223:before{
  content:""!important;
  position:absolute!important;
  left:0!important;top:0!important;bottom:0!important;
  width:5px!important;
  background:linear-gradient(180deg,#9d1230 0%,#75091f 100%)!important;
}
.module-teacher-card-v223:hover{
  transform:translateY(-2px)!important;
  border-color:#d2b6bd!important;
  box-shadow:0 12px 30px rgba(68,30,41,.11)!important;
}
.module-teacher-main-v223{
  min-width:0!important;
  display:grid!important;
  grid-template-columns:62px minmax(0,1fr) 38px!important;
  gap:13px!important;
  align-items:center!important;
  padding:20px 16px 20px 22px!important;
}
.module-teacher-avatar-v223{
  width:60px!important;
  height:60px!important;
  border-radius:50%!important;
  background:linear-gradient(145deg,#9f1632,#741022)!important;
  color:#fff!important;
  border:3px solid #fff!important;
  box-shadow:0 0 0 1px #e8d3d9,0 7px 16px rgba(116,16,34,.16)!important;
  font-size:15px!important;
  font-weight:900!important;
  letter-spacing:.02em!important;
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
}
.module-teacher-avatar-v223 img{
  width:100%!important;height:100%!important;
  object-fit:cover!important;
  border-radius:50%!important;
  display:block!important;
}
.module-teacher-copy-v223{min-width:0!important;align-self:center!important}
.module-teacher-name-row-v223{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  min-width:0!important;
}
.module-teacher-name-row-v223 h3{
  margin:0!important;
  font-size:15px!important;
  line-height:1.3!important;
  color:#252d37!important;
  font-weight:900!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.module-teacher-copy-v223 p{
  margin:6px 0 0!important;
  font-size:10.5px!important;
  color:#8a929c!important;
}
.module-teacher-role-v223{
  flex:0 0 auto!important;
  min-height:21px!important;
  padding:0 8px!important;
  border-radius:999px!important;
  background:#f2f4f6!important;
  color:#6f7882!important;
  border:1px solid #e7eaed!important;
  font-size:7.5px!important;
  font-weight:900!important;
  letter-spacing:.025em!important;
  display:inline-flex!important;
  align-items:center!important;
}
.module-teacher-role-v223.admin{
  background:#fff1f4!important;
  color:#8e1129!important;
  border-color:#efd7de!important;
}
.module-teacher-arrow-v223{
  width:36px!important;height:36px!important;
  border-radius:11px!important;
  border:1px solid #eadde1!important;
  background:#fff!important;
  color:#8c1027!important;
  display:grid!important;place-items:center!important;
  box-shadow:0 3px 10px rgba(44,28,34,.04)!important;
}
.module-teacher-arrow-v223 .ico{width:16px!important;height:16px!important}
.module-teacher-card-v223:hover .module-teacher-arrow-v223{
  background:#8d1028!important;
  color:#fff!important;
  border-color:#8d1028!important;
  transform:translateX(2px)!important;
}
.module-teacher-stats-v223{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-template-rows:repeat(2,1fr)!important;
  gap:8px!important;
  padding:14px!important;
  background:#fbf8f9!important;
  border-left:1px solid #eee5e8!important;
  align-content:center!important;
}
.module-teacher-stats-v223 span{
  min-width:0!important;
  min-height:48px!important;
  padding:8px 8px!important;
  border:1px solid #ebe5e7!important;
  border-radius:11px!important;
  background:#fff!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:3px!important;
  text-align:center!important;
}
.module-teacher-stats-v223 span+span{border-left:1px solid #ebe5e7!important}
.module-teacher-stats-v223 b{
  font-size:16px!important;
  line-height:1!important;
  color:#8a1027!important;
  font-weight:950!important;
}
.module-teacher-stats-v223 small{
  font-size:8px!important;
  line-height:1.15!important;
  color:#7e8791!important;
  font-weight:750!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  max-width:100%!important;
}
@media(max-width:1180px){
  .module-teacher-grid-v223{grid-template-columns:1fr!important}
  .module-teacher-card-v223{grid-template-columns:minmax(0,1fr) 250px!important}
}
@media(max-width:700px){
  .module-teacher-grid-v223{gap:10px!important}
  .module-teacher-card-v223{grid-template-columns:1fr!important;min-height:0!important}
  .module-teacher-main-v223{grid-template-columns:50px minmax(0,1fr) 32px!important;padding:14px 13px 12px 17px!important}
  .module-teacher-avatar-v223{width:48px!important;height:48px!important;font-size:12px!important}
  .module-teacher-name-row-v223{align-items:flex-start!important;flex-direction:column!important;gap:4px!important}
  .module-teacher-name-row-v223 h3{font-size:13.5px!important}
  .module-teacher-arrow-v223{width:31px!important;height:31px!important}
  .module-teacher-stats-v223{grid-template-columns:repeat(4,minmax(0,1fr))!important;grid-template-rows:1fr!important;border-left:0!important;border-top:1px solid #eee5e8!important;padding:9px 12px 11px 16px!important;gap:5px!important}
  .module-teacher-stats-v223 span{min-height:43px!important;padding:6px 4px!important;border-radius:9px!important}
  .module-teacher-stats-v223 b{font-size:14px!important}.module-teacher-stats-v223 small{font-size:7px!important}
}

/* ===== V0.224 · Reset mật khẩu học sinh theo lớp phụ trách ===== */
.my-class-students-v224 .my-class-student-toolbar{gap:10px}
.my-class-student-toolbar-right{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.my-class-student-toolbar-right>span{font-size:9px;color:#7f8790;white-space:nowrap}.my-class-student-toolbar-right>span b{color:#7f1027}
.my-class-student-toolbar-right .btn.compact{min-height:34px;padding:0 10px}.my-class-student-toolbar-right .btn em{font-style:normal;min-width:18px;height:18px;border-radius:999px;background:rgba(255,255,255,.2);display:grid;place-items:center;font-size:8px}
.my-class-password-note{display:flex;align-items:flex-start;gap:8px;margin:10px 16px 0;padding:9px 11px;border:1px solid #d8e7dd;border-radius:10px;background:#f2faf5;color:#416950;font-size:9px;line-height:1.5}.my-class-password-note .ico{width:15px;height:15px;flex:0 0 auto;margin-top:1px}.my-class-password-note.disabled{border-color:#e5e7eb;background:#f8f9fa;color:#7d858e}
.my-class-student-row.reset-enabled{grid-template-columns:24px 30px 36px minmax(0,1fr) auto 34px}
.my-class-reset-check{width:20px;height:20px;display:grid;place-items:center;cursor:pointer}.my-class-reset-check input{position:absolute;opacity:0;pointer-events:none}.my-class-reset-check span{width:16px;height:16px;border-radius:5px;border:1px solid #cfd4da;background:#fff;position:relative}.my-class-reset-check input:checked+span{background:#8d0a20;border-color:#8d0a20}.my-class-reset-check input:checked+span:after{content:"✓";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:10px;font-weight:900}
.my-class-student-row .mcsResetOne{width:31px;height:31px;border-radius:8px;color:#7f1027;border-color:#e1d3d7}.my-class-student-row .mcsResetOne:hover{background:#fff5f7;border-color:#cdaeb5}
.class-reset-result-wrap-v224{width:min(760px,94vw)!important;max-width:760px!important;padding:0!important;overflow:hidden!important}.class-reset-result-v224 .qb-editor-head{padding:18px 20px 13px;border-bottom:1px solid var(--line)}.class-reset-warning-v224{display:flex;align-items:flex-start;gap:8px;margin:13px 18px 0;padding:10px 11px;border:1px solid #efdcae;border-radius:10px;background:#fff9e9;color:#705527;font-size:10px;line-height:1.5}.class-reset-warning-v224 .ico{width:16px;height:16px;flex:0 0 auto}.class-reset-table-v224{margin:12px 18px;max-height:48vh}.class-reset-table-v224 table{min-width:540px}.class-reset-table-v224 code{display:inline-block;padding:5px 8px;border-radius:7px;background:#f4f5f7;color:#7e0f25;font-size:11px;font-weight:900;letter-spacing:.035em}.class-reset-result-foot-v224{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 18px;border-top:1px solid var(--line);background:#fafbfc}.class-reset-result-foot-v224>span{font-size:9px;color:#7c858f}.class-reset-result-foot-v224>div{display:flex;gap:7px}
@media(max-width:720px){.my-class-student-toolbar-right{width:100%;justify-content:stretch}.my-class-student-toolbar-right .btn{flex:1}.my-class-student-row.reset-enabled{grid-template-columns:22px 30px 34px minmax(0,1fr) 32px}.my-class-student-row.reset-enabled>.badge{grid-column:4/5;width:max-content;margin-top:3px}.my-class-student-row.reset-enabled>.mcsResetOne{grid-column:5;grid-row:1/3}.class-reset-result-foot-v224{align-items:stretch;flex-direction:column}.class-reset-result-foot-v224>div{display:grid;grid-template-columns:1fr 1fr}.class-reset-result-foot-v224 .btn{min-width:0}.class-reset-table-v224{overflow:auto}}

/* ===== V0.225 · Đính chính đáp án & chấm lại kỳ thi ===== */
.online-regrade-wrap-v225{width:min(1120px,96vw)!important;max-width:1120px!important;height:min(820px,92vh)!important;max-height:none!important;padding:0!important;overflow:hidden!important;border-radius:20px!important}
.online-regrade-v225{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr);background:#f6f7f9}
.online-regrade-head-v225{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px 14px;background:#fff;border-bottom:1px solid #e7e9ed}
.online-regrade-head-v225 h2{margin:3px 0 5px;font-size:21px;color:#781126}.online-regrade-head-v225 p{margin:0;font-size:11px;color:#7d858e;line-height:1.5}
.online-regrade-body-v225{min-height:0;display:grid;grid-template-columns:330px minmax(0,1fr)}
.online-regrade-body-v225>aside{min-height:0;display:flex;flex-direction:column;background:#fbfbfc;border-right:1px solid #e3e6ea;overflow:hidden}
.online-regrade-body-v225>main{min-width:0;min-height:0;overflow:auto;padding:18px 20px 24px;background:#fff}
.online-regrade-side-title-v225,.online-regrade-history-title-v225{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 13px 9px}.online-regrade-side-title-v225 b,.online-regrade-history-title-v225 b{font-size:11px;color:#3d4650}.online-regrade-side-title-v225 span,.online-regrade-history-title-v225 span{font-size:8.5px;color:#8d949d}
.online-regrade-question-list-v225{overflow:auto;min-height:0;flex:1;padding:0 8px 8px;display:grid;gap:5px;align-content:start}.online-regrade-question-list-v225 button{font:inherit;border:1px solid transparent;background:transparent;border-radius:10px;padding:9px 10px;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"copy ans" "copy count";column-gap:8px;text-align:left;cursor:pointer;color:#5f6872}.online-regrade-question-list-v225 button:hover{background:#fff;border-color:#e5e7ea}.online-regrade-question-list-v225 button.active{background:#fff4f6;border-color:#d9adb6;box-shadow:0 2px 8px rgba(100,18,37,.05)}.online-regrade-question-list-v225 button>span{grid-area:copy;min-width:0}.online-regrade-question-list-v225 button b,.online-regrade-question-list-v225 button small{display:block}.online-regrade-question-list-v225 button b{font-size:10px;color:#343d47}.online-regrade-question-list-v225 button small{margin-top:2px;font-size:8px;color:#8c949d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.online-regrade-question-list-v225 button em{grid-area:ans;font-style:normal;font-size:8px;font-weight:850;color:#801228;white-space:nowrap}.online-regrade-question-list-v225 button i{grid-area:count;font-style:normal;font-size:7.5px;color:#989fa7;text-align:right;margin-top:3px}
.online-regrade-history-title-v225{border-top:1px solid #e6e9ed;margin-top:2px}.online-regrade-history-v225{max-height:160px;overflow:auto;padding:0 10px 12px;display:grid;gap:5px}.online-regrade-history-v225>div{border:1px solid #e7e9ed;background:#fff;border-radius:9px;padding:7px 8px}.online-regrade-history-v225 b,.online-regrade-history-v225 span,.online-regrade-history-v225 small{display:block}.online-regrade-history-v225 b{font-size:8.8px;color:#4a535e}.online-regrade-history-v225 span{font-size:7.5px;color:#969ca4;margin-top:2px}.online-regrade-history-v225 small{font-size:7.7px;color:#7b5b64;margin-top:3px}.online-regrade-history-v225>small{padding:8px;color:#939aa2;font-size:8.5px}
.online-regrade-editor-head-v225{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:11px;border-bottom:1px solid #edf0f2}.online-regrade-editor-head-v225 h3{font-size:15px;margin:3px 0 0;color:#303843}.online-regrade-affected-v225{flex:0 0 auto;padding:6px 9px;border-radius:999px;background:#fff3f5;color:#8d132b;font-size:9px;font-weight:850}
.online-regrade-stem-v225{font-size:13px;line-height:1.6;color:#262e38;font-weight:700;padding:14px 0 10px;white-space:pre-wrap}.online-regrade-options-v225{display:grid;gap:6px;margin-bottom:12px}.online-regrade-options-v225>div{display:grid;grid-template-columns:25px minmax(0,1fr);gap:7px;padding:8px 10px;border:1px solid #eceef1;border-radius:9px;background:#fafbfc}.online-regrade-options-v225 b{font-size:10px;color:#8b1530}.online-regrade-options-v225 span{font-size:10.5px;line-height:1.45;color:#555f6a}.online-regrade-options-v225.tf>div{background:#fff}
.online-regrade-current-v225{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 13px}.online-regrade-current-v225 span,.online-regrade-current-v225 em{padding:6px 9px;border-radius:999px;background:#f4f5f7;color:#66707a;font-size:9px;font-style:normal}.online-regrade-current-v225 span b{color:#821229}.online-regrade-current-v225 em{background:#fff1f3;color:#97162f;font-weight:850}
.online-regrade-form-v225{border-top:1px solid #eceff2;padding-top:13px;display:grid;gap:10px}.online-regrade-form-v225>label,.online-regrade-form-v225 #oergAnswerBox>label{display:grid;gap:6px}.online-regrade-form-v225 label>span:first-child,.online-regrade-form-v225 #oergAnswerBox label>span{font-size:10px;font-weight:800;color:#505a65}.online-regrade-form-v225 select{width:100%;height:38px;border:1px solid #dfe3e7;border-radius:9px;background:#fff;padding:0 10px;font:inherit;font-size:10px;color:#39424d;outline:none}.online-regrade-form-v225 select:focus{border-color:#b56c7a;box-shadow:0 0 0 2px rgba(137,17,40,.06)}
.online-regrade-tf-v225{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.online-regrade-tf-v225 label{display:grid;gap:5px}.online-regrade-tf-v225 span{font-size:9px;font-weight:800;color:#5d6670}
.online-regrade-check-v225{grid-template-columns:auto minmax(0,1fr)!important;align-items:flex-start!important;gap:8px!important;padding:9px 10px;border:1px solid #e6e8ec;border-radius:10px;background:#fafbfc}.online-regrade-check-v225 input{margin-top:2px;accent-color:#8d1027}.online-regrade-check-v225 span b,.online-regrade-check-v225 span small{display:block}.online-regrade-check-v225 span b{font-size:9.5px;color:#404953}.online-regrade-check-v225 span small{font-size:8.2px;color:#858d96;margin-top:2px;line-height:1.45}.online-regrade-check-v225.warning{background:#fff9ed;border-color:#eeddb3}.online-regrade-check-v225.warning span b{color:#805d17}
.online-regrade-note-v225{display:flex;align-items:flex-start;gap:8px;padding:9px 10px;border-radius:10px;background:#f6f8fb;border:1px solid #e5e8ec;color:#69737e;font-size:9px;line-height:1.5}.online-regrade-note-v225 .ico{width:15px;height:15px;flex:0 0 auto;margin-top:1px;color:#8a1530}.online-regrade-actions-v225{display:flex;justify-content:flex-end;gap:8px;padding-top:2px}.online-regrade-actions-v225 .btn{min-width:105px}
@media(max-width:850px){.online-regrade-wrap-v225{width:calc(100vw - 12px)!important;height:calc(100dvh - 12px)!important;border-radius:14px!important}.online-regrade-body-v225{grid-template-columns:260px minmax(0,1fr)}.online-regrade-body-v225>main{padding:14px}.online-regrade-tf-v225{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.online-regrade-wrap-v225{width:100vw!important;max-width:100vw!important;height:100dvh!important;border-radius:0!important}.online-regrade-head-v225{padding:12px}.online-regrade-head-v225 p{display:none}.online-regrade-body-v225{grid-template-columns:1fr;grid-template-rows:210px minmax(0,1fr)}.online-regrade-body-v225>aside{border-right:0;border-bottom:1px solid #e3e6ea}.online-regrade-history-title-v225,.online-regrade-history-v225{display:none}.online-regrade-question-list-v225{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 8px 8px}.online-regrade-body-v225>main{padding:12px}.online-regrade-actions-v225{position:sticky;bottom:-12px;background:#fff;padding:9px 0 0}.online-regrade-actions-v225 .btn{flex:1}}


/* V0.226 - modal lồng nhau luôn nổi đúng lớp */
.modal-backdrop[style*="z-index"]{isolation:isolate}


/* ===== V0.227 · Ưu tiên hiển thị đầy đủ tên giáo viên ===== */
.module-teacher-card-v223{grid-template-columns:minmax(0,1fr) 204px!important}
.module-teacher-main-v223{grid-template-columns:60px minmax(0,1fr) 34px!important;gap:12px!important;padding:18px 14px 18px 20px!important}
.module-teacher-copy-v223{min-width:0!important;width:100%!important}
.module-teacher-name-row-v223{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:5px!important;align-items:start!important;width:100%!important}
.module-teacher-name-row-v223 h3{display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;white-space:normal!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:100%!important;font-size:14.5px!important;line-height:1.25!important;min-width:0!important}
.module-teacher-role-v223{justify-self:start!important;width:max-content!important;max-width:100%!important;min-height:20px!important;padding:0 7px!important}
.module-teacher-copy-v223 p{margin-top:5px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:100%!important}
.module-teacher-stats-v223{padding:12px!important;gap:7px!important}
.module-teacher-stats-v223 span{min-height:46px!important;padding:7px 6px!important}
@media(max-width:1180px){.module-teacher-card-v223{grid-template-columns:minmax(0,1fr) 220px!important}}
@media(max-width:700px){.module-teacher-card-v223{grid-template-columns:1fr!important}.module-teacher-name-row-v223{grid-template-columns:1fr!important}.module-teacher-name-row-v223 h3{font-size:13.5px!important}.module-teacher-role-v223{justify-self:start!important}}

/* ===== V0.230 · Thư mục quản lý bài luyện ===== */
.practice-folders-v230 .page-head{margin-bottom:12px}
.practice-folder-summary-v230{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-2px 0 12px}
.practice-folder-summary-v230>span{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border-radius:999px;background:#f7f8fa;border:1px solid #e6e9ed;color:#737c86;font-size:10px}
.practice-folder-summary-v230 b{color:#7f1026;font-size:11px}
.practice-folder-grid-v230{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.practice-folder-card-v230{position:relative;min-width:0;border:1px solid #e2e5e9;border-radius:15px;background:#fff;overflow:hidden;box-shadow:0 3px 12px rgba(35,30,32,.035);transition:.16s ease}
.practice-folder-card-v230:hover{border-color:#d1bbc1;box-shadow:0 8px 22px rgba(77,24,38,.07);transform:translateY(-1px)}
.practice-folder-card-v230.unclassified{background:linear-gradient(180deg,#fff,#fbfbfc)}
.practice-folder-open-v230{width:100%;min-height:108px;border:0;background:transparent;display:grid;grid-template-columns:46px minmax(0,1fr) 24px;gap:11px;align-items:center;text-align:left;padding:16px 14px;cursor:pointer;color:inherit}
.practice-folder-icon-v230{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:#f8e9ed;color:#8d0a20}
.practice-folder-card-v230.unclassified .practice-folder-icon-v230{background:#eef1f5;color:#65707b}
.practice-folder-icon-v230 .ico{width:23px;height:23px}
.practice-folder-open-v230 h3{margin:0 0 5px;color:#313944;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.practice-folder-open-v230 p{margin:0;color:#858d97;font-size:9.5px;line-height:1.45}
.practice-folder-arrow-v230{color:#b2b7bd}.practice-folder-arrow-v230 .ico{width:18px;height:18px}
.practice-folder-actions-v230{position:absolute;right:10px;top:8px;display:flex;gap:4px;opacity:0;transition:.14s}
.practice-folder-card-v230:hover .practice-folder-actions-v230{opacity:1}
.practice-folder-actions-v230 button{width:28px;height:28px;border-radius:8px;border:1px solid #e2e4e7;background:#fff;color:#707984;display:grid;place-items:center;cursor:pointer;box-shadow:0 2px 7px rgba(0,0,0,.04)}
.practice-folder-actions-v230 button:hover{background:#fff4f6;color:#8b1027;border-color:#d7b2ba}
.practice-folder-actions-v230 button .ico{width:12px;height:12px}
.practice-folder-breadcrumb-v230{display:flex;align-items:center;gap:7px;margin-bottom:9px;color:#8b929a;font-size:10px}
.practice-folder-breadcrumb-v230 button{border:0;background:transparent;color:#7d1025;padding:0;display:inline-flex;align-items:center;gap:5px;font:inherit;font-weight:850;cursor:pointer}
.practice-folder-breadcrumb-v230 button .ico{width:14px;height:14px}.practice-folder-breadcrumb-v230 b{color:#535c67}
.practice-folder-bulk-v230{display:flex;align-items:center;gap:7px;margin:0 0 9px;padding:8px 10px;border:1px solid #eadde1;border-radius:11px;background:#fff8fa}
.practice-folder-bulk-v230>span{margin-right:auto;font-size:10px;color:#626b76}.practice-folder-bulk-v230>span b{color:#8d0a20;font-size:12px}
.practice-folder-table-v230 .folder-check-col{width:36px!important;min-width:36px!important;max-width:36px!important;padding-left:10px!important;padding-right:5px!important;text-align:center}
.practice-folder-table-v230 .folder-check-col input{width:14px;height:14px;accent-color:#8d0a20}
.practice-folder-row-actions-v230{gap:4px}
.practice-folder-editor-wrap-v230{width:min(520px,94vw)!important;padding:0!important;overflow:hidden!important}
.practice-folder-editor-v230,.practice-folder-move-v230,.practice-folder-delete-v230{padding:20px}
.practice-folder-editor-v230 header,.practice-folder-move-v230 header,.practice-folder-delete-v230 header{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:15px}
.practice-folder-editor-v230 header h2,.practice-folder-move-v230 header h2,.practice-folder-delete-v230 header h2{margin:3px 0 5px;font-size:20px;color:#7e1025}
.practice-folder-editor-v230 header p,.practice-folder-move-v230 header p,.practice-folder-delete-v230 header p{margin:0;color:#79818b;font-size:11px;line-height:1.5}
.practice-folder-editor-v230 .field,.practice-folder-move-v230 .field,.practice-folder-delete-v230 .field{margin:10px 0}
.practice-folder-editor-v230 footer,.practice-folder-move-v230 footer,.practice-folder-delete-v230 footer{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
.practice-folder-delete-note-v230{display:flex;align-items:flex-start;gap:9px;padding:11px 12px;border:1px solid #eddac6;background:#fff8ee;border-radius:11px;color:#795c31;margin:9px 0}
.practice-folder-delete-note-v230 .ico{width:17px;height:17px;flex:0 0 auto}.practice-folder-delete-note-v230 span,.practice-folder-delete-note-v230 b,.practice-folder-delete-note-v230 small{display:block}.practice-folder-delete-note-v230 b{font-size:11px}.practice-folder-delete-note-v230 small{font-size:9.5px;line-height:1.45;margin-top:2px}.practice-folder-delete-note-v230.compact{display:block;font-size:10px}
@media(max-width:1100px){.practice-folder-grid-v230{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.practice-folder-grid-v230{grid-template-columns:1fr}.practice-folder-actions-v230{opacity:1}.practice-folder-open-v230{min-height:94px;padding:13px 12px}.practice-folder-bulk-v230{flex-wrap:wrap}.practice-folder-bulk-v230>span{width:100%;margin:0}.practice-folder-detail-v230 .page-head{align-items:flex-start}.practice-folder-detail-v230 .compact-main-action{width:100%;justify-content:center}.practice-folder-table-v230{min-width:1120px!important}}
@media(min-width:1181px){
  .practice-folder-table-v230 thead th:nth-child(1),.practice-folder-table-v230 tbody td:nth-child(1){width:36px!important;min-width:36px!important;max-width:36px!important}
  .practice-folder-table-v230 thead th:nth-child(2),.practice-folder-table-v230 tbody td:nth-child(2){width:29%!important;min-width:0!important}
  .practice-folder-table-v230 thead th:nth-child(3),.practice-folder-table-v230 tbody td:nth-child(3){width:14%!important;min-width:0!important}
  .practice-folder-table-v230 thead th:nth-child(4),.practice-folder-table-v230 tbody td:nth-child(4){width:12%!important;min-width:0!important}
  .practice-folder-table-v230 thead th:nth-child(5),.practice-folder-table-v230 tbody td:nth-child(5){width:7%!important;min-width:0!important}
  .practice-folder-table-v230 thead th:nth-child(6),.practice-folder-table-v230 tbody td:nth-child(6){width:11%!important;min-width:0!important}
  .practice-folder-table-v230 thead th:nth-child(7),.practice-folder-table-v230 tbody td:nth-child(7){width:27%!important;min-width:0!important}
  .practice-folder-table-v230 tbody td:nth-child(2)>b{display:block;color:#343b44;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .practice-folder-row-actions-v230 .btn.compact{padding-left:7px!important;padding-right:7px!important;font-size:8.2px!important}
}


/* ===== V0.231 · Thư mục bài luyện: dễ tìm nút tạo + danh sách compact ===== */
.practice-folder-detail-v231{min-width:0}.practice-folder-topbar-v231{display:flex;align-items:center;gap:8px;margin:0 0 9px;font-size:10px;color:#9299a2}.practice-folder-back-v231{border:0;background:transparent;color:#7d1025;font:inherit;font-weight:850;display:inline-flex;align-items:center;gap:6px;padding:0;cursor:pointer}.practice-folder-back-v231 .ico{width:14px;height:14px}.practice-folder-path-v231{color:#c0c4c9}.practice-folder-head-v231{margin-bottom:10px}.practice-folder-head-v231 .actions{display:flex;gap:8px;flex-wrap:wrap}.practice-folder-toolbar-v231{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.practice-folder-toolbar-v231 .practice-assignment-tabs-v216{margin-bottom:0}.practice-folder-selectall-v231{display:inline-flex;align-items:center;gap:7px;color:#6c7580;font-size:9.5px;font-weight:750;cursor:pointer}.practice-folder-selectall-v231 input{width:14px;height:14px;accent-color:#8d0a20}
.practice-folder-list-shell-v231{border:1px solid #e2e6ea;border-radius:14px;background:#fff;box-shadow:0 3px 12px rgba(30,35,42,.025);overflow:visible}.practice-folder-list-v231{display:grid}.practice-folder-assignment-v231{position:relative;display:grid;grid-template-columns:28px minmax(250px,1.15fr) minmax(390px,1.2fr) 238px;gap:12px;align-items:center;padding:12px 13px;border-bottom:1px solid #edf0f2;min-width:0;background:#fff}.practice-folder-assignment-v231:last-child{border-bottom:0}.practice-folder-assignment-v231:hover{background:#fcfbfc}.practice-folder-assignment-v231[data-practice-phase="open"]{box-shadow:inset 3px 0 0 #2d8a59}.practice-folder-assignment-v231[data-practice-phase="upcoming"]{box-shadow:inset 3px 0 0 #c39a3d}.practice-folder-assignment-v231[data-practice-phase="closed"],.practice-folder-assignment-v231[data-practice-phase="archived"]{box-shadow:inset 3px 0 0 #9299a3}.practice-folder-check-v231{display:grid;place-items:center}.practice-folder-check-v231 input{position:absolute;opacity:0}.practice-folder-check-v231 span{width:16px;height:16px;border:1px solid #d8dde2;border-radius:5px;background:#fff;display:grid;place-items:center}.practice-folder-check-v231 input:checked+span{background:#8d0a20;border-color:#8d0a20}.practice-folder-check-v231 input:checked+span:after{content:"✓";color:#fff;font-size:10px;font-weight:900}.practice-folder-main-v231{min-width:0}.practice-folder-titleline-v231{display:flex;align-items:center;gap:8px;min-width:0}.practice-folder-titleline-v231>b{font-size:12px;color:#303842;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.practice-folder-main-v231>small{display:block;margin-top:4px;color:#8a929c;font-size:8.5px}.practice-folder-source-v231{display:flex;align-items:center;gap:4px;min-width:0;margin-top:5px;color:#895565;font-size:8.7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.practice-folder-source-v231 .ico{width:12px;height:12px;flex:0 0 auto}.practice-folder-metrics-v231{display:grid;grid-template-columns:1.35fr .95fr .7fr;gap:7px;min-width:0}.practice-folder-metrics-v231>div{min-width:0;padding:8px 9px;border:1px solid #edf0f2;border-radius:10px;background:#f9fafb}.practice-folder-metrics-v231 span,.practice-folder-metrics-v231 b,.practice-folder-metrics-v231 small{display:block}.practice-folder-metrics-v231 span{font-size:7.5px;text-transform:uppercase;letter-spacing:.03em;color:#939aa3;font-weight:850}.practice-folder-metrics-v231 b{margin-top:3px;color:#3e4751;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.practice-folder-metrics-v231 small{margin-top:2px;color:#8a929a;font-size:7.7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.practice-folder-actions-v231{display:grid;grid-template-columns:1fr 1fr 34px;gap:5px;align-items:center;justify-content:end}.practice-folder-actions-v231>.btn{height:33px;min-height:33px;padding:0 8px;font-size:8.6px;border-radius:8px;white-space:nowrap}.practice-folder-actions-v231>.btn.primary{background:#8d0a20;border-color:#8d0a20;color:#fff}.practice-folder-more-v231{position:relative}.practice-folder-more-v231>summary{list-style:none;width:34px;height:33px;border:1px solid #dfe3e7;border-radius:8px;background:#fff;display:grid;place-items:center;color:#69737d;cursor:pointer}.practice-folder-more-v231>summary::-webkit-details-marker{display:none}.practice-folder-more-v231>summary .ico{width:15px;height:15px}.practice-folder-more-v231[open]>summary{background:#fff5f7;color:#821229;border-color:#d7b8bf}.practice-folder-more-menu-v231{position:absolute;right:0;top:38px;z-index:30;width:178px;padding:5px;border:1px solid #e0e3e7;border-radius:10px;background:#fff;box-shadow:0 14px 32px rgba(32,18,23,.16);display:grid;gap:2px}.practice-folder-more-menu-v231 button{border:0;background:transparent;border-radius:7px;padding:8px 9px;display:flex;align-items:center;gap:7px;color:#56616c;font:inherit;font-size:9px;font-weight:750;text-align:left;cursor:pointer}.practice-folder-more-menu-v231 button:hover{background:#f7f8fa;color:#7e1025}.practice-folder-more-menu-v231 button .ico{width:13px;height:13px}.practice-folder-more-menu-v231 button.danger{color:#a6293d}.practice-folder-more-menu-v231 button.danger:hover{background:#fff1f3}.practice-folder-list-shell-v231 .practice-assignment-empty-v216{border:0}
@media(max-width:1280px){.practice-folder-assignment-v231{grid-template-columns:28px minmax(220px,1.2fr) minmax(330px,1fr) 212px}.practice-folder-metrics-v231{grid-template-columns:1fr 1fr}.practice-folder-metrics-v231>div:first-child{grid-column:1/-1}.practice-folder-actions-v231>.btn{font-size:8px;padding:0 6px}}
@media(max-width:980px){.practice-folder-assignment-v231{grid-template-columns:26px minmax(0,1fr) 200px}.practice-folder-metrics-v231{grid-column:2;grid-template-columns:repeat(3,minmax(0,1fr))}.practice-folder-metrics-v231>div:first-child{grid-column:auto}.practice-folder-actions-v231{grid-column:3;grid-row:1/3}.practice-folder-head-v231{align-items:flex-start}.practice-folder-toolbar-v231{align-items:flex-start;flex-direction:column}}
@media(max-width:700px){.practice-folder-assignment-v231{grid-template-columns:24px minmax(0,1fr);gap:8px;padding:11px}.practice-folder-metrics-v231{grid-column:2;grid-template-columns:1fr 1fr}.practice-folder-metrics-v231>div:first-child{grid-column:1/-1}.practice-folder-actions-v231{grid-column:2;grid-row:auto;grid-template-columns:1fr 1fr 34px}.practice-folder-head-v231 .actions{width:100%}.practice-folder-head-v231 .actions .btn{flex:1;justify-content:center}.practice-folder-titleline-v231{align-items:flex-start;flex-direction:column;gap:4px}.practice-folder-titleline-v231>b{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.practice-folder-more-menu-v231{right:0}}


/* ===== V0.232 · Trong thư mục dùng lại giao diện bảng bài luyện đã duyệt ===== */
.practice-folder-classic-card-v232{margin-top:0}
.practice-folder-classic-card-v232 .table-wrap{max-height:calc(100vh - 330px);overflow:auto;scrollbar-width:thin}
.practice-folder-classic-table-v232{width:100%;border-collapse:collapse}
.practice-folder-classic-table-v232 .folder-check-col-v232,.practice-folder-classic-table-v232 .folder-check-cell-v232{width:34px!important;min-width:34px!important;max-width:34px!important;padding-left:9px!important;padding-right:4px!important;text-align:center}
.practice-folder-classic-table-v232 .practice-folder-check-v231{display:grid;place-items:center}
.practice-folder-actions-v232{gap:4px}
.practice-folder-actions-v232 .btn.compact{min-height:31px;height:31px;padding:0 8px;font-size:8.4px;border-radius:8px}
.practice-folder-actions-v232 .icon-btn{width:31px;height:31px;border-radius:8px}
@media(min-width:1181px){
  .practice-folder-classic-card-v232 .table-wrap{overflow-x:hidden;overflow-y:auto}
  .practice-folder-classic-table-v232{table-layout:fixed;min-width:0!important}
  .practice-folder-classic-table-v232 thead th,.practice-folder-classic-table-v232 tbody td{padding:9px 9px}
  .practice-folder-classic-table-v232 thead th:nth-last-child(6),.practice-folder-classic-table-v232 tbody td:nth-last-child(6){width:28%;min-width:0}
  .practice-folder-classic-table-v232 thead th:nth-last-child(5),.practice-folder-classic-table-v232 tbody td:nth-last-child(5){width:14%;min-width:0}
  .practice-folder-classic-table-v232 thead th:nth-last-child(4),.practice-folder-classic-table-v232 tbody td:nth-last-child(4){width:12%;min-width:0}
  .practice-folder-classic-table-v232 thead th:nth-last-child(3),.practice-folder-classic-table-v232 tbody td:nth-last-child(3){width:7%;min-width:0}
  .practice-folder-classic-table-v232 thead th:nth-last-child(2),.practice-folder-classic-table-v232 tbody td:nth-last-child(2){width:11%;min-width:0}
  .practice-folder-classic-table-v232 thead th:last-child,.practice-folder-classic-table-v232 tbody td:last-child{width:28%;min-width:0}
  .practice-folder-classic-table-v232 tbody td:nth-last-child(6)>b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
@media(max-width:1180px){.practice-folder-classic-table-v232{min-width:1120px}.practice-folder-classic-card-v232 .table-wrap{overflow:auto}}
@media(max-width:760px){.practice-folder-classic-card-v232 .table-wrap{max-height:calc(100dvh - 320px)}}


/* ===== V0.233 · Phân trang bài luyện trong thư mục ===== */
.practice-folder-classic-card-v232 .table-wrap{max-height:none!important;overflow-y:visible!important}
.practice-folder-classic-table-v232 thead th{position:static!important}
.practice-folder-pager-v233{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:10px 12px;border:1px solid #e3e7eb;border-radius:11px;background:#fff;min-height:46px}
.practice-folder-page-size-v233,.practice-folder-page-nav-v233{display:flex;align-items:center;gap:7px;color:#6f7883;font-size:9.5px}.practice-folder-page-size-v233 select{height:32px;border:1px solid #dfe3e7;border-radius:8px;background:#fff;padding:0 8px;font:inherit;color:#4e5863}.practice-folder-page-nav-v233 .btn{min-height:32px;height:32px;padding:0 9px;border-radius:8px;font-size:9px}.practice-folder-page-nav-v233>span{white-space:nowrap;color:#707985}.practice-folder-page-nav-v233>span b{color:#7f1026}
@media(max-width:900px){.practice-folder-pager-v233{align-items:stretch;flex-direction:column}.practice-folder-page-nav-v233{flex-wrap:wrap}.practice-folder-page-nav-v233>span{order:-1;width:100%}}
@media(max-width:620px){.practice-folder-page-nav-v233 .btn{flex:1}.practice-folder-page-size-v233{justify-content:flex-start}}


/* ===== V0.234 · Hiển thị rõ nút tạo bài / tạo thư mục ===== */
.practice-folder-head-v234{align-items:center!important;margin-bottom:12px!important}.practice-folder-head-v234>div:first-child{min-width:0}.practice-folder-create-actions-v234{display:flex!important;align-items:center;gap:8px;flex:0 0 auto}.practice-folder-create-actions-v234 .btn{min-height:38px;padding:0 13px;border-radius:10px}.practice-folder-create-actions-v234 .btn.primary{min-width:132px}.practice-folder-topbar-v234{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.practice-folder-owner-v234{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;background:#f7eef1;color:#801128;font-size:9px;font-weight:800}.practice-folder-owner-v234 .ico{width:12px;height:12px}.practice-folder-readonly-v234{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid #e2e5e9;border-radius:10px;background:#fafbfc;color:#69727d;flex:0 0 auto}.practice-folder-readonly-v234>.ico{width:15px;height:15px}.practice-folder-readonly-v234 span,.practice-folder-readonly-v234 b,.practice-folder-readonly-v234 small{display:block}.practice-folder-readonly-v234 b{font-size:10px;color:#4e5761}.practice-folder-readonly-v234 small{font-size:8px;margin-top:1px;color:#8a929c}
@media(max-width:760px){.practice-folder-head-v234{align-items:stretch!important;flex-direction:column}.practice-folder-create-actions-v234{width:100%;display:grid!important;grid-template-columns:1fr 1fr}.practice-folder-create-actions-v234 .btn{width:100%;min-width:0}.practice-folder-readonly-v234{width:100%;box-sizing:border-box}}

/* ===== V0.235 · Thư mục con tối đa 3 cấp ===== */
.practice-folder-card-v235 .practice-folder-open-v230{padding-right:108px}
.practice-folder-actions-v235{opacity:1;top:10px;right:10px}
.practice-folder-actions-v235 button{width:27px;height:27px}
.practice-subfolder-section-v235{margin:0 0 12px;padding:12px;border:1px solid #e5e8ec;border-radius:14px;background:#fbfcfd}
.practice-subfolder-head-v235{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.practice-subfolder-head-v235 b{font-size:11px;color:#3f4751}.practice-subfolder-head-v235 span{font-size:9px;color:#8c949d}
.practice-subfolder-grid-v235{grid-template-columns:repeat(3,minmax(0,1fr))}
.practice-subfolder-grid-v235 .practice-folder-card-v230{background:#fff}
.practice-subfolder-grid-v235 .practice-folder-open-v230{min-height:86px;padding-top:12px;padding-bottom:12px}
.practice-subfolder-grid-v235 .practice-folder-icon-v230{width:38px;height:38px;border-radius:11px}.practice-subfolder-grid-v235 .practice-folder-icon-v230 .ico{width:19px;height:19px}
.practice-subfolder-grid-v235 .practice-folder-open-v230 h3{font-size:12px;margin-bottom:3px}.practice-subfolder-grid-v235 .practice-folder-open-v230 p{font-size:8.5px}
.practice-folder-breadcrumb-v235{flex-wrap:wrap;row-gap:5px}
.practice-folder-crumb-v235{border:0;background:transparent;color:#7d1025;font:inherit;font-size:10px;font-weight:800;padding:0;cursor:pointer}.practice-folder-crumb-v235:hover{text-decoration:underline}
@media(max-width:1180px){.practice-subfolder-grid-v235{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.practice-folder-card-v235 .practice-folder-open-v230{padding-right:104px}.practice-subfolder-grid-v235{grid-template-columns:1fr}.practice-subfolder-section-v235{padding:9px}.practice-subfolder-head-v235{align-items:flex-start;flex-direction:column;gap:3px}}


/* V0.236 - phân trang Kết quả luyện tập và Báo cáo theo học sinh */
.practice-pagination-v236{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-top:1px solid #e7eaee;background:#fff;min-height:48px}
.practice-page-size-v236,.practice-page-nav-v236{display:flex;align-items:center;gap:7px;color:#6f7883;font-size:9.5px}.practice-page-size-v236 select{height:32px;border:1px solid #dfe3e7;border-radius:8px;background:#fff;padding:0 8px;font:inherit;color:#4e5863}.practice-page-nav-v236 .btn{min-height:32px;height:32px;padding:0 9px;border-radius:8px;font-size:9px}.practice-page-nav-v236>span{white-space:nowrap;color:#707985}.practice-page-nav-v236>span b{color:#7f1026}.practice-page-empty-v236{color:#8c949d;font-size:10px}
.practice-progress-admin-list>.table-wrap,.practice-report-table-card>.table-wrap{border-radius:0;border-left:0;border-right:0;border-bottom:0}
@media(max-width:900px){.practice-pagination-v236{align-items:stretch;flex-direction:column}.practice-page-nav-v236{flex-wrap:wrap}.practice-page-nav-v236>span{order:-1;width:100%;text-align:center}}
@media(max-width:620px){.practice-page-nav-v236 .btn{flex:1}.practice-page-size-v236{justify-content:flex-start}}


/* ===== V0.237 · Phân trang lịch sử thách đấu ===== */
.challenge-history-pager-v237{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:10px 12px;border-top:1px solid #eadfe2;background:#fff;border-radius:0 0 12px 12px;flex-wrap:wrap}
.challenge-history-page-size-v237{display:flex;align-items:center;gap:6px;color:#737b85;font-size:10px}.challenge-history-page-size-v237 select{height:30px;border:1px solid #dfe3e7;border-radius:8px;background:#fff;padding:0 8px;color:#4f5964;font:inherit;font-size:10px}
.challenge-history-page-info-v237{font-size:10px;color:#7b838d;font-weight:700}
.challenge-history-page-actions-v237{display:flex;align-items:center;gap:5px}.challenge-history-page-actions-v237 button{height:30px;border:1px solid #dfe3e7;border-radius:8px;background:#fff;color:#59636e;padding:0 9px;font:inherit;font-size:9px;font-weight:800;cursor:pointer}.challenge-history-page-actions-v237 button:hover:not(:disabled){border-color:#c8afb6;background:#fff7f9;color:#821229}.challenge-history-page-actions-v237 button:disabled{opacity:.45;cursor:not-allowed}
.challenge-history>.challenge-list.compact,.challenge-admin-section.history>.challenge-list.compact{margin-top:2px}
@media(max-width:760px){.challenge-history-pager-v237{align-items:stretch;flex-direction:column}.challenge-history-page-size-v237,.challenge-history-page-info-v237{justify-content:center}.challenge-history-page-actions-v237{display:grid;grid-template-columns:1fr 1fr}.challenge-history-page-actions-v237 button{width:100%}}

/* ===== V0.238 · Phân trang Kết quả / Đối đầu / Xếp hạng ===== */
.arena-pager-v238{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:10px 12px;border:1px solid #e3e7eb;border-radius:11px;background:#fff;min-height:46px;flex-wrap:wrap}
.arena-page-size-v238,.arena-page-actions-v238{display:flex;align-items:center;gap:7px}.arena-page-size-v238{color:#6f7883;font-size:9.5px}.arena-page-size-v238 select{height:32px;border:1px solid #dfe3e7;border-radius:8px;background:#fff;padding:0 8px;color:#4e5863;font:inherit;font-size:9.5px}.arena-page-info-v238{font-size:9.5px;color:#737c87;font-weight:750}.arena-page-actions-v238 button{height:32px;border:1px solid #dfe3e7;border-radius:8px;background:#fff;color:#59636e;padding:0 9px;font:inherit;font-size:9px;font-weight:800;cursor:pointer}.arena-page-actions-v238 button:hover:not(:disabled){border-color:#c8afb6;background:#fff7f9;color:#821229}.arena-page-actions-v238 button:disabled{opacity:.42;cursor:not-allowed}
.ranking-table-wrap,.h2h-table-wrap,.h2h-student-table-wrap{max-height:none!important;overflow-y:visible!important}.ranking-table-wrap thead th,.h2h-table-wrap thead th,.h2h-student-table-wrap thead th{position:static!important}
#arenaResultPager .arena-pager-v238,#myResultPager .arena-pager-v238,#myH2hPager .arena-pager-v238{margin-top:12px}
@media(max-width:760px){.arena-pager-v238{align-items:stretch;flex-direction:column}.arena-page-size-v238,.arena-page-info-v238{justify-content:center}.arena-page-actions-v238{display:grid;grid-template-columns:1fr 1fr}.arena-page-actions-v238 button{width:100%}}

/* ===== V0.240 · Thư mục kỳ thi đồng bộ Luyện tập ===== */
.online-exam-folders-v240 .practice-folder-grid-v230{margin-top:4px}
.online-exam-folder-detail-v240 .practice-subfolder-section-v235{margin-bottom:10px}
.online-exam-folder-table-v240{width:100%;border-collapse:collapse}
.online-exam-folder-table-v240 .folder-check-col-v232,.online-exam-folder-table-v240 .folder-check-cell-v232{width:34px!important;min-width:34px!important;max-width:34px!important;padding-left:9px!important;padding-right:4px!important;text-align:center}
.online-exam-folder-table-v240 .table-actions{gap:4px;flex-wrap:nowrap}
.online-exam-folder-table-v240 .btn.compact{min-height:31px;height:31px;padding:0 8px;font-size:8.4px;border-radius:8px}
.online-exam-folder-table-v240 .icon-btn{width:31px;height:31px;border-radius:8px}
@media(min-width:1181px){
  .online-exam-folder-detail-v240 .online-exam-admin-card .table-wrap{overflow-x:hidden;overflow-y:visible}
  .online-exam-folder-table-v240{table-layout:fixed;min-width:0!important}
  .online-exam-folder-table-v240 thead th,.online-exam-folder-table-v240 tbody td{padding:9px 9px}
  .online-exam-folder-table-v240 thead th:nth-last-child(6),.online-exam-folder-table-v240 tbody td:nth-last-child(6){width:26%;min-width:0}
  .online-exam-folder-table-v240 thead th:nth-last-child(5),.online-exam-folder-table-v240 tbody td:nth-last-child(5){width:14%;min-width:0}
  .online-exam-folder-table-v240 thead th:nth-last-child(4),.online-exam-folder-table-v240 tbody td:nth-last-child(4){width:12%;min-width:0}
  .online-exam-folder-table-v240 thead th:nth-last-child(3),.online-exam-folder-table-v240 tbody td:nth-last-child(3){width:10%;min-width:0}
  .online-exam-folder-table-v240 thead th:nth-last-child(2),.online-exam-folder-table-v240 tbody td:nth-last-child(2){width:14%;min-width:0}
  .online-exam-folder-table-v240 thead th:last-child,.online-exam-folder-table-v240 tbody td:last-child{width:24%;min-width:0}
  .online-exam-folder-table-v240 tbody td:nth-last-child(6)>b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
@media(max-width:1180px){.online-exam-folder-table-v240{min-width:1120px}.online-exam-folder-detail-v240 .online-exam-admin-card .table-wrap{overflow:auto}}


/* ===== V0.241 · Gọn giao diện thư mục kỳ thi ===== */
.online-exam-folder-detail-v240 .practice-folder-head-v234{align-items:flex-start;gap:12px}
.online-exam-folder-detail-v240 .practice-folder-readonly-v234.compact{padding:8px 10px;border-radius:10px;gap:8px;min-height:auto}
.online-exam-folder-detail-v240 .practice-folder-readonly-v234.compact small{font-size:9px}
.online-exam-folder-table-v240 td,.online-exam-folder-table-v240 th{vertical-align:middle}
.online-exam-folder-table-v240 .oe-publish-state{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-size:9px;padding:6px 9px;border-radius:999px}
.online-exam-folder-table-v240 .table-sub{margin-top:2px}
.online-exam-folder-table-v240 .online-source-mini .ico{width:11px;height:11px}
.online-exam-table-actions-v241{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}
.online-exam-table-actions-v241 .btn.compact{min-height:30px;height:30px;padding:0 8px;font-size:8.4px;white-space:nowrap}
.online-exam-table-actions-v241 .icon-btn{width:30px;height:30px;border-radius:8px;flex:0 0 30px}
.online-exam-folder-detail-v240 .online-exam-admin-card{overflow:visible}
@media(min-width:1181px){
  .online-exam-folder-table-v240 thead th:last-child,.online-exam-folder-table-v240 tbody td:last-child{width:28%;min-width:0}
  .online-exam-folder-table-v240 thead th:nth-last-child(2),.online-exam-folder-table-v240 tbody td:nth-last-child(2){width:11%;min-width:0}
  .online-exam-folder-table-v240 thead th:nth-last-child(3),.online-exam-folder-table-v240 tbody td:nth-last-child(3){width:9%;min-width:0}
  .online-exam-folder-table-v240 thead th:nth-last-child(4),.online-exam-folder-table-v240 tbody td:nth-last-child(4){width:12%;min-width:0}
  .online-exam-folder-table-v240 thead th:nth-last-child(5),.online-exam-folder-table-v240 tbody td:nth-last-child(5){width:14%;min-width:0}
  .online-exam-folder-table-v240 thead th:nth-last-child(6),.online-exam-folder-table-v240 tbody td:nth-last-child(6){width:22%;min-width:0}
}
@media(max-width:1320px){
  .online-exam-folder-table-v240{min-width:1040px}
}


/* ===== V0.243 · Xem đề gốc kỳ thi ===== */
.oe-original-paper-overlay-v243{z-index:16000;padding:24px;align-items:center;justify-content:center}
.oe-original-paper-card-v243{width:min(1120px,96vw);max-height:94vh;background:#f7f8fa;border-radius:18px;box-shadow:0 24px 70px #26050e55;display:flex;flex-direction:column;overflow:hidden}
.oe-original-head-v243{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 24px 15px;background:#fff;border-bottom:1px solid #e7e9ed}
.oe-original-head-v243 h2{margin:3px 0 4px;color:#811126;font-size:24px}.oe-original-head-v243 p{margin:0;color:#7b838d;font-size:11px}
.oe-original-summary-v243{display:flex;gap:8px;flex-wrap:wrap;padding:10px 24px;background:#fff;border-bottom:1px solid #eceef1}.oe-original-summary-v243 span{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border:1px solid #e5e8ec;border-radius:999px;background:#fafbfc;color:#68717c;font-size:9px;font-weight:800}.oe-original-summary-v243 .ico{width:13px;height:13px;color:#8b1027}
.oe-original-body-v243{padding:16px 24px 26px;overflow:auto;display:grid;gap:12px}.oe-original-q-v243{margin:0}.oe-original-q-v243 .word-preview-qhead small{font-size:9px;color:#858d97}.oe-original-explain-v243{display:grid;grid-template-columns:auto 1fr;gap:9px;margin:0 14px 13px;padding:9px 10px;border-radius:9px;background:#fff8e9;border:1px solid #f0d8a7;font-size:10px;line-height:1.45}.oe-original-explain-v243 b{color:#75550f}.oe-original-explain-v243 span{color:#646057}
@media(max-width:700px){.oe-original-paper-overlay-v243{padding:8px}.oe-original-paper-card-v243{width:100%;max-height:98vh;border-radius:12px}.oe-original-head-v243{padding:14px 15px}.oe-original-head-v243 h2{font-size:19px}.oe-original-summary-v243{padding:8px 15px}.oe-original-body-v243{padding:10px 12px 18px}}

/* ===== V0.244 · Đề cố định / cấu hình bốc đề / đề từng thí sinh ===== */
.oe-draw-config-card-v244{max-width:1040px}
.oe-draw-config-body-v244{padding:18px 22px 26px;overflow:auto}
.oe-draw-config-body-v244>section{margin:16px 0}.oe-draw-config-body-v244>section>b{display:block;margin-bottom:8px;color:#303945;font-size:12px}
.oe-draw-note-v244{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid #ead9dd;border-radius:12px;background:#fff8fa;color:#4f5862}
.oe-draw-note-v244>.ico{width:18px;height:18px;color:#99142e;flex:0 0 auto}.oe-draw-note-v244 span{display:flex;flex-direction:column;gap:3px}.oe-draw-note-v244 b{font-size:11px;color:#811127}.oe-draw-note-v244 small{font-size:9.5px;line-height:1.5;color:#747d86}
.oe-draw-grid-v244{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.oe-draw-grid-v244>div{padding:12px 14px;border:1px solid #e4e7eb;border-radius:11px;background:#fafbfc}.oe-draw-grid-v244 span{display:block;color:#7a838e;font-size:9px}.oe-draw-grid-v244 b{display:block;margin-top:3px;color:#8e1029;font-size:18px}
.oe-draw-chips-v244{display:flex;flex-wrap:wrap;gap:6px}.oe-draw-chips-v244 span{padding:6px 9px;border-radius:999px;background:#f5f1f2;border:1px solid #e7dadd;color:#5d3b43;font-size:9px;font-weight:750}
.oe-draw-table-v244{margin-top:14px;border:1px solid #e1e5e9;border-radius:12px;overflow:hidden}.oe-draw-table-v244>div{display:grid;grid-template-columns:minmax(220px,1fr) 80px 80px;align-items:center;gap:8px;min-height:38px;padding:7px 12px;border-top:1px solid #edf0f2;font-size:9.5px}.oe-draw-table-v244>div:first-child{border-top:0}.oe-draw-table-v244>.head{background:#f7f8fa;color:#717b86;font-weight:800}.oe-draw-table-v244.matrix>div{grid-template-columns:minmax(180px,1fr) 80px 130px 70px}.oe-draw-table-v244 b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.oe-draw-warning-v244{margin:0 22px 12px;padding:9px 12px;border-radius:9px;background:#fff6e9;border:1px solid #f1d6a6;color:#7b5a24;font-size:9.5px}
.oe-attempt-head-actions-v244{display:flex;align-items:center;gap:8px}.oe-attempt-head-actions-v244 .review-close{position:static}
.oerm-actions-v244{display:flex;justify-content:center;align-items:center;gap:5px}.oerm-paper-v244{width:34px;height:34px;border-radius:9px;border:1px solid #dfe3e7;background:#fff;color:#7f1026;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.oerm-paper-v244:hover{background:#fff5f7;border-color:#d9b6be}.oerm-paper-v244 .ico{width:15px;height:15px}
@media(max-width:700px){.oe-draw-grid-v244{grid-template-columns:1fr}.oe-draw-table-v244{overflow:auto}.oe-draw-table-v244>div{min-width:430px}.oe-attempt-head-actions-v244 .btn{display:none}}


/* ===== V0.245 · Sửa Xem đề gốc bị co câu hỏi ===== */
.oe-original-body-v243{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:12px!important;overflow-y:auto!important;overflow-x:hidden!important}
.oe-original-q-v243{flex:0 0 auto!important;height:auto!important;min-height:max-content!important;overflow:hidden!important}
.oe-original-q-v243 .word-preview-stem{display:block!important}
.oe-original-q-v243 .word-preview-options,.oe-original-q-v243 .word-preview-tf{display:grid!important}
.oe-original-q-v243 .word-preview-option,.oe-original-q-v243 .word-preview-statement{min-height:38px}


/* ===== V0.246 · Đề gốc: nút Đóng rõ + chia Phần I / Phần II ===== */
.oe-original-head-v243{position:sticky;top:0;z-index:5;flex:0 0 auto}
.oe-original-close-v246{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:38px;padding:0 13px;border:1px solid #e3c9cf;border-radius:10px;background:#fff;color:#8b1027;font:inherit;font-size:10px;font-weight:850;cursor:pointer;box-shadow:0 2px 8px #7d102414;flex:0 0 auto}
.oe-original-close-v246:hover{background:#fff4f6;border-color:#cf9daa}
.oe-original-close-v246 span{display:inline}
.oe-original-body-v243{gap:18px!important}
.oe-paper-part-v246{display:flex;flex-direction:column;gap:10px;flex:0 0 auto}
.oe-paper-part-v246>header{display:flex;align-items:center;gap:11px;padding:11px 14px;border:1px solid #e5d5d9;border-left:4px solid #8d1028;border-radius:11px;background:#fff}
.oe-paper-part-v246>header>span{display:inline-flex;align-items:center;justify-content:center;min-width:68px;height:30px;padding:0 10px;border-radius:8px;background:#8d1028;color:#fff;font-size:10px;font-weight:900;letter-spacing:.04em}
.oe-paper-part-v246>header>div{display:flex;align-items:baseline;gap:8px;min-width:0}.oe-paper-part-v246>header h3{margin:0;color:#252c35;font-size:14px}.oe-paper-part-v246>header p{margin:0;color:#8a929c;font-size:9.5px;font-weight:700}
.oe-paper-part-questions-v246{display:flex;flex-direction:column;gap:12px}
@media(max-width:700px){.oe-original-close-v246{height:34px;padding:0 10px}.oe-original-close-v246 span{display:none}.oe-paper-part-v246>header{padding:9px 10px}.oe-paper-part-v246>header>span{min-width:58px;height:28px}.oe-paper-part-v246>header h3{font-size:12px}}


/* ===== V0.248 · Sửa form Các lượt luyện: không che khuất / không cuộn ngang ===== */
.practice-attempt-list-wrap-v248{width:min(980px,94vw)!important;max-width:94vw!important;min-width:0!important;padding:0!important;overflow:hidden!important;border-radius:18px!important}
.practice-attempt-list-modal{width:100%;min-width:0!important;max-width:100%;max-height:min(78vh,720px);display:flex;flex-direction:column;overflow:hidden;background:#fff}
.practice-attempt-list-head-v248{flex:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:24px 28px 18px;border-bottom:1px solid #e8ebee;background:#fff}
.practice-attempt-list-head-v248>div{min-width:0}.practice-attempt-list-head-v248 h2{margin:5px 0 3px;white-space:normal;overflow-wrap:anywhere}.practice-attempt-list-head-v248 p{margin:0;color:#818994;white-space:normal;overflow-wrap:anywhere}
.practice-attempt-close-v248{flex:0 0 auto;height:38px;padding:0 13px;border:1px solid #ead4d9;border-radius:10px;background:#fff;color:#8a1029;font:inherit;font-size:10px;font-weight:850;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer}.practice-attempt-close-v248:hover{background:#fff5f7;border-color:#d9aeb8}
.practice-attempt-list-body-v248{min-height:0;overflow:hidden;padding:0 0 14px}
.practice-attempt-table-wrap-v248{width:100%;max-width:100%;max-height:min(55vh,470px);overflow-y:auto!important;overflow-x:hidden!important;border:0!important;border-radius:0!important}
.practice-attempt-table{width:100%!important;min-width:0!important;table-layout:fixed;border-collapse:collapse}
.practice-attempt-table th,.practice-attempt-table td{box-sizing:border-box;padding:11px 13px;white-space:normal;overflow-wrap:anywhere;vertical-align:middle}
.practice-attempt-table th:nth-child(1),.practice-attempt-table td:nth-child(1){width:9%}
.practice-attempt-table th:nth-child(2),.practice-attempt-table td:nth-child(2){width:25%}
.practice-attempt-table th:nth-child(3),.practice-attempt-table td:nth-child(3){width:21%}
.practice-attempt-table th:nth-child(4),.practice-attempt-table td:nth-child(4){width:13%}
.practice-attempt-table th:nth-child(5),.practice-attempt-table td:nth-child(5){width:13%}
.practice-attempt-table th:nth-child(6),.practice-attempt-table td:nth-child(6){width:19%;text-align:right}
.practice-attempt-table .pa-inline-action{max-width:100%;white-space:nowrap}
@media(max-width:720px){.practice-attempt-list-wrap-v248{width:96vw!important;max-width:96vw!important}.practice-attempt-list-modal{max-height:84vh}.practice-attempt-list-head-v248{padding:18px 16px 14px}.practice-attempt-close-v248 span{display:none}.practice-attempt-close-v248{width:36px;padding:0}.practice-attempt-table-wrap-v248{max-height:62vh}.practice-attempt-table thead{display:none}.practice-attempt-table,.practice-attempt-table tbody,.practice-attempt-table tr,.practice-attempt-table td{display:block;width:100%!important}.practice-attempt-table tr{padding:10px 12px;border-bottom:1px solid #eceff2}.practice-attempt-table td{padding:4px 0;border:0;text-align:left!important}.practice-attempt-table td:nth-child(6){padding-top:8px}.practice-attempt-table .pa-inline-action{width:100%}}

/* ===== V0.251 · Phục hồi đơn giản và an toàn ===== */
.restore-simple-v251{padding:0!important;overflow:hidden}
.restore-file-summary-v251{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid #eceef1;background:#fff}
.restore-file-summary-v251 h3{margin:3px 0 4px;font-size:14px;color:#29313b;word-break:break-word}
.restore-file-summary-v251 p{margin:0;font-size:9.5px;color:#7a838d;line-height:1.45}
.restore-kind-v251{flex:0 0 auto;border-radius:999px;background:#f6edf0;color:#861329;padding:7px 10px;font-size:8.5px;font-weight:900;letter-spacing:.04em}
.restore-warning-v251{margin:14px 18px 0;display:flex;align-items:flex-start;gap:9px;padding:11px 12px;border:1px solid #eadfe2;border-radius:11px;background:#fcfafb;color:#5d6670}
.restore-warning-v251>.ico{width:17px;height:17px;flex:0 0 auto;color:#8d1730}
.restore-warning-v251 span{display:flex;flex-direction:column;gap:3px}.restore-warning-v251 b{font-size:10.5px}.restore-warning-v251 small{font-size:9px;line-height:1.45;color:#7d858e}
.restore-warning-v251.danger{background:#fff4f5;border-color:#efc5cc;color:#96263b}
.restore-choice-v251{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px 18px 4px}
.restore-choice-card-v251{display:flex;align-items:flex-start;gap:9px;border:1px solid #e2e5e9;border-radius:12px;padding:13px;background:#fff;cursor:pointer}
.restore-choice-card-v251.selected,.restore-choice-card-v251:has(input:checked){border-color:#be5266;background:#fff7f8;box-shadow:0 0 0 1px rgba(141,10,32,.05)}
.restore-choice-card-v251 input{margin-top:3px;accent-color:#8d0a20}.restore-choice-card-v251 span{display:flex;flex-direction:column;gap:3px}.restore-choice-card-v251 b{font-size:11px;color:#343b44}.restore-choice-card-v251 small{font-size:9px;color:#7e8791;line-height:1.45}
.restore-modules-v251{margin:10px 18px 0;padding:12px 13px;border:1px solid #e5e8eb;border-radius:11px;background:#fafbfc}
.restore-modules-v251>div:first-child{display:flex;flex-direction:column;gap:2px;margin-bottom:7px}.restore-modules-v251>div:first-child b{font-size:10.5px}.restore-modules-v251>div:first-child small{font-size:8.8px;color:#848c96}
.backup-module-item.simple{align-items:center;padding:9px 10px}.backup-module-item.simple input{margin-top:0}
.restore-confirm-v251{display:flex;align-items:flex-start;gap:9px;margin:14px 18px 0;padding:11px 12px;border-radius:10px;background:#fff8ea;border:1px solid #f0dfb8;color:#69562d;font-size:9.5px;font-weight:700}.restore-confirm-v251 input{margin-top:1px;accent-color:#8d0a20}
.restore-simple-v251 .backup-preview-actions{margin:14px 18px 0;padding:13px 0 16px}
@media(max-width:760px){.restore-file-summary-v251{flex-direction:column}.restore-choice-v251{grid-template-columns:1fr}.restore-kind-v251{align-self:flex-start}.restore-simple-v251 .backup-preview-actions{align-items:stretch;flex-direction:column}.restore-simple-v251 .backup-preview-actions .btn{width:100%}}


/* V0.252 - Bổ sung dữ liệu còn thiếu khi phục hồi */
.restore-choice-card-v251.add-v252.selected{border-color:#b88835;background:#fffaf0;box-shadow:0 0 0 1px rgba(184,136,53,.12)}
.restore-add-preview-v252{margin:5px 0 0!important;font-size:10px!important;color:#66717c!important}
.restore-add-preview-v252 b{color:#7f1026}
.restore-add-note-v252{display:flex;align-items:flex-start;gap:9px;margin:10px 0;padding:10px 12px;border:1px solid #ead8b2;background:#fffaf0;border-radius:10px;color:#70521e}
.restore-add-note-v252.hidden{display:none}
.restore-add-note-v252 .ico{width:17px;height:17px;flex:0 0 17px;margin-top:1px}.restore-add-note-v252 span{display:flex;flex-direction:column;gap:2px}.restore-add-note-v252 b{font-size:10px}.restore-add-note-v252 small{font-size:9px;line-height:1.45;color:#806a41}


/* ===== V0.253 · Khóa bận và timeout phòng chờ Thách đấu ===== */
.challenge-busy-note{display:flex;align-items:center;gap:10px;padding:12px 14px;margin-bottom:12px;border:1px solid #eed2d8;background:#fff8fa;color:#7f1026}
.challenge-busy-note .ico{width:18px;height:18px;flex:0 0 18px}.challenge-busy-note span{display:flex;flex-direction:column;gap:2px}.challenge-busy-note b{font-size:11px}.challenge-busy-note small{font-size:9px;color:#707985}
.challenge-opponent-item.busy{opacity:.58;cursor:not-allowed;background:#f5f6f7}.challenge-opponent-item.busy em{font-style:normal;font-size:9px;font-weight:800;color:#9b5c68;margin-left:auto}.challenge-opponent-item.busy i{display:none}
.challenge-card.ready .challenge-expire{color:#a15b0d;font-weight:800}

.challenge-wait-deadline{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:7px 10px;border-radius:999px;background:#fff5e9;border:1px solid #f0d5ad;color:#92540b;font-size:10px;font-weight:700}.challenge-wait-deadline .ico{width:14px;height:14px}.challenge-wait-deadline b{font-size:11px;color:#7f1026}


/* ===== V0.254 · Ưu tiên câu chưa gặp / ít gặp ===== */
.practice-smart-pick-note-v254,
.practice-smart-pick-note-v254 .ico,.challenge-smart-pick-note-v254 .ico{width:15px;height:15px;flex:0 0 15px;color:#27804f;margin-top:1px}
.practice-smart-pick-note-v254 b,.challenge-smart-pick-note-v254 b{color:#17663d}

/* ===== V0.256 · Phòng xếp hạng nhiều học sinh ===== */
.ranking-room-page{display:flex;flex-direction:column;gap:12px}
.ranking-room-table td,.ranking-room-table th{vertical-align:middle}
.ranking-room-create-modal{width:min(1050px,96vw);max-width:1050px}
.ranking-room-create{padding:18px}.ranking-room-create-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(380px,1.1fr);gap:18px;margin-top:12px}
.ranking-room-diffs,.ranking-room-options{display:flex;flex-wrap:wrap;gap:8px 14px}.ranking-room-diffs label,.ranking-room-options label{font-size:10px;color:#505965;display:flex;align-items:center;gap:5px}
.ranking-room-students{border:1px solid #e3e7eb;border-radius:12px;padding:10px;min-height:360px}.ranking-room-student-actions{display:flex;align-items:center;gap:7px;margin:8px 0}.ranking-room-student-actions span{margin-left:auto;font-size:10px;font-weight:800;color:#7d1025}
.ranking-room-student-list{max-height:380px;overflow:auto;display:grid;grid-template-columns:1fr 1fr;gap:6px}.rrStudent{display:flex;align-items:center;gap:8px;border:1px solid #e8eaed;border-radius:9px;padding:7px 8px;background:#fff;cursor:pointer}.rrStudent:hover{background:#fff8fa;border-color:#d9c3ca}.rrStudent span{min-width:0}.rrStudent b,.rrStudent small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rrStudent b{font-size:10px;color:#333}.rrStudent small{font-size:8.5px;color:#89919a;margin-top:2px}
.ranking-room-create-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid #eceff1}
.ranking-room-student-list-page{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ranking-room-student-card{padding:14px}.ranking-room-student-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.ranking-room-student-head h3{font-size:15px;margin:3px 0}.ranking-room-student-head p{font-size:9.5px;color:#7d858e;margin:0}.ranking-room-student-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #eef0f2;margin-top:12px;padding-top:10px;font-size:9.5px;color:#737c86}.ranking-room-student-foot>div{display:flex;gap:6px}.ranking-room-my-rank{margin-top:10px;padding:9px 11px;border-radius:10px;background:#fff7f9;color:#6f1729;font-size:10px;display:flex;justify-content:space-between}.ranking-room-my-rank b{font-size:16px}
.ranking-room-board-modal{width:min(720px,94vw);max-height:88vh;overflow:auto}.ranking-room-board-list{display:flex;flex-direction:column;gap:5px;margin:12px 0}.ranking-room-board-row{display:grid;grid-template-columns:48px minmax(0,1fr) 70px 130px;align-items:center;gap:8px;padding:9px 10px;border:1px solid #e7eaed;border-radius:9px;background:#fff}.ranking-room-board-row.mine{border-color:#9e3450;background:#fff7f9}.ranking-room-board-row .rank{font-size:12px;color:#7d1025}.ranking-room-board-row .name{font-size:10.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ranking-room-board-row .score{font-size:13px;font-weight:900;text-align:right}.ranking-room-board-row small{font-size:9px;color:#78818b;text-align:right}.ranking-room-board-empty{padding:14px;text-align:center;color:#8a929a;font-size:10px}
.ranking-room-ready-grid{width:min(900px,94vw);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px auto}.ranking-room-ready-grid>div{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px solid #e2e5e8;border-radius:11px;background:#fff}.ranking-room-ready-grid span{min-width:0;flex:1}.ranking-room-ready-grid b,.ranking-room-ready-grid small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ranking-room-ready-grid b{font-size:10px}.ranking-room-ready-grid small{font-size:8.5px;color:#838c95;margin-top:2px}
.ranking-room-exam-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:10px 14px;background:#fff;border-bottom:1px solid #e7eaed}.ranking-room-exam-head>div>span{display:block;font-size:8px;font-weight:900;letter-spacing:.12em;color:#8b1830}.ranking-room-exam-head h2{font-size:14px;margin:2px 0 0}.ranking-room-exam-progress,.ranking-room-exam-rank{min-width:90px;padding:7px 10px;border-radius:9px;background:#f7f8f9;text-align:center}.ranking-room-exam-progress span,.ranking-room-exam-rank span{display:block;font-size:8px;color:#7c858e}.ranking-room-exam-progress b,.ranking-room-exam-rank b{display:block;margin-top:2px;font-size:13px}.ranking-room-exam #rankingLiveBoard .ranking-room-board-row{grid-template-columns:35px minmax(0,1fr) 45px;padding:6px 7px}.ranking-room-exam #rankingLiveBoard .ranking-room-board-row small{display:none}.ranking-room-exam #rankingLiveBoard .ranking-room-board-row .name{font-size:9px}.ranking-room-exam #rankingLiveBoard .ranking-room-board-row .score{font-size:10px}
.ranking-room-finished{max-width:850px;margin:0 auto;padding:18px}.ranking-room-finished-head{text-align:center;padding:18px}.ranking-room-finished-head .ico{width:34px;height:34px}.ranking-room-finished-head h1{margin:8px 0 4px}.ranking-room-finished-head p{color:#78818b}
@media(max-width:900px){.ranking-room-create-grid{grid-template-columns:1fr}.ranking-room-student-list-page{grid-template-columns:1fr}.ranking-room-ready-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ranking-room-exam-head{grid-template-columns:auto 1fr auto}.ranking-room-exam-rank{display:none}}
@media(max-width:620px){.ranking-room-student-list{grid-template-columns:1fr}.ranking-room-ready-grid{grid-template-columns:1fr}.ranking-room-board-row{grid-template-columns:38px minmax(0,1fr) 55px}.ranking-room-board-row small{display:none}.ranking-room-exam-head{grid-template-columns:auto 1fr}.ranking-room-exam-progress{display:none}}

/* ===== V0.257 · Theo dõi đợt luyện: nhiều chủ đề gọn, không tràn ===== */
.practice-monitor-top{align-items:flex-start;min-height:88px;padding-top:12px;padding-bottom:12px}
.practice-monitor-heading{flex:1 1 auto;min-width:0;max-width:calc(100% - 250px)}
.practice-monitor-title-row-v257{display:flex;align-items:center;gap:10px;min-width:0}
.practice-monitor-title-row-v257 h1{min-width:0;max-width:100%}
.practice-monitor-context-v257{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;margin-top:7px;min-width:0}
.practice-monitor-topic-row-v257{display:flex;align-items:center;gap:6px;min-width:0;max-width:100%;flex-wrap:wrap}
.practice-monitor-topic-count-v257,.practice-monitor-topic-more-v257{height:25px;border:1px solid #ead6dc;border-radius:999px;background:#fff6f8;color:#7f1027;padding:0 9px;font:inherit;font-size:8.5px;font-weight:850;display:inline-flex;align-items:center;gap:5px;cursor:pointer;white-space:nowrap}
.practice-monitor-topic-count-v257.static{cursor:default}
.practice-monitor-topic-count-v257:hover:not(.static),.practice-monitor-topic-more-v257:hover{background:#f9e7ec;border-color:#d8aab7}
.practice-monitor-topic-count-v257 .ico{width:12px;height:12px}
.practice-monitor-topic-chips-v257{display:flex;align-items:center;gap:5px;min-width:0;flex-wrap:wrap}
.practice-monitor-topic-chip-v257{display:inline-block;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:4px 8px;border:1px solid #e5e8eb;border-radius:999px;background:#fff;color:#5f6872;font-size:8.5px;font-weight:750;line-height:1.15}
.practice-monitor-topic-more-v257{min-width:30px;justify-content:center;padding:0 7px;background:#f5f6f8;color:#69727c;border-color:#e0e4e8}
.practice-monitor-config-v257{display:flex;align-items:center;gap:6px 12px;flex-wrap:wrap;color:#727b85;font-size:8.8px;font-weight:650;min-width:0}
.practice-monitor-config-v257 span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.practice-monitor-config-v257 .ico{width:12px;height:12px;color:#8b1730}
.practice-monitor-top-actions{padding-top:2px}
.practice-topic-modal-shell-v257{width:min(720px,92vw);max-height:min(760px,88vh);overflow:hidden;padding:0}
.practice-topic-modal-v257{display:grid;grid-template-rows:auto auto minmax(0,1fr);max-height:min(760px,88vh);min-height:240px}
.practice-topic-modal-head-v257{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 20px 14px;border-bottom:1px solid #eceff1}
.practice-topic-modal-head-v257 h2{margin:3px 0 2px;color:#761126;font-size:21px}
.practice-topic-modal-head-v257 p{margin:0;color:#808892;font-size:10px}
.practice-topic-modal-close-v257{height:34px;border:1px solid #e0e4e8;border-radius:10px;background:#fff;color:#66707a;font:inherit;font-size:10px;font-weight:850;padding:0 11px;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.practice-topic-modal-close-v257:hover{background:#fff6f8;color:#7f1027;border-color:#e1bbc5}
.practice-topic-modal-config-v257{display:flex;gap:8px 16px;flex-wrap:wrap;padding:10px 20px;background:#fafbfc;border-bottom:1px solid #eceff1;color:#616b75;font-size:9px}
.practice-topic-modal-config-v257 span{display:inline-flex;align-items:center;gap:5px}.practice-topic-modal-config-v257 .ico{width:13px;height:13px;color:#8a1730}
.practice-topic-list-v257{overflow:auto;padding:10px 14px 16px;display:grid;gap:6px}
.practice-topic-item-v257{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;align-items:center;padding:9px 10px;border:1px solid #e7eaed;border-radius:11px;background:#fff}
.practice-topic-item-v257>b{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#f8e9ed;color:#811329;font-size:9px}
.practice-topic-item-v257 span{min-width:0}.practice-topic-item-v257 strong{display:block;color:#353c44;font-size:10px}.practice-topic-item-v257 small{display:block;margin-top:2px;color:#8a929a;font-size:8.5px;white-space:normal;overflow-wrap:anywhere}
.practice-topic-empty-v257{margin:16px 20px 20px;padding:16px;border:1px dashed #dfe3e7;border-radius:12px;color:#7b848d;background:#fafbfc;font-size:10px}
@media(max-width:1100px){.practice-monitor-heading{max-width:calc(100% - 185px)}.practice-monitor-topic-chip-v257{max-width:135px}.practice-monitor-topic-chips-v257 .practice-monitor-topic-chip-v257:nth-of-type(n+3){display:none}}
@media(max-width:900px){.practice-monitor-top{min-height:82px;gap:10px}.practice-monitor-heading{max-width:calc(100% - 52px)}.practice-monitor-top-actions{gap:5px}.practice-monitor-context-v257{gap:6px 10px}.practice-monitor-config-v257{font-size:8.3px}.practice-monitor-topic-chip-v257{max-width:120px}}
@media(max-width:620px){.practice-monitor-top{padding:10px 10px 9px}.practice-monitor-heading{max-width:calc(100% - 42px)}.practice-monitor-topic-chips-v257{display:none}.practice-monitor-context-v257{margin-top:5px}.practice-monitor-config-v257 span:nth-child(3){display:none}.practice-monitor-config-v257{gap:4px 8px}.practice-topic-modal-shell-v257{width:94vw;max-height:86vh}.practice-topic-modal-head-v257{padding:14px 14px 11px}.practice-topic-modal-config-v257{padding:9px 14px}.practice-topic-list-v257{padding:8px 9px 12px}.practice-topic-modal-close-v257 span{display:none}}


/* ===== V0.258 · Làm lại giao diện phòng chờ xếp hạng ===== */
.ranking-room-waiting-shell{max-width:1120px;background:linear-gradient(180deg,#fff 0%,#fff8f9 100%);border:1px solid #ecdde1;box-shadow:0 18px 48px rgba(78,9,21,.09)}
.ranking-room-waiting-hero{padding:26px 28px 18px;text-align:center;background:radial-gradient(circle at top,rgba(158,15,42,.08),transparent 55%),linear-gradient(180deg,#fffafb 0%,#ffffff 100%);border-bottom:1px solid #f0e2e6}
.ranking-room-waiting-hero .waiting-icon{margin-bottom:10px}
.ranking-room-waiting-hero h1{margin:8px 0 6px;color:#7f1023;font-size:38px;line-height:1.08}
.ranking-room-waiting-sub{max-width:780px;margin:0 auto;color:#6d7480;font-size:14px;line-height:1.55}
.ranking-room-waiting-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;width:min(900px,100%);margin:18px auto 0}
.ranking-room-waiting-stats article{background:#fff;border:1px solid #eadde1;border-radius:16px;padding:13px 15px;box-shadow:0 6px 18px rgba(67,16,26,.04)}
.ranking-room-waiting-stats article span{display:block;font-size:11px;font-weight:850;letter-spacing:.04em;text-transform:uppercase;color:#8b929c}
.ranking-room-waiting-stats article b{display:block;margin-top:6px;color:#811128;font-size:24px;line-height:1.1}
.ranking-room-waiting-stats article.accent{background:linear-gradient(135deg,#8f0f28,#b61634);border-color:#99132d}
.ranking-room-waiting-stats article.accent span,.ranking-room-waiting-stats article.accent b{color:#fff}
.ranking-room-ready-wrap{padding:18px 24px 6px}
.ranking-room-ready-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}
.ranking-room-ready-head h3{margin:0;color:#2c2530;font-size:20px}
.ranking-room-ready-head p{margin:5px 0 0;color:#77808c;font-size:12px}
.ranking-room-ready-flag{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:10px 14px;font-size:11px;font-weight:900;white-space:nowrap;border:1px solid #eadde1;background:#fff;color:#7f1023}
.ranking-room-ready-flag.yes{background:#e9f8ef;border-color:#c0e8cd;color:#1e8148}
.ranking-room-ready-flag.no{background:#fff7e5;border-color:#efddb2;color:#9a6911}
.ranking-room-ready-flag .ico{width:14px;height:14px}
.ranking-room-ready-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.ranking-room-player-card{background:#fff;border:1px solid #e7eaee;border-radius:18px;padding:14px 15px;box-shadow:0 8px 22px rgba(34,37,43,.04);display:flex;flex-direction:column;gap:12px;min-width:0}
.ranking-room-player-card.ready{border-color:#cfe7d7;background:linear-gradient(180deg,#ffffff 0%,#f8fffb 100%)}
.ranking-room-player-card.mine{border-color:#d8b4bd;box-shadow:0 0 0 2px rgba(154,15,40,.08),0 10px 25px rgba(93,17,31,.07)}
.ranking-room-player-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center}
.ranking-room-player-avatar{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;background:#f6e2e6;color:#8c1027;font-size:16px;font-weight:1000;overflow:hidden}
.ranking-room-player-avatar.mine{background:linear-gradient(135deg,#a10d2a,#7a091f);color:#fff}
.ranking-room-player-meta{min-width:0;display:flex;flex-direction:column;gap:4px}
.ranking-room-player-name{display:flex;align-items:center;gap:8px;min-width:0}
.ranking-room-player-name b{font-size:17px;color:#242b35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ranking-room-player-meta small{font-size:11px;color:#838c97;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ranking-room-you{display:inline-flex;align-items:center;border-radius:999px;background:#f8e6ea;color:#8c1027;padding:4px 8px;font-size:10px;font-weight:900;flex:0 0 auto}
.ranking-room-slot{width:40px;height:40px;border-radius:12px;background:#f7f8fa;border:1px solid #e7eaee;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:900;color:#7b1128;flex:0 0 auto}
.ranking-room-player-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ranking-room-waiting-control{padding:18px 24px 24px}
.ranking-room-waiting-note{max-width:920px;margin:0 auto 16px;text-align:left;background:#fff7e0;border:1px solid #f1dfae;color:#7d5a09;font-size:12px;line-height:1.6}
.ranking-room-action-row{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}
.ranking-room-action-row .ready-toggle{min-width:360px}
@media(max-width:980px){
  .ranking-room-waiting-hero h1{font-size:32px}
  .ranking-room-waiting-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ranking-room-ready-board{grid-template-columns:1fr}
}
@media(max-width:700px){
  .ranking-room-waiting-shell{width:calc(100vw - 12px);margin:8px auto 16px;border-radius:16px}
  .ranking-room-waiting-hero{padding:16px 14px 12px}
  .ranking-room-waiting-hero h1{font-size:25px}
  .ranking-room-waiting-sub{font-size:12px}
  .ranking-room-waiting-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}
  .ranking-room-waiting-stats article{padding:11px 12px;border-radius:13px}
  .ranking-room-waiting-stats article b{font-size:19px}
  .ranking-room-ready-wrap{padding:12px 12px 4px}
  .ranking-room-ready-head{flex-direction:column;align-items:stretch;gap:10px}
  .ranking-room-ready-head h3{font-size:17px}
  .ranking-room-ready-head p{font-size:11px}
  .ranking-room-ready-flag{justify-content:center}
  .ranking-room-player-card{padding:12px;border-radius:14px;gap:10px}
  .ranking-room-player-top{gap:9px;grid-template-columns:auto minmax(0,1fr) 34px}
  .ranking-room-player-avatar{width:44px;height:44px;border-radius:14px;font-size:13px}
  .ranking-room-player-name{flex-wrap:wrap;row-gap:4px}
  .ranking-room-player-name b{font-size:14px}
  .ranking-room-player-meta small{font-size:10px}
  .ranking-room-slot{width:34px;height:34px;border-radius:10px;font-size:11px}
  .ranking-room-waiting-control{padding:10px 12px 14px}
  .ranking-room-waiting-note{font-size:11px;margin-bottom:12px}
  .ranking-room-action-row{gap:8px}
  .ranking-room-action-row .ready-toggle,.ranking-room-action-row #backStu{width:100%;min-width:0}
}

/* ===== V0.260 · Giao diện thi phòng xếp hạng + ẩn danh ===== */
.ranking-room-name-mode-field small{display:block;margin-top:5px;color:#8a929d;font-size:9px;line-height:1.45}
.ranking-room-exam-head-v260{grid-template-columns:auto minmax(240px,1fr) minmax(420px,auto);padding:11px 14px;gap:14px;background:linear-gradient(180deg,#fff,#fffafb)}
.ranking-room-exam-title{min-width:0}.ranking-room-exam-title>span{font-size:8px;font-weight:900;letter-spacing:.13em;color:#8b1830}.ranking-room-exam-title h2{font-size:16px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ranking-room-exam-title p{margin:3px 0 0;color:#7b8490;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ranking-room-exam-kpis{display:grid;grid-template-columns:repeat(4,minmax(88px,1fr));gap:7px}.ranking-room-exam-kpis>div{padding:7px 9px;border:1px solid #e7eaed;border-radius:10px;background:#f8f9fa;text-align:center}.ranking-room-exam-kpis span{display:block;font-size:7.5px;color:#7d8691}.ranking-room-exam-kpis b{display:block;margin-top:2px;font-size:12px;color:#313943}.ranking-room-exam-kpis .accent{background:#8b1028;border-color:#8b1028}.ranking-room-exam-kpis .accent span,.ranking-room-exam-kpis .accent b{color:#fff}
.ranking-room-side-v260{gap:8px}.ranking-my-progress-v260{display:flex;flex-direction:column;gap:8px}.ranking-my-progress-v260>div:first-child,.ranking-current-rank-v260{display:flex;align-items:center;justify-content:space-between;gap:10px}.ranking-my-progress-v260 span{font-size:9px;color:#737d88}.ranking-my-progress-v260 b{font-size:13px;color:#7d1025}.ranking-my-progress-v260 small{font-size:8.5px;color:#8b939c;line-height:1.4}.ranking-current-rank-v260{padding-top:7px;border-top:1px solid #eef0f2}
.ranking-room-status-grid-v260{display:grid;grid-template-columns:1fr 1fr;gap:7px}.ranking-room-status-grid-v260>div{border:1px solid #edf0f2;border-radius:9px;padding:7px 8px;background:#fafbfc}.ranking-room-status-grid-v260 span{display:block;font-size:7.8px;color:#7c8691}.ranking-room-status-grid-v260 b{display:block;margin-top:2px;font-size:12px;color:#313943}
.ranking-live-card-v260 .side-title{display:flex;align-items:center;gap:6px}.ranking-anon-badge-v260{margin-left:auto;border-radius:999px;background:#f5e7eb;color:#85142b;padding:3px 6px;font-size:7px;font-weight:900}.ranking-room-exam-v260 #rankingLiveBoard .ranking-room-board-list{margin:7px 0 0;gap:4px}.ranking-room-exam-v260 #rankingLiveBoard .ranking-room-board-row{grid-template-columns:32px minmax(0,1fr) 42px;padding:6px 7px}.ranking-room-exam-v260 #rankingLiveBoard .ranking-room-board-row small{display:none}.ranking-room-exam-v260 #rankingLiveBoard .ranking-room-board-row .name{font-size:9px}.ranking-room-exam-v260 #rankingLiveBoard .ranking-room-board-row .score{font-size:10px}
@media(max-width:1100px){.ranking-room-exam-head-v260{grid-template-columns:auto minmax(0,1fr)}.ranking-room-exam-kpis{grid-column:1/-1;grid-template-columns:repeat(4,1fr)}}
@media(max-width:700px){.ranking-room-exam-head-v260{grid-template-columns:auto minmax(0,1fr);padding:8px 10px}.ranking-room-exam-title h2{font-size:13px!important}.ranking-room-exam-title p{font-size:8px}.ranking-room-exam-kpis{grid-template-columns:repeat(2,1fr);gap:5px}.ranking-room-exam-kpis>div{padding:6px}.ranking-room-exam-kpis b{font-size:11px}.ranking-room-status-grid-v260{grid-template-columns:repeat(4,1fr)}.ranking-room-status-grid-v260>div{padding:6px 4px;text-align:center}}


/* ===== V0.261 · Tối giản giao diện thi phòng xếp hạng ===== */
.ranking-room-exam-v261{position:relative}
.ranking-room-exam-head-v261{display:flex!important;align-items:center;justify-content:space-between;gap:14px;padding:9px 12px!important;min-height:58px;background:#fff!important;border-bottom:1px solid #e7eaed}
.ranking-room-exam-title-v261{min-width:0;flex:1}.ranking-room-exam-title-v261>span{font-size:7.5px;font-weight:900;letter-spacing:.13em;color:#8b1830}.ranking-room-exam-title-v261 h2{margin:2px 0 0!important;font-size:15px!important;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ranking-room-exam-title-v261 p{margin:3px 0 0;color:#7b8490;font-size:8.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ranking-room-exam-actions-v261{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex:0 0 auto;min-width:0}.ranking-view-switch-v261{height:34px}.ranking-view-switch-v261 button{padding:0 11px;font-size:9px}.ranking-rank-chip-v261{height:34px;min-width:64px;border-radius:9px;background:#8b1028;color:#fff;display:flex;align-items:center;justify-content:center;gap:6px;padding:0 10px}.ranking-rank-chip-v261 span{font-size:7.5px;opacity:.78}.ranking-rank-chip-v261 b{font-size:13px}.ranking-fullscreen-v261{height:34px!important;padding:0 10px!important}
.ranking-room-grid-v261{grid-template-columns:175px minmax(0,1fr) 315px!important;gap:10px!important}
.ranking-room-side-v261{display:grid!important;grid-template-rows:auto minmax(0,1fr)!important;gap:8px!important;min-height:0;height:100%;overflow:hidden!important}
.ranking-compact-summary-v261{display:grid;grid-template-columns:1.45fr repeat(3,1fr);gap:0;padding:0!important;overflow:hidden!important;min-height:64px!important}.ranking-compact-summary-v261>div{padding:9px 8px;border-right:1px solid #edf0f2;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0}.ranking-compact-summary-v261>div:last-child{border-right:0}.ranking-compact-summary-v261 span{font-size:7.6px;color:#7b8590;white-space:nowrap}.ranking-compact-summary-v261 b{margin-top:3px;font-size:12px;color:#2e3741;white-space:nowrap}.ranking-time-v261{background:#fff8fa}.ranking-time-v261 span{color:#8b1028;font-weight:850}.ranking-time-v261 span .ico{width:13px;height:13px;vertical-align:-3px}.ranking-time-v261 b{font-size:23px!important;line-height:1;color:#cc1736!important;letter-spacing:.035em}
.ranking-live-card-v261{display:flex!important;flex-direction:column;min-height:0!important;height:100%;overflow:hidden!important;padding:10px 10px 8px!important}.ranking-live-card-v261 .side-title{flex:0 0 auto;margin-bottom:6px!important}.ranking-live-board-v261{flex:1 1 auto;min-height:0;overflow:auto;padding-right:2px;scrollbar-width:thin}.ranking-room-exam-v261 #rankingLiveBoard .ranking-room-board-list{margin:0;gap:4px}.ranking-room-exam-v261 #rankingLiveBoard .ranking-room-board-row{grid-template-columns:30px minmax(0,1fr) 38px 55px!important;padding:7px 7px!important;min-height:35px}.ranking-room-exam-v261 #rankingLiveBoard .ranking-room-board-row .rank{font-size:10px}.ranking-room-exam-v261 #rankingLiveBoard .ranking-room-board-row .name{font-size:9.5px!important}.ranking-room-exam-v261 #rankingLiveBoard .ranking-room-board-row .score{font-size:10.5px!important}.ranking-room-exam-v261 #rankingLiveBoard .ranking-room-board-row small{display:block!important;font-size:7.8px!important;white-space:nowrap;color:#7d8792;text-align:right}.ranking-room-exam-v261 #rankingLiveBoard .ranking-room-board-row.mine{position:relative;background:#fff1f4;border-color:#b14a61;box-shadow:0 0 0 1px rgba(139,16,40,.06)}
.ranking-answer-pulse-v261{position:absolute;z-index:50;top:66px;left:50%;transform:translate(-50%,-8px);pointer-events:none;background:#1f8b51;color:#fff;border-radius:999px;padding:7px 13px;font-size:10px;font-weight:900;box-shadow:0 8px 22px rgba(22,111,63,.22);opacity:0;transition:.18s ease}.ranking-answer-pulse-v261.show{opacity:1;transform:translate(-50%,0);animation:rankingAckPop .55s ease}.ranking-room-exam-v261 .qnum.answer-pulse-v261{animation:qnumAck .65s ease}.ranking-room-exam-v261 .question-card.answer-ack-v261{animation:questionAck .65s ease}
.ranking-rank-flash-v261{display:none;align-items:center;justify-content:center;height:30px;border-radius:999px;padding:0 9px;font-size:9px;font-weight:900;white-space:nowrap}.ranking-rank-flash-v261.show{display:inline-flex;animation:rankFlash .9s ease}.ranking-rank-flash-v261.up{background:#e6f7ec;color:#187c45;border:1px solid #bfe5cb}.ranking-rank-flash-v261.down{background:#fff5df;color:#936313;border:1px solid #efdcaa}.ranking-room-board-row.mine.rank-pulse-v261{animation:mineRankPulse .85s ease}
@keyframes rankingAckPop{0%{transform:scale(.88);opacity:0}55%{transform:scale(1.06);opacity:1}100%{transform:scale(1);opacity:1}}@keyframes qnumAck{0%{transform:scale(1)}40%{transform:scale(1.18);box-shadow:0 0 0 5px rgba(42,166,91,.14)}100%{transform:scale(1)}}@keyframes questionAck{0%{box-shadow:var(--shadow)}35%{box-shadow:0 0 0 3px rgba(46,167,95,.16),var(--shadow)}100%{box-shadow:var(--shadow)}}@keyframes rankFlash{0%{transform:translateY(-5px);opacity:0}35%{transform:translateY(0);opacity:1}100%{opacity:1}}@keyframes mineRankPulse{0%{transform:scale(1)}40%{transform:scale(1.02);box-shadow:0 0 0 4px rgba(139,16,40,.12)}100%{transform:scale(1)}}
@media(max-width:1180px){.ranking-room-grid-v261{grid-template-columns:165px minmax(0,1fr)!important}.ranking-room-side-v261{grid-column:1/-1;display:grid!important;grid-template-columns:280px minmax(0,1fr)!important;grid-template-rows:220px!important;height:220px!important}.ranking-live-card-v261{height:220px!important}.ranking-compact-summary-v261{height:100%;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.ranking-compact-summary-v261>div{border-bottom:1px solid #edf0f2}.ranking-compact-summary-v261>div:nth-child(2n){border-right:0}.ranking-compact-summary-v261>div:nth-last-child(-n+2){border-bottom:0}}
@media(max-width:760px){.ranking-room-exam-head-v261{align-items:flex-start;flex-direction:column;gap:7px}.ranking-room-exam-actions-v261{width:100%;justify-content:space-between}.ranking-view-switch-v261{flex:1}.ranking-view-switch-v261 button{flex:1}.ranking-rank-flash-v261{position:absolute;right:12px;top:8px}.ranking-room-grid-v261{grid-template-columns:1fr!important}.ranking-room-side-v261{grid-column:auto;display:flex!important;height:auto!important;overflow:visible!important}.ranking-compact-summary-v261{height:auto;grid-template-columns:repeat(4,1fr);grid-template-rows:auto}.ranking-live-card-v261{height:auto!important;max-height:310px}.ranking-answer-pulse-v261{top:112px}.ranking-room-exam-v261 #rankingLiveBoard .ranking-room-board-row{grid-template-columns:28px minmax(0,1fr) 36px 48px!important}}
@media(prefers-reduced-motion:reduce){.ranking-answer-pulse-v261.show,.ranking-room-exam-v261 .qnum.answer-pulse-v261,.ranking-room-exam-v261 .question-card.answer-ack-v261,.ranking-rank-flash-v261.show,.ranking-room-board-row.mine.rank-pulse-v261{animation:none!important}}


/* ===== V0.262 · Nút học sinh không chồng + trình chiếu BXH realtime ===== */
/* Student ranking exam: keep controls in normal flow; never overlap the title/question area. */
.ranking-room-exam-head-v262{display:grid!important;grid-template-columns:minmax(220px,1fr) auto!important;align-items:center!important;gap:10px 16px!important;min-height:58px!important;overflow:visible!important}
.ranking-room-exam-actions-v262{position:static!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:7px!important;flex-wrap:wrap!important;max-width:100%;min-width:0}
.ranking-room-exam-v262:not(.x) .ranking-fullscreen-v262{position:static!important;right:auto!important;top:auto!important;width:auto!important;min-width:34px!important;height:34px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;background:#8b1028!important;border:1px solid #8b1028!important;color:#fff!important;box-shadow:none!important}
.ranking-room-exam-v262 .ranking-fullscreen-v262 span{display:inline!important;font-size:9px;font-weight:900}
.ranking-room-exam-v262 .ranking-fullscreen-v262 .ico{width:14px;height:14px}
.app-shell.exam-mode.exam-fullscreen .ranking-room-exam-v262 .ranking-fullscreen-v262{position:fixed!important;width:38px!important;height:38px!important;padding:0!important;right:9px!important;top:9px!important;z-index:90!important}
.app-shell.exam-mode.exam-fullscreen .ranking-room-exam-v262 .ranking-fullscreen-v262 span{display:none!important}
.ranking-room-exam-v262 .ranking-rank-flash-v261{flex:0 0 auto}
@media(max-width:1120px){
  .ranking-room-exam-head-v262{grid-template-columns:minmax(0,1fr)!important;align-items:stretch!important}
  .ranking-room-exam-actions-v262{justify-content:flex-start!important;width:100%}
  .ranking-view-switch-v261{flex:1 1 210px;min-width:180px}
  .ranking-view-switch-v261 button{flex:1}
}
@media(max-width:700px){
  .ranking-room-exam-head-v262{padding:8px 9px!important;gap:7px!important}
  .ranking-room-exam-actions-v262{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important;gap:6px!important}
  .ranking-view-switch-v261{min-width:0!important;width:100%!important;height:34px!important}
  .ranking-rank-chip-v261{min-width:56px!important;padding:0 7px!important}
  .ranking-room-exam-v262 .ranking-fullscreen-v262{width:36px!important;min-width:36px!important;padding:0!important}
  .ranking-room-exam-v262 .ranking-fullscreen-v262 span{display:none!important}
  .ranking-rank-flash-v261{grid-column:1/-1;position:static!important;justify-self:end;height:24px!important}
}
@media(max-width:440px){
  .ranking-room-exam-actions-v262{grid-template-columns:minmax(0,1fr) auto!important}
  .ranking-rank-chip-v261{grid-row:2;grid-column:1/-1;justify-self:start;height:28px!important}
  .ranking-room-exam-v262 .ranking-fullscreen-v262{grid-column:2;grid-row:1}
}

.ranking-room-board-head-actions-v262{display:flex;align-items:center;gap:8px}
/* Full-screen presentation board. */
.rr-present-shell-v262{position:fixed;inset:0;z-index:10000;background:#120207;color:#fff;font-family:inherit;overflow:hidden}
.rr-present-stage-v262{height:100vh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:radial-gradient(circle at 80% -20%,rgba(205,33,69,.24),transparent 38%),radial-gradient(circle at 15% 115%,rgba(155,13,43,.28),transparent 36%),linear-gradient(145deg,#170209,#26040d 52%,#110106)}
.rr-present-loading-v262{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#f7e9ed}.rr-present-loading-v262 span{color:#d6bcc3}.rr-present-loading-v262 .btn{margin-top:8px}
.rr-present-head-v262{position:relative;display:grid;grid-template-columns:minmax(360px,1fr) auto 48px;align-items:center;gap:22px;padding:20px 28px 16px;border-bottom:1px solid rgba(255,255,255,.12);background:linear-gradient(180deg,rgba(132,8,34,.92),rgba(88,4,22,.82));box-shadow:0 12px 34px rgba(0,0,0,.24)}
.rr-present-brand-v262{display:flex;align-items:center;gap:15px;min-width:0}.rr-present-brand-v262 img{width:64px;height:64px;object-fit:contain;background:#fff;border-radius:50%;padding:4px;box-shadow:0 7px 20px #0004}.rr-present-brand-v262>div{min-width:0}.rr-present-brand-v262 span{font-size:11px;font-weight:950;letter-spacing:.15em;color:#ffd8e0}.rr-present-brand-v262 h1{margin:3px 0 2px;font-size:30px;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rr-present-brand-v262 p{margin:0;font-size:11px;color:#e7c6ce}
.rr-present-head-stats-v262{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:8px}.rr-present-head-stats-v262>div{min-width:92px;padding:9px 12px;border-radius:13px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.13);text-align:center}.rr-present-head-stats-v262 span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:#e9cbd2;font-weight:850}.rr-present-head-stats-v262 b{display:block;margin-top:3px;font-size:18px;color:#fff;font-variant-numeric:tabular-nums}.rr-present-head-stats-v262>div:first-child b{font-size:22px;color:#ffe2a7}
.rr-present-close-v262{width:42px;height:42px;border-radius:12px;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.09);color:#fff;font-size:25px;cursor:pointer}.rr-present-close-v262:hover{background:rgba(255,255,255,.17)}
.rr-present-board-v262{min-height:0;padding:14px 26px 10px;display:flex;flex-direction:column;overflow:hidden}
.rr-present-columns-v262{display:grid;grid-template-columns:82px minmax(240px,1.45fr) minmax(210px,.9fr) 100px 140px;gap:14px;align-items:center;padding:0 16px 7px;color:#cfaeb7;font-size:9px;font-weight:900;letter-spacing:.12em}
.rr-present-list-v262{display:flex;flex-direction:column;gap:7px;min-height:0;overflow:auto;padding:2px 7px 8px 2px;scrollbar-width:thin;scrollbar-color:#7d1a31 #26040d}
.rr-present-row-v262{position:relative;display:grid;grid-template-columns:82px minmax(240px,1.45fr) minmax(210px,.9fr) 100px 140px;gap:14px;align-items:center;min-height:clamp(48px,calc((100vh - 245px)/var(--rr-count)),72px);padding:7px 16px;border:1px solid rgba(255,255,255,.10);border-radius:14px;background:linear-gradient(90deg,rgba(255,255,255,.075),rgba(255,255,255,.035));box-shadow:0 5px 18px rgba(0,0,0,.14);will-change:transform;transition:transform .62s cubic-bezier(.2,.8,.2,1),background .35s ease,border-color .35s ease,box-shadow .35s ease}
.rr-present-row-v262.rank-1{border-color:rgba(255,211,84,.48);background:linear-gradient(90deg,rgba(161,111,0,.34),rgba(255,209,75,.09))}.rr-present-row-v262.rank-2{border-color:rgba(220,225,235,.34);background:linear-gradient(90deg,rgba(118,132,157,.27),rgba(255,255,255,.04))}.rr-present-row-v262.rank-3{border-color:rgba(216,139,86,.38);background:linear-gradient(90deg,rgba(136,69,28,.29),rgba(255,255,255,.04))}
.rr-present-rank-v262{display:flex;align-items:center;gap:7px}.rr-present-rank-v262>span:first-child{font-size:25px}.rr-present-rank-v262>b{font-size:19px;color:#f5d8df}.rr-present-move-v262{border-radius:999px;padding:3px 6px;font-size:9px;font-weight:1000}.rr-present-move-v262.up{background:#1b7f49;color:#dff8e8}.rr-present-move-v262.down{background:#875a0c;color:#fff0c8}
.rr-present-person-v262{min-width:0}.rr-present-person-v262 b{display:block;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rr-present-person-v262 small{display:block;margin-top:2px;color:#c8aeb5;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rr-present-progress-v262{display:grid;grid-template-columns:minmax(0,1fr) 48px;align-items:center;gap:9px}.rr-present-progress-v262>div{height:8px;background:rgba(255,255,255,.11);border-radius:99px;overflow:hidden}.rr-present-progress-v262 i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#e12a4d,#ff8aa0);box-shadow:0 0 12px rgba(255,62,99,.45);transition:width .45s ease}.rr-present-progress-v262 span{text-align:right;font-size:11px;color:#f1dce1;font-weight:850;font-variant-numeric:tabular-nums}
.rr-present-score-v262{text-align:right}.rr-present-score-v262 b{font-size:22px;color:#fff;font-variant-numeric:tabular-nums}.rr-present-score-v262 small{display:block;color:#cbaeb6;font-size:8px}
.rr-present-status-v262{justify-self:end;display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:7px 9px;font-size:9px;font-weight:900;white-space:nowrap}.rr-present-status-v262.live{background:rgba(29,139,80,.16);color:#9ef0be;border:1px solid rgba(73,190,126,.26)}.rr-present-status-v262.live>span{width:7px;height:7px;border-radius:50%;background:#4bdb89;box-shadow:0 0 0 0 rgba(75,219,137,.55);animation:rrLivePulse 1.6s infinite}.rr-present-status-v262.done{background:rgba(255,255,255,.09);color:#f2dce2;border:1px solid rgba(255,255,255,.12)}.rr-present-status-v262 .ico{width:12px;height:12px}
.rr-present-foot-v262{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:10px 28px 14px;border-top:1px solid rgba(255,255,255,.08);color:#c8abb3;font-size:9px}.rr-present-foot-v262>span{display:flex;align-items:center;gap:7px}.rr-present-foot-v262>span i{width:8px;height:8px;border-radius:50%;background:#48db86;box-shadow:0 0 0 4px rgba(72,219,134,.11)}.rr-present-foot-v262>b{font-size:10px;color:#f2dce2}.rr-present-foot-v262>em{text-align:right;font-style:normal}
.rr-present-empty-v262{margin:auto;text-align:center;padding:42px;font-size:18px;color:#d7bcc3;border:1px dashed rgba(255,255,255,.16);border-radius:18px;width:min(620px,90%)}
.rr-present-enter-v262{animation:rrPresentEnter .55s ease both}.rr-present-update-v262{animation:rrPresentUpdate .8s ease}
@keyframes rrPresentEnter{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}
@keyframes rrPresentUpdate{0%{box-shadow:0 5px 18px rgba(0,0,0,.14)}35%{box-shadow:0 0 0 2px rgba(255,208,83,.48),0 0 34px rgba(255,65,103,.24)}100%{box-shadow:0 5px 18px rgba(0,0,0,.14)}}
@keyframes rrLivePulse{70%{box-shadow:0 0 0 7px rgba(75,219,137,0)}100%{box-shadow:0 0 0 0 rgba(75,219,137,0)}}
@media(max-width:1100px){.rr-present-head-v262{grid-template-columns:minmax(260px,1fr) 48px}.rr-present-head-stats-v262{grid-column:1/-1;grid-row:2;grid-template-columns:repeat(4,1fr)}.rr-present-close-v262{grid-column:2;grid-row:1}.rr-present-columns-v262,.rr-present-row-v262{grid-template-columns:65px minmax(180px,1.3fr) minmax(150px,.8fr) 80px 105px}.rr-present-person-v262 b{font-size:15px}.rr-present-row-v262{min-height:52px}}
@media(max-width:760px){.rr-present-head-v262{padding:12px 14px;gap:10px}.rr-present-brand-v262 img{width:48px;height:48px}.rr-present-brand-v262 h1{font-size:21px}.rr-present-board-v262{padding:10px}.rr-present-columns-v262{display:none}.rr-present-row-v262{grid-template-columns:52px minmax(0,1fr) 72px;gap:8px;padding:8px 10px}.rr-present-progress-v262{grid-column:2/-1}.rr-present-status-v262{display:none}.rr-present-score-v262{grid-column:3;grid-row:1}.rr-present-foot-v262{padding:8px 12px;grid-template-columns:1fr auto}.rr-present-foot-v262 em{display:none}}
@media(prefers-reduced-motion:reduce){.rr-present-row-v262,.rr-present-enter-v262,.rr-present-update-v262,.rr-present-status-v262.live>span{animation:none!important;transition:none!important}}

/* ===== V0.263 · Tài liệu tương tác: mở PDF/ảnh và viết-vẽ realtime ===== */
.live-document-stage-v263{position:absolute;z-index:18;inset:6px 6px 74px;display:flex;flex-direction:column;min-height:0;border-radius:12px;overflow:hidden;background:#eceff3;box-shadow:0 10px 38px rgba(0,0,0,.32);border:1px solid rgba(255,255,255,.12)}
.live-document-stage-v263.hidden{display:none!important}
.live-document-head-v263{flex:0 0 auto;min-height:54px;display:flex;align-items:center;gap:10px;padding:7px 10px;background:rgba(22,25,30,.98);color:#fff;border-bottom:1px solid #3a3f48;min-width:0}
.live-document-title-v263{display:flex;align-items:center;gap:9px;min-width:150px;max-width:34%;margin-right:auto}.live-document-title-v263>.ico{width:20px;height:20px;color:#f0a5b3;flex:none}.live-document-title-v263>span{min-width:0}.live-document-title-v263 b,.live-document-title-v263 small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-document-title-v263 b{font-size:11px}.live-document-title-v263 small{font-size:7.5px;color:#aeb4bd;margin-top:2px}
.live-document-page-v263{display:flex;align-items:center;gap:5px;flex:none}.live-document-page-v263 button,.live-document-tools-v263 button{height:34px;min-width:34px;border:1px solid #464c56;border-radius:8px;background:#2b3038;color:#edf0f4;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font:inherit;font-weight:900}.live-document-page-v263 button:hover,.live-document-tools-v263 button:hover{background:#3b414b}.live-document-page-v263 button:disabled{opacity:.35;cursor:not-allowed}.live-document-page-v263 b{min-width:88px;text-align:center;font-size:9px;color:#dce0e5}
.live-document-tools-v263{display:flex;align-items:center;gap:4px;min-width:0}.live-document-tools-v263 button.active{background:#a2122e;border-color:#c62848;color:#fff}.live-document-tools-v263 button.danger{color:#ffb7c2}.live-document-tools-v263 button.danger:hover{background:#8b1429;color:#fff}.live-document-tools-v263 button .ico{width:15px;height:15px}.live-document-tools-v263 label{height:34px;display:flex;align-items:center;justify-content:center}.live-document-tools-v263 input[type=color]{width:34px;height:34px;padding:3px;border:1px solid #464c56;border-radius:8px;background:#2b3038;cursor:pointer}.live-doc-width-v263{width:72px;padding:0 6px;border:1px solid #464c56;border-radius:8px;background:#2b3038}.live-doc-width-v263 input{width:100%;accent-color:#ba1737}.live-document-follow-v263{margin-left:auto;border-radius:999px;padding:6px 10px;background:#6d1326;color:#ffdce3;font-size:8px;font-weight:950;letter-spacing:.06em}
.live-document-canvas-wrap-v263{position:relative;flex:1 1 auto;min-height:0;background:#bfc5cc;overflow:hidden;display:grid;place-items:stretch}.live-document-viewer-v263{position:absolute;inset:0;display:grid;place-items:center;background:#c8cdd3}.live-document-viewer-v263 iframe{width:100%;height:100%;border:0;background:#fff}.live-document-viewer-v263 img{width:100%;height:100%;object-fit:contain;background:#fff;user-select:none;-webkit-user-drag:none}.live-document-canvas-v263{position:absolute;z-index:4;inset:0;width:100%;height:100%;pointer-events:none}.live-document-canvas-v263.interactive{pointer-events:auto;cursor:crosshair}
#liveDocBtn.active{background:#7c1830!important;color:#fff!important}
@media(max-width:1050px){.live-document-title-v263{max-width:25%}.live-document-title-v263 small{display:none}.live-document-tools-v263{overflow-x:auto;scrollbar-width:none}.live-document-tools-v263::-webkit-scrollbar{display:none}.live-doc-width-v263{display:none!important}}
@media(max-width:760px){.live-document-stage-v263{inset:3px 3px 64px;border-radius:8px}.live-document-head-v263{min-height:48px;padding:5px 6px;gap:5px;overflow-x:auto;scrollbar-width:none}.live-document-head-v263::-webkit-scrollbar{display:none}.live-document-title-v263{min-width:120px;max-width:180px}.live-document-title-v263 b{font-size:9px}.live-document-page-v263 b{min-width:70px;font-size:8px}.live-document-page-v263 button,.live-document-tools-v263 button{height:32px;min-width:32px;border-radius:7px}.live-document-tools-v263 input[type=color]{width:32px;height:32px}.live-document-follow-v263{font-size:7px}.live-document-canvas-wrap-v263{touch-action:auto}}

/* ===== V0.264 · Tài liệu đồng bộ: người trình bày điều khiển, người xem chỉ theo dõi ===== */
.live-document-canvas-wrap-v264{background:#9ea5ad;overflow:hidden;overscroll-behavior:contain}
.live-document-viewer-v264{position:absolute;inset:0;overflow:hidden!important;pointer-events:none!important;user-select:none;-webkit-user-select:none;touch-action:none;background:#aeb4bb}
.live-document-viewer-v264>*{pointer-events:none!important}
.live-document-page-image-v264{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:transparent;display:block;pointer-events:none!important;user-select:none;-webkit-user-drag:none}
.live-document-browser-fallback-v264{position:absolute;inset:0;overflow:hidden;background:#fff;pointer-events:none!important}
.live-document-browser-fallback-v264 iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:#fff;pointer-events:none!important;overflow:hidden!important}
.live-document-fallback-note-v264{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);max-width:min(680px,90%);padding:7px 11px;border-radius:999px;background:rgba(24,28,34,.90);color:#f3f5f7;font-size:8px;font-weight:800;text-align:center;box-shadow:0 5px 18px #0004;pointer-events:none}
.live-document-loading-v264,.live-document-error-v264{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:9px;flex-direction:column;color:#4d5560;background:#f4f5f7;font-size:10px;font-weight:850;pointer-events:none}
.live-document-loading-v264>span{width:30px;height:30px;border-radius:50%;border:3px solid #d8dce1;border-top-color:#9b1029;animation:liveDocSpinV264 .85s linear infinite}
@keyframes liveDocSpinV264{to{transform:rotate(360deg)}}
.live-document-page-locked-v264{gap:8px;background:#2b3038;border:1px solid #464c56;border-radius:9px;padding:4px 8px;white-space:nowrap}
.live-document-page-locked-v264 b{min-width:0!important;color:#fff}
.live-document-page-locked-v264 span{font-size:7px;color:#aeb5bf;font-weight:800}
.live-document-passive-v264 .live-document-canvas-wrap-v264{touch-action:none;overscroll-behavior:contain}
.live-document-passive-v264 .live-document-canvas-v263{pointer-events:none!important}
.live-document-stage-v263 .live-document-canvas-v263{background:transparent!important}
@media(max-width:760px){
  .live-document-page-locked-v264{padding:3px 6px}
  .live-document-page-locked-v264 span{display:none}
  .live-document-fallback-note-v264{font-size:7px;border-radius:8px}
}

/* ===== V0.265 · Trình chiếu tài liệu: zoom, kéo trang và đồng bộ viewport ===== */
.live-document-surface-v265{position:absolute;inset:0;transform-origin:50% 50%;will-change:transform;transition:transform .10s ease-out}
.live-document-canvas-wrap-v264.pan-enabled{cursor:grab}
.live-document-canvas-wrap-v264.pan-enabled:active{cursor:grabbing}
.live-document-zoom-v265{display:flex;align-items:center;gap:4px;flex:none;padding:3px;border:1px solid #464c56;border-radius:9px;background:#262b32}
.live-document-zoom-v265 button{height:30px;min-width:31px;border:0;border-radius:7px;background:#343a43;color:#eef1f4;display:inline-flex;align-items:center;justify-content:center;font:inherit;font-size:10px;font-weight:900;cursor:pointer;padding:0 9px;white-space:nowrap}
.live-document-zoom-v265 button:hover,.live-document-zoom-v265 button.active{background:#a2122e;color:#fff}
.live-document-zoom-v265 #liveDocZoomLabel{min-width:52px;background:#20252b;color:#fff;font-variant-numeric:tabular-nums}
.live-document-zoom-v265 #liveDocFitWidth,.live-document-zoom-v265 #liveDocFitPage{min-width:65px}
.live-document-zoom-view-v265{display:flex;align-items:center;gap:6px;flex:none;border:1px solid #464c56;border-radius:9px;padding:5px 9px;background:#2b3038;white-space:nowrap}
.live-document-zoom-view-v265 b{font-size:9px;color:#fff;font-variant-numeric:tabular-nums}
.live-document-zoom-view-v265 span{font-size:7px;color:#aeb5bf;font-weight:850;text-transform:uppercase}
.live-document-canvas-wrap-v264{touch-action:none}
.live-document-passive-v264 .live-document-canvas-wrap-v264{cursor:default}
@media(max-width:1050px){
  .live-document-zoom-v265 #liveDocFitPage{display:none}
  .live-document-zoom-v265 #liveDocFitWidth{min-width:56px;padding:0 7px}
}
@media(max-width:760px){
  .live-document-zoom-v265{order:3}
  .live-document-zoom-v265 button{height:30px;min-width:30px;padding:0 7px;font-size:9px}
  .live-document-zoom-v265 #liveDocZoomLabel{min-width:46px}
  .live-document-zoom-v265 #liveDocFitWidth{min-width:0}
  .live-document-zoom-view-v265{padding:4px 7px}
  .live-document-title-v263{max-width:135px}
}

/* ===== V0.266 · Tài liệu cuộn liên tục để chữa bài ===== */
.live-document-scroll-v266{position:absolute;left:0;right:0;top:46px;bottom:0;overflow:auto;overscroll-behavior:contain;background:#8e959d;scrollbar-gutter:stable both-edges;scroll-behavior:auto}
.live-document-scroll-v266.viewer{overflow:hidden!important;pointer-events:none!important;touch-action:none!important;user-select:none;-webkit-user-select:none}
.live-document-pages-v266{width:max-content;min-width:100%;min-height:100%;box-sizing:border-box;padding:18px 16px 48px;display:flex;flex-direction:column;align-items:center;gap:18px}
.live-document-page-sheet-v266{position:relative;flex:0 0 auto;width:min(1000px,calc(100vw - 70px));aspect-ratio:210/297;background:#fff;box-shadow:0 8px 28px rgba(0,0,0,.28);border-radius:3px;overflow:hidden;transition:width .12s ease}
.live-document-page-sheet-v266.load-error:after{content:'Không thể hiển thị trang này';position:absolute;inset:0;display:grid;place-items:center;color:#616975;background:#f4f5f6;font-size:11px;font-weight:850}
.live-document-page-image-v266{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:fill;background:#fff;user-select:none;-webkit-user-drag:none;pointer-events:none}
.live-document-page-canvas-v266{position:absolute;inset:0;width:100%;height:100%;z-index:2;background:transparent;pointer-events:none;touch-action:none}
.live-document-page-canvas-v266.interactive{pointer-events:auto;cursor:crosshair}
.live-document-page-index-v266{position:absolute;right:7px;bottom:7px;z-index:3;min-width:25px;height:21px;padding:0 6px;border-radius:999px;background:rgba(26,29,34,.68);color:#fff;display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:900;pointer-events:none}
.live-document-scroll-v266.pan-enabled{cursor:grab}
.live-document-scroll-v266.pan-enabled:active{cursor:grabbing}
.live-document-page-locked-v264 span{display:inline!important}
@media(max-width:900px){
  .live-document-scroll-v266{top:44px}
  .live-document-pages-v266{padding:10px 7px 38px;gap:10px}
  .live-document-page-sheet-v266{width:calc(100vw - 28px);box-shadow:0 5px 16px rgba(0,0,0,.25)}
}
@media(max-width:620px){
  .live-document-scroll-v266{top:42px}
  .live-document-pages-v266{padding:7px 4px 30px;gap:8px}
  .live-document-page-index-v266{right:4px;bottom:4px}
}
/* V0.266 fix: vùng cuộn chiếm phần còn lại dưới thanh công cụ, không đè header */
.live-document-scroll-v266{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;flex:1 1 auto;min-height:0;width:100%}
@media(max-width:900px){.live-document-scroll-v266{top:auto!important}}
@media(max-width:620px){.live-document-scroll-v266{top:auto!important}}


/* ===== V0.270 · Phòng xếp hạng chọn nhiều chủ đề ===== */
.rr-topic-field-v270{min-width:0}
.rr-topic-label-v270{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}
.rr-topic-label-v270>label{margin:0!important}
.rr-topic-label-v270>span{font-size:10px;font-weight:900;color:#86132a;background:#f8e8ec;border:1px solid #efd3da;border-radius:999px;padding:5px 9px;white-space:nowrap}
.rr-topic-toolbar-v270{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px;align-items:center}
.rr-topic-search-v270{height:36px;display:flex;align-items:center;gap:7px;border:1px solid #dde2e7;border-radius:10px;padding:0 9px;background:#fff}
.rr-topic-search-v270 .ico{width:14px;height:14px;color:#7d858f}
.rr-topic-search-v270 input{min-width:0;width:100%;border:0;outline:0;background:transparent;font:inherit;font-size:11px}
.rr-topic-help-v270{font-size:9.5px;color:#858d97;margin:6px 1px 7px;line-height:1.4}
.rr-topic-list-v270{max-height:205px;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:2px;scrollbar-width:thin}
.rr-topic-choice-v270{display:grid;grid-template-columns:16px minmax(0,1fr);gap:8px;align-items:center;border:1px solid #e5e8ec;border-radius:10px;background:#fff;padding:7px 8px;cursor:pointer;min-width:0}
.rr-topic-choice-v270:hover{border-color:#d7b7bf;background:#fffafb}
.rr-topic-choice-v270:has(input:checked){border-color:#c66a7c;background:#fff6f8;box-shadow:0 0 0 1px rgba(145,16,42,.04)}
.rr-topic-choice-v270 input{position:absolute;opacity:0;pointer-events:none}
.rr-topic-check-v270{width:15px;height:15px;border-radius:4px;border:1.5px solid #c8cdd4;background:#fff;position:relative}
.rr-topic-choice-v270:has(input:checked) .rr-topic-check-v270{background:#98142d;border-color:#98142d}
.rr-topic-choice-v270:has(input:checked) .rr-topic-check-v270:after{content:'✓';position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:10px;font-weight:1000}
.rr-topic-copy-v270{display:flex;flex-direction:column;min-width:0}
.rr-topic-copy-v270 b{font-size:10.5px;color:#303741;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rr-topic-copy-v270 small{font-size:8.5px;color:#8c939d;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:700px){.rr-topic-toolbar-v270{grid-template-columns:1fr 1fr}.rr-topic-search-v270{grid-column:1/-1}.rr-topic-list-v270{grid-template-columns:1fr;max-height:230px}.rr-topic-label-v270{align-items:flex-start;flex-direction:column;gap:5px}}


/* ===== V0.271 · Phòng chờ xếp hạng học sinh tối giản ===== */
.rrl271-shell{width:min(1040px,calc(100% - 28px));margin:18px auto 34px;border:1px solid #e8dde0;border-radius:22px;background:#fff;box-shadow:0 20px 54px rgba(62,16,26,.09);overflow:hidden}
.rrl271-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 22px;border-bottom:1px solid #eee5e7;background:linear-gradient(180deg,#fffafb,#fff)}
.rrl271-title{display:flex;align-items:center;gap:14px;min-width:0}.rrl271-mark{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(145deg,#97142e,#6e091b);color:#fff;box-shadow:0 10px 22px rgba(126,11,33,.18);flex:0 0 auto}.rrl271-mark .ico{width:26px;height:26px}.rrl271-title>div{min-width:0}.rrl271-title .eyebrow{font-size:9px;font-weight:950;letter-spacing:.14em;color:#a01733}.rrl271-title h1{margin:3px 0 3px;font-size:25px;line-height:1.15;color:#27222a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rrl271-title p{margin:0;color:#7a818b;font-size:11px}.rrl271-room-state{display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border-radius:999px;background:#fff6df;border:1px solid #efdba9;color:#8b6311;font-size:10px;font-weight:900;white-space:nowrap}.rrl271-room-state.ready{background:#eaf8ef;border-color:#c4e7cf;color:#247c49}.rrl271-room-state .ico{width:14px;height:14px}
.rrl271-main{display:grid;grid-template-columns:minmax(300px,.82fr) minmax(430px,1.18fr);gap:16px;padding:18px}.rrl271-me,.rrl271-room{border:1px solid #e7eaee;border-radius:18px;background:#fff;padding:18px}.rrl271-me{display:flex;flex-direction:column;min-height:340px;background:linear-gradient(180deg,#fff 0%,#fffbfc 100%)}.rrl271-me-top{display:flex;align-items:center;gap:13px}.rrl271-me-avatar{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(145deg,#9a1430,#741023);color:#fff;font-size:17px;font-weight:1000;overflow:hidden;flex:0 0 auto}.rrl271-me-top>div{min-width:0}.rrl271-me-top .eyebrow,.rrl271-room-head .eyebrow{font-size:8.5px;font-weight:950;letter-spacing:.12em;color:#9b1730}.rrl271-me-top h2{margin:3px 0 2px;font-size:18px;color:#252b34;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rrl271-me-top p{margin:0;color:#858c96;font-size:10px}.rrl271-ready-state{display:flex;align-items:center;gap:10px;margin:22px 0 14px;padding:13px;border-radius:14px;border:1px solid #eddcae;background:#fff8e7}.rrl271-ready-state.yes{border-color:#cbe8d4;background:#edf9f1}.rrl271-ready-state>span{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#fff;color:#9a6c0e}.rrl271-ready-state.yes>span{color:#237c49}.rrl271-ready-state .ico{width:17px;height:17px}.rrl271-ready-state div{min-width:0}.rrl271-ready-state b{display:block;font-size:12px;color:#323943}.rrl271-ready-state small{display:block;margin-top:2px;color:#7d858f;font-size:9.5px;line-height:1.35}.rrl271-ready-btn{width:100%;min-width:0!important;justify-content:center;margin-top:auto;height:44px;font-size:11px}.rrl271-start-note{display:flex;align-items:flex-start;gap:6px;margin:10px 2px 0;color:#858b94;font-size:9.5px;line-height:1.4}.rrl271-start-note .ico{width:13px;height:13px;flex:0 0 auto;margin-top:1px}
.rrl271-room{min-width:0}.rrl271-room-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.rrl271-room-head h2{margin:3px 0 0;font-size:21px;color:#2a3039}.rrl271-room-head strong{font-size:24px;color:#8c132a}.rrl271-progress{height:9px;margin:12px 0 8px;border-radius:999px;background:#f0f1f3;overflow:hidden}.rrl271-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#a01531,#d21d42);transition:width .35s ease}.rrl271-room-message{margin:0 0 13px;color:#777f89;font-size:10px}.rrl271-people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:244px;overflow:auto;padding-right:2px}.rrl271-person{display:grid;grid-template-columns:auto minmax(0,1fr) 28px;align-items:center;gap:8px;min-width:0;border:1px solid #e9ebee;border-radius:12px;padding:8px 9px;background:#fbfbfc}.rrl271-person.ready{border-color:#d2e9da;background:#f8fffa}.rrl271-avatar{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#f2e1e5;color:#8f142c;font-size:9px;font-weight:950;overflow:hidden}.rrl271-person>span{min-width:0}.rrl271-person b,.rrl271-person small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rrl271-person b{font-size:10px;color:#303640}.rrl271-person small{margin-top:2px;color:#9097a0;font-size:8px}.rrl271-person em{width:27px;height:27px;border-radius:9px;display:grid;place-items:center;background:#fff5de;color:#96680d;font-style:normal}.rrl271-person.ready em{background:#e8f7ed;color:#247b48}.rrl271-person em .ico{width:13px;height:13px}.rrl271-more,.rrl271-empty{grid-column:1/-1;border:1px dashed #e2e4e8;border-radius:11px;padding:10px;text-align:center;color:#8b929b;font-size:9.5px;background:#fafbfc}.rrl271-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-top:1px solid #eee7e9;background:#fbfafb}.rrl271-back{height:34px;padding:0 12px!important}.rrl271-foot>span{font-size:9.5px;color:#8a9098}
@media(max-width:840px){.rrl271-main{grid-template-columns:1fr}.rrl271-me{min-height:0}.rrl271-people{max-height:220px}}
@media(max-width:620px){.rrl271-shell{width:calc(100% - 12px);margin:8px auto 18px;border-radius:15px}.rrl271-head{padding:13px 12px;align-items:flex-start}.rrl271-mark{width:42px;height:42px;border-radius:13px}.rrl271-title h1{font-size:18px}.rrl271-title p{font-size:9px}.rrl271-room-state{padding:7px 9px;font-size:8px}.rrl271-main{padding:9px;gap:9px}.rrl271-me,.rrl271-room{padding:12px;border-radius:14px}.rrl271-me-avatar{width:46px;height:46px;border-radius:14px}.rrl271-me-top h2{font-size:15px}.rrl271-ready-state{margin:14px 0 10px;padding:10px}.rrl271-ready-btn{height:42px}.rrl271-room-head h2{font-size:17px}.rrl271-room-head strong{font-size:20px}.rrl271-people{grid-template-columns:1fr;max-height:205px}.rrl271-foot{padding:9px 10px;flex-direction:column-reverse;align-items:stretch}.rrl271-foot>span{text-align:center}.rrl271-back{width:100%;justify-content:center}}


/* ===== V0.272 · Countdown phòng xếp hạng tối giản ===== */
.ranking-countdown-shell{
  min-height:calc(100vh - 118px);
  padding:20px;
  background:radial-gradient(circle at 50% 35%,rgba(137,10,33,.07),transparent 34%),#f5f6f8;
}
.ranking-countdown-stage{
  width:min(660px,94vw);
  min-height:390px;
  margin:auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:34px 34px 30px;
  background:rgba(255,255,255,.96);
  border:1px solid #eadfe2;
  border-radius:28px;
  box-shadow:0 20px 58px rgba(64,17,27,.10);
  position:relative;
  overflow:hidden;
}
.ranking-countdown-stage:before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:4px;
  background:linear-gradient(90deg,transparent,#8f0b25 22%,#b21635 50%,#8f0b25 78%,transparent);
}
.ranking-countdown-type{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:0 13px;
  border-radius:999px;
  background:#f9ecef;
  color:#8d1028;
  font-size:10px;
  font-weight:950;
  letter-spacing:.13em;
}
.ranking-countdown-stage h2{
  margin:16px 0 3px;
  max-width:90%;
  color:#232936;
  font-size:30px;
  line-height:1.15;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.ranking-countdown-state{
  margin:0;
  color:#7a828d;
  font-size:13px;
  font-weight:750;
}
.ranking-countdown-orbit{
  width:180px;
  height:180px;
  display:grid;
  place-items:center;
  margin:23px auto 13px;
  position:relative;
}
.ranking-countdown-orbit:before,
.ranking-countdown-orbit:after{
  content:"";
  position:absolute;
  border-radius:50%;
  border:1px solid rgba(145,15,39,.16);
  inset:16px;
  animation:rankingCountdownRipple 1.55s ease-out infinite;
}
.ranking-countdown-orbit:after{
  inset:3px;
  opacity:.45;
  animation-delay:.42s;
}
.ranking-countdown-number{
  width:126px;
  height:126px;
  margin:0;
  border-radius:50%;
  background:linear-gradient(145deg,#a20e2c,#770719);
  box-shadow:0 13px 32px rgba(113,7,26,.20),0 0 0 9px rgba(152,13,40,.07);
  color:#fff;
  font-size:60px;
  letter-spacing:0;
  position:relative;
  z-index:2;
  animation:none!important;
}
.ranking-countdown-number.tick{animation:rankingCountdownTick .48s cubic-bezier(.2,.86,.35,1.2)!important}
.ranking-countdown-number.go{
  width:158px;
  border-radius:26px;
  font-size:19px;
  letter-spacing:.05em;
  animation:rankingCountdownGo .45s ease-out!important;
}
.ranking-countdown-hint{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:32px;
  padding:0 13px;
  border-radius:999px;
  background:#f7f8fa;
  color:#69717d;
  font-size:11px;
  font-weight:750;
}
.ranking-countdown-hint i{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#2aa264;
  box-shadow:0 0 0 0 rgba(42,162,100,.32);
  animation:rankingCountdownDot 1.25s ease-out infinite;
}
@keyframes rankingCountdownTick{
  0%{transform:scale(.78);opacity:.45}
  60%{transform:scale(1.08);opacity:1}
  100%{transform:scale(1);opacity:1}
}
@keyframes rankingCountdownRipple{
  0%{transform:scale(.78);opacity:.55}
  100%{transform:scale(1.25);opacity:0}
}
@keyframes rankingCountdownDot{
  0%{box-shadow:0 0 0 0 rgba(42,162,100,.34)}
  70%{box-shadow:0 0 0 7px rgba(42,162,100,0)}
  100%{box-shadow:0 0 0 0 rgba(42,162,100,0)}
}
@keyframes rankingCountdownGo{
  0%{transform:scale(.9);opacity:.55}
  100%{transform:scale(1);opacity:1}
}
@media(max-width:700px){
  .ranking-countdown-shell{padding:10px;min-height:calc(100vh - 90px)}
  .ranking-countdown-stage{min-height:330px;padding:25px 16px 22px;border-radius:20px}
  .ranking-countdown-stage h2{font-size:24px}
  .ranking-countdown-orbit{width:150px;height:150px;margin-top:18px}
  .ranking-countdown-number{width:104px;height:104px;font-size:50px}
  .ranking-countdown-number.go{width:140px;height:104px;font-size:17px}
}
@media(prefers-reduced-motion:reduce){
  .ranking-countdown-orbit:before,.ranking-countdown-orbit:after,.ranking-countdown-number.tick,.ranking-countdown-number.go,.ranking-countdown-hint i{animation:none!important}
}


/* ===== V0.273 · Phân biệt điểm nội bộ và điểm đã công bố ===== */
.oe-internal-score-banner{display:flex;align-items:flex-start;gap:10px;margin:0 0 12px;padding:11px 13px;border:1px solid #efdba9;border-radius:12px;background:#fff8e7;color:#76540a}
.oe-internal-score-banner>.ico{width:18px;height:18px;flex:0 0 auto;margin-top:1px}
.oe-internal-score-banner div{display:flex;flex-direction:column;gap:2px}
.oe-internal-score-banner b{font-size:12px;color:#76540a}
.oe-internal-score-banner span{font-size:10px;color:#8e7336;line-height:1.45}
.oe-internal-score-banner.compact{margin:10px 14px 0;padding:9px 11px}
.oe-internal-score-note{color:#a06c0b!important;font-weight:800}
.oe-monitor-score-hidden{display:inline-flex;margin-top:7px;padding:5px 8px;border-radius:999px;background:#f3f4f6;color:#7a828d;font-size:9px;font-weight:850}


/* V0.274 - Sửa avatar giải đấu đồng đội: luôn nhỏ, tròn, không tràn bố cục */
.waiting-team-members .wait-avatar,.team-live-avatar,.team-chip-avatar,.team-victory-member-avatar{border-radius:50%;overflow:hidden;display:grid;place-items:center;flex:0 0 auto}
.waiting-team-members .wait-avatar img,.team-live-avatar img,.team-chip-avatar img,.team-victory-member-avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
.waiting-team-members .wait-avatar{width:34px;height:34px;flex-basis:34px}
.team-live-avatar{width:40px;height:40px;flex-basis:40px}
.team-chip-avatar{width:25px;height:25px;flex-basis:25px}
.team-victory-member-avatar{width:30px;height:30px;flex-basis:30px}


/* V0.277 - Đấu đội gọn, cân đối và dễ theo dõi */
.team277-card{padding:0;overflow:hidden;border-radius:16px;box-shadow:0 7px 22px rgba(50,20,28,.055)}
.team277-head{padding:15px 18px 12px;border-bottom:1px solid #eee9eb;background:#fff}
.team277-head h3{margin:0 0 3px;font-size:19px}.team277-head p{font-size:11px}
.team277-match{display:grid;grid-template-columns:minmax(0,1fr) 116px minmax(0,1fr);align-items:stretch;gap:12px;padding:14px 16px;background:#fafafa}
.team277-team{min-width:0;background:#fff;border:1px solid #e6e8eb;border-radius:14px;padding:12px;box-shadow:0 3px 10px rgba(30,35,42,.025)}
.team277-team.my-team{border-color:#d7adb7;box-shadow:inset 0 0 0 1px #eed2d8}
.team277-team.winner{border-color:#d8b869;background:linear-gradient(180deg,#fffdf7,#fff)}
.team277-team-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 2px 9px;border-bottom:1px solid #eef0f2;margin-bottom:9px}
.team277-team-head small{display:block;font-size:8px;font-weight:900;letter-spacing:.09em;color:#9299a3}.team277-team-head h4{margin:3px 0 0;font-size:17px;color:#861027}
.team277-total{text-align:right;flex:0 0 auto}.team277-total span{display:block;font-size:8px;color:#939aa3}.team277-total b{display:block;margin-top:1px;font-size:21px;color:#861027;font-variant-numeric:tabular-nums}
.team277-members{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.team277-member{min-width:0;display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 8px;border:1px solid #eaedf0;border-radius:10px;background:#fff}
.team277-avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;overflow:hidden;flex:0 0 32px;background:#f6e1e6;color:#8c1027;font-size:9px;font-weight:950}
.team277-avatar.alt{background:#e9eef6;color:#34567f}.team277-avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
.team277-member>span{min-width:0}.team277-member b{display:block;font-size:11px;color:#252c35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team277-member small{display:block;margin-top:2px;font-size:8px;color:#949ba4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.team277-member strong{font-size:12px;color:#16814a;font-variant-numeric:tabular-nums;white-space:nowrap}
.team277-center{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:8px 4px}
.team277-center strong{font-size:28px;line-height:1;color:#98122b;white-space:nowrap;font-variant-numeric:tabular-nums}.team277-center strong i{font-style:normal;color:#b7bcc3;margin:0 5px}
.team277-center span{margin-top:7px;max-width:110px;font-size:9px;line-height:1.35;color:#7f8791;font-weight:800}
.team277-foot{padding:10px 16px 12px;border-top:1px solid #eee9eb;background:#fff}.team277-foot>span{font-size:10px;color:#7a828c}.team277-foot .actions{gap:7px}.team277-foot .btn{min-height:34px}
@media(max-width:1050px){.team277-match{grid-template-columns:1fr;gap:8px}.team277-center{order:2;min-height:54px}.team277-team:last-child{order:3}.team277-members{grid-template-columns:repeat(2,minmax(0,1fr))}.team277-center strong{font-size:23px}.team277-center span{max-width:none}}
@media(max-width:650px){.team277-head,.team277-foot{align-items:flex-start;flex-direction:column}.team277-match{padding:10px}.team277-team{padding:10px}.team277-members{grid-template-columns:1fr}.team277-foot .actions{width:100%}.team277-foot .actions .btn{flex:1}.team277-center{min-height:45px}}

/* V0.278 - Chế độ chơi phòng xếp hạng */
.rr-game-mode-field-v278 small{display:block;margin-top:5px;color:#7f8791;font-size:9px;line-height:1.45}.rr-conquest-options-v278{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px;border:1px solid #eadde1;border-radius:12px;background:#fff8fa;margin-top:-2px}.rr-conquest-options-v278.hidden{display:none}.rr-conquest-options-v278 .field{margin:0}.rr-conquest-options-v278 label{font-size:9px}.rr-conquest-options-v278 select{height:36px;font-size:9.5px}
.ranking-conquest-shell-v278{height:100%;min-height:0;background:#f3f5f7}.ranking-conquest-head-v278{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 17px;background:#fff;border-bottom:1px solid #e2e6ea}.ranking-conquest-head-v278 h2{margin:2px 0 3px;color:#7c1025;font-size:19px}.ranking-conquest-head-v278 p{margin:0;color:#7c8590;font-size:9.5px}.ranking-conquest-head-stats-v278{display:flex;align-items:center;gap:8px}.ranking-conquest-head-stats-v278>div{min-width:82px;padding:7px 10px;border:1px solid #e1e5e9;border-radius:10px;background:#f8fafb;text-align:center}.ranking-conquest-head-stats-v278 span{display:block;font-size:7.5px;color:#8a929c}.ranking-conquest-head-stats-v278 b{display:block;margin-top:2px;color:#801127;font-size:14px}.ranking-conquest-progress-v278{height:5px;background:#e9edf1;overflow:hidden}.ranking-conquest-progress-v278 i{display:block;height:100%;background:linear-gradient(90deg,#8f0d25,#c51d3c);border-radius:0 999px 999px 0;transition:width .3s ease}.ranking-conquest-layout-v278{height:calc(100% - 74px);min-height:0;display:grid;grid-template-columns:220px minmax(0,1fr) 300px;gap:12px;padding:12px}.ranking-conquest-summary-v278{padding:14px;display:flex;flex-direction:column;min-height:0}.ranking-conquest-kpi-v278{margin:10px 0 12px;padding:15px;border-radius:14px;background:linear-gradient(135deg,#8c0d25,#ae1733);color:#fff;text-align:center}.ranking-conquest-kpi-v278 b{display:block;font-size:32px;line-height:1}.ranking-conquest-kpi-v278 span{display:block;margin-top:5px;font-size:9px;opacity:.85}.ranking-conquest-mini-v278{display:grid;gap:7px}.ranking-conquest-mini-v278>div{display:flex;align-items:center;justify-content:space-between;padding:8px 9px;border-radius:9px;background:#f7f8fa}.ranking-conquest-mini-v278 span{font-size:8.5px;color:#747e89}.ranking-conquest-mini-v278 b{font-size:11px;color:#2f3741}.ranking-conquest-note-v278{margin:12px 0 auto;padding:10px;border:1px solid #eadfc5;border-radius:10px;background:#fff9e9;color:#80631c;font-size:9px;line-height:1.55}.ranking-conquest-note-v278 svg{width:13px;height:13px;vertical-align:-3px;margin-right:4px}.ranking-conquest-summary-v278>.btn{margin-top:12px}.ranking-conquest-question-v278{min-height:0;overflow:auto;padding:20px 22px}.ranking-conquest-confirm-wrap-v278{display:flex;flex-direction:column;align-items:center;gap:7px;margin-top:18px;padding-top:15px;border-top:1px solid #eceff2}.ranking-conquest-confirm-v278{min-width:260px;justify-content:center}.ranking-conquest-confirm-wrap-v278 small{font-size:8.5px;color:#7d8690;text-align:center}.ranking-conquest-complete-v278{height:100%;display:grid;place-content:center;justify-items:center;text-align:center;padding:30px;background:radial-gradient(circle at center,#fff 0,#f5f1f2 75%)}.ranking-conquest-complete-v278>span{width:68px;height:68px;border-radius:20px;background:#8d0d25;color:#fff;display:grid;place-items:center;box-shadow:0 12px 28px rgba(111,12,33,.18)}.ranking-conquest-complete-v278>span svg{width:30px;height:30px}.ranking-conquest-complete-v278 h1{margin:15px 0 6px;color:#771124}.ranking-conquest-complete-v278 p{margin:0;color:#747c86}.ranking-conquest-complete-stats-v278{display:grid;grid-template-columns:repeat(3,120px);gap:9px;margin:18px 0}.ranking-conquest-complete-stats-v278>div{padding:11px;border:1px solid #e1e5e9;border-radius:12px;background:#fff}.ranking-conquest-complete-stats-v278 span{display:block;font-size:8px;color:#828b95}.ranking-conquest-complete-stats-v278 b{display:block;margin-top:4px;font-size:18px;color:#811128}
@media(max-width:1050px){.ranking-conquest-layout-v278{grid-template-columns:190px minmax(0,1fr)}.ranking-conquest-layout-v278>.right-stack{display:none}.ranking-conquest-head-v278{align-items:flex-start}.ranking-conquest-head-stats-v278{flex-wrap:wrap;justify-content:flex-end}.rr-conquest-options-v278{grid-template-columns:1fr}}
@media(max-width:720px){.ranking-conquest-head-v278{flex-direction:column;padding:10px}.ranking-conquest-head-stats-v278{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.ranking-conquest-head-stats-v278 .exam-fullscreen-btn{grid-column:1/-1}.ranking-conquest-layout-v278{height:auto;grid-template-columns:1fr;padding:8px}.ranking-conquest-summary-v278{order:2}.ranking-conquest-question-v278{order:1;padding:15px}.ranking-conquest-kpi-v278{display:none}.ranking-conquest-mini-v278{grid-template-columns:repeat(3,1fr)}.ranking-conquest-mini-v278>div{flex-direction:column;gap:3px;text-align:center}.ranking-conquest-complete-stats-v278{grid-template-columns:1fr 1fr}.ranking-conquest-complete-stats-v278>div:last-child{grid-column:1/-1}}


/* V0.280 - Chinh phục ngẫu nhiên + kết quả phòng xếp hạng gọn */
.ranking-conquest-confirm-wrap-v278>small,.ranking-conquest-note-v278{display:none!important}
.ranking-conquest-confirm-wrap-v278{margin-top:16px}
.rr-result-page-v280{width:min(1080px,calc(100vw - 32px));margin:18px auto 28px;display:grid;gap:14px}
.rr-result-hero-v280{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px;background:#fff;border:1px solid #e4e7eb;border-radius:18px;box-shadow:0 10px 28px rgba(40,25,30,.055)}
.rr-result-hero-v280 h1{margin:4px 0 3px;font-size:27px;color:#7d1026}.rr-result-hero-v280 p{margin:0;color:#858d97;font-size:11px}
.rr-result-finished-v280{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:8px 12px;background:#e9f8ef;color:#1b7e48;font-size:10px;font-weight:900;white-space:nowrap}.rr-result-finished-v280 .ico{width:14px;height:14px}
.rr-result-summary-v280{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.rr-result-summary-v280>div{background:#fff;border:1px solid #e5e8ec;border-radius:15px;padding:13px 15px;min-height:72px;display:flex;flex-direction:column;justify-content:center}.rr-result-summary-v280>div.accent{background:linear-gradient(135deg,#8e1028,#b31534);border-color:#95102b}.rr-result-summary-v280 span{font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.05em;color:#8b939e}.rr-result-summary-v280 b{margin-top:5px;font-size:22px;color:#222b35}.rr-result-summary-v280 b small{font-size:10px;color:#8a929d;margin-left:3px}.rr-result-summary-v280 .accent span,.rr-result-summary-v280 .accent b{color:#fff}.rr-result-summary-v280 .accent b small{color:#fbdfe5}
.rr-result-board-v280{background:#fff;border:1px solid #e4e7eb;border-radius:18px;overflow:hidden;box-shadow:0 10px 28px rgba(40,25,30,.045)}
.rr-result-board-head-v280{padding:14px 18px;border-bottom:1px solid #eceff2}.rr-result-board-head-v280 h2{margin:3px 0 0;font-size:14px;color:#333b45}
.rr-result-list-v280{display:grid}.rr-result-row-v280{display:grid;grid-template-columns:54px minmax(0,1fr) 120px 90px;align-items:center;gap:10px;min-height:58px;padding:8px 16px;border-bottom:1px solid #eef0f3}.rr-result-row-v280:last-child{border-bottom:0}.rr-result-row-v280.mine{background:#fff7f9}.rr-result-row-v280.rank-1{border-left:4px solid #d6a21d}.rr-result-row-v280.rank-2{border-left:4px solid #9aa4b0}.rr-result-row-v280.rank-3{border-left:4px solid #b97842}
.rr-result-rank-v280{font-size:13px;font-weight:950;color:#801027}.rr-result-name-v280{min-width:0;display:flex;align-items:center;gap:7px}.rr-result-name-v280 b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rr-result-name-v280 small{border-radius:999px;padding:3px 6px;background:#f3e4e8;color:#851128;font-size:8px;font-weight:900}.rr-result-progress-v280{display:flex;flex-direction:column;align-items:flex-end;font-size:12px;font-weight:900;color:#3d4650}.rr-result-progress-v280 small{font-size:8px;color:#9299a2;font-weight:700;margin-top:2px}.rr-result-score-v280{text-align:right}.rr-result-score-v280 b{font-size:18px;color:#831128}.rr-result-score-v280 small{font-size:8px;color:#9198a2;margin-left:2px}.rr-result-actions-v280{margin:0;padding:0;background:transparent;justify-content:flex-end}
@media(max-width:760px){.rr-result-page-v280{width:calc(100vw - 14px);margin:8px auto 18px}.rr-result-hero-v280{padding:15px 14px;align-items:flex-start}.rr-result-hero-v280 h1{font-size:21px}.rr-result-summary-v280{grid-template-columns:repeat(2,minmax(0,1fr))}.rr-result-row-v280{grid-template-columns:40px minmax(0,1fr) 70px;padding:8px 10px}.rr-result-progress-v280{display:none}.rr-result-actions-v280{display:grid;grid-template-columns:1fr}.rr-result-actions-v280 .btn{width:100%}}


/* V0.281 - Tăng độ tương phản nút quay lại ở kết quả phòng xếp hạng */
.rr-result-actions-v280{align-items:center;gap:12px}
.rr-result-actions-v280 .victory-secondary{min-width:240px}
@media(max-width:760px){.rr-result-actions-v280 .victory-secondary{min-width:0}}


/* V0.282 - Làm lại giao diện thẻ Đấu đội */
.team277-card{padding:0;overflow:hidden;border-radius:18px;box-shadow:0 8px 24px rgba(50,20,28,.06)}
.team277-head{padding:16px 18px 12px;border-bottom:1px solid #eee9eb;background:#fff}
.team277-head h3{margin:0 0 4px;font-size:18px;line-height:1.3}.team277-head p{font-size:11px}
.team277-scorebar{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid #f0ebed;background:linear-gradient(180deg,#fffafb 0%,#fff 100%)}
.team277-score-side{min-width:0}.team277-score-side small{display:block;font-size:9px;font-weight:900;letter-spacing:.08em;color:#949aa3}.team277-score-side b{display:block;margin-top:3px;font-size:24px;line-height:1.15;color:#8a1027;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team277-score-side.right{text-align:right}.team277-score-side.my-team b{color:#6b0718}.team277-score-side.winner b{color:#a46d08}
.team277-score-main{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:140px}.team277-score-main strong{font-size:38px;line-height:1;color:#98122b;white-space:nowrap;font-variant-numeric:tabular-nums}.team277-score-main strong i{font-style:normal;color:#b7bcc3;margin:0 7px}.team277-score-main span{margin-top:7px;font-size:11px;line-height:1.35;color:#7f8791;font-weight:800}
.team277-teams{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;padding:14px 16px;background:#fafafa}
.team277-team{min-width:0;background:#fff;border:1px solid #e6e8eb;border-radius:14px;padding:12px;box-shadow:0 3px 10px rgba(30,35,42,.025)}
.team277-team.my-team{border-color:#d7adb7;box-shadow:inset 0 0 0 1px #eed2d8}.team277-team.winner{border-color:#d8b869;background:linear-gradient(180deg,#fffdf7,#fff)}
.team277-total-card{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;padding:0 2px 10px;margin-bottom:10px;border-bottom:1px solid #eef0f2}.team277-total-card span{font-size:10px;font-weight:900;color:#9299a3;letter-spacing:.05em;text-transform:uppercase}.team277-total-card b{font-size:24px;line-height:1;color:#861027;font-variant-numeric:tabular-nums}
.team277-members{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.team277-member{min-width:0;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 9px;border:1px solid #eaedf0;border-radius:11px;background:#fff}.team277-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;overflow:hidden;flex:0 0 34px;background:#f6e1e6;color:#8c1027;font-size:9px;font-weight:950}.team277-avatar.alt{background:#e9eef6;color:#34567f}.team277-avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}.team277-member>span{min-width:0}.team277-member b{display:block;font-size:12px;color:#252c35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team277-member small{display:block;margin-top:2px;font-size:9px;color:#949ba4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team277-member strong{font-size:13px;color:#16814a;font-variant-numeric:tabular-nums;white-space:nowrap}
.team277-foot{padding:11px 16px 12px;border-top:1px solid #eee9eb;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:14px}.team277-foot>span{font-size:11px;color:#7a828c}.team277-foot .actions{gap:7px;display:flex;flex-wrap:wrap}.team277-foot .btn{min-height:36px}
@media(max-width:1180px){.team277-score-main strong{font-size:32px}.team277-members{grid-template-columns:1fr}}
@media(max-width:860px){.team277-scorebar{grid-template-columns:1fr;justify-items:center;text-align:center}.team277-score-side,.team277-score-side.right{text-align:center}.team277-score-main{min-width:0}.team277-teams{grid-template-columns:1fr}.team277-foot{flex-direction:column;align-items:flex-start}.team277-foot .actions{width:100%}.team277-foot .actions .btn{flex:1}}
@media(max-width:560px){.team277-head{padding:14px}.team277-scorebar{padding:12px 14px;gap:10px}.team277-score-side b{font-size:20px}.team277-score-main strong{font-size:28px}.team277-teams{padding:10px;gap:10px}.team277-team{padding:10px}.team277-members{grid-template-columns:1fr}.team277-member{padding:7px 8px;grid-template-columns:30px minmax(0,1fr) auto}.team277-avatar{width:30px;height:30px;flex-basis:30px}.team277-total-card b{font-size:21px}}


/* V0.283 - Thu gọn mặc định thẻ Đấu đội */
.team277-card.compact-collapsed .team277-details{display:none}
.team277-card.compact-collapsed.open .team277-details{display:block}
.team277-card.compact-collapsed .team277-scorebar{padding:12px 18px}
.team277-card.compact-collapsed .team277-score-side b{font-size:20px}
.team277-card.compact-collapsed .team277-score-main strong{font-size:34px}
.team277-card.compact-collapsed .team277-foot{padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.team277-card.compact-collapsed .team277-foot>span{flex:1;min-width:0}
.team277-card.compact-collapsed .team277-foot .actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.team277Toggle{border-color:#d7c2c8!important;background:#fff7f8!important;color:#7f1023!important;font-weight:900!important}
.team277Toggle .ico{color:#7f1023!important}
.team277-card.compact-collapsed.open .team277Toggle{background:#fff0f3!important}
@media(max-width:860px){.team277-card.compact-collapsed .team277-scorebar{grid-template-columns:1fr;gap:8px;padding:12px 14px}.team277-card.compact-collapsed .team277-score-side,.team277-card.compact-collapsed .team277-score-side.right{text-align:center}.team277-card.compact-collapsed .team277-score-main strong{font-size:28px}.team277-card.compact-collapsed .team277-foot{flex-direction:column;align-items:stretch}.team277-card.compact-collapsed .team277-foot .actions{justify-content:stretch}.team277-card.compact-collapsed .team277-foot .actions .btn{flex:1}}


/* V0.284 - Phân quyền động theo nhóm và thời gian */
.permission-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.access-manager-modal{width:min(1180px,96vw)!important;max-width:none!important;max-height:94vh!important;overflow:hidden!important;padding:0!important}
.access-manager{display:grid;grid-template-rows:auto auto minmax(0,1fr);max-height:94vh;background:#f6f7f9}
.access-manager-head{background:#fff;border-bottom:1px solid #e8e9ec}
.access-manager-tabs{display:flex;gap:6px;padding:10px 16px;background:#fff;border-bottom:1px solid #e5e7eb}
.access-manager-tabs button{border:1px solid #e0e3e7;background:#fff;border-radius:10px;padding:9px 13px;display:inline-flex;align-items:center;gap:7px;font:inherit;font-size:11px;font-weight:900;color:#59626d;cursor:pointer}
.access-manager-tabs button.active{border-color:#a91a32;background:#fff1f4;color:#8b1027}.access-manager-tabs .ico{width:15px;height:15px}
.access-manager-body{min-height:0;overflow:auto;padding:16px}
.access-pane-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:12px}.access-pane-head h3{margin:0;font-size:18px;color:#2d333b}.access-pane-head p{margin:4px 0 0;font-size:10px;color:#7d8791}
.access-group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.access-group-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:11px;padding:12px 13px;background:#fff;border:1px solid #e0e4e8;border-radius:13px}.access-group-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#f7e9ec;color:#8c1027}.access-group-icon .ico{width:20px;height:20px}.access-group-copy{min-width:0}.access-group-copy>span{display:block;font-size:8px;font-weight:950;letter-spacing:.08em;color:#9b6370;text-transform:uppercase}.access-group-copy>b{display:block;margin-top:2px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.access-group-copy>small{display:block;margin-top:3px;font-size:9px;color:#7d8791;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.access-card-actions{display:flex;gap:6px;align-items:center}
.access-policy-list{display:grid;gap:9px}.access-policy-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:13px 14px;background:#fff;border:1px solid #e0e4e8;border-radius:13px;border-left:4px solid #b9bec5}.access-policy-card.active{border-left-color:#26905a}.access-policy-card.waiting{border-left-color:#d4a335}.access-policy-card.ended,.access-policy-card.off{opacity:.72}.access-policy-title{display:flex;align-items:center;gap:8px}.access-policy-title>b{font-size:13px;color:#2e3540}.access-policy-state{border-radius:999px;padding:4px 7px;font-size:8px;font-weight:950;background:#f0f2f4;color:#717a84}.access-policy-state.active{background:#e8f7ee;color:#187948}.access-policy-state.waiting{background:#fff3d8;color:#8a6411}.access-policy-state.ended,.access-policy-state.off{background:#f0f1f3;color:#747b84}.access-policy-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:6px;color:#78818c;font-size:9px}.access-policy-meta span{display:inline-flex;align-items:center;gap:5px}.access-policy-meta .ico{width:12px;height:12px}.access-policy-mods{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:8px}.access-policy-mods strong{font-size:8px;color:#8b1027;background:#f9e9ed;border-radius:999px;padding:4px 7px}.access-policy-mods i{font-style:normal;font-size:8.5px;color:#4e5965;background:#f4f6f8;border-radius:999px;padding:4px 7px}
.access-editor{width:min(900px,94vw);max-height:90vh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#fff}.access-editor-body{padding:16px 18px;overflow:auto}.access-editor-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid #e6e8eb;background:#fafbfc}.access-member-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0 8px}.access-member-toolbar input{min-width:0;flex:1;height:38px;border:1px solid #dce1e6;border-radius:10px;padding:0 11px}.access-member-toolbar span{font-size:9px;font-weight:900;color:#7b8490}.access-member-list{max-height:330px;overflow:auto;border:1px solid #e1e4e8;border-radius:12px;background:#fafbfc;padding:5px}.access-member-row{display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:9px;cursor:pointer}.access-member-row:hover{background:#fff}.access-member-row input{width:16px;height:16px}.access-member-row span{min-width:0}.access-member-row b{display:block;font-size:11px}.access-member-row small{display:block;margin-top:2px;font-size:8.5px;color:#818a95}.access-active-check{display:flex;align-items:center;gap:7px;margin-top:12px;font-size:10px;font-weight:850;color:#505a65}.access-active-check input{width:16px;height:16px}.access-policy-time{display:grid;grid-template-columns:1fr 1fr;gap:10px}.access-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:7px}.access-module-option{border:1px solid #e0e4e8;border-radius:11px;padding:10px;background:#fff;cursor:pointer}.access-module-option.checked{border-color:#b3364b;background:#fff5f7;box-shadow:inset 0 0 0 1px rgba(139,16,39,.08)}.access-module-option input{display:none}.access-module-option span{display:flex;align-items:center;gap:7px;color:#59626d}.access-module-option.checked span{color:#841027}.access-module-option .ico{width:16px;height:16px}.access-module-option b{font-size:10px;line-height:1.25}
@media(max-width:850px){.permission-head-actions{width:100%;justify-content:flex-start}.access-group-grid{grid-template-columns:1fr}.access-policy-card{grid-template-columns:1fr}.access-card-actions{justify-content:flex-start}.access-policy-time{grid-template-columns:1fr}.access-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.access-manager-body{padding:10px}.access-pane-head{align-items:flex-start;flex-direction:column}.access-pane-head .btn{width:100%}.access-group-card{grid-template-columns:38px minmax(0,1fr)}.access-group-icon{width:38px;height:38px}.access-group-card .access-card-actions{grid-column:1/-1}.access-module-grid{grid-template-columns:1fr}.access-editor-body{padding:12px}.access-policy-meta{gap:7px}}


/* V0.285 - Trình hướng dẫn phân quyền theo 4 bước */
.access285-manager .access-manager-head p b{color:#7f1025}.access285-help{display:flex;gap:10px;align-items:flex-start;margin:0 0 14px;padding:11px 13px;border:1px solid #e2e5e9;border-radius:12px;background:#f8fafb;color:#626c77}.access285-help>.ico{width:18px;height:18px;color:#8a1027;flex:0 0 auto;margin-top:1px}.access285-help b,.access285-help span{display:block}.access285-help b{font-size:11px;color:#313944}.access285-help span{margin-top:3px;font-size:9px;line-height:1.5}.access285-flow{display:grid;grid-template-columns:1fr 26px 1fr 26px 1fr;align-items:center;gap:7px;margin-bottom:16px;padding:12px;border:1px solid #e4e7ea;border-radius:13px;background:#fafbfc}.access285-flow>div{display:grid;grid-template-columns:30px minmax(0,1fr);grid-template-rows:auto auto;column-gap:9px;align-items:center}.access285-flow>div>span{grid-row:1/3;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#8a1027;color:#fff;font-size:11px;font-weight:950}.access285-flow b{font-size:10px;color:#343c46}.access285-flow small{font-size:8px;color:#828b95;line-height:1.35}.access285-flow>i{display:grid;place-items:center;color:#bdc3ca}.access285-flow>i .ico{width:15px;height:15px}
.access285-wizard{width:min(960px,96vw);max-height:92vh;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;background:#fff}.access285-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:10px 16px;border-bottom:1px solid #e7eaee;background:#fafbfc}.access285-steps button{border:0;background:transparent;display:flex;align-items:center;justify-content:center;gap:7px;padding:8px 7px;border-radius:9px;color:#838c96;cursor:default}.access285-steps button span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#e8ebee;color:#78818b;font-size:9px;font-weight:950}.access285-steps button b{font-size:9.5px}.access285-steps button.active{background:#fff1f4;color:#7f1025}.access285-steps button.active span{background:#8a1027;color:#fff}.access285-steps button.done{color:#25794d;cursor:pointer}.access285-steps button.done span{background:#e4f5eb;color:#207648}.access285-body{padding:18px 20px;overflow:auto}.access285-step{max-width:860px;margin:0 auto}.access285-step-title{display:flex;align-items:flex-start;gap:11px;margin-bottom:14px}.access285-step-title>span{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#8a1027;color:#fff;font-size:14px;font-weight:950;flex:0 0 auto}.access285-step-title h3{margin:0;font-size:18px;color:#2f3741}.access285-step-title p{margin:3px 0 0;font-size:9.5px;color:#7d8691}.access285-choice-grid{display:grid;gap:10px}.access285-choice-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.access285-choice{display:block;cursor:pointer}.access285-choice>input{display:none}.access285-choice>span{min-height:86px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:13px 14px;border:1px solid #dde2e7;border-radius:13px;background:#fff;transition:.15s ease}.access285-choice>span>.ico{width:20px;height:20px;color:#8a1027;margin-bottom:3px}.access285-choice b{font-size:12px;color:#333b45}.access285-choice small{font-size:9px;color:#7e8791;line-height:1.45}.access285-choice.checked>span{border-color:#b85a6b;background:#fff6f8;box-shadow:inset 0 0 0 1px rgba(138,16,39,.08)}.access285-section-label{margin:17px 0 7px;font-size:9px;font-weight:950;letter-spacing:.06em;color:#747d88;text-transform:uppercase}.access285-scope-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.access285-scope-grid label{cursor:pointer}.access285-scope-grid input{display:none}.access285-scope-grid label>span{min-height:66px;display:flex;flex-direction:column;padding:10px 11px;border:1px solid #e0e4e8;border-radius:11px;background:#fff}.access285-scope-grid b{font-size:10.5px;color:#333b45}.access285-scope-grid small{margin-top:3px;font-size:8px;color:#868e98;line-height:1.35}.access285-scope-grid label.checked>span{border-color:#b85a6b;background:#fff6f8;box-shadow:inset 0 0 0 1px rgba(138,16,39,.08)}.access285-target{margin-top:12px}.access285-target select{height:40px}.access285-module-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:17px 0 8px}.access285-module-head>div:first-child{display:flex;flex-direction:column}.access285-module-head b{font-size:11px}.access285-module-head span{font-size:8.5px;color:#7e8791;margin-top:2px}.access285-module-head>div:last-child{display:flex;gap:6px}.access285-modules{margin-top:0}.access285-time{margin-top:14px;padding:13px;border:1px solid #e1e5e9;border-radius:12px;background:#fafbfc}.access285-summary{display:grid;gap:8px;margin-bottom:15px}.access285-summary>div{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px;align-items:start;padding:11px 12px;border:1px solid #e1e5e9;border-radius:12px;background:#fafbfc}.access285-summary>div>span{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#fff0f3;color:#861027}.access285-summary .ico{width:18px;height:18px}.access285-summary p{margin:0}.access285-summary small,.access285-summary b,.access285-summary em{display:block}.access285-summary small{font-size:7.5px;font-weight:950;letter-spacing:.08em;color:#8b939c}.access285-summary b{margin-top:2px;font-size:11.5px;color:#303842}.access285-summary em{margin-top:3px;font-style:normal;font-size:8.5px;color:#78818c;line-height:1.45}.access285-active{margin-top:12px}.access285-foot{align-items:center}.access285-foot>div{display:flex;gap:8px}.access285-foot .btn.hidden{display:none!important}
@media(max-width:760px){.access285-flow{grid-template-columns:1fr}.access285-flow>i{transform:rotate(90deg)}.access285-choice-grid.two{grid-template-columns:1fr}.access285-scope-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.access285-steps{padding:7px}.access285-steps button{flex-direction:column;gap:3px}.access285-steps button b{font-size:8px}.access285-body{padding:13px}.access285-module-head{align-items:flex-start;flex-direction:column}.access285-foot{align-items:stretch;flex-direction:column}.access285-foot>div{width:100%}.access285-foot>div .btn{flex:1}}
@media(max-width:480px){.access285-scope-grid{grid-template-columns:1fr}.access285-steps button b{display:none}.access285-steps button span{width:27px;height:27px}.access285-choice>span{min-height:76px}}


/* V0.286 · Kho đề luyện nhập từ Word */
.practice-home-actions-v286{grid-template-columns:repeat(3,minmax(0,1fr))}.practice-home-action.exam-library-v286>span{background:#f5e8eb;color:#8a1027}.practice-exam-meta-grid-v286{display:grid;grid-template-columns:120px minmax(180px,1fr) minmax(180px,1fr);gap:10px}.practice-exam-library-v286{display:grid;gap:14px}.practice-exam-admin-list-v286,.practice-exam-student-list-v286{display:grid;gap:10px}.practice-exam-admin-card-v286{background:#fff;border:1px solid #e5e8ec;border-radius:14px;padding:14px 16px;box-shadow:0 4px 16px rgba(35,39,46,.04)}.practice-exam-admin-main-v286{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.practice-exam-admin-main-v286 h3{margin:3px 0 3px;font-size:16px}.practice-exam-admin-main-v286 p{margin:0;color:#858d97;font-size:10px}.practice-exam-admin-stats-v286{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}.practice-exam-admin-stats-v286 span{padding:6px 8px;border-radius:8px;background:#f7f8fa;color:#68727d;font-size:9px}.practice-exam-admin-stats-v286 b{color:#7f1025}.practice-exam-admin-actions-v286{display:flex;gap:7px;justify-content:flex-end;margin-top:10px;flex-wrap:wrap}.practice-exam-filter-v286{display:flex;align-items:center;justify-content:space-between;gap:12px}.practice-exam-filter-v286 .practice-admin-search{max-width:480px;flex:1}.practice-exam-filter-v286>span{font-size:10px;color:#7f8791}.practice-exam-student-card-v286{display:grid;grid-template-columns:80px minmax(0,1fr) auto;align-items:center;gap:14px;background:#fff;border:1px solid #e3e7eb;border-radius:14px;padding:12px 14px;box-shadow:0 4px 15px rgba(32,38,45,.04)}.practice-exam-cover-v286{height:72px;border-radius:12px;background:linear-gradient(145deg,#851127,#ad1a37);color:#fff;display:grid;place-content:center;text-align:center}.practice-exam-cover-v286 span{font-size:8px;font-weight:950;letter-spacing:.08em}.practice-exam-cover-v286 b{font-size:24px;line-height:1.05;margin-top:3px}.practice-exam-cover-v286 small{font-size:8px;opacity:.8}.practice-exam-student-main-v286{min-width:0}.practice-exam-student-title-v286>div{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.practice-exam-type-v286{font-size:8px;font-weight:850;color:#7d1730;background:#f9e9ed;border-radius:999px;padding:4px 7px}.practice-exam-student-title-v286 h3{margin:5px 0 2px;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.practice-exam-student-title-v286 p{margin:0;color:#8a929c;font-size:9px}.practice-exam-student-meta-v286{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px;color:#69737e;font-size:9px}.practice-exam-student-meta-v286 span{display:inline-flex;align-items:center;gap:4px}.practice-exam-student-meta-v286 .ico{width:12px;height:12px}.practice-exam-student-actions-v286{display:flex;gap:7px;min-width:160px;justify-content:flex-end;flex-wrap:wrap}.practice-exam-student-actions-v286 .btn{min-height:35px}.practice-exam-student-card-v286.hidden{display:none}
@media(max-width:900px){.practice-home-actions-v286{grid-template-columns:1fr}.practice-exam-meta-grid-v286{grid-template-columns:1fr}.practice-exam-student-card-v286{grid-template-columns:64px minmax(0,1fr)}.practice-exam-cover-v286{height:64px}.practice-exam-student-actions-v286{grid-column:1/-1;min-width:0;justify-content:stretch}.practice-exam-student-actions-v286 .btn{flex:1}}

/* V0.287 · Kho đề luyện công khai - chỉ nhập thủ công hoặc Word */
.practice-exam-builder-wrap-v287{width:min(1120px,96vw);max-height:94vh;overflow:hidden;padding:0!important}
.practice-exam-builder-v287{display:grid;grid-template-rows:auto minmax(0,1fr) auto;max-height:94vh;background:#fff;border-radius:18px;overflow:hidden}
.practice-exam-builder-head-v287{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px 14px;border-bottom:1px solid #e8e2e4;background:linear-gradient(180deg,#fffafb,#fff)}
.practice-exam-builder-head-v287 h2{margin:4px 0 4px;font-size:22px;color:#7d1025}.practice-exam-builder-head-v287 p{margin:0;color:#7c858f;font-size:11px}
.practice-exam-builder-body-v287{overflow:auto;padding:16px 18px;display:grid;gap:14px;background:#f8f9fb}
.practice-exam-builder-section-v287{background:#fff;border:1px solid #e5e8ec;border-radius:14px;padding:14px 15px}.practice-exam-builder-section-v287.compact{display:flex;gap:20px;flex-wrap:wrap;padding:11px 14px}
.practice-exam-builder-section-head-v287{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}.practice-exam-builder-section-head-v287 b{font-size:14px;color:#303741}.practice-exam-builder-section-head-v287 span{font-size:9px;color:#8a929c}
.practice-exam-meta-grid-v287{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.practice-exam-meta-grid-v287 .span2{grid-column:span 2}
.practice-exam-public-note-v287{display:flex;align-items:flex-start;gap:10px;margin-top:12px;padding:10px 12px;border:1px solid #cfe5d7;border-radius:11px;background:#f4fbf7;color:#216b43}.practice-exam-public-note-v287>.ico{width:18px;height:18px;flex:0 0 auto;margin-top:1px}.practice-exam-public-note-v287 b{display:block;font-size:11px}.practice-exam-public-note-v287 span{display:block;margin-top:2px;font-size:9px;line-height:1.45;color:#5f7869}
.practice-exam-source-tabs-v287{display:flex;gap:8px;margin-bottom:12px}.practice-exam-source-tabs-v287 button{height:38px;padding:0 14px;border-radius:10px;border:1px solid #dfe3e8;background:#fff;color:#535d68;font-size:10px;font-weight:900;display:inline-flex;align-items:center;gap:7px;cursor:pointer}.practice-exam-source-tabs-v287 button.active{background:#811128;border-color:#811128;color:#fff}.practice-exam-source-tabs-v287 .ico{width:14px;height:14px}
.practice-exam-manual-bar-v287{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px;border:1px solid #eceff2;border-radius:11px;background:#fafbfc;margin-bottom:10px}.practice-exam-manual-bar-v287 b{display:block;font-size:11px;color:#303741}.practice-exam-manual-bar-v287 span{display:block;margin-top:2px;font-size:8.5px;color:#89919a}.practice-exam-manual-bar-v287>div:last-child{display:flex;gap:7px;flex-wrap:wrap}
.practice-exam-word-zone-v287{display:grid;gap:8px;margin-bottom:10px}.practice-exam-word-pick-v287{display:flex;align-items:center;gap:10px;padding:12px;border:1px dashed #cbb5bb;border-radius:12px;background:#fff9fa;cursor:pointer;color:#7c1024}.practice-exam-word-pick-v287>.ico{width:21px;height:21px}.practice-exam-word-pick-v287 span{min-width:0;flex:1}.practice-exam-word-pick-v287 b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}.practice-exam-word-pick-v287 small{display:block;margin-top:2px;color:#8a8f98;font-size:8.5px}.practice-exam-word-pick-v287 input{max-width:250px;font-size:9px}
.practice-exam-question-list-v287{display:grid;gap:7px}.practice-exam-question-list-v287 article{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:9px;align-items:center;padding:8px 9px;border:1px solid #e7eaee;border-radius:10px;background:#fff}.practice-exam-qno-v287{width:30px;height:30px;border-radius:9px;background:#f5e4e8;color:#821128;display:grid;place-items:center;font-size:10px;font-weight:950}.practice-exam-question-list-v287 article>div:nth-child(2){min-width:0}.practice-exam-question-list-v287 article>div:nth-child(2)>b{display:block;font-size:10.5px;color:#2e3640;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.practice-exam-question-list-v287 article>div:nth-child(2)>small{display:block;margin-top:2px;font-size:8px;color:#8b939d}.practice-exam-qactions-v287{display:flex;gap:5px}.practice-exam-qactions-v287 .icon-btn{width:30px;height:30px}
.practice-exam-source-empty-v287{padding:28px;text-align:center;border:1px dashed #d9dde2;border-radius:11px;color:#8b939d;font-size:10px;background:#fbfcfd}
.practice-exam-check-v287{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:850;color:#414a55}.practice-exam-check-v287 input{accent-color:#851128}
.practice-exam-builder-foot-v287{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 18px;border-top:1px solid #e5e8ec;background:#fff}.practice-exam-builder-foot-v287>span{font-size:10px;font-weight:900;color:#7d1025}.practice-exam-builder-foot-v287>div{display:flex;gap:8px}
.practice-exam-qedit-wrap-v287{width:min(820px,95vw);max-height:92vh;overflow:auto}.practice-exam-qedit-v287>header{display:flex;justify-content:space-between;gap:14px;padding:16px 18px 12px;border-bottom:1px solid #e8e2e4}.practice-exam-qedit-v287 h2{margin:4px 0;font-size:20px;color:#7d1025}.practice-exam-qedit-v287 header p{margin:0;font-size:9px;color:#7e8791}.practice-exam-qedit-body-v287{padding:14px 18px;display:grid;gap:11px}.practice-exam-qedit-v287>footer{display:flex;justify-content:flex-end;gap:8px;padding:11px 18px;border-top:1px solid #e5e8ec}
.practice-exam-type-switch-v287{display:flex;gap:7px}.practice-exam-type-switch-v287 button{height:35px;padding:0 12px;border-radius:9px;border:1px solid #dfe3e8;background:#fff;color:#55606c;font-size:9.5px;font-weight:900;cursor:pointer}.practice-exam-type-switch-v287 button.active{background:#811128;color:#fff;border-color:#811128}
.practice-exam-choice-grid-v287,.practice-exam-tf-grid-v287{display:grid;gap:7px}.practice-exam-choice-grid-v287 label{display:grid;grid-template-columns:28px minmax(0,1fr) 18px 52px;gap:7px;align-items:center}.practice-exam-choice-grid-v287 label>span,.practice-exam-tf-grid-v287 label>span{font-weight:950;color:#821128;text-align:center}.practice-exam-choice-grid-v287 input[type=text],.practice-exam-choice-grid-v287 input:not([type]),.practice-exam-tf-grid-v287 input{height:36px;border:1px solid #dfe3e8;border-radius:8px;padding:0 9px}.practice-exam-choice-grid-v287 em{font-size:8px;font-style:normal;color:#7c858f}.practice-exam-tf-grid-v287 label{display:grid;grid-template-columns:28px minmax(0,1fr) 88px;gap:7px;align-items:center}.practice-exam-tf-grid-v287 select{height:36px;border:1px solid #dfe3e8;border-radius:8px;background:#fff;padding:0 7px;font-size:9px}
@media(max-width:760px){.practice-exam-meta-grid-v287{grid-template-columns:1fr 1fr}.practice-exam-meta-grid-v287 .span2{grid-column:1/-1}.practice-exam-builder-head-v287{padding:14px}.practice-exam-builder-body-v287{padding:10px}.practice-exam-manual-bar-v287{align-items:flex-start;flex-direction:column}.practice-exam-question-list-v287 article{grid-template-columns:30px minmax(0,1fr);}.practice-exam-qactions-v287{grid-column:2;justify-content:flex-start}.practice-exam-builder-foot-v287{align-items:stretch;flex-direction:column}.practice-exam-builder-foot-v287>div{display:grid;grid-template-columns:1fr 1fr}.practice-exam-word-pick-v287{align-items:flex-start;flex-wrap:wrap}.practice-exam-word-pick-v287 input{width:100%;max-width:none}.practice-exam-choice-grid-v287 label{grid-template-columns:24px minmax(0,1fr) 18px}.practice-exam-choice-grid-v287 em{display:none}.practice-exam-tf-grid-v287 label{grid-template-columns:24px minmax(0,1fr) 80px}}


/* V0.288 - Kho đề luyện: sửa câu/đáp án + xem thử như học sinh */
.practice-exam-revision-note-v288{display:flex;align-items:flex-start;gap:10px;margin-top:10px;padding:10px 12px;border:1px solid #efd69c;border-radius:11px;background:#fff9e9;color:#72520b}
.practice-exam-revision-note-v288>.ico{width:17px;height:17px;flex:0 0 auto;margin-top:1px}.practice-exam-revision-note-v288 b{display:block;font-size:11px}.practice-exam-revision-note-v288 span{display:block;margin-top:3px;font-size:9px;line-height:1.55;color:#806a35}
.practice-exam-student-preview-v288{position:fixed;inset:0;z-index:3300;background:#eef1f5;overflow:hidden}.practice-exam-student-preview-v288:fullscreen{width:100vw;height:100vh}.practice-preview-shell-v288{height:100vh;max-height:100vh}.practice-preview-note-v288{display:flex;align-items:center;gap:8px;min-height:34px;padding:7px 14px;background:#fff8df;border-bottom:1px solid #ecdca8;color:#795a11;font-size:9.5px;font-weight:800}.practice-preview-note-v288 .ico{width:14px;height:14px;flex:0 0 auto}.practice-exam-student-preview-v288 .autosave-status.preview{color:#7b6670}.practice-exam-student-preview-v288 .submit-wrap .btn{opacity:.82}
@media(max-width:760px){.practice-preview-note-v288{font-size:8.5px;padding:6px 10px}.practice-exam-student-preview-v288 .practice-exam-toolbar{gap:7px}.practice-exam-student-preview-v288 .practice-exam-actions .btn{font-size:8px}}


/* V0.289 - Kho đề luyện: sửa lỗi câu Word thiếu ý + thống kê loại câu */
.practice-exam-type-summary-v289{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:0 0 12px}
.practice-exam-type-summary-v289>span{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:54px;padding:9px 12px;border:1px solid #e4e7eb;border-radius:12px;background:#fff}
.practice-exam-type-summary-v289 small{font-size:8px;font-weight:900;letter-spacing:.07em;color:#8a929c}
.practice-exam-type-summary-v289 b{font-size:22px;color:#7f1025;font-variant-numeric:tabular-nums}
.practice-exam-type-summary-v289 .single{background:#fff9fa;border-color:#ead7dc}.practice-exam-type-summary-v289 .tf{background:#f8fbff;border-color:#dce5f0}.practice-exam-type-summary-v289 .tf b{color:#31577f}
.practice-exam-admin-stats-v289>span{display:inline-flex;align-items:baseline;gap:4px;flex-wrap:wrap}.practice-exam-admin-stats-v289>span>small{width:100%;font-size:8px;color:#9299a2;font-weight:850}.practice-exam-admin-stats-v289>span.single b{color:#851128}.practice-exam-admin-stats-v289>span.tf b{color:#31577f}
@media(max-width:680px){.practice-exam-type-summary-v289{grid-template-columns:1fr}.practice-exam-type-summary-v289>span{min-height:46px}.practice-exam-admin-stats-v289{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))}}


/* V0.290 - Làm sạch rich text khi sửa đề Word */
.practice-exam-keep-assets-v290{display:flex;align-items:flex-start;gap:10px;margin:4px 0 14px;padding:10px 12px;border:1px solid #eadde1;border-radius:11px;background:#fff9fa;cursor:pointer}.practice-exam-keep-assets-v290 input{margin-top:3px}.practice-exam-keep-assets-v290 span{display:flex;flex-direction:column;gap:2px}.practice-exam-keep-assets-v290 b{font-size:11px;color:#7f1023}.practice-exam-keep-assets-v290 small{font-size:9px;line-height:1.45;color:#7d858f}


/* V0.291 - Rich editor cho câu hỏi Kho đề luyện */
.practice-exam-qedit-wrap-v291{width:min(1180px,96vw);max-height:94vh;overflow:hidden;padding:0}
.practice-exam-qedit-v291{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;max-height:94vh;background:#f6f7f9}
.practice-exam-qedit-head-v291{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 22px 15px;background:#fff;border-bottom:1px solid #e6e8ec}.practice-exam-qedit-head-v291 h2{margin:4px 0 3px;color:#7e1024}.practice-exam-qedit-head-v291 p{margin:0;color:#79818b;font-size:11px}.practice-exam-qedit-head-v291 .actions{display:flex;align-items:center;gap:8px}
.practice-exam-qedit-toolbar-v291{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 22px;background:#fff;border-bottom:1px solid #e7e9ed}.practice-exam-qedit-toolbar-v291>span{font-size:10px;color:#7d858e;display:flex;align-items:center;gap:6px}.practice-exam-qedit-toolbar-v291>span .ico{width:14px;height:14px}
.practice-exam-qedit-body-v291{min-height:0;overflow:auto;padding:14px 18px 22px;display:grid;gap:12px}
.practice-exam-rich-section-v291{background:#fff;border:1px solid #e1e5e9;border-radius:14px;padding:13px;box-shadow:0 3px 12px rgba(26,33,43,.035)}.practice-exam-rich-section-v291.compact textarea{width:100%;min-height:92px;border:1px solid #dfe3e8;border-radius:10px;padding:10px 12px;resize:vertical}
.practice-exam-rich-section-head-v291{margin-bottom:10px}.practice-exam-rich-section-head-v291>div{display:flex;align-items:center;gap:9px}.practice-exam-rich-section-head-v291>div>span{width:28px;height:28px;border-radius:9px;background:#f7e8eb;color:#8b1027;display:grid;place-items:center;font-size:10px;font-weight:950;flex:0 0 28px}.practice-exam-rich-section-head-v291 b{display:block;font-size:13px;color:#2e3540}.practice-exam-rich-section-head-v291 small{display:block;margin-top:2px;font-size:9px;color:#8a929c}
.practice-exam-rich-compose-v291>.qb-blocks{margin:0}.practice-exam-rich-answers-v291{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.practice-exam-rich-answer-v291{min-width:0;border:1px solid #e2e6ea;border-radius:12px;background:#fbfcfd;overflow:hidden}.practice-exam-rich-answer-v291.correct{border-color:#d7a4af;box-shadow:0 0 0 1px #f2dce1 inset;background:#fffafb}.practice-exam-rich-answer-v291>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-bottom:1px solid #e7eaed;background:#fff}.practice-exam-rich-answer-v291>header>strong{font-size:15px;color:#841028}.practice-exam-rich-answer-v291>header select{height:30px;border:1px solid #d9dee4;border-radius:8px;background:#fff;padding:0 8px;font-size:10px;font-weight:800}.practice-exam-answer-pick-v291{display:flex;align-items:center;gap:5px;font-size:9px;font-weight:850;color:#69727d}.practice-exam-rich-answer-v291>.qb-blocks{padding:8px}.practice-exam-rich-answer-v291 .qb-add-block{padding-top:7px}.practice-exam-rich-answer-v291 .qb-add-block>span{display:none}
.practice-exam-qedit-foot-v291{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 18px;background:#fff;border-top:1px solid #e2e5e9}.practice-exam-qedit-foot-v291 .error{margin:0;min-height:0}.practice-exam-qedit-foot-v291>div:last-child{display:flex;gap:8px}
@media(max-width:820px){.practice-exam-rich-answers-v291{grid-template-columns:1fr}.practice-exam-qedit-head-v291{padding:14px}.practice-exam-qedit-toolbar-v291{padding:9px 14px;align-items:flex-start;flex-direction:column}.practice-exam-qedit-body-v291{padding:10px}.practice-exam-qedit-foot-v291{align-items:stretch;flex-direction:column}.practice-exam-qedit-foot-v291>div:last-child{justify-content:flex-end}}


/* V0.292 - Cho phép cuộn nội dung khi Xem thử như học sinh */
.practice-exam-student-preview-v288{
  overflow:hidden;
}
.practice-exam-student-preview-v288 .practice-preview-shell-v288{
  height:100%;
  max-height:100%;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.practice-exam-student-preview-v288 .practice-exam-toolbar,
.practice-exam-student-preview-v288 .practice-preview-note-v288{
  flex:0 0 auto;
}
.practice-exam-student-preview-v288 .practice-body-grid{
  flex:1 1 auto;
  min-height:0;
  height:auto;
  overflow:hidden;
}
.practice-exam-student-preview-v288 .practice-body-grid>.qnav,
.practice-exam-student-preview-v288 .practice-body-grid>.right-stack{
  height:100%;
  min-height:0;
  max-height:none;
}
.practice-exam-student-preview-v288 .practice-body-grid>.qnav{
  display:flex;
  flex-direction:column;
}
.practice-exam-student-preview-v288 .practice-body-grid .qnav-scroll{
  flex:1 1 auto;
  min-height:0;
  max-height:none;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.practice-exam-student-preview-v288 .practice-body-grid>.exam-question-area{
  height:100%;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  padding-right:4px;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  -webkit-overflow-scrolling:touch;
}
.practice-exam-student-preview-v288 .practice-body-grid>.right-stack{
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.practice-exam-student-preview-v288 .all-question-list{
  height:auto!important;
  max-height:none!important;
  min-height:min-content;
  overflow:visible!important;
  padding-bottom:24px;
}
.practice-exam-student-preview-v288 .question-card{
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
}
@media(max-width:900px){
  .practice-exam-student-preview-v288{overflow-y:auto;overflow-x:hidden}
  .practice-exam-student-preview-v288 .practice-preview-shell-v288{height:auto;max-height:none;overflow:visible}
  .practice-exam-student-preview-v288 .practice-body-grid{display:block!important;height:auto!important;overflow:visible!important}
  .practice-exam-student-preview-v288 .practice-body-grid>.qnav,
  .practice-exam-student-preview-v288 .practice-body-grid>.exam-question-area,
  .practice-exam-student-preview-v288 .practice-body-grid>.right-stack{height:auto!important;max-height:none!important;overflow:visible!important}
  .practice-exam-student-preview-v288 .practice-body-grid .qnav-scroll{max-height:180px!important;overflow:auto!important}
}

/* V0.293 - Cấu hình xáo riêng từng phần của Kho đề luyện */
.practice-exam-shuffle-v293{display:block!important;padding:14px 15px!important}
.practice-exam-shuffle-grid-v293{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:10px}
.practice-exam-shuffle-grid-v293>article{border:1px solid #e4e8ec;border-radius:12px;padding:12px;background:#fbfcfd;display:grid;gap:10px}
.practice-exam-shuffle-grid-v293>article>div:first-child{display:flex;align-items:center;gap:9px;padding-bottom:8px;border-bottom:1px solid #eceff2}
.practice-exam-part-no-v293{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:#8a1027;color:#fff;font-weight:950;font-size:12px;flex:0 0 32px}
.practice-exam-shuffle-grid-v293 b{font-size:11px;color:#2d3540}.practice-exam-shuffle-grid-v293 small{display:block;margin-top:2px;font-size:8px;color:#8a929c}
.practice-exam-shuffle-fixed-v293{display:flex;align-items:center;min-height:30px;padding:6px 9px;border-radius:8px;background:#f2f4f6;color:#757e89;font-size:9px;font-weight:800}
.practice-exam-shuffle-note-v293{margin-top:10px;display:flex;align-items:center;gap:7px;font-size:9px;color:#717b86}.practice-exam-shuffle-note-v293 .ico{width:14px;height:14px;color:#8a1027}
@media(max-width:760px){.practice-exam-shuffle-grid-v293{grid-template-columns:1fr}}


/* V0.295 - Kho đề luyện dạng bảng gọn như Giao bài luyện */
.practice-exam-library-v295{gap:12px}
.practice-exam-toolbar-v295{display:flex;align-items:center;justify-content:space-between;gap:12px}
.practice-exam-toolbar-v295 .practice-admin-search{max-width:560px;flex:1}
.practice-exam-toolbar-v295>span{font-size:9px;color:#8b939d;white-space:nowrap}
.practice-exam-table-card-v295{overflow:hidden}
.practice-exam-table-v295 tbody tr.hidden{display:none}
.practice-exam-table-v295 tbody td:first-child{min-width:260px}
.practice-exam-table-v295 td:nth-child(2){min-width:190px}
.practice-exam-table-v295 td:nth-child(3){min-width:105px}
.practice-exam-table-v295 td:nth-child(4){min-width:80px}
.practice-exam-table-v295 td:nth-child(5){min-width:130px}
.practice-exam-shuffle-v295{max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.practice-exam-actions-v295{justify-content:flex-end;flex-wrap:nowrap}
.practice-exam-actions-v295 .btn.compact{white-space:nowrap}
@media(max-width:1180px){.practice-exam-table-card-v295 .table-wrap{overflow:auto}.practice-exam-table-v295{min-width:1040px}}
@media(max-width:720px){.practice-exam-toolbar-v295{align-items:stretch;flex-direction:column}.practice-exam-toolbar-v295 .practice-admin-search{max-width:none;width:100%}}


/* V0.301 - Nhận diện đơn vị hiển thị linh hoạt */
.brand-school{min-width:0;max-width:190px}.brand-school b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.login-school{max-width:520px;margin-left:auto;margin-right:auto;text-align:center}.branding-preview b:empty{display:none}.password-first-brand small{display:block;white-space:normal;line-height:1.35}
@media(max-width:1180px) and (min-width:901px){.topbar{grid-template-columns:270px minmax(330px,1fr) 118px}.brand-zone{padding:0 16px;gap:10px}.brand-school{max-width:160px}.brand-school b{font-size:14px}}


/* V0.302 - branding configurable */
.brand-school{display:flex;align-items:center;min-width:0}.brand-school b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
