/* ==========================================================================
   Invest Zone — Windows 98 Theme Stylesheet
   Telegram Mini-App · Light + Dark (High Contrast Black)
   ========================================================================== */

/* --------------------------------------------------------------------------
   Font Faces
   -------------------------------------------------------------------------- */
@font-face {
  font-family: 'W95FA';
  src: url('/v3assets/W95FA.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'FixedsysExcelsior';
  src: url('/v3assets/FixedsysExcelsior.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/* --------------------------------------------------------------------------
   Light Theme Tokens
   -------------------------------------------------------------------------- */
:root {
  --face: #C0C0C0;
  --bevel-hi: #FFFFFF;
  --bevel-light: #DFDFDF;
  --bevel-dark: #808080;
  --outline: #000000;
  --title: #000080;
  --title-grad-end: #1084D0;
  --heading-color: var(--title);
  --control-accent: var(--title);
  --danger-text: #A00000;
  --warning-text: #5f4300;
  --warning-bg: #fff4c2;
  --warning-border: #8a6100;
  --up: #008000;
  --down: #A00000;
  --desktop: #3A6EA5;
  --text: #000000;
  --text-mid: #3A3A3A;
  --text-dim: #6A6A6A;
  --separator: #D4D0C8;
  --field: #FFFFFF;
  --candle-up: #00A000;
  --candle-up-border: #006000;
  --candle-down: #D02020;
  --candle-down-border: #800000;
  --chart-grid: #E0E0E0;
  --shade: rgba(0, 0, 0, 0.35);
  --win-shadow: 6px 6px 0 rgba(0, 0, 0, 0.35);
  --dlg-shadow: 4px 4px 0 rgba(0, 0, 0, 0.3);
  --title-inactive-start: #7A7A7A;
  --title-inactive-end: #A8A8A8;
  --title-inactive-text: #DFDFDF;
  --trackbar-fill: #000080;
  --ui: Tahoma, 'MS Sans Serif', Verdana, sans-serif;
  --ui-pixel: 'W95FA', 'FixedsysExcelsior', Tahoma, sans-serif;
  --mono: 'Courier New', Courier, ui-monospace, monospace;
  --hit-min: 44px;
  --panel: #C0C0C0;
  --fs-body: 13.5px;
  --fs-price: 15px;
  --fs-h2: 20px;
  --fs-sym: 15px;
  --fs-summary: 14px;
  --row-h: 58px;
}

/* --------------------------------------------------------------------------
   Dark Theme Tokens (High Contrast Black)
   -------------------------------------------------------------------------- */
[data-theme='dark'] {
  --face: #0a0a0a;
  --panel: #0a0a0a;
  --bevel-hi: #808080;
  --bevel-light: #555555;
  --bevel-dark: #333333;
  --outline: #808080;
  --title: #000080;
  --title-grad-end: #075a9c;
  --heading-color: #8ab4ff;
  --control-accent: #286a9f;
  --control-surface: #242424;
  --control-border: #808080;
  --danger-text: #ff6b6b;
  --dn: var(--danger-text);
  --warning-text: #ffe08a;
  --warning-bg: #2c2410;
  --warning-border: #b58a00;
  --up: #00c853;
  --down: #ff5252;
  --desktop: #000000;
  --text: #e8e8e8;
  --text-mid: #c8c8c8;
  --text-dim: #9a9a9a;
  --separator: #666666;
  --field: #151515;
  --candle-up: #00c853;
  --candle-up-border: #008c3a;
  --candle-down: #ff5252;
  --candle-down-border: #c62828;
  --chart-grid: #222222;
  --shade: rgba(0, 0, 0, 0.55);
  --win-shadow: 6px 6px 0 rgba(0, 0, 0, 0.55);
  --dlg-shadow: 4px 4px 0 rgba(0, 0, 0, 0.5);
  --title-inactive-start: #2a2a4a;
  --title-inactive-end: #3a3a6a;
  --title-inactive-text: #f0f0f0;
  --trackbar-fill: #1084d0;
}

/* --------------------------------------------------------------------------
   Reset & Base
   -------------------------------------------------------------------------- */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  border-radius: 0;
  transition: none;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  min-height: 100dvh;
  background: var(--desktop);
  color: var(--text);
  font-family: var(--ui);
  font-size: var(--fs-body);
  line-height: 1.35;
  -webkit-font-smoothing: antialiased;
  font-smooth: always;
  font-variant-numeric: tabular-nums;
  -moz-osx-font-smoothing: unset;
  overflow: hidden;
}

[data-theme='dark'] body {
  background: #000000;
}

img,
canvas {
  display: block;
  max-width: 100%;
}
/* Icons: never flex-grow; hard sizes only via .ic / attrs */
svg.ic, svg.chev, svg.spark, .taskbar svg, .tbtn svg, .tico svg, .btn svg, .searchbox svg, .connrow svg {
  display: block;
  flex: 0 0 auto;
  max-width: none;
  overflow: visible;
  pointer-events: none; /* hit-area lives on parent row/button only */
}

button,
input,
select,
textarea {
  font: inherit;
  color: inherit;
  background: none;
  border: none;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
}

a {
  color: var(--heading-color, var(--title));
  text-decoration: underline;
}

[data-theme='dark'] a {
  color: var(--heading-color, var(--title));
}

ul,
ol {
  list-style: none;
}

table {
  border-collapse: collapse;
  width: 100%;
}

:focus-visible {
  outline: 1px dotted var(--outline);
  outline-offset: -4px;
}

/* --------------------------------------------------------------------------
   Typography Utilities
   -------------------------------------------------------------------------- */
.mono,
.price,
.num,
.tabular {
  font-family: var(--mono);
  font-variant-numeric: tabular-nums;
}

.text-mid {
  color: var(--text-mid);
}

.text-dim {
  color: var(--text-dim);
}

.text-up {
  color: var(--up);
}

.text-down {
  color: var(--down);
}

.bold {
  font-weight: bold;
}

/* --------------------------------------------------------------------------
   Bevel Utilities
   -------------------------------------------------------------------------- */
.bevel-raised {
  background: var(--face);
  box-shadow:
    inset -1px -1px 0 var(--outline),
    inset 1px 1px 0 var(--bevel-hi),
    inset -2px -2px 0 var(--bevel-dark),
    inset 2px 2px 0 var(--bevel-light);
}

.bevel-pressed,
.sunken {
  background: var(--field);
  box-shadow:
    inset 1px 1px 0 var(--bevel-dark),
    inset -1px -1px 0 var(--bevel-hi),
    inset 2px 2px 0 var(--outline);
}

.bevel-etched {
  background: var(--face);
  box-shadow:
    inset -1px -1px 0 var(--bevel-hi),
    inset 1px 1px 0 var(--bevel-dark);
}

[data-theme='dark'] .bevel-raised {
  box-shadow:
    inset -1px -1px 0 var(--outline),
    inset 1px 1px 0 var(--bevel-hi),
    inset -2px -2px 0 var(--bevel-dark),
    inset 2px 2px 0 var(--bevel-light);
}

[data-theme='dark'] .bevel-pressed,
[data-theme='dark'] .sunken {
  background: var(--field);
  box-shadow:
    inset 1px 1px 0 var(--bevel-hi),
    inset -1px -1px 0 var(--bevel-dark),
    inset 2px 2px 0 var(--outline);
}

[data-theme='dark'] .bevel-etched {
  box-shadow:
    inset -1px -1px 0 var(--bevel-hi),
    inset 1px 1px 0 var(--bevel-dark);
}

.btn-default {
  background: var(--face);
  box-shadow:
    inset -1px -1px 0 var(--outline),
    inset 1px 1px 0 var(--bevel-hi),
    inset -2px -2px 0 var(--bevel-dark),
    inset 2px 2px 0 var(--bevel-light),
    0 0 0 1px var(--outline);
}

.win-shadow {
  box-shadow: var(--win-shadow);
}

.dlg-shadow {
  box-shadow: var(--dlg-shadow);
}

/* --------------------------------------------------------------------------
   Hit Area Helper
   -------------------------------------------------------------------------- */
.hit-area {
  position: relative;
  min-height: var(--hit-min);
}

.hit-area::before,
.btn::before,
.tab::before,
.preset::before,
.mrow::before,
.taskbtn::before,
.seg label::before,
.chip::before {
  content: '';
  position: absolute;
  inset: -8px -4px;
  min-height: var(--hit-min);
  z-index: 0;
}

/* --------------------------------------------------------------------------
   App Shell
   -------------------------------------------------------------------------- */
#app {
  position: relative;
  display: flex;
  flex-direction: column;
  max-width: 460px;
  width: 100%;
  height: 100dvh;
  margin: 0 auto;
  background: var(--face);
  box-shadow:
    inset -1px -1px 0 var(--outline),
    inset 1px 1px 0 var(--bevel-hi),
    inset -2px -2px 0 var(--bevel-dark),
    inset 2px 2px 0 var(--bevel-light),
    var(--win-shadow);
  overflow: hidden;
}

#app.is-modal .titlebar,
.titlebar.inactive {
  background: linear-gradient(90deg, var(--title-inactive-start), var(--title-inactive-end));
  color: var(--title-inactive-text);
}

/* --------------------------------------------------------------------------
   Titlebar
   -------------------------------------------------------------------------- */
.titlebar {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  height: 22px;
  margin: 3px 3px 0;
  padding: 0 4px;
  background: linear-gradient(90deg, var(--title), var(--title-grad-end));
  color: #FFFFFF;
  font-size: 11px;
  font-weight: bold;
  line-height: 22px;
  user-select: none;
  -webkit-user-select: none;
}

.titlebar .title {
  flex: 1;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.titlebar .winbtns {
  display: flex;
  gap: 2px;
  margin-left: 4px;
}

.titlebar .winbtn {
  position: relative;
  width: 16px;
  height: 14px;
  background: var(--face);
  box-shadow:
    inset -1px -1px 0 var(--outline),
    inset 1px 1px 0 var(--bevel-hi),
    inset -2px -2px 0 var(--bevel-dark),
    inset 2px 2px 0 var(--bevel-light);
  font-size: 9px;
  line-height: 12px;
  text-align: center;
  color: var(--text);
  cursor: pointer;
}

.titlebar .winbtn:active {
  box-shadow:
    inset 1px 1px 0 var(--bevel-dark),
    inset -1px -1px 0 var(--bevel-hi),
    inset 2px 2px 0 var(--outline);
}

.titlebar .winbtn:active .glyph {
  transform: translate(1px, 1px);
}

/* --------------------------------------------------------------------------
   Main Content Area
   -------------------------------------------------------------------------- */
#main,
#body,
.appbody,
.content {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

.screen {
  display: none;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

.screen.on {
  display: flex;
}

#scr-markets,
#scr-signal,
#scr-trades,
#scr-profile {
  padding: 0 8px 8px;
}

.scroll-y {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
}

/* --------------------------------------------------------------------------
   Banner / Section Head
   -------------------------------------------------------------------------- */
.banner,
.secthead {
  padding: 8px 10px 9px;
  margin-bottom: 6px;
  background: var(--face);
  box-shadow: inset 0 -1px 0 var(--bevel-dark), inset 0 1px 0 var(--bevel-hi);
}

.banner h2,
.secthead h2,
.secthead .label {
  font-size: 17px;
  font-weight: bold;
  color: var(--heading-color, var(--title));
  line-height: 1.1;
}

[data-theme='dark'] .banner h2,
[data-theme='dark'] .secthead h2,
[data-theme='dark'] .secthead .label {
  color: var(--heading-color, var(--title));
}

/* --------------------------------------------------------------------------
   Taskbar
   -------------------------------------------------------------------------- */
#taskbar,
.taskbar {
  flex: 0 0 auto;
  position: sticky;
  bottom: 0;
  z-index: 30;
  display: flex;
  align-items: stretch;
  gap: 4px;
  height: calc(52px + env(safe-area-inset-bottom, 0px));
  padding: 6px 8px calc(6px + env(safe-area-inset-bottom, 0px));
  background: var(--face);
  box-shadow: inset 0 1px 0 var(--bevel-hi);
}

#taskbar .taskbtn,
.taskbar .taskbtn,
.taskbar button {
  position: relative;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  min-height: 34px;
  padding: 4px 2px;
  background: var(--face);
  box-shadow:
    inset -1px -1px 0 var(--outline),
    inset 1px 1px 0 var(--bevel-hi),
    inset -2px -2px 0 var(--bevel-dark),
    inset 2px 2px 0 var(--bevel-light);
  color: var(--text);
  font-size: 10px;
  cursor: pointer;
  z-index: 1;
}

#taskbar .taskbtn .icon,
.taskbar .taskbtn .icon {
  width: 16px;
  height: 16px;
  font-size: 14px;
  line-height: 16px;
}

#taskbar .taskbtn.active,
.taskbar .taskbtn.active,
#taskbar .taskbtn.on,
.taskbar .taskbtn.on {
  box-shadow:
    inset 1px 1px 0 var(--bevel-dark),
    inset -1px -1px 0 var(--bevel-hi),
    inset 2px 2px 0 var(--outline);
}

#taskbar .taskbtn.active:focus-visible,
.taskbar .taskbtn.active:focus-visible,
#taskbar .taskbtn.on:focus-visible,
.taskbar .taskbtn.on:focus-visible {
  outline: 1px dotted var(--outline);
  outline-offset: -4px;
}

#taskbar .taskbtn:active:not(.active):not(.on),
.taskbar .taskbtn:active:not(.active):not(.on) {
  box-shadow:
    inset 1px 1px 0 var(--bevel-dark),
    inset -1px -1px 0 var(--bevel-hi),
    inset 2px 2px 0 var(--outline);
}

#taskbar .taskbtn:active:not(.active):not(.on) .label,
#taskbar .taskbtn:active:not(.active):not(.on) .icon,
.taskbar .taskbtn:active:not(.active):not(.on) .label,
.taskbar .taskbtn:active:not(.active):not(.on) .icon {
  transform: translate(1px, 1px);
}

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */
.btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 4px 12px;
  background: var(--face);
  box-shadow:
    inset -1px -1px 0 var(--outline),
    inset 1px 1px 0 var(--bevel-hi),
    inset -2px -2px 0 var(--bevel-dark),
    inset 2px 2px 0 var(--bevel-light),
    0 0 0 1px var(--outline);
  color: var(--text);
  font-size: 11px;
  cursor: pointer;
  user-select: none;
  -webkit-user-select: none;
  z-index: 1;
}

.btn.primary,
#btnCopyTrade {
  height: 34px;
  min-height: 34px;
  padding: 6px 16px;
  font-weight: bold;
}

.btn:active,
.btn.pressed {
  box-shadow:
    inset 1px 1px 0 var(--bevel-dark),
    inset -1px -1px 0 var(--bevel-hi),
    inset 2px 2px 0 var(--outline),
    0 0 0 1px var(--outline);
}

.btn:active .btn-label,
.btn:active .label,
.btn:active span,
.btn.pressed .btn-label,
.btn.pressed .label,
.btn.pressed span {
  transform: translate(1px, 1px);
}

.btn:disabled,
.btn.disabled {
  color: var(--text-dim);
  pointer-events: none;
}

.btn-block {
  display: flex;
  width: 100%;
}

.btn-row {
  display: flex;
  gap: 6px;
  margin-top: 8px;
}

/* --------------------------------------------------------------------------
   Search Field
   -------------------------------------------------------------------------- */
.search,
.searchbox,
#marketSearch {
  position: relative;
  height: 24px;
  margin-bottom: 8px;
}

.search input,
.searchbox input,
#marketSearch input {
  width: 100%;
  height: 24px;
  padding: 2px 6px;
  background: var(--field);
  box-shadow:
    inset 1px 1px 0 var(--bevel-dark),
    inset -1px -1px 0 var(--bevel-hi),
    inset 2px 2px 0 var(--outline);
  color: var(--text);
  font-size: 11px;
}

.search input::placeholder,
.searchbox input::placeholder {
  color: var(--text-dim);
}

/* --------------------------------------------------------------------------
   Market Rows
   -------------------------------------------------------------------------- */
#marketList,
.market-list {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}

.mrow,
.market-row {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding: 6px 8px;
  border-bottom: 1px solid var(--separator);
  cursor: pointer;
  z-index: 1;
}

.mrow:last-child,
.market-row:last-child {
  border-bottom: none;
}

.mrow:hover,
.market-row:hover {
  background: var(--bevel-light);
}

[data-theme='dark'] .mrow:hover,
[data-theme='dark'] .market-row:hover {
  background: #1A1A1A;
}

.mrow .sym,
.mrow .symbol {
  flex: 0 0 auto;
  font-weight: bold;
  font-size: 12px;
}

.mrow .name {
  flex: 1 1 auto;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  color: var(--text-mid);
  font-size: 11px;
}

.mrow .price,
.mrow .chg {
  flex: 0 0 auto;
  text-align: right;
  font-family: var(--mono);
  font-variant-numeric: tabular-nums;
  font-size: 11px;
}

.mrow .chg.up {
  color: var(--up);
}

.mrow .chg.down {
  color: var(--down);
}

/* --------------------------------------------------------------------------
   Chips / Exchange Tags
   -------------------------------------------------------------------------- */
.chip,
.exchange-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 24px;
  padding: 0 8px;
  background: var(--face);
  box-shadow:
    inset -1px -1px 0 var(--outline),
    inset 1px 1px 0 var(--bevel-hi),
    inset -2px -2px 0 var(--bevel-dark),
    inset 2px 2px 0 var(--bevel-light);
  font-size: 10px;
  white-space: nowrap;
}

.chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 8px;
}

/* --------------------------------------------------------------------------
   Summary Cells
   -------------------------------------------------------------------------- */
.summary,
.summary-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4px;
  margin-bottom: 8px;
}

.summary .cell,
.summary-cell {
  padding: 6px 8px;
  background: var(--field);
  box-shadow:
    inset 1px 1px 0 var(--bevel-dark),
    inset -1px -1px 0 var(--bevel-hi),
    inset 2px 2px 0 var(--outline);
  text-align: center;
}

