/* Stage, phone frame, sheets, shared component structure.
   Surfaces/colors come from [data-variant] themes. */

body {
  font-family: var(--font-body, system-ui, sans-serif);
  color: var(--ink);
  background: var(--stage-bg);
}

/* ——— Devtools ——— */
.stage {
  display: grid;
  grid-template-columns: minmax(280px, 360px) var(--phone-w);
  gap: var(--space-8);
  justify-content: center;
  align-items: start;
  padding: var(--space-8) var(--space-5) var(--space-12);
  max-width: 960px;
  margin: 0 auto;
}

@media (max-width: 860px) {
  .stage { grid-template-columns: 1fr; justify-items: center; }
  .devtools { width: min(390px, 100%); }
}

.devtools {
  background: var(--devtools-bg, var(--card));
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  padding: var(--space-5);
  color: var(--ink);
}

.devtools h1 {
  margin: 0 0 6px;
  font-family: var(--font-display, inherit);
  font-size: var(--t-xl);
  font-weight: var(--w-bold);
  letter-spacing: -0.02em;
}

.devtools .lead {
  margin: 0 0 var(--space-4);
  color: var(--muted);
  font-size: var(--t-sm);
}

.devtools label {
  display: block;
  margin: var(--space-4) 0 var(--space-2);
  font-size: var(--t-xs);
  font-weight: var(--w-semi);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
}

.devtools select {
  width: 100%;
  padding: 10px 12px;
  border-radius: var(--r-sm);
  border: 1px solid var(--line);
  background: var(--input-bg, var(--sunken));
  color: var(--ink);
}

.chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.chip-row button {
  padding: 7px 12px;
  border-radius: var(--r-pill);
  border: 1px solid var(--line);
  background: var(--chip-bg, transparent);
  color: var(--ink);
  font-size: var(--t-sm);
  font-weight: var(--w-med);
  transition: background var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}

.chip-row button:hover { border-color: var(--accent); }
.chip-row button:active { transform: scale(0.97); }
.chip-row button.on {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--accent-ink, #fff);
}

.hint {
  margin: var(--space-3) 0 0;
  font-size: var(--t-sm);
  color: var(--muted);
  line-height: 1.45;
}

/* ——— Phone ——— */
.phone {
  position: relative;
  width: var(--phone-w);
  height: var(--phone-h);
  background: var(--paper);
  border-radius: 36px;
  border: 1px solid var(--phone-edge, var(--line));
  box-shadow: var(--phone-shadow, 0 24px 64px rgba(0,0,0,0.35));
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.status-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 22px 0;
  font-size: 11px;
  line-height: 1.2;
  font-weight: var(--w-semi);
  color: var(--muted);
  flex-shrink: 0;
}

.app-header {
  padding: 0 var(--pad-x, 16px) 10px;
  flex-shrink: 0;
  border-bottom: 1px solid var(--line-soft, transparent);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
/* Инвест: только solid-бар эфира — без зазоров над/под ним в шапке */
.app-header--air-only {
  padding: 0;
  gap: 0;
}
.app-header--air-only .badge-row {
  margin: 8px var(--pad-x, 16px);
}
.app-header--air-only .badge-row[hidden] {
  display: none !important;
  margin: 0;
}

.header-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 8px;
}
.header-top[hidden] {
  display: none !important;
}

.brand {
  flex: 1;
  min-width: 0;
  text-align: left;
}

