/* Общие полосы, доступная форма, документы и состояния загрузки. */
[hidden] { display: none !important; }
.screen[inert] { visibility: hidden; }
.topic-panel { height: auto; min-height: 100%; overflow: visible; }
.topic-scroll { scroll-snap-type: y proximity; scrollbar-width: auto; }
.topic-scroll::-webkit-scrollbar { width: revert; height: revert; }
.order-scroll { width: 100%; height: 100%; overflow: auto; display: flex; }
.order-form { max-height: none; flex: 0 0 auto; margin: auto; }
.order-screen { min-width: 0; }
.status-popup { z-index: 150; }
.field > .field-error, .consent-field > .field-error { display: block; margin: 2px 0 0; color: var(--danger); font-size: 13px; line-height: 1.3; }
body[data-visual-style="bold"] .field > .field-error, body[data-visual-style="bold"] .consent-field > .field-error { color: #ffb5ac; }
[aria-invalid="true"], .sc-textarea-frame:has([aria-invalid="true"]), .sc-input-frame:has([aria-invalid="true"]) { border-color: var(--danger) !important; }
.consent-field { display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: start; gap: 9px; font-size: 12px; line-height: 1.4; }
.consent-field input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--accent); }
.consent-field .field-error { grid-column: 2; }
.consent-field a, .legal-links a, .legal-page a, .analytics-choice a { text-decoration: underline; text-underline-offset: 3px; }
.text-button { padding: 0; border: 0; background: transparent; color: inherit; font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.legal-links { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 10px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.analytics-choice { position: fixed; z-index: 160; left: 14px; bottom: calc(14px + env(safe-area-inset-bottom)); width: min(370px, calc(100% - 42px)); padding: 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); color: var(--text); box-shadow: var(--shadow); }
.analytics-choice p { margin: 0 0 12px; font-size: 14px; }
.analytics-choice > div { display: flex; flex-wrap: wrap; gap: 8px; }
.analytics-choice button { min-height: 44px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-soft); color: var(--text); cursor: pointer; }
.analytics-choice button:last-child { background: var(--accent); color: #fff; }
body[data-visual-style="bold"] .analytics-choice button:last-child { color: var(--ink); }
/* В спокойной теме нижняя панель экранов видна и на компьютере (её высота с отступом 80px). На экране услуг баннер стоит
   над ней; на экране заявки остаётся у края, иначе на узком компьютере закрывает согласие и кнопку отправки */
body[data-visual-style="minimal"][data-current-view="info"] .analytics-choice { bottom: calc(var(--bottom-nav-space, 80px) + 18px + env(safe-area-inset-bottom)); }
.sc-scroll-frame { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) var(--sc-compact-width); grid-template-rows: minmax(0, 1fr) var(--sc-compact-width); width: 100%; height: 100%; min-width: 0; min-height: 0; overflow: hidden; }
/* Место под полосой прозрачно; слои содержимого рядом с ним runtime.js продолжает отрезками .sc-scroll-surface. */
.sc-scroll-frame::after { content: ""; grid-column: 2; grid-row: 2; background: var(--sc-corner-color, transparent); }
.sc-scroll-viewport { grid-column: 1; grid-row: 1; width: 100% !important; height: 100% !important; min-width: 0 !important; min-height: 0 !important; max-height: none !important; overflow: auto !important; scrollbar-width: none !important; }
.sc-scroll-viewport::-webkit-scrollbar, html.sc-page-managed::-webkit-scrollbar { display: none; width: 0; height: 0; }
.sc-scroll-viewport:focus-visible { outline: 2px solid var(--accent); outline-offset: -3px; }
.sc-scroll-track { --sc-thumb-rest: var(--sc-compact-thumb-rest); --sc-thumb-active: var(--sc-compact-thumb-active); --sc-thumb-size: var(--sc-thumb-rest); --sc-thumb-color: var(--sc-light-rest); position: relative; min-height: 0; min-width: 0; background: transparent; touch-action: none; outline: none; }
.sc-page-track { --sc-thumb-rest: var(--sc-page-thumb-rest); --sc-thumb-active: var(--sc-page-thumb-active); }
.sc-scroll-track[data-tone="dark"] { --sc-thumb-color: var(--sc-dark-rest); }
.sc-scroll-track.has-overflow { cursor: pointer; }
.sc-scroll-track.has-overflow:hover, .sc-scroll-track.is-dragging, .sc-scroll-track:focus-visible { --sc-thumb-size: var(--sc-thumb-active); }
.sc-scroll-track.has-overflow:hover { --sc-thumb-color: var(--sc-light-hover); }
.sc-scroll-track.has-overflow[data-tone="dark"]:hover { --sc-thumb-color: var(--sc-dark-hover); }
.sc-scroll-track.is-dragging { --sc-thumb-color: var(--sc-light-active); }
.sc-scroll-track.is-dragging[data-tone="dark"] { --sc-thumb-color: var(--sc-dark-active); }
.sc-scroll-track:focus-visible { --sc-thumb-color: var(--sc-light-focus); }
.sc-scroll-track:focus-visible[data-tone="dark"] { --sc-thumb-color: var(--sc-dark-focus); }
.sc-scroll-y { grid-column: 2; grid-row: 1; }
.sc-scroll-x { grid-column: 1; grid-row: 2; }
.sc-scroll-surface { position: absolute; display: block; pointer-events: none; }
.sc-scroll-y .sc-scroll-surface { left: 0; right: 0; }
.sc-scroll-x .sc-scroll-surface { top: 0; bottom: 0; }
.sc-scroll-thumb { position: absolute; display: block; background: transparent; pointer-events: auto; }
.sc-scroll-track:not(.has-overflow) .sc-scroll-thumb { visibility: hidden; }
.sc-scroll-thumb::before { content: ""; position: absolute; border-radius: 999px; background: var(--sc-thumb-color); transition: background-color var(--sc-tone-ms) ease, width var(--sc-tone-ms) ease, height var(--sc-tone-ms) ease; }
.sc-scroll-y .sc-scroll-thumb { width: 100%; top: 0; left: 0; }
.sc-scroll-y .sc-scroll-thumb::before { top: var(--sc-thumb-gap); bottom: var(--sc-thumb-gap); left: 50%; width: var(--sc-thumb-size); transform: translateX(-50%); }
.sc-scroll-x .sc-scroll-thumb { height: 100%; top: 0; left: 0; }
.sc-scroll-x .sc-scroll-thumb::before { left: var(--sc-thumb-gap); right: var(--sc-thumb-gap); top: 50%; height: var(--sc-thumb-size); transform: translateY(-50%); }
@media (prefers-reduced-motion: reduce) { .sc-scroll-thumb::before { transition: none; } }
html.sc-page-managed, html.sc-page-managed body { width: 100%; height: 100%; min-height: 0; overflow: hidden; }
.sc-page-frame { position: fixed; inset: 0; width: 100%; height: 100%; grid-template-columns: minmax(0, 1fr) var(--sc-page-width); grid-template-rows: minmax(0, 1fr) var(--sc-page-width); }
.sc-page-track { z-index: 140; }
.sc-page-overlays { position: absolute; inset: 0 var(--sc-page-width) var(--sc-page-width) 0; z-index: 145; pointer-events: none; }
.sc-page-overlays > .bottom-nav, .sc-page-overlays > .status-popup, .sc-page-overlays > .analytics-choice { position: absolute; pointer-events: auto; }
.sc-page-overlays > .status-popup { pointer-events: none; }
.sc-textarea-frame { border: 1px solid rgba(15,118,110,.24); border-radius: 7px; background: var(--surface-soft); min-height: 100px; max-height: 320px; resize: vertical; }
.sc-textarea-frame textarea { padding: 10px 12px; border: 0; outline: none; border-radius: 0; background: var(--surface-soft); color: var(--text); font: inherit; font-size: 15px; line-height: 1.4; resize: none; }
.sc-textarea-frame:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.sc-input-frame { min-height: calc(44px + var(--sc-compact-width)); border: 1px solid rgba(15,118,110,.24); border-radius: 7px; background: var(--surface-soft); }
.sc-input-frame input { padding: 10px 12px; border: 0; outline: none; border-radius: 0; background: var(--surface-soft); color: var(--text); font: inherit; font-size: 15px; }
.sc-input-frame:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
body[data-visual-style="bold"] .sc-input-frame, body[data-visual-style="bold"] .sc-input-frame input { background: #171a17; color: #fff; }
body[data-visual-style="bold"] .sc-textarea-frame, body[data-visual-style="bold"] .sc-textarea-frame textarea { background: #171a17; color: #fff; }
.custom-select-menu { max-height: none; overflow: visible; padding: 0; }
.select-options-scroll { display: grid; gap: 3px; padding: 6px; overflow: auto; max-height: min(var(--select-menu-max-height), 34svh); }
.sc-select-frame { height: auto; max-height: min(var(--select-menu-max-height), 34svh); border-radius: inherit; }
.sc-select-frame .select-options-scroll { height: auto !important; }
.custom-select-option { flex-shrink: 0; }
.legal-page { overflow: auto; background: var(--page); }
.legal-document { max-width: 860px; padding: 32px 24px 64px; margin: auto; }
.legal-document h1 { font-size: clamp(28px, 6vw, 42px); line-height: 1.12; }
.legal-document h2 { margin-top: 36px; font-size: 23px; }
.legal-document li { margin-bottom: 8px; }
.legal-document section { scroll-margin-top: 20px; }
.legal-document dl { display: grid; grid-template-columns: minmax(130px, .6fr) 1fr; gap: 12px; }
.legal-document dd { margin: 0; overflow-wrap: anywhere; }
.is-placeholder-data, .legal-incomplete { color: #8c261c; background: #fff0e6; padding: 3px 5px; border-radius: 3px; }
.legal-incomplete { padding: 12px; border-left: 3px solid #b45d26; }
.noscript-note { padding: 18px; }
@media (max-width: 680px), (max-width: 940px) and (max-height: 500px) and (orientation: landscape) {
    .order-scroll { height: auto; overflow: visible; }
    .order-form { margin: 0; }
    .topic-panel { min-height: 0; }
    .sc-textarea-frame textarea, .sc-input-frame input { font-size: 16px; }
    html.sc-page-managed .bottom-nav { right: 0; width: auto; bottom: 0; }
    .analytics-choice { bottom: calc(var(--bottom-nav-space) + 18px + env(safe-area-inset-bottom)); }
    .status-popup { left: 50%; }
    .legal-document { padding: 24px 16px 40px; }
    .legal-document dl { grid-template-columns: 1fr; gap: 6px; }
    .legal-document dd { margin-bottom: 12px; }
}
@media (max-width: 940px) and (max-height: 500px) and (orientation: landscape) {
    html.sc-page-managed .bottom-nav { left: 50%; right: auto; width: min(380px, calc(100% - 48px)); }
}
