@import url('https://fonts.googleapis.com/css2?family=Prompt:wght@400;500;600;700;800&display=swap');
/* ==========================================================================
   DekEnHUB — ชั้นธีมกลางฝั่งลูกค้า (โหลดทุกหน้าผ่าน views/global/v_meta.ejs)
   ทับบน atom.css โดยไม่แตะโครงสร้าง HTML เดิม
   ชุดสี/ฟอนต์/ทรงการ์ด อ้างอิงแอปหลังบ้านเด็กเอ็น (idol_front/views/app.ejs)
   หน้าแรกมีชั้นเสริมของตัวเองอีกไฟล์: public/css/home-refresh.css (โหลดทีหลัง)
   ========================================================================== */

:root{
  /* ชุดสีเดียวกับหน้าเข้าสู่ระบบและแอปหลังบ้านเด็กเอ็นเป๊ะ ๆ ทั้งระบบจะได้โทนเดียวกัน
     ที่ไม่เอาคือ "สีน้ำเงินที่เป็นสีเน้น" ของธีมเก่า (#67679e, ปุ่มไล่สีชมพู-ฟ้า) ไม่ใช่พื้นชุดนี้ */
  /* ตัวอักษรเป็นดำ/เทากลาง ไม่อมน้ำเงิน (ของเดิม #26244B เป็นม่วงอมกรมท่า
     พอใช้กับตัวหนา ๆ จะเห็นเป็นน้ำเงินชัด) พื้นหลังกับสีเน้นยังเป็นชุดเดียวกับหน้าล็อกอิน */
  --dh-ink:#1F1F1F;
  --dh-ink-soft:#4A4A4A;
  --dh-muted:#8C8C8C;
  --dh-line:#E7E9F3;
  --dh-bg:#F4F5FA;
  --dh-card:#fff;
  --dh-brand:#FF6B2C;
  --dh-grad:linear-gradient(130deg,#FF8E3C,#FF4E6B);
  --dh-shadow:0 8px 22px rgba(38,36,75,.07);
  --dh-shadow-lg:0 16px 38px rgba(38,36,75,.14);
}

/* ฟอนต์ Prompt ไม่เคยถูกโหลดในฝั่งลูกค้ามาก่อน (v_meta โหลดแค่ Bootstrap)
   ทุกกฎที่เขียน font-family:'Prompt' ไว้จึงตกกลับไปใช้ kanitregular ของธีมเดิมเงียบ ๆ */
html,body{background:var(--dh-bg) !important;color:var(--dh-ink) !important;
  font-family:'Prompt',sans-serif !important;}
.dh-search,.dh-search *,.dh-bottom,.dh-bottom *,
.navbar,.navbar *,.search-form,.search-form *,
.home-idol,.home-idol *,.category-item{font-family:'Prompt',sans-serif !important;}
main,main.container-fluid,.container,.container-fluid{background:transparent !important;}
.navbar,nav.navbar{background:var(--dh-bg) !important;box-shadow:none !important;border:none !important;}

/* ---------- คำไฮไลต์ → ไล่สีส้ม-ชมพู ---------- */
.banner .txt-hiligh,
.txt-hiligh,
.brand-hiligh,
font[style*="f77b00"]{
  background-image:var(--dh-grad) !important;
  -webkit-background-clip:text !important;background-clip:text !important;
  color:transparent !important;-webkit-text-fill-color:transparent !important;
  font-weight:800;
}

/* ---------- ล้างสีน้ำเงินที่ติดมากับธีมเดิม ---------- */
.home-search-header,.nav-info .name,.nav-info .number,
.category-item,.home-idol-des,.home-idol-des label,
.des-region h2,.des-region .head{color:var(--dh-ink) !important;}
.idol-input-box .region,.idol-check-group .region{border-color:var(--dh-line) !important;}


/* ---------- ฟอนต์: บังคับ Prompt ทั้งหน้า ----------
   atom.css ตั้ง kanitregular ไว้ที่ body และตั้งซ้ำอีกทีในหลายคอมโพเนนต์
   ประกาศที่ body อย่างเดียวจึงไม่พอ ต้องกวาดทุก element */
body,body *:not(i):not(.fa):not([class^="fa-"]):not([class*=" fa-"]){
  font-family:'Prompt',sans-serif !important;
}

/* ---------- ปุ่มสลับธีมมืดบนแถบเมนู ----------
   ธีมมืดของเดิม (.dark ใน atom.css) ยังเป็นชุดสีเก่าทั้งชุด พอมาอยู่บนธีมใหม่
   จะได้หน้าเทา-ดำที่ไม่มีใครออกแบบไว้ ปิดสวิตช์ทิ้งและบังคับสว่างที่ atom.js */
.nav-link.theme-holder,.navbar .theme-holder{display:none !important;}


/* ==========================================================================
   แถบเมนูด้านบน
   ========================================================================== */
/* ==========================================================================
   เมนูด้านบน — คงพฤติกรรมเดิม (Bootstrap collapse สไลด์ลง) และ "หน้าตาแบบเดิม"
   คือรายการเปล่า ๆ ไม่มีการ์ดครอบ ไม่มีไอคอน แค่ปรับสีให้เข้าธีมและตัวใหญ่ขึ้น
   ========================================================================== */

/* ปุ่มสามขีด — ตามดีไซน์: วงกลมขาว 42px เงานุ่มบาง ๆ ขีดสามเส้นยาวไม่เท่ากัน
   ของเดิมเป็นไฟล์ภาพที่มีเงาฟุ้งอบมาในรูป ลบด้วย CSS ไม่ได้ เลยวาดใหม่เป็น SVG */
/* หมายเหตุ: ห้ามใส่ display:flex !important แบบไม่จำกัดจอ
   Bootstrap (navbar-expand-md) ซ่อนปุ่มนี้ตั้งแต่ 768px ขึ้นไป ถ้าไปทับมันจะโผล่
   มาซ้อนกับโลโก้บนจอคอม */
.navbar-toggler{
  width:50px !important;height:50px !important;padding:0 !important;flex:none;
  align-items:center;justify-content:center;
  background:#fff !important;border:none !important;border-radius:50% !important;
  box-shadow:0 4px 14px rgba(38,36,75,.08) !important;
}
@media (max-width:767.98px){ .navbar-toggler{display:flex !important;} }
.navbar-toggler:focus,.navbar-toggler:active{box-shadow:0 4px 14px rgba(38,36,75,.08) !important;outline:none !important;}
.navbar-toggler-icon{
  width:21px !important;height:16px !important;margin:0 !important;filter:none !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='14' viewBox='0 0 18 14' fill='none'%3E%3Cpath d='M1 1h16M1 7h11M1 13h16' stroke='%2326244B' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  background-size:21px 16px !important;background-position:center !important;background-repeat:no-repeat !important;
}

/* ระยะแถบบน — เทียบของเก่า: โลโก้ใหญ่กว่านี้ ลงมาอีกนิด ชิดซ้ายอีกนิด */
.navbar{padding-top:24px !important;padding-bottom:12px !important;}
.navbar > .container-fluid{align-items:center;}
@media (min-width:768px){ .navbar{padding-top:14px !important;padding-bottom:10px !important;} }


/* ==========================================================================
   เมนูมือถือ — ชีทสไลด์ลงจากใต้แถบบน (ลอกจากชีทเมนูของแอปฝั่งเด็ก แต่กลับทิศ)
   ตัวสไลด์ถูกครอบด้วย .dh-sheet-clip ที่ overflow:hidden ตอนปิดจึงซ่อนพ้นขอบบน
   ========================================================================== */
@media (min-width:768px){
  /* จอคอม: ให้ตัวครอบหายไปจากผัง เมนูจะได้เป็นลูกตรงของแถบเหมือนเดิม */
  .dh-sheet-clip{display:contents;}
  .dh-menu-back{display:none !important;}
}
@media (max-width:767.98px){
  .dh-sheet-clip{
    /* ดึงขึ้นทับขอบล่างแถบบน 1px — ความสูงแถบเป็นเศษทศนิยม วางที่ 100% พอดีเป๊ะ
       จะเหลือร่องไม่ถึงพิกเซลให้เห็นฉากหลังทึบ (.dh-menu-back) เป็นเส้นเข้มคาดใต้แถบ */
    position:absolute;top:calc(100% - 1px);left:0;right:0;z-index:5;
    overflow:hidden;pointer-events:none;padding:0 0 26px;
  }
  .navbar .navbar-collapse{
    display:block !important;height:auto !important;visibility:visible !important;
    background:#fff !important;border-radius:0 0 28px 28px !important;
    /* ตอนปิด ตัวชีทถูกดันขึ้นไปพ้นขอบบนของตัวครอบแล้ว แต่ "เงา" ของมันยังทอดลงมาในกรอบ
       เห็นเป็นแถบเทาคาดใต้แถบเมนูตลอดเวลา ต้องเปิดเงาเฉพาะตอนกางออกมา */
    box-shadow:none !important;
    /* ระยะบนน้อยกว่าข้าง — การ์ดเงินจะได้ไม่ลอยห่างจากแถบบนจนดูโหวง */
    /* padding ข้าง 20px = ระยะขอบซ้าย/ขวาของการ์ดเงิน ต้องเท่ากับช่องกลางที่คำนวณไว้ที่ .profile-head-btn */
    padding:0 20px max(16px,env(safe-area-inset-bottom)) !important;
    margin:0 !important;pointer-events:none;
    transform:translateY(-101%);
    transition:transform .3s cubic-bezier(.32,.72,0,1);
    will-change:transform;
  }
  .navbar .navbar-collapse.dh-open{
    transform:translateY(0);pointer-events:auto;
    box-shadow:0 26px 54px rgba(38,36,75,.20) !important;
  }
  /* ขีดจับด้านล่างแบบชีท (ของฝั่งเด็กอยู่บน เพราะมันเลื่อนขึ้น) */
  .navbar .navbar-collapse::after{
    content:"";display:block;width:44px;height:5px;border-radius:99px;
    background:#E4E6F0;margin:12px auto 2px;
  }
  @media (prefers-reduced-motion:reduce){
    .navbar .navbar-collapse{transition:none;}
  }
  /* ชุดเมนูของจอคอมที่ปนอยู่ในนี้ ห้ามโผล่บนมือถือ */
  .navbar .navbar-collapse .navbar-nav.hide-mobile{display:none !important;}
  .navbar .navbar-static.hide-mobile{display:none !important;}
  /* ธีมเดิมซ่อน .hide-desktop ตั้งแต่ 481px แต่ Bootstrap ยังพับเมนูจนถึง 767px
     ช่วง 481-767px เลยกดสามขีดแล้วได้ชีทเปล่า ๆ ต้องบังคับให้โผล่ */
  .navbar .navbar-collapse .dh-sheet{display:flex !important;margin:0 !important;--bs-gutter-x:0;}
  /* เส้นคั่นบาง ๆ ใต้แถบบน สีเดียวกับเส้นคั่นเหนือปุ่มออกจากระบบ (.dh-sheet-div)
     ที่ว่างเปล่า ๆ เหนือการ์ดเงินดูโหวง มีเส้นคั่นแล้วชีทกับแถบบนแยกกันชัดขึ้น */
  .navbar .navbar-collapse .dh-sheet{
    border-top:1px solid #F1F2F8;padding-top:12px !important;
  }
  .navbar .navbar-collapse .dh-sheet > .col-12{padding:0 !important;}
  /* row ที่ซ้อนอยู่ข้างในมี margin ติดลบ -12px ตามปกติของ Bootstrap
     ทำให้การ์ดยอดเงินยื่นออกไปชิดขอบชีทกว่ารายการเมนูข้างล่าง ต้องล้างทิ้ง */
  .navbar .navbar-collapse .dh-sheet .row{margin-left:0 !important;margin-right:0 !important;--bs-gutter-x:0;}
  .navbar .navbar-collapse .dh-sheet .row > *{padding-left:0 !important;padding-right:0 !important;}
  /* การ์ดยอดเงินบนหัวชีท — ตัวเลขต้องอ่านออกจากระยะปกติ ป้ายเป็นตัวรอง */
  /* หดการ์ดให้สั้นลง เว้นขอบซ้ายขวาและช่องกลางให้เท่ากันราว 12px */
  /* คู่การ์ดขนาดเท่ากัน วางกึ่งกลาง — ให้อยู่แกนเดียวกับรายการเมนูข้างล่างที่จัดกึ่งกลางอยู่แล้ว
     เคยลองให้กว้างตามเนื้อหาแล้วดันไปคนละฝั่ง สองใบขนาดไม่เท่ากันเลยดูคนละระบบกับเมนู */
  /* เคยลอง margin ลบ + space-evenly แล้วช่องออกมาไม่เท่ากันสามช่อง (margin ลบโดนกฎอื่นกิน)
     วิธีที่ใช้ตอนนี้ไม่พึ่ง margin ลบเลย: ขอบซ้าย/ขวามาจาก padding 20px ของชีทตรง ๆ
     ส่วนช่องกลางมาจากความกว้างการ์ดที่หักไว้ให้เหลือ 20px พอดี */
  .navbar .navbar-collapse .profile-btn-group{
    margin:0 0 8px !important;padding:0 !important;
    /* จัดกึ่งกลางเป็นคู่ ห่างกัน 20px — การ์ดเงินเลยขยับไปทางขวา ปุ่มเติมเงินขยับมาทางซ้าย
       ที่เหลือกลายเป็นขอบสองข้างเท่ากันเองโดยไม่ต้องคำนวณ */
    gap:20px !important;justify-content:center !important;
  }
  /* ย่อการ์ดลงให้น้ำหนักใกล้เคียงรายการเมนูข้างล่าง (ตัวอักษร 14.5px ระยะ 11px)
     ของเดิมการ์ดตัวใหญ่กว่ามาก มองแล้วเหมือนคนละหน้ากัน */
  /* เนื้อในการ์ดจัดกึ่งกลาง ของเดิมชิดซ้ายทั้งสองใบเลยดูเทน้ำหนักไปข้างเดียว */
  .navbar .navbar-collapse .profile-head-btn{
    padding:15px 12px !important;border-radius:14px !important;
    justify-content:center !important;text-align:center;gap:8px !important;
    /* ครึ่งหนึ่งของแถว ลบครึ่งของช่องกลาง (20px) — สองใบกว้างเท่ากันเป๊ะเสมอ
       ไม่ว่ายอดเงินจะยาวแค่ไหน และช่องกลางออกมา 20px เท่าขอบซ้าย/ขวาพอดี */
    flex:0 0 calc(50% - 32px) !important;max-width:calc(50% - 32px) !important;
    /* หดการ์ดแล้วต้องลดระยะข้างในตามด้วย ไม่งั้นยอดเงิน (nowrap) จะไปชนขอบการ์ด */
    padding-left:10px !important;padding-right:10px !important;
  }
  .navbar .navbar-collapse #cus-money{align-items:center;}
  .navbar .navbar-collapse .profile-head-btn .ico{height:30px !important;width:30px !important;padding:6px;border-radius:10px;}
  .navbar .navbar-collapse #cus-money{display:flex;flex-direction:column;line-height:1.25;}
  .navbar .navbar-collapse #cus-money .k{
    font-size:11px !important;font-weight:600;color:var(--dh-muted) !important;
  }
  .navbar .navbar-collapse #cus-money .v{
    font-size:16px !important;font-weight:800;color:var(--dh-ink) !important;
    letter-spacing:-.3px;white-space:nowrap;
  }
  /* ปุ่มเติมเงินมีบรรทัดเดียว ข้างในเลยดูโล่งกว่าการ์ดเงินที่มีสองบรรทัด
     ขยายเฉพาะไอคอนกับตัวหนังสือของปุ่มนี้ ตัวการ์ดยังกว้างเท่าเดิมทั้งคู่ */
  .navbar .navbar-collapse .profile-head-btn[href="/refill"] p{font-size:16.5px !important;}
  .navbar .navbar-collapse .profile-head-btn[href="/refill"] .ico{
    height:36px !important;width:36px !important;padding:7px;border-radius:11px;
  }
}

