
.magnitude-site {
  --bg: transparent; --surface: #fff; --surface-2: #f8fafc; --line: #e5e7eb; --line-2: #d1d5db;
  --ink: #111827; --ink-2: #4b5563; --ink-3: #6b7280;
  --up: var(--price-ticker-positive, #15803d); --down: var(--price-ticker-negative, #dc2626);
  --up-soft: rgba(21,128,61,.1); --down-soft: rgba(220,38,38,.1);
  --m-low: #6b7280; --m-mid: #906500; --m-high: #b35213; --m-ext: #b91c1c;
  --accent: #2563eb; --accent-soft: rgba(37,99,235,.09); --on-accent: #fff;
  --ok: var(--up); --bad: var(--down); --grid: #e5e7eb;
  box-sizing: border-box; width: min(100%, var(--tlap-text-max-width, 1120px));
  margin: 0 auto; padding: 20px 16px 56px; color: var(--ink);
  font: var(--tlap-body-font-weight, 400) var(--tlap-body-font-size, 16px)/var(--tlap-body-line-height, 28px) var(--tlap-font-family, Inter, Arial, sans-serif);
}
html[data-theme="theme-b"] .magnitude-site {
  --surface: #111b2b; --surface-2: #182437; --line: #2c394c; --line-2: #3b4a5e;
  --ink: #f8fafc; --ink-2: #cbd5e1; --ink-3: #94a3b8;
  --up-soft: rgba(34,197,94,.14); --down-soft: rgba(239,68,68,.14);
  --m-low: #94a3b8; --m-mid: #e0b24a; --m-high: #f08a3e; --m-ext: #ff7a72;
  --accent: #8fb4ff; --accent-soft: rgba(143,180,255,.14); --on-accent: #0d1421;
  --grid: #2c394c;
}
@scope (.magnitude-site) { 
:root{
  --bg:#0C1116; --surface:#141B22; --surface-2:#1B242D; --line:#27323D; --line-2:#334050;
  --ink:#E6ECF2; --ink-2:#9AA8B5; --ink-3:#9AA8B5;
  --up:#3FC98A; --down:#FF7A72; --up-soft:rgba(63,201,138,.14); --down-soft:rgba(255,122,114,.14);
  --m-low:#9AA8B5; --m-mid:#E0B24A; --m-high:#F08A3E; --m-ext:#FF7A72;
  --accent:#8FB4FF; --accent-soft:rgba(143,180,255,.14); --on-accent:#0C1116; --ok:#3FC98A; --bad:#FF7A72;
  --grid:#222C36;
}
@media (prefers-color-scheme: light){ :root:not([data-theme="dark"]){
  --bg:#F2F4F7; --surface:#FFFFFF; --surface-2:#F6F8FA; --line:#D8DEE5; --line-2:#C3CBD4;
  --ink:#151C23; --ink-2:#4C5966; --ink-3:#5F6B78;
  --up:#177347; --down:#A8322F; --up-soft:rgba(23,115,71,.12); --down-soft:rgba(168,50,47,.12);
  --m-low:#5F6B78; --m-mid:#906500; --m-high:#B35213; --m-ext:#A8322F;
  --accent:#2F5FCF; --accent-soft:rgba(47,95,207,.10); --on-accent:#FFFFFF; --ok:#177347; --bad:#A8322F; --grid:#E6EAEF;
}}
:root[data-theme="light"]{
  --bg:#F2F4F7; --surface:#FFFFFF; --surface-2:#F6F8FA; --line:#D8DEE5; --line-2:#C3CBD4;
  --ink:#151C23; --ink-2:#4C5966; --ink-3:#5F6B78;
  --up:#177347; --down:#A8322F; --up-soft:rgba(23,115,71,.12); --down-soft:rgba(168,50,47,.12);
  --m-low:#5F6B78; --m-mid:#906500; --m-high:#B35213; --m-ext:#A8322F;
  --accent:#2F5FCF; --accent-soft:rgba(47,95,207,.10); --on-accent:#FFFFFF; --ok:#177347; --bad:#A8322F; --grid:#E6EAEF;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"IBM Plex Sans",system-ui,sans-serif;font-size:14px;line-height:1.45}
.mono{font-family:"IBM Plex Mono",ui-monospace,Menlo,monospace;font-variant-numeric:tabular-nums}
.num{font-variant-numeric:tabular-nums}
header{display:flex;align-items:center;gap:20px;padding:14px 28px;border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:5}
.logo{margin:0;font-family:Manrope,sans-serif;font-weight:800;font-size:18px;letter-spacing:-.01em;display:flex;align-items:center;gap:10px;white-space:nowrap}
.logo i{display:inline-block;width:22px;height:22px;border-radius:50%;background:conic-gradient(var(--m-mid),var(--m-ext),var(--m-mid));mask:radial-gradient(circle,transparent 45%,#000 47%);-webkit-mask:radial-gradient(circle,transparent 45%,#000 47%)}
.filters{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap}
.chip{border:1px solid var(--line-2);background:transparent;color:var(--ink-2);padding:5px 11px;border-radius:999px;font:inherit;font-size:12.5px;cursor:pointer}
.chip[aria-pressed="true"]{background:var(--accent-soft);border-color:var(--accent);color:var(--ink)}
.chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.clock{color:var(--ink-3);font-size:12.5px;white-space:nowrap}
main{padding:24px 28px 60px;max-width:1280px;margin:0 auto}
.breadcrumbs{color:var(--ink-3);font-size:12.5px;margin:0 0 15px}
.breadcrumbs a{color:var(--ink-2)}
.updated{margin:3px 0 18px}
h2{font-family:Manrope,sans-serif;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin:0 0 12px;font-weight:700;display:flex;align-items:baseline;gap:12px}
h2 span{font-weight:500;letter-spacing:0;text-transform:none;color:var(--ink-3);font-family:"IBM Plex Sans",sans-serif;font-size:13px}
section{margin-bottom:36px}
.explanation{max-width:960px;color:var(--ink-2);line-height:1.65}
.explanation p{margin:0 0 14px}
.explanation h2:not(:first-child){margin-top:24px}
.faq details{border-top:1px solid var(--line);padding:11px 0}
.faq summary{cursor:pointer;color:var(--ink);font-weight:600}
.faq details p{margin:9px 0 0}
.card-head{display:flex;align-items:center;gap:12px}
.card-head[role="button"]{cursor:pointer}
.card-head[role="button"]:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:4px}
.mag{font-family:Manrope,sans-serif;font-weight:800;font-size:26px;line-height:1;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;border:3px solid;flex:none}
.mag small{font-size:8px;letter-spacing:.1em;font-weight:700;margin-top:-2px}
.m1{color:var(--m-low);border-color:var(--m-low)} .m2{color:var(--m-mid);border-color:var(--m-mid)} .m3{color:var(--m-high);border-color:var(--m-high)} .m4{color:var(--m-ext);border-color:var(--m-ext)}
.name{font-family:Manrope,sans-serif;font-weight:700;font-size:17px}
.move{font-family:Manrope,sans-serif;font-weight:800;font-size:22px;letter-spacing:-.01em}
.move.up{color:var(--up)} .move.down{color:var(--down)}
.sub{color:var(--ink-2);font-size:12.5px}
.head-right{margin-left:auto;text-align:right}
.time{color:var(--ink-3);font-size:12px}
.rec{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:12px}
.rec .q{font-family:Manrope,sans-serif;font-weight:700;font-size:13px;color:var(--ink);display:flex;gap:8px;align-items:baseline}
.rec .a{color:var(--ink-2);font-size:13px;margin:0;line-height:1.4}
.verdict{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11.5px;font-weight:600;letter-spacing:.02em}
.v-wait{background:var(--accent-soft);color:var(--accent)} .v-coin{background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line)}
table{border-collapse:collapse;width:100%;font-size:12.5px}
.lv th,.lv td{padding:4px 6px;text-align:right;border-bottom:1px solid var(--grid)}
.lv th{color:var(--ink-3);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.lv td:first-child,.lv th:first-child{text-align:left}
.lv tr:last-child td{border-bottom:0}
.pct{display:inline-block;min-width:38px}
.bar{display:inline-block;height:6px;border-radius:3px;background:var(--ink-3);vertical-align:middle;margin-left:6px;opacity:.7}
.bar.bad{background:var(--down)} .bar.ok{background:var(--up)}
.status{display:flex;gap:10px;align-items:center;font-size:12.5px;color:var(--ink-2);border-top:1px solid var(--line);padding-top:10px}
.status b{color:var(--ink)}
.dirtag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.04em;padding:2px 7px;border-radius:4px;vertical-align:middle;margin-left:4px}
.dirtag.up{background:var(--up-soft);color:var(--up)} .dirtag.down{background:var(--down-soft);color:var(--down)}
.plan{background:var(--surface-2);border:1px solid var(--line);border-radius:6px;padding:10px 12px;display:grid;gap:6px}
.plan-h{font-family:Manrope,sans-serif;font-weight:700;font-size:13px}
.plan-row{display:grid;grid-template-columns:96px minmax(0,1fr);gap:2px 10px;align-items:baseline;font-size:13px}
.plan-k{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 6px;border-radius:3px;text-align:center;line-height:1.15;grid-row:span 2}
/* «Надёжной цели нет» и «Спокойного стопа нет» не влезали в колонку 44 px:
   слово «НАДЁЖНОЙ» не переносится и ложилось на цену (#1184, правки 22.09,
   п. 4). Колонка 96 px, бейдж переносится по словам, пишется строчными и
   занимает обе строки ряда, чтобы подпись под ценой не отодвигалась. */
.plan-k.unreliable{text-transform:none;letter-spacing:0;overflow-wrap:anywhere}
.plan-k.stop{background:var(--down-soft);color:var(--down)} .plan-k.tp{background:var(--up-soft);color:var(--up)}
.plan-v{color:var(--ink-2)} .plan-v b{color:var(--ink);font-family:"IBM Plex Mono",monospace;font-size:13.5px}
.plan-p{color:var(--ink-3);font-size:12px;grid-column:2} .plan-p b{color:var(--ink-2)}
.plan-note{font-size:11.5px;color:var(--ink-3);border-top:1px solid var(--line);padding-top:6px}
details summary{cursor:pointer;color:var(--ink-3);font-size:12.5px;list-style:none;padding:2px 0} details summary::before{content:'▸ ';} details[open] summary::before{content:'▾ ';}
details summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

svg.spark{width:100%;height:84px;display:block}
.spark .base{stroke:var(--line-2);stroke-width:1}
.spark .lvl{stroke-width:1;stroke-dasharray:3 3}
.spark .path{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.spark .end{fill:var(--accent)}
.spark text{font-family:"IBM Plex Mono",monospace;font-size:9.5px;fill:var(--ink-3)}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:12px 14px}
.kpi .k{font-size:11.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}
.kpi .v{font-family:Manrope,sans-serif;font-weight:800;font-size:24px;margin-top:2px}
.kpi .d{font-size:12px;color:var(--ink-2)}
.hist{background:var(--surface);border:1px solid var(--line);border-radius:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
.hist:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.hist table{min-width:1000px}
.hist th{position:sticky;top:0;background:var(--surface-2);color:var(--ink-3);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.06em;padding:8px 10px;text-align:right;border-bottom:1px solid var(--line)}
.hist td{padding:8px 10px;text-align:right;border-bottom:1px solid var(--grid);white-space:nowrap}
.hist th:nth-child(-n+2),.hist td:nth-child(-n+2){text-align:left}
.hist tr.row{cursor:pointer} .hist tr.row:hover td{background:var(--surface-2)}
.hist tr.detail td{background:var(--surface-2);white-space:normal;padding:12px 16px}
.ok{color:var(--ok);font-weight:600} .bad{color:var(--bad);font-weight:600} .na{color:var(--ink-3)}
.mini{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;border:2px solid;font-family:Manrope,sans-serif;font-weight:800;font-size:11px}
.detail-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:20px;align-items:start}
.detail-grid h4{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:600}
.empty{color:var(--ink-3);padding:20px;border:1px dashed var(--line);border-radius:6px;text-align:center}
.quality{display:none;margin:0 0 18px;padding:10px 12px;border:1px solid var(--m-mid);border-radius:6px;background:rgba(224,178,74,.1);color:var(--ink-2)}
.quality.error{display:block;border-color:var(--bad);background:var(--down-soft);color:var(--ink)}
.quality.warn{display:block}
.legend{font-size:11.5px;color:var(--ink-3);white-space:nowrap}.legend b{color:var(--ink-2)}
.tips{position:relative;margin:0 0 18px;padding:12px 42px 12px 14px;background:var(--accent-soft);border:1px solid var(--accent);border-radius:6px;color:var(--ink-2)}
html[data-magnitude-tips-hidden="true"] #tips{display:none}
.tips b{color:var(--ink)}.tips button{position:absolute;right:10px;top:8px;border:0;background:transparent;color:var(--ink);font-size:20px;cursor:pointer}
.verdict-line{font:700 15px/1.35 Manrope,sans-serif;color:var(--ink);margin-bottom:7px}
.disc{font-size:11px;color:var(--ink-3);margin-top:6px}
/* Колонок стало 11: «Макс. ход / против» и «+24 свечи» — десятая и одиннадцатая.
   На узком экране они уезжают в панель деталей (ТЗ 4). */
@media(max-width:900px){#hist th:nth-child(10),#hist td:nth-child(10),#hist th:nth-child(11),#hist td:nth-child(11){display:none}}
.mag-wrap{display:grid;place-items:center;gap:3px}.mag-word{font-size:10px;font-weight:700;color:var(--ink-3)}
.scale{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--ink-3)}.scale i{height:6px;border-radius:3px;background:var(--accent);display:inline-block}
.state{padding:2px 7px;border-radius:4px;background:var(--accent-soft);color:var(--accent);font-weight:600}
.state.done{background:var(--up-soft);color:var(--up)}.state.bad{background:var(--down-soft);color:var(--down)}
.unreliable{color:var(--ink-2)!important;background:var(--surface-2)!important;border:1px solid var(--line-2)}
.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.actions button,.history-toggle{border:1px solid var(--line-2);background:var(--surface-2);color:var(--ink);border-radius:5px;padding:6px 9px;cursor:pointer;font:inherit;font-size:12px}.actions a{color:var(--accent);font-size:12px}
.history-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.history-head h2{margin:0}
.hist{position:relative}.hist::after{content:'';position:absolute;right:0;top:0;bottom:0;width:18px;pointer-events:none;background:linear-gradient(90deg,transparent,var(--surface))}
dialog{width:min(920px,calc(100vw - 28px));max-height:calc(100vh - 28px);overflow:auto;border:1px solid var(--line-2);border-radius:8px;padding:0;background:var(--surface);color:var(--ink);box-shadow:0 24px 80px rgba(0,0,0,.55)}dialog::backdrop{background:rgba(4,8,12,.72)}
.detail-head{display:flex;align-items:center;gap:12px;margin:0 0 12px}
.detail-head .mag{width:44px;height:44px;font-size:21px;border-width:2px}
.detail-title{display:grid;gap:2px;min-width:0}
.detail-title b{font-family:Manrope,sans-serif;font-weight:700;font-size:17px}
.detail-title .sub{font-size:12px}
.dialog-inner{padding:18px}.dialog-close{position:sticky;float:right;top:8px;z-index:2;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:50%;width:32px;height:32px;cursor:pointer}
.settings{display:grid;grid-template-columns:minmax(90px,120px) repeat(2,minmax(110px,200px));gap:8px;margin:12px 0}.settings label{font-size:11px;color:var(--ink-3)}.settings input,.settings select{display:block;width:100%;margin-top:3px;background:var(--bg);border:1px solid var(--line);border-radius:4px;color:var(--ink);padding:6px;font:inherit;font-size:13px}
.foot{color:var(--ink-3);font-size:12px;max-width:80ch;margin-top:30px;line-height:1.5}#disclaimer{margin-top:10px}
.related{color:var(--ink-3);font-size:13px;margin-top:16px}.related a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
@media (max-width:800px){
  .kpis{grid-template-columns:repeat(2,1fr)}
  .detail-grid{grid-template-columns:1fr}
  header{padding:12px 16px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 14px}
  .logo{font-size:16px;white-space:nowrap}
  .clock{white-space:nowrap;text-align:right}
  .filters{grid-column:1/-1;width:100%;max-width:100%;margin-left:0;justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
  .chip{flex:0 0 auto}
  main{padding:16px}
  .status{align-items:flex-start;flex-wrap:wrap}.settings{grid-template-columns:minmax(0,.8fr) minmax(0,1fr) minmax(0,1fr)}
  .hist th:nth-child(n+6),.hist td:nth-child(n+6){display:none}.hist table{min-width:690px}.hist tr.detail td{display:table-cell}
}
/* Экран v2 (ТЗ 5.2, прототип app2.html): карта «Где жара» и крупный блок
   вместо карточек «Сейчас», плиток «Все инструменты» и попапа. */
.hero{display:grid;grid-template-columns:1fr;gap:16px}
/* `display:grid` у блоков перебивает атрибут hidden браузера. */
[hidden]{display:none!important}
.notice{margin:0 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:var(--surface-2);color:var(--ink-2);font-size:13px}
.heat{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:14px 16px;display:grid;gap:10px}
.heat h3{margin:0;font-family:Manrope,sans-serif;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.heat h3 span{text-transform:none;letter-spacing:0;font-family:"IBM Plex Sans",sans-serif;font-weight:500}
.heat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:6px}
.hbtn{border:1px solid var(--line);background:var(--surface-2);border-radius:6px;padding:8px 8px 7px;text-align:left;cursor:pointer;font:inherit;color:var(--ink);display:grid;gap:3px;position:relative;min-width:0}
.hbtn{text-decoration:none}
.hbtn .n{font-weight:600;font-size:12.5px;display:flex;justify-content:space-between;gap:4px;min-width:0}
.hbtn .n>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hbtn .m{font-family:Manrope,sans-serif;font-weight:800;font-size:18px;line-height:1}
.hbtn .h{font-size:10.5px;color:var(--ink-3)}
.hbtn[data-lvl="0"] .m{color:var(--ink-3);font-size:12px;font-weight:600}
.hbtn[data-lvl="2"]{border-color:var(--m-mid);background:color-mix(in srgb,var(--m-mid) 12%,var(--surface))}.hbtn[data-lvl="2"] .m{color:var(--m-mid)}
.hbtn[data-lvl="3"]{border-color:var(--m-high);background:color-mix(in srgb,var(--m-high) 16%,var(--surface))}.hbtn[data-lvl="3"] .m{color:var(--m-high)}
.hbtn[data-lvl="4"]{border-color:var(--m-ext);background:color-mix(in srgb,var(--m-ext) 18%,var(--surface))}.hbtn[data-lvl="4"] .m{color:var(--m-ext)}
.hbtn[aria-current="page"]{outline:2px solid var(--accent);outline-offset:1px}
.hbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.heat-legend{display:flex;gap:12px;font-size:11.5px;color:var(--ink-3);flex-wrap:wrap}
.heat-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:-1px;margin-right:4px}
.focus{max-width:760px;margin:0 auto;width:100%;min-width:0;background:var(--surface);border:1px solid var(--line-2);border-radius:6px;padding:16px 18px;display:grid;gap:12px;box-shadow:0 8px 24px rgba(0,0,0,.18);container-name:magnitude-focus;container-type:inline-size}
.focus .empty{border:0;padding:24px 8px}
.focus .hint{font-size:12px;color:var(--ink-3)}
.focus .disc{font-size:11.5px;color:var(--ink-3);border-top:1px solid var(--line);padding-top:8px;margin-top:0}
.focus .rank{color:var(--ink-3);font-size:12px}
.focus .outcome{margin:0}
.focus-body,.focus-chart,.focus-footer{display:grid;gap:12px;min-width:0;align-content:start}
.focus-advice{min-width:0}
.similar-movements ul{margin:8px 0 0;padding-left:18px;display:grid;gap:7px}
.similar-movements a{color:var(--accent)}
.fnav{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--ink-3)}
.fnav .ftitle{font-weight:600;color:var(--ink-2)}
.fnav .badge{padding:1px 7px;border-radius:4px;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2)}
.fnav .fnav-r{margin-left:auto;display:flex;gap:6px;align-items:center}
.fnav button{border:1px solid var(--line-2);background:transparent;color:var(--ink);width:26px;height:26px;border-radius:6px;cursor:pointer;font:inherit}
.day-line{max-width:760px;margin:-6px auto 0;width:100%;text-align:center}
.day-line:empty{display:none}
.event-list{display:grid;gap:5px;max-height:390px;overflow:auto}
.event-chip{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:7px 9px;border:1px solid var(--line);border-radius:6px;color:var(--ink);text-decoration:none;font-size:12px}
.event-chip:hover,.event-chip[aria-current="true"]{border-color:var(--accent);background:var(--accent-soft)}
.event-chip .num{white-space:nowrap}
.telegram-menu{position:relative;display:inline-block}
.telegram-menu summary{cursor:pointer;color:var(--accent)}
.telegram-menu[open]{z-index:4}
.telegram-menu a{display:block;padding:6px 8px;color:var(--ink);text-decoration:none;white-space:nowrap}
.telegram-menu a:hover{background:var(--accent-soft)}
@media(min-width:1024px){.hero{grid-template-columns:minmax(0,38fr) minmax(0,62fr);align-items:start}.hero>.heat{grid-column:1;grid-row:1}.hero>.focus{grid-column:2;grid-row:1;max-width:none}.hero>.day-line{grid-column:1/-1}}
@media(min-width:1024px) and (min-height:860px){.hero>.heat{position:sticky;top:92px;max-height:calc(100vh - 110px);overflow:auto}}
/* The right card uses inner columns only when the card itself is wide enough,
   independently of the viewport width and the left market column. */
@container magnitude-focus (min-width:1100px){.focus-body{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:20px}}
@media(max-width:1023px){.event-list{display:flex;overflow-x:auto;max-height:none}.event-chip{flex:0 0 235px;display:grid;align-content:start}}
.live{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:6px;padding:10px 14px}
.live .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:600;display:flex;align-items:center;gap:6px;white-space:nowrap}
.live .lbl i{width:7px;height:7px;border-radius:50%;background:var(--down);display:inline-block;animation:blink 1.2s infinite}
@keyframes blink{50%{opacity:.2}}
@media (prefers-reduced-motion:reduce){.live .lbl i{animation:none}}
.live .txt{font-size:13px}.live .txt b{font-family:Manrope,sans-serif;font-weight:800}
.live .bar{display:block;height:8px;background:var(--grid);border-radius:4px;overflow:hidden;margin-top:6px}
.live .bar i{display:block;height:100%;border-radius:4px;transition:width .6s}
.live .clock{font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--ink-3);white-space:nowrap}
.live .note{font-size:11px;color:var(--ink-3)}
@media (max-width:700px){.live{grid-template-columns:1fr;gap:6px}}
/* The desktop hero narrows this panel to 38%; give its live text the full
   panel width instead of squeezing it between the label and countdown. */
