/* Dashboard ตลาดโลก — สไตล์เฉพาะเครื่องมือ (ทุก selector อยู่ใต้ .tool กันชนกับฐานกลาง) */


/* ===== Dashboard v3 · Light (ค่าเริ่มต้น) / Dark ===== */
:root{
  --d-bg:#F3F6FA; --d-grid:rgba(11,60,99,.045); --d-glow1:rgba(232,137,26,.10); --d-glow2:rgba(59,130,196,.10);
  --d-card:rgba(255,255,255,.86); --d-card2:#fff; --d-line:#DFE7EF; --d-line2:#C9D6E3;
  --d-shadow:0 1px 2px rgba(14,47,73,.04),0 10px 30px -18px rgba(14,47,73,.22);
  --d-tx:#0E2F49; --d-tx2:#3E4C5A; --d-mut:#667788; --d-faint:#98A6B4;
  --d-up:#0C9A5C; --d-dn:#D5433F; --d-acc:#E8891A; --d-acc-tx:#B8620A;
  --d-chip:#EEF3F8; --d-hm0:#EDF2F7; --d-track:rgba(14,47,73,.07);
  --d-kpi:rgba(255,255,255,.9);
}
html[data-theme="dark"]{
  --d-bg:#0A1C2E; --d-grid:rgba(255,255,255,.03); --d-glow1:rgba(232,137,26,.13); --d-glow2:rgba(59,130,196,.16);
  --d-card:rgba(255,255,255,.045); --d-card2:#102A42; --d-line:rgba(255,255,255,.09); --d-line2:rgba(255,255,255,.18);
  --d-shadow:none;
  --d-tx:#FFFFFF; --d-tx2:#C3D1DE; --d-mut:#8FA6BC; --d-faint:#5F7890;
  --d-up:#3DDC97; --d-dn:#FF6B6B; --d-acc-tx:#F2A649;
  --d-chip:rgba(255,255,255,.05); --d-hm0:#132B42; --d-track:rgba(255,255,255,.07);
  --d-kpi:rgba(10,28,46,.9);
  color-scheme:dark;
}
body.tpage,.tp-band,.tp-main,.nav,.tp-hero{transition:background-color .3s,color .3s,border-color .3s}
.dash,.dash *{font-variant-numeric:tabular-nums}

.tp-band{background:var(--d-bg);color:var(--d-tx2);position:relative;overflow-x:clip}
.dash{position:relative;padding:0 0 70px;
  background:radial-gradient(900px 420px at 88% -80px,var(--d-glow1),transparent 70%),radial-gradient(900px 520px at -10% 22%,var(--d-glow2),transparent 70%)}
.dash::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(var(--d-grid) 1px,transparent 1px),linear-gradient(90deg,var(--d-grid) 1px,transparent 1px);
  background-size:44px 44px;-webkit-mask-image:linear-gradient(#000,transparent 50%);mask-image:linear-gradient(#000,transparent 50%)}
.dx{max-width:1160px;margin:0 auto;padding:0 32px;position:relative}
.dash b{font-weight:500;color:var(--d-tx)}
.dx-k{font-family:"IBM Plex Mono",monospace;font-size:11.5px;letter-spacing:.14em;color:var(--d-acc-tx);text-transform:uppercase}
.dash .u{color:var(--d-up)}.dash .d{color:var(--d-dn)}

/* แถบสรุป 5 วินาที (ติดใต้เมนูเวลาเลื่อน) */
.dx-kpi{position:sticky;top:var(--navh,76px);z-index:30;background:var(--d-kpi);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--d-line)}
.kpi-in{display:flex;align-items:center;gap:14px;height:54px}
.kpi-scroll{display:flex;align-items:center;gap:22px;overflow-x:auto;scrollbar-width:none;flex:1;min-width:0;height:100%}
.kpi-scroll::-webkit-scrollbar{display:none}
.dx-live{flex:none;display:inline-flex;align-items:center;gap:8px;background:color-mix(in srgb,var(--d-up) 10%,transparent);border:1px solid color-mix(in srgb,var(--d-up) 38%,transparent);color:var(--d-up);border-radius:999px;padding:4px 12px;font-family:"IBM Plex Mono",monospace;font-size:12.5px;white-space:nowrap}
.dx-live i{width:7px;height:7px;border-radius:50%;background:var(--d-up);box-shadow:0 0 0 3px color-mix(in srgb,var(--d-up) 20%,transparent)}
.kpi{flex:none;display:inline-flex;align-items:baseline;gap:7px;white-space:nowrap;font-size:13px;color:var(--d-mut);padding-left:22px;border-left:1px solid var(--d-line)}
#kDate{border-left:0;padding-left:0}
.kpi small{font-size:12.5px}
.kpi b{font-family:"IBM Plex Mono",monospace;font-size:16px;color:var(--d-tx)!important}
.kpi b span{color:var(--d-faint);font-size:13px}
.kpi em{font-style:normal;font-size:12.5px}
.kpi em.greed,.kpi em.warn{color:var(--d-acc-tx)}.kpi em.fear{color:#3B82C4}.kpi em.ok{color:var(--d-up)}.kpi em.mid{color:var(--d-mut)}
.dx-theme{flex:none;display:inline-flex;padding:3px;border-radius:999px;background:var(--d-chip);border:1px solid var(--d-line)}
.dx-theme button{font:inherit;font-size:12.5px;display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--d-mut);padding:5px 11px;border-radius:999px;cursor:pointer}
.dx-theme svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.dx-theme button[aria-pressed="true"]{background:var(--d-card2);color:var(--d-tx);box-shadow:0 1px 3px rgba(0,0,0,.12)}