.summary .cell .lbl,
.summary-cell .label {
  display: block;
  font-size: 10px;
  color: var(--text-dim);
  margin-bottom: 2px;
}

.summary .cell .val,
.summary-cell .value {
  font-family: var(--mono);
  font-variant-numeric: tabular-nums;
  font-size: 12px;
  font-weight: bold;
}

/* --------------------------------------------------------------------------
   Chart Box
   -------------------------------------------------------------------------- */
.chartbox,
#chartBox {
  position: relative;
  height: 250px;
  margin-bottom: 8px;
  background: var(--field);
  box-shadow:
    inset 1px 1px 0 var(--bevel-dark),
    inset -1px -1px 0 var(--bevel-hi),
    inset 2px 2px 0 var(--outline);
  overflow: hidden;
}

.chartbox canvas,
#chartBox canvas {
  width: 100%;
  height: 100%;
}

.chartbox .grid-line {
  stroke: var(--chart-grid);
}

.chartbox .candle.up {
  fill: var(--candle-up);
  stroke: var(--candle-up-border);
}

.chartbox .candle.down {
  fill: var(--candle-down);
  stroke: var(--candle-down-border);
}

/* --------------------------------------------------------------------------
   Segmented Controls (Timeframe, Theme, Lang, Via)
   -------------------------------------------------------------------------- */
.seg,
.segctrl {
  display: flex;
  gap: 0;
  margin-bottom: 8px;
}

.seg label,
.segctrl label,
.seg .seg-item {
  position: relative;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 4px 6px;
  background: var(--face);
  box-shadow:
    inset -1px -1px 0 var(--outline),
    inset 1px 1px 0 var(--bevel-hi),
    inset -2px -2px 0 var(--bevel-dark),
    inset 2px 2px 0 var(--bevel-light);
  font-size: 11px;
  text-align: center;
  cursor: pointer;
  user-select: none;
  -webkit-user-select: none;
  z-index: 1;
}

.seg input,
.segctrl input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}

.seg input:checked + span,
.seg input:checked + label,
.seg label.active,
.segctrl input:checked + span,
.segctrl label.active,
.seg .seg-item.active {
  background: var(--control-accent, var(--title));
  color: #FFFFFF;
  font-weight: bold;
  box-shadow:
    inset 1px 1px 0 var(--bevel-dark),
    inset -1px -1px 0 var(--bevel-hi),
    inset 2px 2px 0 var(--outline);
}

[data-theme='dark'] .seg input:checked + span,
[data-theme='dark'] .seg label.active,
[data-theme='dark'] #tfSeg input:checked + span,
[data-theme='dark'] #themeSeg input:checked + span,
[data-theme='dark'] #langSeg input:checked + span,
[data-theme='dark'] #viaSeg input:checked + span {
  background: var(--control-accent, var(--title));
  color: #FFFFFF;
}

#tfSeg,
#themeSeg,
#langSeg,
#viaSeg {
  display: flex;
  gap: 0;
}

.seg.mini label,
.seg.mini .seg-item {
  min-height: 22px;
  padding: 2px 8px;
  font-size: 10px;
}

.seg label:active:not(:has(input:checked)),
.segctrl label:active:not(.active) {
  box-shadow:
    inset 1px 1px 0 var(--bevel-dark),
    inset -1px -1px 0 var(--bevel-hi),
    inset 2px 2px 0 var(--outline);
}

.seg label:active:not(:has(input:checked)) span,
.segctrl label:active:not(.active) span {
  transform: translate(1px, 1px);
}

/* --------------------------------------------------------------------------
   Signal Card
   -------------------------------------------------------------------------- */
#signalCard,
.signal-card,
.signal {
  margin-bottom: 8px;
}

.signal-group,
.sig-group {
  padding: 8px;
  margin-bottom: 6px;
  background: var(--face);
  box-shadow:
    inset -1px -1px 0 var(--bevel-hi),
    inset 1px 1px 0 var(--bevel-dark);
}

.signal-group .head,
.sig-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
  font-weight: bold;
  color: var(--heading-color, var(--title));
}

.signal-group .dir.up,
.sig-dir.up {
  color: var(--up);
}

.signal-group .dir.down,
.sig-dir.down {
  color: var(--down);
}

/* Confidence Bar */
.conf-bar,
.confidence-bar {
  display: flex;
  gap: 2px;
  align-items: center;
  margin: 6px 0;
}

.conf-bar .seg,
.conf-bar .segment,
.confidence-bar .segment {
  width: 40px;
  height: 10px;
  background: var(--face);
  box-shadow:
    inset -1px -1px 0 var(--bevel-hi),
    inset 1px 1px 0 var(--bevel-dark);
}

.conf-bar .seg.on,
.conf-bar .segment.on,
.confidence-bar .segment.on,
.conf-bar .seg.filled,
.conf-bar .segment.filled {
  background: var(--control-accent, var(--title));
}

[data-theme='dark'] .conf-bar .seg.on,
[data-theme='dark'] .conf-bar .segment.on {
  background: var(--control-accent, var(--title));
}

/* RR Bar */
.rr-bar,
.rr-track {
  position: relative;
  height: 14px;
  margin: 6px 0;
  background: var(--field);
  box-shadow:
    inset 1px 1px 0 var(--bevel-dark),
    inset -1px -1px 0 var(--bevel-hi),
    inset 2px 2px 0 var(--outline);
}

.rr-bar .fill,
.rr-bar .rr-fill {
  height: 100%;
  background: var(--control-accent, var(--title));
}

.rr-bar .marker,
.rr-bar .rr-marker {
  position: absolute;
  top: 0;
  width: 2px;
  height: 100%;
  background: var(--outline);
}

/* Level Rows */
.lvlrow,
.lvl-row,
.level-row {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 8px;
  align-items: center;
  padding: 6px 4px;
  border-bottom: 1px solid var(--separator);
  font-family: var(--mono);
  font-variant-numeric: tabular-nums;
  font-size: 11px;
}

.lvlrow:last-child,
.lvl-row:last-child {
  border-bottom: none;
}

.lvlrow .lbl {
  color: var(--text-mid);
}

.lvlrow .val {
  text-align: right;
}

.lvl-table {
  width: 100%;
  margin-bottom: 8px;
}

.lvl-table th,
.lvl-table td {
  padding: 4px 6px;
  border-bottom: 1px solid var(--separator);
  text-align: left;
  font-size: 11px;
}

.lvl-table th {
  font-weight: bold;
  color: var(--heading-color, var(--title));
}

.lvl-table .num {
  text-align: right;
  font-family: var(--mono);
  font-variant-numeric: tabular-nums;
}

/* --------------------------------------------------------------------------
   Position Cards
   -------------------------------------------------------------------------- */
.pos,
.pos-card,
.position {
  padding: 8px;
  margin-bottom: 6px;
  background: var(--face);
  box-shadow:
    inset -1px -1px 0 var(--bevel-hi),
    inset 1px 1px 0 var(--bevel-dark);
}

.pos .head,
.pos-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 4px;
  font-weight: bold;
}

.pos .meta,
.pos-meta {
  display: flex;
  gap: 8px;
  font-size: 10px;
  color: var(--text-dim);
}

.pos .pnl {
  font-family: var(--mono);
  font-variant-numeric: tabular-nums;
  font-weight: bold;
}

.pos .pnl.up {
  color: var(--up);
}

.pos .pnl.down {
  color: var(--down);
}

.pos-group,
.positions-group {
  margin-bottom: 8px;
}

/* --------------------------------------------------------------------------
   Range Inputs (Trackbars)
   -------------------------------------------------------------------------- */
.range-wrap,
.trackbar-wrap {
  margin-bottom: 10px;
}

.range-wrap .lbl,
.trackbar-wrap .label {
  display: flex;
  justify-content: space-between;
  margin-bottom: 4px;
  font-size: 11px;
}

.range-wrap .lbl .val,
.trackbar-wrap .label .value {
  font-family: var(--mono);
  font-variant-numeric: tabular-nums;
}

input[type='range'],
#sizeRange,
#levRange,
.trackbar {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 18px;
  background: transparent;
  cursor: pointer;
  position: relative;
}

input[type='range']::-webkit-slider-runnable-track,
#sizeRange::-webkit-slider-runnable-track,
#levRange::-webkit-slider-runnable-track {
  height: 4px;
  background: var(--field);
  box-shadow:
    inset 1px 1px 0 var(--bevel-dark),
    inset -1px -1px 0 var(--bevel-hi),
    inset 2px 2px 0 var(--outline);
  border: none;
}

input[type='range']::-webkit-slider-thumb,
#sizeRange::-webkit-slider-thumb,
#levRange::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 11px;
  height: 18px;
  margin-top: -7px;
  background: var(--face);
  box-shadow:
    inset -1px -1px 0 var(--outline),
    inset 1px 1px 0 var(--bevel-hi),
    inset -2px -2px 0 var(--bevel-dark),
    inset 2px 2px 0 var(--bevel-light);
  border: none;
  cursor: pointer;
}

input[type='range']::-moz-range-track,
#sizeRange::-moz-range-track,
#levRange::-moz-range-track {
  height: 4px;
  background: var(--field);
  box-shadow:
    inset 1px 1px 0 var(--bevel-dark),
    inset -1px -1px 0 var(--bevel-hi),
    inset 2px 2px 0 var(--outline);
  border: none;
}

input[type='range']::-moz-range-thumb,
#sizeRange::-moz-range-thumb,
#levRange::-moz-range-thumb {
  width: 11px;
  height: 18px;
  background: var(--face);
  box-shadow:
    inset -1px -1px 0 var(--outline),
    inset 1px 1px 0 var(--bevel-hi),
    inset -2px -2px 0 var(--bevel-dark),
    inset 2px 2px 0 var(--bevel-light);
  border: none;
  cursor: pointer;
}

input[type='range']::-moz-range-progress,
#sizeRange::-moz-range-progress,
#levRange::-moz-range-progress {
  height: 4px;
  background: var(--trackbar-fill);
}

.trackbar-hit {
  position: relative;
  padding: 11px 0;
  margin: -11px 0;
}

/* Fill overlay for webkit trackbars via JS or pseudo */
.range-fill {
  position: absolute;
  height: 4px;
  background: var(--trackbar-fill);
  pointer-events: none;
}

/* --------------------------------------------------------------------------
   Checkbox
   -------------------------------------------------------------------------- */
.checkbox-wrap,
.check-row {
  display: flex;
  align-items: center;
  gap: 6px;
  min-height: var(--hit-min);
  cursor: pointer;
}

.checkbox,
input[type='checkbox'].win98 {
  position: relative;
  width: 13px;
  height: 13px;
  flex: 0 0 13px;
  background: var(--field);
  box-shadow:
    inset 1px 1px 0 var(--bevel-dark),
    inset -1px -1px 0 var(--bevel-hi),
    inset 2px 2px 0 var(--outline);
  cursor: pointer;
}

.checkbox:checked,
input[type='checkbox'].win98:checked {
  background:
    var(--field)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13 13'%3E%3Cpath d='M2 6l3 3 6-7' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E")
    center/11px no-repeat;
}

[data-theme='dark'] .checkbox:checked,
[data-theme='dark'] input[type='checkbox'].win98:checked {
  background:
    var(--field)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13 13'%3E%3Cpath d='M2 6l3 3 6-7' fill='none' stroke='%23fff' stroke-width='2'/%3E%3C/svg%3E")
    center/11px no-repeat;
}

.checkbox-label {
  font-size: 11px;
  user-select: none;
  -webkit-user-select: none;
}

/* --------------------------------------------------------------------------
   Modal Sheet
   -------------------------------------------------------------------------- */
.sheetwrap,
.sheet-wrap,
#sheet.sheetwrap,
.modal-backdrop {
  position: absolute;
  inset: 0;
  z-index: 100;
  display: none;
  width: auto !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  background: transparent;
  box-shadow: none !important;
  overflow: visible !important;
  flex: none !important;
}

.sheetwrap.open,
.sheet-wrap.open,
.modal-backdrop.open,
.sheetwrap.on,
.sheet-wrap.on,
.sheetwrap:not([hidden]),
#sheet.sheetwrap:not([hidden]) {
  display: block !important;
}

/* #sheet is WRAPPER — never style as dialog */
.sheetwrap > .sheet,
.sheet-wrap > .sheet,
.modal-sheet {
  position: absolute;
  left: 8px;
  right: 8px;
  bottom: calc(52px + env(safe-area-inset-bottom, 0px));
  width: auto;
  max-width: none;
  max-height: calc(100% - 86px);
  margin: 0;
  background: var(--face);
  box-shadow:
    inset -1px -1px 0 var(--outline),
    inset 1px 1px 0 var(--bevel-hi),
    inset -2px -2px 0 var(--bevel-dark),
    inset 2px 2px 0 var(--bevel-light),
    var(--dlg-shadow);
  display: flex;
  flex-direction: column;
  overflow: auto;
  z-index: 2;
}

.shead,
.sheet-head,
.sheet .titlebar {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  height: 22px;
  padding: 0 4px;
  background: linear-gradient(90deg, var(--title), var(--title-grad-end));
  color: #FFFFFF;
  font-size: 11px;
  font-weight: bold;
}

[data-theme='dark'] .shead,
[data-theme='dark'] .sheet-head,
[data-theme='dark'] .titlebar {
  color: #FFFFFF;
}

.sheet-body,
.sheetcontent {
  flex: 1 1 auto;
  min-height: 0;
  padding: 8px;
  overflow-y: auto;
}

.sheet-foot,
.sheet-actions {
  flex: 0 0 auto;
  display: flex;
  gap: 6px;
  justify-content: flex-end;
  padding: 8px;
  border-top: 1px solid var(--separator);
}

/* --------------------------------------------------------------------------
   Profile Screen
   -------------------------------------------------------------------------- */
#scr-profile .field-row,
.profile-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 34px;
  padding: 6px 0;
  border-bottom: 1px solid var(--separator);
}

#scr-profile .field-row:last-child,
.profile-row:last-child {
  border-bottom: none;
}

.profile-section {
  margin-bottom: 12px;
}

.profile-section .secthead {
  margin-bottom: 4px;
}

/* --------------------------------------------------------------------------
   Trades Screen
   -------------------------------------------------------------------------- */
#scr-trades .trade-row,
.trade-row {
  position: relative;
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 6px;
  align-items: center;
  min-height: 34px;
  padding: 6px 4px;
  border-bottom: 1px solid var(--separator);
  cursor: pointer;
}

.trade-row .sym {
  font-weight: bold;
}

.trade-row .side.buy,
.trade-row .side.long {
  color: var(--up);
}

.trade-row .side.sell,
.trade-row .side.short {
  color: var(--down);
}

.trade-row .time {
  font-size: 10px;
  color: var(--text-dim);
}

.empty-state,
.empty {
  padding: 24px 12px;
  text-align: center;
  color: var(--text-dim);
  font-size: 11px;
}

/* --------------------------------------------------------------------------
   Scrollbar (Win98 style)
   -------------------------------------------------------------------------- */
.scrollbar-98::-webkit-scrollbar {
  width: 16px;
  height: 16px;
}

.scrollbar-98::-webkit-scrollbar-track {
  background: var(--face);
  box-shadow:
    inset 1px 1px 0 var(--bevel-dark),
    inset -1px -1px 0 var(--bevel-hi);
}

.scrollbar-98::-webkit-scrollbar-thumb {
  background: var(--face);
  box-shadow:
    inset -1px -1px 0 var(--outline),
    inset 1px 1px 0 var(--bevel-hi),
    inset -2px -2px 0 var(--bevel-dark),
    inset 2px 2px 0 var(--bevel-light);
}

.scrollbar-98::-webkit-scrollbar-button:single-button {
  display: block;
  height: 16px;
  width: 16px;
  background: var(--face);
  box-shadow:
    inset -1px -1px 0 var(--outline),
    inset 1px 1px 0 var(--bevel-hi),
    inset -2px -2px 0 var(--bevel-dark),
    inset 2px 2px 0 var(--bevel-light);
  background-repeat: no-repeat;
  background-position: center;
}

.scrollbar-98::-webkit-scrollbar-button:single-button:vertical:decrement {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath d='M1 6 L4 2 L7 6' fill='%23000'/%3E%3C/svg%3E");
}

.scrollbar-98::-webkit-scrollbar-button:single-button:vertical:increment {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath d='M1 2 L4 6 L7 2' fill='%23000'/%3E%3C/svg%3E");
}

[data-theme='dark'] .scrollbar-98::-webkit-scrollbar-button:single-button:vertical:decrement {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath d='M1 6 L4 2 L7 6' fill='%23fff'/%3E%3C/svg%3E");
}

[data-theme='dark'] .scrollbar-98::-webkit-scrollbar-button:single-button:vertical:increment {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath d='M1 2 L4 6 L7 2' fill='%23fff'/%3E%3C/svg%3E");
}

.scroll-y,
#marketList,
.market-list,
.sheet-body,
.scrollbar-98 {
  scrollbar-width: thin;
  scrollbar-color: var(--bevel-dark) var(--face);
}

#marketList::-webkit-scrollbar,
.market-list::-webkit-scrollbar,
.scroll-y::-webkit-scrollbar,
.sheet-body::-webkit-scrollbar {
  width: 16px;
}

#marketList::-webkit-scrollbar-track,
.market-list::-webkit-scrollbar-track,
.scroll-y::-webkit-scrollbar-track,
.sheet-body::-webkit-scrollbar-track {
  background: var(--face);
  box-shadow:
    inset 1px 1px 0 var(--bevel-dark),
    inset -1px -1px 0 var(--bevel-hi);
}

#marketList::-webkit-scrollbar-thumb,
.market-list::-webkit-scrollbar-thumb,
.scroll-y::-webkit-scrollbar-thumb,
.sheet-body::-webkit-scrollbar-thumb {
  background: var(--face);
  box-shadow:
    inset -1px -1px 0 var(--outline),
    inset 1px 1px 0 var(--bevel-hi),
    inset -2px -2px 0 var(--bevel-dark),
    inset 2px 2px 0 var(--bevel-light);
}

