/* «ФИР РФ» — тема «Выпуск» (taste skill: colour chapters, seed 1486688175, «Mint and pink»).
   Каждая глава — свой плоский цвет во весь экран: акции мятные, облигации розовые, фонды сливочные, срочный рынок синий,
   посредники чёрные. Мотив — два сцепленных звена цепочки посредников. Один шрифт Commissioner (вместо Cabinet Grotesk без кириллицы).
   Без градиентов, теней, линий-орнамента, моноширинного шрифта, плашек и номеров. Префикс fr-. */

@font-face { font-family: "Commissioner"; font-weight: 400; font-display: swap; src: url(fonts/commissioner-cyrillic-400-normal.woff2) format("woff2"); unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Commissioner"; font-weight: 400; font-display: swap; src: url(fonts/commissioner-latin-400-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+20BD, U+2212, U+00D7, U+25B2; }
@font-face { font-family: "Commissioner"; font-weight: 500; font-display: swap; src: url(fonts/commissioner-cyrillic-500-normal.woff2) format("woff2"); unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Commissioner"; font-weight: 500; font-display: swap; src: url(fonts/commissioner-latin-500-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+20BD, U+2212, U+00D7; }
@font-face { font-family: "Commissioner"; font-weight: 800; font-display: swap; src: url(fonts/commissioner-cyrillic-800-normal.woff2) format("woff2"); unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Commissioner"; font-weight: 800; font-display: swap; src: url(fonts/commissioner-latin-800-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+20BD, U+2212, U+00D7; }

:root {
	--bg: #f8f8f8;
	--surface: #eeeeee;
	--ink: #0a0a0a;
	--muted: #4f4f4f;
	--accent: #1f6b3a;
	--accent-ink: #ffffff;
	--mint: #c3edce;
	--pink: #f8c7c9;
	--butter: #f4e48c;
	--blue: #1d2b5a;
	--paper: #ffffff;
	--f: "Commissioner", "Segoe UI", Arial, sans-serif;
	--step-small: 1rem;
	--step-body: 1.1875rem;
	--step-lead: clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem);
	--step-head: clamp(2.5rem, 1.2rem + 5vw, 5.5rem);
	--step-display: clamp(3.75rem, 1rem + 7vw, 7.5rem);
	--gutter: clamp(16px, 3vw, 40px);
	--ease: cubic-bezier(.2, .8, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--bg); font: 400 var(--step-body)/1.5 var(--f); font-variant-numeric: tabular-nums; overflow-x: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .2em; }
a:hover { text-decoration-thickness: 3px; }
:focus-visible { outline: 3px solid var(--ink); outline-offset: 3px; }
::selection { background: var(--ink); color: var(--paper); }
h1, h2, h3, h4 { margin: 0; font-weight: 800; letter-spacing: -.035em; line-height: .95; }
p { margin: 0; }
b, strong { font-weight: 800; }
table { border-collapse: collapse; }
script, template { display: none !important; }
.fr-sr, .sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.fr-skip { position: absolute; left: 12px; top: -60px; z-index: 50; background: var(--paper); padding: 8px 14px; }
.fr-skip:focus { top: 12px; }
.float_left { float: none; }

.fr-main { padding: 0 var(--gutter) clamp(64px, 8vw, 120px); }
.fr-page--index .fr-main { padding: 0; }

/* ---------- верхняя строка */
.fr-bar { position: relative; z-index: 5; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; padding: 22px var(--gutter); }
.fr-wordmark { display: inline-flex; align-items: center; gap: 10px; font-weight: 800; font-size: 1.5rem; letter-spacing: -.03em; text-decoration: none; }
.fr-wordmark__links { position: relative; width: 34px; height: 22px; }
.fr-wordmark__links i { position: absolute; top: 0; width: 22px; height: 22px; border: 5px solid var(--ink); border-radius: 50%; }
.fr-wordmark__links i:first-child { left: 0; border-color: #2f9a58; }
.fr-wordmark__links i:last-child { left: 12px; border-color: #e0727a; mix-blend-mode: multiply; }
.fr-nav { display: flex; flex-wrap: wrap; gap: 6px 22px; }
.fr-nav a { font-weight: 500; text-decoration: none; }
.fr-nav a:hover { text-decoration: underline; }
.fr-search { margin-left: auto; }
.fr-search input { width: 300px; max-width: 100%; height: 46px; padding: 0 20px; font: 400 var(--step-small) var(--f); color: var(--ink); background: var(--paper); border: 0; border-radius: 23px; }
.fr-search input:focus { outline: 3px solid var(--ink); outline-offset: 0; }
.fr-bar__act { display: flex; align-items: center; }
.fr-bar .fr-user { display: flex; align-items: center; gap: 12px; padding: 0; background: none; }
.fr-user__pm { font-weight: 500; text-decoration: none; }
.fr-user__menu { position: relative; }
.fr-user__menu summary { list-style: none; cursor: pointer; font-weight: 800; text-decoration: underline; }
.fr-user__menu summary::-webkit-details-marker { display: none; }
.fr-user__drop { position: absolute; right: 0; top: calc(100% + 10px); z-index: 30; min-width: 240px; margin: 0; padding: 8px; list-style: none; background: var(--paper); border-radius: 14px; }
.fr-user__drop a { display: block; padding: 8px 12px; text-decoration: none; border-radius: 8px; }
.fr-user__drop a:hover { background: var(--mint); }

/* ---------- кнопки: в форме звена (полностью скруглённые) */
.fr-btn, .button, input.button, input[type="submit"], input[type="button"], button[type="submit"] {
	display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 12px 30px;
	font: 800 1.0625rem var(--f); letter-spacing: -.01em; color: var(--accent-ink); background: var(--accent); border: 0; border-radius: 999px;
	text-decoration: none; cursor: pointer; transition: transform .2s var(--ease), background .2s var(--ease);
}
.fr-btn:hover, .button:hover, input[type="submit"]:hover, button[type="submit"]:hover { background: #185731; color: var(--accent-ink); transform: translateY(-2px); }
.fr-btn:active, .button:active { transform: translateY(0); }

/* ---------- путь */
nav.fr-path { margin: 8px 0 28px; font-size: var(--step-small); }
nav.fr-path ol { display: flex; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; }
nav.fr-path li:not(:last-child)::after { content: "→"; margin: 0 10px; }
.fr-page--index nav.fr-path { display: none; }

/* ---------- первый экран: два огромных сцепленных звена */
.fr-hero { position: relative; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gutter); align-items: center; min-height: calc(100svh - 90px); padding: 0 var(--gutter); overflow: hidden; }
.fr-hero__links { position: absolute; inset: 0; pointer-events: none; }
.fr-ring { position: absolute; top: 50%; width: 118vh; height: 118vh; border-radius: 50%; border: 17vh solid; transform: translateY(-50%); }
.fr-ring--a { left: 52%; border-color: var(--mint); }
.fr-ring--b { left: 70%; border-color: var(--pink); mix-blend-mode: multiply; }
.fr-hero__text { position: relative; grid-column: 1 / span 6; }
.fr-hero__t { max-width: 9.5ch; font-size: var(--step-display); line-height: .92; }
.fr-hero__lead { margin-top: 28px; max-width: 48ch; font-size: var(--step-lead); line-height: 1.4; }
.fr-hero__text .fr-btn { margin-top: 32px; }

/* ---------- сейчас разбирают */
.fr-now { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gutter); align-items: start; padding: clamp(80px, 10vw, 160px) var(--gutter); background: var(--paper); }
.fr-now__fig { grid-column: 1 / span 6; margin: 0; }
.fr-now__fig img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 50% 50% 0 0 / 34% 34% 0 0; }
.fr-now__fig figcaption { margin-top: 12px; font-size: var(--step-small); }
.fr-now__list { grid-column: 8 / -1; }
.fr-h2 { font-size: clamp(2.25rem, 1.2rem + 3vw, 4rem); }
.fr-latest { margin: 28px 0 0; padding: 0; list-style: none; }
.fr-latest li { position: relative; padding: 14px 0 14px 26px; }
.fr-latest li::before { content: ""; position: absolute; left: 0; top: 23px; width: 12px; height: 12px; border: 3px solid var(--ink); border-radius: 50%; }
.fr-latest__k { display: block; font-size: var(--step-small); }
.fr-latest li { max-width: 62ch; }
.fr-latest__t { display: block; margin-top: 2px; font-weight: 800; letter-spacing: -.01em; text-decoration: none; }
.fr-latest__t:hover { text-decoration: underline; }
.fr-latest__m { display: block; margin-top: 2px; font-size: var(--step-small); }

/* ---------- цепочка расходов: закреплённый чек и управление */
.fr-calc { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gutter); background: var(--bg); }
.fr-calc__stage { grid-column: 1 / span 6; position: sticky; top: 0; height: 100svh; display: grid; place-items: center; padding: 40px var(--gutter); background: var(--mint); }
.fr-check { width: min(440px, 100%); padding: 32px 30px 28px; background: var(--paper); border-radius: 28px; }
.fr-check__head { display: flex; flex-direction: column; gap: 4px; }
.fr-check__head span { font-size: var(--step-small); }
.fr-check__head b { font-size: 1.625rem; letter-spacing: -.02em; line-height: 1.1; }
.fr-check__sum { margin-top: 10px; font-size: var(--step-small); }
.fr-check__chain { margin: 24px 0 0; padding: 0; list-style: none; }
.fr-check__chain li { position: relative; display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 12px; align-items: baseline; padding: 10px 0; }
.fr-check__chain li::before { content: ""; width: 14px; height: 14px; border: 4px solid var(--ink); border-radius: 50%; transform: translateY(2px); }
.fr-check__chain li + li::after { content: ""; position: absolute; left: 10px; top: -10px; width: 4px; height: 20px; background: var(--ink); }
.fr-check__chain small { display: block; font-size: .9375rem; color: var(--muted); }
.fr-check__chain b { white-space: nowrap; }
.fr-check__chain li.is-zero b { color: var(--muted); font-weight: 500; }
.fr-check__total { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; margin-top: 18px; padding: 16px 18px; background: var(--ink); color: var(--paper); border-radius: 16px; }
.fr-check__total b { font-size: 1.75rem; letter-spacing: -.02em; }
.fr-check__share { margin-top: 12px; font-size: var(--step-small); }
.fr-calc__read { grid-column: 8 / -1; padding: 96px var(--gutter) 25vh 0; max-width: 44ch; }
.fr-calc__block { margin-top: 30vh; }
.fr-calc__block:first-of-type { margin-top: 56px; }
.fr-calc__say { font-size: clamp(1.625rem, 1.2rem + 1vw, 2rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.1; }
.fr-calc__block > p:not(.fr-calc__say) { margin-top: 12px; }
.fr-calc__note { margin-top: 30vh; max-width: 60ch; font-size: var(--step-small); }
.fr-seg { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.fr-seg button { min-height: 46px; padding: 10px 18px; font: 500 var(--step-small) var(--f); color: var(--ink); background: var(--surface); border: 0; border-radius: 999px; cursor: pointer; transition: background .2s var(--ease), color .2s var(--ease); }
.fr-seg button:hover { background: var(--mint); }
.fr-seg button[aria-checked="true"] { color: var(--paper); background: var(--ink); }
.fr-range { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 14px; align-items: center; margin-top: 20px; font-size: var(--step-small); }
.fr-range output { font-weight: 800; min-width: 6.5em; text-align: right; }
.fr-range input { width: 100%; accent-color: var(--accent); height: 28px; }

/* ---------- путь одной заявки: четыре поля */
.fr-route { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fr-route__f { position: relative; min-height: 84svh; padding: 28px; display: flex; flex-direction: column; }
.fr-route__f--1 { background: var(--mint); }
.fr-route__f--2 { background: var(--pink); }
.fr-route__f--3 { background: var(--butter); }
.fr-route__f--4 { background: var(--blue); color: var(--paper); }
.fr-route__h { position: absolute; left: 28px; top: 28px; right: 28px; font-size: clamp(1.5rem, 1rem + 1.4vw, 2.25rem); letter-spacing: -.02em; line-height: 1.05; max-width: 10ch; }
.fr-order { width: 260px; max-width: 100%; margin: auto auto 0; margin-top: 30%; padding: 20px 20px 16px; color: var(--ink); background: var(--paper); border-radius: 20px; transition: transform .15s var(--ease); }
.fr-route__f:hover .fr-order { transform: translateY(-6px); }
.fr-order__k { font-size: .9375rem; }
.fr-order__t { margin-top: 2px; font-size: 1.375rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.1; }
.fr-order dl { margin: 14px 0 0; display: grid; gap: 6px; font-size: .9375rem; }
.fr-order dl div { display: flex; justify-content: space-between; gap: 10px; }
.fr-order dd { margin: 0; font-weight: 500; text-align: right; }
.fr-route__say { margin-top: auto; padding-top: 32px; font-size: clamp(1.25rem, 1rem + .7vw, 1.75rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.15; }

/* ---------- главы разделов: каждый цвет — класс инструментов */
.fr-ch { min-height: 90svh; padding: clamp(72px, 9vw, 140px) var(--gutter); }
.fr-ch--mint { background: var(--mint); }
.fr-ch--pink { background: var(--pink); }
.fr-ch--butter { background: var(--butter); }
.fr-ch--blue { background: var(--blue); color: var(--paper); }
.fr-ch--ink { background: var(--ink); color: var(--paper); }
.fr-ch--paper { background: var(--paper); }
.fr-ch__t { font-size: clamp(3.5rem, 1rem + 8vw, 9rem); line-height: .9; }
.fr-ch__t a { text-decoration: none; }
.fr-ch__t a:hover { text-decoration: underline; text-decoration-thickness: 6px; }
.fr-ch__body { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gutter); row-gap: 40px; margin-top: 64px; align-items: start; }
.fr-ch__list { grid-column: 1 / span 7; margin: 0; padding: 0; list-style: none; }
.fr-ch__fig { grid-column: 9 / -1; margin: 0; }
.fr-ch__fig img { width: 100%; aspect-ratio: 5 / 7; object-fit: cover; border-radius: 999px 999px 24px 24px; }
.fr-ch__fig figcaption { margin-top: 12px; font-size: var(--step-small); }
.fr-ch__body:not(:has(.fr-ch__fig)) .fr-ch__list { grid-column: 1 / span 9; }
.fr-row { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 14px; align-items: baseline; padding: 18px 0; }
.fr-row__dot { width: 16px; height: 16px; border: 4px solid currentColor; border-radius: 50%; transform: translateY(3px); }
.fr-row__dot.forum_on { background: currentColor; }
.fr-row__name { font-size: clamp(1.375rem, 1.1rem + .8vw, 1.875rem); font-weight: 800; letter-spacing: -.02em; text-decoration: none; }
.fr-row__name:hover { text-decoration: underline; }
.fr-row__desc { margin-top: 6px; max-width: 60ch; }
.fr-row__last { margin-top: 6px; font-size: var(--step-small); }
.fr-row__last:empty { display: none; }
.fr-row__last a { font-weight: 500; }
.fr-row__count { font-weight: 800; white-space: nowrap; }

/* ---------- частые вопросы: полоса на вопрос */
.fr-faq__t { display: flex; align-items: flex-end; min-height: 40svh; padding: 40px var(--gutter); font-size: clamp(3rem, 1rem + 6vw, 7rem); color: var(--accent-ink); background: var(--accent); }
.fr-band { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gutter); padding: 56px var(--gutter); }
.fr-band:nth-of-type(odd) { background: var(--paper); }
.fr-band:nth-of-type(even) { background: var(--bg); }
.fr-band__q { grid-column: 1 / span 5; font-size: clamp(1.5rem, 1.1rem + 1vw, 2rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.15; }
.fr-band__a { grid-column: 7 / -1; max-width: 62ch; }

/* ---------- шапки разделов и тем */
.fr-screen { display: flex; flex-direction: column; gap: 28px; }
.fr-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px 32px; margin: 0 calc(var(--gutter) * -1); padding: clamp(48px, 6vw, 96px) var(--gutter) 40px; background: var(--mint); }
.fr-page--thread .fr-head { background: var(--pink); }
.fr-pagehead { grid-column: 1; font-size: clamp(2.5rem, 1rem + 5vw, 5.5rem); }
.fr-pagehead--thread { font-size: clamp(2rem, 1rem + 3.4vw, 4rem); line-height: 1; }
.fr-head__desc, .fr-head__meta, .fr-head__forum { grid-column: 1; max-width: 70ch; }
.fr-head__desc:empty { display: none; }
.fr-head__meta { font-size: var(--step-small); }
.fr-head__forum { font-weight: 800; }
.fr-head__act { grid-column: 2; grid-row: 1 / span 3; align-self: end; }
.fr-head__act:empty { display: none; }

/* ---------- список тем: настоящая таблица */
.fr-tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 18px; padding: 12px 0; }
.fr-tools:empty { display: none; }
.fr-tools__right { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; font-size: var(--step-small); }
.fr-sort { display: flex; flex-wrap: wrap; gap: 8px; }
.fr-sort a { padding: 8px 16px; font-weight: 500; text-decoration: none; background: var(--surface); border-radius: 999px; }
.fr-sort a:hover { background: var(--mint); }
.fr-mod-row { display: none; }
.fr-mod-row:has(td) { display: table; }
.fr-table { width: 100%; }
.fr-table th { padding: 10px 14px 10px 0; text-align: left; font-size: var(--step-small); font-weight: 500; }
.fr-table td { padding: 18px 14px 18px 0; vertical-align: top; box-shadow: inset 0 2px 0 var(--surface); }
.fr-trow:hover td { background: #f1f1f1; }
.fr-table .num { width: 110px; text-align: right; white-space: nowrap; }
.fr-table th.num { text-align: right; }
.fr-table .num a { text-decoration: none; }
.fr-trow__state { display: none; }
.fr-trow__state[class*="new"] { display: inline-block; width: 12px; height: 12px; margin-right: 8px; border: 3px solid var(--ink); border-radius: 50%; background: var(--pink); }
.fr-trow__title { font-weight: 800; letter-spacing: -.01em; font-size: 1.25rem; }
.fr-trow__title a { text-decoration: none; }
.fr-trow__title a:hover { text-decoration: underline; }
.fr-trow__meta { display: block; margin-top: 4px; font-size: var(--step-small); }
.fr-trow__last { width: 220px; font-size: var(--step-small); }
.fr-trow__last span { display: block; }
.forumdisplay_sticky .fr-trow__title::before { content: "Важно: "; }
.pagination, .fr-pages { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.pagination .pages { margin-right: 8px; font-size: var(--step-small); }
.pagination a, .pagination_current { min-width: 44px; min-height: 44px; display: inline-grid; place-items: center; padding: 0 10px; font-weight: 800; text-decoration: none; background: var(--surface); border-radius: 999px; }
.pagination a:hover { background: var(--mint); }
.pagination_current { color: var(--paper); background: var(--ink); }

/* ---------- сообщения: котировка участника */
.fr-posts { display: flex; flex-direction: column; gap: 40px; }
.fr-post__row { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 40px; }
.fr-post .fr-user, .fr-card__quote { --tone: var(--mint); display: flex; flex-direction: column; gap: 10px; align-self: start; padding: 22px 22px 24px; background: var(--tone); border-radius: 28px; }
.fr-post .fr-user { position: sticky; top: 20px; }
.fr-user--mint { --tone: var(--mint); }
.fr-user--pink { --tone: var(--pink); }
.fr-user--butter { --tone: var(--butter); }
.fr-user--blue { --tone: #c9d3f2; }
.fr-user__ticker { align-self: start; padding: 4px 14px; font-weight: 800; font-size: 1rem; letter-spacing: .02em; color: var(--paper); background: var(--ink); border-radius: 999px; }
.fr-user__ticker:has(> .fr-user__photo) { display: inline-flex; align-items: center; gap: 8px; padding: 2px 14px 2px 2px; }
.fr-user__photo { flex: none; display: block; width: 28px; height: 28px; object-fit: cover; border-radius: inherit; }
.fr-user__name { font-size: 1.75rem; font-weight: 800; letter-spacing: -.03em; line-height: 1; text-decoration: none; overflow-wrap: anywhere; }
.fr-user__name:hover { text-decoration: underline; }
.fr-user__rank { font-weight: 500; }
.fr-user__lot { font-size: var(--step-small); }
.fr-user__lot b { font-size: 2.5rem; letter-spacing: -.04em; line-height: 1; margin-right: 6px; }
.fr-quote { display: inline-flex; flex-direction: column; align-self: start; padding: 10px 16px; background: var(--paper); border-radius: 18px; }
.fr-quote b { font-size: 1.375rem; letter-spacing: -.02em; }
.fr-quote.is-up b { color: var(--accent); }
.fr-quote span { font-size: var(--step-small); }
.fr-ufacts { display: grid; gap: 8px; font-size: var(--step-small); }
.fr-ufacts span { display: block; font-weight: 500; }
.fr-post__main { min-width: 0; }
.fr-post__bar { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 18px; padding-bottom: 14px; font-size: var(--step-small); }
.fr-post__no { font-weight: 800; text-decoration: none; }
.fr-post__no:hover { text-decoration: underline; }
.fr-starter { padding: 2px 12px; font-weight: 800; background: var(--pink); border-radius: 999px; }
.fr-post__edit:empty, .fr-post__check:empty, .fr-post__status:empty { display: none; }
.fr-post__check { margin-left: auto; }
.fr-post__body { font-size: var(--step-body); line-height: 1.6; max-width: 70ch; overflow-wrap: anywhere; }
.fr-post--first .fr-post__body { font-size: 1.375rem; line-height: 1.5; }
.fr-post__body a.mycode_url, .signature a.mycode_url { font-weight: 800; }
.fr-post__body a.mycode_url[target="_blank"]::after { content: "\2009↗"; text-decoration: none; display: inline-block; }
blockquote, .mycode_quote { margin: 14px 0; padding: 16px 20px; background: var(--surface); border-radius: 18px; }
blockquote cite, .mycode_quote cite { display: block; margin-bottom: 6px; font-style: normal; font-weight: 800; font-size: var(--step-small); }
.codeblock { margin: 14px 0; padding: 16px 20px; background: var(--surface); border-radius: 18px; overflow: auto; }
.codeblock code, .codeblock pre { font: 0.9375rem/1.5 ui-monospace, Menlo, Consolas, monospace; white-space: pre-wrap; }
.post_body ul, .post_body ol { padding-left: 24px; }
.mycode_s { text-decoration: line-through; }
.signature { margin-top: 16px; font-size: var(--step-small); }
.post_meta:not(:has(*:not(:empty))) { display: none; }
.fr-post__controls { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; margin-top: 18px; padding-left: 320px; }
.fr-post__controls:not(:has(a)) { display: none; }
.postbit_buttons { display: flex; flex-wrap: wrap; gap: 8px; }
.postbit_buttons a { padding: 8px 16px; font-size: var(--step-small); font-weight: 500; text-decoration: none; background: var(--surface); border-radius: 999px; }
.postbit_buttons a span { background: none !important; padding: 0 !important; }
.postbit_buttons a:hover { background: var(--mint); }
.fr-adjacent { display: flex; justify-content: space-between; gap: 12px; font-weight: 800; }

/* ---------- ответ и гость */
.fr-reply, .fr-guest { padding: 28px; background: var(--butter); border-radius: 28px; }
.fr-reply__head h2 { font-size: var(--step-head); }
.fr-reply__head p { margin-top: 6px; font-size: var(--step-small); }
.fr-reply textarea { width: 100%; min-height: 160px; margin-top: 14px; }
.fr-reply__opts { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 10px; font-size: var(--step-small); }
.fr-reply__opts label { display: inline-flex; gap: 6px; align-items: center; }
.fr-reply__captcha:not(:has(td)) { display: none; }
.fr-reply__act { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 14px; }
.fr-guest { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; }
.fr-guest p { font-weight: 800; font-size: var(--step-lead); }
.fr-modtools { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; font-size: var(--step-small); }
.fr-modtools:not(:has(a, select, input)) { display: none; }
.thread_tools { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.thread_tools li { background: none !important; padding: 0 !important; }
.fr-modtools > div:empty, .fr-browsing:empty { display: none; }

/* ---------- профиль */
.fr-card { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 48px; align-items: start; padding-top: 16px; }
.fr-card__name { font-size: clamp(2.5rem, 1.4rem + 3vw, 4.5rem); overflow-wrap: anywhere; }
.fr-card__side { display: flex; flex-direction: column; gap: 18px; }
.fr-card__facts { width: 100%; }
.fr-card__facts th { width: 38%; padding: 14px 16px 14px 0; text-align: left; font-weight: 500; vertical-align: top; }
.fr-card__facts td { padding: 14px 0; font-weight: 800; }
.fr-card__facts tr + tr th, .fr-card__facts tr + tr td { box-shadow: inset 0 2px 0 var(--surface); }
.fr-card__links { font-weight: 400; font-size: var(--step-small); margin-left: 10px; }
.fr-card__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.fr-card__actions:empty { display: none; }
.fr-card__note { font-size: var(--step-small); }
.fr-hidden-empty:not(:has(td)) { display: none; }
.fr-profile-extra:empty { display: none; }

/* ---------- вход, ошибки, ожидание */
.fr-gate, .fr-error, .fr-wait { max-width: 560px; margin: 40px 0; padding: 36px; background: var(--mint); border-radius: 28px; }
.fr-gate h1, .fr-error h1, .fr-wait h1 { font-size: var(--step-head); }
.fr-form { display: flex; flex-direction: column; gap: 14px; margin-top: 18px; }
.fr-field { display: flex; flex-direction: column; gap: 6px; font-weight: 800; }
.fr-field .textbox { width: 100%; }
.fr-form__row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; font-size: var(--step-small); }
.fr-checkline { display: inline-flex; align-items: center; gap: 8px; }
.fr-form__submit { width: 100%; }
.fr-error__text { margin-top: 12px; }
.fr-error__links { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-top: 18px !important; }

/* ---------- стандартные блоки MyBB */
.tborder { width: 100%; margin-bottom: 18px; background: var(--paper); border-radius: 18px; overflow: hidden; }
.tborder td, .tborder th { padding: 12px 16px; text-align: left; }
.thead { font-weight: 800; font-size: var(--step-lead); background: var(--mint); }
.tcat { font-weight: 500; background: var(--surface); }
.trow1, .trow2 { background: transparent; }
.trow_shaded, .unapproved_post { background: #fbf2c4 !important; }
.trow_selected, tr.trow_selected td { background: #f6e9a8 !important; }
.trow_deleted, .deleted_post_hidden { background: var(--pink) !important; }
.smalltext { font-size: var(--step-small); }
.largetext { font-weight: 800; font-size: var(--step-lead); }
.expcolimage { float: right; }
fieldset { border: 0; padding: 16px 20px; background: var(--surface); border-radius: 18px; }
fieldset legend { padding: 0; font-weight: 800; }
input.textbox, input[type="text"], input[type="password"], input[type="email"], input[type="number"], input[type="search"]:not(#fr-q), input[type="url"], input[type="date"], select, textarea {
	max-width: 100%; min-height: 48px; padding: 10px 16px; font: 400 var(--step-body) var(--f); color: var(--ink);
	background: var(--paper); border: 2px solid var(--surface); border-radius: 14px;
}
textarea { min-height: 120px; line-height: 1.5; resize: vertical; }
select[multiple] { min-height: 120px; }
input.textbox:focus, input[type="text"]:focus, input[type="password"]:focus, select:focus, textarea:focus { outline: 3px solid var(--ink); outline-offset: 0; }
input[type="checkbox"], input[type="radio"] { width: 18px; height: 18px; accent-color: var(--accent); }
.fr-formtable td { padding: 6px 0; }
.fr-formtable .textbox { width: 100%; }
.fr-formtable .button { width: 100%; margin-top: 8px; }
.red_alert, .pm_alert { margin-bottom: 16px; padding: 14px 20px; font-weight: 800; background: var(--pink); border-radius: 18px; }
div.error { margin-bottom: 16px; padding: 14px 20px; background: var(--pink); border-radius: 18px; }
div.error ul { margin: 6px 0 0; padding-left: 20px; }
.popup_menu { background: var(--paper); padding: 6px; border-radius: 14px; }
.popup_menu .popup_item { display: block; padding: 8px 12px; text-decoration: none; border-radius: 8px; }
.popup_menu .popup_item:hover { background: var(--mint); }
.blocker { position: fixed; inset: 0; z-index: 9998; background: rgba(10, 10, 10, .7); padding: 20px; overflow: auto; text-align: center; }
.blocker::before { content: ""; display: inline-block; height: 100%; vertical-align: middle; }
.modal { display: none; vertical-align: middle; position: relative; z-index: 9999; width: 92%; max-width: 460px; padding: 0 0 20px; text-align: left; background: var(--paper); border-radius: 28px; }
.modal form, .modal > div { padding: 0 22px; }
.modal a.close-modal { position: absolute; top: 16px; right: 16px; width: 28px; height: 28px; text-indent: -9999px; overflow: hidden; }
.modal a.close-modal::before { content: "×"; position: absolute; inset: 0; display: grid; place-items: center; text-indent: 0; font-size: 28px; }
.fr-modal__title { margin: 0 -22px 14px; padding: 24px 22px 16px; font-size: var(--step-head); background: var(--mint); border-radius: 28px 28px 0 0; }
.jGrowl { z-index: 9999; position: fixed; }
.jGrowl.top-right { top: 16px; right: 16px; }
.jGrowl .jGrowl-notification, .jGrowl .jGrowl-closer { width: 280px; margin-top: 8px; padding: 12px 16px; background: var(--ink); color: var(--paper); border-radius: 14px; }
.jGrowl .jGrowl-close { float: right; cursor: pointer; }

/* ---------- подвал: название первым */
.fr-foot { overflow: hidden; color: var(--paper); background: var(--ink); }
.fr-foot__in { padding: 48px var(--gutter) 40px; }
.fr-foot__name { font-weight: 800; font-size: clamp(5rem, 1rem + 19vw, 22rem); letter-spacing: -.05em; line-height: .8; white-space: nowrap; }
.fr-foot__row { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gutter); margin-top: 72px; }
.fr-foot__main { grid-column: 1 / span 5; display: flex; flex-direction: column; gap: 8px; }
.fr-foot__main a { font-size: clamp(1.625rem, 1.2rem + 1vw, 2.25rem); font-weight: 800; letter-spacing: -.02em; color: var(--mint); text-decoration: none; }
.fr-foot__main a:hover { text-decoration: underline; }
.fr-foot__small { grid-column: 7 / -1; display: flex; flex-wrap: wrap; gap: 10px 28px; align-content: start; }
.fr-foot__small a { color: var(--paper); }
.fr-foot__legal { margin-top: 96px; max-width: 70ch; font-size: var(--step-small); }

/* ---------- движение */
.js [data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.js [data-reveal].is-in { opacity: 1; transform: none; }
.fr-ring { transition: transform 1.2s var(--ease); }
.fr-hero:hover .fr-ring--a { transform: translate(-1.5vw, -50%) rotate(8deg); }
.fr-hero:hover .fr-ring--b { transform: translate(1.5vw, -50%) rotate(-8deg); }

/* ---------- адаптив */
@media (max-width: 1080px) {
	.fr-hero { display: block; min-height: 0; padding: 48px var(--gutter) 34vw; }
	.fr-ring { top: auto; bottom: -78vw; width: 110vw; height: 110vw; border-width: 16vw; transform: none; }
	.fr-ring--a { left: -6vw; }
	.fr-ring--b { left: 26vw; }
	.fr-hero:hover .fr-ring--a, .fr-hero:hover .fr-ring--b { transform: none; }
	.fr-hero__t { max-width: 12ch; }
	.fr-route { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fr-route__f { min-height: 64svh; }
	.fr-post__row { grid-template-columns: 240px minmax(0, 1fr); gap: 28px; }
	.fr-post__controls { padding-left: 268px; }
}
@media (max-width: 760px) {
	.fr-bar { gap: 10px 18px; }
	.fr-nav { order: 3; width: 100%; }
	.fr-search { order: 4; width: 100%; margin: 0; }
	.fr-search input { width: 100%; }
	.fr-hero { display: block; min-height: 0; padding: 32px var(--gutter) 40vw; }
	.fr-ring { top: auto; bottom: -86vw; width: 120vw; height: 120vw; border-width: 18vw; transform: none; }
	.fr-ring--a { left: -10vw; }
	.fr-ring--b { left: 22vw; }
	.fr-hero:hover .fr-ring--a, .fr-hero:hover .fr-ring--b { transform: none; }
	.fr-hero__t { font-size: 13vw; }
	.fr-hero__lead { font-size: 1.125rem; margin-top: 18px; }
	.fr-now { display: block; }
	.fr-now__list { margin-top: 40px; }
	.fr-calc { display: block; }
	.fr-calc__stage { position: static; height: auto; min-height: 0; padding: 24px 16px; }
	.fr-check { padding: 18px 18px 16px; border-radius: 20px; }
	.fr-check__head b { font-size: 1.25rem; }
	.fr-check__chain li { padding: 4px 0; font-size: .9375rem; }
	.fr-check__total { margin-top: 10px; padding: 10px 14px; }
	.fr-check__total b { font-size: 1.25rem; }
	.fr-calc__read { padding: 32px var(--gutter) 48px; max-width: none; }
	.fr-calc__block, .fr-calc__note { margin-top: 48px; }
	.fr-calc__say { font-size: 1.375rem; }
	.fr-route { grid-template-columns: minmax(0, 1fr); }
	.fr-route__f { min-height: 0; padding: 24px 20px 32px; }
	.fr-order { margin: 24px 0 0; }
	.fr-route__h { position: static; margin-bottom: 8px; }
	.fr-route__say { padding-top: 20px; }
	.fr-ch { min-height: 0; padding: 64px var(--gutter); }
	.fr-ch__t { font-size: 10.5vw; }
	.fr-row__name { font-size: 1.25rem; }
	.fr-row__desc { font-size: 1rem; }
	.fr-ch__body { display: block; margin-top: 32px; }
	.fr-ch__fig { width: 70%; margin: 24px 0 0 auto; }
	.fr-row { grid-template-columns: 22px minmax(0, 1fr); }
	.fr-row__count { grid-column: 2; }
	.fr-band { display: block; padding: 32px var(--gutter); }
	.fr-band__a { margin-top: 12px; }
	.fr-faq__t { min-height: 30svh; font-size: 13vw; }
	.fr-head { grid-template-columns: minmax(0, 1fr); }
	.fr-head__act { grid-column: 1; grid-row: auto; }
	.fr-post__row { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.fr-post .fr-user { position: static; }
	.fr-post__controls { padding-left: 0; }
	.fr-card { grid-template-columns: minmax(0, 1fr); gap: 24px; }
	.fr-table thead { display: none; }
	.fr-table, .fr-table tbody, .fr-table tr, .fr-table td { display: block; width: 100%; }
	.fr-table tr { padding: 16px 0; box-shadow: inset 0 2px 0 var(--surface); }
	.fr-table td { padding: 0; box-shadow: none; background: none !important; }
	.fr-table .num { display: inline-block; width: auto; margin: 6px 14px 0 0; text-align: left; font-size: var(--step-small); }
	.fr-table .num:nth-of-type(2)::after { content: " ответов"; }
	.fr-table .num:nth-of-type(3)::after { content: " просмотров"; }
	.fr-trow__last { display: none !important; }
	.fr-foot__name { font-size: 30vw; }
	.fr-foot__row { display: block; margin-top: 40px; }
	.fr-foot__small { margin-top: 32px; }
	.fr-foot__legal { margin-top: 48px; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; }
	.js [data-reveal] { opacity: 1 !important; transform: none !important; }
}

/* ===== ссылки в сообщениях: свой стиль форума (у каждого форума сетки свой, не повторять) ===== */
:is(.post_body, .signature, [class*="-post__body"], [class*="-post__sign"]) a.mycode_url, :is(.post_body, .signature, [class*="-post__body"], [class*="-post__sign"]) a.mycode_url:link, :is(.post_body, .signature, [class*="-post__body"], [class*="-post__sign"]) a.mycode_url:visited { font-style: normal; text-decoration: none; text-underline-offset: auto; text-shadow: none; background: none; border: 0; box-shadow: none; padding: 0; border-radius: 0; overflow-wrap: anywhere; -webkit-box-decoration-break: clone; box-decoration-break: clone; color: #0a0a0a; font-weight: 600; background: linear-gradient(90deg, #1f6b3a, rgba(31, 107, 58, 0)) 0 100% / 100% 2px no-repeat; padding-bottom: 1px; }
:is(.post_body, .signature, [class*="-post__body"], [class*="-post__sign"]) a.mycode_url:hover, :is(.post_body, .signature, [class*="-post__body"], [class*="-post__sign"]) a.mycode_url:focus-visible { color: #1f6b3a; background: linear-gradient(90deg, #1f6b3a, rgba(31, 107, 58, 0)) 0 100% / 100% 2px no-repeat, #c3edce; }
:is(.post_body, .signature, [class*="-post__body"], [class*="-post__sign"]) a.mycode_url[target="_blank"]::after { content: none; display: none; }
/* ===== конец стиля ссылок ===== */