@media (min-width:1024px){.live{grid-template-columns:minmax(0,1fr);gap:6px}.live .clock{white-space:normal}}
.recs{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.rec-tile{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:12px 14px;display:grid;gap:4px;align-content:start}
.rec-tile .k{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3)}
.rec-tile .v{font-family:Manrope,sans-serif;font-weight:800;font-size:18px}
.rec-tile .d{font-size:12px;color:var(--ink-2)}
.rec-tile .share{justify-self:start;font-size:11.5px;color:var(--accent)}
a.history-toggle{text-decoration:none}
/* Игра «Откатит или нет» (ТЗ 14.1). */
.game{background:var(--accent-soft);border:1px solid var(--line);border-radius:6px;padding:12px 14px;display:grid;gap:8px}
.game .q{font-weight:700;font-family:Manrope,sans-serif;font-size:13.5px}
.game .q small{font-weight:500;color:var(--ink-2);font-family:"IBM Plex Sans",sans-serif;margin-left:6px}
.game .btns,.authgate .btns{display:flex;gap:8px;flex-wrap:wrap}
.game button{font:inherit;font-size:13px;padding:7px 14px;border-radius:6px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);cursor:pointer}
.game button:hover{border-color:var(--accent)}
.game button[disabled]{opacity:.55;cursor:default}
.game button[aria-pressed="true"]{background:var(--accent);color:var(--on-accent);border-color:var(--accent);opacity:1}
.game .res{font-size:12.5px;color:var(--ink-2)}
.game .me{font-size:12px;color:var(--ink-3)}.game .me a{color:var(--accent)}
.authgate{border:1px solid var(--accent);background:var(--accent-soft);border-radius:6px;padding:12px 14px;display:grid;gap:8px}
.authgate p{margin:0;font-size:13px}
a.button{display:inline-flex;align-items:center;font-size:13px;padding:7px 14px;border-radius:6px;border:1px solid var(--accent);background:var(--accent);color:var(--on-accent);text-decoration:none}
a.button.sec{background:transparent;color:var(--ink)}
.authgate .cancel{background:none;border:0;color:var(--ink-3);padding:0;font-size:12px;cursor:pointer;justify-self:start}
.userbar{font-size:12px;color:var(--ink-3);display:flex;gap:6px;align-items:center;white-space:nowrap}
/* `.userbar a` шёл после `a.button` с той же специфичностью и красил «Войти»
   цветом фона кнопки в обеих темах (правки 22.09, п. 4). */