/* --------------------------------------------------------------------------
   Tabs (generic)
   -------------------------------------------------------------------------- */
.tabs {
  display: flex;
  gap: 2px;
  margin-bottom: 8px;
}

.tab {
  position: relative;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 4px 8px;
  background: var(--face);
  box-shadow:
    inset -1px -1px 0 var(--outline),
    inset 1px 1px 0 var(--bevel-hi),
    inset -2px -2px 0 var(--bevel-dark),
    inset 2px 2px 0 var(--bevel-light);
  font-size: 11px;
  cursor: pointer;
  z-index: 1;
}

.tab.active,
.tab.on {
  box-shadow:
    inset 1px 1px 0 var(--bevel-dark),
    inset -1px -1px 0 var(--bevel-hi),
    inset 2px 2px 0 var(--outline);
  font-weight: bold;
}

.tab:active:not(.active):not(.on) {
  box-shadow:
    inset 1px 1px 0 var(--bevel-dark),
    inset -1px -1px 0 var(--bevel-hi),
    inset 2px 2px 0 var(--outline);
}

.tab:active:not(.active):not(.on) span {
  transform: translate(1px, 1px);
}

/* --------------------------------------------------------------------------
   Presets
   -------------------------------------------------------------------------- */
.presets,
.preset-row {
  display: flex;
  gap: 4px;
  margin-bottom: 8px;
}

.preset {
  position: relative;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 4px 6px;
  background: var(--face);
  box-shadow:
    inset -1px -1px 0 var(--outline),
    inset 1px 1px 0 var(--bevel-hi),
    inset -2px -2px 0 var(--bevel-dark),
    inset 2px 2px 0 var(--bevel-light);
  font-size: 11px;
  cursor: pointer;
  z-index: 1;
}

.preset.active,
.preset.on {
  box-shadow:
    inset 1px 1px 0 var(--bevel-dark),
    inset -1px -1px 0 var(--bevel-hi),
    inset 2px 2px 0 var(--outline);
  font-weight: bold;
}

.preset:active:not(.active):not(.on) {
  box-shadow:
    inset 1px 1px 0 var(--bevel-dark),
    inset -1px -1px 0 var(--bevel-hi),
    inset 2px 2px 0 var(--outline);
}

.preset:active:not(.active):not(.on) span {
  transform: translate(1px, 1px);
}

/* --------------------------------------------------------------------------
   Statusbar / Footer info
   -------------------------------------------------------------------------- */
.statusbar,
.status-bar {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 8px;
  height: 20px;
  padding: 2px 6px;
  border-top: 1px solid var(--bevel-hi);
  box-shadow: inset 0 1px 0 var(--bevel-dark);
  font-size: 10px;
  color: var(--text-mid);
}

.statusbar .pane,
.status-bar .pane {
  flex: 1;
  padding: 0 4px;
  box-shadow:
    inset 1px 1px 0 var(--bevel-dark),
    inset -1px -1px 0 var(--bevel-hi);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* --------------------------------------------------------------------------
   Loading / Spinner (Win98 hourglass substitute)
   -------------------------------------------------------------------------- */
.loading,
.spinner-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  color: var(--text-dim);
  font-size: 11px;
}

.loading::before {
  content: '⏳';
  margin-right: 6px;
}

/* --------------------------------------------------------------------------
   Tooltips (simple)
   -------------------------------------------------------------------------- */
[data-tip] {
  position: relative;
}

[data-tip]::after {
  content: attr(data-tip);
  position: absolute;
  bottom: calc(100% + 4px);
  left: 50%;
  transform: translateX(-50%);
  padding: 2px 6px;
  background: #FFFFE1;
  color: #000;
  border: 1px solid var(--outline);
  font-size: 10px;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  z-index: 200;
}

[data-tip]:hover::after {
  opacity: 1;
}

[data-theme='dark'] [data-tip]::after {
  background: #000;
  color: #FFF;
  border-color: #FFF;
}

/* --------------------------------------------------------------------------
   Divider
   -------------------------------------------------------------------------- */
.hr,
.divider {
  height: 2px;
  margin: 8px 0;
  border: none;
  background: var(--face);
  box-shadow:
    inset 0 1px 0 var(--bevel-dark),
    inset 0 -1px 0 var(--bevel-hi);
}

/* --------------------------------------------------------------------------
   Groupbox (fieldset style)
   -------------------------------------------------------------------------- */
.groupbox,
.fieldset {
  position: relative;
  padding: 12px 8px 8px;
  margin-bottom: 8px;
  border: 1px solid var(--bevel-dark);
  box-shadow:
    inset -1px -1px 0 var(--bevel-hi),
    inset 1px 1px 0 var(--bevel-dark);
}

.groupbox legend,
.fieldset legend,
.groupbox .legend {
  position: absolute;
  top: -6px;
  left: 8px;
  padding: 0 4px;
  background: var(--face);
  font-size: 11px;
}

/* --------------------------------------------------------------------------
   Win98-specific helper classes
   -------------------------------------------------------------------------- */
.win98-window {
  background: var(--face);
  box-shadow:
    inset -1px -1px 0 var(--outline),
    inset 1px 1px 0 var(--bevel-hi),
    inset -2px -2px 0 var(--bevel-dark),
    inset 2px 2px 0 var(--bevel-light),
    var(--win-shadow);
}

.win98-inset {
  background: var(--field);
  box-shadow:
    inset 1px 1px 0 var(--bevel-dark),
    inset -1px -1px 0 var(--bevel-hi),
    inset 2px 2px 0 var(--outline);
}

.win98-btn {
  background: var(--face);
  box-shadow:
    inset -1px -1px 0 var(--outline),
    inset 1px 1px 0 var(--bevel-hi),
    inset -2px -2px 0 var(--bevel-dark),
    inset 2px 2px 0 var(--bevel-light),
    0 0 0 1px var(--outline);
}

.no-blur {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.hidden {
  display: none !important;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* --------------------------------------------------------------------------
   Responsive / Safe Area
   -------------------------------------------------------------------------- */
@supports (padding: env(safe-area-inset-bottom)) {
  #app {
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }
}

/* --------------------------------------------------------------------------
   Print (hide chrome)
   -------------------------------------------------------------------------- */
@media print {
  body {
    background: #fff;
  }

  #taskbar,
  .taskbar,
  .titlebar .winbtns {
    display: none;
  }
}


/* ==== w98r1 compatibility glue ==== */
.up, .chg.up, .badge.up { color: var(--up) !important; }
.dn, .chg.dn, .badge.dn { color: var(--down) !important; }
.mono, #coinPrice, .px b, .pnl, .kv .v { font-family: var(--mono); font-variant-numeric: tabular-nums; }
button, .mrow, .chip, .colh, .seg button, .btn, .tbtn, .tico, .taskbar button, .preset, input[type=range] {
  position: relative;
}
.taskbar button[aria-current="page"],
#taskbar button[aria-current="page"] {
  box-shadow:
    inset 1px 1px 0 var(--bevel-dark),
    inset -1px -1px 0 var(--bevel-hi),
    inset 2px 2px 0 var(--outline);
  font-weight: bold;
  outline: 1px dotted var(--outline);
  outline-offset: -4px;
}
.taskbar button .ic { width: 15px; height: 15px; }
.taskbar button span { font-size: 10px; }
.screen > .scroll-y, .screen .scroll-y { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
#scr-markets, #scr-signal, #scr-trades, #scr-profile { display: none; flex-direction: column; padding: 0 8px 8px; min-height: 0; }
#scr-markets.on, #scr-signal.on, #scr-trades.on, #scr-profile.on { display: flex; }
.listbox { flex: 1 1 auto; min-height: 0; overflow: auto; background: var(--field); }
.listbox.sunken, .summary.sunken, .searchbox.sunken, .chartbox.sunken, .kv.sunken {
  box-shadow: inset 1px 1px 0 var(--bevel-dark), inset -1px -1px 0 var(--bevel-hi), inset 2px 2px 0 var(--outline);
  background: var(--field);
}
.listhead { display: grid; grid-template-columns: 1fr 50px 92px; gap: 2px; margin: 6px 0 2px; }
.colh { height: 24px; background: var(--face); font-size: 11px; box-shadow: inset -1px -1px 0 var(--outline), inset 1px 1px 0 var(--bevel-hi), inset -2px -2px 0 var(--bevel-dark), inset 2px 2px 0 var(--bevel-light); }
.searchbox { display: flex; align-items: center; gap: 6px; height: 24px; padding: 0 6px; margin: 6px 0; }
.searchbox input { flex: 1; border: 0; background: transparent; height: 100%; min-width: 0; font-size: 11px; color: var(--text); }
.searchbox input::placeholder { color: var(--text-dim); }
.chip { display: inline-flex; align-items: center; gap: 6px; height: 24px; padding: 0 8px; margin: 4px 0 8px; background: var(--face); font-size: 11px; }
.chip .dot { color: var(--up); font-size: 10px; }
.summary { display: grid; grid-template-columns: 1fr 1fr 1fr; background: var(--field); }
.summary > div { padding: 6px 8px; box-shadow: inset 1px 0 0 var(--separator); }
.summary > div:first-child { box-shadow: none; }
.summary .k { font-size: 10px; color: var(--text-dim); }
.summary .v { font-family: var(--mono); font-size: 12px; font-weight: bold; }
.mrow { display: grid; grid-template-columns: 1fr 50px 92px; width: 100%; align-items: center; min-height: 40px; padding: 4px 6px; text-align: left; background: var(--field); color: var(--text); border: 0; box-shadow: inset 0 -1px 0 var(--separator); }
.mrow .sym { font-size: 12.5px; font-weight: bold; }
.mrow .sub { font-size: 10.5px; color: var(--text-dim); }
.mrow .spark { width: 46px; height: 16px; }
.mrow .px { text-align: right; }
.mrow .px b { display: block; font-size: 12px; }
.btn.primary, #btnCopyTrade, #btnOpenTrade {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  width: 100%; height: 34px; margin: 8px 0; font-size: 12.5px; font-weight: bold;
  background: var(--face); color: var(--text); cursor: pointer;
}
.btn.primary::before, #btnCopyTrade::before, #btnOpenTrade::before,
.taskbar button::before, .mrow::before, .chip::before, .seg button::before, .tbtn::before, .tico::before {
  content: ''; position: absolute; left: 50%; top: 50%; width: max(100%, 40px); height: max(100%, 40px);
  transform: translate(-50%, -50%); z-index: 0;
}
.btn.primary > *, #btnCopyTrade > *, .taskbar button > *, .mrow > * { position: relative; z-index: 1; }
.btn:active, .taskbar button:active, .mrow:active, .chip:active, .seg button:active, .tbtn:active {
  box-shadow: inset 1px 1px 0 var(--bevel-dark), inset -1px -1px 0 var(--bevel-hi), inset 2px 2px 0 var(--outline);
}
.btn:active > *, .taskbar button:active > *, .chip:active > *, .seg button:active > *, .tbtn:active > * {
  transform: translate(1px, 1px);
}
.seg { display: flex; gap: 4px; margin: 8px 0; }
.seg button { flex: 1; height: 24px; min-height: 40px; padding: 0 4px; background: var(--face);
  box-shadow: inset -1px -1px 0 var(--outline), inset 1px 1px 0 var(--bevel-hi), inset -2px -2px 0 var(--bevel-dark), inset 2px 2px 0 var(--bevel-light); }
.seg button[aria-pressed="true"] { background: var(--control-accent, var(--title)); color: #fff; font-weight: bold;
  box-shadow: inset 1px 1px 0 var(--bevel-dark), inset -1px -1px 0 var(--bevel-hi), inset 2px 2px 0 var(--outline); }
.seg.mini button { min-height: 40px; height: 24px; padding: 0 8px; flex: 0 0 auto; }
.sigbox { padding: 8px; margin: 8px 0; }
.conf-bar { display: inline-flex; gap: 1px; width: 40px; height: 10px; padding: 1px; background: var(--field);
  box-shadow: inset 1px 1px 0 var(--bevel-dark), inset -1px -1px 0 var(--bevel-hi), inset 2px 2px 0 var(--outline); vertical-align: middle; }
.conf-bar i { flex: 1; background: transparent; display: block; }
.conf-bar i.on { background: var(--control-accent, var(--title)); }
.rr-bar { position: relative; height: 14px; margin: 8px 0; background: var(--field);
  box-shadow: inset 1px 1px 0 var(--bevel-dark), inset -1px -1px 0 var(--bevel-hi), inset 2px 2px 0 var(--outline); }
.lvlrow { display: grid; grid-template-columns: 1fr auto auto; gap: 8px; padding: 4px 6px; background: var(--field);
  box-shadow: inset 0 -1px 0 var(--separator); font-size: 11px; }
.verdict { font-size: 11px; color: var(--text-mid); margin-top: 8px; }
.coinbar, .priceblock { display: flex; align-items: center; gap: 8px; margin: 6px 0; flex-wrap: wrap; }
#coinPrice { font-size: 26px; font-weight: bold; }
.tbtn, .tico { display: inline-flex; align-items: center; justify-content: center; min-width: 26px; height: 24px; min-height: 40px;
  padding: 0 6px; background: var(--face);
  box-shadow: inset -1px -1px 0 var(--outline), inset 1px 1px 0 var(--bevel-hi), inset -2px -2px 0 var(--bevel-dark), inset 2px 2px 0 var(--bevel-light); }
.chartbox { height: 250px; min-height: 250px; background: var(--field); }
.sheetwrap[hidden] { display: none !important; }
.sheetwrap .shade {
  position: absolute; inset: 0; z-index: 1;
  background: var(--shade);
  pointer-events: auto;
}
#app.is-modal #body { opacity: .45; pointer-events: none; }
#app.is-modal #taskbar { pointer-events: none; }
.sheetwrap > .sheet { pointer-events: auto; padding: 0 0 10px; }
.sheet .shead.titlebar {
  margin: 0; height: 26px; display: flex; align-items: center; justify-content: space-between; padding: 0 6px;
  font-family: var(--ui-pixel); font-size: 12px; color: #fff;
}
.checkbox, button.checkbox { width: 13px; height: 13px; min-height: 40px; min-width: 40px; background: var(--field);
  box-shadow: inset 1px 1px 0 var(--bevel-dark), inset -1px -1px 0 var(--bevel-hi), inset 2px 2px 0 var(--outline); }
button.checkbox[aria-pressed="true"]::after { content: '✓'; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-55%); font-size: 12px; font-weight: bold; }
.pos { margin: 8px 0; padding: 8px; box-shadow: inset -1px -1px 0 var(--bevel-hi), inset 1px 1px 0 var(--bevel-dark); }
.pnlblock { padding: 10px; margin-bottom: 8px; }
.pnlblock .big { font-family: var(--mono); font-size: 26px; font-weight: bold; }
.stats { display: grid; grid-template-columns: repeat(4,1fr); background: var(--field); }
.stats > div { padding: 8px 4px; text-align: center; box-shadow: inset 1px 0 0 var(--separator); }
.stats > div:first-child { box-shadow: none; }
.titlebar { justify-content: space-between; }
.titlebar-left, .titlebar-right { font-size: 11px; font-weight: bold; color: inherit; }
.muted, .empty { color: var(--text-dim); padding: 12px; }
input[type=range] { -webkit-appearance: none; appearance: none; width: 100%; height: 40px; background: transparent; }
input[type=range]::-webkit-slider-runnable-track { height: 4px; background: var(--field);
  box-shadow: inset 1px 1px 0 var(--bevel-dark), inset -1px -1px 0 var(--bevel-hi), inset 2px 2px 0 var(--outline); }
input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; width: 11px; height: 18px; margin-top: -7px; background: var(--face);
  box-shadow: inset -1px -1px 0 var(--outline), inset 1px 1px 0 var(--bevel-hi), inset -2px -2px 0 var(--bevel-dark), inset 2px 2px 0 var(--bevel-light); position: relative; }
.outcards { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin: 8px; }
.outcards .card { background: var(--field); padding: 8px; box-shadow: inset 1px 1px 0 var(--bevel-dark), inset -1px -1px 0 var(--bevel-hi), inset 2px 2px 0 var(--outline); }
.kv { display: grid; grid-template-columns: 1fr 1fr; margin: 8px; }
.kv > div { padding: 6px 8px; box-shadow: inset 0 -1px 0 var(--separator), inset -1px 0 0 var(--separator); }
.foot { font-size: 10.5px; color: var(--text-dim); padding: 4px 8px; }
.panel { background: var(--face); }
.me { display: flex; align-items: center; gap: 10px; padding: 8px; }
.ava { width: 42px; height: 42px; display: grid; place-items: center; background: var(--field); font-weight: bold; color: var(--heading-color, var(--title));
  box-shadow: inset 1px 1px 0 var(--bevel-dark), inset -1px -1px 0 var(--bevel-hi), inset 2px 2px 0 var(--outline); }