/* แถบราคา — เลื่อนเอง ช้า ๆ หยุดเมื่อชี้/แตะ (โทนกรมท่าทั้งสองโหมด) */
.dx-tape{position:relative;background:#0E2F49;overflow:hidden;margin-bottom:10px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
html[data-theme="dark"] .dx-tape{background:rgba(4,14,24,.6);border-bottom:1px solid var(--d-line)}
.dx-track{display:flex;width:max-content}
.dx-track.run{animation:dxTape var(--dur,50s) linear infinite}
.dx-tape:hover .dx-track,.dx-tape.hold .dx-track,.dx-tape:focus-within .dx-track{animation-play-state:paused}
@keyframes dxTape{to{transform:translateX(-50%)}}
.dx-seg{display:flex}
.dx-tape .ti{display:inline-flex;align-items:baseline;gap:8px;padding:12px 24px;font-family:"IBM Plex Mono",monospace;font-size:13.5px;color:#9FB4C8;white-space:nowrap;border-right:1px solid rgba(255,255,255,.07)}
.dx-tape .ti b{color:#fff;font-weight:500}
.dx-tape em{font-style:normal}.dx-tape em.u{color:#3DDC97}.dx-tape em.d{color:#FF7B7B}
@media(prefers-reduced-motion:reduce){.dx-track.run{animation:none}.dx-tape{overflow-x:auto}.dx-seg+.dx-seg{display:none}}
.dx-by{font-size:12.5px;color:var(--d-mut);text-align:right;margin:0 0 16px}

/* การ์ด */
.dx-card,.dx-tile,.dx-s{background:var(--d-card);border:1px solid var(--d-line);border-radius:20px;box-shadow:var(--d-shadow);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:border-color .2s,transform .2s,background-color .3s}
html[data-theme="dark"] .dx-card,html[data-theme="dark"] .dx-tile,html[data-theme="dark"] .dx-s{background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.025))}
.dx-tile:hover,.dx-s:hover{border-color:color-mix(in srgb,var(--d-acc) 55%,transparent);transform:translateY(-2px)}
.dx-ch h3{font-size:19px;font-weight:500;color:var(--d-tx);margin:4px 0 0}
.dx-learn{display:inline-block;margin-top:12px;font-size:13.5px;color:var(--d-acc-tx);text-decoration:none;border-bottom:1px dashed color-mix(in srgb,var(--d-acc-tx) 50%,transparent)}
.dx-learn:hover{color:var(--d-tx);border-color:var(--d-tx)}

/* โครงรอข้อมูล (ตอนโหลด) */
.skel{min-height:150px;display:flex;flex-direction:column;gap:10px;padding:18px}
.skel i{display:block;height:12px;border-radius:6px;background:var(--d-track)}
.skel i:nth-child(2){height:26px;width:60%}.skel i:nth-child(3){width:40%}
.skel-b{display:block;grid-column:1/-1;grid-row:1/-1;border-radius:14px;background:var(--d-track)}

.dx-meter{padding:24px 28px}
.dx-mwrap{display:grid;grid-template-columns:minmax(0,300px) 1fr;align-items:center;gap:18px;margin-top:6px}
.dx-gauge{width:100%;height:auto;display:block}
.g-track{stroke:var(--d-track)}.g-tick{stroke:var(--d-line2)}.g-nd{stroke:var(--d-tx)}.g-hub{fill:var(--d-card2);stroke:var(--d-tx)}
.dx-gl{font-family:Kanit,sans-serif;font-size:13px;fill:var(--d-mut)}
.dx-gl.l{fill:#3B82C4}.dx-gl.r{fill:var(--d-acc-tx)}
.dx-needle{transform-box:view-box;transform-origin:150px 160px;transform:rotate(-90deg);transition:transform 1.6s cubic-bezier(.2,.8,.3,1)}
.dx-score{display:flex;align-items:baseline;gap:6px}
.dx-score b{font-family:"IBM Plex Mono",monospace;font-size:64px;line-height:1;color:var(--d-tx)}
.dx-score span{font-family:"IBM Plex Mono",monospace;color:var(--d-faint);font-size:18px}
.dx-lvl{display:inline-block;margin-top:10px;font-size:15px;border-radius:999px;padding:4px 14px;border:1px solid}
.dx-lvl.greed{color:var(--d-acc-tx);border-color:color-mix(in srgb,var(--d-acc) 45%,transparent);background:color-mix(in srgb,var(--d-acc) 10%,transparent)}
.dx-lvl.fear{color:#3B82C4;border-color:rgba(59,130,196,.45);background:rgba(59,130,196,.1)}
.dx-lvl.mid{color:var(--d-tx2);border-color:var(--d-line2)}
.dx-teach{font-size:15px;line-height:1.75;color:var(--d-tx2);margin:16px 0 0;padding-top:16px;border-top:1px solid var(--d-line)}

/* Heatmap */
html[data-theme="dark"] html[data-theme="dark"] .dx-h-tab{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.dx-tabs{display:inline-flex;padding:4px;border-radius:999px;border:1px solid var(--d-line2);background:var(--d-card)}
.dx-tabs button{font:inherit;font-size:14px;border:0;background:transparent;color:var(--d-tx2);padding:7px 16px;border-radius:999px;cursor:pointer}
.dx-tabs button[aria-selected="true"]{background:#E8891A;color:#fff}
.dx-hm{margin-bottom:46px}
.dx-mk[hidden]{display:none}
.dx-hm .hm-note{margin:0 0 6px}
.hm-zoom{display:inline-block;margin:0 0 12px;font-size:13px;color:var(--d-tx2);padding:6px 12px;border-radius:999px;background:var(--d-chip);border:1px solid var(--d-line)}
.hm-zoom b{font-weight:500;color:var(--d-acc-tx)}
.tv-hm{height:520px;border-radius:18px;overflow:hidden;border:1px solid var(--d-line);background:var(--d-card)}
.hm-h{display:flex;justify-content:space-between;align-items:flex-end;gap:10px}
.hm-sum{font-size:13.5px;color:var(--d-mut);white-space:nowrap}
.hm-sum b{font-family:"IBM Plex Mono",monospace;font-size:20px}
.hm-sum b.u{color:var(--d-up)}.hm-sum b.d{color:var(--d-dn)}
.hm{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(3,minmax(74px,1fr));grid-template-areas:"a a b b" "a a c d" "e e f g";gap:6px;margin-top:16px;flex:1}
.hc{border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;justify-content:space-between;color:var(--d-tx);min-width:0;transition:transform .2s,filter .2s}
.hc:hover{transform:scale(1.02);filter:brightness(1.06)}
.hc.hi{color:#fff}
.hc .nm{font-size:13px;opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hc b{font-family:"IBM Plex Mono",monospace;font-size:17px;color:inherit!important}
.hc.big b{font-size:30px}.hc.big .nm{font-size:15px}
.hc small{font-family:"IBM Plex Mono",monospace;font-size:13px;opacity:.85}
.hm-lg{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:11.5px;color:var(--d-faint)}
.hm-lg .lg{flex:1;height:5px;border-radius:5px;background:linear-gradient(90deg,var(--d-dn),var(--d-hm0),var(--d-up))}
.dx-motto{margin-top:12px;font-size:13.5px;color:var(--d-mut)}
.dx-motto b{color:var(--d-acc-tx)!important}

.dx-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin:0 0 16px}
.dx-h .dx-k{flex-basis:100%}
.dx-h h2{font-size:28px;font-weight:500;color:var(--d-tx);margin:0;letter-spacing:-.005em}
.dx-h p{margin:0;color:var(--d-mut);font-size:14.5px}

.dx-mk{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:46px}
.dx-tile{padding:16px 18px 14px;display:flex;flex-direction:column;min-width:0}
.dx-tile .tt{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--d-tx2)}
.dx-tile .cd{font-family:"IBM Plex Mono",monospace;font-size:10.5px;letter-spacing:.06em;color:var(--d-mut);border:1px solid var(--d-line2);border-radius:6px;padding:1px 6px}
.dx-tile .vv{font-family:"IBM Plex Mono",monospace;font-size:28px;color:var(--d-tx);font-weight:500;margin-top:10px;letter-spacing:-.01em;border-radius:6px}
.dx-tile .ch{font-family:"IBM Plex Mono",monospace;font-size:13.5px;margin-top:2px}
.dx-tile .sp{height:40px;margin:10px -4px 8px}
.dx-tile .sp svg{width:100%;height:100%;display:block}
.sl.u{stroke:var(--d-up)}.sl.d{stroke:var(--d-dn)}
.st0.u{stop-color:var(--d-up);stop-opacity:.26}.st0.d{stop-color:var(--d-dn);stop-opacity:.22}.st1{stop-opacity:0}.st1.u{stop-color:var(--d-up)}.st1.d{stop-color:var(--d-dn)}
.dx-tile p{margin:auto 0 0;font-size:12.5px;line-height:1.55;color:var(--d-mut)}
.dx-tile.note{background:transparent!important;border-style:dashed;box-shadow:none;justify-content:center}
.dx-tile.note p{margin:8px 0 0;font-size:13.5px;color:var(--d-tx2)}
.dx-tile.note:hover{transform:none}
/* ตัวเลขเปลี่ยน → กะพริบครั้งเดียว */
.fl-u .vv{animation:flu 1.2s ease-out 1}.fl-d .vv{animation:fld 1.2s ease-out 1}
@keyframes flu{0%{background:color-mix(in srgb,var(--d-up) 30%,transparent)}100%{background:transparent}}
@keyframes fld{0%{background:color-mix(in srgb,var(--d-dn) 30%,transparent)}100%{background:transparent}}

.dx-sig{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:14px;margin-bottom:46px}
.dx-s{padding:18px 20px 16px}
.dx-s.star{grid-row:span 2;border-color:color-mix(in srgb,var(--d-acc) 40%,transparent);background:linear-gradient(160deg,color-mix(in srgb,var(--d-acc) 9%,var(--d-card2)),var(--d-card2) 60%)!important}
.dx-s .hd{display:flex;justify-content:space-between;align-items:center;gap:8px}
.dx-s .nm{font-size:14.5px;color:var(--d-tx2)}
.dx-s .pill{font-size:12px;border-radius:999px;padding:2px 10px;white-space:nowrap;border:1px solid}
.pill.ok{color:var(--d-up);border-color:color-mix(in srgb,var(--d-up) 40%,transparent);background:color-mix(in srgb,var(--d-up) 8%,transparent)}
.pill.mid{color:var(--d-tx2);border-color:var(--d-line2)}
.pill.warn{color:var(--d-acc-tx);border-color:color-mix(in srgb,var(--d-acc) 45%,transparent);background:color-mix(in srgb,var(--d-acc) 10%,transparent)}
.dx-s .vv{font-family:"IBM Plex Mono",monospace;font-size:30px;color:var(--d-tx);font-weight:500;margin:8px 0 10px;border-radius:6px}
.dx-s.star .vv{font-size:44px;color:var(--d-acc-tx)}
.dx-s .rg .ln{position:relative;display:block;height:4px;border-radius:4px;background:linear-gradient(90deg,rgba(59,130,196,.55),var(--d-track),color-mix(in srgb,var(--d-acc) 60%,transparent))}
.dx-s .rg .dot{position:absolute;top:50%;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:var(--d-card2);border:2.5px solid var(--d-tx)}
.dx-s .rg .z{position:absolute;top:-4px;bottom:-4px;width:1px;background:var(--d-line2)}
.dx-s .rg .mm{display:flex;justify-content:space-between;margin-top:5px;font-family:"IBM Plex Mono",monospace;color:var(--d-faint)}
.dx-s .rg small{font-size:10.5px}
.dx-s p{font-size:13.5px;line-height:1.65;color:var(--d-tx2);margin:12px 0 0}
.dx-s .thai{margin-top:14px;padding:12px 14px;border-radius:12px;background:var(--d-chip);border-left:3px solid var(--d-acc);font-size:13.5px;line-height:1.65;color:var(--d-tx2)}

/* ชวนไปดูคลิปในโซเชียล (การ์ดกรมท่าทั้งสองโหมด) */
.dx-social{display:grid;grid-template-columns:1.05fr 1fr;align-items:stretch;border-radius:24px;overflow:hidden;margin-bottom:52px;background:linear-gradient(120deg,#0E2F49,#0B2439);border:1px solid rgba(255,255,255,.1);box-shadow:var(--d-shadow)}
.dx-soc-tx{padding:34px 36px;position:relative;z-index:1}
.dx-soc-tx .dx-k{color:#F2A649}
.dx-soc-tx h3{font-size:24px;line-height:1.4;font-weight:500;color:#fff;margin:10px 0}
.dx-soc-tx p{color:#AFC0D0;font-size:15px;line-height:1.7;margin:0 0 22px}
.dx-soc-b{display:flex;flex-wrap:wrap;gap:10px}
.dx-sb{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;border:1px solid rgba(255,255,255,.25);color:#fff;text-decoration:none;font-size:14.5px;transition:background .2s,border-color .2s}
.dx-sb svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.dx-sb:hover{background:#E8891A;border-color:#E8891A}
.dx-soc-ph{position:relative;min-height:260px}
.dx-soc-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 30%;-webkit-mask-image:linear-gradient(90deg,transparent,#000 38%);mask-image:linear-gradient(90deg,transparent,#000 38%)}

/* บทเรียน */
.dx-lesson{padding:26px 28px 22px}
.dx-intro{margin:0 0 14px;font-size:15.5px;color:var(--d-tx2)}
.dx-lesson .filt{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px}
.dx-lesson .filt .lb{font-size:13px;color:var(--d-mut);margin-right:4px}
.fchip{font:inherit;font-size:13px;cursor:pointer;border-radius:999px;padding:5px 13px;border:1px solid var(--d-line2);background:transparent;color:var(--d-tx2);display:inline-flex;align-items:center;gap:7px}
.fchip::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c,var(--d-tx))}
.fchip.clear::before{display:none}
.fchip:hover{border-color:var(--d-mut)}
.fchip.act{background:var(--c);border-color:var(--c);color:#fff}
.a-us{--c:#EE8E2E}.a-dm{--c:#8A7CCB}.a-em{--c:#45A9D6}.a-th{--c:#E0568A}.a-re{--c:#A07A4B}.a-gd{--c:#E4B92A}.a-cm{--c:#8DB23C}.a-bd{--c:#3F7DB5}.a-cs{--c:#9AA3AE}.a-dv{--c:#12925F}
.ptbl-hint{display:none}
.ptbl{overflow-x:auto;margin:0 -4px}
.ptbl table{width:100%;min-width:960px;border-collapse:separate;border-spacing:4px}
.ptbl th{font-weight:400;font-size:13.5px;color:var(--d-tx);padding:4px 6px}
.ptbl th small{display:block;font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--d-faint)}
.ptbl th.rk{font-family:"IBM Plex Mono",monospace;color:var(--d-mut);width:30px;padding:4px 2px;text-align:center;position:sticky;left:0;z-index:1;background:#fff;box-shadow:6px 0 8px -6px rgba(0,0,0,.25)}
html[data-theme="dark"] .ptbl th.rk{background:#152331}
.ptbl td{border-radius:6px;padding:7px 4px;text-align:center;background:color-mix(in srgb,var(--c) 62%,#fff);border:0;transition:opacity .2s}
.ptbl td b{display:block;font-size:12px;font-weight:500;line-height:1.3;color:#15222E}
.ptbl td i{font-style:normal;font-family:"IBM Plex Mono",monospace;font-size:13px;color:#15222E}
.ptbl td.dv{background:#12925F;box-shadow:0 0 0 2px #0B6E47 inset}
.ptbl th.gap,.ptbl td.gap{width:6px;padding:0;background:none}
.ptbl th.sm{font-size:12.5px;color:var(--d-tx);line-height:1.3;border-bottom:2px solid #E8891A}
.ptbl th.sm small{font-family:inherit;font-size:11px}
.ptbl td.dv b,.ptbl td.dv i{color:#fff}
html[data-theme="dark"] .ptbl td{background:color-mix(in srgb,var(--c) 70%,#DCE4EC)}
html[data-theme="dark"] .ptbl td b{color:#15222E}
html[data-theme="dark"] .ptbl td i{color:#15222E}
html[data-theme="dark"] .ptbl td.dv{background:#17A56D}
html[data-theme="dark"] .ptbl td.dv b,html[data-theme="dark"] .ptbl td.dv i{color:#fff}
.divhi .dv-x{display:block;margin-top:8px;font-size:13.5px;color:var(--d-tx2)}
.dx-lesson.filtering .ptbl td{opacity:.18}
.dx-lesson.filtering .ptbl td.on{opacity:1;box-shadow:0 0 0 2px var(--c)}
.dx-lg2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0 14px}
.divhi,.dx-ytd{border-radius:16px;padding:16px 18px;font-size:14px;line-height:1.75;color:var(--d-tx2)}
.divhi{background:color-mix(in srgb,#1FA877 8%,transparent);border:1px solid color-mix(in srgb,#1FA877 35%,transparent)}
.divhi .t,.dx-ytd .t{font-size:15.5px;font-weight:500;color:var(--d-tx);margin-bottom:6px}
.divhi .t{color:#169467}
html[data-theme="dark"] .divhi .t{color:#5FE0AE}
.dx-ytd{background:var(--d-chip);border:1px solid var(--d-line)}
.dx-ytd p{margin:0 0 8px}
.dx-ybars .br{display:grid;grid-template-columns:120px 1fr 60px;align-items:center;gap:10px;padding:6px 0;font-size:13.5px;color:var(--d-tx2)}
.br .tr{position:relative;height:8px;background:var(--d-track);border-radius:5px}
.br .tr::before{content:"";position:absolute;left:50%;top:-4px;bottom:-4px;width:1px;background:var(--d-line2)}
.br .tr i{position:absolute;top:0;bottom:0;border-radius:5px}
.br .tr i.u{left:50%;background:var(--d-up)}.br .tr i.d{right:50%;background:var(--d-dn)}
.br .pc{font-family:"IBM Plex Mono",monospace;text-align:right;font-size:13px}
.dx-ytd .sw{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c);margin-right:7px}
.dx-ytd small{display:block;margin-top:6px;font-size:11.5px;color:var(--d-faint);font-family:"IBM Plex Mono",monospace}
.srcs{border-top:1px solid var(--d-line);padding-top:12px;font-size:13.5px;color:var(--d-tx2)}
.srcs summary{cursor:pointer;color:var(--d-tx)}
.srcs .bd{padding:12px 0 4px;line-height:1.7}
.srcs table{width:100%;border-collapse:collapse;margin-bottom:10px;font-size:13px}
.srcs th,.srcs td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--d-line);vertical-align:top}
.srcs th{color:var(--d-mut);font-weight:400}
.dx-lesson .pnote{margin-top:12px;font-size:12.5px;line-height:1.65;color:var(--d-mut)}
.dx-lesson .pnote b{color:var(--d-acc-tx)!important}
.concl{margin-top:18px;border-radius:22px;padding:30px 32px;background:var(--d-card2);border:1px solid var(--d-line);border-left:4px solid var(--d-acc);box-shadow:var(--d-shadow)}
html[data-theme="dark"] .concl{background:linear-gradient(135deg,#123A5A,#0B2439 70%)}
.concl .h{font-size:25px;font-weight:500;color:var(--d-tx);margin-bottom:8px}
.concl p{font-size:15px;line-height:1.8;color:var(--d-tx2);margin:0 0 10px}
.concl .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}
.concl .stp{background:var(--d-chip);border:1px solid var(--d-line);border-radius:14px;padding:14px 16px;font-size:13px;line-height:1.6;color:var(--d-tx2)}
.concl .num{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.12em;color:var(--d-acc-tx)}
.concl .tt{font-size:15px;color:var(--d-tx);margin:4px 0;font-weight:500}

.tp-band+.tp-main{padding-top:56px}
.tool{max-width:1080px;margin:0 auto}

/* ===== โหมดมืด: หัวเว็บ · หัวเครื่องมือ · ท้ายหน้า ให้เข้ากัน ===== */
.flogo-dk{display:none}
html[data-theme="dark"] body.tpage{background:#0A1C2E}
html[data-theme="dark"] .nav{background:rgba(9,25,41,.92)!important;border-bottom-color:rgba(255,255,255,.08)!important}
html[data-theme="dark"] .nav .flogo:not(.flogo-dk){display:none}
html[data-theme="dark"] .nav .flogo-dk{display:block}
html[data-theme="dark"] .nav .links a{color:#AFC0D0}
html[data-theme="dark"] .nav .links a:hover,html[data-theme="dark"] .nav .links a.on{color:#fff}
html[data-theme="dark"] .tsw{border-color:rgba(255,255,255,.3)}
html[data-theme="dark"] .tp-hero{background:#0D2438;border-bottom-color:rgba(255,255,255,.08)}
html[data-theme="dark"] .tp-hero h1{color:#fff}
html[data-theme="dark"] .tp-hero .lede{color:#AFC0D0}
html[data-theme="dark"] .tp-row .tnum{background:#E8891A}
html[data-theme="dark"] .tp-row .tcat{color:#DCE6F0;border-color:rgba(255,255,255,.4);background:transparent}
html[data-theme="dark"] .tp-meta span{color:#C3D1DE;border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.04)}
html[data-theme="dark"] .tp-ill{opacity:.88}
html[data-theme="dark"] .tp-clip-bub,html[data-theme="dark"] .tp-clip-bub::before{background:#102A42;border-color:rgba(255,255,255,.35)}
html[data-theme="dark"] .tp-clip-bub{box-shadow:5px 5px 0 #06121E}
html[data-theme="dark"] .tp-clip-bub p{color:#C3D1DE}
html[data-theme="dark"] .tp-clip-bub p b{color:#fff}
html[data-theme="dark"] .tp-clip-av{border-color:rgba(255,255,255,.5);box-shadow:3px 3px 0 #06121E}

html[data-theme="dark"] .tp-main{background:#0A1C2E}
html[data-theme="dark"] .jo-bub,html[data-theme="dark"] .jo-bub::after{background:#102A42;border-color:rgba(255,255,255,.2)}
html[data-theme="dark"] .jo-bub{box-shadow:6px 6px 0 #06121E}
html[data-theme="dark"] .jo-h,html[data-theme="dark"] .jo-sub b,html[data-theme="dark"] .jo-end b,html[data-theme="dark"] .jo-grid li b{color:#fff}
html[data-theme="dark"] .jo-sub,html[data-theme="dark"] .jo-end,html[data-theme="dark"] .jo-grid li span{color:#AFC0D0}
html[data-theme="dark"] .jo-end{border-top-color:rgba(255,255,255,.14)}
html[data-theme="dark"] .jo-grid li{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1)}
html[data-theme="dark"] .jo-grid li i{background:transparent;border-color:rgba(255,255,255,.35)}
html[data-theme="dark"] .jo-grid li i svg{stroke:#F2A649}
html[data-theme="dark"] .nx{background:#102A42;border-color:rgba(255,255,255,.2)}
html[data-theme="dark"] .nx.learn{box-shadow:6px 6px 0 #06121E}
html[data-theme="dark"] .nx h3{color:#fff}
html[data-theme="dark"] .nx p{color:#AFC0D0}
html[data-theme="dark"] .nx-book,html[data-theme="dark"] .nx-cover{background:linear-gradient(135deg,#17344F,#0E2A43)}
html[data-theme="dark"] .nx-cover img{box-shadow:5px 5px 0 #06121E,0 12px 26px -10px rgba(0,0,0,.6)}
html[data-theme="dark"] .nx-tag{background:rgba(232,137,26,.12);border-color:rgba(232,137,26,.35);color:#F2B25C}
html[data-theme="dark"] .nx .t-btn.alt2{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
html[data-theme="dark"] .adv2{border:1px solid rgba(255,255,255,.1)}
html[data-theme="dark"] .fine{color:#8FA6BC}
html[data-theme="dark"] .fine li::before{background:#5F7890}
html[data-theme="dark"] .fine-risk{background:rgba(232,137,26,.12);border-color:rgba(232,137,26,.35);color:#F2B25C}
html[data-theme="dark"] .foot{border-top:1px solid rgba(255,255,255,.06)}


/* ===== แผงกราฟใหญ่ ===== */
.open{cursor:pointer}
.dx-tile.open{position:relative}
.dx-open{position:absolute;top:14px;right:14px;font-size:11.5px;color:var(--d-acc-tx);opacity:0;transition:opacity .2s}
.dx-tile.open:hover .dx-open,.dx-tile.open:focus-visible .dx-open{opacity:1}
.open:focus-visible{outline:2px solid var(--d-acc);outline-offset:2px}
.dx-dlg{margin:auto;width:min(960px,calc(100vw - 32px));max-width:none;max-height:calc(100vh - 32px);padding:0;border:1px solid var(--d-line);border-radius:22px;background:var(--d-card2);color:var(--d-tx2);box-shadow:0 30px 80px -20px rgba(6,18,30,.5)}
.dx-dlg::backdrop{background:rgba(6,18,30,.55);backdrop-filter:blur(3px)}
.cg{padding:22px 24px 18px}
.cg-hd{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.cg-t{display:flex;align-items:center;gap:10px}
.cg-t .cd{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--d-mut);border:1px solid var(--d-line2);border-radius:6px;padding:1px 7px}
.cg-t h3{margin:0;font-size:21px;font-weight:500;color:var(--d-tx)}
.cg-v{display:flex;align-items:baseline;gap:12px;margin-top:6px}
.cg-v b{font-family:"IBM Plex Mono",monospace;font-size:32px;font-weight:500;color:var(--d-tx)}
.cg-v span{font-family:"IBM Plex Mono",monospace;font-size:14px}
.cg-v .u{color:var(--d-up)}.cg-v .d{color:var(--d-dn)}
.cg-x{font:inherit;font-size:26px;line-height:1;width:40px;height:40px;border-radius:50%;border:1px solid var(--d-line);background:var(--d-chip);color:var(--d-tx);cursor:pointer}
.cg-x:hover{border-color:var(--d-line2)}
.cg-bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;margin:16px 0 8px}
.cg-seg{display:inline-flex;padding:3px;border-radius:12px;background:var(--d-chip);border:1px solid var(--d-line)}
.cg-seg button{font:inherit;font-size:13px;border:0;background:transparent;color:var(--d-mut);padding:6px 12px;border-radius:9px;cursor:pointer}
.cg-seg button[aria-pressed="true"]{background:var(--d-card2);color:var(--d-tx);box-shadow:0 1px 3px rgba(0,0,0,.14)}
.cg-seg button:disabled{opacity:.35;cursor:not-allowed}
#cgRange button{font-family:"IBM Plex Mono",monospace}
.cg-rc{font-size:13px;color:var(--d-mut);margin-bottom:6px}
.cg-rc b{font-family:"IBM Plex Mono",monospace}
.cg-rc .u{color:var(--d-up)}.cg-rc .d{color:var(--d-dn)}
.cg-box{position:relative;height:min(420px,52vh);border:1px solid var(--d-line);border-radius:14px;background:var(--d-bg);overflow:hidden}
.cg-box svg{display:block;touch-action:pan-y}
.cg-grid{stroke:var(--d-line);stroke-width:1}
.cg-ax{font-family:"IBM Plex Mono",monospace;font-size:11px;fill:var(--d-faint)}
.cg-line{fill:none;stroke-width:2;stroke-linejoin:round}
.cg-line.u{stroke:var(--d-up)}.cg-line.d{stroke:var(--d-dn)}
.cg-bfill.u{fill:var(--d-up);opacity:.14}.cg-bfill.d{fill:var(--d-dn);opacity:.14}
.cg-baseline{stroke:var(--d-mut);stroke-dasharray:4 4;stroke-width:1}
.cg-wick{stroke-width:1.2}.cg-wick.u{stroke:var(--d-up)}.cg-wick.d{stroke:var(--d-dn)}
.cg-body.u{fill:var(--d-up)}.cg-body.d{fill:var(--d-dn)}
.cg-lastbg.u{fill:var(--d-up)}.cg-lastbg.d{fill:var(--d-dn)}
.cg-last{font-family:"IBM Plex Mono",monospace;font-size:11px;fill:#fff}
.cg-cross{stroke:var(--d-mut);stroke-dasharray:3 3}
.cg-dot{fill:var(--d-card2);stroke:var(--d-tx);stroke-width:2}
.cg-tip{display:none;position:absolute;top:8px;pointer-events:none;background:var(--d-card2);border:1px solid var(--d-line2);border-radius:10px;padding:7px 10px;font-size:12px;color:var(--d-tx2);box-shadow:0 6px 18px -8px rgba(0,0,0,.35);white-space:nowrap}
.cg-tip b{color:var(--d-tx)}
.cg-tip span{display:inline-block;margin-left:8px;font-family:"IBM Plex Mono",monospace}
.cg-tip .u{color:var(--d-up)}.cg-tip .d{color:var(--d-dn)}
.cg-help{margin-top:12px;font-size:13.5px;line-height:1.7;color:var(--d-tx2)}
.cg-help b{color:var(--d-tx)}.cg-help .u{color:var(--d-up)}.cg-help .d{color:var(--d-dn)}
.cg-help a{color:var(--d-acc-tx)}
.cg-help small{color:var(--d-mut)}
.cg-note{margin:8px 0 0;font-size:12px;color:var(--d-faint)}
@media(max-width:640px){
  .dx-dlg{width:100vw;max-height:92vh;margin:auto 0 0;border-radius:22px 22px 0 0}
  .cg{padding:18px 16px 14px}.cg-v b{font-size:26px}
  .cg-bar{flex-direction:column}.cg-seg{justify-content:space-between}.cg-seg button{padding:6px 9px;font-size:12.5px}
  .cg-box{height:300px}
  .cg-tip span{display:block;margin:0}
}


/* ===== v4: วิดเจ็ต TradingView + มิเตอร์แบบแยกตัววัด ===== */
.dx-tape{background:var(--d-card2)!important;border-bottom:1px solid var(--d-line);-webkit-mask-image:none!important;mask-image:none!important;padding:0 0 2px;min-height:46px}
.dx-tape .tradingview-widget-copyright{max-width:1160px;margin:2px auto 0;padding:0 32px;font-size:13px!important;text-align:right}
.tradingview-widget-copyright{font-size:13px!important;line-height:1.5;color:var(--d-faint);margin-top:6px}
.tradingview-widget-copyright a{color:var(--d-faint)!important;text-decoration:none}
.tradingview-widget-copyright a:hover{color:var(--d-acc-tx)!important}
.tradingview-widget-copyright .blue-text{color:inherit!important}
.dx-meter{display:grid;grid-template-columns:1.1fr 1fr;gap:24px 34px;padding:26px 30px;margin-bottom:46px}
.hm-note{margin:8px 0 12px;font-size:13px;line-height:1.6;color:var(--d-mut)}
.tv-heat{position:relative;flex:1;min-height:360px;border-radius:12px;overflow:hidden;background:var(--d-bg)}
.tv-heat .tradingview-widget-container{height:calc(100% - 26px)!important;min-height:334px}
.tv-heat .tradingview-widget-copyright{position:absolute;left:10px;bottom:4px;margin:0}
.dx-meter .dx-teach{margin-top:0;padding-top:0;border-top:0}
.dx-parts{margin-top:16px;padding-top:14px;border-top:1px solid var(--d-line)}
.pt-h{font-size:12.5px;color:var(--d-mut);margin-bottom:8px}
.pt{display:grid;grid-template-columns:1fr 110px 30px;align-items:center;gap:10px;padding:5px 0;font-size:13.5px;color:var(--d-tx2)}
.pt .tr{height:7px;border-radius:5px;background:var(--d-track);overflow:hidden}
.pt .tr i{display:block;height:100%;border-radius:5px}
.pt .tr i.greed{background:#E8891A}.pt .tr i.fear{background:#3B82C4}.pt .tr i.mid{background:#8FB3D6}
.pt b{font-family:"IBM Plex Mono",monospace;text-align:right;color:var(--d-tx)}
.dx-tile{position:relative}
.dx-tile .tv-mini{height:150px;margin:8px -6px 4px;border-radius:12px;overflow:hidden}
.dx-tile .tv-mini iframe{border-radius:12px}
.tv-hit{position:absolute;left:0;right:0;top:0;height:calc(150px + 50px);border:0;background:transparent;cursor:pointer;border-radius:20px 20px 0 0;display:flex;justify-content:flex-end;align-items:flex-start;padding:14px}
.tv-hit span{font:inherit;font-size:11.5px;color:var(--d-acc-tx);opacity:0;transition:opacity .2s}
.dx-tile:hover .tv-hit span,.tv-hit:focus-visible span{opacity:1}
.tv-hit:focus-visible{outline:2px solid var(--d-acc);outline-offset:-2px}
.dx-tile p{margin-top:6px!important}
.dx-tile .tradingview-widget-copyright{margin-top:8px}
.dx-mk .mk-credit{grid-column:1/-1;text-align:right;margin-top:-6px}
.dx-mk .mk-credit .tradingview-widget-copyright{margin:0}
.dx-lesson .divhi{margin:18px 0 14px}
.dx-s .thai small{display:block;margin-top:4px;font-size:11.5px;color:var(--d-faint)}
.dx-how{margin:-28px 0 46px;background:var(--d-card);border:1px solid var(--d-line);border-radius:16px;padding:12px 18px}
.dx-how summary{font-weight:500}
.dx-how .bd p{margin:10px 0 6px}
.dx-src{margin:26px 0 0;font-size:12px;line-height:1.7;color:var(--d-faint)}
.dx-src summary{cursor:pointer;font-size:13px;color:var(--d-mut);list-style:none;display:inline-flex;gap:6px;align-items:center}
.dx-src summary::-webkit-details-marker{display:none}
.dx-src summary::before{content:"ⓘ";font-size:13px}
.dx-src summary span{color:var(--d-faint)}
.dx-src[open] summary{margin-bottom:6px}
.cg-box{position:relative;height:min(460px,56vh)}
.cg-box .tradingview-widget-container{height:calc(100% - 26px)!important}
.cg-box .tradingview-widget-copyright{position:absolute;left:12px;bottom:4px;margin:0}

/* ===== บทสรุปการจัดพอร์ต (visual) ===== */
.pm{margin-top:26px;border-radius:26px;padding:40px 40px 34px;background:linear-gradient(140deg,#0E2F49,#0B2439 60%,#123A5A);color:#C3D1DE;position:relative;overflow:hidden;box-shadow:var(--d-shadow)}
.pm-bg{position:absolute;left:0;right:0;bottom:0;width:100%;height:92%;opacity:.2;pointer-events:none;
  -webkit-mask-image:linear-gradient(to top,#000 25%,transparent 100%);mask-image:linear-gradient(to top,#000 25%,transparent 100%)}
.pm-bg .pm-grid line{stroke:#fff;stroke-opacity:.35;stroke-width:1;stroke-dasharray:3 7}
.pm-bg .pm-line{fill:none;stroke:#F2A649;stroke-width:3;stroke-opacity:.9}
.pm>*:not(.pm-bg){position:relative;z-index:1}
.pm::before{content:"";position:absolute;right:-80px;top:-80px;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,rgba(232,137,26,.22),transparent 70%)}
.pm .dx-k{color:#F2A649}
.pm-head h2{font-size:clamp(28px,3.4vw,42px);line-height:1.2;font-weight:500;color:#fff;margin:10px 0 8px}
.pm-head p{margin:0;font-size:16px;color:#AFC0D0}
.pm-vs{display:grid;grid-template-columns:1fr 1.3fr;gap:14px;margin:26px 0 30px}
.pm-card{border-radius:18px;padding:18px 20px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);position:relative}
.pm-card b{display:block;font-size:17px;color:#fff;font-weight:500;margin:6px 0 4px}
.pm-card p{margin:0;font-size:14px;line-height:1.6}
.pm-card.no{opacity:.85}
.pm-card.yes{border-color:rgba(232,137,26,.55);background:rgba(232,137,26,.08)}
.pm-ic{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;font-size:14px;font-weight:600}
.pm-card.no .pm-ic{background:rgba(255,107,107,.18);color:#FF8A8A}
.pm-card.yes .pm-ic{background:#E8891A;color:#fff}
.pm-fvmr{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.pm-fvmr span{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:#DCE6F0;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:4px 12px 4px 4px}
.pm-fvmr i{font-style:normal;font-family:"IBM Plex Mono",monospace;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#0E2F49;font-weight:600;font-size:12px}
.pm-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;position:relative}
.pm-steps::before{content:"";position:absolute;left:6%;right:6%;top:21px;height:2px;background:linear-gradient(90deg,#E8891A,rgba(232,137,26,.25))}
.pm-steps li{position:relative;text-align:center;padding:0 6px}
.pm-steps .n{position:relative;z-index:1;display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#0E2F49;border:2px solid #E8891A;color:#fff;font-family:"IBM Plex Mono",monospace;font-size:17px;font-weight:500;box-shadow:0 0 0 6px #0E2F49}
.pm-steps b{display:block;margin:12px 0 4px;font-size:16px;color:#fff;font-weight:500}
.pm-steps p{margin:0;font-size:13.5px;line-height:1.6;color:#AFC0D0}
.pm-goal{margin-top:30px;padding:18px 22px;border-radius:16px;background:rgba(4,14,24,.4);border-left:4px solid #E8891A;display:grid;gap:4px}
.pm-goal b{font-size:17px;color:#fff;font-weight:500}
/* รูป hero ใหม่ (พื้นน้ำเงินทั้งภาพ) — เลื่อนจุดครอปไปทางขวาให้ตัวจารย์ไม่โดนตัด */
.tp-ill img{object-position:90% center}

/* ===== v7 มิเตอร์โลภ–กลัว (การ์ดหลัก · โทนน้ำเงินเข้มทั้ง 2 โหมด เข้าชุดกับการ์ดบทสรุป) ===== */
.fg{--zc:#AFC2D4;position:relative;overflow:hidden;border-radius:26px;padding:30px 34px 26px;margin-bottom:46px;color:#C3D1DE;
  background:radial-gradient(120% 90% at 30% 100%,color-mix(in srgb,var(--zc) 22%,transparent),transparent 60%),linear-gradient(150deg,#0F3150,#0B2439 55%,#0E2C46);box-shadow:var(--d-shadow)}
.fg[data-b="0"]{--zc:#2F6FB5}.fg[data-b="1"]{--zc:#6FA7DA}.fg[data-b="2"]{--zc:#AFC2D4}.fg[data-b="3"]{--zc:#F2B35A}.fg[data-b="4"]{--zc:#E8891A}
.fg::after{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:32px 32px;-webkit-mask-image:linear-gradient(to bottom,#000,transparent 80%);mask-image:linear-gradient(to bottom,#000,transparent 80%)}
.fg>*{position:relative;z-index:1}
.fg .dx-k{color:#F2A649}
.fg-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.fg-head h2{margin:6px 0 0;font-size:clamp(24px,2.6vw,32px);font-weight:500;color:#fff;line-height:1.25}
.fg-head p{margin:0;font-size:14px;color:#9FB3C6}
.fg-body{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:28px;align-items:center;margin-top:10px}
.fg-dial{text-align:center}
.fg-svg{width:100%;max-width:560px;height:auto;display:block;margin:0 auto;overflow:visible}
.fg-track{fill:none;stroke:rgba(255,255,255,.07);stroke-width:48}
.fg-seg{fill:none;stroke-width:34;opacity:.38;transition:opacity .6s}
.fg-seg.b0{stroke:#2F6FB5}.fg-seg.b1{stroke:#6FA7DA}.fg-seg.b2{stroke:#AFC2D4}.fg-seg.b3{stroke:#F2B35A}.fg-seg.b4{stroke:#E8891A}
.fg[data-b="0"] .fg-seg.b0,.fg[data-b="1"] .fg-seg.b1,.fg[data-b="2"] .fg-seg.b2,.fg[data-b="3"] .fg-seg.b3,.fg[data-b="4"] .fg-seg.b4{opacity:1;filter:drop-shadow(0 0 10px var(--zc))}
.fg-minor line{stroke:rgba(255,255,255,.28);stroke-width:1.5}
.fg-num{font-family:"IBM Plex Mono",monospace;font-size:12px;fill:#7F97AD}
.fg-lab{font-family:Kanit,sans-serif;font-size:15px;fill:#8FA5B9}
.fg[data-b="0"] .fg-lab.b0,.fg[data-b="1"] .fg-lab.b1,.fg[data-b="2"] .fg-lab.b2,.fg[data-b="3"] .fg-lab.b3,.fg[data-b="4"] .fg-lab.b4{fill:#fff;font-weight:500}
.fg .dx-needle{transform-box:view-box;transform-origin:260px 250px;transform:rotate(-90deg);transition:transform 1.8s cubic-bezier(.2,.8,.25,1)}
.fg-nd{fill:#fff}
.fg-nd-glow{stroke:var(--zc);stroke-width:10;stroke-linecap:round;opacity:.7}
.fg-hub-ring{fill:none;stroke:var(--zc);stroke-width:3;opacity:.9;filter:drop-shadow(0 0 12px var(--zc))}
.fg-score{font-family:"IBM Plex Mono",monospace;font-size:46px;font-weight:500;fill:#fff}
.fg-of{font-family:"IBM Plex Mono",monospace;font-size:12px;fill:#7F97AD}
.fg-zone{margin-top:16px}
.fg .dx-lvl{margin-top:0;font-size:17px;padding:6px 20px;color:#fff;border:1px solid var(--zc);background:color-mix(in srgb,var(--zc) 22%,transparent);box-shadow:0 0 24px -6px var(--zc)}
.fg-hist{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 14px;margin-top:16px;font-size:12.5px;color:#8FA5B9}
.fg-hist::before{content:"เทียบย้อนหลัง";width:100%;font-size:12px;color:#6F879C}
.fh{display:inline-flex;align-items:center;gap:6px}
.fh-n{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;font-style:normal;font-family:"IBM Plex Mono",monospace;font-size:12.5px;font-weight:500;color:#0B2439}
.fh-n.b0{background:#2F6FB5;color:#fff}.fh-n.b1{background:#6FA7DA}.fh-n.b2{background:#AFC2D4}.fh-n.b3{background:#F2B35A}.fh-n.b4{background:#E8891A;color:#fff}
.fg-parts .pt-h{font-size:12.5px;color:#8FA5B9;margin-bottom:10px}
.pc{--pc:#AFC2D4;display:grid;grid-template-columns:1fr auto;gap:6px 14px;align-items:center;padding:14px 16px 16px;margin-bottom:10px;border-radius:16px;background:rgba(4,14,24,.35);border:1px solid rgba(255,255,255,.09);border-left:4px solid var(--pc)}
.pc.b0{--pc:#2F6FB5}.pc.b1{--pc:#6FA7DA}.pc.b2{--pc:#AFC2D4}.pc.b3{--pc:#F2B35A}.pc.b4{--pc:#E8891A}
.pc-t b{display:block;font-size:16.5px;font-weight:500;color:#fff}
.pc-t small{display:block;font-size:12.5px;color:#8FA5B9;margin-top:2px}
.pc-v{text-align:right;line-height:1}
.pc-v em{display:block;font-style:normal;font-family:"IBM Plex Mono",monospace;font-size:34px;font-weight:500;color:var(--pc)}
.pc-v span{display:block;margin-top:4px;font-size:12.5px;color:#C3D1DE}
.pc-bar{grid-column:1/-1;position:relative;height:6px;border-radius:4px;margin-top:6px;background:linear-gradient(90deg,#2F6FB5,#6FA7DA 30%,#AFC2D4 50%,#F2B35A 70%,#E8891A)}
.pc-bar i{position:absolute;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:#fff;border:3px solid var(--pc);box-shadow:0 0 10px var(--pc)}
.fg-side .fg-teach{margin-top:14px}
.fg-teach{margin:18px 0 0;font-size:15px;line-height:1.75;color:#C3D1DE}
.fg-teach b{color:#fff}
.fg-learn{display:inline-block;margin-top:14px;color:#F2A649;text-decoration:none;border-bottom:1px dashed rgba(242,166,73,.6);font-size:14px}
@media(max-width:900px){.fg-body{grid-template-columns:1fr}}
@media(max-width:640px){.fg{padding:22px 16px 20px;border-radius:20px}.fg-head p{display:none}.fg-lab{font-size:17px}.fg-num{font-size:14px}}
.pm-goal span{font-size:14.5px;line-height:1.6}
/* ที่มาข้อมูล — กล่องแยก */
.dx-src{margin:22px 0 0;padding:16px 20px;border-radius:14px;border:1px dashed var(--d-line2);font-size:12.5px;line-height:1.7;color:var(--d-mut)}
.dx-src .src-h{display:block;font-size:13px;color:var(--d-tx);margin-bottom:6px;font-weight:500}
.dx-src ul{margin:0;padding-left:18px}
.dx-src small{display:block;margin-top:8px;font-size:11.5px;color:var(--d-faint)}
@media(max-width:980px){.pm-vs{grid-template-columns:1fr}.pm-steps{grid-template-columns:1fr 1fr;row-gap:26px}.pm-steps::before{display:none}}
@media(max-width:640px){.pm{padding:26px 20px 22px;border-radius:20px}.pm-steps{grid-template-columns:1fr}.pm-steps li{text-align:left;display:grid;grid-template-columns:44px 1fr;column-gap:14px;align-items:start}.pm-steps .n{grid-row:span 2}.pm-steps b{margin:2px 0}}

@media(max-width:980px){.dx-meter{grid-template-columns:1fr}}
@media(max-width:640px){.tv-heat{min-height:360px}.tv-heat .tradingview-widget-container{min-height:334px}.dx-meter{padding:20px 18px;gap:14px}.pt{grid-template-columns:1fr 70px 28px;font-size:12.5px}.dx-tile .tv-mini{height:130px}.tv-hit{height:calc(130px + 46px)}.cg-box{height:360px}}

@media(max-width:980px){
    .dx-mk{grid-template-columns:repeat(2,1fr)}
  .dx-sig{grid-template-columns:1fr 1fr}.dx-s.star{grid-column:1/-1;grid-row:auto}
  .concl .steps{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .dx{padding:0 16px}.dash{padding-bottom:50px}
  .kpi-in{gap:10px;height:50px}.kpi-scroll{gap:14px}.kpi{padding-left:14px}#kDate{display:none}
  .dx-theme button span{display:none}.dx-theme button{padding:6px 8px}
  .dx-by{text-align:left}
  .dx-mwrap{grid-template-columns:1fr;justify-items:center;text-align:center}
  .dx-meter,.dx-lesson{padding:20px 18px}
  .dx-score b{font-size:54px}.dx-score{justify-content:center}
  .hm{grid-template-rows:repeat(3,minmax(64px,1fr))}.hc{padding:8px 9px}.hc b{font-size:15px}.hc.big b{font-size:24px}.hc .nm{font-size:12px}
  .dx-h h2{font-size:23px}
  .dx-mk{gap:10px}.dx-tile{padding:13px 13px 12px}.dx-tile .vv{font-size:21px}.dx-tile p{display:none}.dx-tile.note p{display:block}
  .dx-sig{grid-template-columns:1fr}
  .dx-social{grid-template-columns:1fr}.dx-soc-ph{min-height:220px;order:-1}
  .dx-soc-ph img{-webkit-mask-image:linear-gradient(0deg,transparent,#000 45%);mask-image:linear-gradient(0deg,transparent,#000 45%)}
  .dx-soc-tx{padding:6px 20px 26px}.dx-soc-tx h3{font-size:20px}
  .dx-lg2{grid-template-columns:1fr}
  .ptbl-hint{display:block;text-align:right;font-size:12px;color:var(--d-faint);margin:-6px 0 6px}
  .dx-ybars .br{grid-template-columns:96px 1fr 56px;font-size:12.5px}
  .concl{padding:22px 20px}.concl .steps{grid-template-columns:1fr}
}

/* ===== v8 · อ่านตลาดให้ลึกขึ้น ===== */
.dp{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:46px}
.dp-c{background:var(--d-card);border:1px solid var(--d-line);border-radius:20px;box-shadow:var(--d-shadow);padding:20px 20px 16px;display:flex;flex-direction:column;min-width:0;scroll-margin-top:calc(var(--navh,76px) + 70px)}
.dp-k{font-family:"IBM Plex Mono",monospace;font-size:11.5px;letter-spacing:.06em;color:var(--d-acc-tx)}
.dp-c h3{font-size:18px;line-height:1.4;font-weight:500;color:var(--d-tx);margin:6px 0 12px}
.dp-viz{min-height:150px}
.dp-viz svg{display:block;width:100%;height:auto}
.dp-viz .gl{stroke:var(--d-line);stroke-width:1}
.dp-viz .ax{font:10.5px "IBM Plex Mono",monospace;fill:var(--d-faint)}
.dp-viz .now{fill:none;stroke:var(--d-tx);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.dp-viz .ago{fill:none;stroke:var(--d-faint);stroke-width:2;stroke-dasharray:5 5}
.dp-viz .pt{fill:var(--d-card2);stroke:var(--d-acc);stroke-width:2.5}
.dp-lg{display:flex;gap:16px;justify-content:flex-end;font-size:12px;color:var(--d-mut);margin-top:2px}
.dp-lg span::before{content:"";display:inline-block;width:16px;height:0;border-top:3px solid var(--d-tx);vertical-align:middle;margin-right:6px}
.dp-lg .a::before{border-top:2px dashed var(--d-faint)}
.dp-now{font-size:13.5px;line-height:1.65;color:var(--d-tx2);margin:12px 0 0;padding:10px 12px;border-radius:12px;background:var(--d-chip);border-left:3px solid var(--d-acc)}
.dp-now:empty{display:none}
.dp-chips{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.dp-chip{display:flex;flex-direction:column;padding:8px 10px;border-radius:12px;border:1px solid var(--d-line);min-width:0}
.dp-chip small{font-size:11.5px;color:var(--d-mut)}
.dp-chip b{font-family:"IBM Plex Mono",monospace;font-size:17px;font-weight:500}
.dp-chip i{font-style:normal;font-size:11.5px;line-height:1.4;color:var(--d-tx2)}
.dp-big{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-bottom:12px}
.dp-big b{font-family:"IBM Plex Mono",monospace;font-size:34px;line-height:1.1;font-weight:500}
.dp-big .pill{font-size:12px;border-radius:999px;padding:2px 10px;border:1px solid}
.dp-big small{flex-basis:100%;font-size:12.5px;color:var(--d-mut)}
.iv{min-height:0;display:flex;flex-direction:column;gap:6px}
.iv-h{font-size:12.5px;color:var(--d-mut);margin-bottom:2px}
.iv-r{display:grid;grid-template-columns:40px 1fr 92px;align-items:center;gap:8px;font-size:12.5px}
.iv-y{font-family:"IBM Plex Mono",monospace;color:var(--d-mut)}
.iv-b{height:12px;border-radius:6px;background:var(--d-track);overflow:hidden}
.iv-b i{display:block;height:100%;border-radius:6px;background:var(--d-tx)}
.iv-m{color:var(--d-tx2);white-space:nowrap}
.iv-r.no .iv-b{background:transparent;border:1.5px dashed var(--d-acc)}
.iv-r.no .iv-m{color:var(--d-acc-tx);font-weight:500}
.dp-cap{font-size:11.5px;line-height:1.55;color:var(--d-faint);margin:8px 0 0}
.rl-l{font-size:12.5px;color:var(--d-mut);margin:4px 0 5px}
.rl-l+.rl-bar{margin-bottom:10px}
.rl-bar{display:flex;height:34px;border-radius:10px;overflow:hidden;gap:3px}
.rl-bar i{display:flex;align-items:center;justify-content:center;font-style:normal;font:500 13px "IBM Plex Mono",monospace;color:#fff;white-space:nowrap;overflow:hidden;min-width:0;padding:0 4px}
.rl-bar .nm{background:#0E2F49}.rl-bar .ry{background:#2F6FB5}.rl-bar .ry.neg{background:#8FA6BC}.rl-bar .be{background:var(--d-acc)}
html[data-theme="dark"] .rl-bar .nm{background:#2B4C6B}
.rl-lg{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--d-tx2)}
.rl-lg span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px;background:#2F6FB5}
.rl-lg .be::before{background:var(--d-acc)}
.dp-more{margin-top:14px;border-top:1px solid var(--d-line);padding-top:10px;font-size:13.5px;color:var(--d-tx2)}
.dp-more summary{cursor:pointer;color:var(--d-acc-tx);font-weight:500;list-style:none;display:inline-flex;align-items:center;gap:6px}
.dp-more summary::-webkit-details-marker{display:none}
.dp-more summary::after{content:"＋";font-size:13px}
.dp-more[open] summary::after{content:"－"}
.dp-more .bd{line-height:1.7}
.dp-more p{margin:10px 0 0}
.dp-more ul{margin:8px 0 0;padding-left:18px}.dp-more li{margin:4px 0}
.dp-tip{padding:9px 12px;border-radius:10px;background:color-mix(in srgb,var(--d-acc) 9%,transparent);color:var(--d-tx)}
.dp-ft{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;margin-top:auto;padding-top:4px}
.dx-s .dp-ft{margin-top:0}
/* ปุ่มคลิปอธิบาย (ขึ้นเมื่อใส่รหัสคลิปใน CLIPS) */
.dx-clip{display:inline-flex;align-items:center;gap:7px;margin-top:12px;font:inherit;font-size:13px;color:var(--d-tx);background:var(--d-chip);border:1px solid var(--d-line2);border-radius:999px;padding:5px 13px 5px 6px;cursor:pointer}
.dx-clip[hidden]{display:none}
.dx-clip i{font-style:normal;width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#E62117;color:#fff;font-size:10px}
.dx-clip:hover{border-color:var(--d-acc)}
.fg .dx-clip{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);color:#fff;margin-left:12px}
@media(max-width:1060px){.dp{grid-template-columns:1fr 1fr}.dp-c:last-child{grid-column:1/-1}}
@media(max-width:700px){.dp{grid-template-columns:1fr}.dp-c{padding:18px 16px 14px}.dp-chip b{font-size:15px}}

/* ขยายทั้งเครื่องมือ ~7% ให้อ่านง่ายขึ้น (สัดส่วนเดิมทุกอย่าง) */
.tool{zoom:1.07}
@media(max-width:640px){.tool{zoom:1}}
