/* OBD Smart presentation authority. Feature modules keep their layouts and behaviour. */
:root {
  color-scheme:light;
  --bg:#f3f5f6; --surface:#fff; --soft:#edf1f3; --text:#1c2d38;
  --muted:#52636e; --border:#d4dde2; --control-line:#788b98; --primary:#12618d; --primary-soft:#e4eef4;
  --action:#12618d; --on-action:#fff; --solid-ink:#172c3a;
  --success:#246b45; --success-soft:#e7f2eb;
  --warning:#85580d; --warning-soft:#fcf2da;
  --danger:#ac3038; --danger-soft:#f9e9eb;
  --ink:var(--text); --green:var(--primary); --lime:var(--primary-soft); --accent:var(--primary);
  --white:var(--surface); --line:var(--border); --radius:12px;
  --theme-raised:var(--soft); --theme-highlight:var(--surface);
  font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:16px; font-weight:400; color:var(--text); background:var(--bg);
}
:root[data-theme=dark] {
  color-scheme:dark;
  --bg:#111b24; --surface:#192630; --soft:#22323e; --text:#edf2f5;
  --muted:#b7c4cd; --border:#40515e; --control-line:#899ba8; --primary:#91c4df; --primary-soft:#253f50;
  --action:#91c4df; --on-action:#142936;
  --success:#97d4b0; --success-soft:#203c30;
  --warning:#ebc578; --warning-soft:#40351f;
  --danger:#f0a7ac; --danger-soft:#432b33;
}
body,.app-shell,.public-home,.site {background:var(--bg);color:var(--text)}
body {line-height:1.55}
h1,h2,h3,h4 {letter-spacing:-.02em;font-weight:600;color:inherit}
h1 {font-size:32px;line-height:1.2} h2 {font-size:25px;line-height:1.3} h3 {font-size:18px;line-height:1.4}
p {line-height:1.65} small {font-size:12px;line-height:1.5}
a,button,input,select,textarea {scroll-margin-block:100px}
a:focus-visible,button:focus-visible,summary:focus-visible {outline:3px solid var(--primary);outline-offset:3px}
input:focus,select:focus,textarea:focus {outline:2px solid var(--primary);outline-offset:2px;border-color:var(--primary)}
button:disabled,.btn:disabled {cursor:not-allowed}
.btn {border-radius:6px;min-height:44px;padding:11px 18px;font-size:14px;font-weight:600;background:var(--action);color:var(--on-action);transition:background-color .18s,border-color .18s}
.btn:hover {background:var(--action);filter:brightness(.94);transform:none}
.btn.lime {background:var(--action);color:var(--on-action)}
.btn.secondary,.icon-btn {background:var(--surface);color:var(--text);border:1px solid var(--line)}
.btn.secondary:hover,.btn.ghost:hover {background:var(--soft);filter:none}
.btn.ghost {background:transparent;color:var(--primary)}
.btn.danger {background:var(--danger-soft);color:var(--danger)}
.btn.small {min-height:40px;font-size:13px;padding:9px 12px}
.icon-btn {min-width:44px;min-height:44px;border-radius:6px;box-shadow:none}
.topbar-actions .icon-btn {width:44px;height:44px;min-width:44px;min-height:44px;padding:11px}
.eyebrow,.nav-label,.nav-section-label,.workspace-nav-group h2 {font-size:12px;letter-spacing:.035em;text-transform:none;font-weight:600;color:var(--muted)}
.label,.field label,.check {font-size:14px}
.hint,.card-head p,.page-header p,.stat-foot,.profile-info span,.portal-footer {font-size:13px;color:var(--muted)}
input:not([type=checkbox]):not([type=file]),select,textarea {background:var(--surface);color:var(--text);border-color:var(--control-line);border-radius:6px;min-height:46px}
:root[data-theme=dark] :is(input:not([type=checkbox]),select,textarea) {border-color:var(--control-line)}
input::placeholder,textarea::placeholder {color:var(--muted);opacity:1}
input[type=file] {background:var(--soft);border-color:var(--line);border-radius:6px}
.card,.stat-card {background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:12px;box-shadow:none}
.card {padding:24px}.card-head {margin-bottom:20px}
.card .card {box-shadow:none}
.stat-value,.metric strong,.data-table {font-variant-numeric:tabular-nums}
.stat-value {font-size:28px;letter-spacing:-.02em;color:var(--text)}
.stat-icon,.empty .empty-icon {background:transparent;color:var(--muted);border-radius:0}
.stat-top {font-size:13px;color:var(--muted)}
.badge {font-size:12px;font-weight:600}.badge.green {color:var(--success);background:var(--success-soft)}
.badge.amber {color:var(--warning);background:var(--warning-soft)}.badge.red {color:var(--danger);background:var(--danger-soft)}
.badge.blue {color:var(--primary);background:var(--primary-soft)}
.sidebar {background:var(--surface);border-color:var(--line);padding:24px 16px;box-shadow:none}
.sidebar>.brand {margin-bottom:28px}.nav-item {font-size:14px;color:var(--muted);border-radius:6px;min-height:44px}
.nav-item:hover {background:var(--soft);color:var(--text)}
.nav-item.active,.mobile-bottom a.active {background:var(--primary-soft);color:var(--primary);border-radius:6px;font-weight:600}
.nav-item.active:after {border-radius:1px;background:var(--primary);height:16px;width:3px}
.workspace-nav-group .nav-item {min-height:44px}
.workspace-nav-group h2 {margin-top:20px}
.topbar {background:var(--surface);border-color:var(--line);padding-inline:32px;backdrop-filter:none}
.breadcrumb,.topbar-date {font-size:13px;color:var(--muted)}
.content {max-width:1440px;padding:28px 32px 40px}.page-header {margin-bottom:24px;align-items:flex-start}
.page-header h1 {font-size:28px;letter-spacing:-.025em}.page-header .btn {font-size:13px;min-height:44px}
.welcome-banner,.vehicle-hero {background:var(--solid-ink);color:#f0f5f8;border-radius:12px;box-shadow:none}
.welcome-banner {min-height:0;padding:24px}
.welcome-banner h2 {font-size:24px}.welcome-banner p,.vehicle-hero p {color:#c9d6de;font-size:14px}
.welcome-banner .eyebrow,.vehicle-hero .eyebrow {color:#c9d6de}
.welcome-banner:after,.auth-story:before {content:none}
.vehicle-card.card {padding:0;overflow:hidden}
.vehicle-card-link {display:block;color:inherit;text-decoration:none}
.vehicle-card-link:focus-visible {outline:3px solid var(--action);outline-offset:-3px}
.vehicle-card .vehicle-card-copy {padding:20px}
.vehicle-card .model-photo-slot {max-width:none;margin:0;border-bottom:1px solid var(--line)}
.vehicle-photo-card .model-photo img {display:block;width:100%;height:210px;max-height:none;object-fit:contain;border-radius:0}
.vehicle-photo-card .model-photo figcaption {padding:10px 16px;background:var(--surface);font-size:12px}
.vehicle-photo-placeholder {display:grid;place-items:center;min-height:180px;padding:24px;text-align:center;background:var(--soft);color:var(--muted);font-size:13px}
.vehicle-with-photo {grid-template-columns:160px minmax(0,1fr);align-items:center;gap:16px}
.vehicle-with-photo .model-photo-slot {margin:0;min-width:0;max-width:none}
.vehicle-with-photo .vehicle-mini {margin:0;padding:8px 0;border:0;border-radius:0;min-width:0;flex-wrap:wrap}
.vehicle-with-photo .vehicle-mini p {overflow-wrap:anywhere}
.vehicle-photo-mini .model-photo img {height:100px;object-fit:contain;display:block}
.vehicle-photo-mini .model-photo figcaption {font-size:11px}
.vehicle-photo-mini .vehicle-photo-placeholder {min-height:100px;padding:10px}
.vehicle-profile-hero {display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:28px;align-items:center;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden;margin-bottom:16px}
.vehicle-profile-hero .model-photo-slot {max-width:none;margin:0}
.vehicle-photo-hero .model-photo img {display:block;height:280px;object-fit:contain;border-radius:0}
.vehicle-photo-hero .model-photo figcaption {padding:12px 20px}
.vehicle-profile-hero-copy {padding:24px}
.vehicle-profile-hero-copy h2 {margin:12px 0 16px}
.vehicle-photo-editor {margin:0 0 28px;border-bottom:1px solid var(--line);padding-bottom:16px}
.vehicle-photo-editor summary {cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--action)}
.vehicle-photo-editor form {max-width:540px;padding-top:12px}
.vehicle-photo-editor .btn {margin:8px 8px 0 0}
[data-reset-vehicle-photo][hidden] {display:none!important}
@media(max-width:640px){.vehicle-profile-hero{grid-template-columns:1fr;gap:0}.vehicle-profile-hero-copy{padding:18px}.vehicle-photo-hero .model-photo img{height:220px}.vehicle-with-photo{grid-template-columns:110px minmax(0,1fr)}.vehicle-with-photo .model-photo-slot{max-width:none}.vehicle-card .vehicle-card-copy{padding:16px}}
.profile-identity {background:var(--surface)}
.profile-identity>.profile-avatar {width:80px;height:80px;font-size:28px;box-shadow:none;border:1px solid var(--line)}
.profile-section>summary {padding:18px 20px;min-height:64px}
.profile-section-body {padding:0 20px 20px}
.admin-config-links>a:hover {transform:none}
.data-table {font-size:14px}.data-table :is(th,td) {padding:12px 14px;border-color:var(--line);color:var(--text)}
.data-table th {background:var(--soft);font-size:13px;font-weight:600}
.data-table td small {font-size:12px}
.data-table tbody tr:hover {background:var(--soft)}
.fleet-tabs a,.ops-tabs button,.profile-shortcuts a {border-radius:6px;font-size:14px;min-height:44px}
.fleet-tabs a.selected,.ops-tabs button[aria-pressed=true] {background:var(--action);color:var(--on-action);border-color:var(--action)}
.auth-shell {background:var(--bg)}.auth-main {background:var(--surface);flex-direction:column}
.auth-main>.auth-form {flex-shrink:0}
.auth-main>.contract-links {width:100%;max-width:390px;justify-content:center}
.auth-story {background:var(--solid-ink);padding:40px;color:#f0f5f8}
.auth-story h1 {font-size:clamp(28px,3vw,40px);line-height:1.2;letter-spacing:-.025em}
.auth-story p,.auth-story .auth-note,.auth-copyright,.auth-story .brand small {color:#c9d6de;font-size:14px}
.auth-story>div>.icon {width:80px;height:64px;color:#b7d3e4;opacity:1}
.auth-form h2 {font-size:28px}.auth-form>p,.auth-bottom {font-size:14px}
.auth-legal {font-size:12px}.auth-back {font-size:14px}
.support-widget {color:var(--text)}.support-launch {background:var(--action);color:var(--on-action);border-radius:8px;padding:12px 16px;box-shadow:0 3px 14px #0c1a2920;font-weight:600}
.support-window {background:var(--surface);color:var(--text);border-color:var(--line);border-radius:12px}
.support-window>header {background:var(--soft)}.support-message {background:var(--soft)}
.support-message.role-CUSTOMER {background:var(--primary-soft)}.support-message.role-SUPPORT {background:var(--success-soft)}
.support-status,.support-message small {color:var(--muted);font-size:12px}
.journey-road {width:28px;height:28px;border:3px solid var(--line);border-top-color:var(--primary);border-radius:50%;animation:pending .8s linear infinite}
.journey-road svg {display:none}.journey-road:after {content:none}
@keyframes pending {to{transform:rotate(360deg)}}
.site-header {min-height:80px;max-width:1200px;padding:16px 32px;gap:20px}
.site-header nav {font-size:14px;gap:20px}.site-header .btn {min-height:44px}
.site-footer {max-width:1200px;padding:24px 32px;line-height:1.5}.footer-links {font-size:13px;color:var(--muted)}
.hero.product-intro {max-width:1200px;min-height:0;margin:auto;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:64px;align-items:start;padding:56px 32px 40px;text-align:left;overflow:visible}
.product-intro h1 {font-size:clamp(30px,3.5vw,44px);line-height:1.18;letter-spacing:-.03em;max-width:21ch;margin:12px 0 20px}
.product-intro .hero-copy>p {font-size:17px;line-height:1.7;max-width:60ch;margin:0 0 24px}
.product-intro .hero-copy>p:last-child {font-size:13px;margin-top:16px}
.product-index {border-left:1px solid var(--line);padding-left:28px;margin-top:8px}
.product-index>p {font-size:14px;font-weight:600;margin-bottom:16px}
.product-index dl {margin:0}.product-index dl>div {padding:16px 0;border-top:1px solid var(--line)}
.product-index dt {font-size:15px;font-weight:600;margin-bottom:6px}.product-index dd {font-size:14px;line-height:1.6;margin:0;color:var(--muted)}
.product-paths {max-width:1136px;margin:0 auto;display:flex;gap:28px;flex-wrap:wrap;padding:20px 0;border-block:1px solid var(--line)}
.product-paths a {flex:1;min-width:220px;display:flex;align-items:baseline;gap:12px;font-size:14px;line-height:1.6}
.product-paths a span {color:var(--muted);font-size:12px}.product-paths a strong {font-weight:600;color:var(--primary)}
.public-home .section {max-width:1200px;margin:auto;padding:48px 32px}
.public-home .section h2 {font-size:28px;line-height:1.3;max-width:32ch}
.feature-overview {display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);gap:56px}
.feature-overview article {border-top:1px solid var(--line);padding:20px 0}.feature-overview article:first-child {padding-top:0;border-top:0}
.feature-overview h3 {font-size:18px;margin-bottom:8px}.feature-overview article p {margin-bottom:0;font-size:16px;max-width:65ch;color:var(--muted)}
.setup-steps {padding:0;list-style:none;counter-reset:setup;margin:24px 0}
.setup-steps li {counter-increment:setup;display:grid;grid-template-columns:48px 1fr;column-gap:20px;padding:20px 0;border-top:1px solid var(--line)}
.setup-steps li:before {content:counter(setup,decimal-leading-zero);font-size:14px;color:var(--primary);padding-top:4px;font-variant-numeric:tabular-nums}
.setup-steps h3 {margin:0 0 8px}.setup-steps p {margin:0;color:var(--muted);max-width:75ch}
.public-home .cta-band {max-width:1136px;margin:0 auto;border-radius:0;border-block:1px solid var(--line);background:transparent;color:var(--text);padding:28px 0}
.public-home .cta-band h2 {font-size:26px}.cta-band p {color:var(--muted);font-size:15px;max-width:70ch}
.community-live .eyebrow {color:var(--muted)}.community-live .community-numbers span,.community-live [data-community-note] {color:var(--muted)}
.package-card {border-top-width:2px}.package-card p {font-size:15px;line-height:1.7}
.package-card.offer-disabled {background:var(--soft);color:var(--muted);border-color:var(--line)}
.package-card.offer-disabled .btn {background:var(--soft);color:var(--muted);border:1px solid var(--line)}
.ops-metric,.ops-panel,.ops-gauge,.ops-service {border-radius:10px;box-shadow:none}
.ops-dashboard {--ops-line:var(--line)}
.ops-wall {--bg:#111b24;--surface:#192630;--soft:#22323e;--text:#edf2f5;--muted:#bdc9d1;--border:#40515e;--primary:#91c4df;--action:#91c4df;--on-action:#142936;--success:#97d4b0;--warning:#ebc578;--danger:#f0a7ac;--ink:var(--text);--line:var(--border);--ops-line:var(--border);--ops-ok:var(--success);--ops-warning:var(--warning);--ops-major:var(--danger);background:var(--bg);color:var(--text)}
.ops-wall :is(.ops-hero,.ops-metric,.ops-panel,.ops-gauge,.ops-service) {background:var(--surface);border-color:var(--line)}
.ops-wall .ops-header-actions .btn {color:var(--text);background:var(--soft);border-color:var(--line)}
.ops-wall .ops-metric>span,.ops-wall .ops-metric small {color:var(--muted)}
@media(max-width:900px) {
  .hero.product-intro {grid-template-columns:1fr;gap:28px;padding-top:32px}
  .product-index {border-left:0;padding-left:0;display:grid;grid-template-columns:1fr 2fr;gap:24px}
  .feature-overview {grid-template-columns:1fr;gap:16px}.product-paths {margin-inline:32px}
  .public-home .cta-band {margin-inline:32px}.site-header {flex-wrap:wrap}
}
@media(max-width:640px) {
  .content {padding:20px 16px 100px}.topbar {padding-inline:16px;gap:12px}
  .content p,.content .muted,.page-header p,.empty p,.notice p,.maintenance-item p {font-size:14px;line-height:1.65}
  .page-header {gap:12px;flex-wrap:wrap}.page-header h1 {font-size:25px}
  .card {padding:18px}.card-head {margin-bottom:16px}.stat-card {padding:16px}
  .mobile-bottom {background:var(--surface);border-color:var(--line);backdrop-filter:none;box-shadow:none}
  .mobile-bottom a {min-width:0;flex:1;font-size:12px;line-height:1.25;padding:8px 4px;color:var(--muted)}
  .mobile-menu {min-width:44px;min-height:44px;justify-content:center}
  .hero.product-intro {padding:28px 20px}.product-index {display:block}
  .product-paths {margin-inline:20px;gap:12px}.product-paths a {flex-basis:100%;min-width:0}
  .public-home .section {padding:36px 20px}.public-home .section h2 {font-size:25px}
  .public-home .cta-band {margin-inline:20px;padding:24px 0;align-items:flex-start;flex-direction:column}
  .site-header {position:relative;padding:16px 20px;gap:16px}.site-header nav {width:100%;gap:14px;font-size:13px;justify-content:space-between}
  .site-header nav>.theme-switch {position:absolute;right:20px;top:12px}
  .site-header nav>.btn {min-height:40px;padding:9px 12px;font-size:13px}
  .site-footer {padding:24px 20px}
  .auth-story {padding:24px}.auth-main {padding:64px 20px 32px}
  .profile-identity {gap:16px;flex-wrap:wrap}.profile-identity>.profile-avatar {width:64px;height:64px}
  .support-widget {right:16px}.support-launch {min-height:48px}
  .setup-steps li {grid-template-columns:28px 1fr;column-gap:16px}
}
@media(prefers-reduced-motion:reduce) {*,*::before,*::after {animation:none!important;transition:none!important;scroll-behavior:auto!important}}