/* Solid-бар эфира — во всю ширину шапки (air-only: pad шапки = 0) */
.header-air {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  margin: 0;
  padding: 14px var(--pad-x, 16px);
  border: none;
  border-radius: 0;
  background: var(--accent, #2F6B4F);
  color: var(--accent-ink, #fff);
  font: inherit;
  text-align: left;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  box-sizing: border-box;
}
/* Если шапка с боковым pad (не air-only) — full-bleed через отрицательный margin */
.app-header:not(.app-header--air-only) .header-air {
  width: calc(100% + 2 * var(--pad-x, 16px));
  margin: 0 calc(-1 * var(--pad-x, 16px));
}
.header-air[hidden] { display: none !important; }
.header-air:active { filter: brightness(0.95); }
.header-air-left,
.header-air-right {
  display: flex;
  flex-direction: row;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
}
.header-air-right {
  flex: 0 0 auto;
  margin-left: auto;
  gap: 10px;
}
.header-air-label {
  font-size: 13px;
  font-weight: 500;
  line-height: 1.2;
  opacity: 0.9;
  white-space: nowrap;
}
.header-air-date {
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}
.header-air-val {
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.header-air-go {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  opacity: 0.95;
  white-space: nowrap;
}
.header-air--live {
  background: var(--live-bg, var(--danger, #B23A32));
  color: var(--live-ink, #fff);
}

/* «Мои портфели» — full-width solid (legacy; на Home — квадрат в .home-dock) */
.home-portfolios-solid {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  margin: 0;
  padding: 16px 16px;
  min-height: 64px;
  box-sizing: border-box;
  border: none;
  border-radius: 16px;
  background: var(--accent, #2F6B4F);
  color: var(--accent-ink, #fff);
  font: inherit;
  text-align: left;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}
.home-portfolios-solid:active { filter: brightness(0.95); }
.home-portfolios-solid-label {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.2;
}
.home-portfolios-solid-meta {
  font-size: 13px;
  line-height: 1.2;
  opacity: 0.9;
  font-variant-numeric: tabular-nums;
  text-align: right;
}

/* Home dock: ровно ½ + ½; обе половины — квадраты одной стороны */
.home-dock {
  --home-dock-gap: 8px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--home-mosaic-gap, 10px);
  align-items: start;
  width: 100%;
  overflow: visible;
}
.home-dock-menu {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: var(--home-dock-gap);
  width: 100%;
  min-width: 0;
  aspect-ratio: 1 / 1;
  align-content: stretch;
  box-sizing: border-box;
  overflow: visible;
}
/* Кубик: иконка UL чуть вылезает за край; подпись absolute снизу */
.home-dock-menu .menu-tile {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  padding: 0;
  box-sizing: border-box;
  border-radius: 14px;
  background: var(--accent-muted, var(--tone-green-bg, #E7F0EA));
  color: var(--accent, #2F6B4F);
  overflow: visible;
  z-index: 1;
}
.home-dock-menu .menu-tile--art {
  background-color: var(--accent-muted, var(--tone-green-bg, #E7F0EA));
  background-image: none;
}
.home-dock-menu .menu-tile-art {
  position: absolute;
  top: -10px;
  left: -8px;
  z-index: 2;
  display: block;
  width: 48px;
  height: 48px;
  margin: 0;
  object-fit: contain;
  object-position: left top;
  pointer-events: none;
  user-select: none;
  filter: drop-shadow(0 2px 4px rgba(28, 25, 20, 0.12));
}
/* Курс / Админ / Архив — чуть крупнее монет; верх совпадает */
.home-dock-menu .menu-tile-art--boost {
  width: 56px;
  height: 56px;
  top: -10px;
  left: -8px;
}
.home-dock-menu .menu-tile .ico,
.home-dock-menu .menu-tile .ico[class*="ico--"] {
  position: absolute !important;
  top: -6px !important;
  left: -4px !important;
  z-index: 2;
  background: transparent !important;
  width: 28px !important;
  height: 28px !important;
  max-width: none;
  max-height: none;
  aspect-ratio: auto;
  border-radius: 0;
  flex-shrink: 0;
  color: inherit !important;
  padding: 0;
  margin: 0;
}
.home-dock-menu .menu-tile .ico svg {
  width: 100% !important;
  height: 100% !important;
  min-width: 0;
  min-height: 0;
  stroke-width: 1.55;
  stroke: currentColor;
  color: inherit;
}
html[data-variant] .home-dock-menu .menu-tile:not(.menu-tile--art) {
  background: var(--accent-muted, var(--tone-green-bg, #E7F0EA));
  color: var(--accent);
  border: none;
  box-shadow: none;
}
html[data-variant] .home-dock-menu .menu-tile--art {
  background-color: var(--accent-muted, var(--tone-green-bg, #E7F0EA));
  background-image: none;
  color: var(--accent);
  border: none;
  box-shadow: none;
}
html[data-variant] .home-dock-menu .menu-tile .ico,
html[data-variant] .home-dock-menu .menu-tile .ico[class*="ico--"] {
  position: absolute !important;
  top: -6px !important;
  left: -4px !important;
  width: 28px !important;
  height: 28px !important;
  max-width: none;
  aspect-ratio: auto;
  background: transparent !important;
  border-radius: 0;
  color: inherit !important;
  margin: 0;
}
html[data-variant] .home-dock-menu .menu-tile .ico svg {
  width: 100% !important;
  height: 100% !important;
  min-width: 0;
  min-height: 0;
  stroke: currentColor;
  color: inherit;
}
.home-dock-menu .menu-tile-lbl {
  position: absolute;
  left: 4px;
  right: 4px;
  bottom: 7px;
  z-index: 2;
  width: auto;
  margin: 0;
  padding: 0;
  min-height: 0;
  max-height: 2.6em;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.25;
  color: inherit !important;
  text-align: center;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  white-space: normal;
  pointer-events: none;
}
.home-dock-menu .menu-tile--art .menu-tile-lbl {
  font-weight: 600;
  color: var(--accent, #2F6B4F);
}
html[data-variant] .home-dock-menu .menu-tile-lbl {
  color: inherit !important;
  font-weight: 600;
}
.home-dock > .home-bento-tile--mine {
  width: 100%;
  min-width: 0;
  min-height: 0;
  height: auto;
  aspect-ratio: 1 / 1;
  align-self: start;
  justify-content: space-between;
  padding: 14px;
  border-radius: 14px;
  box-sizing: border-box;
  /* рамка 1:1 / 14px та же; пикча зумится до тиснения как кубы портфелей */
  background-color: var(--accent, #2F6B4F);
  background-image: url("../assets/home-my-portfolios.png");
  background-size: 117%;
  background-position: center;
  background-repeat: no-repeat;
}
.home-dock > .home-bento-tile--mine .home-bento-tile-label {
  font-size: 15px;
  line-height: 1.2;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
}
.home-dock > .home-bento-tile--mine .home-bento-tile-meta {
  font-size: 12px;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}

.brand .mark {
  display: inline-block;
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: var(--w-bold);
  letter-spacing: 0.12em;
  color: var(--accent);
  margin-bottom: 2px;
}

.brand h2 {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--t-lg);
  font-weight: var(--w-semi);
  letter-spacing: -0.02em;
  line-height: 1.2;
}

#brandSub {
  display: block;
  font-size: var(--t-xs);
  color: var(--muted);
  font-weight: var(--w-med);
}
#brandSub[hidden] {
  display: none !important;
}

.badge-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}
.badge-row[hidden] {
  display: none !important;
  margin: 0;
}

.badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius: var(--r-pill);
  font-size: 10px;
  font-weight: var(--w-semi);
  letter-spacing: 0.02em;
  background: var(--badge-bg);
  color: var(--muted);
  border: 1px solid var(--line);
}

.badge.live {
  background: var(--live-bg);
  color: var(--live-ink);
  border-color: transparent;
}

.badge.warn {
  background: var(--warn-bg);
  color: var(--warn);
  border-color: transparent;
}

.subnav { display: none; }
.subnav.show { display: flex; }

.scroll {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  /* снизу запас, чтобы последняя карточка не выглядела «срезанной» навбаром */
  padding: var(--space-3) var(--pad-x, 16px) 28px;
  scroll-behavior: smooth;
}
#phone[data-variant] .scroll,
#phone .scroll {
  padding-bottom: 36px;
}

/* Quiet super-nav */
.nav {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  padding: 6px 8px calc(10px + env(safe-area-inset-bottom, 0));
  background: var(--surf-nav);
  border-top: 1px solid var(--line-soft, var(--line));
  backdrop-filter: blur(16px);
  flex-shrink: 0;
}

.nav button {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 8px 4px;
  border-radius: var(--r-sm);
  color: var(--nav-muted);
  opacity: 0.55;
  transition: opacity var(--dur) var(--ease-out), color var(--dur) var(--ease-out), background var(--dur) var(--ease-out);
}

.nav button.on {
  opacity: 1;
  color: var(--accent);
  background: var(--nav-on-bg);
}

.nav .nav-ico {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
}

.nav .nav-ico svg { width: 20px; height: 20px; }

.nav .nav-lbl {
  font-size: 10px;
  font-weight: var(--w-semi);
  letter-spacing: -0.01em;
}

.nav .nav-sub {
  font-size: 9px;
  color: var(--muted);
  opacity: 0.85;
}

.nav button:not(.on) .nav-sub { display: none; }

/* Toast */
.toast {
  position: absolute;
  top: 52px;
  left: 16px;
  right: 16px;
  z-index: 40;
  padding: 10px 14px;
  border-radius: var(--r-md);
  background: var(--toast-bg);
  color: var(--toast-ink);
  font-size: var(--t-sm);
  font-weight: var(--w-med);
  box-shadow: var(--elev-2);
  opacity: 0;
  transform: translateY(-8px);
  pointer-events: none;
  transition: opacity var(--dur) var(--ease-out), transform var(--dur) var(--ease-out);
}

.toast.show { opacity: 1; transform: none; }
.toast.urgent {
  background: var(--danger);
  color: #fff;
}

/* Sheet */
.sheet {
  position: absolute;
  inset: 0;
  z-index: 30;
  background: rgba(0,0,0,0.45);
  display: flex;
  align-items: flex-end;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--dur) var(--ease-out);
}

.sheet.open { opacity: 1; pointer-events: auto; }

.sheet .panel {
  width: 100%;
  max-height: 88%;
  overflow-y: auto;
  background: var(--surf-sheet);
  border-radius: var(--r-xl) var(--r-xl) 0 0;
  padding: var(--space-5) var(--space-4) var(--space-8);
  transform: translateY(16px);
  transition: transform var(--dur-slow) var(--ease-out);
}

.sheet.open .panel { transform: none; }
.sheet .panel.feed-pool { max-height: 92%; }

/*
 * Job-сегменты в шите (покупка / продажа / SL·TP).
 * Референс Freedom Portfolio / Ideas: отдельные карточки с gap на фоне шита,
 * не hairline в одном плоском списке. LIVE уже так же — отдельные .card.
 */
.sheet-job-stack {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 14px;
}
.sheet-job-seg {
  margin: 0;
  padding: 12px 12px 8px;
  border: none;
  border-radius: 14px;
  background: var(--card-2, var(--sunken));
}
.sheet-job-seg-label {
  margin: 0 0 8px;
  padding: 0 2px;
  font-family: var(--font-body);
  font-size: 15px;
  font-weight: var(--w-semi, 600);
  letter-spacing: -0.015em;
  line-height: 1.25;
  color: var(--ink);
}
.sheet-job-seg-body > .ticker,
.sheet-job-seg-body > .level-row {
  padding-left: 2px;
  padding-right: 2px;
}
.sheet-job-seg-body > .ticker:first-child,
.sheet-job-seg-body > .level-row:first-child {
  border-top: none;
}
.sheet-job-seg-body > .howto-box {
  margin-top: 10px;
}
.sheet-job-seg-empty {
  margin: 4px 2px 6px;
  font-size: 13px;
}

/* ——— Shared components ——— */
.card {
  background: var(--card);
  border: none;
  border-radius: var(--r-lg);
  padding: var(--space-4);
  margin-bottom: var(--space-3);
}

.card.primary {
  border-color: var(--card-primary-border, var(--accent-soft));
  background: var(--card-primary-bg, var(--card));
}

.card.info { border-color: var(--info-line, var(--line)); }
.card.other { opacity: 0.92; }
.card.levels {
  border-color: var(--levels-border);
  background: var(--levels-bg);
}

.kicker {
  font-size: var(--t-xs);
  font-weight: var(--w-semi);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0 0 6px;
}

.kicker.warn { color: var(--warn); }
.kicker.info { color: var(--info); }
.kicker.other { color: var(--muted); }
.kicker.levels { color: var(--levels-kicker, var(--warn)); }

.card h3, .sheet h3 {
  margin: 0 0 6px;
  font-family: var(--font-display);
  font-size: var(--t-xl);
  font-weight: var(--w-semi);
  letter-spacing: -0.02em;
  line-height: 1.25;
  text-wrap: balance;
  color: var(--ink);
}

.card p, .muted { color: var(--muted); }
.card p { margin: 0 0 10px; font-size: var(--t-md); }

.btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-top: 8px;
  min-height: 48px;
  padding: 0 16px;
  border-radius: var(--r-md);
  background: var(--accent);
  color: var(--accent-ink, #fff);
  font-weight: var(--w-semi);
  font-size: var(--t-md);
  line-height: 1;
  text-align: center;
  box-sizing: border-box;
  transition: transform var(--dur-fast) var(--ease-out), filter var(--dur) var(--ease-out);
}

.btn:hover { filter: brightness(1.05); }
.btn:active { transform: scale(0.97); }

.btn.secondary {
  background: transparent;
  color: var(--ink);
  border: 1px solid var(--line);
}

.btn.small {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  margin-top: 0;
  padding: 6px 11px;
  font-size: var(--t-sm);
  border-radius: var(--r-sm);
  line-height: 1.2;
  flex-shrink: 0;
}

.btn.small.nowrap {
  white-space: nowrap;
}

.btn.small.done,
.btn.small:disabled {
  background: var(--sunken, rgba(128, 128, 128, 0.2));
  color: var(--muted);
  border: 1px solid var(--line);
  cursor: default;
  pointer-events: none;
  opacity: 0.9;
}

.btn.ghost {
  background: transparent;
  border: 1px solid var(--line);
  color: var(--ink);
}

.btn.danger {
  background: var(--danger);
  color: #fff;
}

/* Dual CTA — Freedom: Пополнить | Вывести */
.btn-row {
  display: flex;
  gap: 8px;
  margin-top: 14px;
  align-items: stretch;
}
.btn-row .btn {
  flex: 1;
  margin-top: 0;
  width: auto;
  min-width: 0;
  align-self: stretch;
}
.btn-row--stack {
  flex-direction: column;
}
.btn-row--stack .btn {
  width: 100%;
}

.btn-mentor-clarify {
  /* Как secondary на ГЭ — одинаково в карточке и в шите */
  margin-top: 12px;
  min-height: 48px;
  padding: 0 16px;
  line-height: 1;
  border: none;
  border-radius: 12px;
  background: var(--accent-muted, rgba(59, 130, 246, 0.2));
  color: var(--accent);
  font-size: 16px;
  font-weight: 600;
}

/* Alert strips — единый Blocker Micro */
.alert-strip {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  margin: 0 0 8px;
  padding: 8px 10px;
  border: none;
  border-radius: var(--r-sm, 8px);
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}
.alert-strip:active { opacity: 0.85; }
.alert-strip-badge {
  flex-shrink: 0;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  color: #fff;
  font-size: 11px;
  font-weight: var(--w-semi, 600);
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.alert-strip-txt {
  flex: 1;
  min-width: 0;
  font-size: 13px;
  font-weight: var(--w-semi, 600);
  color: var(--ink);
  line-height: 1.25;
}
.alert-strip-chev {
  flex-shrink: 0;
  color: var(--muted);
  font-size: 13px;
}
.alert-strip--warn {
  background: var(--warn-bg, rgba(245, 158, 11, 0.16));
}
.alert-strip--warn .alert-strip-badge {
  background: var(--warn, #d97706);
}
.alert-strip--danger {
  background: var(--urgent-bg, rgba(225, 29, 72, 0.12));
  border: 1px solid var(--urgent-border, rgba(225, 29, 72, 0.28));
}
.alert-strip--danger .alert-strip-badge {
  background: #E11D48;
}
.alert-strip--danger .alert-strip-txt {
  color: var(--danger, #E11D48);
}
.alert-strip--soft {
  background: var(--accent-soft, rgba(47, 107, 79, 0.12));
}
.alert-strip--soft .alert-strip-badge {
  background: var(--accent, #2F6B4F);
}
.alert-strip--soft .alert-strip-txt {
  color: var(--ink);
  font-weight: var(--w-med, 500);
}

/* Segmented: переключение портфелей на экране Mine */
.seg-control {
  display: flex;
  gap: 0;
  margin: 0 0 8px;
  padding: 3px;
  border-radius: 12px;
  background: var(--sunken, rgba(0, 0, 0, 0.06));
}
.seg-btn {
  flex: 1;
  margin: 0;
  padding: 8px 6px;
  border: none;
  border-radius: 10px;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: 13px;
  font-weight: var(--w-semi, 600);
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.seg-control--many .seg-btn {
  font-size: 12px;
  padding: 8px 4px;
}
.seg-btn.on {
  background: var(--card, #fff);
  color: var(--ink);
  box-shadow: 0 0 0 1px var(--line, rgba(0, 0, 0, 0.08));
}

.port-metrics-solid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin: 0;
  padding: 12px 14px;
  border-radius: 0;
  background: var(--sunken, rgba(0, 0, 0, 0.04));
  color: var(--ink);
  border-top: 1px solid var(--line, rgba(0, 0, 0, 0.06));
  border-bottom: 1px solid var(--line, rgba(0, 0, 0, 0.06));
}
.port-metrics-solid .pm-cell {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.port-metrics-solid .pm-lbl {
  font-size: 10px;
  font-weight: 500;
  opacity: 0.7;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--muted);
}
.port-metrics-solid .pm-val {
  font-size: 14px;
  font-weight: var(--w-semi, 600);
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--ink);
}
.port-metrics-solid .pm-val.pnl-pos {
  color: var(--tone-green, #2F6B4F);
}
.port-metrics-solid .pm-val.pnl-neg {
  color: var(--danger, #E11D48);
}

.port-home-badge {
  margin-left: 8px;
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.22);
  color: inherit;
  font-size: 11px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  vertical-align: middle;
}
.port-home-link.port-home-min .port-home-main {
  display: flex;
  align-items: center;
  flex: 1;
  min-width: 0;
}

.progress {
  height: 6px;
  border-radius: var(--r-pill);
  background: var(--sunken);
  overflow: hidden;
  margin: 10px 0 6px;
}

.progress i {
  display: block;
  height: 100%;
  background: var(--accent);
  border-radius: inherit;
}

.lock {
  display: inline-block;
  margin-top: 4px;
  font-size: var(--t-xs);
  color: var(--muted);
  padding: 3px 8px;
  border-radius: var(--r-pill);
  background: var(--sunken);
}

/* Icons */
.ico {
  display: inline-grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: var(--r-sm);
  flex-shrink: 0;
  color: var(--ico-ink, var(--ink));
  background: var(--ico-bg);
}

.ico svg { width: 18px; height: 18px; }
.ico--sm { width: 30px; height: 30px; }
.ico--sm svg { width: 15px; height: 15px; }
.ico--md { width: 36px; height: 36px; }
.ico--lg {
  width: 48px;
  height: 48px;
  border-radius: 14px;
}
.ico--lg svg { width: 24px; height: 24px; stroke-width: 1.6; }

.ico--green { background: var(--tone-green-bg); color: var(--tone-green); }
.ico--blue { background: var(--tone-blue-bg); color: var(--tone-blue); }
.ico--teal { background: var(--tone-teal-bg); color: var(--tone-teal); }
.ico--yellow { background: var(--tone-yellow-bg); color: var(--tone-yellow); }
.ico--red { background: var(--tone-red-bg); color: var(--tone-red); }
.ico--purple { background: var(--tone-purple-bg); color: var(--tone-purple); }
.ico--pink { background: var(--tone-pink-bg); color: var(--tone-pink); }

/* Menu / feed */
.menu-list { display: flex; flex-direction: column; gap: 8px; }

.menu-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px 8px;
}

.card-menu {
  padding: 12px 10px 10px;
}

.menu-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
  width: 100%;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  box-shadow: none;
  outline: none;
}
.menu-tile:hover,
.menu-tile:focus-visible {
  background: transparent;
}
.menu-tile:active {
  opacity: 0.75;
}
.menu-tile .ico {
  width: 100%;
  aspect-ratio: 1;
  height: auto;
  max-width: none;
  border-radius: 18px;
  flex-shrink: 0;
}
.menu-tile .ico svg {
  width: 58%;
  height: 58%;
  min-width: 28px;
  min-height: 28px;
  stroke-width: 1.55;
}
.menu-tile-lbl {
  font-size: 11px;
  font-weight: var(--w-med, 500);
  line-height: 1.15;
  text-align: center;
  color: var(--ink);
}

/* Home: колонтитулы-кикеры только воруют место */
#screen .card > .kicker:not(.warn) {
  display: none;
}
#screen .air-todo-card h3,
#screen .job-card h3 {
  margin-top: 0;
}

/* Home: один шаг между крупными тап-блоками (эфир / алерт / изменения / Мои↔лента / меню) */
#phone {
  --home-seg-gap: 24px;
}
#screen .home-seg {
  --home-gap: 8px;
  --home-mosaic-gap: 10px;
  --home-tile-r: 16px;
  --home-tile-h: 140px;
  --air-todo-tile-h: 140px;
  --home-tile-pad: 12px;
  margin: 0 0 var(--home-seg-gap);
}
#screen .home-seg:last-of-type {
  margin-bottom: 8px;
}
#screen .home-seg-body {
  display: flex;
  flex-direction: column;
  gap: var(--home-gap);
}
/* gap владеет стеком — у прямых детей сбрасываем margin-bottom */
#screen .home-seg-body > .card,
#screen .home-seg-body > .home-hero,
#screen .home-seg-body > .alert-strip,
#screen .home-seg-body > .air-todo-card,
#screen .home-seg-body > .air-todo-block,
#screen .home-seg-body > .port-home-link,
#screen .home-seg-body > .home-bento,
#screen .home-seg-body > .home-dock,
#screen .home-seg-body > .home-portfolios-solid,
#screen .home-seg-body > .home-hot-push,
#screen .home-seg-body > .btn {
  margin-bottom: 0;
}
#screen .home-seg-body > .alert-strip {
  margin: 0;
}
/* После solid-бара эфира — тот же шаг, что между сегментами */
html[data-variant] .app-header--air-only ~ .scroll,
html[data-variant] .app-header--air-only + .subnav + .scroll {
  padding-top: var(--home-seg-gap);
}
.home-bento {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--home-mosaic-gap, 10px);
  align-items: stretch;
}
.home-bento > .home-bento-tile {
  /* Один ряд = одна высота (без лесенки) */
  height: 100%;
  min-height: var(--home-tile-h, 140px);
  max-height: none;
}
.home-bento-tile {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 6px;
  min-height: var(--home-tile-h, 140px);
  width: 100%;
  margin: 0;
  padding: 12px;
  box-sizing: border-box;
  text-align: left;
  border-radius: var(--home-tile-r, 16px);
  border: none;
  background: var(--card, #FFFCF7);
  color: inherit;
  font: inherit;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  box-shadow: none;
  overflow: hidden;
}
.home-bento-tile:active {
  transform: scale(0.985);
}
.home-bento .home-hero.slim.home-bento-tile--air {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 6px;
  grid-template-columns: unset;
  height: 100%;
  min-height: var(--home-tile-h, 140px);
  margin-bottom: 0;
  padding: 12px;
  border-radius: var(--home-tile-r, 16px);
  box-sizing: border-box;
}
.home-bento .home-hero.slim.home-bento-tile--air .main {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1;
}
.home-bento .home-hero.slim.home-bento-tile--air .title {
  font-size: 15px;
  line-height: 1.25;
}
.home-bento .home-hero.slim.home-bento-tile--air .when {
  font-size: 11px;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
  width: 100%;
  min-width: 0;
}
.home-bento .home-hero.slim.home-bento-tile--air .air-countdown {
  margin-top: 0;
  align-self: flex-start;
  font-size: 12px;
  font-weight: var(--w-semi, 600);
  color: var(--accent);
  font-variant-numeric: tabular-nums;
}
/* LIVE = тот же квадрат, что slim (рядом с «Мои»), не full-bleed */
.home-bento .home-hero.slim.live.home-bento-tile--air {
  height: 100%;
  min-height: var(--home-tile-h, 140px);
  margin-bottom: 0;
}
.home-bento .home-hero.slim.live.home-bento-tile--air .air-countdown {
  color: var(--danger, #B23A32);
}
.home-bento-tile--mine {
  background: var(--accent);
  color: var(--accent-ink, #fff);
  border-color: transparent;
}
.home-bento-tile--mine .ico {
  background: rgba(255, 255, 255, 0.16);
  color: var(--accent-ink, #fff);
}
.home-bento-tile--mine .home-bento-tile-label {
  font-size: 15px;
  font-weight: var(--w-semi, 600);
  line-height: 1.25;
  color: inherit;
  flex: 1;
}
.home-bento-tile--mine .home-bento-tile-meta {
  font-size: 12px;
  line-height: 1.3;
  opacity: 0.88;
  color: inherit;
}
.home-bento-tile--mine:active {
  filter: brightness(0.94);
}

/* Лента: паддинг карточки = боковой; строки без лишнего top-inset */
#screen .home-feed-card {
  padding: 6px 12px 8px;
}
#screen .home-feed-card .feed-preview-list {
  display: flex;
  flex-direction: column;
  max-height: min(280px, 42vh);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}
#screen .home-feed-card .feed-preview-list .feed-item {
  padding: 10px 0;
  min-height: 0;
  gap: 10px;
  border-radius: 0;
  flex-shrink: 0;
}
#screen .home-feed-card .feed-preview-list .feed-item + .feed-item {
  border-top: 1px solid var(--line-soft, var(--line));
}

/* Горячий пуш: между «Изменения…» и меню; не лента */
.home-hot-push {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  width: 100%;
  margin: 0;
  padding: 14px 16px;
  box-sizing: border-box;
  border: none;
  border-radius: 16px;
  background: var(--accent-muted, var(--tone-green-bg, #D8E5DC));
  color: var(--ink, #1C1914);
  font: inherit;
  text-align: left;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}
.home-hot-push:active {
  filter: brightness(0.97);
}
.home-hot-push-kicker {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--accent, #2F6B4F);
  line-height: 1.2;
}
.home-hot-push-title {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--ink, #1C1914);
}
.home-hot-push-body {
  font-size: 13px;
  line-height: 1.35;
  color: var(--muted, #8A8478);
}
html[data-variant="b"] .home-hot-push {
  background: var(--accent-muted, #1E3A5F);
  color: var(--ink, #fff);
}
html[data-variant="b"] .home-hot-push-kicker {
  color: var(--accent, #3B82F6);
}
html[data-variant="b"] .home-hot-push-title {
  color: var(--ink, #fff);
}
html[data-variant="b"] .home-hot-push-body {
  color: var(--muted, #8B97A8);
}

/* Mine: тот же шаг 8px между шапкой / алертом / seg / блоком */
#screen .mine-bar {
  margin: 0 0 8px;
}
#screen > .alert-strip,
#screen .mine-bar ~ .alert-strip {
  margin: 0 0 8px;
}

.menu-row {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  text-align: left;
  padding: 12px 14px;
  border-radius: 12px;
  background: var(--sunken, rgba(0, 0, 0, 0.04));
  border: none;
  transition: background var(--dur) var(--ease-out), opacity 0.12s ease;
}

.feed-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  text-align: left;
  padding: 10px 4px;
  border-radius: var(--r-sm);
  background: transparent;
  border: none;
  transition: background var(--dur) var(--ease-out);
}

.menu-row:hover {
  background: var(--row-hover, rgba(0, 0, 0, 0.06));
}
.menu-row:active {
  opacity: 0.88;
}
.feed-item:hover {
  background: var(--row-hover);
}

.menu-txt, .feed-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.menu-txt strong, .feed-body strong {
  font-size: var(--t-md);
  font-weight: var(--w-semi);
  color: var(--ink);
}

.menu-txt .meta, .feed-body .muted {
  font-size: var(--t-sm);
  color: var(--muted);
}

.chev { color: var(--muted); font-size: 1.1rem; }

.feed-body .kind {
  font-size: 10px;
  font-weight: var(--w-semi);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--accent);
}

.home-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.home-actions .act {
  position: relative;
  text-align: left;
  padding: 12px;
  border-radius: var(--r-md);
  background: var(--sunken);
  border: 1px solid var(--line);
  min-height: 88px;
  transition: transform var(--dur-fast) var(--ease-out);
}

.home-actions .act:active { transform: scale(0.97); }
.home-actions .act strong {
  display: block;
  font-size: var(--t-sm);
  font-weight: var(--w-semi);
  margin-bottom: 4px;
}
.home-actions .act .sub {
  display: block;
  font-size: var(--t-xs);
  color: var(--muted);
  padding-right: 28px;
}
.home-actions .act .ico {
  position: absolute;
  right: 8px;
  bottom: 8px;
}

/* Heroes / air */
.home-hero {
  display: block;
  width: 100%;
  text-align: left;
  padding: var(--space-4);
  margin-bottom: var(--space-3);
  border-radius: var(--r-lg);
  background: var(--hero-bg);
  border: none;
  color: var(--ink);
  transition: transform var(--dur-fast) var(--ease-out);
}

.home-hero:active { transform: scale(0.985); }
.home-hero.live { background: var(--hero-live-bg); }
.home-hero.slim {
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
}

.home-hero .title { font-weight: var(--w-semi); display: block; }
.home-hero .when { font-size: var(--t-sm); color: var(--muted); }
.home-hero .go {
  margin-top: 10px;
  font-size: var(--t-sm);
  font-weight: var(--w-semi);
  color: var(--accent);
}

.air-pill {
  display: inline-flex;
  padding: 2px 8px;
  border-radius: var(--r-pill);
  font-size: 10px;
  font-weight: var(--w-bold);
  letter-spacing: 0.04em;
}

.air-pill.live { background: var(--live-bg); color: var(--live-ink); }
.air-pill.soon { background: var(--badge-bg); color: var(--muted); }
.air-pill.past { background: var(--sunken); color: var(--muted); }

.air-countdown {
  font-family: var(--font-mono, ui-monospace, monospace);
  font-weight: var(--w-semi);
  font-size: var(--t-md);
  color: var(--accent);
}

.air-card {
  display: block;
  width: 100%;
  text-align: left;
  padding: 14px;
  margin-bottom: 8px;
  border-radius: var(--r-lg);
  background: var(--card);
  border: none;
  transition: transform var(--dur-fast) var(--ease-out);
}

.air-card:active { transform: scale(0.985); }
.air-card.live { background: var(--hero-live-bg); }
.air-card .top { display: flex; justify-content: space-between; align-items: center; }
.air-card h3 { font-size: var(--t-lg); margin: 6px 0 4px; }
.air-card .meta { font-size: var(--t-sm); color: var(--muted); }
.air-card .go { margin-top: 8px; font-size: var(--t-sm); font-weight: var(--w-semi); color: var(--accent); }

.back-air {
  display: inline-flex;
  margin-bottom: 10px;
  padding: 6px 0;
  font-size: var(--t-sm);
  font-weight: var(--w-semi);
  color: var(--accent);
}

.mine-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}
.mine-bar .back-air {
  margin-bottom: 0;
}

.mine-edit {
  font-size: var(--t-sm);
  font-weight: var(--w-semi);
  color: var(--accent);
}

/* Portfolios / positions */
.port-home-card {
  display: block;
  width: 100%;
  text-align: left;
  padding: 4px 0 0;
}

.port-home-link {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  width: 100%;
  text-align: left;
  cursor: pointer;
  color: inherit;
  font: inherit;
  appearance: none;
  -webkit-appearance: none;
}
.port-home-link.port-home-min {
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: center;
  padding: 14px 16px;
  border: none;
  border-radius: 14px;
  background: var(--accent);
  color: var(--accent-ink, #fff);
  box-shadow: none;
}
.port-home-link.port-home-min .port-home-title {
  color: inherit;
  font-weight: var(--w-semi, 600);
}
.port-home-link.port-home-min .chev {
  color: inherit;
  opacity: 0.85;
}
.port-home-link.port-home-min:active {
  filter: brightness(0.94);
  transform: scale(0.985);
}
.port-home-link .port-home-title {
  font-size: 15px;
  font-weight: var(--w-semi);
  line-height: 1.25;
}
.port-home-link .kicker { width: 100%; margin: 0; }
.port-home-link .port-link-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.port-home-link .port-link-main strong {
  font-size: var(--t-md, 15px);
  font-weight: var(--w-semi);
}
.port-home-link .chev {
  color: var(--muted);
  font-size: var(--t-sm, 13px);
  white-space: nowrap;
  flex-shrink: 0;
}

.job-card .job-sub { margin: 0 0 10px; }
.job-list { display: flex; flex-direction: column; gap: 6px; }
.job-row {
  --job-fade: var(--surface-2, rgba(245, 245, 245, 1));
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 100%;
  text-align: left;
  padding: 12px;
  border-radius: var(--r-md, 12px);
  border: none;
  background: var(--surface-2, rgba(0, 0, 0, 0.03));
  color: inherit;
  font: inherit;
  cursor: pointer;
}
/* Жёсткая сетка: тикер | % | вердикт; портфель — отдельной полной строкой */
.job-top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 3.5rem 4.75rem;
  align-items: center;
  column-gap: 8px;
  width: 100%;
  font-variant-numeric: tabular-nums;
}
.job-top .sym {
  font-weight: var(--w-semi);
  font-size: 15px;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.job-port {
  display: block;
  width: 100%;
  font-size: 12px;
  color: var(--muted);
  line-height: 1.3;
  white-space: normal;
  overflow: visible;
  text-overflow: unset;
}
.job-top .pnl {
  font-weight: var(--w-semi);
  font-size: 13px;
  text-align: right;
  white-space: nowrap;
}
.job-top .status {
  font-size: 11px;
  font-weight: var(--w-semi);
  letter-spacing: 0.02em;
  color: var(--accent, var(--tone-green));
  text-align: right;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.job-next {
  position: relative;
  overflow: hidden;
  font-size: var(--t-sm, 13px);
  color: var(--muted);
  line-height: 1.35;
  max-height: 1.35em;
}
.job-next-text {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  padding-right: 1.25em; /* место под фейд */
}
/* Лёгкий фейд у края — намёк, что продолжение внутри */
.job-next::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 2.75em;
  background: linear-gradient(to right, transparent, var(--job-fade));
  pointer-events: none;
}
.job-more {
  display: block;
  width: 100%;
  margin-top: 10px;
  padding: 10px 4px 2px;
  border: none;
  background: none;
  color: var(--accent, #2563eb);
  font: inherit;
  font-size: var(--t-sm, 13px);
  font-weight: var(--w-semi);
  text-align: left;
  cursor: pointer;
}
.job-more:active { opacity: 0.75; }



/* «Что сделать» — без card-рамки: только заголовок + solid-кубики */
.air-todo-block {
  margin: 0;
  padding: 0;
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  outline: none;
}
.air-todo-heading {
  margin: 0 0 10px;
  padding: 0;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.25;
}
.air-todo-sub { margin: 0 0 10px; font-size: 12px; }
.air-todo-block > .air-todo-list {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 12px;
  padding: 6px 4px 4px 2px; /* место под бейдж */
  margin: 0;
  border: none;
  background: transparent;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}
/* Квадрат фиксированный + подпись снизу; ряд скроллится, не ужимается */
.air-todo-solid {
  position: relative;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
  width: 72px;
  min-width: 72px;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  border-radius: 0;
  text-align: center;
  font: inherit;
  color: var(--ink, #1C1914);
  background: transparent !important;
  overflow: visible;
}
.air-todo-face {
  position: relative;
  flex: 0 0 auto;
  width: 56px;
  height: 56px;
  max-width: 56px;
  aspect-ratio: 1 / 1;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 14px;
  display: block;
  overflow: visible;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  font: inherit;
  color: inherit;
  background-color: var(--todo-forest, #2F6B4F);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.air-todo-face--icon {
  background-color: transparent;
  /* PNG: тиснение + зелёный захлёст снаружи — зумим до тиснения;
     наши 56×56 / radius 14 срезают захлёст и хвост Gemini в BR */
  background-size: 117%;
  background-position: center;
}
.air-todo-face:active { filter: brightness(0.92); }
.air-todo-solid--forest .air-todo-face { background-color: var(--todo-forest, #2F6B4F); }
.air-todo-solid--earth .air-todo-face { background-color: var(--todo-earth, #9A6232); }
.air-todo-solid--rose .air-todo-face { background-color: var(--todo-rose, #B23A32); }
.air-todo-solid--muted .air-todo-face,
.air-todo-solid--expired .air-todo-face {
  background-color: var(--todo-muted, #8A8478);
}
/* Иконка-портфель: серый «не ведёте» / истёк — grayscale поверх PNG */
.air-todo-solid--muted .air-todo-face--icon,
.air-todo-solid--expired .air-todo-face--icon,
.air-todo-solid--unfollowed .air-todo-face--icon {
  filter: grayscale(1) brightness(0.95);
}
.air-todo-solid--muted .air-todo-face--icon:active,
.air-todo-solid--expired .air-todo-face--icon:active,
.air-todo-solid--unfollowed .air-todo-face--icon:active {
  filter: grayscale(1) brightness(0.88);
}
.air-todo-solid .air-todo-badge {
  position: absolute;
  top: -5px;
  right: -7px;
  z-index: 2;
  margin: 0;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--todo-badge, var(--danger, #B23A32));
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  box-shadow: 0 0 0 2px var(--paper, #F3EFE6);
  pointer-events: none;
}
.air-todo-solid--muted .air-todo-badge,
.air-todo-solid--expired .air-todo-badge {
  background: var(--todo-muted, #8A8478);
  color: #fff;
}
/* Не ведёте: серый куб, но бейдж действий остаётся красным */
.air-todo-solid--unfollowed .air-todo-badge {
  background: var(--todo-badge, var(--danger, #B23A32));
}
.air-todo-solid--unfollowed .air-todo-port {
  color: var(--muted, #8A8478);
}
.air-todo-solid .air-todo-port {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  width: 100%;
  padding: 0 2px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.25;
  color: var(--ink, #1C1914);
  text-align: center;
  overflow-wrap: break-word;
  word-break: normal;
  pointer-events: none;
  user-select: none;
}
.air-todo-solid .air-todo-meta { display: none; }
.air-todo-others {
  display: block;
  width: 100%;
  margin: 10px 0 0;
  padding: 0;
  border: none;
  background: none;
  color: var(--muted);
  font: inherit;
  font-size: 12px;
  line-height: 1.3;
  text-align: center;
  cursor: pointer;
}
/* Home: «Другие портфели» — зона тапа, без дыры */
#screen .air-todo-block > .air-todo-others {
  margin: 6px 0 0;
  padding: 8px 12px;
  min-height: 36px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 500;
}
.air-todo-others:active { opacity: 0.7; }
.air-todo-block .btn.secondary { margin-top: 12px; }

/* Sheet / legacy list */
.air-todo-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 14px;
  padding-top: 0;
  overflow: visible;
  align-items: flex-start;
}
.sheet .air-todo-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
.sheet .air-todo-solid {
  width: 100%;
  min-width: 0;
  max-width: none;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  padding: 4px 0;
  text-align: left;
}
.sheet .air-todo-solid .air-todo-face {
  flex: 0 0 48px;
  width: 48px;
  max-width: 48px;
  height: 48px;
  border-radius: 14px;
}
.sheet .air-todo-solid .air-todo-badge {
  top: -4px;
  right: -4px;
}
.sheet .air-todo-solid .air-todo-port {
  flex: 1;
  text-align: left;
  font-size: 15px;
  -webkit-line-clamp: 2;
  pointer-events: none;
}
.air-todo-row {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 6px;
  width: 100%;
  height: auto;
  min-height: 72px;
  box-sizing: border-box;
  text-align: left;
  padding: 12px;
  border-radius: 16px;
  border: none;
  background: var(--surface-2, rgba(0, 0, 0, 0.03));
  color: inherit;
  font: inherit;
  cursor: pointer;
  overflow: hidden;
  appearance: none;
}
.air-todo-badge {
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #B23A32;
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.air-todo-port {
  font-weight: 600;
  font-size: 14px;
  line-height: 1.25;
}
.air-todo-meta {
  font-size: 12px;
  color: var(--muted);
}
.air-todo-chev { color: var(--muted); }

.air-todo-card .btn.secondary {
  margin-top: 12px;
}

.air-todo-row--expired {
  background: rgba(120, 120, 120, 0.12);
  border-color: rgba(0, 0, 0, 0.08);
  color: var(--muted, #6b6b6b);
}
.air-todo-row--expired .air-todo-badge {
  background: #9CA3AF;
}
.air-todo-card--expired {
  opacity: 0.95;
}
.air-row--locked {
  opacity: 0.55;
  filter: grayscale(0.35);
}
.air-row--locked .btn[disabled],
.air-row--locked .level-zone-main[disabled] {
  cursor: not-allowed;
  pointer-events: none;
}

.pnl-pos { color: var(--tone-green); }
.pnl-neg { color: var(--danger); }

.port-pair { margin-bottom: 14px; }

/* Крышка: акцент на портфель наставника */
.mentor-chip {
  display: block;
  width: 100%;
  text-align: left;
  padding: 12px 16px;
  margin: 0;
  border: none;
  border-radius: var(--r-lg) var(--r-lg) 0 0;
  background: var(--accent);
  color: var(--accent-ink, #fff);
  font: inherit;
  cursor: pointer;
}

.mentor-chip-lbl {
  font-size: 12px;
  font-weight: var(--w-reg, 400);
  letter-spacing: 0;
  text-transform: none;
  color: inherit;
  opacity: 0.85;
  line-height: 1.25;
}

.mentor-chip-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.mentor-chip-pnl {
  color: inherit;
  font-variant-numeric: tabular-nums;
  font-size: 14px;
  font-weight: var(--w-semi);
  white-space: nowrap;
  opacity: 1;
}

.port-pair .port-stack .port-block {
  border-radius: 0 0 var(--r-lg) var(--r-lg);
}

.port-block {
  border: none;
  border-radius: var(--r-lg);
  background: var(--card);
  overflow: hidden;
}

.port-head {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 12px 14px;
  text-align: left;
  cursor: default;
}

.port-head .name { font-weight: var(--w-semi); }
.port-head .metrics { text-align: right; font-variant-numeric: tabular-nums; }
.port-head .val { display: block; font-weight: var(--w-semi); }
.port-head .pct { font-size: var(--t-sm); }

.port-list { padding: 0 10px 12px; border-top: 1px solid var(--line-soft, var(--line)); }
.port-list--table {
  padding: 4px 12px 12px;
}
.port-list--table .mentor-hold-table {
  margin-top: 0;
}
.port-list--table .mentor-hold-head {
  padding-top: 8px;
}
.port-list-empty { padding: 10px 4px; margin: 0; }

.pos-row-wrap {
  display: block;
}

.pos-row {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 10px;
  align-items: center;
  width: 100%;
  padding: 10px 4px;
  text-align: left;
  border-radius: var(--r-xs);
}

.pos-row:hover { background: var(--row-hover); }
.pos-row .sym {
  font-family: var(--font-mono, inherit);
  font-weight: var(--w-semi);
  font-size: var(--t-md);
}
.pos-row .pnl { font-weight: var(--w-semi); font-variant-numeric: tabular-nums; }
.pos-row .status {
  font-size: 10px;
  font-weight: var(--w-bold);
  letter-spacing: 0.04em;
  color: var(--verdict-ink, var(--accent));
  background: var(--verdict-bg, var(--accent-soft));
  padding: 3px 7px;
  border-radius: var(--r-pill);
}

.pos-rm {
  width: 28px;
  height: 28px;
  border-radius: var(--r-sm);
  color: var(--muted);
  font-size: 1.1rem;
}

.pos-rm:hover { background: var(--row-hover); color: var(--danger); }

/* Tickers / levels */
.ticker, .level-row {
  display: block;
  padding: 12px 0;
  border-top: 1px solid var(--line-soft, var(--line));
}

.ticker:first-of-type, .level-row:first-of-type { border-top: none; }

.ticker {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.ticker.compact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 0;
}

.ticker.compact.buy-row {
  align-items: stretch;
  gap: 0;
  padding: 0;
}

.buy-zone-main .sym {
  font-weight: var(--w-bold, 700);
  line-height: 1.25;
}

.buy-zone-main .meta {
  margin-top: 0;
  font-size: var(--t-sm);
  color: var(--muted);
  line-height: 1.25;
}

.buy-zone-main .meta-price {
  font-size: var(--t-sm);
  color: var(--muted);
  font-variant-numeric: tabular-nums;
  line-height: 1.25;
  max-width: 100%;
  padding-right: 4px;
  overflow-wrap: anywhere;
}
.buy-zone-main .meta-price--stack {
  display: block;
  line-height: 1.3;
}

.why-list {
  margin: 8px 0 0;
  padding: 0 0 0 1.1em;
  color: var(--text, inherit);
  font-size: var(--t-body, 14px);
  line-height: 1.45;
}

.why-list li + li {
  margin-top: 6px;
}

.level-row.compact {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: 0;
  padding: 0;
}

.ticker-compact-main,
.level-compact-main {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 8px;
  min-width: 0;
  flex: 1;
}

.meta-inline {
  font-size: var(--t-sm);
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}

.ticker-stack {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1px;
  min-width: 0;
  flex: 1;
}

.ticker-stack .meta {
  margin-top: 0;
  line-height: 1.25;
}

.ticker-stack .meta-price {
  font-size: var(--t-sm);
  color: var(--muted);
  font-variant-numeric: tabular-nums;
  line-height: 1.25;
}

.level-stack {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  min-width: 0;
  flex: 1;
}

.level-stack-top {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 8px;
}

.level-inline {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  font-weight: var(--w-semi);
  line-height: 1.25;
}

.level-inline .sl { color: var(--danger); }
.level-inline .tp { color: var(--accent); }
.level-done {
  font-size: 11px;
  color: var(--muted);
  white-space: nowrap;
  flex-shrink: 0;
}

.level-inline .muted-lvl { opacity: 0.55; }

.level-inline .level-pending { opacity: 0.85; }

.level-zone-main {
  position: relative;
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 2px;
  margin: 0;
  padding: 8px 12px 8px 0;
  border: none;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

/* Вертикаль короткая по центру — не до краёв строки; колонка кнопок фиксирована */
.level-zone-main::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 56%;
  background: var(--line-soft, var(--line));
  pointer-events: none;
}

.level-zone-main:active {
  background: var(--row-hover, rgba(128, 128, 128, 0.08));
}

.level-zone-action {
  --action-col: 7.25rem;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 var(--action-col);
  width: var(--action-col);
  min-width: var(--action-col);
  max-width: var(--action-col);
  box-sizing: border-box;
  padding: 8px 0 8px 10px;
}

.level-zone-action .btn.small {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  text-align: center;
  padding-left: 6px;
  padding-right: 6px;
}

/* «Нет в портфеле» — 2 строки, нормальные поля (не nowrap в края колонки) */
.level-zone-action .btn.small.btn-no-lot {
  white-space: normal;
  padding: 7px 10px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
  min-height: 2.55rem;
}

.level-done-btn {
  margin: 0;
  padding: 6px 4px;
  border: none;
  background: none;
  color: var(--muted);
  font: inherit;
  font-size: 11px;
  white-space: nowrap;
  cursor: pointer;
  width: 100%;
  text-align: center;
}

.level-done-btn:active { opacity: 0.7; }

.sym {
  font-family: var(--font-mono, inherit);
  font-weight: var(--w-bold);
  font-size: var(--t-md);
}

.meta { font-size: var(--t-sm); color: var(--muted); margin-top: 2px; }

.chip {
  display: inline-flex;
  padding: 1px 6px;
  border-radius: var(--r-pill);
  font-size: 10px;
  font-weight: var(--w-semi);
  background: var(--badge-bg);
  color: var(--muted);
}

.chip.watch { background: var(--warn-bg); color: var(--warn); }

/* Риск на why-шите к покупке (не в Mine/calm) */
.buy-why-meta .chip.risk {
  vertical-align: middle;
  font-size: 11px;
  padding: 2px 8px;
}
.chip.risk-low {
  background: var(--accent-soft, rgba(47, 107, 79, 0.14));
  color: var(--accent, #2F6B4F);
}
.chip.risk-mid {
  background: var(--warn-bg, rgba(154, 98, 50, 0.14));
  color: var(--warn, #9A6232);
}
.chip.risk-high {
  background: var(--danger-soft, rgba(178, 58, 50, 0.16));
  color: var(--danger, #B23A32);
}

.price-edit {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  justify-content: flex-end;
  font-size: var(--t-sm);
}

.price-edit .lbl { color: var(--muted); font-size: 10px; }
.price-edit input {
  width: 72px;
  padding: 5px 6px;
  border-radius: var(--r-xs);
  border: 1px solid var(--line);
  background: var(--input-bg, var(--sunken));
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}

.price-edit input.qty { width: 48px; }

.edit-qty-only {
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 6px;
  padding: 12px;
  border-radius: var(--r-md);
  background: var(--sunken);
}
.edit-qty-only .lbl {
  font-size: 12px;
  color: var(--ink);
  font-weight: var(--w-semi, 600);
}
.edit-qty-only input {
  width: 100%;
  box-sizing: border-box;
  padding: 10px 12px;
  font-size: 18px;
  font-weight: var(--w-semi, 600);
  border: 1px solid var(--accent, var(--line));
}
.lot-stats-readonly {
  margin-top: 8px;
  opacity: 0.85;
}

.line-total {
  margin-top: 4px;
  font-size: var(--t-sm);
  font-weight: var(--w-semi);
}

.level-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 10px;
}

.level-field {
  padding: 10px;
  border-radius: var(--r-sm);
  background: var(--sunken);
  border: 1px solid var(--line);
}

.level-field.sl { border-color: var(--danger-soft, var(--line)); }
.level-field.tp { border-color: var(--accent-soft, var(--line)); }
.level-field.off { opacity: 0.55; }
.level-field .lbl {
  display: block;
  font-size: 10px;
  font-weight: var(--w-semi);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 4px;
}
.level-field .val {
  font-family: var(--font-mono, inherit);
  font-weight: var(--w-semi);
  font-size: var(--t-lg);
}
.level-field .empty { font-size: var(--t-sm); color: var(--muted); }

.level-chip {
  display: inline-flex;
  margin: 2px 4px 2px 0;
  padding: 3px 8px;
  border-radius: var(--r-pill);
  font-size: 11px;
  font-weight: var(--w-semi);
  background: var(--badge-bg);
}

.level-chip.sl, .level-chip.warn { background: var(--warn-bg); color: var(--warn); }
.level-chip.tp { background: var(--tone-green-bg); color: var(--tone-green); }

.pill-check {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 12px 0;
}

.pill-check label {
  display: block;
  padding: 12px 14px;
  border-radius: var(--r-md);
  border: 1px solid var(--line);
  background: var(--sunken);
  cursor: pointer;
}

.pill-check label.on {
  border-color: var(--accent);
  background: var(--accent-soft);
}

.pill-check input { margin-right: 8px; }

.urgent-card {
  padding: var(--space-4);
  margin-bottom: var(--space-3);
  border-radius: var(--r-lg);
  background: var(--urgent-bg);
  border: none;
}

.urgent-card h3 { color: var(--danger); font-size: var(--t-lg); }

/* Компактный вход на ГЭ — детали в шите */
.urgent-card.urgent-home {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 10px;
  width: 100%;
  padding: 12px 14px;
  margin-bottom: 10px;
  text-align: left;
  color: inherit;
  font: inherit;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}
.urgent-home .kicker {
  width: auto;
  margin: 0;
  color: var(--danger);
}
.urgent-home-badge {
  position: absolute;
  top: -5px;
  right: -3px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #E11D48;
  color: #fff;
  font-size: 11px;
  font-weight: var(--w-semi, 600);
  font-variant-numeric: tabular-nums;
  line-height: 1;
  box-shadow: 0 0 0 2px var(--paper, var(--card, #fff));
  pointer-events: none;
}
.urgent-home-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.urgent-home-main strong {
  font-size: 15px;
  font-weight: var(--w-semi);
  color: var(--danger);
  line-height: 1.25;
}
.urgent-home .chev {
  color: var(--muted);
  font-size: 14px;
  flex-shrink: 0;
}

/* Алерты структуры — тонкая заметная полоска; детали в шите */
.structure-strip {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  margin: 0 0 8px;
  padding: 7px 10px;
  border: none;
  border-radius: var(--r-sm, 8px);
  background: var(--warn-bg, rgba(245, 158, 11, 0.16));
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}
.structure-strip:active { opacity: 0.85; }
.structure-strip-badge {
  flex-shrink: 0;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--warn, #d97706);
  color: #fff;
  font-size: 11px;
  font-weight: var(--w-semi, 600);
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.structure-strip-txt {
  flex: 1;
  min-width: 0;
  font-size: 13px;
  font-weight: var(--w-semi, 600);
  color: var(--ink);
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.structure-strip-chev {
  flex-shrink: 0;
  color: var(--muted);
  font-size: 13px;
}

.structure-advice {
  margin-top: 16px;
  padding: 12px;
  border-radius: var(--r-md);
  background: var(--sunken);
}
.structure-advice .kicker { margin: 0 0 8px; }
.structure-advice-list {
  margin: 0;
  padding-left: 1.15rem;
  font-size: 13px;
  line-height: 1.45;
}
.structure-advice-list li + li { margin-top: 6px; }

.howto-box {
  padding: 12px;
  border-radius: var(--r-md);
  background: var(--sunken);
  border: none;
  font-size: var(--t-sm);
}

.howto-box p { margin: 0 0 8px; color: var(--ink); }

.video-mock {
  display: grid;
  place-items: center;
  gap: 8px;
  height: 140px;
  margin-top: 10px;
  border-radius: var(--r-md);
  background: var(--sunken);
  border: none;
  cursor: pointer;
}

.video-mock .play {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--accent);
  color: var(--accent-ink, #fff);
  font-size: 1rem;
}

.feed-teaser {
  display: block;
  width: 100%;
  text-align: left;
}

.feed-peek {
  display: block;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dashed var(--line);
  opacity: 0.75;
}

.feed-peek .kind {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
  display: block;
}

.feed-expand {
  display: block;
  text-align: center;
  margin-top: 6px;
  color: var(--muted);
}

.list-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 0;
  border-top: 1px solid var(--line-soft, var(--line));
}

/* Состав модели наставника: тикер | шт | вход | сейчас | рекомендация */
.mentor-hold-table {
  display: flex;
  flex-direction: column;
  margin-top: 4px;
  width: 100%;
}
.mentor-hold-row {
  display: grid;
  grid-template-columns: 3.75rem 2.5rem 1fr 1fr 1.2fr;
  align-items: center;
  column-gap: 6px;
  padding: 10px 0;
  border-top: 1px solid var(--line-soft, var(--line));
  font-variant-numeric: tabular-nums;
  font-size: 13px;
}
.mentor-hold-head {
  padding: 2px 0 8px;
  border-top: none;
  font-size: 10px;
  line-height: 1.2;
  color: var(--muted);
}
.mentor-hold-head span:last-child {
  font-size: 9px;
  line-height: 1.15;
}
.mentor-hold-head span:first-child { text-align: left; }
.mentor-hold-head span:not(:first-child) { text-align: center; }
.mentor-hold-row .mh-sym {
  font-weight: var(--w-semi);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.mentor-hold-row .mh-num,
.mentor-hold-row .mh-rec {
  text-align: center;
}
.mentor-hold-row .mh-rec {
  font-size: 10px;
  font-weight: var(--w-semi);
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--muted);
  white-space: nowrap;
}
button.mentor-hold-row--btn {
  width: 100%;
  margin: 0;
  border: none;
  border-top: 1px solid var(--line-soft, var(--line));
  border-radius: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
  text-align: left;
}
button.mentor-hold-row--btn:hover,
button.mentor-hold-row--btn:active {
  background: var(--row-hover, rgba(0, 0, 0, 0.04));
}

.mentor-strip {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px;
  border-radius: var(--r-md);
  background: var(--sunken);
}

.lot-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}

.lot-stat {
  padding: 8px;
  border-radius: var(--r-sm);
  background: var(--sunken);
}

.lot-stat .lbl {
  display: block;
  font-size: 10px;
  color: var(--muted);
  margin-bottom: 2px;
}

.lot-stat .val {
  font-weight: var(--w-semi);
  font-variant-numeric: tabular-nums;
}

.calm-edit-link {
  display: block;
  width: auto;
  margin: 6px 0 0 auto;
  padding: 0;
  border: none;
  background: none;
  color: var(--accent, var(--green, #1a7f4e));
  font: inherit;
  font-size: 13px;
  font-weight: var(--w-semi, 600);
  line-height: 1.2;
  text-align: right;
  cursor: pointer;
}
.calm-edit-link:active { opacity: 0.7; }

.calm-remove-link {
  display: block;
  width: auto;
  margin: 16px 0 0 auto;
  padding: 0;
  border: none;
  background: none;
  color: var(--muted);
  font: inherit;
  font-size: 12px;
  line-height: 1.2;
  text-align: right;
  cursor: pointer;
}
.calm-remove-link:active { opacity: 0.7; }

.lot-stat-btn {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  width: 100%;
  text-align: left;
  cursor: pointer;
  color: inherit;
  font: inherit;
  border: 1px dashed var(--line);
  background: transparent;
}

.lot-stat-btn .val {
  color: var(--accent);
  font-size: var(--t-sm);
}

.lot-stat-btn:active {
  transform: scale(0.98);
}

.air-action {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: start;
  padding: 10px 0;
  border-top: 1px solid var(--line-soft, var(--line));
}

.air-action .kind {
  font-size: 10px;
  font-weight: var(--w-bold);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 3px 7px;
  border-radius: var(--r-pill);
  background: var(--badge-bg);
  color: var(--muted);
}

.air-action .kind.buy { background: var(--tone-green-bg); color: var(--tone-green); }
.air-action .kind.level { background: var(--warn-bg); color: var(--warn); }
.air-action .kind.info { background: var(--tone-blue-bg); color: var(--tone-blue); }

.row { display: flex; align-items: center; gap: 8px; }
.row.between { justify-content: space-between; }
.section-stub .menu-list { margin-top: 4px; }

.add-lot-list { display: flex; flex-direction: column; gap: 2px; }
