:root{--primary:#0d6efd;--primary-dark:#0a58ca;--primary-light:#4f8cff;--text:#1f2a37;--muted:#6b7280;--bg:#f5f9ff;--white:#fff;--line:#dfe5ef;--border:rgba(13,110,253,.12);--success:#16a34a;--danger:#dc2626;--shadow:0 18px 45px rgba(13,110,253,.12);--radius-xl:24px;--transition:.35s ease}
*{box-sizing:border-box}html{scroll-behavior:smooth;touch-action:manipulation}body{margin:0;font-family:'Segoe UI',Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;overflow-x:hidden}a{text-decoration:none;color:inherit}button,input,select,textarea{font-family:inherit}button,a,.answer-option,.question-number{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button,.answer-option,.question-number{user-select:none;-webkit-user-select:none}.container{width:min(1180px,calc(100% - 32px));margin:0 auto}.page{padding:30px 0 70px}.student-page,.legacy-page,.auth-legacy-main,.exam-legacy-main{width:100%;margin:0;padding:0}.hidden{display:none!important}
.alert{width:min(1180px,calc(100% - 32px));margin:16px auto;padding:14px 18px;border-radius:14px;font-weight:600}.alert.error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.alert.success{background:#ecfdf5;color:#166534;border:1px solid #bbf7d0}.alert.warning{background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}.muted{color:var(--muted)}
.btn{min-height:46px;border:0;border-radius:999px;padding:0 18px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}.btn-primary{background:linear-gradient(135deg,#0d6efd,#4f8cff);color:#fff;box-shadow:0 12px 24px rgba(13,110,253,.2)}.btn-secondary{background:#eef4ff;color:#1d4ed8}.btn-ghost{background:#fff;border:1px solid var(--line);color:var(--text)}.btn-danger{background:#ef4444;color:#fff}.btn-disabled{background:#e5e7eb;color:#6b7280}.btn-large{min-height:54px;padding:0 24px}.btn-small{min-height:36px;padding:0 10px}.button-row{display:flex;gap:10px;flex-wrap:wrap}
/* floating menu copied from legacy UI */
.floating-actions{position:fixed;right:20px;bottom:20px;z-index:1000;display:flex;flex-direction:column;gap:12px;align-items:flex-end}.float-btn{width:56px;height:56px;border-radius:18px;display:grid;place-items:center;color:#fff;font-size:1.25rem;transition:var(--transition);border:0;cursor:pointer;box-shadow:0 10px 25px rgba(24,181,249,.18)}.float-btn:hover{transform:translateY(-4px) scale(1.06)}.main-btn,.toggle-btn{background:linear-gradient(135deg,#12c2ff,#2ba3ff)}.green-btn{background:linear-gradient(135deg,#18b5f9,#68bb0c)}.logout-btn{background:linear-gradient(324deg,#cdaeaa,#ff1a1a)}.toggle-btn i{transition:transform .4s ease}.toggle-btn.active i{transform:rotate(180deg)}.float-group{display:flex;flex-direction:column;gap:12px;max-height:0;overflow:hidden;transition:max-height .45s ease}.float-group.show{max-height:620px;overflow:visible}.float-logout-form{margin:0}.float-logout-form .float-btn{padding:0}
/* student hero: legacy blue style */
.student-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#0d6efd,#4f8cff);color:#fff;padding:54px 0 125px}.student-hero-grid{display:grid;grid-template-columns:1fr auto;align-items:center;gap:36px;position:relative;z-index:2}.student-welcome h1{font-size:clamp(2rem,4vw,3.5rem);line-height:1.12;margin:16px 0 12px}.student-welcome p{max-width:720px;color:rgba(255,255,255,.9);font-size:1.05rem}.hero-badge,.section-badge{display:inline-flex;align-items:center;padding:9px 16px;border-radius:999px;font-size:.88rem;font-weight:700}.hero-badge{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.2);color:#fff}.section-badge{background:rgba(13,110,253,.09);border:1px solid rgba(13,110,253,.12);color:var(--primary)}.student-status-card{min-width:235px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(14px);border-radius:24px;padding:22px;display:flex;gap:18px;align-items:center;box-shadow:0 25px 65px rgba(0,0,0,.13)}.student-status-icon{width:58px;height:58px;border-radius:18px;background:rgba(255,255,255,.16);display:grid;place-items:center;font-size:1.35rem}.student-status-card span{display:block;font-size:13px;color:rgba(255,255,255,.83)}.student-status-card strong{display:block;font-size:36px;line-height:1.1;margin-top:3px}
.hero-waves{display:block;width:100%;height:70px;position:absolute;bottom:0;left:0;z-index:1;pointer-events:none}.wave1 use{animation:move-forever1 12s linear infinite;animation-delay:-2s;fill:rgba(255,255,255,.7)}.wave2 use{animation:move-forever2 15s linear infinite;animation-delay:-3s;fill:rgba(255,255,255,.5)}.wave3 use{animation:move-forever3 18s linear infinite;animation-delay:-4s;fill:rgba(255,255,255,.9)}@keyframes move-forever1{0%{transform:translate(85px,0)}100%{transform:translate(-90px,0)}}@keyframes move-forever2{0%{transform:translate(-90px,0)}100%{transform:translate(85px,0)}}@keyframes move-forever3{0%{transform:translate(-90px,0)}100%{transform:translate(85px,0)}}
.student-content{padding:12px 0 70px}.student-section{padding:32px 0}.section-heading{text-align:center;max-width:840px;margin:0 auto 30px}.section-heading h2{font-size:clamp(1.8rem,3vw,2.6rem);margin:14px 0 10px}.section-heading p{color:var(--muted)}.subject-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.legacy-subject-card,.legacy-info-card,.history-card{background:#fff;border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow)}.legacy-subject-card{padding:26px;transition:.3s ease}.legacy-subject-card:hover{transform:translateY(-5px)}.subject-card-head{display:flex;align-items:center;gap:15px;margin-bottom:18px}.subject-icon{width:54px;height:54px;border-radius:18px;display:grid;place-items:center;background:rgba(13,110,253,.09);color:var(--primary);font-size:1.35rem}.subject-card-head span{font-size:11px;letter-spacing:.11em;font-weight:800;color:var(--primary)}.subject-card-head h3{margin:2px 0 0;font-size:1.22rem}.trial-list{display:grid;gap:0}.legacy-exam-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;border-top:1px solid #edf1f7}.legacy-exam-row:first-child{border-top:0}.legacy-exam-row small{display:block;color:var(--muted);font-size:12px;margin-top:3px}.mini-action,.legacy-action-btn{border:0;cursor:pointer;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none;white-space:nowrap}.mini-action{padding:9px 13px;border-radius:999px;font-size:12px}.mini-action.primary,.legacy-action-btn{background:linear-gradient(135deg,#0d6efd,#4f8cff);color:#fff}.mini-action.secondary{background:#eef4ff;color:#1d4ed8}.next-exam-box{padding:17px;background:#f6f9ff;border:1px solid #e4ecfb;border-radius:16px;margin:10px 0 18px;display:grid;gap:4px}.next-exam-box span{font-size:12px;color:var(--muted)}.next-exam-box strong{font-size:17px}.next-exam-box.complete{display:flex;align-items:center;gap:10px;color:#15803d;background:#f0fdf4;border-color:#bbf7d0}.legacy-button-row{display:flex;gap:10px;align-items:center}.legacy-action-btn{min-height:46px;padding:0 17px;border-radius:999px;box-shadow:0 10px 24px rgba(13,110,253,.18)}.legacy-action-btn.full{width:100%}.legacy-action-btn.disabled{background:#e5e7eb;color:#6b7280;box-shadow:none}.flex1{flex:1}.legacy-warning{margin-top:22px;padding:17px 20px;border-radius:16px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;display:flex;align-items:center;gap:10px}.legacy-info-card{padding:22px 24px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px}.legacy-card-icon{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:#eaf2ff;color:#2f80ed;font-size:1.35rem}.legacy-card-main h2{margin:10px 0 4px}.legacy-card-main p{margin:0;color:var(--muted)}
.history-card{overflow:hidden}.history-list{display:grid}.history-row{display:grid;grid-template-columns:auto 1fr 100px 100px auto;align-items:center;gap:12px;padding:15px 18px;border-top:1px solid #edf1f7}.history-row:first-child{border-top:0}.history-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#eef4ff;color:#2563eb}.history-main{display:grid}.history-main span{font-size:12px;color:var(--muted)}.history-score{font-weight:800;color:#2563eb}.history-time{color:var(--muted);font-weight:600}
/* generic admin/results */
.card{background:#fff;border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow);padding:22px}.eyebrow{font-size:12px;letter-spacing:.12em;font-weight:900;color:var(--primary)}h1{font-size:clamp(28px,4vw,44px);line-height:1.08}h2{font-size:24px}h3{font-size:20px}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:16px 0}.stat-card{background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);padding:18px}.stat-card span{display:block;color:var(--muted);font-size:13px}.stat-card strong{font-size:26px}.result-hero{display:flex;justify-content:space-between;align-items:center;gap:20px}.score-circle{min-width:130px;height:130px;border-radius:50%;display:grid;place-items:center;align-content:center;background:linear-gradient(135deg,#0d6efd,#4f8cff);color:#fff}.score-circle strong{font-size:42px;line-height:1}.result-list{display:grid;gap:12px}.result-question.correct{border-left:5px solid var(--success)}.result-question.wrong{border-left:5px solid var(--danger)}.result-question-head{display:flex;justify-content:space-between}.question-text.small{font-size:18px;margin:12px 0}.answer-summary{display:flex;gap:20px;flex-wrap:wrap;color:var(--muted)}.explanation{margin-top:14px;background:#f8fafc;padding:14px;border-radius:12px}.leaderboard-card,.leaderboard-page{margin-top:20px}.leader-row{display:grid;grid-template-columns:70px 1fr auto;gap:12px;align-items:center;padding:14px 8px;border-top:1px solid var(--line)}.leader-row.me{background:#eff6ff;border-radius:10px}.rank{font-weight:900;color:var(--primary)}.name{font-weight:800}.center{text-align:center;margin-top:22px}.admin-nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px}.admin-nav a{padding:10px 14px;border-radius:999px;background:#fff;border:1px solid var(--border);box-shadow:0 8px 22px rgba(13,110,253,.06);font-weight:800}.admin-stats{grid-template-columns:repeat(5,1fr)}.admin-note{margin-top:18px}.table-wrap{overflow:auto;padding:0}.admin-table{width:100%;border-collapse:collapse;min-width:760px}.admin-table th,.admin-table td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left}.admin-table th{background:#f8fafc;font-size:12px}.actions-cell{display:flex;gap:6px}.form-stack,.admin-form{display:grid;gap:16px;margin-top:20px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}label{display:grid;gap:7px;font-weight:700;font-size:14px}input,select,textarea{width:100%;border:1px solid #cfd7e5;border-radius:12px;padding:12px 13px;font:inherit;background:#fff;color:var(--text)}input:focus,select:focus,textarea:focus{outline:3px solid rgba(37,99,235,.12);border-color:var(--primary)}.check-label{display:flex;align-items:center;gap:8px}.check-label input{width:auto}.filter-bar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.filter-bar select{width:auto;min-width:160px}.empty-state{padding:30px;text-align:center;color:var(--muted)}
/* login helpers */.legacy-login-desc{text-align:center;color:#6b7280;margin:-8px 0 20px}.login-brand-mark{width:66px;height:66px;border-radius:20px;background:linear-gradient(135deg,#2f80ed,#4f8df7);color:#fff;display:grid;place-items:center;margin:0 auto 14px;font-size:28px;box-shadow:0 12px 25px rgba(47,128,237,.25)}.auth-legacy-main .alert{position:fixed;z-index:20;top:12px;left:50%;transform:translateX(-50%);width:min(520px,calc(100% - 24px))}
/* exam v2 additions matching old exam */.exam-legacy-body{background:linear-gradient(135deg,#2f80ed,#3f8cff);min-height:100vh}.exam-container-v2{height:min(88vh,790px);max-width:820px}.exam-mode-label{display:block;font-size:10px;letter-spacing:.12em;font-weight:800;color:#2f80ed;margin-bottom:3px}.legacy-question-grid{display:grid;grid-template-columns:repeat(15,1fr);gap:6px;margin-top:12px}.question-number{height:34px;border-radius:9px;border:1px solid #dce3ed;background:#fff;color:#475569;font-weight:800;cursor:pointer}.question-number.is-answered{background:#dcfce7;border-color:#86efac;color:#166534}.question-number.is-current{background:#dbeafe;border-color:#3b82f6;color:#1d4ed8;box-shadow:0 0 0 2px rgba(59,130,246,.12)}.answer-option{display:flex;align-items:center;gap:10px;background:#fff;border:2px solid #e5e7eb;padding:13px 15px;border-radius:15px;cursor:pointer;transition:.2s;text-align:left;width:100%;min-height:52px}.answer-option:hover{background:#f8fbff;border-color:#bfd7ff}.answer-option.selected{border-color:#2f80ed;background:#eff6ff}.answer-letter{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;background:#eaf2ff;color:#2f80ed;font-weight:800}.answer-option.selected .answer-letter{background:#2f80ed;color:#fff}.legacy-prev{background:#eef2f7;color:#334155}.submit-exam-btn{background:#ef4444;color:#fff}.exam-footer .exam-btn{min-width:125px}.exam-legacy-body .hero-waves{position:fixed;z-index:0}
@media(max-width:900px){.subject-grid{grid-template-columns:1fr}.student-hero-grid{grid-template-columns:1fr}.student-status-card{width:min(100%,320px)}.admin-stats{grid-template-columns:repeat(2,1fr)}.stats-grid{grid-template-columns:repeat(2,1fr)}.legacy-question-grid{grid-template-columns:repeat(10,1fr)}}
@media(max-width:640px){.container{width:min(100% - 22px,100%)}.student-hero{padding:30px 0 110px;text-align:center}.student-status-card{margin:auto;text-align:left}.student-content{padding-top:0}.legacy-subject-card{padding:20px}.legacy-exam-row{align-items:stretch;flex-direction:column}.legacy-exam-row form,.legacy-exam-row button,.legacy-exam-row .mini-action{width:100%}.legacy-button-row{flex-direction:column;align-items:stretch}.legacy-button-row .mini-action{width:100%}.legacy-info-card{grid-template-columns:auto 1fr}.legacy-info-card .legacy-action-btn{grid-column:1/-1;width:100%}.history-row{grid-template-columns:auto 1fr auto}.history-score,.history-time{grid-column:2}.history-row .mini-action{grid-column:1/-1;width:100%}.result-hero{flex-direction:column;align-items:stretch}.stats-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.leader-row{grid-template-columns:52px 1fr}.leader-row>span:last-child{grid-column:2}.legacy-question-grid{grid-template-columns:repeat(6,1fr)}.exam-container-v2{height:92vh}.exam-top{align-items:flex-start}.exam-title h2{font-size:16px}.exam-timer{font-size:12px;padding:7px 9px}.exam-progress-info{font-size:11px;flex-wrap:wrap}.question-box{padding:10px 14px}.question-text{font-size:18px!important}.exam-footer{padding:12px}.exam-footer .exam-bottom-row{display:grid;grid-template-columns:1fr 1fr}.exam-footer #submitButton{grid-column:1/-1;grid-row:2}.exam-footer .exam-btn{min-width:0;width:100%;padding:11px 8px;font-size:12px}.floating-actions{right:16px;bottom:16px;gap:10px}.float-btn{width:52px;height:52px;font-size:1.2rem}.hero-waves{height:55px}}

/* ===== V5: Trang chủ Thi thử + Hồ sơ học sinh + Khu vực ủng hộ ===== */
.home-trial-section{padding:74px 0 54px;background:linear-gradient(180deg,#f7faff 0%,#fff 100%)}
.home-trial-grid{margin-top:28px}.home-trial-resume{margin:24px 0}.guest-trial-box{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:22px;padding:26px 30px;border:1px solid var(--border);border-radius:24px;background:#fff;box-shadow:var(--shadow);margin-top:28px}.guest-trial-icons{display:flex;gap:6px;font-size:28px}.guest-trial-box h3{margin:0 0 6px}.guest-trial-box p{margin:0;color:var(--muted)}
.avatar-float-btn{font-size:1.45rem;background:#fff;color:#111;border:2px solid rgba(13,110,253,.15)}
.profile-content{padding:36px 0 70px}.profile-card{background:#fff;border:1px solid var(--border);border-radius:28px;box-shadow:var(--shadow);padding:30px}.profile-section-heading{margin-bottom:22px}.profile-section-heading h2{margin:10px 0 6px}.profile-section-heading p{margin:0;color:var(--muted)}.profile-section-heading.compact{margin:0 0 16px}.profile-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.profile-summary-card{min-width:290px}.profile-big-avatar{width:66px;height:66px;border-radius:20px;display:grid;place-items:center;background:#fff;font-size:38px;box-shadow:0 10px 30px rgba(0,0,0,.12)}.avatar-picker-block,.password-block{margin-top:32px;padding-top:28px;border-top:1px solid #edf1f7}.avatar-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.avatar-choice{position:relative;display:grid;place-items:center;gap:5px;padding:14px 8px;border:2px solid #e7ecf4;border-radius:18px;background:#fff;cursor:pointer;transition:.2s;text-align:center}.avatar-choice:hover{transform:translateY(-2px);border-color:#b9d3ff}.avatar-choice input{position:absolute;opacity:0;pointer-events:none}.avatar-choice:has(input:checked){border-color:#2f80ed;background:#eef5ff;box-shadow:0 8px 22px rgba(47,128,237,.14)}.avatar-emoji{font-size:34px;line-height:1}.avatar-choice small{font-size:10px;color:var(--muted);font-weight:700}.profile-actions{display:flex;align-items:center;gap:12px;margin-top:30px;flex-wrap:wrap}
.support-section{padding:72px 0;background:#f6f9ff}.support-box{display:grid;grid-template-columns:1.45fr .75fr;gap:34px;align-items:center;padding:36px;border-radius:28px;background:#fff;border:1px solid var(--border);box-shadow:var(--shadow)}.support-copy h2{margin:12px 0 14px;font-size:clamp(26px,3vw,38px)}.support-copy p{color:var(--muted);line-height:1.75}.support-note{padding:13px 16px;border-radius:14px;background:#f0f7ff;color:#315f9a!important}.support-note i{color:#ef4444;margin-right:7px}.donation-card{display:grid;gap:8px;text-align:center;padding:28px 22px;border-radius:24px;background:linear-gradient(145deg,#0d6efd,#4f8cff);color:#fff;box-shadow:0 18px 40px rgba(13,110,253,.25)}.donation-icon{width:64px;height:64px;border-radius:20px;background:rgba(255,255,255,.18);display:grid;place-items:center;margin:0 auto 8px;font-size:28px}.donation-card>span{font-size:11px;letter-spacing:.1em;font-weight:800;opacity:.9}.donation-card strong{font-size:26px;letter-spacing:.02em}.donation-card small{opacity:.9}.donation-card p{margin:10px 0 0;padding-top:12px;border-top:1px solid rgba(255,255,255,.2);font-size:13px}
@media(max-width:900px){.support-box{grid-template-columns:1fr}.guest-trial-box{grid-template-columns:1fr;text-align:center}.guest-trial-icons{justify-content:center}.guest-trial-box .legacy-action-btn{justify-self:center}.avatar-grid{grid-template-columns:repeat(5,1fr)}}
@media(max-width:640px){.profile-card{padding:20px;border-radius:22px}.profile-form-grid{grid-template-columns:1fr}.avatar-grid{grid-template-columns:repeat(2,1fr)}.profile-actions>*{width:100%}.support-section{padding:48px 0}.support-box{padding:24px 20px}.donation-card strong{font-size:22px}.home-trial-section{padding:50px 0 34px}}

/* V6: Floating menu - thống nhất màu xanh, chỉ đăng xuất giữ màu đỏ */
.floating-actions .main-btn,
.floating-actions .toggle-btn,
.floating-actions .green-btn,
.floating-actions .avatar-float-btn {
    background: linear-gradient(135deg, #12c2ff, #2ba3ff) !important;
    color: #fff !important;
    border: 0 !important;
}
.floating-actions .logout-btn {
    background: linear-gradient(324deg, #cdaeaa, #ff1a1a) !important;
    color: #fff !important;
    border: 0 !important;
}

/* ===== V7: Lịch sử riêng + avatar float + ủng hộ trên đầu trang chủ ===== */
.avatar-float-btn{padding:0!important}
.avatar-float-inner{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#111;font-size:21px;line-height:1;box-shadow:0 3px 10px rgba(0,0,0,.12)}
.history-page-content{padding-top:22px}.history-empty-card{margin-top:18px}.history-hero .student-welcome h1 i{font-size:.72em;margin-right:8px}
.support-top-section{background:#f7faff;padding:18px 0 20px;border-bottom:1px solid rgba(13,110,253,.08)}
.support-top-box{display:grid;grid-template-columns:1.55fr .72fr;gap:24px;align-items:center;background:#fff;border:1px solid rgba(13,110,253,.11);border-radius:22px;padding:22px 26px;box-shadow:0 12px 34px rgba(13,110,253,.08)}
.support-top-copy h2{margin:9px 0 8px;font-size:clamp(20px,2.2vw,29px);line-height:1.25}.support-top-copy p{margin:0;color:#5f6b7b;line-height:1.68;font-size:14px}.support-free-badge{display:inline-flex;align-items:center;gap:7px;color:#1769d2;background:#eef5ff;border:1px solid #d9e8ff;border-radius:999px;padding:7px 12px;font-size:11px;font-weight:800;letter-spacing:.04em}.support-free-badge i{color:#ef4444}.support-top-account{display:grid;gap:4px;text-align:center;padding:17px 20px;border-radius:18px;background:linear-gradient(135deg,#0d6efd,#4f8cff);color:#fff;box-shadow:0 12px 28px rgba(13,110,253,.2)}.support-top-account span{font-size:10px;font-weight:800;letter-spacing:.08em;opacity:.9}.support-top-account strong{font-size:21px}.support-top-account small{font-style:normal;opacity:.9}.support-top-account em{font-size:11px;font-style:normal;margin-top:4px;padding-top:7px;border-top:1px solid rgba(255,255,255,.2);opacity:.9}
@media(max-width:820px){.support-top-box{grid-template-columns:1fr}.support-top-account{max-width:420px;width:100%;justify-self:center}.history-row{grid-template-columns:auto 1fr auto}.history-score,.history-time{grid-column:2}.history-row .mini-action{grid-column:1/-1;width:100%}}
@media(max-width:640px){.support-top-section{padding:12px 0 14px}.support-top-box{padding:18px;border-radius:18px}.support-top-copy{text-align:center}.support-free-badge{font-size:10px}.support-top-account strong{font-size:19px}.avatar-float-inner{width:32px;height:32px;font-size:20px}}
/* V10 avatar compact retained */
.avatar-grid{grid-template-columns:repeat(10,minmax(0,1fr));gap:8px}.avatar-choice{min-width:0;padding:8px 4px;gap:2px;border-radius:13px}.avatar-emoji{font-size:27px;line-height:1.05}.avatar-choice small{display:none}.avatar-choice:hover{transform:translateY(-1px)}
@media(max-width:900px){.avatar-grid{grid-template-columns:repeat(8,minmax(0,1fr));gap:7px}}
@media(max-width:640px){.avatar-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.avatar-choice{padding:8px 3px;border-radius:12px}.avatar-emoji{font-size:26px}}
/* V11 */
.admin-nav{display:none!important}.admin-pagination{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin:18px 0 8px;padding:14px 16px;border:1px solid rgba(13,110,253,.12);border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(13,110,253,.07)}.admin-pagination-summary{font-size:13px;color:#64748b}.admin-pagination-summary strong{color:#1e3a5f}.admin-pagination-buttons{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.admin-page-btn,.admin-page-number{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #dce6f5;background:#fff;color:#23405f;font-weight:800;font-size:13px;border-radius:12px;padding:0 12px;transition:.2s}.admin-page-number{min-width:38px;padding:0 9px}.admin-page-btn:hover,.admin-page-number:hover{border-color:#8db9ff;background:#eef5ff;color:#0d6efd;transform:translateY(-1px)}.admin-page-number.active{background:linear-gradient(135deg,#0d6efd,#4f8cff);border-color:transparent;color:#fff;box-shadow:0 7px 18px rgba(13,110,253,.22)}.admin-page-btn.disabled{opacity:.45;cursor:not-allowed}.admin-page-dots{padding:0 2px;color:#94a3b8}
.hero-support-inline{display:grid!important;width:min(100%,630px);gap:8px!important;margin-top:16px!important;margin-bottom:20px!important;padding:14px 18px!important;border:1px solid rgba(255,255,255,.38)!important;border-radius:24px!important;background:rgba(255,255,255,.12)!important;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);box-shadow:0 10px 30px rgba(0,0,0,.07)!important;color:#fff}.hero-support-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:800}.hero-support-title i{color:#ffd8de}.hero-support-account{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.hero-support-account strong{font-size:18px;letter-spacing:.01em}.hero-support-account span{font-size:12px!important;font-weight:600!important;opacity:.92}.hero-support-inline small{font-size:11px!important;opacity:.9;line-height:1.45}.hero-support-inline small b{font-weight:800}.floating-actions .main-btn,.floating-actions .toggle-btn,.floating-actions .green-btn,.floating-actions .avatar-float-btn{background:linear-gradient(135deg,#12c2ff,#2ba3ff)!important;color:#fff!important;border:0!important}.floating-actions .logout-btn{background:linear-gradient(324deg,#cdaeaa,#ff1a1a)!important;color:#fff!important;border:0!important}
@media(max-width:640px){.admin-pagination{align-items:stretch;padding:12px}.admin-pagination-summary{width:100%;text-align:center}.admin-pagination-buttons{justify-content:center}.admin-page-btn{padding:0 10px}.hero-support-inline{width:100%;padding:13px 15px!important;border-radius:18px!important}.hero-support-account{display:grid;gap:3px}.hero-support-account strong{font-size:17px}}

/* === TEST MASTER V13: ADMIN ACCOUNT + STUDENT SEARCH === */
.admin-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px;flex-wrap:wrap}.admin-page-head h1{margin:6px 0 4px}.admin-page-subtitle{margin:0;color:var(--muted);font-size:14px}.admin-account-card{max-width:940px}.admin-password-section{padding-top:24px;margin-top:4px;border-top:1px solid #edf1f7}.admin-search-bar{display:flex;align-items:center;gap:10px;padding:13px 14px;margin-bottom:14px}.admin-search-main{flex:1;min-width:280px;display:flex;align-items:center;gap:9px;border:1px solid #cfd7e5;border-radius:13px;padding:0 12px;background:#fff}.admin-search-main:focus-within{outline:3px solid rgba(37,99,235,.12);border-color:var(--primary)}.admin-search-main i{color:#7b8ba3}.admin-search-main input{border:0!important;outline:0!important;box-shadow:none!important;padding:11px 0!important}.admin-search-bar select{width:150px;min-width:150px}.admin-search-submit{white-space:nowrap}.admin-search-result-note{font-size:13px;color:#64748b;margin:2px 4px 12px}.admin-status-pill{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}.admin-status-pill.active{background:#e8f8ef;color:#16834b}.admin-status-pill.inactive{background:#fff0f0;color:#bf2e2e}.btn-small{padding:8px 10px!important;min-height:34px!important;font-size:12px!important}
@media(max-width:760px){.admin-page-head{align-items:stretch}.admin-page-head>.btn{width:100%}.admin-search-bar{align-items:stretch;flex-direction:column}.admin-search-main{min-width:0;width:100%}.admin-search-bar select,.admin-search-bar>.btn{width:100%}.admin-account-card .form-grid{grid-template-columns:1fr}}

/* === TEST MASTER V14 ADMIN TOOLS === */
.text-ok{color:#15803d}.text-warn{color:#d97706}
.bulk-action-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0;padding:14px 16px}
.bulk-action-bar select,.bulk-action-bar input{min-height:42px}
.preview-question-card{max-width:900px;margin:0 auto;padding:24px}
.preview-nav{display:grid;grid-template-columns:repeat(10,minmax(38px,1fr));gap:8px;margin-bottom:24px}
.preview-nav .question-number{display:flex;align-items:center;justify-content:center;min-height:38px;border-radius:10px;background:#eff6ff;color:#1d4ed8;font-weight:700;text-decoration:none;border:1px solid #dbeafe}
.preview-nav .question-number.current{background:#2563eb;color:#fff;border-color:#2563eb}
.question-kicker{font-weight:800;color:#2563eb;margin-bottom:10px}
.preview-options{display:grid;gap:10px;margin-top:18px}
.preview-option{padding:14px 16px;border:1px solid #dbeafe;border-radius:14px;background:#fff}
.preview-option.correct{border-color:#22c55e;background:#f0fdf4}.preview-option span{float:right;color:#15803d;font-weight:700}
.import-form{margin-top:10px}.compact-check{display:inline-flex;margin-right:8px;font-size:13px}.admin-quick-tools{margin-top:22px;display:flex;justify-content:space-between;gap:18px;align-items:center;flex-wrap:wrap}
@media(max-width:700px){.preview-nav{grid-template-columns:repeat(5,minmax(38px,1fr))}.bulk-action-bar{align-items:stretch}.bulk-action-bar>*{width:100%}.preview-option span{float:none;display:block;margin-top:6px}}

/* === PHP V3: Laravel-style student account hero === */
.profile-hero-v3{padding:34px 0 82px;position:relative;overflow:hidden;background:linear-gradient(135deg,#1877f2 0%,#3987f7 55%,#5b93f7 100%);color:#fff}
.profile-hero-layout{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) 290px;align-items:center;gap:48px}
.profile-hero-copy{min-width:0}
.profile-hero-copy .hero-badge{display:inline-flex;padding:8px 16px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(255,255,255,.10);font-size:12px;font-weight:800;letter-spacing:.01em;color:#fff}
.profile-hero-copy h1{display:flex;align-items:center;gap:16px;margin:16px 0 10px;font-size:clamp(34px,4.2vw,58px);line-height:1.05;font-weight:800;letter-spacing:-.025em;color:#fff}
.profile-title-avatar{display:inline-flex;align-items:center;justify-content:center;font-size:.85em;line-height:1;filter:drop-shadow(0 4px 8px rgba(0,0,0,.10))}
.profile-hero-copy p{max-width:730px;margin:0;font-size:16px;line-height:1.65;color:rgba(255,255,255,.94);font-weight:500}
.profile-username-card{justify-self:end;width:100%;display:flex;align-items:center;gap:16px;padding:20px 22px;border-radius:22px;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.16);box-shadow:0 10px 30px rgba(28,89,176,.12);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.profile-username-avatar{width:66px;height:66px;flex:0 0 66px;display:grid;place-items:center;border-radius:20px;background:#fff;font-size:38px;line-height:1;box-shadow:0 8px 20px rgba(0,0,0,.08)}
.profile-username-info{min-width:0;display:grid;gap:3px}.profile-username-info span{font-size:12px;font-weight:700;color:rgba(255,255,255,.82)}.profile-username-info strong{font-size:26px;line-height:1.15;color:#fff;font-weight:800;overflow-wrap:anywhere}
.profile-content-v3{padding-top:34px;padding-bottom:72px}.profile-edit-card{padding:28px}.readonly-account-field{background:#f6f8fb!important;color:#65758b!important;cursor:not-allowed}
@media(max-width:820px){.profile-hero-v3{padding:28px 0 72px}.profile-hero-layout{grid-template-columns:1fr;gap:24px}.profile-username-card{justify-self:start;max-width:360px}.profile-hero-copy h1{font-size:clamp(34px,9vw,50px)}}
@media(max-width:520px){.profile-hero-copy h1{gap:10px;font-size:34px}.profile-hero-copy p{font-size:14px}.profile-username-card{padding:15px 16px;border-radius:18px}.profile-username-avatar{width:54px;height:54px;flex-basis:54px;font-size:31px;border-radius:16px}.profile-username-info strong{font-size:22px}.profile-edit-card{padding:20px}}

/* === PHP V5: stable admin search/pagination + Laravel-style preview === */
.admin-preview-page{padding-bottom:40px}.preview-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:24px}.preview-heading h1{margin:8px 0 10px;font-size:clamp(34px,5vw,58px);letter-spacing:-.03em}.preview-heading p{margin:0;color:#64748b;font-size:16px}.preview-stage{max-width:900px;margin:0 auto;padding:24px;border-radius:22px}.preview-stage .preview-nav{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:8px;margin:0 0 26px}.preview-stage .question-number{min-height:40px;height:40px;border-radius:10px;border:1px solid #cfe0f7;background:#eff6ff;color:#0f4bd8;font-size:15px;font-weight:800}.preview-stage .question-number:hover{border-color:#7eb0ff;background:#e6f0ff}.preview-stage .question-number.current{background:linear-gradient(135deg,#2563eb,#377df3);color:#fff;border-color:#2563eb;box-shadow:0 7px 18px rgba(37,99,235,.2)}.preview-question-panel{padding-top:2px}.preview-question-panel .question-kicker{margin-bottom:14px;font-size:15px;font-weight:800;color:#2563eb}.preview-question-text{margin:0 0 20px;font-size:clamp(20px,2.4vw,26px);line-height:1.45;letter-spacing:-.015em}.preview-options{display:grid;gap:10px;margin:0}.preview-option{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;padding:14px 16px;border:1px solid #d7e5f7;border-radius:14px;background:#fff;color:#243247}.preview-option-main{display:flex;align-items:flex-start;gap:5px;min-width:0}.preview-option-main strong{color:#0f172a}.preview-option.correct{border-color:#22c55e;background:#effcf3}.preview-correct-label{flex:0 0 auto;color:#15803d;font-size:14px}.preview-explanation{margin-top:18px;padding:20px 22px;border:1px solid #d6e4f4;border-radius:18px;background:#f8fbff}.preview-explanation strong{display:block;margin-bottom:12px;font-size:16px}.preview-explanation div{color:#334155;line-height:1.7}.admin-pagination .disabled{pointer-events:none}
@media(max-width:700px){.preview-heading{align-items:stretch}.preview-heading>.btn{width:100%}.preview-stage{padding:16px}.preview-stage .preview-nav{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.preview-option{align-items:flex-start;flex-direction:column}.preview-correct-label{margin-left:0}.preview-question-text{font-size:20px}}

/* === PHP V6: preview option text parity with Laravel UI === */
.preview-stage .preview-option .preview-option-main span{
    float:none;
    color:#334155;
    font-weight:400;
}
.preview-stage .preview-option .preview-option-main strong{
    color:#0f172a;
    font-weight:800;
}
.preview-stage .preview-option.correct .preview-option-main span,
.preview-stage .preview-option.correct .preview-option-main strong{
    color:#0f172a;
}
.preview-stage .preview-option .preview-correct-label{
    float:none;
    color:#15803d;
    font-weight:800;
}


/* === PHP V8: history headings + result status colors === */
.history-row.history-header{
    background:#f8fafc;
    border-top:0;
    padding-top:12px;
    padding-bottom:12px;
    color:#64748b;
    font-size:12px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.history-row.history-header>div:nth-child(3),
.history-row.history-header>div:nth-child(4){
    text-align:left;
}
.status-badge.status-correct{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:58px;
    padding:5px 10px;
    border-radius:999px;
    background:#dcfce7;
    color:#15803d;
    font-weight:800;
}
.status-badge.status-wrong{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:58px;
    padding:5px 10px;
    border-radius:999px;
    background:#fee2e2;
    color:#dc2626;
    font-weight:800;
}
@media(max-width:820px){
    .history-row.history-header{display:none}
}


/* local svg floating icons */
.float-btn{position:relative;overflow:hidden}
.float-icon-img{width:24px;height:24px;display:block;object-fit:contain;filter:drop-shadow(0 1px 1px rgba(0,0,0,.08))}
.float-icon-sm{width:18px;height:18px}
.avatar-float-inner{display:grid;place-items:center;width:100%;height:100%;font-size:24px;line-height:1}
.float-btn.main-btn,.float-btn.toggle-btn,.float-btn.avatar-float-btn{background:linear-gradient(135deg,#1ac4ff,#2f86ff)!important;border:1px solid rgba(255,255,255,.24)!important}
.float-btn.logout-btn{background:linear-gradient(135deg,#ff7b7b,#ff3434)!important;border:1px solid rgba(255,255,255,.16)!important}
.float-btn:hover{box-shadow:0 16px 34px rgba(18,133,255,.28)}
.float-btn.logout-btn:hover{box-shadow:0 16px 34px rgba(255,52,52,.25)}
.float-group{gap:11px}
@media(max-width:640px){.float-icon-img{width:22px;height:22px}.float-icon-sm{width:16px;height:16px}.avatar-float-inner{font-size:22px}}

/* V24 - Lịch sử thi theo môn */
.history-subject-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 18px}.history-subject-tab{min-height:58px;padding:11px 16px;border:1px solid #dce6f5;border-radius:17px;background:#fff;color:#475569;text-decoration:none;display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:850;box-shadow:0 8px 24px rgba(31,60,102,.05);transition:.2s ease}.history-subject-tab strong{min-width:30px;height:30px;padding:0 8px;border-radius:999px;background:#eef4ff;color:#2563eb;display:grid;place-items:center;font-size:12px}.history-subject-tab:hover{transform:translateY(-2px);border-color:#b8cff3}.history-subject-tab.active{background:linear-gradient(135deg,#0d6efd,#4f8cff);border-color:transparent;color:#fff;box-shadow:0 12px 28px rgba(13,110,253,.2)}.history-subject-tab.active strong{background:rgba(255,255,255,.2);color:#fff}.history-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.history-actions form{margin:0}.history-actions .mini-action{min-height:36px}.retry-result-notice{margin:18px 0;padding:17px 20px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-color:#bfdbfe;background:#f5f9ff}.retry-result-notice strong{color:#1d4ed8}.retry-result-notice span{color:#64748b;flex:1;min-width:220px}.retry-saved-note strong{font-size:16px!important;color:#15803d!important}.result-bottom-actions{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap}.result-bottom-actions form{margin:0}
@media(max-width:820px){.history-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.history-actions form,.history-actions .mini-action,.history-actions button{width:100%}.history-row .history-actions .mini-action{grid-column:auto}.history-subject-tabs{gap:8px}.history-subject-tab{padding:10px 12px}}
@media(max-width:520px){.history-subject-tabs{grid-template-columns:1fr}.history-subject-tab{min-height:50px}.history-actions{grid-template-columns:1fr}.retry-result-notice{align-items:flex-start}.retry-result-notice .mini-action{width:100%}.result-bottom-actions,.result-bottom-actions form,.result-bottom-actions .btn{width:100%}}

/* V30 - question image admin/result/preview */
.question-image-admin{display:grid;gap:12px;padding:16px;border:1px dashed #cbd5e1;border-radius:16px;background:#f8fbff}.question-image-admin-head strong{font-size:16px}.question-image-admin-head p{margin:4px 0 0;color:#64748b;font-size:13px;font-weight:500}.question-image-current{display:flex;align-items:center;justify-content:center;min-height:120px;max-height:260px;padding:10px;border:1px solid #dbe4f0;border-radius:14px;background:#fff;overflow:hidden}.question-image-current img{max-width:100%;max-height:240px;object-fit:contain}.question-image-remove{color:#b91c1c}.question-image-admin small{color:#64748b;font-weight:500}.preview-question-image{height:300px;margin:0 0 18px;display:flex;align-items:center;justify-content:center;padding:8px;border:1px solid #e2e8f0;border-radius:16px;background:#fff;overflow:hidden}.preview-question-image img{max-width:100%;max-height:100%;object-fit:contain}.result-question-image{height:240px;margin:12px 0;display:flex;align-items:center;justify-content:center;padding:8px;border:1px solid #e2e8f0;border-radius:14px;background:#fff;overflow:hidden}.result-question-image img{max-width:100%;max-height:100%;object-fit:contain}@media(max-width:640px){.preview-question-image{height:200px}.result-question-image{height:180px}}

/* V34 - compact admin exam editor */
.admin-exam-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin:2px 0 12px;
}
.admin-exam-head h1{
    margin:0;
    font-size:clamp(30px,3vw,40px);
}
.admin-exam-head-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    flex-wrap:wrap;
}
.admin-exam-question-count{
    min-height:40px;
    padding:0 14px;
    border:1px solid #d6e2f2;
    border-radius:999px;
    background:#fff;
    color:#1e293b;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-weight:900;
    white-space:nowrap;
    box-shadow:0 7px 20px rgba(31,60,102,.05);
}
.admin-exam-add-btn{
    min-height:40px;
    padding:0 15px;
}
.admin-exam-form{
    margin-top:0;
    padding:16px 18px;
    gap:12px;
}
.admin-exam-fields{
    display:grid;
    grid-template-columns:minmax(300px,2.25fr) minmax(110px,.7fr) minmax(160px,1fr) minmax(110px,.7fr);
    gap:12px;
    align-items:end;
}
.admin-exam-fields label{
    gap:5px;
    font-size:13px;
}
.admin-exam-fields input,
.admin-exam-fields select{
    min-height:42px;
    padding:9px 11px;
    border-radius:10px;
}
.admin-exam-toolbar{
    padding-top:10px;
    border-top:1px solid #edf1f7;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
}
.admin-exam-status{
    min-width:0;
    display:flex;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
}
.admin-exam-status .check-label{
    white-space:nowrap;
    font-size:13px;
}
.admin-exam-status>.muted{
    font-size:12px;
    line-height:1.35;
}
.admin-exam-buttons{
    flex-wrap:nowrap;
    justify-content:flex-end;
}
.admin-exam-buttons .btn{
    min-height:40px;
    padding:0 14px;
    font-size:13px;
}
.admin-exam-questions{
    margin-top:16px;
}
.admin-exam-questions .admin-import-box{
    margin-bottom:16px;
}
@media(max-width:980px){
    .admin-exam-fields{
        grid-template-columns:minmax(240px,2fr) repeat(3,minmax(105px,1fr));
    }
    .admin-exam-toolbar{
        align-items:flex-start;
        flex-direction:column;
    }
    .admin-exam-buttons{
        width:100%;
        justify-content:flex-start;
    }
}
@media(max-width:760px){
    .admin-exam-head{
        align-items:flex-start;
        flex-direction:column;
        margin-bottom:10px;
    }
    .admin-exam-head-actions{
        width:100%;
        justify-content:flex-start;
    }
    .admin-exam-fields{
        grid-template-columns:1fr 1fr;
    }
    .admin-exam-name-field{
        grid-column:1/-1;
    }
}
@media(max-width:520px){
    .admin-exam-head h1{font-size:28px}
    .admin-exam-head-actions{
        display:grid;
        grid-template-columns:1fr 1fr;
    }
    .admin-exam-question-count,
    .admin-exam-add-btn{width:100%}
    .admin-exam-form{padding:14px}
    .admin-exam-fields{grid-template-columns:1fr}
    .admin-exam-name-field{grid-column:auto}
    .admin-exam-status{align-items:flex-start;flex-direction:column;gap:5px}
    .admin-exam-buttons{
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:8px;
    }
    .admin-exam-buttons .btn{width:100%}
    .admin-exam-buttons .btn:first-child{grid-column:1/-1}
}

/* === TEST MASTER V35: COMPACT EXCEL IMPORT === */
.admin-exam-questions .admin-import-box-compact{
    margin-bottom:10px;
    padding:11px 14px;
    display:grid;
    grid-template-columns:minmax(300px,1fr) minmax(440px,1.05fr);
    align-items:center;
    gap:14px;
    border-radius:16px;
}
.admin-import-info{min-width:0;display:grid;gap:2px}
.admin-import-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;line-height:1.2}
.admin-import-title-row strong{font-size:14px}
.admin-import-template{font-size:12px;font-weight:800;color:var(--primary);white-space:nowrap}
.admin-import-template:hover{text-decoration:underline}
.admin-import-info>.muted{font-size:12px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-import-form-compact{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin:0}
.admin-import-form-compact input[type=file]{
    width:100%;min-width:0;min-height:38px;padding:5px 8px;border:1px solid #cfd7e5;border-radius:10px;background:#fff;font-size:12px
}
.admin-import-form-compact .btn{min-height:38px;padding:0 14px;font-size:12px;white-space:nowrap}
@media(max-width:980px){
    .admin-exam-questions .admin-import-box-compact{grid-template-columns:1fr;gap:8px}
    .admin-import-info>.muted{white-space:normal}
}
@media(max-width:520px){
    .admin-exam-questions .admin-import-box-compact{padding:10px 11px}
    .admin-import-form-compact{grid-template-columns:1fr}
    .admin-import-form-compact .btn{width:100%}
}
/* Pet V2 floating shortcut: student accounts only. */
.floating-actions .companion-float-btn{display:flex!important;align-items:center;justify-content:center;padding:5px!important;background:linear-gradient(135deg,#1ac4ff,#2f86ff)!important;color:#fff!important;border:1px solid rgba(255,255,255,.24)!important;box-shadow:0 10px 25px rgba(24,181,249,.18)!important}.floating-actions .companion-float-text{font-size:11px;font-weight:1000;line-height:1;letter-spacing:.04em;color:#fff!important}

/* X5 - Exam Pet reward dialog */
.exam-reward-overlay{position:fixed;inset:0;z-index:12000;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(8,25,18,.72);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.exam-reward-overlay.is-open{display:flex}
.exam-reward-dialog{position:relative;width:min(92vw,430px);border:1px solid rgba(255,255,255,.72);border-radius:28px;background:linear-gradient(180deg,#fff 0%,#f4fbf4 100%);box-shadow:0 26px 70px rgba(0,0,0,.34);overflow:hidden;animation:examRewardPop .3s ease-out}
.exam-reward-dialog::before{content:"";position:absolute;left:8%;right:8%;top:-90px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(255,224,88,.32),rgba(255,224,88,0) 70%);pointer-events:none}
.exam-reward-content{position:relative;padding:30px 26px 26px;text-align:center;color:#20372a}
.exam-reward-close{position:absolute;z-index:2;right:12px;top:12px;width:34px;height:34px;border:0;border-radius:50%;background:rgba(28,64,43,.08);color:#365745;font-size:22px;line-height:1;cursor:pointer}
.exam-reward-kicker{display:inline-flex;padding:7px 12px;border-radius:999px;background:#e8f7e9;color:#1d773c;font-size:11px;font-weight:900;letter-spacing:.08em}.exam-reward-kicker.is-consolation{background:#eef3f8;color:#556a78}
.exam-reward-content h2{margin:12px 0 8px;font-size:28px;line-height:1.1;color:#194b2c}.exam-reward-lead{margin:0 auto 14px;max-width:330px;font-size:14px;line-height:1.55;color:#52665a}.exam-reward-sub{margin:12px auto 0;max-width:330px;font-size:12px;line-height:1.5;color:#6b7b72}
.exam-reward-chest{width:126px;height:116px;margin:8px auto 8px;display:flex;align-items:center;justify-content:center;animation:examRewardFloat 1.7s ease-in-out infinite}.exam-reward-chest img{width:104px;height:104px;object-fit:contain;filter:drop-shadow(0 12px 14px rgba(85,62,14,.22))}
.exam-reward-milestone{display:inline-block;margin:2px 0 13px;padding:8px 12px;border-radius:12px;background:#fff6c8;color:#755817;font-size:12px}
.exam-reward-claim-btn{width:min(100%,300px);min-height:48px;margin-top:8px;border:0;border-radius:16px;background:linear-gradient(135deg,#38ad61,#168a45);color:#fff;font-size:14px;font-weight:900;letter-spacing:.03em;box-shadow:0 10px 22px rgba(30,139,69,.25);cursor:pointer;transition:transform .18s ease,filter .18s ease}.exam-reward-claim-btn:hover{transform:translateY(-2px);filter:brightness(1.04)}.exam-reward-claim-btn:disabled{opacity:.7;cursor:wait;transform:none}.exam-reward-claim-btn.is-stone{background:linear-gradient(135deg,#4b9ed9,#3179b8);box-shadow:0 10px 22px rgba(49,121,184,.22)}
.exam-reward-content small{display:block;margin-top:10px;font-size:10px;color:#7a8b81}
.exam-reward-stone{margin:22px auto 8px;width:max-content;padding:16px 24px;border-radius:18px;background:linear-gradient(145deg,#edf8ff,#dbeefa);font-size:20px;color:#2a74a9;box-shadow:inset 0 0 0 1px rgba(70,151,205,.16)}.exam-reward-stone.is-received{font-size:30px;font-weight:900;animation:examRewardPulse .6s ease-out}
.exam-reward-pet-reveal{width:170px;height:170px;margin:8px auto 2px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:radial-gradient(circle,#fff7b9 0%,#eaf8e8 57%,rgba(234,248,232,0) 72%);animation:examRewardPulse .55s ease-out}.exam-reward-pet-reveal img{width:138px;height:138px;object-fit:contain;filter:drop-shadow(0 12px 15px rgba(27,64,37,.22))}
.exam-reward-rarity{display:inline-block;padding:7px 14px;border-radius:999px;background:#e9f5e8;color:#2a713e;font-size:12px;font-weight:900}.exam-reward-pending{margin:10px auto 0;max-width:330px;padding:9px 10px;border-radius:12px;background:#fff1d9;color:#8a5d17;font-size:11px;font-weight:700}.exam-reward-error{margin-top:12px;padding:9px 10px;border-radius:10px;background:#ffe6e6;color:#a52d2d;font-size:11px;font-weight:700}
.pet-consolation-received{border-left:4px solid #4c9fd4}
@keyframes examRewardPop{from{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes examRewardFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes examRewardPulse{0%{transform:scale(.78);opacity:.35}70%{transform:scale(1.06);opacity:1}100%{transform:scale(1);opacity:1}}
@media(max-width:520px){.exam-reward-overlay{padding:12px}.exam-reward-dialog{border-radius:23px}.exam-reward-content{padding:27px 18px 22px}.exam-reward-content h2{font-size:24px}.exam-reward-chest{width:112px;height:104px}.exam-reward-chest img{width:94px;height:94px}.exam-reward-pet-reveal{width:148px;height:148px}.exam-reward-pet-reveal img{width:122px;height:122px}}

/* X15: phần thưởng bài thi gọn, chỉ tập trung vào Honor và Pet thực nhận. */
.exam-reward-combo{display:grid;justify-items:center;gap:2px;margin:2px 0 4px}.exam-reward-combo .exam-reward-pet-reveal{margin:0 auto}.exam-reward-combo>strong{font-size:14px;color:#245a39}

/* Question audio administration / preview / results */
.question-audio-admin{padding:16px;border:1px solid #d8e6f4;border-radius:16px;background:#f8fbff}.question-audio-current{margin:10px 0}.question-audio-current audio,.preview-question-audio audio,.result-question-audio audio{width:100%;max-width:620px}.preview-question-audio{margin:0 0 18px;padding:10px 12px;border:1px solid #d8e6f4;border-radius:14px;background:#f8fbff}.result-question-audio{margin:12px 0;padding:9px 11px;border:1px solid #dce8f4;border-radius:12px;background:#f8fbff}.question-audio-limit-note{margin-top:10px;padding:11px 13px;border:1px solid #f0d28a;border-radius:12px;background:#fff8e7;color:#875b00;font-size:13px;font-weight:700}.admin-listening-mark{display:inline-flex;align-items:center;justify-content:center;margin-right:3px;vertical-align:middle}

/* Rich math typography: plain-text 3/4 and cm2 stay simple in DB/Excel, display is formatted here. */
.tm-fraction{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;vertical-align:middle;position:relative;top:-.03em;text-align:center;line-height:1;font-size:.88em;margin:0 .12em;white-space:nowrap}.tm-frac-num{padding:0 .16em .08em;border-bottom:1.35px solid currentColor}.tm-frac-den{padding:.08em .16em 0}.tm-unit-power{font-size:.66em;line-height:0;vertical-align:super;position:relative;top:-.08em;margin-left:.02em}.answer-text .tm-fraction,.preview-option .tm-fraction{font-size:.9em}

/* Bulk exam import */
.admin-bulk-import-card{display:grid;gap:18px;max-width:1100px;margin:0 auto}.admin-bulk-config{display:grid;grid-template-columns:180px 220px minmax(220px,1fr);gap:14px}.admin-bulk-open-toggle{align-content:end}.admin-bulk-check{min-height:46px;display:flex;align-items:center;gap:9px;padding:0 13px;border:1px solid #cfd7e5;border-radius:12px;background:#f8fafc}.admin-bulk-check input{width:auto}.admin-bulk-sequence{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.admin-bulk-sequence>div{padding:14px 16px;border:1px solid #dbe4f2;border-radius:16px;background:#f8fbff}.admin-bulk-sequence>div.next{background:linear-gradient(135deg,#eef5ff,#f7fbff);border-color:#bfd5ff}.admin-bulk-sequence span{display:block;font-size:11px;font-weight:800;color:#718096;margin-bottom:4px}.admin-bulk-sequence strong{font-size:20px}.admin-bulk-drop{min-height:190px;border:2px dashed #b9cae6;border-radius:20px;background:#f8fbff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:7px;padding:24px;cursor:pointer;transition:.18s ease}.admin-bulk-drop:hover,.admin-bulk-drop.dragging{border-color:#2f80ed;background:#eef5ff;transform:translateY(-1px)}.admin-bulk-drop input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}.admin-bulk-drop-icon{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;background:#e8f1ff;color:#1f6fe5;font-size:24px}.admin-bulk-drop strong{font-size:18px}.admin-bulk-drop small{color:#6b7b91;max-width:720px}.admin-bulk-note{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:14px;background:#fff9e9;border:1px solid #f3df9b;color:#745b13;font-size:13px}.admin-bulk-selection{border:1px solid #e2e8f0;border-radius:16px;overflow:hidden}.admin-bulk-selection-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.admin-bulk-file-list{max-height:360px;overflow:auto}.admin-bulk-file-row{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;padding:10px 12px;border-top:1px solid #edf1f7}.admin-bulk-file-row:first-child{border-top:0}.admin-bulk-file-row .num{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#edf4ff;color:#1f6fd8;font-weight:900}.admin-bulk-file-row strong{display:block;font-size:13px}.admin-bulk-file-row small{display:block;color:#7b8798;margin-top:2px}.admin-bulk-file-row .size{font-size:11px;color:#7b8798}.admin-bulk-progress{display:grid;gap:10px;padding:14px;border:1px solid #dbe4f2;border-radius:16px;background:#f8fbff}.admin-bulk-progress-head{display:flex;justify-content:space-between;gap:10px}.admin-bulk-progress-track{height:10px;border-radius:999px;background:#e4eaf3;overflow:hidden}.admin-bulk-progress-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,#0d6efd,#51a2ff);transition:width .2s ease}.admin-bulk-results{display:grid;gap:6px;max-height:240px;overflow:auto}.admin-bulk-result{padding:8px 10px;border-radius:10px;font-size:12px}.admin-bulk-result.ok{background:#edf9f1;color:#167347}.admin-bulk-result.error{background:#fff0f0;color:#b42318}.admin-bulk-result.done{background:#e9f2ff;color:#155db8;font-weight:800}.admin-bulk-result.warn{background:#fff7e8;color:#8b5b00}.admin-bulk-actions{padding-top:2px}.admin-page-head-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
@media(max-width:760px){.admin-bulk-config,.admin-bulk-sequence{grid-template-columns:1fr}.admin-bulk-file-row{grid-template-columns:38px 1fr}.admin-bulk-file-row .size{grid-column:2}.admin-bulk-actions .btn{width:100%}.admin-page-head-actions{width:100%}.admin-page-head-actions .btn{flex:1}}


/* Vip5: single-exam create helper + direct XLSX import */
.admin-exam-create-meta{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:12px;padding:11px 14px;border:1px solid #d9e6fb;border-radius:12px;background:#f7faff;color:#627189;font-size:13px}.admin-exam-create-meta strong{color:#1769e8}.admin-exam-direct-import{margin-top:12px;padding:14px;border:1px dashed #cbdcf6;border-radius:14px;background:#fbfdff}.admin-exam-direct-import label{display:grid;gap:7px}.admin-exam-direct-import label>span{font-weight:800;color:#243147}.admin-exam-direct-import small{font-weight:500;color:#7b8799}.admin-exam-direct-import input[type=file]{width:100%;padding:10px;border:1px solid #d7e1ef;border-radius:10px;background:#fff}.admin-exam-direct-import p{margin:8px 0 0;font-size:12px}

/* Admin dynamic subjects */
.subject-create-card{margin-bottom:22px}.admin-field-label{display:block;font-weight:700;margin-bottom:8px}.subject-grade-grid{display:grid;grid-template-columns:repeat(12,minmax(44px,1fr));gap:8px;margin:10px 0 14px}.subject-grade-grid label{display:flex;align-items:center;justify-content:center;gap:5px;padding:9px 6px;border:1px solid #dbe4ef;border-radius:10px;background:#fff;cursor:pointer}.subject-admin-list{display:grid;gap:14px}.subject-admin-card{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:end}.subject-admin-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.subject-name-input{font-size:20px;font-weight:800;border:0;border-bottom:1px solid #dbe4ef;padding:6px 0;background:transparent;width:min(420px,100%)}.subject-admin-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}@media(max-width:900px){.subject-grade-grid{grid-template-columns:repeat(6,1fr)}.subject-admin-card{grid-template-columns:1fr}}@media(max-width:560px){.subject-grade-grid{grid-template-columns:repeat(4,1fr)}}

/* === TEST MASTER V36: polished exam reward dialog + Virtual Pet usage note === */
.exam-reward-overlay{background:radial-gradient(circle at 50% 20%,rgba(54,122,83,.22),transparent 34%),rgba(8,22,15,.78);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.exam-reward-dialog{width:min(94vw,470px);border:1px solid rgba(255,255,255,.84);border-radius:30px;background:linear-gradient(180deg,#fffef8 0%,#f7fcf7 52%,#f1f8f3 100%);box-shadow:0 30px 90px rgba(0,0,0,.38),inset 0 1px 0 #fff;overflow:hidden}
.exam-reward-dialog::before{left:-10%;right:-10%;top:-132px;height:250px;background:radial-gradient(circle,rgba(255,222,89,.42) 0%,rgba(255,222,89,.14) 38%,rgba(255,222,89,0) 70%)}
.exam-reward-dialog::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 12% 28%,rgba(81,181,110,.08),transparent 24%),radial-gradient(circle at 88% 64%,rgba(255,203,66,.08),transparent 24%)}
.exam-reward-content{z-index:1;padding:28px 28px 26px}
.exam-reward-close{right:13px;top:13px;width:36px;height:36px;background:rgba(37,75,50,.08);color:#557160;font-size:23px;transition:.16s ease}
.exam-reward-close:hover{background:rgba(37,75,50,.14);transform:rotate(4deg)}
.exam-reward-celebrate{height:44px;display:flex;align-items:center;justify-content:center;gap:12px;margin:-2px 0 2px;color:#d4a828;user-select:none}
.exam-reward-celebrate span{font-size:16px;animation:examRewardTwinkle 1.5s ease-in-out infinite alternate}.exam-reward-celebrate span:last-child{animation-delay:.35s}
.exam-reward-celebrate b{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:linear-gradient(145deg,#fff5b3,#e6b62f);color:#fff9cf;font-size:22px;text-shadow:0 1px 2px rgba(111,75,0,.35);box-shadow:0 7px 18px rgba(201,152,24,.2),inset 0 1px 0 rgba(255,255,255,.8)}
.exam-reward-kicker{padding:7px 13px;background:linear-gradient(145deg,#eaf8ed,#ddf2e3);border:1px solid #c8e7d0;color:#24713d;box-shadow:inset 0 1px 0 rgba(255,255,255,.85)}
.exam-reward-kicker.is-consolation{background:linear-gradient(145deg,#edf5fb,#e4eff8);border-color:#cedfeb;color:#4e6e82}
.exam-reward-content h2{margin:11px 0 6px;font-size:27px;letter-spacing:-.025em;color:#1e4d30}.exam-reward-lead{margin:0 auto 14px;max-width:350px;color:#617568}
.exam-reward-prize-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px auto 8px}.exam-reward-prize-grid.is-single{grid-template-columns:minmax(0,250px);justify-content:center}
.exam-reward-prize{min-width:0;min-height:142px;padding:13px 10px 12px;border-radius:19px;border:1px solid #dde9df;background:rgba(255,255,255,.8);box-shadow:0 8px 22px rgba(42,77,54,.07),inset 0 1px 0 #fff;display:grid;justify-items:center;align-content:center;gap:4px}
.exam-reward-prize small{margin:0!important;font-size:9px!important;font-weight:1000;letter-spacing:.75px;color:#819187;text-transform:uppercase}
.exam-reward-prize strong{display:block;max-width:100%;font-size:18px;color:#285d3b;line-height:1.18;overflow-wrap:anywhere}
.exam-reward-prize--honor{background:radial-gradient(circle at 50% 25%,rgba(255,238,154,.56),transparent 42%),linear-gradient(160deg,#fffef8,#fff7d9);border-color:#eadb9b}
.exam-reward-prize--honor .exam-reward-prize-icon{display:grid;place-items:center;width:50px;height:50px;border-radius:50%;background:linear-gradient(145deg,#ffe997,#dcae27);color:#fff9ce;font-size:26px;text-shadow:0 1px 2px #9f7714;box-shadow:0 8px 16px rgba(175,128,11,.16),inset 0 1px 0 #fff7c9}
.exam-reward-prize--honor strong{font-size:25px;color:#9a6d09}
.exam-reward-prize--pet{background:radial-gradient(circle at 50% 34%,rgba(215,245,220,.86),transparent 45%),linear-gradient(160deg,#fbfffc,#edf8ef);border-color:#cfe6d5}
.exam-reward-mini-pet{width:78px;height:72px;display:flex;align-items:center;justify-content:center}.exam-reward-mini-pet img{width:72px;height:72px;object-fit:contain;filter:drop-shadow(0 7px 8px rgba(40,76,52,.18));animation:examRewardPetPop .45s ease-out both}
.exam-reward-sub{margin:9px auto 0;max-width:355px;font-size:11px;color:#718078}
.exam-reward-game-note{display:grid;grid-template-columns:38px 1fr;gap:10px;align-items:center;margin:14px auto 4px;padding:11px 12px;border:1px solid #d8e8dd;border-radius:15px;background:linear-gradient(145deg,#f8fcf9,#edf7f0);text-align:left;box-shadow:inset 0 1px 0 #fff}
.exam-reward-game-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#dff1e5;font-size:20px}.exam-reward-game-note>div{display:grid;gap:2px}.exam-reward-game-note strong{font-size:11px;color:#2d6742}.exam-reward-game-note span:not(.exam-reward-game-icon){font-size:9.5px;line-height:1.4;color:#6e8075}
.exam-reward-claim-btn{width:min(100%,320px);min-height:50px;margin-top:12px;border-radius:16px;font-size:13px;box-shadow:0 12px 24px rgba(30,139,69,.24)}
.exam-reward-pending{max-width:355px;margin-top:10px}
@keyframes examRewardTwinkle{from{opacity:.45;transform:scale(.8)}to{opacity:1;transform:scale(1.12)}}
@keyframes examRewardPetPop{from{opacity:0;transform:translateY(6px) scale(.76)}to{opacity:1;transform:none}}
@media(max-width:520px){.exam-reward-dialog{border-radius:24px}.exam-reward-content{padding:24px 16px 20px}.exam-reward-celebrate{height:40px}.exam-reward-celebrate b{width:38px;height:38px}.exam-reward-content h2{font-size:23px}.exam-reward-prize-grid{gap:8px}.exam-reward-prize{min-height:128px;padding:11px 7px;border-radius:16px}.exam-reward-prize strong{font-size:15px}.exam-reward-prize--honor strong{font-size:22px}.exam-reward-mini-pet,.exam-reward-mini-pet img{width:64px;height:64px}.exam-reward-game-note{grid-template-columns:34px 1fr;padding:9px 10px}.exam-reward-game-icon{width:34px;height:34px;font-size:18px}}
@media(prefers-reduced-motion:reduce){.exam-reward-celebrate span,.exam-reward-mini-pet img{animation:none!important}}

/* Exam import format selector */
.admin-import-mode{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}.admin-import-mode>strong,.admin-bulk-mode>span{font-size:12px;font-weight:800;color:#44536a}.admin-import-mode label{display:inline-flex!important;align-items:center;gap:7px;padding:8px 11px;border:1px solid #d7e1ef;border-radius:10px;background:#fff;cursor:pointer;font-weight:700!important;color:#2b3a50}.admin-import-mode input[type=radio]{width:auto!important;margin:0}.admin-import-mode-compact{grid-column:1/-1;margin:0}.admin-bulk-mode{grid-column:1/-1;display:grid;gap:6px}.admin-bulk-mode .admin-import-mode{margin-top:0}
@media(max-width:760px){.admin-import-mode{align-items:stretch}.admin-import-mode label{flex:1 1 100%}}

/* Admin account gate */
.admin-account-page{background:#fff!important}.admin-account-page .floating-actions{display:flex!important}.admin-account-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.admin-account-gate{width:min(100%,520px);text-align:center;color:#334155}.admin-account-gate p{margin:0;font-size:15px;font-weight:700}.admin-account-gate-form{width:min(240px,78vw);margin:18px auto 0}.admin-account-gate-form.is-hidden{display:none}.admin-account-gate-form input[type=password]{text-align:center;letter-spacing:.18em}.admin-account-edit-form{width:min(100%,430px);display:grid;gap:16px;margin:0}.admin-account-edit-form .btn{width:100%}

/* Softer admin destructive actions */
.btn-danger{background:#b86b6b;color:#fff;box-shadow:none}.btn-danger:hover{background:#a85f5f}.btn-danger:disabled{background:#c9a1a1;color:#f8eeee}

/* Admin action palette */
.is-admin .btn-danger{background:#d15e09!important;color:#fff!important;box-shadow:0 8px 18px rgba(209,94,9,.16)!important}
.is-admin .btn-danger:hover{background:#bd5306!important}
.is-admin .admin-add-btn{background:#0fa7d7!important;color:#fff!important;box-shadow:0 10px 22px rgba(15,167,215,.18)!important}
.is-admin .admin-add-btn:hover{background:#0d96c2!important}

/* Admin account V2 */
.admin-account-shell{min-height:100vh;display:grid;place-items:center;padding:28px 18px!important}
.admin-account-card-v2{width:min(100%,680px);margin:0;padding:26px;border-radius:22px;box-shadow:0 20px 60px rgba(15,23,42,.10)}
.admin-account-v2-head{display:grid;grid-template-columns:54px 1fr;gap:15px;align-items:start;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid #e7edf5}
.admin-account-v2-icon{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;background:#eff6ff;color:#2563eb;font-size:25px;font-weight:900}
.admin-account-v2-head h1{margin:3px 0 5px;font-size:26px;line-height:1.1;color:#0f172a}
.admin-account-v2-head p{margin:0;color:#64748b;font-size:13px;line-height:1.55}
.admin-account-edit-form-v2{display:grid;gap:15px;margin:0}
.admin-account-field-v2{display:grid;gap:6px;min-width:0}
.admin-account-field-v2>span{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.035em;color:#64748b}
.admin-account-field-v2 input{width:100%;box-sizing:border-box;height:44px;padding:9px 12px;border:1px solid #d5dfeb;border-radius:12px;background:#fff;color:#0f172a;font:800 13px "Segoe UI",Arial,sans-serif;outline:0;transition:border-color .15s ease,box-shadow .15s ease}
.admin-account-field-v2 input:focus{border-color:#60a5fa;box-shadow:0 0 0 3px rgba(59,130,246,.11)}
.admin-account-field-v2 small{font-size:10px;color:#94a3b8}
.admin-account-password-grid-v2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.admin-account-v2-note{padding:10px 12px;border-radius:11px;background:#f8fafc;border:1px solid #edf1f6;color:#64748b;font-size:10px;line-height:1.45}
.admin-account-save-v2{width:100%!important;min-height:43px!important;justify-content:center!important;margin-top:2px;font-size:11px!important;letter-spacing:.02em}
/* Pet catalog: do not inherit the global orange .btn-danger admin rule. */
.is-admin .pet-catalog-delete,.pet-catalog-delete{background:#1e5303!important;border-color:#1e5303!important;color:#fff!important;box-shadow:0 8px 18px rgba(30,83,3,.14)!important}
.is-admin .pet-catalog-delete:hover,.pet-catalog-delete:hover{background:#173f03!important;border-color:#173f03!important}
@media(max-width:620px){.admin-account-card-v2{padding:19px}.admin-account-password-grid-v2{grid-template-columns:1fr}.admin-account-v2-head{grid-template-columns:44px 1fr}.admin-account-v2-icon{width:44px;height:44px;border-radius:13px;font-size:21px}.admin-account-v2-head h1{font-size:22px}}

/* 2026-10-09: compact bulk exam import layout */
.admin-bulk-config-redesign{display:grid;gap:12px;grid-template-columns:1fr}
.admin-bulk-row{display:grid;gap:14px;align-items:end}
.admin-bulk-row-one{grid-template-columns:minmax(180px,1fr) minmax(150px,.72fr) minmax(280px,1.25fr)}
.admin-bulk-row-two{grid-template-columns:minmax(300px,1fr) minmax(380px,1.35fr)}
.admin-bulk-inline-group{display:grid;gap:6px;align-content:end}
.admin-bulk-inline-group>span{font-size:12px;font-weight:800;color:#44536a}
.admin-import-mode-flat{margin:0;min-height:46px;align-items:center}
.admin-import-mode-flat label{padding:7px 10px}
.admin-bulk-mode{grid-column:auto;display:grid;gap:6px}
.admin-bulk-sequence-inline{display:flex;align-items:center;gap:22px;flex-wrap:nowrap;padding:11px 14px;border:1px solid #dbe4f2;border-radius:13px;background:#f8fbff;overflow-x:auto;white-space:nowrap}
.admin-bulk-sequence-inline>span{display:inline-flex;align-items:center;gap:7px;margin:0;font-size:12px;font-weight:700;color:#66758a}
.admin-bulk-sequence-inline strong{font-size:14px;color:#18263a}
.admin-bulk-drop{min-height:150px}
.admin-audio-bulk-card{display:grid;gap:12px}
.admin-audio-bulk-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.admin-audio-bulk-head>div{display:grid;gap:4px}
.admin-audio-bulk-head>div>span{font-size:12px;color:#6b7b91;line-height:1.45}
.admin-audio-bulk-count{font-size:12px;white-space:nowrap;color:#53637a}
.admin-audio-bulk-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.admin-audio-bulk-pick{position:relative;display:inline-flex!important;align-items:center!important;justify-content:center;padding:9px 13px;border:1px solid #cfd9e8;border-radius:11px;background:#f8fbff;cursor:pointer;font-weight:800!important;color:#285f9f}
.admin-audio-bulk-pick input{position:absolute;opacity:0;pointer-events:none;width:1px!important;height:1px}
@media(max-width:760px){.admin-bulk-row-one,.admin-bulk-row-two{grid-template-columns:1fr}.admin-bulk-sequence-inline{gap:14px}.admin-audio-bulk-head{display:grid}.admin-audio-bulk-count{white-space:normal}}

/* Compact in-page message dialog: replaces one-line standalone error pages. */
.tm-message-dialog{position:fixed;inset:0;z-index:30000;display:grid;place-items:center;padding:18px;background:rgba(15,23,42,.42);backdrop-filter:blur(2px)}
.tm-message-dialog-card{position:relative;width:min(90vw,390px);background:#fff;border-radius:16px;padding:20px 48px 20px 20px;box-shadow:0 20px 60px rgba(15,23,42,.22);border:1px solid #dbe5f2;animation:tmMessageIn .16s ease-out}
.tm-message-dialog-card.is-success{border-left:4px solid #22c55e}.tm-message-dialog-card.is-error{border-left:4px solid #ef4444}
.tm-message-dialog-card h3{margin:0 0 7px;color:#0f172a;font-size:17px}.tm-message-dialog-messages p{margin:0;color:#475569;font-size:14px;line-height:1.5;white-space:pre-line}.tm-message-dialog-messages p+p{margin-top:7px}
.tm-message-dialog-close{position:absolute;top:9px;right:10px;width:32px;height:32px;border:0;border-radius:9px;background:transparent;color:#64748b;font-size:25px;line-height:1;display:grid;place-items:center;cursor:pointer}.tm-message-dialog-close:hover{background:#f1f5f9;color:#0f172a}
@keyframes tmMessageIn{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}

/* Admin avatar moderation notification */
.floating-actions .avatar-review-float{position:relative}.floating-actions .avatar-review-dot{position:absolute;top:5px;right:5px;width:10px;height:10px;border-radius:50%;background:#ef4444;border:2px solid #fff;box-shadow:0 1px 4px rgba(127,29,29,.35);pointer-events:none}

/* TestMaster patch - compact student form and trial admin */
.admin-create-student-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 14px;align-items:start}
.admin-create-student-grid label{display:flex;flex-direction:column;min-width:0;margin:0;gap:6px}
.admin-create-student-grid input,.admin-create-student-grid select{width:100%;min-width:0;box-sizing:border-box;min-height:40px}
.admin-create-student-form .button-row{margin-top:12px}
.tm-trial-admin-card{margin-bottom:18px}.tm-trial-question{border:1px solid var(--border,#cdd4e0);border-radius:10px;padding:14px;margin:14px 0}
.tm-trial-question legend{padding:0 9px;font-weight:700}.tm-trial-question label{display:flex;flex-direction:column;gap:5px;min-width:0}.tm-trial-question input,.tm-trial-question textarea,.tm-trial-question select{width:100%;box-sizing:border-box}
.tm-trial-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:10px 0}.tm-trial-bottom{display:flex;align-items:end;flex-wrap:wrap;gap:15px;margin:10px 0}.tm-trial-bottom audio{max-width:210px}.tm-home-trial-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tm-home-trial-buttons form button{width:100%}
.tm-access-section{margin-bottom:16px}.tm-tri-subjects{display:flex;flex-wrap:wrap;gap:10px}.tm-tri-subjects label{display:flex;align-items:center;gap:8px}.tm-tri-subjects input{width:66px}.tm-access-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}
@media(max-width:900px){.admin-create-student-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tm-trial-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:530px){.admin-create-student-grid{grid-template-columns:1fr}.tm-trial-options{grid-template-columns:1fr 1fr}.tm-home-trial-buttons{grid-template-columns:1fr}}

/* Tổng quan Admin - giao diện gọn, không đổi kích thước phần quản trị khác */
.admin-stats{gap:8px;margin:9px 0 12px}
.admin-stats .stat-card{padding:11px 13px;border-radius:12px}
.admin-stats .stat-card strong{font-size:23px;line-height:1.15;display:block;margin-top:3px}
.admin-quick-tools{margin:10px 0;padding:10px 13px;border-radius:12px;gap:9px}
.admin-quick-tools>div:first-child{flex:0 0 auto}
.admin-quick-tools .button-row{display:flex;flex-wrap:wrap;gap:6px;margin:0}
.admin-quick-tools .btn{padding:7px 10px;font-size:12px;min-height:32px}
.admin-access-settings-card,.admin-supporter-package-card{padding:13px 15px;margin-top:11px;border-radius:13px}
.admin-access-settings-card .tm-access-section{margin:9px 0}
.admin-access-settings-card .tm-access-section h3{font-size:16px;margin:0 0 4px}
.admin-access-settings-card .muted{font-size:12px;margin:3px 0 7px}
.admin-access-settings-card .tm-tri-subjects{gap:8px}
.admin-access-settings-card .tm-tri-subjects label{display:flex;align-items:center;gap:7px;padding:6px 9px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:9px;font-size:12px}
.admin-access-settings-card .tm-tri-subjects input{width:58px;padding:6px;border-radius:7px;text-align:center}
.admin-access-settings-card .tm-tri-subjects small{font-size:11px;color:#64748b}
.admin-access-settings-card .admin-free-matrix th,.admin-access-settings-card .admin-free-matrix td{padding:6px 7px}
.admin-access-settings-card .admin-free-cell input[type=number]{padding:5px;width:48px}
.admin-supporter-package-card .admin-supporter-tier-setting{gap:8px}
.admin-supporter-package-card input{padding:7px 9px}
@media(max-width:650px){.admin-quick-tools{align-items:flex-start}.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-access-settings-card .tm-tri-subjects label{width:100%;justify-content:space-between}}

/* Student floating shortcuts: icon + readable label */
.floating-actions.student-float-actions .float-group{gap:7px;max-height:0;overflow:hidden;padding:0 4px 0 8px;scrollbar-width:thin;visibility:hidden;pointer-events:none;transition:max-height .35s ease,visibility 0s linear .35s,padding .35s ease}
.floating-actions.student-float-actions .float-group.show{max-height:calc(100dvh - 100px);overflow-y:auto;overflow-x:hidden;padding:3px 4px 3px 8px;visibility:visible;pointer-events:auto;transition:max-height .35s ease,padding .35s ease}
.floating-actions.student-float-actions .float-btn.main-btn,.floating-actions.student-float-actions .float-btn.logout-btn{width:116px;height:40px;min-height:40px;border-radius:13px;display:flex;align-items:center;justify-content:flex-start;gap:9px;padding:0 10px!important;flex-shrink:0}
.floating-actions.student-float-actions .float-icon-img{width:19px;height:19px;flex-shrink:0}
.floating-actions.student-float-actions .float-label{font-size:11px;font-weight:850;line-height:1.2;color:#fff;white-space:nowrap}
.floating-actions.student-float-actions .float-logout-form{width:116px}
.floating-actions.student-float-actions a[href$="/hoc-sinh"]::after{content:"";position:absolute;inset:0;width:35%;transform:translateX(-230%) skewX(-22deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.36),transparent);animation:tmExamSweep5 5s ease-in-out infinite;pointer-events:none}
@keyframes tmExamSweep5{0%,76%{transform:translateX(-230%) skewX(-22deg)}95%,100%{transform:translateX(430%) skewX(-22deg)}}
@media(max-width:640px){.floating-actions.student-float-actions .float-btn.main-btn,.floating-actions.student-float-actions .float-btn.logout-btn{width:105px;height:37px;min-height:37px;padding:0 8px!important;gap:7px}.floating-actions.student-float-actions .float-label{font-size:10px}.floating-actions.student-float-actions .float-logout-form{width:105px}}
@media(prefers-reduced-motion:reduce){.floating-actions.student-float-actions a[href$="/hoc-sinh"]::after{animation:none}}

/* Stable floating menu: height animated in JS, no overflow/visibility jump */
.floating-actions.student-float-actions .float-group,
.floating-actions.student-float-actions .float-group.show{max-height:none!important;overflow:hidden!important;visibility:visible!important;padding:3px 4px 3px 8px!important;transition:height .28s cubic-bezier(.2,.7,.2,1),opacity .22s ease!important;will-change:height;box-sizing:content-box}
.floating-actions.student-float-actions .float-group:not(.show){pointer-events:none!important;opacity:0}
.floating-actions.student-float-actions .float-group.show{opacity:1;pointer-events:auto}
@media(prefers-reduced-motion:reduce){.floating-actions.student-float-actions .float-group{transition:none!important}}

/* No-jump student floating menu: no competing max-height/height animations. */
.floating-actions.student-float-actions .float-group,
.floating-actions.student-float-actions .float-group.show{
 height:auto!important;max-height:min(80dvh,760px)!important;
 overflow-y:auto!important;overflow-x:hidden!important;
 padding:3px 4px 3px 8px!important;
 transition:none!important;will-change:auto!important;
 transform:none!important;box-sizing:border-box!important;
}
.floating-actions.student-float-actions .float-group:not(.show){display:none!important}
.floating-actions.student-float-actions .float-group.show{display:flex!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important}

/* TestMaster: nút thu gọn có ánh kim quét định kỳ, không ảnh hưởng vị trí menu. */
.floating-actions .tm-toggle-metal{position:relative;isolation:isolate;overflow:hidden}
.floating-actions .tm-toggle-metal::after{content:"";position:absolute;inset:-35% auto -35% -70%;width:45%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.12),rgba(255,255,255,.83),rgba(255,255,255,.12),transparent);transform:skewX(-25deg);pointer-events:none;opacity:0}
.floating-actions:has(.float-group:not(.show)) .tm-toggle-metal::after{animation:tmToggleMetalSweep 5s ease-in-out infinite}
@keyframes tmToggleMetalSweep{0%,72%{left:-70%;opacity:0}74%{opacity:.95}90%{left:135%;opacity:.95}92%,100%{left:135%;opacity:0}}
@media(prefers-reduced-motion:reduce){.floating-actions .tm-toggle-metal::after{animation:none!important}}
