/* ==========================================================================
   สะพานเชื่อมไลบรารีภายนอกเข้ากับธีมของเรา
   --------------------------------------------------------------------------
   โหลดหลัง bootstrap.css แต่ก่อน app.css เสมอ
     bootstrap.css  →  vendor.css (ไฟล์นี้)  →  app.css
   ไฟล์นี้ทำ 3 อย่าง
     1. แปลงตัวแปรของ Bootstrap ให้เป็นสีของเรา คอมโพเนนต์ทุกตัวจะกลายเป็นกรมท่า+ทองเอง
     2. แก้จุดที่ชื่อคลาสชนกัน
     3. แต่งหน้าตา Plyr กับ Swiper ให้เข้าชุด
   ========================================================================== */

/* ---------------------------------------------------------------------------
   1. แปลงตัวแปร Bootstrap เป็นสีของเรา

   Bootstrap 5.3 วางสีทั้งหมดไว้บนตัวแปร --bs-* แล้วคอมโพเนนต์ทุกตัวอ่านจากตรงนี้
   เขียนทับที่เดียวจึงเปลี่ยนได้ทั้งชุด ไม่ต้องไล่เขียนทับทีละคอมโพเนนต์
   (ใช้คู่กับ data-bs-theme="dark" บนแท็ก <html> ซึ่งเปิดโหมดมืดในตัวของ Bootstrap เอง)
--------------------------------------------------------------------------- */
:root,
[data-bs-theme="dark"] {
  --bs-body-bg:            #070b16;
  --bs-body-color:         #eaeefb;
  --bs-emphasis-color:     #ffffff;
  --bs-secondary-color:    rgba(154, 166, 201, .85);
  --bs-tertiary-color:     rgba(102, 115, 154, .8);
  --bs-tertiary-bg:        #0e1530;
  --bs-secondary-bg:       #121a3a;

  --bs-border-color:       #1e2a52;
  --bs-border-radius:      12px;
  --bs-border-radius-sm:   9px;
  --bs-border-radius-lg:   16px;
  --bs-border-radius-xl:   20px;

  --bs-primary:            #d4af37;
  --bs-primary-rgb:        212, 175, 55;
  --bs-primary-text-emphasis: #f4d98b;
  --bs-primary-bg-subtle:  #1a1508;
  --bs-primary-border-subtle: #a8842a;

  --bs-link-color:         #d4af37;
  --bs-link-color-rgb:     212, 175, 55;
  --bs-link-hover-color:   #f4d98b;

  --bs-code-color:         #f4d98b;
  --bs-highlight-bg:       #2a2208;

  /* วงแหวนตอนโฟกัส — คีย์บอร์ดต้องเห็นชัดว่าอยู่ตรงไหน */
  --bs-focus-ring-color:   rgba(212, 175, 55, .38);
  --bs-focus-ring-width:   3px;

  --bs-font-sans-serif: "Prompt", "IBM Plex Sans Thai", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --bs-body-font-size: 14.5px;
  --bs-body-line-height: 1.72;
}

/* ---------------------------------------------------------------------------
   2. จุดที่ชื่อคลาสชนกัน

   เว็บนี้เขียน CSS เองมาก่อนจะเอา Bootstrap เข้ามา ชื่อคลาสจึงทับกัน 3 ตัว
   app.css โหลดทีหลังก็จริง แต่ชนะเฉพาะ "คุณสมบัติที่เราประกาศไว้เอง" เท่านั้น
   คุณสมบัติที่ Bootstrap ประกาศแต่เราไม่ได้ประกาศ จะยังมีผลอยู่และทำหน้าเว็บพัง
--------------------------------------------------------------------------- */

/*
 * .card — ตัวที่พังหนักสุด
 * ของเราคือกล่องโปสเตอร์โปร่ง ๆ (พื้นหลังกับขอบอยู่ที่ .card-art ข้างใน)
 * ของ Bootstrap เป็นการ์ดทึบมีพื้นหลังและขอบของตัวเอง
 * ถ้าไม่ล้าง โปสเตอร์ทุกใบบนเว็บจะมีกล่องสีอ่อนกับขอบซ้อนออกมาอีกชั้น
 */
