:root {
  /* тёмная тема в цветах панели PoE (решение юзера 08.09.26: «весь сайт в таких цветах»):
     страница – почти чёрный тёплый камень, карточки – чуть светлее, текст – пергамент */
  color-scheme: dark;
  --bg: #171411;
  --card: #241f1a;
  --ink: #ece3d0;
  --muted: #a1937f;
  --line: #4a4238;
  --gold: #d9be82;      /* заголовки, рамки, цифры «как в PoE» */
  --me: #c08cff;        /* 💼 «ты» – свои сделки на подсветке Качелей и в «если бы» (v1.29) */
  --claude: #5ccfbf;    /* 🧠 предсказания Claude (v1.33); Jev – золотом */
  --argon: #8ab4f8;     /* 🔷 ставки Argon (v1.37) */
  --codex: #f29bb8;     /* 🌀 ставки Codex (v1.38) */
  --gold-dim: #8a7a4f;
  --accent: #E58A63;
  --accent-soft: rgba(229, 138, 99, 0.16);
  --ok: #8fbf6a;
  --now: #7fa3d1; /* линия «сейчас» (актуальная цена) на графике */
  /* редкость как в PoE/Diablo: синий (magic) → жёлто-золотой (rare) → оранжевый (legendary) */
  --rar-rare: #8ea2ff; --rar-rare-bg: rgba(74, 106, 255, 0.18); --rar-rare-bd: #6f86ff;
  --rar-epic: #f2c53d; --rar-epic-bg: rgba(242, 197, 61, 0.14); --rar-epic-bd: #d9ad2a;
  --rar-leg: #ff9a3c; --rar-leg-bg: rgba(255, 154, 60, 0.16); --rar-leg-bd: #ff8a24;
  --rar-leg-glow: 0 0 0 1px rgba(255, 154, 60, 0.45), 0 2px 12px rgba(255, 130, 40, 0.35);
  --rar-epic-glow: 0 0 0 1px rgba(242, 197, 61, 0.45), 0 2px 10px rgba(242, 197, 61, 0.3);
  --entry: #c9a06a; /* линия «зашёл»: нейтральная охра – зелёный занят смыслом «профит» */
  --panel: radial-gradient(ellipse at top, #3a352e 0%, #221f1b 60%, #1a1815 100%);
  --pop-shadow: 0 12px 32px rgba(0, 0, 0, 0.55);
}

* { box-sizing: border-box; margin: 0; padding: 0; }

/* страховка от бокового скролла на мобилке: сайт одноколоночный, вбок
   двигаться нечему (кейс: хинт графика с nowrap растягивал документ) */
html, body { overflow-x: hidden; }

/* hidden должен побеждать любые display: flex/grid у классов */
[hidden] { display: none !important; }

body {
  background: var(--bg);
  color: var(--ink);
  font-family: "Inter", -apple-system, system-ui, sans-serif;
  font-size: 17px;
  line-height: 1.55;
  min-height: 100vh;
}

.page {
  max-width: 2200px; /* весь экран: колонки тикеров сами добавляются */
  margin: 0 auto;
  padding: 32px 28px 40px;
  display: flex;
  flex-direction: column;
  gap: 28px;
  min-height: 100vh;
}

.top {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.logo {
  font-family: "Source Serif 4", Georgia, serif;
  font-size: 28px;
  font-weight: 600;
  letter-spacing: -0.5px;
}

.logo .six { color: var(--accent); }

.chip {
  font-size: 13px;
  font-weight: 500;
  color: var(--muted);
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 5px 12px;
}

.card {
  background: radial-gradient(ellipse at top, #2d2721 0%, var(--card) 55%);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 32px 28px;
  box-shadow: inset 0 0 40px rgba(0, 0, 0, 0.35), 0 2px 10px rgba(0, 0, 0, 0.4);
}

h1 {
  font-family: "Source Serif 4", Georgia, serif;
  font-size: 34px;
  font-weight: 600;
  letter-spacing: -0.5px;
  line-height: 1.2;
  margin-bottom: 12px;
  color: var(--gold);
}

.muted { color: var(--muted); }

.plan {
  list-style: none;
  margin-top: 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.plan li {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--bg);
}

.plan li::before {
  content: "○";
  color: var(--muted);
  font-size: 15px;
}

.plan li.done {
  background: var(--accent-soft);
  border-color: transparent;
}

.plan li.done::before {
  content: "✓";
  color: var(--accent);
  font-weight: 700;
}

.foot {
  margin-top: auto;
  text-align: center;
  font-size: 14px;
  color: var(--muted);
}

a.logo { text-decoration: none; color: inherit; }

.topright { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.topright form { margin: 0; }
/* окно поуже – кнопка меню не сжимается и не ломает «🍿 / вотчлист» на две строки (юзер 12.10: «иконки сползли»):
   ряд целиком переносится вправо-вниз */
.topright .chip { white-space: nowrap; flex-shrink: 0; }
.btn-chip { cursor: pointer; font-family: inherit; }
.btn-chip:hover { border-color: var(--accent); color: var(--accent); }

.card.slim {
  width: 100%;
  max-width: 420px;
  margin: 8vh auto 0;
}

.form {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 20px;
}

.field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 14px;
  font-weight: 500;
  color: var(--muted);
}

.field input {
  font: inherit;
  font-size: 17px;
  color: var(--ink);
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--bg);
  outline: none;
}

.field input:focus {
  border-color: var(--accent);
  background: var(--card);
  box-shadow: 0 0 0 3px var(--accent-soft);
}

.btn {
  font: inherit;
  font-size: 17px;
  font-weight: 600;
  background: var(--accent);
  color: #fff;
  border: none;
  border-radius: 10px;
  padding: 12px;
  cursor: pointer;
  margin-top: 4px;
}

.btn:hover { filter: brightness(0.95); }

.error {
  color: var(--accent);
  background: var(--accent-soft);
  border-radius: 10px;
  padding: 10px 14px;
  margin-top: 14px;
  font-size: 15px;
}

.dash-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.status { font-size: 14px; color: var(--muted); }

.addform {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
  margin: 20px 0 6px;
  padding: 14px;
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 12px;
}

.in {
  font: inherit;
  font-size: 16px;
  color: var(--ink);
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--card);
  outline: none;
}

.in:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.in-sym { width: 110px; text-transform: uppercase; font-weight: 600; }
.in-num { width: 110px; }
.in-xs { width: 56px; }
.addpct { display: flex; align-items: center; gap: 4px; color: var(--muted); }

.btn-inline { margin: 0; padding: 9px 18px; font-size: 16px; }

.tlist { margin-top: 16px; display: flex; flex-direction: column; gap: 10px; }
/* на широком экране тикеры колонками – сколько влезет (на мобилке по одному) */
@media (min-width: 940px) {
  .tgrid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(470px, 1fr));
    gap: 14px;
    align-items: stretch; /* карточки ряда одной высоты – без рваных зазоров */
  }
  /* разница высот шапок (продать сейчас / вышел / ничего) уходит в зазор
     над панелью графика: графики ряда стоят на одной линии */
  .tgrid .titem { display: flex; flex-direction: column; }
  .tgrid .titem .chartpanel { margin-top: auto; }
}

.trow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--bg);
}

.tmain { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }

.sym { font-weight: 600; font-size: 18px; min-width: 64px; }

.price {
  font-family: "Source Serif 4", Georgia, serif;
  font-size: 22px;
  font-weight: 600;
}

.delta {
  font-size: 15px;
  font-weight: 600;
  padding: 2px 10px;
  border-radius: 999px;
}

.delta.up { color: var(--ok); background: rgba(122, 155, 118, 0.14); }
.delta.down { color: var(--accent); background: var(--accent-soft); }
.delta.hot { outline: 2px solid currentColor; }

.ago { font-size: 13px; color: var(--muted); }

.tside { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

.rowform {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--muted);
}

.rowform label { display: flex; align-items: center; gap: 5px; }
.rowform .in { font-size: 14px; padding: 5px 8px; }
.rowform .in-num { width: 84px; }

.danger:hover { border-color: var(--accent); color: var(--accent); }

.empty { margin-top: 16px; }

.avatar {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--line);
  color: var(--ink);
  font-weight: 600;
  font-size: 16px;
  overflow: hidden;
}

.avatar img { width: 100%; height: 100%; object-fit: contain; background: #efe8d8; }

.avatar-sm { width: 26px; height: 26px; flex-basis: 26px; font-size: 12px; }

.tid { display: flex; flex-direction: column; min-width: 0; flex: 1 1 auto; }
.tid .sym { min-width: 0; }
.symrow { display: flex; align-items: baseline; gap: 7px; flex-wrap: wrap; }
.symprice { font-weight: 600; font-size: 17px; white-space: nowrap; }
.pricenote { font-size: 12px; color: var(--muted); white-space: nowrap; }
.pricenote.stale { color: var(--accent); }
.tname { font-size: 13px; color: var(--muted); max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.tmain { align-items: center; }

.sugwrap { position: relative; }

.suggest {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 20;
  min-width: 360px;
  max-width: 90vw;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: var(--pop-shadow);
  overflow: hidden;
}

.sug {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  cursor: pointer;
  font-size: 15px;
}

.sug:hover, .sug.active { background: var(--accent-soft); }
.sug b { min-width: 56px; }
.sugname { color: var(--ink); flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sugex { color: var(--muted); font-size: 12px; white-space: nowrap; }

@media (max-width: 560px) {
  .suggest { min-width: 82vw; }
}

.navlink { text-decoration: none; }
.navlink:hover { border-color: var(--accent); color: var(--accent); }
/* плашка демо-аккаунта в шапке: видно, что это песочница */
.demo-chip { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); }
/* ✨ умные подборки */
.smart { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--line); }
.smart-head { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.smart-head .s-h2 { margin: 0; }
.smart-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr)); gap: 12px; margin-bottom: 10px; }
.smart-card { border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; background: var(--bg); display: flex; flex-direction: column; gap: 8px; }
.smart-title { font-size: 15px; line-height: 1.35; }
.smart-emoji { font-size: 18px; }
.smart-blurb { font-size: 13px; font-weight: 400; }
.smart-row { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: 13px; }
.smart-row form { margin: 0; }
.smart-have { background: var(--accent-soft); border-color: transparent; color: var(--ink); font-size: 12px; padding: 3px 9px; }
.smart-add { font-size: 12px; padding: 3px 9px; }
.smart-add .plus { color: var(--accent); font-weight: 700; }
.smart-build { margin-top: 2px; }
.smart-pair { display: inline-flex; align-items: center; gap: 2px; }
.smart-hide { border: 0; background: none; color: var(--muted); cursor: pointer; font-size: 12px; padding: 2px 4px; line-height: 1; border-radius: 6px; }
.smart-hide:hover { color: var(--accent); background: var(--accent-soft); }
.smart-more { font-size: 12px; margin-left: 6px; white-space: nowrap; }
.smart-foot { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 4px; }
/* редкость бумаги по капитализации – карточки, строки тем, теги */
.titem.rar-rare { border-left: 4px solid var(--rar-rare-bd); }
.titem.rar-epic { border-left: 4px solid var(--rar-epic-bd); box-shadow: var(--rar-epic-glow); }
.titem.rar-leg { border-left: 4px solid var(--rar-leg-bd); box-shadow: var(--rar-leg-glow); }
.rar-tag { font-size: 11px; font-weight: 600; margin-left: 6px; white-space: nowrap; }
.rar-tag.rar-rare, .rar-word.rar-rare { color: var(--rar-rare); }
.rar-tag.rar-epic, .rar-word.rar-epic { color: var(--rar-epic); }
.rar-tag.rar-leg, .rar-word.rar-leg { color: var(--rar-leg); }
.th-row.rar-rare { border-left: 4px solid var(--rar-rare-bd); }
.th-row.rar-epic { border-left: 4px solid var(--rar-epic-bd); box-shadow: var(--rar-epic-glow); }
.th-row.rar-leg { border-left: 4px solid var(--rar-leg-bd); box-shadow: var(--rar-leg-glow); }
.smart-add.tier-leg .plus, .smart-add.tier-epic .plus, .smart-add.tier-rare .plus { color: inherit; }

/* ⚔️ PoE-профиль: пассивки (снаряжение, урон / защита, резисты и характеристики убраны в v0.83) */
.rpg .h2sub, .s-h2 .h2sub { font-size: 13px; font-weight: 400; margin-left: 8px; }
.rpg .s-h2 { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px; }
/* пассивки – карточками, как ачивки: круглый значок, название, условие и «что сейчас»;
   открытые горят золотом (v0.83, юзер: «надо инфу по ним больше, как с ачивками») */
.pv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); gap: 10px; }
.pv { display: flex; align-items: flex-start; gap: 12px; padding: 12px 14px; border: 1px solid #5c5246; border-radius: 12px;
      background: var(--panel); box-shadow: inset 0 0 30px rgba(0, 0, 0, 0.45); }
.pv.got { border-color: rgba(230, 197, 106, 0.6); }
.pv-e { flex: 0 0 46px; height: 46px; display: flex; align-items: center; justify-content: center; font-size: 22px;
        border-radius: 50%; border: 2px solid #6b5f4f; background: #141210; box-shadow: inset 0 0 12px #000; }
.pv.got .pv-e { border-color: #e6c56a; box-shadow: 0 0 14px rgba(230, 197, 106, 0.5), inset 0 0 12px #000; }
.pv.locked .pv-e { filter: grayscale(1); opacity: 0.6; border-style: dashed; }
.pv-body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.pv-n { font-size: 15px; color: var(--gold); }
.pv.got .pv-n { color: #f0dfb0; }
.pv-d { font-size: 13px; line-height: 1.35; color: var(--muted); }
.pv-s { font-size: 13px; line-height: 1.35; color: var(--ink); }

/* 🗺️ атлас рынка: гильдии (темы) и земли (сектора с отраслями), редкость по размеру */
.atlas .h2sub { font-size: 13px; font-weight: 400; margin-left: 8px; }
.guilds { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr)); gap: 10px; margin: 8px 0 24px; }
.guild {
  display: flex; gap: 12px; align-items: flex-start;
  padding: 12px 14px; border: 1px solid var(--line); border-left-width: 4px; border-radius: 12px;
  background: var(--bg); text-decoration: none; color: inherit;
  transition: transform 0.12s ease, box-shadow 0.12s ease;
}
.guild:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(20, 20, 19, 0.08); }
.guild.com { border-left-color: var(--line); }
.guild.rare { border-left-color: var(--rar-rare-bd); }
.guild.epic { border-left-color: var(--rar-epic-bd); box-shadow: var(--rar-epic-glow); }
.guild.leg { border-left-color: var(--rar-leg-bd); box-shadow: var(--rar-leg-glow); }
.guild-e { font-size: 28px; line-height: 1; }
.guild-body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.guild-name { font-weight: 600; font-size: 15px; }
.guild-rar { font-size: 11px; color: var(--muted); font-weight: 500; margin-left: 6px; }
.guild.leg .guild-rar { color: var(--rar-leg); }
.guild.epic .guild-rar { color: var(--rar-epic); }
.guild.rare .guild-rar { color: var(--rar-rare); }
.guild-blurb { font-size: 12.5px; color: var(--muted); }
.guild-meta { font-size: 12px; color: var(--muted); margin-top: 2px; }
.guild-meta b { color: var(--ink); font-weight: 600; }
.realms { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(340px, 100%), 1fr)); gap: 12px; margin: 8px 0 14px; }
.realm { border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; background: var(--bg); }
.realm-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; font-size: 15px; }
.realm-e { font-size: 22px; }
.realm-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.tier-leg { border-color: var(--rar-leg-bd); color: var(--rar-leg); background: var(--rar-leg-bg); font-weight: 600; box-shadow: var(--rar-leg-glow); }
.tier-epic { border-color: var(--rar-epic-bd); color: var(--rar-epic); background: var(--rar-epic-bg); font-weight: 600; box-shadow: var(--rar-epic-glow); }
.tier-rare { border-color: var(--rar-rare-bd); color: var(--rar-rare); background: var(--rar-rare-bg); }
.tier-leg:hover, .tier-epic:hover, .tier-rare:hover { filter: brightness(0.96); }
.tier-leg .lcount, .tier-epic .lcount, .tier-rare .lcount { color: inherit; opacity: 0.75; }

