/* Кабинет водителя: смена, заказы, финансы, история, «Ещё».
   Раздел бывшего ui-fixes-20260926.css (порядок правил внутри раздела прежний; разложено tools/css-sections.py). */
@media(max-width:759px){
  body.design-787.role-driver.driver-has-active-trip .app-page[data-page="orders"]:not([hidden]){display:flex!important;flex-direction:column;gap:14px;padding-bottom:calc(165px + env(safe-area-inset-bottom))}
  /* Проверка на настоящем телефоне 24.10.2026: 165px вместе с запасом под меню у .cabinet-main учитывали меню дважды —
     страница смены с поездкой была длиннее экрана на 125–131px. Здесь — только место под закреплённую кнопку этапа. */
  body.design-787.role-driver.driver-has-active-trip .app-page[data-page="orders"]:not([hidden]){padding-bottom:calc(76px + env(safe-area-inset-bottom))!important}
  body.design-787.role-driver.driver-has-active-trip #driver-current-orders{order:-10;margin-top:0}
  body.design-787.role-driver.driver-has-active-trip #notification-onboarding{order:-9;box-sizing:border-box;width:100%;max-width:none;margin:0}
  body.design-787.role-driver.driver-has-active-trip .notification-inbox{order:-8;margin:0}
  body.design-787.role-driver .header-qr{display:none!important}
  body.design-787.role-driver .driver-next-action{position:fixed;z-index:105;right:0;bottom:calc(69px + env(safe-area-inset-bottom));left:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px max(12px,calc((100vw - 720px)/2));border-top:1px solid var(--787-line);background:#fff;box-shadow:0 -4px 18px #17314720}
  body.design-787.role-driver .driver-next-action span{min-width:0;font-size:12px;font-weight:800;line-height:1.2}
  body.design-787.role-driver .driver-next-action button{flex:0 0 auto;min-height:44px;max-width:65%;white-space:normal}
  body.design-787.role-driver.keyboard-open .driver-next-action{position:static;margin-top:12px;box-shadow:none}
}
@media(min-width:760px){body.design-787.role-driver .driver-next-action{display:none}}
@media(min-width:1100px){
  body.design-787.role-driver.driver-has-active-trip .app-page[data-page="orders"]>#driver-current-orders{grid-row:1!important}
  body.design-787.role-driver.driver-has-active-trip .app-page[data-page="orders"]>#driver-moderation{grid-row:2!important}
  body.design-787.role-driver.driver-has-active-trip .app-page[data-page="orders"]>#driver-line-card{grid-row:3!important}
  body.design-787.role-driver.driver-has-active-trip .app-page[data-page="orders"]>#driver-shift-metrics{grid-row:4!important}
}
body.design-787.role-driver .driver-profile-links{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
body.design-787.role-driver .driver-profile-links .button{min-height:44px;white-space:normal;text-align:center}
body.design-787.role-driver .driver-profile-status{display:inline-flex;align-items:center;justify-self:start;padding:5px 9px;border-radius:999px;color:var(--787-blue);background:var(--787-soft);font-size:13px}
body.design-787.role-driver .driver-profile-status[data-status="approved"]{color:var(--787-ok);background:#e6f6ed}
body.design-787.role-driver .driver-profile-status[data-status="rejected"]{color:var(--787-danger);background:#fff0ef}
@media(max-width:599px){body.design-787.role-driver .driver-profile-links{display:grid;grid-template-columns:1fr 1fr}body.design-787.role-driver .driver-profile-links .button{padding:9px;font-size:13px}}
@media(max-width:759px){
  body.design-787 .cabinet-notice{box-sizing:border-box;width:min(330px,calc(100% - 32px));font-size:13px;line-height:1.35;text-align:center}
  body.design-787.role-driver.driver-has-active-trip .cabinet-notice{bottom:calc(160px + env(safe-area-inset-bottom))}
}
@media(max-width:599px){
  .design-787 .quick-chat{flex-wrap:wrap;overflow:visible;min-height:0;padding:8px}
  .design-787 .quick-chat button{flex:1 1 auto;min-height:44px;white-space:normal;text-align:center}
  .design-787 .driver-support-quick{display:flex;flex-wrap:wrap;gap:7px}
  .design-787 .driver-support-quick button{flex:1 1 auto;min-height:44px;white-space:normal}
  .design-787 .notification-history,.design-787 .notification-inbox .card-list{max-height:none;overflow:visible;overscroll-behavior:auto;scrollbar-gutter:auto}
}
body.design-787.role-driver{--driver-primary:#b94a00}
body.design-787 :is(#refresh-trips,#refresh-driver-orders,#finance-refresh,#refresh-favorites){display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:100px;min-height:44px;height:auto;padding:10px 14px;margin:0;border-radius:10px;font-size:14px;line-height:1.35;white-space:normal;text-align:center}
body.design-787 .driver-verified-info>summary{min-height:44px;align-content:center}
@media (max-width:560px){
  /* Правило 4, водитель на телефоне: логотип 787 AIRCLUB, колокольчик, баланс и QR; профиль — в нижнем меню, название раздела — в заголовке страницы. */
  body.design-787.role-driver .cabinet-header{gap:6px;padding:0 10px}
  body.design-787.role-driver .cabinet-header .cabinet-logo{gap:6px;min-height:44px}
  body.design-787.role-driver .cabinet-header .cabinet-logo>span:last-child{display:inline!important}
  body.design-787.role-driver .cabinet-header>#page-title{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  body.design-787.role-driver .cabinet-header .cabinet-head-actions{margin-left:auto;gap:6px}
  body.design-787.role-driver .cabinet-header .header-qr{display:grid!important;place-items:center;order:3}
  body.design-787.role-driver .cabinet-header .design-profile{display:none!important}
  /* «Поездки» пассажира: статистика — компактной сводкой, чтобы активная поездка была на первом экране. */
  body.design-787.role-passenger #passenger-trip-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important;margin-bottom:10px}
  body.design-787.role-passenger #passenger-trip-stats>article{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 8px;min-height:44px!important;padding:8px 12px!important}
  body.design-787.role-passenger #passenger-trip-stats>article>small{font-size:12px;line-height:1.3}
  body.design-787.role-passenger #passenger-trip-stats>article>strong{font-size:16px!important;line-height:1.2}
  body.design-787.role-passenger #passenger-trip-stats>article>span{display:none}
}
body.design-787.role-passenger .trip-card.active .trip-driver-line{font-size:15px;font-weight:600;line-height:1.35;overflow-wrap:anywhere}
/* Идея 5: водитель — один шаг в одной точке, удержание для необратимых шагов, редкое — в «Проблема с поездкой». */
@media (max-width:759px){
  body.design-787.role-driver.driver-single-active .driver-group-passenger .driver-step{display:none!important}
  body.design-787.role-driver .driver-next-action{height:66px;min-height:66px;box-sizing:border-box;padding-top:9px;padding-bottom:9px}
  body.design-787.role-driver .driver-next-action>span{flex:0 1 auto;max-width:34%;max-height:48px;overflow:hidden;white-space:normal;overflow-wrap:anywhere}
  body.design-787.role-driver .driver-next-action button{flex:1 1 auto;max-width:none;height:48px;min-height:48px!important;padding-top:0;padding-bottom:0;font-size:16px;line-height:1.15;white-space:nowrap;display:grid;place-content:center;justify-items:center}
  /* Сообщение о результате — сверху, под шапкой: не перекрывает кнопки карточки и полосу шага. */
  body.design-787.role-driver .cabinet-notice{top:68px!important;bottom:auto!important}
}
body.design-787.role-driver .hold-confirm{position:relative;overflow:hidden;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
body.design-787.role-driver .hold-confirm::before{content:"";position:absolute;inset:0 100% 0 0;background:rgba(255,255,255,.28);pointer-events:none}
body.design-787.role-driver .hold-confirm.holding::before{inset:0;transition:inset var(--hold-ms,900ms) linear}
body.design-787.role-driver .hold-confirm{display:grid;place-content:center;justify-items:center}
body.design-787.role-driver .hold-confirm .hold-hint{display:block;margin-top:1px;font-size:11px;font-weight:500;line-height:1.1;opacity:.9}
body.design-787.role-driver .driver-problem{flex:1 1 100%;min-width:0}
body.design-787.role-driver .driver-problem>summary{display:inline-flex;align-items:center;min-height:44px;min-width:44px;padding:0 4px;color:var(--787-blue-2);font-size:14px;font-weight:500;cursor:pointer;text-decoration:underline;text-underline-offset:3px;list-style:none}
body.design-787.role-driver .driver-problem>summary::-webkit-details-marker{display:none}
body.design-787.role-driver .driver-problem>.trip-actions{margin-top:6px}
@media (prefers-reduced-motion:reduce){body.design-787.role-driver .hold-confirm.holding::before{transition:none}}
/* Идея 7: карточка доступного заказа — сумма и время подачи первой строкой, дорога до подачи, одна главная кнопка. */
body.design-787.role-driver .driver-offer .driver-offer-headline{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0 0 8px}
body.design-787.role-driver .driver-offer .driver-offer-headline strong{font:600 26px/1.1 var(--font-data,inherit);color:var(--787-ink)}
body.design-787.role-driver .driver-offer .driver-offer-headline span{font-size:18px;font-weight:600;line-height:1.2;color:var(--787-ink);font-variant-numeric:tabular-nums}
body.design-787.role-driver .driver-offer .driver-approach{display:block;margin:6px 0 0;font-size:14px;font-weight:600;line-height:1.3;color:var(--787-blue)}
body.design-787.role-driver .driver-offer .driver-approach[hidden]{display:none}
body.design-787.role-driver .driver-offer .driver-trip-price .driver-trip-amount{display:none}
body.design-787.role-driver .driver-offer .driver-trip-price{display:flex;flex-wrap:wrap;gap:2px 8px;margin-top:6px}
body.design-787.role-driver .driver-offer .driver-trip-price :is(small,.driver-trip-price-label){font-size:12px;color:var(--787-muted)}
body.design-787.role-driver .driver-offer .trip-meta{font-size:12px;color:var(--787-muted)}
body.design-787.role-driver .driver-offer .driver-offer-accept{width:100%;min-height:48px!important;font-size:16px;font-weight:600}
body.design-787.role-driver .driver-offer .driver-offer-more{justify-self:center;min-height:44px;min-width:44px;border:0!important;background:transparent!important;color:var(--787-blue-2)!important;font-weight:500;text-decoration:underline;text-underline-offset:3px;box-shadow:none}

/* Водитель, экран смены: плашка о новом заказе — главное действие, пока водитель на линии. */
body.design-787.role-driver .driver-new-orders{display:block;width:100%;min-height:52px;margin:10px 0 0;padding:10px 16px;border:0;border-radius:14px;background:#b84a00;color:#fff;font-size:16px;font-weight:600;line-height:1.3;text-align:center}
body.design-787.role-driver .driver-new-orders[hidden]{display:none}
body.design-787.role-driver .driver-go-line{display:block;width:100%;min-height:48px;margin-top:8px}

/* Экран смены водителя: сначала состояние и главное действие, справочные блоки — ниже (порядок внутри карточки линии). */
body.design-787.role-driver #driver-line-card>#driver-line-status{order:1}
body.design-787.role-driver #driver-line-card>#driver-new-orders{order:2}
body.design-787.role-driver #driver-line-card>#driver-line-actions{order:3}
body.design-787.role-driver #driver-line-card>#driver-area-form{order:4}
body.design-787.role-driver #driver-line-card>#driver-readiness-panel{order:5}
body.design-787.role-driver #driver-line-card>#driver-admin-balance-note{order:6}
body.design-787.role-driver #driver-line-card>#driver-notification-health{order:7}
body.design-787.role-driver #driver-line-card>#driver-notification-setup{order:8}
body.design-787.role-driver #driver-line-card>#driver-go-offline{order:9}
/* Сумма заказа: подпись «к получению» рядом с ней; прежняя подпись ниже в таких карточках не дублируется. */
body.design-787.role-driver .driver-offer-headline .driver-offer-net{font-size:13px;line-height:1.2;color:var(--787-muted);margin-left:-6px}
body.design-787.role-driver .driver-offer-net-shown .driver-trip-price .driver-trip-price-label{display:none}
/* Заказ виден, но бронь занята: карточка спокойнее, кнопка не зовёт нажать. */
body.design-787.role-driver .driver-offer-locked .driver-offer-accept{background:#e6ebf0!important;color:#4a5b6b!important}
/* Подсказка «удерживайте» на кнопке шага в строке пассажира (планшет, компьютер): цвет как у текста кнопки, а не серый по оранжевому. */
body.design-787.role-driver .driver-group-passenger .hold-confirm .hold-hint,body.design-787.role-driver #driver-next-action .hold-confirm .hold-hint{color:inherit;opacity:.95}
/* Водитель на линии, но заказы не приходят — причина над статусом смены. */
body.design-787.role-driver .driver-online-blocked{display:grid;gap:6px;margin:0 0 12px;padding:12px 14px;border:1px solid #f1a7a1;border-radius:14px;background:#fff1f0;color:#7a1d16}
body.design-787.role-driver .driver-online-blocked strong{font-size:16px}
body.design-787.role-driver .driver-online-blocked ul{margin:0;padding-left:18px;font-size:14px;line-height:1.4}
body.design-787.role-driver .driver-online-blocked .driver-online-blocked-action{justify-self:start;min-height:44px;margin-top:4px}

/* 161: «Ещё» водителя — крупные кнопки разделов, по одной в строку */
.driver-more-list{display:grid;gap:12px;max-width:640px}
.driver-more-list>button{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:14px;min-height:76px;padding:14px 18px;border:1px solid var(--line,#d9e1ea);border-radius:18px;color:var(--ink,#13243a);background:#fff;text-align:left;box-shadow:0 4px 14px #1731470d}
.driver-more-list>button>svg{width:30px;height:30px;justify-self:center;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;color:#15803D}
.driver-more-list>button strong{display:block;font-size:19px;line-height:1.25}
.driver-more-list>button small{display:block;margin-top:3px;color:var(--muted,#5b6878);font-size:14px;line-height:1.3}
.driver-more-list>button::after{content:"›";grid-column:3;color:var(--muted,#5b6878);font-size:28px;line-height:1}
.driver-more-list .driver-more-badge{grid-column:3;grid-row:1;justify-self:end;margin-right:22px;display:grid;place-items:center;min-width:24px;height:24px;padding:0 7px;border-radius:999px;color:#fff;background:#e34f32;font-size:12px;font-weight:900}
.driver-more-list .driver-more-badge[hidden]{display:none}
.ds-off{display:none!important}
@media (max-width:759px){
  body.ds-on.ds-trip:not(.ds-line-open) #driver-line-card,
  body.ds-on.ds-trip:not(.ds-line-open) #driver-shift-metrics,
  body.ds-on.ds-trip.ds-line-open #driver-current-orders,
  body.ds-on.ds-idle #driver-current-orders,
  body.ds-on #driver-notification-health:not(.is-warning),
  body.ds-on .app-page[data-page="orders"] #driver-moderation:has(>.driver-verified-info),
  body.ds-on #driver-readiness-panel:has(>details.setting-card:not([open])),
  body.ds-on.ds-zone #driver-line-actions,
  body.ds-on.ds-zone #driver-shift-metrics,
  body.ds-on.ds-zone #driver-readiness-panel,
  body.ds-on.ds-zone #driver-notification-health,
  body.ds-on.ds-zone #driver-line-status .muted,
  body.ds-on #driver-area-form>label,
  body.ds-on #driver-area-form button[type=submit],
  body.ds-on[data-current-page="trips"] #driver-shell .app-page[data-page="trips"]>:not(.page-heading):not(#driver-available-orders):not(#ds-order-pager),
  body.ds-on[data-current-page="history"] #driver-available-orders,
  body.ds-on[data-current-page="history"] #ds-order-pager{display:none!important}
  body.ds-on #driver-shell{font-size:17px}
  body.ds-on #driver-line-status h2{font-size:24px}
  body.ds-on #driver-line-status .line-online strong{font-size:20px}
  body.ds-on #driver-line-actions button{min-height:120px}
  body.ds-on #driver-line-actions button strong{font-size:19px}
  body.ds-on #driver-line-actions button small{font-size:16px}
  body.ds-on #driver-go-offline,body.ds-on #driver-new-orders{min-height:56px;font-size:18px}
  body.ds-on #driver-shell .trip-card{font-size:17px}
  body.ds-on #driver-shell .trip-card small{font-size:15px;line-height:1.35}
  body.ds-on #driver-shell .trip-card button{min-height:52px;font-size:17px}
  body.ds-on .driver-next-action button{min-height:60px;font-size:19px}
  .ds-line-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding:10px 12px 10px 16px;border:1px solid #bfe3cb;border-radius:16px;background:#effaf3;color:#14532d;font-size:16px;font-weight:700}
  .ds-line-strip.is-warning{border-color:#f5b4a8;background:#fff3f0;color:#9f1d0a}
  .ds-line-strip[hidden]{display:none}
  .ds-line-strip>span{min-width:0}
  .ds-line-strip>button{flex:0 0 auto;min-height:48px;padding:8px 16px;border:1px solid currentColor;border-radius:12px;color:inherit;background:#fff;font-size:16px;font-weight:800}
  .ds-pager{display:grid;gap:8px;margin:0 0 12px;text-align:center}
  .ds-pager[hidden]{display:none}
  .ds-pager>strong{font-size:18px}
  .ds-pager-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .ds-pager-buttons>button{min-height:52px;font-size:17px;font-weight:800;border:1px solid var(--line,#d9e1ea);border-radius:14px;color:var(--ink,#13243a);background:#fff}
  .ds-zone-list{display:grid;gap:10px;margin:0 0 12px}
  .ds-zone-list h2{margin:0;font-size:22px}
  .ds-zone-list small{margin-top:6px;color:var(--muted,#5b6878);font-size:15px}
  .ds-zone-button{min-height:56px;padding:12px 16px;border:1px solid var(--line,#d9e1ea);border-radius:14px;color:var(--ink,#13243a);background:#fff;font-size:17px;font-weight:700;text-align:left}
  body.ds-on .ds-line-strip{order:-20}
  body.ds-on #driver-line-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}
  body.ds-on #driver-line-actions[hidden]{display:none}
  body.ds-on #ds-zone-list .ds-zone-button{color:var(--ink,#13243a)!important;background:#fff!important}
  body.ds-on .ds-zone-more>summary{min-height:52px;display:flex;align-items:center;padding:0 16px;border:1px dashed var(--line,#c9d4df);border-radius:14px;font-size:17px;font-weight:700;cursor:pointer}
  body.ds-on .ds-zone-more[open]>summary{margin-bottom:10px}
  /* В поездке — без повторов: заголовок «Текущие поездки», «Пассажир» и второй раз тот же маршрут у единственного пассажира. */
  body.ds-on.ds-trip #driver-current-orders>.section-heading,
  body.ds-on.ds-trip .driver-group-passengers:has(>.driver-group-passenger:only-of-type)>h3,
  body.ds-on.ds-trip .driver-group-passengers:has(>.driver-group-passenger:only-of-type) .driver-group-passenger>div>small:nth-of-type(2){display:none!important}
  .ds-more-below{position:fixed;right:16px;z-index:40;min-height:44px;padding:8px 16px;border:0;border-radius:999px;color:#fff;background:#13243a;box-shadow:0 6px 18px #13243a40;font-size:15px;font-weight:800}
  .ds-more-below[hidden]{display:none}
}
@media (min-width:760px){.ds-more-below,.ds-line-strip,.ds-pager,#ds-zone-list{display:none!important}}
/* Аудит интерфейса 21.10.2026: на планшете и компьютере во время поездки карточка поездки с главной кнопкой («Я приехал»)
   была под строкой линии, готовностью и счётчиками — ниже края экрана 1024×768. Как на телефоне, поездка идёт первой. */
@media(min-width:760px){body.design-787.role-driver.driver-has-active-trip #driver-current-orders{order:-10;margin-top:0}}
/* Проверка на iPhone 22.10.2026: при открытой клавиатуре быстрые ответы в чате занимали треть экрана — одна строка с прокруткой вбок. */
@media(max-width:759px){
 body.design-787.keyboard-open #driver-support-quick,body.design-787.keyboard-open .chat-quick-replies,body.design-787.keyboard-open #quick-chat{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:8px;-webkit-overflow-scrolling:touch}
 body.design-787.keyboard-open #driver-support-quick > *,body.design-787.keyboard-open .chat-quick-replies > *,body.design-787.keyboard-open #quick-chat > *{flex:0 0 auto}
}
body.design-787 #driver-available-orders>.section-heading{flex-wrap:wrap;row-gap:4px}
body.design-787 #driver-available-orders>.section-heading>*{min-width:0}

/* Водитель на телефоне «как приложение» (план оценки 22.10.2026, п. 3в): финансы — вкладки «Итоги» и «Операции»,
   операции и история — короткими строками; поля дат истории — только после «Произвольно». Ничего не убрано:
   все суммы, даты, статусы и кнопки на месте, подпись «Стоимость поездки» в строке истории заменяет сама сумма справа. */
body.design-787.role-driver .finance-tabs{display:none}
@media(max-width:759px){
 body.design-787.role-driver .finance-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 0 10px}
 body.design-787.role-driver .finance-tabs button{min-height:44px;border:1px solid var(--787-line,#dce4eb);border-radius:12px;background:#fff;color:var(--787-ink,#16293b);font-size:15px;font-weight:700}
 body.design-787.role-driver .finance-tabs button[aria-selected="true"]{border-color:var(--design-header,#123e6a);background:var(--design-header,#123e6a);color:#fff}
 body.design-787.role-driver .app-page[data-page="finance"][data-finance-tab="summary"]>:is(.section-heading,#finance-statement){display:none!important}
 body.design-787.role-driver .app-page[data-page="finance"][data-finance-tab="operations"]>:is(.balance-hero,.stats-grid){display:none!important}
 body.design-787.role-driver #finance-statement .statement-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 10px;min-height:0!important;padding:8px 12px!important}
 body.design-787.role-driver #finance-statement .statement-row>div{min-width:0}
 body.design-787.role-driver #finance-statement .statement-row>div>strong{display:block;overflow:hidden;font-size:14px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}
 body.design-787.role-driver #finance-statement .statement-row>div>small{display:block;font-size:12px}
 body.design-787.role-driver #finance-statement .statement-row>strong{font-size:15px;white-space:nowrap}
 /* История: даты — только после «Произвольно». */
 body.design-787.role-driver .app-page[data-page="trips"]:not(.period-custom) #driver-trip-period{display:none!important}
 /* История: строка поездки — статус и маршрут слева, сумма справа, кнопки ссылками. */
 body.design-787.role-driver #driver-trip-history>.trip-card{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:0 10px;min-height:0!important;padding:8px 12px!important}
 body.design-787.role-driver #driver-trip-history>.trip-card>.driver-trip-summary{grid-column:1;min-width:0;margin:0!important}
 body.design-787.role-driver #driver-trip-history>.trip-card>.driver-trip-summary .trip-route strong{display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:15px;line-height:1.3}
 body.design-787.role-driver #driver-trip-history>.trip-card>.driver-trip-summary .trip-meta{font-size:12px;line-height:1.3}
 body.design-787.role-driver #driver-trip-history>.trip-card>.driver-trip-price{grid-column:2;grid-row:1;align-self:start;margin:0!important;text-align:right}
 body.design-787.role-driver #driver-trip-history>.trip-card>.driver-trip-price .driver-trip-amount{font-size:17px!important;white-space:nowrap}
 body.design-787.role-driver #driver-trip-history>.trip-card>.driver-trip-price .driver-trip-price-label{display:none}
 body.design-787.role-driver #driver-trip-history>.trip-card>.driver-trip-price .driver-net-note{font-size:11px}
 body.design-787.role-driver #driver-trip-history>.trip-card>.trip-history-actions{grid-column:1/-1;display:flex!important;flex-wrap:wrap;gap:0 4px!important;margin:0 -8px -8px!important}
 body.design-787.role-driver #driver-trip-history>.trip-card>.trip-history-actions .trip-chat-actions{display:contents!important}
 body.design-787.role-driver #driver-trip-history>.trip-card>.trip-history-actions button{flex:0 0 auto!important;width:auto!important;min-width:44px!important;min-height:44px!important;padding:4px 8px!important;border:0!important;background:none!important;box-shadow:none!important;color:var(--787-blue,#154f7f)!important;font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:3px}
}
@media(max-width:759px){
 /* Полоса «На линии: …» над поездкой — одной строкой; полный текст — по «Смена ›» (открывает зону и состояние). */
 .ds-line-strip{padding:6px 8px 6px 12px!important;margin-bottom:8px!important}
 .ds-line-strip>span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:14px}
 .ds-line-strip>button{min-height:44px!important;padding:6px 12px!important;font-size:15px!important}
}

/* Кабинет на телефоне «как приложение», строго (замечание владельца 23.10.2026, снимки 400×650): место под нижним
   меню резервировалось дважды (у кабинета и у содержимого по 92 px) — страницы были выше экрана. Теперь отступ снизу
   один и равен высоте меню (--bottom-nav-h ставит app.js). */
@media(max-width:759px){
 body.design-787.cabinet-mode #cabinet.cabinet{padding-bottom:0!important}
 body.design-787.cabinet-mode .cabinet-main{margin-bottom:0!important;padding-bottom:calc(var(--bottom-nav-h,64px) + 8px)!important}
 /* У водителя design-driver-20260921.css задавал 94px с более сильным селектором (найдено на телефоне 24.10.2026). */
 body.design-787.role-driver.cabinet-mode #cabinet .cabinet-main{padding-bottom:calc(var(--bottom-nav-h,64px) + 8px)!important}
 /* iPhone (Safari, 24.10.2026): у «Новой поездки» оставался нижний внешний отступ 84px (правило для старой формы) — он
    выходил за кабинет, и страницу можно было сдвинуть на 84px. Место под меню уже даёт padding выше. */
 body.design-787.cabinet-mode[data-current-page] .cabinet-main{margin-bottom:0!important}
}
@media(max-width:759px){
 /* Заголовок раздела ниже: подпись и название — без лишних отступов (страница целиком в экране). */
 body.design-787.cabinet-mode .app-page>.page-heading{margin:0 0 8px!important;min-height:0!important}
 body.design-787.cabinet-mode .app-page>.page-heading .eyebrow{margin:0 0 2px!important}
 body.design-787.cabinet-mode .app-page>.page-heading h2{margin:0!important;line-height:1.2}
 body.design-787.cabinet-mode .cabinet-main{padding-top:10px!important}
 /* «Ещё» водителя: плитки ниже, все пять разделов и «Предварительные заказы» — в экране. */
 body.design-787.role-driver .driver-more-list{gap:8px!important}
 body.design-787.role-driver .driver-more-list>button{min-height:64px!important;padding:8px 14px!important;gap:12px!important}
 body.design-787.role-driver .driver-more-list>button strong{font-size:17px!important}
 body.design-787.role-driver .driver-more-list>button small{font-size:13px!important;margin-top:1px!important}
}
@media(max-width:599px){
 /* Профиль в один экран и на невысоких телефонах: плитки разделов и строки версии ниже. */
 body.design-787 .profile-workspace>.profile-menu>.profile-menu-link{min-height:44px!important;padding:4px 8px!important}
 body.design-787 .profile-workspace>.profile-menu>.profile-mobile-meta{min-height:0!important;padding:0 8px!important;line-height:1.25}
 body.design-787 .profile-workspace>.profile-menu{margin:6px 0 4px!important}
 body.design-787.role-driver .driver-profile-links>.button{min-height:40px!important;padding:4px 8px!important;font-size:13px!important;line-height:1.2}
 body.design-787.role-driver #driver-profile-summary{padding:10px 12px!important}
 body.design-787.role-driver #driver-profile-summary>.driver-document-progress{margin:0!important}
}
/* Невысокие телефоны (до 620 px, например 320×568): те же экраны плотнее, чтобы оставаться в один экран. */
@media(max-width:759px) and (max-height:620px){
 body.design-787.cabinet-mode .cabinet-main{padding-top:6px!important}
 body.design-787.cabinet-mode .app-page>.page-heading{margin-bottom:4px!important}
 body.design-787.cabinet-mode .app-page>.page-heading .eyebrow{display:none}
 body.design-787.cabinet-mode .app-page>.page-heading h2{font-size:19px!important}
 /* Профиль. */
 body.design-787 .profile-summary{padding:8px 10px!important;gap:6px!important}
 body.design-787 .profile-workspace>.profile-menu{gap:4px!important;margin:4px 0 2px!important}
 body.design-787 .profile-workspace>.profile-menu>.profile-menu-link{min-height:40px!important;font-size:13px!important}
 body.design-787.role-driver .driver-profile-links{margin:4px 0!important}
 /* Финансы: баланс ниже, заработок в одну строку из трёх ячеек, рейтинг под ним короче. */
 body.design-787.role-driver .balance-hero{padding:10px 14px!important;min-height:0!important}
 body.design-787.role-driver .balance-hero strong{font-size:26px!important;line-height:1.15}
 body.design-787.role-driver .balance-hero p{font-size:12px!important;margin:2px 0 0!important}
 body.design-787.role-driver .app-page[data-page="finance"] .stats-grid{gap:6px!important;margin-top:6px!important}
 body.design-787.role-driver .app-page[data-page="finance"] .stats-grid>article{min-height:0!important;padding:6px 8px!important}
 /* «Ещё»: плитки ниже. */
 body.design-787.role-driver .driver-more-list{gap:6px!important}
 body.design-787.role-driver .driver-more-list>button{min-height:52px!important;padding:6px 12px!important}
 body.design-787.role-driver .driver-more-list>button small{display:none}
 /* Смена водителя. */
 body.design-787.role-driver .app-page[data-page="orders"] :is(.setting-card,.ds-card,.line-card){padding:10px 12px!important}
}
@media(max-width:759px) and (max-height:700px){
 body.design-787.role-driver .app-page[data-page="finance"] .stats-grid>article{padding:6px 10px!important;min-height:0!important}
 body.design-787.role-driver .app-page[data-page="finance"] .stats-grid>article span{font-size:12px}
}
@media(max-width:759px) and (max-height:620px){
 /* Профиль водителя: версия в одну строку, карточка плотнее, подписи кнопок QR/установки короче по высоте. */
 body.design-787 .profile-workspace>.profile-menu>.profile-mobile-meta{display:flex!important;flex-wrap:wrap;gap:0 6px;align-items:baseline}
 body.design-787.role-driver #driver-profile-summary>h3{font-size:16px!important}
 body.design-787.role-driver #driver-profile-summary>span{font-size:13px!important}
 body.design-787.role-driver .driver-profile-links>.button{min-height:38px!important;font-size:12px!important}
 /* Смена: пояснение и кнопки выхода на линию плотнее. */
 body.design-787.role-driver .app-page[data-page="orders"] p{margin:4px 0!important;line-height:1.3}
 body.design-787.role-driver .app-page[data-page="orders"] [data-work-mode]{min-height:0!important;padding:8px!important}
}
@media(max-width:759px) and (max-height:620px){
 body.design-787.role-driver #driver-profile-summary{padding:8px 10px!important;gap:2px 8px!important}
 body.design-787.role-driver #driver-profile-summary>.driver-document-progress span{font-size:12px}
}
/* Карточка поездки водителя на телефоне (настоящий телефон, 24.10.2026): строка связи в одну строку, «Проблема с поездкой» не
   переносится — карточка помещается над кнопкой этапа. */
@media(max-width:759px){
 body.design-787.role-driver #driver-active-list .driver-group-passenger>div>small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 body.design-787.role-driver #driver-active-list .driver-problem>summary{white-space:nowrap;min-height:44px}
}
/* Смена с поездкой на телефоне: страница не листается; если карточка не помещается (320×568, крупный шрифт), листается
   только она — кнопка этапа и меню закреплены (как экран «Поездка» пассажира). */
@media(max-width:759px){
 body.design-787.role-driver.driver-has-active-trip .app-page[data-page="orders"]:not([hidden]){box-sizing:border-box;max-height:calc(calc(var(--app-vh, 1vh) * 100) - 72px - var(--bottom-nav-h,64px) - 8px);max-height:calc(100dvh - 72px - var(--bottom-nav-h,64px) - 8px);overflow-y:auto;overscroll-behavior:contain}
 body.design-787.role-driver.driver-has-active-trip.keyboard-open .app-page[data-page="orders"]:not([hidden]){max-height:none;overflow:visible}
}
/* Смена с поездкой на коротком телефоне (320×568): адрес в две строки, сведения о заказе в одну, плотнее — «Чат» и
   «Позвонить» видны над кнопкой этапа без прокрутки. */
@media(max-width:759px) and (max-height:640px){
 body.design-787.role-driver.driver-has-active-trip .app-page[data-page="orders"]:not([hidden]){gap:8px}
 body.design-787.role-driver #driver-active-list .driver-trip-summary .trip-route strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 body.design-787.role-driver #driver-active-list .driver-trip-summary .trip-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 body.design-787.role-driver #driver-active-list .trip-card{padding:10px 12px}
 body.design-787.role-driver #driver-active-list .driver-trip-summary{gap:4px}
 body.design-787.role-driver #driver-active-list .driver-group-passengers{padding:6px}
 body.design-787.role-driver #driver-active-list .driver-group-passenger{padding:8px 10px}
 body.design-787.role-driver #driver-active-list .driver-group-passenger>div>b{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
}
/* Выбор района водителя на iPhone SE в Safari (видно 375×547, 24.10.2026): страница была длиннее на 29px. На низком экране
   кнопки зон и заголовок плотнее (касание не меньше 44px). */
@media(max-width:759px) and (max-height:620px){
 body.design-787.role-driver #driver-area-form h3,body.design-787.role-driver #driver-area-form .ds-zone-title{font-size:19px;margin:0 0 6px}
 body.design-787.role-driver #ds-zone-list{gap:6px!important}
 body.design-787.role-driver #ds-zone-list .ds-zone-button{min-height:44px;padding:8px 14px!important;font-size:16px!important;line-height:1.25}
 body.design-787.role-driver #driver-area-form{gap:8px!important;padding:10px!important}
 body.design-787.role-driver #driver-area-form button:not(.ds-zone-button){min-height:44px}
}

/* Общие части кабинета — одинаковые у пассажира и водителя (замечание владельца 26.10.2026: «открыты пассажир и
   водитель, переключаю окна — дизайн прыгает, элементы смещаются»). Эталон — оформление пассажира
   (design-passenger-20260921.css, order-form-20261005.css, final-787.css): шапка, поля страницы, нижнее меню, цвет
   текста и раздел «Сообщения». Крупные кнопки водительских экранов (смена, заказы, «Ещё») не меняются. */
body.design-787.role-driver{--driver-ink:var(--787-ink)}
@media(max-width:599px){
 body.design-787.role-driver .cabinet-header{padding:0 12px!important;gap:8px!important}
 body.design-787.role-driver .cabinet-header .cabinet-head-actions{gap:8px!important}
 body.design-787.role-driver .cabinet-header .cabinet-logo{gap:8px!important}
 body.design-787.role-driver #cabinet .cabinet-main{padding-top:10px!important;padding-left:18px!important;padding-right:18px!important}
}
@media(max-width:1099px){
 body.design-787.role-driver #bottom-nav{box-sizing:border-box;bottom:0!important;height:calc(max(46px,2.875rem) + 14px + env(safe-area-inset-bottom,0px))!important;min-height:0!important;padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px))!important;border-width:1px;align-items:stretch}
 body.design-787.role-driver #bottom-nav button{box-sizing:border-box;height:max(46px,2.875rem)!important;min-height:max(46px,2.875rem)!important;padding:2px!important;gap:3px!important}
 body.design-787.role-driver #bottom-nav .nav-symbol{font-size:max(22px,1.375rem)!important;line-height:1!important}
 body.design-787.role-driver #bottom-nav .nav-label{line-height:max(15px,.9375rem)!important}
 body.design-787.role-driver #bottom-nav .nav-label::after{font-size:max(12px,.75rem)!important;line-height:inherit!important}
}
body.design-787.role-driver #driver-shell :is(.messages-page,.app-page[data-page="news"],.app-page[data-page="profile"]){font-size:14px}
@media(max-width:599px){
 body.design-787.role-driver #driver-shell :is(.messages-page,.app-page[data-page="news"],.app-page[data-page="profile"])>.page-heading{padding:2px 2px 10px}
 body.design-787.role-driver #driver-shell :is(.messages-page,.app-page[data-page="news"],.app-page[data-page="profile"])>.page-heading h2{font-size:20px!important}
}
/* «Сообщения» водителя на планшете и компьютере — те же ширины, что у пассажира: правила пассажира (final-787.css,
   design-passenger-20260921.css, fixes-03-order.css) повторены для водителя только при открытом разделе «Сообщения»,
   в том же порядке; сначала обычные, затем обязательные (!important) — как они действуют у пассажира. */
@media(min-width:1100px){body.design-787.role-driver #cabinet .cabinet-main:has(#driver-shell :is(.messages-page,.app-page[data-page="news"],.app-page[data-page="profile"]):not([hidden])){width:calc(100% - 64px)!important;max-width:1180px!important;margin:28px auto 42px!important}
 body.design-787.role-driver #driver-shell :is(.messages-page,.app-page[data-page="news"],.app-page[data-page="profile"]){max-width:1180px!important;margin-inline:auto!important}}
@media(min-width:600px) and (max-width:1099px){body.design-787.role-driver #cabinet .cabinet-main:has(#driver-shell :is(.messages-page,.app-page[data-page="news"],.app-page[data-page="profile"]):not([hidden])){width:calc(100% - 48px)!important;max-width:760px!important;margin:22px auto 92px!important}
 body.design-787.role-driver #driver-shell :is(.messages-page,.app-page[data-page="news"],.app-page[data-page="profile"]),body.design-787.role-driver #driver-shell .messages-page .dialog-directory{max-width:760px!important;margin-inline:auto!important}}
@media(min-width:1180px){body.design-787.role-driver #cabinet .cabinet-main:has(#driver-shell :is(.messages-page,.app-page[data-page="news"],.app-page[data-page="profile"]):not([hidden])){width:calc(100% - 56px)!important;max-width:1384px!important;margin:24px auto 42px!important;padding:0!important}}
@media(min-width:600px) and (max-width:1179px){body.design-787.role-driver #cabinet .cabinet-main:has(#driver-shell :is(.messages-page,.app-page[data-page="news"],.app-page[data-page="profile"]):not([hidden])){margin:22px auto 92px!important;padding:0!important}}
/* обязательные правила пассажира — в их порядке */
@media(min-width:760px) and (max-width:1179px){body.design-787.role-driver #cabinet .cabinet-main:has(#driver-shell :is(.messages-page,.app-page[data-page="news"],.app-page[data-page="profile"]):not([hidden])),body.design-787.role-driver #driver-shell :is(.messages-page,.app-page[data-page="news"],.app-page[data-page="profile"]){width:calc(100% - 48px)!important;max-width:600px!important;margin-left:auto!important;margin-right:auto!important}}
@media(min-width:600px) and (max-width:1179px){body.design-787.role-driver #cabinet .cabinet-main:has(#driver-shell :is(.messages-page,.app-page[data-page="news"],.app-page[data-page="profile"]):not([hidden])){width:calc(100% - 40px)!important;max-width:560px!important}
 body.design-787.role-driver #driver-shell :is(.messages-page,.app-page[data-page="news"],.app-page[data-page="profile"]),body.design-787.role-driver #driver-shell .messages-page .dialog-directory{width:100%!important;max-width:560px!important;margin-inline:auto!important}}
@media(min-width:760px) and (max-width:1099px){body.design-787.role-driver #cabinet .cabinet-main:has(#driver-shell :is(.messages-page,.app-page[data-page="news"],.app-page[data-page="profile"]):not([hidden])){box-sizing:border-box;width:calc(100% - 40px)!important;max-width:960px!important;margin:18px auto 48px!important;padding:0!important}
 body.design-787.role-driver #driver-shell :is(.messages-page,.app-page[data-page="news"],.app-page[data-page="profile"]){width:100%!important;max-width:none!important}}
/* у пассажира это правило сильнее остальных по селектору (:has, [data-page]) — поэтому последним */
@media(min-width:900px) and (max-width:1179px){body.design-787.role-driver #cabinet .cabinet-main:has(#driver-shell .app-page.messages-page:not([hidden])){width:calc(100% - 40px)!important;max-width:1100px!important}
 body.design-787.role-driver #driver-shell .app-page.messages-page,body.design-787.role-driver #driver-shell .messages-page .dialog-directory{width:100%!important;max-width:none!important}}
/* кнопки раздела — как у пассажира (у водителя по всему кабинету не ниже 46 px) */
@media(min-width:1180px){body.design-787.role-driver #driver-shell .messages-page button:not(.icon-button){min-height:44px}}
/* поле ввода в чате — как у пассажира (общее правило полей водителя добавляло скругление внутри рамки чата) */
body.design-787.role-driver #driver-shell .composer-input textarea{border-radius:0}
/* «Новости»: промежуток между карточками — как у пассажира (у водителя карточки по всему кабинету плотнее) */
body.design-787.role-driver #driver-shell .app-page[data-page="news"] .card-list{gap:14px}
/* Меню в шапке (планшет, компьютер) — сразу после логотипа, как у пассажира; было по центру и не шире 760 px. */
@media(min-width:760px){body.design-787.role-driver .cabinet-header #bottom-nav{max-width:none!important;margin-left:14px!important;margin-right:14px!important}}
/* Невысокие телефоны (до 620 px): у водителя общие правила плотного экрана не перекрываются правилами выше — как у
   пассажира (найдено на настоящем iPhone SE 375×547, 26.10.2026). */
@media(max-width:759px) and (max-height:620px){
 body.design-787.role-driver #cabinet .cabinet-main{padding-top:6px!important}
 body.design-787.role-driver #driver-shell :is(.messages-page,.app-page[data-page="news"],.app-page[data-page="profile"])>.page-heading h2{font-size:19px!important}
}
/* 26.10.2026, замечание владельца: на компьютере у разделов была разная ширина и левый край («Заказы» и «Ещё» 1384 px,
   «История» 1060, «Сообщения», «Новости», «Профиль» 1180, «Финансы» 760) — при переходе содержимое прыгало. С 1180 px все
   разделы обеих ролей занимают всю ширину рабочей области, как «Заказы»: один левый край, одна ширина, заголовок на месте.
   С 600 px так же («Финансы» на планшете были уже остальных). На планшете (600–1179 px) у обеих ролей и всех разделов
   одна рабочая область: на 20 px от краёв, не шире 960 px. Раньше у пассажира на 600–759 и 1100–1179 px была колонка 560 px,
   а водительские «Сообщения», «Новости» и «Профиль» повторяли её — при переходе между разделами ширина менялась. */
@media(min-width:600px) and (max-width:1179px){body.design-787:is(.role-driver,.role-passenger) #cabinet .cabinet-main:not(#_):has(:is(#driver-shell,#passenger-shell) .app-page[data-page]:not([hidden])){box-sizing:border-box!important;width:calc(100% - 40px)!important;max-width:960px!important;margin-left:auto!important;margin-right:auto!important;margin-top:22px!important;padding-top:0!important;padding-left:0!important;padding-right:0!important}
 body.design-787:is(.role-driver,.role-passenger) #cabinet :is(#driver-shell,#passenger-shell) .app-page[data-page]:not(#_){width:100%!important;max-width:none!important;margin-inline:0!important;margin-top:0!important}}
@media(min-width:600px){body.design-787:is(.role-driver,.role-passenger) #cabinet :is(#driver-shell,#passenger-shell) .app-page[data-page]:not([data-page="home"]),body.design-787:is(.role-driver,.role-passenger) #cabinet :is(#driver-shell,#passenger-shell) .app-page[data-page]:not([data-page="home"]) :is(.dialog-directory,.profile-workspace){width:100%!important;max-width:none!important;margin-inline:0!important;box-sizing:border-box}}
/* Подпись «Показано поездок…» не прилипает к первой карточке. */
body.design-787 #driver-trip-history-state:not(:empty){margin:0 0 12px}
/* Раздел шире прежнего: в «Финансах» четыре итога (сегодня, 7 дней, месяц, рейтинг) — в одну строку, а не 3 + одинокий рейтинг. */
@media(min-width:760px){body.design-787.role-driver #driver-shell .app-page[data-page="finance"] .stats-grid:not(#_){grid-template-columns:repeat(auto-fit,minmax(180px,1fr))!important}
 body.design-787.role-driver #driver-shell .app-page[data-page="finance"] .stats-grid:not(#_)>*{grid-column:auto!important}}
/* «Заказы» на планшете, когда «Доступные заказы» живут в своём разделе: «Очередь / Сегодня / На линии» — во всю ширину, а не в левой половине. */
body.design-787.role-driver #driver-shell .app-page[data-page="orders"]:not(:has(>#driver-available-orders)) > :is(#driver-shift-metrics,#driver-current-orders,#driver-moderation):not(#_){grid-column:1/-1!important}
/* Свёрнутые блоки в «Заказах» водителя: подпись по центру по высоте, без лишнего места снизу
   («Предварительные заказы, очередь и допуск» стояла у верхнего края, у «Готовности к работе» снизу оставался зазор сетки). */
body.design-787 .driver-order-help>summary{align-content:center}
body.design-787 details.setting-card:not([open]){row-gap:0}
/* 26.10.2026, поручение владельца. «Ещё» — на всю ширину рабочей области, как остальные разделы, а не узкой колонкой слева. */
@media(min-width:600px){body.design-787.role-driver #driver-more .driver-more-list,body.design-787.role-driver .driver-more-list{max-width:none}}
/* История поездок: отменённая — сумма серым, под ней что с деньгами; у выполненной — строка о комиссии. */
body.design-787.role-driver .driver-trip-price.is-cancelled .driver-trip-amount{color:var(--787-muted,#6b7785)}
/* Телефон: строка истории не выше 170 px — серая сумма; полная строка о деньгах — от 600 px и в «Подробнее». */
@media(max-width:599px){body.design-787.role-driver .trip-card>.driver-money-note{display:none!important}}
body.design-787.role-driver .trip-card>.driver-money-note{grid-column:1/-1;margin:0;display:block;color:var(--787-muted,#6b7785);font-size:12px;line-height:1.35;white-space:normal;overflow-wrap:break-word}
/* Фильтр «Все / Выполненные / Отменённые» и итоги периода. Свои даты применяются сразу — кнопка «Показать» не нужна. */
body.design-787.role-driver #driver-trip-period button[type=submit]{display:none}
body.design-787.role-driver .driver-outcome-filter{margin:4px 0 10px}
@media(max-width:599px){body.design-787.role-driver .trip-period-presets.driver-outcome-filter{grid-template-columns:repeat(3,minmax(0,1fr))}body.design-787.role-driver .driver-outcome-filter button{padding-inline:4px;font-size:14px}}
/* Без кнопки «Показать» поля дат делят строку поровну. */
body.design-787.role-driver #driver-shell #driver-trip-period.trip-period-filter{grid-template-columns:repeat(2,minmax(0,1fr))!important}
body.design-787.role-driver .driver-history-totals:not([hidden]){display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:0 0 12px}
body.design-787.role-driver .driver-history-totals>div{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--787-line,#dbe3ea);border-radius:12px;background:#fff;min-width:0}
body.design-787.role-driver .driver-history-totals small{color:var(--787-muted,#6b7785);font-size:12px}
body.design-787.role-driver .driver-history-totals strong{font-family:var(--font-data);font-size:16px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
/* «Заработано сегодня» в «Смене» — кнопка в виде плитки, ведёт в «Финансы». */
body.design-787.role-driver #driver-shift-metrics .driver-shift-earned{display:grid;gap:3px;align-content:start;min-width:0;min-height:44px;padding:12px;border:1px solid var(--787-line);border-radius:12px;background:#fff;color:inherit;font:inherit;text-align:left;justify-items:start;cursor:pointer}
body.design-787.role-driver #driver-shift-metrics .driver-shift-earned:hover{border-color:#1675ba}
body.design-787.role-driver #driver-shift-metrics .driver-shift-earned small{color:var(--787-muted);font-size:11px}
body.design-787.role-driver #driver-shift-metrics .driver-shift-earned strong{font-family:var(--font-data);font-size:18px;font-variant-numeric:tabular-nums}
/* Кнопка «Включить» — в строке плашки уведомлений справа (не отдельной строкой), не ниже 44 px под палец. */
body.design-787.role-driver #driver-notification-health:has(>#driver-notification-setup:not([hidden])){display:flex;align-items:center;justify-content:space-between;gap:10px;padding-block:6px}
body.design-787.role-driver #driver-notification-health>#driver-notification-setup{flex:0 0 auto;min-height:44px;margin:0;width:auto}
/* 26.10.2026: на отдыхе — только «Заработано сегодня» (плитки «Очередь» и «На линии» скрыты до выхода на линию). */
body.design-787.role-driver #driver-shift-metrics>[data-shift-online][hidden]{display:none!important}
body.design-787.role-driver #driver-shift-metrics:not(:has(>[data-shift-online]:not([hidden]))){grid-template-columns:minmax(0,1fr)!important}
body.design-787.role-driver .driver-rest-note{margin:4px 0 10px}
/* На отдыхе «Заработано сегодня» — единственная плитка: подпись и комиссия слева, сумма справа, одной строкой по высоте
   (на телефоне 320×568 «Смена» иначе длиннее экрана). */
body.design-787.role-driver #driver-shift-metrics:not(:has(>[data-shift-online]:not([hidden]))) .driver-shift-earned{grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:12px}
body.design-787.role-driver #driver-shift-metrics:not(:has(>[data-shift-online]:not([hidden]))) .driver-shift-earned>small:first-child{grid-column:1;grid-row:1}
body.design-787.role-driver #driver-shift-metrics:not(:has(>[data-shift-online]:not([hidden]))) .driver-shift-earned>strong{grid-column:2;grid-row:1/span 2}
body.design-787.role-driver #driver-shift-metrics:not(:has(>[data-shift-online]:not([hidden]))) .driver-shift-earned>[data-shift-commission]{grid-column:1;grid-row:2}
/* 06.11.2026: маршрут в карточке поездки — «Откуда» и «Куда» отдельными строками, коротко. */
body.design-787 .trip-route strong>.trip-route-from,body.design-787 .trip-route strong>.trip-route-to{display:block;white-space:normal;overflow-wrap:anywhere}
body.design-787 .trip-route strong:has(>.trip-route-from){display:block;-webkit-line-clamp:unset!important;max-height:none!important;overflow:visible!important}
/* 06.11.2026, поручение владельца: края блоков не дальше 2 px от краёв шапки на всех размерах. Шапка и рабочая область
   кабинета — одна колонка: на телефоне по 16 px (как вход), на планшете по рабочей области 960 px (не меньше 20 px),
   на компьютере по рабочей области 1384 px (не меньше 28 px). */
body.design-787.cabinet-mode #cabinet .cabinet-header:not(#_){box-sizing:border-box;padding-left:16px!important;padding-right:16px!important}
@media(max-width:599px){body.design-787.cabinet-mode #cabinet .cabinet-main:not(#_){padding-left:16px!important;padding-right:16px!important}}
@media(min-width:600px) and (max-width:1179px){body.design-787.cabinet-mode #cabinet .cabinet-header:not(#_){padding-left:max(20px,calc((100% - 960px)/2))!important;padding-right:max(20px,calc((100% - 960px)/2))!important}}
@media(min-width:1180px){body.design-787.cabinet-mode #cabinet .cabinet-header:not(#_){padding-left:max(28px,calc((100% - 1384px)/2))!important;padding-right:max(28px,calc((100% - 1384px)/2))!important}}
/* 06.11.2026 (владелец): водитель на узком телефоне (до 360 px) — слово AIRCLUB остаётся в шапке. Чтобы оно не наезжало на
   колокольчик и баланс не обрезался, на этой ширине чуть меньше AIRCLUB (11 px) и баланс (14 px), промежутки 6 px:
   помещается и «−12 345,67 ₽» на 320 px. Шапка пассажира — так же (общие экраны ролей одинаковы). */
@media(max-width:360px){body.design-787.cabinet-mode #cabinet-home>span:not(.design-brand-mark):not(#_){display:inline!important;font-size:11px!important;letter-spacing:.02em!important}
 body.design-787.cabinet-mode #cabinet-home:not(#_){gap:5px!important}
 body.design-787.cabinet-mode .cabinet-header .cabinet-head-actions:not(#_){gap:6px!important;column-gap:6px!important}
 body.design-787.role-driver .cabinet-header .header-balance strong:not(#_){font-size:14px!important;letter-spacing:-.04em!important}}
/* 06.11.2026, находки независимых проверяющих. */
/* «Финансы»: четыре итога — 2×2 на телефоне и планшете, 4 в ряд от 1100 px (было 3+1). */
body.design-787.role-driver #driver-shell .app-page[data-page="finance"] .stats-grid:not(#_):not(#__){grid-template-columns:repeat(2,minmax(0,1fr))!important}
@media(min-width:1100px){body.design-787.role-driver #driver-shell .app-page[data-page="finance"] .stats-grid:not(#_):not(#__){grid-template-columns:repeat(4,minmax(0,1fr))!important}}
/* На телефоне «Сегодня / 7 дней / Месяц» — одной строкой в три столбца, «Рейтинг» — строкой ниже во всю ширину
   (2×2 давало одинокий «Месяц» и экран длиннее окна на 9–53 px — проверка «телефон без прокрутки»). */
@media(max-width:599px){body.design-787.role-driver #driver-shell .app-page[data-page="finance"] .stats-grid:not(#_):not(#__){grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
 body.design-787.role-driver #driver-shell .app-page[data-page="finance"] .stats-grid:not(#_):not(#__)>*{min-width:0;padding-inline:10px!important}
 body.design-787.role-driver #driver-shell .app-page[data-page="finance"] .stats-grid:not(#_):not(#__)>*:nth-child(n+4){grid-column:1/-1}}
/* «Все / Выполненные / Отменённые» — всегда три в ряд («Отменённые» оставалась одна в строке на 768). */
body.design-787.role-driver .trip-period-presets.driver-outcome-filter:not(#_){display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important}
/* «Смена»: плитки «На линию — Аэропорт / Город» делят ширину карточки поровну (были прижаты влево с пустотой справа). */
body.design-787.role-driver #driver-line-actions.direction-grid:not(#_){display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%}
body.design-787.role-driver #driver-line-actions.direction-grid:not(#_)>button{width:auto!important;max-width:none!important}
/* «Финансы»: итоги — 12 px под рабочим балансом (было 6 px). */
body.design-787.role-driver #driver-shell .app-page[data-page="finance"] .balance-hero+.stats-grid:not(#_){margin-top:12px!important}
