/* Terminal surfaces: neutral by default, pure black under the dark theme (owner
   feedback 06/09: "fond gris bleu, il le faut noir propre"). Every widget body
   scrolls inside itself, so nothing can push the page sideways. */
.sd { --sd-panel: rgba(12,12,13,.94); --sd-raise: rgba(255,255,255,.03); --sd-head: rgba(255,255,255,.04); }
html[data-theme="dark"] .sd { --sd-panel: #050505; --sd-raise: #0a0a0b; --sd-head: #0d0d0e; }
html[data-theme="dark"] .sd-w { border-color: #1b1b1d; }
html[data-theme="dark"] .sd-w__head { background: var(--sd-head); border-bottom-color: #1b1b1d; }
html[data-theme="dark"] .sd-tk { background: #050505; }
.sd-w__body { overflow: auto; overscroll-behavior: contain; }
.sd-w__body > * { max-width: 100%; }
.sd-w__body table { width: 100%; table-layout: auto; }
.sd-scroll { overflow-x: auto; max-width: 100%; }
.sd-mp, .sd-macro, .sd-cal__list, .sd-act__grid, .sd-og__grid { max-width: 100%; }
.sd-mp__row b, .sd-mp__row span { min-width: 0; overflow-wrap: anywhere; }
.sd-vs__t { min-width: 0; }
/* /structure TERMINAL — customisable widget grid (06/09/2026). Dark terminal look,
   scoped under .sd / .sd-on. Uses the levels.css tokens (--lv-line, etc.). */
.sd { margin: 14px 0 18px; }
.sd-on [data-lv-tabs], .sd-on .lv-tabpane, .sd-on .lv-learn { display: none !important; }
.sd-bench { display: none !important; }
.sd-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 10px 12px; border: 1px solid var(--lv-line, rgba(255,255,255,.12)); border-radius: 12px; background: var(--sd-raise, rgba(255,255,255,.03)); }
.sd-bar__preset { display: flex; align-items: center; gap: 8px; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; opacity: .85; }
.sd-bar__preset select, .sd-sel { font: inherit; font-size: 13px; color: inherit; background: rgba(0,0,0,.35); border: 1px solid var(--lv-line, rgba(255,255,255,.14)); border-radius: 8px; padding: 6px 8px; }
.sd-btn { font: inherit; font-size: 13px; font-weight: 700; color: inherit; background: rgba(255,255,255,.05); border: 1px solid var(--lv-line, rgba(255,255,255,.14)); border-radius: 8px; padding: 7px 12px; cursor: pointer; }
.sd-btn:hover { background: rgba(255,255,255,.1); }
.sd-btn--primary { background: rgba(111,179,201,.18); border-color: rgba(111,179,201,.5); }
.sd-btn--ghost { opacity: .7; }
.sd-bar__hint { margin-left: auto; font-size: 12px; opacity: .6; }
.sd-add { margin-top: 10px; padding: 12px 14px; border: 1px solid var(--lv-line, rgba(255,255,255,.12)); border-radius: 12px; background: rgba(0,0,0,.25); }
.sd-add__head { display: flex; gap: 12px; align-items: baseline; margin-bottom: 8px; } .sd-add__head span { font-size: 12px; opacity: .7; }
.sd-add__group { margin-top: 8px; } .sd-add__title { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; opacity: .6; margin-bottom: 6px; }
.sd-add__list { display: flex; flex-wrap: wrap; gap: 6px; }
.sd-add__item { font: inherit; font-size: 12px; color: inherit; background: rgba(255,255,255,.05); border: 1px solid var(--lv-line, rgba(255,255,255,.14)); border-radius: 999px; padding: 5px 11px; cursor: pointer; display: inline-flex; gap: 6px; align-items: center; }
.sd-add__item span { color: #6fb3c9; font-weight: 800; } .sd-add__item.is-on { opacity: .4; cursor: default; }
.sd-grid { display: grid; grid-template-columns: repeat(24, minmax(0, 1fr)); gap: 10px; margin-top: 12px; grid-auto-rows: 17px; grid-auto-flow: row dense; }

/* Width modes. The shared main column is capped at 1500px for reading; a dashboard
   should be able to use the screen it is given, so the terminal overrides it. */
.lv-main[data-sd-width="full"] { max-width: none; padding-left: clamp(10px, 1.4vw, 22px); padding-right: clamp(10px, 1.4vw, 22px); }
.lv-main[data-sd-width="wide"] { max-width: 1860px; }
.lv-main[data-sd-width="comfort"] { max-width: 1500px; }
.sd-grid--mobile { grid-template-columns: 1fr; grid-auto-rows: auto; }
.sd-w { position: relative; display: flex; flex-direction: column; min-width: 0; min-height: 0; border: 1px solid var(--lv-line, rgba(255,255,255,.12)); border-radius: 12px; background: var(--sd-panel, rgba(8,8,9,.94)); overflow: hidden; }
.sd-w.is-dragging, .sd-w.is-resizing { border-color: rgba(111,179,201,.7); box-shadow: 0 0 0 2px rgba(111,179,201,.25); z-index: 5; }
.sd-w__head { display: flex; align-items: center; gap: 8px; padding: 7px 10px; border-bottom: 1px solid var(--lv-line, rgba(255,255,255,.1)); background: var(--sd-head, rgba(255,255,255,.03)); cursor: grab; user-select: none; touch-action: none; }
.sd--locked .sd-w__head { cursor: default; }
.sd-w__grip { opacity: .35; font-size: 12px; letter-spacing: -2px; } .sd--locked .sd-w__grip { display: none; }
.sd-w__title { margin: 0; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; opacity: .9; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sd-w__tools { margin-left: auto; display: flex; gap: 6px; } .sd-w__tools .sd-sel { padding: 3px 6px; font-size: 12px; }
.sd-w__x { font: inherit; font-size: 16px; line-height: 1; color: inherit; background: transparent; border: 0; opacity: .5; cursor: pointer; padding: 2px 6px; } .sd-w__x:hover { opacity: 1; }
.sd--locked .sd-w__x { display: none; }
.sd-w__body { flex: 1 1 auto; min-height: 0; overflow: auto; padding: 10px 12px; }
.sd-w__body > section { border: 0 !important; background: transparent !important; padding: 0 !important; margin: 0 !important; }
.sd-w__body .lv-divide { display: none; }
.sd-w__resize { position: absolute; right: 2px; bottom: 2px; width: 16px; height: 16px; cursor: nwse-resize; touch-action: none; background: linear-gradient(135deg, transparent 55%, rgba(255,255,255,.35) 55%, rgba(255,255,255,.35) 65%, transparent 65%, transparent 80%, rgba(255,255,255,.35) 80%); border-bottom-right-radius: 10px; }
.sd--locked .sd-w__resize, .sd-grid--mobile .sd-w__resize { display: none; }
.sd-w__empty { position: absolute; inset: 40px 0 0; display: flex; align-items: center; justify-content: center; padding: 20px; text-align: center; font-size: 13px; opacity: .6; pointer-events: none; }
.sd-w--empty .sd-w__body { visibility: hidden; }
.sd-note { font-size: 13px; opacity: .7; margin: 6px 0; } .sd-note--tiny { font-size: 11px; opacity: .5; }
/* heatmap */
.sd-hm { display: grid; gap: 2px; font-variant-numeric: tabular-nums; }
.sd-hm__head, .sd-hm__row { display: grid; grid-template-columns: 96px minmax(0, 1fr) 84px; gap: 8px; align-items: center; }
.sd-hm__head { font-size: 11px; letter-spacing: .06em; text-transform: uppercase; opacity: .55; padding-bottom: 4px; }
.sd-hm__row { height: 22px; border-radius: 4px; background: rgba(255,255,255,.025); }
.sd-hm__row.is-pos { background: rgba(95,224,160,.07); } .sd-hm__row.is-neg { background: rgba(255,107,107,.08); }
.sd-hm__k { font-size: 12px; font-weight: 700; padding-left: 6px; display: flex; gap: 4px; align-items: center; }
.sd-hm__tag { font-size: 9px; font-weight: 900; padding: 1px 5px; border-radius: 999px; background: rgba(255,255,255,.12); }
.sd-hm__tag--cw { background: rgba(216,183,93,.35); } .sd-hm__tag--pw { background: rgba(217,117,106,.4); } .sd-hm__tag--gf { background: rgba(154,164,178,.4); } .sd-hm__tag--focus { background: rgba(111,179,201,.4); } .sd-hm__tag--vt { background: rgba(216,162,77,.35); } .sd-hm__tag--zg { background: rgba(179,157,219,.4); }
.sd-hm__bar { position: relative; height: 16px; border-radius: 3px; background: rgba(255,255,255,.04); overflow: hidden; }
.sd-hm__bar i { display: block; height: 100%; width: 0; } .is-pos .sd-hm__bar i { background: linear-gradient(90deg, rgba(95,224,160,.55), rgba(95,224,160,.9)); } .is-neg .sd-hm__bar i { background: linear-gradient(90deg, rgba(255,107,107,.55), rgba(255,107,107,.9)); }
.sd-hm__bar em { position: absolute; left: 8px; top: 0; line-height: 16px; font-size: 11px; font-style: normal; font-weight: 800; color: #fff; text-shadow: 0 0 4px rgba(0,0,0,.8); }
.sd-hm__v { text-align: right; font-size: 12px; font-weight: 800; padding-right: 6px; } .is-pos .sd-hm__v { color: #7fd6a6; } .is-neg .sd-hm__v { color: #ff8b8b; }
.sd-hm__spot { display: flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 800; color: #6fb3c9; padding: 2px 6px; }
.sd-hm__spot::before, .sd-hm__spot::after { content: ""; flex: 1; height: 1px; background: rgba(111,179,201,.5); }
/* strikes */
.sd-st { display: grid; gap: 3px; font-variant-numeric: tabular-nums; }
.sd-st__head { font-size: 11px; letter-spacing: .06em; text-transform: uppercase; opacity: .55; padding-bottom: 4px; }
.sd-st__row { display: grid; grid-template-columns: 64px minmax(0, 1fr) 72px; gap: 8px; align-items: center; height: 20px; }
.sd-st__row.is-spot .sd-st__k { color: #6fb3c9; } .sd-st__k { font-size: 12px; font-weight: 700; opacity: .85; }
.sd-st__bar { height: 12px; background: rgba(255,255,255,.04); border-radius: 3px; overflow: hidden; } .sd-st__bar i { display: block; height: 100%; width: 0; }
.is-pos .sd-st__bar i { background: #5fb87a; } .is-neg .sd-st__bar i { background: #e05a5a; }
.sd-st__v { text-align: right; font-size: 12px; font-weight: 800; } .is-pos .sd-st__v { color: #7fd6a6; } .is-neg .sd-st__v { color: #ff8b8b; }
/* chart */
.sd-chartwrap { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.sd-chart { width: 100%; flex: 1 1 auto; min-height: 160px; }
.sd-chart__attr { margin: 4px 0 0; font-size: 10px; opacity: .45; }
/* flow */
.sd-flow__sum { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 10px; }
.sd-flow__sum div { display: flex; flex-direction: column; gap: 2px; padding: 8px 10px; border: 1px solid var(--lv-line, rgba(255,255,255,.1)); border-radius: 8px; }
.sd-flow__sum span { font-size: 10px; letter-spacing: .06em; text-transform: uppercase; opacity: .55; } .sd-flow__sum b { font-size: 18px; } .sd-flow__sum small { font-size: 11px; opacity: .6; }
.sd-flow__sum b.is-pos { color: #7fd6a6; } .sd-flow__sum b.is-neg { color: #ff8b8b; }
.sd-flow__list { display: grid; gap: 3px; } .sd-flow__list--tape { margin-top: 8px; opacity: .8; }
.sd-flow__row { display: grid; grid-template-columns: 70px 1fr 70px; gap: 8px; font-size: 12px; padding: 4px 8px; border-radius: 6px; background: rgba(255,255,255,.03); }
.sd-flow__row.is-pos { border-left: 3px solid #5fb87a; } .sd-flow__row.is-neg { border-left: 3px solid #e05a5a; } .sd-flow__row b { text-align: right; }
/* info */
.sd-info { display: grid; gap: 4px; } .sd-info__row { display: flex; justify-content: space-between; gap: 10px; padding: 5px 8px; border-radius: 6px; background: rgba(255,255,255,.03); font-size: 12px; }
.sd-info__row span { opacity: .65; } .sd-info__row b { font-variant-numeric: tabular-nums; }
@media (max-width: 900px) {
  .sd-bar__hint { display: none; }
  .sd-w__body { padding: 8px 10px; }
}

/* In-widget calculators: a compact grid that still reads on a narrow column. */
.sd-calc { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 6px; margin: 0 0 8px; }
.sd-calc label { display: flex; flex-direction: column; gap: 3px; font-size: 11px; opacity: .8; }
.sd-calc input { font: inherit; font-size: 12px; padding: 5px 7px; border-radius: 6px; min-width: 0; border: 1px solid var(--sd-line, rgba(255,255,255,.14)); background: var(--sd-raise, rgba(255,255,255,.03)); color: inherit; }
.sd-check { margin: 0; padding-left: 18px; }
.sd-check li { margin: 0 0 6px; font-size: 12px; line-height: 1.45; }

/* A focused widget header shows it is the one the arrows will move. */
.sd-w__head:focus-visible { outline: 2px solid var(--lv-accent, #c8a878); outline-offset: -2px; border-radius: 10px 10px 0 0; }
.sd-w__head { cursor: grab; }
.sd-w__head:active { cursor: grabbing; }

/* ===== GEX THEMES (GENERATED - do not edit, run scripts/gen-themes.py) ===== */
/* -- theme dark -- */
html[data-theme="dark"] .sd { --sd-panel: rgba(4, 4, 5, .94); }
html[data-theme="dark"][data-theme="dark"] .sd { --sd-panel: #040404; --sd-raise: #040404; }
html[data-theme="dark"][data-theme="dark"] .sd-w { border-color: #09090a; }
html[data-theme="dark"][data-theme="dark"] .sd-tk { background: #040404; }
html[data-theme="dark"] .sd-bar__preset select, html[data-theme="dark"] .sd-sel { background: rgba(4, 4, 4, .35); }
html[data-theme="dark"] .sd-add { background: rgba(4, 4, 4, .25); }
html[data-theme="dark"] .sd-w { background: var(--sd-panel, rgba(4, 4, 4, .94)); }
/* -- theme white -- */
html[data-theme="white"] .sd { --sd-panel: rgba(243, 243, 244, .94); --sd-head: rgba(41, 41, 41, .04); }
html[data-theme="white"][data-theme="dark"] .sd { --sd-panel: #f4f4f4; --sd-raise: #f3f3f4; }
html[data-theme="white"][data-theme="dark"] .sd-w { border-color: #f3f3f4; }
html[data-theme="white"][data-theme="dark"] .sd-tk { background: #f4f4f4; }
html[data-theme="white"] .sd-bar__preset select, html[data-theme="white"] .sd-sel { background: rgba(244, 244, 244, .35); }
html[data-theme="white"] .sd-add { background: rgba(244, 244, 244, .25); }
html[data-theme="white"] .sd-add__item span { color: #1b3037; }
html[data-theme="white"] .sd-w { background: var(--sd-panel, rgba(243, 243, 244, .94)); }
html[data-theme="white"] .sd-hm__bar em { color: #211d16; }
html[data-theme="white"] .is-pos .sd-hm__v { color: #1b3727; }
html[data-theme="white"] .is-neg .sd-hm__v { color: #c04747; }
html[data-theme="white"] .sd-hm__spot { color: #1b3037; }
html[data-theme="white"] .sd-st__row.is-spot .sd-st__k { color: #1b3037; }
html[data-theme="white"] .is-pos .sd-st__v { color: #1b3727; }
html[data-theme="white"] .is-neg .sd-st__v { color: #c04747; }
html[data-theme="white"] .sd-flow__sum b.is-pos { color: #1b3727; }
html[data-theme="white"] .sd-flow__sum b.is-neg { color: #c04747; }
html[data-theme="white"] .sd-w__head:focus-visible { outline-color: #9a7434; }
/* ===== END GEX THEMES ===== */















/* chart options popover */
.sd-w__tools { position: relative; }
.sd-gear { font: inherit; font-size: 12px; font-weight: 800; color: inherit; background: rgba(255,255,255,.06); border: 1px solid var(--lv-line, rgba(255,255,255,.14)); border-radius: 6px; padding: 3px 8px; cursor: pointer; }
.sd-gear[aria-expanded="true"] { background: rgba(111,179,201,.2); }
.sd-pop { position: absolute; right: 0; top: 28px; z-index: 20; width: 280px; max-height: 420px; overflow: auto; padding: 10px 12px; border: 1px solid var(--lv-line, rgba(255,255,255,.14)); border-radius: 10px; background: rgba(12,14,18,.98); box-shadow: 0 10px 30px rgba(0,0,0,.5); text-transform: none; letter-spacing: 0; font-weight: 500; }
.sd-pop__title { font-size: 10px; letter-spacing: .08em; text-transform: uppercase; opacity: .6; margin: 8px 0 4px; }
.sd-pop__title:first-child { margin-top: 0; }
.sd-pop label { display: flex; align-items: center; gap: 8px; font-size: 12px; padding: 3px 0; cursor: pointer; }
.sd-pop label input { margin: 0; }
.sd-pop__sw { width: 10px; height: 10px; border-radius: 2px; flex: 0 0 auto; }
.sd-pop__row { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 12px; padding: 4px 0; }
.sd-pop__row select { font: inherit; font-size: 12px; color: inherit; background: rgba(0,0,0,.35); border: 1px solid var(--lv-line, rgba(255,255,255,.14)); border-radius: 6px; padding: 2px 6px; }
.sd-pop__actions { display: flex; gap: 6px; margin-top: 8px; }
.sd-pop__actions button { font: inherit; font-size: 11px; color: inherit; background: rgba(255,255,255,.06); border: 1px solid var(--lv-line, rgba(255,255,255,.14)); border-radius: 6px; padding: 3px 8px; cursor: pointer; }
/* 3D surface */
.sd-surfwrap { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.sd-surf { position: relative; width: 100%; flex: 1 1 auto; min-height: 220px; }
.sd-surf canvas { display: block; width: 100%; height: 100%; cursor: grab; touch-action: none; }
.sd-surf__legend { position: absolute; left: 10px; bottom: 8px; font-size: 11px; opacity: .8; display: flex; gap: 10px; align-items: center; }
.sd-surf__bar { width: 90px; height: 8px; border-radius: 4px; background: linear-gradient(90deg, #e05a5a, #2a2d34, #5fb87a); }
.sd-surf__hint { font-size: 11px; opacity: .55; margin: 4px 0 0; }
/* toolbar toggle */
.sd-bar__toggle { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; opacity: .85; cursor: pointer; }
/* news ticker */
.sd-tk { margin-top: 10px; overflow: hidden; border: 1px solid var(--lv-line, rgba(255,255,255,.12)); border-radius: 10px; background: rgba(0,0,0,.35); height: 32px; }
.sd-tk[hidden] { display: none; }
.sd-tk__track { display: inline-flex; gap: 28px; white-space: nowrap; align-items: center; height: 32px; padding-left: 12px; animation: sd-tk-scroll 90s linear infinite; }
.sd-tk:hover .sd-tk__track { animation-play-state: paused; }
@keyframes sd-tk-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .sd-tk__track { animation: none; overflow-x: auto; } }
.sd-tk__item { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; color: inherit; text-decoration: none; }
.sd-tk__item b { font-size: 10px; letter-spacing: .06em; text-transform: uppercase; padding: 2px 6px; border-radius: 4px; background: rgba(255,255,255,.08); }
.sd-tk__item small { opacity: .5; }
.sd-tk__dot { width: 7px; height: 7px; border-radius: 50%; background: #9aa4b2; } .sd-tk__dot.is-pos { background: #5fb87a; } .sd-tk__dot.is-neg { background: #e05a5a; }
/* macro tiles */
.sd-macro { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 8px; }
.sd-macro__tile { display: flex; flex-direction: column; gap: 2px; padding: 8px 10px; border-radius: 8px; border: 1px solid var(--lv-line, rgba(255,255,255,.1)); background: rgba(255,255,255,.03); }
.sd-macro__k { font-size: 10px; letter-spacing: .06em; text-transform: uppercase; opacity: .6; }
.sd-macro__tile b { font-size: 15px; font-variant-numeric: tabular-nums; } .sd-macro__tile b small { font-size: 10px; opacity: .6; margin-left: 3px; }
.sd-macro__tile em { font-style: normal; font-size: 12px; font-weight: 800; opacity: .9; } .sd-macro__tile.is-pos em { color: #7fd6a6; } .sd-macro__tile.is-neg em { color: #ff8b8b; }
/* news list */
.sd-mp { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px; align-content: start; }
.sd-mp__sec { display: flex; flex-direction: column; gap: 3px; padding: 8px 10px; border-radius: 8px; border: 1px solid rgba(255,255,255,.08); background: rgba(255,255,255,.03); }
.sd-mp__k { font-size: 10px; letter-spacing: .06em; text-transform: uppercase; opacity: .7; display: flex; justify-content: space-between; gap: 6px; margin-bottom: 2px; }
.sd-mp__k small { text-transform: none; letter-spacing: 0; opacity: .7; font-size: 10px; }
.sd-mp__row { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-size: 12px; }
.sd-mp__row span { opacity: .8; } .sd-mp__row span small { display: block; font-size: 9px; opacity: .6; }
.sd-mp__row b { font-variant-numeric: tabular-nums; font-size: 12.5px; white-space: nowrap; } .sd-mp__row b small { font-size: 9.5px; opacity: .6; font-weight: 500; margin-left: 2px; }
.sd-mp__row.is-pos b { color: #5fb87a; } .sd-mp__row.is-neg b { color: #e05a5a; }
.sd-mp .sd-note--tiny { grid-column: 1 / -1; margin: 0; }
.sd-pc__head, .sd-act__head, .sd-og__head { display: flex; gap: 12px; align-items: baseline; font-size: 11px; opacity: .85; margin-bottom: 6px; flex-wrap: wrap; } .sd-pc__head b, .sd-act__head b, .sd-og__head b { font-variant-numeric: tabular-nums; }
.sd-pc { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.sd-pc__bars { display: flex; align-items: stretch; gap: 2px; flex: 1 1 auto; min-height: 90px; }
.sd-pc__col { flex: 1 1 0; display: flex; align-items: flex-end; gap: 1px; min-width: 0; }
.sd-pc__col i { flex: 1 1 0; display: block; min-height: 1px; border-radius: 2px 2px 0 0; }
.sd-pc__c { background: #5fb87a; } .sd-pc__p { background: #e05a5a; } .sd-pc__legend { font-size: 10px; opacity: .7; margin-top: 4px; } .sd-pc__legend i { display: inline-block; width: 9px; height: 9px; border-radius: 2px; vertical-align: -1px; margin: 0 3px 0 6px; }
.sd-act, .sd-og { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.sd-act__grid, .sd-og__grid { display: grid; gap: 2px; overflow-y: auto; flex: 1 1 auto; min-height: 0; }
.sd-act__row, .sd-og__row { display: grid; grid-template-columns: 58px 1fr 1fr 44px; gap: 6px; align-items: center; font-size: 11px; padding: 1px 4px; border-radius: 4px; }
.sd-og__row { grid-template-columns: 58px 1fr 70px; }
.sd-act__row.is-hot { background: rgba(255, 200, 80, .12); } .sd-act__row.is-spot, .sd-og__row.is-spot { outline: 1px solid rgba(255,255,255,.25); }
.sd-act__k, .sd-og__k { font-variant-numeric: tabular-nums; opacity: .85; }
.sd-act__bar, .sd-og__bar { height: 9px; background: rgba(255,255,255,.06); border-radius: 3px; overflow: hidden; } .sd-act__bar--p { transform: scaleX(-1); }
.sd-act__bar i, .sd-og__bar i { display: block; height: 100%; } .sd-act__c { background: #5fb87a; } .sd-act__p { background: #e05a5a; } .sd-og__bar i.is-pos { background: #5fb87a; } .sd-og__bar i.is-neg { background: #e05a5a; }
.sd-act__row small, .sd-og__row small { font-size: 10px; opacity: .7; text-align: right; font-variant-numeric: tabular-nums; }
.sd-vs__t { width: 100%; border-collapse: collapse; font-size: 11px; font-variant-numeric: tabular-nums; } .sd-vs__t th, .sd-vs__t td { padding: 3px 4px; text-align: right; border-bottom: 1px solid rgba(255,255,255,.06); } .sd-vs__t th:first-child, .sd-vs__t td:first-child { text-align: left; } .sd-vs__t th { font-weight: 600; opacity: .6; font-size: 10px; text-transform: uppercase; letter-spacing: .04em; }
.sd-vs__t td.is-neg { color: #e05a5a; } .sd-vs__t td.is-pos { color: #5fb87a; }
.sd-macro__tile small { font-size: 9.5px; opacity: .55; }
.sd-news__tier { font-style: normal; font-size: 9px; letter-spacing: .06em; text-transform: uppercase; margin-left: 6px; padding: 1px 4px; border-radius: 3px; background: rgba(255,255,255,.08); opacity: .8; } .sd-news__row.is-secondary { opacity: .88; }
.sd-cal__risk { display: flex; flex-direction: column; gap: 2px; padding: 8px 10px; border-radius: 8px; border: 1px solid rgba(255,255,255,.1); margin-bottom: 8px; } .sd-cal__risk small { font-size: 10px; letter-spacing: .06em; text-transform: uppercase; opacity: .6; } .sd-cal__risk b { font-size: 14px; text-transform: capitalize; } .sd-cal__risk span { font-size: 11px; opacity: .85; }
.sd-cal__risk.is-high { border-color: rgba(224,90,90,.6); background: rgba(224,90,90,.1); } .sd-cal__risk.is-medium { border-color: rgba(240,192,96,.5); background: rgba(240,192,96,.08); } .sd-cal__risk.is-low, .sd-cal__risk.is-none { border-color: rgba(95,184,122,.4); }
.sd-cal { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.sd-cal__list { display: grid; gap: 2px; overflow-y: auto; flex: 1 1 auto; min-height: 0; }
.sd-cal__row { display: grid; grid-template-columns: 62px 42px 1fr; gap: 6px; font-size: 11.5px; padding: 3px 6px; border-radius: 4px; border-left: 2px solid transparent; } .sd-cal__row.is-high { border-left-color: #e05a5a; } .sd-cal__row.is-medium { border-left-color: #f0c060; } .sd-cal__row.is-low { border-left-color: rgba(255,255,255,.2); } .sd-cal__row.is-today { background: rgba(255,255,255,.06); }
.sd-cal__d, .sd-cal__t { font-variant-numeric: tabular-nums; opacity: .75; } .sd-cal__l small { opacity: .55; font-size: 9.5px; }
.sd-spark { width: 100%; height: 40px; display: block; } .sd-spark polyline { fill: none; stroke: #5fb87a; stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.sd-pin__score { display: grid; grid-template-columns: auto 1fr; gap: 2px 12px; align-items: center; padding: 10px 12px; border-radius: 8px; border: 1px solid rgba(255,255,255,.1); margin-bottom: 8px; } .sd-pin__score b { font-size: 28px; grid-row: span 2; font-variant-numeric: tabular-nums; } .sd-pin__score span { font-size: 13px; font-weight: 700; text-transform: capitalize; } .sd-pin__score small { font-size: 10.5px; opacity: .7; }
.sd-pin__score.is-high { border-color: rgba(95,184,122,.6); } .sd-pin__score.is-high b { color: #5fb87a; } .sd-pin__score.is-mid { border-color: rgba(240,192,96,.5); } .sd-pin__score.is-mid b { color: #f0c060; } .sd-pin__score.is-low b { color: #e05a5a; }
.sd-al__row.is-pin { border-left-color: #f0c060; } .sd-al__row.is-cross { border-left-color: #e05a5a; } .sd-al__row.is-pc { border-left-color: #5fb87a; } .sd-al__row.is-event { border-left-color: #e0a05a; }
.sd-vs__t tr.is-event td { background: rgba(240,192,96,.08); }
.sd-ob__t td:first-child small { display: block; font-size: 9px; opacity: .6; }
.sd-prof { display: flex; align-items: flex-end; gap: 3px; height: 90px; } .sd-prof__col { flex: 1 1 0; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; } .sd-prof__col i { display: block; width: 100%; background: #5fb87a; border-radius: 2px 2px 0 0; min-height: 2px; } .sd-prof__col span { font-size: 8px; opacity: .6; margin-top: 2px; }
.sd-w__io { font: inherit; font-size: 13px; line-height: 1; color: inherit; background: transparent; border: 0; opacity: .45; cursor: pointer; padding: 2px 4px; }
.sd-w__io:hover { opacity: 1; } .sd--locked .sd-w__io { opacity: .3; }
.sd-w.is-full { position: fixed; inset: 56px 12px 12px; z-index: 60; grid-area: auto !important; box-shadow: 0 20px 60px rgba(0,0,0,.6); }
body.sd-fullscreen { overflow: hidden; }
.sd-brief { display: grid; gap: 6px; }
.sd-brief__row { display: grid; grid-template-columns: 120px 1fr; gap: 2px 10px; padding: 7px 10px; border-radius: 8px; background: var(--sd-raise, rgba(255,255,255,.03)); border-left: 2px solid transparent; }
.sd-brief__row.is-pos { border-left-color: #5fb87a; } .sd-brief__row.is-neg { border-left-color: #e05a5a; }
.sd-brief__k { font-size: 10px; letter-spacing: .06em; text-transform: uppercase; opacity: .6; align-self: center; }
.sd-brief__row b { font-size: 13px; } .sd-brief__row small { grid-column: 2; font-size: 11px; opacity: .7; }
.sd-bar__saved select { max-width: 150px; }
.sd-news { display: grid; gap: 6px; }
.sd-news__row { display: flex; flex-direction: column; gap: 2px; padding: 7px 10px; border-radius: 8px; background: rgba(255,255,255,.03); border-left: 3px solid rgba(255,255,255,.15); color: inherit; text-decoration: none; }
.sd-news__row.is-pos { border-left-color: #5fb87a; } .sd-news__row.is-neg { border-left-color: #e05a5a; } .sd-news__row:hover { background: rgba(255,255,255,.07); }
.sd-news__meta { font-size: 10px; letter-spacing: .04em; text-transform: uppercase; opacity: .55; } .sd-news__h { font-size: 13px; font-weight: 700; line-height: 1.3; } .sd-news__s { font-size: 11.5px; opacity: .7; line-height: 1.35; }
/* alerts */
.sd-al__bar { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; margin-bottom: 8px; } .sd-al__st { font-size: 11px; opacity: .6; }
.sd-al__list { display: grid; gap: 4px; }
.sd-al__row { display: grid; grid-template-columns: 34px 1fr; gap: 8px; font-size: 12px; padding: 5px 8px; border-radius: 6px; background: rgba(255,255,255,.03); border-left: 3px solid #9aa4b2; }
.sd-al__row small { opacity: .5; } .sd-al__row.is-regime { border-left-color: #d8a24d; } .sd-al__row.is-cross { border-left-color: #6fb3c9; } .sd-al__row.is-touch { border-left-color: #5fb87a; } .sd-al__row.is-corridor { border-left-color: #f6b45f; } .sd-al__row.is-move { border-left-color: #b4aac8; }
/* chain — terminal restyle of the classic table */
.sd-w[data-sd-w="chain"] .gx-table { width: 100%; border-collapse: collapse; font-size: 12px; font-variant-numeric: tabular-nums; }
.sd-w[data-sd-w="chain"] .gx-table th { position: sticky; top: 0; background: rgba(12,14,18,.98); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; opacity: .7; padding: 6px 8px; text-align: right; }
.sd-w[data-sd-w="chain"] .gx-table td { padding: 4px 8px; border-top: 1px solid rgba(255,255,255,.05); text-align: right; }
.sd-w[data-sd-w="chain"] .gx-table tr:hover td { background: rgba(255,255,255,.05); }
.sd-w[data-sd-w="chain"] .gx-strike, .sd-w[data-sd-w="chain"] .gx-strikeh { text-align: center; font-weight: 800; background: rgba(255,255,255,.04); }
.sd-w[data-sd-w="chain"] .gx-h { font-size: 11px; letter-spacing: .06em; text-transform: uppercase; opacity: .7; }
.sd-w[data-sd-w="chain"] .gx-split { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.sd-w[data-sd-w="chain"] .gx-scroll { max-height: none; }
/* mobile */
@media (max-width: 900px) {
  .sd-grid--mobile .sd-w[data-sd-w="chart"] { min-height: 420px; }
  .sd-grid--mobile .sd-w[data-sd-w="surface"] { min-height: 340px; }
  .sd-grid--mobile .sd-w[data-sd-w="heatmap"], .sd-grid--mobile .sd-w[data-sd-w="strikes"] { min-height: 420px; }
  .sd-tk { height: 28px; } .sd-tk__track { height: 28px; }
}

/* Structures: one collapsed row each, opened for the legs and the arithmetic. */
.sd-strats { display: grid; gap: 6px; margin-top: 8px; }
.sd-strat { border: 1px solid var(--sd-line, rgba(255,255,255,.08)); border-radius: 8px; background: var(--sd-raise, rgba(255,255,255,.02)); overflow: hidden; }
.sd-strat > summary { cursor: pointer; padding: 8px 10px; font-size: 12px; display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.sd-strat > summary::-webkit-details-marker { display: none; }
.sd-strat > summary b { font-weight: 600; }
.sd-strat[open] > summary { border-bottom: 1px solid var(--sd-line, rgba(255,255,255,.08)); }
.sd-strat__odds { margin-left: auto; opacity: .75; font-variant-numeric: tabular-nums; }
.sd-strat__body { padding: 8px 10px 10px; }
.sd-strat__legs { margin: 0 0 6px; display: flex; gap: 6px; flex-wrap: wrap; align-items: baseline; }
.sd-leg { font-variant-numeric: tabular-nums; font-size: 11px; padding: 1px 6px; border-radius: 999px; border: 1px solid var(--sd-line, rgba(255,255,255,.1)); }
.sd-leg.is-buy { color: var(--sd-pos, #6fc99a); }
.sd-leg.is-sell { color: var(--sd-neg, #d98a8a); }
.sd-tbl--wide { min-width: 720px; }
.sd-tbl tr.is-here { background: var(--sd-raise, rgba(255,255,255,.04)); }
