:root{
  --school-blue:#1f4387;
  --school-blue-dark:#17356f;
  --school-blue-deep:#153166;
  --school-blue-soft:#edf4ff;
  --school-gold:#d7b15a;
  --primary:#0b5ed7;
  --green:#0a7f4f;
  --bg:#f4f8fc;
  --card:#ffffff;
  --line:#dce4ef;
  --text:#1f2937;
  --muted:#6b7280;
  --danger:#b42318;
  --warn:#b54708;
  --ok:#087443;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text);font-size:14px}
a{color:var(--primary);text-decoration:none}a:hover{text-decoration:none;color:#153166}
.bg-page{background:linear-gradient(180deg,#f5f9fd 0,#eef5fa 100%)}

/* Header style referenced from BCTech equipment manager */
.school-header{position:sticky;top:0;z-index:1000;background:#fff;box-shadow:0 4px 18px rgba(22,38,74,.08)}
.school-topbar{background:linear-gradient(90deg,#24488f 0,#304f98 55%,#3a5aa6 100%);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:12px 24px;border-bottom:1px solid rgba(255,255,255,.08)}
.school-brand{display:flex;align-items:center;gap:18px;min-width:0}.school-brand-link{text-decoration:none;display:inline-flex}.school-logo{width:78px;height:78px;object-fit:contain;background:transparent;flex:0 0 auto}.school-title-wrap{display:flex;flex-direction:column;gap:6px}.school-title{color:var(--school-gold);font-weight:800;text-transform:uppercase;line-height:1.15;letter-spacing:.2px}.school-title-line{font-size:22px}.school-title-sub{color:rgba(255,255,255,.86);font-weight:650;letter-spacing:.2px;font-size:13px}.school-quick-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.school-quick-actions a{display:inline-flex;align-items:center;gap:6px;color:#fff;text-decoration:none;font-weight:700;padding:7px 11px;border-radius:999px;background:rgba(255,255,255,.10);box-shadow:inset 0 0 0 1px rgba(255,255,255,.05)}.school-quick-actions a:hover{background:rgba(255,255,255,.16);color:#f8de99}
.school-nav{background:linear-gradient(90deg,#153166 0,#17386f 100%);display:flex;align-items:center;gap:12px;padding:10px 20px;flex-wrap:wrap;border-bottom:3px solid var(--school-gold);box-shadow:inset 0 -1px 0 rgba(255,255,255,.06)}
.nav-link-app{position:relative;display:inline-flex;align-items:center;gap:8px;padding:10px 13px;border-radius:14px;color:#fff;text-decoration:none;font-weight:700;transition:all .2s ease}.nav-link-app:hover{background:rgba(255,255,255,.09);color:#f2c260;transform:translateY(-1px)}.nav-link-app.active{background:rgba(255,255,255,.14);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18),0 8px 18px rgba(0,0,0,.12)}.nav-link-app.active::after{content:"";position:absolute;left:14px;right:14px;bottom:-8px;height:3px;border-radius:999px;background:#f2c260}.menu-icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:rgba(255,255,255,.12);font-size:15px;line-height:1;min-width:24px;text-align:center}
.module-banner{background:linear-gradient(90deg,#f2f7ff 0,#ffffff 60%,#f7fbff 100%);border-bottom:1px solid #dde6f4;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:18px 24px}.module-banner-left{display:flex;flex-direction:column}.module-kicker{color:#6b7aa0;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;margin-bottom:4px}.module-title{color:var(--school-blue-dark);font-size:27px;font-weight:850;line-height:1.2}.module-subtitle{color:#667085;font-size:14px;margin-top:4px}.module-meta{min-width:300px;background:linear-gradient(180deg,#ffffff,#f8fbff);border:1px solid #d8e4f5;border-radius:14px;padding:10px 14px;box-shadow:0 .25rem .8rem rgba(0,0,0,.04);line-height:1.7}.meta-label{font-weight:700;color:#17356f}

.main{padding:24px;max-width:1600px;margin:0 auto}.app-main{padding-top:24px}.card{background:var(--card);border:1px solid #e6edf8;border-radius:18px;padding:18px;margin-bottom:18px;box-shadow:0 .45rem 1rem rgba(0,0,0,.05);overflow:hidden}h1{font-size:25px;margin:0 0 16px;color:var(--school-blue-dark)}h2{font-size:19px;margin:0 0 12px;color:var(--school-blue-dark)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.kpi{border-radius:16px;background:linear-gradient(180deg,#fff,#f8fbff);border:1px solid #e6edf8;padding:16px;box-shadow:0 .25rem 1rem rgba(0,0,0,.04)}.kpi strong{font-size:28px;display:block;margin-top:6px;color:#17356f}.muted{color:var(--muted)}table{border-collapse:collapse;width:100%;font-size:14px;background:white}th,td{border-bottom:1px solid var(--line);padding:9px 8px;vertical-align:top}th{background:#eef5ff!important;color:#17356f;text-align:left;font-weight:800}.nowrap{white-space:nowrap}.btn{border:0;border-radius:12px;background:var(--primary);color:white;padding:9px 13px;display:inline-block;cursor:pointer;font-weight:700;margin:3px 2px;box-shadow:0 .25rem .65rem rgba(31,67,135,.12)}.btn:hover{filter:brightness(.98);transform:translateY(-1px)}.btn.secondary{background:#475569}.btn.green{background:var(--green)}.btn.warn{background:#b54708}.btn.light{background:#e2e8f0;color:#0f172a}.btn.danger{background:var(--danger)}.btn-bctech-primary{background:linear-gradient(90deg,var(--school-blue-dark),var(--school-blue));border:none;color:#fff;font-weight:800;box-shadow:0 .45rem 1rem rgba(31,67,135,.18)}input,select,textarea{width:100%;padding:10px;border:1px solid #cbd5e1;border-radius:12px;background:white;font-size:14px}textarea{min-height:90px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.field{margin-bottom:12px}.field label{font-weight:700;margin-bottom:6px;display:block;color:#17356f}input:focus,select:focus,textarea:focus{outline:none;border-color:#90b4f7;box-shadow:0 0 0 .2rem rgba(33,74,147,.12)}.badge{display:inline-block;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800;background:#e2e8f0;color:#0f172a}.badge.ok{background:#dcfce7;color:#166534}.badge.warn{background:#fef3c7;color:#92400e}.badge.danger{background:#fee2e2;color:#991b1b}.badge.blue{background:#dbeafe;color:#1d4ed8}.alert{padding:12px 14px;border-radius:14px;margin-bottom:14px}.alert.ok{background:#ecfdf3;border:1px solid #abefc6}.alert.err{background:#fef3f2;border:1px solid #fecdca}.criteria-row{display:grid;grid-template-columns:110px 1fr 90px 120px 1.3fr;gap:8px;align-items:start;border-bottom:1px solid var(--line);padding:10px 0}.criteria-head{font-weight:bold;background:#f8fafc;border-radius:8px;padding:8px}.progress{height:10px;background:#e2e8f0;border-radius:99px;overflow:hidden}.progress span{display:block;height:100%;background:var(--green)}.footer{font-size:12px;color:var(--muted);margin-top:28px}.actions{display:flex;flex-wrap:wrap;gap:6px}.print-only{display:none}

/* Login */
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at top,#dcefff,#eef6fb 45%,#f9fbfd 100%)}.school-login-bg{background:linear-gradient(180deg,#e7f0ff 0,#f4f8fc 50%,#f8fbff 100%)}.login-shell{width:min(1180px,96vw);margin:24px auto}.login-header{background:linear-gradient(90deg,#24488f 0,#304f98 55%,#3a5aa6 100%);border-radius:24px 24px 0 0;padding:16px 26px;color:#fff;display:flex;justify-content:space-between;gap:18px;align-items:center}.login-header-actions{display:flex;gap:12px;flex-wrap:wrap}.login-header-actions a{color:#fff;text-decoration:none;font-weight:700;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.08)}.login-main{display:grid;grid-template-columns:1.4fr .9fr;border-radius:0 0 24px 24px;overflow:hidden;box-shadow:0 1rem 2.5rem rgba(23,53,111,.18)}.login-hero{position:relative;background:radial-gradient(circle at 14% 18%,rgba(255,255,255,.22),transparent 16%),radial-gradient(circle at 82% 20%,rgba(255,255,255,.14),transparent 18%),linear-gradient(135deg,#17356f 0,#214a93 55%,#2b6cb0 100%);color:#fff;min-height:560px;padding:56px;display:flex;flex-direction:column;justify-content:center}.login-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(45deg,rgba(255,255,255,.05) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.05) 50%,rgba(255,255,255,.05) 75%,transparent 75%,transparent);background-size:26px 26px;opacity:.18}.login-hero>*{position:relative;z-index:1}.hero-badge{display:inline-flex;align-self:flex-start;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.14);font-weight:700;letter-spacing:.3px}.login-hero h1{font-size:36px;line-height:1.2;font-weight:900;margin:14px 0}.login-hero p{font-size:17px;line-height:1.7;color:rgba(255,255,255,.88);max-width:560px}.hero-feature-list{margin-top:14px;display:grid;gap:10px;font-weight:700}.login-card{background:#fff;border-radius:22px;padding:32px;max-width:460px;width:100%;border:1px solid #e8eef5}.login-card-school{height:100%;display:flex;flex-direction:column;justify-content:center;padding:48px;max-width:none;border-radius:0;border:0}.login-card-title{text-align:center;margin-bottom:22px}.login-card-title h2{font-size:26px;margin:6px 0;color:#17356f}.login-card-title p{margin:0;color:#667085}.text-school-gold{color:var(--school-gold);font-weight:800;text-transform:uppercase;letter-spacing:.8px}.login-school-logo{width:92px;height:92px}.password-row{display:flex;gap:8px}.password-row input{flex:1}.password-row button{width:72px;box-shadow:none}.login-btn{width:100%;margin-top:8px;padding:12px}.login-footer-note{font-size:13px;color:#667085;margin-top:16px;line-height:1.5}

/* Plan/report table */
.table-wrap{overflow:auto}.plan-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:6px 0 12px 0;flex-wrap:wrap;background:#f8fbff;border:1px solid #dbe5f0;border-radius:12px;padding:10px 12px}.plan-toolbar-left{display:flex;flex-direction:column;gap:4px}.plan-row-indicator{font-size:13px;color:#334155;background:#eef4ff;padding:4px 10px;border-radius:999px;display:inline-block}.plan-sheet{width:100%;min-width:1280px;border-collapse:collapse;table-layout:fixed;background:#fff;border:1px solid #94a3b8}.plan-sheet th,.plan-sheet td{border:1px solid #b6c2d2;padding:6px 8px;vertical-align:middle}.plan-sheet th{background:#f3f6fb;text-align:center;font-weight:700}.plan-sheet textarea{min-height:54px;border-radius:10px;padding:10px 12px;resize:vertical}.plan-sheet .task-text{min-height:64px}.plan-sheet .evidence-text{min-height:64px}.plan-sheet input[type='date']{min-width:96px;padding:10px 8px}.plan-sheet input[type='radio']{width:auto;transform:scale(1.05)}.plan-sheet td:nth-child(2),.plan-sheet th:nth-child(2){background:#fbfcfe}.plan-sheet td:nth-child(3),.plan-sheet td:nth-child(4),.plan-sheet th:nth-child(3),.plan-sheet th:nth-child(4){background:#fdfefe}.plan-sheet thead th{position:sticky;top:0;z-index:1}.center{text-align:center}.summary-row td{font-weight:700;background:#f8fafc}.task-index{font-weight:700}.plan-sheet textarea::placeholder{color:#8a94a6}.plan-sheet td:first-child{font-weight:700;text-align:center}

@media(max-width:992px){.school-topbar,.module-banner{padding:12px 16px}.school-nav{padding:10px 16px;gap:8px}.school-title-line{font-size:18px}.school-logo{width:64px;height:64px}.module-banner{flex-direction:column}.module-meta{min-width:100%;width:100%}.main{padding:16px}.login-main{grid-template-columns:1fr}.login-hero{display:none}.login-shell{width:min(96vw,720px);margin:16px auto}.login-header{border-radius:18px 18px 0 0;padding:14px 16px;flex-direction:column}.login-card-school{padding:28px}.nav-link-app{padding:8px 10px}}
@media(max-width:640px){.school-quick-actions{display:none}.school-title-line{font-size:15px}.school-title-sub{font-size:12px}.school-logo{width:54px;height:54px}.module-title{font-size:22px}.school-nav{overflow:auto;flex-wrap:nowrap}.nav-link-app{white-space:nowrap}.login-header .school-logo{width:58px;height:58px}}
@media print{.school-header,.actions,.btn,.footer{display:none!important}.main{padding:0}.card{box-shadow:none;border:0}.print-only{display:block}body{background:white}}
.schedule-table{min-width:1100px;table-layout:fixed}.schedule-table th{text-align:center}.schedule-table td:nth-child(1){width:48px;text-align:center;font-weight:700}.schedule-table td:nth-child(2){width:170px}.schedule-table td:nth-child(3){width:130px}.schedule-table textarea{min-height:62px}.schedule-entry-row textarea,.schedule-entry-row input,.schedule-entry-row select{font-size:14px}.schedule-review-note{font-size:12px;color:#64748b}

/* ===== Nâng cấp giao diện V1.9: header một dòng + sidebar trái ===== */
html, body { font-family: Tahoma, "Segoe UI", Arial, sans-serif; }
body.app-authenticated { margin: 0; }
.school-topbar.compact { padding: 14px 22px; }
.school-title-main-one-line {
  font-size: 15px;
  font-weight: 800;
  letter-spacing: .2px;
  line-height: 1.15;
  white-space: nowrap;
}
.school-title-sub-strong {
  font-size: 13px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .2px;
}
.side-header { position: sticky; top: 0; z-index: 20; }
.app-shell {
  display: flex;
  gap: 0;
  min-height: calc(100vh - 92px);
}
.left-sidebar {
  width: 280px;
  flex: 0 0 280px;
  background: #f3f6fb;
  border-right: 1px solid #d9e1ec;
  padding: 16px 12px 22px;
}
.sidebar-user-box {
  background: linear-gradient(180deg, #2c5cc9, #244b9f);
  color: #fff;
  border-radius: 14px;
  padding: 14px 16px;
  margin-bottom: 16px;
  box-shadow: 0 10px 24px rgba(31, 66, 132, .18);
}
.sidebar-user-name { font-size: 16px; font-weight: 800; margin-bottom: 4px; }
.sidebar-user-meta { font-size: 13px; opacity: .95; }
.sidebar-user-role { font-size: 12px; opacity: .92; margin-top: 4px; }
.sidebar-section { margin-bottom: 16px; }
.sidebar-section-title {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .6px;
  color: #315393;
  font-weight: 800;
  padding: 0 10px 8px;
}
.sidebar-link {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #1f355e;
  text-decoration: none;
  padding: 11px 12px;
  margin: 4px 0;
  border-radius: 12px;
  font-weight: 600;
  font-size: 14px;
}
.sidebar-link:hover { background: #e8eefb; color: #1d4fbf; }
.sidebar-link.active {
  background: linear-gradient(90deg, #2d66e2, #4677e2);
  color: #fff;
  box-shadow: 0 10px 22px rgba(51, 93, 179, .18);
}
.sidebar-icon {
  width: 30px;
  min-width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  background: rgba(255,255,255,.16);
  font-size: 16px;
}
.sidebar-link:not(.active) .sidebar-icon { background: #e0e7f7; }
.sidebar-link-label { line-height: 1.25; }
.content-shell {
  flex: 1 1 auto;
  padding: 16px 22px 24px;
  min-width: 0;
}
.top-shortcuts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}
.shortcut-card {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid #d9e4f6;
  background: #fff;
  text-decoration: none;
  color: #1f355e;
  font-weight: 700;
  box-shadow: 0 8px 20px rgba(22, 47, 95, .05);
}
.shortcut-card:hover { border-color: #87a8ea; transform: translateY(-1px); }
.shortcut-icon {
  width: 34px; height: 34px; border-radius: 10px; background: #edf3ff;
  display: inline-flex; align-items: center; justify-content: center; font-size: 18px;
}
.side-module-banner { margin-bottom: 16px; }
.main.app-main { margin: 0; max-width: none; }
.table-wrap { overflow-x: auto; }
.center { text-align: center; }
.school-quick-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.school-quick-actions a {
  display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px;
  border-radius: 999px; background: rgba(255,255,255,.16); color: #fff; text-decoration: none; font-weight: 700; font-size: 13px;
}
.school-quick-actions a:hover { background: rgba(255,255,255,.26); }
@media (max-width: 1180px) {
  .school-title-main-one-line { white-space: normal; }
}
@media (max-width: 980px) {
  .app-shell { flex-direction: column; }
  .left-sidebar { width: auto; flex: 1 1 auto; }
  .content-shell { padding: 14px; }
}


/* ===== V2.0 refinements ===== */
.school-title-main-one-line{font-size:30px!important;line-height:1.08!important;font-weight:900!important;white-space:nowrap!important;text-shadow:0 1px 0 rgba(0,0,0,.15)}
.school-title-sub-strong{font-size:16px!important;font-weight:900!important;letter-spacing:.3px!important}
.login-header .school-title-main-one-line{font-size:26px!important}
.schedule-table tbody tr:nth-child(even), .left-sidebar + .content-shell table tbody tr:nth-child(even){background:#fbfdff}
@media(max-width:1400px){.school-title-main-one-line{font-size:24px!important;white-space:normal!important}.school-title-sub-strong{font-size:15px!important}}
@media(max-width:720px){.school-title-main-one-line{font-size:18px!important}.school-title-sub-strong{font-size:13px!important}}

/* ===== V2.1 refinements ===== */
.module-meta{display:none!important}
.side-module-banner{padding:14px 22px!important;min-height:auto!important}
.content-shell > .top-shortcuts:empty{display:none!important}
.schedule-table{table-layout:fixed;min-width:1180px}
.schedule-table .schedule-col-tt{width:42px!important}
.schedule-table .schedule-col-content{width:34%!important}
.schedule-table th:nth-child(1),.schedule-table td:nth-child(1){width:42px!important;min-width:42px!important;max-width:42px!important;text-align:center}
.schedule-table th:nth-child(4),.schedule-table td:nth-child(4){width:34%!important}
.report-sheet{min-width:1600px!important}
.file-mini{margin-top:6px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.file-mini input[type=file]{max-width:210px;padding:6px;background:#f8fbff}.evidence-file-label{font-size:12px}.signature-preview{max-width:260px;max-height:120px;border:1px solid #d9e4f6;border-radius:10px;background:#fff;padding:8px}.plan-build-sheet{min-width:850px!important}.plan-build-sheet textarea{min-height:58px}.duty-table-register th:nth-child(1),.duty-table-register td:nth-child(1){width:45px!important;text-align:center}.duty-table-register th:nth-child(2),.duty-table-register td:nth-child(2){width:130px!important}


/* V2.2 - tăng độ rộng cột Cơ sở trực */
.duty-table-register{table-layout:fixed;min-width:1050px!important;width:100%}
.duty-table-register .duty-col-tt{width:50px}
.duty-table-register .duty-col-day{width:145px}
.duty-table-register .duty-col-campus{width:230px}
.duty-table-register .duty-col-shift{width:150px}
.duty-table-register .duty-col-note{width:auto}
.duty-table-register .duty-tt-cell{width:50px!important;text-align:center}
.duty-table-register .duty-day-cell{width:145px!important}
.duty-table-register .duty-campus-cell{width:230px!important;min-width:230px!important}
.duty-table-register .duty-campus-cell select{width:100%!important;min-width:205px!important}
.duty-table-register .duty-shift-cell{width:150px!important}
.duty-table-register .duty-note-cell input{width:100%!important}


/* V2.3 - Báo cáo: chữ lớn hơn, ô nhập kiểu Excel, file minh chứng có link xem */
.report-sheet{
  font-size:15px!important;
}
.report-sheet th{
  font-size:15px!important;
}
.report-sheet td{
  font-size:15px!important;
}
.report-sheet textarea,
.report-sheet input[type="date"],
.report-sheet input[type="text"],
.report-sheet input:not([type]),
.report-sheet select{
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  border-radius:0!important;
  padding:6px 4px!important;
  font-size:15px!important;
}
.report-sheet textarea{
  min-height:58px!important;
}
.report-sheet input[type="date"]{
  min-width:105px!important;
}
.report-sheet textarea:focus,
.report-sheet input:focus,
.report-sheet select:focus{
  outline:1px solid #7da7e8!important;
  background:#fff!important;
}
.report-sheet .file-mini{
  border-top:1px dashed #c7d5e8;
  margin-top:6px;
  padding-top:5px;
}
.report-sheet .file-mini input[type="file"]{
  border:1px solid #cbd5e1!important;
  background:#fff!important;
  border-radius:8px!important;
  padding:4px 6px!important;
  font-size:13px!important;
}
.evidence-view-link{
  display:inline-block;
  margin-left:6px;
  padding:3px 8px;
  border-radius:999px;
  background:#e6f0ff;
  color:#174ea6;
  font-size:12px;
  font-weight:700;
}
.evidence-view-link:hover{
  background:#d5e6ff;
}


/* V2.4 - cơ cấu menu, thẻ người dùng gọn, trang kế hoạch gọn */
.sidebar-user-compact .sidebar-user-name{font-size:17px;font-weight:800}
.sidebar-user-compact .sidebar-user-meta{font-size:14px;font-weight:600;opacity:.96}
.sidebar-sub-link{padding-left:18px;font-size:13.5px;margin-left:8px}
.sidebar-sub-link .sidebar-link-label{line-height:1.3}
.compact-module-banner{padding:18px 22px!important;margin-bottom:14px!important}
.compact-module-banner .module-title{font-size:30px!important;line-height:1.1}
.compact-module-banner .module-subtitle{font-size:15px!important}
.left-sidebar .sidebar-section-title{margin-top:8px}

/* V2.5 - menu thư mục +/- và giao diện gọn hơn */
.compact-main-header .school-topbar.compact{padding:8px 18px!important;min-height:58px!important}
.compact-main-header .school-logo{width:54px!important;height:54px!important}
.compact-main-header .school-title-main-one-line{font-size:24px!important;line-height:1.05!important;white-space:nowrap!important}
.compact-main-header .school-title-sub-strong{font-size:13px!important;line-height:1.1!important}
.compact-shell{min-height:calc(100vh - 76px)!important}
.compact-sidebar{width:248px!important;flex-basis:248px!important;padding:10px 8px!important}
.compact-content{padding:10px 14px 18px!important}
.compact-main{padding-top:0!important}
.compact-card,.card{border-radius:14px!important}
.compact-module-banner{padding:10px 14px!important;margin-bottom:10px!important}
.compact-module-banner .module-title{font-size:24px!important;line-height:1.05!important}
.compact-module-banner .module-subtitle,.compact-module-banner .module-kicker{display:none!important}
.sidebar-user-box.sidebar-user-compact{padding:10px 12px!important;margin-bottom:10px!important;border-radius:12px!important}
.sidebar-user-compact .sidebar-user-name{font-size:16px!important;font-weight:800!important;line-height:1.15!important}
.sidebar-user-compact .sidebar-user-meta{font-size:13px!important;font-weight:600!important;line-height:1.2!important}
.sidebar-collapsible{border-bottom:1px solid #dfe7f2;margin:0!important;padding:0!important}
.sidebar-section-title{width:100%;border:0;background:transparent;display:flex!important;justify-content:space-between;align-items:center;gap:8px;padding:10px 8px!important;margin:0!important;color:#142a5c!important;font-size:14px!important;font-weight:800!important;text-align:left;cursor:pointer;text-transform:none!important;letter-spacing:0!important}
.sidebar-section-name{display:flex;align-items:center;gap:8px;min-width:0}
.sidebar-group-icon{width:24px;display:inline-flex;justify-content:center}
.sidebar-toggle{margin-left:auto;border:1px solid #aebdd4;border-radius:4px;width:16px;height:16px;line-height:13px;text-align:center;font-weight:900;font-size:13px;color:#0d2b68;background:#fff}
.sidebar-submenu{display:none;padding:3px 0 7px 0}
.sidebar-collapsible.open .sidebar-submenu{display:block}
.sidebar-link{padding:8px 10px!important;margin:2px 0!important;border-radius:9px!important;font-size:13.5px!important}
.sidebar-sub-link{padding-left:34px!important;margin-left:0!important;font-size:13.2px!important}
.sidebar-icon{width:25px!important;height:25px!important;min-width:25px!important;font-size:14px!important}
.top-shortcuts{margin-bottom:8px!important}
.school-quick-actions a{padding:6px 10px!important;font-size:12px!important}
.form-grid{gap:10px!important}
.field label{margin-bottom:4px!important}
.card{padding:16px 18px!important;margin-bottom:12px!important}
.card h2{margin-top:0!important;margin-bottom:10px!important}
.table-wrap table th,.table-wrap table td{padding:6px 7px!important}
@media(max-width:1280px){.compact-main-header .school-title-main-one-line{font-size:20px!important;white-space:normal!important}.compact-sidebar{width:230px!important;flex-basis:230px!important}}

/* V2.6 - Người dùng trên thanh tiêu đề, bảng quản lý người dùng gọn */
.top-user-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.20);
  color:#fff;
  font-size:13px;
  font-weight:800;
  max-width:420px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.compact-sidebar .sidebar-user-box{display:none!important}
.user-edit-table{min-width:1450px!important;table-layout:fixed}
.user-edit-table th,.user-edit-table td{vertical-align:middle!important;font-size:13px!important;padding:5px!important}
.user-edit-table input,.user-edit-table select{width:100%!important;min-width:0!important;padding:7px 8px!important;font-size:13px!important;border-radius:8px!important}
.user-edit-table th:nth-child(1),.user-edit-table td:nth-child(1){width:105px!important}
.user-edit-table th:nth-child(2),.user-edit-table td:nth-child(2){width:190px!important}
.user-edit-table th:nth-child(3),.user-edit-table td:nth-child(3){width:170px!important}
.user-edit-table th:nth-child(4),.user-edit-table td:nth-child(4){width:210px!important}
.user-edit-table th:nth-child(5),.user-edit-table td:nth-child(5){width:190px!important}
.user-edit-table th:nth-child(9),.user-edit-table td:nth-child(9){width:115px!important;text-align:center}
.btn.small{padding:6px 9px!important;font-size:12px!important;margin:2px!important;border-radius:8px!important}
@media(max-width:1280px){.top-user-chip{max-width:300px}.school-quick-actions{gap:6px!important}}

/* V2.7 - Bảng tiêu chí ngang và góp ý đồng nghiệp dạng ma trận */
.eval-sheet{width:100%;border-collapse:collapse;min-width:980px}
.eval-sheet th,.eval-sheet td{border:1px solid #d7dfeb;vertical-align:top;background:#fff}
.eval-sheet th{background:#edf2f8;font-weight:800;color:#15306b;text-align:left}
.eval-sheet td.center,.eval-sheet th.center{text-align:center;vertical-align:middle}
.eval-sheet .group-row td{background:#f4f7fb;font-weight:800}
.eval-sheet textarea{min-height:82px;width:100%;resize:vertical}
.eval-sheet input[type='number']{width:100%;min-width:84px}
.score-big{font-size:28px;font-weight:800;color:#123f88}
.peer-matrix-table{min-width:1300px}
.peer-matrix-table th{white-space:normal;text-align:center}
.peer-matrix-table .peer-person-col{min-width:140px}
.peer-score-input{text-align:center}
.matrix-summary-row td{background:#fafcff;font-weight:700}

/* V2.8 - sửa lỗi góp ý đồng nghiệp và bám mẫu Excel cấp Trưởng/BGH */
.peer-template-header{text-align:center}
.peer-template-header h2{font-size:20px!important;text-transform:uppercase;margin-bottom:4px!important}
.peer-template-header h3{font-size:16px!important;margin:4px 0 12px;color:#111}
.peer-info-grid{display:grid;grid-template-columns:180px 1fr;gap:6px 12px;text-align:left;max-width:760px;margin:0 auto 8px;font-size:15px}
.peer-matrix-table th{font-size:14px!important}
.peer-matrix-table .peer-person-col{color:#e11d1d!important;font-weight:800!important;min-width:120px!important;vertical-align:middle!important}
.peer-matrix-table td:first-child{text-align:center;vertical-align:middle}
.peer-matrix-table .group-row td{font-weight:800;background:#fff!important}
.peer-matrix-table input.peer-score-input{font-weight:700;text-align:center;border:0!important;background:transparent!important;box-shadow:none!important}
.peer-matrix-table input.peer-score-input:focus{outline:1px solid #3b82f6!important;background:#fff!important}


/* V2.9 - gọn giao diện góp ý, cố định 3 cột đầu, tăng cột tiêu chí */
.compact-peer-header{padding:12px 16px!important;text-align:center}
.compact-peer-header h2{font-size:21px!important;margin:0 0 4px 0!important}
.compact-peer-header h3{font-size:16px!important;margin:0 0 8px 0!important}
.peer-info-one-line{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-size:15px;
  margin-bottom:6px;
}
.peer-matrix-table{
  table-layout:fixed!important;
  min-width:1600px!important;
  border-collapse:separate!important;
  border-spacing:0!important;
}
.peer-matrix-table .peer-col-code{width:80px}
.peer-matrix-table .peer-col-criteria{width:460px}
.peer-matrix-table .peer-col-max{width:105px}
.peer-matrix-table th:nth-child(n+4),
.peer-matrix-table td:nth-child(n+4){width:145px;min-width:145px}
.peer-matrix-table th,
.peer-matrix-table td{border-right:1px solid #d7dfeb;border-bottom:1px solid #d7dfeb}
.peer-sticky{
  position:sticky!important;
  z-index:6;
  background:#fff;
}
.peer-matrix-table th.peer-sticky{background:#edf2f8!important;z-index:9}
.peer-matrix-table .group-row .peer-sticky{background:#f4f7fb!important}
.peer-sticky-1{left:0;width:80px;min-width:80px;max-width:80px}
.peer-sticky-2{left:80px;width:460px;min-width:460px;max-width:460px}
.peer-sticky-3{left:540px;width:105px;min-width:105px;max-width:105px}
.peer-sticky-summary{left:0;width:645px;min-width:645px;max-width:645px;background:#fafcff!important;z-index:7}
.peer-matrix-table .peer-person-col{min-width:145px!important;width:145px!important;color:#d01818!important}
.peer-matrix-table .muted{font-size:13px}
.peer-matrix-table td:nth-child(2){line-height:1.28}
.peer-score-input{width:82px!important;text-align:center!important}
.user-edit-table select[name="department_id"] option{white-space:normal}


/* V3.0 - Tách trang đăng ký/duyệt lịch công tác và lịch công tác theo thứ */
.schedule-register-table{table-layout:fixed;min-width:1180px}
.schedule-register-table th,.schedule-register-table td{vertical-align:top}
.schedule-register-table .schedule-col-content,
.schedule-register-table td:nth-child(4){min-width:330px}
.schedule-review-table{min-width:1300px}
.schedule-review-table th,.schedule-review-table td{vertical-align:top}
.schedule-review-table textarea{min-height:58px}
.weekly-public-table{width:100%;border-collapse:collapse}
.weekly-public-table th,.weekly-public-table td{vertical-align:top;min-height:42px}
.weekly-public-table td:first-child{width:150px;font-weight:700}
.compact-card{padding:14px 18px!important}

/* V3.1 - góp ý đồng nghiệp: cột điểm hẹp, sao chép cột; menu tiếng Việt rõ dấu */
.sidebar-section-title,
.sidebar-link,
.sidebar-link-label,
.sidebar-sub-link,
.sidebar-sub-link .sidebar-link-label{
  font-family: Arial, Tahoma, "Segoe UI", sans-serif!important;
  font-weight: 800!important;
  letter-spacing: 0!important;
  font-size: 17px!important;
  line-height: 1.35!important;
  font-kerning: normal;
  text-rendering: geometricPrecision;
}
.sidebar-sub-link .sidebar-link-label{font-size:14px!important;font-weight:700!important}
.peer-copy-toolbar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  margin:8px 0 10px 0;
  padding:8px 10px;
  border:1px solid #d8e2ef;
  background:#f8fbff;
  border-radius:12px;
}
.peer-copy-toolbar label{display:flex;align-items:center;gap:6px;font-weight:700;color:#17346e}
.peer-copy-toolbar select{min-width:150px;padding:7px 10px;border-radius:10px}
.peer-copy-message{font-weight:700;color:#166534}
.peer-guide-line{font-weight:700;color:#334155!important}
.peer-matrix-scroll-wrap{overflow-x:auto;max-width:100%}
.peer-matrix-table{min-width:1320px!important}
.peer-matrix-table th:nth-child(n+4),
.peer-matrix-table td:nth-child(n+4){
  width:105px!important;
  min-width:105px!important;
  max-width:105px!important;
  padding-left:4px!important;
  padding-right:4px!important;
}
.peer-matrix-table .peer-person-col{
  width:105px!important;
  min-width:105px!important;
  max-width:105px!important;
  font-size:13px!important;
  line-height:1.18!important;
}
.peer-score-input{
  width:58px!important;
  min-width:58px!important;
  max-width:58px!important;
  padding:4px 2px!important;
  font-size:14px!important;
}
.peer-matrix-table .muted{font-size:12px!important}


/* V3.4 - Tự đánh giá: thông tin phiếu gọn và copy điểm tối đa */
.compact-eval-info{
  padding:14px 18px!important;
}
.eval-info-title-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
  margin-bottom:8px;
}
.eval-info-title-row h2{
  margin:0!important;
  font-size:22px!important;
}
.eval-info-score{
  white-space:nowrap;
  font-size:16px;
}
.compact-eval-info .score-big{
  font-size:30px!important;
  line-height:1;
}
.eval-info-line{
  display:flex;
  flex-wrap:wrap;
  gap:10px 22px;
  align-items:center;
  font-size:15px;
  line-height:1.35;
  margin-top:4px;
}
.eval-copy-toolbar{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin:8px 0 12px 0;
  padding:8px 10px;
  background:#f6f9ff;
  border:1px solid #dbe6f7;
  border-radius:12px;
}
.eval-copy-message{
  font-weight:700;
  color:#1d4f9a;
}
.eval-sheet .eval-score-input{
  text-align:center;
  font-weight:700;
}


/* V3.5 - thiết lập tuần 1 năm học, đồng bộ tuần/ngày, hiển thị lịch đã gửi */
.submitted-schedule-row,
.submitted-schedule-row input,
.submitted-schedule-row textarea,
.submitted-schedule-row select{
  color:#0f766e!important;
  font-weight:600;
}
.submitted-note{
  display:block;
  margin-top:4px;
  color:#047857;
  font-size:11px;
  font-weight:800;
}
.schedule-register-table .submitted-schedule-row td{
  background:#f0fdf4!important;
}
.sidebar-link-label .badge-mini,
.badge-mini{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  height:20px;
  padding:0 6px;
  border-radius:999px;
  background:#ef4444;
  color:#fff;
  font-size:12px;
  font-weight:800;
}
.compact-form input[type="date"],
.compact-form input{
  min-height:38px;
}
.settings-note{
  color:#475569;
  font-size:14px;
}


/* V3.6 - chữ menu đồng đều, không in đậm quá mức */
.compact-sidebar,
.compact-sidebar *{
  font-family:"Segoe UI", Tahoma, Arial, sans-serif!important;
}
.compact-sidebar .sidebar-section-title{
  font-size:15px!important;
  font-weight:500!important;
  line-height:1.25!important;
  letter-spacing:0!important;
}
.compact-sidebar .sidebar-section-name{
  font-weight:500!important;
}
.compact-sidebar .sidebar-toggle{
  font-weight:600!important;
}
.compact-sidebar .sidebar-sub-link,
.compact-sidebar .sidebar-sub-link .sidebar-link-label{
  font-size:14px!important;
  font-weight:400!important;
  line-height:1.28!important;
}
.compact-sidebar .sidebar-link.active,
.compact-sidebar .sidebar-sub-link.active{
  font-weight:500!important;
}


/* V3.7 - đồng bộ cỡ chữ menu trái */
.compact-sidebar,
.compact-sidebar *{
  font-family:"Segoe UI", Tahoma, Arial, sans-serif!important;
  font-kerning:normal!important;
  text-rendering:geometricPrecision!important;
}

/* Thư mục lớn: lớn hơn thư mục con khoảng 10%, không quá đậm */
.compact-sidebar .sidebar-link:not(.sidebar-sub-link),
.compact-sidebar .sidebar-link:not(.sidebar-sub-link) .sidebar-link-label,
.compact-sidebar .sidebar-section-name,
.compact-sidebar .sidebar-folder-button,
.compact-sidebar .sidebar-folder-button .sidebar-section-name{
  font-size:16.5px!important;
  font-weight:600!important;
  line-height:1.32!important;
  letter-spacing:0!important;
}

/* Thư mục con: đồng bộ toàn bộ các nhóm, kể cả mục đang chọn */
.compact-sidebar .sidebar-submenu .sidebar-sub-link,
.compact-sidebar .sidebar-submenu .sidebar-sub-link .sidebar-link-label,
.compact-sidebar .sidebar-submenu .sidebar-sub-link.active,
.compact-sidebar .sidebar-submenu .sidebar-sub-link.active .sidebar-link-label,
.compact-sidebar .sidebar-sub-link,
.compact-sidebar .sidebar-sub-link .sidebar-link-label,
.compact-sidebar .sidebar-sub-link.active,
.compact-sidebar .sidebar-sub-link.active .sidebar-link-label{
  font-size:15px!important;
  font-weight:500!important;
  line-height:1.32!important;
  letter-spacing:0!important;
}

/* Không để trạng thái active làm chữ thư mục con to/đậm hơn */
.compact-sidebar .sidebar-sub-link.active,
.compact-sidebar .sidebar-sub-link.active .sidebar-link-label{
  font-size:15px!important;
  font-weight:500!important;
}

/* Nút +/- giữ gọn, không ảnh hưởng cỡ chữ thư mục */
.compact-sidebar .sidebar-toggle{
  font-size:13px!important;
  font-weight:600!important;
}


/* V3.8 - kế hoạch đã gửi và bỏ biểu tượng thư mục con */
.plan-build-sheet .submitted-plan-row textarea,
.plan-build-sheet .submitted-plan-row input,
.plan-build-sheet .submitted-plan-row td{
  color:#0f766e!important;
  font-weight:600!important;
}
.plan-build-sheet .submitted-plan-row td{
  background:#f0fdf4!important;
}
.submitted-plan-note{
  margin-top:8px;
  padding:8px 12px;
  border-radius:10px;
  background:#ecfdf5;
  border:1px solid #bbf7d0;
  color:#047857;
  font-size:13px;
  font-weight:600;
}
.compact-sidebar .sidebar-submenu .sidebar-sub-link .sidebar-icon{
  display:none!important;
}
.compact-sidebar .sidebar-submenu .sidebar-sub-link{
  padding-left:34px!important;
}


/* V3.9 - đồng bộ tuần năm học và làm rõ trang duyệt lịch công tác */
.schedule-review-card h2{margin-bottom:8px!important}
.review-summary-box{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  padding:10px 12px;
  margin:8px 0 12px;
  border:1px solid #d7e3f4;
  border-radius:12px;
  background:#f8fbff;
  color:#17346e;
}
.review-summary-box span{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:3px 8px;
  border-radius:999px;
  background:#fff;
  border:1px solid #e1e8f2;
}
.review-summary-box .badge-pending{
  background:#fff7ed;
  color:#9a3412;
  border-color:#fed7aa;
}
.schedule-review-table{
  width:100%;
  min-width:1500px!important;
  table-layout:fixed;
}
.schedule-review-table th{
  position:sticky;
  top:0;
  z-index:2;
  background:#eaf2ff!important;
  color:#0d2b68;
  text-align:center;
}
.schedule-review-table .review-idx{width:44px}
.schedule-review-table .review-unit{width:170px;font-weight:600}
.schedule-review-table .review-date{width:120px;text-align:center}
.schedule-review-table .review-content{width:360px}
.schedule-review-table textarea{
  width:100%;
  min-height:64px!important;
  resize:vertical;
}
.schedule-review-table input,
.schedule-review-table select{
  width:100%;
}
.schedule-review-row td{
  background:#fff;
}
.schedule-review-row:hover td{
  background:#f5f9ff!important;
}

/* V4.1 - tổng hợp lịch trực theo cơ sở và duyệt lịch công tác gọn hơn */
.duty-overview-table{
  width:100%;
  min-width:980px;
  border-collapse:collapse;
  table-layout:fixed;
}
.duty-overview-table th,
.duty-overview-table td{
  vertical-align:top;
  border:1px solid #d7e0ec;
}
.duty-overview-table th{
  background:#eaf1fb;
  color:#0f2d6b;
  font-weight:800;
}
.duty-overview-table .duty-overview-stt{width:46px!important;vertical-align:middle!important;font-weight:800}
.duty-overview-table .duty-overview-day{width:145px!important;vertical-align:middle!important;font-weight:800;color:#14366f}
.duty-overview-table .duty-overview-shift{width:75px!important;vertical-align:middle!important;font-weight:800}
.duty-campus-summary{min-height:54px;background:#fbfdff}
.duty-person{
  display:inline-block;
  min-width:185px;
  margin:3px 5px 4px 0;
  padding:6px 8px;
  border:1px solid #cfe0f5;
  border-radius:10px;
  background:#f8fbff;
  color:#102a5c;
  line-height:1.25;
}
.duty-person span{font-size:12px;color:#64748b}
.duty-note-mini{font-size:12px;color:#047857;margin-top:3px}
.duty-overview-card h2{margin-bottom:4px!important}
.schedule-review-table.compact-review-table{table-layout:fixed;min-width:1260px!important;width:100%}
.schedule-review-table .review-col-tt{width:52px!important}
.schedule-review-table .review-col-date{width:120px!important}
.schedule-review-table .review-col-time{width:150px!important}
.schedule-review-table .review-col-content{width:310px!important}
.schedule-review-table .review-col-participants{width:220px!important}
.schedule-review-table .review-col-location{width:150px!important}
.schedule-review-table .review-col-note{width:190px!important}
.schedule-review-table .review-col-action{width:220px!important}
.schedule-review-table .review-idx{width:52px!important;min-width:52px!important;max-width:52px!important;text-align:center;font-weight:800}
.review-proposer-box{
  margin:12px 0 18px 0;
  border:1px solid #d6e4f6;
  border-radius:14px;
  overflow:hidden;
  background:#fff;
}
.review-proposer-title{
  padding:10px 14px;
  background:#f2f7ff;
  border-bottom:1px solid #d6e4f6;
  color:#16336f;
  font-size:15px;
}
.review-proposer-title span{color:#94a3b8;margin:0 8px}
.empty-review-note{
  padding:16px 18px;
  border:1px dashed #cbd5e1;
  border-radius:12px;
  color:#64748b;
  background:#f8fafc;
}


/* V4.2 - thu gọn cột TT, Ngày, Ca trực trong bảng lịch trực nhìn theo cơ sở */
.duty-overview-table{
  table-layout:fixed!important;
  min-width:900px!important;
}
.duty-overview-table .duty-col-tt{width:54px!important}
.duty-overview-table .duty-col-day{width:130px!important}
.duty-overview-table .duty-col-shift{width:92px!important}
.duty-overview-table .duty-col-campus{width:auto!important}
.duty-overview-table th:nth-child(1),
.duty-overview-table td:nth-child(1),
.duty-overview-table .duty-overview-stt{
  width:54px!important;
  min-width:54px!important;
  max-width:54px!important;
  text-align:center!important;
}
.duty-overview-table th:nth-child(2),
.duty-overview-table td:nth-child(2),
.duty-overview-table .duty-overview-day{
  width:130px!important;
  min-width:130px!important;
  max-width:130px!important;
}
.duty-overview-table th:nth-child(3),
.duty-overview-table td:nth-child(3),
.duty-overview-table .duty-overview-shift{
  width:92px!important;
  min-width:92px!important;
  max-width:92px!important;
  text-align:center!important;
}
.duty-overview-table .duty-overview-shift{
  white-space:nowrap!important;
  vertical-align:middle!important;
}
.duty-overview-table .duty-overview-day{
  vertical-align:middle!important;
}


/* V4.3 - lịch công tác của Phòng TC-HC tự duyệt */
.schedule-entry-row.approved-schedule-row td{
  background:#eff6ff!important;
}
.schedule-entry-row.approved-schedule-row textarea,
.schedule-entry-row.approved-schedule-row input,
.schedule-entry-row.approved-schedule-row select{
  color:#1d4ed8!important;
  font-weight:700!important;
}
.submitted-note.approved-note{
  background:#dbeafe!important;
  color:#1d4ed8!important;
  border-color:#93c5fd!important;
}


/* V4.4 - Kiểm tra - Giám sát */
.monitoring-form{
  grid-template-columns: 180px 1.2fr 1.4fr 140px 180px;
  gap:12px;
}
.monitoring-form .wide{grid-column:span 2}
.monitoring-form .full{grid-column:1 / -1}
.monitoring-form textarea{min-height:82px}
.monitoring-table{
  width:100%;
  min-width:1250px;
  border-collapse:collapse;
}
.monitoring-table th,
.monitoring-table td{
  vertical-align:top;
  border:1px solid #d7e0ec;
}
.monitoring-table th{
  background:#eaf1fb;
  color:#0f2d6b;
  font-weight:700;
}
.monitoring-table td:nth-child(1){width:52px;text-align:center}
.monitoring-table td:nth-child(2){width:110px}
.monitoring-table td:nth-child(3){width:220px}
.monitoring-table td:nth-child(4){width:250px}
.monitoring-table td:nth-child(6){width:80px;text-align:center;font-weight:700;color:#b45309}
.checkline{display:flex;align-items:center;gap:6px;white-space:nowrap}


/* V4.5 - Quản lý file minh chứng trong báo cáo */
.evidence-file-box{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  margin-top:6px;
}
.evidence-actions{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.evidence-file-deleted{
  color:#b91c1c!important;
  font-weight:700!important;
}
.evidence-delete-btn{
  padding:4px 8px!important;
  font-size:12px!important;
}


/* V4.6 - lọc Kiểm tra - Giám sát theo tháng */
.monitoring-filter-card{
  padding-bottom:14px!important;
}
.monitoring-filter-form{
  grid-template-columns:240px 160px 1fr;
  align-items:end;
}
.monitoring-filter-form .field{
  margin-bottom:0!important;
}


/* V4.7 - Quản lý loại lỗi/vi phạm và tự xác định tiêu chí */
.monitoring-type-card{
  border-left:4px solid #2563eb;
}
.monitoring-type-add-form{
  grid-template-columns: 1.5fr 1.1fr 120px 110px 150px;
  align-items:end;
}
.monitoring-type-add-form .wide{grid-column:span 1}
.monitoring-type-table{
  width:100%;
  min-width:1050px;
  border-collapse:collapse;
}
.monitoring-type-table th,
.monitoring-type-table td{
  border:1px solid #d7e0ec;
  vertical-align:middle;
}
.monitoring-type-table th{
  background:#eef4ff;
  color:#0f2d6b;
  font-weight:700;
}
.monitoring-type-table td:nth-child(1){width:75px}
.monitoring-type-table td:nth-child(3){width:270px}
.monitoring-type-table td:nth-child(4){width:90px}
.monitoring-type-table td:nth-child(5){width:110px}
.monitoring-type-table td:nth-child(6){width:145px}
.monitoring-type-table input,
.monitoring-type-table select{
  width:100%;
}
#monitor_criterion_select{
  background:#f8fbff!important;
  font-weight:600;
}
.monitoring-form .muted{
  font-size:12px;
  margin-top:4px;
}


/* V4.8 - Trang đăng nhập: bỏ nút Trang chủ/Liên hệ, ưu tiên hiển thị đủ tên trường */
.login-page .login-header{
  justify-content:flex-start!important;
}
.login-page .school-brand{
  width:100%!important;
  max-width:100%!important;
}
.login-page .school-title-wrap{
  flex:1 1 auto!important;
  min-width:0!important;
}
.login-page .login-header-actions{
  display:none!important;
}
.login-page .school-title-main-one-line{
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
  max-width:none!important;
}
.login-page .school-title-sub-strong{
  white-space:nowrap!important;
}


/* V4.9 - Dữ liệu dùng chung ổ C và chỉnh bảng Cán bộ - đơn vị */
.user-edit-table{
  min-width:1950px!important;
  table-layout:fixed!important;
}
.user-edit-table th,
.user-edit-table td{
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
}
.user-edit-table th:nth-child(1),.user-edit-table td:nth-child(1){width:115px!important}
.user-edit-table th:nth-child(2),.user-edit-table td:nth-child(2){width:215px!important}
.user-edit-table th:nth-child(3),.user-edit-table td:nth-child(3){width:185px!important}
.user-edit-table th:nth-child(4),.user-edit-table td:nth-child(4){width:245px!important}
.user-edit-table th:nth-child(5),.user-edit-table td:nth-child(5){width:230px!important}
.user-edit-table th:nth-child(6),.user-edit-table td:nth-child(6){
  width:270px!important;
  min-width:270px!important;
  white-space:normal!important;
}
.user-edit-table th:nth-child(7),.user-edit-table td:nth-child(7){
  width:300px!important;
  min-width:300px!important;
  white-space:normal!important;
}
.user-edit-table th:nth-child(8),.user-edit-table td:nth-child(8){
  width:230px!important;
  min-width:230px!important;
  white-space:normal!important;
}
.user-edit-table th:nth-child(9),.user-edit-table td:nth-child(9){width:120px!important;text-align:center}
.user-edit-table th:nth-child(10),.user-edit-table td:nth-child(10){width:150px!important}
.user-edit-table td:nth-child(6) input,
.user-edit-table td:nth-child(7) input{
  font-size:12.5px!important;
}


/* V5.0 - File minh chứng trong Kiểm tra - Giám sát */
.monitoring-file-field{
  border:1px dashed #cbd5e1;
  border-radius:12px;
  padding:10px;
  background:#f8fbff;
}
.monitoring-file-box{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
}
.monitoring-file-label{
  font-weight:600;
}
.monitoring-file-list{
  margin-top:8px;
  padding:8px;
  border-radius:10px;
  background:#f8fafc;
  border:1px solid #e2e8f0;
}
.monitoring-file-list .evidence-view-link{
  margin-left:8px;
  font-weight:700;
}
.monitoring-file-update-form,
.monitoring-file-delete-form{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:6px;
  margin-right:6px;
}
.monitoring-file-update-form input[type="file"]{
  max-width:220px;
  padding:4px!important;
  font-size:12px!important;
}
.monitoring-table td:nth-child(7){
  min-width:260px;
}




/* V5.3 - KTGS phản hồi, xóa theo người ghi nhận, xuất tổng hợp */
.offender-response-box{
  padding:8px;
  border-radius:10px;
  background:#f8fafc;
  border:1px solid #dbe4ef;
  white-space:pre-wrap;
}
.offender-response-form{
  margin-top:8px;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.offender-response-form textarea{
  min-height:70px;
  width:100%;
  font-size:13px;
}
.monitoring-table{
  min-width:1600px!important;
}
.monitoring-table th:nth-child(3),
.monitoring-table td:nth-child(3){
  min-width:220px;
}
.monitoring-table th:nth-child(8),
.monitoring-table td:nth-child(8){
  min-width:280px;
}
.monitoring-table th:nth-child(9),
.monitoring-table td:nth-child(9){
  min-width:180px;
}
.monitoring-filter-form{
  grid-template-columns:240px 160px 260px 1fr!important;
}


/* V5.4 - Quản lý đánh giá: cột tự đánh giá và lỗi vi phạm trong tháng */
.manager-eval-sheet .self-score-cell{
  background:#f8fafc;
  color:#0f2d6b;
  font-weight:700;
}
.manager-monitoring-box{
  margin-top:16px;
  padding:12px;
  border:1px solid #d7e0ec;
  border-radius:12px;
  background:#fbfdff;
}
.manager-monitoring-box h3{
  margin:0 0 8px 0;
  color:#0f2d6b;
  font-size:18px;
}
.manager-monitoring-box.no-violations{
  background:#f8fafc;
}
.manager-monitoring-table{
  width:100%;
  min-width:1250px;
  border-collapse:collapse;
}
.manager-monitoring-table th,
.manager-monitoring-table td{
  border:1px solid #d7e0ec;
  vertical-align:top;
}
.manager-monitoring-table th{
  background:#eaf1fb;
  color:#0f2d6b;
  font-weight:700;
}
.manager-monitoring-table td:nth-child(1){width:52px;text-align:center}
.manager-monitoring-table td:nth-child(2){width:110px}
.manager-monitoring-table td:nth-child(3){width:210px}
.manager-monitoring-table td:nth-child(5){width:80px;text-align:center;font-weight:700}
.manager-monitoring-table td:nth-child(7){width:220px}


/* V5.5 - Xuất tổng hợp xếp loại và tổng hợp báo cáo tháng từ kế hoạch tuần */
.eval-summary-export-form{
  grid-template-columns:150px 120px 120px 140px 1.4fr 180px;
  align-items:end;
}
.eval-summary-export-form .field{
  margin-bottom:0!important;
}


/* V5.6 - Hội đồng đánh giá */
.council-filter-form{
  grid-template-columns: 160px 120px 120px 140px 1.3fr 160px;
  align-items:end;
}
.council-table{
  width:100%;
  min-width:1600px;
  border-collapse:collapse;
}
.council-table th,
.council-table td{
  border:1px solid #d7e0ec;
  vertical-align:top;
}
.council-table th{
  background:#eaf1fb;
  color:#0f2d6b;
  font-weight:700;
  text-align:center;
}
.council-table td:nth-child(1){width:54px;text-align:center}
.council-table td:nth-child(2){width:115px}
.council-table td:nth-child(3){width:240px}
.council-table td:nth-child(5),
.council-table td:nth-child(6),
.council-table td:nth-child(7){width:160px}
.council-table td:nth-child(9){min-width:320px}
.council-table select,
.council-table textarea{
  width:100%;
}
.council-table textarea{
  min-height:70px;
  margin-top:6px;
}
.council-department-row td{
  background:#f8fafc!important;
  color:#0f2d6b;
  font-size:16px;
}
.user-edit-table th:nth-child(9), .user-edit-table td:nth-child(9),
.user-edit-table th:nth-child(10), .user-edit-table td:nth-child(10){
  width:120px!important;
  text-align:center;
}
.user-edit-table th:nth-child(11), .user-edit-table td:nth-child(11){
  width:150px!important;
}


/* V5.7 - Tối ưu giao diện Hội đồng đánh giá */
.council-table{
  min-width:1180px!important;
  table-layout:fixed!important;
  font-size:14px!important;
}
.council-table th,
.council-table td{
  padding:8px 7px!important;
  line-height:1.25!important;
  overflow-wrap:break-word!important;
  word-break:normal!important;
}
.council-table th{
  position:sticky!important;
  top:72px!important;
  z-index:8!important;
  box-shadow:0 1px 0 #cbd5e1!important;
}
.council-table th:nth-child(1), .council-table td:nth-child(1){width:44px!important}
.council-table th:nth-child(2), .council-table td:nth-child(2){width:88px!important}
.council-table th:nth-child(3), .council-table td:nth-child(3){width:190px!important}
.council-table th:nth-child(4), .council-table td:nth-child(4){width:135px!important}
.council-table th:nth-child(5), .council-table td:nth-child(5){width:110px!important}
.council-table th:nth-child(6), .council-table td:nth-child(6){width:115px!important}
.council-table th:nth-child(7), .council-table td:nth-child(7){width:145px!important}
.council-table th:nth-child(8), .council-table td:nth-child(8){width:145px!important}
.council-table th:nth-child(9), .council-table td:nth-child(9){width:215px!important; min-width:215px!important}
.council-table th:nth-child(10), .council-table td:nth-child(10){width:82px!important}
.council-table select{
  min-height:36px!important;
  font-size:13px!important;
  padding:6px 8px!important;
}
.council-table textarea{
  min-height:58px!important;
  font-size:13px!important;
  padding:7px 8px!important;
}
.council-table .badge{
  font-size:12px!important;
  padding:3px 7px!important;
}
.council-table .btn.small{
  padding:6px 8px!important;
  font-size:12px!important;
}
.council-department-row td{
  position:sticky!important;
  top:118px!important;
  z-index:7!important;
  padding:7px!important;
  text-align:center!important;
}
.council-table td:nth-child(5),
.council-table td:nth-child(6),
.council-table td:nth-child(7){
  text-align:center!important;
}


/* V5.8 - Sửa cố định tiêu đề bảng Hội đồng đánh giá và bỏ khoảng trống đầu bảng */
.council-table{
  min-width:1160px!important;
  table-layout:fixed!important;
}
.council-table th{
  position:sticky!important;
  top:0!important;
  z-index:30!important;
  background:#eaf1fb!important;
}
.council-table th:nth-child(1), .council-table td:nth-child(1){width:44px!important}
.council-table th:nth-child(2), .council-table td:nth-child(2){
  width:105px!important;
  min-width:105px!important;
  white-space:normal!important;
  word-break:keep-all!important;
}
.council-table th:nth-child(3), .council-table td:nth-child(3){
  width:170px!important;
  min-width:170px!important;
}
.council-table th:nth-child(4), .council-table td:nth-child(4){width:132px!important}
.council-table th:nth-child(5), .council-table td:nth-child(5){width:108px!important}
.council-table th:nth-child(6), .council-table td:nth-child(6){width:112px!important}
.council-table th:nth-child(7), .council-table td:nth-child(7){width:140px!important}
.council-table th:nth-child(8), .council-table td:nth-child(8){width:140px!important}
.council-table th:nth-child(9), .council-table td:nth-child(9){width:210px!important;min-width:210px!important}
.council-table th:nth-child(10), .council-table td:nth-child(10){width:76px!important}
.council-department-row td{
  position:sticky!important;
  top:42px!important;
  z-index:25!important;
  background:#f8fafc!important;
}
.council-table tr:first-child th{
  border-top:1px solid #d7e0ec!important;
}
.council-table select{
  font-size:12.5px!important;
  padding:6px 7px!important;
}
.council-table textarea{
  min-height:54px!important;
  font-size:12.5px!important;
  padding:6px 7px!important;
}


/* V5.9 - Cố định thật sự tiêu đề bảng Hội đồng và chỉnh cột Mã/Họ tên */
.council-table-wrap{
  max-height:calc(100vh - 255px)!important;
  overflow:auto!important;
  position:relative!important;
  border:1px solid #d7e0ec!important;
  border-radius:0!important;
  background:#fff!important;
  padding-top:0!important;
  margin-top:0!important;
}
.council-table{
  margin-top:0!important;
  border-collapse:separate!important;
  border-spacing:0!important;
  table-layout:fixed!important;
  min-width:1150px!important;
}
.council-table tr:first-child th{
  position:sticky!important;
  top:0!important;
  z-index:60!important;
  background:#eaf1fb!important;
  box-shadow:0 2px 0 #cbd5e1!important;
}
.council-department-row td{
  position:sticky!important;
  top:44px!important;
  z-index:55!important;
  background:#f8fafc!important;
  box-shadow:0 1px 0 #d7e0ec!important;
}
.council-table th,
.council-table td{
  padding:7px 6px!important;
  line-height:1.22!important;
}
.council-table th:nth-child(1), .council-table td:nth-child(1){width:42px!important}
.council-table th:nth-child(2), .council-table td:nth-child(2){
  width:112px!important;
  min-width:112px!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
}
.council-table th:nth-child(3), .council-table td:nth-child(3){
  width:158px!important;
  min-width:158px!important;
}
.council-table th:nth-child(4), .council-table td:nth-child(4){width:126px!important}
.council-table th:nth-child(5), .council-table td:nth-child(5){width:104px!important}
.council-table th:nth-child(6), .council-table td:nth-child(6){width:108px!important}
.council-table th:nth-child(7), .council-table td:nth-child(7){width:134px!important}
.council-table th:nth-child(8), .council-table td:nth-child(8){width:136px!important}
.council-table th:nth-child(9), .council-table td:nth-child(9){width:205px!important;min-width:205px!important}
.council-table th:nth-child(10), .council-table td:nth-child(10){width:86px!important}
.council-table td:nth-child(10) .btn.small{
  display:inline-block!important;
  margin:2px 0!important;
  white-space:nowrap!important;
}
.council-table select{
  min-height:34px!important;
  font-size:12.5px!important;
}
.council-table textarea{
  min-height:50px!important;
  font-size:12.5px!important;
}


/* V6.0 - Thu gọn vùng đầu trang Hội đồng đánh giá để tăng diện tích xem bảng */
.page-title:has(+ .page-content .council-filter-card),
.main-title:has(+ .page-content .council-filter-card){
  margin-bottom:4px!important;
}
.council-filter-card.compact-card{
  margin:6px 0 10px 0!important;
  padding:10px 14px 12px 14px!important;
  border-radius:12px!important;
}
.council-filter-head{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  margin:0 0 6px 0!important;
}
.council-filter-head h2{
  margin:0!important;
  font-size:20px!important;
  line-height:1.15!important;
  white-space:nowrap!important;
}
.council-filter-head .muted{
  font-size:13px!important;
  line-height:1.2!important;
}
.council-filter-form.compact-filter-form{
  display:grid!important;
  grid-template-columns:120px 92px 98px 110px minmax(260px,1fr) 130px!important;
  gap:8px!important;
  align-items:end!important;
  margin:0!important;
}
.council-filter-form.compact-filter-form .field{
  margin:0!important;
}
.council-filter-form.compact-filter-form label{
  margin-bottom:3px!important;
  font-size:13px!important;
  line-height:1.1!important;
}
.council-filter-form.compact-filter-form select,
.council-filter-form.compact-filter-form input{
  height:38px!important;
  padding:7px 10px!important;
  font-size:14px!important;
  border-radius:10px!important;
}
.council-filter-form.compact-filter-form .btn{
  height:38px!important;
  padding:7px 14px!important;
  font-size:14px!important;
  border-radius:10px!important;
  width:100%!important;
}
.council-table-wrap{
  max-height:calc(100vh - 178px)!important;
}
.council-table th{
  top:0!important;
}
.council-department-row td{
  top:40px!important;
}
.card:has(.council-table){
  margin-top:8px!important;
  padding-top:10px!important;
}
.card:has(.council-table) h2{
  margin:0 0 8px 0!important;
  font-size:19px!important;
  line-height:1.15!important;
}
@media (max-width: 1280px){
  .council-filter-form.compact-filter-form{
    grid-template-columns:110px 85px 90px 100px minmax(220px,1fr) 120px!important;
    gap:6px!important;
  }
  .council-filter-head .muted{
    display:none!important;
  }
  .council-table-wrap{
    max-height:calc(100vh - 165px)!important;
  }
}


/* V6.1 - Chọn tháng đánh giá cho Tự đánh giá, Góp ý đồng nghiệp, Quản lý đánh giá */
.eval-month-card{
  padding:12px 16px!important;
  margin-bottom:12px!important;
}
.eval-month-form{
  margin:0!important;
}
.eval-month-filter{
  display:grid!important;
  grid-template-columns:180px 130px 180px 1fr!important;
  gap:10px!important;
  align-items:end!important;
  width:100%!important;
}
.eval-month-filter .field{
  margin:0!important;
}
.eval-month-filter label{
  margin-bottom:4px!important;
  font-size:14px!important;
}
.eval-month-filter select{
  height:40px!important;
  padding:7px 10px!important;
  border-radius:10px!important;
}
.eval-month-filter .btn{
  height:40px!important;
  padding:8px 14px!important;
  border-radius:10px!important;
}
.manager-eval-open-form select{
  max-width:100%!important;
}
.peer-template-header.compact-peer-header{
  margin-top:0!important;
}


/* V6.3 - tự tính điểm trừ KTGS và chỉnh màu ca trực */
#monitor_deduction_points[readonly]{
  background:#f8fafc!important;
  color:#0f2d6b!important;
  font-weight:800!important;
  cursor:not-allowed;
}
.duty-overview-table tr.duty-shift-morning td{
  background:#eef8ff!important;
}
.duty-overview-table tr.duty-shift-afternoon td{
  background:#fff8e9!important;
}
.duty-overview-table tr.duty-shift-morning .duty-campus-summary{
  background:#f5fbff!important;
}
.duty-overview-table tr.duty-shift-afternoon .duty-campus-summary{
  background:#fffaf0!important;
}
.duty-overview-table tr.duty-shift-morning .duty-overview-shift{
  color:#075985!important;
}
.duty-overview-table tr.duty-shift-afternoon .duty-overview-shift{
  color:#92400e!important;
}
.duty-overview-table .duty-overview-stt,
.duty-overview-table .duty-overview-day,
.duty-overview-table .duty-overview-shift{
  vertical-align:middle!important;
}
.duty-overview-table tr.duty-shift-afternoon .duty-overview-stt,
.duty-overview-table tr.duty-shift-afternoon .duty-overview-day{
  border-top:1px dashed #d7e0ec!important;
}


/* V6.4 - Import danh mục lỗi/vi phạm theo file Excel */
.monitoring-type-import-box{
  margin:10px 0 14px 0;
  padding:12px;
  border:1px dashed #b7c8df;
  border-radius:12px;
  background:#f8fbff;
}
.monitoring-type-import-box h3{
  margin:0 0 6px 0;
  color:#0f2d6b;
  font-size:17px;
}
.monitoring-type-import-form{
  margin-top:8px;
  grid-template-columns:1.3fr 190px 1fr!important;
  gap:10px!important;
  align-items:end;
}
.monitoring-type-import-form input[type="file"]{
  padding:8px!important;
  background:#fff!important;
}
.violation-import-file-label{
  display:inline-flex;
  align-items:center;
  min-height:38px;
  padding:8px 10px;
  border-radius:10px;
  background:#fff;
  border:1px solid #d7e0ec;
}


/* V6.5 - Tách Kiểm tra - Giám sát thành 2 mục con */
.monitoring-type-card{
  margin-top:0!important;
}
.monitoring-type-card .monitoring-type-import-box{
  margin-top:8px!important;
}


/* V6.8 - Hội đồng đánh giá: thêm điểm tổng Hội đồng và thu nhỏ các cột điểm */
.council-table{
  min-width:1220px!important;
  table-layout:fixed!important;
  font-size:13.5px!important;
}
.council-table th,
.council-table td{
  padding:6px 5px!important;
  line-height:1.18!important;
}
.council-table th:nth-child(1), .council-table td:nth-child(1){width:38px!important}
.council-table th:nth-child(2), .council-table td:nth-child(2){width:92px!important}
.council-table th:nth-child(3), .council-table td:nth-child(3){width:156px!important}
.council-table th:nth-child(4), .council-table td:nth-child(4){width:112px!important}
.council-table th:nth-child(5), .council-table td:nth-child(5){width:82px!important}
.council-table th:nth-child(6), .council-table td:nth-child(6){width:82px!important}
.council-table th:nth-child(7), .council-table td:nth-child(7){width:104px!important}
.council-table th:nth-child(8), .council-table td:nth-child(8){width:130px!important}
.council-table th:nth-child(9), .council-table td:nth-child(9){width:92px!important}
.council-table th:nth-child(10), .council-table td:nth-child(10){width:210px!important;min-width:210px!important}
.council-table th:nth-child(11), .council-table td:nth-child(11){width:78px!important}
.council-table .score-compact{
  font-size:12.5px!important;
}
.council-table .score-compact .badge{
  font-size:11px!important;
  padding:2px 5px!important;
  display:inline-block!important;
  line-height:1.15!important;
}
.council-score-input{
  width:78px!important;
  min-width:70px!important;
  height:34px!important;
  text-align:center!important;
  font-weight:800!important;
  border-radius:9px!important;
  padding:5px!important;
}
.council-auto-classification{
  min-height:26px!important;
  margin-bottom:5px!important;
  text-align:center!important;
}
.council-auto-classification .badge{
  font-size:11.5px!important;
  line-height:1.15!important;
  padding:3px 6px!important;
  display:inline-block!important;
}
.council-comment{
  min-height:44px!important;
  font-size:12.5px!important;
}

/* ===== V7.1 - Mobile/PWA: cài lên điện thoại và thao tác cảm ứng ===== */
.mobile-menu-btn{
  display:none;
  width:42px;
  height:42px;
  border:1px solid rgba(255,255,255,.35);
  border-radius:12px;
  background:rgba(255,255,255,.15);
  color:#fff;
  font-size:23px;
  font-weight:900;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  flex:0 0 auto;
}
.mobile-nav-overlay{display:none;}
.pwa-install-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 10px 0;
  padding:12px 14px;
  border:1px solid #bdd3f2;
  border-radius:14px;
  background:linear-gradient(90deg,#edf6ff,#ffffff);
  box-shadow:0 8px 20px rgba(22,47,95,.05);
  color:#17356f;
}
.pwa-install-card[hidden]{display:none!important;}
.pwa-install-card span{color:#52657d;font-size:13px;}
.pwa-install-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end;}
.mobile-help-card p{font-size:15px;line-height:1.65;}
.mobile-install-grid{margin-top:14px;}
.mobile-step strong{font-size:20px!important;color:#17356f;}
.mobile-step p{margin:8px 0 0 0;line-height:1.6;}
.mobile-help-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;}
.mobile-feature-list{line-height:1.8;margin:0;padding-left:20px;}
.mobile-only-shortcut{display:none;}

@media (max-width: 860px){
  html,body{max-width:100%;overflow-x:hidden;}
  body{font-size:15px;background:#f5f8fc;}
  .mobile-menu-btn{display:inline-flex;}
  .compact-main-header .school-topbar.compact{
    position:relative;
    padding:8px 10px!important;
    min-height:56px!important;
    gap:8px!important;
  }
  .school-brand{gap:9px!important;min-width:0;flex:1 1 auto;}
  .compact-main-header .school-logo{width:40px!important;height:40px!important;}
  .school-title-wrap{gap:2px!important;min-width:0;}
  .compact-main-header .school-title-main-one-line{
    font-size:13.2px!important;
    line-height:1.15!important;
    white-space:normal!important;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
    text-shadow:none!important;
  }
  .compact-main-header .school-title-sub-strong{
    font-size:11px!important;
    line-height:1.15!important;
    white-space:nowrap!important;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width:55vw;
  }
  .top-user-chip{display:none!important;}
  .school-quick-actions{flex:0 0 auto;gap:4px!important;}
  .school-quick-actions a{padding:8px 9px!important;font-size:0!important;border-radius:12px!important;}
  .school-quick-actions a span{font-size:17px!important;}
  .app-shell.compact-shell{display:block!important;min-height:calc(100vh - 56px)!important;}
  .left-sidebar.compact-sidebar{
    position:fixed!important;
    top:0;
    left:0;
    width:min(84vw,320px)!important;
    height:100vh;
    overflow:auto;
    z-index:2200;
    padding:12px 10px 24px!important;
    transform:translateX(-105%);
    transition:transform .22s ease;
    box-shadow:16px 0 32px rgba(15,35,75,.22);
    border-right:1px solid #dbe5f0;
    background:#fff;
  }
  body.mobile-nav-open .left-sidebar.compact-sidebar{transform:translateX(0);}
  .mobile-nav-overlay{
    display:block;
    position:fixed;
    inset:0;
    background:rgba(15,23,42,.42);
    z-index:2100;
    opacity:0;
    pointer-events:none;
    transition:opacity .18s ease;
  }
  body.mobile-nav-open .mobile-nav-overlay{opacity:1;pointer-events:auto;}
  .sidebar-link{font-size:15px!important;padding:11px 12px!important;border-radius:12px!important;}
  .sidebar-sub-link{font-size:14.5px!important;padding-left:38px!important;}
  .sidebar-section-title{font-size:15px!important;padding:12px 9px!important;}
  .sidebar-icon{width:30px!important;height:30px!important;min-width:30px!important;font-size:16px!important;}
  .content-shell.compact-content{padding:8px 8px 16px!important;}
  .compact-module-banner{padding:9px 11px!important;margin-bottom:8px!important;border-radius:12px!important;}
  .compact-module-banner .module-title{font-size:20px!important;line-height:1.15!important;}
  .main.compact-main{padding:0!important;}
  .card{padding:13px 12px!important;margin-bottom:10px!important;border-radius:13px!important;}
  h1{font-size:21px!important;} h2{font-size:18px!important;}
  .grid{grid-template-columns:1fr!important;gap:10px!important;}
  .form-grid{display:block!important;}
  .field{margin-bottom:10px!important;}
  input,select,textarea{font-size:16px!important;padding:11px 10px!important;border-radius:12px!important;}
  textarea{min-height:92px!important;}
  .btn{min-height:42px;padding:10px 12px!important;border-radius:12px!important;font-size:14.5px!important;}
  .actions{gap:5px!important;}
  .actions .btn{flex:1 1 auto;text-align:center;}
  .table-wrap{overflow-x:auto!important;-webkit-overflow-scrolling:touch;max-width:100%;}
  table{font-size:13px!important;}
  th,td{padding:7px 6px!important;}
  .plan-sheet,.report-sheet,.schedule-table,.duty-table-register,.user-edit-table,.council-table{min-width:980px!important;}
  .top-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;}
  .shortcut-card{padding:10px 9px!important;font-size:13.5px!important;border-radius:12px!important;}
  .shortcut-icon{width:30px!important;height:30px!important;min-width:30px!important;}
  .mobile-only-shortcut{display:flex!important;}
  .pwa-install-card{align-items:flex-start;flex-direction:column;padding:12px!important;}
  .pwa-install-actions{justify-content:flex-start;width:100%;}
  .pwa-install-actions .btn{flex:1 1 auto;text-align:center;}
  .footer{font-size:11.5px!important;margin-top:16px!important;}
  .login-page{align-items:flex-start;min-height:100dvh;}
  .login-shell{width:100%;margin:0!important;}
  .login-header{border-radius:0!important;padding:12px 14px!important;align-items:flex-start!important;}
  .login-header .school-title-main-one-line{font-size:15px!important;line-height:1.18!important;}
  .login-main{border-radius:0!important;box-shadow:none!important;}
  .login-card-school{padding:18px 14px 22px!important;}
  .login-card-title h2{font-size:22px!important;}
  .login-school-logo{width:78px!important;height:78px!important;}
  .password-row{gap:6px!important;}
  .password-row button{width:64px!important;}
}

@media (max-width: 420px){
  .top-shortcuts{grid-template-columns:1fr!important;}
  .compact-main-header .school-title-main-one-line{font-size:12.5px!important;}
  .compact-main-header .school-title-sub-strong{font-size:10.5px!important;max-width:48vw;}
  .school-quick-actions a{padding:7px 8px!important;}
}

/* ===== V7.2 - Mobile: sửa trang Xem báo cáo và ngày ngắn trong bảng báo cáo ===== */
.reports-list-table{
  min-width:920px;
  table-layout:auto;
}
.reports-list-table th,
.reports-list-table td{
  vertical-align:middle!important;
}
.reports-list-table .reports-action-cell{
  min-width:150px;
  text-align:center;
}
.reports-list-table .reports-action-cell .btn{
  white-space:normal;
  line-height:1.25;
  text-align:center;
}
.report-sheet .report-date-cell{
  width:82px!important;
  min-width:82px!important;
  max-width:92px!important;
  text-align:center!important;
  white-space:normal!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
}
.report-sheet .date-short-input{
  width:82px!important;
  min-width:78px!important;
  max-width:88px!important;
  text-align:center!important;
  white-space:normal!important;
  line-height:1.2!important;
  overflow:hidden!important;
  text-overflow:clip!important;
}
.report-sheet th:nth-child(3),
.report-sheet th:nth-child(4){
  width:82px!important;
  min-width:82px!important;
  white-space:normal!important;
  line-height:1.2!important;
}

@media (max-width: 860px){
  .reports-list-card{overflow:visible!important;}
  .reports-list-wrap{overflow:visible!important;}
  .reports-list-table{
    min-width:0!important;
    width:100%!important;
    border-collapse:separate!important;
    border-spacing:0 10px!important;
    background:transparent!important;
  }
  .reports-list-table thead{display:none!important;}
  .reports-list-table tbody,
  .reports-list-table tr,
  .reports-list-table td{display:block!important;width:100%!important;}
  .reports-list-table tr{
    background:#fff!important;
    border:1px solid #dbe5f0!important;
    border-radius:13px!important;
    box-shadow:0 4px 12px rgba(15,35,75,.06)!important;
    overflow:hidden!important;
    margin-bottom:10px!important;
  }
  .reports-list-table td{
    position:relative!important;
    border:0!important;
    border-bottom:1px solid #eef2f7!important;
    padding:8px 10px 8px 122px!important;
    min-height:38px!important;
    text-align:left!important;
    white-space:normal!important;
  }
  .reports-list-table td::before{
    content:attr(data-label);
    position:absolute;
    left:10px;
    top:8px;
    width:102px;
    color:#17356f;
    font-weight:800;
    font-size:12.5px;
    line-height:1.25;
  }
  .reports-list-table .reports-action-cell{
    padding:8px 10px!important;
    border-bottom:0!important;
    min-width:0!important;
  }
  .reports-list-table .reports-action-cell::before{display:none!important;}
  .reports-list-table .reports-action-cell .btn{
    width:100%!important;
    margin:0!important;
    display:block!important;
    min-height:44px!important;
    padding:11px 12px!important;
    font-size:15px!important;
  }
  .report-sheet{
    min-width:1180px!important;
  }
  .report-sheet .report-date-cell,
  .report-sheet th:nth-child(3),
  .report-sheet th:nth-child(4){
    width:76px!important;
    min-width:76px!important;
    max-width:82px!important;
  }
  .report-sheet .date-short-input{
    width:76px!important;
    min-width:72px!important;
    max-width:80px!important;
    padding:4px 2px!important;
    font-size:14px!important;
  }
}

/* V7.3 - Báo cáo: ô Ngày hoàn thành dùng bộ chọn ngày, không tràn cột */
.report-sheet .date-picker-input{
  width:112px!important;
  min-width:108px!important;
  max-width:118px!important;
  font-size:14px!important;
  text-align:center!important;
}
.report-sheet td.report-date-cell:has(.date-picker-input),
.report-sheet th:nth-child(4){
  width:118px!important;
  min-width:112px!important;
  max-width:126px!important;
}
@media (max-width:860px){
  .report-sheet .date-picker-input{
    width:108px!important;
    min-width:104px!important;
    max-width:114px!important;
    font-size:13px!important;
  }
  .report-sheet td.report-date-cell:has(.date-picker-input),
  .report-sheet th:nth-child(4){
    width:112px!important;
    min-width:108px!important;
    max-width:120px!important;
  }
}

/* V7.4 - Trang in, chữ ký và xuất hàng loạt */
.eval-list-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}.eval-list-header h2{margin-bottom:4px}.print-signature-img{max-width:180px;max-height:80px;object-fit:contain}.signature-preview{display:block}.signature-help-list{margin-top:8px}.report-print-link{white-space:nowrap}
@media(max-width:700px){.eval-list-header{display:block}.eval-list-header .actions{margin-top:8px}.eval-list-header .btn{width:100%;text-align:center}}

/* ===== V7.6 - sắp xếp phiếu theo đơn vị, đưa nút kế hoạch xuống dưới, thu gọn góp ý đồng nghiệp ===== */
.eval-department-row td{
  background:#edf4ff!important;
  color:#17356f!important;
  font-weight:800;
  border-top:2px solid #b7c9e8!important;
}
.plan-build-sheet + .plan-toolbar{
  margin-top:12px!important;
  margin-bottom:4px!important;
}
.plan-build-sheet + .plan-toolbar .actions{
  justify-content:flex-end;
  margin-left:auto;
}
.peer-matrix-table .peer-col-code{width:54px!important}
.peer-matrix-table .peer-col-criteria{width:360px!important}
.peer-sticky-1{left:0!important;width:54px!important;min-width:54px!important;max-width:54px!important}
.peer-sticky-2{left:54px!important;width:360px!important;min-width:360px!important;max-width:360px!important}
.peer-sticky-3{left:414px!important;width:105px!important;min-width:105px!important;max-width:105px!important}
.peer-sticky-summary{left:0!important;width:519px!important;min-width:519px!important;max-width:519px!important}
.peer-matrix-table td:nth-child(2){font-size:13px!important;line-height:1.2!important}
.peer-matrix-table td:nth-child(2) .muted{font-size:12px!important}

@media (max-width: 768px){
  .plan-build-sheet + .plan-toolbar{align-items:stretch!important}
  .plan-build-sheet + .plan-toolbar .actions{width:100%!important}
  .plan-build-sheet + .plan-toolbar .actions .btn{flex:1 1 140px!important}
}

/* ===== V8.5 - Hội đồng: chép điểm trưởng đơn vị và cảnh báo chênh điểm ===== */
.council-score-control{display:flex;flex-direction:column;gap:6px;align-items:center;min-width:110px}
.council-score-input{width:84px!important;text-align:center!important;font-weight:700!important}
.council-copy-btn{padding:4px 8px!important;font-size:12px!important;line-height:1.15!important;white-space:normal!important;max-width:96px!important}
.council-diff-warning{font-size:12px;color:#b45309;background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;padding:3px 6px;line-height:1.2;text-align:center;max-width:120px}
.notification-panel{border-left:5px solid #f59e0b!important;background:#fffbeb!important;color:#78350f!important}
.notification-item{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;border-top:1px solid #fde68a;margin-top:8px;padding-top:8px}
.notification-item .btn{white-space:nowrap}
@media(max-width:860px){.council-score-control{min-width:96px}.council-score-input{width:78px!important}.council-copy-btn{max-width:88px!important;font-size:11px!important}.notification-item{display:block}.notification-item .btn{margin-top:6px;width:100%;text-align:center}}

/* V8.6 - Duyệt/Trả báo cáo */
.alert-note{
  margin:10px 0;
  padding:10px 12px;
  border-radius:10px;
  background:#fff7ed;
  border:1px solid #fed7aa;
  color:#7c2d12;
}
.alert-note.ok{
  background:#ecfdf5;
  border-color:#bbf7d0;
  color:#14532d;
}
.return-report-box{
  margin-top:12px;
  padding:10px 12px;
  border:1px dashed #d1d5db;
  border-radius:10px;
  background:#f9fafb;
}

/* V8.8: minh chứng báo cáo nhiều file */
.evidence-multi-box{display:block;gap:4px;margin-top:6px}
.evidence-file-list{margin-top:5px;font-size:12px;line-height:1.35}
.evidence-attachment-item{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:2px 0;border-bottom:1px dotted #d7deea}
.evidence-delete-choice{font-size:12px;color:#b42318;white-space:nowrap}
.evidence-new-label{display:block;margin-top:5px;font-size:12px}
.evidence-multi-box input[type=file]{max-width:100%;font-size:12px}
@media(max-width:760px){.evidence-attachment-item{display:block}.evidence-delete-choice{display:inline-block;margin-top:2px}}

/* V9.1 - Tối ưu hiển thị minh chứng trong trang Báo cáo */
.report-sheet td.report-evidence-cell{
  padding:4px 6px!important;
  vertical-align:top!important;
}
.report-sheet .evidence-text-compact{
  min-height:36px!important;
  max-height:72px!important;
  line-height:1.25!important;
  padding:4px 4px!important;
  font-size:14px!important;
  resize:vertical!important;
}
.report-sheet .evidence-compact{
  display:block!important;
  border-top:0!important;
  margin-top:2px!important;
  padding-top:0!important;
  line-height:1.15!important;
}
.report-sheet .evidence-compact input[type="file"],
.report-sheet .evidence-upload-input{
  max-width:175px!important;
  width:175px!important;
  padding:2px 4px!important;
  font-size:11px!important;
  line-height:1.1!important;
  border-radius:7px!important;
}
.report-sheet .evidence-file-list{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:3px!important;
  margin:2px 0 2px 0!important;
  font-size:11px!important;
  line-height:1.15!important;
}
.report-sheet .evidence-attachment-item{
  display:inline-flex!important;
  align-items:center!important;
  gap:3px!important;
  flex-wrap:nowrap!important;
  max-width:100%!important;
  padding:1px 5px!important;
  margin:0!important;
  border:0!important;
  border-radius:999px!important;
  background:#eef4ff!important;
}
.report-sheet .evidence-view-link{
  margin-left:0!important;
  padding:0!important;
  max-width:145px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  background:transparent!important;
  color:#174ea6!important;
  font-size:11px!important;
  line-height:1.2!important;
}
.report-sheet .evidence-delete-choice{
  display:inline-flex!important;
  align-items:center!important;
  gap:2px!important;
  margin:0!important;
  font-size:10px!important;
  line-height:1.1!important;
  white-space:nowrap!important;
}
.report-sheet .evidence-delete-choice input{
  width:12px!important;
  height:12px!important;
  margin:0!important;
}
.report-sheet .evidence-new-label{
  display:inline-block!important;
  margin:1px 0 0 4px!important;
  font-size:11px!important;
  line-height:1.15!important;
  color:#64748b!important;
}
@media(max-width:760px){
  .report-sheet .evidence-attachment-item{display:inline-flex!important}
  .report-sheet .evidence-compact input[type="file"],
  .report-sheet .evidence-upload-input{max-width:150px!important;width:150px!important}
  .report-sheet .evidence-view-link{max-width:115px!important}
}

/* V9.3 - Thu gọn thông báo và thao tác duyệt hàng loạt */
.notification-panel-compact{padding:10px 14px!important;margin:8px 0 14px!important;border-radius:14px!important}
.notification-panel-compact summary{cursor:pointer;display:flex;align-items:center;gap:8px;list-style:none;font-weight:700;min-height:30px}
.notification-panel-compact summary::-webkit-details-marker{display:none}
.notification-panel-compact summary:after{content:'▾';margin-left:auto;font-size:13px;color:#92400e}
.notification-panel-compact[open] summary:after{content:'▴'}
.notification-summary-text{font-weight:600;color:#78350f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:58vw;display:inline-block}
.notification-items-wrap{margin-top:8px;max-height:220px;overflow:auto;padding-right:4px}
.notification-panel-compact .notification-item{margin-top:6px;padding-top:6px;font-size:13px}
.authority-bulk-panel{padding:14px 18px!important}
.authority-bulk-panel h2{margin-bottom:4px!important}
.authority-bulk-panel .actions{gap:10px;align-items:center;flex-wrap:wrap}
.authority-bulk-form{display:inline-block;margin:0}
.compact-card p{margin-top:2px;margin-bottom:8px}
@media(max-width:860px){.notification-summary-text{max-width:46vw}.authority-bulk-form,.authority-bulk-form button{width:100%}.authority-bulk-panel .actions{display:block}.authority-bulk-panel .btn{margin-bottom:8px;width:100%}}

/* ===== V9.4 - Nhóm báo cáo toàn trường theo phòng/khoa ===== */
.reports-department-row td{
  background:#edf4ff!important;
  color:#17356f!important;
  font-weight:800;
  border-top:2px solid #b7c9e8!important;
  text-transform:none;
}
.reports-list-table .reports-department-row td{
  padding:10px 12px!important;
}
@media(max-width:860px){
  .reports-list-table .reports-department-row td{
    display:block!important;
    width:100%!important;
    border-radius:10px;
    margin:8px 0 4px 0;
  }
}

/* ===== V9.5 - Xuất PDF hàng loạt phiếu góp ý đồng nghiệp ===== */
.peer-export-actions{margin-top:10px;align-items:center}
.peer-export-actions .muted{font-size:13px}

/* ===== V9.7 - Tối ưu trang Quản lý đánh giá ===== */
.manager-top-grid{
  display:grid;
  grid-template-columns:minmax(360px,1fr) minmax(420px,1.4fr);
  gap:14px;
  align-items:stretch;
  margin-bottom:14px;
}
.manager-period-card .card,
.manager-top-grid > .card{
  height:100%;
  margin:0!important;
}
.manager-period-card .eval-month-card{
  padding:14px 18px!important;
}
.manager-period-card .eval-month-form{
  grid-template-columns:160px 120px auto!important;
  gap:10px!important;
  align-items:end!important;
}
.manager-period-card .eval-month-form label,
.manager-period-card .eval-month-form .form-label{
  margin-bottom:3px!important;
}
.manager-quick-panel{
  padding:14px 18px!important;
  margin-bottom:14px!important;
}
.manager-panel-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  margin-bottom:8px;
}
.manager-panel-head h2{
  margin:0 0 4px!important;
  font-size:20px!important;
}
.manager-help-line{
  margin:0!important;
  line-height:1.35!important;
  font-size:13px!important;
}
.manager-actions-compact{
  display:flex;
  flex-wrap:wrap;
  gap:8px!important;
  align-items:center;
  margin-top:8px!important;
}
.manager-mini-btn{
  padding:8px 13px!important;
  min-height:36px!important;
  border-radius:10px!important;
  font-size:14px!important;
  line-height:1.1!important;
  white-space:nowrap!important;
}
.manager-action-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  align-items:start;
}
.manager-action-box{
  border:1px solid #d9e4f6;
  background:#f8fbff;
  border-radius:14px;
  padding:12px;
  min-height:112px;
}
.manager-action-title{
  font-weight:800;
  color:#17356f;
  margin-bottom:8px;
}
.manager-action-box .inline-form{
  margin:0 7px 8px 0!important;
  display:inline-flex!important;
  gap:6px!important;
  align-items:center!important;
  flex-wrap:wrap;
}
.manager-inline-selects select{
  min-width:95px!important;
  max-width:140px!important;
  height:36px!important;
  padding:6px 8px!important;
}
.manager-staff-card{
  padding-top:16px!important;
}
.manager-eval-table th,
.manager-eval-table td{
  padding:8px 9px!important;
  vertical-align:middle!important;
}
.manager-eval-table td:nth-child(1){width:44px;text-align:center}
.manager-eval-table td:nth-child(4),
.manager-eval-table td:nth-child(5){font-size:13px}
.manager-table-wrap{max-height:calc(100vh - 390px);overflow:auto;border-radius:12px}
.manager-table-wrap table th{position:sticky;top:0;z-index:2}
.authority-bulk-panel.manager-quick-panel h2{font-size:19px!important}
.authority-bulk-panel.manager-quick-panel .actions{margin-top:8px!important}
@media(max-width:1000px){
  .manager-top-grid,.manager-action-grid{grid-template-columns:1fr}
  .manager-period-card .eval-month-form{grid-template-columns:1fr 1fr!important}
  .manager-period-card .eval-month-form button{grid-column:1 / -1;width:100%}
  .manager-table-wrap{max-height:none}
}
@media(max-width:640px){
  .manager-mini-btn,.manager-action-box .btn{width:100%!important;margin-bottom:6px!important}
  .manager-inline-selects select{width:calc(50% - 5px)!important;max-width:none!important}
  .manager-panel-head h2{font-size:18px!important}
}

/* ===== V9.8 - Sắp xếp lại trang Quản lý đánh giá ===== */
.manager-top-grid{
  grid-template-columns:minmax(420px,1fr) minmax(420px,1fr)!important;
  align-items:start!important;
  margin-bottom:12px!important;
}
.manager-top-grid > :only-child{
  grid-column:1 / -1!important;
}
.manager-staff-card{
  margin-bottom:14px!important;
}
.manager-bulk-eval-panel{
  margin-top:0!important;
  background:#ffffff!important;
  border:1px solid #e2eaf7!important;
}
.manager-bulk-eval-panel .manager-panel-head{
  margin-bottom:10px!important;
}
.manager-action-grid-bottom{
  grid-template-columns:1fr 1fr!important;
  gap:14px!important;
}
.manager-action-box{
  min-height:0!important;
  padding:12px 14px!important;
  background:#f9fbff!important;
}
.manager-action-title{
  margin-bottom:9px!important;
  font-size:15px!important;
}
.manager-action-row{
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:8px!important;
  margin:0 0 8px 0!important;
}
.manager-action-row select{
  min-width:120px!important;
  max-width:170px!important;
}
.manager-action-row .btn,
.manager-action-row button{
  min-width:130px!important;
}
.manager-table-wrap{
  max-height:calc(100vh - 325px)!important;
}
.authority-bulk-panel .manager-help-line{
  max-width:760px;
}
@media(max-width:1000px){
  .manager-top-grid,
  .manager-action-grid-bottom{
    grid-template-columns:1fr!important;
  }
  .manager-action-row select,
  .manager-action-row .btn,
  .manager-action-row button{
    min-width:0!important;
    flex:1 1 150px!important;
  }
}
@media(max-width:640px){
  .manager-action-row{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
  }
  .manager-action-row .btn,
  .manager-action-row button{
    grid-column:1 / -1!important;
    width:100%!important;
  }
}

/* V10.5 - phân trang/tìm kiếm danh sách lớn */
.pagination-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:10px 0;
  padding:8px 10px;
  border:1px solid #d9e2f2;
  border-radius:12px;
  background:#f8fbff;
}
.pagination-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.pagination-actions select{
  min-height:34px;
  border-radius:10px;
  border:1px solid #cbd5e1;
  padding:4px 8px;
}
.pagination-actions .disabled{
  opacity:.45;
  pointer-events:none;
}
.list-filter-form,
.reports-filter-form{
  margin:8px 0 10px 0;
}
.password-card{
  max-width:860px;
}
@media(max-width:700px){
  .pagination-bar{align-items:flex-start; flex-direction:column;}
  .pagination-actions{width:100%;}
}


/* V10.11 - trang Xem thời khóa biểu KT-GS: đặt phân trang ở cuối danh sách, ưu tiên nút Trước/Sau bên phải */
.pagination-bottom-right .pagination-bar{
  margin-top:14px;
  margin-bottom:0;
}
.pagination-bottom-right .pagination-actions{
  margin-left:auto;
  justify-content:flex-end;
}

/* V10.12 - Thống kê nghỉ dạy theo tháng/khoa */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:18px}.stat-card{background:linear-gradient(180deg,#fff,#f8fbff);border:1px solid #e6edf8;border-radius:18px;padding:16px;box-shadow:0 .45rem 1rem rgba(0,0,0,.04)}.stat-card b{display:block;font-size:28px;color:#17356f;margin-bottom:6px}.stat-card span{color:#667085;font-weight:700}
