/* СУВЦ Workspace — shared visual system, loaded after page layout styles.
   Page CSS owns layout and business states; this file owns surfaces and controls. */
:root {
  color-scheme: light;
  --bg: #f5f4f1; --bg-subtle: #f7f7f4; --card: #fff;
  --surface: #fff; --surface-2: #eceeea; --surface-hover: #f1f3ef;
  --text: #252b29; --text-soft: #4c5752; --muted: #636f66; --muted-light: #667168;
  --border: #e1e5df; --border-strong: #bcc6bd; --border-focus: #617e6d;
  --accent: #283e33; --accent-h: #3a5545; --accent-soft: #eaf0e9; --accent-text: #fff;
  --info: #416a54; --info-soft: #edf3ed; --info-border: #cbdacc;
  --ok: #087759; --ok-soft: #e8f8f0; --ok-border: #bfe7d5;
  --warn: #945716; --warn-soft: #fff4df; --warn-border: #f2d6a5;
  --danger: #c02e50; --danger-soft: #fff0f3; --danger-border: #f2c7d2;
  --brand-yellow: #efc443; --brand-yellow-h: #ddb335;
  --dark1: #1d1d1f; --dark2: #343438;
  --cat-sky: #08789b; --cat-sky-soft: #e9f8fd; --cat-sky-border: #bfe8f3;
  --cat-orange: #ae521a; --cat-orange-soft: #fff0e6; --cat-orange-border: #f5d6bf;
  --cat-purple: #7650c8; --cat-purple-soft: #f2edff; --cat-purple-border: #dfd3fb;
  --cat-rose: #ad4b71; --cat-rose-soft: #fbedf3; --cat-rose-border: #efcfdd;
  --cat-green: var(--ok); --cat-green-soft: var(--ok-soft); --cat-green-border: var(--ok-border);
  --cat-amber: var(--warn); --cat-amber-soft: var(--warn-soft); --cat-amber-border: var(--warn-border);
  --tone-blue: var(--info); --tone-blue-soft: var(--info-soft);
  --tone-mint: var(--ok); --tone-mint-soft: var(--ok-soft);
  --tone-violet: var(--cat-purple); --tone-violet-soft: var(--cat-purple-soft);
  --tone-coral: var(--cat-orange); --tone-coral-soft: var(--cat-orange-soft);
  --tone-amber: var(--warn); --tone-amber-soft: var(--warn-soft);
  --radius-lg: 26px; --radius: 20px; --radius-sm: 12px; --radius-xs: 8px;
  --control-h: 42px; --control-h-sm: 34px;
  --shadow-xs: 0 1px 3px #1c34500a;
  --shadow: 0 2px 4px #1c345004, 0 12px 32px -14px #213e6420;
  --shadow-md: 0 16px 42px -18px #20396135;
  --shadow-lg: 0 34px 100px -22px #15274966, 0 8px 28px #17284d12;
  --shadow-sm: var(--shadow); --control-shadow: 0 2px 4px #18325709, inset 0 1px 0 #ffffff80;
  --ring: 0 0 0 3px #617e6d25; --control-ring: var(--ring);
  --sidebar-width: 236px; --sidebar-bg: #eeefeb; --glass: #fff;
  --motion: 140ms ease-out;
  --primary-fill: linear-gradient(180deg,#354c3e,#283e33);
  --primary-text: #fff;
  --primary-shadow: 0 2px 3px #20342612, inset 0 1px 0 #ffffff20;
  --canvas-art: none;
  --rental-action: var(--accent); --rental-action-hover: var(--accent-h);
  --rental-action-text: var(--accent-text); --rental-action-border: var(--accent);
  --rental-action-ring: var(--info-border); --rental-destructive: var(--danger);
}
html[data-theme="dark"] {
  color-scheme: dark;
  --bg: #161819; --bg-subtle: #1b1e1f; --card: #222627;
  --surface: #222627; --surface-2: #2b3030; --surface-hover: #2b3230;
  --text: #eeefea; --text-soft: #cdd3cd; --muted: #a1aba4; --muted-light: #8e9a92;
  --border: #353d39; --border-strong: #505e55; --border-focus: #b7c8b9;
  --accent: #eceae3; --accent-h: #fff; --accent-soft: #2e3832; --accent-text: #202622;
  --info: #b0c8b5; --info-soft: #29372e; --info-border: #445c4b;
  --ok: #8bd6b5; --ok-soft: #26352e; --ok-border: #3b5146;
  --warn: #e6c493; --warn-soft: #393126; --warn-border: #574837;
  --danger: #eda6b7; --danger-soft: #3b2931; --danger-border: #5d3f49;
  --cat-sky: #a1c9cb; --cat-sky-soft: #283336; --cat-sky-border: #405055;
  --cat-orange: #ffbe98; --cat-orange-soft: #41322c; --cat-orange-border: #644736;
  --cat-purple: #cbb4de; --cat-purple-soft: #322b3b; --cat-purple-border: #50415e;
  --cat-rose: #efb0c9; --cat-rose-soft: #422d38; --cat-rose-border: #604451;
  --dark1: #19191d; --dark2: #2c2c32;
  --sidebar-bg: #1c2021; --glass: #222627;
  --shadow-xs: 0 1px 2px #0001; --shadow: 0 4px 20px #0001;
  --shadow-md: 0 12px 35px #0003; --shadow-lg: 0 30px 100px #0008;
  --control-shadow: 0 2px 5px #0002, inset 0 1px 0 #ffffff06; --ring: 0 0 0 3px #cbc7d52b;
  --primary-fill: linear-gradient(135deg,#f0ede8,#dcd8d2 72%,#e8e4de);
  --primary-text: #1c1b1e;
  --primary-shadow: 0 4px 14px -6px #0007, inset 0 1px 0 #ffffff80;
  --canvas-art: none;
}
html, html[data-theme] body[data-page] { background: var(--bg); color: var(--text); }
html { scroll-padding-top: 80px; }
body { font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size: 14px; line-height: 1.5; letter-spacing: -.012em; }
body :is(h1,h2,h3,h4) { color: var(--text); font-weight: 650; letter-spacing: -.035em; }
html[data-theme] body[data-page] :is(h1,h2,h3,h4) { font-weight: 600; }
html[data-theme] body[data-page] .legend-pill { background: var(--surface-2); color: var(--text-soft); border-color: var(--border); }
html[data-theme] body[data-page] :is(.date-picker-wrap,.hub-picker-wrap) { background: var(--card); border-color: var(--border); }
html[data-theme] body[data-page] :is(.qr-section-title,.qr-summary-row strong) { color: var(--text); }
html[data-theme] body[data-page] .qr-empty { color: #64646c; }
html[data-theme] body[data-page] .qr-empty p { color: #64646c; }
html[data-theme] body[data-page="fines"] .btn-primary { background: var(--accent) !important; border-color: var(--accent) !important; color: var(--accent-text) !important; }
html[data-theme] body[data-page] .ready-bikes-chips > div:only-child { grid-column: 1 / -1; width: 100%; }
html[data-theme] body[data-page] .searchbar { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius-sm); }
html[data-theme] body[data-page] .searchbar input { border: 0; background: transparent; box-shadow: none; }
body :is(p,small) { text-wrap: pretty; }
body a { color: var(--info); }
body a:hover { color: var(--info); }
::selection { background: var(--info-border); color: var(--text); }
* { scrollbar-color: var(--border-strong) transparent; scrollbar-width: thin; }
[hidden] { display: none !important; }
*:focus-visible { outline: 2px solid var(--border-focus); outline-offset: 3px; box-shadow: none; }
button, input, select, textarea { font-family: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }

/* Application chrome */
body.workspace,html.has-workspace body { padding-left: var(--sidebar-width); }
.workspace-sidebar { position: fixed; inset: 0 auto 0 0; width: var(--sidebar-width); z-index: 90; display: flex; flex-direction: column; padding-top: env(safe-area-inset-top, 0px); padding-bottom: env(safe-area-inset-bottom, 0px); background: var(--sidebar-bg); border-right: 1px solid var(--border); backdrop-filter: blur(28px) saturate(1.5); }
.workspace-brand { display: flex; gap: 10px; align-items: center; min-height: 82px; padding: 20px; color: var(--text); font-size: 18px; font-weight: 700; letter-spacing: -.04em; }
.workspace-brand:hover { color: var(--text); }
.workspace-brand img { border-radius: 9px; flex: none; }
.workspace-brand-mark { flex: none; overflow: hidden; }
.workspace-brand small { display: block; margin-top: 1px; font-size: 10px; font-weight: 500; letter-spacing: 0; color: var(--muted); }
.workspace-sections { flex: 1; min-height: 0; overflow: auto; padding: 3px 12px 16px; }
.workspace-group + .workspace-group { margin-top: 19px; }
.workspace-group-title { display: flex; align-items: center; justify-content: space-between; gap: 6px; list-style: none; cursor: pointer; min-height: 30px; font-size: 10px; font-weight: 650; color: var(--muted); padding: 5px 11px; letter-spacing: .035em; border-radius: 7px; user-select: none; }
.workspace-group-title::-webkit-details-marker { display: none; }
.workspace-group-title:hover { background: var(--surface-hover); color: var(--text); }
.workspace-group-title .ic { transition: transform var(--motion); }
.workspace-group[open] > .workspace-group-title .ic { transform: rotate(90deg); }
.workspace-group-links { padding-top: 3px; }
.workspace-group[open] > .workspace-group-links { animation: menu-arrive .16s ease-out; }
.workspace-logout { display: flex; align-items: center; justify-content: center; gap: 7px; border: 0; color: var(--muted); background: transparent; padding: 6px; margin: 0 14px 12px; font-size: 10px; cursor: pointer; border-radius: 7px; }
.workspace-logout:hover { background: var(--surface-hover); color: var(--text); }
.workspace-link { display: flex; align-items: center; gap: 10px; min-height: 37px; margin: 2px 0; padding: 8px 11px; border-radius: 9px; color: var(--text-soft); font-size: 12px; font-weight: 500; transition: background var(--motion),color var(--motion); }
.workspace-link .ic { width: 17px; height: 17px; opacity: .8; }
.workspace-link:hover { color: var(--text); background: var(--surface-hover); }
.workspace-link.is-current { color: var(--text); background: var(--card); box-shadow: 0 1px 3px #00000009; font-weight: 650; }
.workspace-link.is-current .ic { color: var(--info); opacity: 1; }
.workspace-account { display: flex; gap: 9px; align-items: center; margin: 0 12px 12px; padding: 12px 6px 0; border-top: 1px solid var(--border); color: var(--text); }
.workspace-account > span:nth-child(2) { flex: 1; min-width: 0; }
.workspace-account strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; font-weight: 650; }
.workspace-account small { display: block; font-size: 10px; color: var(--muted); margin-top: 2px; }
.workspace-avatar { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--surface-2); color: var(--muted); flex: none; }
.workspace-close { display: none; }
html[data-theme] body[data-page] .topbar { border-top: 0; border-bottom: 1px solid var(--border); background: var(--glass); backdrop-filter: blur(24px) saturate(1.5); box-shadow: none; }
html[data-theme] body[data-page] .topbar .inner { min-height: 64px; max-width: none; padding: 10px 28px; gap: 12px; flex-wrap: nowrap; }
.workspace .topbar .brand, .workspace .topbar .divider { display: none; }
html[data-theme] body[data-page] .topbar .page-title { min-width: 0; }
html[data-theme] body[data-page] .topbar .page-title .kicker { font-size: 9px; font-weight: 600; color: var(--muted); letter-spacing: .1em; margin-bottom: 2px; }
html[data-theme] body[data-page] .topbar .page-title .tb-title { font-size: 17px; line-height: 1.2; font-weight: 650; letter-spacing: -.025em; color: var(--text); }
html[data-theme] body[data-page] .topbar .page-title p { display: none; }
html[data-theme] body[data-page] .topbar .nav { gap: 3px; background: none; margin-left: auto; flex-wrap: nowrap; }
html[data-theme] body[data-page] .topbar .nav > .btn { min-height: 32px; height: 32px; border: 0; border-radius: 8px; padding: 0 10px; background: transparent; color: var(--muted); box-shadow: none; font-size: 11px; font-weight: 550; }
html[data-theme] body[data-page] .topbar .nav > .btn:hover, html[data-theme] body[data-page] .topbar .nav > .active { background: var(--surface-2); color: var(--text); }
html[data-theme] body[data-page] .topbar .nav > .btn-pwa { background: var(--surface-2); color: var(--text-soft); border: 0; }
.theme-toggle { display: inline-grid; place-items: center; flex: none; width: 32px; height: 32px; border: 1px solid var(--border); border-radius: 9px; background: var(--card); color: var(--text-soft); padding: 0; box-shadow: var(--control-shadow); cursor: pointer; }
.theme-toggle svg { width: 16px; height: 16px; }
.theme-toggle:hover { background: var(--surface-hover); }
.brand-logo-dark { display: none; }
html[data-theme="dark"] .brand-logo-light { display: none; }
html[data-theme="dark"] .brand-logo-dark { display: block; }
html[data-theme] body[data-page] .topbar-brand-logo { background: transparent; box-shadow: none; }
.workspace > :is(main.wrap,main.wrap-wide,.wrap,.wrap-wide) { max-width: 1560px; width: 100%; padding-left: 28px; padding-right: 28px; }
.workspace > .bike-nav-container .bike-nav-bar { border-radius: 10px; }
.workspace > .bike-nav-container .bike-nav-bar { display: none; }
.workspace > .bike-nav-container:has(.disp-banner[style*="display: none"]) { display: none; }
body :is(.page-wrap,.hub,.analytics-wrap,.adm,.snd,.mega-wrap,.inv,.rc,.bb,.akb-page,.qr-shell) { padding-top: 24px; }

/* Section titles and navigation */
html[data-theme] body[data-page] .page-hero { border: 0; border-radius: 0; background: transparent; box-shadow: none; padding: 8px 0 22px; margin: 0 0 20px; color: var(--text); overflow: visible; }
html[data-theme] body[data-page] .page-hero::before, html[data-theme] body[data-page] .page-hero::after { display: none; }
html[data-theme] body[data-page] .page-hero-top { align-items: center; gap: 22px; }
html[data-theme] body[data-page] .page-hero-title { font-size: clamp(25px,2.5vw,34px); line-height: 1.18; font-weight: 650; letter-spacing: -.045em; color: var(--text); }
html[data-theme] body[data-page] .page-hero-eyebrow { font-size: 10px; font-weight: 600; color: var(--muted); letter-spacing: .1em; margin-bottom: 8px; }
html[data-theme] body[data-page] .page-hero-sub { font-size: 13px; color: var(--muted); font-weight: 400; line-height: 1.6; max-width: 700px; margin-top: 9px; }
html[data-theme] body[data-page] .page-hero-aside { gap: 8px; }
html[data-theme] body[data-page] .hero-pill { background: var(--card); border: 1px solid var(--border); color: var(--text-soft); padding: 7px 11px; font-size: 11px; font-weight: 550; box-shadow: var(--shadow-xs); }
html[data-theme] body[data-page] .hero-pill.ok { background: var(--ok-soft); border-color: var(--ok-border); color: var(--ok); }
html[data-theme] body[data-page] .hero-pill.warn { background: var(--warn-soft); border-color: var(--warn-border); color: var(--warn); }
html[data-theme] body[data-page] :is(.hero-tabs,.tabs-bar,.bike-nav-bar) { border: 1px solid var(--border); border-radius: 12px; background: var(--surface-2); padding: 4px; gap: 4px; box-shadow: none; scrollbar-width: none; }
html[data-theme] body[data-page] :is(.hero-tabs,.tabs-bar,.bike-nav-bar)::-webkit-scrollbar { display: none; }
html[data-theme] body[data-page] .hero-tabs { margin-top: 22px; overflow-x: auto; }
html[data-theme] body[data-page] :is(.hero-tabs,.tabs-bar,.bike-nav-bar) :is(button,a) { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 36px; padding: 8px 13px; border: 1px solid transparent; border-radius: 8px; background: transparent; color: var(--muted); font-size: 12px; font-weight: 550; line-height: 1.2; white-space: nowrap; box-shadow: none; transform: none; transition: color var(--motion),background var(--motion),box-shadow var(--motion); }
html[data-theme] body[data-page] :is(.hero-tabs,.tabs-bar,.bike-nav-bar) :is(button,a):hover { color: var(--text); background: color-mix(in srgb,var(--card) 50%,transparent); }
html[data-theme] body[data-page] :is(.hero-tabs,.tabs-bar,.bike-nav-bar) :is(button,a):is(.active,.on,.sel,[aria-selected="true"]) { background: var(--card); color: var(--text); border-color: transparent; box-shadow: 0 1px 4px #00000012; font-weight: 650; }
html[data-theme] body[data-page] .hero-tabs :is(.tab-badge,.badge,.count) { font-size: 10px; padding: 1px 6px; min-width: 20px; background: var(--surface-2); color: var(--muted); border: 0; }
body :is(.section-label,.section-divider-title) { color: var(--muted); font-size: 10px; font-weight: 650; letter-spacing: .09em; }

/* Work area: dispatcher frames remain in place when switching tabs. */
html[data-theme] body[data-page] .disp-bar.page-hero { display: grid; grid-template-columns: minmax(0,1fr) 280px; align-items: center; gap: 10px 16px; margin: 0; padding: 12px 24px; border: 0; border-bottom: 1px solid var(--border); border-radius: 0; background: var(--glass); box-shadow: none; flex: none; }
html[data-theme] body[data-page] .disp-bar .hero-tabs { display: flex; flex-wrap: nowrap; margin: 0; min-width: 0; width: 100%; padding: 3px; border-radius: 10px; overflow-x: auto; white-space: nowrap; justify-content: flex-start; }
html[data-theme] body[data-page] .disp-bar .hero-tabs .disp-tab { flex: 0 0 auto; min-height: 34px; padding: 8px 10px; font-size: 11px; }
html[data-theme] body[data-page] .disp-bar .hero-tabs .disp-tab .ic { color: currentColor; width: 15px; height: 15px; }
html[data-theme] body[data-page] .disp-bar .hero-tabs .disp-tab.active .ic { color: var(--info); }
html[data-theme] body[data-page] .disp-right { flex: 0 1 280px; min-width: 230px; }
html[data-theme] body[data-page] .disp-search-form { gap: 7px; }
html[data-theme] body[data-page] .disp-search-wrap { flex: 1; min-width: 0; }
html[data-theme] body[data-page] .disp-search-inp, html[data-theme] body[data-page] .disp-bar #disp-search-submit { min-height: 36px !important; height: 36px !important; border-radius: 9px !important; font-size: 12px; }
html[data-theme] body[data-page] .disp-search-inp { border: 1px solid var(--border); background: var(--card); color: var(--text); font-weight: 500; letter-spacing: 0; }
html[data-theme] body[data-page] .disp-search-wrap.has-value .disp-search-inp { background: var(--info-soft); border-color: var(--info-border); color: var(--info); }
html[data-theme] body[data-page] .disp-viewport { background: var(--bg); flex: 1; min-height: 0; }
html[data-theme] body[data-page] .disp-frame { background: var(--bg); }
.is-embedded body, body.is-embedded { padding-left: 0; }
html.is-embedded body :is(.rentals-wrap,.fleet-wrap,.acts-container,.coop-wrap,.fines-container,.bb,.akb-page) { padding-top: 18px; }
html.is-embedded body .page-hero { display: none; }
html.is-embedded body .page-hero:has(.hero-tabs) { display: block; padding: 0; margin: 0 0 18px; }
html.is-embedded body .page-hero .page-hero-top { display: none; }
html.is-embedded body .page-hero .hero-tabs { margin: 0; }

/* Tactile, restrained controls */
html[data-theme] body[data-page] :is(.btn,.iconbtn,.btn-act-action,.btn-sub-action,.btn-fleet-cmd,.btn-act-ao,.act-btn,.btn-cross-link,.f-reset,.btn-exchange,.btn-mega-speak) { min-height: var(--control-h); display: inline-flex; align-items: center; justify-content: center; gap: 7px; max-width: 100%; padding: 9px 15px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--card); color: var(--text-soft); font-size: 12px; font-weight: 550; line-height: 1.35; text-decoration: none; box-shadow: var(--control-shadow); cursor: pointer; transition: background var(--motion),border-color var(--motion),box-shadow var(--motion),transform var(--motion); }
html[data-theme] body[data-page] :is(.btn,.iconbtn,.btn-act-action,.btn-sub-action,.btn-fleet-cmd,.btn-act-ao,.act-btn,.btn-cross-link,.f-reset):hover { color: var(--text); background: var(--surface-hover); border-color: var(--border-strong); transform: none; box-shadow: var(--control-shadow); }
html[data-theme] body[data-page] :is(.btn-primary,.btn-dark,.btn-exchange,.btn-mega-speak), html[data-theme] body[data-page] .page-hero :is(.btn-primary,.btn-dark) { background: var(--accent); border-color: var(--accent); color: var(--accent-text); box-shadow: 0 1px 3px #00000014; }
html[data-theme] body[data-page] :is(.btn-primary,.btn-dark,.btn-exchange,.btn-mega-speak):hover { background: var(--accent-h); border-color: var(--accent-h); color: var(--accent-text); }
html[data-theme] body[data-page] .btn-danger, html[data-theme] body[data-page] .btn.danger { background: var(--danger-soft); border-color: var(--danger-border); color: var(--danger); }
html[data-theme] body[data-page] .btn-ok { background: var(--ok-soft); border-color: var(--ok-border); color: var(--ok); }
html[data-theme] body[data-page] .btn-warn { background: var(--warn-soft); border-color: var(--warn-border); color: var(--warn); }
html[data-theme] body[data-page] .btn-ghost { background: transparent; box-shadow: none; }
html[data-theme] body[data-page] :is(.btn-sm,.btn-xs,.btn-act-action,.btn-sub-action,.btn-act-ao,.act-btn,.btn-cross-link,.iconbtn) { min-height: 32px; padding: 6px 10px; font-size: 11px; border-radius: 8px; }
html[data-theme] body[data-page] .iconbtn { width: 32px; height: 32px; padding: 0; }
html[data-theme] body[data-page] button:active:not(:disabled), html[data-theme] body[data-page] a.btn:active { transform: scale(.98); }
html[data-theme] body[data-page] :is(button,input,textarea,select):disabled { opacity: .48; cursor: not-allowed; box-shadow: none; transform: none; }
html[data-theme] body[data-page] :is(.btn,.btn-fleet-cmd,.booking-act-btn) svg { flex: 0 0 auto; color: currentColor; }
html[data-theme] body[data-page] :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]),select,textarea,.inp) { min-height: var(--control-h); border: 1px solid var(--border); border-radius: var(--radius-sm); background-color: var(--card); color: var(--text); font-size: 13px; font-weight: 400; line-height: 1.4; box-shadow: inset 0 1px 2px #00000003; transition: border-color var(--motion),box-shadow var(--motion),background var(--motion); }
html[data-theme] body[data-page] :is(input,textarea)::placeholder { color: var(--muted-light); font-weight: 400; opacity: 1; }
html[data-theme] body[data-page] :is(input,select,textarea):focus { outline: none; border-color: var(--border-focus); box-shadow: var(--ring); }
html[data-theme] body[data-page] select { padding-right: 32px; }
html[data-theme] body[data-page] textarea { padding: 11px 13px; min-height: 82px; resize: vertical; }
html[data-theme] body[data-page] :is(input[type="checkbox"],input[type="radio"]) { accent-color: var(--info); width: 16px; height: 16px; flex: none; }
html[data-theme] body[data-page] :is(.field-label,.form-label,.lbl,.act-field-label,.input-box-label,.f-field label,.inp-field label,.fl label,.form-group > label) { font-size: 11px; font-weight: 600; color: var(--text-soft); text-transform: none; letter-spacing: 0; }
html[data-theme] body[data-page] :is(.field-hint,.f-hint,.note,.form-subtitle,.filter-sub,.desc) { color: var(--muted); }
html[data-theme] body[data-page] :is(.seg-control,.bt-seg-control,.mode-switch) { background: var(--surface-2); padding: 3px; gap: 3px; border: 1px solid var(--border); border-radius: 10px; overflow: hidden; }
html[data-theme] body[data-page] :is(.seg-btn,.bt-seg-btn) { border: 0; border-radius: 7px; background: transparent; color: var(--muted); font-size: 12px; font-weight: 500; min-height: 35px; padding: 8px 12px; }
html[data-theme] body[data-page] :is(.seg-btn,.bt-seg-btn).active { background: var(--card); color: var(--text); box-shadow: 0 1px 4px #0002; }

/* Native selects retain values and form semantics; the menu is portalled. */
.searchable-select { position: relative; display: inline-block; min-width: 0; width: 100%; vertical-align: middle; }
.searchable-select__native { position: absolute !important; width: 1px !important; min-width: 0 !important; min-height: 0 !important; height: 1px !important; opacity: 0 !important; pointer-events: none !important; padding: 0 !important; border: 0 !important; }
.searchable-select__trigger { width: 100%; min-width: 0; min-height: var(--control-h); display: flex; align-items: center; gap: 10px; padding: 9px 12px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--card); color: var(--text); font: inherit; font-size: 13px; text-align: left; cursor: pointer; box-shadow: var(--control-shadow); transition: border-color var(--motion),box-shadow var(--motion); }
.searchable-select__trigger:hover { border-color: var(--border-strong); }
.searchable-select.is-open .searchable-select__trigger { border-color: var(--border-focus); box-shadow: var(--ring); }
.searchable-select__value { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.searchable-select__chevron { width: 6px; height: 6px; border: solid var(--muted); border-width: 0 1.5px 1.5px 0; transform: rotate(45deg) translateY(-2px); flex: none; }
.searchable-select__menu { position: fixed; z-index: 20000; display: flex; flex-direction: column; padding: 6px; border: 1px solid var(--border-strong); border-radius: 13px; background: var(--glass); color: var(--text); box-shadow: var(--shadow-lg); backdrop-filter: blur(30px) saturate(1.4); animation: menu-arrive .13s ease-out; }
.searchable-select__menu[hidden] { display: none; }
html[data-theme] body[data-page] .searchable-select__search { flex: none; margin: 2px 2px 5px; width: calc(100% - 4px); min-height: 34px; height: 34px; background: var(--surface-2); border-color: transparent; padding: 7px 10px; font-size: 12px; }
.searchable-select__list { overflow: auto; min-height: 0; flex: 1; overscroll-behavior: contain; }
.searchable-select__option { width: 100%; padding: 9px 29px 9px 10px; position: relative; border: 0; border-radius: 7px; background: transparent; color: var(--text-soft); font: inherit; font-size: 12px; line-height: 1.45; text-align: left; cursor: pointer; overflow-wrap: anywhere; }
.searchable-select__option:hover,.searchable-select__option.is-highlighted { background: var(--surface-2); color: var(--text); }
.searchable-select__option[aria-selected="true"] { color: var(--info); background: var(--info-soft); font-weight: 600; }
.searchable-select__option[aria-selected="true"]::after { content: '✓'; position: absolute; right: 11px; top: 9px; }
.searchable-select__group { padding: 10px 10px 5px; color: var(--muted); font-size: 10px; font-weight: 600; }
.searchable-select__empty { padding: 20px 12px; color: var(--muted); font-size: 12px; text-align: center; }
:is(.filter-bar,.f-row,.filter-row,.stock-head-act) > .searchable-select { width: auto; flex: 1 1 180px; max-width: 340px; }
.auto-filters > .searchable-select { width: auto; flex: 1 1 180px; }
.fines-bar > .searchable-select { width: auto; flex: 0 1 200px; }
html[data-theme] body[data-page] .f-search input { padding-left: 36px; }
html[data-theme] body[data-page] :is(.btn-sub-action,.ready-pick) { background: var(--card) !important; color: var(--text-soft) !important; border-color: var(--border) !important; }
html[data-theme] body[data-page] :is(.btn-sub-action,.ready-pick):hover { background: var(--surface-hover) !important; }
html[data-theme] body[data-page] #reasons-picker-list { background: var(--bg-subtle) !important; border-color: var(--border) !important; }
html[data-theme] body[data-page] .form-type-badge { background: var(--info-soft); color: var(--info); border-color: var(--info-border); }
html[data-theme] body[data-page] .qr-security-mark { background: var(--ok-soft); color: var(--ok); }
html[data-theme] body[data-page="battery-swap"] .step { background: var(--info-soft); color: var(--info); }
html[data-theme] body[data-page] .fbadge { background: var(--info-soft); color: var(--info); }

/* Surfaces across every tool */
html[data-theme] body[data-page] :is(.card,.panel,.box-section,.form-card,.filter-card,.table-card,.fcard,.f-card,.stat-card,.kpi-card,.metric-card,.sensor-card,.hero-card,.stock-bar,.auto-bar,.ao-card,.ao-table-box,.scanner-card,.history-card,.bike-info-card,.fleet-section,.repairs-section,.repairs-card,.ratio-card,.fleet-kpi-card,.repairs-kpi-card,.pool-total-box,.mega-card,.fine-card,.form-wrap,.qr-form,.qr-preview,.global-filter,.timeline-card) { background: var(--card); color: var(--text); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); }
html[data-theme] body[data-page] :is(.filter-bar,.fcard,.f-card,.filter-card,.global-filter) { padding: 16px 18px; gap: 10px; }
html[data-theme] body[data-page] :is(.tbl-scroll,.tbl-wrap,.data-table-wrap,.act-table-wrap,.table-wrap,.ao-table-wrap) { background: var(--card); color: var(--text); border-color: var(--border); border-radius: 14px; box-shadow: none; }
html[data-theme] body[data-page] table { border-spacing: 0; border-collapse: separate; background: var(--card); color: var(--text); font-size: 12px; }
html[data-theme] body[data-page] table thead th { background: var(--bg-subtle); color: var(--muted); font-size: 10px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; padding: 12px 14px; border-bottom: 1px solid var(--border); }
html[data-theme] body[data-page] table tbody td { background: transparent; color: var(--text-soft); padding: 13px 14px; border-bottom: 1px solid var(--border); vertical-align: middle; }
html[data-theme] body[data-page] table tbody tr { background: var(--card); }
html[data-theme] body[data-page] table tbody tr:hover,html[data-theme] body[data-page] table tbody tr:hover td { background: var(--bg-subtle); }
html[data-theme] body[data-page] table tbody tr:last-child td { border-bottom: 0; }
html[data-theme] body[data-page] table :is(strong,b) { color: var(--text); font-weight: 650; }
html[data-theme] body[data-page] table .cell-actions { display: flex; gap: 5px; align-items: center; flex-wrap: wrap; }
html[data-theme] body[data-page] :is(.stat-label,.kpi-label,.acts-metric-label,.ao-stat-lbl) { font-size: 10px; color: var(--muted); font-weight: 600; letter-spacing: .06em; }
html[data-theme] body[data-page] :is(.stat-val,.kpi-val,.acts-metric-value,.fleet-kpi-num,.repairs-kpi-num,.ao-stat-val,.pool-total-num) { font-size: 32px; line-height: 1.15; font-weight: 650; letter-spacing: -.055em; }
html[data-theme] body[data-page] :is(.stats-row,.kpi-row,.acts-overview) { gap: 12px; }
html[data-theme] body[data-page] :is(.stat-card,.kpi-card,.acts-metric) { padding: 18px 20px; border-radius: 14px; background: var(--card); border: 1px solid var(--border); }
html[data-theme] body[data-page] .badge,html[data-theme] body[data-page] .pill { font-size: 10px; font-weight: 550; border-radius: 6px; padding: 4px 7px; line-height: 1.2; }
html[data-theme] body[data-page] :is(.badge-status,.status-pill,.coop-pill,.cc-status,.act-kind-pill) { font-size: 10px; font-weight: 600; padding: 4px 8px; border-radius: 6px; }
html[data-theme] body[data-page] :is(.empty-state,.empty-fleet-state,.fines-empty,.state,.empty) { color: var(--muted); }
html[data-theme] body[data-page] .empty-fleet-state { border: 1px dashed var(--border-strong); background: var(--card); padding: clamp(36px,7vh,80px) 24px; min-height: 300px; border-radius: 18px; }
html[data-theme] body[data-page] .empty-fleet-state h2 { font-size: 23px; color: var(--text); }
html[data-theme] body[data-page] :is(.empty-ico,.empty-state-icon) { background: var(--surface-2); color: var(--muted); width: 64px; height: 64px; border-radius: 20px; }

/* Dialogs: fixed chrome, scrollable content, compact actions. */
html[data-theme] body[data-page] :is(.modal-overlay,.modal-back,.modal-backdrop,.outbox-modal,.print-modal) { background: #17171b66; backdrop-filter: blur(10px) saturate(.8); }
html[data-theme] body[data-page] :is(.modal-card,.modal-box,.modal-card-dialog,.fix-dialog,.outbox-editor,.modal-back .modal,.pwa-modal-card) { background: var(--card); color: var(--text); border: 1px solid var(--border); border-radius: 20px; box-shadow: var(--shadow-lg); }
html[data-theme] body[data-page] :is(.modal-header,.modal-dialog-header,.modal-dialog-footer,.modal-footer,.fix-dialog-head,.fix-dialog-foot,.m-head) { background: var(--card); color: var(--text); border-color: var(--border); }
html[data-theme] body[data-page] :is(.modal-header,.modal-dialog-header,.fix-dialog-head) { padding: 22px 26px 18px; }
html[data-theme] body[data-page] :is(.modal-title,.modal-dialog-header h2,.fix-dialog-head h2,.m-title) { color: var(--text); font-size: 22px; font-weight: 650; letter-spacing: -.035em; }
html[data-theme] body[data-page] :is(.modal-close,.m-close,.fix-close,.issue-close) { display: inline-grid; place-items: center; width: 30px; height: 30px; flex: none; padding: 0; border: 0; border-radius: 50%; background: var(--surface-2); color: var(--muted); font-size: 21px; cursor: pointer; }
html[data-theme] body[data-page] :is(.modal-close,.m-close,.fix-close,.issue-close):hover { color: var(--text); }
html[data-theme] body[data-page] :is(.modal-dialog-body,.fix-dialog-body) { background: var(--bg-subtle); padding: 20px 26px; }
html[data-theme] body[data-page] :is(.modal-footer,.modal-dialog-footer,.fix-dialog-foot) { padding: 16px 26px; border-top: 1px solid var(--border); }
html[data-theme] body[data-page] :is(.act-box,.mfl-section,.fix-summary,.fix-lease-card,.cc-section,.cc-identity,.courier-issue-card,.ready-bikes-box,.act-id-container,.bt-seg,.cc-overview) { background: var(--card); border-color: var(--border); color: var(--text); box-shadow: none; }
html[data-theme] body[data-page] :is(.act-box-header,.act-box-footer,.courier-card-head) { border-color: var(--border); background: transparent; }
html[data-theme] body[data-page] :is(.act-box-title,.courier-name-line,.courier-phone-text) { color: var(--text); }
html[data-theme] body[data-page] :is(.act-static-val,.act-static-val-pill,.mfl-reason-row,.radio-option-card,.decline-option,.fix-summary-item) { background: var(--bg-subtle); border-color: var(--border); color: var(--text-soft); }
html[data-theme] body[data-page] :is(.quick-chip,.ready-bike-chip,.fchip,.chip,.xlink,.bike-plate-badge,.bike-num-badge,.plate-badge,.ao-bike-chip) { border-color: var(--border); background: var(--bg-subtle); color: var(--text-soft); box-shadow: none; border-radius: 7px; }
html[data-theme] body[data-page] :is(.ready-bike-chip.selected,.mfl-reason-row.selected) { border-color: var(--info-border); background: var(--info-soft); color: var(--info); }
html[data-theme] body[data-page] :is(.issue-flow,.payment-flow) {
  --issue-ink: var(--text); --issue-muted: var(--muted); --issue-canvas: var(--bg-subtle);
  --issue-surface: var(--card); --issue-line: var(--border); --issue-blue: var(--info);
  --issue-blue-soft: var(--info-soft); --issue-violet-soft: var(--cat-purple-soft);
  --issue-green: var(--ok); --issue-green-soft: var(--ok-soft); --issue-field: var(--bg-subtle); --issue-shadow: var(--shadow-lg);
}
html[data-theme] body[data-page] .issue-flow .issue-dialog { border-radius: 22px; border-color: var(--border); }
html[data-theme] body[data-page] .issue-header { padding: 22px 28px 16px; }
html[data-theme] body[data-page] .issue-header h2 { font-weight: 650; font-size: 27px; }
html[data-theme] body[data-page] .issue-steps { padding: 12px 28px 17px; gap: 12px; }
html[data-theme] body[data-page] .issue-steps small { font-size: 10px; }
html[data-theme] body[data-page] .issue-columns { padding: 23px 26px; gap: 22px; }
html[data-theme] body[data-page] .issue-footer { background: var(--card); border-color: var(--border); }
html[data-theme] body[data-page] .issue-flow :is(.issue-primary,.issue-pay-button),html[data-theme] body[data-page] #modal-finish-lease .btn-primary,html[data-theme] body[data-page] #modal-lease .cc-button-primary { background: var(--accent) !important; border-color: var(--accent) !important; color: var(--accent-text) !important; box-shadow: var(--control-shadow); }
html[data-theme] body[data-page] #modal-finish-lease .modal-dialog-header h2 { font-size: 26px !important; }
html[data-theme] body[data-page] .mfl-progress-step:first-child { color: var(--info); background: var(--info-soft); }
html[data-theme] body[data-page] #modal-lease .cc-button-secondary { background: var(--bg-subtle); color: var(--text-soft); }
html[data-theme] body[data-page] #tab-bookings .booking-actions { width: 184px; min-width: 168px; }
@media (min-width: 761px) {
  html[data-theme] body[data-page] #tab-bookings .data-table td.cell-actions { display: table-cell; }
}
html[data-theme] body[data-page] #tab-bookings .booking-act-btn { border-radius: 8px; padding: 8px 10px; min-height: 34px; font-size: 11px; font-weight: 550; }
html[data-theme] body[data-page] #tab-bookings .booking-act-btn.booking-act-issue { background: var(--accent); border-color: var(--accent); color: var(--accent-text); box-shadow: var(--control-shadow); }
html[data-theme] body[data-page] #tab-bookings .booking-act-btn.booking-act-issue:hover { background: var(--accent-h); }
html[data-theme] body[data-page] .booking-act-btn svg { color: currentColor; }

/* Overview, with the same visual vocabulary as the operational screens. */
html[data-theme] body[data-page] .hub { gap: 20px; padding-bottom: 40px; }
html[data-theme] body[data-page] .hub .page-hero { background: linear-gradient(115deg,var(--card) 40%,var(--tone-blue-soft)); padding: 32px; border: 1px solid var(--border); border-radius: 20px; margin: 0; }
html[data-theme] body[data-page] .hub .page-hero-title { font-size: clamp(28px,3vw,39px); }
html[data-theme] body[data-page] .hub .page-hero-aside { max-width: 235px; }
html[data-theme] body[data-page] .hub .page-hero-aside .btn { width: 100%; }
html[data-theme] body[data-page] .hub .searchbar { max-width: 480px; min-height: 42px; padding: 0 14px; background: var(--card); border: 1px solid var(--border); border-radius: 11px; box-shadow: none; }
html[data-theme] body[data-page] .hub .searchbar input { border: 0; background: transparent; box-shadow: none; }
html[data-theme] body[data-page] .hub .grid { grid-template-columns: repeat(auto-fill,minmax(235px,1fr)); gap: 14px; }
html[data-theme] body[data-page] .hub .tool { border-radius: 16px; padding: 23px; min-height: 202px; gap: 10px; }
html[data-theme] body[data-page] .hub .tool:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
html[data-theme] body[data-page] .hub .tool::after { display: none; }
html[data-theme] body[data-page] .hub .tool .ico { width: 39px; height: 39px; border: 0; border-radius: 11px; }
html[data-theme] body[data-page] .hub .tool h3 { font-size: 16px; font-weight: 650; letter-spacing: -.025em; }
html[data-theme] body[data-page] .hub .tool p { font-size: 12px; line-height: 1.55; color: var(--muted); }
html[data-theme] body[data-page] .hub .tool .open { font-size: 11px; font-weight: 550; color: var(--info); }

/* Individual tools — keep category colours only where they communicate data. */
html[data-theme] body[data-page] .rentals-wrap .stats-row .stat-card { background: var(--card); border-color: var(--border); }
html[data-theme] body[data-page] .rentals-wrap .stat-val { font-size: 31px; }
html[data-theme] body[data-page] :is(.hubs-grid,.models-grid) { gap: 14px; }
html[data-theme] body[data-page] :is(.hub-card,.model-card,.coop-card,.preset) { background: var(--card); border: 1px solid var(--border); border-radius: 14px; box-shadow: var(--shadow); }
html[data-theme] body[data-page] :is(.stock-auto-card,.auto-toggle,.spk-box,.cap-group,.user-btn,.tariff-guide-card,.tariff-check-card,.input-box,.qr-section,.spk-check,.p-dev-check,.q-dev-check) { background: var(--bg-subtle); border-color: var(--border); color: var(--text-soft); }
html[data-theme] body[data-page] :is(.stock-auto-card.on,.auto-toggle.on) { background: var(--ok-soft); border-color: var(--ok-border); }
html[data-theme] body[data-page] .stock-ready-meta { background: var(--bg-subtle); color: var(--text-soft); border-color: var(--border); }
html[data-theme] body[data-page] .stock-auto-title { font-size: 14px; font-weight: 650; }
html[data-theme] body[data-page] .stock-title { font-size: 16px; font-weight: 650; }
html[data-theme] body[data-page] .coop-card { padding: 18px 20px; }
html[data-theme] body[data-page] .coop-circle-btn { background: var(--bg-subtle); border-color: var(--border); color: var(--text-soft); border-radius: 10px; }
html[data-theme] body[data-page] .coop-circle-btn.btn-approve { background: var(--ok-soft); color: var(--ok); border-color: var(--ok-border); }
html[data-theme] body[data-page] .fine-card .fc-amt-total { font-size: 25px; font-weight: 650; letter-spacing: -.035em; }
html[data-theme] body[data-page] .fine-card :is(.fc-footer,.fc-top) { border-color: var(--border); }
html[data-theme] body[data-page] .acts-container .form-wrap { padding: 25px; }
html[data-theme] body[data-page] .acts-container .btn-primary { background: var(--accent) !important; border-color: var(--accent) !important; color: var(--accent-text) !important; box-shadow: var(--control-shadow); }
html[data-theme] body[data-page] .acts-container .btn-ghost { background: var(--card) !important; border-color: var(--border) !important; color: var(--text-soft); }
html[data-theme] body[data-page] .acts-container .btn-ghost:hover { background: var(--surface-hover) !important; border-color: var(--border-strong) !important; }
html[data-theme] body[data-page] .acts-metric strong { font-size: 32px; margin-top: 8px; line-height: 1.1; font-weight: 650; }
html[data-theme] body[data-page] .acts-metric small { margin-top: 8px; color: var(--muted); }
html[data-theme] body[data-page] .acts-metric:first-child { background: var(--info-soft); border-color: var(--info-border); box-shadow: none; }
html[data-theme] body[data-page] .acts-metric:first-child :is(span,small) { color: var(--info); }
html[data-theme] body[data-page] .acts-metric:first-child strong { color: var(--text); }
html[data-theme] body[data-page] .acts-container :is(.form-top-title,.filter-title) { font-weight: 650; }
html[data-theme] body[data-page] .journal-grid { gap: 18px; }
html[data-theme] body[data-page] .acts-container .outbox-row { border-color: var(--border); }
html[data-theme] body[data-page] .acts-container :is(.outbox-head,.outbox-meta,.table-meta-text) { color: var(--muted); }
html[data-theme] body[data-page] .analytics-wrap :is(.fleet-section,.repairs-section) { padding: 24px; }
html[data-theme] body[data-page] .analytics-wrap :is(.fleet-title,.repairs-title) { font-size: 20px; font-weight: 650; }
html[data-theme] body[data-page] .analytics-wrap :is(.fleet-kpi-card,.repairs-kpi-card,.ratio-card) { box-shadow: none; }
html[data-theme] body[data-page] .analytics-wrap .ready-box-card { padding: 15px 18px; background: var(--bg-subtle); border-radius: 12px; }
html[data-theme] body[data-page] .analytics-wrap .ready-box-values { gap: 12px; }
html[data-theme] body[data-page] .analytics-wrap .ready-box-value { font-size: 13px; }
html[data-theme] body[data-page] .analytics-wrap .rh-list { max-height: 220px; overflow: auto; }
html[data-theme] body[data-page] .analytics-wrap .rh-list td { padding: 8px 12px; font-size: 11px; }
html[data-theme] body[data-page] .analytics-wrap .rh-list .btn { min-height: 26px; padding: 4px 8px; font-size: 10px; }
html[data-theme] body[data-page] :is(.fleet-kpi-card.ready,.status-ready) { border-color: var(--ok-border); }
html[data-theme] body[data-page] :is(.fleet-kpi-card.broken,.status-broken) { border-color: var(--warn-border); }
html[data-theme] body[data-page] .adm .hero-tabs { flex-wrap: wrap; overflow: visible; }
html[data-theme] body[data-page] .adm .hero-tabs button { flex: 0 1 auto; font-size: 11px; min-height: 34px; }
html[data-theme] body[data-page] .adm :is(.form-card,.box-section) { padding: 20px; }
html[data-theme] body[data-page] .access-layout { gap: 18px; }
html[data-theme] body[data-page] .user-btn.active { background: var(--info-soft); border-color: var(--info-border); color: var(--info); }
html[data-theme] body[data-page] .caps-grid { gap: 10px; }
html[data-theme] body[data-page] .cap-group { border-radius: 12px; padding: 15px; }
html[data-theme] body[data-page] :is(.cap-group-title,.cap-check) { color: var(--text-soft); }
html[data-theme] body[data-page] .profile .side,html[data-theme] body[data-page] .side { background: var(--card); border-color: var(--border); }
html[data-theme] body[data-page] .qr-code-wrap { background: #fff; border: 1px solid var(--border); border-radius: 16px; }
html[data-theme] body[data-page] .qr-summary-row { border-color: var(--border); color: var(--text-soft); }
html[data-theme] body[data-page] .qr-standard { background: var(--info-soft); color: var(--info); border-color: var(--info-border); }
html[data-theme] body[data-page] .callbox { background: var(--info-soft); border-color: var(--info-border); color: var(--text); border-radius: 17px; }
html[data-theme] body[data-page] .callbox.serving { background: var(--ok-soft); border-color: var(--ok-border); }
html[data-theme] body[data-page] .callbox .big { color: var(--text); font-size: 60px; font-weight: 650; letter-spacing: -.05em; }
html[data-theme] body[data-page] .inv .banner { background: var(--card); border-color: var(--border); color: var(--text); border-radius: 17px; }
html[data-theme] body[data-page] .inv .loc-list button { border-radius: 10px; border-color: var(--border); background: var(--card); color: var(--text); }
html[data-theme] body[data-page] .inv .loc-list button:hover { background: var(--info-soft); border-color: var(--info-border); }
html[data-theme] body[data-page] .input-box:focus-within { border-color: var(--info-border); background: var(--info-soft); }
html[data-theme] body[data-page] :is(.scanner-card,.history-card) { padding: 24px; }
html[data-theme] body[data-page] .akb-page .barcode-input-wrap input { font-family: var(--font-mono); letter-spacing: .01em; }
html[data-theme] body[data-page] :is(.bats-group,.bike-details-grid,.detail-item,.mega-card .foot,.preset .meta) { border-color: var(--border); color: var(--text-soft); }
html[data-theme] body[data-page] :is(.token-box,.token-box .t,code,pre) { background: var(--bg-subtle); color: var(--text-soft); border-color: var(--border); }
html[data-theme] body[data-page] .toast { background: var(--text); color: var(--card); border-radius: 12px; padding: 12px 18px; font-size: 12px; box-shadow: var(--shadow-lg); }

.pwa-update-notice { position: fixed; z-index: 30000; right: 20px; bottom: 20px; display: flex; align-items: center; gap: 14px; padding: 12px 14px; background: var(--card); color: var(--text); border: 1px solid var(--border); border-radius: 14px; box-shadow: var(--shadow-md); font-weight: 700; }
.pwa-update-notice button { background: var(--accent); color: var(--accent-text); border: 0; border-radius: 9px; padding: 9px 12px; font: inherit; cursor: pointer; }
/* Sign-in and offline are part of the product too. */
html[data-theme] body[data-page] .auth-side { background: linear-gradient(150deg,#202126,#3e414a); color: #f5f5f7; }
html[data-theme] body[data-page] .auth-side h1 { color: #fff; letter-spacing: -.055em; font-weight: 650; }
html[data-theme] body[data-page] .auth-side h2 { color: #fff; }
html[data-theme] body[data-page] .auth-side h2 em { color: #d7dae3; }
html[data-theme] body[data-page] .auth-main { background: var(--bg); }
html[data-theme] body[data-page] .auth-card { background: var(--card); border: 1px solid var(--border); border-radius: 22px; padding: 34px; box-shadow: var(--shadow-md); }
html[data-theme] body[data-page] .auth-card h1 { font-size: 27px; font-weight: 650; color: var(--text); }
html[data-theme] body[data-page] .auth-card .inp { border-radius: 10px; background: var(--bg-subtle); border-color: var(--border); color: var(--text); }
html[data-theme] body[data-page] .theme-toggle--login { position: fixed; top: 20px; right: 20px; z-index: 10; }
body[data-page="offline"] .card { background: var(--card); border-color: var(--border); padding: 36px; border-radius: 24px; box-shadow: var(--shadow-md); }
body[data-page="offline"] :is(.status-badge,.logo-wrap) { background: var(--surface-2); color: var(--text-soft); border-color: var(--border); }
body[data-page="offline"] .btn-reload { background: var(--accent); color: var(--accent-text); border-radius: 10px; }
body[data-page="offline"] :is(p,.footer-hint) { color: var(--muted); }
html[data-theme] body[data-page] .issue-flow #mir-btn-close { background: var(--accent) !important; border-color: var(--accent) !important; color: var(--accent-text) !important; }
@keyframes menu-arrive { from { opacity: 0; translate: 0 -4px; } to { opacity: 1; translate: 0 0; } }

@media (min-width: 1600px) { :root { --sidebar-width: 238px; } }
@media (min-width: 961px) {
  .workspace .topbar .nav-toggle { display: none; }
  .workspace .nav-drawer-head { display: none; }
}
@media (max-width: 1200px) and (min-width: 961px) {
  :root { --sidebar-width: 202px; }
  .workspace-link { font-size: 11px; padding-left: 9px; }
  html[data-theme] body[data-page] .disp-right { flex: 1 1 100%; }
  html[data-theme] body[data-page] .disp-search-form { max-width: 430px; }
  html[data-theme] body[data-page] .topbar .nav > .btn { font-size: 10px; padding: 0 7px; }
}
@media (max-width: 960px) {
  body.workspace { padding-left: 0; }
  .workspace-sidebar { width: 260px; transform: translateX(-100%); visibility: hidden; transition: transform .24s ease,visibility .24s; z-index: 1100; }
  .nav-open .workspace-sidebar { transform: translateX(0); visibility: visible; }
  .workspace-close { display: grid; place-items: center; position: absolute; right: 12px; top: 24px; width: 30px; height: 30px; padding: 0; background: var(--surface-2); color: var(--text-soft); border: 0; border-radius: 8px; }
  .workspace .topbar .nav { display: none; }
  .workspace .topbar .nav-toggle { display: inline-grid; place-items: center; width: 32px; height: 32px; background: var(--card); border: 1px solid var(--border); border-radius: 9px; color: var(--text-soft); }
  .workspace .topbar .spacer { display: block; flex: 1; }
  .workspace .nav-backdrop { z-index: 1099; }
  .workspace.nav-open .nav-backdrop { display: block; opacity: 1; pointer-events: auto; visibility: visible; background: #0005; backdrop-filter: blur(4px); }
  html[data-theme] body[data-page] .topbar .inner { min-height: 58px; padding: calc(10px + env(safe-area-inset-top, 0px)) 18px 10px; }
  .workspace > :is(main.wrap,main.wrap-wide,.wrap,.wrap-wide) { padding-left: 18px; padding-right: 18px; }
  html[data-theme] body[data-page] .disp-bar.page-hero { padding: 10px 16px; }
  html[data-theme] body[data-page] .disp-bar.page-hero { grid-template-columns: minmax(0,1fr); }
  html[data-theme] body[data-page] .disp-right { flex: 1 1 100%; }
  html[data-theme] body[data-page] .disp-search-form { max-width: none; }
}
@media (max-width: 640px) {
  html[data-theme] body[data-page] .topbar .inner { min-height: 56px; padding: calc(10px + env(safe-area-inset-top, 0px)) 14px 10px; }
  html[data-theme] body[data-page] .topbar .page-title .tb-title { font-size: 16px; }
  html[data-theme] body[data-page] .topbar .page-title .kicker { font-size: 8px; }
  .workspace > :is(main.wrap,main.wrap-wide,.wrap,.wrap-wide) { padding-left: 14px; padding-right: 14px; }
  html[data-theme] body[data-page] .page-hero { padding-top: 3px; padding-bottom: 10px; margin-bottom: 18px; }
  html[data-theme] body[data-page] .page-hero-top { align-items: flex-start; gap: 14px; }
  html[data-theme] body[data-page] .page-hero-title { font-size: 27px; }
  html[data-theme] body[data-page] .page-hero-sub { font-size: 12px; }
  html[data-theme] body[data-page] .hero-tabs { margin-top: 16px; }
  html[data-theme] body[data-page] .hub .page-hero { padding: 23px; }
  html[data-theme] body[data-page] .hub .page-hero-aside { max-width: none; }
  html[data-theme] body[data-page] .hub .grid { grid-template-columns: 1fr; }
  html[data-theme] body[data-page] .hub .tool { padding: 20px; min-height: 178px; }
  html[data-theme] body[data-page] :is(.filter-bar,.fcard,.f-card,.global-filter) { padding: 14px; }
  :is(.filter-bar,.f-row,.filter-row,.stock-head-act) > .searchable-select { flex: 1 1 100%; max-width: none; width: 100%; }
  html[data-theme] body[data-page] :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea) { font-size: 16px; }
  .searchable-select__trigger { min-height: 42px; }
  html[data-theme] body[data-page] .searchable-select__search { font-size: 16px; height: 40px; }
  .searchable-select__option { padding-top: 12px; padding-bottom: 12px; }
  html[data-theme] body[data-page] :is(.btn,.btn-fleet-cmd) { min-height: 40px; }
  html[data-theme] body[data-page] :is(.stat-card,.kpi-card,.acts-metric) { padding: 15px; }
  html[data-theme] body[data-page] :is(.stat-val,.kpi-val,.fleet-kpi-num) { font-size: 28px; }
  html[data-theme] body[data-page] :is(.analytics-wrap .fleet-section,.analytics-wrap .repairs-section,.scanner-card,.history-card) { padding: 17px; }
  html[data-theme] body[data-page] :is(.modal-header,.modal-dialog-header,.fix-dialog-head,.modal-footer,.modal-dialog-footer,.fix-dialog-foot) { padding: 17px 18px; }
  html[data-theme] body[data-page] :is(.modal-dialog-body,.fix-dialog-body) { padding: 16px 18px; }
  html[data-theme] body[data-page] .issue-header { padding: 18px; }
  html[data-theme] body[data-page] .issue-header h2 { font-size: 23px; }
  html[data-theme] body[data-page] .issue-steps { padding: 10px 18px 14px; gap: 7px; }
  html[data-theme] body[data-page] .issue-steps small { display: none; }
  html[data-theme] body[data-page] .issue-columns { padding: 16px; gap: 18px; }
  html[data-theme] body[data-page] .acts-container .form-wrap { padding: 17px; }
  html[data-theme] body[data-page] table.tbl-cards tbody td { padding: 7px 0; background: transparent; }
  html[data-theme] body[data-page] table.tbl-cards tbody tr { border-color: var(--border); border-radius: 13px; background: var(--card); }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
/* Aurora workspace — a shared finish across every operational page.
   No animated gradients or infinite ambient effects. Motion is interaction-only;
   layouts, form semantics, permissions and payment screens are unchanged. */
html[data-theme] body[data-page] {
  background-image: var(--canvas-art);
  background-repeat: no-repeat;
  background-size: 100% 680px;
  background-attachment: scroll;
  font-size: 14px;
  letter-spacing: -.014em;
}
.workspace-sidebar { background: var(--sidebar-bg); backdrop-filter: blur(18px) saturate(1.2); }
.workspace-brand { min-height: 90px; gap: 12px; padding: 22px; font-size: 20px; }
.workspace-brand small { font-size: 11px; margin-top: 3px; color: var(--muted); }
.workspace-sections { padding: 8px 13px 18px; }
.workspace-group + .workspace-group { margin-top: 20px; }
.workspace-group-title { font-size: 10.5px; letter-spacing: .02em; padding: 7px 11px; }
.workspace-link { --nav-tone: var(--info); min-height: 42px; padding: 10px 12px; margin: 3px 0; border-radius: 12px; font-size: 12px; font-weight: 550; transition: background var(--motion),color var(--motion); }
.workspace-link .ic { color: var(--nav-tone); padding: 1px; }
.workspace-link[href*="analytics"],.workspace-link[href*="bikebase"],.workspace-link[href*="selfie"] { --nav-tone: var(--cat-purple); }
.workspace-link[href*="rentals"],.workspace-link[href*="inventory"] { --nav-tone: var(--ok); }
.workspace-link[href*="cooperation"],.workspace-link[href*="fines"] { --nav-tone: var(--cat-orange); }
.workspace-link[href*="battery"],.workspace-link[href*="accounting"] { --nav-tone: var(--warn); }
.workspace-link.is-current { color: var(--info); background: var(--info-soft); box-shadow: inset 0 0 0 1px var(--info-border), 0 3px 8px #142e5305; }
.workspace-link.is-current .ic { color: var(--info); }
.workspace-account { margin: 0 13px 8px; padding: 12px 10px; border-radius: 13px; border: 1px solid var(--border); background: color-mix(in srgb,var(--card) 65%,transparent); }
.workspace-account strong { font-size: 12px; }
.workspace-account small { font-size: 10.5px; }
.workspace-avatar { background: var(--cat-purple-soft); color: var(--cat-purple); border: 1px solid var(--cat-purple-border); }
.workspace-logout { font-size: 11px; min-height: 30px; }
html[data-theme] body[data-page] .topbar { background: var(--glass); backdrop-filter: blur(16px) saturate(1.25); }
html[data-theme] body[data-page] .topbar .inner { min-height: 70px; padding-left: 30px; padding-right: 30px; }
html[data-theme] body[data-page] .topbar .page-title .tb-title { font-size: 20px; font-weight: 650; letter-spacing: -.04em; }
html[data-theme] body[data-page] .topbar .page-title .kicker { font-size: 9px; letter-spacing: .13em; color: var(--muted); }
html[data-theme] body[data-page] .topbar .nav > .btn { font-size: 11.5px; padding: 0 11px; min-height: 34px; }
.theme-toggle { width: 36px; height: 36px; border-radius: 12px; }
.workspace > :is(main.wrap,main.wrap-wide,.wrap,.wrap-wide) { max-width: 1800px; padding-left: 30px; padding-right: 30px; }
html[data-theme] body[data-page] .page-hero-title { font-size: clamp(28px,2.3vw,38px); letter-spacing: -.05em; }
html[data-theme] body[data-page] .page-hero-eyebrow { color: var(--info); letter-spacing: .13em; }
html[data-theme] body[data-page] :is(.hero-tabs,.tabs-bar) { background: color-mix(in srgb,var(--surface-2) 75%,var(--card)); border-radius: 14px; padding: 5px; gap: 4px; }
html[data-theme] body[data-page] :is(.hero-tabs,.tabs-bar) :is(button,a) { border-radius: 10px; min-height: 37px; font-size: 12px; }
html[data-theme] body[data-page] :is(.hero-tabs,.tabs-bar) :is(button,a):is(.active,.on,.sel,[aria-selected="true"]) { color: var(--info); box-shadow: var(--control-shadow); }
html[data-theme] body[data-page] .disp-bar.page-hero { padding: 12px 24px; background: var(--glass); grid-template-columns: minmax(0,1fr) 290px; gap: 14px; }
html[data-theme] body[data-page] .disp-bar .hero-tabs { padding: 4px; border-radius: 13px; background: var(--surface-2); }
html[data-theme] body[data-page] .disp-bar .hero-tabs .disp-tab { min-height: 37px; border-radius: 9px; padding: 8px 12px; font-size: 11.5px; }
html[data-theme] body[data-page] .disp-bar .hero-tabs .disp-tab.active { background: var(--card); color: var(--text); box-shadow: var(--control-shadow); }
html[data-theme] body[data-page] :is(.disp-viewport,.disp-frame) { background-color: var(--bg); }
html[data-theme] body[data-page] :is(.btn,.btn-fleet-cmd,.btn-exchange,.btn-mega-speak) { border-radius: 12px; font-size: 12.5px; font-weight: 600; min-height: 42px; letter-spacing: -.015em; padding: 10px 16px; }
html[data-theme] body[data-page] :is(.btn-sm,.btn-xs,.btn-act-action,.btn-cross-link,.iconbtn) { min-height: 33px; padding: 6px 10px; font-size: 11px; border-radius: 9px; }
html[data-theme] body[data-page] .iconbtn { padding: 0; width: 33px; height: 33px; }
html[data-theme] body[data-page] :is(.btn-primary,.btn-dark,.btn-exchange,.btn-mega-speak),
html[data-theme] body[data-page] :is(.page-hero,.acts-container) :is(.btn-primary,.btn-dark),
html[data-theme] body[data-page="fines"] .btn-primary,
html[data-theme] body[data-page] .issue-flow :is(.issue-primary,.issue-pay-button,#mir-btn-close),
html[data-theme] body[data-page] #modal-finish-lease .btn-primary,
html[data-theme] body[data-page] #modal-lease .cc-button-primary {
  background: var(--primary-fill) !important; color: var(--primary-text) !important; border-color: transparent !important; box-shadow: var(--primary-shadow);
}
html[data-theme] body[data-page] :is(.btn-primary,.btn-dark,.btn-exchange,.btn-mega-speak):hover:not(:disabled) { filter: brightness(1.03); color: var(--primary-text); }
html[data-theme] body[data-page] .btn-ghost:hover { background: var(--surface-hover); }
html[data-theme] body[data-page] :is(.btn,.btn-fleet-cmd,.booking-act-btn):active:not(:disabled) { transform: translateY(1px) scale(.985); }
html[data-theme] body[data-page] :is(input,textarea,.inp):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="range"]):not([type="file"]) { border-radius: 12px; background-color: var(--bg-subtle); box-shadow: inset 0 1px 2px #10294a04; }
.searchable-select__trigger { border-radius: 12px; padding: 10px 13px; background: var(--bg-subtle); font-weight: 500; box-shadow: var(--control-shadow); }
.searchable-select__menu { border-radius: 17px; padding: 7px; border-color: var(--border); backdrop-filter: blur(16px) saturate(1.25); }
.searchable-select__option { border-radius: 10px; padding: 10px 30px 10px 12px; font-size: 12.5px; }
.searchable-select__option[aria-selected="true"] { background: var(--info-soft); color: var(--info); }
.searchable-select__option[aria-selected="true"]::after { top: 10px; }
html[data-theme] body[data-page] .searchable-select__search { border-radius: 10px; }
html[data-theme] body[data-page] :is(.field-label,.form-label,.act-field-label,.inp-field label,.fl label) { font-size: 11.5px; font-weight: 600; }
html[data-theme] body[data-page] :is(.seg-control,.bt-seg-control) { border-radius: 12px; padding: 4px; }
html[data-theme] body[data-page] :is(.seg-btn,.bt-seg-btn) { border-radius: 9px; min-height: 36px; }
html[data-theme] body[data-page] :is(.seg-btn,.bt-seg-btn).active { background: var(--card); color: var(--info); box-shadow: var(--control-shadow); }
html[data-theme] body[data-page] :is(.card,.panel,.form-card,.filter-card,.table-card,.fcard,.f-card,.stat-card,.kpi-card,.metric-card,.sensor-card,.hero-card,.ratio-card,.stock-bar,.scanner-card,.history-card,.form-wrap,.coop-card,.fine-card,.hub-card,.model-card,.fleet-section,.repairs-section) { border-radius: 20px; box-shadow: var(--shadow); }
html[data-theme] body[data-page] :is(.filter-bar,.global-filter,.filter-card) { background: var(--card); border-color: var(--border); border-radius: 17px; padding: 16px 20px; }
html[data-theme] body[data-page] :is(.tbl-wrap,.data-table-wrap,.act-table-wrap,.table-wrap,.ao-table-wrap) { border-radius: 17px; box-shadow: var(--shadow-xs); }
html[data-theme] body[data-page] table { font-size: 12.5px; }
html[data-theme] body[data-page] table thead th { background: var(--bg-subtle); color: var(--muted); font-size: 10.5px; letter-spacing: .045em; padding: 13px 15px; font-weight: 600; }
html[data-theme] body[data-page] table tbody td { padding: 14px 15px; line-height: 1.5; }
html[data-theme] body[data-page] :is(.badge,.pill,.status-pill,.coop-pill,.cc-status,.act-kind-pill) { font-size: 10.5px; border-radius: 8px; padding: 5px 8px; }
html[data-theme] body[data-page] :is(.stat-card,.kpi-card,.acts-metric) { --metric-tone: var(--info); --metric-soft: var(--info-soft); background: linear-gradient(135deg,var(--card) 35%,var(--metric-soft)); border-radius: 18px; padding: 20px 22px; }
html[data-theme] body[data-page] :is(.stat-card,.kpi-card,.acts-metric):nth-child(2) { --metric-tone: var(--ok); --metric-soft: var(--ok-soft); }
html[data-theme] body[data-page] :is(.stat-card,.kpi-card,.acts-metric):nth-child(3) { --metric-tone: var(--cat-purple); --metric-soft: var(--cat-purple-soft); }
html[data-theme] body[data-page] :is(.stat-card,.kpi-card,.acts-metric):nth-child(4) { --metric-tone: var(--cat-orange); --metric-soft: var(--cat-orange-soft); }
html[data-theme] body[data-page] :is(.stat-val,.kpi-val,.acts-metric-value,.fleet-kpi-num,.repairs-kpi-num) { font-size: 34px; color: var(--metric-tone,var(--text)); font-weight: 650; letter-spacing: -.055em; }
html[data-theme] body[data-page] :is(.stat-label,.kpi-label,.acts-metric-label) { font-size: 10.5px; letter-spacing: .08em; }
html[data-theme] body[data-page] .rentals-wrap .stats-row .stat-card { background: linear-gradient(135deg,var(--card) 35%,var(--metric-soft)); }
html[data-theme] body[data-page] .hub .page-hero { position: relative; overflow: hidden; padding: 38px; border-radius: 26px; background: linear-gradient(118deg,var(--card) 15%,var(--info-soft) 62%,var(--cat-purple-soft)); border: 1px solid var(--border); box-shadow: var(--shadow); }
html[data-theme] body[data-page] .hub .page-hero-title { max-width: 740px; font-size: clamp(30px,3vw,46px); line-height: 1.12; }
html[data-theme] body[data-page] .hub .tool { --tool-tone: var(--info); --tool-soft: var(--info-soft); min-height: 208px; padding: 24px; border: 1px solid var(--border); border-radius: 21px; background: linear-gradient(145deg,var(--card) 68%,var(--tool-soft)); box-shadow: var(--shadow); transition: transform var(--motion),box-shadow var(--motion),border-color var(--motion); }
html[data-theme] body[data-page] .hub .tool:nth-child(3n+2) { --tool-tone: var(--cat-purple); --tool-soft: var(--cat-purple-soft); }
html[data-theme] body[data-page] .hub .tool:nth-child(3n) { --tool-tone: var(--ok); --tool-soft: var(--ok-soft); }
html[data-theme] body[data-page] .hub .tool .ico { background: var(--tool-soft); color: var(--tool-tone); width: 42px; height: 42px; border-radius: 13px; }
html[data-theme] body[data-page] .hub .tool .open { color: var(--tool-tone); }
html[data-theme] body[data-page] .hub .tool:hover { border-color: var(--border-strong); transform: translateY(-3px); box-shadow: var(--shadow-md); }
html[data-theme] body[data-page] .hub .tool h3 { font-size: 17px; }
html[data-theme] body[data-page] .hub .grid { gap: 17px; }
html[data-theme] body[data-page] .coop-card { border-radius: 20px; padding: 20px; }
html[data-theme] body[data-page] .coop-circle-btn { border-radius: 12px; }
html[data-theme] body[data-page] :is(.stock-auto-card.on,.auto-toggle.on) { box-shadow: inset 0 0 0 1px color-mix(in srgb,var(--ok-border) 50%,transparent); }
html[data-theme] body[data-page] .ready-box-value { border-radius: 15px; background: var(--info-soft); border-color: var(--info-border); }
html[data-theme] body[data-page] .ready-box-value + .ready-box-value { background: var(--cat-purple-soft); border-color: var(--cat-purple-border); }
html[data-theme] body[data-page] .ready-box-value + .ready-box-value strong { color: var(--cat-purple); }
html[data-theme] body[data-page] :is(.modal-overlay,.modal-back,.modal-backdrop,.outbox-modal) { background: #0b162864; backdrop-filter: blur(8px) saturate(.85); }
html[data-theme="dark"] body[data-page] :is(.modal-overlay,.modal-back,.modal-backdrop,.outbox-modal) { background: #09090cb0; }
html[data-theme] body[data-page] :is(.modal-card,.modal-box,.modal-card-dialog,.fix-dialog,.outbox-editor,.pwa-modal-card) { border-radius: 25px; box-shadow: var(--shadow-lg); }
html[data-theme] body[data-page] :is(.modal-header,.modal-dialog-header,.fix-dialog-head) { background: linear-gradient(120deg,var(--card) 50%,var(--info-soft)); padding: 24px 28px 20px; }
html[data-theme] body[data-page] :is(.modal-title,.modal-dialog-header h2,.fix-dialog-head h2) { letter-spacing: -.04em; font-size: 25px; }
html[data-theme] body[data-page] :is(.modal-footer,.modal-dialog-footer,.fix-dialog-foot) { padding: 17px 28px; background: var(--card); }
html[data-theme] body[data-page] :is(.modal-close,.m-close,.fix-close,.issue-close) { width: 34px; height: 34px; border-radius: 11px; background: var(--surface-2); }
html[data-theme] body[data-page] .issue-flow .issue-dialog { border-radius: 28px; }
html[data-theme] body[data-page] .issue-header { background: linear-gradient(125deg,var(--card) 55%,var(--info-soft)); padding: 26px 30px 20px; }
html[data-theme] body[data-page] .issue-header h2 { font-size: clamp(25px,2.2vw,32px); letter-spacing: -.045em; }
html[data-theme] body[data-page] .issue-steps { background: var(--card); padding: 14px 30px 18px; }
html[data-theme] body[data-page] .issue-step.is-current .issue-step-number { box-shadow: 0 0 0 4px var(--info-soft); }
html[data-theme] body[data-page] :is(.issue-primary,.issue-pay-button) { border-radius: 13px; min-height: 44px; }
html[data-theme] body[data-page] #tab-bookings .booking-act-btn { min-height: 37px; padding: 8px 11px; border-radius: 11px; font-size: 11px; }
html[data-theme] body[data-page] #tab-bookings .booking-act-btn.booking-act-issue { background: var(--primary-fill); color: var(--primary-text); border-color: transparent; box-shadow: var(--primary-shadow); }
html[data-theme] body[data-page] #tab-bookings .booking-act-btn.booking-act-issue:hover { background: var(--primary-fill); filter: brightness(1.03); }
html[data-theme] body[data-page] :is(.auth-card,.qr-form,.qr-preview) { border-radius: 24px; box-shadow: var(--shadow-md); }
html[data-theme] body[data-page] .auth-card { background: linear-gradient(145deg,var(--card) 65%,var(--info-soft)); }
/* Vector icons and fluid widths remain sharp at 4K without raster upscaling. */
@media (min-width: 2000px) {
  :root { --sidebar-width: 258px; }
  .workspace > :is(main.wrap,main.wrap-wide,.wrap,.wrap-wide) { max-width: 2200px; padding-left: 40px; padding-right: 40px; }
  .workspace-link { font-size: 13px; min-height: 45px; }
  html[data-theme] body[data-page] table { font-size: 13px; }
  html[data-theme] body[data-page] table tbody td { padding: 16px 18px; }
  html[data-theme] body[data-page] .disp-bar.page-hero { padding: 15px 30px; grid-template-columns: minmax(0,1fr) 350px; }
  html[data-theme] body[data-page] .disp-bar .hero-tabs .disp-tab { font-size: 12.5px; min-height: 39px; padding: 10px 17px; }
  html[data-theme] body[data-page] .hub .grid { grid-template-columns: repeat(auto-fill,minmax(290px,1fr)); }
}
@media (max-width: 1200px) and (min-width: 961px) {
  html[data-theme] body[data-page] .disp-bar.page-hero { grid-template-columns: minmax(0,1fr) 260px; }
  html[data-theme] body[data-page] .topbar .inner { padding-left: 22px; padding-right: 22px; }
}
@media (max-width: 960px) {
  html[data-theme] body[data-page] .disp-bar.page-hero { grid-template-columns: minmax(0,1fr); padding: 10px 16px; gap: 10px; }
  html[data-theme] body[data-page] .topbar .inner { min-height: 62px; padding: calc(10px + env(safe-area-inset-top,0px)) 18px 10px; }
  .workspace > :is(main.wrap,main.wrap-wide,.wrap,.wrap-wide) { padding-left: 18px; padding-right: 18px; }
  .workspace-sidebar { backdrop-filter: none; background: var(--card); }
  .workspace-brand { padding-top: 22px; min-height: 82px; }
  html[data-theme] body[data-page] .hub .page-hero { padding: 28px; }
}
@media (max-width: 640px) {
  html[data-theme] body[data-page] { background-size: 100% 400px; }
  html[data-theme] body[data-page] .topbar .inner { min-height: 60px; padding: calc(10px + env(safe-area-inset-top,0px)) 14px 10px; }
  html[data-theme] body[data-page] .topbar .page-title .tb-title { font-size: 18px; }
  .workspace > :is(main.wrap,main.wrap-wide,.wrap,.wrap-wide) { padding-left: 14px; padding-right: 14px; }
  html[data-theme] body[data-page] .page-hero-title { font-size: 28px; }
  html[data-theme] body[data-page] .hub .page-hero { padding: 23px; border-radius: 22px; }
  html[data-theme] body[data-page] .hub .page-hero-title { font-size: 31px; }
  html[data-theme] body[data-page] :is(.btn,.btn-fleet-cmd,.searchable-select__trigger) { min-height: 44px; }
  html[data-theme] body[data-page] :is(.filter-bar,.global-filter,.filter-card) { padding: 14px; }
  html[data-theme] body[data-page] :is(.stat-card,.kpi-card,.acts-metric) { padding: 16px; border-radius: 16px; }
  html[data-theme] body[data-page] :is(.stat-val,.kpi-val,.acts-metric-value) { font-size: 29px; }
  html[data-theme] body[data-page] :is(.modal-header,.modal-dialog-header,.fix-dialog-head,.modal-footer,.modal-dialog-footer,.fix-dialog-foot) { padding: 18px; }
  html[data-theme] body[data-page] :is(.modal-overlay,.modal-back,.modal-backdrop,.outbox-modal) { backdrop-filter: none; }
  html[data-theme] body[data-page] .issue-header { padding: 20px 18px 16px; }
  html[data-theme] body[data-page] .issue-header h2 { font-size: 25px; }
  html[data-theme] body[data-page] .issue-steps { padding: 10px 18px 14px; }
  html[data-theme] body[data-page] table.tbl-cards tbody td { padding: 7px 0; background: transparent; }
}
/* Consistent save states and profile controls, including smaller iPhones. */
.profile-access-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin-top: 18px; }
.profile-access-form > label { min-width: 0; }
.profile-access-form input { width: 100%; min-width: 0; }
.act-count-field { display: grid; gap: 6px; margin-top: 10px; max-width: 180px; color: var(--muted); font-size: 12px; }
.act-parts-picker { margin-top: 12px; padding: 12px; border: 1px solid var(--border); border-radius: 12px; background: var(--bg-subtle); }
.act-parts-picker summary { cursor: pointer; font-weight: 600; }
.act-parts-picker > input { margin-top: 10px; width: 100%; }
.act-parts-list { max-height: 200px; overflow: auto; margin: 8px 0; }
.act-parts-list label { display: flex; align-items: flex-start; gap: 8px; padding: 8px 4px; font-size: 12px; color: var(--text); }
.act-parts-list input { flex: 0 0 auto; margin-top: 3px; }
.act-parts-picker small { display: block; color: var(--muted); font-size: 11px; }
html[data-theme] body[data-page] :is(.act-count-field,.act-parts-picker)[hidden] { display: none; }
html[data-theme] body[data-page] .akb-3 { background: var(--cat-purple-soft); color: var(--cat-purple); border-color: var(--cat-purple-border); }
html[data-theme] body[data-page] #btn-toggle-third-battery[aria-pressed="true"] { background: var(--cat-purple-soft); color: var(--cat-purple); border-color: var(--cat-purple-border); }
.sync-warning { margin-top: 12px; padding: 10px 12px; border: 1px solid var(--warn-border); border-radius: 10px; background: var(--warn-soft); color: var(--warn); font-size: 12px; }
html[data-theme] body[data-page] [aria-busy="true"] { cursor: progress; }
html[data-theme] body[data-page] [aria-busy="true"] :is(button,input,select,textarea):disabled { cursor: progress; }
html[data-theme] body[data-page] .eda-profile-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; border-radius: 9px; border: 1px solid var(--border); background: var(--card); color: var(--text-soft); font: 550 11.5px var(--font-mono); cursor: pointer; }
html[data-theme] body[data-page] .eda-profile-chip.is-selected { background: var(--info-soft); border-color: var(--info-border); color: var(--info); font-weight: 650; }
html[data-theme] body[data-page] .eda-profile-chip:hover { border-color: var(--border-strong); }
html[data-theme] body[data-page] .toast { max-width: min(540px,calc(100vw - 32px)); overflow-wrap: anywhere; }
html[data-theme] body[data-page] .toast:is(.err,.error,.danger) { background: var(--danger-soft); color: var(--danger); border: 1px solid var(--danger-border); }
@media (max-width:640px) { .profile-access-form { grid-template-columns: minmax(0,1fr); } }
/* Operational screens: readable data first, generous touch targets without
   oversized marketing headers. Motion only affects composited properties. */
html[data-theme] body[data-page] :is(button,.btn,[role="button"]) {
  transition-property: background-color, border-color, color, box-shadow, opacity, transform;
  transition-duration: 160ms;
}
html[data-theme] body[data-page] :is(button,.btn):active:not(:disabled) { transform: translateY(1px); }
html[data-theme] body[data-page] :is(button,.btn):disabled { opacity: .58; cursor: not-allowed; }
html[data-theme] body[data-page] :is(.modal-card,.modal-box,.issue-dialog,dialog) { overscroll-behavior: contain; }
html[data-theme] body[data-page] :is(.tbl-wrap,.table-wrap,.searchable-select__menu) { scrollbar-width: thin; scrollbar-color: var(--border-strong) transparent; }
html[data-theme] body[data-page] table tbody td { font-variant-numeric: tabular-nums; }
html[data-theme] body[data-page] table tbody tr:focus-within { background: var(--surface-hover); }
html[data-theme] body[data-page] :is(input,textarea,select):focus-visible { outline: 2px solid var(--border-focus); outline-offset: 2px; }
#special-report form > label { display: grid; gap: 6px; min-width: 0; font-size: 13px; }
#special-report input:not([type="checkbox"]) { width: 100%; }
#special-report[hidden] { display: none; }
@media (max-width:640px) {
  /* 16px editable fields prevent involuntary Safari zoom on iPhone. */
  html[data-theme] body[data-page] :is(input:not([type="checkbox"]):not([type="radio"]),textarea,select) { font-size: 16px; }
  html[data-theme] body[data-page] .rentals-wrap .page-hero { padding: 12px 0; }
  html[data-theme] body[data-page] .rentals-wrap .page-hero :is(.page-hero-eyebrow,.page-hero-sub,.page-hero-title) { display: none; }
  html[data-theme] body[data-page] .rentals-wrap .page-hero-top { min-height: 0; margin: 0; }
  html[data-theme] body[data-page] .rentals-wrap .page-hero .hero-tabs { margin-top: 12px; }
  html[data-theme] body[data-page] .rentals-wrap #tab-leases .stats-row { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)) !important; gap: 8px; margin-block: 10px; }
  html[data-theme] body[data-page] .rentals-wrap .stat-card { padding: 12px 10px; }
  html[data-theme] body[data-page] .rentals-wrap .stat-label { font-size: 10px; line-height: 1.4; min-height: 28px; }
  html[data-theme] body[data-page] .rentals-wrap .stat-val { font-size: 25px; }
  html[data-theme] body[data-page] #tab-bookings .booking-act-btn { min-height: 44px; font-size: 12px; }
  #special-report form { display: grid !important; grid-template-columns: minmax(0,1fr); align-items: stretch !important; }
  #special-report { scroll-margin-top: 76px; }
  html[data-theme] body[data-page="analytics"] .global-filter { position: static; }
}
@media (prefers-reduced-motion:reduce) {
  html[data-theme] body[data-page] :is(button,.btn,[role="button"]) { transition: none; }
  html[data-theme] body[data-page] :is(button,.btn):active:not(:disabled) { transform: none; }
}
@media print {
  body.workspace { padding-left: 0; }
  .workspace-sidebar,.topbar,.disp-bar,.nav-backdrop,.theme-toggle { display: none !important; }
  html,html[data-theme] body[data-page] { background: #fff; color: #000; }
}

/* Studio finish. Solid surfaces keep scrolling cheap; colour is reserved for
   hierarchy and operational state. Geometry belongs to the page layouts. */
html[data-theme] body[data-page] { background-image: none; }
.workspace-sidebar,html[data-theme] body[data-page] :is(.topbar,.hero-tabs,.tabs-bar,.nav-backdrop) {
  backdrop-filter: none; -webkit-backdrop-filter: none;
}
.workspace-brand { min-height: 84px; font-weight: 650; }
.workspace-link { position: relative; min-height: 43px; font-size: 13px; font-weight: 500; border-radius: 10px; }
.workspace-link .ic { color: var(--muted); }
.workspace-link.is-current { background: var(--card); color: var(--text); box-shadow: 0 1px 4px #1520180a; }
.workspace-link.is-current::before { content: ''; position: absolute; left: 0; top: 13px; bottom: 13px; width: 3px; border-radius: 3px; background: var(--info); }
.workspace-link.is-current .ic { color: var(--info); }
.workspace-group-title { font-size: 10px; letter-spacing: .065em; text-transform: uppercase; }
.workspace-account { background: var(--card); border-color: transparent; border-radius: 14px; }
.workspace-avatar { background: var(--info-soft); color: var(--info); border-color: var(--info-border); }
html[data-theme] body[data-page] .topbar { background: var(--bg); }
html[data-theme] body[data-page] .topbar .page-title .tb-title { font-size: 21px; letter-spacing: -.035em; }
html[data-theme] body[data-page] .page-hero { padding-block: 14px; margin-bottom: 12px; }
html[data-theme] body[data-page] .page-hero-title { font-size: clamp(27px,2.2vw,36px); line-height: 1.2; letter-spacing: -.04em; }
html[data-theme] body[data-page] .page-hero-sub { font-size: 13px; line-height: 1.6; max-width: 740px; }
html[data-theme] body[data-page] .page-hero-eyebrow { color: var(--muted); font-size: 10px; letter-spacing: .12em; }
html[data-theme] body[data-page] :is(.hero-tabs,.tabs-bar) { background: var(--surface-2); border: 1px solid var(--border); padding: 4px; border-radius: 12px; }
html[data-theme] body[data-page] :is(.hero-tabs,.tabs-bar) :is(button,a) { font-weight: 500; font-size: 12px; }
html[data-theme] body[data-page] .disp-bar.page-hero { background: var(--bg); margin-bottom: 0; padding-block: 10px; }
html[data-theme] body[data-page] .disp-bar .hero-tabs { border-color: var(--border); }
html[data-theme] body[data-page] :is(.card,.panel,.form-card,.filter-card,.table-card,.fcard,.f-card,.stat-card,.kpi-card,.metric-card,.sensor-card,.hero-card,.ratio-card,.stock-bar,.scanner-card,.history-card,.form-wrap,.coop-card,.fine-card,.hub-card,.model-card,.fleet-section,.repairs-section) {
  border-radius: 16px; box-shadow: 0 2px 6px #14201904; border-color: var(--border);
}
html[data-theme] body[data-page] :is(.stat-card,.kpi-card,.acts-metric),
html[data-theme] body[data-page] .rentals-wrap .stats-row .stat-card { background: var(--card); padding: 18px 20px; }
html[data-theme] body[data-page] :is(.stat-val,.kpi-val,.acts-metric-value,.fleet-kpi-num,.repairs-kpi-num) { color: var(--text); font-weight: 600; font-size: 32px; letter-spacing: -.05em; }
html[data-theme] body[data-page] :is(.stat-label,.kpi-label,.acts-metric-label) { color: var(--muted); font-size: 11px; letter-spacing: .035em; }
html[data-theme] body[data-page] :is(.filter-bar,.global-filter,.filter-card) { padding: 14px 18px; border-radius: 14px; }
html[data-theme] body[data-page] :is(.tbl-wrap,.data-table-wrap,.act-table-wrap,.table-wrap,.ao-table-wrap) { border-radius: 16px; box-shadow: 0 2px 6px #14201904; }
html[data-theme] body[data-page] table { font-size: 13px; }
html[data-theme] body[data-page] table thead th { background: var(--bg-subtle); font-size: 10.5px; letter-spacing: .06em; padding: 13px 16px; }
html[data-theme] body[data-page] table tbody td { padding: 14px 16px; border-bottom-color: var(--border); }
html[data-theme] body[data-page] table tbody tr:hover td { background-color: var(--surface-hover); }
html[data-theme] body[data-page] :is(.btn,.btn-fleet-cmd,.btn-exchange,.btn-mega-speak,.searchable-select__trigger) { border-radius: 10px; font-size: 13px; min-height: 40px; }
html[data-theme] body[data-page] :is(.btn-sm,.btn-xs,.btn-act-action,.btn-cross-link,.iconbtn) { min-height: 32px; font-size: 12px; border-radius: 8px; }
html[data-theme] body[data-page] :is(button,.btn,[role="button"],input,textarea,select) { transition-property: background-color,border-color,color,opacity; transition-duration: 120ms; }
html[data-theme] body[data-page] :is(.btn,.btn-fleet-cmd,.booking-act-btn):hover { transform: none; filter: none; }
html[data-theme] body[data-page] :is(.btn,.btn-fleet-cmd,.booking-act-btn):active:not(:disabled) { transform: none; opacity: .8; }
html[data-theme] body[data-page] :is(input,textarea,.inp):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="range"]):not([type="file"]) { background-color: var(--card); border-radius: 10px; box-shadow: none; }
.searchable-select__trigger { background: var(--card); box-shadow: none; }
.searchable-select__menu { background: var(--card); backdrop-filter: none; -webkit-backdrop-filter: none; border-radius: 14px; box-shadow: 0 16px 48px #101b2226,0 2px 6px #101b2212; }
.searchable-select__option { font-size: 13px; min-height: 38px; border-radius: 8px; }
html[data-theme] body[data-page] :is(.modal-overlay,.modal-back,.modal-backdrop,.outbox-modal,.print-modal) { backdrop-filter: none; -webkit-backdrop-filter: none; background: #10171580; }
html[data-theme="dark"] body[data-page] :is(.modal-overlay,.modal-back,.modal-backdrop,.outbox-modal,.print-modal) { background: #070a09b8; }
html[data-theme] body[data-page] :is(.modal-card,.modal-box,.modal-card-dialog,.fix-dialog,.outbox-editor,.pwa-modal-card,.issue-dialog) { border: 1px solid var(--border); border-radius: 22px; box-shadow: var(--shadow-lg); }
html[data-theme] body[data-page] :is(.modal-header,.modal-dialog-header,.fix-dialog-head,.issue-header) { background: var(--card); border-bottom: 1px solid var(--border); }
html[data-theme] body[data-page] :is(.modal-title,.modal-dialog-header h2,.fix-dialog-head h2,.issue-header h2) { font-weight: 600; font-size: clamp(23px,2vw,29px); letter-spacing: -.035em; }
html[data-theme] body[data-page] .hub .page-hero { background: var(--card); padding: 30px 32px; border-radius: 20px; box-shadow: var(--shadow-xs); }
html[data-theme] body[data-page] .hub .tool { min-height: 190px; padding: 22px; border-radius: 16px; background: var(--card); box-shadow: var(--shadow-xs); transition: border-color 120ms,background-color 120ms; }
html[data-theme] body[data-page] .hub .tool:hover { transform: none; background: var(--bg-subtle); border-color: var(--border-strong); box-shadow: var(--shadow-xs); }
html[data-theme] body[data-page] .hub .tool .ico { width: 40px; height: 40px; border-radius: 12px; }
html[data-theme] body[data-page] .hub .tool .desc { font-size: 13px; line-height: 1.6; }
html[data-theme] body[data-page] .hub .searchbar input { background: transparent; border: 0; box-shadow: none; border-radius: 0; }
html[data-theme] body[data-page] .auth-card { background: var(--card); }
.disp-loading { position: absolute; inset: 0; z-index: 2; display: flex; align-items: center; justify-content: center; gap: 10px; background: var(--bg); color: var(--muted); font-size: 13px; pointer-events: none; }
.disp-loading-mark { width: 7px; height: 7px; border-radius: 50%; background: var(--info); }
/* Reserve navigation width before user data arrives, without a mobile gutter. */
@media (max-width:960px) { html.has-workspace body { padding-left: 0; } }
@media (max-width:760px) {
  html[data-theme] body[data-page] table.tbl-cards tbody td { padding: 8px 0; background: transparent; }
  html[data-theme] body[data-page] table.tbl-cards tbody tr { border-radius: 16px; }
  html[data-theme] body[data-page] :is(.btn,.btn-fleet-cmd,.searchable-select__trigger) { min-height: 44px; }
  html[data-theme] body[data-page] .hub .page-hero { padding: 22px; }
  html[data-theme] body[data-page] :is(.stat-card,.kpi-card,.acts-metric) { padding: 14px; }
  html[data-theme] body[data-page] .rentals-wrap .stat-val { font-size: 25px; }
}
@media (prefers-reduced-motion:reduce) {
  html[data-theme] body[data-page] :is(button,.btn,[role="button"],input,textarea,select) { transition: none; }
}
@media print { html.has-workspace body { padding-left: 0; } }
