/* จาก helmet ของ design/dashboard.dc.html — token กลางชุดเดียว ทุกหน้าโหลดไฟล์นี้
   (ข้อ 18.97: ห้ามแก้ค่า design — inline style ในแต่ละหน้าคือของ design เช่นกัน) */
body { margin:0; background:#F7FAFD; color:#12263A; font-family:'Noto Sans Thai', system-ui, sans-serif; -webkit-font-smoothing:antialiased; }
* { box-sizing:border-box; }
a { color:#1273C9; text-decoration:none; }
a:hover { color:#29C3F2; }
input, textarea, button { font-family:inherit; }
/* attribute hidden ต้องชนะ inline display:flex เสมอ — ไม่มีบรรทัดนี้
   modal ที่ประกาศ hidden + style="display:flex" จะเปิดค้างและปิดไม่ได้ */
[hidden] { display:none !important; }
@keyframes spin { to { transform:rotate(360deg); } }
@keyframes pulseDot { 0%,100% { opacity:1 } 50% { opacity:.35 } }
/* แบนเนอร์เตือนที่ต้องไม่ถูกมองข้าม — เต้นช้าและเบา (แรงกว่านี้กลายเป็น noise ที่คนเลิกมอง)
   หยุดเองเพราะแบนเนอร์หายไปทันทีที่มีช่องทางพร้อม · เคารพ prefers-reduced-motion */
@keyframes slowPulse { 0%,100% { box-shadow:0 0 0 0 rgba(176,42,42,0) } 50% { box-shadow:0 0 0 6px rgba(176,42,42,.12) } }
@media (prefers-reduced-motion: reduce) { [style*="slowPulse"] { animation:none !important } }
@keyframes barSlide { 0% { transform:translateX(-100%) } 100% { transform:translateX(340%) } }

/* ── ของ integration (แทนปุ่มสลับ frame มือถือ/เดสก์ท็อปของ mock ด้วย media query) ── */
.only-desk { display:flex; }
.only-mob { display:none; }
@media (max-width: 767px) {
  .only-desk { display:none !important; }
  .only-mob { display:flex; }
}

/* wizard/done modal: มือถือเต็มจอ · เดสก์ท็อปเป็น modal — ค่าตาม wiz* ของ mock */
.wiz-overlay { position:fixed; inset:0; z-index:24; display:flex; align-items:stretch; justify-content:center; padding:0; background:transparent; }
.wiz-panel { width:100%; max-width:100%; max-height:100%; display:flex; flex-direction:column; background:#F7FAFD; border-radius:0; box-shadow:none; overflow:hidden; }
@media (min-width: 768px) {
  .wiz-overlay { align-items:center; padding:26px 24px; background:rgba(12,36,57,.5); }
  .wiz-panel { max-width:560px; border-radius:22px; box-shadow:0 30px 70px rgba(12,36,57,.4); }
}