.card {
  --bs-card-bg: transparent;
  --bs-card-border-width: 0;
  --bs-card-spacer-y: 0;
  --bs-card-spacer-x: 0;
  display: block;
  background: transparent;
  border: 0;
  border-radius: 0;
}

/*
 * .btn — Bootstrap ตั้ง --bs-btn-* ไว้เป็นชุด และบางตัวเราไม่ได้ประกาศทับ
 * ที่ต้องล้างจริง ๆ คือ box-shadow ตอนโฟกัส ซึ่งเป็นสีฟ้าของ Bootstrap
 * ปุ่มทองมีวงแหวนฟ้าล้อมตอนกดจะดูหลุดธีมทันที
 */
.btn {
  --bs-btn-focus-box-shadow: 0 0 0 3px rgba(212, 175, 55, .3);
  --bs-btn-box-shadow: none;
  text-decoration: none;
}
.btn:focus-visible { box-shadow: 0 0 0 3px rgba(212, 175, 55, .3); }

/*
 * .alert — Bootstrap ต้องมีคลาสคู่ (.alert-danger) ถึงจะได้สีขอบ
 * ของเราใช้ .alert.err / .alert.ok ที่ตั้งสีเอง จึงแค่กันไม่ให้เผลอได้ขอบใส
 */
.alert { --bs-alert-border-color: currentColor; }

/*
 * .nav — Bootstrap สั่ง list-style กับ padding-left ไว้เผื่อใช้กับ <ul>
 * ของเราเป็น <nav> ที่มี <a> ตรง ๆ ไม่มี list ล้างทิ้งกันระยะเพี้ยน
 */
.nav { --bs-nav-link-padding-x: 0; --bs-nav-link-padding-y: 0; padding-left: 0; list-style: none; }

/* Bootstrap รีเซ็ต heading เป็น margin-top:0 ซึ่งเราพึ่งพาอยู่แล้ว แต่ font-weight ของมันเบากว่า */
h1, h2, h3 { font-weight: 800; }

/* ไอคอน Bootstrap Icons ให้วางกลางบรรทัดพอดีกับข้อความไทย ซึ่งสูงกว่าอังกฤษ */
[class^="bi-"], [class*=" bi-"] { line-height: 1; vertical-align: -.08em; }

/* ---------------------------------------------------------------------------
   3. ตัวเล่นวิดีโอ Plyr

   Plyr เปิดให้ตั้งสีผ่านตัวแปร --plyr-* ทั้งหมด ไม่ต้องไปเขียนทับ selector ข้างใน
   (เขียนทับ selector ข้างในจะพังทุกครั้งที่อัปเดตรุ่น)
--------------------------------------------------------------------------- */
.plyr {
  --plyr-color-main:                    #d4af37;
  --plyr-video-background:              #000;
  --plyr-video-control-color:           #f2f5ff;
  --plyr-video-control-color-hover:     #1a1204;
  --plyr-video-control-background-hover: #d4af37;

  --plyr-audio-control-color:           #eaeefb;
  --plyr-menu-background:               rgba(14, 21, 48, .97);
  --plyr-menu-color:                    #cdd6f0;
  --plyr-menu-border-color:             #1e2a52;
  --plyr-menu-border-shadow-color:      rgba(0, 0, 0, .5);
  --plyr-menu-back-border-color:        #1e2a52;
  --plyr-menu-arrow-color:              #66739a;
  --plyr-menu-radius:                   12px;

  --plyr-tooltip-background:            rgba(14, 21, 48, .97);
  --plyr-tooltip-color:                 #f4d98b;
  --plyr-tooltip-radius:                8px;
  --plyr-tooltip-shadow:                0 6px 18px rgba(0, 0, 0, .5);

  --plyr-range-track-height:            5px;
  --plyr-range-thumb-height:            14px;
  --plyr-range-thumb-background:        #f4d98b;
  --plyr-range-thumb-shadow:            0 1px 2px rgba(0, 0, 0, .6);
  --plyr-video-progress-buffered-background: rgba(212, 175, 55, .28);

  --plyr-control-radius:                10px;
  --plyr-control-spacing:               11px;
  --plyr-font-family:                   inherit;
  --plyr-font-size-small:               13px;
  --plyr-font-size-base:                14px;
  --plyr-badge-background:              #d4af37;
  --plyr-badge-text-color:              #1a1204;

  --plyr-focus-visible-color:           #f4d98b;
}

