/* ==========================================================================
   Такси в СПб — тема «Путевой лист»
   Асфальт, бумага путевого листа, жёлтый плафон и шашечки.
   Шрифты: Oswald (заголовки, цифры) и Inter (текст), лицензия SIL OFL.
   ========================================================================== */

@font-face {
	font-family: "Oswald";
	src: url("fonts/oswald-var.ttf") format("truetype");
	font-weight: 200 700;
	font-display: swap;
}
@font-face {
	font-family: "Inter";
	src: url("fonts/inter-cyrillic.woff2") format("woff2");
	font-weight: 100 900;
	font-display: swap;
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
	font-family: "Inter";
	src: url("fonts/inter-latin.woff2") format("woff2");
	font-weight: 100 900;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
	--ink: #16181b;
	--ink-2: #23262b;
	--ink-3: #353a41;
	--on-ink: #ece8df;
	--on-ink-muted: #a9a49a;
	--paper: #f4f1ea;
	--paper-2: #ebe5d8;
	--card: #fffdf8;
	--row-alt: #faf7f0;
	--line: #ddd5c6;
	--line-2: #c7bead;
	--text: #1b1d21;
	--muted: #5c6067;
	--taxi: #ffc21a;
	--taxi-2: #f0b000;
	--taxi-soft: #fff1c2;
	--green: #2d7a4b;
	--green-soft: #dcefe2;
	--red: #b3362b;
	--red-soft: #f8e1dd;
	--steel: #1f3b52;
	--steel-soft: #dfe7ee;

	--f-head: "Oswald", "Arial Narrow", "Roboto Condensed", sans-serif;
	--f-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

	--r: 12px;
	--r-s: 8px;
	--shadow: 0 1px 0 rgba(22, 24, 27, .05), 0 10px 24px -18px rgba(22, 24, 27, .45);
	--checker: repeating-conic-gradient(var(--ink) 0 25%, var(--taxi) 0 50%) 0 0 / 12px 12px;
	--ease: cubic-bezier(.2, .7, .2, 1);
	--wrap: 1200px;
}

/* ---------- база ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 16px; }
body {
	margin: 0;
	background: var(--paper);
	color: var(--text);
	font: 400 16px/1.6 var(--f-body);
	font-feature-settings: "cv11", "ss01";
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}
img, svg { max-width: 100%; }
img { height: auto; border: 0; }
a { color: var(--text); text-decoration: underline; text-decoration-color: var(--taxi-2); text-decoration-thickness: 2px; text-underline-offset: 3px; transition: color .15s var(--ease), background-color .15s var(--ease), text-decoration-color .15s var(--ease); }
a:hover { text-decoration-color: var(--ink); }
:focus-visible { outline: 3px solid var(--taxi); outline-offset: 2px; border-radius: 4px; }
.tx-top :focus-visible, .tx-foot :focus-visible { outline-color: var(--taxi); }
h1, h2, h3, h4 { font-family: var(--f-head); font-weight: 600; line-height: 1.15; margin: 0; letter-spacing: .005em; }
p { margin: 0 0 .8em; }
hr { border: 0; border-top: 1px solid var(--line); margin: 20px 0; }
table { border-collapse: collapse; }
script, template { display: none !important; }
.sr, .tx-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.tx-skip { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--taxi); color: var(--ink); padding: 10px 16px; border-radius: var(--r-s); font-weight: 600; }
.tx-skip:focus { top: 12px; }
.float_left { float: left; }
.float_right { float: right; }
.clear { clear: both; }
br.clear { display: block; height: 0; }
.hidden { display: none; }
.tx-wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 20px; }
.tx-i { width: 20px; height: 20px; flex: none; }

/* ---------- кнопки ---------- */
.tx-btn, .button, input.button, button.button, input[type="submit"], input[type="button"], button[type="submit"] {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 44px; padding: 0 18px;
	border: 2px solid transparent; border-radius: var(--r-s);
	background: var(--taxi); color: var(--ink);
	font: 600 15px/1 var(--f-head); letter-spacing: .04em; text-transform: uppercase;
	text-decoration: none; cursor: pointer; white-space: nowrap;
	transition: background-color .15s var(--ease), border-color .15s var(--ease), transform .1s var(--ease);
}
.tx-btn:hover, .button:hover, input[type="submit"]:hover, input[type="button"]:hover, button[type="submit"]:hover { background: var(--taxi-2); }
.tx-btn:active, .button:active, input[type="submit"]:active { transform: translateY(1px); }
.tx-btn:focus-visible, .button:focus-visible, input[type="submit"]:focus-visible { outline-color: var(--ink); }
.tx-btn .tx-i { width: 18px; height: 18px; }
.tx-btn--line { background: transparent; border-color: var(--ink); color: var(--ink); }
.tx-btn--line:hover { background: var(--ink); color: var(--paper); }
.tx-top .tx-btn--line, .tx-hero .tx-btn--ghost { border-color: var(--on-ink-muted); color: var(--on-ink); background: transparent; }
.tx-top .tx-btn--line:hover { border-color: var(--taxi); color: var(--taxi); background: transparent; }
.tx-btn--ghost { background: transparent; border-color: var(--ink); }
.tx-btn--ghost:hover { background: var(--ink); color: var(--paper); }
.tx-btn--off { background: var(--paper-2); color: var(--muted); border-color: var(--line-2); }
.tx-btn--off:hover { background: var(--line); }

/* ---------- шапка ---------- */
.tx-top { background: var(--ink); color: var(--on-ink); position: relative; }
.tx-top__bar { display: flex; align-items: center; gap: 28px; min-height: 76px; }
.tx-logo { display: inline-flex; align-items: center; gap: 12px; color: var(--on-ink); text-decoration: none; flex: none; }
.tx-logo__lamp { width: 52px; height: 33px; flex: none; }
.tx-logo__text { display: inline-flex; align-items: baseline; gap: 9px; font-family: var(--f-head); line-height: 1; text-transform: uppercase; white-space: nowrap; }
.tx-logo__text b { font-weight: 700; font-size: 27px; letter-spacing: .05em; color: var(--taxi); }
.tx-logo__text i { font-style: normal; font-weight: 400; font-size: 27px; letter-spacing: .03em; color: var(--on-ink); }
.tx-nav { display: flex; gap: 4px; }
.tx-nav a { color: var(--on-ink); text-decoration: none; font: 500 15px/1 var(--f-head); letter-spacing: .08em; text-transform: uppercase; padding: 10px 12px; border-radius: 6px; }
.tx-nav a:hover { color: var(--taxi); background: var(--ink-2); }
.tx-search { position: relative; margin-left: auto; flex: 0 1 300px; }
.tx-search input { width: 100%; height: 44px; padding: 0 46px 0 16px; border-radius: 22px; border: 1.5px solid var(--ink-3); background: var(--ink-2); color: var(--on-ink); font: 400 15px var(--f-body); }
.tx-search input::placeholder { color: var(--on-ink-muted); }
.tx-search input:focus { outline: none; border-color: var(--taxi); box-shadow: 0 0 0 3px rgba(255, 194, 26, .25); }
.tx-search button { position: absolute; right: 4px; top: 4px; width: 36px; height: 36px; min-height: 0; padding: 0; border-radius: 50%; background: transparent; color: var(--on-ink); border: 0; }
.tx-search button:hover { background: var(--ink-3); color: var(--taxi); }
.tx-checker { height: 12px; background: var(--checker); }
.tx-checker--thin { height: 8px; background-size: 8px 8px; }

