/* Self-hosted IBM Plex complete WOFF2; original files and SIL OFL 1.1 in /fonts/ibm-plex/. */
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/ibm-plex/IBMPlexSans-Regular.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/ibm-plex/IBMPlexSans-Medium.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/ibm-plex/IBMPlexSans-SemiBold.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/ibm-plex/IBMPlexSans-Bold.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/ibm-plex/IBMPlexMono-Regular.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/ibm-plex/IBMPlexMono-Medium.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/ibm-plex/IBMPlexMono-SemiBold.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/ibm-plex/IBMPlexMono-Bold.woff2") format("woff2")}
/* Stage 3: first visual layer from the supplied 787 style guide. No feature removal. */
:root {
  --blue:#155a96; --blue-dark:#12395e; --blue-soft:#eef5fb;
  --orange:#bd4f09; --orange-dark:#a94309; --ink:#202e3e;
  --muted:#627082; --line:#e0e6ed; --background:#f3f5f8;
  --surface:#fff; --danger:#ac302d; --success:#227153;
  --shell:#142b44; --header:#193f68; --gold:#e0b277;
  font-family:"IBM Plex Sans","Segoe UI",system-ui,sans-serif;
  font-size:14px; line-height:1.5;
}
@supports (color:#32669a) {
  :root { --shell:#132539; --header:#123e6a;
    --blue:#006bbb; --orange:#bd4f09;
    --background:#f3f5f8; --line:#e1e5ea; }
}
[hidden] { display:none!important; }
body { background:var(--background); color:var(--ink); }
button,.button { border-radius:10px; font-weight:600; min-height:44px; }
button.secondary,.button.secondary { border:1px solid var(--line); background:#fff; color:var(--ink); }
button.secondary:hover,.button.secondary:hover { background:var(--blue-soft); }
button.danger-outline,.button.danger-outline { border:1px solid #e4b5b3; background:#fff; color:var(--danger); }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible { outline:3px solid #87b6df; outline-offset:3px; }
.guest-header,.cabinet-header,.admin-body .topbar { background:var(--header); color:#fff; box-shadow:none; }
.guest-header .brand,.cabinet-header .cabinet-logo,.admin-body .topbar .brand { color:#fff; }
.brand span,.cabinet-logo span { color:var(--gold); }
.header-install,.header-qr,.cabinet-head-actions button { background:#ffffff18; color:#fff; border:1px solid #ffffff28; }
.header-install:hover,.header-qr:hover { background:#ffffff30; }
.auth-card,.install-card,.card,.line-card { border:1px solid var(--line); border-radius:14px; box-shadow:none; }
.auth-card { width:min(440px,100%); padding:24px; }
.guest-main { max-width:760px; }
.guest-hero { display:block; padding:24px 0 4px; background:none; color:var(--ink); border-radius:0; box-shadow:none; text-align:center; }
.guest-hero h1 { font-size:clamp(22px,3vw,28px); line-height:1.25; }
.guest-hero .eyebrow,.guest-hero p:last-child { color:var(--muted); }
.guest-hero>svg { display:none; }
.install-card { padding:20px; }
input:not([type=radio]):not([type=checkbox]):not([type=file]),select,textarea { border-color:var(--line); border-radius:10px; }
.cabinet-main { width:min(1240px,calc(100% - 32px)); }
.page-heading h2 { font-size:20px; letter-spacing:-.02em; }
.stats-grid strong,.trip-price { font-variant-numeric:tabular-nums; }
.badge { border-radius:6px; }
.admin-body button,.admin-body .button { background:var(--blue); }
.admin-body button.secondary,.admin-body .button.secondary { background:#fff; }
.admin-body table { border-collapse:collapse; width:100%; font-size:13px; }
.admin-body th { background:#f5f7fa; color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.04em; }
.admin-body th,.admin-body td { padding:10px 12px; border-bottom:1px solid var(--line); vertical-align:middle; }
.admin-body .admin-main { max-width:1480px; }


.test-code { background:#fff2cf; border:1px solid #ead9a7; font-variant-numeric:tabular-nums; }
@media(max-width:759px) {
  input:not([type=radio]):not([type=checkbox]),select,textarea { font-size:16px; }
  .guest-main { width:calc(100% - 24px); margin:12px auto 28px; }
  .auth-card { padding:20px; margin:16px auto; }
  .cabinet-main { width:calc(100% - 24px); }
  .bottom-nav { padding-bottom:env(safe-area-inset-bottom); }
  .page-heading h2 { font-size:18px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }

/* Source cycle 1. Reference: supplied «Стиль 787 - гайд» and the three portal documents.
   No demo figures or changed tariffs. No external font requests; complete Plex fonts are served from /fonts/ibm-plex/. */
:root {
  --font-ui:"IBM Plex Sans","Segoe UI",system-ui,sans-serif;
  --font-data:"IBM Plex Mono","Cascadia Mono","SFMono-Regular",Consolas,monospace;
  --card-radius:14px; --control-radius:10px;
  --ink:#162330; --muted:#5b646f;
  --blue-soft:#ebf5ff; --gold:#f7a062;
  --success:#005e37; --danger:#97271b;
}
html,body {font-family:var(--font-ui);line-height:1.5;}
*,*::before,*::after {box-sizing:border-box;}
body {margin:0;background:var(--background);}
button,input,select,textarea {font:inherit;}
h1,h2,h3,h4 {font-weight:600;line-height:1.35;letter-spacing:-.015em;}
p {overflow-wrap:anywhere;}
.sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;}
.eyebrow {font-family:var(--font-data);font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
button,.button {box-shadow:none;background:var(--orange);color:#fff;border:1px solid transparent;font-weight:600;line-height:1.35;}
button.secondary,.button.secondary,button.text-button,.button.text-button,button.icon-button {background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:none;}
button:hover,.button:hover {filter:none;box-shadow:none;}
button:disabled {cursor:not-allowed;opacity:.6;}
button.danger-outline,.button.danger-outline {color:var(--danger);background:#fff;border:1px solid #f0c6be;}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {outline:2px solid var(--blue);outline-offset:3px;box-shadow:none;}
input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea {background:#fff;border:1px solid #d3d8de;min-height:44px;padding:11px 13px;color:var(--ink);box-shadow:none;}
label {font-weight:600;}
input[type=checkbox],input[type=radio] {accent-color:var(--blue);}
.card,.auth-card,.install-card,.line-card,.status-card,.setting-card,.settings-accordion,.trip-card,.profile-summary,.dialog-directory,.admin-finance-card,.admin-module-card,.pricing-subsection {background:#fff;border:1px solid var(--line);border-radius:var(--card-radius);box-shadow:none;}
.card,.line-card {padding:20px;}
.card-list {gap:14px;}
.stats-grid>article {background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:none;padding:16px;}
.stats-grid strong,.trip-price,.admin-finance-numbers strong,.finance-last-adjustment,.statement-list strong,.header-balance strong,.balance-hero>strong,td:last-child {font-family:var(--font-data);font-variant-numeric:tabular-nums;letter-spacing:-.025em;}
.stats-grid strong {font-size:24px;font-weight:500;}
.badge,.status-pill {border-radius:6px;box-shadow:none;font-weight:600;font-size:12px;}
.status-pill {color:#004e90;background:#e0f1ff;}
.status-pill.success,.badge.success {color:var(--success);background:#d9f7e5;}
.status-pill.danger,.badge.danger {color:var(--danger);background:#ffe0d7;}
.notice,.cabinet-notice,.finance-notice,.driver-notification-health,.notification-onboarding {border:1px solid #f6d0a6;border-radius:12px;background:#fff2d8;color:#733e00;box-shadow:none;}
.notification-onboarding {max-width:1200px;margin:12px auto;padding:14px 16px;}
.notification-onboarding p {font-size:13px;}
.cabinet-header {height:60px;min-height:60px;border:0;border-bottom:1px solid #ffffff22;}
.cabinet-header #page-title {font-size:16px;color:#fff;}
.cabinet-header button,.guest-header button {background:#ffffff20;border:1px solid #ffffff25;color:#fff;}
.cabinet-header .header-balance {color:#fff;}
.cabinet-main {width:calc(100% - 32px);max-width:1200px;margin:20px auto 96px;}
.cabinet-logo .brand-mark,.guest-header .brand-mark {object-fit:contain;}
.cabinet-logo {border:none!important;}
.balance-hero {background:linear-gradient(150deg,#0e5794,#143e6b);color:#fff;border-radius:14px;box-shadow:none;}


.direction-grid button {background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:none;border-radius:12px;}
.direction-grid button.active,.direction-grid button[aria-pressed=true] {background:var(--blue);color:#fff;}
.direction-grid button small {color:inherit;opacity:.8;}


.bottom-nav {width:100%;max-width:700px;border:1px solid var(--line);border-radius:14px 14px 0 0;box-shadow:none;background:#fff;}
.bottom-nav button {display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 2px;min-height:56px;border:0;background:transparent;color:var(--muted);border-radius:10px;}
.bottom-nav button.active {background:var(--blue-soft);color:var(--blue);}
.bottom-nav svg {width:23px;height:23px;}
.bottom-nav .nav-label {font-size:12px;line-height:1.25;font-weight:500;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bottom-nav .nav-badge {font-family:var(--font-data);}
.chat-messages {background:#e7ecf0;border-radius:12px;}
.chat-message {border:0;background:#fff;box-shadow:none;border-radius:14px 14px 14px 4px;}
.chat-message.mine {background:#1666aa;color:#fff;border-radius:14px 14px 4px 14px;}
.chat-message.mine .message-meta {color:#ffffffb8;}
.message-meta,.voice-duration {font-family:var(--font-data);}
.quick-chat button {border-radius:20px;min-height:44px;background:#fff;color:var(--ink);}
.dialog-row {background:#fff;box-shadow:none;color:var(--ink);border-radius:0;}
.dialog-toolbar,.dialog-search {box-shadow:none;background:#fff;}
.dialog-filter {box-shadow:none;}
.dialog-filter.active {background:var(--blue-soft);color:var(--blue);}
.guest-main {max-width:960px;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,440px);gap:24px;margin:48px auto;padding:0 24px;}
.guest-hero {grid-column:1;grid-row:1;text-align:left;align-self:center;padding:20px 0;}
.guest-hero h1 {font-size:clamp(26px,3vw,38px);}
.auth-card {grid-column:2;grid-row:1;margin:0;max-width:440px;}
.guest-main>.install-card {grid-column:1/-1;display:flex;align-items:center;gap:24px;}
.guest-main>.portal-switch {grid-column:1/-1;}
.guest-header {min-height:60px;}
.admin-body button,.admin-body .button {background:var(--blue);color:#fff;}
.admin-body button.secondary,.admin-body .button.secondary,.admin-body button.text-button {background:#fff;color:var(--ink);border:1px solid var(--line);}
.admin-body button.danger-outline {color:var(--danger);background:#fff;border-color:#f0c6be;}
.admin-body .topbar {height:60px;min-height:60px;box-shadow:none;}
.admin-body .admin-main {width:calc(100% - 40px);max-width:1400px;margin:20px auto 90px;}
.admin-body .hero {background:none;padding:8px 0;box-shadow:none;}
.admin-body .hero h1 {font-size:24px;}
.admin-module-grid {gap:14px;}
.admin-module-card {padding:18px;min-height:104px;}
.admin-module-icon {background:var(--blue-soft);color:var(--blue);border-radius:10px;box-shadow:none;font-size:20px;font-weight:500;}
.admin-module-card strong {font-size:15px;}
.admin-module-card small {font-size:12px;line-height:1.45;}
.admin-page-back {background:none;padding-left:0;font-weight:500;color:var(--blue);}
.admin-subtabs {border:0;border-bottom:1px solid var(--line);border-radius:0;background:#fff;padding:0;box-shadow:none;backdrop-filter:none;gap:4px;}
.admin-subtabs button,.admin-subtabs button.active {background:transparent!important;color:var(--muted);border:0;border-bottom:2px solid transparent;border-radius:0;box-shadow:none;}
.admin-subtabs button.active {border-color:var(--blue);color:var(--blue);}
.admin-finance-card {padding:18px;gap:16px;}
.admin-finance-numbers {gap:22px;}
.admin-finance-numbers span {font-size:12px;}
.admin-finance-numbers strong {font-size:20px;font-weight:500;}
.admin-body .tariff-item {border:1px solid var(--line);background:#fff;box-shadow:none;border-radius:10px;}
.admin-body th {font-family:var(--font-data);font-size:11px;}
.admin-bottom-nav {box-shadow:none;border-radius:14px 14px 0 0;}
.admin-bottom-nav a.active {background:var(--blue-soft);color:var(--blue);}
.admin-bottom-nav a>small {font-size:12px;}
.workspace-rail {display:none;}
.finance-notice {padding:14px 16px;font-size:14px;}
.finance-pending-banner {display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;}
.finance-dialog {padding:0;width:min(580px,calc(100vw - 24px));max-height:calc(calc(var(--app-vh, 1vh) * 100) - 32px);max-height:calc(100dvh - 32px);border:1px solid var(--line);border-radius:20px;background:#fff;color:var(--ink);box-shadow:0 24px 60px rgba(10,18,36,.32);overflow:auto;}
.finance-dialog::backdrop {background:rgba(14,22,40,.5);}
.finance-dialog form {display:block;margin:0;}
.finance-dialog-head {display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 24px;border-bottom:1px solid var(--line);}
.finance-dialog-head h2 {margin:3px 0 0;font-size:21px;}
.finance-dialog-head p {margin:0;}
.finance-dialog-head .icon-button {min-width:44px;min-height:44px;flex:none;font-size:22px;}
.finance-dialog-content {padding:20px 24px;display:grid;gap:14px;}
.finance-target-list {max-height:160px;overflow:auto;}
.finance-target-list p {display:flex;justify-content:space-between;gap:16px;padding:10px 0;margin:0;border-bottom:1px solid var(--line);}
.finance-target-list strong {white-space:nowrap;font-family:var(--font-data);font-weight:500;}
#finance-edit-fields {border:0;padding:0;margin:0;min-width:0;display:grid;gap:9px;}
#finance-edit-fields:disabled {opacity:.75;}
#finance-edit-fields label {font-size:13px;}
#finance-edit-fields input[type=text] {width:100%;}
#finance-adjust-amount {font-family:var(--font-data);font-size:22px;}
.finance-quick-amounts {display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px;}
.finance-quick-amounts button {flex:1;min-width:90px;border-radius:20px!important;font-size:13px;}
.finance-adjust-preview {padding:14px;background:var(--blue-soft);border:1px solid var(--line);border-radius:10px;font-size:14px;}
.finance-operation-label {font:11px/1.5 var(--font-data);overflow-wrap:anywhere;margin:0;color:var(--muted);}
.finance-small-print {font-size:12px;margin:0;}
.finance-dialog .field-error:empty {display:none;}
.finance-dialog-actions {display:flex;justify-content:flex-end;gap:10px;position:sticky;bottom:0;background:#fff;padding:16px 24px;border-top:1px solid var(--line);}
.finance-dialog-actions button {min-height:46px;}
.finance-dialog #finance-negative-confirmation {font-size:13px;color:var(--danger);}
.finance-dialog details summary {cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--blue);}
@media(min-width:768px) {
  .workspace-ready .workspace-rail {position:fixed;z-index:130;top:0;left:0;bottom:0;display:flex;flex-direction:column;gap:3px;width:60px;padding:10px 6px;background:var(--shell);overflow-y:auto;}
  .workspace-rail a {display:flex;align-items:center;gap:12px;min-height:46px;padding:10px;border-radius:8px;color:#bbc5d1;text-decoration:none;}
  .workspace-rail a.active {background:#1e548d;color:#fff;}
  .workspace-rail a:hover {background:#ffffff16;}
  .workspace-icon {font-size:20px;width:26px;flex:none;text-align:center;}
  .workspace-label,.workspace-brand>span {display:none;}
  .workspace-brand {margin-bottom:10px;padding:5px!important;justify-content:center;}
  .workspace-brand>b {display:grid;place-items:center;background:var(--blue);color:#fff;width:34px;height:34px;border-radius:8px;font-size:13px;}
  .workspace-ready .topbar {margin-left:60px;}
  .workspace-ready .admin-main {margin-left:80px;width:calc(100% - 100px);max-width:none;}
  .workspace-ready .admin-bottom-nav {display:none;}
  .workspace-ready .admin-main {margin-bottom:24px;}
  .role-driver .app-page[data-page=orders] {display:grid;grid-template-columns:minmax(280px,.85fr) minmax(320px,1.15fr);gap:18px;align-items:start;}
  #driver-moderation,#driver-line-card,#driver-current-orders {grid-column:1;}
  #driver-available-orders {grid-column:2;grid-row:1/span 4;}
  #driver-current-orders {margin-top:0;}
  .cabinet-main {margin-bottom:95px;}
  .role-passenger #order-wizard {max-width:960px;margin-inline:auto;}
  .bottom-nav button {min-height:58px;}
}
@media(min-width:1100px) {
  .workspace-ready .workspace-rail {width:232px;padding:14px 10px;}
  .workspace-label,.workspace-brand>span {display:block;font-size:13px;}
  .workspace-brand {justify-content:flex-start;padding-left:10px!important;font-weight:600;}
  .workspace-ready .topbar {margin-left:232px;}
  .workspace-ready .admin-main {margin-left:256px;width:calc(100% - 280px);}
  .admin-module-grid {grid-template-columns:repeat(3,minmax(0,1fr));}
  .cabinet-mode .bottom-nav {position:sticky;top:60px;bottom:auto;border:0;border-bottom:1px solid var(--line);border-radius:0;max-width:none;display:flex;justify-content:center;margin:0;padding:6px;background:#fff;z-index:90;}
  .cabinet-mode .bottom-nav button {min-width:132px;min-height:44px;flex-direction:row;gap:10px;}
  .cabinet-mode .bottom-nav .nav-label {font-size:14px;}
  /* Same live controls are moved visually via flex order, not duplicated. */
  .cabinet {display:flex;flex-direction:column;}
  .cabinet-header {order:0;position:sticky;top:0;z-index:100;}
  .cabinet .bottom-nav {order:1;}
  .cabinet-notice,.notification-onboarding {order:2;}
  .cabinet-main {order:3;margin:24px auto 40px;}
  #trip-form:has(#quote-card:not([hidden])) {display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px 24px;}
  #trip-form:has(#quote-card:not([hidden]))>* {grid-column:1;}
  #trip-form:has(#quote-card:not([hidden]))>#quote-card {grid-column:2;grid-row:1/span 6;position:sticky;top:136px;align-self:start;margin:0;}
  #trip-form:has(#quote-card:not([hidden]))>.form-actions {grid-column:1/-1;}
}
@media(max-width:767px) {
  .guest-main {display:block;padding:0;max-width:480px;margin:20px auto;width:calc(100% - 28px);}
  .guest-hero {text-align:left;padding:8px 0;}
  .guest-hero h1 {font-size:27px;}
  .auth-card {width:100%;margin:16px 0;}
  .guest-main>.install-card {display:block;}
  .guest-main>.install-card figure {margin:16px auto;text-align:center;}
  .cabinet-header {padding-inline:12px;}
  .cabinet-main {margin-top:14px;width:calc(100% - 24px);}
  .cabinet-header .cabinet-logo span {display:none;}
  .cabinet-header #page-title {font-size:15px;}
  .cabinet-header .header-balance {font-size:12px;}
  .card,.line-card {padding:16px;}
  .notification-onboarding {margin:10px 12px;}
  .notification-onboarding button {min-height:44px;}
  .admin-body .admin-main {width:calc(100% - 24px);margin-top:14px;}
  .admin-module-grid {grid-template-columns:1fr;}
  .admin-module-card {min-height:80px;padding:14px;}
  .admin-finance-card {padding:14px;grid-template-columns:24px minmax(0,1fr);}
  .admin-finance-card>button {grid-column:1/-1;width:100%;}
  .admin-finance-numbers {gap:12px;flex-wrap:wrap;}
  .admin-finance-numbers strong {font-size:18px;}
  .finance-pending-banner {align-items:stretch;flex-direction:column;}
  .finance-dialog {width:calc(100% - 16px);max-height:calc(calc(var(--app-vh, 1vh) * 100) - 16px);max-height:calc(100dvh - 16px);border-radius:18px;}
  .finance-dialog-head {padding:16px;}
  .finance-dialog-content {padding:16px;}
  .finance-dialog-actions {padding:12px 16px max(12px,env(safe-area-inset-bottom));flex-wrap:wrap;}
  .finance-dialog-actions>button {flex:1;min-width:120px;}
  .finance-dialog input {font-size:16px;}
  .finance-dialog-head h2 {font-size:18px;}
  .finance-quick-amounts button {min-width:calc(50% - 8px);}
  .admin-subtabs {top:60px;}
}
/* Layout verification refinements: all controls remain available. */
.admin-body .topbar {padding:0 24px;justify-content:space-between;}
.admin-main .card {border-radius:14px;box-shadow:none;}
.admin-main .hero {box-shadow:none;border:0;background:none;}
.admin-body .topbar .brand {font-weight:600;}
.admin-body .topbar .brand span {color:#fff;font-size:14px;letter-spacing:.04em;}
.admin-list-toolbar button[type=submit],.finance-balance-toolbar button[type=submit] {background:#fff;color:var(--ink);border:1px solid var(--line);}
.notification-more {margin-top:6px;}
.notification-more summary {font-size:13px;font-weight:500;cursor:pointer;min-height:36px;display:list-item;}
.notification-more p {margin:8px 0;line-height:1.5;}
#driver-readiness-panel>.setting-card {padding:12px;margin:12px 0;}
#driver-readiness-panel summary {min-height:36px;cursor:pointer;font-size:13px;}
.readiness-check {padding:9px 0;border-bottom:1px solid var(--line);}
.readiness-check p {margin:0 0 8px;font-size:13px;line-height:1.45;}
.readiness-check:last-child {border-bottom:0;}
.readiness-complete {margin-top:10px;color:var(--muted);}
.readiness-complete .readiness-check p {margin:0;font-size:12px;}
.driver-verified-info>summary {font-size:14px;font-weight:600;cursor:pointer;min-height:40px;display:list-item;}
.driver-verified-info>p {font-size:13px;}
#driver-moderation:has(.driver-verified-info) {padding:12px 16px;}
#driver-line-card:has(.readiness-check[data-code="NOTIFICATIONS_CONFIRMED"][data-passed="false"]) #driver-notification-setup {display:none;}
@media(max-width:767px){.notification-onboarding {gap:10px;padding:12px;}.notification-onboarding-actions {flex-wrap:wrap;}.notification-more summary {font-size:12px;min-height:40px;}.admin-body .topbar{padding:0 12px;}}

/* Source cycle 2: explicit connection state, never a silent offline write queue. */
.connection-status {position:fixed;left:50%;transform:translateX(-50%);bottom:calc(82px + env(safe-area-inset-bottom));z-index:1600;max-width:min(680px,calc(100% - 24px));width:max-content;padding:12px 16px;border:1px solid #e7c98e;border-radius:12px;background:#fff5de;color:#624717;box-shadow:0 4px 18px #17203318;font-size:13px;line-height:1.45;}
@media(min-width:1024px){.connection-status{bottom:20px}.admin-body .connection-status{left:calc(50% + 105px)}}
.pwa-update {background:var(--surface);color:var(--ink);border:1px solid var(--line);padding:12px 16px;max-width:680px;box-shadow:0 6px 20px #17203318;gap:16px;font-size:13px;line-height:1.45;}
.pwa-update-actions {display:flex;gap:8px;flex-shrink:0;}.pwa-update-actions button{min-height:40px;background:#fff;color:var(--blue);border:1px solid var(--line);}
@media(max-width:767px){.pwa-update{flex-wrap:wrap;left:12px;right:12px;width:auto;bottom:calc(80px + env(safe-area-inset-bottom));}.pwa-update-actions{width:100%;}.pwa-update-actions button{flex:1}.connection-unavailable .pwa-update{bottom:160px}}

/* Same-origin install panel; QR remains hidden until the build manifest matches this site. */
.install-share-dialog{width:min(100% - 24px,520px);padding:24px;border:1px solid var(--line,#d7e0e8);border-radius:18px;color:#182b3e;background:#fff;max-height:calc(calc(var(--app-vh, 1vh) * 100) - 24px);max-height:calc(100dvh - 24px);overflow:auto;box-shadow:0 20px 80px #132d4555}
.install-share-dialog::backdrop{background:#0d203cb3}.install-share-dialog header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.install-share-dialog h2{font-size:23px;margin:4px 0 14px}.install-audiences{display:flex;gap:8px;flex-wrap:wrap}.install-audiences button[aria-pressed=true]{background:#e9f0f8;border-color:#2474bc;color:#145b99}.install-qr-surface{min-height:120px;display:grid;place-items:center;background:#f3f6fa;border-radius:14px;margin:20px 0;padding:16px;text-align:center}.install-qr-surface img{max-width:100%;height:auto;background:#fff}.install-share-dialog label{display:grid;gap:6px;font-weight:600}.install-share-dialog input{font:13px ui-monospace,monospace;width:100%;box-sizing:border-box;min-width:0}.install-share-dialog footer{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin-top:20px}.install-share-dialog footer>*{min-height:44px;flex:1;white-space:nowrap}.install-share-dialog footer .button{display:flex;align-items:center;justify-content:center}.install-share-dialog #install-share-guide,.install-share-dialog #install-share-status{font-size:14px;line-height:1.5}.qr-icon{font:26px/1 ui-monospace,monospace}.install-share-dialog [hidden]{display:none!important}
@media(max-width:600px){.install-share-dialog{padding:18px}.install-share-dialog footer>*{flex-basis:42%}.admin-body .header-install{display:none}.admin-body .topbar-actions .badge{display:none}}

/* Rules are one working form, not dozens of primary buttons. */
.settings-editor{display:block}.settings-editor .rule-group{border:1px solid #d6e0eb;border-radius:14px;padding:0 18px;margin:16px 0;background:white}.settings-editor h4{font-size:16px;color:#233d56;margin:18px 0}.settings-editor .operation-setting-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(140px,220px);gap:24px;align-items:center;border:0;border-top:1px solid #e4eaf1;border-radius:0;padding:14px 0;margin:0;background:transparent}.settings-editor label{font-size:14px;font-weight:500;line-height:1.45}.settings-editor .rule-input{display:grid;gap:4px}.settings-editor input{min-width:0;max-width:100%;width:100%;min-height:40px;margin:0}.settings-editor input[type=checkbox]{width:24px;min-height:24px;justify-self:end}.settings-editor .is-dirty{box-shadow:inset 3px 0 #cf941e;padding-left:12px;background:#fffaf0}.rule-was{color:#7a5720;font-size:12px}.settings-savebar{position:sticky;bottom:12px;z-index:12;display:flex;gap:12px;align-items:center;background:#fff;padding:14px 18px;border:1px solid #b9cadc;border-radius:12px;box-shadow:0 8px 26px #233d5626}.settings-savebar span{margin-right:auto;font-weight:600}.settings-savebar button{min-height:44px}.settings-savebar[hidden]{display:none}
@media(max-width:767px){.settings-editor .operation-setting-row{grid-template-columns:minmax(0,1fr) minmax(100px,38%);gap:12px}.settings-editor .rule-group{padding:0 12px}.settings-savebar{bottom:84px;flex-wrap:wrap;padding:12px}.settings-savebar span{flex-basis:100%}.settings-savebar button{flex:1;white-space:normal}}
