/* ===== ระบบตรวจสอบตารางสอบและห้องสอบ — ธีมกระจก (Glassmorphism) ===== */
:root{
  --brand:#2563eb;        --brand-rgb:37,99,235;
  --brand-dark:#15307a;   --brand-dark-rgb:21,48,122;
  --brand-light:#7aa9f5;  --brand-light-rgb:122,169,245;
  --accent:#06b6d4;       --accent-rgb:6,182,212;
  --ink:#1e293b;
  --glass:rgba(255,255,255,.55);
  --glass-strong:rgba(255,255,255,.72);
  --glass-border:rgba(255,255,255,.65);
}
*{font-family:'Kanit','Noto Sans SC',sans-serif;}
body{
  color:var(--ink);
  min-height:100vh;
  background:
    radial-gradient(720px circle at 12% 8%,  rgba(var(--accent-rgb),.32), transparent 60%),
    radial-gradient(680px circle at 88% 10%, rgba(var(--brand-rgb),.30), transparent 58%),
    radial-gradient(820px circle at 50% 108%,rgba(var(--brand-light-rgb),.34), transparent 62%),
    linear-gradient(135deg,#eef3ff,#e6fbff);
  background-attachment:fixed;
}
.fw-600{font-weight:600;}

/* ===== กล่องกระจกพื้นฐาน ===== */
.card,.feature-card,.search-box,.login-card{
  background:var(--glass);
  -webkit-backdrop-filter:blur(18px) saturate(170%);
  backdrop-filter:blur(18px) saturate(170%);
  border:1px solid var(--glass-border);
  box-shadow:0 8px 32px rgba(var(--brand-dark-rgb),.16);
  border-radius:16px;
}

/* ===== Navbar กระจกใส ===== */
.app-navbar{
  position:sticky;
  top:0;
  z-index:1030;
  background:rgba(255,255,255,.60);
  -webkit-backdrop-filter:blur(18px) saturate(160%);
  backdrop-filter:blur(18px) saturate(160%);
  border-bottom:1px solid rgba(var(--brand-rgb),.12);
  box-shadow:0 2px 16px rgba(0,0,0,.06);
  padding-top:.55rem;padding-bottom:.55rem;
  transition:padding .25s ease, box-shadow .25s ease, background .25s ease;
}
/* เมื่อ scroll ลง — navbar หดเล็กลงนิดหน่อย + shadow เข้มขึ้น */
.app-navbar.navbar-scrolled{
  padding-top:.28rem;
  padding-bottom:.28rem;
  background:rgba(255,255,255,.82);
  box-shadow:0 4px 20px rgba(0,0,0,.10)!important;
}
/* เส้นสีด้านบน */
.app-navbar::before{
  content:"";position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg, var(--brand), var(--accent), #f59e0b, var(--brand));
  background-size:200% 100%;
  animation:navShimmer 7s linear infinite;
  opacity:.85;
  pointer-events:none;
}
@keyframes navShimmer{
  0%{background-position:0% 0;}
  100%{background-position:200% 0;}
}

/* ===== Brand ===== */
.app-navbar .navbar-brand{
  font-weight:800;font-size:1.18rem;letter-spacing:.2px;white-space:nowrap;
  color:#111827 !important;
  display:flex;align-items:center;gap:.65rem;
  padding:.3rem .55rem;border-radius:14px;
  transition:background .25s, transform .25s;
}
.app-navbar .navbar-brand:hover{background:rgba(var(--brand-rgb),.07);transform:translateY(-1px);}
.app-navbar .navbar-brand i{
  display:inline-flex;align-items:center;justify-content:center;
  width:42px;height:42px;border-radius:12px;font-size:1.5rem;line-height:1;font-style:normal;
  background:linear-gradient(135deg,rgba(var(--brand-rgb),.14),rgba(var(--accent-rgb),.10));
  border:1px solid rgba(var(--brand-rgb),.18);
  box-shadow:0 3px 10px rgba(var(--brand-rgb),.12);
  transition:transform .4s ease;
}
.app-navbar .navbar-brand:hover i{transform:rotate(-12deg) scale(1.10);}

/* ===== Emoji ในเมนู ===== */
.nav-emoji{
  font-style:normal;
  font-family:'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji','Segoe UI Symbol','Twemoji Mozilla',sans-serif;
  line-height:1;display:inline-block;
}
.app-navbar .nav-link .nav-emoji{
  font-size:1.05rem;transition:transform .25s ease;vertical-align:-2px;
}

/* ===== Nav links ===== */
.app-navbar .nav-link{
  position:relative;
  font-weight:500;border-radius:10px;padding:.48rem .8rem;
  color:#374151 !important;
  white-space:nowrap;width:auto;letter-spacing:.1px;
  transition:color .2s, background .2s, transform .2s;
}
.app-navbar .nav-link:hover{background:rgba(var(--brand-rgb),.08);color:var(--brand) !important;}
.app-navbar .nav-link:hover .nav-emoji{transform:translateY(-2px) scale(1.18);}
.app-navbar .nav-link::after{
  content:"";position:absolute;left:50%;bottom:4px;
  width:0;height:2px;border-radius:2px;
  background:linear-gradient(90deg, var(--brand), var(--accent));
  transition:width .28s, left .28s;
}
.app-navbar .nav-link:hover::after{width:60%;left:20%;}
.app-navbar .nav-link.active{
  background:rgba(var(--brand-rgb),.10);
  font-weight:700;color:var(--brand) !important;
}
.app-navbar .nav-link.active::after{
  width:60%;left:20%;
}

/* ===== Dropdown ภาษา ===== */
.app-navbar .dropdown-toggle::after{margin-left:.5rem;}
.app-navbar .dropdown-menu{
  background:rgba(255,255,255,.94);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
  backdrop-filter:blur(20px) saturate(180%);
  border:1px solid rgba(255,255,255,.7);
  box-shadow:0 14px 34px rgba(0,0,0,.20);
  border-radius:14px;padding:.4rem;margin-top:.4rem!important;
}
.app-navbar .dropdown-item{border-radius:10px;font-weight:500;padding:.55rem .8rem;}
.app-navbar .dropdown-item:hover{background:rgba(var(--brand-rgb),.10);}
.app-navbar .dropdown-item.active,
.app-navbar .dropdown-item:active{background:linear-gradient(135deg,var(--brand),var(--accent));color:#fff;}

/* ===== ปุ่มแอดมิน ===== */
.admin-btn{
  background:linear-gradient(135deg, var(--brand), var(--accent));
  color:#fff;border:none;font-weight:700;
  border-radius:999px;padding:.45rem 1.1rem;
  box-shadow:0 4px 14px rgba(var(--brand-rgb),.28);
  transition:transform .25s, box-shadow .25s, opacity .25s;
}
.admin-btn:hover{
  color:#fff;opacity:.88;
  transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(var(--brand-rgb),.36);
}
.admin-btn-corner{position:relative;white-space:nowrap;}
@media (min-width:1200px){
  .admin-btn-corner{margin-left:1rem!important;}
  .admin-btn-corner::before{
    content:"";position:absolute;left:-12px;top:18%;bottom:18%;
    width:1px;background:rgba(var(--brand-rgb),.18);
  }
}

/* ===== Toggler (จอเล็ก) ===== */
.app-navbar .navbar-toggler{
  border:1px solid rgba(var(--brand-rgb),.25);
  border-radius:10px;padding:.4rem .6rem;
}
.app-navbar .navbar-toggler:focus{box-shadow:0 0 0 .2rem rgba(var(--brand-rgb),.18);}
.app-navbar .navbar-toggler-icon{
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(79,70,229,0.8)' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* เมนูปรับขนาดตามข้อความเมื่ออยู่แนวนอน */
@media (min-width:1200px){
  .app-navbar .navbar-nav{flex-wrap:wrap;row-gap:.25rem;column-gap:.15rem;}
  .app-navbar .nav-item{flex:0 0 auto;}
  .app-navbar .nav-link{padding:.55rem .8rem;font-size:.95rem;}
}
/* จอเล็ก-กลาง: hamburger */
@media (max-width:1199.98px){
  .app-navbar .navbar-collapse{
    margin-top:.7rem;padding:.7rem;border-radius:16px;
    background:rgba(255,255,255,.10);
    border:1px solid rgba(255,255,255,.18);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.20);
  }
  .app-navbar .nav-link{width:100%;}
  .app-navbar .nav-link::after{display:none;}
  .app-navbar .nav-link.active{background:linear-gradient(135deg,rgba(255,255,255,.30),rgba(255,255,255,.12));}
}

.app-main{min-height:70vh;}

/* ===== ปุ่ม Toggle nav position ===== */
.nav-pos-btn{
  background:rgba(255,255,255,.15);
  color:#fff;
  border:1px solid rgba(255,255,255,.28);
  border-radius:10px;
  padding:.35rem .55rem;
  font-size:.95rem;
  line-height:1;
  transition:background .2s,transform .2s;
}
.nav-pos-btn:hover{background:rgba(255,255,255,.28);color:#fff;transform:scale(1.1);}

/* ═════════════════════════════════════════════════
   LEFT SIDEBAR MODE  (เฉพาะจอ ≥ 992px)
═════════════════════════════════════════════════ */
@media (min-width:992px){
  body.nav-left{
    --sidebar-w:248px;
  }

  /* ── Sidebar container ── */
  body.nav-left .app-navbar{
    position:fixed;
    top:0;left:0;bottom:0;
    width:var(--sidebar-w);
    height:100vh;
    flex-direction:column;
    align-items:stretch;
    border-bottom:none;
    border-right:1px solid rgba(255,255,255,.18);
    padding:1.25rem .85rem 1rem;
    overflow-y:auto;
    overflow-x:hidden;
    background:linear-gradient(185deg,
      rgba(var(--brand-dark-rgb),.97) 0%,
      rgba(var(--brand-rgb),.93) 55%,
      rgba(var(--accent-rgb),.90) 130%);
    z-index:1040;
  }

  /* เส้นเรืองแสงซ้ายในแนวตั้ง */
  body.nav-left .app-navbar::before{
    width:3px;height:100%;
    top:0;bottom:0;left:0;right:auto;
    background:linear-gradient(180deg,
      var(--accent),#f59e0b,#ec4899,var(--brand-light),var(--accent));
    background-size:100% 200%;
    animation:navShimmerV 7s linear infinite;
  }
  @keyframes navShimmerV{
    0%  {background-position:0 0%;}
    100%{background-position:0 200%;}
  }

  /* ── Inner container เป็น column ── */
  body.nav-left .app-navbar>#navContainer{
    flex-direction:column;
    align-items:stretch;
    max-width:100%;
    padding:0;
    height:100%;
    width:100%;
    gap:0;
    flex-wrap:nowrap;
  }

  /* brand อยู่บนสุด */
  body.nav-left .app-navbar .navbar-brand{
    order:0;
    margin-bottom:1.25rem;
    width:100%;
  }

  /* ซ่อน hamburger */
  body.nav-left .app-navbar .navbar-toggler{display:none!important;}

  /* navbar-collapse เสมอเปิด */
  body.nav-left .app-navbar #mainNav{
    display:flex!important;
    flex-direction:column;
    flex-grow:1;
    order:1;
    background:none!important;
    border:none!important;
    box-shadow:none!important;
    margin:0!important;
    padding:0!important;
    width:100%;
  }

  /* nav links แนวตั้ง */
  body.nav-left .app-navbar .navbar-nav{
    flex-direction:column!important;
    align-items:stretch!important;
    flex-grow:1;
    gap:.1rem;
    margin:0!important;
    flex-wrap:nowrap!important;
  }
  body.nav-left .app-navbar .nav-item{width:100%;}
  body.nav-left .app-navbar .nav-link{
    width:100%;
    border-radius:10px;
    padding:.6rem .85rem;
    font-size:.9rem;
  }
  body.nav-left .app-navbar .nav-link::after{display:none;}

  /* ── user area ── อยู่ล่างสุด */
  body.nav-left .app-navbar #userArea{
    order:2;
    margin:auto 0 0 0!important;
    padding-top:.9rem!important;
    border-top:1px solid rgba(255,255,255,.15);
    width:100%;
    flex-direction:column!important;
    gap:.5rem!important;
  }
  body.nav-left .app-navbar #userArea .dropdown{width:100%;}
  body.nav-left .app-navbar #userArea .dropdown>button{
    width:100%;
    max-width:100%!important;
    justify-content:center;
  }
  body.nav-left .app-navbar #userArea>a.btn{width:100%;justify-content:center;}

  /* ── toggle button ── */
  body.nav-left .app-navbar #navToggleBtn{
    order:3;
    width:100%;
    margin:0!important;
    margin-top:.5rem!important;
    text-align:center;
  }

  /* ── offset content ── */
  body.nav-left .app-main{margin-left:var(--sidebar-w);}
  body.nav-left .app-footer{margin-left:var(--sidebar-w);}
}