.tx-user { display: flex; align-items: center; gap: 10px; flex: none; }
.tx-user__icon { position: relative; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: var(--on-ink); }
.tx-user__icon:hover { background: var(--ink-2); color: var(--taxi); }
.tx-count { position: absolute; top: 4px; right: 2px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--taxi); color: var(--ink); font: 700 12px/18px var(--f-body); text-align: center; }
.tx-count[data-n="0"] { display: none; }
.tx-user__menu { position: relative; }
.tx-user__menu summary { list-style: none; display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 4px 12px 4px 4px; border-radius: 26px; cursor: pointer; color: var(--on-ink); border: 1.5px solid var(--ink-3); }
.tx-user__menu summary::-webkit-details-marker { display: none; }
.tx-user__menu summary::after { content: ""; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); margin-left: 2px; }
.tx-user__menu[open] summary, .tx-user__menu summary:hover { border-color: var(--taxi); }
.tx-user__name { font-weight: 600; max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tx-user__drop { position: absolute; right: 0; top: calc(100% + 8px); z-index: 60; min-width: 240px; margin: 0; padding: 8px; list-style: none; background: var(--card); border: 1px solid var(--line); border-radius: var(--r); box-shadow: 0 18px 40px -20px rgba(0, 0, 0, .5); }
.tx-user__drop a { display: block; padding: 10px 12px; border-radius: 6px; color: var(--text); text-decoration: none; }
.tx-user__drop a:hover { background: var(--taxi-soft); }
.tx-user__out { border-top: 1px solid var(--line); margin-top: 6px; padding-top: 6px; }

/* ---------- аватары ---------- */
.tx-ava { display: inline-grid; place-items: center; flex: none; object-fit: cover; border-radius: 12px; background: var(--paper-2); }
.tx-ava--s { width: 34px; height: 34px; border-radius: 50%; font-size: 13px; }
.tx-ava--m { width: 64px; height: 64px; font-size: 22px; }
.tx-ava--xl { width: 132px; height: 132px; border-radius: 18px; font-size: 44px; }
.tx-ava--mono { font-family: var(--f-head); font-weight: 600; line-height: 1; letter-spacing: .04em; }
.tx-ava--a { background: var(--ink); color: var(--taxi); }
.tx-ava--b { background: var(--taxi); color: var(--ink); }
.tx-ava--c { background: var(--steel); color: #fff; }
.tx-ava--d { background: #e7dfcf; color: var(--ink); }

/* ---------- основная зона ---------- */
.tx-main { padding: 22px 0 48px; min-height: 60vh; }
.tx-crumbs { margin: 0 0 18px; font-size: 14px; color: var(--muted); }
.tx-crumbs ol { display: flex; flex-wrap: wrap; gap: 4px 0; margin: 0; padding: 0; list-style: none; }
.tx-crumbs li { display: inline-flex; align-items: center; }
.tx-crumbs li + li::before { content: ""; width: 14px; height: 2px; margin: 0 10px; background: var(--line-2); }
.tx-crumbs a { color: var(--muted); text-decoration: none; }
.tx-crumbs a:hover { color: var(--text); text-decoration: underline; text-decoration-color: var(--taxi-2); }
.tx-crumbs [aria-current] span { color: var(--text); font-weight: 500; }
.tx-page--index .tx-crumbs { display: none; }

.tx-eyebrow { font: 500 13px/1.3 var(--f-head); letter-spacing: .2em; text-transform: uppercase; color: var(--muted); margin: 0 0 14px; display: flex; align-items: center; gap: 10px; }
.tx-eyebrow::before { content: ""; width: 28px; height: 12px; background: var(--checker); background-size: 6px 6px; border-radius: 2px; }

/* ---------- главная: герой ---------- */
.tx-hero { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, 1fr); gap: 32px; align-items: stretch; margin: 6px 0 36px; }
.tx-hero h1 { font-size: clamp(36px, 5.2vw, 62px); text-transform: uppercase; letter-spacing: .01em; line-height: 1; margin-bottom: 18px; }
.tx-hero__lead { font-size: 18px; max-width: 34em; color: #33363c; margin-bottom: 24px; }
.tx-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; }
.tx-hero__cta .tx-btn--ghost { border-color: var(--ink); color: var(--ink); }
.tx-hero__cta .tx-btn--ghost:hover { background: var(--ink); color: var(--paper); }

.tx-meter { background: var(--ink); color: var(--on-ink); border-radius: 16px; padding: 18px 20px 16px; display: flex; flex-direction: column; box-shadow: inset 0 0 0 1px #000, 0 20px 40px -26px rgba(0, 0, 0, .8); }
.tx-meter__head { display: flex; justify-content: space-between; align-items: center; font: 500 13px/1 var(--f-head); letter-spacing: .18em; text-transform: uppercase; color: var(--on-ink-muted); padding-bottom: 14px; border-bottom: 1px dashed var(--ink-3); }
.tx-meter__lamp { color: #9ff0b9; border: 1.5px solid #3fae6a; padding: 6px 10px; border-radius: 4px; background: rgba(63, 174, 106, .14); text-shadow: 0 0 10px rgba(80, 220, 130, .55); }
.tx-meter__grid { list-style: none; margin: 0; padding: 14px 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; flex: 1; }
.tx-meter__grid li { background: #0d0f11; border: 1px solid var(--ink-3); border-radius: 10px; padding: 12px 14px; display: flex; flex-direction: column; justify-content: flex-end; }
.tx-meter__grid b { font: 600 34px/1 var(--f-head); color: var(--taxi); font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.tx-meter__grid span { font-size: 13px; color: var(--on-ink-muted); margin-top: 6px; }
.tx-meter__note { margin: 12px 0 0; font-size: 12px; color: var(--on-ink-muted); }

/* ---------- раскладка с боковой колонкой ---------- */
.tx-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 32px; align-items: start; }
.tx-layout__side { display: grid; gap: 20px; position: sticky; top: 16px; }

.tx-panel { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: 20px; box-shadow: var(--shadow); }
.tx-panel__title { font-size: 20px; text-transform: uppercase; letter-spacing: .03em; margin-bottom: 8px; }
.tx-panel__note { font-size: 14px; color: var(--muted); margin: 0 0 12px; }
.tx-panel__note:last-child { margin: 14px 0 0; }

/* калькулятор */
.tx-calc { border-top: 6px solid var(--taxi); }
.tx-calc__form { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; }
.tx-calc__form label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--muted); line-height: 1.25; }
.tx-calc__form label span { min-height: 2.5em; display: flex; align-items: flex-end; }
.tx-calc__form input { width: 100%; height: 42px; padding: 0 10px; font: 600 16px var(--f-body); color: var(--text); font-variant-numeric: tabular-nums; }
.tx-calc__out { margin: 16px 0 0; padding: 14px; border-radius: 10px; background: var(--ink); color: var(--on-ink); display: grid; gap: 6px; }
.tx-calc__out div { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: 14px; }
.tx-calc__out dt { color: var(--on-ink-muted); }
.tx-calc__out dd { margin: 0; font: 500 17px/1.2 var(--f-head); font-variant-numeric: tabular-nums; }
.tx-calc__out .tx-calc__net { border-top: 1px dashed var(--ink-3); padding-top: 8px; margin-top: 2px; }
.tx-calc__net dt { color: var(--on-ink); font-weight: 600; }
.tx-calc__net dd { font-size: 28px; font-weight: 600; color: var(--taxi); }
.tx-calc__out dd.is-negative { color: #ff8d80; }

/* лента и топ */
.tx-feed, .tx-hot { list-style: none; margin: 0; padding: 0; }
.tx-feed li { padding: 11px 0; border-bottom: 1px solid var(--line); }
.tx-feed li:last-child { border-bottom: 0; padding-bottom: 0; }
.tx-feed__title { display: block; font-weight: 600; line-height: 1.35; text-decoration: none; }
.tx-feed__title:hover { text-decoration: underline; text-decoration-color: var(--taxi-2); }
.tx-feed__meta { display: block; font-size: 13px; color: var(--muted); margin-top: 3px; }
.tx-feed__meta a { color: var(--muted); }
.tx-hot li { display: grid; grid-template-columns: 30px 1fr; gap: 2px 10px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.tx-hot li:last-child { border-bottom: 0; padding-bottom: 0; }
.tx-hot__n { grid-row: span 2; font: 600 24px/1 var(--f-head); color: var(--taxi-2); }
.tx-hot a { font-weight: 600; line-height: 1.35; text-decoration: none; }
.tx-hot a:hover { text-decoration: underline; text-decoration-color: var(--taxi-2); }
.tx-hot__c { font-size: 13px; color: var(--muted); }

/* ---------- разделы ---------- */
.tx-cat { margin: 0 0 30px; }
.tx-cat__head { display: flex; align-items: baseline; gap: 14px; margin: 0 0 12px; }
.tx-cat__no { font: 500 13px/1 var(--f-head); letter-spacing: .14em; text-transform: uppercase; color: var(--ink); background: var(--taxi); padding: 6px 8px; border-radius: 4px; flex: none; transform: translateY(-3px); }
.tx-cat__head h2 { font-size: 26px; text-transform: uppercase; letter-spacing: .02em; }
.tx-cat__head h2 a { text-decoration: none; }
.tx-cat__head h2 a:hover { text-decoration: underline; text-decoration-color: var(--taxi-2); }
.tx-forums { list-style: none; margin: 0; padding: 0; background: var(--card); border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--shadow); overflow: hidden; }
.tx-forum { display: grid; grid-template-columns: 52px minmax(0, 1fr) 150px 240px; gap: 18px; align-items: center; padding: 16px 18px; border-top: 1px solid var(--line); transition: background-color .15s var(--ease); }
.tx-forum:first-child { border-top: 0; }
.tx-forum:hover { background: #fffaee; }
.tx-forum__icon { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 12px; background: var(--paper-2); color: var(--ink); position: relative; }
.tx-forum__icon .tx-i { width: 26px; height: 26px; }
.tx-forum__icon.forum_on { background: var(--taxi); cursor: pointer; }
.tx-forum__icon.forum_on::after { content: ""; position: absolute; top: -3px; right: -3px; width: 12px; height: 12px; border-radius: 50%; background: var(--ink); border: 2px solid var(--card); }
.tx-forum__icon.forum_offclose { background: var(--line); color: var(--muted); }
.tx-forum__name { font: 600 19px/1.25 var(--f-body); letter-spacing: -.005em; }
.tx-forum__name a { text-decoration: none; }
.tx-forum__name a:hover { text-decoration: underline; text-decoration-color: var(--taxi-2); }
.tx-forum__desc { margin: 4px 0 0; font-size: 14px; color: var(--muted); line-height: 1.5; }
.tx-forum__stats { display: flex; gap: 18px; margin: 0; }
.tx-forum__stats div { display: flex; flex-direction: column-reverse; }
.tx-forum__stats dt { font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; }
.tx-forum__stats dd { margin: 0; font: 500 22px/1.1 var(--f-head); font-variant-numeric: tabular-nums; }
.tx-forum__last { font-size: 14px; line-height: 1.4; min-width: 0; }
.tx-last__title { display: block; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-decoration: none; }
.tx-last__title:hover { text-decoration: underline; text-decoration-color: var(--taxi-2); }
.tx-last__meta { display: block; color: var(--muted); font-size: 13px; margin-top: 2px; }
.tx-last__meta a { color: var(--muted); }
.tx-last__none { color: var(--muted); font-size: 13px; }
.tx-cat--sub { margin-bottom: 22px; }

/* подразделы в списке */
.forumbit_depth3 { font-size: 13px; }
.subforumicon { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--line-2); margin-right: 4px; }
.subforumicon.forum_on { background: var(--taxi-2); }

/* блок «сейчас на линии» */
.tx-online { margin-top: 36px; padding: 20px 22px; border-radius: var(--r); background: var(--ink); color: var(--on-ink); }
.tx-online__title { font-size: 18px; text-transform: uppercase; letter-spacing: .06em; color: var(--taxi); margin-bottom: 8px; display: flex; align-items: center; gap: 10px; }
.tx-online__title::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: #4bc77a; box-shadow: 0 0 0 4px rgba(75, 199, 122, .2); }
.tx-online p { margin: 6px 0 0; font-size: 14px; color: var(--on-ink-muted); }
.tx-online a { color: var(--on-ink); }
.tx-online__list a { font-weight: 600; }

/* ---------- шапка раздела / темы ---------- */
.tx-pagehead { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 20px; align-items: center; margin: 0 0 24px; padding: 22px 24px; background: var(--card); border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--shadow); border-left: 8px solid var(--taxi); }
.tx-pagehead__icon { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 14px; background: var(--ink); color: var(--taxi); }
.tx-pagehead__icon .tx-i { width: 32px; height: 32px; }
.tx-pagehead h1 { font-size: clamp(28px, 3.6vw, 40px); text-transform: uppercase; }
.tx-pagehead__desc { margin: 6px 0 0; color: #3a3d43; max-width: 52em; }
.tx-pagehead__desc:empty { display: none; }
.tx-pagehead__meta { margin: 6px 0 0; font-size: 14px; color: var(--muted); }
.tx-page--forum .tx-pagehead__meta:has(+ *) { margin-bottom: 0; }

.tx-threadhead { margin: 0 0 22px; padding: 24px 26px 22px; background: var(--ink); color: var(--on-ink); border-radius: var(--r); position: relative; overflow: hidden; }
.tx-threadhead::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 8px; background: var(--checker); background-size: 8px 8px; }
.tx-threadhead__forum { display: inline-flex; align-items: center; gap: 8px; color: var(--taxi); text-decoration: none; font: 500 14px/1 var(--f-head); letter-spacing: .12em; text-transform: uppercase; margin-bottom: 12px; }
.tx-threadhead__forum:hover { text-decoration: underline; text-decoration-color: var(--taxi); }
.tx-threadhead__forum .tx-i { width: 18px; height: 18px; }
.tx-threadhead h1 { font-size: clamp(26px, 3.4vw, 40px); line-height: 1.12; max-width: 30em; color: #fff; }
.tx-threadhead__meta { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 14px 0 6px; padding: 0; list-style: none; font-size: 14px; color: var(--on-ink-muted); }
.tx-threadhead__meta li { display: inline-flex; align-items: center; gap: 7px; }
.tx-threadhead__meta .tx-i { width: 17px; height: 17px; color: var(--taxi); }
.tx-threadhead__act { position: absolute; right: 24px; top: 22px; }

/* ---------- панели над списками ---------- */
.tx-bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; margin: 0 0 14px; }
.tx-bar--foot { margin: 16px 0 0; }
.tx-sort { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 14px; }
.tx-sort__label { color: var(--muted); margin-right: 4px; }
.tx-sort a { padding: 6px 12px; border-radius: 16px; border: 1px solid var(--line-2); text-decoration: none; background: var(--card); }
.tx-sort a:hover { border-color: var(--ink); }
.tx-bar__links { font-size: 14px; display: flex; gap: 14px; }
.tx-bar__links a { color: var(--muted); }

/* пагинация */
.pagination, .tx-pages { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 14px; margin: 0; }
.pagination .pages { color: var(--muted); margin-right: 4px; }
.pagination a, .pagination_current { display: inline-grid; place-items: center; min-width: 40px; height: 40px; padding: 0 10px; border-radius: var(--r-s); border: 1px solid var(--line-2); background: var(--card); text-decoration: none; font: 500 16px/1 var(--f-head); font-variant-numeric: tabular-nums; }
.pagination a:hover { border-color: var(--ink); background: var(--taxi-soft); }
.pagination_current { background: var(--ink); color: var(--taxi); border-color: var(--ink); }
.pagination .go_page { display: inline-flex; align-items: center; }
.tx-bar > .tx-pages:only-child { margin-right: auto; }

/* ---------- список тем ---------- */
.tx-tlist { list-style: none; margin: 0; padding: 0; background: var(--card); border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--shadow); overflow: hidden; }
.tx-tlist-wrap { display: none; }
.tx-tlist-wrap:has(td) { display: table; width: 100%; margin-bottom: 8px; }
.tx-trow { display: grid; grid-template-columns: 6px minmax(0, 1fr) 150px 190px auto; gap: 0 18px; align-items: center; padding: 14px 18px 14px 0; border-top: 1px solid var(--line); }
.tx-trow:first-child { border-top: 0; }
.tx-trow:hover { background: #fffaee; }
.tx-trow__status { align-self: stretch; width: 6px; background: transparent; border-radius: 0 3px 3px 0; }
.tx-trow__status[class*="new"] { background: var(--taxi); }
.tx-trow__status[class*="close"] { background: var(--line-2); }
.tx-trow__title { font: 600 17px/1.35 var(--f-body); letter-spacing: -.005em; }
.tx-trow__title a { text-decoration: none; }
.tx-trow__title a:hover { text-decoration: underline; text-decoration-color: var(--taxi-2); }
.tx-trow__title .subject_new a { font-weight: 700; }
.tx-trow__title .subject_old a { font-weight: 600; }
.tx-trow__meta { margin: 4px 0 0; font-size: 14px; color: var(--muted); display: flex; flex-wrap: wrap; align-items: center; gap: 0 6px; }
.tx-trow__meta a { color: var(--muted); }
.tx-trow__pages { margin-left: 8px; }
.tx-trow__pages a { display: inline-block; min-width: 22px; text-align: center; border: 1px solid var(--line-2); border-radius: 4px; padding: 0 4px; margin: 0 1px; font-size: 13px; text-decoration: none; }
.tx-trow__nums { display: flex; gap: 16px; margin: 0; }
.tx-trow__nums div { display: flex; flex-direction: column-reverse; min-width: 60px; }
.tx-trow__nums dt { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.tx-trow__nums dd { margin: 0; font: 500 20px/1.1 var(--f-head); font-variant-numeric: tabular-nums; }
.tx-trow__nums a { text-decoration: none; }
.tx-trow__last { font-size: 14px; display: flex; flex-direction: column; line-height: 1.35; min-width: 0; }
.tx-trow__last > a { color: var(--text); text-decoration: none; font-weight: 500; }
.tx-trow__last > a:hover { text-decoration: underline; text-decoration-color: var(--taxi-2); }
.tx-trow__last span { color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tx-trow__last span a { color: var(--muted); }
.tx-trow__mod:empty { display: none; }
.forumdisplay_sticky { background: linear-gradient(90deg, var(--taxi-soft), var(--card) 60%); }
.forumdisplay_sticky .tx-trow__title::before { content: "Закреплено"; display: inline-block; margin-right: 8px; padding: 2px 7px; border-radius: 4px; background: var(--ink); color: var(--taxi); font: 500 12px/1.5 var(--f-head); letter-spacing: .08em; text-transform: uppercase; vertical-align: 2px; }
.tx-trow--ann { background: var(--steel-soft); }
.tx-empty { padding: 28px 24px; color: var(--muted); }
.tx-empty b { color: var(--text); }
.tx-dot { color: var(--line-2); }
.tx-tag { display: inline-flex; align-items: center; padding: 3px 8px; border-radius: 4px; font: 500 12px/1.3 var(--f-head); letter-spacing: .08em; text-transform: uppercase; }
.tx-tag--starter { background: var(--taxi-soft); color: #5a4300; border: 1px solid #f1d27a; }
.tx-tag--ann { background: var(--steel); color: #fff; margin-right: 8px; }
.tx-check { display: inline-grid; place-items: center; width: 44px; height: 44px; }

/* ---------- сообщения: «бейдж водителя» ---------- */
.tx-posts { display: grid; gap: 18px; }
.tx-post { display: grid; grid-template-columns: 236px minmax(0, 1fr); background: var(--card); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow); overflow: hidden; }
.tx-post--first { border-color: var(--line-2); box-shadow: 0 0 0 3px var(--taxi-soft), var(--shadow); }
.tx-driver { position: relative; padding: 18px 18px 20px; background: var(--paper-2); border-right: 2px dashed var(--line-2); display: flex; flex-direction: column; gap: 14px; }
.tx-driver::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: var(--checker); background-size: 6px 6px; }
.tx-driver__top { display: flex; align-items: center; gap: 12px; padding-top: 4px; min-width: 0; }
.tx-driver .tx-ava--m { width: 56px; height: 56px; font-size: 19px; }
.tx-driver__ava { position: relative; text-decoration: none; flex: none; line-height: 0; }
.tx-driver__ava .tx-ava { box-shadow: 0 0 0 3px var(--card), 0 0 0 5px var(--ink); }
.tx-ondot { position: absolute; right: -4px; bottom: -4px; width: 16px; height: 16px; border-radius: 50%; background: #3fae6a; border: 3px solid var(--paper-2); }
.tx-driver__id { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.tx-driver__name { font: 600 16px/1.25 var(--f-body); overflow-wrap: anywhere; hyphens: none; }
.tx-driver__name a { text-decoration: none; }
.tx-driver__name a:hover { text-decoration: underline; text-decoration-color: var(--taxi-2); }
.tx-driver__stats { margin: 0; display: grid; gap: 6px; font-size: 13px; }
.tx-driver__stats div { display: flex; justify-content: space-between; gap: 8px; border-bottom: 1px dotted var(--line-2); padding-bottom: 5px; }
.tx-driver__stats dt { color: var(--muted); }
.tx-driver__stats dd { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; text-align: right; }
.tx-driver--guest .tx-driver__stats { display: none; }

/* «класс» водителя по тарифам */
.tx-class { display: inline-flex; align-items: center; gap: 6px; padding: 4px 9px 4px 7px; border-radius: 5px; font: 500 13px/1.2 var(--f-head); letter-spacing: .08em; text-transform: uppercase; border: 1.5px solid transparent; }
.tx-class::before { content: ""; width: 8px; height: 8px; border-radius: 2px; background: currentColor; }
.tx-class--trainee { background: #fff; color: var(--muted); border-color: var(--line-2); }
.tx-class--econom { background: var(--taxi-soft); color: #5a4300; border-color: #f1d27a; }
.tx-class--comfort { background: var(--steel-soft); color: var(--steel); border-color: #b9c9d6; }
.tx-class--comfortplus { background: var(--green-soft); color: #1e5134; border-color: #a9d3b7; }
.tx-class--business { background: var(--ink); color: var(--taxi); }
.tx-class--premier { background: var(--ink); color: #fff; border-color: var(--taxi); }
.tx-class--staff { background: var(--red); color: #fff; }
.tx-class--guest { background: transparent; color: var(--muted); border-color: var(--line-2); }

/* авторитетность по репутации */
.tx-auth { display: inline-flex; align-items: center; gap: 6px; align-self: flex-start; padding: 3px 9px 3px 7px; border-radius: 14px; font: 600 13px/1.3 var(--f-body); background: var(--card); border: 1px solid var(--line-2); color: var(--text); }
.tx-auth__stars { color: var(--taxi-2); letter-spacing: 1px; font-size: 13px; }
.tx-auth__off { color: var(--line-2); }
.tx-auth--2 { border-color: #e5c463; }
.tx-auth--3 { background: var(--ink); border-color: var(--ink); color: var(--taxi); }
.tx-auth--3 .tx-auth__off { color: var(--ink-3); }

/* номерной знак */
.tx-plate { display: inline-flex; align-items: stretch; align-self: flex-start; height: 36px; background: #fff; color: #111; border: 2px solid #111; border-radius: 5px; box-shadow: 0 1px 0 rgba(0, 0, 0, .15); font-family: var(--f-head); }
.tx-plate__main { display: flex; align-items: center; gap: 2px; padding: 0 8px 0 9px; font-weight: 500; font-size: 19px; letter-spacing: .04em; text-transform: uppercase; }
.tx-plate__main b { font-weight: 600; font-size: 23px; margin: 0 3px; font-variant-numeric: tabular-nums; }
.tx-plate__reg { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 0 6px; border-left: 2px solid #111; line-height: 1; }
.tx-plate__reg b { font-weight: 600; font-size: 15px; }
.tx-plate__reg i { font-style: normal; font-size: 10px; letter-spacing: .06em; display: flex; align-items: center; gap: 2px; margin-top: 2px; }
.tx-plate__reg i::after { content: ""; width: 9px; height: 6px; background: linear-gradient(#fff 0 33%, #1c57a5 0 66%, #d52b1e 0); outline: .5px solid #999; }

.tx-post__main { display: flex; flex-direction: column; min-width: 0; }
.tx-post__head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 14px 22px; border-bottom: 1px solid var(--line); font-size: 14px; color: var(--muted); }
.tx-post__no { display: inline-flex; align-items: center; height: 26px; padding: 0 9px; border-radius: 5px; background: var(--ink); color: var(--taxi); font: 500 14px/1 var(--f-head); letter-spacing: .06em; text-decoration: none; font-variant-numeric: tabular-nums; }
.tx-post__no:hover { background: var(--ink-3); color: var(--taxi); }
.tx-post__edit:empty, .tx-post__check:empty { display: none; }
.tx-post__check { margin-left: auto; }
.edited_post { font-size: 13px; color: var(--muted); }
.tx-post__body { padding: 18px 22px 8px; font-size: 16px; line-height: 1.7; overflow-wrap: anywhere; flex: 1; }
.tx-post__body > :last-child { margin-bottom: 0; }
.tx-post__sign { margin: 10px 22px 0; padding: 10px 0 0; border-top: 1px dashed var(--line-2); font-size: 14px; color: var(--muted); }
.post_meta { padding: 0 22px; font-size: 13px; color: var(--muted); }
.post_meta:empty { display: none; }
.tx-post__status:empty { display: none; }
.tx-post__controls { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; padding: 12px 22px 16px; }
.postbit_buttons { display: flex; flex-wrap: wrap; gap: 6px; }
.postbit_buttons > a, .postbit_buttons > a.postbit_mirage { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 12px; border-radius: 18px; border: 1px solid var(--line); background: var(--card); color: var(--text); font-size: 14px; text-decoration: none; }
.postbit_buttons > a:hover { border-color: var(--ink); background: var(--taxi-soft); }
.postbit_buttons > a span { background: none !important; padding: 0 !important; }
.postbit_quote::before { content: "«"; font-weight: 700; }
.postbit_multiquote span.postbit_multiquote_on, a.postbit_multiquote_on { background: var(--taxi) !important; border-color: var(--taxi-2) !important; }

/* содержимое сообщений (MyCode) */
.post_body a, .tx-post__body a { word-break: break-word; }
blockquote, .mycode_quote { margin: 0 0 14px; padding: 12px 16px; background: var(--paper); border-left: 4px solid var(--taxi); border-radius: 0 var(--r-s) var(--r-s) 0; font-size: 15px; }
blockquote cite, .mycode_quote cite { display: block; font-style: normal; font-weight: 600; font-size: 13px; color: var(--muted); margin-bottom: 6px; padding-bottom: 6px; border-bottom: 1px dashed var(--line-2); }
blockquote cite > span { float: right; font-weight: 400; }
.codeblock { margin: 0 0 14px; padding: 12px 14px; background: var(--ink); color: var(--on-ink); border-radius: var(--r-s); }
.codeblock .title { font: 500 12px var(--f-head); letter-spacing: .1em; text-transform: uppercase; color: var(--taxi); margin-bottom: 6px; }
.codeblock code, .codeblock pre { font: 14px/1.55 ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; white-space: pre-wrap; }
.mycode_hr { border: 0; border-top: 1px solid var(--line); }
.post_body img, .tx-post__body img { border-radius: var(--r-s); }
.post_body ul, .post_body ol { padding-left: 1.4em; }
.post_body li { margin-bottom: .25em; }
.spoiler { border: 1px dashed var(--line-2); padding: 8px 12px; border-radius: var(--r-s); }

/* вложения */
.post_content fieldset, .tx-post__main fieldset { margin: 12px 22px 0; padding: 10px 14px; border: 1px dashed var(--line-2); border-radius: var(--r-s); font-size: 14px; }
fieldset legend { padding: 0 6px; font: 500 13px var(--f-head); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.attachembed { display: inline-block; }

/* соседние темы */
.tx-nextprev { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 24px 0; }
.tx-nextprev a { display: flex; flex-direction: column; gap: 2px; padding: 14px 18px; border: 1px solid var(--line); border-radius: var(--r); background: var(--card); text-decoration: none; font: 500 18px/1.2 var(--f-head); text-transform: uppercase; letter-spacing: .04em; }
.tx-nextprev a:last-child { text-align: right; }
.tx-nextprev a:hover { border-color: var(--ink); background: var(--taxi-soft); }
.tx-nextprev small { font: 400 13px var(--f-body); text-transform: none; letter-spacing: 0; color: var(--muted); }

/* быстрый ответ */
.tx-reply { margin: 0 0 24px; padding: 22px; background: var(--card); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow); border-top: 6px solid var(--ink); }
.tx-reply__head { display: flex; gap: 14px; align-items: center; margin-bottom: 14px; }
.tx-reply__head h2 { font-size: 22px; text-transform: uppercase; }
.tx-reply__head p { margin: 2px 0 0; font-size: 14px; color: var(--muted); }
.tx-reply textarea { width: 100%; min-height: 170px; resize: vertical; }
.tx-reply__opts { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 10px 0 0; font-size: 14px; color: var(--muted); }
.tx-reply__opts label { display: inline-flex; align-items: center; gap: 6px; }
.tx-reply__captcha:empty, .tx-reply__captcha:not(:has(td)) { display: none; }
.tx-reply__act { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 16px; }
.tx-reply__full { margin-left: auto; font-size: 14px; color: var(--muted); }
.tx-reply__mq { margin-top: 8px; font-size: 14px; padding: 8px 12px; background: var(--taxi-soft); border-radius: var(--r-s); }
.tx-guest-reply { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; margin: 0 0 24px; padding: 20px 22px; border-radius: 14px; background: var(--ink); color: var(--on-ink); }
.tx-guest-reply p { margin: 0; font-size: 16px; }
.tx-guest-reply b { color: var(--taxi); font-family: var(--f-head); font-weight: 500; font-size: 20px; text-transform: uppercase; letter-spacing: .03em; display: block; }
.tx-guest-reply div { display: flex; gap: 10px; }
.tx-guest-reply .tx-btn--line { color: var(--on-ink); border-color: var(--on-ink-muted); }
.tx-guest-reply .tx-btn--line:hover { border-color: var(--taxi); color: var(--taxi); background: transparent; }

/* инструменты под темой */
.tx-tools { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 14px; margin-top: 18px; font-size: 14px; }
.thread_tools { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0; padding: 0; list-style: none; }
.thread_tools li { background: none !important; padding: 0 !important; }
.thread_tools a { color: var(--muted); }
.tx-tools__mod, .tx-tools > div { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.tx-browsing { margin-top: 18px; font-size: 14px; color: var(--muted); }
.tx-browsing:empty { display: none; }
.tx-browsing p { margin: 0; }

/* ---------- профиль: удостоверение ---------- */
.tx-idcard { max-width: 860px; margin: 0 0 26px; background: var(--card); border: 2px solid var(--ink); border-radius: 18px; overflow: hidden; box-shadow: 0 24px 40px -30px rgba(0, 0, 0, .6); }
.tx-idcard__band { display: flex; justify-content: space-between; gap: 10px; padding: 10px 22px; background: var(--ink); color: var(--taxi); font: 500 14px/1 var(--f-head); letter-spacing: .2em; text-transform: uppercase; }
.tx-idcard__band span:last-child { color: var(--on-ink-muted); letter-spacing: .08em; }
.tx-idcard__body { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 26px; padding: 26px; background: linear-gradient(135deg, transparent 0 70%, var(--taxi-soft) 70% 100%); }
.tx-idcard__photo .tx-ava { box-shadow: 0 0 0 4px var(--card), 0 0 0 6px var(--ink); }
.tx-idcard__name { font-size: clamp(30px, 4vw, 44px); text-transform: uppercase; word-break: break-word; }
.tx-idcard__class { margin: 10px 0 14px; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; font-size: 14px; color: var(--muted); }
.tx-idcard__status a { color: var(--muted); }
.tx-idcard__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 18px 0 0; }
.tx-idcard__facts div { border-top: 2px solid var(--ink); padding-top: 8px; }
.tx-idcard__facts dt { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
.tx-idcard__facts dd { margin: 2px 0 0; font: 500 22px/1.15 var(--f-head); }
.tx-idcard__actions { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 26px 20px; }
.tx-idcard__actions:empty { display: none; }
.tx-idcard__actions a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: 20px; border: 1px solid var(--line-2); text-decoration: none; font-size: 14px; }
.tx-idcard__actions a:hover { border-color: var(--ink); background: var(--taxi-soft); }
.tx-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; align-items: start; }
.tx-cols > div { display: grid; gap: 22px; align-content: start; }
.tx-rows { margin: 0; }
.tx-rows div { display: grid; grid-template-columns: 170px 1fr; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--line); font-size: 15px; }
.tx-rows div:last-child { border-bottom: 0; }
.tx-rows dt { color: var(--muted); }
.tx-rows dd { margin: 0; }
.tx-rows small { color: var(--muted); }
.tx-rows-table:not(:has(td)) { display: none; }
.tx-rows-table { width: 100%; margin-top: 6px; }
.tx-rows-table td { padding: 9px 0; border-top: 1px solid var(--line); font-size: 15px; background: none; }

/* ---------- уведомления, ошибки, редирект ---------- */
.tx-notice { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 22px; max-width: 760px; margin: 10px auto 30px; padding: 28px; background: var(--card); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow); }
.tx-notice__sign { width: 76px; height: 68px; display: grid; place-items: center; }
.tx-notice__sign span { width: 0; height: 0; border-left: 38px solid transparent; border-right: 38px solid transparent; border-bottom: 66px solid var(--red); position: relative; }
.tx-notice__sign span::after { content: "!"; position: absolute; left: -6px; top: 18px; color: #fff; font: 700 34px/1 var(--f-head); }
.tx-notice h1 { font-size: 30px; text-transform: uppercase; margin-bottom: 10px; }
.tx-notice__text { color: #36393f; }
.tx-notice__text ul { padding-left: 1.2em; }
.tx-notice__links { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 0; }
.tx-redirect { max-width: 520px; margin: 14vh auto 0; padding: 32px; text-align: center; background: var(--card); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow); }
.tx-redirect h1 { font-size: 26px; text-transform: uppercase; margin: 18px 0 8px; }
.tx-redirect__road { height: 10px; border-radius: 5px; background: var(--ink); overflow: hidden; position: relative; }
.tx-redirect__road span { position: absolute; inset: 4px 0; background: repeating-linear-gradient(90deg, var(--taxi) 0 22px, transparent 22px 40px); animation: tx-road 0.9s linear infinite; }
@keyframes tx-road { to { transform: translateX(-40px); } }
.red_alert, .pm_alert, .tx-main .alert { margin: 0 0 16px; padding: 12px 16px; border-radius: var(--r-s); font-size: 15px; }
.red_alert { background: var(--red-soft); border: 1px solid #e7b2aa; color: #6f1f17; }
.red_alert a { color: #6f1f17; }
.pm_alert { background: var(--taxi-soft); border: 1px solid #f1d27a; display: flex; justify-content: space-between; gap: 10px; }
.pm_alert .float_right a { text-decoration: none; }
div.error { margin: 0 0 16px; padding: 14px 18px; border-radius: var(--r-s); background: var(--red-soft); border: 1px solid #e7b2aa; color: #6f1f17; }
div.error p { margin: 0; }
div.error ul { margin: 6px 0 0; padding-left: 1.2em; }
.success_message { color: var(--green); font-weight: 600; }
.error_message { color: var(--red); font-weight: 600; }
.validation_error { color: var(--red); font-size: 14px; }
.validation_success { color: var(--green); font-size: 14px; }
.validation_loading { color: var(--muted); font-size: 14px; }

/* ---------- стандартные таблицы MyBB: формы, ЛК, поиск, регистрация ---------- */
.tborder { width: 100%; background: var(--card); border: 1px solid var(--line); border-radius: var(--r); border-collapse: separate; border-spacing: 0; overflow: hidden; box-shadow: var(--shadow); margin: 0 0 20px; }
.tborder td, .tborder th { padding: 12px 16px; vertical-align: top; text-align: left; }
.tfixed { table-layout: fixed; word-wrap: break-word; }
.thead { background: var(--ink); color: var(--on-ink); font: 500 17px/1.3 var(--f-head); letter-spacing: .05em; text-transform: uppercase; }
.thead strong { font-weight: 500; }
.thead a, .thead a:link { color: var(--taxi); }
.thead .smalltext { color: var(--on-ink-muted); font-family: var(--f-body); text-transform: none; letter-spacing: 0; }
.tcat { background: var(--paper-2); color: var(--text); font: 500 13px/1.3 var(--f-head); letter-spacing: .1em; text-transform: uppercase; border-bottom: 1px solid var(--line); }
.tcat a { color: var(--text); }
.trow1, .trow2, .trow_shaded, .trow_selected { border-top: 1px solid var(--line); }
.trow1 { background: var(--card); }
.trow2 { background: var(--row-alt); }
.trow_shaded, .unapproved_post .post_author, .unapproved_post { background: #fbefd9 !important; }
.trow_selected, tr.trow_selected td { background: var(--taxi-soft) !important; }
.trow_deleted, .deleted_post_hidden { background: var(--red-soft) !important; }
.trow_sep { background: var(--paper-2); font: 500 13px var(--f-head); letter-spacing: .1em; text-transform: uppercase; padding: 8px 16px; }
.tfoot { background: var(--paper-2); border-top: 1px solid var(--line); text-align: center; }
.tfoot a { color: var(--text); }
.smalltext { font-size: 13px; color: var(--muted); }
.thead .smalltext, .tfoot .smalltext { color: inherit; }
.largetext { font: 500 22px/1.2 var(--f-head); }
.expcolimage { float: right; }
.expcolimage img { width: 16px; height: 16px; opacity: .7; filter: invert(1); cursor: pointer; }
.tcat .expcolimage img { filter: none; }
.tborder .tborder { box-shadow: none; }
.tborder > tbody > tr:first-child > td.thead:first-child { border-radius: 0; }
fieldset { border: 1px solid var(--line); border-radius: var(--r); padding: 14px 18px; margin: 0 0 18px; background: var(--card); }
fieldset.trow1, fieldset.trow2 { border-color: var(--line); }

input.textbox, input[type="text"], input[type="password"], input[type="email"], input[type="number"], input[type="search"]:not(#tx-q), input[type="url"], input[type="date"], select, textarea {
	max-width: 100%; min-height: 44px; padding: 9px 12px;
	border: 1.5px solid var(--line-2); border-radius: var(--r-s);
	background: #fff; color: var(--text);
	font: 400 16px/1.4 var(--f-body);
	transition: border-color .15s var(--ease), box-shadow .15s var(--ease);
}
textarea { line-height: 1.6; }
select { padding-right: 34px; appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2316181b' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 12px center; }
select[multiple] { background-image: none; padding-right: 12px; }
input.textbox:focus, input[type="text"]:focus, input[type="password"]:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="url"]:focus, select:focus, textarea:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px rgba(255, 194, 26, .45); }
input[type="checkbox"], input[type="radio"] { width: 18px; height: 18px; accent-color: var(--ink); vertical-align: -3px; }
label { cursor: pointer; }
.tborder td > .textbox, .tborder td > input[type="text"], .tborder td > input[type="password"], .tborder td > input[type="email"] { width: 100%; max-width: 460px; }
.tx-formtable { box-shadow: none; border: 0; margin: 0; }
.tx-formtable td { display: block; padding: 6px 0; border: 0; background: none !important; }
.tx-formtable .textbox { width: 100%; }
.tx-formtable .remember_me { display: flex; align-items: center; gap: 8px; }
.tx-formtable div[align="center"] { text-align: left; }
.tx-formtable .button { width: 100%; }
.lost_password { font-size: 14px; color: var(--muted); }

/* меню ЛК и модерации */
.usercp_nav_item, .modcp_nav_item { display: block; padding: 6px 0 6px 0; background: none !important; }
td.trow1.smalltext a, .usercp_nav_item a { text-decoration: none; }
#usercp_nav, .usercp_nav { width: 220px; }

/* выпадающие меню MyBB */
.popup_menu { position: absolute; z-index: 70; min-width: 200px; padding: 6px; background: var(--card); border: 1px solid var(--line); border-radius: var(--r); box-shadow: 0 18px 40px -20px rgba(0, 0, 0, .45); font-size: 14px; }
.popup_menu .popup_item_container { margin: 0; }
.popup_menu .popup_item { display: block; padding: 9px 12px; border-radius: 6px; color: var(--text); text-decoration: none; background: none; }
.popup_menu .popup_item:hover { background: var(--taxi-soft); }
.drop_go_page { padding: 12px; }

/* модальные окна (jquery.modal) */
.blocker { position: fixed; inset: 0; z-index: 9998; padding: 20px; overflow: auto; background: rgba(16, 17, 19, .72); 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: 100%; max-width: 440px; padding: 26px; text-align: left; background: var(--card); border-radius: 16px; border-top: 8px solid var(--taxi); box-shadow: 0 30px 70px -20px rgba(0, 0, 0, .7); }
.modal a.close-modal { position: absolute; top: 10px; right: 12px; width: 36px; height: 36px; display: grid; place-items: center; font-size: 0; text-decoration: none; border-radius: 50%; }
.modal a.close-modal::before { content: "✕"; font-size: 18px; color: var(--muted); }
.modal a.close-modal:hover { background: var(--paper-2); }
.tx-modal__title { font-size: 24px; text-transform: uppercase; margin-bottom: 12px; }
.modal .tborder { box-shadow: none; border: 0; }
.modal .thead { background: none; color: var(--text); padding-left: 0; }

/* всплывающие уведомления */
.jGrowl { z-index: 9999; color: var(--on-ink); font-size: 15px; position: fixed; }
.jGrowl.top-right { top: 16px; right: 16px; }
.jGrowl .jGrowl-notification, .jGrowl .jGrowl-closer { background: var(--ink); border-radius: var(--r-s); padding: 12px 16px; margin-top: 8px; width: 300px; border-left: 6px solid var(--taxi); box-shadow: 0 14px 30px -16px rgba(0, 0, 0, .6); }
.jGrowl .jGrowl-notification .jGrowl-close { float: right; cursor: pointer; background: none; border: 0; color: var(--on-ink); font-size: 18px; }
.jGrowl .jGrowl-closer { cursor: pointer; text-align: center; }
.jgrowl_success { border-left-color: #3fae6a !important; }
.jgrowl_error { border-left-color: var(--red) !important; }

/* рейтинг темы */
.star_rating, .star_rating li a:hover, .star_rating .current_rating { background: none; }
.star_rating { position: relative; display: inline-flex; width: 100px; height: 20px; margin: 0; padding: 0; list-style: none; background: repeating-linear-gradient(90deg, var(--line) 0 18px, transparent 18px 20px); border-radius: 3px; overflow: hidden; }
.star_rating li { display: inline; }
.star_rating .current_rating { position: absolute; left: 0; top: 0; height: 20px; background: repeating-linear-gradient(90deg, var(--taxi-2) 0 18px, transparent 18px 20px) !important; text-indent: -9999px; z-index: 1; }
.star_rating li a { position: absolute; top: 0; height: 20px; text-indent: -9999px; z-index: 2; }
.star_rating li a:hover { background: var(--ink) !important; }
.star_rating li a.one_star { width: 20%; } .star_rating li a.two_stars { width: 40%; } .star_rating li a.three_stars { width: 60%; } .star_rating li a.four_stars { width: 80%; } .star_rating li a.five_stars { width: 100%; }
.inline_rating { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--muted); }

/* SCEditor */
.sceditor-container { border-radius: var(--r-s) !important; border-color: var(--line-2) !important; overflow: hidden; }
.sceditor-toolbar { background: var(--paper-2) !important; border-bottom-color: var(--line) !important; }

/* ---------- подвал ---------- */
.tx-foot { background: var(--ink); color: var(--on-ink-muted); margin-top: 20px; }
.tx-foot__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 36px; padding-top: 40px; padding-bottom: 30px; }
.tx-foot__about p { margin: 14px 0 0; max-width: 30em; font-size: 15px; }
.tx-foot__col h2 { font-size: 15px; letter-spacing: .14em; text-transform: uppercase; color: var(--taxi); margin-bottom: 12px; }
.tx-foot__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.tx-foot a { color: var(--on-ink); text-decoration-color: transparent; }
.tx-foot a:hover { text-decoration-color: var(--taxi); color: #fff; }
.tx-foot__base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; padding-top: 18px; padding-bottom: 26px; border-top: 1px solid var(--ink-3); font-size: 14px; }
.tx-foot__up { font: 500 14px var(--f-head); letter-spacing: .14em; text-transform: uppercase; }
#debug { color: var(--on-ink-muted); font-size: 12px; }

/* ---------- адаптивность ---------- */
@media (max-width: 1100px) {
	.tx-forum { grid-template-columns: 52px minmax(0, 1fr) 130px; }
	.tx-forum__last { grid-column: 2 / -1; border-top: 1px dashed var(--line); padding-top: 8px; }
	.tx-trow { grid-template-columns: 6px minmax(0, 1fr) 140px; }
	.tx-trow__last { grid-column: 2 / -1; flex-direction: row; gap: 8px; flex-wrap: wrap; margin-top: 6px; }
	.tx-trow__mod { grid-column: 2 / -1; }
}
@media (max-width: 1024px) {
	.tx-top__bar { flex-wrap: wrap; gap: 12px 18px; padding-top: 12px; padding-bottom: 12px; }
	.tx-search { order: 5; flex: 1 1 100%; }
	.tx-user { margin-left: auto; }
	.tx-hero { grid-template-columns: 1fr; }
	.tx-layout { grid-template-columns: 1fr; }
	.tx-layout__side { position: static; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
	.tx-cols { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
	body { font-size: 16px; }
	.tx-wrap { padding: 0 16px; }
	.tx-nav { order: 4; width: 100%; overflow-x: auto; scrollbar-width: none; margin: 0 -6px; }
	.tx-nav::-webkit-scrollbar { display: none; }
	.tx-nav a { flex: none; padding: 10px; }
	.tx-logo__lamp { width: 46px; height: 30px; }
	.tx-logo__text b, .tx-logo__text i { font-size: 22px; }
	.tx-user__name { display: none; }
	.tx-user__menu summary { padding-right: 8px; }
	.tx-hero h1 { font-size: 36px; }
	.tx-hero__lead { font-size: 16px; }
	.tx-meter__grid b { font-size: 28px; }
	.tx-forum { grid-template-columns: 44px minmax(0, 1fr); gap: 12px 14px; padding: 14px; }
	.tx-forum__icon { width: 44px; height: 44px; border-radius: 10px; }
	.tx-forum__stats, .tx-forum__last { grid-column: 2 / -1; }
	.tx-forum__stats { gap: 16px; }
	.tx-forum__stats div { flex-direction: row-reverse; gap: 6px; align-items: baseline; }
	.tx-forum__stats dd { font-size: 17px; }
	.tx-forum__last { border-top: 0; padding-top: 0; }
	.tx-cat__head { flex-direction: column; gap: 8px; }
	.tx-cat__head h2 { font-size: 22px; }
	.tx-pagehead { grid-template-columns: 1fr; padding: 18px; border-left-width: 6px; }
	.tx-pagehead__icon { width: 48px; height: 48px; }
	.tx-pagehead__act .tx-btn { width: 100%; }
	.tx-threadhead { padding: 20px 18px 24px; }
	.tx-threadhead__act { position: static; margin-top: 14px; }
	.tx-threadhead__act .tx-btn { width: 100%; }
	.tx-trow { grid-template-columns: 5px minmax(0, 1fr); gap: 0 14px; padding-right: 14px; }
	.tx-trow__nums { grid-column: 2; margin-top: 8px; }
	.tx-trow__nums div { flex-direction: row-reverse; gap: 6px; align-items: baseline; min-width: 0; }
	.tx-trow__nums dd { font-size: 16px; }
	.tx-trow__last { grid-column: 2; font-size: 13px; }
	.tx-sort { width: 100%; overflow-x: auto; flex-wrap: nowrap; }
	.tx-sort a { flex: none; }
	.tx-post { grid-template-columns: 1fr; border-radius: 12px; }
	.tx-driver { border-right: 0; border-bottom: 2px dashed var(--line-2); padding: 14px 16px; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 10px 12px; }
	.tx-driver__top { grid-column: 1 / -1; }
	.tx-driver .tx-ava--m { width: 52px; height: 52px; font-size: 18px; }
	.tx-driver .tx-plate { transform: scale(.88); transform-origin: left center; }
	.tx-driver__stats { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 4px 14px; }
	.tx-driver__stats div { border: 0; padding: 0; gap: 4px; }
	.tx-driver__stats dt::after { content: ":"; }
	.tx-post__head, .tx-post__body, .tx-post__controls { padding-left: 16px; padding-right: 16px; }
	.tx-post__sign, .post_meta { margin-left: 16px; margin-right: 16px; padding-left: 0; padding-right: 0; }
	.tx-nextprev { grid-template-columns: 1fr; }
	.tx-nextprev a:last-child { text-align: left; }
	.tx-reply { padding: 16px; }
	.tx-reply__full { margin-left: 0; }
	.tx-idcard__body { grid-template-columns: 1fr; padding: 20px; }
	.tx-idcard__facts { grid-template-columns: 1fr 1fr; }
	.tx-idcard .tx-ava--xl { width: 96px; height: 96px; font-size: 32px; }
	.tx-rows div { grid-template-columns: 1fr; gap: 2px; }
	.tx-notice { grid-template-columns: 1fr; padding: 22px; }
	.tx-foot__grid { grid-template-columns: 1fr; gap: 24px; }
	.tborder td, .tborder th { padding: 10px 12px; }
	.tborder { display: block; overflow-x: auto; }
	.tx-calc__form { grid-template-columns: 1fr 1fr; }
	.tx-layout__side { grid-template-columns: 1fr; }
}
@media (pointer: coarse) {
	.postbit_buttons > a { min-height: 44px; padding: 0 14px; }
	.pagination a, .pagination_current { min-width: 44px; height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
}
@media print {
	.tx-top, .tx-foot, .tx-layout__side, .tx-reply, .tx-tools, .post_controls, .tx-nextprev { display: none !important; }
	body { background: #fff; }
}

/* метка «новое» в списке тем */
.tx-unread { display: inline-block; margin-right: 8px; padding: 1px 7px; border-radius: 4px; background: var(--taxi); color: var(--ink); font: 500 12px/1.5 var(--f-head); letter-spacing: .08em; text-transform: uppercase; text-decoration: none; vertical-align: 2px; }
.tx-unread:hover { background: var(--taxi-2); }

/* вход */
.tx-auth-card { display: grid; grid-template-columns: 280px minmax(0, 1fr); max-width: 820px; margin: 10px auto 30px; background: var(--card); border: 1px solid var(--line); border-radius: 18px; overflow: hidden; box-shadow: var(--shadow); }
.tx-auth-card__side { background: var(--ink); color: var(--on-ink); padding: 32px 28px; display: flex; flex-direction: column; justify-content: space-between; position: relative; }
.tx-auth-card__side::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 10px; background: var(--checker); background-size: 10px 10px; }
.tx-auth-card__lamp { width: 110px; height: 70px; }
.tx-auth-card__side p { font: 500 26px/1.15 var(--f-head); text-transform: uppercase; margin: 40px 0 20px; color: var(--taxi); }
.tx-auth-card__main { padding: 32px 34px; }
.tx-auth-card__main h1 { font-size: 32px; text-transform: uppercase; margin-bottom: 18px; }
.tx-form { display: grid; gap: 14px; }
.tx-field { display: grid; gap: 6px; font-size: 14px; font-weight: 600; }
.tx-field .textbox { width: 100%; }
.tx-form__row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; font-size: 14px; }
.tx-check-label { display: inline-flex; align-items: center; gap: 8px; }
.tx-form__submit { width: 100%; margin-top: 4px; }
@media (max-width: 760px) {
	.tx-auth-card { grid-template-columns: 1fr; }
	.tx-auth-card__side { padding: 20px 22px 28px; flex-direction: row; align-items: center; gap: 16px; }
	.tx-auth-card__side p { margin: 0; font-size: 20px; }
	.tx-auth-card__lamp { width: 64px; height: 40px; }
	.tx-auth-card__main { padding: 22px; }
}

/* строки разделов рядом с боковой колонкой */
@media (min-width: 1101px) {
	.tx-layout__main .tx-forum { grid-template-columns: 48px minmax(0, 1fr) 118px 200px; gap: 16px; padding: 15px 16px; }
	.tx-layout__main .tx-forum__icon { width: 48px; height: 48px; }
	.tx-layout__main .tx-forum__stats { gap: 14px; }
	.tx-layout__main .tx-forum__name { font-size: 18px; }
}
@media (min-width: 1025px) and (max-width: 1240px) {
	.tx-layout { grid-template-columns: minmax(0, 1fr) 300px; gap: 24px; }
}

/* «Диспетчерская» на главной: вопросы, которым нужен ответ */
.tx-board { background: var(--ink); color: var(--on-ink); border-radius: 16px; padding: 18px 18px 14px; display: flex; flex-direction: column; box-shadow: inset 0 0 0 1px #000, 0 20px 40px -26px rgba(0, 0, 0, .8); }
.tx-board__head { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding-bottom: 10px; border-bottom: 1px dashed var(--ink-3); }
.tx-board__head h2 { font-size: 20px; text-transform: uppercase; letter-spacing: .08em; color: #fff; }
.tx-board__lamp { font: 500 13px/1 var(--f-head); letter-spacing: .14em; text-transform: uppercase; color: #ffd76a; border: 1.5px solid var(--taxi-2); padding: 6px 9px; border-radius: 4px; background: rgba(255, 194, 26, .1); }
.tx-board__lead { margin: 10px 0 12px; font-size: 14px; color: var(--on-ink-muted); }
.tx-board__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; align-content: start; }
.tx-order a { display: grid; gap: 4px; padding: 11px 13px; border-radius: 10px; background: #0d0f11; border: 1px solid var(--ink-3); border-left: 4px solid var(--taxi); color: var(--on-ink); text-decoration: none; transition: border-color .15s var(--ease), background-color .15s var(--ease); }
.tx-order a:hover { background: #15181b; border-color: var(--taxi); }
.tx-order__from { display: flex; align-items: center; gap: 6px; font: 500 12px/1.3 var(--f-head); letter-spacing: .1em; text-transform: uppercase; color: var(--on-ink-muted); }
.tx-order__from .tx-i { width: 15px; height: 15px; color: var(--taxi); }
.tx-order__to { font-weight: 600; font-size: 15px; line-height: 1.35; color: #fff; }
.tx-order__meta { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; color: var(--on-ink-muted); }
.tx-order__state { font-weight: 600; color: var(--on-ink); }
.tx-order__state--new { color: #9ff0b9; }
.tx-board__foot { margin: auto 0 0; padding-top: 12px; font-size: 13px; color: var(--on-ink-muted); }

/* первый экран: быстрые маршруты и совет к смене */
.tx-hero__copy { display: flex; flex-direction: column; }
.tx-routes { margin-top: 26px; }
.tx-routes__title { font: 500 13px/1.3 var(--f-head); letter-spacing: .18em; text-transform: uppercase; color: var(--muted); margin-bottom: 10px; }
.tx-routes ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.tx-routes a { display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 8px 12px; border-radius: 10px; background: var(--card); border: 1px solid var(--line); text-decoration: none; font-weight: 600; font-size: 15px; line-height: 1.25; transition: border-color .15s var(--ease), background-color .15s var(--ease); }
.tx-routes a:hover { border-color: var(--ink); background: var(--taxi-soft); }
.tx-routes .tx-i { width: 20px; height: 20px; padding: 6px; box-sizing: content-box; border-radius: 8px; background: var(--paper-2); color: var(--ink); flex: none; }
.tx-routes a:hover .tx-i { background: var(--taxi); }
.tx-tip { margin-top: 16px; padding: 14px 16px 14px 18px; border-radius: 12px; background: var(--taxi-soft); border: 1px solid #f1d27a; border-left: 6px solid var(--taxi); }
.tx-tip__label { display: block; font: 500 12px/1.3 var(--f-head); letter-spacing: .16em; text-transform: uppercase; color: #6a4f00; margin-bottom: 4px; }
.tx-tip p { margin: 0 0 6px; font-size: 15px; color: #2b2410; }
.tx-tip a { font-weight: 600; font-size: 14px; }
@media (max-width: 760px) {
	.tx-routes ul { grid-template-columns: 1fr 1fr; }
	.tx-routes a { font-size: 14px; padding: 8px 10px; }
}
@media (max-width: 400px) {
	.tx-routes ul { grid-template-columns: 1fr; }
}

/* ссылки в сообщениях: хорошо заметны, у внешних — значок */
.tx-post__body a.mycode_url, .tx-post__sign a.mycode_url { color: var(--steel); font-weight: 600; text-decoration: underline; text-decoration-color: var(--taxi-2); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.tx-post__body a.mycode_url:hover, .tx-post__sign a.mycode_url:hover { background: var(--taxi-soft); text-decoration-color: var(--ink); }
.tx-post__body a.mycode_url[target="_blank"]::after { content: "↗"; font-size: .8em; margin-left: 2px; text-decoration: none; display: inline-block; }

/* ===== ссылки в сообщениях: свой стиль форума (у каждого форума сетки свой, не повторять) ===== */
: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: #1f3b52; font-weight: 600; background: linear-gradient(transparent 60%, #ffe7a3 60%); }
: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: #16181b; background: linear-gradient(transparent 0, #ffe7a3 0); }
:is(.post_body, .signature, [class*="-post__body"], [class*="-post__sign"]) a.mycode_url[target="_blank"]::after { content: none; display: none; }
/* ===== конец стиля ссылок ===== */
