/*
 * conf_style.css — RMTC 2027 · ระบบส่งบทความ Step 01–14
 * ใช้ร่วมกันทุกหน้า step (ลิงก์ผ่าน rm_head() ใน conf_ui.php)
 * แทน eenet_style.css สำหรับหน้า step — หน้าอื่น (dashboard ฯลฯ) ยังใช้ eenet_style.css ได้ตามเดิม
 *
 * 1 tokens · 2 base · 3 topbar · 4 step rail · 5 layout · 6 page head / todo
 * 7 card · 8 buttons · 9 badges · 10 alerts · 11 forms · 12 choice cards
 * 13 tables · 14 files / dropzone · 15 modal · 16 bottom bar · 17 legacy aliases
 */

/* ── 1. tokens ─────────────────────────────────────────── */
:root{
  --rm-ink:#134A36;      /* หัวข้อ / พื้นเข้ม */
  --rm-green:#2E7D52;    /* ปุ่มหลัก / สถานะผ่าน */
  --rm-green-2:#256B45;
  --rm-lime:#C5E063;
  --rm-text:#3A4741;
  --rm-muted:#5E6B63;
  --rm-faint:#8A968E;
  --rm-bg:#F4F7F1;
  --rm-card:#FFFFFF;
  --rm-card-2:#FAFCF8;
  --rm-line:#DDE5DC;
  --rm-line-2:#CFD9CE;
  --rm-row:#EDF1EB;
  --rm-sel:#EEF6EF;
  --rm-soft:#EEF2ED;
  --rm-soft-2:#E4EBE3;
  --rm-hover:#F2F6F0;
  --rm-ok-bg:#E3F1E6;   --rm-ok:#1F6B45;   --rm-ok-line:#A9D5B6;
  --rm-warn-bg:#FFF4DE; --rm-warn:#7A4E05; --rm-warn-line:#E6C27A; --rm-warn-solid:#B7791F;
  --rm-bad-bg:#FCEEEE;  --rm-bad:#A32019;  --rm-bad-line:#F1C4C1;  --rm-bad-solid:#B3261E;
  --rm-info-bg:#E8F0F7; --rm-info:#1E4E7A; --rm-info-line:#B9D0E6;
  --rm-head:'Prompt','IBM Plex Sans Thai',sans-serif;
  --rm-body:'IBM Plex Sans Thai','Prompt',system-ui,sans-serif;
  --rm-mono:'IBM Plex Mono',ui-monospace,monospace;
  --rm-r:16px; --rm-rs:10px;
  --rm-rail:288px;
  --rm-top:64px;

  /* ตัวแปรชื่อเดิม (inline style ในหน้าเดิมยังอ้างถึง) → แมปเป็นโทน RMTC */
  --teal:var(--rm-green); --teal-lt:var(--rm-green-2); --teal-bg:var(--rm-ok-bg);
  --tl:var(--rm-green-2); --tbg:var(--rm-ok-bg);
  --navy:var(--rm-ink); --navy-lt:#1D5A41; --nl:#1D5A41; --nbg:var(--rm-soft);
  --amber:var(--rm-warn-solid); --amber-bg:var(--rm-warn-bg); --abg:var(--rm-warn-bg); --gold:var(--rm-warn-solid); --amber-lt:var(--rm-lime);
  --red:var(--rm-bad-solid); --red-bg:var(--rm-bad-bg); --rbg:var(--rm-bad-bg);
  --green:var(--rm-green); --green-bg:var(--rm-ok-bg); --gbg:var(--rm-ok-bg);
  --g1:var(--rm-bg); --g2:var(--rm-line); --g3:var(--rm-faint); --g4:var(--rm-muted);
  --gray-1:var(--rm-bg); --gray-2:var(--rm-line); --gray-3:var(--rm-faint); --gray-4:var(--rm-muted);
  --text:var(--rm-text); --text-s:#4A5750; --ts:#4A5750; --w:#fff; --white:#fff;
  --font:var(--rm-body); --mono:var(--rm-mono);
  --r:var(--rm-r); --rs:var(--rm-rs);
  --sh:none; --shm:0 16px 40px rgba(19,74,54,.14);
  --fs-2xs:11px; --fs-xs:12px; --fs-sm:13px; --fs-md:14px; --fs-base:15px; --fs-lg:16px; --fs-xl:17px;
  --fs-17:17px; --fs-2xl:18px; --fs-20:20px; --fs-3xl:24px; --fs-4xl:26px; --fs-5xl:28px; --fs-6xl:32px; --fs-7xl:34px; --fs-8xl:36px;
}