/* ===== Hero เต็มจอ ===== */
.hero{
  position:relative;
  min-height:calc(50vh - 29px);
  display:flex;
  align-items:center;
  background:linear-gradient(115deg,
     rgba(var(--brand-dark-rgb),.92) 0%,
     rgba(var(--brand-rgb),.84) 55%,
     rgba(var(--accent-rgb),.80) 130%);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  -webkit-backdrop-filter:blur(0);
  backdrop-filter:blur(0);
  color:#fff;
  padding:40px 0 60px;
  overflow:hidden;
  border-bottom:1px solid rgba(255,255,255,.20);
}
/* วงกลมประดับมุม */
.hero::after{
  content:"";position:absolute;right:-80px;top:-80px;width:380px;height:380px;
  background:rgba(255,255,255,.08);border-radius:50%;pointer-events:none;z-index:1;
}
/* Overlay ทับรูปภาพพื้นหลัง */
.hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(115deg,
    rgba(var(--brand-dark-rgb),.78) 0%,
    rgba(var(--brand-rgb),.62) 55%,
    rgba(var(--accent-rgb),.55) 130%);
  z-index:1;
}
/* เนื้อหาลอยอยู่เหนือ overlay */
.hero>.container{position:relative;z-index:2;}
.hero h1{font-weight:800;font-size:3rem;line-height:1.2;text-shadow:0 2px 16px rgba(0,0,0,.28);}
.hero .lead{opacity:.93;font-size:1.15rem;text-shadow:0 1px 8px rgba(0,0,0,.22);}
.hero .badge.bg-light{background:rgba(255,255,255,.92)!important;}
/* ลูกศร scroll ด้านล่าง */
.hero-scroll{
  position:absolute;bottom:30px;left:50%;transform:translateX(-50%);
  z-index:2;opacity:.75;color:#fff;font-size:1.6rem;text-decoration:none;
  animation:heroScroll 2.2s ease-in-out infinite;
}
.hero-scroll:hover{opacity:1;color:#fff;}
@keyframes heroScroll{
  0%,100%{transform:translateX(-50%) translateY(0);}
  55%{transform:translateX(-50%) translateY(10px);}
}
/* ช่องค้นหาในฮีโร่ */
.hero-search .form-control{
  background:rgba(255,255,255,.18);
  border:1.5px solid rgba(255,255,255,.45);
  color:#fff;
  border-radius:12px;
}
.hero-search .form-control::placeholder{color:rgba(255,255,255,.65);}
.hero-search .form-control:focus{
  background:rgba(255,255,255,.28);
  border-color:rgba(255,255,255,.75);
  color:#fff;
  box-shadow:0 0 0 .2rem rgba(255,255,255,.20);
}

/* ===== Cards ===== */
.feature-card{height:100%;transition:.25s;}
.feature-card:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(var(--brand-rgb),.28);background:var(--glass-strong);}
.feature-icon{
  width:60px;height:60px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  font-size:1.7rem;color:#fff;background:linear-gradient(135deg,var(--brand),var(--accent));
  box-shadow:0 6px 18px rgba(var(--brand-rgb),.40);
}
.section-title{font-weight:700;position:relative;display:inline-block;padding-bottom:8px;}
.section-title::after{content:"";position:absolute;left:0;bottom:0;width:54px;height:4px;border-radius:4px;background:var(--accent);}