.row { display: flex; align-items: center; gap: 8px; padding: 8px; min-height: 40px; box-shadow: inset 0 -1px 0 var(--separator); }
.refblock { display: flex; gap: 6px; align-items: center; padding: 8px; }
.refinput { flex: 1; padding: 4px 6px; font-family: var(--mono); font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.skel { background: repeating-linear-gradient(90deg, var(--separator), var(--separator) 2px, transparent 2px, transparent 6px); }
.state-note { padding: 6px 0; font-size: 11px; }
.mig { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 4px; padding: 6px; }
.mig .cell { background: var(--field); padding: 4px; box-shadow: inset 1px 1px 0 var(--bevel-dark), inset -1px -1px 0 var(--bevel-hi); }
.mig .k { display: block; font-size: 9px; color: var(--text-dim); }
/* custom scrollbar 98 */
.listbox::-webkit-scrollbar { width: 16px; }
.listbox::-webkit-scrollbar-track { background: #DFDFDF; }
.listbox::-webkit-scrollbar-thumb { background: var(--face); box-shadow: inset -1px -1px 0 var(--outline), inset 1px 1px 0 var(--bevel-hi), inset -2px -2px 0 var(--bevel-dark), inset 2px 2px 0 var(--bevel-light); }
.listbox::-webkit-scrollbar-button:single-button { display: block; height: 16px; width: 16px; background: var(--face);
  box-shadow: inset -1px -1px 0 var(--outline), inset 1px 1px 0 var(--bevel-hi), inset -2px -2px 0 var(--bevel-dark), inset 2px 2px 0 var(--bevel-light); }

/* ==== w98r2 icon hard sizes ==== */
svg.ic, .ic {
  width: 16px !important;
  height: 16px !important;
  min-width: 16px;
  min-height: 16px;
  max-width: 16px;
  max-height: 16px;
}
svg.chev, .chev {
  width: 16px !important;
  height: 16px !important;
  min-width: 16px;
  min-height: 16px;
  max-width: 16px;
  max-height: 16px;
  flex: 0 0 16px;
}
.taskbar button .ic, #taskbar button .ic {
  width: 15px !important;
  height: 15px !important;
  min-width: 15px; min-height: 15px;
  max-width: 15px; max-height: 15px;
}
.tbtn .ic, .tico .ic, .searchbox .ic, .btn .ic {
  width: 16px !important;
  height: 16px !important;
}
.tico {
  width: 26px;
  height: 24px;
  min-height: 40px; /* hit via ::before / min */
  padding: 0;
  overflow: visible;
}
.tico .ic { margin: 0 auto; }
/* Connections rows — single line ~44-48px like ref 05 */
.connrow, #connectionList .row {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 44px;
  min-height: 44px;
  max-height: 48px;
  padding: 0 8px;
  box-sizing: border-box;
  overflow: hidden;
}
.connrow .sqi {
  width: 22px; height: 22px; flex: 0 0 22px;
  display: grid; place-items: center;
}
.connrow .sqi .ic {
  width: 14px !important; height: 14px !important;
  min-width: 14px; min-height: 14px; max-width: 14px; max-height: 14px;
}
.connrow .conn-main {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 12px;
}
.connrow .conn-main .t { font-weight: 700; display: inline; }
.connrow .conn-main .s { color: var(--up); display: inline; font-size: 11px; }
.connrow .r {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  font-family: var(--mono);
  font-size: 12px;
}
/* SVG must not get hit ::before */
svg::before, .ic::before, .chev::before { content: none !important; display: none !important; }
.row { min-height: 44px; }

/* ==========================================================================
   iz-w98-r3 — readability scale, fonts, black theme, cards, sheet
   ========================================================================== */
body { font-size: var(--fs-body); }
.mono, .price, .chg, #coinPrice, .pnl, .statcell .v, .kvcell .v, .outcard .v {
  font-family: var(--mono);
  font-variant-numeric: tabular-nums;
}
.titlebar, .titlebar *, .taskbar, .taskbar button, .taskbar button span,
.shead.titlebar, .shead.titlebar > span:first-child {
  font-family: var(--ui-pixel) !important;
  -webkit-font-smoothing: none;
}
[data-theme='dark'] body { background: #000; color: var(--text); }
[data-theme='dark'] .up, [data-theme='dark'] .chg.up, [data-theme='dark'] .tag.up { color: var(--up); }
[data-theme='dark'] .dn, [data-theme='dark'] .down, [data-theme='dark'] .chg.down, [data-theme='dark'] .tag.dn { color: var(--down); }
[data-theme='dark'] .panel, [data-theme='dark'] .sigbox, [data-theme='dark'] .pos,
[data-theme='dark'] .bevel-etched { background: var(--panel); }
[data-theme='dark'] .sunken, [data-theme='dark'] .listbox, [data-theme='dark'] .chartbox,
[data-theme='dark'] .kv.sunken, [data-theme='dark'] .posgrid .cell { background: #000; }
[data-theme='dark'] .seg button[aria-pressed="true"],
[data-theme='dark'] .chip.on,
[data-theme='dark'] .mrow:hover { background: #0d2030; }
.banner h2, .secthead h2, h2 { font-size: var(--fs-h2) !important; font-weight: 700; }
.mrow, #marketList .mrow {
  min-height: var(--row-h) !important; height: auto !important;
  padding: 8px 10px !important; align-items: center; gap: 8px;
}
.mrow .sym, .mrow .symbol { font-size: var(--fs-sym) !important; font-weight: 700; }
.mrow .name { font-size: 13px !important; }
.mrow .price, .mrow .chg { font-size: var(--fs-price) !important; font-family: var(--mono); font-weight: 700; }
.summary, .summary-row { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 6px; padding: 8px; }
.summary .cell .lbl, .summary-cell .label { font-size: 12px !important; }
.summary .cell .val, .summary-cell .value { font-size: var(--fs-summary) !important; font-family: var(--mono); font-weight: 700; }
#coinPrice { font-size: 28px !important; font-family: var(--mono); }
.btn, .btn-default { min-height: 36px; font-size: 13.5px; }
.btn.primary { min-height: 40px; font-size: 14px; }
.taskbar { height: calc(56px + env(safe-area-inset-bottom, 0px)); }
.taskbar button span { font-size: 11px !important; }
.pnlblock, #tradesTotal {
  display: grid !important; grid-template-columns: 1.4fr 1fr 1fr; gap: 8px;
  align-items: center; padding: 10px 12px !important; margin: 8px 8px 12px;
}
.pnlblock .pnlcell .k { font-size: 12px; color: var(--text-dim); }
.pnlblock .pnlcell .v { font-size: 16px; font-family: var(--mono); font-weight: 700; }
.pnlblock .pnlcell:first-child .v { font-size: 22px; }
.pos.card, .card.pos { margin: 10px 8px; padding: 12px; background: var(--panel, var(--face)); }
.pos .poshead { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin-bottom: 8px; }
.pos .poshead .sym { font-size: 16px; font-weight: 700; }
.pos .poshead .age { margin-left: auto; font-size: 12px; color: var(--text-dim); }
.pos .pospnl { display: flex; align-items: baseline; gap: 10px; margin: 6px 0 10px; }
.pos .pospnl .big { font-size: 22px; font-family: var(--mono); font-weight: 700; }
.pos .pospnl .roe { font-size: 14px; font-family: var(--mono); font-weight: 700; }
.posgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-bottom: 8px; }
.posgrid .cell {
  padding: 8px 6px; background: var(--field);
  box-shadow: inset 1px 1px 0 var(--bevel-dark), inset -1px -1px 0 var(--bevel-hi), inset 2px 2px 0 var(--outline);
}
.posgrid .cell .k { font-size: 11px; color: var(--text-dim); }
.posgrid .cell .v { font-size: 13px; font-family: var(--mono); font-weight: 700; margin-top: 2px; }
.pos .lvlrow { display: flex; align-items: center; gap: 8px; min-height: 28px; font-size: 13px; }
.pos .lvlrow .chk { width: 14px; text-align: center; color: var(--up); }
.pos .tpprog { margin: 8px 0; }
.pos .progbar {
  height: 10px; margin-top: 4px; background: var(--field);
  box-shadow: inset 1px 1px 0 var(--bevel-dark), inset -1px -1px 0 var(--bevel-hi);
}
.pos .progbar .fill { display: block; height: 100%; background: var(--up); }
.pos .actrow .btn { height: 32px; min-height: 32px; flex: 1; font-size: 13px; }
#scr-profile .groupbox, #scr-profile .panel.bevel-etched { margin: 10px 8px; padding: 10px; }
#scr-profile .secthead.mini { margin: 14px 10px 6px; font-size: 13px; font-weight: 700; }
.connrow, #connectionList .row {
  min-height: 52px !important; height: 52px !important; font-size: 14px !important; padding: 0 8px !important;
}
.connrow .t, .connrow .conn-main .t { font-size: 14px !important; font-weight: 700; }
.connrow .s { font-size: 13px !important; }
#profileStats.stats, #profileStats {
  display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 8px; margin: 10px 8px; padding: 8px;
}
#profileStats .statcell {
  padding: 12px 10px; background: var(--field);
  box-shadow: inset 1px 1px 0 var(--bevel-dark), inset -1px -1px 0 var(--bevel-hi);
}
#profileStats .statcell .k { font-size: 12px; color: var(--text-dim); }
#profileStats .statcell .v { font-size: 20px; font-family: var(--mono); font-weight: 700; margin-top: 4px; }
.me .nm { font-size: 16px; font-weight: 700; }
.me .pts b { font-size: 18px; }
.sheet-sub { padding: 8px 10px; font-size: 14px; font-weight: 700; display:flex; justify-content:space-between; gap:8px; }
.sheet .field { margin: 8px 10px; padding: 8px; font-size: 13.5px; }
.sheet .outcards { margin: 8px 10px; }
.sheet .kv { margin: 8px 10px; font-size: 13px; }
.sheet #btnOpenTrade { margin: 8px 10px; width: calc(100% - 20px); height: 40px; }

/* ==========================================================================
   iz-w98-r4 — sheet rebuild, no-x-scroll, compact cards, signal type
   ========================================================================== */
html, body, #app {
  overflow-x: hidden !important;
  max-width: 100vw;
  width: 100%;
}
#body, .screen, .scroll-y, .sheet, .sheet-body, .listbox, .mrow, .pos {
  max-width: 100%;
  overflow-x: hidden;
}
.sheetwrap, .sheetwrap > .sheet {
  touch-action: pan-y;
  overscroll-behavior-x: none;
}

/* Chart ~40% viewport */
#scr-signal .chartbox, #chartBox.chartbox {
  height: min(40vh, 280px) !important;
  min-height: 180px !important;
  max-height: 40vh !important;
}

/* Signal levels readable */
.sigbox .lvltable .lvlrow,
#signalCard .lvlrow {
  min-height: 40px;
  align-items: center;
  font-size: 13px;
  padding: 6px 8px;
}
.sigbox .lvlrow .v,
#signalCard .lvlrow .v {
  font-size: 17px !important;
  font-family: var(--mono);
  font-weight: 700;
}
.sigbox .lvlrow .d,
#signalCard .lvlrow .d {
  font-size: 13px !important;
  font-family: var(--mono);
}

/* ---- Sheet: vertical stack, no overlap ---- */
.sheetwrap > .sheet {
  display: flex !important;
  flex-direction: column !important;
  left: 8px; right: 8px;
  bottom: calc(56px + env(safe-area-inset-bottom, 0px));
  max-height: calc(100% - 72px) !important;
  width: auto !important;
  max-width: none !important;
  overflow: hidden !important;
  padding: 0 !important;
}
.sheet .sheet-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 8px 10px 4px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sheet .sheet-foot {
  flex: 0 0 auto;
  padding: 8px 10px calc(8px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid var(--separator);
  background: var(--face);
}
.sheet .sheet-sub {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 4px 0 2px;
  margin: 0;
  font-size: 14px;
  font-weight: 700;
}
.sheet .sheet-title { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sheet .field.trackbar {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 0 !important;
  padding: 8px 10px !important;
  position: relative;
  overflow: hidden;
}
.sheet .field .top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin: 0;
  min-height: 24px;
}
.sheet .field .top .k { font-size: 12px; color: var(--text-dim); }
.sheet .field .top .v { font-size: 20px !important; font-weight: 700; font-family: var(--mono); }
.sheet .track-hit {
  position: relative;
  width: 100%;
  min-height: 44px;
  height: auto;
  display: flex;
  align-items: center;
  margin: 0;
  padding: 8px 0;
  box-sizing: border-box;
}
.sheet input[type=range],
.sheet #sizeRange,
.sheet #levRange {
  width: 100% !important;
  max-width: 100% !important;
  height: 32px !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block;
  position: relative;
  z-index: 1;
}
.sheet #sizeRange::-webkit-slider-thumb,
.sheet #levRange::-webkit-slider-thumb,
.sheet input[type=range]::-webkit-slider-thumb {
  width: 14px !important;
  height: 28px !important;
  margin-top: -12px !important;
}
.sheet #sizeRange::-moz-range-thumb,
.sheet #levRange::-moz-range-thumb {
  width: 14px !important;
  height: 28px !important;
}
.sheet .ticks {
  display: flex;
  justify-content: space-between;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0 1px;
  font-size: 9px;
  line-height: 1.1;
  color: var(--text-dim);
  overflow: hidden;
  white-space: nowrap;
  box-sizing: border-box;
}
.sheet .ticks span {
  flex: 0 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: clip;
  font-size: 9px;
}
.sheet .outcards {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  margin: 0 !important;
}
.sheet .outcards .outcard,
.sheet .outcards .card {
  padding: 8px;
  min-width: 0;
  overflow: hidden;
}
.sheet .outcards .v { font-size: 18px !important; font-family: var(--mono); font-weight: 700; }
.sheet .outcards .k { font-size: 11px; color: var(--text-dim); }
.sheet .outcards .d { font-size: 12px; font-family: var(--mono); }
.sheet .kv {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  margin: 0 !important;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.sheet .kv .kvcell,
.sheet .kv > div {
  padding: 6px 8px;
  min-width: 0;
  overflow: hidden;
}
.sheet .kv .v { font-size: 13px; font-family: var(--mono); font-weight: 700; word-break: break-all; }
.sheet .sect { margin: 2px 0 0; font-size: 12px; font-weight: 700; }
.sheet .outcome-panel { margin: 0; padding: 0; overflow: hidden; }
.sheet #outcomeList .lvlrow {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 6px;
  padding: 5px 8px;
  min-width: 0;
  font-size: 12px;
}
.sheet #outcomeList .lvlrow .k { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sheet #outcomeList .lvlrow .v,
.sheet #outcomeList .lvlrow .d {
  font-family: var(--mono);
  font-weight: 700;
  white-space: nowrap;
}
.sheet #btnOpenTrade {
  width: 100% !important;
  margin: 0 !important;
  height: 40px;
  min-height: 40px;
}
.sheet .foot { padding: 4px 0 0; margin: 0; }

/* Compact trades cards ~200px */
.pnlblock, #tradesTotal {
  grid-template-columns: 1.3fr 1fr 1fr !important;
  padding: 8px 10px !important;
  margin: 6px 8px 8px !important;
}
.pnlblock .pnlcell:first-child .v { font-size: 18px !important; }
.pnlblock .pnlcell .v { font-size: 14px !important; }
.card.pos, .pos.card {
  margin: 6px 8px !important;
  padding: 8px 10px !important;
  max-height: none;
}
.pos .poshead { margin-bottom: 4px !important; gap: 4px 6px !important; flex-wrap: nowrap !important; overflow: hidden; }
.pos .poshead .sym { font-size: 14px !important; }
.pos .poshead .age { font-size: 11px !important; }
.pos .pospnl { margin: 2px 0 6px !important; gap: 8px !important; }
.pos .pospnl .big { font-size: 20px !important; }
.pos .pospnl .roe { font-size: 13px !important; }
.posgrid { gap: 4px !important; margin-bottom: 4px !important; }
.posgrid .cell { padding: 4px 5px !important; }
.posgrid .cell .k { font-size: 10px !important; }
.posgrid .cell .v { font-size: 15px !important; margin-top: 0 !important; }
.pos .lvlline {
  display: flex; flex-wrap: wrap; gap: 6px 10px;
  font-size: 12px; margin: 4px 0; align-items: center;
}
.pos .lvlline .mono { font-weight: 700; }
.pos .tpprog { margin: 4px 0 !important; }
.pos .progbar { height: 6px !important; margin-top: 2px !important; }
.pos .actrow { margin-top: 6px !important; gap: 6px !important; }
.pos .actrow .btn { height: 30px !important; min-height: 30px !important; font-size: 12px !important; }

/* Profile denser */
.connrow, #connectionList .row {
  min-height: 44px !important;
  height: 44px !important;
  font-size: 13px !important;
}
#scr-profile .groupbox, #scr-profile .panel.bevel-etched { margin: 6px 8px !important; padding: 6px 8px !important; }
#scr-profile .secthead.mini { margin: 8px 10px 4px !important; }
.me { padding: 6px !important; gap: 8px !important; }
.me .ava, .ava { width: 36px !important; height: 36px !important; font-size: 13px; }
.me .nm { font-size: 14px !important; }
.me .pts b { font-size: 15px !important; }
#profileStats .statcell { padding: 8px !important; }
#profileStats .statcell .v { font-size: 18px !important; }

/* Kill hit-area horizontal bleed causing x-scroll */
.hit-area::before,
.btn::before,
.tab::before,
.preset::before,
.mrow::before,
.taskbtn::before,
.seg label::before,
.chip::before {
  left: 0 !important;
  right: 0 !important;
  inset: -6px 0 !important;
}


/* r4b: field must NOT use .trackbar height:18px — that crushed the sheet */
.sheet .field.sheet-track,
.sheet .field.trackbar {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 8px 10px !important;
  box-sizing: border-box;
}
.sheet .ticks {
  height: auto !important;
  min-height: 12px !important;
  line-height: 12px !important;
  overflow: visible !important;
}
.sheet .sheet-foot {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 4px !important;
}
.sheet .sheet-foot #btnOpenTrade {
  width: 100% !important;
  align-self: stretch !important;
}
.sheet .sheet-body {
  overflow-x: hidden !important;
  overflow-y: auto !important;
}

/* ==========================================================================
   iz-w98-r9 — pull-protect, signal order, dense profile/trades, sheet type
   ========================================================================== */
html, body {
  overscroll-behavior: none !important;
  overscroll-behavior-y: none !important;
  touch-action: pan-y;
  overflow-x: hidden !important;
  overflow-y: hidden !important;
  height: 100%;
  height: 100dvh;
}
#app {
  overscroll-behavior: none;
  overflow: hidden !important;
  height: 100dvh;
  padding-bottom: 0;
}
#taskbar {
  position: fixed !important;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: min(460px, 100%);
  z-index: 60 !important;
  height: calc(56px + env(safe-area-inset-bottom, 0px));
}
#body {
  padding-bottom: calc(56px + env(safe-area-inset-bottom, 0px));
}
/* lists scroll; screens themselves don't page-scroll */
#scr-signal .scroll-y,
#scr-profile .scroll-y {
  overflow: hidden !important;
}
#scr-markets .listbox,
#marketList,
#scr-trades #positionList {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

