/* ============================================================
   VPHC — MODERN MINIMAL THEME v9 (2026 redesign)
   Authority Navy #1E3A8A + Trust Gold #B45309 · Be Vietnam Pro
   Giữ nguyên toàn bộ class names cũ — chỉ đổi giá trị thị giác
   ============================================================ */
:root {
  --font-body: 'Be Vietnam Pro', 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
  --clr-bg: #f1f5f9;  --clr-surface: #ffffff;  --clr-surface-2: #f8fafc;
  --clr-border: #e2e8f0;  --clr-text: #0f172a;  --clr-text-mute: #64748b;
  --clr-primary: #1e3a8a;  --clr-primary-h: #1e40af;  --clr-primary-soft: #eff6ff;
  --clr-success: #15803d;  --clr-success-soft: #f0fdf4;
  --clr-warning: #b45309;  --clr-warning-soft: #fffbeb;
  --clr-danger: #dc2626;   --clr-danger-soft: #fef2f2;
  --clr-info: #0369a1;     --clr-accent: #b45309;
  --shadow-sm: 0 1px 2px rgba(15,23,42,.05);
  --shadow-md: 0 2px 8px -2px rgba(15,23,42,.08), 0 1px 3px rgba(15,23,42,.04);
  --shadow-lg: 0 12px 24px -6px rgba(15,23,42,.12), 0 2px 6px rgba(15,23,42,.05);
  --radius-sm: 8px;  --radius-md: 12px;  --radius-lg: 16px;
  --transition: 180ms cubic-bezier(.4,0,.2,1);
  --navbar-h: 60px;  --touch-min: 44px;
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

/* ── Base ─────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size:16px; -webkit-text-size-adjust:100%; }
body {
  font-family: var(--font-body); color: var(--clr-text); line-height:1.55; min-height:100vh;
  display:flex; flex-direction:column;
  background:
    radial-gradient(1100px 380px at 85% -180px, rgba(30,58,138,.07), transparent),
    var(--clr-bg);
}
a { color: var(--clr-primary); text-decoration:none; transition: color var(--transition); }
a:hover { color: var(--clr-primary-h); }
h1,h2,h3,h4 { font-weight:700; letter-spacing:-.01em; }
:focus-visible { outline:3px solid var(--clr-primary); outline-offset:2px; border-radius:4px; }

.main-content { flex:1; width:100%; max-width:1280px; margin:0 auto; padding:1.75rem 1.5rem; }
.page-title { font-size:1.5rem; font-weight:800; letter-spacing:-.02em; margin-bottom:.35rem; }
.text-mute{color:var(--clr-text-mute);} .text-small{font-size:.85rem;} .text-center{text-align:center;}
.mb-1{margin-bottom:.4rem;} .mt-2{margin-top:.8rem;} .w-100{width:100%;}
.d-flex{display:flex; align-items:center;}
.gap-1{gap:.5rem;} .gap-2{gap:.75rem;}
.flex-between{display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap;}
.section-divider{border:none; border-top:1px solid var(--clr-border); margin:1.4rem 0;}

/* ── Navbar ───────────────────────────────────────────────── */
.navbar {
  position:sticky; top:0; z-index:100; height:var(--navbar-h);
  display:flex; align-items:center; gap:1.25rem; padding:0 1.5rem;
  background:rgba(255,255,255,.92); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--clr-border);
}
.navbar-brand { display:flex; align-items:center; gap:.55rem; font-weight:800; font-size:1.02rem; color:var(--clr-text); white-space:nowrap; }
.navbar-icon {
  width:34px; height:34px; border-radius:10px; flex-shrink:0;
  background:linear-gradient(135deg, var(--clr-primary), #2563eb);
  display:inline-flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-sm);
}
.navbar-title { letter-spacing:-.02em; }
.navbar-links { display:flex; align-items:center; gap:.35rem; margin-left:auto; }
.nav-link {
  display:inline-flex; align-items:center; min-height:38px; padding:.45rem .95rem;
  border-radius:999px; color:var(--clr-text-mute); font-weight:600; font-size:.92rem;
  transition:all var(--transition);
}
.nav-link:hover { background:var(--clr-primary-soft); color:var(--clr-primary); }
.nav-link.active { background:var(--clr-primary); color:#fff; box-shadow:var(--shadow-sm); }
.navbar-user { display:flex; align-items:center; gap:.5rem; margin-left:.75rem; padding-left:.9rem; border-left:1px solid var(--clr-border); }
.user-info { font-weight:600; font-size:.88rem; color:var(--clr-text-mute); max-width:160px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.btn-icon {
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; min-width:40px; border-radius:10px; border:none;
  background:transparent; cursor:pointer; font-size:1.05rem;
  transition:background var(--transition);
}
.btn-icon:hover { background:var(--clr-primary-soft); }
.mobile-toggle-btn { display:none; }

/* ── Cards & panels ───────────────────────────────────────── */
.card {
  background:var(--clr-surface); border:1px solid var(--clr-border);
  border-radius:var(--radius-md); box-shadow:var(--shadow-sm);
  padding:1.5rem; transition:box-shadow var(--transition);
}
.card:hover { box-shadow:var(--shadow-md); }
.card-header { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:1.1rem; flex-wrap:wrap; }
.card-title { font-size:1.06rem; font-weight:700; }

/* ── Buttons ───────────────────────────────────────────────── */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.45rem;
  min-height:var(--touch-min); padding:.55rem 1.15rem;
  border-radius:10px; border:1px solid transparent;
  font-family:inherit; font-weight:600; font-size:.92rem; line-height:1;
  cursor:pointer; white-space:nowrap;
  transition:all var(--transition);
}
.btn:active { transform:translateY(1px); }
.btn-primary { background:var(--clr-primary); color:#fff; box-shadow:var(--shadow-sm); }
.btn-primary:hover { background:var(--clr-primary-h); color:#fff; box-shadow:var(--shadow-md); }
.btn-secondary { background:var(--clr-surface); color:var(--clr-text); border-color:var(--clr-border); }
.btn-secondary:hover { border-color:var(--clr-primary); color:var(--clr-primary); }
.btn-success { background:var(--clr-success); color:#fff; }
.btn-success:hover { background:#166534; color:#fff; }
.btn-warning { background:var(--clr-warning); color:#fff; }
.btn-warning:hover { background:#92400e; color:#fff; }
.btn-danger { background:var(--clr-danger); color:#fff; }
.btn-danger:hover { background:#b91c1c; color:#fff; }
.btn-outline { background:transparent; color:var(--clr-primary); border-color:var(--clr-border); }
.btn-outline:hover { background:var(--clr-primary-soft); border-color:var(--clr-primary); }
.btn-sm { min-height:34px; padding:.4rem .8rem; font-size:.84rem; border-radius:8px; }
.btn-lg { min-height:50px; padding:.75rem 1.6rem; font-size:1rem; border-radius:12px; }
.btn-btn-action { min-height:36px; padding:.35rem .75rem; font-size:.83rem; }
.btn-btn-view { min-height:36px; padding:.35rem .75rem; font-size:.83rem; }

/* ── Badges ────────────────────────────────────────────────── */
.badge {
  display:inline-flex; align-items:center; min-height:24px; padding:.18rem .65rem;
  border-radius:999px; font-size:.76rem; font-weight:700; letter-spacing:.01em;
  background:var(--clr-surface-2); color:var(--clr-text-mute); border:1px solid var(--clr-border);
}
.badge-draft     { background:var(--clr-warning-soft); color:var(--clr-warning); border-color:#fde68a; }
.badge-processed { background:var(--clr-success-soft); color:var(--clr-success); border-color:#bbf7d0; }
.badge-ca_nhan   { background:var(--clr-primary-soft); color:var(--clr-primary); border-color:#bfdbfe; }
.badge-to_chuc   { background:#f5f3ff; color:#6d28d9; border-color:#ddd6fe; }

/* ── Forms ─────────────────────────────────────────────────── */
.form-row { display:grid; gap:1rem; margin-bottom:1rem; }
.form-row-2 { grid-template-columns:1fr 1fr; }
.form-row-3 { grid-template-columns:1fr 1fr 1fr; }
.form-group { display:flex; flex-direction:column; gap:.4rem; }
.form-label { font-size:.85rem; font-weight:600; color:var(--clr-text-mute); }
.form-control, .form-select {
  width:100%; min-height:var(--touch-min); padding:.6rem .85rem;
  font-family:inherit; font-size:.95rem; color:var(--clr-text);
  background:var(--clr-surface); border:1.5px solid var(--clr-border); border-radius:10px;
  transition:border-color var(--transition), box-shadow var(--transition);
}
.form-control:focus, .form-select:focus {
  outline:none; border-color:var(--clr-primary);
  box-shadow:0 0 0 3px rgba(30,58,138,.12);
}
.form-control-lg { min-height:50px; font-size:1rem; }
textarea.form-control { min-height:96px; resize:vertical; }
input[type="time"] { min-height:var(--touch-min); }
.form-check-input { width:19px; height:19px; accent-color:var(--clr-primary); cursor:pointer; }
.form-check-label { cursor:pointer; }
.form-text { font-size:.8rem; color:var(--clr-text-mute); }
.invalid-feedback { font-size:.8rem; color:var(--clr-danger); font-weight:600; }

/* ── Alerts & messages ─────────────────────────────────────── */
.messages-container { max-width:1280px; margin:1rem auto 0; padding:0 1.5rem; }
.alert {
  display:flex; align-items:flex-start; gap:.6rem;
  padding:.85rem 1.1rem; margin-bottom:.75rem;
  border-radius:var(--radius-sm); font-size:.92rem; font-weight:500;
  border:1px solid transparent;
}
.alert-success { background:var(--clr-success-soft); color:#166534; border-color:#bbf7d0; }
.alert-danger  { background:var(--clr-danger-soft);  color:#991b1b; border-color:#fecaca; }
.alert-warning { background:var(--clr-warning-soft); color:#92400e; border-color:#fde68a; }
.alert-info    { background:var(--clr-primary-soft); color:var(--clr-primary); border-color:#bfdbfe; }
.alert-dismissible { position:relative; padding-right:2.6rem; }
.alert-close {
  position:absolute; top:.55rem; right:.55rem; width:30px; height:30px;
  border:none; background:transparent; border-radius:8px; cursor:pointer;
  font-size:1.05rem; line-height:1; color:inherit; opacity:.6;
}
.alert-close:hover { opacity:1; background:rgba(0,0,0,.06); }

/* ── Tables ────────────────────────────────────────────────── */
.table-responsive { overflow-x:auto; border-radius:var(--radius-sm); border:1px solid var(--clr-border); }
.table { width:100%; border-collapse:collapse; font-size:.9rem; background:var(--clr-surface); }
.table th {
  text-align:left; padding:.7rem .9rem; font-size:.76rem; font-weight:700;
  letter-spacing:.05em; text-transform:uppercase; color:var(--clr-text-mute);
  background:var(--clr-surface-2); border-bottom:1px solid var(--clr-border); white-space:nowrap;
}
.table td { padding:.7rem .9rem; border-bottom:1px solid var(--clr-border); vertical-align:middle; }
.table tr:last-child td { border-bottom:none; }
.table tr:hover td { background:#fafcff; }

/* ── Stats cards ───────────────────────────────────────────── */
.stats-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(200px,1fr)); gap:1rem; margin-bottom:1.5rem; }
.stat-card {
  background:var(--clr-surface); border:1px solid var(--clr-border); border-radius:var(--radius-md);
  padding:1.15rem 1.25rem; box-shadow:var(--shadow-sm);
  transition:transform var(--transition), box-shadow var(--transition);
}
.stat-card:hover { transform:translateY(-2px); box-shadow:var(--shadow-md); }
.stat-value { font-size:1.65rem; font-weight:800; letter-spacing:-.02em; line-height:1.15; }
.stat-label { font-size:.8rem; font-weight:600; color:var(--clr-text-mute); }
.stat-primary .stat-value { color:var(--clr-primary); }
.stat-success .stat-value { color:var(--clr-success); }
.stat-warning .stat-value { color:var(--clr-warning); }

/* ── Record cards ──────────────────────────────────────────── */
.records-card-grid { display:flex; flex-direction:column; gap:.85rem; }
.record-card-header { display:flex; justify-content:space-between; align-items:center; gap:.75rem; flex-wrap:wrap; }
.record-card-id { font-size:.78rem; font-weight:700; color:var(--clr-text-mute); letter-spacing:.03em; }
.record-card-name { font-weight:700; font-size:1.02rem; margin-top:.2rem; }
.record-card-body { display:flex; flex-wrap:wrap; gap:.35rem 2rem; margin:.6rem 0; padding:.7rem .9rem;
  background:var(--clr-surface-2); border-radius:var(--radius-sm); }
.record-info-row { display:flex; gap:.4rem; font-size:.87rem; min-height:20px; }
.info-label { color:var(--clr-text-mute); font-weight:500; white-space:nowrap; }
.info-key { display:none; }
.info-value { font-weight:600; }
.record-card-footer { display:flex; justify-content:flex-end; gap:.55rem; padding-top:.3rem; }
.record-behavior-box { margin-top:.6rem; padding:.75rem .95rem; background:var(--clr-surface-2);
  border-radius:var(--radius-sm); font-size:.88rem; color:var(--clr-text-mute); }
.record-behavior-box p { margin:0; }

.doc-panel { background:var(--clr-primary-soft); border:1px solid #bfdbfe; border-radius:var(--radius-md); padding:1.25rem; margin:1.25rem 0; }
.doc-checkbox-item { display:flex; align-items:center; gap:.55rem; min-height:40px; padding:.3rem .55rem;
  border-radius:8px; cursor:pointer; transition:background var(--transition); }
.doc-checkbox-item:hover { background:rgba(30,58,138,.07); }

/* ── Info grid (detail page) ──────────────────────────────── */
.info-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:.85rem 1.5rem; }

/* ── Login page ────────────────────────────────────────────── */
.login-wrapper { min-height:calc(100vh - var(--navbar-h)); display:flex; align-items:center; justify-content:center; padding:2.5rem 1.25rem; }
.login-card {
  width:100%; max-width:440px; background:var(--clr-surface);
  border:1px solid var(--clr-border); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg); padding:3rem 2.75rem 2.75rem;
}
.login-logo {
  width:64px; height:64px; margin:0 auto 1rem; border-radius:18px;
  background:linear-gradient(135deg, var(--clr-primary), #2563eb);
  display:flex; align-items:center; justify-content:center; font-size:1.7rem;
  box-shadow:0 8px 20px -6px rgba(30,58,138,.45);
}

/* Logo Xuất nhập cảnh trên trang đăng nhập */
.login-card { text-align:center; }
.login-emblem {
  width:104px; height:104px; margin:0 auto 1.75rem;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  background:#fff;
  box-shadow:0 6px 22px rgba(30,58,138,.18), 0 0 0 4px rgba(30,58,138,.06);
  padding:11px; overflow:hidden;
}
.login-emblem img {
  width:100%; height:100%; object-fit:contain; display:block; margin:0 auto;
}

/* Khoảng cách tiêu đề / phụ đề / form */
.login-title { text-align:center; font-size:1.4rem; font-weight:800; letter-spacing:-.02em; margin-bottom:.4rem; }
.login-subtitle { text-align:center; color:var(--clr-text-muted); font-size:.9rem; margin-bottom:2.25rem; }

/* Form: giãn label ↔ input ↔ giữa các trường */
.login-card .form-group { display:block; text-align:left; margin-bottom:1.5rem; }
.login-card .form-label { display:block; text-align:left; font-weight:600; font-size:.9rem; margin-bottom:1rem; color:var(--clr-text); letter-spacing:.01em; }
.login-card .form-control { width:100%; padding:.8rem 1rem; font-size:1rem; border:1.5px solid var(--clr-border); border-radius:var(--radius-sm); transition:border-color .15s, box-shadow .15s; }
.login-card .form-control:focus { border-color:var(--clr-primary); box-shadow:0 0 0 3px rgba(30,58,138,.12); outline:none; }
.login-card .btn-lg { margin-top:.75rem; padding:.85rem 1.25rem; font-size:1rem; font-weight:600; gap:.5rem; }
.login-title { text-align:center; font-size:1.35rem; font-weight:800; letter-spacing:-.02em; }
.login-subtitle { text-align:center; color:var(--clr-text-mute); font-size:.9rem; margin:.35rem 0 1.6rem; }

/* ── Type selector (wizard start) ──────────────────────────── */
.type-selector { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; margin:1.25rem 0; }
.type-card {
  position:relative; display:flex; flex-direction:column; gap:.45rem; align-items:center; text-align:center;
  padding:1.8rem 1.2rem; border:2px solid var(--clr-border); border-radius:var(--radius-md);
  background:var(--clr-surface); cursor:pointer;
  transition:all var(--transition);
}
.type-card:hover { border-color:var(--clr-primary); transform:translateY(-3px); box-shadow:var(--shadow-md); }
.type-card.selected { border-color:var(--clr-primary); background:var(--clr-primary-soft); box-shadow:0 0 0 3px rgba(30,58,138,.12); }
.type-card input[type="radio"] { position:absolute; opacity:0; pointer-events:none; }
.type-icon { font-size:2.1rem; line-height:1; }
.type-label { font-size:1.05rem; font-weight:800; }
.type-desc { font-size:.82rem; color:var(--clr-text-mute); }

/* ── Wizard: vertical timeline sidebar ─────────────────────── */
.wizard-container { display:grid; grid-template-columns:280px 1fr; gap:1.6rem; align-items:start; }
.wizard-sidebar {
  background:var(--clr-surface); border:1px solid var(--clr-border); border-radius:var(--radius-md);
  padding:1.2rem; box-shadow:var(--shadow-sm); position:sticky; top:calc(var(--navbar-h) + 16px);
}
.wizard-sidebar-title {
  font-size:.78rem; font-weight:800; color:var(--clr-text-mute);
  text-transform:uppercase; letter-spacing:.07em;
  margin-bottom:.95rem; padding-bottom:.55rem; border-bottom:2px solid var(--clr-border);
}
.wizard-timeline { display:flex; flex-direction:column; gap:.3rem; }
.v-step-item {
  display:flex; align-items:center; gap:.8rem; padding:.68rem .8rem;
  min-height:var(--touch-min); border-radius:10px; text-decoration:none !important;
  color:var(--clr-text-mute); font-weight:600; font-size:.9rem;
  transition:all var(--transition);
}
.v-step-item:hover { background:var(--clr-surface-2); color:var(--clr-primary); }
.v-step-item.active { background:var(--clr-primary-soft); color:var(--clr-primary); font-weight:800; box-shadow:inset 3px 0 0 var(--clr-primary); }
.v-step-item.clickable { cursor:pointer; }
.v-step-item.disabled { opacity:.45; cursor:not-allowed; pointer-events:none; }
.v-step-circle {
  width:30px; height:30px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  font-size:.82rem; font-weight:800;
  border:2px solid var(--clr-border); background:var(--clr-surface-2); color:var(--clr-text-mute);
  transition:all var(--transition);
}
.v-step-item.active .v-step-circle { background:var(--clr-primary); border-color:var(--clr-primary); color:#fff; }
.v-step-item.done .v-step-circle { background:var(--clr-success-soft); border-color:var(--clr-success); color:var(--clr-success); }
.v-step-text { line-height:1.3; }

/* ── Recidivism alert ─────────────────────────────────────── */
.recidivism-alert { display:none; margin-bottom:1rem; }
.recidivism-alert.show {
  display:block; padding:.9rem 1.1rem; border-radius:var(--radius-sm);
  background:var(--clr-danger-soft); border:1px solid #fecaca; color:#991b1b;
  font-weight:600; animation:slideIn .25s ease;
}
@keyframes slideIn { from { opacity:0; transform:translateY(-6px);} to { opacity:1; transform:none;} }

/* ── Footer ────────────────────────────────────────────────── */
.footer {
  padding:1.4rem 1.5rem; text-align:center;
  font-size:.82rem; color:var(--clr-text-mute);
  border-top:1px solid var(--clr-border); background:var(--clr-surface);
}

/* ── Time input: ép hiển thị 24h, không AM/PM ──────────────── */
input[type="time"] { appearance:none; -webkit-appearance:none; }
input[type="time"]::-webkit-calendar-picker-indicator { display:none !important; }
input[type="datetime-local"]::-webkit-calendar-picker-indicator { cursor:pointer; }

/* ══════════════════ RESPONSIVE ══════════════════ */
@media (min-width: 1440px) {
  .main-content { max-width:1360px; }
}

@media (max-width: 1024px) {
  .wizard-container { grid-template-columns:240px 1fr; gap:1.2rem; }
}

@media (max-width: 992px) {
  .main-content { padding:1.25rem 1rem; }
  .wizard-container { grid-template-columns:1fr; gap:1.15rem; }
  .wizard-sidebar { position:static; }
  /* Sidebar wizard → thanh stepper ngang cuộn được */
  .wizard-timeline { flex-direction:row; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; padding-bottom:.3rem; }
  .wizard-timeline::-webkit-scrollbar { display:none; }
  .v-step-item { flex-direction:column; gap:.35rem; min-width:86px; text-align:center; padding:.55rem .5rem; font-size:.78rem; }
  .v-step-item.active { box-shadow:none; border-bottom:3px solid var(--clr-primary); border-radius:10px 10px 4px 4px; }
  .info-grid { grid-template-columns:1fr; }
}

@media (max-width: 768px) {
  :root { --navbar-h:56px; }
  .navbar { padding:0 .9rem; gap:.6rem; }
  .mobile-toggle-btn {
    display:inline-flex; align-items:center; justify-content:center;
    width:42px; height:42px; margin-left:auto;
    background:transparent; border:none; border-radius:10px;
    font-size:1.35rem; cursor:pointer; color:var(--clr-text);
    transition:background var(--transition);
  }
  .mobile-toggle-btn:hover { background:var(--clr-primary-soft); }

  /* Nav dropdown — không bao giờ tràn ngang (theo skill web-ui-optimization) */
  .navbar-links {
    display:none; position:absolute; top:var(--navbar-h); left:0; right:0;
    flex-direction:column; align-items:stretch; gap:.45rem;
    background:var(--clr-surface); border-bottom:1px solid var(--clr-border);
    box-shadow:var(--shadow-lg); padding:.9rem; z-index:99;
  }
  .navbar-links.show { display:flex; }
  .navbar-links .nav-link { width:100%; min-height:46px; border-radius:10px; justify-content:flex-start; font-size:.95rem; }
  .navbar-user { margin-left:0; padding-left:0; border-left:none; }
  .user-info { max-width:none; }
  .navbar-brand .navbar-title { font-size:.95rem; }

  .form-row-2, .form-row-3, .type-selector { grid-template-columns:1fr; gap:.85rem; }
  .card { padding:1.15rem; }
  .page-title { font-size:1.22rem; }
  .btn { padding:.6rem 1rem; font-size:.9rem; }
  .stats-grid { grid-template-columns:repeat(2, 1fr); gap:.7rem; }
  .stat-value { font-size:1.35rem; }
  .login-card { padding:1.8rem 1.4rem; }
  .footer { padding:1.1rem .9rem; }
}

@media (max-width: 380px) {
  .stats-grid { grid-template-columns:1fr; }
  .record-card-body { flex-direction:column; }
}

/* ── Anti-overflow: mọi bảng trong card được cuộn ngang trong card ── */
.card > .table, .card table.table { display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.table-responsive { max-width:100%; }
/* Bảng dài trên mobile: chữ nhỏ hơn chút */
@media (max-width: 768px) {
  .table { font-size:.84rem; }
  .table th, .table td { padding:.55rem .65rem; }
}


/* ── Grid blowout fix: cho phép item co dưới min-content ── */
.wizard-container > .wizard-sidebar,
.wizard-container > .card,
.stats-grid > .stat-card { min-width: 0; }
.wizard-timeline { max-width: 100%; }
.stat-card { overflow-x: hidden; }
.table-responsive { max-width: 100%; }


/* ── Dashboard grid & chống tràn bảng ─────────────────────── */
.dash-grid { display:grid; grid-template-columns:1fr 2fr; gap:1.5rem; margin-bottom:1.5rem; min-width:0; }
.dash-grid > .card { min-width:0; overflow-x:auto; }
.card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1.25rem; }
@media (max-width: 992px) {
  .dash-grid { grid-template-columns:1fr; }
}
/* Toàn cục: mọi con của grid không được ép rộng hơn ô */
.main-content *, .card * { min-width: 0; }
.main-content { overflow-x: clip; }