/* ── 2. base ───────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{font-size:15px;-webkit-text-size-adjust:100%}
body.rm{margin:0;background:var(--rm-bg);color:var(--rm-text);font-family:var(--rm-body);font-size:15px;line-height:1.6;min-height:100vh}
body.rm h1,body.rm h2,body.rm h3{font-family:var(--rm-head);color:var(--rm-ink);margin:0;text-wrap:balance;font-weight:600}
body.rm p{margin:0}
body.rm :where(a){color:var(--rm-green-2)}
[hidden]{display:none !important}
body.rm button,body.rm input,body.rm select,body.rm textarea{font-family:inherit}
body.rm :focus-visible{outline:3px solid rgba(46,125,82,.45);outline-offset:2px}
.rm-ico{width:18px;height:18px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px}
.rm-ico.sm{width:15px;height:15px}
.rm-ico.lg{width:22px;height:22px}
.mono{font-family:var(--rm-mono);font-variant-numeric:tabular-nums}
.rm-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.text-muted{color:var(--rm-muted)}.text-teal,.text-green{color:var(--rm-green)}.text-amber{color:var(--rm-warn)}.text-red{color:var(--rm-bad)}

/* ── 3. topbar ─────────────────────────────────────────── */
.topbar{position:sticky;top:0;z-index:100;height:var(--rm-top);background:var(--rm-ink);color:#fff;display:flex;align-items:center;gap:16px;padding:0 24px}
.topbar .tb-brand-mark{font-family:var(--rm-head);font-weight:700;font-size:21px;letter-spacing:-.01em;color:#fff;text-decoration:none;white-space:nowrap}
.tb-brand-mark span{color:var(--rm-lime)}
.tb-sep{width:1px;height:24px;background:rgba(255,255,255,.22);flex-shrink:0}
.tb-paper{display:flex;align-items:center;gap:10px;min-width:0;flex:1;font-size:14px;color:#D9E8DD}
.tb-paper b{font-family:var(--rm-mono);font-weight:600;color:var(--rm-lime);flex-shrink:0}
.tb-paper span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tb-role{font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;white-space:nowrap}
.tb-role.admin{background:var(--rm-lime);color:var(--rm-ink)}
.tb-back{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;border-radius:999px;color:#fff !important;text-decoration:none;font-size:14px;white-space:nowrap;border:1px solid rgba(255,255,255,.25)}
.tb-back:hover{background:rgba(255,255,255,.1)}
/* ของเดิม (ถ้ายังมีหน้าที่ใช้) */
.tb-logo{display:none}.tb-brand{flex:1;min-width:0}.tb-title{font-size:15px;font-weight:600}.tb-sub{font-size:12px;color:rgba(255,255,255,.6)}
.admin-badge{background:var(--rm-lime);color:var(--rm-ink);font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px}

/* ── 4. step rail (_stepnav.php) ───────────────────────── */
.sn-rail{background:var(--rm-card);border-bottom:1px solid var(--rm-line)}
.sn-prog{display:flex;align-items:center;gap:12px;padding:12px 20px;font-size:13px;color:var(--rm-muted)}
.sn-prog b{font-family:var(--rm-mono);color:var(--rm-ink);font-size:15px}
.sn-meter{flex:1;height:6px;border-radius:3px;background:var(--rm-soft-2);overflow:hidden;min-width:60px}
.sn-meter i{display:block;height:100%;background:var(--rm-green);border-radius:3px}
.sn-list{display:flex;gap:6px;overflow-x:auto;padding:0 16px 12px;scrollbar-width:thin}
.sn-phase{display:flex;gap:6px}
.sn-phase-hd{display:none}
.sn-st{display:flex;align-items:center;gap:10px;padding:6px 12px 6px 6px;min-height:44px;border-radius:12px;text-decoration:none;color:var(--rm-text);white-space:nowrap;border:1px solid var(--rm-line);background:var(--rm-card)}
a.sn-st:hover{background:var(--rm-hover)}
.sn-n{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-family:var(--rm-mono);font-size:13px;font-weight:600;background:var(--rm-soft-2);color:var(--rm-muted);flex-shrink:0}
.sn-l{display:flex;flex-direction:column;line-height:1.3;min-width:0}
.sn-l b{font-size:14px;font-weight:600}
.sn-l small{font-size:12px;color:var(--rm-muted);display:none}
.sn-st.done .sn-n{background:var(--rm-green);color:#fff}
.sn-st.done .sn-l b,.sn-st.cur .sn-l b{color:var(--rm-ink)}
.sn-st.cur{border:1.5px solid var(--rm-green);background:var(--rm-sel)}
.sn-st.cur .sn-n{background:var(--rm-ink);color:#fff;box-shadow:0 0 0 4px rgba(197,224,99,.6)}
.sn-st.lock{color:var(--rm-faint);border-style:dashed}
.sn-st.skip{color:var(--rm-faint);background:var(--rm-soft);border-color:transparent}
.sn-st.skip .sn-n{background:transparent;border:1.5px dashed var(--rm-line-2)}
.sn-foot{display:none}
/* จอเล็ก: แถบขั้นตอนเป็นวงกลม (1–14) ไม่แสดงชื่อขั้น — ดูชื่อจาก title / ความคืบหน้า */
@media (max-width:1179px){
  .sn-list{gap:6px;padding:0 10px 12px;align-items:center;-webkit-overflow-scrolling:touch}
  .sn-phase{display:flex;gap:6px;flex:0 0 auto}
  .sn-phase-hd{display:none !important}
  .sn-st{flex:0 0 auto;padding:0;min-height:0;border:0;background:transparent;border-radius:0;gap:0}
  a.sn-st:hover{background:transparent}
  .sn-st.cur,.sn-st.lock,.sn-st.skip{border:0;background:transparent}
  .sn-l{display:none !important}
  .sn-n{width:34px;height:34px;font-size:13px;border:1.5px solid var(--rm-line-2);box-sizing:border-box;line-height:1}
  .sn-st.cur .sn-n{box-shadow:0 0 0 3px rgba(197,224,99,.45)}
  .sn-st.lock .sn-n{opacity:.32}
  .sn-st.skip .sn-n{opacity:.45;border-style:dashed}
  .sn-st.done .sn-n{font-size:0}
  .sn-st.done .sn-n .rm-ico{display:none !important}
  .sn-st.done .sn-n::after{content:attr(data-step);font-size:13px;font-family:var(--rm-mono);font-weight:600;line-height:1}
}
@media (max-width:400px){
  .sn-n{width:30px;height:30px;font-size:12px}
  .sn-st.done .sn-n::after{font-size:12px}
  .sn-list{gap:5px;padding:0 8px 10px}
}
@media (min-width:1180px){
  body.rm{padding-left:var(--rm-rail)}
  .topbar{margin-left:calc(-1 * var(--rm-rail))}
  .sn-rail{position:fixed;left:0;top:var(--rm-top);bottom:0;width:var(--rm-rail);border-bottom:0;border-right:1px solid var(--rm-line);overflow-y:auto;padding:18px 14px 90px;display:flex;flex-direction:column;gap:12px}
  .sn-prog{padding:14px 16px;border:1px solid var(--rm-line);border-radius:var(--rm-r);flex-wrap:wrap}
  .sn-prog .sn-meter{flex-basis:100%}
  .sn-list{flex-direction:column;overflow:visible;padding:0;gap:4px}
  .sn-phase{flex-direction:column;gap:2px}
  .sn-phase-hd{display:block;font-size:12px;font-weight:600;letter-spacing:.05em;color:var(--rm-muted);padding:10px 10px 4px}
  .sn-st{border:0;background:transparent;padding:7px 10px;white-space:normal}
  .sn-st.cur{border:0;box-shadow:inset 0 0 0 1.5px var(--rm-green);background:var(--rm-sel)}
  .sn-st.lock{border:0}
  .sn-st.skip{background:transparent}
  .sn-l small{display:block}
  .sn-foot{display:block;font-size:12px;color:var(--rm-muted);padding:4px 10px;line-height:1.55}
  /* หน้าที่ไม่มีแถบขั้นตอน (เช่น ผู้ทรงคุณวุฒิ) ไม่ต้องเว้นซ้าย */
  body.rm:not(:has(.sn-rail)){padding-left:0}
  body.rm:not(:has(.sn-rail)) .topbar{margin-left:0}
  body.rm:not(:has(.sn-rail)) .bbar,body.rm:not(:has(.sn-rail)) .action-bar{left:0}
}
/* แถบเดิมของ _stepnav (เผื่อมีหน้าใช้ class เดิม) */
.pg-wrap,.sn-wrap{display:none}

/* ── 5. layout ─────────────────────────────────────────── */
.wrap{max-width:1040px;margin:0 auto;padding:28px 28px 120px;display:flex;flex-direction:column;gap:18px}
.wrap>*{margin-top:0;margin-bottom:0}
.rm-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.rm-stack{display:flex;flex-direction:column;gap:16px}
.rm-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rm-sp{flex:1}

/* ── 6. page head / todo ───────────────────────────────── */
.rm-ph{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.rm-eyebrow{font-size:13px;font-weight:600;color:var(--rm-green);letter-spacing:.03em}
.rm-ph h1{font-size:28px;line-height:1.3;margin-top:2px}
.rm-ph p{margin-top:6px;color:var(--rm-muted);max-width:52em}
.rm-ph-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px;text-align:right;flex-shrink:0}
.rm-actors{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:13px;color:var(--rm-muted);justify-content:flex-end}
.rm-ph .rm-sw-notice,.rm-ph-side .rm-sw-notice{margin:0;font-size:13px;font-weight:600;color:#C62828!important;line-height:1.55;max-width:22em}
.rm-sw-notice.rm-sw-flash{animation:rmSwFlash 1s ease 2}
@keyframes rmSwFlash{0%,100%{opacity:1}50%{opacity:.35}}
.rm-todo{display:flex;gap:14px;align-items:flex-start;padding:16px 20px;border-radius:14px;border:1.5px solid var(--rm-green);background:var(--rm-sel)}
.rm-todo .ic{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--rm-green);color:#fff;flex-shrink:0}
.rm-todo b{display:block;color:var(--rm-ink);font-size:16px;font-family:var(--rm-head);font-weight:600;line-height:1.4}
.rm-todo p{margin-top:2px;font-size:14px}
.rm-todo.wait{border-color:var(--rm-line-2);background:var(--rm-card-2)}
.rm-todo.wait .ic,.rm-todo.lock .ic{background:var(--rm-soft-2);color:var(--rm-muted)}
.rm-todo.done{border-color:var(--rm-ok-line);background:var(--rm-card)}
.rm-todo.done .ic{background:var(--rm-ok-bg);color:var(--rm-ok)}
.rm-todo.warn{border-color:var(--rm-warn-line);background:var(--rm-warn-bg)}
.rm-todo.warn .ic{background:var(--rm-warn-solid)}
.rm-todo.bad{border-color:var(--rm-bad-line);background:var(--rm-bad-bg)}
.rm-todo.bad .ic{background:var(--rm-bad-solid)}
.rm-todo.lock{border-style:dashed;border-color:var(--rm-line-2);background:transparent}

/* ── 7. card ───────────────────────────────────────────── */
.card{background:var(--rm-card);border:1px solid var(--rm-line);border-radius:var(--rm-r);overflow:hidden;box-shadow:none;margin:0}
.card-hd{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:16px 22px;border-bottom:1px solid var(--rm-line);background:var(--rm-card)}
.card-hd h2,.card-hd-title{font-family:var(--rm-head);font-size:17px;font-weight:600;color:var(--rm-ink);flex:1;min-width:0;margin:0}
.card-hd strong{font-weight:600;color:var(--rm-ink)}
.card-hd .hint{font-size:13px;color:var(--rm-muted)}
.card-hd>.rm-ico{color:var(--rm-green)}
.card-body{padding:22px}
.card-body.flush{padding:0}
.card+.card{margin-top:0}

/* ── 8. buttons ────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:var(--rm-rs);border:1.5px solid transparent;font-family:var(--rm-body);font-size:14px;font-weight:600;line-height:1.2;cursor:pointer;white-space:nowrap;text-decoration:none;transition:background .15s,border-color .15s;background:var(--rm-card);color:var(--rm-text)}
.btn:disabled,.btn.is-disabled{opacity:.45;cursor:not-allowed;pointer-events:none}
.btn-sm,.btn.sm{min-height:36px;padding:0 12px;font-size:13px}
.btn.icon{width:40px;padding:0}
.btn-pri,.bteal,.bgreen{background:var(--rm-green);color:#fff !important}
.btn-pri:hover,.bteal:hover:not(:disabled),.bgreen:hover:not(:disabled){background:var(--rm-green-2)}
.btn-dark,.bnavy{background:var(--rm-ink);color:#fff !important}
.btn-dark:hover,.bnavy:hover:not(:disabled){background:#0E3A2A}
.btn-ghost,.bgray{background:var(--rm-card);border-color:var(--rm-line-2);color:var(--rm-text) !important}
.btn-ghost:hover,.bgray:hover:not(:disabled){background:var(--rm-hover)}
.btn-danger,.bred{background:var(--rm-card);border-color:var(--rm-bad-line);color:var(--rm-bad) !important}
.btn-danger:hover,.bred:hover:not(:disabled){background:var(--rm-bad-bg)}
.btn-warn,.bamb,.borange{background:var(--rm-warn-solid);color:#fff !important}
.btn-warn:hover,.bamb:hover:not(:disabled),.borange:hover:not(:disabled){background:#9A6515}
.btn-quiet{background:transparent;color:var(--rm-green-2) !important;padding:0 10px}
.btn-quiet:hover{background:var(--rm-hover)}

/* ── 9. badges / chips ─────────────────────────────────── */
.chip,.rb{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:999px;font-size:13px;font-weight:600;line-height:1.35;background:var(--rm-soft);color:var(--rm-muted);white-space:nowrap}
.chip.dot::before,.rb::before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0}
.chip.me{background:var(--rm-ink);color:#fff}
.chip.ok,.rb-pass,.rb-101{background:var(--rm-ok-bg);color:var(--rm-ok)}
.chip.warn,.rb-wait,.rb-0{background:var(--rm-warn-bg);color:var(--rm-warn)}
.chip.bad,.rb-fail,.rb-100{background:var(--rm-bad-bg);color:var(--rm-bad)}
.chip.info{background:var(--rm-info-bg);color:var(--rm-info)}
.badge-step{font-family:var(--rm-mono);font-size:13px;font-weight:600;color:var(--rm-ink);background:var(--rm-card);border:1px solid var(--rm-line);border-radius:999px;padding:5px 12px;white-space:nowrap}

/* ── 10. alerts ────────────────────────────────────────── */
.alert{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-radius:12px;font-size:14px;font-weight:500;margin:0;border:1px solid transparent}
.alert .rm-ico{margin-top:2px}
.ae,.alert.bad{background:var(--rm-bad-bg);color:var(--rm-bad);border-color:var(--rm-bad-line)}
.as,.alert.ok{background:var(--rm-ok-bg);color:var(--rm-ok);border-color:var(--rm-ok-line)}
.ai,.alert.info{background:var(--rm-info-bg);color:var(--rm-info);border-color:var(--rm-info-line)}
.aw,.alert.warn{background:var(--rm-warn-bg);color:var(--rm-warn);border-color:var(--rm-warn-line)}
.info-box,.rm-note{background:var(--rm-card-2);border:1px solid var(--rm-line);border-radius:12px;padding:14px 18px;font-size:14px;color:var(--rm-text);line-height:1.7}
.readonly-notice{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:12px;background:var(--rm-card-2);border:1px solid var(--rm-line);font-size:14px;color:var(--rm-muted);margin:0}
.rm-req{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:14px}
.rm-req li{display:flex;gap:10px;align-items:flex-start}
.rm-req li .rm-ico{color:var(--rm-green);margin-top:3px;width:16px;height:16px}

/* ── 11. forms ─────────────────────────────────────────── */
.fi-grp,.rm-f{display:flex;flex-direction:column;gap:7px;margin:0 0 18px}
.fi-grp:last-child,.rm-f:last-child{margin-bottom:0}
.fi-lbl,.rm-f>.lbl{font-size:14px;font-weight:600;color:var(--rm-ink);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.fi-req,.rm-f .req{color:var(--rm-bad);font-size:13px;font-weight:600}
.fi-note,.rm-f>.note{font-size:13px;color:var(--rm-muted);margin:0}
.fi,.rm-in,select.fi,textarea.fi,input.fi{width:100%;padding:11px 14px;border:1.5px solid var(--rm-line-2);border-radius:var(--rm-rs);background:var(--rm-card);color:var(--rm-text);font-family:var(--rm-body);font-size:15px;line-height:1.6;outline:none;transition:border-color .15s,box-shadow .15s}
input.fi,select.fi,input.rm-in,select.rm-in{min-height:46px;padding-top:8px;padding-bottom:8px}
textarea.fi,textarea.rm-in{min-height:110px;resize:vertical;line-height:1.7}
.fi:focus,.rm-in:focus{border-color:var(--rm-green);box-shadow:0 0 0 3px rgba(46,125,82,.16)}
.fi[readonly],.fi:disabled,.rm-in[readonly],.rm-in:disabled{background:var(--rm-card-2);color:var(--rm-muted)}
.rm-cc{font-family:var(--rm-mono);font-size:12px;color:var(--rm-muted);text-align:right}

/* ── 12. choice cards (radio) ──────────────────────────── */
.rm-choices{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.rm-choice{position:relative;display:flex;align-items:flex-start;gap:12px;padding:13px 16px;min-height:52px;border:1.5px solid var(--rm-line);border-radius:12px;background:var(--rm-card);cursor:pointer;margin:0}
.rm-choice:hover{border-color:var(--rm-line-2);background:var(--rm-hover)}
.rm-choice input{position:absolute;opacity:0;pointer-events:none}
.rm-choice .dot{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--rm-faint);flex-shrink:0;margin-top:3px;box-sizing:border-box}
.rm-choice .ct{display:flex;flex-direction:column;gap:2px;min-width:0}
.rm-choice .ct b{font-weight:600;color:var(--rm-ink)}
.rm-choice .ct small{font-size:13px;color:var(--rm-muted);line-height:1.45}
.rm-choice:has(input:checked){border:2px solid var(--rm-green);background:var(--rm-sel);padding:12.5px 15.5px}
.rm-choice:has(input:checked) .dot{border:6px solid var(--rm-green)}
.rm-choice.tone-warn:has(input:checked){border-color:var(--rm-warn-solid);background:var(--rm-warn-bg)}
.rm-choice.tone-warn:has(input:checked) .dot{border-color:var(--rm-warn-solid)}
.rm-choice.tone-bad:has(input:checked){border-color:var(--rm-bad-solid);background:var(--rm-bad-bg)}
.rm-choice.tone-bad:has(input:checked) .dot{border-color:var(--rm-bad-solid)}
.rm-choice:has(input:focus-visible){outline:3px solid rgba(46,125,82,.45);outline-offset:2px}
.rm-choice:has(input:disabled){opacity:.55;cursor:not-allowed}

/* ── 13. tables ────────────────────────────────────────── */
.tbl-wrap,.tbl-outer{overflow-x:auto;-webkit-overflow-scrolling:touch}
body.rm table{width:100%;border-collapse:collapse;font-size:14px}
body.rm thead th{text-align:left;font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--rm-muted);padding:12px 16px;background:var(--rm-card-2);border-bottom:1px solid var(--rm-line);white-space:nowrap}
body.rm tbody td{padding:13px 16px;border-bottom:1px solid var(--rm-row);vertical-align:middle;font-size:14px}
body.rm tbody tr:last-child td{border-bottom:0}
body.rm tbody tr{border-bottom:0}
body.rm tbody tr:hover{background:var(--rm-hover)}
.tbl-wrap>table,.tbl-outer>table{min-width:600px}
.tbl-wrap>table.rm-rt,.tbl-outer>table.rm-rt{min-width:0}
body.rm tfoot td{padding:13px 16px;background:var(--rm-card-2);font-weight:600;color:var(--rm-ink)}
.rm-num{font-family:var(--rm-mono);font-variant-numeric:tabular-nums;font-weight:600;color:var(--rm-ink)}

/* ── 14. files / dropzone ──────────────────────────────── */
.rm-file{display:inline-flex;align-items:center;gap:8px;color:var(--rm-ink) !important;text-decoration:none;font-weight:500;overflow-wrap:anywhere}
.rm-file:hover{text-decoration:underline}
.rm-ext{display:inline-grid;place-items:center;width:38px;height:44px;border-radius:8px;background:var(--rm-soft);font-family:var(--rm-mono);font-size:11px;font-weight:600;color:var(--rm-muted);flex-shrink:0}
.rm-ext.pdf{background:#FBE9E7;color:#A32019}
.rm-ext.doc,.rm-ext.docx{background:#E6EEF8;color:#1E4E7A}
.dz,.dz-zone,.rm-drop{border:1.5px dashed var(--rm-line-2) !important;border-radius:12px !important;background:var(--rm-card-2) !important;color:var(--rm-muted)}
.dz:hover,.dz-zone:hover,.dz.over,.dz-zone.over,.dz.drag,.dz-zone.drag{border-color:var(--rm-green) !important;background:var(--rm-sel) !important}

/* ── 15. modal ─────────────────────────────────────────── */
.cmt-modal{display:none;position:fixed;inset:0;background:rgba(10,30,22,.45);z-index:220;align-items:center;justify-content:center;padding:16px}
.cmt-modal.show{display:flex}
.cmt-modal-card{width:min(680px,100%);max-height:84vh;overflow:auto;background:var(--rm-card);border-radius:var(--rm-r);box-shadow:var(--shm);padding:20px 22px}
.cmt-modal-hd{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.cmt-modal-title{font-family:var(--rm-head);font-size:17px;font-weight:600;color:var(--rm-ink)}
.cmt-modal-body{font-size:14px;line-height:1.75;color:var(--rm-text);white-space:pre-wrap;word-break:break-word;border:1px solid var(--rm-line);border-radius:12px;padding:14px 16px;background:var(--rm-card-2)}
.cmt-view-btn{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:var(--rm-rs);border:1.5px solid var(--rm-line-2);background:var(--rm-card);color:var(--rm-text);font-size:13px;font-weight:600;cursor:pointer}
.cmt-view-btn:hover{background:var(--rm-hover);border-color:var(--rm-green);color:var(--rm-ink)}

/* ── 16. bottom bar ────────────────────────────────────── */
.bbar{position:fixed;left:0;right:0;bottom:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-top:1px solid var(--rm-line);padding:12px 28px calc(12px + env(safe-area-inset-bottom,0px));display:flex;align-items:center;gap:10px;box-shadow:none}
.bbar-l{flex:1;min-width:0;font-size:14px;color:var(--rm-muted);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
@media (min-width:1180px){.bbar{left:var(--rm-rail)}}

/* ── 17. legacy: paper info (ถูกแทนด้วยหัวหน้า rm_page_head) ── */
.pinfo{display:none}

/* ── responsive ────────────────────────────────────────── */
@media (max-width:760px){
  .topbar{padding:0 14px;gap:10px}
  .tb-sep,.tb-paper span{display:none}
  .tb-back .lbl{display:none}
  .wrap{padding:18px 16px 150px}
  .rm-ph h1{font-size:22px}
  .card-hd{padding:14px 16px}
  .card-body{padding:18px 16px}
  .rm-grid2{grid-template-columns:1fr}
  body.rm thead th,body.rm tbody td{padding:11px 12px}
  /* ตารางที่ใส่ class rm-rt: จอแคบเปลี่ยนเป็นการ์ดทีละแถว ใช้ data-label เป็นหัวข้อ */
  table.rm-rt thead{display:none}
  table.rm-rt,table.rm-rt tbody,table.rm-rt tr,table.rm-rt td{display:block;width:100%}
  body.rm table.rm-rt tr{padding:12px 16px;border-bottom:1px solid var(--rm-row)}
  body.rm table.rm-rt tr:last-child{border-bottom:0}
  body.rm table.rm-rt td{border:0;padding:4px 0;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
  body.rm table.rm-rt td[data-label]::before{content:attr(data-label);min-width:104px;font-size:13px;color:var(--rm-muted)}
  .bbar{padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));flex-wrap:wrap}
  .bbar-l{flex-basis:100%}
  .bbar .btn{flex:1}
}
@media (prefers-reduced-motion:reduce){*{transition:none !important;animation:none !important}}