/* Coin header compact */
#scr-signal .coinbar {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 4px 0 2px;
  min-height: 28px;
  flex-wrap: nowrap;
}
#scr-signal .coin-title { flex: 1; min-width: 0; display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
#scr-signal #coinSymbol { font-size: 15px; font-weight: 700; white-space: nowrap; }
#scr-signal #coinMeta { font-size: 11px; color: var(--text-dim); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#scr-signal .priceblock {
  display: flex; align-items: baseline; gap: 8px;
  margin: 0 0 4px; flex-wrap: nowrap; min-height: 28px;
}
#scr-signal .priceblock label { font-size: 11px; color: var(--text-dim); }
#scr-signal #coinPrice { font-size: 22px !important; font-weight: 700; }
#scr-signal .chartbox, #chartBox.chartbox {
  height: min(32vh, 220px) !important;
  min-height: 160px !important;
  max-height: 32vh !important;
  margin-bottom: 4px;
}
#scr-signal #tfSeg { margin: 4px 0; }
#scr-signal #btnCopyTrade { margin: 6px 0; order: unset; }
#scr-signal .sigbox { margin: 6px 0 0; padding: 6px 8px; }
.sig-pending {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 4px; font-size: 13px; color: var(--text-mid);
}
.sig-pending .spin {
  width: 14px; height: 14px; border: 2px solid var(--bevel-dark);
  border-top-color: var(--title-grad-end, #1084d0);
  border-radius: 50%;
  animation: izspin 0.8s linear infinite;
}
@keyframes izspin { to { transform: rotate(360deg); } }

/* Sheet numbers */
.sheet .kv .v, .sheet .kvcell .v {
  font-size: 17px !important;
  font-weight: 700 !important;
  font-family: var(--mono);
  color: var(--text) !important;
  opacity: 1 !important;
}
.sheet .kv .k, .sheet .kvcell .k, .sheet .sect, .sheet .field .top .k {
  font-size: 12px !important;
  color: var(--text-dim);
}
[data-theme='light'] .sheet .kv .v { color: #000 !important; }

/* Trades cards separation */
#positionList { display: flex; flex-direction: column; gap: 10px; padding: 0 8px 12px; }
.card.pos, .pos.card {
  margin: 0 !important;
  padding: 10px !important;
  box-shadow:
    inset -1px -1px 0 var(--outline),
    inset 1px 1px 0 var(--bevel-hi),
    inset -2px -2px 0 var(--bevel-dark),
    inset 2px 2px 0 var(--bevel-light) !important;
}
.pos .pospnl .big { font-size: 22px !important; }
.secthead .tico[aria-label="history"],
.secthead .tico[aria-label="lock"] { display: none !important; }

/* Profile denser + conn panel */
#scr-profile .secthead { margin: 4px 8px; }
#scr-profile .secthead h2 { font-size: 18px !important; }
#scr-profile .secthead.mini { margin: 6px 8px 2px !important; font-size: 12px !important; }
#scr-profile .groupbox, #scr-profile .panel.bevel-etched { margin: 4px 8px !important; padding: 4px 6px !important; }
.me { padding: 4px 6px !important; }
.connrow { cursor: pointer; }
.conn-panel {
  padding: 8px 10px 10px;
  border-top: 1px solid var(--separator);
  font-size: 13px;
  background: var(--field);
}
.conn-panel .rowline { display: flex; align-items: center; gap: 8px; margin: 6px 0; }
.conn-panel .btn { height: 30px; min-height: 30px; font-size: 12px; }
button.checkbox.w98, .checkbox.w98 {
  width: 18px !important; height: 18px !important;
  min-width: 40px; min-height: 40px;
}
button.checkbox[aria-pressed="true"]::after {
  font-size: 16px !important; font-weight: 900 !important;
}
#themeSeg button, #langSeg button {
  width: 110px !important;
  min-width: 110px !important;
  max-width: 110px !important;
  flex: 0 0 110px !important;
  box-sizing: border-box !important;
}
#profileStats .statcell { padding: 6px !important; }
#profileStats .statcell .v { font-size: 16px !important; }
#profileStats .statcell .k { font-size: 11px !important; }
.refblock { padding: 6px !important; }
#scr-profile .foot { padding: 2px 8px 6px; font-size: 10px; }


/* iz-w98-r9-polish */
#coinDelta { display: none !important; }
#scr-signal .coinbar { margin: 2px 0 0; }
#scr-signal .priceblock { margin: 0 0 2px; gap: 6px; }
#scr-signal #coinPrice { font-size: 24px !important; line-height: 1.1; }
.taskbar, #taskbar {
  position: fixed !important;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: min(460px, 100%);
  z-index: 60 !important;
}
button.checkbox.w98[aria-pressed="true"] i::before,
button.checkbox.w98[aria-pressed="true"]::after {
  content: "✓";
  font-size: 16px;
  font-weight: 900;
  line-height: 1;
  color: #000;
}
[data-theme="dark"] button.checkbox.w98[aria-pressed="true"]::after,
[data-theme="dark"] button.checkbox.w98[aria-pressed="true"] i::before { color: #fff; }
button.checkbox.w98 {
  width: 18px !important;
  height: 18px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  font-weight: 900;
}

/* iz-w98-r9 */
.searchbox {
  height: 34px !important;
  min-height: 34px !important;
  display: flex;
  align-items: center;
}
.searchbox input, #searchInput {
  font-size: 15px !important;
  height: 34px !important;
  line-height: 34px !important;
}
.mrow .sym {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: var(--text) !important;
}
[data-theme="light"] .mrow .sym,
[data-theme="light"] .mrow .pxmain {
  color: #000 !important;
}
.mrow .pxmain, .mrow .pxcol b.mono {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: var(--text) !important;
  font-family: var(--mono);
}
.mrow .chg, .mrow .pxcol .chg {
  font-size: 12px !important;
  font-weight: 400 !important;
  margin-top: 2px;
  display: block;
}
.mrow .badge { /* legacy */
  font-size: 12px !important;
  font-weight: 400 !important;
}
.mrow .sub {
  font-size: 12px !important;
  font-weight: 400 !important;
  color: var(--text-dim) !important;
}
#marketSummary .sumcell .v.bold,
#marketSummary .sumcell .v.mono.bold {
  font-size: 16px !important;
  font-weight: 700 !important;
}
#marketSummary .sumcell .fngline {
  font-size: 13px !important;
  font-weight: 600 !important;
  white-space: nowrap;
}
#marketSummary .sumcell .s {
  font-size: 12px !important;
  font-weight: 400 !important;
}

.sheet .presets {
  display: flex;
  gap: 4px;
  margin-top: 6px;
  flex-wrap: nowrap;
}
.sheet .presets button {
  flex: 1;
  min-width: 0;
  height: 26px;
  font-size: 11px;
  padding: 0 2px;
}

/* Trades v2-like */
#positionList { gap: 12px !important; }
.card.pos {
  padding: 12px !important;
  margin: 0 !important;
}
.card.pos[data-side="long"] { border-left: 3px solid var(--up, #008000) !important; }
.card.pos[data-side="short"] { border-left: 3px solid var(--dn, #c00000) !important; }
.poshead { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.poshead .sym { font-size: 14px; font-weight: 700; }
.poshead .pospnl-r { margin-left: auto; display: flex; align-items: center; gap: 6px; }
.poshead .big { font-size: 17px !important; font-weight: 700; }
.posgrid.v2 {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 10px 8px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--separator, #808080);
}
.posgrid.v2 .k { font-size: 10px; color: var(--text-dim); letter-spacing: .06em; text-transform: uppercase; }
.posgrid.v2 .v { font-size: 12.5px; font-weight: 600; margin-top: 3px; }
.posgrid.v2 .r { text-align: right; }
.posactions { display: flex; gap: 7px; margin-top: 12px; }
.posactions .btn { flex: 1; height: 34px; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
.posactions .btn.danger { color: var(--dn, #c00000); }

/* Profile tabs + referral */
.profile-tabs { margin: 6px 8px 8px !important; }
.profile-tabs button {
  flex: 1;
  font-size: 11px !important;
  letter-spacing: .08em;
  text-transform: uppercase;
  height: 32px;
}
.prefs-compact .row { min-height: 36px; }
.prefs-compact #themeSeg button,
.prefs-compact #langSeg button,
#themeSeg button, #langSeg button {
  width: 90px !important;
  min-width: 90px !important;
  max-width: 90px !important;
  flex: 0 0 90px !important;
}
.refblock .refhead {
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
  margin: 4px 0 8px;
  color: var(--text-dim);
}
.refblock .refhead b { color: var(--text); font-size: 14px; }
.btn-copy-ref, #btnCopyRef.btn-copy-ref, .refblock #btnCopyRef {
  width: 100% !important;
  height: 34px !important;
  min-height: 34px !important;
  margin-top: 10px;
  font-size: 14px !important;
  font-weight: 700 !important;
}
.history-list { padding: 0 8px 12px; display: flex; flex-direction: column; gap: 4px; max-height: calc(100dvh - 220px); overflow-y: auto; }
.histrow {
  display: block;
  padding: 0;
  font-size: 12px;
}
.histrow .histhead {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  cursor: pointer;
}
.histrow .histmeta { min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.histrow .histmeta .sym { font-size: 13px; line-height: 1.2; }
.histrow .hside { font-size: 10px; }
.histrow .dt { color: var(--text-dim); font-size: 11px; }
.histrow .pnl { margin-left: auto; white-space: nowrap; font-weight: 700; }
.histrow .histdet { display: flex; flex-direction: column; gap: 3px; padding: 0 10px 8px; }
.histrow .histdet[hidden] { display: none !important; }
.histrow .histkv { display: flex; justify-content: space-between; gap: 10px; font-size: 11px; }
.histrow .histkv .k { color: var(--text-dim); }
.histrow .histkv .v { text-align: right; }
.hist-empty { padding: 18px 10px; text-align: center; }
.hist-more { margin: 4px 0 8px; }
#scr-profile .scroll-y { overflow: hidden !important; }
#scr-profile [data-pane="history"] { min-height: 0; }
#scr-profile [data-pane="referral"] { overflow: hidden; }


.posgrid.v2 .v.tps { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.posgrid.v2 .lvl { display: inline-block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px !important; }

/* ===== iz-w98-r9 ===== */
#scr-signal .chartbox, #chartBox.chartbox {
  height: min(42vh, 286px) !important;
  min-height: 200px !important;
  max-height: 42vh !important;
  margin-bottom: 6px;
}
#scr-signal #tfSeg {
  display: flex;
  gap: 8px !important;
  margin: 0 0 16px !important;
}
#scr-signal #tfSeg button {
  flex: 1;
  min-height: 44px !important;
  height: 44px !important;
  padding: 6px 4px;
  font-size: 12px;
}
#scr-signal #btnCopyTrade {
  min-height: 44px !important;
  height: 44px !important;
  margin: 0 0 8px !important;
}

/* Trades readability */
.pnlblock, #tradesTotal {
  padding: 12px 10px !important;
  margin: 6px 8px 10px !important;
  background: var(--field) !important;
  border: 1px solid var(--separator);
}
.pnlblock .pnlcell .k { font-size: 11px !important; font-weight: 400 !important; color: var(--text-dim); }
.pnlblock .pnlcell .v {
  font-size: 18px !important;
  font-weight: 700 !important;
  font-family: var(--mono) !important;
}
.pnlblock .pnlcell:first-child .v { font-size: 20px !important; }

.posgrid.v2 .k {
  font-size: 10px !important;
  font-weight: 400 !important;
  letter-spacing: .05em;
}
.posgrid.v2 .v {
  font-size: 16px !important;
  font-weight: 700 !important;
  font-family: var(--mono) !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.posgrid.v2 {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: 8px 6px !important;
}
.card.pos .poshead .sym { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 42%; }
.poshead .pospnl-r { flex-shrink: 0; }

/* Profile prefs one row */
.prefs-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 12px;
  padding: 8px 10px !important;
  margin: 4px 8px !important;
}
.pref-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex: 0 1 auto;
  min-width: 0;
}
.pref-label {
  font-size: 12px;
  color: var(--text-dim);
  white-space: nowrap;
}
.prefs-row #themeSeg,
.prefs-row #langSeg {
  display: inline-flex;
  gap: 4px;
  margin: 0 !important;
}
.prefs-row #themeSeg button,
.prefs-row #langSeg button,
.prefs-row .seg.mini button {
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  flex: 0 0 auto !important;
  height: 28px !important;
  min-height: 28px !important;
  max-height: 32px !important;
  padding: 0 10px !important;
  font-size: 11px !important;
}
@media (min-width: 360px) {
  .prefs-row { flex-wrap: nowrap; }
}

/* Referral v7 layout */
.refblock-v7 {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px !important;
  margin: 4px 8px !important;
  overflow: hidden;
}
.refblock-v7 .ref-title {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--text);
  line-height: 1.3;
}
.refblock-v7 .ref-row {
  display: flex;
  align-items: stretch;
  gap: 8px;
  width: 100%;
  min-width: 0;
}
.refblock-v7 .refinput {
  flex: 1 1 auto;
  min-width: 0;
  height: 36px;
  line-height: 36px;
  padding: 0 8px;
  font-family: var(--mono);
  font-size: 11px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.refblock-v7 .btn-copy-ref,
.refblock-v7 #btnCopyRef {
  flex: 0 0 auto;
  width: auto !important;
  min-width: 72px;
  height: 36px !important;
  min-height: 36px !important;
  margin: 0 !important;
  padding: 0 12px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
}
.refblock-v7 .ref-invited {
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
}
.refblock-v7 .ref-note {
  font-size: 11px;
  line-height: 1.35;
  color: var(--text-dim);
  margin: 0;
  padding: 0;
  width: 100%;
}

/* ===== iz-w98-r9 ===== */
#scr-markets, #scr-signal, #scr-trades, #scr-profile {
  padding: 0 12px 12px !important;
}
#scr-markets .listbox, #marketListScroll {
  margin-bottom: 12px;
}

#scr-signal.on .scroll-y {
  display: flex;
  flex-direction: column;
  overflow: hidden !important;
  flex: 1 1 auto;
  min-height: 0;
}
#scr-signal .coinbar-v8 {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: nowrap;
  flex: 0 0 auto;
  height: 32px;
  min-height: 32px;
  max-height: 32px;
  margin: 2px 0 4px;
  overflow: hidden;
  line-height: 1;
}
#scr-signal .coinbar-v8 .tbtn {
  flex: 0 0 auto;
  white-space: nowrap;
  height: 28px !important;
  min-height: 28px !important;
  max-height: 28px !important;
  padding: 0 6px;
  display: inline-flex;
  align-items: center;
  line-height: 1;
}
#scr-signal .coinbar-v8 .tbtn .ic {
  width: 14px;
  height: 14px;
}
#scr-signal .coinline {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
}
#scr-signal .coinline-price {
  flex: 0 0 auto;
  font-size: 15px !important;
  font-weight: 700;
  line-height: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
}
#scr-signal .coinbar-v8 .badge {
  flex: 0 0 auto;
  line-height: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
}
#scr-signal .lvltable .lvlrow { padding: 1px 0; }
#scr-signal .conf-card { margin: 2px 0; padding: 4px 8px; }
#scr-signal .priceblock { display: none !important; }
#scr-signal #coinSymbol, #scr-signal #coinMeta { display: none !important; }

#scr-signal .chartbox, #chartBox.chartbox {
  flex: 0 0 286px;
  height: 286px !important;
  min-height: 286px !important;
  max-height: 286px !important;
}
#scr-signal #tfSeg { flex: 0 0 auto; margin: 4px 0; }
#scr-signal #btnCopyTrade { flex: 0 0 auto; margin: 4px 0; }
#scr-signal .sigbox {
  flex: 0 0 auto;
  min-height: 0;
  overflow: visible;
  display: block;
  margin: 4px 0 0;
}
#scr-signal .sigbox > * { flex: 0 0 auto; }
#scr-signal .sigbox .lvltable { flex: 0 0 auto; }

.conf-card {
  margin: 4px 0;
  padding: 6px 8px;
  text-align: center;
  background: var(--field);
  box-shadow:
    inset -1px -1px 0 var(--outline),
    inset 1px 1px 0 var(--bevel-hi),
    inset -2px -2px 0 var(--bevel-dark),
    inset 2px 2px 0 var(--bevel-light);
}
.conf-card-k {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .02em;
  text-transform: lowercase;
}
[data-theme='dark'] .conf-card {
  background: #000;
  color: var(--heading-color, var(--title));
}

.sigbox .verdict, #signalCard .verdict {
  display: block;
  flex: none;
  margin-top: 4px;
  padding: 6px 8px;
  font-size: 12px;
  line-height: 1.35;
  min-height: 48px;
  max-height: 72px;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  word-break: break-word;
  background: var(--field);
  box-shadow:
    inset 1px 1px 0 var(--bevel-dark),
    inset -1px -1px 0 var(--bevel-hi),
    inset 2px 2px 0 var(--outline);
}

.taskbar, #taskbar {
  left: 8px !important;
  right: 8px !important;
  width: auto !important;
  max-width: none !important;
  transform: none !important;
  margin: 0 8px;
  border-radius: 0 0 var(--radius, 8px) var(--radius, 8px) !important;
  overflow: hidden;
}
.taskbar button, #taskbar button {
  /* r5.1: fallback 0 = старый вид; --radius задаётся только на */
  border-radius: var(--radius, 0) !important;
}

#profilePane [data-pane="profile"] {
  display: block;
}
#profilePane [data-pane][hidden] {
  display: none !important;
}

/* ===== iz-w98-r9-ui (deposit, sigzone scroll, close dlg) ===== */
#marketSummary .deposit-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  gap: 8px;
}
#marketSummary .dep-body { flex: 1; min-width: 0; }
#marketSummary .dep-k { font-size: 11px; color: var(--text-dim); text-transform: uppercase; }
#marketSummary .dep-v { font-size: 22px; font-weight: 700; margin: 2px 0; }
#marketSummary .dep-pnl { font-size: 12px; font-weight: 600; }
#marketSummary .eye-btn { flex: 0 0 auto; min-height: 28px !important; height: 28px; padding: 2px 6px; }

