/* Каркас кабинета: шапка, нижнее меню, всплывающие сообщения, общие размеры.
   Раздел бывшего ui-fixes-20260926.css (порядок правил внутри раздела прежний; разложено tools/css-sections.py). */
/* Mobile history is a single, focused detail screen. */
.design-787 .trip-history-detail-head{display:flex;align-items:center;gap:12px}
.design-787 .trip-history-detail-head h3{margin:0}
.design-787 .trip-history-back{display:none}
@media(max-width:599px){
  body.design-787 .trip-history-detail[open]{position:fixed;inset:0;box-sizing:border-box;width:100vw;height:calc(var(--app-vh, 1vh) * 100);height:100dvh;max-width:none;max-height:none;margin:0;padding:0 14px max(22px,env(safe-area-inset-bottom));overflow-y:auto;overflow-x:hidden;border:0;border-radius:0;background:var(--787-bg);color:var(--787-ink);box-shadow:none}
  body.design-787 .trip-history-detail::backdrop{background:#071724aa}
  body.design-787 .trip-history-detail-head{position:sticky;top:0;z-index:2;min-height:58px;margin:0 -14px 14px;padding:8px 14px;background:var(--787-blue);color:#fff}
  body.design-787 .trip-history-detail-head h3{font-size:17px;color:#fff}
  body.design-787 .trip-history-back{display:inline-flex;flex:0 0 auto;min-height:44px;color:#fff!important;background:#ffffff18!important;border:1px solid #ffffff55}
  body.design-787 .trip-history-detail dl{display:grid;grid-template-columns:minmax(0,1fr);gap:2px;padding:0 4px}
  body.design-787 .trip-history-detail dt{margin-top:9px}
  body.design-787 .trip-history-detail dd{margin:0 0 3px;font-size:15px}
}

.install-share-dialog .install-qr-caption{display:none}
@media(max-width:599px){
  .install-share-dialog{display:flex;flex-direction:column;align-items:stretch;gap:10px}
  .install-share-dialog:not([open]){display:none}
  .install-share-dialog header{order:0}.install-share-dialog .install-audiences{order:1}
  .install-share-dialog>label{order:2}.install-share-dialog #install-share-guide{order:3;margin:0}
  .install-share-dialog #install-share-status{order:4;margin:0}
  .install-share-dialog footer{order:5;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin:0}
  .install-share-dialog footer>*{min-width:0;width:100%;box-sizing:border-box;white-space:normal;overflow-wrap:anywhere}
  .install-share-dialog footer>[data-install-current]{grid-column:1/-1;grid-row:1;min-height:48px}
  .install-share-dialog footer>[data-install-open]{grid-column:1;grid-row:2}
  .install-share-dialog footer>[data-install-copy]{grid-column:2;grid-row:2}
  .install-share-dialog footer:has(>[data-install-current][hidden])>[data-install-open]{grid-column:1/-1;grid-row:1}
  .install-share-dialog footer:has(>[data-install-current][hidden])>[data-install-copy]{grid-column:1/-1;grid-row:2}
  .install-share-dialog .install-qr-surface{order:6;display:flex;align-items:center;justify-content:center;gap:12px;min-height:0;margin:4px 0 0;padding:10px}
  .install-share-dialog .install-qr-surface img{width:88px;height:88px;object-fit:contain}
  .install-share-dialog .install-qr-caption{display:block;color:var(--787-muted);font-size:13px;text-align:left}
}

/* A deletion request has an explicit, contained warning and a distinct action. */
.account-deletion-form .account-deletion-warning{margin:0;padding:12px;border-left:3px solid var(--787-danger);border-radius:8px;background:#fff5f4;color:var(--787-ink);font-size:13px;line-height:1.45}
.account-deletion-form .form-actions{display:flex;flex-wrap:wrap;gap:8px}
.account-deletion-form .form-actions button{min-height:44px;white-space:normal}
@media(max-width:599px){.account-deletion-form .form-actions{display:grid;grid-template-columns:minmax(0,1fr)}.account-deletion-form .form-actions button{width:100%}}
body :is(.dialog-filter:not(.active),.dialog-date,.dialog-preview){color:#526879}
body .voice-wave:is(:hover,:active,:focus-visible){background:transparent}
body .voice-player>.voice-unavailable{grid-column:1/-1;min-width:0;width:100%;white-space:normal;overflow-wrap:break-word;line-height:1.45}
body .form-field-hint{display:block;min-width:0;color:#526879;font-size:13px;font-weight:400;line-height:1.45;white-space:normal;overflow-wrap:break-word}
#commission-refresh{flex-shrink:0}
body.design-787 #cabinet .app-page[data-page="trips"] .trip-history-actions{align-items:stretch}

/* T13: зоны касания не меньше 44 px. Значки сохраняют размер: зона расширяется невидимым ::after. */
.emoji-palette button{min-width:44px;min-height:44px}
.voice-player button.voice-play,.voice-player button.voice-more{position:relative}
.voice-player button.voice-play::after,.voice-player button.voice-more::after{content:"";position:absolute;inset:-4px}
/* docs/design-rules.md, правило 5: в шапке кабинета зоны касания 44 px на любом размере (ранее только до 820 px). */
body.design-787 .cabinet-header .header-qr{flex-basis:44px!important;width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important}
body.design-787 .cabinet-header .cabinet-logo{min-width:44px;min-height:44px;justify-content:center}
@media (max-width:560px) and (max-height:700px){
  /* Окно отмены на невысоком телефоне помещается без прокрутки. */
  body.design-787 .cancel-modal-card{gap:10px;max-height:calc(var(--app-vh, 1vh) * 100);max-height:100dvh;padding-top:14px;padding-bottom:calc(12px + env(safe-area-inset-bottom))}
  body.design-787 .cancel-reasons{gap:6px}
  body.design-787 .cancel-reasons label{padding:6px 11px}
}
/* Полноэкранная карточка поездки: ширина по экрану, а не 100vw, чтобы она не оказалась шире видимой области. */
body.design-787 .trip-history-detail[open]{width:100%;max-width:100%}
/* Подробности поездки в одну колонку: значение под подписью, по левому краю. */
body.design-787 .trip-history-detail dd{text-align:left}

/* ── Пакет 116 (замечания владельца со снимков телефона, 06.10) ───────────────────────────── */
/* Прокрутка к элементу (карточка из уведомления, форма оценки) не прячет его под закреплённую шапку. */
html{scroll-padding-top:76px}
/* Подробности поездки на телефоне: панель от верха экрана до нижнего меню (меню остаётся видимым и рабочим),
   строки «подпись — значение» в одну линию. */
body.trip-detail-open{overflow:hidden}
body.design-787 dialog.trip-history-detail-sheet[open]{position:fixed;inset:0 0 auto 0;top:0;z-index:95;display:block;width:100%;max-width:100%;height:auto;max-height:none;margin:0;padding:0 14px 12px;overflow-y:auto;overflow-x:hidden;border:0;border-radius:0;background:var(--787-bg);color:var(--787-ink);box-shadow:none;overscroll-behavior:contain}
body.design-787 dialog.trip-history-detail-sheet .trip-history-detail-head{min-height:52px;margin:0 -14px 6px;padding:calc(6px + env(safe-area-inset-top)) 14px 6px}
body.design-787 dialog.trip-history-detail-sheet dl{display:grid;grid-template-columns:minmax(92px,34%) minmax(0,1fr);gap:0;padding:0;margin:0}
body.design-787 dialog.trip-history-detail-sheet dt,body.design-787 dialog.trip-history-detail-sheet dd{margin:0;padding:7px 0;border-bottom:1px solid var(--787-line);font-size:14px;line-height:1.3;min-width:0;overflow-wrap:anywhere}
body.design-787 dialog.trip-history-detail-sheet dt{padding-right:10px;color:var(--787-muted,#5b6b78);font-size:13px}
body.design-787 dialog.trip-history-detail-sheet dd{text-align:left;font-weight:500}
body.design-787 dialog.trip-history-detail-sheet .trip-detail-complaint{width:100%;min-height:44px;margin:10px 0 0}

/* Нижнее меню: без точки под активной вкладкой (её принимали за отметку о новом); новое показывает счётчик на вкладке. */
.bottom-nav button.active::after{content:none!important;display:none!important}

/* Значки нижнего меню — рисованные, одного веса с остальными значками интерфейса. */
#bottom-nav .nav-symbol{display:grid;place-items:center;height:24px;line-height:1}
#bottom-nav .nav-symbol svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.design-787 .cabinet-header #bottom-nav .nav-symbol{display:none}
/* Подробности поездки: оценка — главное действие после завершённой поездки. */
body.design-787 .trip-history-detail .trip-detail-rate{display:block;width:100%;min-height:48px;margin:12px 0 8px;border:0;border-radius:12px;background:#b84a00;color:#fff;font-size:16px;font-weight:600}
/* Звонок в приложении: экран поверх кабинета — входящий, исходящий, разговор. Кнопки крупные, под палец. */
.trip-call{position:fixed;inset:0;z-index:4000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(10,20,40,.72)}
.trip-call[hidden]{display:none}
.trip-call-card{width:min(360px,100%);max-height:100%;overflow:auto;display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px 20px 20px;border-radius:20px;background:#fff;color:#14213d;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.trip-call-avatar{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#e6eefc;color:#1d4ed8;font-size:30px;font-weight:700}
.trip-call-card h2{margin:4px 0 0;font-size:20px;line-height:1.25;overflow-wrap:anywhere}
.trip-call-status{margin:0;font-size:16px;font-weight:600}
.trip-call[data-state=active] .trip-call-status{font-size:28px;font-variant-numeric:tabular-nums}
.trip-call-hint{margin:0;font-size:13px;color:#56627a}
.trip-call-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;width:100%;margin-top:8px}
.trip-call-actions .button{flex:1 1 130px;min-height:52px;border-radius:14px;font-size:16px;font-weight:700}
.trip-call-actions .button[hidden]{display:none}
.trip-call-accept{background:#15803d;border-color:#15803d;color:#fff}
.trip-call-end{background:#b91c1c;border-color:#b91c1c;color:#fff}
body.trip-call-open{overflow:hidden}
/* Кнопка-значок («Закрыть» в окне заказа и другие) — не уже 44 px. */
body.design-787 .icon-button{min-width:44px;min-height:44px}
/* Планшет (до 1099 px, касания): поиск, «Установить» и QR в шапке — не ниже 44 px. */
/* Карта районов в админке: кнопки масштаба 36 px. */
/* Найдено обходом экранов 13.10.2026. Пометка «закрыт» в архиве чатов: контраст был 3:1. */
body.design-787 .dialog-status{color:#4f606c}
/* QR из шапки — крупно, сразу под заголовком: водитель показывает его пассажиру на заднем сиденье (замечание владельца 14.10.2026).
   Окно установки/приглашения (install-share-dialog): QR почти во всю ширину телефона, ссылка и кнопки — ниже, окно прокручивается. */
.install-share-dialog{width:min(100% - 16px,560px)!important;padding:14px 16px!important}
.install-share-dialog .eyebrow{display:none}
.install-share-dialog h2{margin:2px 0 8px!important}
.install-share-dialog .install-qr-surface{display:grid;justify-items:center;gap:6px}
/* Замечание владельца 26.10.2026 (снимок окна QR в админке): QR в 480 px не оставлял места остальному, и в невысоком окне оно
   прокручивалось и упиралось в край. Размер QR — от высоты экрана за вычетом остального окна (около 420 px). */
.install-share-dialog #install-share-qr{width:clamp(160px,min(88vw,calc(calc(var(--app-vh, 1vh) * 100) - 420px)),360px)!important;width:clamp(160px,min(88vw,calc(100dvh - 420px)),360px)!important;max-width:none!important;height:auto!important;padding:6px;border-radius:12px;background:#fff;box-sizing:border-box}
.install-share-dialog[open]{display:flex!important;flex-direction:column;gap:10px}
.install-share-dialog[open]>*{margin:0}
/* Блоки окна не сжимаются по высоте: иначе в невысоком окне блок QR становится ниже картинки, и QR ложится на подписи и ссылку (замечание владельца 14.10.2026). Окно прокручивается. */
.install-share-dialog[open]>*{flex-shrink:0}
.install-share-dialog[open]>header{order:0}
.install-share-dialog[open]>.install-audiences{order:1}
.install-share-dialog[open]>.install-qr-surface{order:2;padding:4px!important;margin:0 -8px!important}
.install-share-dialog[open]>label{order:3}
.install-share-dialog[open]>#install-share-guide,.install-share-dialog[open]>#install-share-status{order:4}
.install-share-dialog[open]>footer{order:5}
/* F-17: пояснения к настройкам очередей. */
.dispatch-field-help{margin:0 0 14px;padding:10px 14px;border:1px solid var(--line,#d9e1ea);border-radius:12px;background:#f8fafc}
.dispatch-field-help>summary{min-height:44px;display:flex;align-items:center;font-weight:700;cursor:pointer}
.dispatch-field-help dl{display:grid;grid-template-columns:minmax(180px,max-content) 1fr;gap:6px 16px;margin:8px 0 4px}
.dispatch-field-help dt{font-weight:700}.dispatch-field-help dd{margin:0;color:var(--muted,#55636f)}
@media(max-width:700px){.dispatch-field-help dl{grid-template-columns:1fr}.dispatch-field-help dd{margin-bottom:6px}}
/* Аудит интерфейса 21.10.2026: на широком экране меню в шапке — счётчик стоял поверх подписи («Мои по②дки»). Ставим его рядом с подписью. */
@media(min-width:1100px){body.design-787 .cabinet-header #bottom-nav button{position:relative;display:inline-flex;align-items:center;gap:6px}body.design-787 .cabinet-header #bottom-nav .nav-badge{position:static;margin:0;border-width:0;flex:0 0 auto}}
/* Аудит интерфейса 21.10.2026: раздел профиля из одной карточки — без заголовка-кнопки «Открыть/Свернуть», содержимое сразу. */
body.design-787 details.settings-accordion-single > summary{display:none}
body.design-787 details.settings-accordion-single{border:0;background:transparent;box-shadow:none}
/* Аудит интерфейса 21.10.2026: нет связи — заметная полоса под шапкой, а не фраза внизу поверх кнопок; возврат связи — зелёная. */
body .connection-status{top:calc(env(safe-area-inset-top) + 64px);bottom:auto;width:min(680px,calc(100% - 24px));text-align:center;font-weight:700}
body .connection-status.connection-back{border-color:#9fd3b4;background:#e9f7ef;color:#11663a}
/* Проверка на iPhone 22.10.2026: при открытой клавиатуре нижнее меню поднималось над ней и занимало место у поля ввода. */
@media(max-width:759px){body.design-787.keyboard-open #bottom-nav{display:none}}

/* Крупный шрифт (проверка владельца 22.10.2026: системный размер шрифта телефона и масштаб 150–200%).
   Поля растут вместе с текстом, а не обрезают его: шапка уступает место кнопкам, длинные слова переносятся. */
body.design-787 .cabinet-header .cabinet-head-left,body.design-787 .cabinet-header .cabinet-logo{min-width:0}
body.design-787 .cabinet-header .cabinet-logo>span:not(.design-brand-mark){min-width:0;overflow:hidden;white-space:nowrap;text-overflow:clip}
body.design-787 .cabinet-header .design-brand-mark{width:auto;min-width:30px;height:auto;min-height:30px;padding:0 3px;box-sizing:border-box;white-space:nowrap}
body.design-787 .cabinet-header .cabinet-head-actions{min-width:0;flex-shrink:1}
body.design-787 .cabinet-header #header-balance{min-width:0;flex-shrink:1;overflow:hidden}
body.design-787 .cabinet-header #header-balance>*{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
body.design-787 .direction-tabs>button{min-width:0;overflow-wrap:anywhere;hyphens:auto}
body.design-787 .dialog-row{grid-template-columns:auto minmax(0,1fr)}
body.design-787 .dialog-avatar{min-width:42px;width:auto;height:auto;min-height:42px;padding:0 4px;box-sizing:border-box}

/* Окно QR из шапки на телефоне помещается в один экран без прокрутки (замечание владельца 22.10.2026).
   QR остаётся крупным (водитель показывает его пассажиру), но не больше места, которое остаётся после ссылки,
   подсказки и кнопок; переключатель из одного пункта не показывается; «Открыть ссылку» и «Копировать» — в одну строку. */
@media(max-width:759px){
 .install-share-dialog[open]{gap:8px!important;padding:12px 14px!important;max-height:calc(calc(var(--app-vh, 1vh) * 100) - 16px)!important;max-height:calc(100dvh - 16px)!important;overflow-y:auto}
 .install-share-dialog h2{font-size:20px!important;line-height:1.2}
 .install-share-dialog .install-audiences:has(>button:only-child){display:none}
 .install-share-dialog #install-share-qr{width:clamp(150px,min(86vw,calc(calc(var(--app-vh, 1vh) * 100) - 424px)),440px)!important;width:clamp(150px,min(86vw,calc(100dvh - 424px)),440px)!important}
 .install-share-dialog #install-share-guide{font-size:13px;line-height:1.35}
 .install-share-dialog label input{min-height:40px}
 .install-share-dialog footer{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
 .install-share-dialog footer>[data-install-current]{grid-column:1/-1!important;grid-row:1!important;min-height:46px}
 .install-share-dialog footer>[data-install-open]{grid-column:1!important;grid-row:2!important;min-height:44px}
 .install-share-dialog footer>[data-install-copy]{grid-column:2!important;grid-row:2!important;min-height:44px}
 .install-share-dialog footer:has(>[data-install-current][hidden])>[data-install-open]{grid-row:1!important}
 .install-share-dialog footer:has(>[data-install-current][hidden])>[data-install-copy]{grid-row:1!important}
}
/* Суммы в ячейках «Сегодня / 7 дней / Месяц» и на смене — одной строкой (на 320 px число рвалось: «12 60 / 0 ₽»). */
body.design-787 .stats-grid>article>strong,body.design-787 .stats-grid strong{white-space:nowrap}
@media(max-width:359px){body.design-787 .stats-grid>article>strong{font-size:15px!important}}
/* Подсветка нового статуса на экране «Поездка» вместо всплывающего уведомления. */
@keyframes tsFlash{0%{box-shadow:0 0 0 0 rgba(176,79,0,.55)}100%{box-shadow:0 0 0 12px rgba(176,79,0,0)}}
/* Прокрутка к элементу (фокус, якорь, scrollIntoView) не оставляет его под нижним меню телефона (проверка 24.10.2026). */
@media(max-width:759px){html{scroll-padding-bottom:calc(var(--bottom-nav-h,64px) + 8px)}}

/* Метка непрочитанного в нижнем меню (замечание владельца 26.10.2026: «метка 99+ над значком») — у обеих ролей с одного
   места: левый край чуть правее середины значка, длинное число растёт вправо и не закрывает значок. */
#bottom-nav .nav-badge{right:auto!important;left:calc(50% + 3px)!important}

/* Обход «нажми всё» 26.10.2026.
   Крупный шрифт телефона (130–200 %): длинные заголовки и подписи переносятся, а не уходят за край экрана;
   вкладки переносят слово по слогам, а не по букве. */
body.design-787 :is(h1,h2,h3,.page-heading h2,.booking-heading h2,.section-head h2,.section-head h3){overflow-wrap:break-word;hyphens:auto;-webkit-hyphens:auto}
body.design-787 :is(.direction-tabs button,[role=tab],.dialog-filter,.ds-tabs button){overflow-wrap:normal;word-break:normal;hyphens:auto;-webkit-hyphens:auto}
body.design-787 #bottom-nav .nav-label{overflow:hidden;text-overflow:ellipsis;max-width:100%}
/* Ярлык «закрыт» в списке чатов — не мельче 11 px. */
body.design-787 .dialog-status{font-size:11px}
/* Кнопки профиля водителя и «Открыть» в админке — не ниже 44 px под палец. */
body.design-787 #driver-shell :is(#driver-profile-share-qr,.install-app){min-height:44px}
/* Логотип в шапке — цель не уже 44 px (на планшете у водителя была 30 px). */
body.design-787 .cabinet-header .cabinet-logo{min-width:44px}
/* Слово AIRCLUB в шапке на узком телефоне (320) помещается целиком. */
@media(max-width:340px){body.design-787 .cabinet-header .cabinet-logo span:not(.design-brand-mark){letter-spacing:.02em;font-size:12px}}
/* Крупный шрифт: заголовок раздела, подпись над ним, статус поездки и итоги месяца переносятся по словам. */
body.design-787 .page-heading,body.design-787 .page-heading>div{min-width:0;flex-wrap:wrap}
body.design-787 .page-heading :is(.eyebrow,h2){white-space:normal;overflow-wrap:break-word;max-width:100%}
body.design-787 .status-pill{white-space:normal;max-width:100%}
body.design-787 #driver-shell .stats-grid>article{min-width:0}
body.design-787 #driver-shell .stats-grid>article>*{white-space:normal;overflow-wrap:anywhere;min-width:0}
/* Сообщение выше открытых листов и панелей (адрес, уведомления), а не под ними. */
body.design-787 #cabinet-message:not([hidden]){z-index:2147483000!important}
/* Полоса «Нет интернета» в кабинете и админке — в странице под шапкой (http-client.js ставит её первой в разделе), не поверх. */
body .cabinet-main>.connection-status,body .admin-main>.connection-status{position:sticky;top:calc(env(safe-area-inset-top) + 64px);left:auto;bottom:auto;transform:none;z-index:80;box-sizing:border-box;width:auto;max-width:none;margin:0 0 10px;grid-column:1/-1}
body .admin-main>.connection-status{top:calc(env(safe-area-inset-top) + 60px)}
/* Одна вкладка «Пассажиру» без выбора не нужна — блок вкладок скрыт, если вариант один. */
.install-share-dialog .install-audiences:not(:has(>:nth-child(2))){display:none!important}
/* Крестик окна QR — крупнее: 48 px и знак 28 px (замечание владельца 26.10.2026). */
.install-share-dialog [data-install-close]{width:48px!important;height:48px!important;min-width:48px!important;font-size:28px!important;line-height:1!important;font-weight:500;display:inline-grid;place-items:center;padding:0!important}
/* 06.11.2026: промежутки между блоками раздела — от 8 px (подпись периода прилипала к кнопкам, сменная панель — вплотную). */
body.design-787 #passenger-trip-period-state{margin-top:8px!important}
body.admin-body #admin-state+#admin-dashboard,body.admin-body #admin-state{margin-bottom:12px}
/* 06.11.2026 (проверяющий): окно QR — «Открыть ссылку» и «Копировать ссылку» одной высоты и в один ряд поровну; на очень
   узком экране — друг под другом во всю ширину (были лесенкой разной высоты). */
.install-share-dialog footer:not(#_){display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,130px),1fr))!important;gap:8px;align-items:stretch}
.install-share-dialog footer:not(#_)>:is(a,button):not([hidden]){width:100%!important;min-height:48px;margin:0!important;display:inline-flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap}
.install-share-dialog footer:not(#_)>*{order:0!important;grid-column:auto!important;grid-row:auto!important}
@media(max-width:420px){.install-share-dialog footer:not(#_){grid-template-columns:minmax(0,1fr)!important}}
/* 06.11.2026, находки независимых проверяющих. */
/* Колокольчик: «Уведомления выключены — Включить ∨» в одну строку (стрелка уезжала на отдельную строку). */
.notification-center details.notifications-off>summary small,.notification-center details>summary small{white-space:nowrap}
/* «Оцените поездку»: имя водителя и дата целиком, в две строки при нехватке места (дата обрезалась многоточием). */
body.design-787 .of-rate-hint .of-rate-open small{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;display:block}
/* Переносы по слогам в заголовках входа и подписях карточек — не нужны («фик-сированной», «Push-/устройства»). */
body.design-787:not(.cabinet-mode) .guest-hero h1,body.admin-body .statistic-card :is(strong,h3,span){hyphens:manual!important;-webkit-hyphens:manual!important}
/* 06.11.2026 (снимок владельца с Android): на телефоне окно QR не помещалось в экран вместе с панелями браузера —
   «Открыть ссылку» обрезана, «Установить» за краем, листать внутри окна; «Пассажиру / Водителю» не на всю ширину.
   Теперь на телефоне окно целиком в экране: переключатель — два равных столбца, QR по оставшейся высоте (не меньше 112 px),
   ссылка и «Копировать» в одну строку, «Открыть ссылку» и «Установить» — одной строкой, пояснение — последним. */
@media(max-width:599px){
 .install-share-dialog[open]:not(#_):not(#__){display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"head head" "aud aud" "qr qr" "link copy" "open inst" "guide guide" "status status";gap:8px!important;align-content:start;max-height:calc(calc(var(--app-vh, 1vh) * 100) - 16px);max-height:calc(100dvh - 16px);overflow:auto}
 .install-share-dialog[open]:not(#_):not(#__)>header{grid-area:head}
 .install-share-dialog[open]:not(#_):not(#__) h2{margin:0!important}
 .install-share-dialog[open]:not(#_):not(#__)>.install-audiences:has(>:nth-child(2)){grid-area:aud;display:grid!important;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px}
 .install-share-dialog[open]:not(#_):not(#__)>.install-audiences>button{width:100%;min-width:0}
 .install-share-dialog[open]:not(#_):not(#__)>.install-qr-surface{grid-area:qr;margin:0!important;padding:4px!important}
 .install-share-dialog[open]:not(#_):not(#__) #install-share-qr{width:clamp(112px,calc(calc(var(--app-vh, 1vh) * 100) - 440px),300px)!important;width:clamp(112px,calc(100dvh - 440px),300px)!important}
 .install-share-dialog[open]:not(#_):not(#__) .install-qr-caption{font-size:12px}
 .install-share-dialog[open]:not(#_):not(#__)>label{grid-area:link;min-width:0;white-space:nowrap;overflow:visible}
 .install-share-dialog[open]:not(#_):not(#__)>footer>[data-install-copy]{padding-inline:8px!important;font-size:14px}
 .install-share-dialog[open]:not(#_):not(#__)>label input{min-width:0;width:100%}
 .install-share-dialog[open]:not(#_):not(#__)>footer{display:contents!important}
 .install-share-dialog[open]:not(#_):not(#__)>footer>[data-install-copy]{grid-area:copy!important;align-self:end;white-space:nowrap}
 .install-share-dialog[open]:not(#_):not(#__)>footer>[data-install-open]{grid-area:open!important}
 .install-share-dialog[open]:not(#_):not(#__)>footer>[data-install-current]{grid-area:inst!important}
 .install-share-dialog[open]:not(#_):not(#__)>footer:has(>[data-install-current][hidden])>[data-install-open]{grid-column:1/-1!important}
 .install-share-dialog[open]:not(#_):not(#__)>footer>:is(a,button){min-height:44px!important;width:100%!important;margin:0!important;order:0!important}
 .install-share-dialog[open]:not(#_):not(#__)>#install-share-guide{grid-area:guide;font-size:13px;line-height:1.35}
 .install-share-dialog[open]:not(#_):not(#__)>#install-share-status{grid-area:status}
 .install-share-dialog[open]:not(#_):not(#__)>#install-share-status:empty{display:none}}
@media(max-width:360px){.install-share-dialog[open]:not(#_):not(#__)>footer>:is(a,button){font-size:13px!important;padding-inline:6px!important}}
/* 06.11.2026: «Пассажиру / Водителю» в окне QR — на всю ширину окна на любом экране (на планшете и компьютере тоже). */
.install-share-dialog[open]:not(#_)>.install-audiences:has(>:nth-child(2)){display:grid!important;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:8px}
.install-share-dialog[open]:not(#_)>.install-audiences>button{width:100%;min-width:0}
/* 06.11.2026, обход с новыми правилами (13 условий). */
/* Рисованные «прикрепить» и «отправить» в строке ввода (были символы ＋ и ➤ — на части телефонов пустой квадрат). */
.composer-attach svg,.composer-send svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
/* Заголовок раздела — не ближе 8 px к следующему блоку на узком экране (было 4 px во всех кабинетах на 300–360 px). */
body.design-787.cabinet-mode #cabinet .app-page>.page-heading:not(#_){margin-bottom:12px!important}
/* «Показать ещё» — с промежутком 12 px от списка (стояла вплотную). */
body.design-787 :is(#driver-trips-more,#passenger-trips-more):not(#_){margin-top:12px!important}
/* На телефоне фильтры «Все / В аэропорт / Совместные» и «Период» — на всю ширину, кнопки поровну. */
@media(max-width:759px){body.design-787 :is(#driver-order-filters,#passenger-trip-period):not(#_){display:grid!important;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:8px;width:100%}
 body.design-787 :is(#driver-order-filters,#passenger-trip-period):not(#_)>button{width:100%;min-width:0;white-space:normal}}
/* Компьютер и планшет: «Частые вопросы» и панель смайлов переносятся в несколько строк (листать вбок мышью нельзя —
   крайние кнопки были обрезаны краем). */
@media(min-width:760px){body.design-787 .quick-chat:not(#_){flex-wrap:wrap;overflow:visible;min-height:0}
 body.design-787 .emoji-palette:not(#_){flex-wrap:wrap;overflow:visible}}