/* ===== Search box ===== */
.search-box{padding:32px;background:var(--glass-strong);}
.search-box .form-control-lg{border-radius:12px;}

/* ===== Tables ===== */
.table{--bs-table-bg:transparent;--bs-table-color:inherit;}
.table thead{
  background:var(--brand-dark);
  color:#ffffff;
  --bs-table-color:#ffffff;
}
.table thead th,
.table thead tr th{
  color:#ffffff!important;
  font-weight:700;
  border:none;
  vertical-align:middle;
  letter-spacing:.3px;
  text-shadow:0 1px 0 rgba(0,0,0,.15);
}
/* ── ตารางผลสอบนักศึกษา: override สีหัวตารางเป็นเทาเข้ม ── */
.results-table.results-table thead,
.results-table.results-table thead th,
.results-table.results-table thead tr th{
  background:rgba(var(--brand-rgb),.08)!important;
  color:#374151!important;
  --bs-table-color:#374151!important;
  text-shadow:none!important;
  font-weight:600!important;
}

/* ===== รายละเอียดตารางสอบ — จัดกลุ่มตามวันที่ ===== */
.exam-detail-title{
  font-weight:700;color:var(--brand);
  font-size:1.8rem;letter-spacing:.2px;
}
.exam-detail-title .nav-emoji{font-size:1.6rem;vertical-align:-3px;}
.date-heading{
  display:inline-flex;align-items:center;
  padding:.45rem .9rem .45rem .85rem;
  border-left:5px solid var(--brand);
  background:rgba(var(--brand-rgb),.06);
  color:var(--brand-dark);
  font-weight:700;border-radius:0 8px 8px 0;
  font-size:1.05rem;
}
.exam-detail-table .col-session{width:110px;color:var(--brand-dark);}
.exam-detail-table .col-time{width:150px;white-space:nowrap;}
.exam-detail-table .col-format{width:180px;white-space:nowrap;}
.exam-detail-table{table-layout:fixed;width:100%;}
.exam-detail-table tbody tr:nth-child(even){background:rgba(255,255,255,.55);}
.exam-detail-table tbody tr:nth-child(odd){background:rgba(255,255,255,.25);}
.exam-detail-table .text-info{color:#0ea5e9!important;}
.exam-detail-table .text-info:hover{color:#0284c7!important;text-decoration:underline!important;}
.exam-detail-table .text-primary:hover{text-decoration:underline!important;}
.fw-700{font-weight:700;}
.table-modern{border-radius:12px;overflow:hidden;}
.table tbody tr{background:rgba(255,255,255,.40);}
.table tbody tr:hover{background:rgba(255,255,255,.65);}
.badge-online{background:#0891b2;}
.badge-onsite{background:#7c3aed;}

/* ===== Form controls บนกระจก ===== */
.form-control,.form-select{background:rgba(255,255,255,.75);border:1px solid rgba(255,255,255,.85);}
.form-control:focus,.form-select:focus{background:#fff;border-color:var(--brand-light);box-shadow:0 0 0 .2rem rgba(var(--brand-rgb),.25);}
.input-group-text{background:rgba(var(--brand-rgb),.12);border:1px solid rgba(255,255,255,.85);}

/* ===== Seat ===== */
.seat-card{background:linear-gradient(135deg,var(--brand),var(--brand-light));color:#fff;border-radius:16px;padding:24px;}
.seat-no{font-size:2.6rem;font-weight:700;line-height:1;}

/* ===== Buttons ===== */
.btn-brand{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600;box-shadow:0 6px 16px rgba(var(--brand-rgb),.35);}
.btn-brand:hover{background:var(--brand-dark);border-color:var(--brand-dark);color:#fff;}
.btn-outline-primary{color:var(--brand);border-color:var(--brand);}
.btn-outline-primary:hover{background:var(--brand);border-color:var(--brand);}

/* ===== Steps ===== */
.step{display:flex;gap:16px;margin-bottom:22px;}
.step-num{flex:0 0 44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--brand),var(--accent));
  color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 12px rgba(var(--brand-rgb),.4);}

/* ===== Seating grid ===== */
.seat-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:10px;}
.seat-grid .seat{
  aspect-ratio:1;border-radius:8px;background:rgba(255,255,255,.55);display:flex;align-items:center;justify-content:center;
  font-size:.78rem;font-weight:600;color:#64748b;border:1px solid rgba(255,255,255,.7);
}
.seat-grid .seat.taken{background:linear-gradient(135deg,var(--brand),var(--brand-light));color:#fff;border-color:transparent;}
.seat-grid .seat.you{background:#f59e0b;color:#fff;box-shadow:0 0 0 3px rgba(245,158,11,.35);}

/* ===== Footer กระจก ===== */
.app-footer{
  background:rgba(var(--brand-dark-rgb),.88);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
  color:#fff;padding:46px 0 24px;margin-top:64px;
  border-top:1px solid rgba(255,255,255,.18);
}
.app-footer h5,.app-footer h6{font-weight:600;}
.footer-links a{color:rgba(255,255,255,.78);text-decoration:none;display:block;padding:3px 0;}
.footer-links a:hover{color:#fff;}

/* ═══════════════════════════════════════════
   ADMIN 2.0 — Modern Clean Dashboard
═══════════════════════════════════════════ */
.admin-wrap{
  display:flex;min-height:100vh;
  background:#f0f4f8;
}

/* ── Sidebar ── */
.admin-sidebar{
  width:248px;flex-shrink:0;
  background:#ffffff;
  border-right:1px solid #e5e7eb;
  box-shadow:2px 0 12px rgba(0,0,0,.06);
  display:flex;flex-direction:column;
  position:sticky;top:0;height:100vh;
  overflow-y:auto;overflow-x:hidden;
}
.admin-sidebar .brand{
  padding:18px 20px 14px;
  font-weight:800;font-size:1rem;
  color:var(--brand-dark);
  border-bottom:1px solid #f3f4f6;
  display:flex;align-items:center;gap:10px;
  flex-shrink:0;
}
.admin-sidebar .brand-logo{
  width:38px;height:38px;border-radius:10px;flex-shrink:0;
  background:linear-gradient(135deg,var(--brand),var(--accent));
  display:flex;align-items:center;justify-content:center;
  font-size:1.25rem;
  box-shadow:0 4px 10px rgba(var(--brand-rgb),.35);
}
/* Section header */
.admin-sidebar .nav-section{
  font-size:.67rem;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:#9ca3af;
  padding:.9rem 1.25rem .3rem;
  flex-shrink:0;
}
/* Nav links */
.admin-sidebar nav{display:flex;flex-direction:column;flex:1;padding:.4rem 0 1rem;}
.admin-sidebar a{
  display:flex;align-items:center;gap:9px;
  color:#4b5563;padding:.55rem .9rem;
  margin:1px 10px;border-radius:10px;
  text-decoration:none;font-weight:500;font-size:.875rem;
  transition:background .15s,color .15s;
  border-left:none!important; /* ยกเลิก style เก่า */
  white-space:nowrap;
}
.admin-sidebar a .nav-emoji{font-size:1.05rem;flex-shrink:0;width:20px;text-align:center;}
.admin-sidebar a:hover{background:#f3f4f6;color:#111827;}
.admin-sidebar a.active{
  background:var(--brand);color:#fff!important;
  box-shadow:0 4px 14px rgba(var(--brand-rgb),.38);
}
.admin-sidebar a.active .nav-emoji{filter:brightness(10);}
/* Badge ใน sidebar */
.admin-sidebar .sb-badge{
  margin-left:auto;color:#fff;
  font-size:.62rem;font-weight:700;border-radius:999px;
  padding:.1rem .5rem;flex-shrink:0;min-width:20px;text-align:center;
}
.admin-sidebar .sb-badge-hot{background:#ef4444;}
.admin-sidebar .sb-badge-zero{background:#d1d5db;color:#6b7280;}
.admin-sidebar a.active .sb-badge-hot{background:rgba(255,255,255,.30);color:#fff;}
.admin-sidebar a.active .sb-badge-zero{background:rgba(255,255,255,.18);color:rgba(255,255,255,.7);}
/* Divider */
.admin-sidebar .sb-hr{
  border:none;border-top:1px solid #f1f5f9;
  margin:.5rem 1rem;
}
/* ─ bottom links ─ */
.admin-sidebar .sb-bottom{
  margin-top:auto;padding:.5rem 0 .5rem;
  border-top:1px solid #f1f5f9;
}

/* ── Content area ── */
.admin-content{flex:1;display:flex;flex-direction:column;min-width:0;}

/* ── Topbar ── */
.admin-topbar{
  background:#ffffff;
  border-bottom:1px solid #e5e7eb;
  padding:.8rem 1.5rem;
  display:flex;align-items:center;gap:12px;
  position:sticky;top:0;z-index:200;
  box-shadow:0 1px 4px rgba(0,0,0,.06);
}
.admin-topbar .tb-breadcrumb{
  display:flex;align-items:center;gap:6px;
  font-size:.82rem;color:#9ca3af;font-weight:500;
}
.admin-topbar .tb-breadcrumb strong{color:#1e293b;}
.admin-topbar .tb-search{
  flex:1;max-width:340px;margin:0 auto;
  display:flex;align-items:center;gap:8px;
  background:#f3f4f6;border-radius:10px;
  padding:.42rem .85rem;
  border:1.5px solid transparent;
  transition:border-color .2s,background .2s;
}
.admin-topbar .tb-search:focus-within{
  background:#fff;border-color:var(--brand);
  box-shadow:0 0 0 3px rgba(var(--brand-rgb),.12);
}
.admin-topbar .tb-search input{
  border:none;background:transparent;outline:none;
  font-size:.85rem;color:#374151;width:100%;
}
.admin-topbar .tb-search input::placeholder{color:#9ca3af;}
.admin-topbar .tb-icon{
  width:36px;height:36px;border-radius:9px;
  display:flex;align-items:center;justify-content:center;
  background:#f3f4f6;color:#6b7280;cursor:pointer;
  border:none;transition:background .15s,color .15s;
  flex-shrink:0;
}
.admin-topbar .tb-icon:hover{background:#e5e7eb;color:#1e293b;}
.admin-topbar .tb-avatar{
  width:34px;height:34px;border-radius:50%;
  background:linear-gradient(135deg,var(--brand),var(--accent));
  color:#fff;font-weight:700;font-size:.82rem;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;cursor:pointer;
  box-shadow:0 2px 8px rgba(var(--brand-rgb),.35);
}

/* ── Page wrapper ── */
.admin-page{padding:1.5rem 1.75rem;flex:1;}

/* ── Stat cards ── */
.stat-card{
  background:#fff;border-radius:16px;
  padding:20px 22px;
  border:1px solid #f1f5f9;
  box-shadow:0 2px 10px rgba(0,0,0,.06);
  display:flex;align-items:center;gap:16px;
  transition:box-shadow .2s,transform .2s;
}
.stat-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.10);transform:translateY(-2px);}
.stat-icon{
  width:52px;height:52px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  font-size:1.5rem;flex-shrink:0;
}
.stat-card .stat-num{font-size:1.9rem;font-weight:800;color:#111827;line-height:1;}
.stat-card .stat-label{font-size:.8rem;color:#6b7280;margin-top:3px;font-weight:500;}
.stat-card .stat-trend{
  font-size:.72rem;font-weight:600;margin-top:6px;
  display:flex;align-items:center;gap:3px;
}
.stat-trend.up{color:#059669;}
.stat-trend.down{color:#dc2626;}
.stat-trend.neutral{color:#6b7280;}

/* ── Alert cards ── */
.admin-alert-card{
  background:#fff;border-radius:14px;
  padding:16px 20px;border:1px solid #f1f5f9;
  box-shadow:0 2px 8px rgba(0,0,0,.05);
  display:flex;align-items:center;gap:14px;
}

/* ── Card ── */
.admin-wrap .card{
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:14px;
  box-shadow:0 2px 8px rgba(0,0,0,.05);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.admin-wrap .card .card-header{
  background:#fff;
  border-bottom:1px solid #f1f5f9;
  padding:.85rem 1.25rem;
  border-radius:14px 14px 0 0;
}

/* ── Table in admin ── */
.admin-wrap .table thead{
  background:#f8fafc;
  --bs-table-color:#374151;
}
.admin-wrap .table thead th{
  color:#374151!important;
  font-size:.8rem;text-transform:uppercase;
  letter-spacing:.06em;font-weight:700;
  text-shadow:none!important;
  border-bottom:2px solid #e5e7eb!important;
}
.admin-wrap .table tbody tr{background:#fff;}
.admin-wrap .table tbody tr:hover{background:#f8fafc!important;}

/* ── Form controls in admin ── */
.admin-wrap .form-control,
.admin-wrap .form-select{
  background:#fff;
  border:1.5px solid #e5e7eb;
  border-radius:10px;
}
.admin-wrap .form-control:focus,
.admin-wrap .form-select:focus{
  border-color:var(--brand);
  box-shadow:0 0 0 3px rgba(var(--brand-rgb),.12);
}

/* Mobile admin */
@media(max-width:768px){
  .admin-sidebar{width:100%;height:auto;position:relative;}
  .admin-wrap{flex-direction:column;}
  .admin-page{padding:1rem;}
}
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;
  background:
    radial-gradient(700px circle at 20% 20%, rgba(var(--accent-rgb),.5), transparent 60%),
    radial-gradient(700px circle at 80% 80%, rgba(var(--brand-rgb),.55), transparent 60%),
    linear-gradient(120deg,var(--brand-dark),var(--brand));}
.login-card{padding:40px;width:100%;max-width:410px;background:var(--glass-strong);}

/* ===== ตัวเลือกสีธีม (Color Picker) ===== */
#themeFab{
  position:fixed;right:22px;bottom:22px;width:54px;height:54px;border-radius:50%;
  background:linear-gradient(135deg,var(--brand),var(--accent));color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:1.5rem;cursor:pointer;
  box-shadow:0 8px 24px rgba(var(--brand-dark-rgb),.45);z-index:1080;border:2px solid rgba(255,255,255,.6);
  transition:transform .2s;
}
#themeFab:hover{transform:rotate(25deg) scale(1.08);}
#themePanel{
  position:fixed;right:22px;bottom:88px;width:268px;padding:18px;border-radius:18px;z-index:1080;
  background:var(--glass-strong);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
  backdrop-filter:blur(20px) saturate(180%);
  border:1px solid var(--glass-border);box-shadow:0 16px 44px rgba(var(--brand-dark-rgb),.30);
  display:none;
}
#themePanel.open{display:block;animation:tmPop .18s ease;}
@keyframes tmPop{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
#themePanel h6{font-weight:700;margin-bottom:4px;}
#themePanel .tm-sub{font-size:.78rem;color:#64748b;margin-bottom:12px;}
.tm-swatches{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px;}
.tm-swatch{
  aspect-ratio:1;border-radius:12px;cursor:pointer;border:2px solid rgba(255,255,255,.7);
  box-shadow:0 4px 10px rgba(0,0,0,.15);transition:transform .15s;
}
.tm-swatch:hover{transform:scale(1.12);}
.tm-swatch.active{outline:3px solid #fff;outline-offset:1px;box-shadow:0 0 0 3px var(--brand);}
.tm-custom{display:flex;align-items:center;gap:10px;font-size:.85rem;}
.tm-custom input[type=color]{
  width:46px;height:36px;border:none;border-radius:10px;background:none;cursor:pointer;padding:0;
}

@media(max-width:768px){
  .hero{min-height:calc(50svh - 28px);padding:40px 0 70px;}
  .hero h1{font-size:1.85rem;}
  .hero-scroll{font-size:1.3rem;bottom:20px;}
  .seat-grid{grid-template-columns:repeat(5,1fr);}
  .admin-sidebar{width:100%;}
  .admin-wrap{flex-direction:column;}
}