#scr-signal .sigzone {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  padding: 0;
  margin: 4px 0 0;
}
#scr-signal .sigzone .sigbox {
  border: none;
  box-shadow: none;
  background: transparent;
  margin: 0;
  padding: 4px 0;
}
#scr-signal .lvltable { padding: 0 12px !important; }
#scr-signal .lvltable .lvlrow { padding: 3px 0 !important; }
#scr-signal .lvltable .lvlrow .v,
#scr-signal .lvltable .lvlrow .d { font-weight: 700 !important; }
#scr-signal .lvltable .lvlrow .k { font-weight: 400; }
#scr-signal .sigzone .verdict,
#scr-signal #signalCard .verdict {
  margin: 6px 12px 8px;
  padding: 8px;
  max-height: none !important;
  overflow: visible !important;
}

.prefs-row-v9 {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  padding: 6px 8px;
  margin: 6px 0;
  min-width: 0;
  overflow: hidden;
  box-sizing: border-box;
}
.prefs-row-v9 .pref-theme,
.prefs-row-v9 .pref-lang {
  min-width: 0;
  overflow: hidden;
}
.prefs-row-v9 .seg.mini button { max-height: 32px; min-height: 28px; padding: 4px 10px; font-size: 11px; }
.prefs-row-v9 .pref-theme { flex: 1; }
.prefs-row-v9 .pref-lang { flex: 0 0 auto; margin-left: auto; }
.profile-pane .refline-v9 { font-size: 12px; line-height: 1.4; margin: 8px 0; color: var(--text-dim); }
.via-head { margin-top: 8px; }
.conn-panel .auto-be-row { display: flex; align-items: center; justify-content: space-between; margin-top: 6px; }
.conn-panel .conn-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0; max-width: 100%; box-sizing: border-box; }
.conn-panel .conn-actions .btn { flex: 1 1 calc(50% - 4px); min-width: 0; max-width: 100%; box-sizing: border-box; }
.connrow, .conn-block, .conn-main { min-width: 0; max-width: 100%; box-sizing: border-box; }

.close-dlg { max-height: 70vh; }
.close-dlg-sub { font-size: 12px; margin-bottom: 10px; }
.close-pct-seg { margin-bottom: 12px; }
.close-pct-seg button { min-height: 36px; }
.close-confirm-btns { display: flex; gap: 8px; margin-top: 10px; }
.close-confirm-btns .btn { flex: 1; min-height: 40px; }
#closeDlgYes[disabled] { opacity: 0.45; pointer-events: none; }
#closeDlgYes[data-armed="1"] { opacity: 1; pointer-events: auto; }

/* ===== iz-w98-r10 ===== */
#marketSummary.summary.sunken {
  display: block !important;
  grid-template-columns: none !important;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 0;
  margin: 0 0 8px;
}
#marketSummary .deposit-card {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
}
#marketSummary .deposit-card.dep-row-v10 {
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 10px 12px;
}
#marketSummary .dep-row-v10 .dep-row2 {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  min-width: 0;
  min-height: 28px;
}
#marketSummary .dep-row-v10 .dep-pnl {
  flex: 0 0 auto;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
  text-align: right;
  line-height: 28px;
  margin: 0;
  padding: 0;
}
#marketSummary .dep-row-v10 .dep-left {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 6px;
}
#marketSummary .dep-row-v10 .dep-k {
  font-size: 11px;
  color: var(--text-dim);
  text-transform: uppercase;
}
#marketSummary .dep-row-v10 .dep-v {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.1;
  white-space: nowrap;
}
#marketSummary .dep-row-v10 .eye-btn {
  flex: 0 0 auto;
  min-height: 28px !important;
  height: 28px;
  padding: 2px 6px;
}

#viaSeg.via-seg-v10,
#scr-profile #viaSeg {
  display: flex !important;
  flex-direction: row !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
  gap: 0 !important;
  overflow: hidden;
}
#viaSeg button,
#viaSeg .seg-item,
#viaSeg label {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  max-width: 33.333% !important;
  box-sizing: border-box;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.profile-pane .refline-v9 {
  font-size: 12px;
  line-height: 1.4;
  margin: 8px 0;
  color: var(--text-dim);
  max-width: 100%;
  box-sizing: border-box;
  overflow-wrap: anywhere;
  word-break: break-word;
  white-space: normal;
}

#scr-signal .sig-side-badge {
  display: block;
  width: calc(100% - 24px);
  max-width: 100%;
  margin: 4px 12px 6px;
  padding: 8px 10px;
  text-align: center;
  background: var(--field);
  box-shadow:
    inset -1px -1px 0 var(--outline),
    inset 1px 1px 0 var(--bevel-hi),
    inset -2px -2px 0 var(--bevel-dark),
    inset 2px 2px 0 var(--bevel-light);
  box-sizing: border-box;
}
#scr-signal .sig-side-badge .side-badge-txt {
  font-size: 13px;
  font-weight: 700;
  line-height: 1.3;
  display: inline-block;
  max-width: 100%;
  overflow-wrap: anywhere;
}
#scr-signal .sig-side-badge.up .side-word { color: var(--up); }
#scr-signal .sig-side-badge.dn .side-word { color: var(--down); }

#scr-signal .lvltable .lvlrow {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  box-sizing: border-box;
  max-width: 100%;
  overflow: hidden;
}
#scr-signal .lvltable .lvlrow .k {
  flex: 0 0 auto;
  min-width: 0;
}
#scr-signal .lvltable .lvlvals {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
  gap: 1px;
  overflow: hidden;
}
#scr-signal .lvltable .lvlrow .v {
  font-weight: 700 !important;
  font-size: 15px;
  line-height: 1.15;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#scr-signal .lvltable .lvlrow .d {
  font-weight: 700 !important;
  font-size: 11px;
  line-height: 1.1;
  max-width: 100%;
}

#scr-profile .scroll-y,
#scr-profile .panel,
#scr-profile .seg,
#scr-profile .profile-pane,
#scr-profile #connectionList,
#scr-profile #profilePane {
  max-width: 100%;
  box-sizing: border-box;
  overflow-x: hidden;
}
#scr-profile .conn-main {
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
}
#scr-profile .conn-main .t,
#scr-profile .conn-main .s {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#scr-profile .prefs-row-v9 .seg.mini {
  max-width: 100%;
  overflow: hidden;
}
#scr-profile .prefs-row-v9 .seg.mini button {
  min-width: 0;
  padding: 4px 8px;
  font-size: 10px;
}

#chartBox {
  position: relative;
  overflow: hidden;
}

.chart-edge-labels {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 3;
}

.chart-edge-tag {
  position: absolute;
  left: 4px;
  right: 4px;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.2;
  padding: 1px 4px;
  background: color-mix(in srgb, var(--face) 88%, transparent);
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.chart-edge-tag.top { top: 2px; }
.chart-edge-tag.bottom { bottom: 2px; }

#scr-trades .secthead.trades-head-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

#scr-trades .trades-open-count {
  font-size: 15px;
  font-weight: 700;
  color: var(--heading-color, var(--title));
  white-space: nowrap;
}

#scr-signal .sig-headline {
  margin: 0 0 4px;
  padding: 4px 8px;
  text-align: center;
}

#scr-signal .sig-headline-line {
  display: block;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.25;
}

#scr-signal .sig-headline .side-word.up { color: var(--up); }
#scr-signal .sig-headline .side-word.dn { color: var(--down); }
#scr-signal .sig-headline-meta { font-weight: 400; color: var(--text); }

#scr-signal .sig-side-badge,
#scr-signal .conf-card { display: none !important; }

#scr-signal .lvltable .lvlrow {
  padding: 4px 12px !important;
  min-height: 0 !important;
}

/* ===== iz-w98-r14: signal headline, chart edge labels, trades header ===== */
#scr-signal .lvltable {
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  box-sizing: border-box;
}
#scr-signal .lvltable .lvlrow {
  width: 100% !important;
  box-sizing: border-box;
  padding: 6px 12px !important;
  margin: 0 !important;
  background: var(--field);
  box-shadow: inset 0 -1px 0 var(--separator);
}
#scr-signal .lvltable .lvlrow:last-child {
  box-shadow: none;
}
[data-theme='dark'] #scr-signal .lvltable .lvlrow {
  background: var(--field);
}

#scr-profile #viaSeg {
  margin: 0 8px 6px !important;
  width: calc(100% - 16px) !important;
  max-width: calc(100% - 16px) !important;
  box-sizing: border-box !important;
}

#profileStats.stats,
#profileStats {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 6px !important;
  margin: 6px 8px !important;
  padding: 6px !important;
}
#profileStats .statcell {
  padding: 6px 8px !important;
  min-height: 0 !important;
  max-height: 56px !important;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--field);
  box-shadow: inset 1px 1px 0 var(--bevel-dark), inset -1px -1px 0 var(--bevel-hi);
}
#profileStats .statcell .k {
  font-size: 11px !important;
  line-height: 1.15;
  color: var(--text-dim);
}
#profileStats .statcell .v {
  font-size: 15px !important;
  font-weight: 700 !important;
  font-family: var(--mono);
  margin-top: 2px !important;
  line-height: 1.15;
}

/* ===== iz-w98-r15: chart mount, candle autoscale, levels, markets, trades ===== */
#chartMount, .chart-mount {
  position: absolute;
  inset: 0;
  z-index: 1;
}

#chartBox {
  position: relative;
  overflow: hidden;
}

.chart-edge-labels {
  z-index: 3;
}

.chart-edge-tag.top,
.chart-edge-tag.bottom {
  top: auto;
  bottom: auto;
}

#marketSummary .deposit-card.dep-row-v10 {
  gap: 0;
  padding: 10px 12px;
}
#marketSummary .dep-row-v10 .dep-row2 {
  align-items: flex-end;
}
#marketSummary .dep-row-v10 .dep-left,
#marketSummary .dep-row-v10 .dep-right {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
#marketSummary .dep-row-v10 .dep-left {
  flex: 1 1 auto;
}
#marketSummary .dep-row-v10 .dep-left-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 6px;
  min-width: 0;
}
#marketSummary .dep-row-v10 .dep-right {
  flex: 0 0 auto;
  text-align: right;
  align-items: flex-end;
}
#marketSummary .dep-row-v10 .dep-k {
  font-size: 11px;
  color: var(--text-dim);
  text-transform: uppercase;
  line-height: 1.1;
}
#marketSummary .dep-row-v10 .dep-v {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.1;
  white-space: nowrap;
}
#marketSummary .dep-row-v10 .dep-pnl {
  display: none !important;
}

#signalCard .lvlrow .lvlvals .v {
  font-weight: 700 !important;
  font-size: 15px !important;
  line-height: 1.2;
  white-space: nowrap;
}
#signalCard .lvlrow .d { display: none !important; }
#signalCard .lvltable .lvlrow {
  padding: 4px 12px !important;
  min-height: 0 !important;
}

.pnlblock.trades-summary-r15,
#tradesTotal.pnlblock {
  display: grid !important;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 8px;
  align-items: end;
}
.pnlblock.trades-summary-r15 .pnlcell,
#tradesTotal.pnlblock .pnlcell {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.pnlblock.trades-summary-r15 .pnlcell .k,
#tradesTotal.pnlblock .pnlcell .k {
  font-size: 11px !important;
  line-height: 1.1;
  margin-bottom: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pnlblock.trades-summary-r15 .pnlcell .v.trades-val,
#tradesTotal.pnlblock .pnlcell .v.trades-val {
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.1;
  white-space: nowrap;
}
.pnlblock.trades-summary-r15 .pnlcell:first-child .v,
#tradesTotal.pnlblock .pnlcell:first-child .v {
  font-size: 18px !important;
}

.pos .poshead {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  overflow: visible;
}
.pos .poshead-left {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 6px;
}
.pos .poshead-left .sym {
  white-space: nowrap;
  flex-shrink: 0;
  max-width: none;
  overflow: visible;
  text-overflow: clip;
}
.pos .pospnl-r {
  flex: 0 0 auto;
  margin-left: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  text-align: right;
}
.pos .pospnl-r .big {
  white-space: nowrap;
  font-size: 17px !important;
}
.pos .pospnl-r .roe {
  white-space: nowrap;
}

/* ===== iz-w98-r16: deposit left, verdict align, levels labels, trades, profile ===== */
#marketSummary .deposit-card.dep-row-v10 {
  padding: 10px 0 !important;
  width: 100%;
  box-sizing: border-box;
}
#marketSummary .dep-row-v10 .dep-row2 {
  align-items: flex-end;
  justify-content: space-between;
  width: 100%;
}
#marketSummary .dep-row-v10 .dep-left {
  flex: 0 1 auto;
  align-items: flex-start !important;
  text-align: left !important;
  margin-right: auto;
}
#marketSummary .dep-row-v10 .dep-left-row {
  justify-content: flex-start;
}
#marketSummary .dep-row-v10 .dep-right {
  flex: 0 0 auto;
  margin-left: auto;
}

#scr-signal #signalCard .verdict,
#scr-signal .sigzone .verdict,
#signalCard .verdict {
  margin: 6px 0 8px !important;
  padding: 8px 12px !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

#scr-signal .lvltable .lvlrow .k,
#signalCard .lvlrow .k {
  font-weight: 700 !important;
}

.profile-pane .refline-v9 {
  margin: 8px 8px !important;
  padding: 0 !important;
  max-width: calc(100% - 16px) !important;
  box-sizing: border-box !important;
}

.pos.pos-r16 .poshead-left {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 6px;
  min-width: 0;
}
.pos.pos-r16 .tag.lev,
.pos.pos-r16 .tag.mode {
  font-size: 11px;
  font-weight: 700;
}
.pos.pos-r16 .pos-realized {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 4px 2px 2px;
  font-size: 12px;
}
.pos.pos-r16 .pos-realized .k { color: var(--text-dim); }
.pos.pos-r16 .posgrid-r16 .dim {
  color: var(--text-dim);
  font-weight: 400;
}


/* ===== iz-w98-r17: header no-perp, price/pct gap, chart scale harden ===== */
#scr-signal .coinbar-v8 {
  gap: 8px !important;
}
#scr-signal .coinline-price {
  margin-right: 0 !important;
}
#scr-signal #coinChange.badge,
#scr-signal .coinbar-v8 .badge.coin-chg {
  margin-left: 6px !important;
  padding-left: 6px !important;
}


/* ===== iz-w98-r18: v2 chart (no edge labels), trades PnL one line ===== */
#chartEdgeLabels { display: none !important; }
.pos .pospnl-r .pospnl-one {
  white-space: nowrap;
  font-weight: 700;
}
.pos .pospnl-r .roe { display: none !important; }


/* r19: space between fmtNum5 compact value and unit word */
.me .pts { display: inline-flex; align-items: baseline; gap: 4px; white-space: nowrap; }
.me .pts .pts-unit { margin-left: 0; }


/* r21 toast — ported from v2 cabToast timing/placement */
.iz-toast{
  position:fixed;top:calc(10px + env(safe-area-inset-top));left:12px;right:12px;z-index:9999;
  background:#23262e;border:1px solid rgba(255,255,255,.14);border-radius:8px;
  padding:11px 13px;opacity:0;transform:translateY(-12px);transition:opacity .25s,transform .25s;
  box-shadow:0 6px 20px rgba(0,0,0,.38);
  font:600 12.5px/1.35 var(--ui, Tahoma, sans-serif);color:#eef1f5;
}
.iz-toast.on{opacity:1;transform:translateY(0)}
.iz-toast-s{font-family:var(--mono, monospace);font-size:11.5px;color:var(--dim,#555);margin-top:3px}
.colh.on{color:var(--brass,#b8860b);text-decoration:underline}




/* r22: plan recalculating indicator (no extra DOM sibling — avoids QA overlap) */
#sheetKv.is-recalc { opacity: 0.82; position: relative; }
#sheetKv.is-recalc::after {
  content: '…';
  position: absolute;
  right: 8px;
  top: 6px;
  font-size: 11px;
  color: var(--dim, #6b6b6b);
  letter-spacing: 0.08em;
  pointer-events: none;
}


/* r23 wallet sheet */
#walletSheet .sheet-body { padding: 12px 14px 8px; }
#walletSheet .sheet-foot { padding: 8px 14px 12px; }

/* ---- r25: compact trade sheet (fit 390x844, show backdrop) ---- */
.sheetwrap > .sheet {
  top: auto !important;
  bottom: calc(56px + env(safe-area-inset-bottom, 0px)) !important;
  max-height: min(85vh, calc(100% - 96px)) !important;
  left: 8px !important;
  right: 8px !important;
}
.sheet .sheet-body {
  padding: 4px 8px 2px !important;
  gap: 4px !important;
}
.sheet .sheet-foot {
  padding: 6px 8px calc(6px + env(safe-area-inset-bottom, 0px)) !important;
  gap: 2px !important;
}
.sheet .sheet-sub {
  padding: 2px 0 !important;
  font-size: 13px !important;
}
.sheet .field.sheet-track,
.sheet .field.trackbar {
  padding: 4px 8px !important;
  gap: 2px !important;
}
.sheet .field .top {
  min-height: 18px !important;
  align-items: center !important;
}
.sheet .field .top .k { font-size: 11px !important; }
.sheet .field .top .v { font-size: 15px !important; line-height: 1.1 !important; }
.sheet .track-hit {
  min-height: 44px !important;
  padding: 4px 0 !important;
}
.sheet .ticks {
  min-height: 10px !important;
  line-height: 10px !important;
  font-size: 8px !important;
  margin-top: -2px !important;
}
.sheet .outcards { gap: 4px !important; }
.sheet .outcards .outcard,
.sheet .outcards .card { padding: 6px 8px !important; }
.sheet .outcards .k { font-size: 10px !important; line-height: 1.2 !important; }
.sheet .outcards .v { font-size: 15px !important; line-height: 1.15 !important; margin-top: 2px !important; }
.sheet .outcards .d { font-size: 11px !important; margin-top: 1px !important; }
.sheet .kv .kvcell,
.sheet .kv > div { padding: 4px 6px !important; }
.sheet .kv .k { font-size: 10px !important; }
.sheet .kv .v { font-size: 12px !important; }
.sheet .sect { margin: 0 !important; font-size: 11px !important; }
.sheet #outcomeList .lvlrow {
  padding: 3px 6px !important;
  gap: 4px !important;
  font-size: 11px !important;
  min-height: 0 !important;
}
.sheet #btnOpenTrade,
.sheet .sheet-foot #btnOpenTrade {
  height: 44px !important;
  min-height: 44px !important;
}
.sheet .foot { padding: 2px 0 0 !important; font-size: 10px !important; line-height: 1.25 !important; }
.sheet .shead.titlebar { min-height: 22px !important; height: 22px !important; }

/* ---- r26 email gate / exchange picker ---- */
.gatewrap { z-index: 80 !important; }
.gatewrap .gate-sheet {
  max-height: min(78vh, calc(100% - 80px)) !important;
  left: 12px !important; right: 12px !important;
}
.gate-lab { display:block; font-size:11px; color: var(--text-dim); margin: 8px 0 4px; }
.gate-input {
  width: 100%; box-sizing: border-box; padding: 10px 12px;
  font-size: 14px; min-height: 44px; border: none;
  background: var(--field); color: var(--text);
}
.gate-step .foot { margin: 0 0 8px; }
#app.is-gated { pointer-events: none; filter: grayscale(0.15); }


/* r31: resilient load error banner (Win98) — fixed so #app top stays stable */
.load-err-banner {
  position: fixed;
  left: 0; right: 0; top: 0;
  z-index: 60;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  background: #c0c0c0;
  color: #000;
  border-bottom: 2px solid #000;
  box-shadow: inset 1px 1px 0 #fff, inset -1px -1px 0 #808080;
  padding: 6px 10px;
  font-size: 12px;
}
.load-err-banner[hidden] { display: none !important; }
.load-err-banner .btn { min-height: 28px; padding: 2px 10px; }
[data-theme='dark'] .load-err-banner {
  background: #404040;
  color: #e0e0e0;
  box-shadow: inset 1px 1px 0 #808080, inset -1px -1px 0 #000;
}

/* ===== iz-w98-r37: iOS ghost Copy trade + profile DM toggle ===== */
#scr-signal #tfSeg {
  position: relative;
  z-index: 2;
  isolation: isolate;
}
#scr-signal #btnCopyTrade {
  position: relative !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  overflow: hidden;
  isolation: isolate;
  z-index: 1;
  transform: none !important;
  -webkit-transform: none !important;
}
#scr-signal #btnCopyTrade::before,
#scr-signal #btnCopyTrade::after {
  content: none !important;
  display: none !important;
}
#scr-signal #btnCopyTrade > *,
#scr-signal #btnCopyTrade span,
#scr-signal #btnCopyTrade svg {
  transform: none !important;
  -webkit-transform: none !important;
}
.signals-dm-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: 4px 0 2px;
  padding: 2px 0;
  font-size: 13px;
  width: 100%;
  box-sizing: border-box;
}
.signals-dm-row span { min-width: 0; flex: 1 1 auto; }

