/* FINFACTS — общие стили сайта: токены, тема, кнопки, фильтры, строки ленты
   с плашками ведомств, строки котировок. Вынесены из index.html без правок;
   подключаются главной страницей и терминалом (/terminal). Правки цветов и
   плашек — здесь, один раз для всех страниц. */

/* ══ токены и светлая тема ══ */
:root{
  --bg:#07090c; --panel:#0d1117; --line:#1b232e;
  --amber:#ffb000; --red:#ff5252; --green:#2ee06f; --blue:#4db8ff; --violet:#b48cff;
  --tx:#c9d4e0; --dim:#5b6b7c;
  --mono:"IBM Plex Mono","SF Mono",Consolas,Menlo,monospace;
  --sans:"IBM Plex Sans","Segoe UI",Arial,sans-serif;
}
html.light{
  --bg:#f7f8fa; --panel:#ffffff; --line:#dde3ea;
  --amber:#b06f00; --red:#c62828; --green:#0f7a3d; --blue:#1565c0; --violet:#6a3fb5;
  --tx:#1c2530; --dim:#6b7a8a;
}
html.light .chip.on{color:#fff}
/* на белом фоне те же подкраски берём насыщеннее по тексту и рамке */
html.light .chip.imp{color:#c62828;border-color:#f0bcbc;background:#fdf2f2}
html.light .chip.cbr{color:#1e4fa8;border-color:#c3d4f5;background:#f1f5fe}
html.light .chip.minfin{color:#4a5563;border-color:#d3dae2;background:#f5f7f9}
html.light .chip.fed{color:#1a5b78;border-color:#c2dce8;background:#f1f8fb}
html.light mark{background:#ffe08a;color:#1c2530}
html.light .tag{border-color:#ddd0f2;background:#f4eefe}
html.light .tk{border-color:#c8e6d2;background:#eef8f1}
html.light .reso{color:#5f6d7a;border-color:#d8dfe6;background:#f0f3f6}
html.light .srcs{border-color:#c6dcf5;background:#eef5fd}
html.light .row.reg:not(.lvl2){border-color:#8fb4e8;background:#eef4fc}
html.light .fband{background:#fdf2f2;border-color:#f0bcbc}
html.light .fband .vtxt{color:#c62828}
html.light .regband{background:#f1f5fe;border-color:#c3d4f5}
html.light .regband .vtxt,html.light .regband .ico{color:#1e4fa8}
html.light .finband{background:#f5f7f9;border-color:#d3dae2}
html.light .finband .vtxt,html.light .finband .ico{color:#4a5563}
html.light .row.reg.fin:not(.lvl2){border-color:#c3cad2;background:#f2f4f7}
html.light .row.reg.fed:not(.lvl2){border-color:#a8c8da;background:#eaf4f9}
html.light .fedband{background:#f1f8fb;border-color:#c2dce8}
html.light .fedband .vtxt,html.light .fedband .ico{color:#1a5b78}
html.light .tsband{background:#f4f1fd;border-color:#d3c9f2}
html.light .tsband .vtxt,html.light .tsband .ico{color:#4b3a9e}
html.light .row.reg.ts:not(.lvl2){border-color:#d3c9f2;background:#faf8ff}
html.light .row.reg.ts .time{color:#4b3a9e}
html.light .row.reg.ts:not(.lvl2) .txt{color:#2f2660}
html.light .sancband{background:#fff3e6;border-color:#f0cfa6}
html.light .sancband .vtxt,html.light .sancband .ico{color:#a3520c}
html.light .row.reg.sanc:not(.lvl2){border-color:#f0cfa6;background:#fffaf4}
html.light .row.reg.sanc .time{color:#a3520c}
html.light .row.reg.sanc:not(.lvl2) .txt{color:#5a2f08}
/* светлая тема: на плашках ведомств текст был почти белым — делаем читаемым */
html.light .row.reg:not(.lvl2) .txt{color:#123a6b}
html.light .row.reg .time{color:#1a4f9c}
html.light .row.reg.fin:not(.lvl2) .txt{color:#242c36}
html.light .row.reg.fin .time{color:#48525f}
html.light .row.reg.fed:not(.lvl2) .txt{color:#123544}
html.light .row.reg.fed .time{color:#1c5a78}
html.light .row.reg .src{color:#4a5867}
html.light .row.lvl2 .txt{color:#8a5600}

/* ══ полосы прокрутки ══ */
*{scrollbar-width:thin;scrollbar-color:var(--line) transparent}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--dim)}
::-webkit-scrollbar-corner{background:transparent}

/* ══ кнопки .hbtn ══ */
.hbtn{background:none;border:1px solid var(--line);color:var(--dim);font:inherit;font-size:11px;
  padding:4px 9px;border-radius:4px;cursor:pointer;white-space:nowrap}
.hbtn.on{color:var(--amber);border-color:var(--amber)}
.hbtn{height:24px;display:inline-flex;align-items:center;justify-content:center}

/* ══ фильтры .chip ══ */
.chip{flex:none;background:var(--panel);border:1px solid var(--line);color:var(--dim);font:inherit;
  font-size:11.5px;padding:0 10px;border-radius:20px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;
  height:24px;box-sizing:border-box;white-space:nowrap}
.chip-n{font-size:9.5px;opacity:.55;font-variant-numeric:tabular-nums}
.chip.on{color:#0b0d10;background:var(--amber);border-color:var(--amber);font-weight:700}
/* Фильтры ведомств подкрашены и в спокойном состоянии — те же цвета, что
   у плашек в ленте, но еле заметной заливкой, чтобы шапка не пестрела. */
.chip.imp{color:color-mix(in srgb,var(--red) 78%,var(--tx));
  border-color:color-mix(in srgb,var(--red) 42%,var(--line));
  background:color-mix(in srgb,var(--red) 9%,var(--panel))}
.chip.cbr{color:#7ba6f0;border-color:color-mix(in srgb,#1e3a8a 55%,var(--line));
  background:color-mix(in srgb,#1e3a8a 16%,var(--panel))}
.chip.minfin{color:#b8c4d2;border-color:color-mix(in srgb,#3f4854 70%,var(--line));
  background:color-mix(in srgb,#3f4854 18%,var(--panel))}
.chip.fed{color:#8fc4dd;border-color:color-mix(in srgb,#1e3d50 65%,var(--line));
  background:color-mix(in srgb,#1e3d50 20%,var(--panel))}
.chip.imp.on{background:var(--red);border-color:var(--red);color:#fff}
.chip.cbr.on{background:#1e3a8a;border-color:#1e3a8a;color:#e8f0ff}
.chip.minfin.on{background:#3f4854;border-color:#3f4854;color:#eef2f6}
.chip.fed.on{background:#1e3d50;border-color:#1e3d50;color:#a8d4e8}

/* ══ лента: строки, плашки, теги, тикеры ══ */
.row{display:grid;grid-template-columns:52px 1fr;gap:0 12px;padding:11px 14px;border-bottom:1px solid var(--line);
  position:relative;transition:background .3s}
.row .time{color:var(--dim);font-size:12px;padding-top:0;line-height:16px;font-family:var(--mono)}
.row .src{color:var(--blue);font-size:10.5px;letter-spacing:.04em;margin-bottom:3px;line-height:16px}
.row .txt{white-space:pre-wrap;word-break:break-word}
mark{background:var(--amber);color:#0b0d10;border-radius:2px;padding:0 1px}
.row.clickable{cursor:pointer}
.more{color:var(--amber);font-size:10.5px;margin-top:3px}
.more{cursor:pointer}
.more:hover{text-decoration:underline}
.row .meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px;align-items:center}
.tag{font-size:10.5px;color:var(--violet);border:1px solid #2a2440;background:#161226;
  padding:1px 8px;border-radius:10px;cursor:pointer}
.tkline{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 6px}
.tk{font-size:10.5px;color:var(--green);border:1px solid #14361f;background:#0b1a10;padding:1px 8px;border-radius:10px;font-family:var(--mono)}
.reso{font-size:10px;color:#8b98a5;border:1px solid #2a3441;background:#141a22;padding:1px 7px;border-radius:10px;margin-left:6px;font-family:var(--mono);white-space:nowrap;cursor:help;letter-spacing:.03em}
    .srcs{font-size:10px;color:var(--blue);border:1px solid #16324a;background:#0a1622;padding:1px 7px;border-radius:10px;margin-left:8px;font-family:var(--mono);white-space:nowrap;cursor:help}
.lnk{font-size:10.5px;color:var(--violet);text-decoration:none}
.lnk:hover{text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--violet)}
/* значок языка оригинала и переключатель «оригинал» у переведённых записей */
.lang{font-size:9.5px;color:var(--dim);border:1px solid var(--line);border-radius:9px;padding:0 6px;font-family:var(--mono);letter-spacing:.05em;cursor:help}
.origbtn{font-size:10.5px;color:var(--dim);background:none;border:none;cursor:pointer;padding:0;font-family:inherit}
.origbtn:hover{color:var(--tx);text-decoration:underline;text-underline-offset:2px}
.row .orig{margin-top:5px;padding:5px 9px;border-left:2px solid var(--line);color:var(--dim);font-size:12.5px;white-space:pre-wrap;word-break:break-word}
html.light .lang{border-color:#d5d5dd}
html.light .row .orig{border-left-color:#d5d5dd}
.share{background:none;border:none;color:var(--violet);cursor:pointer;padding:0 0 0 2px;display:inline-flex;align-items:center;vertical-align:middle;line-height:1;opacity:.75}
.share:hover{opacity:1}

/* важные */
.row.lvl2{grid-template-columns:52px 1fr;border:1px solid var(--red);
  background:rgba(255,82,82,.07);margin:-1px 0 0;padding:11px 14px;border-radius:0;
  border-left:none;border-right:none;
  overflow:visible}
.fband{background:color-mix(in srgb,var(--red) 12%,var(--panel));border:1px solid color-mix(in srgb,var(--red) 45%,var(--line));
  display:flex;flex-direction:column;align-items:center;justify-content:space-between;
  padding:7px 0;border-radius:12px;box-sizing:border-box;
  position:absolute;left:-30px;top:3px;bottom:3px;width:24px}
.vtxt{writing-mode:vertical-rl;transform:rotate(180deg);color:color-mix(in srgb,var(--red) 80%,var(--tx));font-size:9.5px;font-weight:400;letter-spacing:.18em;white-space:nowrap}
/* Короткие ряды: плашке не хватает высоты — по шагам убираем значок,
   потом ужимаем шрифт и разрядку, чтобы надпись шла в одну линию. */
.fband.t1 .ico{display:none}
.fband{justify-content:center}
.fband.t2 .vtxt{font-size:8.5px;letter-spacing:.08em}
.fband.t3 .vtxt{font-size:8px;letter-spacing:.02em}
.ico{font-size:11px}
.row.lvl2 .time{color:var(--red);font-weight:500}
.row.lvl2 .txt{color:#ffcf66;font-weight:500}
.row.fresh{animation:fr 2.4s ease both}
@keyframes fr{0%{background:rgba(255,176,0,.25)}100%{background:transparent}}
.row.lvl2.fresh{animation:fr2 2.4s ease both}
@keyframes fr2{0%{background:rgba(255,82,82,.35)}100%{background:rgba(255,82,82,.07)}}
.row.lvl2,.row.reg:not(.lvl2){position:relative;z-index:1}
.row.mark{outline:2px solid var(--amber);outline-offset:-2px}
/* регулятор: вертикальная плашка слева, как у важного, только синяя */
.row.reg:not(.lvl2){grid-template-columns:52px 1fr;border:1px solid #2f5aa8;
  background:color-mix(in srgb,#1e3a8a 11%,var(--bg));margin:-1px 0 0;padding:11px 14px;border-radius:0;
  border-left:none;border-right:none;
  overflow:visible}
.row.reg .time{color:#7fb0ff;font-weight:500}
.row.reg:not(.lvl2) .txt{color:#cfe0ff;font-weight:500}
/* Плашки ведомств: заливка полупрозрачная, как у чипов фильтров в шапке,
   рамка в цвете ведомства, надпись не жирная. */
.regband{background:color-mix(in srgb,#1e3a8a 16%,var(--panel));border-color:color-mix(in srgb,#1e3a8a 55%,var(--line))}
.regband .ico{font-size:14px;font-weight:400;color:#7ba6f0;line-height:1}
.regband .vtxt{color:#7ba6f0}
/* Минфин: та же плашка, серая */
.row.reg.fin:not(.lvl2){border-color:#4a5563;background:color-mix(in srgb,#3f4854 14%,var(--bg))}
.row.reg.fin .time{color:#aeb9c7}
.row.reg.fin:not(.lvl2) .txt{color:#d7dde5}
.finband{background:color-mix(in srgb,#3f4854 18%,var(--panel));border-color:color-mix(in srgb,#3f4854 70%,var(--line))}
.finband .ico{font-size:14px;font-weight:400;color:#b8c4d2;line-height:1}
.finband .vtxt{color:#b8c4d2}
/* ФРС/Минфин США: серо-голубая плашка */
.row.reg.fed:not(.lvl2){border-color:#2e4a5a;background:color-mix(in srgb,#1e3d50 16%,var(--bg))}
.row.reg.fed .time{color:#7bb8d4;font-weight:500}
.row.reg.fed:not(.lvl2) .txt{color:#c5dce8;font-weight:500}
.fedband{background:color-mix(in srgb,#1e3d50 20%,var(--panel));border-color:color-mix(in srgb,#1e3d50 65%,var(--line))}
.fedband .ico{font-size:13px;font-weight:400;color:#8fc4dd;line-height:1}
.fedband .vtxt{color:#8fc4dd}
/* Truth Social — плашка источника в стиле плашек ведомств (фиолетовая) */
.row.reg.ts:not(.lvl2){border-color:#4a3f78;background:color-mix(in srgb,#3b2f6e 16%,var(--bg))}
.row.reg.ts .time{color:#b1a3ee;font-weight:500}
.row.reg.ts:not(.lvl2) .txt{color:#d9d2f5;font-weight:500}
.tsband{background:color-mix(in srgb,#3b2f6e 22%,var(--panel));border-color:color-mix(in srgb,#3b2f6e 70%,var(--line))}
.tsband .ico{font-size:13px;font-weight:700;color:#b1a3ee;line-height:1}
.tsband .vtxt{color:#b1a3ee}
/* Санкции — первоисточники (OFAC/SDN, ЕС, OFSI, ответные меры РФ): оранжевая плашка */
.row.reg.sanc:not(.lvl2){border-color:#7a4a1c;background:color-mix(in srgb,#6b3b12 16%,var(--bg))}
.row.reg.sanc .time{color:#f0a860;font-weight:500}
.row.reg.sanc:not(.lvl2) .txt{color:#f3dcc3;font-weight:500}
.sancband{background:color-mix(in srgb,#6b3b12 24%,var(--panel));border-color:color-mix(in srgb,#6b3b12 75%,var(--line))}
.sancband .ico{font-size:13px;font-weight:700;color:#f0a860;line-height:1}
.sancband .vtxt{color:#f0a860}

/* ══ котировки: настроение рынка, группы ══ */
.smood{flex:none;box-sizing:border-box;height:var(--navh2,35px);min-height:35px;
  display:flex;flex-direction:column;justify-content:center;
  padding:0 14px;border-bottom:1px solid var(--line)}
.mbar{display:flex;height:4px;border-radius:3px;overflow:hidden;background:var(--line)}
.mbar i{display:block;height:100%;transition:width .5s ease}
.mbar i.up{background:var(--green)}
.mbar i.dn{background:var(--red)}
.mlab{display:flex;align-items:baseline;margin-top:5px;font-family:var(--mono);font-size:9px;letter-spacing:.1em}
.mlab #mUpN{color:var(--green)}
.mlab #mDnN{color:var(--red);margin-left:auto}
.mlab #mMid{color:var(--dim);text-transform:uppercase;margin:0 auto;letter-spacing:.14em}
.qg{padding:1px 0 0}

/* ══ котировки: строки ══ */
.qg-t{font-size:9px;letter-spacing:.14em;color:var(--dim);padding:4px 10px 1px;text-transform:uppercase}
.qrow{display:flex;align-items:baseline;gap:6px;padding:2px 10px;line-height:1.3;
  -webkit-tap-highlight-color:transparent}

/* ══ котировки: подсветка изменений, колонки ══ */
.qp.tup{animation:qtu 2s cubic-bezier(.4,0,.3,1) both}
.qp.tdn{animation:qtd 2s cubic-bezier(.4,0,.3,1) both}
@keyframes qtu{0%,25%{color:var(--green)}100%{color:var(--tx)}}
@keyframes qtd{0%,25%{color:var(--red)}100%{color:var(--tx)}}
.qn{font-size:11.5px;color:var(--tx);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qp{font-family:var(--mono);font-size:11.5px;color:var(--tx)}
.qc{font-family:var(--mono);font-size:9.5px;min-width:46px;text-align:right;white-space:nowrap}
.qc.up{color:var(--green)}.qc.dn{color:var(--red)}.qc.z{color:var(--dim)}