/* ตอนกางเมนู แถบบนต้องเป็นขาวเท่าชีท ไม่งั้นเห็นเป็นสองแผ่นคนละสีต่อกัน */
@media (max-width:767.98px){
  .navbar,nav.navbar{transition:background .22s ease;}
  body.dh-menu-open .navbar,body.dh-menu-open nav.navbar{background:#fff !important;}
}

/* ฉากหลังทึบ — อยู่นอก <nav> จะได้ไม่ทับตัวแถบเอง */
.dh-menu-back{
  position:fixed;inset:0;z-index:1020;background:rgba(20,18,45,.45);
  -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
  opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s;
}
.dh-menu-back.on{opacity:1;visibility:visible;}
body.dh-menu-open{overflow:hidden;}

/* รายการในชีท */
.dh-sheet-list{display:flex;flex-direction:column;}
/* จัดกึ่งกลางทั้งสองสถานะ (ล็อกอินแล้วและยังไม่ล็อกอิน) */
.dh-sheet-item{
  display:flex;align-items:center;justify-content:center;gap:13px;
  padding:11px 9px;border-radius:14px;
  color:var(--dh-ink) !important;text-decoration:none !important;
}
.dh-sheet-item:active{background:#F6F7FB;}
/* ลองแบบไม่มีไอคอน — ถ้าจะเอากลับ ลบ display:none บรรทัดล่างออกอย่างเดียว */
.dh-sheet-item .ico{
  display:none;
  width:36px;height:36px;border-radius:12px;flex:none;
  align-items:center;justify-content:center;
}
.dh-sheet-item{padding-left:14px;padding-right:14px;}
.dh-sheet-item .lbl{font-size:14.5px;font-weight:600;flex:none;}
.dh-sheet-item.danger .lbl{color:#E5484D;}
.dh-sheet-div{height:1px;background:#F1F2F8;margin:8px 9px;}

/* ---------- การ์ดจำนวนเงิน / เติมเงิน ในเมนู ----------
   ของเดิมเป็นการ์ดฟ้าอมม่วง สูง 100px พร้อม drop-shadow สองชั้น
   เปลี่ยนเป็นคู่การ์ดกะทัดรัดแบบเดียวกับการ์ดยอดเงินในแอปเด็กเอ็น */
.profile-btn-group{display:flex !important;gap:10px;padding:0 4px;}
.profile-head-btn{
  flex:1 !important;width:auto !important;height:auto !important;margin-top:0 !important;
  gap:10px;padding:12px 13px !important;border-radius:16px !important;
  background:var(--dh-card) !important;color:var(--dh-ink) !important;
  /* ขอบ 1.5px สี --dh-line (#E7E9F3) เข้มเกินไปบนพื้นขาวของชีทเมนู
     มองเป็นเส้นคาดหัวการ์ด บางลงเหลือ 1px แล้วใช้สีอ่อนกว่าพื้นเทาของธีมแทน */
  border:1px solid #F1F2F8;
  filter:none !important;box-shadow:0 6px 18px rgba(38,36,75,.07) !important;
  align-items:center !important;
}
.profile-head-btn .ico{
  height:36px !important;width:36px !important;flex:none;padding:7px;border-radius:12px;
  background:#FFF1E8;box-sizing:border-box;object-fit:contain;
  /* ไอคอนเป็น SVG เส้นแล้ว ต้องจัดกึ่งกลางกรอบเอง */
  display:flex;align-items:center;justify-content:center;color:#FF6B2C;
}
.profile-head-btn p{font-size:12px !important;font-weight:600;line-height:1.35;color:var(--dh-muted) !important;}
#cus-money{color:var(--dh-muted) !important;}
/* ตัวเลขยอดเงินเป็นพระเอกของการ์ดนี้ ต้องเด่นกว่าคำว่า "จำนวนเงิน" */
#cus-money{font-size:11px !important;}
.profile-head-btn:first-child p{color:var(--dh-ink) !important;font-weight:700;font-size:14px !important;}

/* ปุ่มเติมเงินเป็นปุ่มหลัก ใช้ไล่สีแบรนด์ */
.profile-head-btn[href="/refill"]{
  background:var(--dh-grad) !important;border-color:transparent !important;
  /* เงาส้มฟุ้ง 20px ทำให้ปุ่มดูล้ำออกนอกกรอบ ตาจึงอ่านว่ามันใหญ่กว่าการ์ดขาวข้าง ๆ
     ทั้งที่กว้างเท่ากันเป๊ะ คุมให้แคบและจางลง */
  box-shadow:0 5px 12px rgba(255,78,107,.20) !important;
}
.profile-head-btn[href="/refill"] p{color:#fff !important;font-weight:700;font-size:14px !important;}
.profile-head-btn[href="/refill"] .ico{background:rgba(255,255,255,.28);color:#fff;}

/* ---------- โลโก้บนหัว: ใหญ่ขึ้นและชิดซ้าย ---------- */
.navbar > .container-fluid{
  padding-left:12px !important;padding-right:12px !important;
  margin-left:0 !important;margin-right:0 !important;
  width:100% !important;max-width:100% !important;
  /* ห้ามใส่ flex-wrap:nowrap ตรงนี้ — navbar-collapse เป็น flex item ตัวหนึ่ง
     ถ้าห้าม wrap มันจะไปเรียงต่อข้างโลโก้แทนที่จะตกลงมาเป็นเมนูสไลด์ด้านล่าง */
  flex-wrap:wrap !important;
}
.navbar{overflow-x:clip;}
.navbar-brand{margin-right:0 !important;padding:0 !important;}
/* ปุ่มสามขีดเป็นวงกลม ขอบโค้งทำให้ระยะ 12px เท่าการ์ดดูชิดกว่าที่ควร เพิ่มให้อีกหน่อย */
/* ปุ่มสามขีดชิดบนแทนกึ่งกลางแถบ เดิมมันลอยต่ำกว่าโลโก้ทางซ้ายราว 10px
   margin-top ต้องเท่ากับของ .nav-profile ขอบบนปุ่มจะได้เสมอกับขอบบนรูปโปรไฟล์พอดี
   แก้ค่าไหนต้องแก้อีกค่าตามด้วยเสมอ */
.navbar-toggler{margin-right:6px !important;align-self:flex-start;margin-top:3px !important;}
.navbar-brand img.nav-logo-light,.navbar-brand img.nav-logo-dark{height:52px !important;object-fit:contain;}
@media (min-width:768px){
  .navbar-brand img.nav-logo-light,.navbar-brand img.nav-logo-dark{height:58px !important;}
  /* เฉพาะจอคอม — เมนูตัวแรก (หน้าแรก) ชิดโลโก้เกินไป เว้นให้หายใจ
     ห้ามย้ายออกนอกบล็อกนี้ บนมือถือ .navbar-brand คือแถบรูปโปรไฟล์+ชื่อ ระยะจะเพี้ยนทันที */
  .navbar-brand{margin-right:26px !important;}
}

/* ระยะเว้นใต้แถบบน — ธีมเดิมตั้งไว้ 7.5rem (120px) เผื่อแถบสูงกว่านี้มาก
   ต้องแยกสองค่า: แถบตอนล็อกอินแล้วมีรูปโปรไฟล์กับชื่ออยู่ด้วย จึงสูงกว่าอีกราว 8px
   ถ้าเว้นน้อยกว่าความสูงจริง เนื้อหาบรรทัดแรกจะมุดหายเข้าไปใต้แถบ (แถบทึบแสง) */
body{padding-top:92px !important;}
body.dh-auth{padding-top:108px !important;}
@media (min-width:768px){
  body,body.dh-auth{padding-top:82px !important;}
}

/* ---------- การ์ดน้อง ๆ (ใช้ทั้งหน้าแรกและหน้าโปรไฟล์น้อง) ---------- */
/* ---------- การ์ดน้อง ๆ ---------- */
.home-idol{border-radius:22px !important;overflow:hidden;box-shadow:var(--dh-shadow);
  transition:transform .18s ease,box-shadow .18s ease;margin-bottom:18px;background:var(--dh-card);}
.home-idol-box{border-radius:22px 22px 0 0 !important;background:#E7E9F3 !important;}
/* ธีมเดิมตั้ง width:100%;height:auto รูปที่สัดส่วนไม่ตรงกับกรอบเลยเหลือแถบขาวคาดบน-ล่าง
   (ตอนรูปโหลดไม่ขึ้นจะเห็นแถบนั้นเป็นเส้นคาดหัวการ์ด) ให้ครอปเต็มกรอบไปเลย */
.home-idol-bg{
  width:100% !important;height:100% !important;object-fit:cover;
  top:0 !important;left:0 !important;transform:none !important;
}
.home-idol-des{padding:12px 14px 14px;}
.home-idol-des .des-name{font-size:14.5px;font-weight:800;}
.home-idol-des label{color:var(--dh-muted) !important;font-size:11.5px;}
.home-idol-des .main-loc{color:var(--dh-brand) !important;font-weight:700;}
.home-idol-des .adv_word{font-size:11.5px;color:var(--dh-ink-soft) !important;line-height:1.5;}
.varify-badge{border-radius:999px;}
@media (hover:hover) and (pointer:fine){
  .home-idol:hover{transform:translateY(-3px);box-shadow:var(--dh-shadow-lg);}
}

/* ---------- ไม่เอาขีดเส้นใต้ ----------
   Bootstrap ใส่ text-decoration:underline ให้ <a> ทุกตัวตั้งแต่ v5
   หน้านี้ลิงก์ส่วนใหญ่เป็นการ์ด/ปุ่ม ขีดเส้นใต้ทำให้ดูรก */
a,
.navbar a,
.dh-bottom a,
.dh-search a,
.see-more,
.see-more a,
.category-item,
.home-idol a,
.banner a{text-decoration:none !important;}
a:hover{text-decoration:none !important;}

/* ---------- หัวแถบตอนล็อกอินแล้ว (มือถือ) ----------
   ของเดิมเป็นวงกลม 60px + โลโก้ + ชื่อ ซ้อนกันสูงเกือบ 120px แต่ body เว้นบนไว้ 86px
   เนื้อหาบรรทัดแรกของทุกหน้าเลยมุดเข้าไปอยู่ใต้แถบ ย่อให้เป็นแถวเดียวเตี้ย ๆ */
.navbar-brand .row.hide-desktop{
  /* ชิดบน ไม่ใช่กึ่งกลาง — รูปโปรไฟล์จะได้ขยายลงล่างโดยขอบบนเสมอกับโลโก้
     ถ้าจัดกึ่งกลาง พอรูปโตขึ้นมันจะดันขึ้นบนแล้วแถบสูงขึ้นตาม */
  flex-wrap:nowrap;align-items:flex-start;margin:0 !important;--bs-gutter-x:0;
}
.navbar-brand .row.hide-desktop > .col-3{width:auto !important;flex:none;padding:0 !important;}
.navbar-brand .row.hide-desktop > .col-9{width:auto !important;flex:1;padding:0 0 0 10px !important;}
/* วงกลมโปรไฟล์สูงเกือบเท่าบล็อกโลโก้+ชื่อทางขวา (โลโก้ 38 + ระยะ 3 + ชื่อ ~18 = 59px)
   ห้ามเกิน 59px ไม่งั้นแถบบนสูงขึ้นแล้วเนื้อหาบรรทัดแรกมุดเข้าไปใต้แถบ
   (body.dh-auth เว้นบนไว้ 108px ตายตัว) */
.nav-profile{
  width:56px !important;height:56px !important;margin:3px 0 0 !important;
  box-shadow:0 4px 12px rgba(38,36,75,.10) !important;
}
.nav-profile img{width:100% !important;height:100% !important;object-fit:cover;}
.nav-info{display:flex !important;flex-direction:column;align-items:flex-start;}
/* ต้องเจาะจงกว่ากฎ .navbar-brand img.nav-logo-light ที่ตั้งไว้ 52px ไม่งั้นแถบจะสูงเท่าเดิม */
.navbar-brand .nav-info img.nav-logo-light,
.navbar-brand .nav-info img.nav-logo-dark{
  width:auto !important;height:38px !important;margin:0 !important;
  object-fit:contain;object-position:left;
}
.nav-info .name{
  font-size:14px !important;line-height:1.3 !important;font-weight:600;
  margin-top:3px !important;color:var(--dh-muted) !important;
}

/* ==========================================================================
   ท้ายหน้ามาตรฐาน (ทุกหน้ายกเว้นหน้าแรกที่มีท้ายหน้าของตัวเอง)
   ของเดิมเป็นแถบดำทึบเต็มความกว้าง ตัดกับพื้นเทาอ่อนของธีมใหม่แรงเกินไป
   ========================================================================== */
/* ท้ายหน้าติดขอบล่างเสมอ — หน้าที่เนื้อหาสั้น (เปลี่ยนรหัสผ่าน, ไม่พบข้อมูล) ท้ายหน้าจะลอยกลางจอ
   ใช้ position:sticky + top:100vh ดันลงล่าง
   ห้ามทำ body เป็น flex เด็ดขาด — หน้าล็อกอิน/สมัครจัดเลย์เอาต์เองทั้งหน้า
   พอ body กลายเป็น flex container กล่องข้างในจะหดเหลือเท่าเนื้อหา หน้าเลยเพี้ยนทั้งหน้า */
footer,footer.container-fluid{position:sticky;top:100vh;}
footer{margin-top:40px !important;background:transparent !important;}
.footer{
  background:transparent !important;color:var(--dh-muted) !important;
  border-top:1px solid var(--dh-line);
  padding:20px 0 calc(34px + env(safe-area-inset-bottom)) !important;
  font-size:11.5px;gap:6px;
}
.footer img{width:13px !important;margin:0 !important;opacity:.55;}

/* ==========================================================================
   หัวเรื่องหน้า
   ========================================================================== */
.head-third{
  color:var(--dh-ink) !important;font-weight:800 !important;font-size:21px !important;
  margin:6px 0 18px !important;letter-spacing:-.2px;
}
.dh-sect{font-size:15px;font-weight:700;color:var(--dh-ink);margin:24px 2px 10px;}

/* กล่องเนื้อหามาตรฐาน — ใช้ซ้ำได้ทุกหน้า */
.dh-panel{
  background:var(--dh-card);border-radius:22px;padding:20px 18px;
  box-shadow:var(--dh-shadow);
}
@media (min-width:768px){ .dh-panel{padding:26px 26px;} }

/* ==========================================================================
   ปุ่ม
   หมายเหตุสำคัญ: ห้ามเขียนกฎ padding/border-radius แบบกว้าง ๆ ที่ .btn-idol
   ปุ่ม "นัดเลย" ในแบนเนอร์หน้าแรกใช้คลาสนี้ร่วมกันและพึ่งพาขนาดเดิมอยู่
   ตรงนี้จึงแตะสีอย่างเดียวแบบกว้าง ส่วนรูปทรงระบุเป็นรายหน้า
   ========================================================================== */
.btn-idol,.btn-idol-third,.btn-idol-second{
  color:#fff !important;border:none !important;
}
.btn-idol,.btn-idol-third{
  background:var(--dh-grad) !important;
  box-shadow:0 8px 20px rgba(255,78,107,.28) !important;
}
.btn-idol-second{
  background:var(--dh-card) !important;color:var(--dh-ink) !important;
  border:1.5px solid var(--dh-line) !important;
  box-shadow:0 6px 16px rgba(38,36,75,.07) !important;
}
.btn-idol:hover,.btn-idol-third:hover{filter:brightness(1.04);color:#fff !important;}
.btn-idol-second:hover{color:var(--dh-ink) !important;border-color:var(--dh-brand) !important;}

/* รูปทรงปุ่ม — เฉพาะหน้าที่ไม่ใช่แบนเนอร์หน้าแรก */
.profile-idol .btn-idol,.profile-idol .btn-idol-second,
.appointcurday .btn-idol,.appointment-wrapper .btn-idol,
.refill .btn-idol,.refill .btn-idol-third,
.under-construct .btn-idol-third,.register-page .btn-idol,
.change-password .btn-idol-third,.term-condition .btn-idol,
main > .container .btn-idol-third,.dh-panel .btn-idol-third,
form .btn-idol-third,form .btn-idol{
  border-radius:999px !important;line-height:1.4 !important;
  padding:12px 26px !important;font-size:15px !important;font-weight:700 !important;
}
.btn-center-save{width:100% !important;max-width:320px;margin:0 auto !important;}
.btn-lg-1,.btn-lg-2{--bs-btn-font-size:15px;--bs-btn-padding-y:12px;--bs-btn-padding-x:26px;}

/* ลิงก์ "กลับหน้าแรก" ท้ายหน้าโปรไฟล์ */
.backto-home{
  color:var(--dh-ink) !important;font-size:14px !important;font-weight:600;
  margin:30px auto 10px !important;background:var(--dh-card);border-radius:999px;
  padding:11px 0;box-shadow:var(--dh-shadow);max-width:260px;
}
.backto-home img{width:13px !important;margin:0 8px 0 0 !important;opacity:.8;}

/* ==========================================================================
   ฟอร์ม — ของเดิมเป็นกรอบฟ้า #bbcdf7 พื้นเทาอมฟ้า ป้ายลอยสีม่วง #67679e
   ========================================================================== */
.idol-input-box input,
.idol-input-box textarea,
.idol-input-box select,
.idol-input-box .region,
.idol-check-group .region{
  border:1.5px solid var(--dh-line) !important;border-radius:14px !important;
  background-color:var(--dh-bg) !important;color:var(--dh-ink) !important;
  padding:12px 15px !important;font-size:14px !important;box-shadow:none !important;
}
.idol-input-box .full-round,.idol-input-box input.full-round{border-radius:999px !important;}
.idol-input-box label,.idol-check-group .head-label{
  position:static !important;display:block;
  background:none !important;padding:0 0 6px 4px !important;
  color:var(--dh-muted) !important;font-size:11.5px !important;font-weight:600;
}
.idol-input-box ::placeholder{color:#B9BDCF !important;opacity:1 !important;}
.form-control:focus,.form-select:focus,
.idol-input-box input:focus,.idol-input-box select:focus,.idol-input-box textarea:focus{
  border-color:#FF8E3C !important;background:#fff !important;
  box-shadow:0 0 0 .2rem rgba(255,107,44,.14) !important;outline:none !important;
}
.idol-input-box input[readonly]{background:#F1F2F8 !important;color:var(--dh-muted) !important;}

/* เลือกค่าจากประวัติที่เคยพิมพ์ Chrome จะทาพื้นหลังฟ้าให้เอง override background ตรง ๆ ไม่ได้
   ต้องกลบด้วย box-shadow inset แล้วหน่วง transition ยาว ๆ ให้สีพื้นของเบราว์เซอร์ไม่มีโอกาสวาด */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active,
select:-webkit-autofill,
textarea:-webkit-autofill{
  -webkit-text-fill-color:var(--dh-ink) !important;caret-color:var(--dh-ink);
  box-shadow:0 0 0 1000px var(--dh-bg) inset !important;
  -webkit-box-shadow:0 0 0 1000px var(--dh-bg) inset !important;
  transition:background-color 600000s 0s,color 600000s 0s !important;
}
/* ช่องที่พื้นเป็นสีขาวอยู่แล้ว ให้กลบด้วยขาว ไม่งั้นจะเห็นเป็นแถบเทาในกรอบขาว */
.border-idol-gradient input:-webkit-autofill,
.profile-placesearch input:-webkit-autofill{
  box-shadow:0 0 0 1000px #fff inset !important;
  -webkit-box-shadow:0 0 0 1000px #fff inset !important;
}

/* กรอบไล่สีของเดิม (หน้าสมัคร/ข้อกำหนด) — ทำให้เป็นการ์ดขาวเรียบ */
.border-idol-gradient{
  border:1.5px solid var(--dh-line) !important;border-radius:18px !important;
  background:var(--dh-card) !important;margin-right:0 !important;
  box-shadow:var(--dh-shadow);
}
.border-idol-gradient:before,.border-idol-gradient-type2:before{display:none !important;}
.border-idol-gradient .form-control{border-radius:14px !important;background:var(--dh-bg) !important;}

/* ---------- ดรอปดาวน์ที่วาดเอง (public/js/dh-select.js) ----------
   ชุดเดียวกับแอปฝั่งเด็ก — <select> ของ macOS/iOS สั่ง CSS ไม่ได้เลย */
select.dh-sel-native{display:none !important;}
.fsel-btn{
  display:flex;align-items:center;gap:8px;cursor:pointer;
  border:1.5px solid var(--dh-line);border-radius:14px;background:var(--dh-bg);
  padding:12px 15px;font-size:14px;color:var(--dh-ink);
  transition:border-color .15s ease,background .15s ease;
}
.fsel-btn:hover,.fsel-btn:focus{border-color:#FF8E3C;outline:none;}
.fsel-btn .v{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.fsel-btn .v.ph{color:#B9BDCF;}
.fsel-btn svg{flex:none;color:#B9BDCF;}
#fselPop{
  position:fixed;z-index:1200;background:#fff;border-radius:16px;display:none;
  box-shadow:0 18px 44px rgba(38,36,75,.22);border:1px solid #EDEFF7;overflow:hidden;
  font-family:'Prompt',sans-serif;
}
#fselPop.show{display:flex;flex-direction:column;}
#fselPop .hd{padding:10px 12px;border-bottom:1px solid #F1F2F8;flex:none;}
#fselPop .hd input{
  width:100%;border:none;outline:none;font-family:'Prompt',sans-serif;
  font-size:14px;color:var(--dh-ink);background:transparent;
}
#fselPop .list{overflow-y:auto;-webkit-overflow-scrolling:touch;}
#fselPop .it{
  padding:11px 15px;font-size:14px;color:var(--dh-ink);cursor:pointer;border-bottom:1px solid #F7F8FC;
}
#fselPop .it:last-child{border-bottom:none;}
#fselPop .it:hover{background:#F6F7FB;}
#fselPop .it.on{background:#FFF3EC;color:#E4551B;font-weight:700;}
#fselPop .empty{padding:16px;text-align:center;color:#B9BDCF;font-size:13px;}
#fselBack{position:fixed;inset:0;z-index:1199;display:none;}
#fselBack.show{display:block;}

/* ---------- แผนที่ในหน้าแก้ไขข้อมูล ----------
   ปุ่มมาตรฐานของ Google ถูกปิดใน gmap.js แล้ว ตรงนี้เป็นปุ่มที่วาดเองให้เข้าธีม */
.dh-map-wrap{position:relative;margin-bottom:12px;}
.dh-map-types{position:absolute;left:12px;top:12px;display:flex;gap:6px;z-index:2;}
.dh-map-types span{
  background:rgba(255,255,255,.72);border-radius:9px;padding:5px 12px;
  font-size:11.5px;font-weight:600;color:var(--dh-muted);cursor:pointer;
  box-shadow:0 2px 8px rgba(0,0,0,.08);transition:all .15s ease;
}
.dh-map-types span.on{background:#fff;color:var(--dh-ink);}
.dh-map-locate{
  position:absolute;right:12px;bottom:12px;z-index:2;cursor:pointer;
  width:38px;height:38px;border-radius:12px;background:#fff;color:var(--dh-brand);
  display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.12);
}
.dh-map-locate:active{transform:scale(.96);}

/* ช่องค้นหาที่อยู่ (แก้ไขข้อมูล / นัดหมาย) */
.profile-placesearch{
  display:flex;align-items:center;gap:8px;
  border:1.5px solid var(--dh-line);border-radius:999px;background:var(--dh-bg);
  padding:0 15px;
}
.profile-placesearch .ico{flex:none;color:#A5A9BF;}
.profile-placesearch input{
  flex:1;min-width:0;border:none !important;border-radius:0 !important;background:transparent !important;
  /* atom.css ใส่ margin บน-ล่างช่องละ 10px ไว้ที่ input ตัวนี้ ความสูงส่วนเกินมาจากตรงนั้น
     ไม่ใช่ padding ถ้าไม่ล้าง margin ต่อให้ลด padding ยังไงกล่องก็ไม่เตี้ยลง */
  margin:0 !important;padding:10px 0 !important;font-size:13.5px !important;line-height:1.5 !important;
  box-shadow:none !important;height:auto !important;min-height:0 !important;
}
.profile-placesearch input:focus{box-shadow:none !important;background:transparent !important;}
.profile-placesearch:focus-within{border-color:#FF8E3C;background:#fff;}
.profile-placesearch img{width:18px;opacity:.6;}

/* ---------- กล่องผลค้นหาที่อยู่ของ Google Places ----------
   Google แปะกล่องนี้ไว้ที่ <body> โดยตรงและมาพร้อมสไตล์ของตัวเอง (ขอบเหลี่ยม ฟอนต์ระบบ)
   จัดธีมได้แค่ผ่านคลาส .pac-* เท่านั้น แต่ห้ามซ่อนโลโก้ Google ท้ายกล่อง เป็นเงื่อนไขการใช้ API */
.pac-container{
  border:none !important;border-radius:16px !important;
  box-shadow:0 16px 40px rgba(38,36,75,.18) !important;
  margin-top:6px !important;padding:6px !important;
  font-family:'Prompt',sans-serif !important;background:#fff !important;z-index:9999 !important;
}
.pac-container:after{margin:2px 8px 4px !important;opacity:.55;}
.pac-item{
  border:none !important;border-radius:11px !important;padding:9px 10px !important;
  font-size:12.5px !important;color:var(--dh-muted) !important;line-height:1.45 !important;
  cursor:pointer !important;
}
.pac-item:hover,.pac-item-selected{background:#F6F7FB !important;}
.pac-item-query{font-size:13px !important;font-weight:600 !important;color:var(--dh-ink) !important;}
.pac-matched{font-weight:700 !important;color:var(--dh-brand) !important;}
.pac-icon{margin-top:2px !important;margin-right:8px !important;}

/* ปุ่มโครงร่าง (ใช้ตำแหน่งปัจจุบัน) และปุ่ม LINE */
.dh-outline-btn{
  display:flex;align-items:center;justify-content:center;gap:8px;margin-top:10px;
  background:var(--dh-card);border:1.5px solid var(--dh-line);border-radius:999px;
  padding:10px 0;font-size:13.5px;font-weight:600;color:var(--dh-brand) !important;
  text-decoration:none !important;cursor:pointer;transition:border-color .15s ease;
}
.dh-outline-btn:hover{border-color:var(--dh-brand);}
.dh-line-btn{
  display:flex;align-items:center;justify-content:center;gap:9px;width:100%;
  background:#06C755;color:#fff !important;border:none;border-radius:999px;
  padding:13px 0;font-size:15px;font-weight:700;text-decoration:none !important;
  box-shadow:0 8px 20px rgba(6,199,85,.28);
}
.dh-line-btn:hover{filter:brightness(1.04);color:#fff !important;}

/* dropdown ของ chosen */
.chosen-container-single .chosen-single{
  background:var(--dh-bg) !important;border:1.5px solid var(--dh-line) !important;
  border-radius:14px !important;box-shadow:none !important;height:auto !important;
  padding:12px 15px !important;color:var(--dh-ink) !important;line-height:1.4 !important;
}
.chosen-container .chosen-drop{
  border:1px solid var(--dh-line) !important;border-radius:16px !important;overflow:hidden;
  box-shadow:0 18px 44px rgba(38,36,75,.16) !important;margin-top:5px;
}
.chosen-container .chosen-results li.highlighted{background:var(--dh-grad) !important;color:#fff !important;}
.chosen-container-single .chosen-search input[type="text"]{
  border:1.5px solid var(--dh-line) !important;border-radius:10px !important;background-image:none !important;
}

/* ปฏิทินเลือกเวลา */
.xdsoft_datetimepicker{border:none !important;border-radius:16px !important;
  box-shadow:0 18px 44px rgba(38,36,75,.18) !important;padding:8px !important;}
.xdsoft_datetimepicker .xdsoft_time_box > div > div.xdsoft_current{
  background:var(--dh-brand) !important;box-shadow:none !important;}

/* ป้ายหัวข้อย่อยในการ์ดฟอร์ม + ปุ่มท้ายฟอร์ม */
.dh-sub-title{
  display:block;font-size:14px;font-weight:700;color:var(--dh-ink);margin-bottom:12px;
}
.dh-form-btn{margin-top:14px !important;}
.profile-map{
  height:246px;border-radius:16px !important;overflow:hidden;margin-bottom:0;background:#E9EDE6;
}
.profile-placesearch{position:relative;}
.profile-placesearch img{position:absolute;right:16px;top:50%;transform:translateY(-50%);}

/* ==========================================================================
   Modal — ของเดิมมีขอบไล่สีวาดด้วย :before
   ========================================================================== */
.modal-content{
  background:var(--dh-bg) !important;border:none !important;border-radius:26px !important;
  box-shadow:0 24px 60px rgba(38,36,75,.24) !important;
}
.modal-content:before{display:none !important;}
.modal-header,.modal-footer{border:none !important;padding:16px 18px 6px !important;}
.modal-footer{padding:6px 18px 18px !important;}
.modal-body{padding:6px 16px 8px !important;}
.modal-footer .btn-secondary{
  background:var(--dh-card) !important;color:var(--dh-ink) !important;
  border:1.5px solid var(--dh-line) !important;border-radius:999px !important;
  padding:10px 26px !important;font-weight:600 !important;
}
.btn-close{opacity:.5;}

/* ==========================================================================
   SweetAlert2 — ชุดเดียวกับหน้าเข้าสู่ระบบและหน้าสมัคร
   ========================================================================== */
.swal2-popup{font-family:'Prompt',sans-serif!important;border-radius:24px!important;padding:26px 22px 22px!important;}
.swal2-title{font-size:18px!important;font-weight:700!important;color:var(--dh-ink)!important;}
.swal2-html-container{font-size:13px!important;color:var(--dh-muted)!important;}
.swal2-actions{gap:8px!important;margin-top:18px!important;width:100%!important;padding:0 4px!important;}
.swal2-styled{font-family:'Prompt',sans-serif!important;font-size:14px!important;font-weight:700!important;
  border-radius:13px!important;padding:11px 22px!important;margin:0!important;box-shadow:none!important;}
.swal2-styled:focus{box-shadow:none!important;}
.swal2-confirm{background:var(--dh-grad)!important;color:#fff!important;box-shadow:0 8px 18px rgba(255,78,107,.3)!important;}
.swal2-deny,.swal2-cancel{background:#F1F2F8!important;color:var(--dh-ink-soft)!important;}
.swal2-icon.swal2-success{border-color:#1FA971!important;color:#1FA971!important;}
.swal2-icon.swal2-success .swal2-success-ring{border-color:rgba(31,169,113,.3)!important;}
.swal2-icon.swal2-success [class^=swal2-success-line]{background-color:#1FA971!important;}
.swal2-icon.swal2-error{border-color:#E5484D!important;color:#E5484D!important;}
.swal2-icon.swal2-error [class^=swal2-x-mark-line]{background-color:#E5484D!important;}
.swal2-icon.swal2-warning{border-color:#F59E0B!important;color:#F59E0B!important;}

/* ==========================================================================
   ตาราง (หน้าบัญชี/ถอนเงิน)
   ========================================================================== */
.table{--bs-table-bg:transparent;color:var(--dh-ink);font-size:13.5px;}
.table > :not(caption) > * > *{border-color:var(--dh-line) !important;padding:12px 10px !important;}
.table thead th{color:var(--dh-muted) !important;font-size:11.5px;font-weight:600;text-transform:none;}

/* แผนที่เบลอ (ยังไม่ล็อกอิน) */
.map-blur-profile label{
  background:rgba(255,255,255,.92);border-radius:999px;padding:9px 18px;
  font-size:12.5px;font-weight:600;color:var(--dh-ink);
  box-shadow:0 6px 18px rgba(38,36,75,.12);max-width:88%;line-height:1.5;
}
.profile-map,.work-map,.app-map,#map{border-radius:20px !important;overflow:hidden;}

/* ==========================================================================
   หน้าโปรไฟล์น้อง /idol/:id
   ========================================================================== */
.profile-idol{margin-top:4px;}
.profile-idol-box{border-radius:24px !important;box-shadow:var(--dh-shadow);}
.nav-idol-box{border-radius:14px !important;margin:0 6px !important;}
.slide-container{padding:0 !important;}
.slider-nav{width:100% !important;margin:12px auto 0 !important;}
.slick-prev,.slick-next{z-index:4;}
.slick-prev{left:2px !important;}
.slick-next{right:2px !important;}
.profile-idol .idol-status{top:12px !important;left:14px;}
.profile-idol .status-icon{height:26px !important;}

/* กล่องข้อมูลฝั่งขวา */
.dh-idol-card{
  background:var(--dh-card);border-radius:24px;padding:18px 18px 20px;
  box-shadow:var(--dh-shadow);margin-top:16px;
}
.profile-idol .idol-name{
  font-size:22px !important;font-weight:800 !important;margin:0 !important;letter-spacing:-.3px;
}
.profile-idol .adv-word{
  color:var(--dh-muted) !important;font-size:12.5px !important;line-height:1.6;
  display:block;margin-top:3px;
}
.profile-idol .des-location{margin-top:12px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.profile-idol .des-location .pin{width:15px !important;margin-right:2px;}
.profile-idol .des-btn{
  box-shadow:none !important;border-radius:999px !important;margin:0 !important;
}
.profile-idol .des-btn label{
  background:var(--dh-bg) !important;color:var(--dh-ink-soft) !important;
  border:1px solid var(--dh-line);border-radius:999px !important;
  padding:5px 12px !important;font-size:12px !important;font-weight:600;
}
.profile-idol .des-btn label.main-loc{
  background:#FFF1E8 !important;color:#FF6B2C !important;border-color:#FFD9C2;
}
.profile-idol .des-btn .gender{width:14px !important;margin-right:5px;}

/* แถวข้อมูลตัวเลข (ราคา/โซน/ส่วนสูง/สัดส่วน) */
.dh-idol-specs{margin-top:14px;border-top:1px solid var(--dh-line);padding-top:4px;}
.dh-idol-specs .r{display:flex;gap:12px;padding:9px 0;border-bottom:1px solid var(--dh-line);}
.dh-idol-specs .r:last-child{border-bottom:none;}
.dh-idol-specs .k{flex:none;width:104px;font-size:12px;color:var(--dh-muted);font-weight:600;}
.dh-idol-specs .v{flex:1;font-size:13px;color:var(--dh-ink);font-weight:600;line-height:1.5;}
.dh-idol-specs .v.price{color:var(--dh-brand);font-weight:800;font-size:15px;}

.profile-idol .rating-zone{margin-top:14px !important;}
.profile-idol .rating-zone .varify{background:none !important;border-radius:999px !important;}
.profile-idol .rating-zone .varify .bg{
  background:#E9F7EF !important;color:#1FA971 !important;border:none !important;
  border-radius:999px !important;padding:6px 14px 6px 10px !important;
  display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;
}
.profile-idol .rating-zone .varify img{width:16px !important;}
.profile-idol .detail{
  font-size:15px !important;font-weight:700 !important;margin-top:18px !important;display:block;
}
.profile-idol .dh-idol-card > p{font-size:13px;color:var(--dh-ink-soft);line-height:1.7;margin:6px 0 0;}
.profile-idol .dh-sub{
  font-size:11.5px !important;font-weight:600;color:var(--dh-muted);display:block;margin-bottom:10px;
}
.profile-idol .work-map{
  position:relative;margin-top:0 !important;min-height:0 !important;height:210px;
  border-radius:16px;overflow:hidden;background:#E7E9F3;
}
/* รูปโปรไฟล์: ของเดิม width:auto ทำให้รูปแนวตั้งเหลือขอบขาวสองข้าง */
.profile-idol-bg,.nav-idol-bg{
  width:100% !important;height:100% !important;object-fit:cover;
}
.profile-idol .work-map .map-blur-profile{
  position:absolute;inset:0;height:auto !important;padding-top:0 !important;margin:0 !important;
}
.profile-idol .work-map .map-blur-profile img{
  position:absolute;inset:0;transform:none;width:100% !important;height:100% !important;object-fit:cover;
}

/* รูปใหญ่/รูปย่อ — ล้าง margin ติดลบของ .row ไม่ให้รูปทะลุออกนอกจอ */
.profile-idol .slider-for,.profile-idol .slider-nav{
  margin-left:0 !important;margin-right:0 !important;width:100% !important;
}
.profile-idol .slider-for > div,.profile-idol .slider-for .slick-slide > div,
.profile-idol .slider-nav > div,.profile-idol .slider-nav .slick-slide > div{
  padding-left:0 !important;padding-right:0 !important;
}
.profile-idol-box{margin:0 !important;}
.nav-idol-box{margin:0 5px !important;}
.idol-profile-more-interest{
  font-size:17px !important;font-weight:800 !important;margin:34px 2px 14px !important;
}
/* ปุ่มนัด/ตารางงาน */
.profile-idol .appnow,.profile-idol .carlendar-btn{
  width:100%;display:block;margin-top:16px;
}
.profile-idol .carlendar-btn{padding-right:26px !important;position:relative;}
.profile-idol .carlendar-btn img{
  position:absolute;right:18px;top:50%;transform:translateY(-50%);height:18px !important;
}
@media (min-width:992px){
  .profile-idol .appnow,.profile-idol .carlendar-btn{display:inline-block;width:auto;min-width:190px;}
  .profile-idol .carlendar-btn{margin-left:10px;}
}

/* ==========================================================================
   ป็อปอัพนัดหมาย (appointcurday)
   ========================================================================== */
.appointcurday .modal-content{background:var(--dh-bg) !important;}
.appointcurday .modal-title img{width:150px !important;}
.appointment-wrapper{padding:0 !important;}
.appointcurday .package-holder,
.appointcurday .date-holder,
.appointcurday .time-holder,
.appointcurday .map-holder{
  border:none !important;border-radius:20px !important;background:var(--dh-card) !important;
  box-shadow:var(--dh-shadow);padding:16px !important;
}
.appointcurday .package-holder{width:100%;margin:12px 0 0;}
/* ช่อง "ข้อมูลติดต่อ" เป็นช่องลอย ๆ อยู่ช่องเดียว ครอบการ์ดให้เข้าชุดกับกล่องอื่น */
.appointcurday .idol-input-box{
  background:var(--dh-card);border-radius:20px;padding:16px;box-shadow:var(--dh-shadow);
}
.appointcurday .idol-input-box > label{
  color:var(--dh-ink) !important;font-size:14px !important;font-weight:700 !important;
  padding-bottom:10px !important;
}
.appointcurday .package-holder-head,
.appointcurday .date-holder-head,
.appointcurday .time-holder-head,
.appointcurday .map-holder-head{
  position:static !important;background:none !important;padding:0 0 10px 2px !important;
  color:var(--dh-ink) !important;font-size:14px !important;font-weight:700 !important;display:block;
}
.appointcurday .package-holder .package-item{
  opacity:1 !important;background:var(--dh-bg) !important;border:1.5px solid var(--dh-line);
  border-radius:16px !important;padding:13px 15px !important;margin-bottom:9px;cursor:pointer;
  transition:all .18s ease;
}
.appointcurday .package-holder .package-item.active{
  border-color:transparent;background:#FFF6F0 !important;
  box-shadow:0 8px 20px rgba(255,107,44,.16);
}
.appointcurday .package-holder .form-check-label{
  color:var(--dh-ink) !important;font-size:15px !important;font-weight:700 !important;display:block;
}
.appointcurday .package-holder .package-item.active .form-check-label{color:var(--dh-brand) !important;}
.appointcurday .package-holder .info{
  display:block;font-size:12px !important;color:var(--dh-brand);font-weight:600;margin-top:2px;
}
.appointcurday .package-holder p{font-size:12px !important;color:var(--dh-muted);margin-top:4px !important;}
/* กริดชัดเจนกว่า flex-wrap: วัน/เดือน/ปี ถูกล็อกให้อยู่แถวเดียวเสมอ ไม่ว่าคำจะยาวแค่ไหน */
.appointcurday .date-holder{
  width:100% !important;display:grid !important;
  grid-template-columns:70px minmax(0,1fr) 84px;gap:7px;align-items:center;
}
.appointcurday .date-holder-head{grid-column:1 / -1;}
.appointcurday .time-holder{width:100% !important;display:block !important;margin-top:12px;}
.appointcurday .date-holder select{
  background:var(--dh-bg) !important;border:1.5px solid var(--dh-line) !important;
  border-radius:12px !important;font-size:13.5px !important;padding:11px 12px !important;
  color:var(--dh-ink) !important;
}
/* วัน/เดือน/ปี ต้องอยู่บรรทัดเดียวกัน ของเดิมใช้ % + margin รวมเกิน 100% เลยตกบรรทัด
   ตัว <select> ถูกซ่อนแล้ว (dh-select.js) ที่เรียงจริงคือปุ่ม .fsel-btn ที่แทรกต่อท้าย */
.appointcurday .date-holder .fsel-btn{padding:11px 10px;font-size:13.5px;min-width:0;gap:4px;}
.appointcurday #appstart{
  background:var(--dh-bg) !important;border:1.5px solid var(--dh-line) !important;
  border-radius:12px !important;font-size:13.5px !important;padding:11px 14px !important;
}
.appointcurday .map-holder{margin-top:12px;}
.appointcurday .map-holder .btn-idol{
  background:var(--dh-card) !important;color:var(--dh-ink) !important;
  border:1.5px solid var(--dh-line) !important;box-shadow:none !important;font-size:14px !important;
}
.appointcurday .map-holder #map{min-height:260px !important;border-radius:16px;overflow:hidden;}
.appointcurday .btn-center-save{margin-top:14px !important;}

/* ==========================================================================
   แดชบอร์ด /profile/appointment
   ========================================================================== */
.accounting-banner{
  background-image:none !important;background:var(--dh-grad) !important;
  border-radius:24px !important;padding:20px 20px 18px !important;margin:0 !important;
  box-shadow:0 16px 34px rgba(255,78,107,.28) !important;position:relative;overflow:hidden;
}
.accounting-banner .banner-img-head{width:112px !important;opacity:.9;}
.accounting-banner .banner-img-bot{display:none !important;}
.accounting-banner .name{
  margin-top:14px !important;font-size:18px !important;font-weight:700 !important;line-height:1.3 !important;
}
.accounting-banner .number{font-size:11.5px !important;opacity:.85;margin-top:2px !important;}
.accounting-banner .amount-head{margin-top:18px !important;font-size:11.5px !important;opacity:.85;}
.accounting-banner .amount{
  width:auto !important;font-size:30px !important;font-weight:800 !important;
  line-height:1.2 !important;margin-top:2px !important;letter-spacing:-.5px;
}

/* ไทล์เมนู — แถวเดียว 5 ปุ่ม */
.menu-button-holder{
  flex-wrap:nowrap;gap:7px;margin-top:20px;justify-content:space-between;
}
.menu-button-holder .menu-button{
  flex:1 1 0;min-width:0;width:auto !important;margin:0 !important;
  background:var(--dh-card);border-radius:16px;padding:11px 3px 9px;
  box-shadow:var(--dh-shadow);align-items:center;
}
/* ไอคอนไทล์เป็น SVG เส้นในกรอบสีอ่อน (สีกำหนดเป็น inline style รายไทล์) */
.menu-button-holder .menu-button .img-holder{
  filter:none !important;border-radius:13px !important;
  width:40px !important;height:40px !important;padding:0 !important;
}
.menu-button-holder .menu-button .img-holder svg{width:20px;height:20px;}
.menu-button-holder .menu-button p{
  color:var(--dh-ink-soft) !important;font-size:10px !important;font-weight:600 !important;
  margin-top:7px !important;line-height:1.3;
}
@media (min-width:768px){
  .menu-button-holder{gap:10px;justify-content:center;}
  .menu-button-holder .menu-button{flex:0 0 110px;padding:14px 6px 12px;}
  .menu-button-holder .menu-button p{font-size:11.5px !important;}
}

/* แถบสถานะการนัด — ยกแบบ .tabrow ของแอปฝั่งเด็กมา
   ตัวที่เลือกอยู่กึ่งกลางจอเสมอ ตัวที่ไกลออกไปจางลง กดแล้วเลื่อนมาเข้ากลาง
   padding ซ้าย-ขวาเป็น calc(50% - ครึ่งชิป) เพื่อให้ชิปตัวแรก/ตัวสุดท้ายเลื่อนมากลางได้ */
.appointment-type{
  display:flex !important;gap:8px;overflow-x:auto;scrollbar-width:none;
  scroll-behavior:smooth;scroll-snap-type:x proximity;
  /* overflow-x:auto ทำให้แกนตั้งกลายเป็น auto ไปด้วยตามสเปก เงาใต้ปุ่มเลยโดนขอบกล่องตัดเป็นเส้นตรง
     ต้องเผื่อ padding ล่างให้เงาฟุ้งได้เต็ม (offset 8 + ครึ่งของ blur 18 = 17px) แล้วหักกลับด้วย
     margin ติดลบ ระยะห่างที่ตาเห็นจะได้เท่าเดิม */
  margin:20px -12px -8px !important;padding:10px calc(50% - 62px) 22px !important;
}
.appointment-type::-webkit-scrollbar{display:none;}
.appointment-type a{
  flex:none;width:124px;display:flex;align-items:center;justify-content:center;
  color:var(--dh-muted) !important;font-size:13px !important;font-weight:600 !important;
  height:auto !important;padding:9px 8px !important;margin:0 !important;
  border-radius:999px;background:var(--dh-card);white-space:nowrap;scroll-snap-align:center;
  box-shadow:0 4px 12px rgba(38,36,75,.05);opacity:.9;transition:all .22s ease;
}
.appointment-type a.far{opacity:.45;}
.appointment-type a.on{
  opacity:1;color:#fff !important;background:var(--dh-grad);font-weight:700 !important;
  box-shadow:0 8px 18px rgba(255,78,107,.3);
}
/* เนื้อหาสไลด์ตามตอนสลับสถานะ */
#accordion{transition:transform .18s ease-out,opacity .18s ease-out;will-change:transform,opacity;}
@media (prefers-reduced-motion:reduce){
  .appointment-type{scroll-behavior:auto;}
  #accordion{transition:none;}
}

/* ไม่มีรายการในสถานะที่เลือก — ของเดิมโชว์พื้นที่ว่างเปล่า ไม่รู้ว่าโหลดไม่ขึ้นหรือไม่มีจริง */
.dh-empty-list{
  background:var(--dh-card);border-radius:18px;box-shadow:var(--dh-shadow);
  padding:26px 20px;text-align:center;color:var(--dh-muted);font-size:12.5px;margin-top:6px;
}

/* การ์ดรายการนัด */
.appointment-item-holder{margin-top:6px;}
.appointment-item{
  filter:none !important;border-radius:20px !important;margin-top:14px !important;
  background:var(--dh-card);box-shadow:var(--dh-shadow);overflow:hidden;
}
.appointment-item .accordion-header .accordion-button{
  background:var(--dh-card) !important;padding:15px 40px 12px 16px !important;
}
.appointment-item{
  --bs-accordion-btn-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%238C8C8C'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E");
  --bs-accordion-btn-active-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23FF6B2C'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E");
}
.appointment-item .accordion-header .accordion-button::after{
  right:16px !important;top:18px !important;width:16px;height:16px;background-size:16px;filter:none;
}
/* ชิปสถานะ: ให้สีบอกสถานะได้ทันทีโดยไม่ต้องอ่าน */
.appointment-item .accordion-button p.st-pending{background:#FFF6E0 !important;color:#B8730B !important;border-color:#FFE7B3 !important;}
.appointment-item .accordion-button p.st-confirm{background:#E9F7EF !important;color:#1FA971 !important;border-color:#C9EBD8 !important;}
.appointment-item .accordion-button p.st-complete{background:#E9F7EF !important;color:#1FA971 !important;border-color:#C9EBD8 !important;}
.appointment-item .accordion-button p.st-cancel{background:#FDECEC !important;color:#E5484D !important;border-color:#F8D3D4 !important;}
.appointment-item .accordion-header .accordion-button p{
  filter:none !important;background:var(--dh-bg) !important;color:var(--dh-ink-soft) !important;
  border:1px solid var(--dh-line);border-radius:999px !important;
  padding:4px 11px !important;font-size:11.5px !important;margin:3px 6px 3px 0 !important;font-weight:600;
}
.appointment-item .accordion-header .accordion-button p:first-child{
  background:var(--dh-grad) !important;color:#fff !important;border-color:transparent;
  font-size:13px !important;font-weight:700 !important;padding:5px 14px !important;
}
.appointment-item .accordion-body{padding:4px 16px 16px !important;}
.appointment-item .accordion-body .body-button img{width:118px !important;}
.appointment-item .accordion-body .body-button.gmap img{width:150px !important;}
.appointment-item .app-map{border-radius:16px;overflow:hidden;margin-top:10px;min-height:220px !important;}

/* ==========================================================================
   เติมเงิน /refill
   ========================================================================== */
.refill .req-form,.refill .inter-sec{
  background:var(--dh-card) !important;border-radius:24px !important;
  box-shadow:var(--dh-shadow) !important;padding:22px 20px !important;margin:16px 0 !important;
}
.refill .inter-sec h1,.refill .inter-sec h2,.refill .bank-section h2{
  color:var(--dh-ink) !important;
}
.refill .inter-sec h2{
  font-size:14px !important;font-weight:600 !important;
  display:flex;justify-content:space-between;gap:12px;align-items:baseline;
  padding:11px 0;margin:0;border-bottom:1px solid var(--dh-line);color:var(--dh-muted) !important;
}
.refill .inter-sec h2:last-of-type{border-bottom:none;}
.refill .inter-sec h2 font,.refill .inter-sec h2 b{font-weight:700 !important;font-size:15px;}
.refill .bank-section img{border-radius:20px !important;box-shadow:var(--dh-shadow);}
.refill .bank-section h2{
  font-size:12.5px !important;color:var(--dh-muted) !important;font-weight:600 !important;margin-top:12px !important;
}
.refill .inter-sec .refill-success-logo{max-width:120px !important;}
.refill .inter-sec h1{font-size:19px !important;font-weight:800 !important;margin-top:14px !important;}
.refill .inter-sec .countdown-success,.under-construct .countdown-success{
  font-size:12px;color:var(--dh-muted);margin-top:12px;display:block;
}
.refill .foot-button{margin-top:16px;}
.refill .req-form .btn{width:100% !important;max-width:280px;}

/* ---------- หน้ารอโอนเงิน: บีบให้จบในหน้าเดียว ---------- */
.refill .desc-re{margin-top:0 !important;}
.dh-refill{
  background:var(--dh-card);border-radius:24px;box-shadow:var(--dh-shadow);
  padding:16px 16px 18px;margin:4px 0 0;
}
.dh-refill .qr{text-align:center;cursor:pointer;}
.dh-refill .qr img{
  width:100%;max-width:min(180px,32vh);margin:0 auto;display:block;border-radius:14px;
}
.dh-refill .qr span{display:block;font-size:11px;color:var(--dh-muted);margin-top:5px;}
.dh-refill .amt{
  margin-top:10px;padding:10px 14px;border-radius:16px;background:#FFF6F0;text-align:center;
}
.dh-refill .amt .k{display:block;font-size:11px;font-weight:600;color:var(--dh-muted);}
.dh-refill .amt .v{
  display:block;font-size:25px;font-weight:800;color:var(--dh-brand);
  line-height:1.2;letter-spacing:-.5px;margin-top:1px;
}
.dh-refill .amt .v i{font-style:normal;font-size:15px;font-weight:700;}
.dh-refill .amt .note{display:block;font-size:10.5px;color:#B8730B;margin-top:3px;}
.dh-refill .rows{margin-top:10px;}
.dh-refill .rows .r{
  display:flex;justify-content:space-between;gap:10px;align-items:baseline;
  padding:7px 2px;border-bottom:1px solid var(--dh-line);
}
.dh-refill .rows .r:last-child{border-bottom:none;}
.dh-refill .rows .k{font-size:12px;color:var(--dh-muted);flex:none;}
.dh-refill .rows .v{font-size:13.5px;font-weight:700;color:var(--dh-ink);text-align:right;}
.dh-refill .meta{display:flex;gap:9px;margin-top:8px;}
.dh-refill .meta .m{
  flex:1;background:var(--dh-bg);border-radius:13px;padding:9px 11px;text-align:center;
}
.dh-refill .meta .k{display:block;font-size:10.5px;color:var(--dh-muted);}
.dh-refill .meta .v{display:block;font-size:13.5px;font-weight:700;margin-top:1px;color:var(--dh-ink);}
.dh-refill .meta .v.time{color:var(--dh-brand);}
.dh-refill .foot-button{margin-top:12px;}
.dh-refill .dh-outline-btn{margin-top:9px;font-size:12.5px;padding:11px 0;}

/* ปุ่มรองแบบจาง — ใช้กับงานที่ไม่อยากให้เด่นแข่งกับปุ่มหลัก (เช่น ยกเลิกรายการ) */
.dh-ghost-btn{
  display:block;width:100%;text-align:center;text-decoration:none !important;
  background:var(--dh-bg);border:1.5px solid var(--dh-line);border-radius:999px;
  padding:11px 0;font-size:13.5px;font-weight:600;color:var(--dh-muted) !important;
  cursor:pointer;transition:all .15s ease;
}
.dh-ghost-btn:hover{border-color:#E5484D;color:#E5484D !important;}
/* ตอนทำรายการสำเร็จ JS จะเปลี่ยนปุ่มในกล่องนี้เป็นปุ่ม Bootstrap ธรรมดา */
.foot-button .btn-primary{
  background:var(--dh-grad) !important;border:none !important;border-radius:999px !important;
  padding:12px 26px !important;font-weight:700 !important;box-shadow:0 8px 20px rgba(255,78,107,.28) !important;
}

/* รายการเดินบัญชี */
.accounting-transaction{
  background:var(--dh-card);border-radius:22px;box-shadow:var(--dh-shadow);
  padding:10px 20px 18px !important;margin:8px 0 0 !important;color:var(--dh-ink) !important;
}
.accounting-transaction h2{
  font-size:15px;font-weight:700;margin:12px 0 2px;color:var(--dh-ink);
}
/* เว้นที่ทางขวาไว้ให้ลูกศรทุกแถวเท่ากัน ตัวเลขยอดเงินจะได้ตรงคอลัมน์เดียวกันหมด
   (ถ้าปล่อยลูกศรกินพื้นที่จริง เฉพาะแถวที่กดได้ ตัวเลขจะถูกดันเข้าไปข้างในแถวเดียว) */
.accounting-transaction .transaction-item{
  position:relative;margin-top:0 !important;padding:13px 22px 13px 0;
  border-bottom:1px solid var(--dh-line);
}
.accounting-transaction .transaction-item:last-child{border-bottom:none;}
/* รายการที่ยังรอดำเนินการ กดเปิด QR เดิมขึ้นมาดู/ยกเลิกได้ ต้องให้เห็นว่ากดได้ */
.accounting-transaction .transaction-item.can-open{
  cursor:pointer;margin:0 -12px;padding-left:12px;padding-right:34px;border-radius:14px;
  transition:background .15s ease;
}
.accounting-transaction .transaction-item.can-open:hover{background:var(--dh-bg);}
.accounting-transaction .transaction-item.can-open img{background:#FFF6E0 !important;}
.accounting-transaction .transaction-item .tran-go{
  position:absolute;right:0;top:50%;transform:translateY(-50%);
  margin:0;color:#CFC3BA;display:flex;
}
.accounting-transaction .transaction-item.can-open .tran-go{right:12px;}
.accounting-transaction .transaction-item img{
  width:38px !important;height:38px;flex:none;padding:8px;border-radius:12px;background:#FFF1E8;
}
.accounting-transaction .transaction-item .tran-type{font-size:13.5px !important;font-weight:600 !important;}
.accounting-transaction .transaction-item .tran-date{font-size:11.5px !important;color:var(--dh-muted) !important;}
.accounting-transaction .transaction-item .tran-amount{
  font-size:15px !important;font-weight:800 !important;color:var(--dh-ink);
}

/* ==========================================================================
   ข้อกำหนด / นโยบายความเป็นส่วนตัว
   ========================================================================== */
.term-condition .theme-white{width:auto !important;height:44px;object-fit:contain;}
.term-condition .theme-black{display:none !important;}
.term-condition .detail{
  background:var(--dh-card);border-radius:24px !important;box-shadow:var(--dh-shadow);
  border:none !important;padding:24px 20px !important;margin:0 0 30px !important;
}
.term-condition .detail h1{font-size:21px;font-weight:800;margin-bottom:6px;}
.term-condition .detail h2{font-size:15px;font-weight:700;color:var(--dh-brand);margin:22px 0 10px;}
.term-condition .detail h3{font-size:14px;font-weight:700;margin:18px 0 8px;}
.term-condition .detail p,.term-condition .detail li{
  font-size:13px;line-height:1.85;color:var(--dh-ink-soft);
}
.term-condition .detail ul{padding-left:20px;margin-bottom:16px;}
.term-condition .detail li{margin-bottom:7px;}

/* ==========================================================================
   หน้าเล็ก ๆ: กำลังพัฒนา / สมัครเสร็จ / ไม่พบข้อมูล
   ========================================================================== */
.dh-empty{
  background:var(--dh-card);border-radius:24px;box-shadow:var(--dh-shadow);
  padding:34px 22px 28px;margin:10px auto 0;max-width:420px;text-align:center;
}
.dh-empty .ico{
  width:56px;height:56px;border-radius:18px;margin:0 auto 16px;
  display:flex;align-items:center;justify-content:center;background:#FFF1E8;color:#FF6B2C;
}
.dh-empty .ico.ok{background:#E9F7EF;color:#1FA971;}
.dh-empty .t{font-size:18px;font-weight:800;color:var(--dh-ink);}
.dh-empty .d{font-size:13px;color:var(--dh-muted);line-height:1.7;margin-top:6px;}
.dh-empty .btn{margin-top:20px;width:100%;}
.under-construct .req_form,.register-page .dh-mini,.profile-idol .dh-mini{
  background:var(--dh-card);border-radius:24px;box-shadow:var(--dh-shadow);
  padding:34px 22px;margin:26px auto 0;max-width:420px;text-align:center;
}
.under-construct .logo{max-width:160px !important;margin:0 auto 16px !important;display:block;}
.under-construct .head-third{margin-bottom:20px !important;}
.register-page h1,.register-page h2{font-size:20px;font-weight:800;}

/* ==========================================================================
   กันมือถือซูมเองตอนกดพิมพ์ในช่องกรอก
   Safari บน iOS จะซูมหน้าเข้าอัตโนมัติทุกครั้งที่ focus ช่องที่ฟอนต์เล็กกว่า 16px
   (แล้วมันไม่ซูมกลับให้ด้วย) แก้ได้ทางเดียวคือดันฟอนต์ในช่องกรอกให้ถึง 16px
   ห้ามแก้ด้วย maximum-scale/user-scalable=no ที่ v_meta.ejs เพราะ iOS ไม่สนใจ
   แถมยังล็อกไม่ให้ผู้ใช้ซูมนิ้วเองด้วย
   วางไว้ท้ายไฟล์เพื่อให้ทับ rule ฟอนต์ 13-14px ที่ประกาศไว้ข้างบน (specificity เท่ากันตัวหลังชนะ)
   ========================================================================== */
@media (max-width:991.98px){
  input,textarea,select,
  .form-control,.form-select,
  .idol-input-box input,.idol-input-box textarea,.idol-input-box select,
  .profile-placesearch input,
  #fselPop .hd input,
  #dh-login .field input,
  .chosen-container-single .chosen-search input[type="text"],
  .chosen-container-multi .chosen-choices li.search-field input[type="text"]{
    font-size:16px !important;
  }
}

/* ==========================================================================
   หน้าเติมเงิน — ช่องกรอกจำนวนเอง (ขั้นต่ำ 100) + ปุ่มลัดยอดฮิตเป็นกริดใต้ช่องกรอก
   ========================================================================== */
/* ช่องกรอกจำนวน — เอาลูกศร spinner ของ number ออกให้ดูสะอาด */
.dh-amt-input{text-align:center;font-weight:800 !important;font-size:18px !important;letter-spacing:.3px;}
.dh-amt-input::-webkit-outer-spin-button,
.dh-amt-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.dh-amt-input{-moz-appearance:textfield;}

/* กริดปุ่มลัด — 7 ปุ่มบรรทัดเดียว เล็ก ๆ พอ (ถ้าเปลี่ยนจำนวนค่าใน price_list ต้องแก้เลข 7 ตรงนี้) */
.dh-amt-grid{
  display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-top:12px;
}
.dh-amt-grid .dh-chip{
  border:1.5px solid var(--dh-line);background:var(--dh-card);color:var(--dh-ink);
  font-family:'Prompt',sans-serif;font-weight:700;font-size:11.5px;line-height:1.2;
  padding:8px 1px;border-radius:9px;cursor:pointer;
  transition:transform .1s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease;
}
.dh-amt-grid .dh-chip:active{transform:scale(.96);}
.dh-amt-grid .dh-chip.on{
  background:var(--dh-grad);border-color:transparent;color:#fff;
  box-shadow:0 6px 16px rgba(255,78,107,.26);
}
@media (hover:hover) and (pointer:fine){
  .dh-amt-grid .dh-chip:hover{border-color:var(--dh-brand);color:var(--dh-brand);}
  .dh-amt-grid .dh-chip.on:hover{color:#fff;border-color:transparent;}
}

/* ==========================================================================
   แถบบนเดสก์ท็อป (ล็อกอินแล้ว) — เอาลุคจากดีไซน์ Claude Design มาใช้ "เฉพาะคอม"
   ทุก rule อยู่ใน @media (min-width:768px) ทั้งหมด มือถือจึงไม่ได้รับผลใด ๆ
   markup ฝั่งขวาอยู่ใน .navbar-static.hide-mobile (ซ่อนบนมือถืออยู่แล้ว)
   ========================================================================== */
/* base ทุกจอ: ดรอปดาวน์บัญชีเดสก์ท็อปต้องซ่อนไว้ก่อน ไม่งั้นช่วงจอ 481-767px
   (ก่อน @media 768 จะทำงาน) มันจะโผล่กางค้างเพราะ position ปกติ */
.dh-desk-pop{display:none;}

@media (min-width:768px){
  /* เมนูซ้ายเป็น pills */
  .navbar .navbar-nav.hide-mobile .nav-link{
    padding:8px 16px !important;border-radius:999px;font-size:14px;font-weight:600;
    color:#55597A !important;transition:background .15s ease,color .15s ease;
  }
  .navbar .navbar-nav.hide-mobile .nav-link:hover{background:#F4F5FA !important;color:var(--dh-ink) !important;}
    /* แถบบนจริงพื้นเทา (ไม่ใช่ขาวเหมือนดีไซน์) พื้นส้มอ่อนเลยกลืน
     ใช้พื้นขาว+ตัวอักษรส้ม+เงาบาง ให้ปุ่มที่เลือกเด้งขึ้นมาจากพื้นเทาแทน */
  .navbar .navbar-nav.hide-mobile .nav-link.dh-on{
    background:#fff !important;color:var(--dh-brand) !important;
    box-shadow:0 3px 10px rgba(38,36,75,.10);
  }

  /* ฝั่งขวา: กล่องเงิน + avatar + ดรอปดาวน์ */
  .dh-desk-user{display:flex;align-items:center;gap:12px;}
  .dh-theme-keep{display:none !important;}

  .dh-desk-money{
    display:flex;align-items:center;gap:8px;background:#fff;border:1.5px solid #E0E2EE;
    border-radius:999px;padding:6px 6px 6px 16px;text-decoration:none !important;
    transition:border-color .15s ease;
  }
  .dh-desk-money:hover{border-color:#FFC9A6;}
  .dh-desk-money .lbl{font-size:13px;font-weight:600;color:#55597A;}
  .dh-desk-money .amt{font-size:14px;font-weight:800;color:var(--dh-brand);white-space:nowrap;}
  .dh-desk-money .add{background:var(--dh-grad);color:#fff;border-radius:999px;padding:5px 13px;font-size:12px;font-weight:700;white-space:nowrap;}

  .dh-desk-acc{position:relative;display:flex;align-items:center;gap:9px;cursor:pointer;padding:5px 8px 5px 5px;border-radius:999px;transition:background .15s ease;}
  .dh-desk-acc:hover{background:#F4F5FA;}
  .dh-desk-acc .av{width:36px;height:36px;border-radius:50%;overflow:hidden;flex:none;box-shadow:0 3px 10px rgba(38,36,75,.12);}
  .dh-desk-acc .av img{width:100%;height:100%;object-fit:cover;}
  .dh-desk-acc .nm{font-size:14px;font-weight:700;color:var(--dh-ink);max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .dh-desk-acc .cv{flex:none;transition:transform .2s ease;}
  .dh-desk-acc.open .cv{transform:rotate(180deg);}

  .dh-desk-acc .dh-desk-pop{
    display:block;
    position:absolute;top:calc(100% + 10px);right:0;width:236px;background:#fff;border-radius:18px;
    padding:8px;box-shadow:0 18px 44px rgba(38,36,75,.16);
    opacity:0;visibility:hidden;transform:translateY(-8px);
    transition:opacity .16s ease,transform .16s ease,visibility .16s ease;z-index:60;
  }
  .dh-desk-acc.open .dh-desk-pop{opacity:1;visibility:visible;transform:translateY(0);}
  .dh-desk-pop .mc{
    margin:2px 2px 6px;background:var(--dh-grad);border-radius:13px;padding:11px 13px;color:#fff;
    display:flex;align-items:center;justify-content:space-between;gap:10px;
  }
  .dh-desk-pop .mc .l{display:flex;flex-direction:column;}
  .dh-desk-pop .mc .k{font-size:10px;opacity:.85;}
  .dh-desk-pop .mc .v{font-size:16px;font-weight:800;}
  .dh-desk-pop .mc .tp{background:rgba(255,255,255,.95);color:#FF4E6B !important;border-radius:999px;padding:6px 12px;font-size:11px;font-weight:700;text-decoration:none !important;flex:none;}
  .dh-desk-pop .it{display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:12px;text-decoration:none !important;color:var(--dh-ink) !important;font-size:13px;font-weight:600;}
  .dh-desk-pop .it:hover{background:#F6F7FB;}
  .dh-desk-pop .it .ic{width:20px;height:20px;flex:none;display:flex;align-items:center;justify-content:center;color:var(--dh-brand);}
  .dh-desk-pop .it.danger{color:#E5484D !important;}
  .dh-desk-pop .it.danger .ic{color:#E5484D;}
}

/* ==========================================================================
   หน้าเติมเงิน เฉพาะเดสก์ท็อป — ช่องเติมแคบลง / ประวัติกว้างขึ้น
   ทั้งบล็อกอยู่ใน @media (min-width:768px) มือถือคงเดิม (คอลัมน์ col-12 เต็มแถว)
   ========================================================================== */
@media (min-width:768px){
  /* สองการ์ดกว้างเท่ากันเป๊ะ ขอบซ้าย/ขวาจะได้ตรงกัน */
  .refill .dh-refill-form,
  .refill .dh-refill-hist{
    flex:0 0 auto !important;width:560px !important;max-width:100% !important;
    margin-left:auto !important;margin-right:auto !important;
  }
  .refill .dh-refill-hist .accounting-transaction{max-width:none !important;}
}

/* ==========================================================================
   หน้าแดชบอร์ด (การนัด) เฉพาะเดสก์ท็อป — จัดทุกส่วนให้เป็นคอลัมน์เดียวกว้างเท่ากัน
   ของเดิมการ์ดส้มเป็น col-lg-4 (แคบ กึ่งกลาง) ส่วนไอคอน/แท็บเป็น col-12 (เต็ม)
   ขอบเลยไม่ตรงกัน — คุมทั้งหน้าไว้ที่ 680px แล้วดันการ์ดส้มเต็มคอลัมน์
   ทั้งบล็อกอยู่ใน @media (min-width:768px) มือถือคงเดิม
   ========================================================================== */
@media (min-width:768px){
  main .container.dh-appoint{max-width:560px !important;}
  .dh-appoint > .row > .col-md-8.col-lg-4{
    flex:0 0 100% !important;max-width:100% !important;width:100% !important;
  }
  /* ปุ่มไอคอน 5 อันอยู่แถวเดียวไม่ตกบรรทัด — ปุ่มยืดแบ่งพื้นที่ แต่กรอบไอคอนเป็นสี่เหลี่ยม
     ขนาดคงที่กึ่งกลางปุ่ม (ถ้าปล่อย width:100% ปุ่มหดแล้วกรอบจะกลายเป็นแท่งสูง) */
  .dh-appoint .menu-button-holder{flex-wrap:nowrap !important;gap:10px;justify-content:center !important;}
  .dh-appoint .menu-button{width:auto !important;flex:1 1 0 !important;margin:0 !important;min-width:0;}
  .dh-appoint .menu-button .img-holder{
    width:58px !important;height:58px !important;margin:0 auto !important;border-radius:16px !important;
  }
  /* แท็บสถานะบนคอม: โชว์ครบ 4 แท็บเรียงกึ่งกลาง ไม่เลื่อน — ไม่มีทางหลุดขอบ
     (การเลื่อน active-มากลางแบบมือถือคำนวณเพี้ยนบนคอมซ้ำ ๆ เลยล็อกเป็นแถวนิ่งกึ่งกลาง)
     ล้าง overflow/padding/margin แบบสไลด์มือถือทิ้งหมด scrollIntoView ของ dhSetTab จึงไม่มีผลบนคอม */
  .dh-appoint .appointment-type{
    display:flex !important;justify-content:center !important;gap:8px !important;
    overflow:visible !important;overflow-x:visible !important;scroll-snap-type:none !important;
    flex-wrap:nowrap !important;width:auto !important;
    margin:20px 0 -8px !important;padding:10px 0 22px !important;
  }
  .dh-appoint .appointment-type a{scroll-snap-align:none !important;opacity:1 !important;}
}


/* ข้อความอธิบายใต้หัวข้อในหน้าตั้งตำแหน่ง (/profile/location) */
.dh-loc-hint{font-size:12.5px;color:var(--dh-muted);line-height:1.6;margin:2px 0 12px;}

/* หน้าปักตำแหน่ง (/profile/location) — ย่อแผนที่ให้จบในหน้าเดียวไม่ต้องเลื่อน
   atom.css ตั้ง .profile-map{min-height:400px} ต้องล้างก่อนถึงจะเตี้ยลงได้
   สโคปด้วย #dh-loc จึงไม่กระทบแผนที่หน้าอื่น (นัดหมาย ฯลฯ) */
#dh-loc .profile-map{min-height:0 !important;height:220px !important;}
#dh-loc .dh-loc-hint{margin-bottom:10px;}
@media (max-width:400px){ #dh-loc .profile-map{height:190px !important;} }

/* หน้าปักตำแหน่งบนเดสก์ท็อป — คุมเป็นคอลัมน์กึ่งกลาง ไม่ให้การ์ด/ปุ่มยาวเต็มหน้า
   มือถือคงเดิม (เต็มความกว้าง) */
@media (min-width:768px){
  .dh-loc-page.container{max-width:620px !important;}
}

/* หน้าข้อมูลส่วนตัวบนเดสก์ท็อป — หดให้แคบลง (มี 2 คอลัมน์เลยกว้างกว่าหน้าอื่นนิด)
   มือถือคงเดิม (เต็มความกว้าง) */
@media (min-width:768px){
  .dh-edit-page.container{max-width:760px !important;}
}

/* ==========================================================================
   footer ชิดล่างสุดเสมอแม้เนื้อหาสั้น (ทั้งคอมและมือถือ) — เดิม sticky top:100vh
   ไม่ดันลงถ้า body ไม่สูงพอ ทำให้ footer ค้างใต้เนื้อหา
   สโคป .dh-auth (หน้าล็อกอินแล้ว) เท่านั้น หน้าสมัคร/ล็อกอินจัดเลย์เอาต์เอง ห้ามทำ body เป็น flex
   ========================================================================== */
body.dh-auth{display:flex;flex-direction:column;min-height:100vh;box-sizing:border-box;}
body.dh-auth footer,
body.dh-auth footer.container-fluid{
  position:static !important;top:auto !important;margin-top:auto !important;
}