.userbar b{color:var(--ink-2)}.userbar a:not(.button){color:var(--accent)}.userbar a.button{padding:3px 9px;font-size:12px}
.userbar .news{display:inline-block;min-width:18px;margin-left:4px;padding:1px 5px;border-radius:999px;background:var(--accent);color:var(--on-accent);font-weight:700;text-align:center;line-height:16px}
.lb-tabs{display:flex;gap:6px;margin-bottom:10px}
.hist table.lb{min-width:520px}
.lb tr.mine td{background:var(--accent-soft)}
.logo-link{color:inherit;text-decoration:none;display:flex;align-items:center;gap:10px}.logo-sub{color:var(--ink-3);font-weight:700}
.page-title{margin:0 0 6px;font-family:Manrope,sans-serif;font-size:22px;font-weight:800;letter-spacing:-.01em;line-height:1.25}
@media(max-width:600px){.page-title{font-size:19px}}
.records-table td{white-space:normal;vertical-align:top}.records-table td:nth-child(n+2),.records-table th:nth-child(n+2){text-align:left}
.hist table.records-table{min-width:760px}
a.png{font-size:11px;color:var(--accent)}
.tops{display:grid;gap:6px}.tops details{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:8px 12px}.tops summary{color:var(--ink);font-weight:600}
@media (max-width:800px){.userbar{grid-column:1/-1;flex-wrap:wrap;row-gap:4px}.focus{padding:13px}.focus .card-head{align-items:flex-start;flex-wrap:wrap}.focus .head-right{width:100%;text-align:left;margin-left:64px}}
/* На телефоне карта в два столбца занимала семь рядов, и крупный блок уезжал
   на второй экран; в три столбца — пять рядов. */
