/* ============================================================
   Олимпиада по русскому языку как иностранному
   Оформление воспроизводит исходный сайт 2014 года:
   светло-серый фон, белый лист, серые рамки #E0E0E0,
   оранжевые вкладки jQuery UI, красная рамка #FF4040,
   жёлтая подсветка текущего вопроса, Trebuchet MS / Verdana.
   ============================================================ */

:root {
	--line:    #E0E0E0;
	--line-2:  #D9D9D9;
	--fill:    #EEEEEE;
	--fill-2:  #F0F0F0;
	--red:     #FF4040;
	--red-2:   #de0000;
	--orange:  #F7B54A;
	--orange-2:#e59a22;
	--yellow:  #ffff80;
	--txt:     #333333;
	--txt-2:   #666666;
	--link:    #1a4f8a;
	--ok:      #2f7a35;
	--no:      #c00000;
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { overflow-x: hidden; }

body {
	margin: 0;
	padding: 18px 0 34px;
	background: #dcdcdc;
	color: var(--txt);
	font-family: "Trebuchet MS", Tahoma, Verdana, Arial, sans-serif;
	font-size: 13px;
	line-height: 1.5;
}

.page-frame {
	width: 1360px;
	max-width: 100%;
	margin: 0 auto;
	background: #FFFFFF;
	border: 1px solid #c6c6c6;
	padding: 0 0 30px;
}

a { color: var(--link); }
a:hover { color: var(--red-2); }
p { margin: 0; }
h1, h2, h3, h4 { margin: 0; font-family: inherit; font-weight: bold; line-height: 1.2; }

svg { max-width: 100%; }
a svg, summary svg, button svg { width: 13px; height: 13px; flex: none; }

.wrap { padding: 0 46px; }

/* ---------- шапка ---------- */
.hdr { width: 100%; border-bottom: 2px solid var(--line); margin-bottom: 20px; }
.hdr td { padding: 10px 46px; vertical-align: middle; }
.hdr__nav { padding-right: 0 !important; }
.hdr__logo { width: 1%; text-align: right; white-space: nowrap; padding-right: 20px !important; padding-left: 0 !important; }
.hdr__org { display: inline-block; vertical-align: middle; font-size: 11px; font-weight: bold; color: #333; text-align: right; line-height: 1.35; margin-right: 14px; }
.hdr__logo img { display: inline-block; vertical-align: middle; border: 0; width: 92px; height: 92px; }
.hdr__t { width: 1%; white-space: nowrap; }
.hdr__t a {
	font-size: 17px; font-weight: bold; color: #222; text-decoration: none;
	line-height: 1.3; display: inline-block;
}
.hdr__t a:hover { color: var(--red-2); }
.hdr__nav { text-align: center; white-space: nowrap; }
.hdr__nav a { font-size: 13px; color: var(--link); margin-left: 0; padding: 8px 9px; border-radius: 4px; display: inline-block; }
.hdr__nav a:not(.btn):hover { background: #fffdf3; color: var(--red-2); }
.hdr__nav a.is-on:not(.btn) { color: #222; font-weight: bold; text-decoration: none; }
.hdr__nav a.btn { margin-left: 10px; }

/* ---------- кнопки (стиль jQuery UI Button) ---------- */
.btn {
	display: inline-block; font: inherit; font-size: 13.5px; font-weight: bold;
	color: #333; text-decoration: none; cursor: pointer;
	padding: 10px 20px; border: 1px solid #c5c5c5; border-radius: 4px;
	background: #f6f6f6 linear-gradient(#ffffff, #ececec);
	line-height: 1.35;
}
.btn:hover { border-color: #cdcdcd; background: #fff linear-gradient(#ffffff, #f4f4f4); color: #111; }
.btn:active { background: #ededed; }
.btn:focus-visible { outline: 2px solid var(--orange-2); outline-offset: 1px; }
.btn--primary, .btn--accent {
	color: #fff; border-color: var(--orange-2);
	background: var(--orange) linear-gradient(#f9c168, #f0a52f);
	text-shadow: 0 1px 0 rgba(0,0,0,.18);
}
.btn--primary:hover, .btn--accent:hover {
	color: #fff; border-color: #d88b16;
	background: var(--orange) linear-gradient(#fac979, #eb9c1f);
}
.btn--sm { padding: 7px 14px; font-size: 12px; }
.btn[disabled] { opacity: .5; pointer-events: none; }
.btn svg { vertical-align: -2px; margin-left: 4px; }

/* ---------- поля ---------- */
.field { margin-bottom: 10px; }
.field > label { display: block; font-size: 12px; color: var(--txt-2); margin-bottom: 3px; }
.input {
	font: inherit; font-size: 13px; color: #222; width: 100%;
	background: #fff; border: 1px solid #b7b7b7; padding: 5px 7px; border-radius: 2px;
}
.input:focus { outline: none; border-color: var(--orange-2); background: #fffdf6; }

/* ---------- заголовки разделов ---------- */
.eyebrow { font-size: 11px; color: var(--txt-2); text-transform: uppercase; letter-spacing: .06em; }
.sec { padding: 24px 0 6px; border-top: 1px solid var(--line); margin-top: 26px; }
.sec__head { margin-bottom: 16px; }
.sec__head h2 { font-size: 18px; color: #222; }
.sec__head p { font-size: 12px; color: var(--txt-2); margin-top: 6px; }
.page { padding-top: 4px; }
.page__head { margin-bottom: 18px; }
.page__head h1 { font-size: 22px; color: #222; }
.page__head p { font-size: 12px; color: var(--txt-2); margin-top: 5px; }

/* ---------- хиро ---------- */
.hero { padding: 4px 0 0; }
.hero__grid { display: table; width: 100%; }
.hero__grid > div { display: table-cell; vertical-align: top; }
.hero__grid > div:first-child { padding-right: 34px; }
.hero__grid > .card { width: 390px; }
.hero h1 { font-size: 27px; color: #222; margin: 8px 0 0; font-weight: bold; }
.hero h1 em { font-style: italic; color: var(--red-2); }
.hero__lead { margin-top: 12px; font-size: 13px; color: #444; }
.hero__meta { margin-top: 20px; width: 100%; display: table; border-collapse: collapse; }
.hero__meta div {
	display: table-cell; width: 25%; text-align: center;
	border: 1px solid var(--line); background: var(--fill-2); padding: 10px 6px;
}
.hero__meta b { display: block; font-size: 19px; color: var(--red-2); line-height: 1.22; }
.hero__meta span { display: block; font-size: 11px; color: var(--txt-2); margin-top: 5px; }

/* ---------- карточка входа: красная рамка, как на исходном сайте ---------- */
.card {
	background: #fff; border: 4px solid var(--red); padding: 16px 18px;
}
.login__title { font-size: 16px; color: #222; }
.login__sub { font-size: 11px; color: var(--txt-2); margin: 3px 0 12px; }
.login__row { margin-top: 12px; text-align: right; }
.login__link { font-size: 11px; color: var(--link); margin-right: 12px; }
.login__err {
	font-size: 12px; color: var(--no); background: #ffecec;
	border: 1px solid #f0bcbc; padding: 6px 9px; margin-top: 10px;
}
.login__hint {
	margin-top: 14px; padding-top: 10px; border-top: 1px dotted var(--line-2);
	font-size: 11px; color: var(--txt-2); line-height: 1.7;
}
.login__hint b { color: #444; }
.login__hint code {
	font-family: "Courier New", monospace; font-size: 11px;
	background: var(--fill); border: 1px solid var(--line); padding: 0 4px;
}

/* ---------- уровни / типы заданий: таблицы, как в 2014 ---------- */
.levels, .kinds { display: table; width: 100%; border-collapse: collapse; }
.level, .kind {
	display: table-cell; vertical-align: top;
	border: 1px solid var(--line); padding: 12px 13px; background: #fff;
}
.level:hover, .kind:hover { background: #fffdf3; }
.level__code { font-size: 26px; font-weight: bold; color: var(--red-2); line-height: 1; }
.level__name { font-size: 12px; font-weight: bold; margin-top: 6px; color: #333; }
.level__desc { font-size: 11.5px; color: var(--txt-2); margin-top: 5px; }
.level__foot {
	margin-top: 10px; padding-top: 7px; border-top: 1px dotted var(--line-2);
	font-size: 11px; color: var(--txt-2);
}
.level__foot span + span { margin-left: 10px; }
.kind svg { width: 16px; height: 16px; color: var(--orange-2); }
.kind h3 { font-size: 12.5px; margin-top: 7px; color: #333; }
.kind p { font-size: 11.5px; color: var(--txt-2); margin-top: 4px; }

/* ---------- география ---------- */
.geo { display: table; width: 100%; }
.geo > div { display: table-cell; vertical-align: top; }
.geo > div:first-child { width: 330px; padding-right: 34px; }
.geo h2 { font-size: 18px; color: #222; margin-top: 6px; }
.geo__list { font-size: 0; }
.geo__item {
	display: inline-block; font-size: 12px; margin: 0 5px 5px 0;
	border: 1px solid var(--line); background: var(--fill-2); padding: 4px 9px;
}
.geo__item:hover { background: #fffdf3; border-color: var(--orange); }
.geo__item span { color: var(--txt-2); margin-left: 5px; font-size: 11px; }

/* ---------- сводка кабинета (бенто в сером «табличном» виде) ---------- */
.bento { display: flex; flex-wrap: wrap; gap: 10px; }
.tile {
	border: 1px solid var(--line); background: var(--fill-2);
	padding: 11px 14px; flex: 1 1 170px; min-width: 150px;
}
.tile--wide { flex: 2 1 350px; }
.tile__k { font-size: 11px; color: var(--txt-2); }
.tile__v { font-size: 26px; font-weight: bold; color: #222; line-height: 1.15; margin-top: 5px; }
.tile__v small { font-size: 12px; font-weight: normal; color: var(--txt-2); margin-left: 4px; }
.tile--ink { background: var(--fill); }
.tile--ink .tile__v { font-size: 17px; color: #222; }
.tile--accent .tile__v { color: var(--red-2); }
.tile__bars { display: flex; align-items: flex-end; gap: 6px; height: 46px; margin-top: 8px; }
.tile__bar { flex: 1; background: #fff; border: 1px solid var(--line); border-bottom: 0; position: relative; }
.tile__bar i {
	position: absolute; inset: auto 0 0 0;
	background: var(--orange) linear-gradient(#f9c168, #f0a52f);
	transition: height .6s ease;
}
.tile__legend { display: flex; justify-content: space-between; font-size: 10.5px; color: var(--txt-2); margin-top: 5px; }

/* ---------- вкладки (jQuery UI ui-lightness) ---------- */
.tabs {
	border-bottom: 1px solid #cfcfcf; margin: 22px 0 16px; padding: 3px 3px 0;
	background: var(--fill); overflow-x: auto; white-space: nowrap;
}
.tab {
	font: inherit; font-size: 12px; font-weight: bold; color: #555;
	background: #fff linear-gradient(#ffffff, #ededed);
	border: 1px solid #cfcfcf; border-bottom: 0;
	border-radius: 4px 4px 0 0; padding: 6px 14px; margin-right: 2px;
	cursor: pointer; position: relative; top: 1px;
}
.tab:hover { color: #222; background: #fff linear-gradient(#ffffff, #f6f6f6); }
.tab.is-on {
	color: #fff; border-color: var(--orange-2);
	background: var(--orange) linear-gradient(#f9c168, #f0a52f);
	text-shadow: 0 1px 0 rgba(0,0,0,.18);
}

/* ---------- таблицы ---------- */
.tbl-wrap { overflow-x: auto; }
table.tbl { width: 100%; border-collapse: collapse; font-size: 12px; }
table.tbl th, table.tbl td { border: 1px solid var(--line); padding: 6px 9px; text-align: left; }
table.tbl th { background: var(--fill); font-size: 11px; color: #444; }
table.tbl tbody tr:nth-child(even) { background: #fafafa; }
table.tbl tbody tr:hover { background: #fffdf3; }

.dl { display: table; width: 100%; border-collapse: collapse; }
.dl > dt, .dl > dd { display: table-cell; border-bottom: 1px dotted var(--line-2); padding: 6px 8px 6px 0; margin: 0; }
.dl > dt { width: 170px; font-size: 11.5px; color: var(--txt-2); }
.dl > dd { font-size: 12.5px; }
.dl > dd::after { content: ""; display: table-row; }

.grid2, .grid3 { display: table; width: 100%; border-spacing: 16px 0; margin-left: -16px; }
.grid2 > div, .grid3 > div { display: table-cell; vertical-align: top; }

.note {
	font-size: 11.5px; color: var(--txt-2); background: #fffdf3;
	border: 1px solid #f0e0b8; padding: 8px 11px;
}
.empty { text-align: center; padding: 34px 12px; color: var(--txt-2); }
.empty svg { width: 24px; height: 24px; opacity: .55; }
.empty p { font-size: 12.5px; margin-top: 8px; }

/* ---------- список туров ---------- */
.tour {
	display: table; width: 100%; border: 1px solid var(--line);
	background: #fff; margin-bottom: 8px;
}
.tour:hover { background: #fffdf3; }
.tour > * { display: table-cell; vertical-align: middle; padding: 11px 14px; }
.tour__lvl {
	width: 70px; text-align: center; font-size: 22px; font-weight: bold;
	color: var(--red-2); background: var(--fill-2); border-right: 1px solid var(--line);
}
.tour__t { font-size: 13px; font-weight: bold; color: #333; }
.tour__m { font-size: 11.5px; color: var(--txt-2); margin-top: 4px; }
.tour__m span + span { margin-left: 14px; }
.tour > div:last-child { width: 210px; text-align: right; white-space: nowrap; }
.tour__done { font-size: 11.5px; color: var(--ok); margin-right: 10px; }
.tour__done svg { width: 13px; height: 13px; vertical-align: -2px; }

/* ---------- FAQ ---------- */
.faq { border-top: 1px solid var(--line); }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary {
	cursor: pointer; list-style: none; padding: 10px 4px;
	font-size: 13px; font-weight: bold; color: #333;
	display: flex; align-items: center; justify-content: space-between; gap: 14px;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary:hover { color: var(--red-2); }
.faq summary svg { color: var(--orange-2); }
.faq details[open] summary svg { transform: rotate(45deg); }
.faq__body { padding: 0 4px 12px; font-size: 12.5px; color: #444; }

/* ============================================================
   ТЕСТ — оформление исходного сайта: белый лист,
   ряд пронумерованных клеток, текущая подсвечена жёлтым
   ============================================================ */
body.is-test { background: #dcdcdc; }
.exam { }
.exam__bar { border-bottom: 1px solid var(--line); padding: 0 0 10px; margin-bottom: 18px; }
.exam__bar-in { display: flex; align-items: center; gap: 16px; padding: 0 46px; }
.exam__title { font-size: 12px; color: var(--txt-2); }
.exam__title b { color: #333; }
.exam__count { margin-left: auto; font-size: 12px; color: var(--txt-2); }

.steps { display: flex; gap: 0; padding: 10px 46px 0; border-collapse: collapse; }
.step {
	flex: 1; height: 22px; border: 1px solid var(--line); border-right: 0;
	background: #fff;
}
.step:last-child { border-right: 1px solid var(--line); }
.step.is-done { background: var(--fill); }
.step.is-now { background: var(--yellow); border: 2px dotted #000; }

.exam__body { padding: 10px 46px 26px; }
.q__kind { font-size: 11px; color: var(--txt-2); text-transform: uppercase; letter-spacing: .05em; }
.q__text { font-size: 16px; font-weight: normal; color: #222; margin-top: 8px; white-space: pre-line; line-height: 1.55; max-width: 980px; }
.q__text::first-line { font-weight: bold; }
.q__hint { margin-top: 8px; font-size: 11.5px; color: var(--txt-2); font-style: italic; }

.opts { margin-top: 18px; }
.opt {
	display: flex; align-items: center; gap: 10px;
	border: 1px solid var(--line); background: #fff; padding: 8px 11px;
	margin-bottom: 5px; cursor: pointer; font-size: 13px;
}
.opt:hover { background: #fffdf3; border-color: var(--orange); }
.opt input { position: absolute; opacity: 0; pointer-events: none; }
.opt__box {
	width: 15px; height: 15px; flex: none; border: 1px solid #999; background: #fff;
	display: grid; place-items: center;
}
.opt--radio .opt__box { border-radius: 50%; }
.opt__box svg { width: 11px; height: 11px; opacity: 0; color: #fff; }
.opt.is-on { border-color: var(--orange-2); background: #fff8e8; }
.opt.is-on .opt__box { background: var(--orange-2); border-color: var(--orange-2); }
.opt.is-on .opt__box svg { opacity: 1; }

.open-in {
	margin-top: 18px; width: 420px; max-width: 100%;
	font: inherit; font-size: 15px; color: #222;
	background: #fff; border: 1px solid #b7b7b7; padding: 7px 9px;
}
.open-in:focus { outline: none; border-color: var(--orange-2); background: #fffdf6; }

.sort { margin-top: 18px; }
.sort__i {
	display: flex; align-items: center; gap: 10px;
	border: 1px solid var(--line); background: #fff; padding: 8px 11px;
	margin-bottom: 5px; cursor: move; font-size: 13px;
}
.sort__i:hover { background: #fffdf3; border-color: var(--orange); }
.sort__i.is-drag { opacity: .45; }
.sort__i.is-over { border-color: var(--orange-2); }
.sort__n {
	width: 20px; height: 20px; flex: none; text-align: center; line-height: 19px;
	background: var(--fill); border: 1px solid var(--line); font-size: 11px; color: #555;
}
.sort__grip { margin-left: auto; color: #aaa; }

.match { margin-top: 18px; }
.match__row { display: flex; align-items: center; gap: 10px; margin-bottom: 5px; }
.match__l { flex: 1; border: 1px solid var(--line); background: #fff; padding: 8px 11px; font-size: 13px; }
.match__s {
	width: 230px; font: inherit; font-size: 12.5px; color: #222;
	background: #fff; border: 1px solid #b7b7b7; padding: 6px 7px;
}
.match__s:focus { outline: none; border-color: var(--orange-2); }

.exam__foot { border-top: 1px solid var(--line); padding-top: 14px; }
.exam__foot-in { display: flex; align-items: center; gap: 10px; padding: 0 46px; }
.exam__note { margin-right: auto; font-size: 11.5px; color: var(--txt-2); }

/* ---------- результат ---------- */
.res__top { display: table; width: 100%; margin-top: 14px; }
.res__top > div { display: table-cell; vertical-align: top; }
.res__top > div:first-child { padding-right: 34px; }
.res__top > div:last-child { width: 300px; }
.res__score { font-size: 62px; font-weight: bold; color: var(--red-2); line-height: 1; }
.res__score small { font-size: 19px; color: var(--txt-2); font-weight: normal; }
.res__verdict { margin-top: 8px; font-size: 14px; font-weight: bold; }
.res__verdict.ok { color: var(--ok); }
.res__verdict.no { color: var(--no); }

.review { margin-top: 10px; border-top: 1px solid var(--line); }
.review__i { display: flex; gap: 12px; align-items: flex-start; padding: 9px 2px; border-bottom: 1px dotted var(--line-2); }
.review__n { width: 22px; flex: none; font-size: 11px; color: var(--txt-2); padding-top: 2px; }
.review__q { font-size: 12.5px; color: #333; }
.review__a { font-size: 11.5px; color: var(--txt-2); margin-top: 3px; }
.review__a b { color: #444; }
.review__p { margin-left: auto; font-size: 11.5px; white-space: nowrap; padding-top: 2px; }
.review__p svg { width: 13px; height: 13px; vertical-align: -2px; }
.review__p.ok { color: var(--ok); }
.review__p.no { color: var(--no); }

/* ---------- подвал ---------- */
.foot { margin-top: 30px; border-top: 2px solid var(--line); background: var(--fill-2); padding: 22px 46px 18px; }
.foot__grid { display: table; width: 100%; border-spacing: 22px 0; margin-left: -22px; }
.foot__grid > div { display: table-cell; vertical-align: top; }
.foot h4 { font-size: 11px; color: var(--txt-2); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 7px; }
.foot p, .foot li { font-size: 11.5px; color: #444; }
.foot ul { list-style: none; padding: 0; margin: 0; }
.foot__org { font-size: 13px; font-weight: bold; color: #222; }
.foot__req { margin-top: 7px; font-size: 11px; color: var(--txt-2); line-height: 1.65; }
.foot__bottom {
	margin-top: 16px; padding-top: 10px; border-top: 1px solid var(--line);
	font-size: 11px; color: var(--txt-2); display: flex; justify-content: space-between; gap: 16px;
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

/* вкладки не показывают собственную полосу прокрутки */
.tabs { scrollbar-width: none; -ms-overflow-style: none; }
.tabs::-webkit-scrollbar { display: none; }

/* ---------- лендинг олимпиады имени В. И. Даля ---------- */
.dal { display: table; width: 100%; }
.dal > * { display: table-cell; vertical-align: top; }
.dal__pic { width: 574px; padding-right: 34px; margin: 0; }
.dal__pic img {
	display: block; width: 100%; height: auto;
	border: 1px solid #c6c6c6; padding: 4px; background: #fff;
}
.dal__pic figcaption { font-size: 10.5px; color: var(--txt-2); margin-top: 7px; line-height: 1.5; }
.dal__body h1 { font-size: 27px; line-height: 1.16; }
.dal__cta { margin-top: 24px; }
.dal__cta .btn { margin: 0 8px 8px 0; }
.btn--lg { font-size: 15px; padding: 13px 26px; }
.btn--lg svg { width: 15px; height: 15px; }

.orgline { margin-top: 30px; padding-top: 18px; border-top: 1px dotted var(--line-2); }
.orgline__row { margin-bottom: 14px; }
.orgline__row:last-child { margin-bottom: 0; }
.orgline__k {
	display: block; font-size: 11px; color: var(--txt-2);
	text-transform: uppercase; letter-spacing: .06em; margin-bottom: 5px;
}
.orgline__v { display: block; font-size: 17px; font-weight: bold; color: #222; line-height: 1.4; max-width: 46ch; }
.orgline__v img { display: block; height: 42px; width: auto; margin-bottom: 8px; }
.partners { margin-top: 30px; padding-top: 16px; border-top: 1px dotted var(--line-2); }
.partners__k {
	display: block; font-size: 11px; color: var(--txt-2);
	text-transform: uppercase; letter-spacing: .06em; margin-bottom: 10px;
}
.partners__row { font-size: 0; white-space: nowrap; }
.partner {
	display: inline-block; vertical-align: middle; margin: 0 10px 0 0;
	border: 1px solid var(--line); background: #fff; padding: 8px 14px;
	min-height: 130px; min-width: 140px; text-decoration: none; text-align: center;
	line-height: 1.25;
}
.partner img { display: block; margin: 0 auto; height: 112px; width: auto; }
.partner--wide img { height: 72px; margin-top: 8px; }
.partner--wide .partner__s { margin-top: 8px; max-width: 210px; }
a.partner:hover { border-color: var(--orange); background: #fffdf3; }
.partner__t { display: block; padding-top: 44px; font-size: 11px; font-weight: bold; color: #333; text-transform: uppercase; letter-spacing: .04em; }
.partner__s { display: block; font-size: 10.5px; color: var(--txt-2); margin-top: 2px; white-space: normal; max-width: 200px; }

.info { width: 100%; border-collapse: collapse; }
.info th, .info td { border: 1px solid var(--line); padding: 8px 12px; font-size: 12.5px; vertical-align: top; text-align: left; }
.info th { width: 160px; background: var(--fill-2); color: var(--txt-2); font-weight: bold; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; }
.info--tight th { width: 120px; }

.rules { width: 100%; border-collapse: collapse; }
.rules td { border: 1px solid var(--line); padding: 10px 12px; vertical-align: top; font-size: 12.5px; }
.rules tr:hover td { background: #fffdf3; }
.rules__n { width: 34px; font-weight: bold; color: var(--red-2); text-align: center; font-size: 14px; }
.rules__t { width: 190px; font-weight: bold; color: #222; }
.rules__d { color: #444; }

.dal2 { display: table; width: 100%; border-spacing: 34px 0; margin-left: -34px; }
.dal2 > div { display: table-cell; vertical-align: top; width: 50%; }
.dal2--top { margin-top: 24px; }

.links { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.links li { border-bottom: 1px solid var(--line); padding: 9px 4px; }
.links a { font-size: 13px; font-weight: bold; }
.links span { display: block; font-size: 11.5px; color: var(--txt-2); margin-top: 2px; }

.stages { width: 100%; border-collapse: collapse; }
.stages th, .stages td { border: 1px solid var(--line); padding: 8px 12px; font-size: 12.5px; text-align: left; vertical-align: top; }
.stages th { background: var(--fill-2); color: var(--txt-2); font-size: 11px; text-transform: uppercase; letter-spacing: .04em; }
.stage__n { width: 34px; text-align: center; color: var(--txt-2); }
.stage__t { font-weight: bold; color: #222; }
.stage__d { width: 200px; color: var(--txt-2); }
.stage__s { width: 150px; color: var(--txt-2); }
.stages tr.is-now td { background: var(--yellow); }
.stages tr.is-now .stage__s { color: #7a5a00; font-weight: bold; }

.sub-h { font-size: 14px; color: #222; margin-bottom: 8px; }
.dal-note { font-size: 12.5px; color: #444; max-width: 52ch; }
.news { width: 100%; border-collapse: collapse; }
.news td { border-top: 1px solid var(--line); padding: 8px 4px; font-size: 12.5px; vertical-align: top; }
.news__d { width: 80px; color: var(--txt-2); white-space: nowrap; }

.cta-band {
	margin-top: 26px; padding: 16px 18px; border: 1px solid var(--line); background: var(--fill-2);
	display: flex; align-items: center; justify-content: space-between; gap: 20px;
}
.cta-band b { display: block; font-size: 14px; color: #222; }
.cta-band span { font-size: 12px; color: var(--txt-2); }

.login-page { display: table; width: 100%; }
.login-page > div { display: table-cell; vertical-align: top; }
.login-page > div:first-child { padding-right: 34px; }
.login-page > .card { width: 390px; }
.login-page h1 { font-size: 27px; color: #222; margin-top: 8px; }

.prose p { font-size: 13px; color: #444; margin: 0 0 10px; max-width: 62ch; }
.prose p:last-child { margin-bottom: 0; }

/* ---------- 10 фактов о Дале ---------- */
.facts { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.fact {
	display: grid; grid-template-columns: 40px 1fr; gap: 0 14px;
	border: 1px solid var(--line); background: #fff; padding: 14px 16px 15px;
}
.fact:hover { background: #fffdf3; border-color: var(--orange); }
.fact__n {
	font-size: 24px; font-weight: bold; color: var(--red-2); line-height: 1;
	border-right: 1px solid var(--line-2); padding-right: 12px; padding-top: 2px;
}
.fact p { font-size: 12.5px; color: #444; margin: 0; }
.lead-p { font-size: 14px; color: #333; }
.lead-p b { color: var(--red-2); }
.prose--2col { column-count: 2; column-gap: 40px; }
.prose--2col p { max-width: none; break-inside: avoid; }
#intro .lead-p { max-width: 74ch; font-size: 15px; line-height: 1.6; }

/* ==========================================================
   ОБНОВЛЁННЫЙ ВИД — v2 (только оформление, структура та же)
   Откат: удалить всё от этого маркера до конца файла
   ========================================================== */
:root {
	--r-s: 8px;
	--r-m: 12px;
	--r-l: 16px;
	--line:     #E4E0DA;
	--line-2:   #ECE8E2;
	--hair:     #F0ECE6;
	--fill:     #F5F2EE;
	--fill-2:   #F8F6F2;
	--sh-1: 0 1px 2px rgba(28,24,20,.04), 0 2px 6px rgba(28,24,20,.04);
	--sh-2: 0 2px 6px rgba(28,24,20,.05), 0 14px 32px -16px rgba(28,24,20,.20);
	--accent:   #E8972A;
	--accent-d: #CE7F16;
}

body { background: #E9E6E1; padding: 26px 0 46px; }

.page-frame {
	border: 1px solid #DEDAD4;
	border-radius: 20px;
	box-shadow: var(--sh-2);
	overflow: hidden;
	padding-bottom: 0;
}

a { transition: color .14s ease; }

/* ---------- шапка ---------- */
.hdr { border-bottom: 1px solid var(--line); margin-bottom: 26px; background: #FDFCFB; }
.hdr td { padding: 14px 46px; }
.hdr__nav a:not(.btn) {
	border-radius: 999px; transition: background .14s ease, color .14s ease;
}
.hdr__nav a:not(.btn):hover { background: var(--fill); color: var(--red-2); }
.hdr__nav a.is-on:not(.btn) { background: var(--fill); }

/* ---------- кнопки ---------- */
.btn {
	border-radius: 999px;
	border: 1px solid #DCD6CE;
	background: #fff;
	box-shadow: var(--sh-1);
	transition: transform .13s ease, box-shadow .13s ease, background .13s ease, border-color .13s ease;
}
.btn:hover {
	background: #fff; border-color: #CFC7BD; color: #111;
	transform: translateY(-1px); box-shadow: var(--sh-2);
}
.btn:active { transform: translateY(0); box-shadow: var(--sh-1); background: var(--fill-2); }
.btn:focus-visible { outline: 2px solid var(--accent-d); outline-offset: 2px; }
.btn--primary, .btn--accent {
	color: #fff; background: var(--accent); border-color: var(--accent-d);
	text-shadow: none;
	box-shadow: 0 1px 2px rgba(206,127,22,.20), 0 6px 16px -8px rgba(206,127,22,.55);
}
.btn--primary:hover, .btn--accent:hover {
	color: #fff; background: var(--accent-d); border-color: var(--accent-d);
	box-shadow: 0 2px 4px rgba(206,127,22,.22), 0 12px 26px -10px rgba(206,127,22,.60);
}

/* ---------- поля ---------- */
.input {
	border-radius: var(--r-s); border: 1px solid #DCD6CE; padding: 10px 12px;
	transition: border-color .14s ease, box-shadow .14s ease, background .14s ease;
}
.input:focus { border-color: var(--accent-d); background: #fff; box-shadow: 0 0 0 3px rgba(232,151,42,.16); }

/* ---------- заголовки разделов ---------- */
.sec { border-top: 1px solid var(--hair); margin-top: 34px; padding: 32px 0 8px; }
.sec__head { margin-bottom: 20px; }
.sec__head h2 { font-size: 21px; letter-spacing: -.01em; }
.sec__head h2::before {
	content: ""; display: block; width: 30px; height: 3px;
	background: var(--red-2); border-radius: 2px; margin-bottom: 11px;
}
.sec__head p { font-size: 12.5px; }
.page__head h1 { font-size: 24px; }

/* ---------- хиро ---------- */
.dal__pic img { border: 0; padding: 0; border-radius: var(--r-l); box-shadow: var(--sh-2); }
.hero__meta { border-collapse: separate; border-spacing: 10px 0; margin-left: -10px; }
.hero__meta div {
	background: var(--fill-2); border: 1px solid var(--line-2) !important;
	border-radius: var(--r-m); padding: 14px 16px !important;
}
.orgline { border-top: 1px solid var(--hair); }

/* ---------- карточка входа ---------- */
.card {
	border: 1px solid var(--line); border-top: 3px solid var(--red);
	border-radius: var(--r-l); padding: 22px 24px; box-shadow: var(--sh-2); background: #fff;
}
.login__hint { border-top: 1px solid var(--hair); }
.login__hint code { border-radius: 5px; border-color: var(--line-2); background: var(--fill); }
.login__err { border-radius: var(--r-s); border-color: #F2C9C9; }

/* ---------- таблицы: единый скруглённый блок ---------- */
.info, .rules, .stages {
	border-collapse: separate; border-spacing: 0;
	border: 1px solid var(--line); border-radius: var(--r-m);
	overflow: hidden; background: #fff;
}
.info th, .info td,
.rules td,
.stages th, .stages td {
	border: 0; border-bottom: 1px solid var(--hair); padding: 13px 16px;
}
.info tr:last-child th, .info tr:last-child td,
.rules tr:last-child td,
.stages tr:last-child td { border-bottom: 0; }
.info th { background: var(--fill-2); }
.stages th { background: var(--fill-2); border-bottom: 1px solid var(--line); }
.rules tr:nth-child(even) td { background: #FCFBF9; }
.rules tr:hover td, .stages tr:hover td { background: #FDF8EE; }
.stages tr.is-now td { background: #FFF4D2; }
.stages tr.is-now:hover td { background: #FFEFC2; }
.rules__n { font-size: 15px; }

/* ---------- 10 фактов ---------- */
.fact {
	border: 1px solid var(--line-2); border-radius: var(--r-m);
	box-shadow: var(--sh-1); padding: 16px 18px 17px;
	transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease;
	grid-template-columns: 44px 1fr;
}
.fact:hover {
	background: #fff; border-color: #E2D6C4;
	transform: translateY(-2px); box-shadow: var(--sh-2);
}
.fact__n {
	border-right: 0; padding: 0; text-align: center;
	width: 32px; height: 32px; line-height: 32px; font-size: 15px;
	background: var(--fill); border-radius: 50%; color: var(--red-2);
}
.facts { gap: 16px; }

/* ---------- ссылки, новости, FAQ ---------- */
.links { border-top: 0; }
.links li {
	border: 1px solid var(--line-2); border-radius: var(--r-s);
	margin-bottom: 8px; padding: 11px 14px; background: #fff;
	transition: border-color .14s ease, background .14s ease;
}
.links li:hover { border-color: #E2D6C4; background: #FDFBF7; }
.faq { border-top: 1px solid var(--hair); }
.faq details { border-bottom: 1px solid var(--hair); }
.news td { border-top: 1px solid var(--hair); }

/* ---------- полосы и плитки ---------- */
.cta-band {
	border: 1px solid var(--line); border-radius: var(--r-l);
	background: var(--fill-2); box-shadow: var(--sh-1); padding: 20px 22px;
}
.tile { border-radius: var(--r-m); border-color: var(--line-2); box-shadow: var(--sh-1); }
.tabs .tab { border-radius: 999px 999px 0 0; }
.pill { border-radius: 999px; }
.partner { border-radius: var(--r-m); border-color: var(--line-2); }

/* ---------- подвал ---------- */
.foot { border-top: 1px solid var(--line); background: var(--fill-2); padding: 28px 46px 24px; }
.foot__bottom { border-top: 1px solid var(--hair); }
.hero__meta div { vertical-align: top; }
.hero__meta b { font-size: 17px; }
.hero__meta span { margin-top: 6px; }
.orgline__v img { height: 68px; margin-bottom: 10px; }
.orgline__row:last-child .orgline__v { font-size: 20px; max-width: 30ch; }