/* แถบควบคุมไล่เฉดจากล่างขึ้นบน อ่านง่ายกว่าแถบทึบ และไม่บังภาพ */
.plyr--video .plyr__controls {
  background: linear-gradient(0deg, rgba(4, 7, 15, .94) 0%, rgba(4, 7, 15, .72) 45%, transparent 100%);
  padding-top: 26px;
}

/*
 * หลอดวิดีโอขึ้นไปอยู่แถวบนเต็มความกว้าง แบบเดียวกับ YouTube
 * ---------------------------------------------------------------------------
 * เดิม Plyr วางทุกอย่างไว้แถวเดียว หลอดวิดีโอเป็นตัวยืดหยุ่นตัวเดียวในแถว
 * พอจอแคบ (มือถือ ~380px) ปุ่มกินที่จนหมด หลอดเหลือความกว้างเกือบศูนย์
 * ผู้ใช้จึงมองไม่เห็นเลยว่าเล่นไปถึงไหน ทั้งที่เป็นข้อมูลสำคัญที่สุดในตัวเล่น
 *
 * ย้ายขึ้นแถวบนแล้วปัญหาหายถาวรทุกความกว้าง ไม่ต้องมาไล่ซ่อนปุ่มทีละตัวตามขนาดจอ
 * และได้พื้นที่ลากนิ้วยาวเต็มจอ ซึ่งเลื่อนหาฉากได้แม่นกว่าเดิมมาก
 */
.plyr--video .plyr__controls { flex-wrap: wrap; row-gap: 2px; }
.plyr--video .plyr__controls .plyr__progress__container {
  order: -1;
  flex: 0 0 100%;
  width: 100%;
  padding: 0 3px;
  margin: 0 0 2px;
}
.plyr--video .plyr__progress input[type="range"] { padding: 0; }

/* หลอดหนาขึ้นตอนเอาเมาส์ชี้ — บอกว่าลากได้ และลากง่ายขึ้นด้วย */
.plyr--video .plyr__progress__container { --plyr-range-track-height: 4px; transition: --plyr-range-track-height .15s; }
.plyr--video .plyr__controls:hover .plyr__progress__container,
.plyr--video .plyr__progress__container:focus-within { --plyr-range-track-height: 7px; }

/*
 * จอแคบ: ซ่อนเฉพาะ "แถบเลื่อน" เสียง มือถือปรับเสียงจากปุ่มข้างเครื่องอยู่แล้ว
 *
 * ⚠️ ห้ามซ่อน .plyr__volume ทั้งกล่อง
 *    Plyr เก็บปุ่มปิดเสียงไว้ในกล่องเดียวกับแถบเลื่อน ซ่อนทั้งกล่องแล้วปุ่มปิดเสียงหายไปด้วย
 *    ซึ่งเป็นปุ่มที่คนดูบนมือถือในที่สาธารณะต้องใช้มากที่สุด
 */
@media (max-width: 560px) {
  .plyr--video .plyr__volume input[type="range"] { display: none; }
  .plyr--video .plyr__volume { min-width: 0; }
  .plyr--video .plyr__control { padding: 7px; }
}