/* ============================================================
   AZ · экран «Аналитика» v6 (scr-analytics). Все правила в неймспейсе
   #scr-analytics — существующие экраны не задеваются. Кнопка таб-бара
   скрыта атрибутом hidden, пока window.azAllowed() не разрешит.
   Внешних шрифтов не грузим: стеки с системными фолбэками.
   ============================================================ */
.taskbar button[data-goto="analytics"][hidden] { display: none !important; }

#scr-analytics{
  --az-bg:#c4c4c4;--az-ink:#0b0b0b;--az-navy:#12239e;--az-green:#0a8f2a;--az-red:#9e1f1f;
  --az-amber:#8a6100;--az-face:#c9cdd3;--az-hi:#fff;--az-sh:#8a9199;--az-dk:#464c53;--az-rad:12px;
  --az-ui:'PT Sans',Tahoma,'Segoe UI',Verdana,sans-serif;
  --az-mono:'JetBrains Mono',Consolas,'Courier New',monospace;
}
#scr-analytics .az-wrap{padding:8px 12px 12px;background:var(--az-bg);font-family:var(--az-ui);color:var(--az-ink)}
#scr-analytics .az-wrap *{box-sizing:border-box}
#scr-analytics .az-h1{font-size:24px;font-weight:700;color:var(--az-navy);line-height:1;margin:0}
#scr-analytics .az-sub{font-size:12.5px;color:#555;margin:3px 0 9px}
#scr-analytics .raise{background:var(--az-face);border:2px solid;border-color:var(--az-hi) var(--az-dk) var(--az-dk) var(--az-hi);border-radius:10px}
#scr-analytics .arow{display:flex;align-items:center;gap:6px;margin-bottom:7px;flex-wrap:wrap}
#scr-analytics .sel{position:relative;flex:1;min-width:150px}
#scr-analytics .sel select{width:100%;font:700 13px var(--az-mono);padding:8px 10px;background:#dfe3e8;border:2px solid;border-color:var(--az-sh) var(--az-hi) var(--az-hi) var(--az-sh);-webkit-appearance:none;appearance:none;border-radius:10px;color:var(--az-ink)}
#scr-analytics .sel::after{content:'▾';position:absolute;right:9px;top:50%;transform:translateY(-50%);font-size:11px;pointer-events:none}
#scr-analytics .iconbtn{width:38px;height:38px;display:grid;place-items:center;font-size:16px;cursor:pointer;border-radius:10px}
#scr-analytics .tfs{display:flex;gap:4px;flex-wrap:wrap}
#scr-analytics .tf{font:700 12px var(--az-mono);padding:7px 11px;cursor:pointer;background:var(--az-face);border:2px solid;border-color:var(--az-hi) var(--az-dk) var(--az-dk) var(--az-hi);border-radius:10px;color:var(--az-ink)}
#scr-analytics .tf.on{border-color:var(--az-sh) var(--az-hi) var(--az-hi) var(--az-sh);background:#b9d3f0}
#scr-analytics .az-chart{position:relative;width:100%;height:min(58vh,440px);min-height:300px;border:2px solid;border-color:#8a9199 #fff #fff #8a9199;border-radius:12px;overflow:hidden;background:#0b0a18}
#scr-analytics .az-ov{position:absolute;inset:0;z-index:10;display:grid;place-items:center;background:rgba(11,10,24,.72);color:#aab2c4;font:700 17px var(--az-mono);text-align:center;padding:12px}
#scr-analytics .az-pxwrap{display:flex;align-items:baseline;gap:6px;flex:none}
#scr-analytics .az-px{font:700 15px var(--az-mono);color:var(--az-ink)}
#scr-analytics .az-chg{font:700 11px var(--az-mono)}
#scr-analytics .az-chg.up{color:#0a8f2a}
#scr-analytics .az-chg.dn{color:#9e1f1f}
#scr-analytics .sec-h{font-weight:700;color:var(--az-navy);font-size:15px;margin:14px 2px 8px;display:flex;align-items:baseline;gap:7px}
#scr-analytics .sec-h .src{font-weight:400;font-size:10px;color:#8a8a8a;margin-left:auto}
#scr-analytics .mcard{background:#fff;border:1px solid #cfd3d8;border-radius:var(--az-rad);padding:9px 11px;margin-bottom:7px}
#scr-analytics .mcard .az-top{display:flex;align-items:center;gap:7px}
#scr-analytics .mcard .az-nm{font-weight:700;font-size:13.5px;color:var(--az-navy)}
#scr-analytics .mcard .frq{font:400 9px var(--az-mono);color:#9aa0a7}
#scr-analytics .mcard .frq.live{color:#12a33a}
#scr-analytics .mcard .frq.day{color:#c58a00}
#scr-analytics .mcard .az-val{margin-left:auto;font:700 15px var(--az-mono)}
#scr-analytics .mcard .az-val small{font-size:10px;color:#888;font-weight:500}
#scr-analytics .pill{font:700 10px var(--az-ui);text-transform:uppercase;padding:2px 7px;border:1px solid;border-radius:999px;white-space:nowrap}
#scr-analytics .pill.good{color:var(--az-green);background:#e0f4e5;border-color:#9bd6ab}
#scr-analytics .pill.bad{color:var(--az-red);background:#fbe2e2;border-color:#e6adad}
#scr-analytics .pill.warn{color:var(--az-amber);background:#fbf0cf;border-color:#e8d38f}
#scr-analytics .az-spark{margin:7px 0 2px;height:44px;border-bottom:1px solid #eee}
#scr-analytics .az-spark svg{width:100%;height:44px;display:block}
#scr-analytics .exp{font-size:11.5px;color:#4a5158;margin-top:6px;line-height:1.45}
#scr-analytics .exp b{color:#1f2937}
#scr-analytics .split{height:15px;display:flex;border-radius:6px;overflow:hidden;font:700 9px var(--az-mono);color:#fff;margin-top:7px}
#scr-analytics .split .l{background:#b12b2b;display:grid;place-items:center}
#scr-analytics .split .s{background:#1f8a3c;display:grid;place-items:center}
#scr-analytics .adapt{background:#eef1f6;border:1px dashed #9aa8c8;border-radius:var(--az-rad);padding:9px 11px;margin-bottom:7px;font-size:12px;color:#33415c;line-height:1.45}
#scr-analytics .adapt b{color:var(--az-navy)}
#scr-analytics .mgrid{background:#fff;border:1px solid #cfd3d8;border-radius:var(--az-rad);padding:11px 13px;margin-bottom:7px;display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;position:relative}
#scr-analytics .mgrid::before{content:'';position:absolute;top:12px;bottom:12px;left:50%;width:1px;background:#eaeaee}
#scr-analytics .mcell{display:flex;flex-direction:column;gap:1px;min-width:0}
#scr-analytics .mk{font-size:10.5px;color:#8a8a8a}
#scr-analytics .mv{font:700 15px var(--az-mono);color:#111;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#scr-analytics .ucard{background:#fff;border:1px solid #cfd3d8;border-left:4px solid #8a6100;border-radius:var(--az-rad);padding:9px 11px;margin-bottom:7px}
#scr-analytics .ucard .uh{font-weight:700;font-size:13px;color:var(--az-navy)}
#scr-analytics .ucard .ut{font-size:12px;color:#4a5158;margin-top:4px;line-height:1.4}
#scr-analytics .wcard{background:#fff;border:1px solid #cfd3d8;border-left:4px solid #999;border-radius:var(--az-rad);padding:8px 10px;margin-bottom:6px}
#scr-analytics .wcard.buy{border-left-color:#0a8f2a}
#scr-analytics .wcard.short,#scr-analytics .wcard.sell{border-left-color:#b12b2b}
#scr-analytics .wcard.move{border-left-color:#8a6100}
#scr-analytics .wcard.wake{border-left-color:#12239e}
#scr-analytics .wcard .wh{font-weight:700;font-size:12.5px;line-height:1.3}
#scr-analytics .wcard .wsub{font-size:11.5px;color:#4a5158;margin-top:3px;line-height:1.4}
#scr-analytics .wcard .wf{display:flex;gap:8px;align-items:center;margin-top:6px;font:400 10px var(--az-mono);color:#8a8a8a}
#scr-analytics .wcard .az-lbl{font:700 9px var(--az-ui);text-transform:uppercase;letter-spacing:.2px;padding:1px 7px;border-radius:999px;border:1px solid}
#scr-analytics .wcard .az-lbl.v{color:#0a5aa0;background:#e5f0fb;border-color:#a9cdef}
#scr-analytics .wcard .az-lbl.u{color:#777;background:#eee;border-color:#ccc}
#scr-analytics .wcard .tx{margin-left:auto;color:#0a5aa0}
#scr-analytics .feedbox{max-height:300px;overflow-y:auto;border:1px solid #cfd3d8;border-radius:var(--az-rad);background:#eef0f3;padding:6px 6px 1px;margin-bottom:7px}
#scr-analytics .feedbox::-webkit-scrollbar{width:8px}
#scr-analytics .feedbox::-webkit-scrollbar-thumb{background:#b7bcc3;border-radius:6px}
#scr-analytics .calbox{overflow:hidden;border:1px solid #cfd3d8;border-radius:var(--az-rad);background:#fff;margin-bottom:7px}
#scr-analytics .calhead{display:flex;flex-wrap:wrap;gap:8px;margin:-2px 2px 6px;font:400 10.5px var(--az-ui);color:#666}
#scr-analytics .optin{display:flex;gap:9px;align-items:flex-start;background:#fff;border:1px solid #cfd3d8;border-radius:var(--az-rad);padding:9px 11px;margin-bottom:7px;cursor:pointer}
#scr-analytics .optin input{-webkit-appearance:none;appearance:none;width:24px;height:24px;flex:none;margin:0;background:#fff;border:2px solid;border-color:#8a9199 #fff #fff #8a9199;border-radius:6px;position:relative;cursor:pointer;outline:1px solid #c3c7cd}
#scr-analytics .optin input:checked::after{content:'✔';position:absolute;inset:0;display:grid;place-items:center;font:700 16px/1 sans-serif;color:#0a8f2a}
#scr-analytics .optin span{font-size:11.5px;color:#4a5158;line-height:1.4}
#scr-analytics .optin b{color:#1f2937}
#scr-analytics .cal-section+.cal-section{border-top:5px solid #e6e9ed}
#scr-analytics .cal-section-h{display:flex;align-items:center;gap:7px;padding:8px 11px;background:#eef1f5;color:var(--az-navy);font-size:13px;font-weight:800;letter-spacing:.1px;border-bottom:1px solid #d8dde3}
#scr-analytics .cal-section-h small{margin-left:auto;display:grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#d9e1ee;color:#445167;font:700 10px var(--az-mono)}
#scr-analytics .cal-section.results .cal-section-h{color:#146d35;background:#edf7f0}
#scr-analytics .cal-daywatch-list{max-height:166px;overflow-y:auto;border-top:1px dashed #c9cfd6;background:#fafbfc}
#scr-analytics .cal-daywatch-list::-webkit-scrollbar{width:8px}
#scr-analytics .cal-daywatch-list::-webkit-scrollbar-thumb{background:#b7bcc3;border-radius:6px}
#scr-analytics .cal-empty{padding:14px 12px;color:#626c77;font-size:12px;background:#fff}
#scr-analytics .cwhy{font-size:10.5px;color:#65707c;margin-top:5px;line-height:1.35}
#scr-analytics .crow .risk{font:700 9px var(--az-ui);color:#b0201f;background:#fbe2e2;border:1px solid #e6adad;border-radius:999px;padding:1px 7px;white-space:nowrap}
#scr-analytics .crow{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:8px;align-items:start;padding:10px 11px;border-bottom:1px solid #eceff2;background:#fff}
#scr-analytics .crow:last-child{border-bottom:0}
#scr-analytics .crow.results{background:#f8fcf9}
#scr-analytics .crow.urgent{background:#fff7e8;box-shadow:inset 4px 0 0 #dc7d00}
#scr-analytics .crow.compact{padding-top:8px;padding-bottom:8px}
#scr-analytics .cal-dayh{padding:4px 10px 2px;font:700 10px var(--az-ui);letter-spacing:.3px;text-transform:uppercase;color:#6a7380;background:#f4f6f8;border-bottom:1px solid #e6eaee}
#scr-analytics .cal-section.upcoming .cal-section-list>.crow.oneline,
#scr-analytics .cal-daywatch-list .crow.oneline{grid-template-columns:auto 9px minmax(0,1fr) 16px;gap:6px;padding:4px 10px;align-items:center}
#scr-analytics .crow.oneline .ct{margin:0;font:500 10px var(--az-mono);color:#59636e;white-space:nowrap}
#scr-analytics .crow.oneline .cdot{margin-top:0}
#scr-analytics .crow.oneline .cmain>b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.2}
#scr-analytics .cal-section.upcoming .crow.oneline .cvals,
#scr-analytics .cal-section.upcoming .crow.oneline .cwhy{display:none}
#scr-analytics .cdot{width:9px;height:9px;border-radius:50%;margin-top:5px}
#scr-analytics .cdot.red{background:#d33}
#scr-analytics .cdot.yel{background:#e0a000}
#scr-analytics .cdot.done{background:#169447;box-shadow:0 0 0 2px #d9f1e1}
#scr-analytics .cdot.watch{background:#7d8792}
#scr-analytics .cmain{min-width:0}
#scr-analytics .cmain>b{display:block;font-size:12.5px;line-height:1.32}
#scr-analytics .cmain .ct{font:500 10.5px var(--az-mono);color:#59636e;margin-top:2px}
#scr-analytics .cvals{display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px;margin-top:6px;font:700 10px var(--az-mono);line-height:1.35}
#scr-analytics .cvals>span{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;border-radius:5px;background:#f2f4f6;white-space:nowrap}
#scr-analytics .cvals .cvlabel{font:600 9px var(--az-ui);color:#65707b}
#scr-analytics .cvals .p{color:#525d68;font-weight:500}
#scr-analytics .cvals .f{color:#08792b;background:#e7f6eb;border:1px solid #b9dfc4}
#scr-analytics .cvals .fc{color:#39434e}
#scr-analytics .cvals .fact-wait{color:#796019;background:#fbf3d8}
#scr-analytics .bell{font-size:14px;width:18px;text-align:center;filter:drop-shadow(0 1px 0 #fff)}
#scr-analytics .az-sumbox{display:block;background:#ffffce;border:2px solid #000;border-radius:10px;padding:12px 13px;margin-top:6px}
#scr-analytics .az-sumbox h3{margin:0 0 10px;font-size:15px;font-weight:700}
#scr-analytics .az-pitem{display:block;margin-bottom:10px}
#scr-analytics .az-pitem .az-pt{display:inline-block;font:700 10px var(--az-ui);letter-spacing:.4px;text-transform:uppercase;color:#7a5c00;background:#f1e199;border-radius:6px;padding:2px 9px;margin-bottom:5px}
#scr-analytics .az-pitem p{margin:0;font-size:12.5px;line-height:1.45;color:#211d00}
#scr-analytics .az-sumbox .az-sumfoot{margin-top:4px;padding-top:10px;border-top:1px dashed #b9a94a;font-size:12.5px;line-height:1.5}
#scr-analytics .az-sumbox .az-sumfoot b{background:#211d00;color:#ffffce;padding:1px 6px;border-radius:4px}
#scr-analytics .az-lsrow{margin:7px 0}
#scr-analytics .az-lsrow .k{display:flex;justify-content:space-between;font-size:11px;color:#4a5158;margin-bottom:3px}
#scr-analytics .az-lsrow .k b{color:#1f2937}
#scr-analytics .az-lsbar{height:14px;display:flex;border-radius:6px;overflow:hidden;font:700 9px var(--az-mono);color:#fff}
#scr-analytics .az-lsbar .l{background:#1f8a3c;display:grid;place-items:center}
#scr-analytics .az-lsbar .s{background:#b12b2b;display:grid;place-items:center}
#scr-analytics .az-nodata{font-size:12px;color:#777;background:#fff;border:1px dashed #c9cdd3;border-radius:var(--az-rad);padding:10px 11px;margin-bottom:7px}
#scr-analytics .az-hidden{display:none!important}

