/* ═══════════════════════════════════════════════════════════════════════════
   TSCWORLD AI™ — Procurement module (หน้า 35–44)
   โหลดหลัง mfg2.css เสมอ
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1. LAYOUT: เนื้อหาหลัก + รางขวา ─────────────────────────────────── */
.g-side{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,336px);gap:16px;align-items:start}
.g-side__l,.g-side__r{display:grid;gap:16px;min-width:0}
.g-proc3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.g-proc2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.g-proc21{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:16px}

/* ── 1b. ส่วนขยายเล็ก ๆ ของ component เดิม ──────────────────────────── */
.radar-avg{fill:rgba(126,151,188,.13);stroke:#7E97BC;stroke-width:1.4;stroke-dasharray:4 3}
.radar-num{font-size:10px;font-weight:800;fill:var(--tx-2)}
.keylgd--c{justify-content:center}
.lgd--row{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:12px}
.lgd--row li{flex:0 1 auto}

/* ── 1c. ข้อความประกอบการ์ด ─────────────────────────────────────────── */
.pnl__sub{font-size:11.5px;color:var(--tx-3);margin:-4px 0 12px;line-height:1.5}
.pnl__h3{font-size:11px;font-weight:700;color:var(--tx-3);letter-spacing:.04em;margin:14px 0 8px}
.bull{margin:0;padding-left:16px;list-style:disc}
.bull li{font-size:11.5px;color:var(--tx-3);line-height:1.6;margin-bottom:4px}
.bull li::marker{color:var(--tx-4)}
.bull li.warn{color:#FBBF24;font-weight:600}
.aidisc--red{color:#FB7185}
.aidisc--red svg{stroke:#FB7185}

/* กล่องสรุปข้อเสนอแนะของ AI */
.recobx{padding:13px;border-radius:12px;border:1px solid color-mix(in srgb,#2ED47A 30%,transparent);
  background:color-mix(in srgb,#2ED47A 7%,transparent)}
.recobx__hd{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-bottom:7px;font-size:10.5px}
.recobx__n{font-size:15px;font-weight:800;color:var(--tx);margin-bottom:9px}
.recobx__sc{display:flex;align-items:baseline;gap:7px;margin-bottom:11px;font-size:10.5px}
.recobx__sc b{font-size:29px;font-weight:800;color:#2ED47A;font-variant-numeric:tabular-nums}
.recobx__sc em{font-style:normal;font-size:12px;color:var(--tx-4)}

/* ── 2. SCORE ROW — ป้าย + คะแนน /100 ────────────────────────────────── */
.srow{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:10px;
  border:1px solid var(--line-soft);background:var(--bg-tile);margin-bottom:7px}
.srow:last-of-type{margin-bottom:0}
.srow svg{flex-shrink:0;stroke:var(--c,var(--tx-3));fill:none;stroke-width:1.8}
.srow b{flex:1;font-size:12px;font-weight:600;color:var(--tx-2);min-width:0}
.srow span{flex-shrink:0;font-size:15px;font-weight:800;color:var(--c,var(--tx));font-variant-numeric:tabular-nums}
.srow em{flex-shrink:0;font-style:normal;font-size:10.5px;color:var(--tx-4)}

/* ── 3. HORIZONTAL BAR LIST — ชื่อ + แถบ + ค่า ───────────────────────── */
.hbar{display:grid;grid-template-columns:minmax(76px,auto) minmax(0,1fr) auto;align-items:center;
  gap:10px;padding:7px 0}
.hbar__k{font-size:11.5px;color:var(--tx-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hbar__t{height:8px;border-radius:99px;background:var(--bg-input);overflow:hidden}
.hbar__t i{display:block;height:100%;border-radius:99px;background:var(--c,#2ED47A);
  transition:width .8s var(--ease)}
.hbar__v{font-size:11.5px;font-weight:700;color:var(--tx-2);font-variant-numeric:tabular-nums;white-space:nowrap}

/* ── 4. GAUGE — โดนัทพร้อมค่ากลาง ────────────────────────────────────── */
.gaug{display:grid;place-items:center;gap:2px;padding:4px 0}
.gaug svg{width:100%;max-width:172px;height:auto}
.gaug__v{font-size:25px;font-weight:800;fill:var(--tx);text-anchor:middle}
.gaug__k{font-size:9px;fill:var(--tx-4);text-anchor:middle}
.gaug--sm svg{max-width:132px}

/* ── 5. CALENDAR — ปฏิทินหมดอายุสัญญา ───────────────────────────────── */
.cal__hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}
.cal__m{font-size:12.5px;font-weight:700;color:var(--tx-2)}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}
.cal b{font-size:10px;font-weight:600;color:var(--tx-4);padding:3px 0}
.cal span{position:relative;display:grid;place-items:center;height:26px;border-radius:7px;
  font-size:11px;color:var(--tx-3);font-variant-numeric:tabular-nums}
.cal span.o{color:var(--tx-4);opacity:.45}
.cal span.d7{color:#08131F;background:#FB7185;font-weight:800}
.cal span.d30{color:#08131F;background:#FBBF24;font-weight:800}
.cal span.d90{color:#08131F;background:#2ED47A;font-weight:800}
.cal span.now{outline:2px solid var(--violet);outline-offset:-2px;color:var(--tx);font-weight:800}
.callgd2{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;font-size:10.5px;color:var(--tx-4)}
.callgd2 span{display:inline-flex;align-items:center;gap:5px}
.callgd2 i{width:8px;height:8px;border-radius:99px;background:var(--c)}

/* ── 6. PIPELINE — ขั้นตอนแนวนอน ─────────────────────────────────────── */
.pipel{display:flex;align-items:center;gap:0;overflow-x:auto;padding:2px 0 8px}
.pipel__s{flex:1 0 84px;text-align:center;padding:12px 6px;border-radius:11px;
  border:1px solid var(--line-soft);background:var(--bg-tile)}
.pipel__s b{display:block;font-size:10px;color:var(--tx-3);line-height:1.3;min-height:26px}
.pipel__s span{display:block;font-size:21px;font-weight:800;margin-top:4px;
  color:var(--c,var(--tx));font-variant-numeric:tabular-nums}
.pipel__s em{display:block;font-style:normal;font-size:9.5px;color:var(--tx-4);margin-top:1px}
.pipel__a{flex:0 0 20px;display:grid;place-items:center;color:var(--tx-4)}
.pipel__a svg{stroke:currentColor;fill:none;stroke-width:2}

/* ── 7. PROCURE-TO-PAY — 6 ขั้นวงกลม ────────────────────────────────── */
.p2p{display:flex;align-items:flex-start;gap:0;overflow-x:auto;padding:4px 0}
.p2p__s{flex:1 0 108px;text-align:center;min-width:0}
.p2p__ic{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 9px;border-radius:50%;
  border:1.5px solid var(--c,var(--line-hot));background:color-mix(in srgb,var(--c,#3B6BFF) 13%,transparent)}
.p2p__ic svg{stroke:var(--c,#3B6BFF);fill:none;stroke-width:1.7}
.p2p__t{font-size:11.5px;font-weight:700;color:var(--tx-2);line-height:1.35}
.p2p__d{font-size:10px;color:var(--tx-4);margin-top:5px;line-height:1.45}
.p2p__b{display:inline-block;margin-top:8px;padding:3px 9px;border-radius:99px;font-size:10px;font-weight:700;
  color:var(--c,#2ED47A);background:color-mix(in srgb,var(--c,#2ED47A) 15%,transparent)}
.p2p__a{flex:0 0 24px;display:grid;place-items:center;height:56px;color:var(--tx-4)}
.p2p__a svg{stroke:currentColor;fill:none;stroke-width:2}

/* ── 8. COMPARISON TABLE — ไฮไลต์ผู้ชนะ ─────────────────────────────── */
.cmpt{width:100%;border-collapse:collapse;font-size:11.5px}
.cmpt th,.cmpt td{padding:8px 9px;border-bottom:1px solid var(--line-soft);text-align:center;
  font-variant-numeric:tabular-nums}
.cmpt thead th{font-size:10.5px;font-weight:700;color:var(--tx-3);text-transform:none}
.cmpt tbody th{text-align:left;font-weight:600;color:var(--tx-3);font-size:11px}
.cmpt td{color:var(--tx-2)}
.cmpt .win{background:color-mix(in srgb,#2ED47A 9%,transparent);color:var(--tx);font-weight:700}
.cmpt thead .win{border-radius:9px 9px 0 0}
.cmpt .best{display:inline-flex;align-items:center;gap:3px;margin-left:5px;font-size:9.5px;
  font-weight:700;color:#2ED47A}
.cmpt__sub{display:block;font-size:9.5px;font-weight:500;color:#2ED47A;margin-top:2px}

/* ── 9. QUICK ACTIONS — ตารางไอคอน ──────────────────────────────────── */
.qgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;text-align:center}
.qgrid--3{grid-template-columns:repeat(3,1fr)}
.qgrid a{display:block;padding:13px 6px;border-radius:11px;border:1px solid var(--line-soft);
  background:var(--bg-tile);transition:all .2s var(--ease);text-decoration:none}
.qgrid a:hover{border-color:var(--line-hot);transform:translateY(-2px)}
.qgrid svg{stroke:var(--tx-3);fill:none;stroke-width:1.7;margin-bottom:7px}
.qgrid a:hover svg{stroke:var(--violet)}
.qgrid span{display:block;font-size:10.5px;color:var(--tx-3);line-height:1.3}

/* ── 10. ACTIVITY FEED ──────────────────────────────────────────────── */
.feed{display:flex;flex-direction:column}
.feed__r{display:flex;align-items:flex-start;gap:10px;padding:9px 2px;border-bottom:1px solid var(--line-soft)}
.feed__r:last-child{border-bottom:0}
.feed__tx{flex:1;min-width:0}
.feed__t{font-size:11.5px;color:var(--tx-2);line-height:1.45}
.feed__s{font-size:10.5px;color:var(--tx-4);margin-top:2px;font-variant-numeric:tabular-nums}
.feed__time{flex-shrink:0;font-size:10.5px;color:var(--tx-4);font-variant-numeric:tabular-nums}

/* ── 11. CHAT — ห้องสนทนาผู้ซื้อ↔ผู้ขาย ────────────────────────────── */
.msgl{display:flex;flex-direction:column}
.msgl__r{display:flex;align-items:center;gap:10px;padding:9px 6px;border-radius:9px;cursor:pointer;
  transition:background .18s var(--ease)}
.msgl__r:hover{background:var(--bg-tile)}
.msgl__tx{flex:1;min-width:0}
.msgl__n{font-size:11.5px;font-weight:600;color:var(--tx-2)}
.msgl__p{font-size:10.5px;color:var(--tx-4);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.msgl__m{flex-shrink:0;text-align:right}
.msgl__time{font-size:10px;color:var(--tx-4);font-variant-numeric:tabular-nums}
.msgl__c{display:inline-grid;place-items:center;min-width:17px;height:17px;padding:0 5px;margin-top:3px;
  border-radius:99px;font-size:9.5px;font-weight:800;color:#08131F;background:#3B6BFF}

.chat{display:flex;flex-direction:column;gap:11px;padding:4px 2px 12px;min-height:150px}
.chat__hd{display:flex;align-items:center;gap:9px;padding-bottom:10px;border-bottom:1px solid var(--line-soft)}
.chat__n{flex:1;font-size:12px;font-weight:700;color:var(--tx-2)}
.bub{max-width:78%;padding:9px 12px;border-radius:13px;font-size:11.5px;line-height:1.5}
.bub__t{display:block;font-size:9.5px;color:var(--tx-4);margin-top:4px;font-variant-numeric:tabular-nums}
.bub--in{align-self:flex-start;border-bottom-left-radius:4px;background:var(--bg-tile);
  border:1px solid var(--line-soft);color:var(--tx-2)}
.bub--out{align-self:flex-end;border-bottom-right-radius:4px;background:#1E4FD8;color:#EAF2FF}
.bub--out .bub__t{color:rgba(234,242,255,.6)}
.chatbar{display:flex;align-items:center;gap:9px;padding-top:11px;border-top:1px solid var(--line-soft)}
.chatbar input{flex:1;min-width:0;height:38px;padding:0 13px;border-radius:10px;font:inherit;font-size:12px;
  color:var(--tx);background:var(--bg-tile);border:1px solid var(--line-soft)}
.chatbar input:focus{outline:none;border-color:var(--violet)}
.chatbar button{flex-shrink:0;display:grid;place-items:center;width:38px;height:38px;border:0;
  border-radius:10px;background:#1E4FD8;cursor:pointer}
.chatbar button svg{stroke:#EAF2FF;fill:none;stroke-width:1.9}

/* ── 12. SUGGESTION LIST — ปุ่มถาม AI ───────────────────────────────── */
.sugg{display:flex;flex-direction:column;gap:7px}
.sugg a{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;
  border:1px solid var(--line-soft);background:var(--bg-tile);font-size:11.5px;color:var(--tx-2);
  text-decoration:none;transition:all .18s var(--ease)}
.sugg a:hover{border-color:var(--violet);color:var(--tx)}
.sugg svg{flex-shrink:0;stroke:var(--tx-4);fill:none;stroke-width:1.8}

/* ── 13. WORLD MAP + สรุปตัวเลข ─────────────────────────────────────── */
.wmap{display:grid;grid-template-columns:minmax(0,1fr) 128px;gap:14px;align-items:center}
.wmap svg{width:100%;height:auto}
.wmap__st b{display:block;font-size:10.5px;color:var(--tx-4)}
.wmap__st span{display:block;font-size:21px;font-weight:800;color:var(--tx);font-variant-numeric:tabular-nums}
.wmap__st em{display:block;font-style:normal;font-size:10px;color:var(--tx-4);margin-bottom:11px}

/* ── 15. WORKFLOW DESIGNER — ผังงานอนุมัติ ──────────────────────────── */
.wfsvg{width:100%;height:auto;display:block;margin:4px 0 8px;overflow:visible}
.wfln path{stroke:#7E97BC;stroke-width:1.4;fill:none;opacity:.55}
.wfnode rect,.wfnode path{fill:var(--bg-tile);stroke:var(--line-hot);stroke-width:1.2}
.wfnode text{font-size:10px;font-weight:700;fill:var(--tx-2);text-anchor:middle}
.wf-sub{font-size:8.5px;font-weight:500;fill:var(--tx-4)}
.wf-start{fill:color-mix(in srgb,#8B7CFF 20%,transparent);stroke:#8B7CFF}
.wf-dec{fill:color-mix(in srgb,#3B6BFF 15%,transparent);stroke:#3B6BFF}
.wf-dec--w{fill:color-mix(in srgb,#FBBF24 15%,transparent);stroke:#FBBF24}
.wf-ok{fill:color-mix(in srgb,#2ED47A 16%,transparent);stroke:#2ED47A}
.wf-warn{fill:color-mix(in srgb,#FBBF24 16%,transparent);stroke:#FBBF24}
.wf-man{fill:color-mix(in srgb,#FB923C 16%,transparent);stroke:#FB923C}
.wf-yes{font-size:9px;fill:#2ED47A}
.wf-no{font-size:9px;fill:#FB7185}

/* ── 16. ส่วนเติมเต็มเล็ก ๆ ─────────────────────────────────────────── */
.st-late{color:#FB7185;background:color-mix(in srgb,#FB7185 15%,transparent)}
.p2p__b--e{--c:#FB7185}
.axlbl--v{font-size:9px;font-weight:800;fill:var(--tx-2)}
.ptabs--sub{margin:0 0 10px;padding-bottom:8px;gap:4px}
.ptabs--sub .ptab{font-size:11px;padding:5px 10px}
.pnl__sub--c{text-align:center;margin-top:2px}
.chart2--sm{margin-top:10px}

/* ── 17. KRALJIC MATRIX — เมทริกซ์ความสำคัญเชิงกลยุทธ์ ──────────────── */
.kq{stroke:none}
.kq--lev{fill:rgba(59,107,255,.07)}
.kq--str{fill:rgba(251,113,133,.07)}
.kq--non{fill:rgba(46,212,122,.07)}
.kq--bot{fill:rgba(251,191,36,.07)}
.kqlbl text{font-size:10px;font-weight:700;fill:var(--tx-3)}
.kqdot circle{opacity:.82;stroke:rgba(8,19,31,.5);stroke-width:1}
.kqaxis{font-size:10px;font-weight:600;fill:var(--tx-3)}

/* ── 18. ป้าย F (Forecast) — ตัวเลขที่ยังไม่เกิดขึ้นจริง ────────────── */
.fbadge{display:inline-grid;place-items:center;width:15px;height:15px;margin-left:5px;border-radius:5px;
  font-size:9.5px;font-weight:800;color:#08131F;background:#8B7CFF;vertical-align:1px}

/* แถวที่ถูกเลือกในตาราง */
.dt__on td{background:color-mix(in srgb,#8B7CFF 10%,transparent)}
.dt__on td:first-child{box-shadow:inset 2px 0 0 #8B7CFF}

/* ชั้นล่างสุดของพีระมิดผู้ขาย + การ์ด 3 ช่อง */
.pyr--t{--c:#3B6BFF;--l:12%;--r:88%;width:250px}
.autot--3{grid-template-columns:repeat(3,1fr)}
.t-violet{--tone:#8B7CFF}

/* ── 14. RESPONSIVE ─────────────────────────────────────────────────── */
@media (max-width:1400px){
  .g-side{grid-template-columns:minmax(0,1fr)}
  .qgrid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:1100px){
  .g-proc3,.g-proc2,.g-proc21{grid-template-columns:minmax(0,1fr)}
  .wmap{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:640px){
  .qgrid{grid-template-columns:repeat(2,1fr)}
  .cal span{height:22px;font-size:10px}
}
