/* ============================================================
   FASTUP · assets/fastup-ds.css · 📐 ทะเบียนดีไซน์กลาง (FUP148 · โค้ชสั่ง 07/10/69 03:55)
   "ทุกหน้ามีกฎเหมือนกัน ไม่ใช่แก้หน้าหนึ่ง หน้าอื่นไม่รู้"
   → ไฟล์นี้ไฟล์เดียว ทุกหน้าโหลดเป็นไฟล์สุดท้าย · แก้ที่นี่ = เปลี่ยนทั้งเว็บ
   ใครโหลดบ้าง (ห้ามลบ): pf_head() helpers.php · pf_app_head() appshell.php ·
                       executive.php · vip.php · lib/loginui.php
   ทะเบียนกฎ + วิธีเพิ่มกฎ: docs/design-master/ทะเบียนดีไซน์-FASTUP.md
   กฎเดิมคุมจอสว่างด้วย body:not(.th-dark) · คู่สีรายงาน CEO ข้อ 6 คุมทั้งสองโหมดเฉพาะเปลือกรายงาน
   ============================================================ */

/* ---------- 1) ค่ากลาง (โทเคน) — หน้าใหม่ใช้ var(--ds-*) เท่านั้น ---------- */
:root{
  --ds-font:Prompt,-apple-system,"Segoe UI",sans-serif;
  --ds-page:#ffffff;                 /* พื้นหน้า = ขาวล้วน (โค้ชเคาะ 07/10 01:38 + 03:55) */
  --ds-card:#ffffff;
  --ds-line:#e3e8ef;
  --ds-ink:#0f172a;
  --ds-mute:#64748b;
  --ds-navy:#0f2744;                 /* น้ำเงินแบรนด์ */
  --ds-navy-2:#16314f;
  /* น้ำเงินเงา = แบบ N2 "แสงนุ่มจากมุมซ้ายบน" (โค้ชเลือก 07/10 06:01) */
  --ds-navy-face:radial-gradient(120% 140% at 15% 0%,#24497c 0%,#12305a 38%,#0a1d38 100%);
  --ds-navy-sheen:radial-gradient(80% 60% at 20% 0%,rgba(255,255,255,.18),rgba(255,255,255,0) 60%);
  --ds-gold:#c9a961;
  --ds-gold-hi:#e8cd7a;
  /* ทองเงา = แบบ G1 "ทองคำเงา" (โค้ชเลือก 07/10 06:01) · เปลี่ยนแค่บรรทัดนี้ ทั้งเว็บเปลี่ยนตาม */
  --ds-gold-face:linear-gradient(135deg,#9a6c12 0%,#d9ac3c 24%,#fff3c4 40%,#e9c357 52%,#b0821f 74%,#f6dc83 100%);
  --ds-green:#157347;
  --ds-r-out:16px;                   /* กรอบนอก */
  --ds-r-in:12px;                    /* กรอบใน = นอก − ระยะห่าง */
  --ds-gutter:20px;                  /* ตัวหนังสือห่างขอบปุ่มอย่างน้อย */
  --ds-num-min:96px;                 /* ช่องตัวเลขกว้างขั้นต่ำ (มือถือ 84) */
}
@media(max-width:700px){:root{--ds-num-min:84px}}

/* ---------- 2) ฟอนต์เดียวทั้งเว็บ = Prompt (ข้อ B · โค้ชสั่ง 07/10) ---------- */
html body,
html body :is(p,span,div,a,li,td,th,label,small,b,strong,em,i,h1,h2,h3,h4,h5,h6,button,input,select,textarea,summary,option,dt,dd){
  font-family:var(--ds-font)!important;
}
html body :is(code,pre,kbd,samp){font-family:ui-monospace,Menlo,monospace!important}

/* ---------- 3) พื้นหน้าขาวล้วน (จอสว่างเท่านั้น) ----------
   เปลี่ยนผ่านตัวแปร --bg ที่เปลือกแอป/แอปนักลงทุน/แอป CEO ใช้เป็นพื้นหน้า
   ⚠️ ห้ามบังคับ body{background} ตรงๆ — หน้าเข้าระบบใช้พื้นน้ำเงินทั้งหน้า (ลองแล้วตัวหนังสือขาวหาย 07/10) */
:root{--bg:var(--ds-page)}
html body:not(.th-dark){--bg:var(--ds-page)}
html body:not(.th-dark):has(> header.top .top-actions){background:var(--ds-page)}   /* แอป CEO: ตัดแสงฟ้ามุมขวาบน */
html body:not(.th-dark) :is(.dash-layout,.dash-main){background-color:var(--ds-page)}

/* ---------- 4) ชิ้นส่วนกลาง — หน้าใหม่ใส่คลาสเหล่านี้ได้เลย ไม่ต้องเขียนสีเอง ---------- */
/* ปุ่มมาตรฐาน: มีมิติ ชี้แล้วขอบทอง กดแล้วยวบ ถูกเลือก = พื้นน้ำเงิน + วงไฟทอง */
.ds-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 var(--ds-gutter);
  border-radius:var(--ds-r-in);border:1px solid var(--ds-line);background:linear-gradient(#fff,#f1f4f9);color:var(--ds-navy);
  font:500 15px/1 var(--ds-font);cursor:pointer;text-decoration:none;white-space:nowrap;box-shadow:0 3px 0 #d3dbe6,0 6px 14px rgba(15,39,68,.08);
  transition:transform .08s,box-shadow .08s,border-color .15s}
.ds-btn:hover{border-color:var(--ds-gold)}
.ds-btn:active{transform:translateY(3px);box-shadow:none}
.ds-btn.on{background:var(--ds-navy-face);color:#fff;border-color:var(--ds-gold);box-shadow:0 0 0 2px rgba(232,205,122,.4)}
/* ปุ่มตัวเลข (การ์ดสถิติที่กดได้) */
.ds-stat{display:block;text-align:left;min-width:var(--ds-num-min);border-radius:18px;border:1px solid var(--ds-line);
  background:linear-gradient(180deg,#fff,#f3f6fa);padding:18px var(--ds-gutter) 16px;cursor:pointer;color:var(--ds-ink);
  box-shadow:0 4px 0 #d8e0ea,0 10px 20px -10px rgba(15,39,68,.25);transition:transform .08s,box-shadow .08s}
.ds-stat:hover{border-color:var(--ds-gold)}
.ds-stat:active{transform:translateY(4px);box-shadow:none}
.ds-stat .ds-k{font-size:14px;color:var(--ds-mute);white-space:nowrap}
.ds-stat .ds-v{font-size:30px;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}
/* การ์ดน้ำเงินเงา (MMC / การ์ดหลัก) */
.ds-navy{position:relative;overflow:hidden;background:var(--ds-navy-face);color:#fff;border:1px solid #2a4c7c;border-radius:20px;
  box-shadow:0 14px 28px -14px rgba(8,26,49,.8),inset 0 1px 0 rgba(255,255,255,.2)}
.ds-navy::before{content:"";position:absolute;inset:0;background:var(--ds-navy-sheen);pointer-events:none}
/* การ์ดทองเงา (VVIP) */
.ds-gold{position:relative;overflow:hidden;background:var(--ds-gold-face);color:#3b2a06;border:1px solid #b88a2a;border-radius:20px;
  box-shadow:0 14px 28px -12px rgba(233,195,87,.55),inset 0 2px 2px rgba(255,255,255,.65),inset 0 -3px 6px rgba(0,0,0,.18)}
/* ดรอปดาวน์แบบปุ่ม — ของเกะกะเก็บเข้าไปในนี้ */
.ds-dd{position:relative;display:inline-block}
.ds-dd>.ds-btn::after{content:"▾";font-size:12px;opacity:.6;margin-left:4px}
.ds-dd-pop{position:absolute;right:0;top:calc(100% + 8px);min-width:240px;z-index:60;background:var(--ds-card);border:1px solid var(--ds-line);
  border-radius:var(--ds-r-out);padding:8px;box-shadow:0 18px 40px -14px rgba(15,39,68,.45)}
.ds-dd-pop[hidden]{display:none}
.ds-dd-pop>*{display:flex;align-items:center;width:100%;min-height:46px;padding:0 16px;border-radius:var(--ds-r-in);border:0;background:none;
  color:var(--ds-ink);font:400 15px var(--ds-font);text-align:left;text-decoration:none;cursor:pointer}
.ds-dd-pop>*:hover{background:rgba(201,169,97,.14)}

/* ---------- 5) ช่องกรอกทั้งเว็บ (SMS01 · โค้ชสั่ง 09/10/69 03:41) ----------
   "ข้อความตัวอย่างจางๆ ต้องจางกว่านี้ มันเข้มจนนึกว่าไม่ต้องใส่อะไรแล้ว
    ช่องที่ให้ใส่ข้อความต้องมีขอบสีเข้มกว่านี้ ให้เห็นชัดว่าจำเป็นต้องใส่"
   → ตัวอย่างจาง (placeholder) จางลง · ขอบช่องกรอกเข้มขึ้น · กดเข้าช่อง = ขอบทอง
   ช่องที่ออกแบบไม่มีขอบ (border:0) ไม่โดนเพิ่มขอบ · ไม่แตะ checkbox/radio/ปุ่ม */
html body:not(.th-dark) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):not([type=button]):not([type=submit]):not([type=reset]):not([type=image]):not([type=hidden]),textarea,select){
  border-color:#8a94a6!important;
}
html body:not(.th-dark) :is(input,textarea)::placeholder{color:#c3cad5!important;opacity:1!important}
html body:not(.th-dark) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):not([type=button]):not([type=submit]):not([type=reset]):not([type=image]):not([type=hidden]),textarea,select):focus{
  border-color:var(--ds-gold)!important;
}
html body:not(.th-dark) :is(input,textarea,select):is([readonly],:disabled){border-color:#d0d5dd!important}

/* ---------- 6) คู่สีรายงาน CEO (UIX01 · 18/10/2569) ----------
   เปลือกรายงานใช้ executive-dark.css ซึ่งไม่ครอบคลุม .pro-card จาก admin-pro.css
   จึงเคยได้ข้อความอ่อนจาก body.th-dark บนการ์ดขาว ต้องเปลี่ยนพื้น/ข้อความเป็นคู่
   จำกัดเฉพาะ .ceo-report-shell ไม่เปลี่ยนการ์ดแบรนด์หรือหน้าแอปบทบาทอื่น */
body.ceo-report-shell{
  --ds-report-surface:var(--ds-card);
  --ds-report-ink:var(--ds-ink);
  --ds-report-muted:var(--ds-mute);
  --ds-report-line:var(--ds-line);
  --pro-ink:var(--ds-report-ink);
  --pro-mut:var(--ds-report-muted);
  --pro-line:var(--ds-report-line);
}
body.ceo-report-shell.th-dark{
  --ds-report-surface:#13284a;
  --ds-report-ink:#eaf0fb;
  --ds-report-muted:#b9c7dd;
  --ds-report-line:#24406b;
}
body.ceo-report-shell .pro-card{
  background:var(--ds-report-surface);
  color:var(--ds-report-ink);
  border-color:var(--ds-report-line);
}
body.ceo-report-shell .pro-card>summary{color:var(--ds-report-ink)}

/* ── MOD01 24/10/2569 · ปุ่มทอง → เหลืองอ่อน ทั้งเว็บ (โค้ชเลือกแบบ ก: "สีทองนี้ไม่เอาแล้ว ใช้ปุ่มสีเหลืองที่ดูเข้ากัน")
   สีเดียวกับป้าย/กล่องเหลืองที่เว็บใช้อยู่แล้ว (#fcd34d) · เปลี่ยนเฉพาะ "ปุ่ม" · เส้นขอบ/ตัวหนังสือ/แถบเมนูทองแบรนด์คงเดิม
   รายชื่อปุ่มได้จากสแกนหน้าจริง 146 หน้า (24/10) · ปุ่มสลับธีมกรอบวงทองไม่แตะ ── */
:root{--btn-y:linear-gradient(180deg,#fde68a,#fcd34d);--btn-y-rim:#e0b52a;--btn-y-ink:#0f2744;--btn-y-sh:0 3px 0 #d4a514}
body:not(.th-light){--btn:var(--btn-y);--btnInk:var(--btn-y-ink)}
html body.th-dark :is(.btn,button[type=submit]):not([class*=theme]),   /* ทับกฎ dark-theme.css ที่ทาทุกปุ่มเป็นทองในจอเข้ม (ขอบเขตเดิมเป๊ะ) */
html body :is(.btn-gold,.btn.gold,.cr-btn.gold,.sl-btn.gold,.js-b.gold,.ab-btn-primary,.apt-save,.apv-btn,.br-bbtn,.br-cc,.spin-b.go,.dv-btn,.jl-go,.nbtn.au){
  background:var(--btn-y)!important;color:var(--btn-y-ink)!important;border-color:var(--btn-y-rim)!important}
html body :is(.btn-gold,.btn.gold,.cr-btn.gold,.sl-btn.gold,.js-b.gold,.ab-btn-primary,.apt-save,.apv-btn,.br-bbtn,.br-cc,.spin-b.go,.dv-btn,.jl-go,.nbtn.au):hover{background:linear-gradient(180deg,#fef3c7,#fde68a)!important;color:var(--btn-y-ink)!important}
/* ปุ่มมาตรฐานของเปลือกแอป (.btn / ปุ่มส่งฟอร์ม) ทาสีด้วยตัวแปร --gold → ตั้ง --gold เฉพาะ "ตัวปุ่ม" ให้เป็นเหลือง
   ตัวหนังสือ/เส้นทองนอกปุ่มยังใช้ --gold เดิม · ปุ่มที่หน้านั้นทาสีอื่นเอง (น้ำเงิน/แดง) ไม่โดน · ปุ่มสลับธีม (.thb) ไม่แตะ (24/10 ตรวจ 4 หน้า: ทองเหลือ 0) */
html body :is(button,.btn,input[type=submit],input[type=button],[role=button]):not(.thb):not([class*=theme]):not([id*=theme]){--gold:var(--btn-y)}