/* ---------------------------------------------------------------------------
   แตะสองครั้งเพื่อกรอ — วงกลมกระพริบซ้าย/ขวา แบบ YouTube
--------------------------------------------------------------------------- */
.bc-tap {
  position: absolute; top: 0; bottom: 0; width: 42%;
  display: grid; place-items: center;
  pointer-events: none;          /* ต้องปล่อยให้คลิกทะลุไปถึงวิดีโอ ไม่งั้นแตะไม่ติด */
  opacity: 0; z-index: 2;
  color: #fff;
}
.bc-tap-back { left: 0;  border-radius: 0 100% 100% 0 / 0 50% 50% 0; }
.bc-tap-fwd  { right: 0; border-radius: 100% 0 0 100% / 50% 0 0 50%; }

.bc-tap-in {
  display: grid; place-items: center; gap: 3px;
  text-shadow: 0 2px 8px rgba(0, 0, 0, .7);
}
.bc-tap-in .bi { font-size: 26px; }
.bc-tap-in b { font-size: 13px; font-weight: 500; white-space: nowrap; }

.bc-tap.on { animation: bc-tap .58s ease-out; }
@keyframes bc-tap {
  0%   { opacity: 0; background: rgba(255, 255, 255, 0); }
  18%  { opacity: 1; background: rgba(255, 255, 255, .17); }
  100% { opacity: 0; background: rgba(255, 255, 255, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .bc-tap.on { animation-duration: .01s; }
}

/*
 * ปุ่มเล่นกลางจอ — วงกลมทองเรืองแสง ให้เป็นจุดสนใจแรกที่ตาไปหยุด
 *
 * ⚠️ ห้ามเขียน transform เป็น scale() เปล่า ๆ เด็ดขาด
 *    Plyr จัดปุ่มให้อยู่กลางด้วย top/left 50% + translate(-50%,-50%)
 *    ถ้าเขียน transform ทับโดยไม่ใส่ translate กลับไปด้วย คำสั่งจัดกลางจะหายไป
 *    ปุ่มจะกระเด็นไปทางขวาล่างครึ่งตัว และเพราะ :focus ค้างอยู่หลังกด
 *    ปุ่มก็จะไม่กลับมาตรงกลางอีกเลยจนกว่าจะคลิกที่อื่น
 *
 *    ทุกสถานะต้องมี translate(-50%, -50%) นำหน้าเสมอ
 */
.plyr__control--overlaid {
  background: linear-gradient(180deg, #f4d98b, #d4af37);
  color: #1a1204;
  border: 1px solid #f4d98b;
  padding: 20px;
  box-shadow: 0 10px 34px rgba(212, 175, 55, .34);
  transform: translate(-50%, -50%);
  transition: transform .18s, box-shadow .18s, background .18s;
}
.plyr__control--overlaid:hover,
.plyr__control--overlaid:focus,
.plyr__control--overlaid.plyr__tab-focus {
  background: linear-gradient(180deg, #ffe9ae, #e2bd45);
  transform: translate(-50%, -50%) scale(1.07);
  box-shadow: 0 14px 44px rgba(212, 175, 55, .5);
}

/* ปุ่มที่กดค้างอยู่ (เปิดเมนู / ปิดเสียง) ให้ติดสีทองไว้ จะได้รู้ว่ากำลังเปิดอยู่ */
.plyr--video .plyr__control.plyr__tab-focus,
.plyr--video .plyr__control[aria-expanded="true"] {
  background: #d4af37;
  color: #1a1204;
}

.plyr__menu__container { border: 1px solid #1e2a52; }
.plyr__menu__container .plyr__control--forward::after { border-left-color: #66739a; }

/* Plyr วางตัวเองเต็มความกว้างพ่อ — คลิปแนวตั้งต้องให้ .player-wrap เป็นคนคุมความกว้าง */
.plyr--video { border-radius: 0; height: 100%; }
.plyr__video-wrapper { background: #000; }

/* ---------------------------------------------------------------------------
   4. แถวเลื่อนแนวนอน Swiper
--------------------------------------------------------------------------- */
.swiper { overflow: visible; }
.swiper-wrapper { align-items: stretch; }

/* ปุ่มลูกศร — ซ่อนบนมือถือเพราะปัดนิ้วได้อยู่แล้ว โผล่เฉพาะตอนชี้เมาส์บนจอใหญ่ */
.rail-nav {
  --swiper-navigation-size: 16px;
  width: 38px; height: 38px; margin-top: -34px;
  border-radius: 50%;
  color: #f4d98b;
  background: rgba(11, 17, 35, .92);
  border: 1px solid #1e2a52;
  backdrop-filter: blur(6px);
  box-shadow: 0 8px 22px rgba(0, 0, 0, .5);
  opacity: 0;
  transition: opacity .18s, border-color .18s, color .18s;
}
.rail-shell:hover .rail-nav { opacity: 1; }
.rail-nav:hover { border-color: #a8842a; color: #ffe9ae; }
.rail-nav::after { font-size: 15px; font-weight: 900; }
.rail-nav.swiper-button-disabled { opacity: 0 !important; pointer-events: none; }
.rail-nav.swiper-button-prev { left: -14px; }
.rail-nav.swiper-button-next { right: -14px; }

@media (max-width: 900px) {
  .rail-nav { display: none; }
}

/* ---------------------------------------------------------------------------
   5. แผงตั้งค่า (Offcanvas ของ Bootstrap)
--------------------------------------------------------------------------- */
.bc-settings {
  --bs-offcanvas-bg: #0b1123;
  --bs-offcanvas-color: #eaeefb;
  --bs-offcanvas-border-color: #1e2a52;
  --bs-offcanvas-width: 400px;
  --bs-offcanvas-padding-x: 22px;
  --bs-offcanvas-padding-y: 20px;
}
/* หัวแผงติดอยู่กับที่ ไม่เลื่อนหนีไปตอนไถดูตัวเลือกข้างล่าง */
.bc-settings .offcanvas-header {
  border-bottom: 1px solid var(--line);
  background: linear-gradient(180deg, #0e1530, #0b1123);
  flex: none;
}
.bc-settings .offcanvas-title {
  font-size: 17px; font-weight: 600;
  display: flex; align-items: center; gap: 10px;
}
.bc-settings .offcanvas-title .bi { color: #f4d98b; font-size: 18px; }
.bc-settings .offcanvas-body { padding-top: 4px; }

/* ปุ่มปิดของ Bootstrap เป็นกากบาทสีดำ มองไม่เห็นบนพื้นเข้ม — พลิกเป็นสีอ่อน */
.bc-settings .btn-close { filter: invert(1) grayscale(1) brightness(1.8); opacity: .55; }
.bc-settings .btn-close:hover { opacity: 1; }

/* ---- หมวด ---- */
.set-group { margin-top: 22px; }
.set-group-t {
  display: flex; align-items: center; gap: 8px;
  margin: 0 0 4px; padding-bottom: 9px;
  font-size: 11.5px; font-weight: 600; letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--ink-mute);
  border-bottom: 1px solid var(--line);
}
.set-group-t .bi { color: var(--gold-dp); font-size: 13px; }

/* ---- แถวตัวเลือก ---- */
.set-row {
  display: flex; align-items: center; justify-content: space-between; gap: 18px;
  padding: 14px 0;
}
.set-row + .set-row { border-top: 1px solid rgba(30, 42, 82, .45); }
.set-lbl { flex: 1; min-width: 0; cursor: pointer; margin: 0; }
.set-lbl b { display: block; font-size: 14px; font-weight: 500; line-height: 1.45; }
.set-lbl em {
  display: block; font-style: normal; font-size: 11.5px;
  color: var(--ink-mute); margin-top: 4px; line-height: 1.6;
}

/*
 * ตัวเลือกลูก — เยื้องเข้ามาพร้อมเส้นทองบาง ๆ ทางซ้าย
 * บอกด้วยรูปทรงว่าสองอันนี้ขึ้นกับตัวบน ไม่ใช่ตัวเลือกอิสระที่มาเรียงต่อกันเฉย ๆ
 */
.set-sub {
  position: relative;
  padding-left: 16px;
  transition: opacity .18s;
}
.set-sub::before {
  content: ""; position: absolute; left: 0; top: 10px; bottom: 10px;
  width: 2px; border-radius: 2px;
  background: linear-gradient(180deg, var(--gold-dp), transparent);
}
.set-sub.off { opacity: .35; }

.bc-settings .form-select {
  flex: none; width: auto; min-width: 118px;
  background-color: #0e1530; border-color: #1e2a52; color: #eaeefb;
  font-size: 13px; padding: 7px 30px 7px 12px; border-radius: 9px;
}
.bc-settings .form-select:focus { border-color: #a8842a; box-shadow: 0 0 0 3px rgba(212, 175, 55, .22); }

/* สวิตช์เปิด/ปิด — ตอนเปิดต้องเป็นทอง ไม่ใช่ฟ้าของ Bootstrap */
.bc-settings .form-switch { padding-left: 0; flex: none; min-height: 0; margin: 0; }
.bc-settings .form-switch .form-check-input {
  width: 46px; height: 25px; margin: 0; cursor: pointer;
  background-color: #121a3a; border-color: #1e2a52;
}
.bc-settings .form-check-input:checked {
  background-color: #d4af37; border-color: #f4d98b;
  box-shadow: 0 0 14px rgba(212, 175, 55, .3);
}
.bc-settings .form-check-input:focus {
  border-color: #a8842a; box-shadow: 0 0 0 3px rgba(212, 175, 55, .25);
}
.bc-settings .form-check-input:disabled { cursor: default; }

/* ---- ท้ายแผง ---- */
.set-foot {
  flex: none;
  padding: 15px 22px 20px;
  border-top: 1px solid var(--line);
  background: #080d1c;
}
.set-foot-note {
  display: flex; align-items: flex-start; gap: 8px;
  margin: 0 0 13px; font-size: 11.5px; line-height: 1.6; color: var(--ink-mute);
}
.set-foot-note .bi { color: var(--gold-dp); font-size: 13px; margin-top: 2px; flex: none; }
.set-foot-note strong { color: var(--ink-dim); font-weight: 600; }
.set-reset { width: 100%; justify-content: center; padding: 10px 16px; font-size: 13px; }

@media (max-width: 900px) {
  .bc-settings { --bs-offcanvas-width: 100%; }
}

/* ---------------------------------------------------------------------------
   5b. แผงที่เลื่อนขึ้นจากด้านล่าง (หมวดหมู่ / บัญชี บนจอเล็ก)
--------------------------------------------------------------------------- */
.bc-sheet {
  --bs-offcanvas-bg: #0b1123;
  --bs-offcanvas-color: #eaeefb;
  --bs-offcanvas-border-color: #1e2a52;
  --bs-offcanvas-padding-x: 18px;
  --bs-offcanvas-padding-y: 16px;
  --bs-offcanvas-height: auto;          /* สูงเท่าเนื้อหา ไม่ต้องกินครึ่งจอเปล่า ๆ */
  max-height: 82vh;
  border-radius: 20px 20px 0 0;
  /* เผื่อที่ให้แถบขีดของ iPhone — ไม่งั้นรายการล่างสุดกดไม่ติด */
  padding-bottom: env(safe-area-inset-bottom, 0);
}
.bc-sheet .offcanvas-header { border-bottom: 1px solid var(--line); padding-bottom: 13px; }
.bc-sheet .offcanvas-title {
  display: flex; align-items: center; gap: 9px;
  font-size: 16px; font-weight: 600;
}
.bc-sheet .offcanvas-title .bi { color: #f4d98b; }
.bc-sheet .btn-close { filter: invert(1) grayscale(1) brightness(1.8); opacity: .55; }
.bc-sheet .btn-close:hover { opacity: 1; }
.bc-sheet .offcanvas-body { overflow-y: auto; }

/* ขีดเล็ก ๆ บนหัวแผง บอกว่าลากปิดได้ — เป็นภาษาที่คนใช้มือถือคุ้นอยู่แล้ว */
.bc-sheet::before {
  content: ""; display: block;
  width: 38px; height: 4px; margin: 9px auto 0;
  border-radius: 99px; background: var(--line);
}

.sheet-links { display: flex; flex-direction: column; gap: 3px; }
.sheet-links a {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 14px 13px; border-radius: 12px;
  color: var(--ink-dim); font-size: 15px;
  border: 1px solid transparent;
  transition: .16s;
}
.sheet-links a:hover { background: var(--panel); color: var(--gold-lt); }
.sheet-links a.on {
  background: var(--panel); border-color: var(--gold-dp); color: var(--gold-lt); font-weight: 600;
}
.sheet-links em { font-style: normal; font-size: 12.5px; color: var(--ink-mute); }
.sheet-links .bi { color: var(--ink-mute); font-size: 14px; }

/* รายการเมนูบัญชีในแผงล่าง — ตัวหนังสือใหญ่กว่าในดรอปดาวน์ เพราะกดด้วยนิ้ว */
.bc-sheet .acct-menu a,
.bc-sheet .acct-menu button { padding: 13px 12px; font-size: 15px; border-radius: 11px; }
.bc-sheet .acct-menu svg { width: 19px; height: 19px; }
.bc-sheet .acct-menu form { border-top: 1px solid var(--line); margin-top: 7px; padding-top: 7px; }

/* ---------------------------------------------------------------------------
   5c. แผงบอกวิธีติดตั้งลงหน้าจอโฮม
--------------------------------------------------------------------------- */
.ins-head {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 0 18px; margin-bottom: 4px;
  border-bottom: 1px solid var(--line);
}
.ins-head img { width: 56px; height: 56px; border-radius: 13px; flex: none; border: 1px solid var(--line); }
.ins-head b { display: block; font-size: 15px; font-weight: 600; }
.ins-head em { display: block; font-style: normal; font-size: 12px; color: var(--ink-mute); margin-top: 3px; }

.ins-steps { list-style: none; margin: 0; padding: 14px 0 4px; display: flex; flex-direction: column; gap: 14px; }
.ins-steps li { display: flex; align-items: flex-start; gap: 13px; font-size: 14.5px; line-height: 1.6; }
.ins-steps b { color: var(--gold-lt); font-weight: 600; }

/* เลขลำดับวงกลมทอง — บอกว่าต้องทำเรียงตามลำดับ ไม่ใช่เลือกทำอันใดอันหนึ่ง */
.ins-n {
  flex: none; width: 26px; height: 26px; margin-top: 1px;
  display: grid; place-items: center; border-radius: 50%;
  font-size: 13px; font-weight: 700; color: #1a1204;
  background: linear-gradient(180deg, var(--gold-lt), var(--gold));
}
/* ไอคอนแชร์ของ iOS วาดคาไว้กลางประโยค ให้คนมองหาปุ่มจริงบนจอถูก */
.ins-ico { width: 17px; height: 17px; vertical-align: -3px; margin: 0 2px; color: #4da3ff; }
.ins-steps .bi { color: var(--gold); }

.ins-note {
  display: flex; gap: 10px; align-items: flex-start;
  margin-top: 14px; padding: 13px 15px; border-radius: 12px;
  font-size: 13px; line-height: 1.65; color: var(--ink-dim);
  background: var(--panel); border: 1px solid var(--line);
}
.ins-note .bi { color: var(--gold); flex: none; margin-top: 2px; }
.ins-note b { color: var(--gold-lt); font-weight: 600; }

/* ---------------------------------------------------------------------------
   5d. ตารางหลังบ้าน (DataTables)
   ชุดสีของ DataTables ถูกออกแบบมาเพื่อพื้นขาว ต้องทาใหม่ทั้งหมดให้เข้าโทนเข้ม
--------------------------------------------------------------------------- */
.dt-container { --dt-row-selected: 212, 175, 55; }

/* แถวบนสุด: ช่องเลือกจำนวนแถว + ช่องค้นหา */
.dt-container .dt-layout-row { margin: 0 0 12px; align-items: center; }
.dt-container .dt-length,
.dt-container .dt-search { font-size: 13px; color: var(--ink-mute); }
.dt-container .dt-search label { margin-right: 8px; }
.dt-container select,
.dt-container input[type="search"] {
  padding: 7px 12px; font: inherit; font-size: 13px; border-radius: 9px;
  background: var(--bg-2); color: var(--ink); border: 1px solid var(--line); outline: none;
}
.dt-container input[type="search"] { min-width: 220px; }
.dt-container select:focus,
.dt-container input[type="search"]:focus { border-color: var(--gold-dp); }

/* หัวคอลัมน์ที่เรียงได้ — ต้องดูกดได้ และบอกว่ากำลังเรียงตามตัวไหน */
.adm-tbl thead th.dt-orderable-asc,
.adm-tbl thead th.dt-orderable-desc { cursor: pointer; user-select: none; }
.adm-tbl thead th.dt-orderable-asc:hover,
.adm-tbl thead th.dt-orderable-desc:hover { color: var(--gold-lt); }
.adm-tbl thead th.dt-ordering-asc,
.adm-tbl thead th.dt-ordering-desc { color: var(--gold-lt); }
.dt-column-order::before, .dt-column-order::after { opacity: .35; }

/* แถวล่าง: ข้อความสรุป + ปุ่มแบ่งหน้า */
.dt-container .dt-info { font-size: 12.5px; color: var(--ink-mute); padding-top: 12px; }
.dt-container .dt-paging { padding-top: 10px; }
.dt-container .pagination { --bs-pagination-bg: var(--panel); }
.dt-container .page-link {
  background: var(--panel); border-color: var(--line); color: var(--ink-dim);
  font-size: 13px; padding: 7px 13px;
}
.dt-container .page-link:hover { background: var(--panel-2); border-color: var(--gold-dp); color: var(--gold-lt); }
.dt-container .active > .page-link {
  background: linear-gradient(180deg, var(--gold-lt), var(--gold));
  border-color: var(--gold); color: #1a1204; font-weight: 600;
}
.dt-container .disabled > .page-link { background: var(--bg-2); color: var(--ink-mute); opacity: .5; }

/* ข้อความ "ไม่พบแถวที่ตรงกับที่ค้น" */
.adm-tbl td.dt-empty { text-align: center; padding: 34px 12px; color: var(--ink-mute); }

@media (max-width: 700px) {
  .dt-container input[type="search"] { min-width: 0; width: 100%; }
  .dt-container .dt-layout-row { gap: 8px; }
}

/* ---------------------------------------------------------------------------
   6. แจ้งเตือนแบบ Toast (ใช้ของ Bootstrap แต่ทาสีเอง)
--------------------------------------------------------------------------- */
.toast-stack {
  position: fixed; z-index: 1090;
  right: 18px; bottom: 18px;
  display: flex; flex-direction: column; gap: 9px;
}
.bc-toast {
  --bs-toast-bg: rgba(14, 21, 48, .97);
  --bs-toast-color: #eaeefb;
  --bs-toast-border-color: #a8842a;
  --bs-toast-border-radius: 12px;
  --bs-toast-box-shadow: 0 18px 50px rgba(0, 0, 0, .55);
  --bs-toast-padding-x: 15px;
  --bs-toast-padding-y: 11px;
  --bs-toast-font-size: 14px;
  backdrop-filter: blur(10px);
  align-items: center;
  gap: 9px;
  display: flex;
}
.bc-toast .bi { color: #f4d98b; font-size: 17px; }

@media (max-width: 900px) {
  .toast-stack { right: 12px; left: 12px; bottom: 12px; }
}