/* ============================================================
   UI r-radius (2026-08-27, видно всем):
   1) подписи таскбара заметнее — размер НЕ меняем, только цвет/вес
      (в тёмной теме цвет остаётся палитровым, иначе чёрный по чёрному);
   2) единый радиус кнопок --radius:8px, бевел не трогаем.
   ============================================================ */
body.iz-owner { --radius: 6px; } /* r5.1/r30: тот же токен, гейт iz-owner */
.taskbar button span { color: #0e1216; font-weight: 800; }
[data-theme='dark'] .taskbar button span { color: var(--text); }
.btn, .btn-default, .btn-block,
.taskbar .taskbtn, .taskbar button, #taskbar button,
.tbtn, .win98-btn,
.chip, .exchange-chip,
.tab, .seg .seg-item, .preset,
.searchbox, .close-pct-seg {
  border-radius: var(--radius, 0); /* r5.1: без класса iz-owner = старый вид */
}

/* ============================================================
   r8/r10: фиксация страницы, радиусы 6/8/6, без drop-shadow, ✕ 28x28,
   системный шрифт — для всех пользователей (гейт iz-owner снят в r10).
   ============================================================ */
#scr-analytics .az-chart{touch-action:none}
/* п.5б: палец на ползунке не тянет страницу */
input[type=range]{touch-action:none}
/* п.5г: без резинового отскока на корневом скролле */
html,body{overscroll-behavior:none}
/* на внутренних контейнерах overscroll-behavior НЕ ставим: в Chrome это меняет
   резервирование полосы прокрутки и сдвигает вёрстку на 1px (проверено pixelmatch) */
/* п.5а: пока открыта шторка — фон не прокручивается, скроллится только её тело */
body.iz-sheet-open #app,
body.iz-sheet-open .screen>.scroll-y,
body.iz-sheet-open .screen .scroll-y,
body.iz-sheet-open #marketListScroll,
body.iz-sheet-open #scr-analytics .az-wrap{overflow:hidden!important;overscroll-behavior:none}
body.iz-sheet-open .sheet .sheet-body{overscroll-behavior:contain}

/* ---- п.3.4: системный шрифт TelegramUI + табличные цифры ---- */
body{
  --ui:system-ui,-apple-system,BlinkMacSystemFont,"Roboto","Helvetica Neue",Arial,sans-serif;
  --mono:system-ui,-apple-system,BlinkMacSystemFont,"Roboto","Helvetica Neue",Arial,sans-serif;
  --az-ui:system-ui,-apple-system,BlinkMacSystemFont,"Roboto","Helvetica Neue",Arial,sans-serif;
  --az-mono:system-ui,-apple-system,BlinkMacSystemFont,"Roboto","Helvetica Neue",Arial,sans-serif;
  --ui-pixel:system-ui,-apple-system,BlinkMacSystemFont,"Roboto","Helvetica Neue",Arial,sans-serif;
}
body,button,input,select,textarea,
.mono,.price,.chg,.pnl,
#coinPrice,.statcell .v,.kvcell .v,.outcard .v{
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Roboto","Helvetica Neue",Arial,sans-serif;
}
.mono,.price,.chg,.pnl,#coinPrice,
.statcell .v,.kvcell .v,.outcard .v,.lvlrow,
#az-px,.mv,.az-val,.dt,.sym,
td,.v{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}

/* ---- п.1: поиск и заголовок списка — ровная рамка, без «скобки» ---- */
.searchbox,.searchbox.sunken{
  box-shadow:none!important;border:1px solid var(--outline);border-radius:6px;background:var(--field)
}
.searchbox input,#searchInput{
  box-shadow:none!important;border:0;border-radius:6px;background:transparent
}
.searchbox .ic{opacity:.75}
.colh{border-radius:6px}

/* ---- п.3.1: радиусы (кнопки/поля 6px, карточки/панели/шторки 8px, иконки 6px) ---- */
.seg > button,
.presets button,
.tico,
.checkbox.w98,
.row.connrow,
.gate-input,
.refinput,
input[type="range"],
.btn,.tbtn,.chip,.taskbar button,
#scr-analytics .tf,#az-sym,#az-refresh,#az-optin{border-radius:6px}
.secthead,
#loadErrBanner,
#marketListScroll,
#chartBox,
#signalZone,
#signalHeadline,
#signalVerdict,
.sheet.dlg-shadow,
.sheet-foot,
.field.sheet-track,
.outcard,
#outcomeList,
#sheetKv,
#tradesTotal,
.card.pos,
.histrow,
#connectionList,
#profileStats,
.panel.bevel-etched,
#scr-analytics .mcard,#scr-analytics .az-chart,
#az-cal,#az-smart,#az-unlock,#az-summary,
#scr-analytics .az-sumfoot{border-radius:8px}
#chartBox,#marketListScroll{overflow:hidden}
.sheet.dlg-shadow > .shead{border-radius:8px 8px 0 0}
.ava,.sqi{border-radius:6px}

/* ---- п.3.2: без drop-shadow (inset-бевел не трогаем) ---- */
.btn,.tbtn,.tico,.chip,
.taskbar button,.seg > button,.presets button,
.card.pos,.panel.bevel-etched,.histrow,
#scr-analytics .mcard,#tradesTotal{filter:none}
.dlg-shadow,.sheet.dlg-shadow{box-shadow:none}

/* ---- п.3.3: ✕ шторок — 28x28 по центру тайтл-бара ---- */
.shead .tico{
  width:28px;min-width:28px;height:28px;min-height:28px;
  align-self:center;margin:0 0 0 auto;padding:0;border-radius:6px;box-shadow:none
}
/* бар делаем ровно под кнопку (28 + по 2px), иначе ✕ свисает на контент */
.sheet .shead.titlebar,.shead{display:flex;align-items:center;min-height:32px!important;height:32px!important;padding-right:6px}
.shead .tico::before{content:none}

/* ---- п.3.4 добор: системный шрифт шире пиксельного — два места, где
   текст потерял запас, уменьшены точечно (замер scrollWidth до/после) ---- */
/* подписи таскбара: зазор до рамки был 3.5px, стал 2px → возвращаем запас */
.taskbar button span,#taskbar button span{font-size:9.5px!important;letter-spacing:-.1px}
/* «PNL ПО ВСЕМ ОТКРЫТЫМ»: переполнение выросло 19px → 23px */
#tradesTotal .pnlcell .k{font-size:9.5px;letter-spacing:-.2px}

/* ---- п.6: «−$12.4  −38%» в одну строку ---- */
.sheet .outcards .outcard{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 6px}
.sheet .outcards .k{flex:1 0 100%}
.sheet .outcards .v,.sheet .outcards .d{display:inline-block;white-space:nowrap}
.sheet .outcards .d{color:var(--text-dim)}

/* ============================================================
   r9 (п.3): тёмная тема вкладки «Аналитика». Тот же селектор, что
   у остального приложения ([data-theme='dark']). Токены --az-*
   переопределяются целиком, плюс места с прямыми цветами.
   График (.az-chart) тёмный всегда — его не трогаем.
   ============================================================ */
[data-theme='dark'] #scr-analytics{
  --az-bg:#0a0a0a;--az-ink:#e8e8ee;--az-navy:#8ab4ff;--az-green:#2ee6a8;--az-red:#ff6b6b;
  --az-amber:#e0b45c;--az-face:#17171c;--az-hi:#2a2a33;--az-sh:#000;--az-dk:#3a3a45;
  --az-muted:#b7bdc7;
  --az-spark-grid:#23232b;
}
[data-theme='dark'] #scr-analytics .az-wrap{background:var(--az-bg);color:var(--az-ink)}
[data-theme='dark'] #scr-analytics .az-sub,
[data-theme='dark'] #scr-analytics .calhead{color:var(--az-muted)}
[data-theme='dark'] #scr-analytics .sec-h{color:var(--az-navy)}
[data-theme='dark'] #scr-analytics .mcard,
[data-theme='dark'] #scr-analytics .calbox,
[data-theme='dark'] #scr-analytics #az-smart,
[data-theme='dark'] #scr-analytics #az-unlock,
[data-theme='dark'] #scr-analytics #az-mstats,
[data-theme='dark'] #scr-analytics .optin{background:#111117;color:var(--az-ink);border-color:var(--az-dk)}
[data-theme='dark'] #scr-analytics .sel select,
[data-theme='dark'] #scr-analytics .tf{background:#1c1c23;color:var(--az-ink);border-color:var(--az-sh) var(--az-hi) var(--az-hi) var(--az-sh)}
[data-theme='dark'] #scr-analytics .tf.on{background:#24405e;color:#fff}
[data-theme='dark'] #scr-analytics .raise{background:var(--az-face);border-color:var(--az-hi) var(--az-sh) var(--az-sh) var(--az-hi)}
[data-theme='dark'] #scr-analytics .mcell,
[data-theme='dark'] #scr-analytics .crow{background:transparent;border-color:var(--az-dk)}
[data-theme='dark'] #scr-analytics .mk,
[data-theme='dark'] #scr-analytics .ct,
[data-theme='dark'] #scr-analytics .cwhy,
[data-theme='dark'] #scr-analytics .exp,
[data-theme='dark'] #scr-analytics .az-nodata{
  color:var(--az-muted);background:var(--az-face);border-color:var(--az-dk)
}
[data-theme='dark'] #scr-analytics .mv,
[data-theme='dark'] #scr-analytics .az-val,
[data-theme='dark'] #scr-analytics .az-nm,
[data-theme='dark'] #scr-analytics .az-px,
[data-theme='dark'] #scr-analytics .cmain b,
[data-theme='dark'] #scr-analytics .az-lsrow .k b{color:var(--az-ink)}
[data-theme='dark'] #scr-analytics .az-sumbox{background:#141410;border-color:#3d3a24;color:var(--az-ink)}
[data-theme='dark'] #scr-analytics .az-pt{background:#2e2a16;color:#e8dca8}
[data-theme='dark'] #scr-analytics .az-pitem p,
[data-theme='dark'] #scr-analytics .az-sumfoot{color:var(--az-ink)}
[data-theme='dark'] #scr-analytics .cal-section+.cal-section{border-color:#252832}
[data-theme='dark'] #scr-analytics .cal-section-h{background:#1b2029;color:var(--az-navy);border-color:var(--az-dk)}
[data-theme='dark'] #scr-analytics .cal-section-h small{background:#2b3442;color:#d3d9e2}
[data-theme='dark'] #scr-analytics .cal-section.results .cal-section-h{background:#14241a;color:#72d596}
[data-theme='dark'] #scr-analytics .cal-daywatch-list{background:#0e0e13;border-color:var(--az-dk)}
[data-theme='dark'] #scr-analytics .cal-empty{background:#111117;color:var(--az-muted)}
[data-theme='dark'] #scr-analytics .crow.results{background:#101a14}
[data-theme='dark'] #scr-analytics .crow.urgent{background:#2a2111;box-shadow:inset 4px 0 0 #d99124}
[data-theme='dark'] #scr-analytics .cdot.done{box-shadow:0 0 0 2px #183b25}
[data-theme='dark'] #scr-analytics .cvals>span{background:#202129}
[data-theme='dark'] #scr-analytics .cvals .cvlabel{color:#aeb5c0}
[data-theme='dark'] #scr-analytics .cvals .f{color:#72e49b;background:#132a1b;border-color:#285d38}
[data-theme='dark'] #scr-analytics .cvals .fact-wait{color:#e1c36e;background:#2b2515}
[data-theme='dark'] #scr-analytics .cvals .p,
[data-theme='dark'] #scr-analytics .cvals .fc{color:#9aa1ab}
[data-theme='dark'] #scr-analytics .bell{filter:none}
[data-theme='dark'] #scr-analytics .pill.warn{background:#2e2a16;color:#e8dca8;border-color:#4a431f}
[data-theme='dark'] #scr-analytics .pill.good{background:#12281c;color:#7ee2a8;border-color:#245c3a}
[data-theme='dark'] #scr-analytics .pill.bad{background:#2a1416;color:#ff9b9b;border-color:#5c2427}
[data-theme='dark'] #scr-analytics .optin input,
[data-theme='dark'] #scr-analytics .optin span{color:var(--az-ink)}
[data-theme='dark'] #scr-analytics .az-lsrow .k{color:#9aa1ab}
[data-theme='dark'] #scr-analytics .exp b,
[data-theme='dark'] #scr-analytics .exp strong,
[data-theme='dark'] #scr-analytics .cmain b,
[data-theme='dark'] #scr-analytics .uh,
[data-theme='dark'] #scr-analytics .optin b,
[data-theme='dark'] #scr-analytics .optin strong,
[data-theme='dark'] #scr-analytics .az-pt,
[data-theme='dark'] #scr-analytics h3{color:#d7dbe2}
[data-theme='dark'] #scr-analytics .legend,
[data-theme='dark'] #scr-analytics .risk{color:#9aa1ab}
[data-theme='dark'] #scr-analytics .frq{color:#9aa1ab}

/* r9 (п.5): тост — светлый текст на его тёмной подложке в обеих темах */
.iz-toast{color:#eef1f5}
.iz-toast-s{color:#c3c8d0}

/* r15B: пометка «данные Nado не подтверждены» на карточке позиции */
.pos-unconf{margin:6px 0 0;padding:4px 8px;border-radius:6px;font-size:11px;font-weight:600;
  background:rgba(224,163,65,.14);color:#8a6100;border:1px solid rgba(224,163,65,.35)}
[data-theme='dark'] .pos-unconf{background:rgba(224,163,65,.12);color:#e0b45c;border-color:rgba(224,163,65,.3)}
/* r15B: «не подтверждено» в узкой колонке TP/SL — переносим, а не обрезаем */
.posgrid .v.tps .tps-unconf{display:inline-block;white-space:normal;font-size:10.5px;
  line-height:1.15;font-weight:600;color:#8a6100;max-width:100%}
[data-theme='dark'] .posgrid .v.tps .tps-unconf{color:#e0b45c}
/* r18: баннер «Переподключите агента» на экране Сделки */
.relink-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0;padding:10px 12px;
  border-radius:8px;background:rgba(224,83,58,.12);border:1px solid rgba(224,83,58,.4);color:#8a2b1c}
.relink-banner .rb-txt{flex:1 1 180px;font-size:12px;font-weight:700;line-height:1.25}
.relink-banner .rb-btn{flex:0 0 auto;min-height:32px;font-size:12px}
[data-theme='dark'] .relink-banner{background:rgba(255,107,107,.12);border-color:rgba(255,107,107,.4);color:#ff9b9b}

/* r20: честная плашка состояния выдачи позиций (что подтверждено биржей, а что нет).
   Нейтральный вид — «биржа не подключена»; янтарный (.pos-note-err) — площадка не ответила. */
.pos-note{margin:0 0 8px;padding:8px 10px;border-radius:8px;font-size:11.5px;font-weight:600;
  line-height:1.3;background:var(--card,rgba(127,127,127,.10));color:var(--muted,#6b7280);
  border:1px solid rgba(127,127,127,.28)}
.pos-note-err{background:rgba(224,163,65,.14);color:#8a6100;border-color:rgba(224,163,65,.35)}
[data-theme='dark'] .pos-note{color:#9aa3af;border-color:rgba(154,163,175,.28)}
[data-theme='dark'] .pos-note-err{background:rgba(224,163,65,.12);color:#e0b45c;
  border-color:rgba(224,163,65,.3)}

/* ============================================================
   R24 — dark contrast, narrow position values, Nado 1CT warning
   ============================================================ */
[data-theme='dark'] button.checkbox,
[data-theme='dark'] button.checkbox.w98,
[data-theme='dark'] .checkbox.w98 {
  background: var(--control-surface) !important;
  border: 1px solid var(--control-border) !important;
  box-shadow:
    inset 1px 1px 0 var(--bevel-hi),
    inset -1px -1px 0 var(--bevel-dark) !important;
}
[data-theme='dark'] .btn.danger {
  color: var(--danger-text) !important;
}

/* Numeric values must remain readable at 390px: wrap instead of semantic loss. */
.posgrid.v2 .v,
.posgrid.v2 .v.tps,
.posgrid.v2 .lvl {
  max-width: 100%;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  overflow-wrap: anywhere;
}
.posgrid.v2 > div:first-child .v {
  font-size: clamp(11px, 3.2vw, 13px) !important;
  line-height: 1.2;
}
.posgrid.v2 .v.tps {
  font-size: 11.5px !important;
  line-height: 1.2;
}
.posgrid.v2 .v.tps .lvl {
  display: inline-block;
  font-size: 10.5px !important;
}

.nado-1ct-note {
  margin: 7px 0 5px;
  padding: 8px 10px;
  border: 1px solid var(--warning-border);
  border-radius: 6px;
  background: var(--warning-bg);
  color: var(--warning-text);
  font-size: 11.5px;
  font-weight: 700;
  line-height: 1.3;
}
