/* GEX owns a semantic material inside the retained 0DTE composition. */
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] {
  --gxt-bg:var(--aku-box-neutral-bg); --gxt-edge:var(--aku-line);
  --gxt-accent:var(--aku-line); --gxt-ink:var(--aku-card-ink); --gxt-sub:var(--aku-copy);
  background:var(--gxt-bg)!important; border-color:var(--gxt-edge)!important;
  border-left:4px solid var(--gxt-accent)!important; color:var(--gxt-ink)!important;
  box-shadow:inset 0 1px 0 color-mix(in srgb,var(--gxt-ink) 10%,transparent),0 12px 26px -18px color-mix(in srgb,var(--gxt-accent) 45%,transparent)!important;
}
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone="negative"] {
  --gxt-bg:linear-gradient(135deg, #521128 0%, #3b0d1f 52%, #290915 100%);
  --gxt-edge:rgba(251, 113, 133, 0.72);
  --gxt-accent:#f43f5e; --gxt-ink:#fff1f2; --gxt-sub:#fecdd3;
  --gt:var(--aku-bad);
  border-width:1.5px!important; border-left:5px solid #f43f5e!important;
  box-shadow:inset 0 1px 0 rgba(255, 228, 230, 0.16), 0 14px 30px -16px rgba(244, 63, 94, 0.45)!important;
}
html[data-theme="light"] body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone="negative"] {
  --gxt-bg:linear-gradient(135deg, #ffe4e6 0%, #fecdd3 58%, #fda4af 100%);
  --gxt-edge:rgba(225, 29, 72, 0.65);
  --gxt-accent:#e11d48; --gxt-ink:#4c0519; --gxt-sub:#881337;
  box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.7), 0 12px 26px -16px rgba(225, 29, 72, 0.25)!important;
}
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone="positive"] {
  --gxt-bg:linear-gradient(135deg, #093b2c 0%, #072c21 54%, #051e17 100%);
  --gxt-edge:rgba(52, 211, 153, 0.68);
  --gxt-accent:#10b981; --gxt-ink:#ecfdf5; --gxt-sub:#a7f3d0;
  --gt:var(--aku-good);
  border-width:1.5px!important; border-left:5px solid #10b981!important;
}
html[data-theme="light"] body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone="positive"] {
  --gxt-bg:linear-gradient(135deg, #dcfce7 0%, #bbf7d0 60%, #86efac 100%);
  --gxt-edge:rgba(5, 150, 105, 0.62);
  --gxt-accent:#059669; --gxt-ink:#052e16; --gxt-sub:#065f46;
}
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] .gxt-top-row {
  display:flex; flex-wrap:wrap; align-items:center; gap:8px; width:100%;
}
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] .gxt-mode-box {
  display:inline-flex; align-items:center; gap:6px; padding:4px 12px; border-radius:8px;
  font:800 .8rem/1.35 var(--aku-font-head)!important; letter-spacing:0.01em;
}
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] .gxt-mode-box.is-neg {
  background:linear-gradient(135deg, #e11d48 0%, #be123c 100%)!important;
  color:#fff1f2!important; border:1px solid #fda4af!important;
  box-shadow:0 4px 12px rgba(244, 63, 94, 0.36)!important;
}
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] .gxt-mode-box.is-pos {
  background:linear-gradient(135deg, #059669 0%, #047857 100%)!important;
  color:#ecfdf5!important; border:1px solid #6ee7b7!important;
  box-shadow:0 4px 12px rgba(16, 185, 129, 0.34)!important;
}
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone="neutral"] { --gt:var(--aku-copy); }
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] .gxt-chip {
  color:var(--gxt-ink)!important; background:color-mix(in srgb,var(--gxt-accent) 4%,transparent)!important;
  box-sizing:border-box; max-width:100%; gap:6px; padding:4px 10px;
  border:1px solid color-mix(in srgb,var(--gt) 75%,var(--gxt-ink))!important;
  border-radius:999px;
  box-shadow:inset 0 0 3px color-mix(in srgb,var(--gt) 8%,transparent),0 0 8px color-mix(in srgb,var(--gt) 22%,transparent)!important;
}
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] :is(.gxt-title,.gxt-lv b,.gxt-net) { color:var(--gxt-ink)!important; }
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] :is(.gxt-mean,.gxt-lv,.gxt-meter-k,.gxt-meter-k b,.gxt-num) { color:var(--gxt-sub)!important; }
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] :is(.gxt-lv.is-spot,.gxt-lv.is-spot b) { color:var(--aku-text)!important; }
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] :is(.gxt-lv.is-put,.gxt-lv.is-put b,.gxt-lv.is-put em) { color:var(--aku-box-red-num)!important; }
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] :is(.gxt-lv.is-call,.gxt-lv.is-call b,.gxt-lv.is-call em) { color:var(--aku-box-green-num)!important; }
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] :is(.gxt-lv.is-zg,.gxt-lv.is-zg b,.gxt-lv.is-zg em) { color:var(--aku-warn)!important; }
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] .gxt-ends > span { opacity:1!important; }
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) button.gx-today[data-gex-tone]:hover { border-color:var(--gxt-accent)!important; }
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) button.gx-today[data-gex-tone]:focus-visible { outline:3px solid var(--gxt-accent)!important; outline-offset:3px; }
@media(max-width:360px) {
  html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] .gxt-lv { max-width:100%; white-space:normal!important; flex-wrap:wrap!important; }
}
/* The fixed marker is the data; its small halo presents magnitude, never a fake price move. */
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] .gxt-meter {
  min-width:0; gap:12px!important; padding:10px 0 4px;
}
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] .gxt-meter-k {
  display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:4px 12px;
  font:600 .82rem/1.5 var(--aku-font-body)!important;
}
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] .gxt-strength b {
  color:var(--gxt-ink)!important; font-weight:800;
}
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] .gxt-share {
  color:var(--gxt-ink); font-weight:800; white-space:nowrap;
}
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] .gxt-track {
  height:16px!important; margin:3px 9px; border:1px solid color-mix(in srgb,var(--gxt-ink) 25%,transparent);
  background:linear-gradient(180deg,color-mix(in srgb,var(--aku-card-ink) 20%,transparent),transparent 55%),linear-gradient(90deg,var(--aku-box-green-accent),var(--aku-box-green-num) 27%,var(--aku-copy) 50%,var(--aku-box-red-num) 73%,var(--aku-box-red-accent))!important;
  box-shadow:inset 0 2px 5px color-mix(in srgb,var(--aku-sky-1) 75%,transparent),0 1px 0 color-mix(in srgb,var(--gxt-ink) 15%,transparent)!important;
}
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] .gxt-track::before {
  content:''; position:absolute; left:50%; top:-4px; bottom:-4px; width:1px;
  background:color-mix(in srgb,var(--gxt-ink) 65%,transparent); box-shadow:0 0 0 2px color-mix(in srgb,var(--aku-sky-1) 30%,transparent);
}
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] .gxt-needle {
  top:50%!important; width:18px!important; height:24px!important; margin:0 0 0 -9px!important;
  transform:translateY(-50%); border:2px solid var(--gxt-accent); border-radius:9px!important;
  background:linear-gradient(90deg,var(--aku-sky-3),var(--aku-card-ink) 50%,var(--aku-sky-3))!important;
  box-shadow:0 0 0 2px var(--aku-sky-1),0 2px 7px color-mix(in srgb,var(--aku-sky-1) 65%,transparent)!important;
}
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] .gxt-needle::before {
  content:''; position:absolute; inset:4px 5px; border-radius:2px; background:var(--gxt-accent);
}
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] .gxt-needle::after {
  content:''; position:absolute; inset:-9px; border:2px solid var(--gxt-accent); border-radius:50%;
  opacity:.22; box-shadow:0 0 9px var(--gxt-accent); pointer-events:none;
  animation:gxtBeacon 3200ms ease-in-out infinite; animation-delay:var(--gxt-phase,0ms);
}
@keyframes gxtBeacon {
  0%,100% { transform:scale(.78); opacity:calc(.12 + var(--gxt-energy,0) * .12); }
  50% { transform:scale(1.12); opacity:calc(.28 + var(--gxt-energy,0) * .18); }
}
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] .gxt-ends { gap:12px; line-height:1.4; align-items:center; }
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] .gxt-ends > span {
  display:inline-flex; align-items:center; gap:5px; padding:3px 10px; border-radius:7px;
  font:700 .76rem/1.3 var(--aku-font-head)!important; transition:all .2s ease;
}
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] .gxt-ends > span:not(.is-on) {
  opacity:.56!important; background:transparent!important; border:1px solid transparent!important;
}
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] .gxt-ends > .is-pos { color:color-mix(in srgb,var(--aku-box-green-num) 75%,var(--gxt-ink))!important; }
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] .gxt-ends > .is-neg { color:var(--aku-box-red-num)!important; }
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] .gxt-ends > .is-pos.is-on {
  background:linear-gradient(135deg, #059669 0%, #047857 100%)!important;
  color:#ecfdf5!important; border:1px solid #6ee7b7!important; font-weight:800!important;
  box-shadow:0 3px 10px rgba(16, 185, 129, 0.35)!important;
}
html body:not(#akx) #main:not(#aky) :is(#gexTodayBanner,#gexRoot) .gx-today[data-gex-tone] .gxt-ends > .is-neg.is-on {
  background:linear-gradient(135deg, #e11d48 0%, #be123c 100%)!important;
  color:#fff1f2!important; border:1px solid #fda4af!important; font-weight:800!important;
  box-shadow:0 3px 10px rgba(244, 63, 94, 0.38)!important;
}
html body .gxt-meter[data-offscreen] .gxt-needle::after,
html[data-motion=paused] body .gxt-meter .gxt-needle::after,
html[data-gex-hidden] body .gxt-meter .gxt-needle::after { animation-play-state:paused!important; }
html body .gx-today.is-flat .gxt-meter .gxt-needle::after { content:none!important; }
html body .gx-today.is-intro .gxt-needle { animation:none!important; }
html body .gx-today.is-intro .gxt-meter[data-gex-arrived]:not([data-gex-settled]) .gxt-needle { animation:gxtNeedle 700ms cubic-bezier(.22,1,.36,1) both!important; }
html[data-motion=paused] body .gx-today.is-intro .gxt-meter[data-gex-arrived]:not([data-gex-settled]) .gxt-needle { animation:none!important; }
@media(prefers-reduced-motion:reduce) {
  html body .gx-today.is-intro .gxt-meter[data-gex-arrived]:not([data-gex-settled]) .gxt-needle { animation:none!important; }
  html body .gxt-meter .gxt-needle::after { animation:none!important; opacity:.18!important; transform:none!important; }
}
/* One text column and one reserved visual column across all four overview cards. */
html body:not(#akx) #main:not(#aky) #overview.today-strip { grid-auto-rows:auto; }
html body:not(#akx) #main:not(#aky) #overview.today-strip .ov-tile.ov-tile-viz {
  display:grid!important; grid-template-columns:minmax(0,1fr) 50px!important;
  grid-template-rows:subgrid; grid-row:span 3;
  align-items:stretch!important; justify-content:stretch!important; gap:12px!important;
  padding:14px 16px!important; text-align:left!important;
}
html body:not(#akx) #main:not(#aky) #overview.today-strip .ov-tile .ov-tile-main {
  display:grid; grid-template-rows:subgrid; grid-column:1; grid-row:1 / span 3;
  align-items:stretch; align-self:stretch; row-gap:4px; width:100%; min-width:0; text-align:left;
}
html body:not(#akx) #main:not(#aky) #overview.today-strip .ov-tile :is(.ov-label,.ov-num,.ov-note) {
  grid-area:auto!important; align-self:stretch!important; justify-self:stretch!important;
  margin:0!important; padding:0!important; text-align:left!important; min-width:0;
}
html body:not(#akx) #main:not(#aky) #overview.today-strip .ov-tile .ov-label {
  display:flex; align-items:start; gap:6px; line-height:1.5; grid-row:1!important;
}
html body:not(#akx) #main:not(#aky) #overview.today-strip .ov-tile .ov-num { display:block; line-height:1.4; grid-row:2!important; }
html body:not(#akx) #main:not(#aky) #overview.today-strip .ov-tile .ov-note { display:block; line-height:1.5; overflow-wrap:anywhere; grid-row:3!important; }
html body:not(#akx) #main:not(#aky) #overview.today-strip .ov-tile > .ov-viz-svg {
  grid-column:2; grid-row:1 / span 3; justify-self:end; align-self:center; width:44px; max-width:100%;
}
html body:not(#akx) #main:not(#aky) #overview.today-strip .ov-tile > .ov-viz-wide { width:50px; }
html body:not(#akx) #main:not(#aky) #dteGlobalAlertBar .dgab-test-details { border:0!important; padding:0!important; margin-top:12px; background:none!important; box-shadow:none!important; }
html body:not(#akx) #main:not(#aky) #dteGlobalAlertBar .dgab-test-details > summary { display:inline-flex!important; align-items:center; gap:14px; width:fit-content!important; max-width:100%; min-height:36px!important; padding:7px 12px!important; border:1px solid var(--aku-line)!important; border-radius:999px!important; cursor:pointer; font:600 .875rem/1.5 var(--aku-font-body)!important; color:var(--aku-text)!important; background:linear-gradient(135deg,var(--aku-sky-2),var(--aku-sky-3))!important; }
html body:not(#akx) #main:not(#aky) #dteGlobalAlertBar .dgab-test-details > summary::after { content:''!important; display:block!important; position:absolute; pointer-events:none; left:35%; bottom:4px; width:25%; height:1px; padding:0!important; border:0!important; box-shadow:none!important; background:currentColor!important; opacity:0; animation:akuControlGlint 6s ease-in-out infinite; }
html body #dteGlobalAlertBar .dgab-test-details > summary::-webkit-details-marker { display:none; }
html body #dteGlobalAlertBar .dgab-test-details .dgab-fold-state::after { content:'เปิด ▾'; }
html body #dteGlobalAlertBar .dgab-test-details[open] .dgab-fold-state::after { content:'ปิด ▴'; }
html body #dteGlobalAlertBar .dgab-test-note { margin:12px 0 8px; color:var(--aku-copy); font:400 .875rem/1.6 var(--aku-font-body); }
html body #dteGlobalAlertBar .dgab-test-details .dgab-test-group { border:0; margin:0; padding:0; }
html body #chPushToastHost[aria-hidden=true] { visibility:hidden!important; }
html body #chPushToastHost, html body #dteSignalDrawerTab { z-index:950!important; }
html body #dteSignalDrawerTab { translate:var(--dte-signal-dx,0px) var(--dte-signal-dy,0px); }
html body #dteSignalDrawerTab[data-clearance-compact] { width:40px!important; min-width:40px!important; max-width:40px!important; padding:0!important; justify-content:center; }
html body #dteSignalDrawerTab[data-clearance-compact] :is(.dsdt-dot,.dsdt-arr) { display:none!important; }
html body #dteSignalDrawerTab[data-clearance-compact] .dsdt-label { position:absolute; width:1px; height:1px; clip-path:inset(50%); overflow:hidden; }
html body #dteSignalDrawerTab[data-clearance-compact] .dsdt-count { position:absolute; top:-4px; right:-4px; min-width:16px; height:18px; padding:0 3px; display:grid; place-items:center; font-size:10px; line-height:1; }
html body #chPushToastHost.is-signal-sidebar { max-height:min(610px,calc(100dvh - var(--ak-shell-height,70px) - 28px))!important; }
html body #chPushToastHost [hidden] { display:none!important; }
html body #chPushToastHost .csh-title { flex-wrap:wrap; }
html body #chPushToastHost .csh-preview { display:flex; align-items:center; justify-content:space-between; gap:8px; font:600 .75rem/1.5 var(--aku-font-body); color:var(--aku-warn); }
html body #chPushToastHost [data-ch-alert-live] { color:var(--aku-text)!important; background:var(--aku-sky-2)!important; border:1px solid var(--aku-line)!important; border-radius:999px; font-family:var(--aku-font-body); }
html body #chPushToastHost [data-ch-alert-live]:hover, html body #chPushToastHost [data-ch-alert-live]:focus-visible { color:var(--aku-text)!important; border-color:var(--aku-accent)!important; }
html body #chPushToastHost .cpt-empty-filter { color:var(--aku-text); font-family:var(--aku-font-body); }
html body #chPushToastHost .cpt-sidebar-body { flex:1 1 auto; min-height:0; min-width:0; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; }
html body #chPushToastHost .cpt-sidebar-list { flex:none!important; overflow:visible!important; max-height:none!important; }
html body #chPushToastHost .cpt-sidebar-toolbar { margin:8px 0; min-width:0; }
html body #chPushToastHost .cpt-filter-bar, html body #chPushToastHost .cpt-sort-bar { flex-wrap:wrap!important; min-width:0; gap:8px!important; }
html body #chPushToastHost .cpt-filter-btn, html body #chPushToastHost .cpt-sort-btn { height:auto!important; min-height:30px; max-width:100%; white-space:normal!important; }
html body #chPushToastHost .cpt-viz-news { grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr))!important; }
html body #chPushToastHost .cvn-cell { min-width:0; }
html body #chPushToastHost .cvn-cell:last-child { grid-column:1 / -1; }
html body #chPushToastHost .cvn-v, html body #chPushToastHost .cvn-k { white-space:normal!important; overflow-wrap:anywhere; }
html body:not(#akx) #main:not(#aky) #dteGlobalAlertBar .dgab-left, html body:not(#akx) #main:not(#aky) #dteGlobalAlertBar .dgab-title { min-width:0; flex-wrap:wrap!important; max-width:100%; white-space:normal!important; }
html body:not(#akx) #main:not(#aky) #dteGlobalAlertBar .dgab-title b, html body:not(#akx) #main:not(#aky) #dteGlobalAlertBar .dgab-status { white-space:normal!important; overflow-wrap:anywhere; }
html body:not(#akx) #main:not(#aky) #dteGlobalAlertBar .dgab-controls .dgab-btn { height:auto!important; min-height:32px; max-width:100%; white-space:normal!important; }
html[data-motion=paused] body #dteGlobalAlertBar .dgab-test-details > summary::after, html body #dteGlobalAlertBar .dgab-test-details > summary[data-offscreen]::after { animation-play-state:paused!important; }
@media(prefers-reduced-motion:reduce) { html body:not(#akx) #main:not(#aky) #dteGlobalAlertBar .dgab-test-details > summary::after { animation:none!important; } }
@media(max-width:720px) {
  html body #dteSignalDrawerTab { max-width:132px!important; gap:5px; padding:0 10px!important; }
  html body #dteSignalDrawerTab .dsdt-dot, html body #dteSignalDrawerTab .dsdt-arr { display:none!important; }
  html body:not(#akx) #main:not(#aky) #dteGlobalAlertBar .dgab-controls { display:flex; flex-wrap:wrap; gap:8px; }
  html body:not(#akx) #main:not(#aky) #dteGlobalAlertBar .dgab-controls .dgab-btn { flex:0 1 auto; }
}