@media (max-width:480px){
  /* Подзаголовок страницы («Рекорды», «Калькулятор стопа») стоит в одной
     строке с названием, а строка не переносится: на 375 px он наезжал на
     время последней свечи. На узком экране шапка становится одним столбцом. */
  header{grid-template-columns:minmax(0,1fr)}
  .logo{flex-wrap:wrap;white-space:normal}
  .logo-sub{flex-basis:100%}
  .clock{text-align:left}
  .heat{padding:12px}
  .heat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
  .hbtn{padding:6px 6px 5px}
  .hbtn .n{font-size:11.5px}
  .hbtn .m{font-size:16px}
  .legend{white-space:normal}
}
 }
@scope (.magnitude-site) {
  * { font-family: var(--tlap-font-family, Inter, Arial, sans-serif) !important; }
  :is(.mono,.plan-v b,.spark text) { font-family: ui-monospace, SFMono-Regular, Menlo, monospace !important; }
  .page-title { font-size: var(--tlap-page-h1-font-size, 32px); font-weight: var(--tlap-page-h1-font-weight, 800); line-height: var(--tlap-page-h1-line-height, 1.2); }
  .magnitude-toolbar { display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: center; margin: 18px 0 22px; }
  .magnitude-toolbar .filters { margin-left: 0; }
  .magnitude-toolbar .channel-link { margin-left: auto; }
  :is(.heat,.focus,.kpis > *, .recs > *, .tops details) { border: 0; border-radius: 8px; box-shadow: rgba(15,23,42,.1) 0 10px 26px; }
  :is(.history-toggle,.actions button,.actions a,.chip,a.button) { border-radius: 7px; }
  :is(.history-toggle,.actions button,.actions a,.chip,a.button) { background: rgba(0,0,0,.06); color: var(--ink); border: 1px solid transparent; padding: 7px 11px; text-decoration: none; }
  :is(.history-toggle,.actions button,.actions a,.chip,a.button):hover { background: var(--accent-soft); }
  .chip[aria-pressed="true"] { background: var(--accent-soft); border-color: var(--accent); }
  .hist { border-radius: 8px; overflow-x: auto; }
  .hist th { background: var(--surface-2); }
  @media (max-width: 600px) { .page-title { font-size: var(--tlap-page-h1-font-size, 32px); } .magnitude-toolbar .filters { order: 3; width: 100%; } }
}
html[data-theme="theme-b"] .magnitude-site :is(.history-toggle,.actions button,.actions a,.chip,a.button) { background: rgba(255,255,255,.08); }
