/* MGC-ASIA ATS · ปุ่ม การ์ด ตาราง กล่องโต้ตอบ · 1.14.0 */
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Sarabun',-apple-system,sans-serif;font-size:15px;line-height:1.6}
.hide{display:none!important}
/* ---------- login ---------- */
#login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.lbox{width:100%;max-width:400px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:32px}
.lmark{height:30px;width:auto;display:block;margin:0 auto 16px}
/* ---------- shell ---------- */
header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.hw{max-width:1240px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:12px}
.brand{display:flex;align-items:center;gap:9px;flex:1}
/* โลโก้กลุ่มบนหัวเว็บ — แทน .bm ที่เคยเป็นกล่องอักษรย่อ MG */
.site-logo{height:23px;width:auto;display:block;flex-shrink:0}
.bt{font-size:14px;font-weight:700;line-height:1.2}
.bs{font-size:11px;color:var(--faint)}
.wrap{max-width:1240px;margin:0 auto;padding:20px 16px}
/* ---------- ui ---------- */
h2{font-size:19px;font-weight:800;margin:0 0 14px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:20px}
.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.stat-n{font-size:26px;font-weight:800;color:var(--navy);line-height:1.2}
.stat-l{font-size:12.5px;color:var(--sub)}
.panel{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:var(--sh)}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
input,select,textarea{padding:9px 11px;font-size:14.5px;font-family:inherit;border:1px solid var(--line);
  border-radius:9px;background:#fff;color:var(--ink);outline:none;width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(28,58,82,.12)}
/* v1.20.2 — กฎ input{width:100%} ข้างบนเขียนไว้สำหรับช่องกรอกข้อความ
   แต่มันเหมารวม checkbox/radio ด้วย ทำให้ช่องติ๊กยืดกว้างไม่เท่ากันในแต่ละแถว
   และดันคอลัมน์ถัดไปเบี้ยวจนอ่านเป็นแนวตั้งไม่ได้ (เจอในฟอร์มเลือกบริษัท v1.20.1) */
input[type=checkbox],input[type=radio]{width:auto;flex:0 0 auto;margin:0;padding:0}
.f-item{flex:1;min-width:150px}
.lb{display:block;font-size:12.5px;font-weight:600;color:var(--sub);margin-bottom:4px}
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:right;font-size:12px;color:var(--faint);font-weight:600;letter-spacing:.3px;padding:10px;border-bottom:1px solid var(--line);white-space:nowrap;text-transform:uppercase}
th:first-child,td:first-child{text-align:left}
th:not(:first-child),td:not(:first-child){text-align:left}
td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top}
tbody tr{cursor:pointer}
tbody tr:hover{background:#F8FAFC}
.pill{display:inline-block;font-size:11.5px;font-weight:600;padding:3px 10px;border-radius:7px;white-space:nowrap}
.p-SUBMITTED{background:#EEF3F8;color:var(--navy)}
.p-SCREENING{background:var(--warnbg);color:var(--warn)}
.p-INTERVIEW{background:#EDE9FB;color:#5B3FBF}
.p-OFFERED{background:#E7F1FB;color:#1B5EA8}
.p-ONBOARDING{background:#E6F6F2;color:#12796B}
.p-HIRED{background:var(--okbg);color:var(--ok)}
.p-REJECTED{background:var(--dangerbg);color:var(--danger)}
.p-WITHDRAWN{background:#EEF0F2;color:var(--sub)}
.btn{font-family:inherit;font-size:14px;font-weight:600;padding:9px 16px;border-radius:9px;cursor:pointer;border:none;transition:.13s;line-height:1.4}
.btn:active{transform:scale(.98)}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.btn-p{background:var(--accent);color:#fff;box-shadow:0 1px 2px rgba(37,99,235,.25)}
.btn-p:hover{background:#1D4FD8}
.btn-g{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn-g:hover{background:#EEF2F6}
.btn-ok{background:var(--ok);color:#fff}
.btn-d{background:var(--danger);color:#fff}
.btn-s{font-size:13px;padding:6px 12px}
.btn:disabled{opacity:.5;cursor:default}
.note{border-radius:10px;padding:11px 14px;font-size:13.5px;margin-bottom:14px}
.n-info{background:#EEF3F8;border:1px solid #D3E0EC}
.n-bad{background:var(--dangerbg);border:1px solid #F2C4BE;color:var(--danger)}
.n-ok{background:var(--okbg);border:1px solid #BFE4CD}
.n-warn{background:var(--warnbg);border:1px solid #EAD4A6}
.sec{margin-top:20px}
.dtabs{display:flex;gap:4px;margin:16px 0 14px;border-bottom:1px solid var(--line);
  overflow-x:auto;-webkit-overflow-scrolling:touch}
.dtab{font-family:inherit;font-size:13.5px;font-weight:600;padding:9px 15px;cursor:pointer;
  border:none;background:none;color:var(--faint);border-bottom:2px solid transparent;
  margin-bottom:-1px;white-space:nowrap;flex-shrink:0}
.dtab.on{color:var(--navy);border-bottom-color:var(--navy)}
.dpane{display:none}
.dpane.on{display:block}
.dhead{position:sticky;top:0;z-index:5;background:#fff;padding:10px 0;
  border-bottom:1px solid var(--line);margin:-4px 0 0}
.nact{border-radius:11px;padding:13px 15px;margin-top:14px}
.nact-l{font-size:11.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;margin-bottom:3px}
.nact-t{font-size:14.5px;font-weight:700;margin-bottom:9px}
.sec-t{font-size:13px;font-weight:800;color:var(--navy);padding-bottom:6px;border-bottom:2px solid var(--line);margin-bottom:10px}
.kv{display:grid;grid-template-columns:150px 1fr;gap:6px 12px;font-size:14px}
.kv .k{color:var(--sub);font-size:13px}
.kv .v{font-weight:600}
/* เงินเดือนที่คาดหวังแยกสี — ตัวเลขที่ผู้สรรหามองหาก่อนเสมอเวลาเปิดใบสมัคร
 * ใช้สีทองของแบรนด์ ไม่ใช้แดงเพราะแดงในระบบนี้แปลว่าเลยกำหนดหรือผิดพลาด */
.sal-hi{display:inline-block;color:#8A6A1F;font-weight:800;
  background:#FDF6E6;border:1px solid #E3CDA0;border-radius:4px;padding:1px 8px;
  font-variant-numeric:tabular-nums}
.pager{display:flex;justify-content:space-between;align-items:center;margin-top:14px;font-size:13.5px;color:var(--sub)}
.empty{text-align:center;padding:40px 20px;color:var(--faint)}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13.5px}
.tab{font-family:inherit;font-size:13.5px;font-weight:700;padding:7px 14px;border-radius:8px;cursor:pointer;border:none;background:transparent;color:var(--sub)}
.tab.on{background:var(--navy);color:#fff}
/* ---------- เมนูแบบกลุ่ม — v1.32.0 ---------- */
.navgrp{position:relative;display:inline-block}
.navgrp-gear .tab{font-size:17px;line-height:1;padding:6px 10px}
.navmenu{position:absolute;top:calc(100% + 6px);right:0;z-index:30;min-width:190px;
  background:#fff;border:1px solid var(--line);border-radius:10px;padding:6px;
  box-shadow:0 8px 28px rgba(20,32,43,.16)}
.navitem{display:block;width:100%;text-align:left;font-family:inherit;font-size:13.5px;
  font-weight:600;padding:8px 12px;border:none;border-radius:7px;background:transparent;
  color:var(--sub);cursor:pointer;white-space:nowrap}
.navitem:hover{background:var(--bg)}
.navitem.on{background:var(--navy);color:#fff}
.modal-bg{position:fixed;inset:0;background:rgba(20,32,43,.5);display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}
.modal{background:#fff;border-radius:14px;padding:24px;width:100%;max-width:460px;max-height:90vh;overflow:auto}
.modal h3{margin:0 0 16px;font-size:17px;font-weight:800}
.mrow{margin-bottom:12px}
.badge-r{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:99px;background:#EEF3F8;color:var(--navy)}
.badge-r.admin{background:#F3E9D6;color:#8A6A1E}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:6px}
.dot.on{background:var(--ok)}.dot.off{background:#C5CDD5}
/* ---------- การ์ดตัวเลขสรุป ---------- */
.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));
  gap:10px;margin-bottom:18px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;
  padding:13px 14px;box-shadow:var(--sh);transition:.14s}
.stat:hover{box-shadow:var(--sh-h);border-color:var(--line)}
.stat-i{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;
  justify-content:center;font-size:17px;margin-bottom:9px}
.stat-n{font-size:26px;font-weight:700;line-height:1.1;letter-spacing:-.5px}
.stat-l{font-size:12px;color:var(--sub);margin-top:2px;line-height:1.35}
.stat-w{font-size:11px;font-weight:600;margin-top:4px}

/* ---------- ตารางนัดวันนี้ ---------- */
.today-box{background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:14px 16px;margin-bottom:18px;box-shadow:var(--sh)}
.today-h{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:700;
  margin-bottom:6px;color:var(--ink)}
.today-c{font-size:11.5px;font-weight:700;padding:1px 9px;border-radius:99px;
  background:var(--accent-soft);color:var(--accent)}
.today-r{display:flex;align-items:center;gap:10px;padding:9px 0;
  border-top:1px solid var(--line-soft);cursor:pointer;transition:.12s}
.today-r:hover{background:var(--accent-soft);margin:0 -8px;padding-left:8px;padding-right:8px;border-radius:8px}
.today-t{font-size:13px;font-weight:700;color:var(--navy);min-width:44px;font-variant-numeric:tabular-nums}
.today-av{width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent);
  display:flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:700;flex-shrink:0}
.today-nm{flex:1;min-width:0;display:flex;flex-direction:column}
.today-n1{font-size:13.5px;font-weight:600;line-height:1.3;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.today-n2{font-size:11.5px;color:var(--faint);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- แถบขั้นตอนของใบสมัคร ---------- */
.stepper{display:flex;align-items:flex-start;gap:0;margin:2px 0 18px;overflow-x:auto;
  padding-bottom:4px;-webkit-overflow-scrolling:touch}
.stp{display:flex;flex-direction:column;align-items:center;min-width:88px;flex:1;position:relative}
.stp-d{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-size:12.5px;font-weight:700;z-index:2;
  background:var(--line);color:var(--faint);border:2px solid var(--card)}
.stp.done .stp-d{background:var(--ok);color:#fff}
.stp.now .stp-d{background:var(--accent);color:#fff;box-shadow:0 0 0 4px var(--accent-soft)}
.stp.skip .stp-d{background:var(--dangerbg);color:var(--danger)}
.stp-l{font-size:11.5px;margin-top:6px;text-align:center;color:var(--faint);line-height:1.35}
.stp.done .stp-l,.stp.now .stp-l{color:var(--ink);font-weight:600}
.stp-s{font-size:10.5px;color:var(--faint);margin-top:1px}
.stp::before{content:'';position:absolute;top:15px;left:-50%;width:100%;height:2px;
  background:var(--line);z-index:1}
.stp:first-child::before{display:none}
.stp.done::before,.stp.now::before{background:var(--ok)}

/* ---------- การ์ดสรุปคะแนน ---------- */
.score-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.score-c{border-radius:12px;padding:13px 15px;border:1px solid}
.score-l{font-size:11.5px;font-weight:600;margin-bottom:5px}
.score-v{font-size:25px;font-weight:700;line-height:1.1;letter-spacing:-.5px}
.score-v span{font-size:14px;font-weight:600;opacity:.65}
.score-s{font-size:11px;margin-top:3px;opacity:.8}

/* ---------- รายการใบสมัคร: การ์ดบนมือถือ ตารางบนจอกว้าง ---------- */
.list-cards{display:none}
.lcard{border:1px solid var(--line);border-radius:12px;padding:13px 14px;margin-bottom:9px;
  cursor:pointer;background:#fff;transition:.12s}
.lcard:active{background:#F8FAFC;transform:scale(.995)}
.lcard-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:7px}
.lcard-nm{font-size:15px;font-weight:700;line-height:1.3}
.lcard-pos{font-size:13px;color:var(--sub);margin-top:2px}
.lcard-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--faint)}


/* ==================== ค้นหากลาง — v1.14 ==================== */
#gsWrap{position:relative;flex:0 1 330px;min-width:170px}
#gsQ{width:100%;height:36px;min-height:36px;padding:7px 30px 7px 12px;font-size:13.5px;
  border:1px solid var(--line);border-radius:99px;background:#F8FAFC;transition:.15s}
#gsQ:focus{background:#fff;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}
#gsQ::-webkit-search-cancel-button{cursor:pointer}
.gs-key{position:absolute;right:11px;top:50%;transform:translateY(-50%);font-size:11px;
  color:var(--faint);border:1px solid var(--line);border-radius:5px;padding:0 5px;
  line-height:16px;pointer-events:none;background:#fff}
#gsQ:focus + .gs-key{opacity:0}

#gsResults{position:absolute;top:calc(100% + 6px);right:0;width:420px;max-width:min(420px,92vw);
  max-height:min(440px,70vh);overflow-y:auto;background:#fff;border:1px solid var(--line);
  border-radius:12px;box-shadow:var(--sh-h);z-index:60;padding:5px}
.gs-hd{font-size:11.5px;color:var(--warn);background:var(--warnbg);border-radius:7px;
  padding:6px 9px;margin-bottom:4px;line-height:1.5}
.gs-note{font-size:13px;color:var(--sub);padding:14px 12px;text-align:center;line-height:1.7}
.gs-item{display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:9px 10px;border-radius:9px;cursor:pointer}
.gs-item.on{background:var(--accent-soft)}
.gs-nm{font-size:13.5px;font-weight:700;line-height:1.35}
.gs-sub{font-size:11.5px;color:var(--sub);margin-top:2px;display:flex;gap:6px;
  flex-wrap:wrap;align-items:center;line-height:1.5}
.gs-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}
.gs-more{font-size:12.5px;color:var(--accent);text-align:center;padding:9px;cursor:pointer;
  border-top:1px solid var(--line-soft);margin-top:4px;font-weight:600}
.gs-more:hover{background:var(--accent-soft);border-radius:0 0 9px 9px}

/* ==================== ป้ายอายุในขั้น — v1.14 ==================== */
.age{font-size:10.5px;font-weight:700;padding:1px 7px;border-radius:99px;
  white-space:nowrap;cursor:help}
.age-ok{background:var(--okbg);color:var(--ok)}
.age-warn{background:var(--warnbg);color:var(--warn)}
.age-late{background:var(--dangerbg);color:var(--danger)}

/* ==================== แถบแจ้งผลพร้อมปุ่มยกเลิก — v1.14 ==================== */
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:200;
  display:flex;align-items:center;gap:12px;max-width:min(560px,94vw);
  background:var(--ink);color:#fff;border-radius:12px;padding:11px 12px 11px 16px;
  box-shadow:0 8px 28px rgba(15,27,42,.28);font-size:13.5px;line-height:1.5;
  animation:toastIn .18s ease-out}
@keyframes toastIn{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}
.toast-tx{flex:1;min-width:0}
.toast-ok{background:var(--ink)}
.toast-warn{background:#7A4A0B}
.toast-bad{background:#8E2A21}
.toast-undo{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.28);
  border-radius:8px;padding:6px 12px;font-size:13px;font-weight:700;cursor:pointer;
  white-space:nowrap;font-family:inherit;min-height:34px}
.toast-undo:hover:not(:disabled){background:rgba(255,255,255,.26)}
.toast-undo:disabled{opacity:.6;cursor:default}
.toast-x{background:none;border:none;color:rgba(255,255,255,.65);font-size:15px;
  cursor:pointer;padding:4px 6px;line-height:1;font-family:inherit}
.toast-x:hover{color:#fff}
@media(prefers-reduced-motion:reduce){.toast{animation:none}}


/* ==================== โหมดคัดกรองเร็ว — v1.17 ==================== */
.sc-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.sc-count{font-size:13.5px;color:var(--sub)}
.sc-count b{color:var(--navy);font-size:16px}
.sc-keys{margin-left:auto;font-size:12px;color:var(--faint)}
.sc-keys kbd,.sc-btn kbd{display:inline-block;padding:1px 6px;border:1px solid #D5DCE4;
  border-bottom-width:2px;border-radius:4px;background:#fff;font-family:inherit;
  font-size:11px;font-weight:700;color:var(--sub)}

.sc-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;
  /* กันจอสูงเกิน — เผื่อ header + แถบบน + ปุ่มล่าง แล้วให้เอกสารกินที่ที่เหลือ */
  height:calc(100vh - 235px);min-height:420px}
.sc-doc{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;
  display:flex;align-items:center;justify-content:center}
.sc-doc iframe{width:100%;height:100%;border:0}
.sc-doc img{max-width:100%;max-height:100%;object-fit:contain}

.sc-info{background:#fff;border:1px solid var(--line);border-radius:12px;
  padding:16px;overflow-y:auto;display:flex;flex-direction:column;gap:10px}
.sc-name{font-size:17px;font-weight:800}
.sc-pos{font-size:13px;color:var(--sub);margin-bottom:4px}
.sc-meta{display:flex;flex-direction:column;gap:8px;font-size:13.5px;flex:1}
.sc-meta>div>span{display:block;font-size:11.5px;color:var(--faint);margin-bottom:1px}
.sc-hold{background:#FFF6E5;color:#8A6100;border-radius:8px;padding:6px 10px;
  font-size:12.5px;font-weight:700}

.sc-acts{display:flex;gap:10px;margin-top:12px}
.sc-btn{flex:1;padding:14px 10px;font-size:15px;font-weight:800;border-radius:12px;
  display:flex;align-items:center;justify-content:center;gap:8px;
  /* ปุ่มตัดสินต้องแตะง่ายและกดพลาดยาก — สูงกว่ามาตรฐาน 44px ที่ระบบใช้ */
  min-height:52px}
.sc-pass{background:#1B8A5A;color:#fff}
.sc-pass:hover:not(:disabled){background:#157348}
.sc-fail{background:#C63B3B;color:#fff}
.sc-fail:hover:not(:disabled){background:#A82F2F}
.sc-wd{background:#EEF3F8;color:var(--navy)}
.sc-skip{background:#F3F5F8;color:var(--sub)}
.sc-btn:disabled{opacity:.55;cursor:not-allowed}

@media (max-width:900px){
  .sc-body{grid-template-columns:1fr;height:auto}
  .sc-doc{height:52vh;min-height:300px}
  .sc-acts{flex-wrap:wrap}
  .sc-btn{flex:1 1 45%}
  .sc-keys{display:none}   /* มือถือไม่มีคีย์บอร์ด ป้ายคีย์ลัดมีแต่กินที่ */
}


/* ============================================================
   ผังองค์กร (v1.25.0)
   ต้นไม้ซ้อนชั้นด้วย ul/li และเส้นเชื่อมที่วาดจาก ::before / ::after
   ไม่ใช้ไลบรารีภายนอก เพราะจำนวนหน่วยงานอยู่ในหลักร้อยและต้องรองรับชื่อไทยยาว
   ============================================================ */
.org-tree{ list-style:none; margin:0; padding-left:22px; }
.org-tree .org-tree{ padding-left:26px; }

.org-tree li{ position:relative; padding:3px 0 3px 18px; }

/* เส้นตั้งจากแม่ลงมาหาลูก */
.org-tree li::before{
  content:''; position:absolute; left:0; top:0; bottom:0;
  border-left:1px solid var(--line);
}
/* ลูกคนสุดท้าย ตัดเส้นตั้งไม่ให้เลยลงไป */
.org-tree li:last-child::before{ height:19px; bottom:auto; }

/* เส้นนอนเข้าหาแต่ละโหนด */
.org-tree li::after{
  content:''; position:absolute; left:0; top:19px; width:14px;
  border-top:1px solid var(--line);
}

.org-node{
  display:inline-flex; align-items:center; flex-wrap:wrap; gap:2px;
  padding:6px 10px; border:1px solid var(--line); border-radius:8px;
  background:var(--card); box-shadow:var(--sh);
}
.org-node:hover{ box-shadow:var(--sh-h); border-color:var(--accent-line); }

/* หน่วยงานที่ปิดใช้งาน — จางลงแต่ยังอ่านออก ไม่ซ่อน เพราะยังถูกอ้างจากประกาศเก่า */
.org-node.org-off{ background:var(--bg); border-style:dashed; opacity:.72; }

/* ---------- จัดหน้าใบสมัคร (v1.54.0) ---------- */

.pl-head{display:flex;justify-content:space-between;align-items:flex-start;
  gap:12px;flex-wrap:wrap;margin-bottom:12px}

/* พรีวิวกว้างคงที่ 210mm เพราะเป็นความกว้าง A4 จริง — ถ้าให้ยืดตามจอ
 * สิ่งที่เห็นจะไม่ใช่สัดส่วนที่พิมพ์ออกมา ซึ่งทำให้หน้านี้ไร้ประโยชน์ */
.pl-wrap{display:grid;grid-template-columns:300px 1fr;gap:16px;align-items:start}
.pl-side{display:grid;gap:14px;max-height:78vh;overflow:auto;padding-right:6px}
.pl-prev{background:#8A98A6;border-radius:10px;padding:14px;overflow:auto}
.pl-prev iframe{width:210mm;height:297mm;border:none;background:#fff;
  box-shadow:0 4px 18px rgba(0,0,0,.28);display:block;margin:0 auto}

.pl-grp{border:1px solid var(--line);border-radius:10px;padding:12px}
.pl-grp-t{font-size:12px;font-weight:700;color:var(--faint);
  letter-spacing:.6px;margin-bottom:9px}
.pl-ctl{margin-bottom:9px}
.pl-ctl:last-child{margin-bottom:0}
.pl-ctl .lb{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.pl-num{font-variant-numeric:tabular-nums;color:var(--navy)}
.pl-ctl input[type=range]{width:100%;margin:0}
.pl-row{display:flex;align-items:center;gap:8px}
.pl-row input{width:auto}
.pl-row label{margin:0;font-size:13px}

.pl-sec{display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  padding:7px 0;border-bottom:1px solid var(--line)}
.pl-sec:last-child{border-bottom:none}
.pl-sec-m{display:flex;gap:2px}
.pl-sec-m .btn{padding:2px 6px;line-height:1}
.pl-sec-n{flex:1;font-size:13px;min-width:96px}
.pl-sec-c{display:flex;align-items:center;gap:4px;font-size:12px;
  color:var(--sub);margin:0;white-space:nowrap}
.pl-sec-c input{width:auto;margin:0}
/* หมวดที่ปิดไว้ยังอยู่ในรายการ ไม่ซ่อน เพราะต้องเปิดกลับได้ */
.pl-sec.pl-off .pl-sec-n{opacity:.5;text-decoration:line-through}
.pl-new{display:inline-block;font-size:10px;font-weight:700;color:#B26A00;
  background:#FBF2E1;border-radius:3px;padding:0 5px;margin-left:5px}

/* ---------- แผงจัดฟิลด์ (v1.55.0) ---------- */

.pl-sec-x{margin-left:auto;flex-shrink:0}
.pl-fldbox{background:var(--bg);border:1px solid var(--line);border-radius:8px;
  padding:8px 10px;margin:0 0 8px}
.pl-hint{font-size:11.5px;color:var(--sub);line-height:1.5;margin-bottom:8px}
.pl-fld{display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  padding:6px 0;border-bottom:1px solid var(--line)}
.pl-fld:last-child{border-bottom:none}
.pl-fld-n{flex:1;font-size:12.5px;min-width:88px}
/* ฟิลด์ที่ซ่อนยังอยู่ในรายการ ไม่หายไป เพราะต้องเปิดกลับได้ */
.pl-fld.pl-off .pl-fld-n{opacity:.5;text-decoration:line-through}
.pl-pair{width:100%;font-size:12px;padding:4px 6px;height:auto}