/* страницы тем/отраслей */
.th-bar { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 14px 0 10px; }
.th-bar .navlink.active { background: var(--accent-soft); border-color: transparent; color: var(--ink); }
.th-bar .th-total { margin-left: 4px; }
.th-build { margin-left: auto; }
.th-build .build { border-color: var(--accent); color: var(--accent); }
.th-list { display: flex; flex-direction: column; gap: 8px; }
.th-row {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto auto;
  grid-template-areas: "logo id spark act" "logo desc desc desc";
  gap: 4px 12px; align-items: center;
  padding: 10px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg);
}
.th-row.core { border-color: var(--accent); }
.th-logo { grid-area: logo; align-self: start; margin-top: 2px; }
.th-id { grid-area: id; display: flex; flex-direction: column; min-width: 0; }
.th-sym { font-weight: 600; }
.th-name { font-weight: 400; color: var(--ink); margin-left: 6px; }
.th-ind { font-size: 12px; }
.th-spark { grid-area: spark; display: inline-flex; align-items: center; gap: 8px; }
.spark-chg { font-size: 12px; font-weight: 600; min-width: 46px; text-align: right; color: var(--muted); }
.spark-chg.up { color: var(--ok); }
.spark-chg.down { color: var(--accent); }
.spark-per { display: block; font-size: 11px; font-weight: 400; color: var(--muted); white-space: nowrap; } /* «за 6 мес» под процентом (v1.11) */
.th-desc { grid-area: desc; font-size: 12.5px; color: var(--muted); line-height: 1.4; }
.th-act { grid-area: act; }
.th-act { display: inline-flex; gap: 4px; align-items: center; }
.th-act form { margin: 0; }
.th-act .smart-hide { font-size: 13px; }
/* тема с разделами (aihealth, v1.06): «Главное», навигация по разделам, строка «при чём тут», капа, «у тебя» */
.th-intro { margin: 4px 0 14px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg); }
.th-intro summary { cursor: pointer; font-weight: 600; }
.th-intro ul { margin: 8px 0 2px; padding-left: 18px; display: flex; flex-direction: column; gap: 6px; }
.th-intro li { font-size: 13.5px; line-height: 1.45; }
.th-intro a { color: var(--accent); text-decoration: none; }
.th-secnav { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 6px; }
.th-sec { margin-top: 18px; scroll-margin-top: 70px; }
.th-sym a { color: inherit; text-decoration: none; }
.th-sym a:hover { color: var(--accent); }
.th-cap { color: var(--ink); font-weight: 600; }
.th-note { color: var(--ink); opacity: 0.88; }
.th-mine { font-size: 12px; color: var(--ok); border-color: var(--ok); white-space: nowrap; }
.th-cats { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 18px; }
/* 🎢 Качели (v1.17): клетки характера движения на странице компании */
.sw { margin: 18px 0 8px; }
.sw-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; }
.sw-head .s-h2 { margin: 0; }
.sw-per { font-size: 13px; }
.sw-cells { display: grid; grid-template-columns: repeat(auto-fit, minmax(148px, 1fr)); gap: 8px; margin-top: 10px; }
.sw-c { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg); cursor: help; }
.sw-l { font-size: 12px; color: var(--muted); }
.sw-v { font-size: 20px; font-weight: 700; color: var(--ink); }
.sw-s { font-size: 12px; color: var(--muted); line-height: 1.35; }
.sw-lvl { font-size: 12px; font-weight: 600; margin-left: 4px; white-space: nowrap; }
.sw-v span { white-space: nowrap; }
.sw-vol.lvl0 .sw-lvl { color: var(--ok); }
.sw-vol.lvl1 .sw-lvl { color: var(--gold, #d8b45a); }
.sw-vol.lvl2 .sw-lvl, .sw-vol.lvl3 .sw-lvl { color: var(--accent); }
.sw-vol.lvl3 { border-color: var(--accent); }
.sw .pos { color: var(--ok); }
.sw .neg { color: var(--accent); }
.sw-hint { font-size: 12px; }
/* 🔮 «если бы с 1000$» при наведении на развороты (v1.21): столбиком, подписи белым, суммы цветом (v1.27, юзер: «раньше
   было в столбик и понятно – вернуть»); на компьютере – справа, нижним краем к верху графика и растёт вверх (не
   закрывает график), на телефоне и в узком окне – под графиком */
.chartpanel { position: relative; }
.sw-fx { pointer-events: none; padding: 7px 11px; background: color-mix(in srgb, var(--card) 97%, transparent);
  border: 1px solid var(--gold); border-radius: 10px; font-size: 12.5px; line-height: 1.5; color: var(--ink); }
.sw-fx-top { position: absolute; z-index: 6; right: 16px; min-width: 300px; max-width: 430px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .45); }
.sw-fx-low { margin-top: 6px; }
.sw-fx-h { color: var(--gold); font-weight: 700; margin-bottom: 3px; }
.sw-fx-rows { display: flex; flex-direction: column; }
.sw-fx-rows span { color: var(--ink); }
.sw-fx .pos { color: var(--ok); }
.sw-fx .neg { color: var(--accent); }
.sw-fx-avg { color: var(--gold); margin-top: 3px; }
.sw-fx-n { font-size: 11px; color: var(--muted); margin-top: 3px; }
.sw-fx-me { margin-top: 5px; padding-top: 4px; border-top: 1px dashed var(--me); color: var(--me); }
.sw-fx-me .sw-fx-h { color: var(--me); }
.sw-fx .sw-fx-me span, .sw-fx .sw-fx-me b, .sw-fx .sw-fx-me .pos, .sw-fx .sw-fx-me .neg { color: var(--me); }
.sw-fx-w { font-size: 11.5px; color: var(--me); opacity: .8; margin: -1px 0 2px 10px; }
.sw-leg { position: static; margin-top: 6px; max-width: none; box-shadow: none; }
.sw-leg div { font-weight: 600; }
.sw-leg b { font-weight: 700; }
/* телефон: график узкий – плашка под ним, а не поверх (иначе закрывает полграфика) */
@media (max-width: 560px) { .sw-fx { position: static; margin-top: 6px; max-width: none; box-shadow: none; } }
.sw-c.sw-hov { cursor: pointer; }
.sw-c.sw-on { border-color: var(--gold); box-shadow: 0 0 0 1px var(--gold) inset; }
.sw-waves li.sw-hov { cursor: pointer; border-radius: 6px; padding: 0 4px; }
.sw-waves li.sw-on { background: rgba(217, 190, 130, 0.12); }
.sw-waves { margin-top: 8px; }
.sw-none, .sw-load { margin: 6px 0; }
.sw-waves summary { cursor: pointer; font-size: 13px; color: var(--muted); }
.sw-waves ol { margin: 6px 0 0; padding-left: 22px; columns: 2; column-gap: 24px; font-size: 13px; line-height: 1.6; }
@media (max-width: 560px) { .sw-waves ol { columns: 1; } .sw-cells { grid-template-columns: 1fr 1fr; } .sw-v { font-size: 17px; } }
/* «с 11.09 по 14.10: 8.60$ → 14.21$ +65.2%» – пришёл с «Рынка → С даты» (v1.09) */
.cp-since { margin-top: 4px; font-size: 14px; }
.cp-since .pos { color: var(--ok); }
.cp-since .neg { color: var(--accent); }
.th-cat .lcount { color: var(--muted); font-weight: 400; }
@media (max-width: 560px) {
  .th-row { grid-template-columns: 30px minmax(0, 1fr) auto; grid-template-areas: "logo id act" "logo spark spark" "logo desc desc"; }
  .th-spark { margin-top: 2px; }
  .th-build { margin-left: 0; }
}
.smart-build .build { border-color: var(--accent); color: var(--accent); }
.smart-build .build:hover { background: var(--accent-soft); }

/* подборки: чип-селект 📁 на карточке, вкладки и форма создания */
.list-sel {
  appearance: none;
  -webkit-appearance: none;
  font: inherit;
  font-size: 12px;
  font-weight: 500;
  color: var(--muted);
  background: var(--card);
  border: 1px dashed var(--line);
  border-radius: 999px;
  padding: 3px 10px;
  cursor: pointer;
  max-width: 170px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  align-self: flex-start;
  margin-top: 4px;
}
.list-sel.has { border-style: solid; color: var(--ink); }
.list-sel:hover { border-color: var(--accent); color: var(--accent); }
.listtabs { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 14px 0 2px; }
.listtabs .navlink.active { background: var(--accent-soft); border-color: transparent; color: var(--ink); }
.listtabs .lcount { color: var(--muted); font-weight: 400; }
.listform { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin: 10px 0 4px; }
.listform .in { font-size: 14px; padding: 6px 10px; width: 200px; }

/* портфельная кривая на /portfolio */
.pchart-sec { margin-top: 16px; }
/* заголовок секции + крупная цифра «за период» в одной строке */
.pchart-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 2px 16px;
  margin-bottom: 8px;
}
.pchart-head .s-h2 { margin: 0; }
.pstats { display: flex; flex-wrap: wrap; }
.pstat { display: inline-flex; align-items: baseline; gap: 8px; font-size: 14px; }
.pstat-l { color: var(--muted); }
.pstat b { font-size: 21px; font-variant-numeric: tabular-nums; letter-spacing: -0.3px; }
.pstat.up b { color: var(--ok); }
.pstat.down b { color: var(--accent); }
/* разделитель логических секций страницы + подпись под заголовком */
.sep { border: 0; border-top: 1px solid var(--line); margin: 22px 0 18px; }
.sechint { margin: -4px 0 12px; font-size: 13px; }

/* язык: чип 🇬🇧 EN (клик = сразу английский) + ▾ с меню языков.
   Флага РФ нет и не будет – решение юзера 03.09. */
.lang-wrap { position: relative; display: inline-flex; align-items: center; }
.me-wrap { position: relative; display: inline-flex; }
.me-btn.on { background: var(--accent-soft); }
.me-menu { min-width: 170px; }
.me-menu a.lang-item { text-decoration: none; }
.me-menu form { margin: 0; }
.lang-wrap form { margin: 0; }
.lang-chip { display: inline-flex; align-items: center; gap: 6px; border-radius: 999px 0 0 999px; }
.lang-more { border-radius: 0 999px 999px 0; margin-left: -1px; padding-left: 7px; padding-right: 9px; }
.lang-more.on { background: var(--accent-soft); }
.lang-chip .flag, .lang-item .flag {
  display: block;
  height: 11px;
  width: auto;
  border-radius: 2px;
  box-shadow: 0 0 0 1px var(--line);
}
.lang-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  min-width: 132px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 5px;
  display: grid;
  gap: 2px;
  z-index: 40;
  box-shadow: var(--pop-shadow);
}
.lang-item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  border: 0;
  background: none;
  padding: 7px 10px;
  border-radius: 8px;
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  text-align: left;
  white-space: nowrap;
  color: var(--ink);
}
.lang-item:hover { background: var(--accent-soft); }

/* тикер: карточка = строка + панель графика */
.titem {
  position: relative;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--bg);
}

.tcorner { display: flex; align-items: center; gap: 8px; height: 100%; }
.tcorner form { display: flex; align-items: center; }
.tcorner .chip {
  display: inline-flex;
  align-items: center;
  background: var(--bg);
  font-size: 12px;
  line-height: 1;
  padding: 0 11px;
  height: 24px;
}
.vsep { width: 1px; height: 15px; background: var(--muted); opacity: 0.4; }
.tdel { padding: 0 8px; color: var(--muted); }
.stale { color: var(--accent); }

/* «продать сейчас»: контурный чип своей строкой под именем компании */
.sellnow {
  background: transparent;
  border: 1px dashed currentColor;
  align-self: flex-start;
  margin-top: 4px;
}

/* модалка подтверждения в стиле сайта */
.modal-ov {
  position: fixed;
  inset: 0;
  z-index: 200;
  background: rgba(0, 0, 0, 0.62);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.modal {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 22px 24px 18px;
  max-width: 460px;
  width: 100%;
  box-shadow: var(--pop-shadow), inset 0 0 40px rgba(0, 0, 0, 0.35);
  background: var(--panel);
}
.modal-title {
  font-family: "Source Serif 4", Georgia, serif;
  font-size: 20px;
  font-weight: 600;
  margin: 0 0 10px;
}
.modal-body {
  font-size: 14px;
  color: var(--muted);
  white-space: pre-line;
  margin: 0 0 18px;
  line-height: 1.5;
}
.modal-btns { display: flex; gap: 10px; justify-content: flex-end; align-items: center; }
.modal-ok { padding: 9px 18px; }

/* плашки статуса позиции (нейтральные цвета — зелёный/коралл заняты P&L) */
.ranges .rng-nav { padding: 6px 11px; font-weight: 600; }
/* серая шапка карточки на всю ширину: слева статус, справа кнопки на сером */
.thead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  height: 36px;
  padding: 0 5px 0 14px;
  background: var(--line);
  border-radius: 12px 12px 0 0;
}
.holdon {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--ink);
  font-size: 13px;
  font-weight: 500;
}
/* статус глазами: в портфеле – клод-фиолетовый, продано – песочный,
   просто наблюдаем – нейтральный серый (как было) */
.thead-own { background: #2f2942; }
.thead-own .holdon { color: #c3b6f0; }
/* сумма позиции не рвётся между словом и числом и не режется многоточием –
   ради неё плашку и переделывали (юзер 18.09) */
.holdsum { white-space: nowrap; }
.thead-sold { background: #3b3022; }
.thead-sold .holdon { color: #d8b98a; }

.titem .trow { border: none; background: transparent; }

.chartpanel { border-top: 1px solid var(--line); padding: 12px 16px 14px; }

/* вертикальные жесты с графика отдаём браузеру (скролл страницы) */
svg.chart { touch-action: pan-y; }
/* долгое нажатие на график не выделяет текст и не зовёт системную лупу iOS –
   у нас своя (юзер 10.09: «выделение текста потушить – будет удобно») */
.chartbox, .chartbox *, .ranges, .ranges *, .pranges, .pranges *, .range-caption {
  -webkit-user-select: none; user-select: none; -webkit-touch-callout: none;
}

.ranges { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
/* «‹ вкладка ›» – один flex-элемент, перенос строки его не разрывает */
.rng-group { display: inline-flex; align-items: center; gap: 6px; }

.ranges button {
  font: inherit;
  font-size: 13px;
  font-weight: 500;
  color: var(--muted);
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 4px 12px;
  cursor: pointer;
}

.ranges button:hover { border-color: var(--accent); color: var(--accent); }
.ranges button.active { background: var(--accent-soft); border-color: transparent; color: var(--ink); }

.chart-note { font-size: 13px; color: var(--muted); margin-left: 6px; }
.range-caption { display: table; font-size: 12px; color: var(--muted); margin-top: 5px; min-height: 15px; white-space: nowrap; }
.allranges { margin: 14px 0 2px; }

/* круглая оранжевая «+» возле заголовка; открыта – поворачивается в «×» */
.titlerow { display: inline-flex; align-items: center; gap: 12px; }
.add-toggle {
  width: 38px;
  height: 38px;
  border: none;
  border-radius: 50%;
  background: var(--accent);
  color: #fff;
  font-size: 24px;
  font-weight: 500;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 0 2px;
  cursor: pointer;
  transition: transform 0.18s ease, filter 0.15s;
}
.add-toggle:hover { filter: brightness(0.93); }
.add-toggle.on { transform: rotate(45deg); }
.allranges-label { font-size: 13px; color: var(--muted); margin-right: 2px; }
.base-chip {
  position: absolute;
  right: 4px;
  top: 6px;
  background: var(--bg);
  border-color: var(--ink); /* в цвет своей линии – одно целое с пунктиром */
  font-size: 12px;
  padding: 4px 9px;
  white-space: nowrap;
  z-index: 2;
}
.basepop {
  margin-top: 10px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 8px 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.chartbox { position: relative; margin-top: 10px; }
.chartbox svg { display: block; width: 100%; }
/* лупа при скрабе пальцем: круг над пальцем с увеличенной копией графика,
   внутри перекрестие и точка на кривой (размер и кратность – в app.js) */
.loupe {
  position: absolute; z-index: 11; border-radius: 50%; overflow: hidden;
  border: 2px solid var(--gold-dim); background: var(--card); pointer-events: none;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.6), 0 12px 28px rgba(0, 0, 0, 0.6), inset 0 0 22px rgba(0, 0, 0, 0.4);
}
.loupe svg { position: absolute; display: block; }
/* табличные цифры: «1» той же ширины, что «9» – числа выглядят одноразмерно */
svg.chart text { font-variant-numeric: tabular-nums; }

.tip {
  position: absolute;
  pointer-events: none;
  background: #0f0d0b;
  color: var(--ink);
  border: 1px solid var(--gold-dim);
  font-size: 13px;
  padding: 5px 10px;
  border-radius: 8px;
  /* естественная ширина, но не шире графика: на мобилке длинный хинт
     («got out here, pocketed…») переносится, а не уезжает за экран */
  width: max-content;
  max-width: calc(100% - 8px);
  white-space: normal;
  line-height: 1.35;
  z-index: 10;
}
/* «продал бы» – отдельный мемный хинт, зелёный/коралловый по знаку */
.tip2 { font-weight: 600; }
.tip2.up { background: var(--ok); color: #fff; }
.tip2.down { background: var(--accent); color: #fff; }
/* 📏 линейка (десктоп): итог между двумя метками – золотая рамка, знак цветом */
.tipm { border: 1px solid var(--gold-dim); font-weight: 500; }
.tipm.up { color: var(--ok); }
.tipm.down { color: var(--accent); }
/* точка сделки под курсором/пальцем: вход – охра, выход – по знаку итога */
.tip3 { font-weight: 600; white-space: pre-line; }
.tip3.in { background: var(--entry); color: #141413; border-color: var(--entry); }
.tip3.out.up { background: var(--ok); color: #fff; border-color: var(--ok); }
.tip3.out.down { background: var(--accent); color: #fff; border-color: var(--accent); }


/* портфель: входы (лоты) позиции */
.lots-toggle.on { background: var(--accent-soft); border-color: transparent; color: var(--ink); }

.lotspanel {
  border-top: 1px solid var(--line);
  padding: 10px 16px 12px 68px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.lot { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.lot .delta { font-size: 13px; }
.lotdate { min-width: 64px; }
.lot .lot-edit-toggle { margin-left: auto; }
.lot-edit-toggle.on { background: var(--accent-soft); border-color: transparent; color: var(--ink); }

.lotform {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 6px 8px;
}
.lotform .in-num { width: 96px; }

@media (max-width: 560px) {
  .lotspanel { padding-left: 16px; }
  .lotform .in-xs2 { flex: 1 1 70px; width: auto; min-width: 0; }
  .lotform .in-num { flex: 1 1 90px; width: auto; min-width: 0; }
  .lotform .in-date { flex: 1 1 40%; width: auto; min-width: 0; }
  .lotform .in-time { flex: 1 1 28%; width: auto; min-width: 0; }
}

/* 🔁 повторный заход: золотой пунктирный чип в строке тикера, хинт – история заходов */
.reentry {
  font-size: 12px; padding: 2px 9px; text-decoration: none; white-space: nowrap;
  color: var(--gold); border: 1px dashed var(--gold-dim); background: rgba(217, 190, 130, 0.08);
}
.reentry.bad { color: var(--accent); border-color: var(--accent); background: var(--accent-soft); }
.reentry:hover { border-style: solid; }

/* 🏢 история по компаниям на странице сделок */
.colist { display: flex; flex-direction: column; gap: 8px; margin: 4px 0 6px; }
.co {
  border: 1px solid var(--line); border-left-width: 4px; border-radius: 12px;
  padding: 10px 14px; background: var(--bg); scroll-margin-top: 16px;
}
.co.rar-rare { border-left-color: var(--rar-rare-bd); }
.co.rar-epic { border-left-color: var(--rar-epic-bd); box-shadow: var(--rar-epic-glow); }
.co.rar-leg { border-left-color: var(--rar-leg-bd); box-shadow: var(--rar-leg-glow); }
.co:target { outline: 2px solid var(--gold); outline-offset: 2px; }
.co-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.co-id { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.co-id b { font-size: 16px; }
.co-name { font-size: 12px; }
.co-sum { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-left: auto; font-size: 13px; }
.co-sum .delta { font-size: 13px; }
.co-sum .chip { font-size: 12px; padding: 3px 9px; }
.co-sum .pos { color: var(--ok); }
.co-sum .neg { color: var(--accent); }
.co-rounds { margin: 8px 0 0; padding-left: 36px; display: flex; flex-direction: column; gap: 6px; }
/* строка захода – сетка «№ | даты · дни | P&L» / «штуки · цены»; одна и та же в хинте и в истории */
.qr {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "n d p" "n q p";
  column-gap: 10px; row-gap: 1px; align-items: center;
  font-size: 12.5px; line-height: 1.3; font-variant-numeric: tabular-nums;
}
.qr-n { grid-area: n; color: var(--gold); font-weight: 600; }
.qr-d { grid-area: d; color: var(--muted); }
.qr-q { grid-area: q; color: var(--ink); }
.qr-p { grid-area: p; font-weight: 600; text-align: right; white-space: nowrap; }
.qr-p small { font-weight: 500; opacity: 0.8; font-size: 11px; }
.qr.up .qr-p { color: var(--ok); }
.qr.down .qr-p { color: var(--accent); }
.qr.open .qr-n { color: var(--muted); }
.qr.open .qr-p { font-weight: 500; }
.qtip-rich { white-space: normal; padding: 9px 12px; min-width: 320px; }
.qtip-rich .qh { color: var(--gold); font-weight: 600; margin-bottom: 6px; }
.qtip-rich .qr + .qr { margin-top: 5px; }
.qtip-rich .qf { margin-top: 7px; padding-top: 6px; border-top: 1px solid rgba(217, 190, 130, 0.25); color: var(--muted); font-size: 12.5px; }
.qtip-rich .qf b.up { color: var(--ok); }
.qtip-rich .qf b.down { color: var(--accent); }
@media (max-width: 560px) {
  .co-sum { margin-left: 0; }
  .co-rounds { padding-left: 0; }
}

/* сделки */
.totals { font-size: 14px; color: var(--muted); display: flex; gap: 8px; flex-wrap: wrap; }
.totals b { font-weight: 600; }
.totals .pos { color: var(--ok); }
.totals .neg { color: var(--accent); }

.in-xs2 { width: 84px; }
.in-date { width: 150px; color: var(--ink); }
.in-time { width: 100px; color: var(--ink); }
.feenote { font-size: 12px; color: var(--muted); flex-basis: 100%; }

.trade {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding: 12px 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--bg);
}

.trade.closed { opacity: 0.75; }
.trade .sym { font-size: 16px; }
.tradeinfo { font-size: 15px; color: var(--ink); }
.tradeinfo .ago { margin-left: 4px; }
.open-chip { background: var(--accent-soft); border-color: transparent; }
.closeform { background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 6px 8px; }

/* журнал */
.loglist { margin-top: 16px; display: flex; flex-direction: column; gap: 4px; }

.logrow {
  display: flex;
  gap: 12px;
  align-items: baseline;
  flex-wrap: wrap;
  padding: 7px 10px;
  border-radius: 8px;
  font-size: 14px;
}

.logrow:nth-child(odd) { background: var(--bg); }

/* портфель */
.bpgrid { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 18px; }

.bigstat {
  flex: 1;
  min-width: 170px;
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 14px 16px;
}

.bigstat .label { font-size: 13px; color: var(--muted); }

.bigstat b {
  display: block;
  font-family: "Source Serif 4", Georgia, serif;
  font-size: 27px;
  font-weight: 600;
  margin-top: 4px;
}

.bigstat b.pos { color: var(--ok); }
.bigstat b.neg { color: var(--accent); }
.bigstat .bs-sub { display: block; margin-top: 3px; font-size: 13px; line-height: 1.35; color: var(--ink); cursor: help; }
.bigstat .bs-sub.muted { color: var(--muted); cursor: default; }

.bpform { display: flex; gap: 6px; margin-top: 10px; }
.bpform .in { font-size: 14px; padding: 6px 8px; width: 110px; }

/* лейблы статов в одну строку — цифры под ними встают на один уровень */
.bigstat { position: relative; }
.bigstat .label { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bp-card .label { padding-right: 34px; }

.bp-edit-toggle { position: absolute; top: 12px; right: 12px; padding: 1px 8px; }
.bp-edit-toggle.on { background: var(--accent-soft); border-color: transparent; color: var(--ink); }

.bp-menu {
  position: absolute;
  top: 40px;
  right: 12px;
  z-index: 20;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: var(--pop-shadow);
  overflow: hidden;
}

.bp-menu button {
  display: block;
  width: 100%;
  font: inherit;
  font-size: 14px;
  padding: 9px 14px;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--ink);
  white-space: nowrap;
  text-align: left;
}

.bp-menu button:hover { background: var(--accent-soft); }

/* ---------- мобильная вёрстка (ориентир — iPhone 14 Pro, 393px) ---------- */
@media (max-width: 560px) {
  .page { padding: 18px 10px 90px; gap: 18px; }
  .card { padding: 20px 14px; border-radius: 14px; }
  h1 { font-size: 28px; }
  .top { flex-wrap: wrap; gap: 8px; }
  .topright { display: flex; flex-wrap: wrap; gap: 6px; }

  /* карточка тикера: имя+кол-во → цена+дельты → кнопки → форма */
  .tmain { row-gap: 8px; }
  .tid { flex: 1 1 auto; min-width: 0; }
  .price { font-size: 20px; }

  .thead { padding-left: 12px; }
  .rowform { font-size: 12px; }
  /* iOS Safari зумит страницу при фокусе в поле с шрифтом < 16px, а после
     зума её можно таскать влево-вправо («зум по умолчанию включён») */
  .rowform .in, .bpform .in { font-size: 16px; }
  .rowform .in-num { width: 74px; }
  .rowform .in-xs { width: 44px; }

  /* формы добавления: тикер во всю ширину, остальное ровными рядами */
  .addform .sugwrap { flex: 1 1 100%; }
  .addform .in-sym { width: 100%; }
  .addform .in-num { flex: 1 1 90px; width: auto; min-width: 0; }
  .addform .in-xs2 { flex: 1 1 70px; width: auto; min-width: 0; }
  .addform .in-date { flex: 1 1 40%; width: auto; min-width: 0; }
  .addform .in-time { flex: 1 1 28%; width: auto; min-width: 0; }
  .btn-inline { margin-left: auto; }

  /* сделки */
  .trade .tside { width: 100%; justify-content: flex-end; }
}

/* ---------- стонкс-страница ---------- */
.s-hero { text-align: center; padding: 8px 0 4px; }
.s-arrow { font-size: 56px; line-height: 1; animation: s-bounce 2.2s ease-in-out infinite; }
@keyframes s-bounce { 0%, 100% { transform: translateY(0) rotate(-6deg); } 50% { transform: translateY(-10px) rotate(6deg); } }
.s-title { letter-spacing: 8px; margin: 6px 0 0; }
.s-sub { color: var(--muted); margin-top: 2px; }
.s-total {
  font-family: "Source Serif 4", Georgia, serif;
  font-size: 56px;
  font-weight: 600;
  margin-top: 10px;
  line-height: 1.1;
}
.s-total.pos { color: var(--ok); }
.s-total.neg { color: var(--accent); }
.s-mood { margin-top: 6px; font-size: 16px; }

.s-facts { margin-top: 18px; display: flex; flex-direction: column; gap: 8px; font-size: 15px; }
.s-fact b { font-weight: 600; }

.s-h2 { font-family: "Source Serif 4", Georgia, serif; font-size: 22px; margin: 26px 0 12px; color: var(--gold); }
.s-ach { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.s-badge {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 3px;
  background: var(--bg);
}
.s-badge-e { font-size: 26px; }
.s-badge-t { font-weight: 600; font-size: 14px; }
.s-badge-d { font-size: 12px; color: var(--muted); }
.s-badge.locked { opacity: 0.38; filter: grayscale(1); }
.s-badge.got { border-color: rgba(122, 155, 118, 0.55); box-shadow: 0 1px 6px rgba(122, 155, 118, 0.18); }

/* ---------- RPG-профиль ---------- */
.r-hero { display: flex; align-items: center; gap: 16px; }
.r-avatar {
  width: 72px; height: 72px; flex: 0 0 72px;
  display: flex; align-items: center; justify-content: center;
  font-size: 44px; border: 2px solid var(--gold-dim); border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #4a4238, #15120f 72%);
  box-shadow: inset 0 0 12px #000, 0 0 12px rgba(217, 190, 130, 0.25);
}
.r-who { flex: 1; min-width: 0; }
.r-name { margin-bottom: 0; font-size: 30px; }
.r-class { color: var(--muted); font-size: 15px; }
.r-rank { margin-top: 6px; font-size: 14px; }
.r-rank .muted { color: var(--muted); font-size: 13px; }
.r-lvl {
  text-align: center; border: 2px solid var(--accent); border-radius: 14px;
  padding: 8px 14px; background: var(--accent-soft);
}
.r-lvl-n { display: block; font-family: "Source Serif 4", Georgia, serif; font-size: 30px; font-weight: 600; line-height: 1; }
.r-lvl-t { font-size: 11px; color: var(--muted); letter-spacing: 2px; }

.r-xpbar { margin-top: 12px; height: 8px; border-radius: 999px; background: rgba(0, 0, 0, 0.45); box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.6); overflow: hidden; }
.r-xpfill { height: 100%; background: linear-gradient(90deg, #8a7a4f, #e6c56a); border-radius: 999px; box-shadow: 0 0 8px rgba(230, 197, 106, 0.5); }

/* сферы жизни (в акциях) и маны (свободные) как внизу экрана PoE: жидкость по доле от всего капитала */
.orbs { margin-top: 18px; display: flex; justify-content: center; gap: 28px; flex-wrap: wrap; }
.orb-wrap { display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: 13px; color: var(--muted); }
.orb {
  width: 118px; height: 118px; border-radius: 50%; position: relative; overflow: hidden;
  border: 4px solid #6b5f4f; background: #0c0a08;
  box-shadow: inset 0 0 22px #000, 0 0 0 2px #2a251f, 0 4px 14px rgba(0, 0, 0, 0.6);
}
.orb-fill { position: absolute; left: 0; right: 0; bottom: 0; transition: height 0.6s ease; }
.orb-fill::before { content: ""; position: absolute; left: -20%; right: -20%; top: -6px; height: 12px; border-radius: 50%; background: rgba(255, 255, 255, 0.18); }
.orb.hp .orb-fill { background: radial-gradient(circle at 50% 120%, #ff8a70, #a8150e 65%, #5a0a06); }
.orb.mp .orb-fill { background: radial-gradient(circle at 50% 120%, #7fb8ff, #1f4fa8 65%, #0e2a60); }
.orb-v { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 17px; color: #fff; text-shadow: 0 1px 3px #000, 0 0 8px rgba(0, 0, 0, 0.8); }
.orb-l { font-weight: 500; }
@media (max-width: 560px) { .orb { width: 96px; height: 96px; } .orb-v { font-size: 15px; } }
.r-track { flex: 1; height: 12px; border-radius: 999px; background: rgba(0, 0, 0, 0.45); box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.6); overflow: hidden; }
.r-track.slim { height: 8px; }
.r-fill { height: 100%; border-radius: 999px; }
.r-fill.hp { background: var(--ok); }
.r-fill.mp { background: #7c93c4; }
.r-fill.qs { background: var(--ok); }

.r-stat-v { min-width: 30px; text-align: right; }

.r-quests { display: flex; flex-direction: column; gap: 10px; }
.r-quest { display: flex; align-items: center; gap: 10px; font-size: 14px; }
.r-quest-n { flex: 0 0 300px; }
.r-quest-d { display: block; margin-top: 2px; font-size: 12.5px; font-weight: 400; color: var(--muted); }
.r-quest.done .r-quest-n { color: var(--ok); }

@media (max-width: 560px) {
  .r-hero { flex-wrap: wrap; }
  .r-quest-n { flex-basis: 100%; }
  .r-quest { flex-wrap: wrap; }
}

/* быстрый тултип (замена браузерного title) */
.qtip {
  position: fixed;
  z-index: 100;
  background: #0f0d0b;
  color: var(--ink);
  border: 1px solid var(--gold-dim);
  font-size: 13px;
  line-height: 1.45;
  padding: 7px 11px;
  border-radius: 8px;
  max-width: 420px;
  white-space: pre-line;
  pointer-events: none;
  box-shadow: var(--pop-shadow);
}
.logts { color: var(--muted); font-size: 13px; min-width: 118px; }
.loguser { font-weight: 600; min-width: 48px; }
.logaction { min-width: 120px; }
.logdetails { color: var(--muted); }
.lognote { font-size: 13px; margin-top: 14px; }

/* ---------- /status: доступность, пульс процесса, инциденты ---------- */
.st h2 { margin: 26px 0 10px; font-size: 18px; }
.st-badge { display: inline-flex; align-items: center; gap: 10px; margin-top: 14px; padding: 10px 16px; border-radius: 12px; font-size: 20px; font-weight: 600; border: 1px solid var(--line); }
.st-badge.ok { color: var(--ok); border-color: rgba(143, 191, 106, 0.4); background: rgba(143, 191, 106, 0.08); }
.st-badge.bad { color: var(--accent); border-color: rgba(229, 138, 99, 0.4); background: var(--accent-soft); }
.st-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--muted); flex: none; display: inline-block; }
.st-badge.ok .st-dot, .st-dot.ok { background: var(--ok); box-shadow: 0 0 8px rgba(143, 191, 106, 0.6); }
.st-badge.bad .st-dot, .st-dot.bad { background: var(--accent); box-shadow: 0 0 8px rgba(229, 138, 99, 0.6); }
.st-comps { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; }
.st-comp { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; font-size: 15px; flex-wrap: wrap; }
.st-comp b { min-width: 120px; }
.st-nums { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.st-num { text-align: center; padding: 10px 6px; border: 1px solid var(--line); border-radius: 10px; }
.st-num b { display: block; font-size: 22px; color: var(--gold); font-variant-numeric: tabular-nums; }
.st-num span { font-size: 13px; }
.st-strip { display: flex; gap: 2px; margin-top: 12px; }
.st-day { flex: 1; height: 28px; border-radius: 2px; background: var(--line); min-width: 0; }
.st-day.ok { background: var(--ok); }
.st-day.warn { background: var(--gold); }
.st-day.down { background: var(--accent); }
.st-since { font-size: 13px; margin-top: 6px; }
.st-periods { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; font-size: 13px; }
.st-periods .chip.on { border-color: var(--gold); color: var(--gold); }
.st-charts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.st-chart { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; min-width: 0; }
.st-chart-h { display: flex; justify-content: space-between; font-size: 13px; color: var(--muted); }
.st-chart-h b { color: var(--ink); font-size: 16px; font-variant-numeric: tabular-nums; }
.st-chart svg { width: 100%; height: 56px; display: block; margin: 6px 0; }
.st-chart polyline { fill: none; stroke: var(--now); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.st-chart line { stroke: var(--accent); stroke-width: 2; vector-effect: non-scaling-stroke; }
.st-chart-f { display: flex; justify-content: space-between; font-size: 12px; }
.st-hint { font-size: 13px; margin-top: 8px; }
.st-inc.ongoing { border-left: 3px solid var(--accent); }
.foot a { color: var(--muted); }
@media (max-width: 700px) {
  .st-charts { grid-template-columns: 1fr; }
  .st-nums { grid-template-columns: repeat(2, 1fr); }
  .st-day { height: 20px; }
  .st-badge { font-size: 17px; }
}

@media (max-width: 560px) {
  /* На телефоне плашке достаётся ~115px при нужных ~190px (кнопка «ту зе мун»
     занимает 124px из 178px правого угла), и обрезалась именно СУММА в конце
     строки – то самое число, ради которого плашку и переделывали (юзер 18.09).
     Сумма уходит своей строкой и видна целиком; название с количеством режется
     многоточием, как и раньше. Карточек без позиции это не касается. */
  .thead-own { height: auto; min-height: 36px; padding-top: 5px; padding-bottom: 5px; }
  .thead-own .tcorner { height: auto; }
  .thead-own .holdsum { display: block; }
  /* на своей строке слово-связка не нужна и съедает место: при широкой кнопке
     «ловим дно ↓» плашке остаётся 101px, а «worth 12 345.67$» просит 108px */
  .thead-own .holdword { display: none; }
}

/* ---------- новости /news (v0.56) ---------- */
.nw-tabs { margin-top: 14px; }
.nw-symrow .navlink { display: inline-flex; align-items: center; gap: 6px; padding: 3px 11px 3px 4px; }
.nw-symrow .navlink.held { border-color: var(--gold-dim); color: var(--ink); }
.avatar-xs { width: 18px; height: 18px; flex: 0 0 18px; font-size: 10px; }
.nw-q { font-size: 13px; margin-top: 12px; }
.nw-q b { color: var(--ink); font-weight: 600; }
.nw-q a { color: var(--muted); }
.nw-day { font-family: "Source Serif 4", Georgia, serif; font-size: 19px; font-weight: 600; color: var(--gold); margin: 24px 0 6px; }
.nw-list { display: flex; flex-direction: column; gap: 2px; }
.nw-row {
  display: grid;
  grid-template-columns: 44px 96px minmax(0, 1fr) auto;
  grid-template-areas: "time syms main react";
  gap: 2px 12px;
  align-items: baseline;
  padding: 8px 10px;
  border-radius: 8px;
}
.nw-row:nth-child(odd) { background: var(--bg); }
.nw-time { grid-area: time; font-size: 13px; color: var(--muted); font-variant-numeric: tabular-nums; }
.nw-syms { grid-area: syms; display: flex; flex-wrap: wrap; gap: 4px 10px; }
.nw-sym { display: inline-flex; align-items: center; gap: 5px; font-size: 14px; font-weight: 600; color: var(--ink); text-decoration: none; }
.nw-sym:hover { color: var(--accent); }
.nw-main { grid-area: main; min-width: 0; display: flex; flex-direction: column; }
.nw-title { color: var(--ink); text-decoration: none; font-size: 15.5px; line-height: 1.4; overflow-wrap: anywhere; }
.nw-title:hover { color: var(--accent); text-decoration: underline; }
.nw-badge {
  display: inline-block; margin-right: 6px; padding: 0 7px; vertical-align: 1px;
  font-size: 11.5px; font-weight: 600; line-height: 1.55; white-space: nowrap;
  border: 1px solid var(--gold-dim); border-radius: 999px; color: var(--gold);
}
.nw-press .nw-badge { border-color: transparent; background: var(--accent-soft); color: var(--ink); }
.nw-src { font-size: 12.5px; color: var(--muted); }
.nw-reacts { grid-area: react; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px; }
.nw-react { font-size: 13px; padding: 1px 8px; white-space: nowrap; font-variant-numeric: tabular-nums; cursor: help; }
.nw-react.flat { color: var(--muted); background: rgba(255, 255, 255, 0.05); }
.nw-react.live { outline: 1px dashed currentColor; outline-offset: -1px; }
.nw-noise { opacity: 0.55; }
.nw-more { font-size: 13px; padding: 5px 10px; }
.nw-more a { color: var(--muted); margin-left: 10px; }
.nw-foot { font-size: 13px; line-height: 1.6; margin-top: 24px; }
.nw-foot a { color: var(--muted); }

@media (max-width: 560px) {
  /* 26 тикеров в строку не влезут: на телефоне лента чипов листается вбок */
  .nw-symrow { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
  .nw-symrow::-webkit-scrollbar { display: none; }
  .nw-symrow .navlink { flex: 0 0 auto; }
  /* время, тикер и % – первой строкой, заголовок – под ними во всю ширину */
  .nw-row {
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-areas: "time syms react" "main main main";
    gap: 4px 10px;
    padding: 9px 8px;
  }
  .nw-title { font-size: 15px; }
}

/* ---------- разбор новости: метка, выжимка, Франк, словарик (v0.57–0.58) ---------- */
.dg-mark { font-size: 12.5px; font-weight: 600; color: var(--muted); }
.dg-about { margin-top: 8px; font-size: 15.5px; line-height: 1.55; }
/* Франк: оригинал слева, перевод справа, блоками; строки пары – на одной высоте */
.frank { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; margin-top: 12px; border-top: 1px solid var(--line); }
.fr-en, .fr-ru { padding: 9px 0; border-bottom: 1px solid var(--line); font-size: 15px; line-height: 1.55; }
.fr-en { color: var(--ink); }
.fr-ru { color: var(--muted); }
.dg-terms { list-style: none; margin-top: 6px; display: flex; flex-direction: column; gap: 5px; font-size: 14px; line-height: 1.5; }
.dg-terms b { color: var(--gold); font-weight: 600; }

@media (max-width: 560px) {
  /* на телефоне две колонки – по ~20 знаков в строке: перевод – под оригиналом в том же блоке */
  .frank { grid-template-columns: 1fr; }
  .fr-en { border-bottom: 0; padding-bottom: 2px; }
  .fr-ru { padding-top: 2px; }
}

/* ---------- разбор в ленте и пояснения терминов (v0.58) ---------- */
/* перевод заголовка – сразу под оригиналом: так учатся читать заголовки */
.nw-ru { color: var(--muted); font-size: 14.5px; line-height: 1.4; margin-top: 1px; overflow-wrap: anywhere; }
.nw-srcl { display: flex; flex-wrap: wrap; align-items: center; gap: 3px 8px; margin-top: 2px; }
.nw-hot { font-size: 12.5px; cursor: help; }
/* заголовок – кнопка «разбор с переводом», оригинал – маленькой кнопкой рядом с изданием */
button.nw-title {
  font: inherit; font-size: 15.5px; line-height: 1.4; color: var(--ink); text-align: left;
  background: none; border: 0; padding: 0; margin: 0; cursor: pointer; overflow-wrap: anywhere;
}
button.nw-title:hover { color: var(--accent); }
button.nw-title[aria-expanded="true"] { color: var(--gold); }
.nw-orig {
  font-size: 12px; line-height: 1.55; padding: 0 8px; white-space: nowrap; text-decoration: none;
  color: var(--muted); border: 1px solid var(--line); border-radius: 999px;
}
.nw-orig:hover { color: var(--ink); border-color: var(--gold-dim); }
/* панель разбора – под заголовком во всю ширину колонки текста */
.nw-ai { grid-column: 3 / -1; margin: 6px 0 4px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--card); }
.nw-ai-h { font-size: 12.5px; }
.nw-ai .dg-about { margin-top: 4px; }
.nw-ai-msg { font-size: 14px; }
.nw-pts { margin: 8px 0 0 18px; display: flex; flex-direction: column; gap: 4px; font-size: 15px; line-height: 1.5; }
.nw-top { margin-top: 18px; padding: 12px 14px; border: 1px solid var(--gold-dim); border-radius: 12px; background: var(--bg); }
.nw-top summary { cursor: pointer; font-family: "Source Serif 4", Georgia, serif; font-size: 19px; font-weight: 600; color: var(--gold); }
.nw-top ul { margin: 8px 0 6px 20px; display: flex; flex-direction: column; gap: 6px; }
.nw-top li { font-size: 15.5px; line-height: 1.5; }
.nw-top-more { font-size: 13px; }
/* внутри «главного» – свёрнутые строки по Reddit и вотчлисту (были на странице дайджеста) */
.nw-sub { margin: 4px 0 6px; }
.nw-sub summary { cursor: pointer; font-size: 14.5px; color: var(--muted); }
.nw-sub summary:hover { color: var(--ink); }
.nw-sub ul { margin-top: 6px; }
.nw-sub li { font-size: 15px; }
.nw-sub a { color: var(--ink); text-decoration: none; }
/* панель разбора: «Выжимка» → «оригинал + перевод» по тапу → «Словарик» */
.nw-sec { margin-top: 10px; font-size: 12px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--gold-dim); }
.nw-sec + .dg-about { margin-top: 2px; }
.nw-fr { margin-top: 12px; border: 1px solid var(--line); border-radius: 8px; padding: 8px 11px; background: var(--bg); }
.nw-fr summary { cursor: pointer; font-size: 14.5px; font-weight: 600; color: var(--gold); }
.nw-fr[open] summary { margin-bottom: 4px; }
.nw-fr-note { font-size: 13px; line-height: 1.5; margin-top: 4px; }
.nw-fr .frank { margin-top: 8px; }
/* [[HALEU]] → пунктир; тап – карточка под строкой (app.js) */
.gl { border-bottom: 1px dotted var(--gold); cursor: pointer; }
.gl:hover, .gl[aria-expanded="true"] { color: var(--gold); }
.gl:focus-visible { outline: 1px solid var(--gold); outline-offset: 1px; }
.gl-card {
  display: block; margin: 6px 0 4px; padding: 7px 11px; border-left: 2px solid var(--gold-dim);
  background: rgba(217, 190, 130, 0.07); border-radius: 0 8px 8px 0;
  font-size: 14px; line-height: 1.5; color: var(--ink); font-weight: 400;
}
.gl-card b { color: var(--gold); font-weight: 600; }
.gl-full { color: var(--muted); }

@media (max-width: 560px) {
  .nw-ai { grid-column: 1 / -1; padding: 9px 10px; }
  button.nw-title { font-size: 15px; }
  .nw-ru { font-size: 14px; }
}

/* ---------- часы биржи (v0.59): «⏳ до закрытия биржи 2 ч 14 мин» ---------- */
.status-row { display: inline-flex; flex-wrap: wrap; align-items: baseline; justify-content: flex-end; gap: 2px 12px; }
.mclock { font-size: 14px; color: var(--muted); white-space: nowrap; }
.mclock b { font-weight: 600; color: var(--ink); font-variant-numeric: tabular-nums; }
.mclock[data-close] { cursor: help; }
/* последний час – акцентом: пора решать, что делать до закрытия */
.mclock.soon, .mclock.soon b { color: var(--accent); }
.s-clock { margin-top: 6px; }

/* ---------- 🌡️ рынок (v0.65): что растёт, что падает – по темам и отраслям ---------- */
.mk-ranges { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 4px; }
.mk-ranges .navlink.active { background: var(--accent-soft); border-color: transparent; color: var(--ink); }
.market .pos { color: var(--ok); }
.market .neg { color: var(--accent); }
.mk-split { margin: 12px 0 6px; font-size: 13px; font-weight: 600; letter-spacing: 0.02em; }
.mk-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); gap: 10px; align-items: start; }
.mk-g { background: var(--card); border: 1px solid var(--line); border-left: 4px solid var(--line); border-radius: 12px; }
.mk-g.up { border-left-color: var(--ok); }
.mk-g.down { border-left-color: var(--accent); }
.mk-g.mine { border-top-color: var(--gold-dim); border-right-color: var(--gold-dim); border-bottom-color: var(--gold-dim); }
.mk-g > summary { display: flex; gap: 10px; padding: 10px 12px; cursor: pointer; list-style: none; }
.mk-g > summary::-webkit-details-marker { display: none; }
.mk-e { font-size: 26px; line-height: 1; }
.mk-body { display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 1; }
.mk-name { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-weight: 600; font-size: 15px; }
.mk-med { font-size: 18px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.mk-meta, .mk-movers, .mk-more { font-size: 12px; color: var(--muted); }
.mk-movers { display: flex; flex-wrap: wrap; gap: 2px 12px; font-variant-numeric: tabular-nums; }
.mk-movers b { font-weight: 600; color: var(--ink); border: 0; background: none; box-shadow: none; }
.mk-held { font-size: 12.5px; color: var(--ink); }
.mk-g[open] .mk-more { display: none; }
.mk-list { list-style: none; margin: 0; padding: 6px 12px 10px; border-top: 1px dashed var(--line); max-height: 420px; overflow-y: auto; }
.mk-list li { display: flex; align-items: baseline; gap: 8px; padding: 3px 0; font-size: 13px; }
.mk-list li.held { background: var(--accent-soft); border-radius: 6px; padding: 3px 6px; margin: 0 -6px; }
.mk-sym { min-width: 56px; font-weight: 600; padding: 0 5px; border: 1px solid transparent; border-radius: 6px; text-align: center; }
.mk-co { flex: 1; min-width: 0; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mk-p { font-variant-numeric: tabular-nums; white-space: nowrap; }
.mk-movers b.tier-rare { color: var(--rar-rare); }
.mk-movers b.tier-epic { color: var(--rar-epic); }
.mk-movers b.tier-leg { color: var(--rar-leg); }
/* v0.65.1: в раскрытой группе – свои сверху, полоска, остальные с «+ следить» */
.mk-st { flex: 0 0 26px; width: 26px; height: 22px; display: inline-flex; align-items: center; justify-content: center; font-size: 13px; }
.mk-follow { border: 1px solid var(--line); border-radius: 6px; background: none; color: var(--muted); font: inherit; font-weight: 600; cursor: pointer; padding: 0; }
.mk-follow:hover { border-color: var(--accent); color: var(--accent); }
.mk-follow:disabled { cursor: wait; }
.mk-list li.mk-sep { display: block; margin: 6px 0 4px; padding: 6px 0 0; border-top: 1px solid var(--line); font-size: 11.5px; color: var(--muted); }
.mk-ranges .mk-toggle { margin-left: auto; }
/* v0.66: строка компании на рынке – ссылка на её страницу */
.mk-link { display: flex; align-items: baseline; gap: 8px; flex: 1; min-width: 0; color: inherit; text-decoration: none; }
.mk-link:hover .mk-co { color: var(--ink); text-decoration: underline; }

/* ---------- страница компании /c/SYM (v0.66) ---------- */
.cp-back { display: inline-block; margin-bottom: 8px; text-decoration: none; font-size: 13px; }
.cp-back:hover { color: var(--accent); }
/* кнопки списков – своей строкой под названием (v0.96: их стало пять, справа в одну строку не влезали – ⚡ уезжала за карточку) */
.cp-head { display: grid; grid-template-columns: 48px 1fr; grid-template-areas: "logo id" "st st"; align-items: center; gap: 8px 14px; margin-bottom: 10px; }
.cp-logo { grid-area: logo; width: 48px; height: 48px; }
.cp-id { grid-area: id; min-width: 0; }
.cp-status { grid-area: st; }
.cp-id h1 { margin: 0; font-size: 24px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cp-id h1 .mk-sym { font-size: 16px; }
.cp-meta { font-size: 13px; margin-top: 2px; }
.cp-status .chip { white-space: nowrap; }
.cp-chart { margin: 6px 0 4px; }
.cp-table-wrap { overflow-x: auto; }
.cp-table { border-collapse: collapse; width: 100%; font-variant-numeric: tabular-nums; font-size: 14px; }
.cp-table th, .cp-table td { padding: 6px 8px; border-bottom: 1px solid var(--line); text-align: right; white-space: nowrap; }
.cp-table thead th { color: var(--muted); font-weight: 500; font-size: 12px; }
.cp-table tbody th { text-align: left; font-weight: 500; }
.cp-table th a { color: inherit; text-decoration: none; }
.cp-table th a:hover, .cp-tags a:hover { color: var(--accent); }
.cp-tags a { color: var(--ink); }
.cp-table thead th { white-space: normal; vertical-align: bottom; }
.cp-table .cp-me { font-weight: 700; font-size: 15px; }
.cp-table thead th.cp-me { color: var(--ink); font-size: 13px; }
.company .pos { color: var(--ok); }
.company .neg { color: var(--accent); }
.cp-sum { margin: 4px 0 6px; line-height: 1.5; }
.cp-tags { font-size: 13px; }
.cp-tags b { color: var(--ink); font-weight: 500; }
@media (max-width: 560px) {
  .cp-table th, .cp-table td { padding: 5px 5px; font-size: 12.5px; }
  .cp-table .cp-me { font-size: 13.5px; }
  .cp-id h1 { font-size: 20px; }
  .cp-head { grid-template-columns: 40px 1fr; grid-template-areas: "logo id" "st st"; }
  .cp-logo { width: 40px; height: 40px; }
  .cp-status { justify-self: start; }
}
/* v0.67: ⚡ Anomalies – переключатель на рынке и вторая цифра в строке */
.mk-ranges .mk-anom.active { background: var(--accent-soft); border-color: transparent; color: var(--ink); }
.mk-anom-rule { margin: 8px 0 2px; font-size: 13px; }
.market .mk-anom-n { font-size: 14px; color: var(--accent); }
.mk-p2 { min-width: 44px; text-align: right; }
/* v0.68: 🎮 GTA VI – общая картина и плитки с четырьмя окнами */
.gt-table td { font-size: 14px; }
.gt-table .gt-end { display: block; font-size: 10.5px; color: var(--muted); font-weight: 400; }
.gt-ud { display: block; font-size: 11px; font-weight: 400; }
.gt-partial { font-style: italic; }
.gt-n { font-size: 12px; font-weight: 400; white-space: nowrap; }
.gt-mini { display: flex; flex-wrap: wrap; gap: 2px 12px; font-size: 12px; font-variant-numeric: tabular-nums; }
.gt-ml { color: var(--muted); }
.gt-mini b { font-weight: 600; }
.gt-list { width: 100%; border-collapse: collapse; font-size: 13px; font-variant-numeric: tabular-nums; border-top: 1px dashed var(--line); }
.gt-list th, .gt-list td { padding: 3px 6px; text-align: right; white-space: nowrap; }
.gt-list thead th { font-size: 11px; color: var(--muted); font-weight: 500; }
.gt-list tbody th { text-align: left; }
.gt-list tbody th .mk-link { display: inline; }
.gt-list tr.held { background: var(--accent-soft); }
.gt-list .gt-sep td { text-align: left; font-size: 11.5px; color: var(--muted); border-top: 1px solid var(--line); padding-top: 6px; }
.gt-scroll { overflow-x: auto; }
@media (max-width: 560px) {
  .gt-table tbody th { white-space: normal; }
  .gt-table th, .gt-table td { padding: 5px 3px; }
  .gt-ud { font-size: 10px; }
  .gt-list th, .gt-list td { padding: 3px 3px; font-size: 12px; }
}
/* v0.69: 📅 С даты – форма даты и сводка групп */
.mk-since-form { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 10px 0 4px; font-size: 14px; }
.mk-since-form input[type=date] { padding: 4px 8px; }
.sn-table tr.sn-up th { color: var(--ok); }
.sn-table tbody th { white-space: normal; }

/* ---------- вотчлист группами + компактный вид (v0.70) ---------- */
.wl-group { margin-top: 18px; }
.wl-head {
  display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px;
  width: 100%; padding: 9px 14px; text-align: left; cursor: pointer;
  background: var(--card); color: var(--ink); font: inherit;
  border: 1px solid var(--line); border-radius: 12px;
}
.wl-head:hover { border-color: var(--gold-dim); }
.wl-e { font-size: 19px; }
.wl-name { font-family: "Source Serif 4", Georgia, serif; font-size: 20px; font-weight: 600; color: var(--gold); }
.wl-n { font-size: 15px; }
.wl-stat { margin-left: auto; display: inline-flex; align-items: baseline; gap: 9px; font-size: 15.5px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.wl-med { font-size: 17px; }
.wl-today { font-size: 14px; }
.wl-caret { color: var(--muted); display: inline-block; transition: transform .15s; }
.wl-group.shut .wl-caret { transform: rotate(-90deg); }
.wl-group.shut .wl-body { display: none; }
.wl-group .pos { color: var(--ok); }
.wl-group .neg { color: var(--accent); }
.wl-body { margin-top: 10px; }
.th-unhide { display: flex; align-items: center; gap: 8px; }

/* строка компактного вида: в подробном её нет; тап – карточка целиком, тап ещё – назад */
.tline { display: none; }
main.compact .tline {
  display: flex; align-items: baseline; gap: 12px; width: 100%;
  padding: 10px 14px; background: transparent; border: 0; border-radius: 12px;
  color: var(--ink); font: inherit; font-size: 16px; text-align: left; cursor: pointer;
  font-variant-numeric: tabular-nums;
}
main.compact .tline:hover { background: var(--accent-soft); }
main.compact .titem:not(.open) > :not(.tline) { display: none; }
main.compact .titem.open .tline { border-bottom: 1px solid var(--line); border-radius: 12px 12px 0 0; }
main.compact .wl-body { gap: 6px; }
.tl-sym { min-width: 64px; font-size: 17px; }
.tl-price { min-width: 86px; }
.tl-day { min-width: 66px; }
.tl-tgt { margin-left: auto; font-size: 15px; white-space: nowrap; }
.tline::after { content: "▾"; color: var(--muted); }
.titem.open .tline::after { content: "▴"; }
.wl-compact.active { border-color: var(--gold-dim); color: var(--gold); }
@media (min-width: 940px) {
  main.compact .tgrid { grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); gap: 8px; }
  main.compact .tgrid .titem.open { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  .wl-head { padding: 8px 12px; }
  /* на телефоне итог – второй строкой, стрелка остаётся справа в первой */
  .wl-caret { order: 1; margin-left: auto; }
  .wl-stat { order: 2; margin-left: 0; width: 100%; }
  main.compact .tline { gap: 8px; padding: 10px 12px; }
  .tl-sym { min-width: 50px; }
  .tl-price { min-width: 70px; }
  .tl-day { min-width: 56px; }
  /* узкий телефон: «до цели» ужимается последним, строка не вылезает за карточку */
  .tl-tgt { font-size: 14px; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
}
@media (max-width: 380px) {
  main.compact .tline { gap: 6px; padding: 9px 10px; font-size: 15px; }
  .tl-sym { min-width: 0; font-size: 16px; }
  .tl-price, .tl-day { min-width: 0; }
}

/* ---------- вотчлист «по движению» + ⚡ аномалии + 🍿 убрать (v0.71) ---------- */
.wl-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; }
.wl-views { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.wl-view.active { border-color: var(--gold-dim); color: var(--gold); background: rgba(217, 190, 130, 0.08); }
.wl-move { display: none; }
main.mv .wl-move { display: block; }
main.mv .wl-group:not(.wl-mvg) { display: none; }
.wl-per { font-size: 14.5px; }
/* строка: в «по движению» вместо «за день» – число за период; у ⚡ вместо цели – рост «до» */
.tl-mv, .tl-anom { display: none; }
main.mv .tl-day { display: none; }
main.mv .tl-mv { display: inline; min-width: 66px; }
main.mv .titem:not([data-anom=""]) .tl-tgt { display: none; }
main.mv .titem:not([data-anom=""]) .tl-anom { display: inline; margin-left: auto; font-size: 14.5px; white-space: nowrap; }
.tl-flag { margin-left: 3px; font-size: 13px; }
.mv-chip { display: none; }
main.mv .mv-chip:not(:empty) { display: inline-block; background: rgba(217, 190, 130, 0.08); }
.anom-chip { font-size: 12.5px; color: var(--gold); border-color: var(--gold-dim); background: rgba(217, 190, 130, 0.10); }
/* 🍿 – кнопка «убрать»: выглядит как значок, рамка – при наведении */
.mk-st.mk-unfollow { border: 1px solid transparent; border-radius: 6px; background: none; padding: 0; font: inherit; font-size: 13px; cursor: pointer; }
.mk-st.mk-unfollow:hover { border-color: var(--accent); }
.mk-unfollow:disabled { cursor: wait; }
@media (max-width: 560px) {
  main.mv .tl-mv { min-width: 56px; }
  main.mv .titem:not([data-anom=""]) .tl-anom { font-size: 13.5px; }
}

/* ---------- 🔎 разборы по запросу (v0.72) ---------- */
.ask-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-top: 8px; font-size: 15px; }
.ask-bar[hidden] { display: none; }
.ask-sum { font-weight: 600; font-variant-numeric: tabular-nums; }
.ask-sum.pos { color: var(--ok); }
.ask-sum.neg { color: var(--accent); }
.ask-ok a { color: var(--gold); }
.asks { margin-top: 8px; }
.ask-form { display: flex; flex-direction: column; gap: 8px; margin: 6px 0 14px; }
.ask-note { width: 100%; min-height: 56px; resize: vertical; font: inherit; font-size: 15px; }
.ask-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.ask-list { display: flex; flex-direction: column; gap: 10px; }
.ask { border: 1px solid var(--line); border-radius: 12px; background: var(--bg); }
.ask > summary { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; padding: 10px 14px; cursor: pointer; list-style: none; }
.ask > summary::-webkit-details-marker { display: none; }
.ask-head { font-weight: 600; font-size: 16px; color: var(--ink); }
.ask-meta { margin-left: auto; font-size: 13.5px; white-space: nowrap; }
.ask-st { font-size: 12.5px; white-space: nowrap; }
.ask-done .ask-st { color: var(--ok); }
.ask-new .ask-st { color: var(--gold); }
.ask-cancelled { opacity: 0.6; }
.ask-body { padding: 0 14px 12px; font-size: 15.5px; line-height: 1.5; }
.ask-body p { margin: 6px 0; }
.ask-q { color: var(--ink); }
.ask-title { font-family: "Source Serif 4", Georgia, serif; font-size: 19px; color: var(--gold); margin: 6px 0; }
.ask-short { font-size: 16px; color: var(--ink); }
.ask-causes, .ask-events, .ask-ul, .ask-src { margin: 4px 0 8px; padding-left: 20px; }
.ask-causes li, .ask-events li, .ask-ul li, .ask-src li { margin: 4px 0; }
.ask-w { display: inline-block; min-width: 64px; font-size: 12.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; }
.ask-causes .w-main .ask-w { color: var(--accent); }
.ask-causes .w-side .ask-w { color: var(--gold); }
.ask-causes .w-unlikely { opacity: 0.7; }
.ask-causes .w-unlikely .ask-w { color: var(--muted); }
.ask-src a { color: var(--gold); word-break: break-word; }
@media (max-width: 560px) {
  .ask-meta { margin-left: 0; white-space: normal; }
  .ask-body { padding: 0 12px 10px; }
}

/* ---------- карточка: ссылка на страницу компании и «чем занимается» (v0.73) ---------- */
.sym-link { color: inherit; text-decoration: none; }
.sym-link:hover { color: var(--gold); text-decoration: underline; text-underline-offset: 3px; }
.sym-link .ext { font-size: 12px; font-weight: 400; color: var(--muted); margin-left: 2px; }
.tdesc {
  margin-top: 4px; font-size: 14.5px; line-height: 1.4; color: var(--ink); opacity: 0.85; cursor: pointer;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.tdesc.full { display: block; -webkit-line-clamp: unset; }
.tdesc:hover { opacity: 1; }

/* ---------- 📈 STONKS в профиле (v0.74: была отдельная вкладка) ---------- */
.st-block { margin: 22px 0 4px; padding-top: 16px; border-top: 1px solid var(--line); }
.st-block .s-title { font-family: "Source Serif 4", Georgia, serif; font-size: 34px; font-weight: 600; line-height: 1.2; color: var(--ink); }
@media (max-width: 560px) { .st-block .s-title { font-size: 28px; letter-spacing: 6px; } }

/* ---------- «Чем занимается»: выжимка из разбора компании (v0.75) ---------- */
.cp-prof p { margin: 6px 0; font-size: 16px; line-height: 1.55; }
.cp-facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(230px, 100%), 1fr)); gap: 8px; margin: 12px 0 6px; }
.cp-facts > div { border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px; background: var(--bg); }
.cp-facts dt { font-size: 13px; color: var(--muted); }
.cp-facts dd { margin: 2px 0 0; font-size: 15.5px; font-weight: 600; color: var(--ink); }
.cp-seg { margin: 4px 0 8px; padding-left: 20px; font-size: 15.5px; line-height: 1.5; }
.cp-seg li { margin: 4px 0; }
.cp-wait { color: var(--gold); font-size: 15px; }

/* ---------- ✂️ выделение части бизнеса: цены до него пересчитаны (v0.76) ---------- */
.mk-spin { margin-left: 3px; font-size: 12px; cursor: help; }
.spin-chip { font-size: 12.5px; color: var(--muted); border-style: dashed; }
.cp-spin { margin-top: 6px; font-size: 14px; color: var(--gold); }

/* ---------- ⭐ разобранные на «Рынке» + управление на странице компании (v0.77) ---------- */
.mk-ask { margin-left: 3px; font-size: 12px; cursor: help; }
.cp-status { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 8px; }
.cp-focus.on { border-color: var(--gold-dim); color: var(--gold); background: rgba(217, 190, 130, 0.1); }
/* у .mk-follow и .an-add – стиль мелких «+» с «Рынка» (24px, без отступов): в шапке компании «⚡ в аномалии» не влезала
   в 24px и уезжала, «+ следить» был без рамки (юзер 10.10). Здесь – обычные чипы */
.cp-status .chip.mk-follow, .cp-status .chip.mk-unfollow, .cp-status .chip.an-add {
  width: auto; height: auto; padding: 5px 12px; border-radius: 999px; font-weight: 500; color: var(--muted); font-size: 13px;
}
.cp-status form { display: inline-flex; }
.cp-chart .basepop { margin: 6px 0 4px; }

/* ---------- ⏰ напоминания в ТГ из формы цели (v0.78) ---------- */
.remind-row { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.in-date { width: 150px; }
.in-time { width: 96px; }
.in-note { width: 220px; max-width: 100%; }
.remind-chip { font-size: 12.5px; color: var(--gold); border-color: var(--gold-dim); }
.cp-remind { margin-top: 8px; display: flex; flex-direction: column; gap: 6px; font-size: 15px; }
.rem-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; }
/* рост за срок графика у шапки компании (v1.20; было – таблица «Рост за сроки», v1.11) */
.cp-perf { margin-top: 4px; font-size: 14px; line-height: 1.6; }
.cp-perf b { font-weight: 700; }
.cp-perf .pos { color: var(--ok); }
.cp-perf .neg { color: var(--accent); }
.cp-perf-g { color: var(--muted); text-decoration: none; font-size: 13px; }
.cp-perf-g:hover { color: var(--gold); }
/* 🎯 таймлайн цели графиком (v1.11.4): цена – светлая линия, цель – оранжевые ступеньки, ● цена при постановке
   со стрелкой до цели и номером, ◆ зелёный – дошла */
.tl-chart { width: 100%; margin: 4px 0 2px; position: relative; }
.tlc-badge { cursor: pointer; }
.tlc-badge .tlc-ha { fill: transparent; stroke: none; }
.tlc-badge:hover circle:not(.tlc-ha) { stroke: var(--accent); stroke-width: 2; }
/* подсказка цели по номеру (v1.11.5): над графиком, под номером */
.tlc-pop { position: absolute; z-index: 30; background: var(--card); border: 1px solid var(--line); border-radius: 10px;
  box-shadow: var(--pop-shadow); padding: 10px 12px; font-size: 13.5px; }
.tlc-pop-h { display: flex; align-items: center; gap: 6px; font-size: 14.5px; }
.tlc-pop-h b { flex: 1 1 auto; }
.tlc-pop-x { background: none; border: 0; color: var(--muted); font-size: 18px; line-height: 1; cursor: pointer; padding: 0 2px; }
.tlc-pop-s { font-size: 12.5px; margin-top: 2px; }
.tlc-pop ul { list-style: none; margin: 6px 0 0; padding: 0; }
.tlc-pop li { display: flex; align-items: baseline; gap: 8px; padding: 3px 0; border-top: 1px solid rgba(127, 127, 127, .12); }
.tlc-pop li .tlog-when { min-width: 72px; font-size: 12px; }
.tlc-pop li.tl-start .tlog-what, .tlc-pop li.tl-end .tlog-what { font-weight: 600; }
.tlc-del { flex: 0 0 auto; margin-left: auto; background: none; border: 0; cursor: pointer; font-size: 13px; padding: 0 2px; opacity: .65; }
.tlc-del:hover { opacity: 1; }
.tl-list > summary { cursor: pointer; font-size: 13px; padding: 4px 0; }
/* цена сейчас и позиция – под названием компании (v1.11.5) */
.cp-now { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin-top: 3px; font-size: 15px; }
.cp-price { font-size: 19px; color: var(--ink); font-variant-numeric: tabular-nums; }
.cp-pos { font-size: 14px; }
.cp-pos b.pos { color: var(--ok); } .cp-pos b.neg { color: var(--accent); }
.tl-chart svg { display: block; overflow: visible; }
.tlc-price { fill: none; stroke: var(--ink); stroke-width: 1.4; opacity: .55; }
.tlc-tgt { stroke: var(--accent); stroke-width: 1.6; stroke-dasharray: 6 4; opacity: .7; }
.tlc-tgt.cur { opacity: 1; stroke-width: 2.2; }
.tlc-arrow { stroke: var(--ink); stroke-width: 1.3; stroke-dasharray: 2 3; }
.tlc-arh { fill: var(--ink); }
.tlc-set { fill: var(--ink); }
.tlc-badge circle { fill: var(--card); stroke: var(--ink); stroke-width: 1.2; }
.tlc-badge text { fill: var(--ink); font-size: 10.5px; font-weight: 700; text-anchor: middle; }
.tlc-hit { fill: var(--ok); stroke: var(--card); stroke-width: 1; }
.tlc-day { stroke: var(--line); stroke-width: 1; opacity: .45; }
.tlc-lbl { fill: var(--muted); font-size: 10.5px; }
.tlc-ap { fill: var(--ink); font-weight: 600; }
.tlc-tl { fill: var(--accent); font-size: 11px; font-weight: 700; }
.tlc-now { fill: var(--now); }
.tlc-nowl { fill: var(--now); font-size: 11px; font-weight: 700; }
.tl-legend { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 12px; margin: 4px 0 12px; }
.tl-legend i { display: inline-block; vertical-align: middle; margin-right: 5px; font-style: normal; }
.tl-legend .lg-price { width: 16px; height: 2px; background: var(--ink); opacity: .6; }
.tl-legend .lg-tgt { width: 16px; border-top: 2px dashed var(--accent); }
.tl-legend .lg-hit { width: 8px; height: 8px; background: var(--ok); transform: rotate(45deg); margin: 0 7px 0 3px; }
.tl-legend .lg-now { width: 7px; height: 7px; border-radius: 50%; background: var(--now); }
.tl-num, .tl-legend .lg-set { display: inline-block; min-width: 18px; height: 18px; border: 1px solid var(--ink); border-radius: 50%;
  font-size: 11px; line-height: 16px; text-align: center; font-weight: 700; color: var(--ink); margin-right: 4px; }
/* 🎯 история цели таймлайном (v1.11): отрезок на цель, точки по времени, ✕ у строки */
.tl-ep { border-left: 2px solid var(--line); padding: 2px 0 2px 14px; margin: 8px 0 16px 5px; }
.tl-ep.tl-cur { border-left-color: var(--accent); }
.tl-head { font-size: 15px; }
.tl-ext { font-size: 13px; margin-top: 1px; }
.tl-items { list-style: none; margin: 6px 0 0; padding: 0; font-size: 14.5px; }
.tl-it { position: relative; display: flex; align-items: baseline; gap: 10px; padding: 3px 0; }
.tl-it::before { content: ""; position: absolute; left: -20px; top: .62em; width: 8px; height: 8px; border-radius: 50%; background: var(--line); }
.tl-start::before, .tl-end::before { background: var(--ink); }
.tl-calc::before, .tl-bot::before { background: var(--accent); }
.tl-end .tlog-what, .tl-start .tlog-what { font-weight: 600; }
.tlog-when { flex: 0 0 auto; font-variant-numeric: tabular-nums; font-size: 12.5px; min-width: 78px; }
.tlog-what { flex: 0 1 auto; min-width: 0; } /* не растягивать: ✕ сразу за текстом, а не у правого края широкого экрана */
.tlog-note { font-style: italic; font-weight: 400; }
.tlog-del { flex: 0 0 auto; background: none; border: 0; color: var(--muted); cursor: pointer; font-size: 13px; padding: 2px 6px; }
.tlog-del:hover { color: var(--accent); }
.tlog-more summary { cursor: pointer; padding: 6px 0; }
@media (max-width: 560px) { .in-note { width: 100%; } }

/* ---------- сделки и журнал – внизу профиля (v0.78) ---------- */
.pr-archive { display: flex; flex-direction: column; gap: 8px; margin-bottom: 8px; }
.pr-arch-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 15px; }

/* ---------- вход на страницу компании из карточки и компактной строки (v0.78.2) ---------- */
.cp-more { display: inline-block; margin-top: 6px; font-size: 14.5px; color: var(--gold); text-decoration: none; }
.cp-more:hover { text-decoration: underline; text-underline-offset: 3px; }
.tl-go { padding: 0 6px; color: var(--gold); font-size: 17px; line-height: 1; border-radius: 6px; }
.tl-go:hover { background: rgba(217, 190, 130, 0.15); }

/* ---------- ⚡ аномальный вотчлист (v0.79) ---------- */
.anom-add-form { margin-top: 10px; }
.an-msg { font-size: 14px; }
.an-cands { margin: 14px 0 6px; border: 1px solid var(--line); border-radius: 12px; background: var(--card); padding: 10px 14px; }
.an-cands > summary { cursor: pointer; font-family: "Source Serif 4", Georgia, serif; font-size: 19px; font-weight: 600; color: var(--gold); list-style: none; }
.an-cands > summary::-webkit-details-marker { display: none; }
.an-cands .h2sub { font-family: Inter, system-ui, sans-serif; font-size: 13px; font-weight: 400; }
.an-ch { flex: 0 0 100%; font-size: 14px; font-weight: 600; color: var(--ink); }
.an-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.an-chip { display: inline-flex; align-items: baseline; gap: 6px; padding: 4px 6px 4px 10px; border: 1px solid var(--line); border-radius: 999px; background: var(--bg); font-size: 14px; font-variant-numeric: tabular-nums; }
.an-chip a { color: var(--ink); text-decoration: none; }
.an-chip a:hover b { color: var(--gold); text-decoration: underline; }
.an-chip.listed { border-color: var(--gold-dim); }
/* 🔮 предсказания Jev (v1.28) */
.cp-pred { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin: 10px 0 2px; font-size: 13.5px; }
.cp-pred-h { color: var(--gold); font-weight: 600; }
.cp-pred .pos, .pr-list .pos, .pr-stats .pos { color: var(--ok); }
.cp-pred .neg, .pr-list .neg, .pr-stats .neg { color: var(--accent); }
.cp-pred a { text-decoration: none; }
.pr-stats { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 10px; }
.pr-list { display: flex; flex-direction: column; gap: 8px; }
.pr-row { padding: 10px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg); }
.pr-id a { color: var(--ink); text-decoration: none; }
.pr-id a:hover b { color: var(--gold); }
.pr-src { font-size: 11.5px; padding: 1px 8px; margin-left: 6px; }
.pr-meta { font-size: 12.5px; margin-top: 2px; }
.pr-hs { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 6px; font-size: 13.5px; }
.pr-h.ok { background: rgba(143, 191, 106, .10); border-radius: 6px; padding: 0 4px; }
.pr-h.bad { background: rgba(217, 119, 87, .10); border-radius: 6px; padding: 0 4px; }
.pr-m { font-size: 12px; margin-top: 4px; }
/* мини-график предсказания (v1.32) */
.pr-from { font-size: 12.5px; margin-left: 6px; }
.pr-now { font-size: 13px; margin-left: 6px; }
/* v1.33: строки моделей под графиком – Jev золотом, Claude бирюзой */
.pr-chart { margin-top: 4px; }
@media (max-width: 560px) {  /* на телефоне график – во всю карточку: без рамки и боковых отступов */
  .preds .pr-row { padding: 10px 8px; }
  .pr-chart { border: 0; background: none; }
  .pr-chart .chartpanel { padding: 4px 0 0; }
}
.pr-who { margin-top: 8px; padding-left: 10px; border-left: 3px solid var(--gold); }
.pr-who.pr-claude { border-left-color: var(--claude); }
.pr-wh { font-size: 13.5px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; }
.pr-wl { color: var(--gold); }
.pr-claude .pr-wl, .pr-wl.pr-claude { color: var(--claude); }
.pr-who .pr-hs { margin-top: 3px; gap: 3px 12px; font-size: 13.5px; }
.pr-note { font-size: 13px; color: var(--ink); opacity: .85; margin-top: 4px; line-height: 1.45; }
.pr-hist { font-size: 12.5px; margin-top: 8px; display: flex; flex-wrap: wrap; gap: 2px 12px; }
.pr-stats .pr-wl { align-self: center; margin-right: 4px; }
.pr-score { display: flex; flex-direction: column; gap: 6px; margin: 4px 0 6px; }
.pr-sc { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; padding: 8px 12px; border: 1px solid var(--line);
  border-left: 3px solid var(--gold); border-radius: 10px; background: var(--bg); font-size: 14px; }
.pr-sc.pr-claude { border-left-color: var(--claude); }
.pr-sc.pr-argon, .pr-who.pr-argon { border-left-color: var(--argon); }
.pr-argon .pr-wl, .pr-wl.pr-argon { color: var(--argon); }
.pr-sc.pr-codex, .pr-who.pr-codex { border-left-color: var(--codex); }
.pr-codex .pr-wl, .pr-wl.pr-codex { color: var(--codex); }
.pr-big { font-size: 17px; color: var(--ink); }
.pr-sc-f { font-size: 13px; }
.pr-score .pos, .pr-tab .pos { color: var(--ok); }
.pr-score .neg, .pr-tab .neg { color: var(--accent); }
.pr-tab { border-collapse: collapse; font-size: 14px; margin-bottom: 6px; }
.pr-tab th, .pr-tab td { padding: 4px 14px 4px 0; text-align: left; border-bottom: 1px solid var(--line); }
.pr-tab a { color: var(--ink); text-decoration: none; }
.pr-pts { color: var(--ok); }
.cp-pred { display: block; }
/* 🏆 таблица моделей (v1.39): аватар, место, % угаданного; клик – страница модели */
.pr-board { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.pr-pl { position: relative; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 12px 8px 10px;
  border: 1px solid var(--line); border-top: 3px solid var(--gold); border-radius: 12px; background: var(--bg);
  color: var(--ink); text-decoration: none; text-align: center; }
.pr-pl:hover { border-color: var(--gold); }
.pr-pl.pr-claude { border-top-color: var(--claude); } .pr-pl.pr-argon { border-top-color: var(--argon); } .pr-pl.pr-codex { border-top-color: var(--codex); }
.pr-place { position: absolute; top: 6px; left: 10px; font-size: 20px; color: var(--muted); }
.pr-ava { width: 64px; height: 64px; border-radius: 16px; }
.pr-ava-big { width: 96px; height: 96px; border-radius: 22px; flex: none; }
.pr-pl .pr-big { font-size: 22px; }
.pr-pl-s { font-size: 12.5px; }
.pr-wl.pr-jev { color: var(--gold); }
.pr-lead { margin-right: 14px; white-space: nowrap; }
.pr-me { display: flex; gap: 16px; align-items: center; margin: 4px 0 8px; }
.pr-me h1 { margin: 0; }
.pr-me-s { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 6px; font-size: 14px; align-items: baseline; }
.titem .pr-block { padding: 6px 16px 12px; border-top: 1px solid var(--line); }
.titem .pr-block .pr-who:first-child { margin-top: 4px; }
.pr-chart .pr-id { padding: 10px 16px 0; }
.cp-pred .pr-who:first-child { margin-top: 0; }
.cp-pred-f { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; margin-top: 8px; }
/* 🎢 Качели каталога (v1.24): цвет уровня волатильности */
.vo-ws { display: flex; gap: 6px; flex-wrap: wrap; margin: 4px 0 8px; }
.vo-l0 { color: var(--ok); }
.vo-l1 { color: var(--gold); }
.vo-l2 { color: #e09a5f; }
.vo-l3 { color: var(--accent); font-weight: 700; }
.vo-x { font-size: 11.5px; white-space: nowrap; }
.an-seen { border: 0; background: none; cursor: pointer; font-size: 12px; padding: 0 2px; opacity: .45; }
.an-seen:hover { opacity: 1; }
.an-journal .an-chip { font-size: 13px; padding: 3px 9px; }
.an-chip.an-j-rev_down, .an-chip.an-j-rev_up { border-color: var(--gold-dim); }
.an-j-a { font-size: 11px; }
.an-chip .pos { color: var(--ok); }
.an-chip .neg { color: var(--accent); }
.an-add { border: 1px solid var(--line); border-radius: 999px; background: none; color: var(--muted); font: inherit; font-weight: 600; width: 24px; height: 22px; padding: 0; cursor: pointer; }
.an-add:hover { border-color: var(--gold); color: var(--gold); }
.an-in { color: var(--gold); font-weight: 600; padding: 0 6px; }
.mk-st.mk-anom { border: 1px solid transparent; border-radius: 6px; background: none; padding: 0; font: inherit; font-size: 13px; cursor: pointer; opacity: 0.55; }
.mk-st.mk-anom:hover { opacity: 1; border-color: var(--gold-dim); }
.an-fail { border-color: var(--accent) !important; }
/* строка аномалии на карточке ⚡ списка */
.an-line { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin-top: 6px; font-size: 14.5px; color: var(--ink); }
.an-line.an-split { color: var(--gold); }
.an-line.an-drop { color: var(--accent); }
.an-line.an-jump { color: var(--ok); }
.an-ask-link { color: var(--gold); font-weight: 600; text-decoration: none; }
.an-ask-link:hover { text-decoration: underline; }
.an-ask-wait { color: var(--muted); font-size: 14px; }
.an-ask { font-size: 13px; }
.wl-move-btn { padding: 0 8px; }
.anom-add-form .in-sym { width: 220px; max-width: 100%; }

/* ---------- ⚡ аномалии по областям (v0.80) ---------- */
.an-areas { margin: 8px 0 12px; }
.an-arow { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin: 4px 0 6px 6px; }
.an-aname { font-size: 14px; color: var(--muted); min-width: 150px; }
.an-kinds { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 10px 0 0; font-size: 15px; color: var(--muted); }
@media (max-width: 560px) { .an-aname { min-width: 0; width: 100%; } }

/* ---------- ⚡ кандидаты: плитки областей, нажал – кто именно (v0.80.1) ---------- */
.an-abar { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; margin: 10px 0 8px; }
.an-abar .mk-toggle { margin-left: auto; }
.an-asub { font-size: 13.5px; }
.an-grid { margin-bottom: 4px; }
.an-wk { font-size: 12px; font-weight: 400; color: var(--muted); }
.an-counts { display: flex; flex-wrap: wrap; gap: 2px 12px; font-size: 14px; font-variant-numeric: tabular-nums; }
.an-cands .pos { color: var(--ok); }
.an-cands .neg { color: var(--accent); }
.an-abody { padding: 6px 12px 10px; border-top: 1px dashed var(--line); }
.an-abody .an-arow { flex-direction: column; align-items: stretch; gap: 6px; margin: 6px 0 8px; }
.an-grid > details[open] { grid-column: 1 / -1; } /* раскрытая область – на всю ширину: фишки рядами, а не столбиком */

/* ---------- ⚡ за какой период – датами (v0.80.2) ---------- */
/* ⚡ сроки – одной строкой чипов, объяснение – в подсказке (v1.12) */
.an-pchips { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 2px; }
.an-pchips .chip { font-size: 12.5px; cursor: help; }
.an-cards-h { margin: 18px 0 4px; font-size: 14px; color: var(--muted); }
.an-periods { display: flex; flex-direction: column; gap: 3px; margin: 8px 0 4px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg); font-size: 14.5px; line-height: 1.45; }
.an-periods b { color: var(--gold); font-weight: 600; }
.an-per { font-weight: 400; font-size: 13px; }

/* ---------- 🎯 цель в портфеле (v0.82) ---------- */
.tgt-chip { display: inline-flex; align-items: center; gap: 4px; padding: 2px 10px; border: 1px dashed var(--gold-dim); border-radius: 999px; font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--gold); cursor: help; }
/* цель – нейтрально, без зелёного и красного: это ориентир, а не результат (юзер 06.10) */
.tgt-bar { display: inline-block; width: 56px; height: 6px; border-radius: 3px; background: var(--line); overflow: hidden; vertical-align: middle; }
.tgt-bar i { display: block; height: 100%; background: var(--gold); }
.tgt-chip.none { color: var(--muted); border-color: var(--line); font-weight: 500; text-decoration: none; cursor: pointer; }
.tgt-chip.none:hover { color: var(--gold); border-color: var(--gold-dim); }

/* ---------- портфель ровной сеткой: вход / сейчас / стоимость / P&L / цель (v0.82.1) ---------- */
.pf-grid { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; }
/* профиль v1.16: таблица позиций со сроком */
.pr-pos { margin-top: 18px; }
.pr-pranges { margin: 4px 0 8px; }
.pr-ptab-wrap { overflow-x: auto; }
.pr-ptab { border-collapse: collapse; font-size: 14px; font-variant-numeric: tabular-nums; min-width: 560px; width: 100%; }
.pr-ptab th, .pr-ptab td { padding: 7px 8px; text-align: right; white-space: nowrap; border-bottom: 1px solid var(--line); }
.pr-ptab th:first-child, .pr-ptab td:first-child { text-align: left; padding-left: 0; }
.pr-ptab thead th { color: var(--muted); font-weight: 500; font-size: 12px; }
.pr-ptab td small { font-size: 11.5px; }
.pr-ptab td.up { color: var(--ok); } .pr-ptab td.down { color: var(--accent); }
.pr-ptab .sym-link { color: var(--ink); text-decoration: none; }
.pr-ptab .delta { font-size: 13px; padding: 1px 7px; }
@media (max-width: 560px) {  /* телефон: мельче и % под ценой – чтобы P&L был виден без прокрутки вбок */
  .pr-ptab { min-width: 0; font-size: 12.5px; }
  .pr-ptab th, .pr-ptab td { padding: 6px 4px; }
  .pr-ptab td small { display: block; }
  .pr-ptab .delta { font-size: 12px; padding: 1px 5px; }
}
/* профиль v1.14: входы по открытым позициям, журнал внизу */
.pr-lots, .pr-journal { margin-top: 18px; }
.pr-lot { padding: 10px 14px; margin: 8px 0; }
.pr-lot-h { font-size: 15px; margin-bottom: 6px; }
.pr-lot-h .tname { color: var(--muted); }
.pr-jr-more > summary { cursor: pointer; padding: 6px 0; font-size: 13px; }
.pf-moved { margin-top: 14px; }
/* блоки портфеля по темам (v1.13): полоса долей, легенда, шапка блока над его позициями */
.pg0 { background: #d9be82; } .pg1 { background: #7fa3d1; } .pg2 { background: #8fbf6a; } .pg3 { background: #E58A63; }
.pg4 { background: #a58fd8; } .pg5 { background: #5fb3a8; } .pg6 { background: #d58fb4; } .pg7 { background: #a1937f; }
.pf-alloc { margin: 16px 0 4px; }
.pf-abar { display: flex; height: 14px; border-radius: 7px; overflow: hidden; background: var(--line); }
.pf-abar i { display: block; height: 100%; }
.pf-abar i + i { border-left: 2px solid var(--card); }
.pf-alegend { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 8px; font-size: 14px; }
.pf-al { color: var(--ink); text-decoration: none; white-space: nowrap; }
.pf-al i, .pf-gname i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 6px; vertical-align: middle; }
.pf-group { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 14px;
  margin: 14px 2px 0; padding-bottom: 4px; border-bottom: 1px solid var(--line); }
.pf-group:first-of-type { margin-top: 4px; }
.pf-gname { font-family: "Source Serif 4", Georgia, serif; font-size: 18px; font-weight: 600; color: var(--gold); }
.pf-gname a { color: inherit; text-decoration: none; }
.pf-gnums { font-size: 14.5px; font-variant-numeric: tabular-nums; }
.pf-gnums b { font-size: 16px; }
.pf-gshare { color: var(--muted); margin: 0 6px; }
.pf-gnums .pos { color: var(--ok); } .pf-gnums .neg { color: var(--accent); }
/* за срок графика «портфель во времени» (v1.15–v1.16): в ячейке P&L – либо за всё время, либо за срок */
.pf-pnl .pf-all, .pf-pnl .pf-per { display: contents; }
.pf-pnl [hidden], .pf-gnums [hidden] { display: none !important; }
.pf-gper.pos, .pf-tper.pos { color: var(--ok); }
.pf-gper.neg, .pf-tper.neg { color: var(--accent); }
.pf-gper { margin-left: 10px; font-size: 13px; }
/* колонки без «auto»: каждая строка – своя сетка, ширины зависят только от ширины страницы,
   поэтому столбцы у всех строк и у шапки совпадают */
.pf-row { display: grid; grid-template-columns: minmax(150px, 1.5fr) minmax(64px, 0.6fr) minmax(84px, 0.8fr) minmax(112px, 1fr) minmax(100px, 0.9fr) minmax(104px, 0.9fr) minmax(200px, 1.7fr) 100px; align-items: center; gap: 12px; padding: 12px 16px; }
.pf-head { padding: 0 17px; font-size: 13px; color: var(--muted); } /* +1px – рамка карточки */
.pf-head span[title] { cursor: help; }
.pf-group + .pf-head { margin-top: -2px; font-size: 12px; } /* подписи – у каждого блока (v1.16.1) */
.pf-co { display: flex; align-items: center; gap: 12px; min-width: 0; }
.pf-co .tid { min-width: 0; }
.pf-v { font-size: 15.5px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.pf-v small { display: block; margin-top: 2px; font-size: 12.5px; font-weight: 500; }
.pf-entry { color: var(--ink); cursor: help; }
.pf-now { font-weight: 600; }
.pf-now.up { color: var(--ok); }
.pf-now.down { color: var(--accent); }
.pf-now small { opacity: 0.9; }
.pf-val { font-family: "Source Serif 4", Georgia, serif; font-size: 17px; font-weight: 600; color: var(--ink); }
.pf-pnl .delta { display: inline-block; }
.pf-pnl small.pos { color: var(--ok); }
.pf-pnl small.neg { color: var(--accent); }
.pf-tgt { white-space: normal; display: flex; flex-direction: column; align-items: flex-start; gap: 3px; }
.pf-tgt-main { font-weight: 600; color: var(--gold); cursor: help; }
.pf-tgt-left { font-size: 13.5px; color: var(--ink); opacity: 0.85; cursor: help; }
.pf-tgt-prog { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--muted); cursor: help; }
.pf-act { justify-self: end; }
/* уже 1150px шапка не влезает: подпись над каждой цифрой, пять цифр в ряд, ниже цель и «входы» */
@media (max-width: 1150px) {
  .pf-head { display: none; }
  .pf-row { grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: start; row-gap: 12px; }
  .pf-co { grid-column: 1 / -1; }
  .pf-tgt { grid-column: 1 / -2; }
  .pf-act { align-self: end; }
  .pf-v::before { content: attr(data-l); display: block; margin-bottom: 3px; font: 400 12.5px "Inter", -apple-system, system-ui, sans-serif; color: var(--muted); }
}
@media (max-width: 640px) {
  .pf-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pf-tgt, .pf-act { grid-column: 1 / -1; }
  .pf-act { justify-self: start; }
}

/* ---------- 🤝 сделки внизу «Портфеля» – отдельным блоком (v0.83, была страница /trades) ---------- */
.pf-trades { margin-top: 44px; padding: 22px 20px 18px; border: 1px solid var(--line); border-top: 3px solid var(--gold-dim);
             border-radius: 14px; background: rgba(0, 0, 0, 0.22); scroll-margin-top: 16px; }
.pf-trades-h { font-family: "Source Serif 4", Georgia, serif; font-size: 24px; margin: 0 0 6px; color: var(--gold); }
.pf-trades .addform { margin-top: 10px; }
.pf-trades .s-h2 .h2sub { display: block; margin: 4px 0 0; font: 400 13px/1.4 "Inter", -apple-system, system-ui, sans-serif; }
@media (max-width: 560px) { .pf-trades { margin-top: 32px; padding: 16px 12px; } }

/* ---------- 🏛️ госконтракты США по штатам (v0.84) ---------- */
.gc-ranges { margin: 6px 0 14px; }
.gc-win { margin-left: 8px; font-size: 13.5px; color: var(--muted); }
.gc-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(320px, 1fr); gap: 18px; align-items: stretch; }
.gc-left { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.gc-mapbox { position: relative; border: 1px solid var(--line); border-radius: 14px; background: rgba(0, 0, 0, 0.2); padding: 10px; }
.gc-map { min-height: 240px; }
.gc-map svg { display: block; width: 100%; height: auto; }
.gc-map path { fill: #2a241e; stroke: #100d0a; stroke-width: 0.8; cursor: pointer; transition: fill 0.15s; }
.gc-map path.nodata { fill: #1d1915; }
.gc-map path:hover { stroke: #f0dfb0; stroke-width: 1.6; }
.gc-map path.sel { stroke: #fff3c4; stroke-width: 2.6; }
.usm-lb text { font: 700 15px "Inter", -apple-system, system-ui, sans-serif; fill: #fff6e0; stroke: rgba(0, 0, 0, 0.75); stroke-width: 3px;
               paint-order: stroke; text-anchor: middle; pointer-events: none; }
.gc-tip { position: absolute; z-index: 5; pointer-events: none; padding: 6px 10px; border: 1px solid var(--gold-dim); border-radius: 8px;
          background: #141210; font-size: 13.5px; line-height: 1.35; white-space: nowrap; }
.gc-legend { display: flex; align-items: center; gap: 8px; margin-top: 8px; font-size: 12.5px; color: var(--muted); }
.gc-grad { flex: 0 1 180px; height: 8px; border-radius: 4px; background: linear-gradient(90deg, rgb(66, 57, 47), rgb(242, 196, 90)); }
/* высота панели = высота левой колонки (contain: size – содержимое её не растягивает), прокрутка внутри */
.gc-panel { contain: size; overflow: auto; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: var(--bg); }
.gc-ph { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.gc-ph h2 { margin: 0; font-family: "Source Serif 4", Georgia, serif; font-size: 22px; color: var(--gold); }
.gc-big { margin: 6px 0 2px; font-family: "Source Serif 4", Georgia, serif; font-size: 28px; font-weight: 600; }
.gc-share { margin: 0 0 6px; font-size: 13.5px; }
.gc-sec h3 { margin: 16px 0 8px; font-size: 15.5px; color: var(--gold); }
.gc-sec h3 small { font-size: 12.5px; font-weight: 400; }
.gc-sec ol { display: flex; flex-direction: column; gap: 7px; margin: 0; padding-left: 22px; }
.gc-sec li { font-size: 14px; }
.gc-sec li::marker { color: var(--muted); font-size: 12.5px; }
.gc-li, .gc-aw-top { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.gc-li b, .gc-aw-top b { font-variant-numeric: tabular-nums; white-space: nowrap; }
.gc-n { min-width: 0; }
.gc-tk { margin-left: 6px; padding: 1px 7px; border: 1px solid var(--gold-dim); border-radius: 999px; color: var(--gold); font-size: 12px;
         font-weight: 600; text-decoration: none; white-space: nowrap; }
.gc-tk:hover { border-color: var(--gold); }
.gc-aw-meta { margin-top: 2px; font-size: 12.5px; color: var(--muted); }
.gc-aw-meta a { color: var(--gold); }
.gc-aw-d { margin-top: 2px; font-size: 12.5px; color: var(--ink); opacity: 0.8; overflow-wrap: anywhere; }
.gc-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(340px, 100%), 1fr)); gap: 6px 14px; }
.gc-row { display: grid; grid-template-columns: 26px minmax(0, 1fr) 80px auto; align-items: center; gap: 8px; padding: 7px 10px;
          border: 1px solid var(--line); border-radius: 10px; background: var(--bg); color: var(--ink); font: inherit; font-size: 14px;
          text-align: left; cursor: pointer; }
.gc-row:hover, .gc-row.sel { border-color: var(--gold-dim); background: rgba(217, 190, 130, 0.08); }
.gc-rk { color: var(--muted); font-size: 12.5px; text-align: right; }
.gc-rn { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gc-rbar { height: 6px; overflow: hidden; border-radius: 3px; background: var(--line); }
.gc-rbar i { display: block; height: 100%; background: var(--gold); }
.gc-rv { font-variant-numeric: tabular-nums; white-space: nowrap; }
.gc-dod { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 980px) {
  .gc-grid { grid-template-columns: 1fr; }
  .gc-panel { contain: none; max-height: none; }
}
/* ⚡ контракты компаний с биржи и реакция акции (v0.85) */
.gc-map path.hot { stroke: #ffd84a; stroke-width: 2; }
.usm-hot { pointer-events: none; }
.usm-hot circle { fill: #1a1510; stroke: #ffd84a; stroke-width: 2.5; filter: drop-shadow(0 0 6px rgba(255, 210, 70, 0.85)); }
.usm-hot circle.hot { animation: gc-pulse 1.8s ease-in-out infinite; }
.usm-hot circle.warm { stroke: #8fbf6a; filter: drop-shadow(0 0 4px rgba(143, 191, 106, 0.7)); }
.usm-hot text { font-size: 15px; text-anchor: middle; }
@keyframes gc-pulse { 50% { stroke-opacity: 0.35; } }
@media (prefers-reduced-motion: reduce) { .usm-hot circle { animation: none; } }
.gc-fl-more { align-self: center; justify-self: start; }
.gc-flags { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(420px, 100%), 1fr)); gap: 8px 14px; }
.gc-fl { display: flex; align-items: flex-start; gap: 10px; padding: 9px 12px; border: 1px solid var(--line); border-radius: 10px;
         background: var(--bg); color: var(--ink); font: inherit; font-size: 14px; text-align: left; cursor: pointer; }
.gc-fl:hover { border-color: var(--gold-dim); }
.gc-fl.hot { border-color: rgba(255, 216, 74, 0.6); box-shadow: 0 0 12px rgba(255, 210, 70, 0.15); }
.gc-fl-i { flex: 0 0 18px; font-size: 16px; line-height: 1.3; text-align: center; color: var(--muted); }
.gc-fl-b { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.gc-fl-top { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.gc-fl-top b { font-variant-numeric: tabular-nums; white-space: nowrap; }
.gc-mv { font-size: 13px; font-weight: 600; }
.gc-mv.pos { color: var(--ok); }
.gc-mv.neg { color: var(--accent); }
.gc-mv.muted { font-weight: 400; }
/* v0.86: суммы у подписей, топ-10 под картой, ключ значков, «ещё», карточки компании и контракта */
.usm-lb tspan.amt { font-size: 12.5px; font-weight: 600; }
.gc-keys { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 6px; font-size: 12.5px; color: var(--muted); }
.gc-top { display: flex; flex-direction: column; gap: 5px; }
.gc-top-h { display: flex; justify-content: space-between; align-items: baseline; margin: 2px 2px 2px; font-size: 14px; }
.gc-top-h b { color: var(--gold); font-family: "Source Serif 4", Georgia, serif; font-size: 16px; }
.gc-top-h a { font-size: 13px; color: var(--gold); }
.gc-top .gc-row { padding: 5px 10px; font-size: 13.5px; }
.gc-sec:not(.open) li.x { display: none; }
.gc-more { margin-top: 8px; }
.gc-sec.lit { padding: 8px 10px 10px; border: 1px solid rgba(255, 216, 74, 0.45); border-radius: 12px; background: rgba(255, 210, 70, 0.05); }
.gc-sec.lit h3 { margin-top: 2px; }
.gc-sec ol .gc-fl { width: 100%; }
.gc-co { padding: 0; border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer;
         text-decoration: underline dotted rgba(217, 190, 130, 0.6); text-underline-offset: 3px; }
.gc-co:hover { color: var(--gold); }
.gc-co-meta { margin: 4px 0 6px; font-size: 13.5px; color: var(--muted); }
.gc-co-meta .gc-co { color: var(--ink); font-weight: 600; font-size: 15px; }
.gc-kv { display: grid; grid-template-columns: max-content 1fr; gap: 6px 12px; margin: 12px 0; font-size: 14px; }
.gc-kv dt { color: var(--muted); }
.gc-kv dd { margin: 0; }
.gc-en { font-size: 13.5px; color: var(--muted); overflow-wrap: anywhere; }
.gc-ru { font-size: 15px; line-height: 1.45; }
.gc-src { color: var(--gold); font-size: 13.5px; }
.gc-fl.warm { border-color: rgba(143, 191, 106, 0.55); }
.gc-fl .gc-aw-d { display: block; margin-top: 2px; }

/* ---------- 💰 весь счёт против вклада под 4% (v0.87) ---------- */
.vsbank { margin-top: 14px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg); }
.vsb-h { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin-bottom: 10px; font-size: 14px; }
.vsb-h b { font-family: "Source Serif 4", Georgia, serif; font-size: 18px; color: var(--gold); }
.vsb-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px 16px; }
.vsb-cell .label { display: block; font-size: 13px; color: var(--muted); }
.vsb-cell[title] { cursor: help; }
.vsb-cell b { display: block; margin-top: 4px; font-family: "Source Serif 4", Georgia, serif; font-size: 24px; font-weight: 600; }
.vsb-cell b.pos { color: var(--ok); }
.vsb-cell b.neg { color: var(--accent); }
.vsb-cell .bs-sub { display: block; margin-top: 3px; font-size: 13px; color: var(--ink); }
.vsb-verdict { margin: 12px 0 0; font-size: 15px; font-weight: 600; }
.vsb-verdict.pos { color: var(--ok); }
.vsb-verdict.neg { color: var(--accent); }
@media (max-width: 720px) { .vsb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* v0.88: число контрактов в строках штатов, компании с биржи в панели */
.gc-rv small { display: block; font-size: 11.5px; font-weight: 400; color: var(--muted); text-align: right; }
.gc-units { display: block; margin-top: 2px; font-size: 12.5px; color: var(--muted); }
.gc-units .gc-co { font-size: 12.5px; color: var(--muted); }
.gc-sec.listed .gc-tk { margin-left: 0; }

/* ---------- v0.89: карта во всю ширину, панель под ней колонками; карта ведомства; SAM.gov ---------- */
.gc-stack { display: flex; flex-direction: column; gap: 16px; }
.gc-stack .gc-map svg { max-height: 74vh; }
.gc-stack .gc-panel { contain: none; overflow: visible; max-height: none; }
.gc-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(380px, 100%), 1fr)); gap: 4px 24px; align-items: start; }
.gc-overlay { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 8px; padding: 6px 10px; border: 1px solid var(--gold-dim);
              border-radius: 10px; background: rgba(217, 190, 130, 0.08); font-size: 14px; color: var(--gold); }
.gc-overlay[hidden] { display: none; }
.gc-ag { padding: 0; border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer;
         text-decoration: underline dotted rgba(217, 190, 130, 0.6); text-underline-offset: 3px; }
.gc-ag:hover { color: var(--gold); }
.gc-sec.ag-where .gc-row { width: 100%; }
.gc-sam-tabs { margin: 4px 0 10px; }
.gc-sam-themes { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.gc-sam-th.on { border-color: var(--gold); color: var(--gold); }
.gc-sam-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(460px, 100%), 1fr)); gap: 8px 14px; }
.gc-sam-row { display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px;
              background: var(--bg); font-size: 14px; }
.gc-sam-t { line-height: 1.4; }
.gc-sam-t small { display: block; margin-top: 2px; font-size: 12px; }
/* v0.90: переключатель слоя карты – USAspending / SAM.gov */
.gc-layers { margin: 0 0 10px; }
.gc-layers button { font-weight: 600; }
.gc-ly-note { margin-left: 8px; font-size: 13px; color: var(--muted); }


/* ---------- порядок карточек (v0.91): ✋ свой / 🎯 к цели / 📈 за день … и ✏️ переставить ---------- */
.srt-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin-top: 12px; }
.srt-lbl { color: var(--muted); font-size: 15px; }
.srt-keys { display: contents; } /* кнопки переносятся вместе с «переставить» – на телефоне две строки, не три */
.srt.active, .srt-edit.active { border-color: var(--gold-dim); color: var(--gold); background: rgba(217, 190, 130, 0.08); }
.srt-dir { font-size: 12px; }
.srt-hint { display: none; font-size: 15px; }
main.mv .srt-bar { display: none; } /* «по движению» – порядок блоков свой */
/* режим «переставить»: строки в одну колонку, остальное прячем */
main.reorder .srt-lbl, main.reorder .srt-keys, main.reorder .wl-bar, main.reorder .allranges,
main.reorder .wl-group, main.reorder .tlist.tgrid { display: none; }
main.reorder .srt-hint { display: inline; }
.srt-flat { display: flex; flex-direction: column; gap: 6px; margin-top: 12px; }
.srt-flat .titem { display: flex; flex-direction: row; align-items: center; }
.srt-h, .srt-ctl, .tl-name { display: none; }
main.compact.reorder .titem:not(.open) > .srt-h,
main.compact.reorder .titem:not(.open) > .srt-ctl { display: inline-flex; }
.srt-h {
  align-items: center; justify-content: center; align-self: stretch; width: 44px; flex: none;
  color: var(--muted); font-size: 22px; cursor: grab; touch-action: none; user-select: none; -webkit-user-select: none;
}
.srt-ctl { gap: 6px; padding: 0 10px 0 4px; flex: none; }
.srt-ctl .chip { min-width: 38px; justify-content: center; font-size: 16px; }
main.reorder .tline { cursor: default; padding-left: 0; min-width: 0; }
main.reorder .tline:hover { background: transparent; }
main.reorder .tline::after, main.reorder .tl-go, main.reorder .tl-mv { display: none; }
main.reorder .tl-name { display: inline; flex: 1; min-width: 0; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
main[data-mode=mine].reorder .tl-tgt { display: none; } /* на главной там % от покупки, не цель */
main.reorder .tl-sym, main.reorder .tl-price { flex: none; }
.titem.srt-drag { position: relative; z-index: 3; border-color: var(--gold-dim); box-shadow: 0 6px 22px rgba(0, 0, 0, 0.35); }
.titem.srt-drag .srt-h { cursor: grabbing; color: var(--gold); }
.titem.srt-moved { animation: srt-flash 0.8s ease-out; }
@keyframes srt-flash { from { background: rgba(217, 190, 130, 0.22); } }
@media (max-width: 560px) {
  .srt-h { width: 36px; }
  .srt-ctl { gap: 4px; padding-right: 6px; }
  .srt-ctl .chip { min-width: 34px; padding-left: 6px; padding-right: 6px; }
  main.reorder .tl-name, main.reorder .tl-day, main.reorder .tl-tgt { display: none; } /* узко: тикер, цена – и кнопки */
}

/* ---------- 👁 «Пристально» (v0.95 – свой список; v0.93 – отметка): кнопка на карточке ---------- */
.titem.focus { outline: 2px solid var(--gold-dim); outline-offset: -1px; }
.tcorner .focus-btn { font-size: 16px; padding-left: 8px; padding-right: 8px; }
.focus-btn:not(.on) { filter: grayscale(1); opacity: 0.55; }
.focus-btn.on { border-color: var(--gold-dim); background: rgba(217, 190, 130, 0.14); }
.tl-focus { display: none; margin-left: 4px; font-size: 13px; }
.titem.focus .tl-focus { display: inline; }
.focus-sim { margin-left: 10px; white-space: nowrap; }
.titlerow:has(.focus-sim) { flex-wrap: wrap; row-gap: 8px; }
.focus-sim + .focus-sim { margin-left: 0; }
.sim-ref { margin: 12px 0; border-color: var(--gold-dim); }
.sim-refl { font-size: 14px; }
/* клетки словами (v0.99): подпись, число, сравнение с эталоном – золотым, если как у него */
.sim-cells { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr); gap: 8px; min-width: 0; }
.sc { display: flex; flex-direction: column; gap: 1px; min-width: 0; padding: 5px 9px; border: 1px solid var(--line); border-radius: 10px; }
.sc-l { font-size: 12.5px; color: var(--muted); }
.sc b { font-size: 18px; font-weight: 700; color: var(--ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.sc-hi, .sc-lo { font-size: 14.5px; line-height: 1.3; font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
.sc-hi { color: var(--ok); }
.sc-lo { color: #e0675a; }
.sc-hi small, .sc-lo small { font-weight: 400; opacity: 0.8; }
.sc-c { font-size: 13px; line-height: 1.35; color: var(--muted); }
.sc.ok { border-color: var(--gold-dim); background: rgba(217, 190, 130, 0.06); }
/* всплывашка клетки (v1.01): наведение мышью или тап (фокус) – подробности по датам */
.sc { position: relative; cursor: help; }
.sc:focus { outline: none; border-color: var(--gold); }
.sc-i { font-style: normal; font-size: 11px; opacity: 0.55; }
.sc-pop { display: none; position: absolute; z-index: 40; top: calc(100% + 6px); left: 0; width: 310px; max-height: 340px; overflow: auto;
  padding: 10px 12px; background: var(--card); border: 1px solid var(--gold-dim); border-radius: 10px; box-shadow: var(--pop-shadow);
  font-size: 13.5px; line-height: 1.5; color: var(--ink); cursor: auto; }
.sc:hover .sc-pop, .sc:focus .sc-pop, .sc:focus-within .sc-pop { display: flex; flex-direction: column; gap: 2px; }
.sim-row .sim-cells .sc:nth-child(n+3) .sc-pop { left: auto; right: 0; } /* правые клетки – окно влево */
.sc-pop b { font-size: inherit; white-space: normal; color: inherit; } /* не как число клетки (.sc b – 18px, в строку) */
.sc-pop > b { font-size: 13.5px; color: var(--gold); margin-bottom: 2px; }
.sc-pop .up { color: var(--ok); }
.sc-pop .dn { color: #e0675a; }
.sp-list { margin: 2px 0 0; padding-left: 24px; font-variant-numeric: tabular-nums; }
.sp-list li { white-space: nowrap; }
.sp-two { display: flex; gap: 18px; font-variant-numeric: tabular-nums; }
.sp-two div { display: flex; flex-direction: column; }
.sc.ok .sc-c { color: var(--gold); font-weight: 600; }
.sk { font-size: 14px; padding: 2px 9px; border-radius: 999px; border: 1px solid var(--line); }
.sk.ok { color: var(--gold); border-color: var(--gold-dim); }
.sim-period { font-size: 14px; color: var(--muted); margin-left: 6px; }
.sim-acts { display: inline-flex; gap: 6px; flex: none; margin-left: auto; }
.sim-acts .chip { font-size: 13px; padding: 3px 9px; }
.sim-in { color: var(--muted); }
.sim-in.on { color: var(--gold); border-color: var(--gold-dim); }
.sim-g { color: var(--ink); }
.sim-g.same { color: var(--gold); font-weight: 600; }
.sim-groups { margin-top: 10px; align-items: center; }
.sim-gsame { border-color: var(--gold-dim); }
.sim-hi, .sim-lo { fill: none; stroke-width: 10; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.sim-hi { stroke: var(--ok); }
.sim-lo { stroke: #e0675a; }
.sim-nav { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-left: 10px; }
.sim-off { opacity: 0.4; }
.sim-key { font-size: 14px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.sim-kicon { width: 28px; height: 10px; }
.sim-kicon line { stroke-width: 2.2; }
.sim-wins { margin-top: 10px; align-items: center; }
.sim-t { fill: none; stroke: var(--ink); opacity: 0.55; stroke-dasharray: 4 3; }
.sim-back { color: inherit; text-decoration: none; }
.sim-back:hover { text-decoration: underline; }

/* ---------- 📈 похожие по графику (v0.94) ---------- */
.sim-form { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.sim-list { list-style: none; padding: 0; margin: 12px 0 0; display: flex; flex-direction: column; gap: 10px; }
/* строка (v1.02): сверху полоса – компания и 4 клетки, под ней два графика по 50% одной высоты –
   наложение с эталоном и интерактивный график цены */
.sim-row { min-width: 0; display: flex; flex-direction: column; gap: 10px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg); }
.sim-head { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 14px; align-items: center; }
.sim-charts { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; align-items: end; }
.sim-ov { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.sim-ovl { font-size: 13px; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; }
.sim-ovl .sc-hi, .sim-ovl .sc-lo { font-size: 12.5px; font-weight: 600; }
.sim-info { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.sim-name { color: var(--ink); text-decoration: none; font-size: 15px; line-height: 1.25; }
.sim-name:hover { text-decoration: underline; }
.sim-meta { font-size: 13px; color: var(--muted); line-height: 1.3; }
.sim-row.held, .sim-row.watched { border-color: var(--gold-dim); }
.sim-spark { width: 100%; height: 200px; display: block; border-radius: 8px; background: rgba(236, 227, 208, 0.03); }
.sim-ichart { min-width: 0; border: 0; background: none; box-shadow: none !important; padding: 0; }
.sim-ichart .chartpanel { margin: 0; }
.sim-ichart .ranges { display: none; } /* срок и перемотку задаёт страница (v1.02) */
.sim-spark polyline { fill: none; stroke-width: 2.2; vector-effect: non-scaling-stroke; stroke-linejoin: round; }
.sim-c { stroke: var(--gold); }
.sim-body { flex: 1; min-width: 0; }
.sim-top { display: flex; align-items: center; gap: 8px; }
.sim-top .mk-link { flex: none; }
.sim-score { font-size: 17px; color: var(--gold); }
@media (max-width: 1100px) {
  .sim-head { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 820px) {
  /* планшет и телефон: всё в столбик, «цена ходила» во всю ширину, остальные три клетки рядом, графики друг под другом */
  .sim-charts { grid-template-columns: minmax(0, 1fr); }
  .sim-spark { height: 160px; }
  .sim-row .sim-cells { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  .sc:nth-child(2) { order: -1; grid-column: 1 / -1; }
  .sc { padding: 5px 7px; }
  /* телефон: всплывашка – снизу экрана во всю ширину, тап мимо – закрыть */
  .sc-pop { position: fixed; top: auto; bottom: 12px; left: 12px !important; right: 12px !important; width: auto; max-height: 55vh; font-size: 13px; }
  .sp-list { padding-left: 20px; }
  .sim-groups { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; } /* группы – лентой, не стеной кнопок */
  .sim-groups .chip { flex: none; }
  .sim-nav { margin-left: 0; }
}

/* ---------- 🙈 отсеянные в похожих (v1.03) ---------- */
.sim-hide { opacity: 0.75; }
.sim-hide:hover { opacity: 1; }
.sim-row.sim-going { opacity: 0.35; transition: opacity 0.2s; }
.sim-hidden { margin-top: 18px; padding: 10px 12px; border: 1px dashed var(--line); border-radius: 12px; }
.sim-hidden summary { cursor: pointer; font-size: 16px; color: var(--ink); }
.sim-hl { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.sim-hl li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 14px; }
.sim-hl .sim-score { font-size: 15px; }
.sim-hl .sim-hide { margin-left: auto; }

/* ---------- группа на карточке (v1.04): тема или сектор · отрасль ---------- */
.tgroup { display: block; margin-top: 2px; font-size: 13.5px; line-height: 1.35; }
.tgroup a { color: var(--gold); text-decoration: none; }
.tgroup a:hover { text-decoration: underline; }
.tgroup .tg-ind { color: var(--muted); }
