:root {
  --v2-bg: #f3f6fa;
  --v2-surface: #ffffff;
  --v2-text: #182230;
  --v2-muted: #667085;
  --v2-border: #e5eaf1;
  --v2-blue: #1268f3;
  --v2-blue-soft: #edf4ff;
  --v2-green: #12a46f;
  --v2-orange: #f59e0b;
  --v2-red: #ef4444;
  --v2-shadow: 0 8px 28px rgba(25, 45, 74, 0.055);
  --v2-radius: 12px;
  --v2-control-height-mobile: 38px;
  --v2-control-height-touch: 42px;
  --v2-control-radius: 8px;
  --v2-control-border: #dbe5f0;
  --v2-control-bg-muted: #f7f9fc;
  --v2-control-text-muted: #536980;
  --v2-menu-radius: 11px;
  --v2-sheet-radius-mobile: 18px;
}

* { box-sizing: border-box; }
body {
  margin: 0;
  background: var(--v2-bg);
  color: var(--v2-text);
  font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  --semi-color-primary: #1268f3;
  --semi-color-primary-hover: #0e5ddc;
  --semi-color-primary-active: #0b4fbd;
  --semi-color-primary-light-default: #edf4ff;
  --semi-color-primary-light-hover: #e1edff;
  --semi-color-primary-light-active: #d3e4ff;
  --semi-color-border: #e5eaf1;
  --semi-color-bg-0: #f3f6fa;
  --semi-color-bg-1: #ffffff;
  --semi-color-bg-2: #ffffff;
  --semi-color-text-0: #182230;
  --semi-color-text-1: #344054;
  --semi-color-text-2: #667085;
  --semi-color-text-3: #98a2b3;
  --semi-border-radius-small: 8px;
  --semi-border-radius-medium: 10px;
  --semi-border-radius-large: 14px;
  --semi-shadow-elevated: 0 20px 60px rgba(24, 34, 48, .16);
}
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }

.v2-monitor-return { display: flex; min-height: 38px; flex: 0 0 auto; align-items: center; gap: 12px; border: 1px solid #cfe0f6; border-radius: 9px; background: linear-gradient(90deg,#f2f7ff,#fff); padding: 6px 10px; color: #51637b; box-shadow: 0 3px 12px rgba(31,69,119,.06); font-size: 9px; }
.v2-monitor-return a { display: inline-flex; height: 28px; flex: 0 0 auto; align-items: center; gap: 5px; border-radius: 7px; background: #1769d2; padding: 0 10px; color: #fff; text-decoration: none; font-weight: 700; }
.v2-monitor-return span { display: inline-flex; min-width: 0; align-items: center; gap: 5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v2-monitor-return em { margin-left: auto; flex: 0 0 auto; color: #78869a; font-size: 8px; font-style: normal; }
.v2-track-page > .v2-monitor-return { z-index: 30; grid-column: 1 / -1; }

.v2-auth-screen { display: grid; min-height: 100vh; min-height: 100dvh; grid-template-columns: minmax(360px, 1.15fr) minmax(420px, .85fr); align-items: center; background: radial-gradient(circle at 16% 12%, rgba(18,104,243,.09), transparent 28%), #f3f6fa; padding: clamp(28px, 5vw, 80px); }
.v2-auth-intro { max-width: 680px; padding: 36px 8vw 36px 4vw; }
.v2-auth-intro > img { width: 176px; }
.v2-auth-intro h1 { margin: 54px 0 20px; color: #14223a; font-size: clamp(38px, 4vw, 60px); font-weight: 720; line-height: 1.12; letter-spacing: -.055em; }
.v2-auth-intro > .semi-typography { display: block; max-width: 540px; color: #617087; font-size: 16px; line-height: 1.9; }
.v2-auth-intro > div { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 34px; }
.v2-auth-intro > div .semi-tag { height: 30px; border-radius: 999px; padding: 0 12px; font-size: 12px; font-weight: 650; }
.v2-auth-card { width: min(440px, 100%); overflow: hidden; border: 1px solid rgba(218,226,237,.92); border-radius: 20px; background: rgba(255,255,255,.96); box-shadow: 0 28px 80px rgba(21, 32, 51, .12); backdrop-filter: blur(16px); }
.v2-auth-loading { grid-column: 1 / -1; justify-self: center; }
.v2-auth-loading .semi-card-body { display: flex; min-height: 260px; align-items: center; justify-content: center; flex-direction: column; gap: 16px; }
.v2-auth-form { display: flex; flex-direction: column; align-items: stretch; padding: 42px; }
.v2-auth-logo { display: block; width: 150px; height: auto; margin: 0 auto 18px; }
.v2-auth-form > h3 { margin: 2px 0 0; text-align: center; font-size: 25px; letter-spacing: -.035em; }
.v2-auth-form > h3 + .semi-typography { margin: 11px 0 18px; text-align: center; font-size: 13px; line-height: 1.7; }
.v2-auth-form label { display: flex; flex-direction: column; gap: 8px; margin-top: 15px; color: #44536a; font-size: 13px; font-weight: 650; }
.v2-auth-form label .semi-input-wrapper { height: 46px; border-radius: 9px; }
.v2-auth-form > .semi-typography-danger { margin-top: 12px; font-size: 12px; }
.v2-auth-form > .semi-button-primary { height: 46px; margin-top: 22px; border-radius: 9px; font-size: 14px; font-weight: 700; box-shadow: 0 8px 18px rgba(18,104,243,.18); }
.v2-auth-form .v2-auth-mode-switch { height: 36px; margin-top: 8px; color: #68778c; font-size: 12px; font-weight: 600; }
.v2-auth-form > .semi-typography-tertiary { margin-top: 14px; text-align: center; }

.v2-shell { height: 100vh; height: 100dvh; overflow: hidden; background: var(--v2-bg); }
.v2-sidebar { position: fixed; inset: 0 auto 0 0; z-index: 50; contain: layout paint; display: flex; width: 208px; max-width: none; flex: none; flex-direction: column; border-right: 1px solid var(--v2-border); background: #fff; }
.v2-brand { display: flex; height: 68px; align-items: center; border-bottom: 1px solid var(--v2-border); padding: 0 18px; white-space: nowrap; overflow: hidden; }
.v2-brand-logo { display: block; width: 142px; height: auto; flex: 0 0 auto; }
.v2-brand-symbol { display: none; width: 36px; height: auto; flex: 0 0 36px; }
.v2-navigation { display: flex; flex: 1; flex-direction: column; gap: 4px; padding: 14px 10px; }
.v2-nav-item { position: relative; display: flex; height: 44px; align-items: center; gap: 12px; border-radius: 8px; padding: 0 14px; color: #59677c; text-decoration: none; white-space: nowrap; overflow: hidden; font-size: 13px; font-weight: 600; transition: background .16s, color .16s, transform .16s; }
.v2-nav-item:hover { background: #f7f9fc; color: var(--v2-text); }
.v2-nav-item.is-active { background: var(--v2-blue-soft); color: var(--v2-blue); box-shadow: inset 0 0 0 1px rgba(18,104,243,.05); }
.v2-nav-item.is-active::before { position: absolute; left: 0; width: 3px; height: 24px; border-radius: 0 3px 3px 0; background: var(--v2-blue); content: ""; }
.v2-nav-operations { margin: 0 10px 8px; }
.v2-collapse { display: flex; width: 100%; height: 50px; flex: 0 0 auto; align-items: center; justify-content: flex-start; gap: 10px; border-radius: 0; border-top: 1px solid var(--v2-border); padding: 0 22px; color: #64748b; }
.v2-main { display: flex; width: auto; height: 100vh; height: 100dvh; min-width: 0; flex: 1; flex-direction: column; margin-left: 208px; }
.v2-topbar { position: sticky; top: 0; z-index: 40; display: flex; height: 68px; flex: 0 0 auto; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(229,234,241,.92); background: rgba(255,255,255,.92); padding: 0 24px; backdrop-filter: blur(16px); }
.v2-topbar-title { display: flex; flex-direction: column; gap: 1px; }
.v2-topbar-title h4 { margin: 0; font-size: 20px; letter-spacing: -.035em; }
.v2-topbar-title > .semi-typography { font-size: 10px; }
.v2-topbar-actions { display: flex; align-items: center; gap: 4px; }
.v2-topbar-actions > .semi-button { display: inline-flex; min-width: 36px; height: 36px; align-items: center; justify-content: center; border-radius: 9px; color: #64748b; }
.v2-help-sheet .semi-sidesheet-header { border-bottom: 1px solid var(--v2-border); padding: 18px 20px; }
.v2-help-sheet .semi-sidesheet-title h4 { margin: 2px 0 0; font-size: 19px; }
.v2-help-panel { padding: 2px 0; }
.v2-help-panel > .semi-typography { display: block; margin: 0 0 16px; font-size: 13px; line-height: 1.7; }
.v2-help-panel ol { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.v2-help-panel li { display: grid; grid-template-columns: 28px minmax(0,1fr); align-items: start; gap: 10px; border-radius: 10px; background: #f7f9fc; padding: 12px; color: #435168; font-size: 12px; line-height: 1.65; }
.v2-help-panel li > span { display: grid; width: 24px; height: 24px; place-items: center; border-radius: 50%; background: var(--v2-blue-soft); color: var(--v2-blue); font-size: 10px; font-weight: 800; }
.v2-help-panel > footer { display: flex; align-items: center; gap: 6px; margin-top: 14px; color: #8996a8; font-size: 10px; }
.v2-help-panel kbd { border: 1px solid #dce4ef; border-radius: 4px; background: #fff; padding: 2px 5px; color: #59677c; font-family: inherit; }
.v2-current-user { display: flex; align-items: center; gap: 7px; margin: 0 5px; color: #59677c; font-size: 11px; }.v2-current-user b { max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.v2-role-badge { border-radius: 10px; background: var(--v2-blue-soft); padding: 2px 6px; color: var(--v2-blue); font-size: 9px; }
.v2-topbar-actions .v2-current-user { display: flex; width: auto; height: 36px; border-radius: 9px; padding: 0 8px; }
.v2-account-chevron { color: #98a2b3; font-size: 12px; transition: transform .16s ease; }
.v2-current-user[aria-expanded="true"] { background: #f2f6fc; color: #344054; }
.v2-current-user[aria-expanded="true"] .v2-account-chevron { transform: rotate(180deg); }
.v2-account-dropdown {
  min-width: 250px;
  overflow: hidden;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  background: #fff;
  padding: 6px;
  box-shadow: 0 18px 46px rgba(24, 34, 48, .16);
}
.v2-account-dropdown .semi-dropdown-menu { padding: 0; }
.v2-account-dropdown-profile {
  display: grid;
  min-width: 236px;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  border-radius: 9px;
  background: linear-gradient(135deg, #f8fbff 0%, #f3f7fd 100%);
  padding: 10px;
}
.v2-account-dropdown-profile > span { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
.v2-account-dropdown-profile strong,
.v2-account-dropdown-profile small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v2-account-dropdown-profile strong { color: #25364d; font-size: 12px; }
.v2-account-dropdown-profile small { color: #8491a3; font-size: 10px; font-weight: 500; }
.v2-account-dropdown-profile .semi-tag { flex: 0 0 auto; }
.v2-account-dropdown .semi-dropdown-divider { margin: 6px 2px; }
.v2-account-dropdown .semi-dropdown-item {
  min-height: 38px;
  border-radius: 8px;
  color: #4e5f75;
  font-size: 12px;
  font-weight: 600;
}
.v2-account-dropdown .semi-dropdown-item:hover { background: #f4f7fb; }
.v2-password-mobile { display: none !important; }
.v2-password-modal .semi-modal-content { border-radius: 16px; }
.v2-password-dialog { display: flex; flex-direction: column; }
.v2-password-dialog > .semi-typography { margin-bottom: 4px; }
.v2-password-dialog > label { display: flex; flex-direction: column; gap: 7px; margin-top: 15px; color: #5a6980; font-size: 12px; font-weight: 650; }
.v2-password-dialog > label .semi-input-wrapper { height: 42px; border-radius: 8px; }
.v2-password-dialog > .semi-typography-danger { margin-top: 10px; font-size: 11px; }
.v2-password-dialog footer { display: flex; justify-content: flex-end; gap: 8px; margin-top: 22px; }
.v2-role-notice { margin: 6px 0; border-radius: 6px; background: #f6f8fb; padding: 8px; color: var(--v2-muted); font-size: 8px; line-height: 1.5; }
.v2-content { min-width: 0; min-height: 0; flex: 1; overflow: auto; }
.v2-sidebar.is-collapsed { width: 72px; }
.v2-sidebar.is-collapsed + .v2-main { margin-left: 72px; }
.v2-sidebar.is-collapsed .v2-nav-label, .v2-sidebar.is-collapsed .v2-collapse span { display: none; }
.v2-sidebar.is-collapsed .v2-brand { justify-content: center; padding: 0; }
.v2-sidebar.is-collapsed .v2-brand-logo { display: none; }
.v2-sidebar.is-collapsed .v2-brand-symbol { display: block; }
.v2-sidebar.is-collapsed .v2-nav-item { justify-content: center; padding: 0; }
.v2-sidebar.is-collapsed .v2-collapse { justify-content: center; padding: 0; transform: rotate(180deg); }

.v2-monitor-page { display: flex; height: 100%; min-height: 0; overflow: hidden; flex-direction: column; gap: clamp(10px, 1vh, 14px); padding: clamp(10px, 1vw, 18px); }
.v2-filterbar.semi-card { overflow: visible; border: 1px solid var(--v2-border); border-radius: var(--v2-radius); background: #fff; box-shadow: var(--v2-shadow); }
.v2-filterbar > .semi-card-body { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(120px, 150px) minmax(120px, 150px) auto auto auto auto; gap: 10px; padding: 10px 12px; }
.v2-search-field { display: flex; height: 36px; align-items: center; gap: 8px; border: 1px solid #dce4ef; border-radius: 7px; padding: 0 10px; color: #8a98aa; }
.v2-search-field:focus-within { border-color: #8bb6fb; box-shadow: 0 0 0 3px rgba(18,104,243,.08); }
.v2-search-field input { min-width: 0; flex: 1; border: 0; outline: 0; color: var(--v2-text); font-size: 12px; }
.v2-search-field.is-batch { border-color: #9fc0f7; background: #fbfdff; }
.v2-search-batch-count { flex: 0 0 auto; border-radius: 999px; background: var(--v2-blue-soft); padding: 3px 7px; color: var(--v2-blue); font-size: 10px; font-weight: 700; line-height: 1; white-space: nowrap; }
.v2-search-batch-count.has-missing { background: #fff4e5; color: #b45309; }
.v2-search-batch-action { flex: 0 0 auto; border: 0; border-left: 1px solid #dce4ef; background: transparent; padding: 0 2px 0 10px; color: var(--v2-blue); font-size: 11px; font-weight: 700; white-space: nowrap; cursor: pointer; }
.v2-search-batch-action:hover { color: #124ea1; }
.v2-batch-search-backdrop { position: fixed; z-index: 1300; inset: 0; display: grid; place-items: center; background: rgba(15, 27, 46, .4); padding: 20px; backdrop-filter: blur(3px); }
.v2-batch-search-dialog { width: min(520px, 100%); border: 1px solid rgba(255,255,255,.75); border-radius: 14px; background: #fff; padding: 20px; box-shadow: 0 24px 70px rgba(13, 33, 62, .24); }
.v2-batch-search-dialog > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.v2-batch-search-dialog > header div { display: grid; gap: 4px; }
.v2-batch-search-dialog > header strong { color: #17253a; font-size: 17px; }
.v2-batch-search-dialog > header span { color: #728096; font-size: 12px; }
.v2-batch-search-dialog > header button { display: grid; width: 30px; height: 30px; flex: 0 0 auto; place-items: center; border: 0; border-radius: 7px; background: #f3f6fa; color: #627086; cursor: pointer; }
.v2-batch-search-dialog > label { display: block; margin-bottom: 8px; color: #536176; font-size: 12px; font-weight: 600; }
.v2-batch-search-dialog textarea { display: block; width: 100%; min-height: 210px; resize: vertical; border: 1px solid #ccd8e7; border-radius: 9px; background: #fbfcfe; padding: 12px 14px; color: #1d2a3d; outline: 0; font: 13px/1.75 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; }
.v2-batch-search-dialog textarea:focus { border-color: #4386df; background: #fff; box-shadow: 0 0 0 3px rgba(45, 116, 210, .1); }
.v2-batch-search-summary { display: flex; justify-content: space-between; gap: 12px; margin-top: 9px; color: #758297; font-size: 11px; }
.v2-batch-search-summary strong { color: var(--v2-blue); font-size: 13px; }
.v2-batch-search-summary em { color: #8994a5; font-style: normal; }
.v2-batch-search-dialog > footer { display: flex; justify-content: flex-end; gap: 9px; margin-top: 18px; }
.v2-batch-search-dialog > footer button { min-width: 92px; }
.v2-batch-search-dialog > footer button:disabled { opacity: .45; cursor: not-allowed; }
.v2-filterbar select { height: 36px; border: 1px solid #dce4ef; border-radius: 7px; background: #fff; padding: 0 30px 0 11px; color: #4d5c70; outline: 0; font-size: 12px; }
.v2-filter-live-status { display: flex; height: 36px; align-items: center; justify-content: center; gap: 6px; border: 1px solid #d9e8fb; border-radius: 7px; background: #f5f9ff; padding: 0 11px; color: #3568a9; font-size: 11px; font-weight: 700; white-space: nowrap; }
.v2-filter-live-status svg { color: var(--v2-blue); }
.v2-primary-button, .v2-secondary-button { display: flex; height: 36px; align-items: center; justify-content: center; gap: 7px; border-radius: 7px; padding: 0 14px; cursor: pointer; font-size: 12px; font-weight: 700; }
.v2-primary-button { border: 1px solid var(--v2-blue); background: var(--v2-blue); color: #fff; box-shadow: 0 5px 12px rgba(18,104,243,.18); }
.v2-secondary-button { border: 1px solid #dce4ef; background: #fff; color: #59677c; }
.v2-monitor-mode { display: flex; height: 36px; overflow: hidden; border: 1px solid #dce4ef; border-radius: 7px; background: #f7f9fc; padding: 2px; }
.v2-monitor-mode button, .v2-monitor-mobile-entry { display: flex; align-items: center; justify-content: center; gap: 5px; border: 0; border-radius: 5px; background: transparent; padding: 0 10px; color: #65758a; font-size: 12px; cursor: pointer; white-space: nowrap; }
.v2-monitor-mode button.is-active { background: #fff; color: var(--v2-blue); box-shadow: 0 1px 4px rgba(21,32,51,.12); font-weight: 700; }
.v2-monitor-mobile-entry { height: 36px; border: 1px solid #dce4ef; background: #fff; }

.v2-kpis.semi-card { overflow: hidden; border: 1px solid var(--v2-border); border-radius: var(--v2-radius); background: #fff; box-shadow: var(--v2-shadow); }
.v2-kpis > .semi-card-body { display: grid; grid-template-columns: 1.12fr 1.12fr repeat(4, minmax(86px, 1fr)) 1.05fr .9fr; padding: 0; }
.v2-kpi { position: relative; min-width: 0; min-height: 72px; padding: 12px 14px; }
.v2-kpi + .v2-kpi::before { position: absolute; inset: 12px auto 12px 0; width: 1px; background: var(--v2-border); content: ""; }
.v2-kpi small { display: block; color: var(--v2-muted); font-size: 11px; font-weight: 600; }
.v2-kpi strong { display: block; margin-top: 7px; overflow: hidden; color: var(--v2-text); font-size: clamp(21px, 1.6vw, 27px); line-height: 1; text-overflow: ellipsis; white-space: nowrap; font-variant-numeric: tabular-nums; }
.v2-kpi strong em { margin-left: 4px; color: #93a0b1; font-size: 9px; font-style: normal; font-weight: 600; }
.v2-kpi.is-primary strong { font-size: clamp(25px, 1.9vw, 32px); font-weight: 750; letter-spacing: -.025em; }
.v2-kpi.is-support { background: #fafbfd; }
.v2-kpi.is-support small { color: #8a96a6; font-size: 10px; font-weight: 500; }
.v2-kpi.is-support strong { margin-top: 8px; color: #718095; font-size: clamp(16px, 1.2vw, 20px); font-weight: 650; }
.v2-kpi.is-support strong em { font-size: 8px; }
.v2-kpi.is-online strong, .v2-kpi.is-idle strong { color: var(--v2-green); }
.v2-kpi.is-driving strong { color: var(--v2-blue); }
.v2-kpi.is-alert strong { color: var(--v2-red); }
.v2-kpi.is-offline strong, .v2-kpi.is-missing strong { color: #7b8798; }

.v2-monitor-workspace { display: grid; min-height: 0; flex: 1; grid-template-columns: clamp(244px, 14vw, 300px) minmax(480px, 1fr); grid-template-rows: minmax(0, 1fr); overflow: hidden; border: 1px solid #dce4ee; border-radius: 8px; background: #fff; box-shadow: 0 4px 16px rgba(21,32,51,.04); }
.v2-monitor-workspace.is-detail-open { grid-template-columns: clamp(244px, 14vw, 300px) minmax(480px, 1fr) clamp(340px, 20vw, 420px); }
.v2-monitor-workspace.is-detail-collapsed { grid-template-columns: clamp(244px, 14vw, 300px) minmax(480px, 1fr) 44px; }
.v2-vehicle-rail { display: flex; min-width: 0; min-height: 0; flex-direction: column; border-right: 1px solid var(--v2-border); }
.v2-vehicle-rail > header { display: flex; height: 46px; align-items: center; justify-content: space-between; padding: 0 12px; }
.v2-vehicle-rail > header strong { font-size: 13px; }
.v2-vehicle-rail > header span, .v2-vehicle-rail > footer { color: var(--v2-muted); font-size: 10px; }
.v2-rail-search { display: flex; height: 34px; align-items: center; gap: 7px; margin: 0 9px 8px; border: 1px solid var(--v2-border); border-radius: 7px; padding: 0 9px; color: #8a98aa; font-size: 10px; }
.v2-rail-search.has-missing { border-color: #fed7aa; background: #fffaf3; color: #b45309; }
.v2-vehicle-scroll { min-height: 0; flex: 1; overflow: auto; overscroll-behavior: contain; }
.v2-vehicle-row.semi-button { display: grid; width: 100%; min-height: 60px; height: auto; grid-template-columns: 10px minmax(0, 1fr) auto; align-items: center; gap: 8px; border: 0; border-top: 1px solid #eef2f7; border-radius: 0; background: #fff; padding: 8px 10px; color: inherit; text-align: left; cursor: pointer; content-visibility: auto; contain-intrinsic-size: auto 60px; }
.v2-vehicle-row .semi-button-content { display: contents; }
.v2-vehicle-row:hover { background: #f8fbff; }
.v2-vehicle-row.is-selected { position: relative; z-index: 1; background: var(--v2-blue-soft); box-shadow: inset 3px 0 var(--v2-blue); }
.v2-status-dot { width: 7px; height: 7px; border-radius: 50%; background: #94a3b8; }
.v2-status-dot.is-online, .v2-status-dot.is-idle { background: var(--v2-green); }
.v2-status-dot.is-driving { background: var(--v2-blue); }
.v2-status-dot.is-offline { background: #aab3c0; }
.v2-status-dot.is-alert { background: var(--v2-red); }
.v2-vehicle-identity, .v2-vehicle-motion { display: flex; min-width: 0; flex-direction: column; gap: 4px; }
.v2-vehicle-identity strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.v2-vehicle-identity small, .v2-vehicle-motion small { overflow: hidden; color: #8996a8; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.v2-vehicle-motion { align-items: flex-end; }
.v2-vehicle-motion strong { font-size: 11px; font-variant-numeric: tabular-nums; }
.v2-vehicle-motion strong small { font-size: 8px; font-weight: 500; }
.v2-vehicle-rail > footer { display: flex; height: 34px; align-items: center; justify-content: center; border-top: 1px solid var(--v2-border); }
.v2-list-loading { display: flex; min-height: 100px; align-items: center; justify-content: center; gap: 8px; color: var(--v2-muted); font-size: 11px; }

.v2-monitor-table-panel.semi-card { display: flex; min-height: 0; flex: 1; flex-direction: column; overflow: hidden; border: 1px solid #dce4ee; border-radius: 9px; background: #fff; box-shadow: 0 4px 16px rgba(21,32,51,.04); }
.v2-monitor-table-panel > .semi-card-body { display: flex; min-height: 0; flex: 1; flex-direction: column; padding: 0; }
.v2-monitor-table-scroll { position: relative; min-height: 0; flex: 1; overflow: auto; overscroll-behavior: contain; }
.v2-monitor-table-scroll table { width: 100%; min-width: 1080px; border-collapse: separate; border-spacing: 0; table-layout: fixed; }
.v2-monitor-table-scroll th { position: sticky; top: 0; z-index: 3; height: 42px; border-bottom: 1px solid #dce4ee; background: #f7f9fc; padding: 0 14px; color: #607086; font-size: 11px; font-weight: 650; text-align: left; }
.v2-monitor-table-scroll th:nth-child(1) { width: 210px; }.v2-monitor-table-scroll th:nth-child(2) { width: 120px; }.v2-monitor-table-scroll th:nth-child(3) { width: 170px; }.v2-monitor-table-scroll th:nth-child(4) { width: 190px; }.v2-monitor-table-scroll th:nth-child(5) { width: auto; }
.v2-monitor-table-scroll td { height: 62px; border-bottom: 1px solid #edf1f6; padding: 7px 14px; vertical-align: middle; }
.v2-monitor-table-scroll tbody tr { transition: background .14s ease; }
.v2-monitor-table-scroll tbody tr:hover { background: #f8fbff; }
.v2-monitor-table-scroll td > strong, .v2-monitor-table-scroll td > span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v2-monitor-table-vehicle > .v2-monitor-vehicle-action.semi-button { display: flex; width: 100%; max-width: 100%; height: auto; justify-content: flex-start; border: 0; background: transparent; padding: 0; color: inherit; cursor: pointer; text-align: left; }.v2-monitor-table-vehicle > .v2-monitor-vehicle-action.semi-button:hover strong { color: var(--v2-blue); }
.v2-monitor-vehicle-action .semi-button-content { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; }
.v2-monitor-table-vehicle strong, .v2-monitor-table-vehicle span { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.v2-monitor-table-vehicle strong { color: #263448; font-size: 13px; transition: color .14s ease; }.v2-monitor-table-vehicle span { margin-top: 4px; color: #8996a8; font-family: ui-monospace,SFMono-Regular,Menlo,monospace; font-size: 9px; }
.v2-monitor-live-value { display: inline !important; color: #213044; font-size: 14px !important; font-variant-numeric: tabular-nums; }
.v2-monitor-live-unit { margin-left: 4px; color: #8b98aa; font-size: 9px; }
.v2-monitor-coordinate { color: #52637a; font-family: ui-monospace,SFMono-Regular,Menlo,monospace; font-size: 10px; font-variant-numeric: tabular-nums; line-height: 1.55; }
.v2-monitor-source-badge { display: inline-flex !important; max-width: 100%; align-items: center; overflow: hidden; border: 1px solid #dbe5f1; border-radius: 999px; background: #f7faff; padding: 4px 8px; color: #42648f; font-size: 9px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.v2-monitor-mileage, .v2-monitor-last-seen { display: flex; min-width: 0; flex-direction: column; gap: 4px; }
.v2-monitor-mileage > span { display: grid; min-width: 0; grid-template-columns: 26px minmax(0,1fr); align-items: center; gap: 4px; }
.v2-monitor-mileage small { color: #8996a8; font-size: 8px; }.v2-monitor-mileage strong { overflow: hidden; color: #34445a; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; font-variant-numeric: tabular-nums; }
.v2-monitor-last-seen strong { color: #46566c; font-size: 10px; }.v2-monitor-last-seen span { overflow: hidden; color: #8a97a9; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; font-variant-numeric: tabular-nums; }
.v2-monitor-unavailable { color: #a2acb9; }
.v2-monitor-address-action.semi-button { display: inline-flex; height: 28px; align-items: center; gap: 5px; border: 1px solid #d5e0ee; border-radius: 6px; background: #fff; padding: 0 9px; color: #3568a9; cursor: pointer; font-size: 10px; font-weight: 650; transition: border-color .14s ease, background .14s ease; }
.v2-monitor-address-action:hover { border-color: #9bb8dd; background: #f4f8fe; }.v2-monitor-address-action.is-error { border-color: #f0c9c9; color: #b74b4b; }
.v2-monitor-address-empty, .v2-monitor-address-loading { display: inline-flex; align-items: center; gap: 6px; color: #929dac; font-size: 10px; }
.v2-monitor-address-result { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: 4px; }
.v2-monitor-address-result > span { display: block; width: 100%; overflow: hidden; color: #47576c; font-size: 10px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.v2-monitor-address-result > small { color: #98a3b2; font-size: 8px; }
.v2-monitor-address-result > .v2-monitor-address-update.semi-button { height: auto; min-height: 0; border: 0; background: transparent; padding: 0; color: #c27a13; cursor: pointer; font-size: 9px; }
.v2-monitor-source { min-width: 0; border-left: 2px solid #d6dee9; padding-left: 8px; }
.v2-monitor-source.is-online { border-color: #1fb573; }.v2-monitor-source.is-offline, .v2-monitor-source.is-pending, .v2-monitor-source.is-unknown { border-color: #f59e0b; }.v2-monitor-source.is-not-required { opacity: .62; }
.v2-monitor-source header, .v2-monitor-source header span, .v2-monitor-source > div { display: flex; align-items: center; justify-content: space-between; gap: 6px; }
.v2-monitor-source header span { justify-content: flex-start; font-size: 10px; font-weight: 700; }.v2-monitor-source header i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.v2-monitor-source.is-online header span { color: #16885a; }.v2-monitor-source.is-abnormal header span { color: #c87905; }.v2-monitor-source header time { color: #8996a8; font-size: 9px; white-space: nowrap; }
.v2-monitor-source > div { margin-top: 7px; justify-content: flex-start; }.v2-monitor-source > div b { font-size: 11px; }.v2-monitor-source > div span { color: #59677c; font-size: 10px; }
.v2-monitor-source > small { display: block; margin-top: 5px; overflow: hidden; color: #8996a8; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; font-variant-numeric: tabular-nums; }
.v2-monitor-overall { display: inline-flex; border-radius: 10px; background: #edf2f7; padding: 3px 8px; color: #637186; font-size: 10px; }.v2-monitor-overall.is-healthy { background: #e7f8f0; color: #16885a; }.v2-monitor-overall.is-degraded, .v2-monitor-overall.is-incomplete { background: #fff4df; color: #a86400; }.v2-monitor-overall.is-offline { background: #f1f3f6; color: #68778b; }
.v2-monitor-table-loading { position: sticky; bottom: 0; display: flex; height: 34px; align-items: center; justify-content: center; gap: 7px; background: rgba(255,255,255,.92); color: #607086; font-size: 10px; }
.v2-monitor-mobile-cards { display: none; }
.v2-monitor-table-panel > .semi-card-body > footer { display: flex; min-height: 44px; align-items: center; justify-content: space-between; border-top: 1px solid var(--v2-border); padding: 6px 14px; color: #718096; font-size: 11px; }
.v2-monitor-table-panel > .semi-card-body > footer div { display: flex; gap: 7px; }.v2-monitor-table-panel > .semi-card-body > footer button, .v2-monitor-table-panel > .semi-card-body > footer select { height: 30px; border: 1px solid #dce4ef; border-radius: 6px; background: #fff; padding: 0 10px; color: #536277; font-size: 10px; cursor: pointer; }.v2-monitor-table-panel > .semi-card-body > footer button:disabled { cursor: not-allowed; opacity: .45; }
.v2-monitor-qr-modal.semi-modal {
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.85);
  border-radius: 18px;
  box-shadow: 0 28px 80px rgba(13,33,62,.25);
}
.v2-monitor-qr-modal .semi-modal-header { margin: 0; border-bottom: 1px solid #edf1f6; padding: 18px 20px 15px; }
.v2-monitor-qr-modal .semi-modal-title { color: #17253a; font-size: 17px; font-weight: 720; }
.v2-monitor-qr-modal .semi-modal-body { margin: 0; padding: 18px 20px 12px; }
.v2-monitor-qr-modal .semi-modal-footer { margin: 0; border-top: 0; padding: 0 20px 20px; }
.v2-monitor-qr-modal .semi-modal-footer .semi-button { height: 40px; border-radius: 9px; font-weight: 700; }
.v2-monitor-qr-content { display: flex; align-items: center; flex-direction: column; text-align: center; }
.v2-monitor-qr-icon { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 14px; background: var(--v2-blue-soft); color: var(--v2-blue); font-size: 24px; }
.v2-monitor-qr-content > p { margin: 10px 0 13px; color: #718096; font-size: 11px; line-height: 1.65; }
.v2-monitor-qr-content > img { width: 220px; height: 220px; border-radius: 10px; }
.v2-monitor-qr-content > code { width: 100%; overflow: hidden; margin-top: 11px; border-radius: 7px; background: #f5f7fa; padding: 9px; color: #5f6e82; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.v2-monitor-qr-content > .v2-spinner { width: 28px; height: 28px; margin: 96px; }
.v2-monitor-qr-error { display: flex; width: 220px; height: 220px; align-items: center; justify-content: center; flex-direction: column; gap: 12px; border: 1px dashed #f0b7b7; border-radius: 10px; background: #fff7f7; padding: 18px; color: #a53a3a; font-size: 11px; line-height: 1.6; }
.v2-monitor-qr-error .semi-button { height: 32px; border-radius: 7px; padding: 0 12px; font-size: 10px; font-weight: 700; }

.v2-fleet-map { position: relative; min-width: 0; min-height: 0; overflow: hidden; background: #e8f0f6; }
.v2-fleet-map-canvas { position: absolute; inset: 0; }
.v2-map-controls { position: absolute; top: 12px; right: 12px; z-index: 5; display: flex; align-items: stretch; gap: 8px; }
.v2-map-control-button.semi-button {
  width: auto;
  height: 46px;
  border: 1px solid rgba(210,220,233,.96);
  border-radius: 10px;
  background: rgba(255,255,255,.96);
  padding: 0 9px 0 11px;
  color: #53677f;
  box-shadow: 0 9px 26px rgba(21,32,51,.13);
  backdrop-filter: blur(14px);
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease, transform .16s ease;
}
.v2-map-control-button.semi-button:hover {
  border-color: #b9cae0;
  background: #fff;
  box-shadow: 0 12px 30px rgba(21,32,51,.16);
  transform: translateY(-1px);
}
.v2-map-control-button.semi-button:active { transform: translateY(0); }
.v2-map-control-button.semi-button.is-active {
  border-color: #aac8f5;
  background: rgba(244,248,255,.98);
  color: var(--v2-blue);
}
.v2-map-control-button .semi-button-content {
  display: grid;
  min-width: 0;
  grid-template-columns: auto minmax(0,1fr) auto;
  align-items: center;
  gap: 8px;
}
.v2-map-control-button .semi-icon { color: currentColor; font-size: 16px; }
.v2-map-control-copy { display: grid; min-width: 0; align-items: start; gap: 2px; text-align: left; }
.v2-map-control-copy strong { color: #31445b; font-size: 10px; line-height: 1.15; }
.v2-map-control-copy small { color: #8190a3; font-size: 8px; font-weight: 500; line-height: 1.15; white-space: nowrap; }
.v2-map-control-button.is-active .v2-map-control-copy strong { color: #245f9f; }
.v2-map-control-button.is-active .v2-map-control-copy small { color: #6387b7; }
.v2-map-control-state.semi-tag {
  min-width: 44px;
  height: 22px;
  justify-content: center;
  border-radius: 999px;
  padding-inline: 7px;
  font-size: 8px;
  font-weight: 700;
}
.v2-map-selection-marker { --v2-selection-color: #f59e0b; --v2-selection-rgb: 245,158,11; position: relative; width: 48px; height: 48px; pointer-events: none; }
.v2-map-selection-marker.is-driving { --v2-selection-color: #1677ff; --v2-selection-rgb: 22,119,255; }
.v2-map-selection-marker.is-idle { --v2-selection-color: #12a46f; --v2-selection-rgb: 18,164,111; }
.v2-map-selection-marker.is-offline { --v2-selection-color: #9aa6b7; --v2-selection-rgb: 154,166,183; }
.v2-map-selection-marker.is-alert { --v2-selection-color: #ef4444; --v2-selection-rgb: 239,68,68; }
.v2-map-selection-marker > i { position: absolute; inset: 4px; border: 2px solid rgba(var(--v2-selection-rgb),.6); border-radius: 50%; animation: v2-map-ripple 2s ease-out infinite; }
.v2-map-selection-marker > i:nth-child(2) { animation-delay: 1s; }
.v2-map-selection-marker > b { position: absolute; top: 18px; left: 18px; width: 12px; height: 12px; border: 3px solid #fff; border-radius: 50%; background: var(--v2-selection-color); box-shadow: 0 2px 8px rgba(var(--v2-selection-rgb),.45); }
.v2-province-placement { position: relative; width: 0; height: 0; }
.v2-province-anchor { position: absolute; top: -3px; left: -3px; z-index: 2; width: 7px; height: 7px; border: 2px solid #fff; border-radius: 50%; background: #397fd7; box-shadow: 0 2px 6px rgba(31,92,167,.34); pointer-events: none; }
.v2-province-connector { position: absolute; top: -.5px; left: 0; width: var(--province-line); height: 1px; background: rgba(72,111,158,.46); pointer-events: none; transform: rotate(var(--province-angle)); transform-origin: 0 50%; }
.v2-province-marker { position: absolute; top: var(--province-y); left: var(--province-x); display: grid; width: 92px; min-height: 42px; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 7px; overflow: hidden; border: 1px solid rgba(126,164,216,.78); border-radius: 9px; background: rgba(255,255,255,.96); padding: 7px 9px; color: #27405f; box-shadow: 0 7px 22px rgba(31,65,112,.18); cursor: pointer; font-family: Inter,"PingFang SC","Microsoft YaHei",sans-serif; text-align: left; transform: translate(-50%,-50%) translateZ(0); transition: border-color .16s ease, box-shadow .16s ease, margin .16s ease; }
.v2-province-marker:hover { margin-top: -1px; border-color: #397fd7; box-shadow: 0 9px 26px rgba(31,92,167,.25); }
.v2-province-marker > span { min-width: 0; overflow: hidden; font-size: 12px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.v2-province-marker > strong { color: #1268f3; font-size: 20px; font-variant-numeric: tabular-nums; letter-spacing: -.5px; line-height: 1; }
.v2-map-state { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; gap: 9px; background: #eef3f7; color: #637083; font-size: 12px; }
.v2-map-state.is-loading { background: rgba(255,255,255,.82); backdrop-filter: blur(2px); }
.v2-map-state.is-error { flex-direction: column; padding: 20px; color: #b42318; text-align: center; }
.v2-map-state.is-error .v2-map-retry-action.semi-button { height: 32px; border: 1px solid #f2b8b5; border-radius: 7px; background: #fff; padding: 0 11px; color: #a61b13; font-size: 11px; font-weight: 700; box-shadow: 0 3px 10px rgba(180,35,24,.08); }
.v2-map-state.is-error .v2-map-retry-action.semi-button:hover { border-color: #df8a85; background: #fff8f7; }
.v2-map-legend { position: absolute; bottom: 12px; left: 50%; display: flex; width: max-content; max-width: calc(100% - 28px); height: 36px; align-items: center; justify-content: center; gap: 18px; border: 1px solid #d8e2ed; border-radius: 8px; background: #fff; padding: 0 16px; color: #5f6e82; box-shadow: 0 6px 18px rgba(21,32,51,.1); font-size: 9px; transform: translateX(-50%); }
.v2-map-legend span { display: inline-flex; align-items: center; gap: 5px; }
.v2-map-legend i { width: 7px; height: 7px; border-radius: 50%; background: #94a3b8; }
.v2-map-legend .is-driving { background: var(--v2-blue); }
.v2-map-legend .is-idle { background: var(--v2-green); }
.v2-map-legend .is-alert { background: var(--v2-red); }
.v2-map-legend b { margin-left: 6px; color: #4d5c70; font-weight: 600; }

.v2-vehicle-detail { position: relative; min-width: 0; min-height: 0; contain: layout paint; overflow: auto; border: 0; border-left: 1px solid var(--v2-border); border-radius: 0; background: #fff; padding: 14px; box-shadow: none; animation: v2-panel-enter .14s ease-out; }
.v2-vehicle-detail > .semi-card-body { min-height: 100%; }
.v2-detail-controls { position: absolute; top: 10px; right: 10px; z-index: 1; display: flex; gap: 4px; }
.v2-detail-controls .semi-button { display: grid; width: 28px; min-width: 28px; height: 28px; place-items: center; border: 1px solid #dce4ef; border-radius: 6px; background: #fff; padding: 0; color: #68768a; cursor: pointer; transition: border-color .16s, background .16s, color .16s; }
.v2-detail-controls .semi-button:hover { border-color: #a9c5f2; background: #f1f6ff; color: var(--v2-blue); }
.v2-detail-controls .semi-button:last-child:hover { border-color: #f0b9b9; background: #fff5f5; color: var(--v2-red); }
.v2-detail-title { padding: 2px 68px 12px 0; border-bottom: 1px solid var(--v2-border); }
.v2-detail-title > div { display: flex; align-items: center; gap: 8px; }
.v2-detail-title strong { font-size: 16px; }
.v2-detail-title small { display: block; margin-top: 4px; color: var(--v2-muted); font-size: 9px; }
.v2-status-text.semi-tag { flex: 0 0 auto; border-radius: 999px; font-size: 9px; font-weight: 700; }
.v2-status-text.is-driving { color: var(--v2-blue); }
.v2-status-text.is-idle, .v2-status-text.is-online { color: var(--v2-green); }
.v2-status-text.is-alert { color: var(--v2-red); }
.v2-detail-actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; padding: 10px 0; }
.v2-detail-actions a { display: flex; height: 30px; align-items: center; justify-content: center; border: 1px solid #dce4ef; border-radius: 6px; color: #59677c; text-decoration: none; font-size: 9px; font-weight: 700; }
.v2-detail-actions a:first-child { border-color: var(--v2-blue); background: var(--v2-blue); color: #fff; }
.v2-detail-peek { min-width: 0; min-height: 0; contain: layout paint; overflow: hidden; border: 0; border-left: 1px solid var(--v2-border); border-radius: 0; background: #fff; box-shadow: none; animation: v2-panel-enter .12s ease-out; }
.v2-detail-peek > .semi-card-body { height: 100%; }
.v2-detail-peek .semi-button { display: flex; width: 100%; height: 100%; align-items: center; border: 0; border-radius: 0; background: #fff; padding: 14px 8px; color: #65758a; cursor: pointer; transition: background .16s, color .16s; }
.v2-detail-peek .semi-button:hover { background: #f2f7ff; color: var(--v2-blue); }
.v2-detail-peek .semi-button-content { display: flex; align-items: center; flex-direction: column; gap: 10px; }
.v2-detail-peek .semi-button-content > svg { flex: 0 0 auto; font-size: 15px; }
.v2-detail-peek .semi-button-content > span { overflow: hidden; writing-mode: vertical-rl; color: #435168; font-size: 10px; font-weight: 700; letter-spacing: 1px; text-overflow: ellipsis; }
.v2-vehicle-detail section { padding: 10px 0; border-top: 1px solid var(--v2-border); }
.v2-vehicle-detail h3 { margin: 0 0 9px; font-size: 11px; }
.v2-detail-list { margin: 0; }
.v2-detail-list > div { display: grid; grid-template-columns: 78px minmax(0, 1fr); gap: 8px; padding: 5px 0; font-size: 9px; }
.v2-detail-list dt { color: var(--v2-muted); }
.v2-detail-list dd { min-width: 0; margin: 0; overflow-wrap: anywhere; color: #3d4a5e; }
.v2-metric-grid { display: grid; grid-template-columns: repeat(2, 1fr); border: 1px solid var(--v2-border); border-radius: 7px; }
.v2-metric-grid > div { min-width: 0; padding: 9px; }
.v2-metric-grid > div:nth-child(even) { border-left: 1px solid var(--v2-border); }
.v2-metric-grid > div:nth-child(n+3) { border-top: 1px solid var(--v2-border); }
.v2-metric-grid small { display: block; color: var(--v2-muted); font-size: 8px; }
.v2-metric-grid strong { display: block; margin-top: 4px; overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.v2-metric-grid em { margin-left: 2px; color: var(--v2-muted); font-size: 7px; font-style: normal; font-weight: 500; }
.v2-detail-source-summary { display: flex; align-items: center; gap: 7px; margin: 0 0 8px; }
.v2-detail-source-summary .semi-tag { flex: 0 0 auto; border-radius: 999px; font-size: 9px; }
.v2-detail-source-summary > span:not(.semi-tag) { overflow: hidden; color: var(--v2-muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.v2-gb-highlight-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 8px; overflow: hidden; border: 1px solid #dce8e2; border-radius: 8px; background: #f8fcfa; }
.v2-gb-highlight-grid > div { min-width: 0; padding: 8px 9px; border-top: 1px solid #e5eee9; }
.v2-gb-highlight-grid > div:nth-child(-n+2) { border-top: 0; }
.v2-gb-highlight-grid > div:nth-child(even) { border-left: 1px solid #e5eee9; }
.v2-gb-highlight-grid small { display: block; overflow: hidden; color: #678075; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.v2-gb-highlight-grid strong { display: block; margin-top: 3px; color: #203a30; font-size: 13px; font-variant-numeric: tabular-nums; }
.v2-gb-highlight-grid em { margin-left: 2px; color: #7e938a; font-size: 7px; font-style: normal; font-weight: 500; }
.v2-metric-source-link.semi-button, .v2-live-source-link { display: block; width: 100%; height: auto; margin-top: 4px; overflow: hidden; border: 0; background: transparent; padding: 0; color: inherit; cursor: pointer; text-align: left; text-overflow: ellipsis; white-space: nowrap; font-size: 15px; font-weight: 700; }
.v2-metric-source-link .semi-button-content { display: flex; width: 100%; min-width: 0; align-items: center; justify-content: space-between; gap: 6px; }
.v2-metric-source-link .semi-button-content > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.v2-metric-source-link .semi-button-content > svg { flex: 0 0 auto; color: #7f90a7; font-size: 12px; }
.v2-metric-source-link:hover, .v2-live-source-link:hover, .v2-detail-source-link:hover, .v2-map-source-link:hover { color: var(--v2-blue); }
.v2-detail-source-link.semi-button { max-width: 100%; height: auto; min-height: 0; overflow: hidden; border: 0; background: transparent; padding: 0; color: #3d4a5e; cursor: pointer; text-align: left; text-overflow: ellipsis; white-space: nowrap; font: inherit; }

.v2-source-evidence.semi-card { min-width: 0; border: 1px solid #dce5ef; border-radius: 10px; background: #fff; box-shadow: 0 4px 18px rgba(23,43,77,.045); }
.v2-source-evidence > .semi-card-body { min-width: 0; }
.v2-record-grid > .v2-source-evidence { grid-column: 1 / -1; }
.v2-source-evidence-trigger { display: flex; min-height: 54px; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; }
.v2-source-evidence-trigger > div { min-width: 0; }
.v2-source-evidence-trigger strong { display: block; color: #25344a; font-size: 12px; }
.v2-source-evidence-trigger span { display: block; margin-top: 3px; overflow: hidden; color: #79869a; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.v2-source-evidence-trigger button { flex: 0 0 auto; height: 30px; border: 1px solid #bfd4f6; border-radius: 7px; background: #f3f7ff; padding: 0 11px; color: var(--v2-blue); cursor: pointer; font-size: 9px; font-weight: 700; }
.v2-source-evidence-body { border-top: 1px solid var(--v2-border); padding: 12px 14px 14px; }
.v2-source-evidence-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 10px; }
.v2-source-evidence-toolbar label { display: flex; align-items: center; gap: 8px; color: #59677b; font-size: 9px; font-weight: 700; }
.v2-source-evidence-toolbar input { height: 30px; border: 1px solid #dce4ef; border-radius: 6px; background: #fff; padding: 0 8px; color: #344257; font-size: 9px; }
.v2-source-evidence-toolbar small { color: #8b96a8; font-size: 8px; }
.v2-source-evidence-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); overflow: hidden; border: 1px solid #dfe6ef; border-radius: 8px; background: #f8fafc; }
.v2-source-evidence-summary > div { min-width: 0; padding: 10px 12px; }
.v2-source-evidence-summary > div + div { border-left: 1px solid #e2e8f0; }
.v2-source-evidence-summary small { display: block; color: #7b8799; font-size: 8px; }
.v2-source-evidence-summary strong { display: block; margin-top: 4px; overflow: hidden; color: #26364c; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; font-variant-numeric: tabular-nums; }
.v2-source-evidence-summary em { margin-left: 3px; color: #8793a5; font-size: 8px; font-style: normal; font-weight: 500; }
.v2-source-evidence-group { margin-top: 12px; padding: 0; border: 0; }
.v2-source-evidence-group > header { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 7px; }
.v2-source-evidence-group > header strong { color: #314157; font-size: 11px; }
.v2-source-evidence-group > header span { color: #8995a7; font-size: 8px; }
.v2-source-evidence-group > div { display: grid; grid-template-columns: repeat(auto-fit,minmax(245px,1fr)); gap: 8px; }
.v2-source-evidence-card.semi-card { min-width: 0; overflow: hidden; border: 1px solid #dfe6ef; border-radius: 8px; background: #fff; box-shadow: 0 3px 12px rgba(31,53,80,.035); }
.v2-source-evidence-card.is-recommended { border-color: #8eb8f5; box-shadow: inset 3px 0 #3b82f6; }
.v2-source-evidence-card.is-warning { border-color: #f0c16f; box-shadow: inset 3px 0 #eaa126; }
.v2-source-evidence-card.is-disabled, .v2-source-evidence-card.is-offline { background: #fafbfc; opacity: .82; }
.v2-source-evidence-card > .semi-card-body > header { display: flex; min-height: 48px; align-items: center; justify-content: space-between; gap: 8px; border-bottom: 1px solid #edf1f5; padding: 8px 10px; }
.v2-source-evidence-card > .semi-card-body > header > div { min-width: 0; }
.v2-source-evidence-card > .semi-card-body > header strong { display: block; overflow: hidden; color: #2c3b50; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.v2-source-evidence-card > .semi-card-body > header > div > span { display: block; margin-top: 3px; overflow: hidden; color: #7e8a9c; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.v2-source-evidence-card > .semi-card-body > header aside { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; gap: 4px; }
.v2-source-evidence-card > .semi-card-body > header .semi-tag { max-width: 110px; overflow: hidden; border-radius: 10px; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.v2-source-evidence-card dl { display: grid; grid-template-columns: 1fr 1fr; margin: 0; padding: 5px 10px 8px; }
.v2-source-evidence-card dl > div { min-width: 0; padding: 5px 3px; }
.v2-source-evidence-card dt { color: #8b96a7; font-size: 7px; }
.v2-source-evidence-card dd { margin: 3px 0 0; overflow: hidden; color: #445268; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; font-variant-numeric: tabular-nums; }
.v2-source-evidence-card > .semi-card-body > p { margin: 0 10px 9px; border-radius: 5px; background: #fff7e8; padding: 6px 8px; color: #9a650b; font-size: 7px; line-height: 1.5; }
.v2-source-evidence-state { display: flex; min-height: 80px; align-items: center; justify-content: center; gap: 8px; color: #718096; font-size: 9px; }
.v2-source-evidence-state i { width: 16px; height: 16px; border: 2px solid #cbd8ea; border-top-color: var(--v2-blue); border-radius: 50%; animation: v2-spin .8s linear infinite; }
.v2-source-evidence-state.is-error { color: #b42318; }
.v2-source-evidence-state button { height: 28px; border: 1px solid #edb5b0; border-radius: 6px; background: #fff; padding: 0 9px; color: #a61b13; cursor: pointer; font-size: 8px; }
.v2-source-evidence-empty.semi-empty { min-height: 150px; padding: 20px; }
.v2-source-evidence-empty .semi-empty-title { color: #526176; font-size: 11px; }
.v2-source-evidence-empty .semi-empty-description { color: #8b96a8; font-size: 9px; }
.v2-source-evidence.is-compact { margin-top: 10px; border-right: 0; border-left: 0; border-radius: 0; box-shadow: none; }
.v2-source-evidence.is-compact .v2-source-evidence-trigger { padding: 9px 0; }
.v2-source-evidence.is-compact .v2-source-evidence-body { padding: 10px 0 2px; }
.v2-source-evidence.is-compact .v2-source-evidence-toolbar { align-items: flex-start; flex-direction: column; gap: 7px; }
.v2-source-evidence.is-compact .v2-source-evidence-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
.v2-source-evidence.is-compact .v2-source-evidence-summary > div:nth-child(3) { border-left: 0; }
.v2-source-evidence.is-compact .v2-source-evidence-summary > div:nth-child(n+3) { border-top: 1px solid #e2e8f0; }
.v2-source-evidence.is-compact .v2-source-evidence-group > div { grid-template-columns: 1fr; }
.v2-vehicle-detail .v2-source-evidence-group { padding: 0; border-top: 0; }

.v2-event-strip.semi-card { min-height: 48px; border: 1px solid #dfe6ef; border-radius: 8px; background: #fff; box-shadow: 0 3px 12px rgba(21,32,51,.035); color: #6d7a8d; font-size: 10px; }
.v2-event-strip > .semi-card-body { display: flex; min-height: 46px; align-items: center; gap: 22px; padding: 0 16px; }
.v2-event-strip strong { color: var(--v2-text); font-size: 11px; }
.v2-event-strip span { display: inline-flex; align-items: center; gap: 6px; }
.v2-event-strip i { width: 7px; height: 7px; border-radius: 50%; background: var(--v2-green); }
.v2-event-strip time { margin-left: auto; font-variant-numeric: tabular-nums; }
.v2-event-strip .semi-tag { flex: 0 0 auto; border-radius: 999px; font-size: 9px; }
.v2-monitor-live-tag.semi-tag { display: inline-flex; align-items: center; gap: 5px; }
.v2-refresh-cadence { border-left: 1px solid var(--v2-border); padding-left: 18px; }
.v2-refresh-cadence b { color: var(--v2-blue); font-weight: 700; }

.v2-page-state, .v2-inline-state { display: flex; align-items: center; justify-content: center; gap: 9px; color: var(--v2-muted); font-size: 12px; }
.v2-page-state { min-height: 100%; flex-direction: column; gap: 18px; padding: clamp(18px, 3vw, 36px); }
.v2-page-state > header { display: flex; align-items: center; gap: 10px; }
.v2-page-state > header strong, .v2-page-state > header small { display: block; }
.v2-page-state > header strong { color: var(--v2-text); font-size: 13px; }
.v2-page-state > header small { margin-top: 3px; color: var(--v2-muted); font-size: 9px; }
.v2-page-skeleton { display: grid; width: min(920px, 100%); grid-template-columns: repeat(3,1fr); gap: 10px; }
.v2-page-skeleton i { min-height: 72px; border: 1px solid #edf1f6; border-radius: 10px; background: linear-gradient(100deg,#f4f7fb 25%,#edf3fa 38%,#f4f7fb 55%); background-size: 300% 100%; animation: v2-skeleton 1.4s ease infinite; }
.v2-page-skeleton i:last-child { min-height: 260px; grid-column: 1 / -1; }
.v2-route-error { display: grid; min-height: 100%; place-items: center; padding: 28px; background: #f6f8fb; }
.v2-root-error { min-height: 100vh; }
.v2-route-error > span { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 16px; background: #fff1f2; color: #dc2626; font-size: 24px; }
.v2-route-error > div { width: 100%; max-width: 560px; min-width: 0; text-align: center; }
.v2-route-error small { color: #b45309; font-size: 10px; font-weight: 700; }
.v2-route-error h2 { margin: 8px 0; color: var(--v2-text); font-size: 21px; }
.v2-route-error p { margin: 0 auto; color: var(--v2-muted); font-size: 12px; line-height: 1.7; }
.v2-route-error code { display: block; margin-top: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #9b1c1c; font-size: 9px; }
.v2-recovery-actions { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.v2-route-error .v2-recovery-actions > .semi-button { height: 38px; border-radius: 8px; padding: 0 14px; font-size: 11px; font-weight: 700; }
.v2-route-error .v2-recovery-actions > .semi-button-primary { box-shadow: 0 5px 14px rgba(18,104,243,.18); }
@media (max-width: 680px) {
  .v2-route-error {
    overflow: hidden;
    padding: 20px 16px;
  }
  .v2-route-error > span {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    font-size: 22px;
  }
  .v2-route-error h2 {
    margin: 7px 0;
    font-size: 20px;
    line-height: 1.35;
  }
  .v2-route-error p {
    font-size: 11px;
    line-height: 1.65;
  }
  .v2-route-error code {
    max-height: 44px;
    overflow: auto;
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.5;
  }
  .v2-route-error .v2-recovery-actions {
    display: grid;
    width: 100%;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }
  .v2-route-error .v2-recovery-actions > .semi-button {
    width: 100%;
    height: 42px;
    justify-content: center;
    font-size: 12px;
  }
}

/* Semi UI account workspace: consistent identity, authorization cards, and audit history. */
.v2-user-list > .semi-card-body > .v2-user-list-card.semi-card {
  width: 100%;
  overflow: hidden;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  box-shadow: none;
  content-visibility: auto;
  contain-intrinsic-size: auto 64px;
  transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease;
}
.v2-user-list > .semi-card-body > .v2-user-list-card.semi-card:hover {
  border-color: #e1e8f1;
  background: #f3f7fc;
}
.v2-user-list > .semi-card-body > .v2-user-list-card.is-active.semi-card {
  border-color: #c8dcfb;
  background: linear-gradient(100deg, #eaf3ff 0%, #f4f8ff 100%);
  box-shadow: inset 3px 0 var(--v2-blue), 0 3px 10px rgba(54,102,174,.08);
}
.v2-user-list-card .v2-user-list-item.semi-button {
  display: flex;
  width: 100%;
  height: auto;
  min-height: 60px;
  justify-content: stretch;
  border-radius: 0;
  background: transparent;
  padding: 9px 10px;
  color: #273750;
  text-align: left;
}
.v2-user-list-card .v2-user-list-item.semi-button:hover { background: transparent; }
.v2-user-list-item .semi-button-content {
  display: grid;
  width: 100%;
  min-width: 0;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
}
.v2-user-avatar.semi-avatar {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 800;
}
.v2-user-list-identity {
  min-width: 0;
}
.v2-user-list-identity b,
.v2-user-list-identity small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-user-list-identity b {
  color: #26384f;
  font-size: 12px;
}
.v2-user-list-identity small {
  margin-top: 4px;
  color: #8290a3;
  font-size: 9px;
}
.v2-user-status-tag.semi-tag {
  min-height: 23px;
  border-radius: 7px;
  padding-inline: 7px;
  font-size: 9px;
  font-weight: 700;
}
.v2-user-status-tag.is-enabled.semi-tag {
  background: #eaf8f2;
  color: #167759;
}
.v2-user-list-trailing {
  display: flex;
  align-items: center;
  gap: 3px;
}
.v2-user-list-trailing > svg {
  width: 13px;
  height: 13px;
  color: #9aa7b8;
}
.v2-user-list-card.is-active .v2-user-list-trailing > svg { color: var(--v2-blue); }
.v2-assigned-vins > .v2-assigned-vehicle-card.semi-card {
  min-width: 0;
  overflow: visible;
  border-color: #dbe4ef;
  border-radius: 10px;
  background: linear-gradient(180deg, #fbfdff 0%, #f7f9fc 100%);
  padding: 10px;
  box-shadow: 0 2px 8px rgba(27,43,65,.035);
  transition: border-color .16s ease, box-shadow .16s ease;
}
.v2-assigned-vins > .v2-assigned-vehicle-card.semi-card:hover {
  border-color: #c5d6e9;
  box-shadow: 0 5px 16px rgba(27,43,65,.07);
}
.v2-assigned-vehicle-card > .semi-card-body > header {
  display: flex;
  min-width: 0;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}
.v2-assigned-vehicle-card > .semi-card-body > header > span {
  min-width: 0;
}
.v2-assigned-vehicle-card > .semi-card-body > header b,
.v2-assigned-vehicle-card > .semi-card-body > header small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-assigned-vehicle-card > .semi-card-body > header b {
  color: #2c4058;
  font-size: 12px;
}
.v2-assigned-vehicle-card > .semi-card-body > header small {
  margin-top: 3px;
  color: #8996a8;
  font: 9px ui-monospace, SFMono-Regular, Menlo, monospace;
}
.v2-assigned-vehicle-card > .semi-card-body > header .semi-button {
  width: 28px;
  min-width: 28px;
  height: 28px;
  flex: 0 0 28px;
  border-radius: 7px;
  padding: 0;
  color: #8795a7;
}
.v2-assigned-vehicle-card > .semi-card-body > header .semi-button:hover {
  background: #fff0ef;
  color: var(--v2-red);
}
.v2-assigned-vehicle-card > .semi-card-body > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}
.v2-grant-history.semi-collapse {
  margin-top: 12px;
  overflow: hidden;
  border: 1px solid #dfe7f0;
  border-radius: 10px;
  background: #fff;
}
.v2-grant-history > .semi-collapse-item {
  display: block;
  max-height: none;
  grid-template-columns: none;
  overflow: visible;
  border-top: 0;
  padding: 0;
}
.v2-grant-history .semi-collapse-item {
  border-bottom: 0;
}
.v2-grant-history .semi-collapse-header {
  min-height: 42px;
  border-radius: 0;
  background: linear-gradient(180deg, #fbfdff, #f7faff);
  padding: 0 12px;
  color: #42566f;
}
.v2-grant-history .semi-collapse-header:hover {
  background: #f3f7fd;
}
.v2-grant-history .semi-collapse-header-right {
  width: 100%;
}
.v2-grant-history-title {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 750;
}
.v2-grant-history-title .semi-tag {
  min-height: 22px;
  border-radius: 6px;
  font-size: 9px;
}
.v2-grant-history .semi-collapse-content {
  border-top: 1px solid #e8eef5;
  background: #fff;
}
.v2-grant-history .semi-collapse-content-wrapper {
  padding: 0;
}
.v2-grant-history-list {
  display: grid;
  max-height: 270px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  overflow: auto;
  padding: 8px;
}
.v2-grant-history-card.semi-card {
  min-width: 0;
  border-color: #e5ebf2;
  border-radius: 9px;
  background: #f8fafc;
  padding: 10px;
  box-shadow: none;
}
.v2-grant-history-card > .semi-card-body > header {
  display: flex;
  min-width: 0;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}
.v2-grant-history-card > .semi-card-body > header > span {
  min-width: 0;
}
.v2-grant-history-card > .semi-card-body > header strong,
.v2-grant-history-card > .semi-card-body > header small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-grant-history-card > .semi-card-body > header strong {
  color: #30445c;
  font-size: 11px;
}
.v2-grant-history-card > .semi-card-body > header small {
  margin-top: 3px;
  color: #8290a3;
  font: 9px ui-monospace, SFMono-Regular, Menlo, monospace;
}
.v2-grant-history-card > .semi-card-body > header .semi-tag {
  min-height: 22px;
  flex: 0 0 auto;
  border-radius: 6px;
  font-size: 9px;
}
.v2-grant-history-card > .semi-card-body > p {
  margin: 8px 0 5px;
  color: #50647c;
  font-size: 10px;
  font-variant-numeric: tabular-nums;
}
.v2-grant-history-card > .semi-card-body > p i {
  margin: 0 3px;
  color: #9ba7b6;
  font-style: normal;
}
.v2-grant-history-card > .semi-card-body > small {
  color: #8996a7;
  font-size: 9px;
  line-height: 1.5;
}

@media (max-width: 680px) {
  .v2-user-list > .semi-card-body > .v2-user-list-card.semi-card {
    min-width: 230px;
    flex: 0 0 230px;
    contain-intrinsic-size: auto 66px;
  }
  .v2-user-list-card .v2-user-list-item.semi-button {
    min-height: 64px;
  }
  .v2-user-list-item .semi-button-content {
    grid-template-columns: 40px minmax(0, 1fr) auto;
  }
  .v2-user-avatar.semi-avatar {
    width: 40px;
    height: 40px;
  }
  .v2-user-list-identity b {
    font-size: 13px;
  }
  .v2-user-list-identity small,
  .v2-user-status-tag.semi-tag {
    font-size: 10px;
  }
  .v2-assigned-vehicle-card > .semi-card-body > div,
  .v2-grant-history-list {
    grid-template-columns: 1fr;
  }
  .v2-assigned-vins > .v2-assigned-vehicle-card.semi-card {
    padding: 12px;
  }
  .v2-assigned-vehicle-card > .semi-card-body > header b {
    font-size: 13px;
  }
  .v2-grant-history .semi-collapse-header {
    min-height: 46px;
  }
  .v2-grant-history-title {
    font-size: 12px;
  }
}

/* Semi UI shared vehicle candidates: one visual and interaction language across search surfaces. */
.v2-vehicle-candidate-list {
  --candidate-row-height: 52px;
  color: var(--v2-text);
}
.v2-vehicle-candidate-list > header {
  display: flex;
  min-height: 38px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid #e9eef5;
  background: linear-gradient(180deg, #fbfdff 0%, #f7faff 100%);
  padding: 0 12px;
  color: #52647a;
  font-size: 10px;
  font-weight: 700;
}
.v2-vehicle-candidate-list > header em {
  color: #8b98aa;
  font-size: 9px;
  font-style: normal;
  font-weight: 500;
}
.v2-vehicle-candidate-list > .v2-vehicle-option.semi-button {
  display: flex;
  width: 100%;
  height: auto;
  min-height: var(--candidate-row-height);
  justify-content: stretch;
  border: 0;
  border-bottom: 1px solid #edf2f7;
  border-radius: 0;
  background: #fff;
  padding: 7px 10px;
  color: var(--v2-text);
  text-align: left;
  transition: background-color .16s ease, box-shadow .16s ease;
}
.v2-vehicle-candidate-list > .v2-vehicle-option.semi-button:last-of-type {
  border-bottom-color: transparent;
}
.v2-vehicle-candidate-list > .v2-vehicle-option.semi-button:hover:not(.semi-button-disabled) {
  background: #f4f8ff;
  box-shadow: inset 3px 0 0 #79a8f5;
}
.v2-vehicle-candidate-list > .v2-vehicle-option.is-selected.semi-button {
  background: #f0f6ff;
  box-shadow: inset 3px 0 0 var(--v2-blue);
}
.v2-vehicle-candidate-list > .v2-vehicle-option.semi-button-disabled {
  cursor: default;
  opacity: 1;
}
.v2-vehicle-option .semi-button-content {
  display: grid;
  width: 100%;
  min-width: 0;
  grid-template-columns: minmax(150px, .9fr) minmax(0, 1.2fr) auto;
  align-items: center;
  gap: 10px;
}
.v2-vehicle-option-identity {
  display: block;
  min-width: 0;
}
.v2-vehicle-option-identity strong,
.v2-vehicle-option-identity small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-vehicle-option-identity strong {
  color: #26384f;
  font-size: 11px;
  font-weight: 750;
}
.v2-vehicle-option-identity small {
  margin-top: 3px;
  color: #8a97a9;
  font: 9px ui-monospace, SFMono-Regular, Menlo, monospace;
}
.v2-vehicle-option-protocols {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: 4px;
}
.v2-vehicle-option-protocols .semi-tag,
.v2-vehicle-option-action.semi-tag {
  min-height: 22px;
  border-radius: 6px;
  padding-inline: 7px;
  font-size: 9px;
  font-weight: 650;
}
.v2-vehicle-option-action.semi-tag {
  justify-self: end;
}
.v2-vehicle-candidate-state {
  display: flex;
  min-height: 58px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px;
  color: #7d8b9e;
  font-size: 10px;
}
.v2-vehicle-candidate-state.is-empty {
  background: linear-gradient(180deg, #fff, #fbfcfe);
}
.v2-vehicle-candidate-list.is-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  padding: 6px;
}
.v2-vehicle-candidate-list.is-grid > header,
.v2-vehicle-candidate-list.is-grid > footer,
.v2-vehicle-candidate-list.is-grid > .v2-vehicle-candidate-state,
.v2-vehicle-candidate-list.is-grid > .v2-vehicle-option-error {
  grid-column: 1 / -1;
}
.v2-vehicle-candidate-list.is-grid > .v2-vehicle-option.semi-button {
  min-height: 58px;
  border: 1px solid #e5ebf3;
  border-radius: 9px;
  padding: 8px 9px;
}
.v2-vehicle-candidate-list.is-grid > .v2-vehicle-option .semi-button-content {
  grid-template-columns: minmax(0, 1fr) auto;
}
.v2-source-candidates.v2-vehicle-candidate-list > footer {
  position: sticky;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid #e5ebf3;
  background: rgba(255,255,255,.96);
  padding: 8px 10px;
  backdrop-filter: blur(8px);
}
.v2-source-candidates.v2-vehicle-candidate-list > footer > span {
  color: #7c899b;
  font-size: 9px;
}
.v2-source-candidates.v2-vehicle-candidate-list > footer > div {
  display: flex;
  gap: 6px;
}
.v2-source-candidates.v2-vehicle-candidate-list > footer .semi-button {
  min-height: 28px;
  border-radius: 7px;
}
.v2-track-vehicle-options.v2-vehicle-candidate-list,
.v2-mileage-options.v2-vehicle-candidate-list {
  max-height: min(360px, 48vh);
  overflow: auto;
}
.v2-track-vehicle-options.v2-vehicle-candidate-list > .v2-vehicle-option .semi-button-content,
.v2-mileage-options.v2-vehicle-candidate-list > .v2-vehicle-option .semi-button-content {
  grid-template-columns: minmax(100px, .7fr) minmax(150px, 1fr) auto;
}

@media (max-width: 680px) {
  .v2-vehicle-candidate-list {
    --candidate-row-height: 60px;
  }
  .v2-vehicle-candidate-list.is-grid {
    grid-template-columns: 1fr;
  }
  .v2-vehicle-candidate-list > header {
    min-height: 42px;
    font-size: 12px;
  }
  .v2-vehicle-candidate-list > header em {
    font-size: 10px;
  }
  .v2-vehicle-option .semi-button-content,
  .v2-track-vehicle-options.v2-vehicle-candidate-list > .v2-vehicle-option .semi-button-content,
  .v2-mileage-options.v2-vehicle-candidate-list > .v2-vehicle-option .semi-button-content {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
  }
  .v2-vehicle-option-protocols {
    grid-column: 1;
  }
  .v2-vehicle-option-action.semi-tag {
    grid-column: 2;
    grid-row: 1 / span 2;
  }
  .v2-vehicle-option-identity strong {
    font-size: 13px;
  }
  .v2-vehicle-option-identity small {
    font-size: 10px;
  }
  .v2-vehicle-option-protocols .semi-tag,
  .v2-vehicle-option-action.semi-tag {
    min-height: 24px;
    font-size: 10px;
  }
}
.v2-inline-state { min-height: 76px; border: 1px dashed var(--v2-border); border-radius: 8px; padding: 12px; }
.v2-inline-state.is-error { justify-content: flex-start; min-height: 42px; border-style: solid; border-color: #fecaca; background: #fff5f5; color: #b42318; }
.v2-inline-state button { display: inline-flex; align-items: center; gap: 5px; margin-left: auto; border: 0; background: transparent; color: inherit; cursor: pointer; font-size: 11px; }
.v2-spinner { width: 14px; height: 14px; border: 2px solid #cfe0fb; border-top-color: var(--v2-blue); border-radius: 50%; animation: v2-spin .8s linear infinite; }
@keyframes v2-skeleton { 0% { background-position: 100% 0; } 100% { background-position: 0 0; } }
.v2-module-stage { margin: 18px; border: 1px solid var(--v2-border); border-radius: var(--v2-radius); background: #fff; padding: 28px; box-shadow: var(--v2-shadow); }
.v2-module-stage h2 { margin: 0; font-size: 20px; }
.v2-module-stage p { margin: 10px 0 0; color: var(--v2-muted); font-size: 13px; }

.v2-ops-page { display: flex; min-height: 100%; flex-direction: column; gap: 10px; padding: 12px 16px 16px; }
.v2-ops-heading { display: flex; align-items: center; justify-content: space-between; }.v2-ops-heading h2 { margin: 0; font-size: 18px; }.v2-ops-heading p { margin: 4px 0 0; color: var(--v2-muted); font-size: 10px; }.v2-ops-heading button { display: flex; height: 32px; align-items: center; gap: 6px; border: 1px solid #dce4ef; border-radius: 7px; background: #fff; padding: 0 11px; color: #526176; cursor: pointer; font-size: 10px; }
.v2-ops-kpis { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; }.v2-ops-kpi-card.semi-card { min-width: 0; overflow: hidden; border: 1px solid var(--v2-border); border-radius: var(--v2-radius); background: #fff; box-shadow: var(--v2-shadow); content-visibility: auto; contain-intrinsic-size: auto 104px; }.v2-ops-kpi-card > .semi-card-body { min-height: 96px; padding: 13px 15px !important; }.v2-ops-kpis small { display: block; color: var(--v2-muted); font-size: 9px; }.v2-ops-kpis strong { display: block; margin: 6px 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 16px; }.v2-ops-kpis span { color: #8793a5; font-size: 8px; }
.v2-ops-grid { display: grid; min-height: 280px; grid-template-columns: minmax(460px,1.5fr) minmax(280px,.8fr); gap: 10px; }.v2-ops-panel.semi-card { overflow: hidden; border: 1px solid var(--v2-border); border-radius: var(--v2-radius); background: #fff; box-shadow: var(--v2-shadow); }
.v2-ops-links article { display: grid; min-height: 46px; grid-template-columns: 8px minmax(0,1fr) auto; align-items: center; gap: 9px; border-bottom: 1px solid #eef2f7; padding: 7px 13px; }.v2-ops-links article > i, .v2-ops-sources article i { width: 7px; height: 7px; border-radius: 50%; background: #94a3b8; }.v2-ops-links article > i.is-ok, .v2-ops-sources article i.is-ok { background: var(--v2-green); }.v2-ops-links article > i.is-warning, .v2-ops-sources article i.is-warning { background: var(--v2-orange); }.v2-ops-links article > i.is-error, .v2-ops-sources article i.is-error { background: var(--v2-red); }.v2-ops-links article strong { font-size: 9px; }.v2-ops-links article p { margin: 3px 0 0; color: var(--v2-muted); font-size: 8px; }.v2-ops-links article > span { border-radius: 10px; background: #f1f5f9; padding: 3px 7px; color: #64748b; font-size: 8px; }
.v2-ops-runtime dl { margin: 0; padding: 7px 13px; }.v2-ops-runtime dl div { display: flex; min-height: 31px; align-items: center; justify-content: space-between; border-bottom: 1px solid #eef2f7; font-size: 9px; }.v2-ops-runtime dt { color: var(--v2-muted); }.v2-ops-runtime dd { margin: 0; }.v2-ops-clear, .v2-ops-findings { margin: 4px 13px 12px; border-radius: 6px; background: #f1fbf7; padding: 8px; color: #17815d; font-size: 8px; }.v2-ops-findings { background: #fff7ed; color: #b45309; }.v2-ops-findings p { margin: 3px 0; }
.v2-ops-sources > .semi-card-body > div { display: grid; grid-template-columns: repeat(3,1fr); }.v2-ops-sources article { min-width: 0; padding: 12px 14px; }.v2-ops-sources article + article { border-left: 1px solid var(--v2-border); }.v2-ops-sources article > div { display: flex; align-items: center; gap: 7px; }.v2-ops-sources article strong { font-size: 10px; }.v2-ops-sources article span { margin-left: auto; color: var(--v2-muted); font-size: 8px; }.v2-ops-sources article b { display: block; margin-top: 9px; font-size: 14px; }.v2-ops-sources article p { margin: 6px 0 0; color: #68768a; font-size: 8px; line-height: 1.45; }.v2-ops-sources article em { display: block; margin-top: 7px; color: var(--v2-blue); font-size: 8px; font-style: normal; }.is-ok { color: var(--v2-green) !important; }.is-warning { color: #b87900 !important; }.is-error { color: var(--v2-red) !important; }
.v2-reconcile-center.semi-card { position: relative; overflow: hidden; border: 1px solid #cbd8e8; border-radius: 14px; background: #fff; box-shadow: 0 10px 32px rgba(31,53,80,.09); }
.v2-reconcile-heading { display: flex; min-height: 68px; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid #e2e9f2; padding: 12px 16px; background: linear-gradient(105deg,#f7fbff 0%,#f2f7ff 58%,#eef5ff 100%); }.v2-reconcile-heading > div { display: grid; gap: 3px; }.v2-reconcile-heading small { color: #557494; font-size: 11px; }.v2-reconcile-heading strong { color: #17283b; font-size: 18px; }.v2-reconcile-heading span { color: #64758a; font-size: 12px; }.v2-reconcile-heading button { display: inline-flex; height: 36px; flex: 0 0 auto; align-items: center; gap: 6px; border: 1px solid #c5d4e5; border-radius: 8px; background: #fff; padding: 0 13px; color: #355272; cursor: pointer; font-size: 12px; }
.v2-reconcile-kpis { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; border-bottom: 1px solid #e3eaf2; background: #f7f9fc; padding: 10px; }.v2-reconcile-kpi-card.semi-card { min-width: 0; border: 1px solid #dfe7f1; border-radius: 10px; background: #fff; box-shadow: 0 5px 16px rgba(31,53,80,.045); content-visibility: auto; contain-intrinsic-size: auto 88px; }.v2-reconcile-kpi-card > .semi-card-body { min-height: 82px; padding: 12px 14px !important; }.v2-reconcile-kpis small { display: block; color: #748398; font-size: 11px; }.v2-reconcile-kpis strong { display: block; margin: 5px 0 2px; color: #17283b; font-size: 22px; line-height: 1.1; }.v2-reconcile-kpis span { color: #8794a6; font-size: 10px; }.v2-reconcile-kpi-card.is-active strong { color: #2464c8; }.v2-reconcile-kpi-card.is-overdue strong { color: #c2413d; }
.v2-reconcile-layout { position: relative; display: grid; min-height: 480px; grid-template-columns: minmax(0,1fr) 260px; }.v2-reconcile-main { display: flex; min-width: 0; flex-direction: column; border-right: 1px solid #e3eaf2; }.v2-reconcile-toolbar { display: grid; grid-template-columns: minmax(240px,1fr) repeat(3,minmax(130px,auto)); gap: 8px; border-bottom: 1px solid #e7edf4; padding: 10px 12px; }.v2-reconcile-toolbar select, .v2-reconcile-search { height: 36px; border: 1px solid #d7e0eb; border-radius: 8px; background: #fff; color: #33465c; font-size: 12px; }.v2-reconcile-toolbar select { min-width: 0; padding: 0 10px; }.v2-reconcile-search { display: flex; align-items: center; gap: 8px; padding: 0 11px; }.v2-reconcile-search svg { color: #71849a; }.v2-reconcile-search input { width: 100%; min-width: 0; border: 0; outline: 0; color: #23374e; font: inherit; }
.v2-reconcile-table-wrap { min-height: 360px; flex: 1; overflow: auto; }.v2-reconcile-table { width: 100%; min-width: 920px; border-collapse: collapse; table-layout: fixed; }.v2-reconcile-table th { position: sticky; z-index: 1; top: 0; height: 38px; background: #f7f9fc; padding: 0 11px; color: #718095; font-size: 11px; font-weight: 600; text-align: left; }.v2-reconcile-table th:nth-child(1) { width: 72px; }.v2-reconcile-table th:nth-child(2) { width: 27%; }.v2-reconcile-table th:nth-child(3) { width: 19%; }.v2-reconcile-table th:nth-child(4) { width: 15%; }.v2-reconcile-table th:nth-child(5) { width: 21%; }.v2-reconcile-table th:nth-child(6) { width: 112px; }.v2-reconcile-table tbody tr { cursor: pointer; border-top: 1px solid #edf1f6; outline: none; }.v2-reconcile-table tbody tr:hover, .v2-reconcile-table tbody tr:focus-visible { background: #f7fbff; }.v2-reconcile-table tbody tr.is-selected { background: #eef6ff; box-shadow: inset 3px 0 #3478d4; }.v2-reconcile-table td { height: 62px; padding: 8px 11px; vertical-align: middle; }.v2-reconcile-table td strong { display: block; overflow: hidden; color: #263a50; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }.v2-reconcile-table td span:not(.v2-reconcile-severity):not(.v2-reconcile-status) { display: block; margin-top: 4px; overflow: hidden; color: #8290a2; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.v2-reconcile-severity, .v2-reconcile-status { display: inline-flex; min-height: 24px; align-items: center; border-radius: 999px; padding: 0 8px; font-size: 10px; font-weight: 600; }.v2-reconcile-severity.is-critical { background: #fff0ef; color: #c53c36; }.v2-reconcile-severity.is-major { background: #fff6e5; color: #a96600; }.v2-reconcile-severity.is-minor { background: #eef4fa; color: #60758d; }.v2-reconcile-status { background: #edf3fb; color: #426485; }.v2-reconcile-status.is-pending { background: #fff4df; color: #a45f00; }.v2-reconcile-status.is-confirmed_source_a, .v2-reconcile-status.is-confirmed_source_b { background: #e9f2ff; color: #2464c8; }.v2-reconcile-status.is-recovered, .v2-reconcile-status.is-fixed { background: #eaf8f2; color: #167759; }
.v2-reconcile-empty { margin: 0; padding: 34px 16px; color: #77879a; font-size: 12px; text-align: center; }.v2-reconcile-pagination { display: flex; min-height: 46px; align-items: center; justify-content: space-between; border-top: 1px solid #e6edf4; padding: 7px 12px; color: #728197; font-size: 11px; }.v2-reconcile-pagination div { display: flex; gap: 6px; }.v2-reconcile-pagination button { height: 30px; border: 1px solid #d5dfeb; border-radius: 7px; background: #fff; padding: 0 11px; color: #405870; cursor: pointer; font-size: 11px; }.v2-reconcile-pagination button:disabled { cursor: not-allowed; opacity: .45; }
.v2-reconcile-trend.semi-card { border: 0; border-radius: 0; background: #fbfcfe; box-shadow: none; }.v2-reconcile-trend > .semi-card-body { padding: 12px !important; }.v2-reconcile-trend > .semi-card-body > header { display: grid; gap: 3px; margin-bottom: 10px; }.v2-reconcile-trend header strong { color: #273b51; font-size: 13px; }.v2-reconcile-trend header span, .v2-reconcile-trend > .semi-card-body > p { color: #8390a2; font-size: 10px; }.v2-reconcile-trend article { display: grid; min-height: 25px; grid-template-columns: 36px minmax(0,1fr) 28px; align-items: center; gap: 7px; }.v2-reconcile-trend time, .v2-reconcile-trend article b { color: #718197; font-size: 9px; font-weight: 500; }.v2-reconcile-trend article > div { position: relative; height: 12px; border-radius: 3px; background: #edf2f7; overflow: hidden; }.v2-reconcile-trend article i { position: absolute; left: 0; height: 4px; }.v2-reconcile-trend article i.is-active { top: 0; background: #4c7fc4; }.v2-reconcile-trend article i.is-new { top: 4px; background: #e2a237; }.v2-reconcile-trend article i.is-recovered { top: 8px; background: #35a37b; }.v2-reconcile-trend > .semi-card-body > footer { display: flex; gap: 10px; margin-top: 10px; color: #758398; font-size: 9px; }.v2-reconcile-trend footer span { display: inline-flex; align-items: center; gap: 4px; }.v2-reconcile-trend footer i { width: 7px; height: 7px; border-radius: 2px; }.v2-reconcile-trend footer i.is-active { background: #4c7fc4; }.v2-reconcile-trend footer i.is-new { background: #e2a237; }.v2-reconcile-trend footer i.is-recovered { background: #35a37b; }
.v2-reconcile-detail.semi-card { position: fixed; z-index: 31; top: 68px; right: 0; bottom: 0; width: min(460px,52vw); overflow: hidden; border: 0; border-left: 1px solid #c9d7e7; border-radius: 0; background: #fff; box-shadow: -14px 0 34px rgba(25,48,75,.15); }.v2-reconcile-detail > .semi-card-body { height: 100%; }.v2-reconcile-detail > .semi-card-body > header { display: flex; min-height: 66px; align-items: flex-start; justify-content: space-between; gap: 12px; border-bottom: 1px solid #e3eaf2; padding: 12px 14px; background: #f6f9fd; }.v2-reconcile-detail > .semi-card-body > header div { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: 5px 8px; }.v2-reconcile-detail > .semi-card-body > header span { border-radius: 999px; background: #edf2f7; padding: 3px 7px; font-size: 10px; }.v2-reconcile-detail > .semi-card-body > header span.is-critical { background: #fff0ef; color: #c53c36; }.v2-reconcile-detail > .semi-card-body > header span.is-major { background: #fff6e5; color: #a96600; }.v2-reconcile-detail > .semi-card-body > header strong { width: 100%; color: #21364d; font-size: 15px; }.v2-reconcile-detail > .semi-card-body > header small { color: #738297; font-size: 10px; }.v2-reconcile-detail > .semi-card-body > header button { border: 0; background: transparent; color: #6f8093; cursor: pointer; font-size: 24px; line-height: 1; }.v2-reconcile-detail-body { height: calc(100% - 66px); padding: 12px 14px 20px; overflow: auto; }.v2-reconcile-identity { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border: 1px solid #e1e8f0; border-radius: 9px; overflow: hidden; }.v2-reconcile-identity div { min-width: 0; padding: 10px; }.v2-reconcile-identity div + div { border-left: 1px solid #e5ebf2; }.v2-reconcile-identity small, .v2-reconcile-identity span { display: block; color: #8491a2; font-size: 9px; }.v2-reconcile-identity strong { display: block; margin: 4px 0; overflow: hidden; color: #2b3e54; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }.v2-reconcile-summary { margin: 11px 0; border-radius: 8px; background: #f3f7fb; padding: 10px 12px; color: #4b5e73; font-size: 11px; line-height: 1.55; }
.v2-reconcile-evidence.semi-card, .v2-reconcile-review.semi-card, .v2-reconcile-actions.semi-card { margin-top: 12px; overflow: hidden; border: 1px solid #e0e7ef; border-radius: 9px; box-shadow: none; }.v2-reconcile-evidence > .semi-card-body > header, .v2-reconcile-review > .semi-card-body > header, .v2-reconcile-actions > .semi-card-body > header { display: flex; min-height: 39px; align-items: center; justify-content: space-between; border-bottom: 1px solid #e5ebf2; padding: 0 11px; background: #fafbfd; }.v2-reconcile-evidence header strong, .v2-reconcile-review header strong, .v2-reconcile-actions header strong { color: #34495f; font-size: 11px; }.v2-reconcile-evidence header span, .v2-reconcile-review header span, .v2-reconcile-actions header span { color: #8794a4; font-size: 9px; }.v2-reconcile-evidence dl { margin: 0; }.v2-reconcile-evidence dl div { display: grid; grid-template-columns: 118px minmax(0,1fr); border-top: 1px solid #eef2f6; }.v2-reconcile-evidence dl div:first-child { border-top: 0; }.v2-reconcile-evidence dt { padding: 9px 10px; background: #fafbfd; color: #708095; font-size: 9px; }.v2-reconcile-evidence dd { min-width: 0; margin: 0; padding: 8px 10px; }.v2-reconcile-evidence pre { margin: 0; overflow: auto; color: #30475f; font: 10px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace; white-space: pre-wrap; word-break: break-word; }
.v2-reconcile-review > .semi-card-body { padding-bottom: 11px !important; }.v2-reconcile-review > .semi-card-body > header { margin-bottom: 9px; }.v2-reconcile-review > .semi-card-body > label { display: grid; gap: 5px; margin: 8px 11px; color: #66778b; font-size: 10px; }.v2-reconcile-review select, .v2-reconcile-review textarea { border: 1px solid #d5dfeb; border-radius: 7px; background: #fff; padding: 8px 9px; color: #30465d; font: inherit; }.v2-reconcile-review textarea { min-height: 78px; resize: vertical; }.v2-reconcile-review > .semi-card-body > button { height: 33px; margin: 3px 11px 0; border: 0; border-radius: 7px; background: #316fc3; padding: 0 13px; color: #fff; cursor: pointer; font-size: 11px; }.v2-reconcile-review > .semi-card-body > button:disabled { cursor: not-allowed; opacity: .5; }.v2-reconcile-review > .semi-card-body > p { margin: 7px 11px 0; color: #c23c37; font-size: 10px; }
.v2-reconcile-actions > .semi-card-body > ol { margin: 0; padding: 9px 12px; list-style: none; }.v2-reconcile-actions li { display: grid; grid-template-columns: 10px minmax(0,1fr); gap: 8px; padding: 7px 0; }.v2-reconcile-actions li > i { width: 7px; height: 7px; margin-top: 4px; border-radius: 50%; background: #5d83b5; }.v2-reconcile-actions li strong { color: #354b61; font-size: 10px; }.v2-reconcile-actions li p { margin: 3px 0; color: #627489; font-size: 10px; line-height: 1.4; }.v2-reconcile-actions li span { color: #8b97a7; font-size: 9px; }.v2-reconcile-actions > .semi-card-body > p { margin: 0; padding: 14px; color: #8290a1; font-size: 10px; }
.v2-source-diagnostic.semi-card { position: relative; overflow: hidden; border: 1px solid #cfdbea; border-radius: 12px; background: #fff; box-shadow: 0 8px 28px rgba(31,53,80,.08); }.v2-source-search > button, .v2-source-policy-cell button { display: inline-flex; height: 32px; align-items: center; justify-content: center; gap: 5px; border: 1px solid #cbd8e8; border-radius: 7px; background: #fff; padding: 0 12px; color: #355272; cursor: pointer; font-size: 10px; }.v2-source-diagnostic button:disabled { cursor: not-allowed; opacity: .5; }
.v2-source-search { position: relative; display: flex; gap: 8px; padding: 12px 14px; }.v2-source-search > label { display: flex; min-width: 280px; flex: 1; height: 36px; align-items: center; gap: 8px; border: 1px solid #cbd8e8; border-radius: 8px; padding: 0 11px; color: #6c7c91; }.v2-source-search input { min-width: 0; flex: 1; border: 0; outline: 0; background: transparent; font: inherit; font-size: 11px; }.v2-source-search > button { height: 36px; border-color: #2f6fe4; background: #2f6fe4; color: #fff; }.v2-source-candidates { position: absolute; z-index: 12; top: 51px; right: 114px; left: 14px; max-height: 310px; overflow: auto; border: 1px solid #d6e0ec; border-radius: 9px; background: #fff; box-shadow: 0 12px 32px rgba(31,53,80,.18); }.v2-source-candidates > button { display: grid; width: 100%; grid-template-columns: 150px minmax(180px,1fr) auto; gap: 10px; border: 0; border-bottom: 1px solid #edf1f6; background: #fff; padding: 10px 12px; text-align: left; cursor: pointer; }.v2-source-candidates > button:hover { background: #f5f9ff; }.v2-source-candidates strong { font-size: 11px; }.v2-source-candidates span, .v2-source-candidates em, .v2-source-candidates p { color: var(--v2-muted); font-size: 9px; font-style: normal; }.v2-source-candidates p { margin: 0; padding: 14px; }.v2-source-candidates footer { position: sticky; bottom: 0; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid #e5ebf3; background: #fff; padding: 7px 10px; }.v2-source-candidates footer div { display: flex; gap: 5px; }.v2-source-candidates footer button { border: 1px solid #d2dce8; border-radius: 5px; background: #fff; padding: 4px 8px; color: #52657d; font-size: 8px; }
.v2-source-empty { display: grid; min-height: 110px; place-content: center; gap: 6px; color: var(--v2-muted); text-align: center; }.v2-source-empty strong { color: #42556e; font-size: 13px; }.v2-source-empty span { font-size: 10px; }.v2-source-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-block: 1px solid #e7edf4; background: #fafcff; }.v2-source-summary article { min-width: 0; padding: 11px 14px; }.v2-source-summary article + article { border-left: 1px solid #e7edf4; }.v2-source-summary small, .v2-source-summary span { display: block; overflow: hidden; color: var(--v2-muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }.v2-source-summary strong { display: block; margin: 5px 0; overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }.v2-source-recommendation { margin: 12px 14px 8px; border-left: 3px solid #2f6fe4; border-radius: 6px; background: #f3f7ff; padding: 9px 11px; }.v2-source-recommendation strong { font-size: 10px; }.v2-source-recommendation p { margin: 4px 0; color: #405774; font-size: 9px; line-height: 1.5; }.v2-source-recommendation span, .v2-source-readonly { color: #728299; font-size: 8px; }.v2-source-readonly { margin: 0 14px 8px; border-radius: 6px; background: #fff8e8; padding: 7px 9px; color: #966500; }
.v2-source-table-wrap { margin: 0 14px 12px; overflow: auto; border: 1px solid #dfe7f0; border-radius: 8px; }.v2-source-table { width: 100%; min-width: 1320px; border-collapse: collapse; table-layout: fixed; }.v2-source-table th { height: 34px; background: #f6f8fb; color: #63748a; font-size: 8px; text-align: left; }.v2-source-table th, .v2-source-table td { border-bottom: 1px solid #e8edf3; padding: 7px 9px; vertical-align: top; }.v2-source-table tbody tr:last-child td { border-bottom: 0; }.v2-source-table tbody tr.is-recommended { background: #f4fbf8; }.v2-source-table td { color: #3e5067; font-size: 9px; line-height: 1.45; }.v2-source-table td > strong, .v2-source-table td > span { display: block; }.v2-source-table td > span { margin-top: 3px; color: var(--v2-muted); }.v2-source-table td > i { display: inline-block; width: 7px; height: 7px; margin-right: 5px; border-radius: 50%; background: #9aa7b8; }.v2-source-table td > i.is-online { background: var(--v2-green); }.v2-source-table td > i.is-offline { background: #94a3b8; }.v2-source-reason span { max-width: 230px; white-space: normal !important; }.v2-source-policy-cell { display: grid; grid-template-columns: auto 64px; gap: 5px; }.v2-source-policy-cell label { display: flex; align-items: center; gap: 4px; }.v2-source-policy-cell input[type=number], .v2-source-policy-cell input[type=text], .v2-source-policy-cell > input:not([type]) { min-width: 0; height: 26px; border: 1px solid #ccd7e5; border-radius: 5px; padding: 0 6px; font-size: 9px; }.v2-source-policy-cell > .v2-source-provider-input, .v2-source-policy-cell > .v2-source-provider-evidence-input, .v2-source-policy-cell > .v2-source-policy-remark-input { grid-column: 1 / -1; }.v2-source-policy-cell button { grid-column: 1 / -1; height: 27px; }.v2-source-policy-cell em { grid-column: 1 / -1; color: var(--v2-red); font-size: 8px; font-style: normal; }.v2-source-audit { margin: 0 14px 14px; border: 1px solid #e0e7f0; border-radius: 8px; }.v2-source-audit > header { display: flex; height: 34px; align-items: center; justify-content: space-between; border-bottom: 1px solid #e7edf4; padding: 0 10px; }.v2-source-audit > header strong { font-size: 10px; }.v2-source-audit > header span, .v2-source-audit > p { color: var(--v2-muted); font-size: 8px; }.v2-source-audit > p { margin: 0; padding: 12px; }.v2-source-audit ol { max-height: 170px; margin: 0; overflow: auto; padding: 0; list-style: none; }.v2-source-audit li { display: grid; min-height: 34px; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 8px; border-bottom: 1px solid #edf1f6; padding: 5px 10px; font-size: 9px; }.v2-source-audit li em { color: var(--v2-muted); font-size: 8px; font-style: normal; }

.v2-vehicle-search-page, .v2-not-found { display: grid; min-height: 100%; place-items: center; padding: 28px; }
.v2-vehicle-search-card { width: min(660px, 100%); border: 1px solid var(--v2-border); border-radius: 16px; background: #fff; padding: 54px; text-align: center; box-shadow: var(--v2-shadow); }
.v2-search-hero-icon { display: grid; width: 54px; height: 54px; margin: 0 auto 18px; place-items: center; border-radius: 15px; background: var(--v2-blue-soft); color: var(--v2-blue); }
.v2-vehicle-search-card h2, .v2-not-found h2 { margin: 0; font-size: 22px; }
.v2-vehicle-search-card > p, .v2-not-found p { margin: 10px auto 26px; color: var(--v2-muted); font-size: 13px; line-height: 1.7; }
.v2-vehicle-search-card form { display: flex; height: 46px; align-items: center; gap: 10px; border: 1px solid #cfd9e7; border-radius: 9px; padding-left: 14px; color: #8a98aa; }
.v2-vehicle-search-card form:focus-within { border-color: #8bb6fb; box-shadow: 0 0 0 4px rgba(18,104,243,.08); }
.v2-vehicle-search-card input { min-width: 0; flex: 1; border: 0; outline: 0; color: var(--v2-text); }
.v2-vehicle-search-card button, .v2-not-found a { display: inline-flex; height: 46px; align-items: center; gap: 7px; border: 0; border-radius: 8px; background: var(--v2-blue); padding: 0 20px; color: #fff; text-decoration: none; cursor: pointer; font-weight: 700; }
.v2-vehicle-search-card .v2-profile-sync-open { height: 32px; margin-top: 16px; border: 1px solid #d5e3f7; background: #f6f9fe; color: var(--v2-blue); font-size: 10px; font-weight: 600; }
.v2-vehicle-search-page.has-sync-panel { align-content: center; gap: 14px; overflow: auto; }
.v2-profile-sync-panel { width: min(900px, 100%); border: 1px solid var(--v2-border); border-radius: 12px; background: #fff; padding: 16px; box-shadow: var(--v2-shadow); }
.v2-profile-sync-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }.v2-profile-sync-panel > header strong { font-size: 14px; }.v2-profile-sync-panel > header p { margin: 5px 0 0; color: var(--v2-muted); font-size: 9px; }.v2-profile-sync-panel > header button { border: 0; background: transparent; color: var(--v2-muted); cursor: pointer; font-size: 9px; }
.v2-profile-sync-fields { display: grid; grid-template-columns: 1fr 1fr .8fr 1.2fr; gap: 10px; margin-top: 14px; }.v2-profile-sync-fields label { display: grid; min-width: 0; gap: 5px; color: var(--v2-muted); font-size: 9px; }.v2-profile-sync-fields input, .v2-profile-sync-fields select { min-width: 0; height: 34px; border: 1px solid var(--v2-border); border-radius: 6px; background: #fff; padding: 0 9px; color: var(--v2-text); font-size: 10px; }.v2-profile-sync-fields input[type="file"] { padding: 6px; }
.v2-profile-sync-format, .v2-profile-sync-file, .v2-profile-sync-error, .v2-profile-sync-warning { margin: 10px 0 0; color: var(--v2-muted); font-size: 9px; line-height: 1.5; }.v2-profile-sync-format code { overflow-wrap: anywhere; color: #53657c; }.v2-profile-sync-file { color: var(--v2-blue); }.v2-profile-sync-error { color: var(--v2-red); }.v2-profile-sync-warning { border-radius: 6px; background: #fff7ed; padding: 7px 9px; color: #b45309; }
.v2-profile-sync-result { margin-top: 12px; border: 1px solid #e4ebf4; border-radius: 8px; background: #fbfcfe; padding: 10px; }.v2-profile-sync-result > div { display: grid; grid-template-columns: repeat(6,1fr); }.v2-profile-sync-result > div span { color: var(--v2-muted); text-align: center; font-size: 8px; }.v2-profile-sync-result > div strong { display: block; margin-top: 4px; color: var(--v2-text); font-size: 14px; }.v2-profile-sync-result > p { margin: 8px 0 0; color: var(--v2-green); font-size: 9px; }.v2-profile-sync-result ul { max-height: 104px; margin: 9px 0 0; overflow: auto; border-top: 1px solid #e7edf5; padding: 5px 0 0; list-style: none; }.v2-profile-sync-result li { display: flex; justify-content: space-between; gap: 10px; padding: 4px 2px; font-size: 8px; }.v2-profile-sync-result li span { color: var(--v2-muted); }
.v2-profile-sync-panel > footer { display: flex; justify-content: flex-end; gap: 8px; margin-top: 12px; }.v2-profile-sync-panel > footer button { height: 32px; border: 1px solid var(--v2-border); border-radius: 6px; background: #fff; padding: 0 12px; color: var(--v2-text); cursor: pointer; font-size: 9px; }.v2-profile-sync-panel > footer button.is-primary { border-color: var(--v2-blue); background: var(--v2-blue); color: #fff; }.v2-profile-sync-panel > footer button:disabled { cursor: not-allowed; opacity: .5; }
.v2-not-found { align-content: center; text-align: center; color: var(--v2-muted); }
.v2-not-found a { height: 38px; margin: 0 auto; }
.v2-page-error { padding: 18px; }

.v2-vehicle-record-page { display: flex; min-height: 100%; flex-direction: column; gap: 12px; padding: 12px 16px 16px; }
.v2-identity-band { display: grid; min-height: 96px; grid-template-columns: minmax(260px, 1fr) minmax(340px, 1.25fr) auto; align-items: center; border: 1px solid var(--v2-border); border-radius: var(--v2-radius); background: #fff; box-shadow: var(--v2-shadow); }
.v2-identity-primary, .v2-identity-meta, .v2-identity-actions { min-width: 0; padding: 15px 18px; }
.v2-identity-primary { display: grid; grid-template-columns: auto auto 1fr; align-items: center; gap: 6px 14px; }
.v2-plate { display: inline-flex; min-height: 36px; align-items: center; gap: 8px; border: 1px solid #b9d2fb; border-radius: 7px; background: var(--v2-blue-soft); padding: 0 12px; color: var(--v2-blue); font-size: 16px; font-weight: 800; }
.v2-online-label { display: inline-flex; align-items: center; gap: 6px; color: #8793a5; font-size: 11px; font-weight: 700; }
.v2-online-label i { width: 7px; height: 7px; border-radius: 50%; background: #aab3c0; }
.v2-online-label.is-online { color: var(--v2-green); }
.v2-online-label.is-online i { background: var(--v2-green); }
.v2-identity-primary small { grid-row: 2; color: var(--v2-muted); font-size: 9px; }
.v2-identity-primary b { grid-row: 2; overflow: hidden; color: #445166; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.v2-identity-primary button { grid-row: 2; border: 0; background: transparent; color: #718096; cursor: pointer; }
.v2-identity-meta { display: grid; grid-template-columns: 1fr 1fr; align-self: stretch; align-items: center; border-right: 1px solid var(--v2-border); border-left: 1px solid var(--v2-border); }
.v2-identity-meta > div + div { border-left: 1px solid var(--v2-border); padding-left: 22px; }
.v2-identity-meta small { color: var(--v2-muted); font-size: 10px; }
.v2-identity-meta p { display: flex; flex-wrap: wrap; gap: 5px; margin: 8px 0 0; }
.v2-identity-meta p span, .v2-telemetry-card footer span { border: 1px solid #dde5ef; border-radius: 5px; background: #f7f9fc; padding: 3px 7px; color: #526176; font-size: 9px; }
.v2-identity-meta strong { display: block; margin-top: 8px; color: #445166; font-size: 11px; font-variant-numeric: tabular-nums; }
.v2-identity-actions { display: flex; gap: 8px; }
.v2-identity-actions a { display: inline-flex; height: 38px; align-items: center; gap: 7px; border: 1px solid #dce4ef; border-radius: 7px; padding: 0 14px; color: #536177; text-decoration: none; white-space: nowrap; font-size: 10px; font-weight: 700; }
.v2-identity-actions a:hover { border-color: #a8c7f9; color: var(--v2-blue); }

.v2-record-grid { display: grid; min-height: 0; flex: 1; grid-template-columns: minmax(520px, 1.75fr) minmax(300px, 1fr); grid-template-rows: minmax(300px, 1.05fr) minmax(270px, .95fr); gap: 12px; }
.v2-record-card.semi-card, .v2-single-map-card.semi-card { min-width: 0; overflow: hidden; border: 1px solid #dce5ef; border-radius: 11px; background: #fff; box-shadow: 0 5px 18px rgba(31,53,80,.045); }
.v2-record-card.semi-card { content-visibility: auto; contain-intrinsic-size: auto 320px; }
.v2-single-map-card { position: relative; min-height: 300px; }
.v2-single-map-card > .semi-card-body { display: flex; min-height: 300px; height: 100%; flex-direction: column; }
.v2-single-map-card .v2-fleet-map { flex: 1; }
.v2-single-map-card .v2-map-legend { display: none; }
.v2-single-map-card footer { display: flex; min-height: 42px; align-items: center; justify-content: space-between; gap: 16px; border-top: 1px solid #e5ebf2; background: #fbfcfe; padding: 0 14px; color: #64748b; font-size: 9px; }
.v2-single-map-card footer span { display: inline-flex; min-width: 0; align-items: center; gap: 7px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v2-map-source-link { display: inline-flex; min-width: 0; align-items: center; gap: 7px; overflow: hidden; border: 0; background: transparent; padding: 0; color: #64748b; cursor: pointer; text-align: left; text-overflow: ellipsis; white-space: nowrap; font: inherit; }
.v2-single-map-card footer time { white-space: nowrap; font-variant-numeric: tabular-nums; }
.v2-archive-card { grid-column: 2; grid-row: 2; }
.v2-record-list { margin: 0; padding: 8px 14px 4px; }
.v2-record-list > div { display: grid; grid-template-columns: 92px minmax(0, 1fr); padding: 6px 0; font-size: 10px; }
.v2-record-list dt { color: var(--v2-muted); }
.v2-record-list dd { margin: 0; overflow-wrap: anywhere; }
.v2-record-list dd i { display: inline-block; width: 6px; height: 6px; margin-right: 6px; border-radius: 50%; background: #aab3c0; }
.v2-record-list dd i.is-online { background: var(--v2-green); }
.v2-record-note { margin: 3px 14px 12px; border-radius: 6px; background: #f7f9fc; padding: 8px 10px; color: #79869a; font-size: 8px; line-height: 1.5; }
.v2-profile-form { display: grid; grid-template-columns: 1fr 1fr; gap: 7px 10px; padding: 10px 14px 12px; }.v2-profile-form label { display: grid; gap: 3px; color: var(--v2-muted); font-size: 8px; }.v2-profile-form input, .v2-profile-form select { min-width: 0; height: 29px; border: 1px solid var(--v2-border); border-radius: 5px; background: #fff; padding: 0 7px; color: var(--v2-text); font-size: 9px; }.v2-profile-form > p { grid-column: 1 / -1; margin: 0; color: var(--v2-red); font-size: 8px; }.v2-profile-form footer { display: flex; grid-column: 1 / -1; justify-content: flex-end; gap: 7px; }.v2-profile-form footer button { height: 28px; border: 1px solid var(--v2-border); border-radius: 5px; background: #fff; padding: 0 10px; font-size: 9px; cursor: pointer; }.v2-profile-form footer button.is-primary { border-color: var(--v2-blue); background: var(--v2-blue); color: #fff; }
.v2-live-overview.semi-card { border-color: #cfddf0; background: linear-gradient(135deg,#fff 0%,#fbfdff 72%,#f3f8ff 100%); content-visibility: visible; }
.v2-live-overview .v2-live-grid { grid-template-columns: repeat(6,minmax(0,1fr)); }
.v2-live-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.v2-live-grid > div { min-width: 0; padding: 12px 14px; }
.v2-live-grid > div + div { border-left: 1px solid var(--v2-border); }
.v2-live-grid > div:nth-child(4) { border-left: 0; }
.v2-live-grid > div:nth-child(n+4) { border-top: 1px solid var(--v2-border); }
.v2-live-overview .v2-live-grid > div:nth-child(4) { border-left: 1px solid var(--v2-border); }
.v2-live-overview .v2-live-grid > div:nth-child(n+4) { border-top: 0; }
.v2-live-grid small { display: block; color: var(--v2-muted); font-size: 9px; }
.v2-live-grid strong { display: block; margin-top: 5px; overflow: hidden; font-size: 17px; text-overflow: ellipsis; white-space: nowrap; font-variant-numeric: tabular-nums; }
.v2-live-grid strong.is-text { font-size: 14px; }
.v2-live-source-link { margin-top: 5px; font-size: 17px; font-variant-numeric: tabular-nums; }
.v2-live-grid em { margin-left: 3px; color: var(--v2-muted); font-size: 8px; font-style: normal; font-weight: 500; }
.v2-current-location { display: grid; min-height: 52px; grid-template-columns: minmax(280px,.8fr) minmax(420px,1.2fr); border-top: 1px solid var(--v2-border); }
.v2-current-location > span { display: grid; min-width: 0; grid-template-columns: auto auto minmax(0,1fr); align-items: center; gap: 8px; padding: 8px 14px; color: #64748b; }
.v2-current-location > span + span { border-left: 1px solid var(--v2-border); }
.v2-current-location small { color: var(--v2-muted); font-size: 9px; white-space: nowrap; }
.v2-current-location strong { min-width: 0; overflow: hidden; color: #3d4c62; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; font-variant-numeric: tabular-nums; }
.v2-current-location button { width: max-content; max-width: 100%; height: 28px; overflow: hidden; border: 1px solid #bfd4f6; border-radius: 6px; background: #f3f7ff; padding: 0 9px; color: var(--v2-blue); cursor: pointer; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; }
.v2-current-location button.is-error { border-color: #edb5b0; background: #fff; color: var(--v2-red); }
.v2-current-address { grid-template-columns: auto minmax(0,1fr) auto !important; }
.v2-telemetry-card { grid-column: 1; grid-row: 2; }
.v2-telemetry-tabs { border-bottom: 1px solid var(--v2-border); background: linear-gradient(180deg,#fbfcfe 0%,#f8faff 100%); }
.v2-segmented-tabs { display: flex; min-width: 0; align-items: center; overflow-x: auto; scrollbar-width: none; }
.v2-segmented-tabs::-webkit-scrollbar { display: none; }
.v2-segmented-tabs > .semi-button { flex: 0 0 auto; }
.v2-segmented-tab-label { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.v2-segmented-tab-label > svg { flex: 0 0 auto; }
.v2-segmented-tab-count { display: inline-grid; min-width: 20px; min-height: 18px; place-items: center; border-radius: 10px; background: rgba(100,116,139,.10); padding: 1px 6px; color: #7c8a9d; font-size: 8px; font-style: normal; font-variant-numeric: tabular-nums; }
.v2-telemetry-protocols,
.v2-telemetry-categories { display: flex; align-items: center; overflow-x: auto; padding: 0 10px; scrollbar-width: none; }
.v2-telemetry-protocols::-webkit-scrollbar,
.v2-telemetry-categories::-webkit-scrollbar { display: none; }
.v2-telemetry-protocols { min-height: 48px; gap: 7px; border-bottom: 1px solid #e8edf4; padding-block: 5px; }
.v2-telemetry-protocols .semi-button { min-width: 112px; min-height: 36px; flex: 0 0 auto; justify-content: center; border-radius: 8px; color: #64748b; font-size: 11px; }
.v2-telemetry-protocols .semi-button.is-active { background: #1268f3; color: #fff; box-shadow: 0 4px 12px rgba(18,104,243,.18); font-weight: 700; }
.v2-telemetry-protocols .semi-button.is-active .v2-segmented-tab-count { background: rgba(255,255,255,.18); color: #fff; }
.v2-telemetry-categories { min-height: 39px; gap: 2px; background: #fff; }
.v2-telemetry-categories .semi-button { position: relative; min-width: 86px; min-height: 34px; flex: 0 0 auto; justify-content: center; padding: 0 10px; border-radius: 0; color: #708096; font-size: 10px; }
.v2-telemetry-categories .semi-button.is-active { color: var(--v2-blue); font-weight: 700; }
.v2-telemetry-categories .semi-button.is-active::after { position: absolute; right: 10px; bottom: -3px; left: 10px; height: 2px; border-radius: 2px; background: var(--v2-blue); content: ''; }
.v2-telemetry-categories .semi-button.is-active .v2-segmented-tab-count { background: var(--v2-blue-soft); color: var(--v2-blue); }
.v2-telemetry-list { display: grid; grid-template-columns: 1fr 1fr; padding: 6px 14px; }
.v2-telemetry-list > div { display: grid; min-width: 0; grid-template-columns: minmax(130px, 1fr) auto 58px; align-items: center; gap: 10px; border-bottom: 1px solid #eef2f7; padding: 9px 8px; font-size: 10px; }
.v2-telemetry-list > div:nth-child(odd) { border-right: 1px solid var(--v2-border); }
.v2-telemetry-list > div > span { min-width: 0; color: #556276; }
.v2-telemetry-list > div > span small { display: block; margin-top: 3px; overflow: hidden; color: #a0aaba; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.v2-telemetry-list strong { font-size: 10px; font-variant-numeric: tabular-nums; }
.v2-telemetry-list strong em { color: #8a96a8; font-size: 8px; font-style: normal; font-weight: 500; }
.v2-telemetry-list time { display: grid; justify-items: end; gap: 3px; color: #8a96a8; font-size: 8px; text-align: right; }
.v2-telemetry-list time i { border-radius: 8px; background: #eef2f7; padding: 1px 5px; color: #778397; font-size: 7px; font-style: normal; }
.v2-telemetry-list time i.is-good { background: #e8f8f1; color: #16845b; }
.v2-telemetry-list time i.is-stale { background: #fff6df; color: #a66b00; }
.v2-telemetry-list time i.is-warning { background: #fff0f0; color: var(--v2-red); }
.v2-telemetry-list .v2-empty-compact { display: flex; min-height: 94px; grid-column: 1 / -1; justify-content: center; border: 0; }
.v2-telemetry-list .v2-empty-compact.is-error { color: var(--v2-red); }
.v2-telemetry-card footer { display: flex; align-items: center; gap: 6px; margin: 8px 10px 10px; border: 1px solid var(--v2-border); border-radius: 7px; padding: 8px 10px; color: #718096; font-size: 9px; }
.v2-telemetry-card footer b { color: #526176; font-size: 9px; }
.v2-telemetry-card footer small { margin-left: auto; color: #8a96a8; font-size: 8px; }
.v2-events-card { grid-column: 2; grid-row: 1; }
.v2-event-list { padding: 2px 14px 8px; }
.v2-event-row { position: relative; display: grid; min-height: 40px; grid-template-columns: 23px minmax(0, 1fr) auto; align-items: center; gap: 7px; }
.v2-event-row:not(:last-child)::after { position: absolute; top: 31px; bottom: -9px; left: 10px; width: 1px; background: var(--v2-border); content: ''; }
.v2-event-icon { z-index: 1; display: grid; width: 20px; height: 20px; place-items: center; border-radius: 50%; background: #eef3f8; color: #8492a6; }
.v2-event-row.is-success .v2-event-icon { background: #e8f8f1; color: var(--v2-green); }
.v2-event-row.is-error .v2-event-icon { background: #fff0f0; color: var(--v2-red); }
.v2-event-row.is-warning .v2-event-icon { background: #fff7e5; color: var(--v2-orange); }
.v2-event-row strong { font-size: 9px; }
.v2-event-row p { margin: 2px 0 0; overflow: hidden; color: #7f8b9d; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.v2-event-row time { color: #8d99aa; font-size: 8px; font-variant-numeric: tabular-nums; }
.v2-empty-compact { display: flex; min-height: 80px; align-items: center; color: var(--v2-muted); font-size: 10px; }

.v2-history-page { display: flex; height: 100%; min-height: 0; flex-direction: column; gap: 10px; overflow: hidden; padding: 12px 16px 16px; }
.v2-history-filter-card.semi-card { flex: 0 0 auto; overflow: visible; border-color: var(--v2-border); border-radius: var(--v2-radius); background: #fff; box-shadow: var(--v2-shadow); }
.v2-history-toolbar { display: grid; grid-template-columns: minmax(230px, 1.1fr) minmax(350px, 1.5fr) 120px 130px auto auto auto; align-items: end; gap: 8px; border: 0; background: transparent; padding: 10px 12px; }
.v2-history-toolbar label { display: flex; min-width: 0; flex-direction: column; gap: 5px; color: var(--v2-muted); font-size: 8px; }
.v2-history-toolbar label > div { display: flex; height: 34px; align-items: center; gap: 7px; border: 1px solid #dce4ef; border-radius: 7px; padding: 0 9px; color: #8996a8; }
.v2-history-toolbar input, .v2-history-toolbar select { min-width: 0; height: 34px; border: 1px solid #dce4ef; border-radius: 7px; background: #fff; padding: 0 8px; color: #435168; outline: 0; font-size: 9px; }
.v2-history-toolbar label > div input { height: auto; flex: 1; border: 0; padding: 0; }
.v2-history-toolbar input:focus, .v2-history-toolbar select:focus, .v2-history-toolbar label > div:focus-within { border-color: #8bb6fb; box-shadow: 0 0 0 3px rgba(18,104,243,.08); }
.v2-history-range { min-width: 0; margin: 0; border: 0; padding: 0; }
.v2-history-range legend { margin-bottom: 5px; padding: 0; color: var(--v2-muted); font-size: 8px; }
.v2-history-range > div { display: grid; height: 34px; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; overflow: hidden; border: 1px solid #dce4ef; border-radius: 7px; background: #fff; }
.v2-history-range > div:focus-within { border-color: #8bb6fb; box-shadow: 0 0 0 3px rgba(18,104,243,.08); }
.v2-history-range > div input { width: 100%; height: 32px; border: 0; border-radius: 0; padding: 0 8px; box-shadow: none; }
.v2-history-range > div span { color: #8794a5; font-size: 8px; }
.v2-history-toolbar button { height: 34px; padding: 0 11px; white-space: nowrap; }
.v2-history-toolbar button:disabled { opacity: .45; cursor: not-allowed; }
.v2-history-metrics-card.semi-card { min-height: 42px; flex: 0 0 auto; overflow: hidden; border-color: var(--v2-border); border-radius: var(--v2-radius); background: #fff; box-shadow: var(--v2-shadow); }
.v2-history-metrics { display: grid; min-height: 42px; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 7px; overflow: hidden; background: #fff; padding: 6px 11px; }
.v2-history-metrics > strong { margin-right: 4px; white-space: nowrap; font-size: 10px; }
.v2-history-metric-scroll { display: flex; min-width: 0; align-items: center; gap: 7px; overflow-x: auto; overscroll-behavior-inline: contain; }
.v2-history-metric-tag.semi-tag { height: 28px; flex: 0 0 auto; border: 1px solid #b8d1fa; border-radius: 7px; padding-inline: 9px 6px; color: var(--v2-blue); font-size: 9px; font-weight: 600; }
.v2-history-metric-tag.semi-tag:hover { border-color: #8bb5f8; background: #e8f2ff; }
.v2-history-metric-tag .semi-tag-close { margin-left: 5px; border-radius: 50%; color: #5b83be; }
.v2-history-metric-scroll > span { flex: 0 0 auto; color: var(--v2-muted); font-size: 8px; }
.v2-history-metrics > button.v2-history-metrics-manage { border-color: #cddcf0; color: #526987; font-weight: 700; }
.v2-history-metrics > button.v2-history-metrics-manage:disabled { opacity: .4; cursor: not-allowed; }
.v2-history-workspace { display: grid; min-height: 0; flex: 1; grid-template-columns: minmax(660px, 1fr) 310px; gap: 10px; }
.v2-history-main { display: grid; min-width: 0; min-height: 0; grid-template-rows: 58px 205px minmax(260px, 1fr); gap: 9px; }
.v2-history-summary.semi-card { overflow: hidden; border-color: var(--v2-border); border-radius: var(--v2-radius); background: #fff; box-shadow: var(--v2-shadow); }
.v2-history-summary > .semi-card-body { display: grid; height: 100%; grid-template-columns: repeat(4, 1fr); }
.v2-history-summary > .semi-card-body > div { position: relative; display: flex; min-width: 0; justify-content: center; flex-direction: column; padding: 0 16px; }
.v2-history-summary > .semi-card-body > div + div::before { position: absolute; inset: 12px auto 12px 0; width: 1px; background: var(--v2-border); content: ''; }
.v2-history-summary small { color: var(--v2-muted); font-size: 8px; }
.v2-history-summary strong { margin-top: 5px; overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.v2-history-trend.semi-card { min-height: 0; overflow: hidden; border-color: var(--v2-border); border-radius: var(--v2-radius); background: #fff; box-shadow: var(--v2-shadow); }
.v2-history-trend > .semi-card-body { display: flex; height: 100%; min-height: 0; flex-direction: column; }
.v2-history-trend-panels { display: grid; min-height: 0; flex: 1; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; overflow: auto; padding: 8px 10px 5px; }
.v2-history-trend-panels article { min-width: 0; overflow: hidden; border: 1px solid #e6ebf2; border-radius: 6px; }
.v2-history-trend-panels article > header { display: flex; height: 25px; align-items: center; justify-content: space-between; padding: 0 8px; background: #f8fafc; }
.v2-history-trend-panels article > header strong { font-size: 9px; }
.v2-history-trend-panels article > header span { color: var(--v2-muted); font-size: 7px; }
.v2-history-trend-panels svg { display: block; width: 100%; height: 105px; }
.v2-history-trend-panels article > footer { display: flex; min-height: 22px; align-items: center; gap: 5px 10px; overflow-x: auto; padding: 0 8px; color: #657286; font-size: 7px; white-space: nowrap; }
.v2-history-trend-panels article > footer span { display: inline-flex; align-items: center; gap: 4px; }
.v2-history-trend-panels article > footer i { width: 10px; height: 2px; flex: 0 0 auto; }
.v2-chart-grid line { stroke: #e9eef5; stroke-width: 1; vector-effect: non-scaling-stroke; }
.v2-chart-axis text { fill: #7b8798; font-size: 8px; font-variant-numeric: tabular-nums; }
.v2-chart-axis text:first-child, .v2-chart-axis text:nth-child(2) { text-anchor: end; }
.v2-history-chart-empty { display: flex; flex: 1; align-items: center; justify-content: center; color: var(--v2-muted); font-size: 9px; }
.v2-history-trend-evidence { display: block; flex: 0 0 auto; overflow: hidden; border-top: 1px solid #eef2f7; padding: 4px 10px; color: var(--v2-muted); font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.v2-history-table-card.semi-card { position: relative; min-width: 0; min-height: 0; overflow: hidden; border-color: var(--v2-border); border-radius: var(--v2-radius); background: #fff; box-shadow: var(--v2-shadow); }
.v2-history-table-card > .semi-card-body { display: flex; height: 100%; min-height: 0; flex-direction: column; }
.v2-history-table-card > .semi-card-body > header { display: flex; min-height: 38px; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--v2-border); padding: 0 10px 0 12px; }
.v2-history-table-card > .semi-card-body > header strong { font-size: 10px; }
.v2-history-table-card > .semi-card-body > header div { display: flex; gap: 6px; }
.v2-history-table-card > .semi-card-body > header button, .v2-history-table-card > .semi-card-body > header select { display: inline-flex; height: 27px; align-items: center; gap: 5px; border: 1px solid #dfe6ef; border-radius: 5px; background: #fff; padding: 0 8px; color: #657286; cursor: pointer; font-size: 8px; }
.v2-history-table-scroll { position: relative; min-height: 0; flex: 1; overflow: auto; overscroll-behavior: contain; }
.v2-history-table-scroll table { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; color: #4e5b6f; font-size: 8px; }
.v2-history-table-scroll th { position: sticky; z-index: 3; top: 0; height: 31px; border-bottom: 1px solid var(--v2-border); background: #f8fafc; color: #607086; text-align: left; white-space: nowrap; font-weight: 700; }
.v2-history-table-scroll td, .v2-history-table-scroll th { max-width: 170px; border-right: 1px solid #eef2f7; padding: 0 9px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v2-history-table-scroll td { height: 30px; border-bottom: 1px solid #eef2f7; content-visibility: auto; font-variant-numeric: tabular-nums; }
.v2-history-table-card.is-comfortable .v2-history-table-scroll td { height: 40px; }
.v2-history-table-scroll tr:hover td, .v2-history-table-scroll tr.is-selected td { background: #f2f7ff; }
.v2-history-table-scroll td button { border: 0; background: transparent; color: var(--v2-blue); cursor: pointer; font-size: 8px; }
.v2-history-table-scroll td.v2-history-quality-reason { max-width: 260px; color: #66758a; }
.v2-history-table-scroll input { width: 13px; height: 13px; accent-color: var(--v2-blue); }
.v2-quality { display: inline-flex; align-items: center; gap: 5px; }
.v2-quality i { width: 6px; height: 6px; border-radius: 50%; background: var(--v2-green); }
.v2-quality:not(.is-normal) i { background: var(--v2-orange); }
.v2-history-loading { position: sticky; left: 0; display: flex; min-height: 90px; align-items: center; justify-content: center; gap: 7px; color: #607086; font-size: 9px; }
.v2-history-loading i { width: 13px; height: 13px; border: 2px solid #cfe0fb; border-top-color: var(--v2-blue); border-radius: 50%; animation: v2-spin .8s linear infinite; }
.v2-history-empty { position: sticky; left: 0; display: flex; min-height: 90px; align-items: center; justify-content: center; color: var(--v2-muted); font-size: 9px; }
.v2-history-table-card > .semi-card-body > footer { display: flex; min-height: 38px; align-items: center; justify-content: space-between; border-top: 1px solid var(--v2-border); padding: 0 10px; color: #657286; font-size: 8px; }
.v2-history-table-card > .semi-card-body > footer div { display: flex; gap: 5px; }
.v2-history-table-card > .semi-card-body > footer button, .v2-history-table-card > .semi-card-body > footer select { height: 26px; border: 1px solid #dfe6ef; border-radius: 5px; background: #fff; padding: 0 8px; color: #5f6e83; font-size: 8px; }
.v2-history-table-card > .semi-card-body > footer button:disabled { opacity: .35; }
.v2-history-side { min-width: 0; min-height: 0; overflow: auto; overscroll-behavior: contain; }
.v2-history-side > .semi-card { overflow: hidden; border-color: var(--v2-border); border-radius: var(--v2-radius); background: #fff; box-shadow: var(--v2-shadow); }
.v2-history-side > .semi-card + .semi-card { margin-top: 9px; }
.v2-history-evidence > .semi-card-body > dl { margin: 0; padding: 8px 12px; border-bottom: 1px solid var(--v2-border); }
.v2-history-evidence > .semi-card-body > dl > div { display: grid; grid-template-columns: 78px minmax(0, 1fr); padding: 5px 0; font-size: 8px; }
.v2-history-evidence dt { color: #7f8c9f; }
.v2-history-evidence dd { margin: 0; overflow-wrap: anywhere; text-align: right; }
.v2-history-evidence dd i { display: inline-block; width: 6px; height: 6px; margin-right: 5px; border-radius: 50%; background: var(--v2-green); }
.v2-history-evidence dd i.is-warning { background: var(--v2-orange); }
.v2-history-evidence dd i.is-error, .v2-history-evidence dd i.is-critical { background: var(--v2-red); }
.v2-history-evidence .v2-history-quality-detail { align-items: start; }
.v2-history-evidence .v2-history-quality-detail dd { color: #5c6b80; line-height: 1.5; white-space: normal; }
.v2-evidence-values { padding: 10px 12px; }
.v2-evidence-values > strong { display: block; margin-bottom: 5px; font-size: 9px; }
.v2-evidence-values > p { margin: 10px 0; color: var(--v2-muted); font-size: 8px; text-align: center; }
.v2-evidence-values > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; border-bottom: 1px solid #eef2f7; padding: 6px 0; }
.v2-evidence-values span { min-width: 0; color: #617087; font-size: 8px; }
.v2-evidence-values span small { display: block; margin-top: 2px; overflow: hidden; color: #a0aaba; font-size: 6px; text-overflow: ellipsis; white-space: nowrap; }
.v2-evidence-values b { font-size: 8px; font-weight: 600; }
.v2-history-evidence > .semi-card-body > footer { display: flex; justify-content: space-between; gap: 8px; border-top: 1px solid var(--v2-border); padding: 9px 12px; color: #718096; font-size: 8px; }
.v2-history-evidence > .semi-card-body > footer b { overflow: hidden; color: var(--v2-blue); text-overflow: ellipsis; white-space: nowrap; }
.v2-history-side-empty { display: flex; min-height: 92px; align-items: center; justify-content: center; padding: 14px; color: var(--v2-muted); text-align: center; font-size: 8px; line-height: 1.6; }
.v2-export-jobs > .semi-card-body > div { padding: 4px 11px 8px; }
.v2-export-jobs article { display: grid; min-height: 54px; grid-template-columns: 7px minmax(0, 1fr) auto; align-items: center; gap: 8px; border-bottom: 1px solid #eef2f7; }
.v2-export-jobs article > i { width: 7px; height: 7px; border-radius: 50%; background: #94a3b8; }
.v2-export-jobs article > i.is-running { background: var(--v2-blue); }
.v2-export-jobs article > i.is-completed { background: var(--v2-green); }
.v2-export-jobs article > i.is-failed { background: var(--v2-red); }
.v2-export-jobs article > div { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.v2-export-jobs article strong { overflow: hidden; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.v2-export-jobs article small { overflow: hidden; color: #8290a3; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.v2-export-jobs article small.v2-export-owner { color: #64748b; }
.v2-export-jobs article .v2-export-download { display: inline-flex; align-items: center; gap: 4px; border: 0; background: transparent; padding: 0; color: var(--v2-blue); cursor: pointer; font-size: 7px; }
.v2-export-jobs article .v2-export-download:disabled { opacity: .55; cursor: wait; }
.v2-export-jobs article em { color: #7f8c9f; font-size: 7px; font-style: normal; }

.v2-access-page { display: flex; height: 100%; min-height: 0; flex-direction: column; gap: 9px; overflow: hidden; padding: 12px 14px 14px; }
.v2-access-filter { display: grid; flex: 0 0 auto; grid-template-columns: minmax(210px, 1.15fr) repeat(4, minmax(120px, .7fr)) auto auto; align-items: end; gap: 8px; border: 1px solid var(--v2-border); border-radius: var(--v2-radius); background: #fff; padding: 9px 11px; box-shadow: var(--v2-shadow); }
.v2-access-filter label { display: flex; min-width: 0; flex-direction: column; gap: 5px; color: var(--v2-muted); font-size: 8px; }
.v2-access-filter label > div { display: flex; height: 34px; align-items: center; gap: 7px; border: 1px solid #dce4ef; border-radius: 6px; padding: 0 9px; color: #8996a8; }
.v2-access-filter input, .v2-access-filter select { min-width: 0; height: 34px; border: 1px solid #dce4ef; border-radius: 6px; background: #fff; padding: 0 8px; color: #435168; outline: 0; font-size: 9px; }
.v2-access-filter label > div input { height: auto; flex: 1; border: 0; padding: 0; }
.v2-access-filter label > div:focus-within, .v2-access-filter select:focus { border-color: #8bb6fb; box-shadow: 0 0 0 3px rgba(18,104,243,.08); }
.v2-access-filter button { height: 34px; white-space: nowrap; }
.v2-access-advanced { grid-column: 1 / -1; border-top: 1px solid var(--v2-border); padding-top: 6px; }
.v2-access-advanced summary { width: fit-content; color: var(--v2-blue); font-size: 9px; cursor: pointer; }
.v2-access-advanced > div { display: grid; grid-template-columns: repeat(6, minmax(130px, 1fr)); gap: 8px; padding-top: 8px; }
.v2-access-kpis { display: grid; min-height: 68px; flex: 0 0 auto; grid-template-columns: repeat(7, minmax(82px, 1fr)); overflow: hidden; border: 1px solid var(--v2-border); border-radius: var(--v2-radius); background: #fff; box-shadow: var(--v2-shadow); }
.v2-access-kpis button { position: relative; display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) auto; align-content: center; border: 0; background: #fff; padding: 9px 15px; text-align: left; cursor: pointer; }
.v2-access-kpis button + button::before { position: absolute; inset: 12px auto 12px 0; width: 1px; background: var(--v2-border); content: ''; }
.v2-access-kpis button:hover { background: #f8fbff; }
.v2-access-kpis small { grid-column: 1 / -1; color: var(--v2-muted); font-size: 9px; }
.v2-access-kpis strong { margin-top: 6px; overflow: hidden; font-size: 19px; line-height: 1; text-overflow: ellipsis; white-space: nowrap; font-variant-numeric: tabular-nums; }
.v2-access-kpis em { align-self: end; color: #7f8c9f; font-size: 8px; font-style: normal; }
.v2-access-kpis .is-online strong, .v2-access-kpis .is-today strong { color: var(--v2-green); }
.v2-access-kpis .is-delay strong { color: var(--v2-orange); }
.v2-access-kpis .is-identity strong { color: #a65a12; }
.v2-access-kpis .is-never strong, .v2-access-kpis .is-offline strong { color: #64748b; }
.v2-access-protocols { flex: 0 0 auto; overflow: hidden; border: 1px solid var(--v2-border); border-radius: var(--v2-radius); background: #fff; padding: 9px 12px 10px; box-shadow: var(--v2-shadow); }
.v2-access-protocols header { display: flex; align-items: center; justify-content: space-between; }
.v2-access-protocols header strong { font-size: 10px; }
.v2-access-protocols header span { color: var(--v2-muted); font-size: 7px; }
.v2-access-segments { display: flex; height: 6px; gap: 2px; margin-top: 8px; overflow: hidden; border-radius: 6px; background: #edf1f6; }
.v2-access-segments i { display: block; min-width: 2px; height: 100%; }
.v2-access-legends { display: flex; gap: 20px; margin-top: 8px; overflow-x: auto; color: #657286; font-size: 7px; white-space: nowrap; }
.v2-access-legends span { display: inline-flex; align-items: center; gap: 5px; }
.v2-access-legends span > i { width: 6px; height: 6px; border-radius: 50%; }
.v2-access-legends b { color: #455268; font-weight: 700; }
.v2-access-legends em { color: #8a97a9; font-style: normal; }
.v2-access-workspace { display: grid; min-height: 0; flex: 1; grid-template-columns: minmax(680px, 1fr) 300px; gap: 9px; }
.v2-access-identity-queue { flex: 0 0 auto; border: 1px solid #efd7b5; border-radius: var(--v2-radius); background: #fffaf3; color: var(--v2-text); }
.v2-access-identity-queue summary { display: flex; min-height: 35px; align-items: center; justify-content: space-between; gap: 12px; padding: 7px 12px; cursor: pointer; list-style-position: inside; }
.v2-access-identity-queue summary span { display: inline-flex; align-items: center; gap: 8px; }
.v2-access-identity-queue summary strong { min-width: 22px; border-radius: 12px; background: #a65a12; padding: 2px 7px; color: #fff; font-size: 10px; text-align: center; }
.v2-access-identity-queue summary em { color: #8a6440; font-size: 10px; font-style: normal; }
.v2-access-identity-queue > div { display: grid; max-height: 112px; grid-template-columns: repeat(5, minmax(180px, 1fr)); gap: 7px; overflow: auto; border-top: 1px solid #efd7b5; padding: 7px; }
.v2-access-identity-queue article { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 8px; border: 1px solid #f0dfc7; border-radius: 7px; background: #fff; padding: 7px 8px; }
.v2-access-identity-code { overflow: hidden; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.v2-access-identity-queue article dl { display: grid; min-width: 0; grid-column: 1 / -1; gap: 2px; margin: 0; }
.v2-access-identity-queue article dl div { display: grid; min-width: 0; grid-template-columns: 45px minmax(0, 1fr); gap: 4px; }
.v2-access-identity-queue article dt, .v2-access-identity-queue article dd { overflow: hidden; margin: 0; color: var(--v2-muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.v2-access-identity-queue article button { grid-column: 2; grid-row: 1; border: 0; background: transparent; color: var(--v2-blue); font-size: 9px; cursor: pointer; }
.v2-access-table-card { display: flex; min-width: 0; min-height: 0; flex-direction: column; overflow: hidden; border: 1px solid var(--v2-border); border-radius: var(--v2-radius); background: #fff; box-shadow: var(--v2-shadow); }
.v2-access-table-card > header { display: flex; min-height: 38px; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--v2-border); padding: 0 9px 0 12px; }
.v2-access-table-card > header strong { font-size: 10px; }
.v2-access-table-card > header div { display: flex; align-items: center; gap: 5px; }
.v2-access-table-card > header span { margin-right: 5px; color: var(--v2-muted); font-size: 7px; }
.v2-access-table-card > header button { display: inline-flex; height: 26px; align-items: center; gap: 4px; border: 1px solid #dfe6ef; border-radius: 5px; background: #fff; padding: 0 7px; color: #657286; cursor: pointer; font-size: 7px; }
.v2-access-table-card > header button:disabled { opacity: .4; cursor: not-allowed; }
.v2-access-table-scroll { position: relative; min-height: 0; flex: 1; overflow: auto; overscroll-behavior: contain; }
.v2-access-table-scroll table { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; color: #4e5b6f; font-size: 7px; }
.v2-access-table-scroll th { position: sticky; z-index: 3; top: 0; height: 32px; border-bottom: 1px solid var(--v2-border); background: #f8fafc; color: #607086; text-align: left; font-weight: 700; }
.v2-access-table-scroll th, .v2-access-table-scroll td { max-width: 150px; border-right: 1px solid #eef2f7; padding: 0 8px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v2-access-table-scroll td { height: 31px; border-bottom: 1px solid #eef2f7; content-visibility: auto; font-variant-numeric: tabular-nums; }
.v2-access-table-scroll tr:hover td, .v2-access-table-scroll tr.is-selected td { background: #f2f7ff; }
.v2-access-table-scroll input { width: 12px; height: 12px; accent-color: var(--v2-blue); }
.v2-access-table-scroll td > button { border: 0; background: transparent; color: var(--v2-blue); cursor: pointer; font-size: 7px; }
.v2-access-table-scroll td.is-good { color: var(--v2-green); }
.v2-access-table-scroll td.is-danger { color: var(--v2-red); }
.v2-access-status { display: inline-flex; align-items: center; gap: 5px; color: #64748b; white-space: nowrap; }
.v2-access-status i { width: 6px; height: 6px; border-radius: 50%; background: #94a3b8; }
.v2-access-status.is-online { color: var(--v2-green); }
.v2-access-status.is-online i { background: var(--v2-green); }
.v2-access-status.is-offline i { background: #7b8798; }
.v2-access-status.is-never_reported i { background: #aab3c0; }
.v2-access-status.is-unknown i { background: var(--v2-orange); }
.v2-access-loading, .v2-access-empty { position: sticky; left: 0; display: flex; min-height: 72px; align-items: center; justify-content: center; gap: 7px; color: var(--v2-muted); font-size: 8px; }
.v2-access-loading { position: absolute; inset: 32px 0 auto; min-height: 34px; background: rgba(255,255,255,.88); backdrop-filter: blur(2px); }
.v2-access-loading i { width: 12px; height: 12px; border: 2px solid #cfe0fb; border-top-color: var(--v2-blue); border-radius: 50%; animation: v2-spin .8s linear infinite; }
.v2-access-table-card > footer { display: flex; min-height: 38px; align-items: center; justify-content: space-between; border-top: 1px solid var(--v2-border); padding: 0 9px; color: #657286; font-size: 7px; }
.v2-access-table-card > footer div { display: flex; gap: 5px; }
.v2-access-table-card > footer button, .v2-access-table-card > footer select { height: 25px; border: 1px solid #dfe6ef; border-radius: 5px; background: #fff; padding: 0 7px; color: #5f6e83; font-size: 7px; }
.v2-access-table-card > footer button:disabled { opacity: .35; }
.v2-access-side { min-width: 0; min-height: 0; overflow: auto; overscroll-behavior: contain; }
.v2-access-side > section { overflow: hidden; border: 1px solid var(--v2-border); border-radius: var(--v2-radius); background: #fff; box-shadow: var(--v2-shadow); }
.v2-access-side > section + section { margin-top: 9px; }
.v2-access-side section > header { display: flex; height: 38px; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--v2-border); padding: 0 11px; }
.v2-access-side section > header strong { font-size: 10px; }
.v2-access-side section > header span { font-size: 7px; }
.v2-access-identity { margin: 0; padding: 7px 11px 3px; }
.v2-access-identity > div, .v2-access-inspector section dl > div { display: grid; grid-template-columns: 77px minmax(0, 1fr); gap: 8px; padding: 4px 0; font-size: 7px; }
.v2-access-inspector dt { color: #7e8b9e; }
.v2-access-inspector dd { margin: 0; overflow-wrap: anywhere; color: #46546a; text-align: right; }
.v2-access-inspector dd.is-good { color: var(--v2-green); }
.v2-access-inspector dd.is-danger { color: var(--v2-red); }
.v2-access-vehicle-link { display: block; margin: 3px 11px 9px; color: var(--v2-blue); text-decoration: none; font-size: 7px; }
.v2-access-inspector > section { border-top: 1px solid var(--v2-border); padding: 9px 11px; }
.v2-access-inspector h3 { margin: 0 0 5px; font-size: 8px; }
.v2-access-inspector section dl { margin: 0; }
.v2-access-proof p { display: grid; grid-template-columns: 64px 1fr; gap: 8px; margin: 0; padding: 4px 0; color: #778599; font-size: 7px; line-height: 1.5; }
.v2-access-proof p b { color: #4c596d; }
.v2-access-side-empty { display: flex; min-height: 100px; align-items: center; justify-content: center; padding: 16px; color: var(--v2-muted); text-align: center; font-size: 8px; line-height: 1.6; }
.v2-threshold-form { min-width: 0; margin: 0; border: 0; padding: 7px 11px 10px; }
.v2-threshold-form:disabled { opacity: .82; }
.v2-threshold-form label { position: relative; display: grid; min-height: 30px; grid-template-columns: 84px minmax(0, 1fr); align-items: center; gap: 7px; border-bottom: 1px solid #eef2f7; color: #657286; font-size: 7px; }
.v2-threshold-form input, .v2-threshold-form select { min-width: 0; height: 24px; border: 1px solid #dce4ef; border-radius: 5px; background: #fff; padding: 0 22px 0 7px; color: #46546a; outline: 0; font-size: 7px; }
.v2-threshold-form em { position: absolute; right: 7px; color: #96a1b1; font-size: 6px; font-style: normal; }
.v2-threshold-form > button { display: inline-flex; width: 100%; height: 29px; align-items: center; justify-content: center; gap: 5px; margin-top: 8px; border: 1px solid var(--v2-blue); border-radius: 6px; background: var(--v2-blue); color: #fff; cursor: pointer; font-size: 8px; font-weight: 700; }
.v2-threshold-form > button:disabled { opacity: .5; }
.v2-threshold-error { margin: 6px 0 0; color: var(--v2-red); font-size: 7px; line-height: 1.4; }
.v2-access-threshold > footer { display: flex; justify-content: space-between; gap: 8px; border-top: 1px solid var(--v2-border); padding: 8px 11px; color: #7f8c9f; font-size: 6px; }
.v2-access-threshold > footer b { color: #536177; text-align: right; font-weight: 600; }

/* Vehicle-first access matrix. Text deliberately starts at 11px instead of the legacy 7-9px scale. */
.v2-access-page-v3 { gap: 12px; overflow: auto; padding: 16px 18px 20px; background: #f6f8fb; }
.v2-access-heading { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 20px; }
.v2-access-heading h2 { margin: 0; color: #26354b; font-size: 22px; line-height: 1.25; letter-spacing: -.03em; }
.v2-access-heading p { margin: 5px 0 0; color: #6f7d90; font-size: 13px; line-height: 1.5; }
.v2-access-heading > div:last-child { display: flex; align-items: center; gap: 12px; color: #7b889a; font-size: 12px; }
.v2-access-heading button, .v2-access-table-v3 > .semi-card-body > header button { display: inline-flex; height: 34px; align-items: center; gap: 6px; border: 1px solid #dbe3ed; border-radius: 7px; background: #fff; padding: 0 12px; color: #536176; cursor: pointer; font-size: 12px; font-weight: 700; }
.v2-access-heading button:hover, .v2-access-table-v3 > .semi-card-body > header button:hover { border-color: #9fc1f5; color: var(--v2-blue); }
.v2-access-filter-card-v3.semi-card { flex: 0 0 auto; overflow: visible; border: 1px solid var(--v2-border); border-radius: 9px; box-shadow: var(--v2-shadow); }
.v2-access-filter-v3 { display: grid; grid-template-columns: minmax(260px, 1.4fr) repeat(3, minmax(150px, .7fr)) auto auto; align-items: end; gap: 10px; padding: 13px 14px; }
.v2-access-filter-v3 label { display: flex; min-width: 0; flex-direction: column; gap: 6px; color: #647287; font-size: 12px; font-weight: 650; }
.v2-access-filter-v3 label > div { display: flex; height: 38px; align-items: center; gap: 8px; border: 1px solid #d9e2ed; border-radius: 7px; padding: 0 10px; color: #8997aa; }
.v2-access-filter-v3 input, .v2-access-filter-v3 select { min-width: 0; width: 100%; height: 38px; border: 1px solid #d9e2ed; border-radius: 7px; background: #fff; padding: 0 10px; color: #35445b; outline: 0; font-size: 13px; }
.v2-access-filter-v3 label > div input { height: auto; border: 0; padding: 0; }
.v2-access-filter-v3 label > div:focus-within, .v2-access-filter-v3 select:focus { border-color: #83aff4; box-shadow: 0 0 0 3px rgba(18,104,243,.09); }
.v2-access-filter-v3 > button { height: 38px; padding: 0 15px; font-size: 13px; }
.v2-access-kpis-card-v3.semi-card { min-height: 56px; flex: 0 0 auto; overflow: hidden; border: 1px solid var(--v2-border); border-radius: 9px; box-shadow: var(--v2-shadow); }
.v2-access-kpis-card-v3 > .semi-card-body { height: 100%; }
.v2-access-kpis-v3 { display: grid; min-height: 56px; height: 100%; grid-template-columns: repeat(4, minmax(140px, 1fr)); overflow: hidden; }
.v2-access-kpis-v3 .v2-metric-action { position: relative; display: block; width: 100%; min-width: 0; height: auto; border: 0; border-radius: 0; background: #fff; padding: 10px 18px; text-align: left; cursor: pointer; }
.v2-access-kpis-v3 .v2-metric-action + .v2-metric-action::before { position: absolute; inset: 10px auto 10px 0; width: 1px; background: #e6ebf2; content: ''; }
.v2-access-kpis-v3 .v2-metric-action:hover { background: #f8fbff; }
.v2-access-kpis-v3 .v2-metric-action.is-active { z-index: 1; background: #eef6ff; box-shadow: inset 0 -3px var(--v2-blue); }
.v2-access-kpis-v3 .semi-button-content { display: block; width: 100%; min-width: 0; }
.v2-access-kpis-v3 .v2-metric-action-content { display: flex; width: 100%; min-width: 0; align-items: center; gap: 12px; }
.v2-access-kpis-v3 small { color: #748195; font-size: 12px; }
.v2-access-kpis-v3 strong { margin-left: auto; color: #29384e; font-size: 22px; line-height: 1; font-variant-numeric: tabular-nums; }
.v2-access-kpis-v3 em { color: #8995a6; font-size: 11px; font-style: normal; }
.v2-access-kpis-v3 .is-healthy strong, .v2-access-kpis-v3 .is-today strong { color: var(--v2-green); }
.v2-access-kpis-v3 .is-incomplete strong { color: #d47b12; }
.v2-access-kpis-v3 .is-degraded strong { color: #bd6423; }
.v2-access-kpis-v3 .is-attention strong { color: #d47b12; }
.v2-access-kpis-v3 .is-offline strong, .v2-access-kpis-v3 .is-never strong { color: #5f6f83; }
.v2-access-protocol-overview { display: grid; flex: 0 0 auto; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.v2-access-protocol-overview article { min-width: 0; border: 1px solid var(--v2-border); border-radius: 9px; background: #fff; padding: 13px 15px; box-shadow: var(--v2-shadow); }
.v2-access-protocol-overview header, .v2-access-protocol-overview div, .v2-access-protocol-overview footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.v2-access-protocol-overview header strong { color: #33445a; font-size: 14px; }.v2-access-protocol-overview header span { color: #8995a6; font-size: 11px; }
.v2-access-protocol-overview div { justify-content: flex-start; margin-top: 9px; }.v2-access-protocol-overview div b { color: #25364c; font-size: 24px; }.v2-access-protocol-overview div small { color: #708095; font-size: 12px; }.v2-access-protocol-overview div em { margin-left: auto; color: #c66a0a; font-size: 12px; font-style: normal; }
.v2-access-protocol-overview footer { margin-top: 10px; }.v2-access-protocol-overview footer > i { height: 5px; flex: 1; overflow: hidden; border-radius: 5px; background: #edf1f6; }.v2-access-protocol-overview footer > i span { display: block; height: 100%; border-radius: inherit; background: #3787ee; }.v2-access-protocol-overview footer > span { color: #728095; font-size: 11px; white-space: nowrap; }
.v2-access-workspace-v3 { display: grid; min-height: 540px; flex: 1 0 540px; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.v2-access-workspace-v3.is-inspector-open { grid-template-columns: minmax(760px, 1fr) 390px; }
.v2-access-table-v3.semi-card { min-width: 0; min-height: 0; overflow: hidden; border: 1px solid var(--v2-border); border-radius: 9px; box-shadow: var(--v2-shadow); }
.v2-access-table-v3 > .semi-card-body { display: flex; height: 100%; min-height: 0; flex-direction: column; }
.v2-access-table-v3 > .semi-card-body > header { display: flex; min-height: 52px; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--v2-border); padding: 0 13px 0 15px; }
.v2-access-table-title { display: flex; min-width: 0; align-items: baseline; gap: 10px; }.v2-access-table-title strong { color: #334258; font-size: 15px; white-space: nowrap; }.v2-access-table-title > span { overflow: hidden; color: #8692a3; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.v2-access-table-actions { display: flex; min-width: 0; align-items: center; gap: 9px; }
.v2-access-protocol-coverage { display: flex; min-width: 0; align-items: center; gap: 6px; }
.v2-access-protocol-coverage > span { display: inline-flex; align-items: center; gap: 5px; border: 1px solid #e2e8f0; border-radius: 6px; background: #f8fafc; padding: 5px 7px; white-space: nowrap; }
.v2-access-protocol-coverage b { color: #526178; font-size: 10px; }.v2-access-protocol-coverage em { color: #7e8b9d; font-size: 10px; font-style: normal; font-variant-numeric: tabular-nums; }
.v2-access-table-scroll-v3 { position: relative; min-height: 0; flex: 1; overflow: auto; overscroll-behavior: contain; }
.v2-access-table-scroll-v3 table { width: 100%; min-width: 1030px; border-collapse: separate; border-spacing: 0; table-layout: fixed; color: #48576c; font-size: 13px; }
.v2-access-table-scroll-v3 th { position: sticky; z-index: 2; top: 0; height: 40px; border-bottom: 1px solid #dfe5ed; background: #f7f9fc; color: #647287; text-align: left; font-size: 12px; font-weight: 700; }
.v2-access-table-scroll-v3 th, .v2-access-table-scroll-v3 td { padding: 8px 11px; vertical-align: middle; }
.v2-access-table-scroll-v3 th:nth-child(1) { width: 165px; }.v2-access-table-scroll-v3 th:nth-child(2) { width: 140px; }.v2-access-table-scroll-v3 th:nth-child(3) { width: 115px; }.v2-access-table-scroll-v3 th:nth-child(4), .v2-access-table-scroll-v3 th:nth-child(5), .v2-access-table-scroll-v3 th:nth-child(6) { width: 160px; }.v2-access-table-scroll-v3 th:nth-child(7) { width: 120px; }
.v2-access-table-scroll-v3 tbody tr { cursor: pointer; transition: background .14s ease; }.v2-access-table-scroll-v3 tbody tr:hover, .v2-access-table-scroll-v3 tbody tr.is-selected { background: #f2f7ff; }.v2-access-table-scroll-v3 tbody td { height: 67px; border-bottom: 1px solid #edf1f5; }
.v2-access-table-scroll-v3 td > strong, .v2-access-table-scroll-v3 td > b { display: block; overflow: hidden; color: #314158; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }.v2-access-table-scroll-v3 td > span { display: block; overflow: hidden; margin-top: 5px; color: #8793a5; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.v2-access-protocol-cell { display: grid; min-width: 0; gap: 4px; }.v2-access-protocol-cell > span { display: inline-flex; width: fit-content; align-items: center; gap: 5px; color: #6c788b; font-size: 12px; }.v2-access-protocol-cell > span i { width: 7px; height: 7px; border-radius: 50%; background: #9aa6b5; }.v2-access-protocol-cell > strong { color: #3d4d63; font-size: 12px; font-weight: 650; }.v2-access-protocol-cell > small { overflow: hidden; color: #8b97a7; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.v2-access-protocol-cell.is-online > span { color: #16815f; }.v2-access-protocol-cell.is-online > span i { background: #19a974; box-shadow: 0 0 0 3px rgba(25,169,116,.11); }.v2-access-protocol-cell.is-offline > span { color: #b26512; }.v2-access-protocol-cell.is-offline > span i { background: #e6922e; }.v2-access-protocol-cell.is-missing > span { color: #8290a3; }.v2-access-protocol-cell.is-missing > span i { border: 1px solid #aeb8c5; background: #fff; }
.v2-access-connection { display: grid; gap: 5px; }.v2-access-connection strong { width: fit-content; border-radius: 12px; background: #eef2f6; padding: 4px 8px; color: #607086; font-size: 11px; }.v2-access-connection span { color: #8793a5; font-size: 11px; }.v2-access-connection.is-healthy strong { background: #eaf8f2; color: #15815e; }.v2-access-connection.is-incomplete strong, .v2-access-connection.is-degraded strong { background: #fff4e5; color: #b5660c; }.v2-access-connection.is-not_connected strong { background: #fff0f0; color: #bc4d4d; }
.v2-access-table-v3 > .semi-card-body > footer { display: flex; min-height: 46px; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid var(--v2-border); padding: 0 12px; color: #788699; font-size: 12px; }.v2-access-table-v3 > .semi-card-body > footer div { display: flex; align-items: center; gap: 7px; }.v2-access-table-v3 > .semi-card-body > footer button, .v2-access-table-v3 > .semi-card-body > footer select { height: 30px; border: 1px solid #dbe3ed; border-radius: 6px; background: #fff; padding: 0 9px; color: #5d6b80; font-size: 12px; }
.v2-access-inspector-v3.semi-card { min-width: 0; overflow: auto; border: 1px solid var(--v2-border); border-radius: 9px; box-shadow: var(--v2-shadow); }
.v2-access-inspector-summary { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--v2-border); padding: 10px 14px; }.v2-access-inspector-summary > div { min-width: 0; padding: 7px 4px; }.v2-access-inspector-summary span { display: block; color: #8793a5; font-size: 11px; }.v2-access-inspector-summary strong { display: block; margin-top: 5px; color: #3f4e63; font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }.v2-access-inspector-summary .v2-access-connection { margin-top: 4px; }
.v2-access-protocol-details { display: grid; gap: 9px; padding: 12px; }.v2-access-protocol-detail { overflow: hidden; border: 1px solid #e1e7ef; border-radius: 8px; }.v2-access-protocol-detail > header { display: flex; height: 38px; align-items: center; justify-content: space-between; background: #f8fafc; padding: 0 10px; }.v2-access-protocol-detail > header strong { color: #3b4a60; font-size: 13px; }.v2-access-protocol-detail > header span { display: inline-flex; align-items: center; gap: 5px; color: #69778b; font-size: 11px; }.v2-access-protocol-detail > header i { width: 7px; height: 7px; border-radius: 50%; background: #9aa6b5; }.v2-access-protocol-detail.is-online > header i { background: var(--v2-green); }.v2-access-protocol-detail.is-offline > header i { background: var(--v2-orange); }.v2-access-protocol-detail.is-missing { border-color: #e1e7ef; }.v2-access-protocol-detail.is-missing > header { background: #f8fafc; }.v2-access-protocol-detail.is-missing > header i { border: 1px solid #aeb8c5; background: #fff; }
.v2-access-protocol-detail dl { display: grid; grid-template-columns: 1fr 1fr; margin: 0; padding: 7px 10px; }.v2-access-protocol-detail dl > div { min-width: 0; padding: 5px 3px; }.v2-access-protocol-detail dt { color: #8995a6; font-size: 11px; }.v2-access-protocol-detail dd { overflow: hidden; margin: 4px 0 0; color: #46556a; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }.v2-access-protocol-detail dd.is-danger { color: var(--v2-red); }.v2-access-protocol-detail p { margin: 0; border-top: 1px solid #edf1f5; padding: 7px 10px; color: #7c899b; font-size: 11px; line-height: 1.5; }
.v2-access-inspector-v3 > .semi-card-body > footer { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; border-top: 1px solid var(--v2-border); padding: 10px 14px; }.v2-access-inspector-v3 > .semi-card-body > footer span { color: #8591a2; font-size: 11px; line-height: 1.5; }.v2-access-inspector-v3 > .semi-card-body > footer a { flex: 0 0 auto; color: var(--v2-blue); font-size: 12px; text-decoration: none; }
.v2-access-identity-queue-v3, .v2-access-settings { flex: 0 0 auto; border: 1px solid var(--v2-border); border-radius: 8px; background: #fff; }.v2-access-identity-queue-v3 summary, .v2-access-settings summary { display: flex; min-height: 40px; align-items: center; gap: 10px; padding: 0 12px; color: #5c6b80; cursor: pointer; font-size: 11px; }.v2-access-identity-queue-v3 summary span { color: #8995a6; font-size: 10px; }.v2-access-identity-queue-v3 > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; border-top: 1px solid var(--v2-border); padding: 10px; }.v2-access-identity-queue-v3 article { display: grid; gap: 4px; border: 1px solid #e4e9f0; border-radius: 7px; padding: 9px; }.v2-access-identity-queue-v3 article b { font-size: 11px; }.v2-access-identity-queue-v3 article span, .v2-access-identity-queue-v3 article small { color: #7d8a9c; font-size: 9px; line-height: 1.5; }
.v2-access-settings fieldset { display: flex; flex-wrap: wrap; align-items: end; gap: 9px; margin: 0; border: 0; border-top: 1px solid var(--v2-border); padding: 11px; }.v2-access-settings label { display: grid; gap: 5px; color: #718095; font-size: 10px; }.v2-access-settings input { width: 110px; height: 32px; border: 1px solid #dbe3ed; border-radius: 6px; padding: 0 8px; font-size: 11px; }.v2-access-settings button { display: inline-flex; height: 32px; align-items: center; gap: 5px; border: 0; border-radius: 6px; background: var(--v2-blue); padding: 0 11px; color: #fff; font-size: 10px; }.v2-access-settings p { width: 100%; margin: 0; color: var(--v2-red); font-size: 10px; }

.v2-alert-page { display: flex; height: 100%; min-height: 0; flex-direction: column; overflow: hidden; background: #f5f7fa; padding: 0 12px 12px; }
.v2-alert-heading { display: flex; min-height: 48px; flex: 0 0 auto; align-items: center; justify-content: space-between; background: #fff; margin: 0 -12px; padding: 0 16px; }
.v2-alert-heading h2 { margin: 0; color: #26354b; font-size: 17px; letter-spacing: -.02em; }
.v2-alert-heading p { display: inline; margin: 0 0 0 12px; color: var(--v2-muted); font-size: 8px; }
.v2-alert-heading > div { display: flex; align-items: baseline; }
.v2-alert-tabs { display: flex; min-height: 35px; flex: 0 0 auto; gap: 18px; border-bottom: 1px solid var(--v2-border); background: #fff; margin: 0 -12px 8px; padding: 0 16px; }
.v2-alert-tabs button { position: relative; display: inline-flex; align-items: center; gap: 5px; border: 0; background: transparent; padding: 0 4px; color: #68768a; cursor: pointer; font-size: 9px; font-weight: 600; }
.v2-alert-tabs button.is-active { color: var(--v2-blue); }
.v2-alert-tabs button.is-active::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; border-radius: 2px 2px 0 0; background: var(--v2-blue); content: ''; }
.v2-alert-tabs .v2-segmented-tab-count { min-width: 18px; min-height: 18px; background: var(--v2-red); color: #fff; font-size: 8px; }
.v2-alert-filter-card.semi-card { flex: 0 0 auto; overflow: visible; border: 1px solid var(--v2-border); border-radius: var(--v2-radius); box-shadow: var(--v2-shadow); }
.v2-alert-filter { display: grid; grid-template-columns: minmax(180px,1.15fr) repeat(4,minmax(92px,.65fr)) repeat(2,minmax(135px,.8fr)) auto auto; align-items: end; gap: 6px; padding: 7px 9px; }
.v2-alert-filter label { display: flex; min-width: 0; flex-direction: column; gap: 4px; color: var(--v2-muted); font-size: 7px; }
.v2-alert-filter label > div { display: flex; height: 30px; align-items: center; gap: 5px; border: 1px solid #dce4ef; border-radius: 5px; padding: 0 7px; color: #8996a8; }
.v2-alert-filter input, .v2-alert-filter select { min-width: 0; height: 30px; border: 1px solid #dce4ef; border-radius: 5px; background: #fff; padding: 0 7px; color: #435168; outline: 0; font-size: 8px; }
.v2-alert-filter label > div input { height: auto; flex: 1; border: 0; padding: 0; }
.v2-alert-filter label > div:focus-within, .v2-alert-filter input:focus, .v2-alert-filter select:focus { border-color: #8bb6fb; box-shadow: 0 0 0 3px rgba(18,104,243,.08); }
.v2-alert-filter button { height: 30px; padding: 0 10px; white-space: nowrap; font-size: 8px; }
.v2-alert-kpis-card.semi-card { min-height: 62px; flex: 0 0 auto; overflow: hidden; border: 1px solid var(--v2-border); border-radius: var(--v2-radius); margin-top: 8px; box-shadow: var(--v2-shadow); }
.v2-alert-kpis-card > .semi-card-body { height: 100%; }
.v2-alert-kpis { display: grid; min-height: 62px; height: 100%; grid-template-columns: repeat(7,minmax(74px,1fr)); overflow: hidden; }
.v2-alert-kpis .v2-metric-action { position: relative; display: block; width: 100%; min-width: 0; height: auto; border: 0; border-radius: 0; background: #fff; padding: 0; cursor: pointer; }
.v2-alert-kpis .v2-metric-action + .v2-metric-action::before { position: absolute; inset: 11px auto 11px 0; width: 1px; background: var(--v2-border); content: ''; }
.v2-alert-kpis .v2-metric-action:hover, .v2-alert-kpis .is-unprocessed { background: #fff9f2; }
.v2-alert-kpis .v2-metric-action.is-active { z-index: 1; background: #eef6ff; box-shadow: inset 0 -3px var(--v2-blue); }
.v2-alert-kpis .v2-metric-action.is-unprocessed.is-active { background: #fff3e8; box-shadow: inset 0 -3px var(--v2-orange); }
.v2-alert-kpis .semi-button-content { display: block; width: 100%; }
.v2-alert-kpis .v2-metric-action-content { display: flex; min-height: 62px; align-items: center; justify-content: center; flex-direction: column; }
.v2-alert-kpis small { color: var(--v2-muted); font-size: 8px; }
.v2-alert-kpis strong { margin-top: 5px; font-size: 18px; line-height: 1; font-variant-numeric: tabular-nums; }
.v2-alert-kpis .is-unprocessed strong, .v2-alert-kpis button:first-child strong { color: var(--v2-red); }
.v2-alert-kpis .is-processing strong { color: var(--v2-blue); }.v2-alert-kpis .is-recovered strong { color: var(--v2-green); }.v2-alert-kpis .is-notice strong { color: #7c3aed; }
.v2-alert-workspace { display: grid; min-height: 0; flex: 1; grid-template-columns: minmax(700px,1fr) 320px; gap: 8px; margin-top: 8px; }
.v2-alert-table-card.semi-card { min-width: 0; min-height: 0; overflow: hidden; border: 1px solid var(--v2-border); border-radius: var(--v2-radius); box-shadow: var(--v2-shadow); }
.v2-alert-table-card > .semi-card-body { display: flex; height: 100%; min-height: 0; flex-direction: column; }
.v2-alert-table-card > .semi-card-body > header { display: flex; min-height: 36px; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--v2-border); padding: 0 9px 0 11px; }
.v2-alert-table-card > .semi-card-body > header strong { font-size: 9px; }.v2-alert-table-card > .semi-card-body > header div { display: flex; align-items: center; gap: 7px; }.v2-alert-table-card > .semi-card-body > header span { color: var(--v2-muted); font-size: 7px; }
.v2-alert-table-card > .semi-card-body > header button { display: inline-flex; height: 25px; align-items: center; gap: 4px; border: 1px solid #dfe6ef; border-radius: 5px; background: #fff; padding: 0 7px; color: #657286; cursor: pointer; font-size: 7px; }
.v2-alert-table-scroll { position: relative; min-height: 0; flex: 1; overflow: auto; overscroll-behavior: contain; }
.v2-alert-table-scroll table { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; color: #4e5b6f; font-size: 7px; }
.v2-alert-table-scroll th { position: sticky; z-index: 3; top: 0; height: 31px; border-bottom: 1px solid var(--v2-border); background: #f8fafc; color: #607086; text-align: left; }
.v2-alert-table-scroll th, .v2-alert-table-scroll td { max-width: 130px; border-right: 1px solid #eef2f7; padding: 0 7px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v2-alert-table-scroll td { height: 34px; border-bottom: 1px solid #eef2f7; content-visibility: auto; font-variant-numeric: tabular-nums; cursor: pointer; }
.v2-alert-table-scroll td strong, .v2-alert-table-scroll td small { display: block; }.v2-alert-table-scroll td small { margin-top: 2px; color: #8b97a8; font-size: 6px; }
.v2-alert-table-scroll tr:hover td, .v2-alert-table-scroll tr.is-selected td { background: #f2f7ff; }.v2-alert-table-scroll tr.is-selected td:first-child { box-shadow: inset 2px 0 var(--v2-blue); }
.v2-alert-table-scroll input { width: 12px; height: 12px; accent-color: var(--v2-blue); }
.v2-alert-severity.semi-tag, .v2-alert-status.semi-tag { display: inline-flex; height: 22px; align-items: center; border-radius: 6px; padding-inline: 7px; font-size: 9px; font-weight: 650; white-space: nowrap; }.v2-alert-severity i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.v2-alert-loading, .v2-alert-empty { position: sticky; left: 0; display: flex; min-height: 70px; align-items: center; justify-content: center; gap: 6px; color: var(--v2-muted); font-size: 8px; }.v2-alert-loading { position: absolute; inset: 31px 0 auto; min-height: 32px; background: rgba(255,255,255,.88); }.v2-alert-loading i { width: 11px; height: 11px; border: 2px solid #cfe0fb; border-top-color: var(--v2-blue); border-radius: 50%; animation: v2-spin .8s linear infinite; }
.v2-alert-table-card > .semi-card-body > footer { display: flex; min-height: 36px; align-items: center; justify-content: space-between; border-top: 1px solid var(--v2-border); padding: 0 9px; color: #657286; font-size: 7px; }.v2-alert-table-card > .semi-card-body > footer div { display: flex; gap: 5px; }.v2-alert-table-card > .semi-card-body > footer button, .v2-alert-table-card > .semi-card-body > footer select { height: 24px; border: 1px solid #dfe6ef; border-radius: 5px; background: #fff; padding: 0 7px; color: #5f6e83; font-size: 7px; }.v2-alert-table-card > .semi-card-body > footer button:disabled { opacity: .35; }
.v2-alert-inspector.semi-card { min-width: 0; min-height: 0; overflow: auto; overscroll-behavior: contain; border: 1px solid var(--v2-border); border-radius: var(--v2-radius); box-shadow: var(--v2-shadow); }
.v2-alert-inspector > .semi-card-body > header { display: flex; min-height: 52px; align-items: center; border-bottom: 1px solid var(--v2-border); padding: 8px 11px; }.v2-alert-inspector > .semi-card-body > header > div { display: flex; min-width: 0; flex: 1; justify-content: space-between; flex-direction: column; gap: 6px; }.v2-alert-inspector > .semi-card-body > header strong { font-size: 12px; }.v2-alert-inspector > .semi-card-body > header span { display: flex; gap: 5px; font-size: 7px; }
.v2-alert-inspector > .semi-card-body > section { border-bottom: 1px solid var(--v2-border); padding: 9px 11px; }.v2-alert-inspector h3 { margin: 0 0 6px; border-left: 2px solid var(--v2-blue); padding-left: 6px; font-size: 8px; }.v2-alert-inspector dl { margin: 0; }.v2-alert-inspector dl > div { display: grid; grid-template-columns: 74px minmax(0,1fr); gap: 7px; padding: 3px 0; font-size: 7px; }.v2-alert-inspector dt { color: #7f8c9f; }.v2-alert-inspector dd { margin: 0; overflow-wrap: anywhere; text-align: right; }
.v2-alert-evidence { display: grid; grid-template-columns: 1fr 24px 1fr; align-items: center; gap: 4px; }.v2-alert-evidence > div { display: flex; min-height: 57px; align-items: center; justify-content: center; flex-direction: column; border: 1px solid #e0e7f0; border-radius: 6px; background: #fafcff; text-align: center; }.v2-alert-evidence small { color: #7e8b9e; font-size: 7px; }.v2-alert-evidence strong { margin-top: 6px; color: #39475c; font-size: 11px; }.v2-alert-evidence > div:first-child strong { color: var(--v2-red); }.v2-alert-evidence > b { color: #7e8b9e; text-align: center; font-size: 8px; }
.v2-alert-timeline { padding-left: 3px; }.v2-alert-timeline article { position: relative; display: grid; min-height: 35px; grid-template-columns: 12px 1fr; gap: 7px; }.v2-alert-timeline article:not(:last-child)::before { position: absolute; top: 10px; bottom: -3px; left: 3px; width: 1px; background: #cdd7e4; content: ''; }.v2-alert-timeline i { position: relative; z-index: 1; width: 7px; height: 7px; margin-top: 3px; border: 2px solid var(--v2-blue); border-radius: 50%; background: #fff; }.v2-alert-timeline article:first-child i { border-color: var(--v2-red); }.v2-alert-timeline strong { display: block; font-size: 7px; }.v2-alert-timeline span { display: block; margin-top: 3px; color: #8793a5; font-size: 6px; }.v2-alert-timeline p { margin: 3px 0 0; color: #68768a; font-size: 6px; }
.v2-alert-inspector textarea { width: 100%; height: 46px; resize: vertical; border: 1px solid #dce4ef; border-radius: 5px; padding: 6px; color: #46546a; outline: 0; font: inherit; font-size: 7px; }.v2-alert-note-count { display: block; margin-top: -13px; padding-right: 5px; color: #9aa5b4; text-align: right; font-size: 6px; }.v2-alert-action-error { margin: 6px 0 0; color: var(--v2-red); font-size: 7px; }
.v2-alert-actions { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 5px; margin-top: 8px; }.v2-alert-actions button { height: 28px; border: 1px solid #dce4ef; border-radius: 5px; background: #fff; color: #526176; cursor: pointer; font-size: 7px; }.v2-alert-actions button.is-primary { border-color: var(--v2-blue); background: var(--v2-blue); color: #fff; }.v2-alert-actions button:disabled { opacity: .35; cursor: not-allowed; }
.v2-alert-links { display: grid; grid-template-columns: repeat(3,1fr); gap: 4px; padding: 8px 11px; }.v2-alert-links a { display: flex; height: 26px; align-items: center; justify-content: center; color: var(--v2-blue); text-decoration: none; font-size: 7px; }
.v2-alert-side-empty { display: flex; min-height: 220px; align-items: center; justify-content: center; flex-direction: column; gap: 8px; padding: 20px; color: #8290a3; text-align: center; }.v2-alert-side-empty strong { color: #4b596d; font-size: 11px; }.v2-alert-side-empty span { font-size: 8px; }
.v2-alert-rules { display: grid; min-height: 0; flex: 1; grid-template-columns: 330px minmax(560px,1fr); gap: 8px; }.v2-alert-rule-list, .v2-alert-rule-editor, .v2-alert-notifications { min-height: 0; overflow: auto; border: 1px solid var(--v2-border); border-radius: var(--v2-radius); background: #fff; box-shadow: var(--v2-shadow); }
.v2-alert-rule-list > header, .v2-alert-rule-editor > header { display: flex; min-height: 45px; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--v2-border); padding: 0 12px; }.v2-alert-rule-list > header strong, .v2-alert-rule-editor > header strong { font-size: 11px; }.v2-alert-rule-list > header button, .v2-alert-rule-editor > header button { height: 27px; border: 1px solid #dce4ef; border-radius: 5px; background: #fff; padding: 0 8px; color: var(--v2-blue); cursor: pointer; font-size: 8px; }
.v2-alert-rule-list > button { display: grid; width: 100%; min-height: 58px; grid-template-columns: 7px minmax(0,1fr) auto; align-items: center; gap: 9px; border: 0; border-bottom: 1px solid #eef2f7; background: #fff; padding: 8px 11px; text-align: left; cursor: pointer; }.v2-alert-rule-list > button.is-selected { background: #f2f7ff; box-shadow: inset 2px 0 var(--v2-blue); }.v2-alert-rule-list > button > i { width: 7px; height: 7px; border-radius: 50%; background: #94a3b8; }.v2-alert-rule-list > button > i.is-critical { background: var(--v2-red); }.v2-alert-rule-list > button > i.is-major { background: var(--v2-orange); }.v2-alert-rule-list > button span { min-width: 0; }.v2-alert-rule-list > button strong, .v2-alert-rule-list > button small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.v2-alert-rule-list > button strong { font-size: 9px; }.v2-alert-rule-list > button small { margin-top: 5px; color: #8390a2; font-size: 7px; }.v2-alert-rule-list em { color: #94a3b8; font-size: 7px; font-style: normal; }.v2-alert-rule-list em.is-enabled { color: var(--v2-green); }
.v2-alert-rule-editor > header div { display: flex; flex-direction: column; gap: 3px; }.v2-alert-rule-editor > header span { color: var(--v2-muted); font-size: 7px; }.v2-rule-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; padding: 15px; }.v2-rule-form-grid label { display: flex; min-width: 0; flex-direction: column; gap: 5px; color: #68768a; font-size: 8px; }.v2-rule-form-grid label.is-wide { grid-column: 1/-1; }.v2-rule-form-grid input, .v2-rule-form-grid select, .v2-rule-form-grid textarea { min-width: 0; height: 34px; border: 1px solid #dce4ef; border-radius: 6px; background: #fff; padding: 0 9px; color: #435168; outline: 0; font: inherit; font-size: 9px; }.v2-rule-form-grid textarea { height: 60px; padding: 8px; resize: vertical; }.v2-alert-rule-editor > footer { display: flex; align-items: center; gap: 12px; border-top: 1px solid var(--v2-border); padding: 10px 15px; }.v2-alert-rule-editor > footer > div { display: flex; min-width: 0; flex: 1; flex-direction: column; gap: 3px; }.v2-alert-rule-editor > footer b { font-size: 8px; }.v2-alert-rule-editor > footer span { color: var(--v2-muted); font-size: 7px; }.v2-alert-rule-editor > footer em { color: var(--v2-red); font-size: 7px; font-style: normal; }.v2-alert-rule-editor > footer button { height: 32px; }
.v2-alert-rule-templates { display: grid; grid-template-columns: 150px minmax(0,1fr); align-items: center; gap: 12px; border-bottom: 1px solid var(--v2-border); background: linear-gradient(135deg,#f8fbff,#f5f8fc); padding: 12px 15px; }.v2-alert-rule-templates > div { display: flex; flex-direction: column; gap: 4px; }.v2-alert-rule-templates > div strong { color: #314158; font-size: 10px; }.v2-alert-rule-templates > div span { color: var(--v2-muted); font-size: 7px; line-height: 1.5; }.v2-alert-rule-templates nav { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }.v2-alert-rule-templates button { display: flex; min-width: 0; min-height: 50px; justify-content: center; flex-direction: column; gap: 5px; border: 1px solid #d9e4f3; border-radius: 8px; background: rgba(255,255,255,.92); padding: 8px 11px; color: #3e4d63; text-align: left; cursor: pointer; }.v2-alert-rule-templates button:hover { border-color: #9dbdf0; box-shadow: 0 4px 12px rgba(37,99,235,.08); }.v2-alert-rule-templates button:disabled { opacity: .5; cursor: not-allowed; box-shadow: none; }.v2-alert-rule-templates button b { font-size: 9px; }.v2-alert-rule-templates button small { overflow: hidden; color: #7d899b; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.v2-alert-notifications { flex: 1; }.v2-alert-notifications > div { min-height: 0; max-height: calc(100% - 125px); overflow: auto; }.v2-alert-notifications article { display: grid; min-height: 64px; grid-template-columns: 8px minmax(0,1fr) auto; align-items: center; gap: 10px; border-bottom: 1px solid #eef2f7; padding: 9px 13px; }.v2-alert-notifications article.is-read { opacity: .58; }.v2-alert-notifications article > i { width: 8px; height: 8px; border-radius: 50%; background: #94a3b8; }.v2-alert-notifications article > i.is-critical { background: var(--v2-red); }.v2-alert-notifications article > i.is-major { background: var(--v2-orange); }.v2-alert-notifications article strong { font-size: 9px; }.v2-alert-notifications article p { margin: 4px 0; color: #68768a; font-size: 8px; }.v2-alert-notifications article span { color: #94a3b8; font-size: 7px; }.v2-alert-notifications article button { border: 0; background: transparent; color: var(--v2-blue); cursor: pointer; font-size: 8px; }.v2-alert-notifications > footer { display: flex; gap: 16px; border-top: 1px solid var(--v2-border); padding: 12px 13px; color: #7f8c9f; font-size: 7px; }.v2-alert-notifications > footer b { color: #4f5d72; }
@keyframes v2-spin { to { transform: rotate(360deg); } }
@keyframes v2-map-ripple { 0% { opacity: .8; transform: scale(.35); } 80%, 100% { opacity: 0; transform: scale(1.25); } }
@keyframes v2-panel-enter { from { opacity: .72; transform: translate3d(8px, 0, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } }

@media (min-width: 1600px) and (min-height: 900px) {
  .v2-filterbar > .semi-card-body { gap: 12px; padding: 11px 14px; }
  .v2-search-field, .v2-filterbar select, .v2-primary-button, .v2-secondary-button { height: 40px; }
  .v2-kpi { min-height: 70px; padding: 12px 17px; }
  .v2-kpi small { font-size: 11px; }
  .v2-kpi strong { margin-top: 7px; font-size: clamp(20px, 1.2vw, 27px); }
  .v2-vehicle-rail > header { height: 50px; padding: 0 14px; }
  .v2-rail-search { height: 36px; margin: 0 11px 9px; }
  .v2-vehicle-row { min-height: 66px; padding: 9px 12px; }
  .v2-vehicle-identity strong { font-size: 13px; }
  .v2-vehicle-detail { padding: 16px; }
  .v2-detail-title strong { font-size: 17px; }
  .v2-detail-actions a { height: 32px; font-size: 9px; }
  .v2-vehicle-detail h3 { font-size: 12px; }
  .v2-detail-list > div { grid-template-columns: 84px minmax(0, 1fr); padding: 6px 0; font-size: 10px; }
  .v2-metric-grid > div { padding: 11px; }
  .v2-metric-grid small { font-size: 9px; }
  .v2-metric-grid strong { font-size: 17px; }
  .v2-event-strip { min-height: 52px; font-size: 10px; }
  .v2-event-strip > .semi-card-body { min-height: 50px; }
}

@media (min-width: 2200px) and (min-height: 1200px) {
  .v2-monitor-page { gap: 14px; padding: 18px 22px 20px; }
  .v2-filterbar > .semi-card-body { padding: 13px 16px; }
  .v2-search-field, .v2-filterbar select, .v2-primary-button, .v2-secondary-button { height: 42px; font-size: 13px; }
  .v2-kpi { min-height: 82px; padding: 15px 20px; }
  .v2-kpi small { font-size: 12px; }
  .v2-kpi strong { font-size: 28px; }
  .v2-vehicle-rail > header { height: 54px; }
  .v2-vehicle-rail > header strong { font-size: 14px; }
  .v2-rail-search { height: 38px; font-size: 11px; }
  .v2-vehicle-row { min-height: 72px; }
  .v2-vehicle-identity strong { font-size: 14px; }
  .v2-vehicle-motion strong { font-size: 12px; }
  .v2-map-controls { top: 16px; right: 16px; }
  .v2-map-layer-control, .v2-map-follow-control { height: 48px; padding: 0 12px; }
  .v2-map-layer-control strong { font-size: 11px; }
  .v2-map-layer-control small { font-size: 9px; }
  .v2-map-follow-control strong { font-size: 11px; }
  .v2-map-follow-control small { font-size: 9px; }
  .v2-map-legend { bottom: 16px; height: 40px; gap: 22px; padding: 0 20px; font-size: 10px; }
  .v2-vehicle-detail { padding: 19px; }
  .v2-detail-title strong { font-size: 19px; }
  .v2-detail-list > div { grid-template-columns: 92px minmax(0, 1fr); font-size: 11px; }
  .v2-vehicle-detail h3 { font-size: 13px; }
  .v2-metric-grid small { font-size: 10px; }
  .v2-metric-grid strong { font-size: 19px; }
  .v2-event-strip { min-height: 56px; font-size: 11px; }
  .v2-event-strip > .semi-card-body { min-height: 54px; padding: 0 20px; }
}

@media (max-width: 1180px) {
  .v2-monitor-workspace { grid-template-columns: 220px minmax(420px, 1fr); }
  .v2-monitor-workspace.is-detail-open { grid-template-columns: 220px minmax(420px, 1fr) 280px; }
  .v2-monitor-workspace.is-detail-collapsed { grid-template-columns: 220px minmax(420px, 1fr) 42px; }
  .v2-kpis > .semi-card-body { grid-template-columns: repeat(4, 1fr); }
  .v2-kpi:nth-child(5)::before { display: none; }
  .v2-identity-band { grid-template-columns: minmax(240px, 1fr) minmax(300px, 1fr); }
  .v2-identity-actions { grid-column: 1 / -1; justify-content: flex-end; border-top: 1px solid var(--v2-border); }
  .v2-record-grid { grid-template-columns: minmax(460px, 1.5fr) minmax(280px, 1fr); }
  .v2-live-overview .v2-live-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .v2-live-overview .v2-live-grid > div:nth-child(4) { border-left: 0; }
  .v2-live-overview .v2-live-grid > div:nth-child(n+4) { border-top: 1px solid var(--v2-border); }
  .v2-current-location { grid-template-columns: minmax(260px,.8fr) minmax(320px,1.2fr); }
  .v2-history-toolbar { grid-template-columns: minmax(220px, 1fr) minmax(320px, 1.5fr) repeat(3, minmax(100px, .7fr)); }
  .v2-history-toolbar button { min-width: 90px; }
  .v2-history-workspace { grid-template-columns: minmax(600px, 1fr) 280px; }
  .v2-access-filter { grid-template-columns: minmax(210px, 1fr) repeat(4, minmax(110px, .7fr)); }
  .v2-access-filter button { min-width: 86px; }
  .v2-access-advanced > div { grid-template-columns: repeat(3, minmax(150px, 1fr)); }
  .v2-access-workspace { grid-template-columns: minmax(620px, 1fr) 280px; }
  .v2-access-identity-queue > div { grid-template-columns: repeat(3, minmax(180px, 1fr)); }
	.v2-alert-filter { grid-template-columns: minmax(180px,1fr) repeat(4,minmax(88px,.65fr)); }
	.v2-alert-filter label:nth-of-type(6), .v2-alert-filter label:nth-of-type(7) { display: none; }
	.v2-alert-workspace { grid-template-columns: minmax(620px,1fr) 290px; }
}

@media (max-width: 900px) {
  .v2-sidebar { width: 68px; }
  .v2-main { margin-left: 68px; }
  .v2-nav-label, .v2-collapse span { display: none; }
  .v2-brand { justify-content: center; padding: 0; }
  .v2-brand-logo { display: none; }
  .v2-brand-symbol { display: block; }
  .v2-nav-item { justify-content: center; padding: 0; }
  .v2-filterbar > .semi-card-body { grid-template-columns: 1fr 1fr; }
  .v2-search-field { grid-column: 1 / -1; }
  .v2-monitor-workspace, .v2-monitor-workspace.is-detail-collapsed { position: relative; grid-template-columns: 220px minmax(0, 1fr); }
  .v2-monitor-workspace.is-detail-open { position: relative; grid-template-columns: minmax(0, 1fr); }
  .v2-monitor-workspace.is-detail-open > .v2-vehicle-rail { display: none; }
  .v2-monitor-workspace.is-detail-open .v2-map-controls { right: auto; left: 12px; }
  .v2-monitor-workspace.is-detail-open .v2-map-legend { right: 370px; left: 12px; width: auto; max-width: none; transform: none; }
  .v2-vehicle-detail { position: absolute; inset: 10px 10px 10px auto; z-index: 8; display: block; width: min(350px, calc(100% - 20px)); border: 1px solid #d8e2ed; border-radius: 10px; box-shadow: 0 12px 36px rgba(21,32,51,.16); }
  .v2-detail-peek { position: absolute; right: 10px; bottom: 10px; z-index: 8; display: block; min-width: 0; min-height: 0; border: 1px solid #cfe0f8; border-radius: 22px; box-shadow: 0 7px 24px rgba(18,104,243,.16); }
  .v2-detail-peek .semi-button { width: auto; height: 44px; border-radius: 22px; padding: 0 14px; }
  .v2-detail-peek .semi-button-content { flex-direction: row; gap: 7px; }
  .v2-detail-peek .semi-button-content > span { max-width: 130px; writing-mode: horizontal-tb; letter-spacing: 0; text-overflow: ellipsis; white-space: nowrap; }
  .v2-identity-band { grid-template-columns: 1fr; }
  .v2-identity-meta { border: 0; border-top: 1px solid var(--v2-border); border-bottom: 1px solid var(--v2-border); }
  .v2-identity-actions { grid-column: auto; justify-content: stretch; border: 0; }
  .v2-identity-actions a { flex: 1; justify-content: center; }
  .v2-record-grid { display: flex; flex-direction: column; }
  .v2-live-overview .v2-live-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .v2-live-overview .v2-live-grid > div:nth-child(odd) { border-left: 0; }
  .v2-live-overview .v2-live-grid > div:nth-child(n+3) { border-top: 1px solid var(--v2-border); }
  .v2-current-location { grid-template-columns: 1fr; }
  .v2-current-location > span + span { border-top: 1px solid var(--v2-border); border-left: 0; }
  .v2-single-map-card { min-height: 360px; }
  .v2-archive-card, .v2-live-card, .v2-telemetry-card, .v2-events-card { grid-area: auto; }
  .v2-history-page { height: auto; min-height: 100%; overflow: auto; }
  .v2-history-toolbar { grid-template-columns: 1fr 1fr; }
  .v2-history-vehicles { grid-column: 1 / -1; }
  .v2-history-range { grid-column: 1 / -1; }
  .v2-history-workspace { display: flex; flex-direction: column; }
  .v2-history-main { height: 760px; min-height: 0; flex: none; grid-template-rows: 58px 220px minmax(0, 1fr); }
  .v2-history-side { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; overflow: visible; }
  .v2-history-side > .semi-card + .semi-card { margin-top: 0; }
  .v2-access-page { height: auto; min-height: 100%; overflow: auto; }
  .v2-access-filter { grid-template-columns: 1fr 1fr; }
  .v2-access-filter label:first-child { grid-column: 1 / -1; }
  .v2-access-advanced > div { grid-template-columns: 1fr 1fr; }
  .v2-access-kpis { grid-template-columns: repeat(3, 1fr); }
  .v2-access-kpis button:nth-child(4)::before { display: none; }
  .v2-access-workspace { display: flex; flex-direction: column; }
  .v2-access-identity-queue > div { grid-template-columns: repeat(2, minmax(180px, 1fr)); }
  .v2-access-table-card { height: 620px; flex: none; }
  .v2-access-side { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; overflow: visible; }
  .v2-access-side > section + section { margin-top: 0; }
	.v2-alert-page { height: auto; min-height: 100%; overflow: auto; }
	.v2-alert-filter { grid-template-columns: repeat(3,1fr); }
	.v2-alert-filter label:first-child { grid-column: 1/-1; }
	.v2-alert-kpis { grid-template-columns: repeat(4,1fr); }
	.v2-alert-kpis button:nth-child(5)::before { display: none; }
	.v2-alert-workspace { display: flex; flex-direction: column; }
	.v2-alert-table-card { height: 610px; flex: none; }
	.v2-alert-inspector { max-height: none; overflow: visible; }
	.v2-alert-rules { display: flex; flex-direction: column; }
	.v2-alert-rule-list { max-height: 300px; flex: none; }
	.v2-ops-kpis { grid-template-columns: repeat(3,1fr); }.v2-ops-grid { grid-template-columns: 1fr; }.v2-ops-sources > .semi-card-body > div { grid-template-columns: 1fr; }.v2-ops-sources article + article { border-top: 1px solid var(--v2-border); border-left: 0; }
	.v2-reconcile-kpis { grid-template-columns: repeat(3,1fr); }.v2-reconcile-layout { grid-template-columns: minmax(0,1fr) 220px; }.v2-reconcile-toolbar { grid-template-columns: minmax(220px,1fr) repeat(2,minmax(120px,auto)); }.v2-reconcile-toolbar select:last-child { grid-column: span 2; }
	.v2-source-summary { grid-template-columns: repeat(2,1fr); }.v2-source-summary article:nth-child(3) { border-left: 0; }.v2-source-summary article:nth-child(n+3) { border-top: 1px solid #e7edf4; }
}

.v2-mileage-page { display: flex; min-height: 100%; flex-direction: column; gap: 12px; padding: 18px 20px 20px; }
.v2-mileage-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.v2-mileage-heading h2 { margin: 0; color: #172033; font-size: 24px; font-weight: 720; letter-spacing: -.04em; }
.v2-mileage-heading p { margin: 6px 0 0; color: #748196; font-size: 12px; line-height: 1.5; }
.v2-mileage-heading > button { display: flex; height: 36px; align-items: center; gap: 7px; border: 1px solid #d8e0eb; border-radius: 8px; background: #fff; padding: 0 13px; color: #56657a; cursor: pointer; font-size: 12px; font-weight: 600; transition: border-color .16s ease, color .16s ease, background .16s ease; }
.v2-mileage-heading > button:hover { border-color: #aebed3; background: #f8fafc; color: #1f4e8c; }
.v2-mileage-query-panel.semi-card { overflow: visible; border: 1px solid #d9e2ed; border-radius: 12px; background: #fff; box-shadow: 0 6px 22px rgba(24,39,62,.055); }
.v2-mileage-filter { display: grid; grid-template-columns: minmax(320px,1.5fr) minmax(132px,.55fr) minmax(132px,.55fr) auto auto auto; align-items: start; gap: 12px; padding: 16px 18px 15px; }
.v2-mileage-filter > label { display: flex; min-width: 0; flex-direction: column; gap: 7px; color: #4f5f75; font-size: 11px; font-weight: 650; }
.v2-mileage-filter > label > input { width: 100%; height: 40px; border: 1px solid #d7e0ea; border-radius: 7px; background: #fff; padding: 0 11px; color: #253248; outline: 0; font-family: inherit; font-size: 13px; transition: border-color .16s ease, box-shadow .16s ease; }
.v2-mileage-filter > label > input:focus, .v2-mileage-multiselect:focus-within { border-color: #6d9ff1; box-shadow: 0 0 0 3px rgba(37,99,235,.08); }
.v2-mileage-filter > .v2-primary-button { height: 40px; margin-top: 18px; border-radius: 7px; padding: 0 22px; box-shadow: 0 4px 10px rgba(37,99,235,.16); font-size: 12px; }
.v2-mileage-validation { margin: -5px 20px 14px; border: 1px solid #f1c5c8; border-radius: 7px; background: #fff7f7; padding: 9px 11px; color: #b54046; font-size: 11px; line-height: 1.5; }
.v2-mileage-vehicle-field { position: relative; }
.v2-mileage-vehicle-field > small { color: #96a1b0; font-size: 9px; font-weight: 400; }
.v2-mileage-multiselect { position: relative; display: flex; min-height: 40px; align-items: flex-start; gap: 8px; border: 1px solid #d7e0ea; border-radius: 7px; background: #fff; padding: 6px 10px; color: #8a98aa; transition: border-color .16s ease, box-shadow .16s ease; }
.v2-mileage-multiselect > svg { flex: 0 0 auto; margin-top: 5px; }
.v2-mileage-selection { display: flex; min-width: 0; flex: 1; flex-wrap: wrap; gap: 4px; }
.v2-mileage-selection > input { width: 120px; min-width: 90px; height: 26px; flex: 1; border: 0; background: transparent; padding: 0 3px; color: var(--v2-text); outline: 0; font-family: inherit; font-size: 12px; }
.v2-mileage-chip.semi-tag { display: inline-flex; max-width: 150px; height: 26px; align-items: center; border: 1px solid #c8daf6; border-radius: 5px; background: #eff5ff; padding: 0 5px 0 8px; color: #245da8; font-size: 10px; }
.v2-mileage-chip .semi-tag-content { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v2-mileage-chip .semi-tag-close { flex: 0 0 auto; margin-left: 4px; font-size: 9px; }
.v2-mileage-options { position: absolute; z-index: 40; top: calc(100% + 6px); right: 0; left: 0; overflow: hidden; border: 1px solid #d8e1ed; border-radius: 8px; background: #fff; box-shadow: 0 14px 34px rgba(35,53,78,.16); }
.v2-mileage-options > header { display: flex; height: 34px; align-items: center; justify-content: space-between; border-bottom: 1px solid #edf1f5; padding: 0 11px; color: #77859a; font-size: 9px; }
.v2-mileage-options > header em { font-style: normal; }
.v2-mileage-options > button { display: grid; width: 100%; min-height: 42px; grid-template-columns: minmax(90px,.55fr) minmax(150px,1fr) auto; align-items: center; gap: 10px; border: 0; border-bottom: 1px solid #f0f3f7; background: #fff; padding: 7px 11px; color: var(--v2-text); cursor: pointer; text-align: left; }
.v2-mileage-options > button:hover { background: #f6f9fd; }
.v2-mileage-options > button:disabled { color: #8491a3; cursor: default; }
.v2-mileage-options > button strong { font-size: 11px; }
.v2-mileage-options > button span { overflow: hidden; color: #7d899a; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 9px; text-overflow: ellipsis; }
.v2-mileage-options > button em { color: var(--v2-blue); font-size: 9px; font-style: normal; }
.v2-mileage-options > p { margin: 0; padding: 16px; color: var(--v2-muted); text-align: center; font-size: 10px; }
.v2-vehicle-option-error { display: flex; min-height: 52px; align-items: center; justify-content: space-between; gap: 10px; background: #fff8f8; padding: 9px 11px; color: #b44848; font-size: 10px; line-height: 1.45; }
.v2-vehicle-option-error > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v2-vehicle-option-error > .semi-button { height: 28px; flex: 0 0 auto; border: 1px solid #efc3c3; border-radius: 6px; background: #fff; padding: 0 10px; color: #ad4141; font-size: 10px; font-weight: 700; }
.v2-mileage-source-strategy { position: relative; align-self: start; margin-top: 18px; }
.v2-mileage-source-trigger { display: flex; height: 40px; align-items: center; gap: 6px; border: 1px solid #d7e0ea; border-radius: 7px; background: #fff; padding: 0 11px; color: #56657a; cursor: pointer; font-size: 11px; font-weight: 600; white-space: nowrap; transition: border-color .16s ease, background .16s ease; }
.v2-mileage-source-trigger:hover, .v2-mileage-source-trigger[aria-expanded="true"] { border-color: #a8bad2; background: #f8fafc; }
.v2-mileage-source-trigger b { display: grid; min-width: 28px; height: 20px; place-items: center; border-radius: 10px; background: #eef4fd; color: #3167ad; font-size: 9px; }
.v2-mileage-source-list article { display: grid; min-height: 62px; grid-template-columns: auto minmax(130px,1fr) 72px auto; align-items: center; gap: 11px; border-bottom: 1px solid #edf1f5; padding: 8px 13px 8px 16px; }
.v2-mileage-source-list article.is-disabled { background: #fafbfc; }
.v2-mileage-source-switch { position: relative; width: 32px; height: 18px; border: 0; border-radius: 9px; background: #c9d1dc; padding: 0; cursor: pointer; transition: background .16s ease; }
.v2-mileage-source-switch i { position: absolute; top: 3px; left: 3px; width: 12px; height: 12px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(15,23,42,.2); transition: transform .16s ease; }
.v2-mileage-source-switch.is-on { background: var(--v2-blue); }
.v2-mileage-source-switch.is-on i { transform: translateX(14px); }
.v2-mileage-source-list article > div { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.v2-mileage-source-list article > div strong { color: #344257; font-size: 11px; }
.v2-mileage-source-list article > div small { display: flex; min-width: 0; align-items: center; gap: 7px; color: #8a96a7; font-size: 8px; }
.v2-mileage-source-list article > div small b { color: #55708f; font-size: 9px; font-weight: 650; }
.v2-mileage-source-list article > div code { overflow: hidden; font-family: ui-monospace,SFMono-Regular,Menlo,monospace; text-overflow: ellipsis; white-space: nowrap; }
.v2-mileage-source-list article > em { color: #5f7190; font-size: 9px; font-style: normal; text-align: right; white-space: nowrap; }
.v2-mileage-source-list article.is-disabled > div, .v2-mileage-source-list article.is-disabled > em { opacity: .58; }
.v2-mileage-source-list article > p { display: flex; gap: 3px; margin: 0; }
.v2-mileage-source-list article > p button { display: grid; width: 26px; height: 26px; place-items: center; border: 1px solid #dce4ee; border-radius: 5px; background: #fff; color: #65758b; cursor: pointer; }
.v2-mileage-source-list article > p button:disabled { opacity: .32; cursor: default; }
.v2-mileage-ranges { display: flex; align-items: center; align-self: end; gap: 3px; margin-bottom: 1px; border-radius: 8px; background: #f3f6fa; padding: 2px; }
.v2-mileage-ranges > span { display: none; }
.v2-mileage-ranges button { height: 34px; border: 0; border-radius: 6px; background: transparent; padding: 0 9px; color: #64748b; cursor: pointer; font-size: 11px; font-weight: 600; white-space: nowrap; transition: color .16s ease, background .16s ease, box-shadow .16s ease; }
.v2-mileage-ranges button:hover { background: #f1f5fb; color: var(--v2-blue); }
.v2-mileage-ranges button.is-active { background: #fff; color: var(--v2-blue); box-shadow: 0 1px 4px rgba(20,44,78,.12); }
.v2-mileage-summary { display: grid; grid-template-columns: minmax(330px,.9fr) minmax(0,1.55fr); border-top: 1px solid #e3e9f1; background: #f7f9fc; }
.v2-mileage-summary-card.semi-card { min-width: 0; overflow: hidden; border: 0; border-radius: 0; box-shadow: none; }
.v2-mileage-summary small, .v2-mileage-summary span { display: block; overflow: hidden; color: #7c899b; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.v2-mileage-summary strong { display: block; margin: 7px 0 4px; overflow: hidden; color: #172033; font-size: clamp(20px,1.6vw,26px); font-variant-numeric: tabular-nums; letter-spacing: -.04em; text-overflow: ellipsis; white-space: nowrap; }
.v2-mileage-summary > .is-primary > .semi-card-body { position: relative; overflow: hidden; min-height: 92px; background: #1268f3; padding: 18px 24px 20px !important; color: #fff; }
.v2-mileage-summary > .is-primary small, .v2-mileage-summary > .is-primary span { position: relative; z-index: 1; color: rgba(255,255,255,.76); }
.v2-mileage-summary > .is-primary strong { position: relative; z-index: 1; color: #fff; font-size: clamp(27px,2.15vw,36px); }
.v2-mileage-summary-secondary { display: grid; min-width: 0; grid-template-columns: repeat(3,minmax(0,1fr)); background: #fff; }
.v2-mileage-summary-secondary .v2-mileage-summary-card > .semi-card-body { position: relative; display: flex; min-width: 0; min-height: 92px; justify-content: center; flex-direction: column; padding: 17px 20px 18px !important; }
.v2-mileage-summary-secondary .v2-mileage-summary-card + .v2-mileage-summary-card > .semi-card-body::before { position: absolute; inset: 17px auto 17px 0; width: 1px; background: #e0e6ee; content: ""; }
.v2-mileage-results.semi-card { min-height: 430px; flex: 1; overflow: hidden; border: 1px solid #d9e2ed; border-radius: 12px; background: #fff; box-shadow: 0 6px 22px rgba(24,39,62,.05); }
.v2-mileage-results > .semi-card-body { display: flex; min-height: 430px; height: 100%; flex-direction: column; }
.v2-mileage-results > .semi-card-body > header, .v2-mileage-results > .semi-card-body > footer { display: flex; min-height: 54px; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 12px; padding: 0 18px; }
.v2-mileage-results > .semi-card-body > header { border-bottom: 1px solid #e4e9f0; }
.v2-mileage-results > .semi-card-body > header div { display: flex; align-items: baseline; gap: 10px; }
.v2-mileage-results > .semi-card-body > header strong { color: #17253a; font-size: 15px; }
.v2-mileage-results > .semi-card-body > header span, .v2-mileage-results > .semi-card-body > header em, .v2-mileage-results > .semi-card-body > footer { color: #7c899b; font-size: 10px; font-style: normal; }
.v2-mileage-results > .semi-card-body > header .v2-mileage-result-actions { align-items: center; gap: 12px; }
.v2-mileage-result-actions > button { display: inline-flex; height: 32px; align-items: center; gap: 6px; border: 1px solid #cbd8e8; border-radius: 7px; background: #fff; padding: 0 11px; color: #315f9f; cursor: pointer; font-size: 10px; font-weight: 650; box-shadow: 0 1px 2px rgba(15,23,42,.04); transition: border-color .16s ease, background .16s ease, box-shadow .16s ease; }
.v2-mileage-result-actions > button:hover { border-color: #99b6dd; background: #f5f9ff; box-shadow: 0 2px 7px rgba(37,99,235,.08); }
.v2-mileage-result-actions > button.is-refresh { border-color: transparent; background: #f2f5f9; color: #5f6f84; box-shadow: none; }
.v2-mileage-result-actions > button:disabled { opacity: .5; cursor: not-allowed; box-shadow: none; }
.v2-mileage-export-progress { display: flex; flex: 0 0 auto; align-items: center; gap: 12px; border-bottom: 1px solid #e4e9f0; background: #f7faff; padding: 9px 18px; }
.v2-mileage-export-progress > span { display: flex; min-width: 190px; align-items: center; justify-content: space-between; gap: 12px; color: #315f9f; font-size: 10px; }
.v2-mileage-export-progress > span strong { font-weight: 650; }.v2-mileage-export-progress > span small { color: #6f8198; font-variant-numeric: tabular-nums; }
.v2-mileage-export-progress > i { position: relative; height: 5px; flex: 1; overflow: hidden; border-radius: 999px; background: #dce8f8; }
.v2-mileage-export-progress > i b { position: absolute; inset: 0 auto 0 0; border-radius: inherit; background: var(--v2-blue); transition: width .18s ease; }
.v2-mileage-export-progress > i.is-indeterminate b { width: 38%; animation: v2-export-progress 1.1s ease-in-out infinite; }
@keyframes v2-export-progress { 0% { transform: translateX(-110%); } 100% { transform: translateX(290%); } }
.v2-mileage-table-wrap { min-height: 0; flex: 1; overflow: auto; }
.v2-mileage-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 12px; }
.v2-mileage-table th { position: sticky; z-index: 2; top: 0; height: 46px; border-bottom: 1px solid #dfe6ef; background: #f5f8fc; padding: 0 14px; color: #526279; font-size: 11px; font-weight: 700; text-align: left; white-space: nowrap; }
.v2-mileage-table td { height: 56px; border-bottom: 1px solid #e8edf3; padding: 0 14px; color: #46556a; white-space: nowrap; }
.v2-mileage-table tbody tr:hover { background: #f8fbff; }
.v2-mileage-table td strong { color: #263448; }
.v2-mileage-table code { color: #69778b; font-family: ui-monospace,SFMono-Regular,Menlo,monospace; font-size: 10px; }
.v2-mileage-table .is-number { text-align: right; font-variant-numeric: tabular-nums; }
.v2-mileage-table .is-date { min-width: 96px; text-align: center; }
.v2-mileage-table .is-sticky { position: sticky; z-index: 3; background: #fff; }
.v2-mileage-table th.is-sticky { z-index: 5; background: #f7f9fc; }
.v2-mileage-table .is-plate { left: 0; width: 120px; min-width: 120px; }
.v2-mileage-table .is-vin { left: 120px; width: 182px; min-width: 182px; border-right: 1px solid #d8e0ea; box-shadow: 5px 0 10px rgba(15,23,42,.025); }
.v2-mileage-table .is-total { position: sticky; z-index: 3; right: 0; min-width: 128px; border-left: 1px solid #d8e0ea; background: #fbfdff; box-shadow: -5px 0 10px rgba(15,23,42,.025); }
.v2-mileage-table th.is-total { z-index: 5; background: #f1f6fe; color: #315f9f; }
.v2-mileage-table .is-daily { color: #28496f; font-size: 11px; font-weight: 650; }
.v2-mileage-table .is-empty { color: #b2bcc9; text-align: center; }
.v2-mileage-table .is-period { color: #135fcb; font-size: 12px; font-weight: 800; }
.v2-mileage-source { display: inline-flex; height: 22px; align-items: center; border: 1px solid #dbe4ef; border-radius: 4px; background: #f8fafc; padding: 0 7px; color: #66758a; font-size: 8px; }
.v2-mileage-results > .semi-card-body > footer { border-top: 1px solid var(--v2-border); background: #fbfcfe; }
.v2-mileage-results > .semi-card-body > footer div { display: flex; gap: 6px; }
.v2-mileage-results > .semi-card-body > footer button { height: 29px; border: 1px solid #d7e0eb; border-radius: 6px; background: #fff; padding: 0 12px; color: #50627a; cursor: pointer; font-size: 9px; font-weight: 600; }
.v2-mileage-results > .semi-card-body > footer button:hover:not(:disabled) { border-color: #a9bdd7; background: #f5f8fc; color: #315f9f; }
.v2-mileage-results > .semi-card-body > footer button:disabled { opacity: .45; cursor: not-allowed; }
.v2-mileage-mobile-list { display: none; }
.v2-mileage-loading { display: flex; min-height: 210px; flex: 1; align-items: center; justify-content: center; gap: 10px; color: #52637a; }
.v2-mileage-loading > div { display: flex; flex-direction: column; gap: 3px; }
.v2-mileage-loading strong { color: #2c3d54; font-size: 12px; }
.v2-mileage-loading small { color: #8491a3; font-size: 9px; }
.v2-mileage-empty { display: grid; min-height: 210px; flex: 1; place-items: center; color: #8290a3; font-size: 12px; }
.v2-mileage-evidence { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; color: var(--v2-muted); font-size: 9px; }

@media (max-width: 1050px) {
  .v2-mileage-filter { grid-template-columns: repeat(2,minmax(0,1fr)) auto auto; }
  .v2-mileage-vehicle-field { grid-column: 1 / -1; }
  .v2-mileage-filter > .v2-primary-button { width: auto; margin-top: 18px; }
  .v2-mileage-ranges { grid-column: 1 / -1; }
}

@media (max-width: 680px) {
  html, body, #root { min-width: 320px; min-height: 100%; }
  body { overscroll-behavior-y: none; }
  .v2-auth-screen { min-height: 100dvh; padding: 16px; }
  .v2-auth-card { padding: 26px 20px; }
  .v2-auth-card input { height: 46px; font-size: 16px; }
  .v2-auth-card button { height: 46px; }
  .v2-sidebar { inset: auto 0 0 0; width: auto; height: calc(64px + env(safe-area-inset-bottom)); flex-direction: row; border: 0; border-top: 1px solid var(--v2-border); padding-bottom: env(safe-area-inset-bottom); box-shadow: 0 -8px 24px rgba(21,32,51,.07); }
  .v2-brand, .v2-collapse, .v2-nav-operations { display: none; }
  .v2-navigation { display: grid; width: 100%; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 0; padding: 4px 3px; }
  .v2-nav-item { height: 56px; justify-content: center; flex-direction: column; gap: 2px; padding: 3px 0 2px; border-radius: 8px; font-weight: 600; }
  .v2-nav-item > svg { flex: 0 0 auto; font-size: 18px; }
  .v2-nav-label, .v2-sidebar.is-collapsed .v2-nav-label { display: block; max-width: 100%; overflow: hidden; font-size: 9px; line-height: 1.2; text-overflow: ellipsis; }
  .v2-nav-item.is-active::before { inset: auto auto 0; width: 20px; height: 2px; }
  .v2-main, .v2-sidebar.is-collapsed + .v2-main { margin-left: 0; padding-bottom: calc(64px + env(safe-area-inset-bottom)); }
  .v2-topbar { height: 52px; flex: 0 0 52px; padding: 0 10px 0 14px; }
  .v2-topbar h1 { font-size: 17px; }
  .v2-topbar-actions { gap: 0; }
  .v2-topbar-actions button { width: 40px; height: 40px; }
  .v2-help-panel { top: 48px; right: 7px; padding: 16px; }
  .v2-current-user { display: none; }
  .v2-content { overscroll-behavior: contain; }
  .v2-monitor-page { height: auto; min-height: 100%; gap: 8px; overflow: visible; padding: 8px; }
  .v2-filterbar.semi-card { box-shadow: 0 4px 16px rgba(21,32,51,.04); }
  .v2-filterbar > .semi-card-body { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; padding: 9px; }
  .v2-search-field { grid-column: 1 / -1; height: 44px; }
  .v2-search-field input, .v2-filterbar select { font-size: 16px; }
  .v2-filterbar select, .v2-primary-button, .v2-secondary-button, .v2-filter-live-status { height: 44px; }
  .v2-primary-button, .v2-secondary-button { padding: 0 10px; font-size: 12px; }
  .v2-monitor-mode { height: 44px; }
  .v2-monitor-mode button { flex: 1; font-size: 12px; }
  .v2-monitor-mobile-entry { height: 44px; font-size: 12px; }
  .v2-kpis > .semi-card-body { display: flex; min-width: 0; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; }
  .v2-kpis > .semi-card-body::-webkit-scrollbar { display: none; }
  .v2-kpi { width: 108px; min-width: 108px; min-height: 70px; flex: 0 0 108px; padding: 11px 13px; scroll-snap-align: start; }
  .v2-kpi + .v2-kpi::before, .v2-kpi:nth-child(odd)::before { display: block; }
  .v2-kpi small { font-size: 10px; }
  .v2-kpi strong { margin-top: 7px; font-size: 20px; }
  .v2-monitor-workspace, .v2-monitor-workspace.is-detail-open, .v2-monitor-workspace.is-detail-collapsed { min-height: calc(52dvh + 360px); flex: none; grid-template-columns: 1fr; grid-template-rows: minmax(360px, 52dvh) 360px; overflow: hidden; }
  .v2-monitor-table-panel.semi-card { height: clamp(520px, 68dvh, 720px); min-height: 0; flex: none; }
  .v2-monitor-table-scroll { display: none; }
  .v2-monitor-mobile-cards { display: flex; min-height: 0; flex: 1; flex-direction: column; gap: 8px; overflow: auto; padding: 8px; background: #f5f7fa; }
  .v2-monitor-mobile-cards > .v2-monitor-mobile-card.semi-card { overflow: visible; border: 1px solid #e0e6ee; border-radius: 10px; background: #fff; box-shadow: 0 2px 8px rgba(21,32,51,.04); content-visibility: auto; contain-intrinsic-size: auto 154px; }
  .v2-monitor-mobile-card .semi-card-body { padding: 12px; }
  .v2-monitor-mobile-card .semi-card-body > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
  .v2-monitor-mobile-card .semi-card-body > header div { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
  .v2-monitor-mobile-card .semi-card-body > header strong { font-size: 15px; }.v2-monitor-mobile-card .semi-card-body > header span { color: #7f8da1; font-size: 10px; }
  .v2-monitor-mobile-card .semi-card-body > header > b { color: #1f4f8d; font-size: 18px; font-variant-numeric: tabular-nums; }.v2-monitor-mobile-card .semi-card-body > header > b small { margin-left: 3px; color: #8996a8; font-size: 8px; font-weight: 500; }
  .v2-monitor-mobile-cards dl { display: grid; grid-template-columns: .72fr 1.28fr; gap: 10px; margin: 12px 0 0; border-top: 1px solid #edf1f6; padding-top: 11px; }
  .v2-monitor-mobile-cards dl > div { min-width: 0; }.v2-monitor-mobile-cards dl > div.is-address { grid-column: 1 / -1; }
  .v2-monitor-mobile-cards dt { color: #8a97a9; font-size: 9px; }.v2-monitor-mobile-cards dd { margin: 4px 0 0; color: #34445a; font-size: 11px; font-weight: 650; }
  .v2-monitor-mobile-cards dd code { font-family: ui-monospace,SFMono-Regular,Menlo,monospace; font-size: 9px; font-weight: 500; }
  .v2-monitor-mobile-cards .v2-monitor-address-result > span { white-space: normal; }
  .v2-monitor-mobile-card .semi-card-body > footer { display: flex; align-items: center; justify-content: flex-end; gap: 16px; margin-top: 10px; border-top: 1px solid #edf1f6; padding-top: 10px; }
  .v2-monitor-card-locate.semi-button { height: 32px; border-radius: 7px; padding: 0 7px; color: var(--v2-blue); font-size: 11px; font-weight: 700; }
  .v2-monitor-table-panel > .semi-card-body > footer { position: sticky; bottom: calc(64px + env(safe-area-inset-bottom)); z-index: 4; background: #fff; }
  .v2-vehicle-rail { grid-row: 2; border: 0; border-top: 1px solid var(--v2-border); }
  .v2-fleet-map { grid-row: 1; }
  .v2-vehicle-rail > header { height: 48px; }
  .v2-rail-search { height: 40px; }
  .v2-vehicle-row { min-height: 64px; padding: 9px 11px; }
  .v2-vehicle-identity strong { font-size: 13px; }
  .v2-map-controls { top: 8px; right: 8px; gap: 6px; }
  .v2-map-control-button.semi-button { width: 44px; height: 44px; padding: 0; }
  .v2-map-control-button .semi-button-content { display: flex; width: 100%; justify-content: center; }
  .v2-map-control-button .v2-map-control-copy, .v2-map-control-button .v2-map-control-state { display: none; }
  .v2-map-control-button .semi-icon { display: inline-flex; font-size: 18px; }
  .v2-province-marker.is-compact { width: 68px; min-height: 38px; grid-template-columns: minmax(0,1fr) auto; gap: 4px; border-radius: 8px; padding: 6px 7px; }
  .v2-province-marker.is-compact > span { font-size: 11px; }
  .v2-province-marker.is-compact > strong { font-size: 17px; }
  .v2-map-legend { right: 8px; bottom: 8px; left: 8px; width: auto; max-width: none; height: 36px; justify-content: flex-start; gap: 13px; overflow-x: auto; padding: 0 12px; transform: none; white-space: nowrap; scrollbar-width: none; }
  .v2-map-legend::-webkit-scrollbar { display: none; }
  .v2-map-legend b { margin-left: auto; }
  .v2-vehicle-detail { position: fixed; inset: auto 8px calc(72px + env(safe-area-inset-bottom)) 8px; z-index: 70; display: block; width: auto; height: min(68dvh, 620px); min-height: 300px; contain: layout paint; overscroll-behavior: contain; border: 1px solid #d8e2ed; border-radius: 14px; background: #fff; padding: 18px 15px 20px; box-shadow: 0 -10px 44px rgba(21,32,51,.2); animation: v2-mobile-sheet-enter .18s ease-out; }
  .v2-vehicle-detail::before { display: block; width: 38px; height: 4px; margin: -8px auto 10px; border-radius: 2px; background: #d7e0eb; content: ""; }
  .v2-detail-controls { top: 13px; right: 12px; }
  .v2-detail-controls .semi-button { width: 36px; min-width: 36px; height: 36px; }
  .v2-detail-title { padding: 0 82px 14px 0; }
  .v2-detail-title strong { font-size: 18px; }
  .v2-detail-actions { position: sticky; top: -18px; z-index: 2; background: #fff; padding: 10px 0; }
  .v2-detail-actions a { min-height: 38px; font-size: 10px; }
  .v2-detail-list > div { grid-template-columns: 82px minmax(0, 1fr); font-size: 11px; }
  .v2-metric-grid small { font-size: 10px; }
  .v2-metric-grid strong { font-size: 17px; }
  .v2-detail-peek { position: fixed; right: 10px; bottom: calc(74px + env(safe-area-inset-bottom)); z-index: 65; display: block; min-width: 0; min-height: 0; border: 1px solid #cfe0f8; border-radius: 22px; box-shadow: 0 7px 24px rgba(18,104,243,.18); }
  .v2-detail-peek .semi-button { width: auto; height: 44px; border-radius: 22px; padding: 0 14px; background: #fff; }
  .v2-detail-peek .semi-button-content { flex-direction: row; gap: 7px; }
  .v2-detail-peek .semi-button-content > span { max-width: 120px; writing-mode: horizontal-tb; font-size: 11px; letter-spacing: 0; text-overflow: ellipsis; white-space: nowrap; }
  .v2-event-strip > .semi-card-body { flex-wrap: wrap; gap: 7px 12px; padding: 10px 12px; line-height: 1.4; }
  .v2-event-strip > .semi-card-body > strong { width: 100%; }
  .v2-refresh-cadence { border-left: 0; padding-left: 0; }
  .v2-event-strip time { width: 100%; margin: 0; }
  .v2-vehicle-record-page { overflow: auto; padding: 8px; }
  .v2-vehicle-search-page { padding: 12px; }
  .v2-vehicle-search-card { padding: 30px 18px; }
  .v2-vehicle-search-card form { height: auto; flex-wrap: wrap; padding: 8px; }
  .v2-vehicle-search-card form button { width: 100%; justify-content: center; }
  .v2-vehicle-search-page.has-sync-panel { align-content: start; }
  .v2-profile-sync-panel { padding: 13px; }
  .v2-profile-sync-fields { grid-template-columns: 1fr; }
  .v2-profile-sync-result > div { grid-template-columns: repeat(3,1fr); gap: 8px; }
  .v2-profile-sync-panel > footer button { flex: 1; }
  .v2-identity-actions { flex-wrap: wrap; }
  .v2-identity-actions a { flex-basis: calc(50% - 4px); }
  .v2-identity-meta { grid-template-columns: 1fr; }
  .v2-identity-meta > div + div { margin-top: 12px; border: 0; border-top: 1px solid var(--v2-border); padding: 12px 0 0; }
  .v2-single-map-card { min-height: 300px; }
  .v2-single-map-card footer { align-items: flex-start; flex-direction: column; gap: 4px; padding: 8px 12px; }
  .v2-telemetry-list { grid-template-columns: 1fr; }
  .v2-telemetry-list > div:nth-child(odd) { border-right: 0; }
  .v2-live-grid { grid-template-columns: repeat(2, 1fr); }
  .v2-live-overview .v2-live-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .v2-live-grid > div:nth-child(3), .v2-live-grid > div:nth-child(5) { border-left: 0; }
  .v2-live-grid > div:nth-child(n+3) { border-top: 1px solid var(--v2-border); }
  .v2-current-location > span { grid-template-columns: auto auto minmax(0,1fr); padding: 10px 12px; }
  .v2-current-address { grid-template-columns: auto minmax(0,1fr) !important; }
  .v2-current-address > button:last-child { grid-column: 2; }
  .v2-history-page { padding: 8px; }
  .v2-history-toolbar { grid-template-columns: 1fr; }
  .v2-history-vehicles { grid-column: auto; }
  .v2-history-range { grid-column: auto; }
  .v2-history-toolbar button { width: 100%; }
  .v2-history-summary { grid-template-columns: 1fr 1fr; min-height: 106px; }
  .v2-history-summary > .semi-card-body > div:nth-child(3)::before { display: none; }
  .v2-history-main { height: 1111px; grid-template-rows: 106px 385px minmax(0, 600px); }
  .v2-history-trend-panels { grid-template-columns: 1fr; grid-auto-rows: 152px; }
  .v2-history-side { display: flex; flex-direction: column; }
  .v2-access-page { padding: 8px; }
  .v2-access-filter { grid-template-columns: 1fr; }
  .v2-access-filter label:first-child { grid-column: auto; }
  .v2-access-filter button { width: 100%; }
  .v2-access-advanced > div { grid-template-columns: 1fr; }
  .v2-access-kpis { grid-template-columns: repeat(2, 1fr); }
  .v2-access-identity-queue summary { align-items: flex-start; flex-direction: column; gap: 3px; }
  .v2-access-identity-queue > div { grid-template-columns: 1fr; }
  .v2-access-kpis button:nth-child(4)::before { display: block; }
  .v2-access-kpis button:nth-child(odd)::before { display: none; }
  .v2-access-protocols header { align-items: flex-start; flex-direction: column; gap: 4px; }
  .v2-access-table-card { height: 600px; }
  .v2-access-table-card > header { align-items: flex-start; height: auto; flex-direction: column; gap: 7px; padding: 8px 9px; }
  .v2-access-table-card > header div { width: 100%; overflow-x: auto; }
  .v2-access-table-card > footer { align-items: flex-start; height: auto; flex-direction: column; gap: 7px; padding: 8px 9px; }
  .v2-access-side { display: flex; flex-direction: column; }
	.v2-alert-page { padding: 0 8px 8px; }
	.v2-alert-heading { margin: 0 -8px; padding: 0 10px; }
	.v2-alert-heading > div { align-items: flex-start; flex-direction: column; gap: 3px; }
	.v2-alert-heading p { margin: 0; }
	.v2-alert-tabs { margin: 0 -8px 8px; padding: 0 9px; }
	.v2-alert-filter { grid-template-columns: 1fr; }
	.v2-alert-filter label:first-child { grid-column: auto; }
	.v2-alert-filter label:nth-of-type(6), .v2-alert-filter label:nth-of-type(7) { display: flex; }
	.v2-alert-filter button { width: 100%; }
	.v2-alert-kpis { grid-template-columns: repeat(2,1fr); }
	.v2-alert-kpis button:nth-child(5)::before { display: block; }
	.v2-alert-kpis button:nth-child(odd)::before { display: none; }
	.v2-alert-table-card { height: 590px; }
	.v2-alert-table-card > .semi-card-body > header, .v2-alert-table-card > .semi-card-body > footer { align-items: flex-start; height: auto; flex-direction: column; gap: 6px; padding: 7px 9px; }
	.v2-alert-inspector { max-height: none; }
	.v2-rule-form-grid { grid-template-columns: 1fr; padding: 10px; }
	.v2-rule-form-grid label.is-wide { grid-column: auto; }
	.v2-alert-rule-templates { grid-template-columns: 1fr; padding: 10px; }
	.v2-alert-rule-templates nav { grid-template-columns: 1fr; }
	.v2-alert-rule-templates button { min-height: 56px; }
	.v2-alert-rule-editor > footer { align-items: stretch; flex-direction: column; }
	.v2-alert-notifications > footer { flex-direction: column; gap: 5px; }
	.v2-ops-page { padding: 8px; }.v2-ops-heading { align-items: flex-start; flex-direction: column; gap: 8px; }.v2-ops-kpis { grid-template-columns: 1fr 1fr; }
	.v2-reconcile-heading { align-items: flex-start; flex-direction: column; }.v2-reconcile-heading button { width: 100%; justify-content: center; }.v2-reconcile-kpis { display: flex; overflow-x: auto; grid-template-columns: none; scroll-snap-type: x proximity; }.v2-reconcile-kpi-card.semi-card { min-width: 142px; flex: 0 0 142px; scroll-snap-align: start; }.v2-reconcile-layout { display: block; min-height: 520px; }.v2-reconcile-main { border-right: 0; }.v2-reconcile-toolbar { grid-template-columns: 1fr 1fr; }.v2-reconcile-search { grid-column: 1 / -1; }.v2-reconcile-toolbar select:last-child { grid-column: 1 / -1; }.v2-reconcile-trend.semi-card { border-top: 1px solid #e3eaf2; }.v2-reconcile-detail.semi-card { position: fixed; inset: 54px 0 0; width: auto; border-left: 0; }.v2-reconcile-identity { grid-template-columns: 1fr; }.v2-reconcile-identity div + div { border-top: 1px solid #e5ebf2; border-left: 0; }.v2-reconcile-evidence dl div { grid-template-columns: 96px minmax(0,1fr); }
	.v2-source-search { flex-direction: column; }.v2-source-search > label { width: auto; min-width: 0; height: 42px; }.v2-source-search > button { width: 100%; }.v2-source-candidates { top: 61px; right: 14px; }.v2-source-candidates > button { grid-template-columns: 1fr; gap: 3px; }.v2-source-summary { grid-template-columns: 1fr; }.v2-source-summary article + article, .v2-source-summary article:nth-child(3) { border-top: 1px solid #e7edf4; border-left: 0; }.v2-source-audit > header { height: auto; align-items: flex-start; flex-direction: column; gap: 3px; padding-block: 7px; }.v2-source-audit li { grid-template-columns: 35px minmax(0,1fr); }.v2-source-audit li em { grid-column: 2; }
	.v2-mileage-page { gap: 10px; padding: 12px 8px 18px; }
	.v2-mileage-heading { align-items: flex-start; flex-direction: row; gap: 10px; }
	.v2-mileage-heading h2 { font-size: 18px; }
	.v2-mileage-heading p { line-height: 1.6; }
	.v2-mileage-heading > button { width: auto; height: 36px; flex: 0 0 auto; justify-content: center; padding: 0 11px; }
	.v2-mileage-query-panel { border-radius: 10px; }
	.v2-mileage-filter { grid-template-columns: 1fr; gap: 12px; padding: 12px; }
	.v2-mileage-vehicle-field { grid-column: auto; }
	.v2-mileage-filter > label > input { height: 44px; font-size: 16px; }
	.v2-mileage-multiselect { min-height: 44px; padding-top: 7px; padding-bottom: 7px; }
	.v2-mileage-selection > input { height: 28px; font-size: 16px; }
	.v2-mileage-filter > .v2-primary-button { height: 44px; margin-top: 0; }
	.v2-mileage-source-strategy { margin-top: 0; }
	.v2-mileage-source-trigger { width: 100%; height: 44px; justify-content: center; }
	.v2-mileage-source-list article { grid-template-columns: auto minmax(0,1fr) auto; gap: 9px; padding-right: 11px; padding-left: 12px; }
	.v2-mileage-source-list article > p { grid-column: 2 / -1; justify-content: flex-end; margin-top: -5px; }
	.v2-mileage-ranges { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 4px; }
	.v2-mileage-ranges button { height: 36px; background: #f6f8fb; }
	.v2-mileage-options > button { grid-template-columns: minmax(80px,.7fr) minmax(0,1fr); }
	.v2-mileage-options > button em { display: none; }
	.v2-mileage-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.v2-mileage-summary-card > .semi-card-body { padding: 13px 14px 14px !important; }
	.v2-mileage-summary-secondary .v2-mileage-summary-card { border-bottom: 1px solid #e5eaf1; }
	.v2-mileage-summary strong { font-size: 18px; }
	.v2-mileage-results { min-height: 420px; overflow: visible; }
	.v2-mileage-results > .semi-card-body > header { align-items: flex-start; height: auto; flex-direction: column; gap: 4px; padding: 11px 12px; }
	.v2-mileage-results > .semi-card-body > header div { align-items: flex-start; flex-direction: column; gap: 3px; }
	.v2-mileage-results > .semi-card-body > header .v2-mileage-result-actions { width: 100%; align-items: center; justify-content: space-between; flex-direction: row; gap: 8px; }
	.v2-mileage-result-actions > button { height: 34px; flex: 0 0 auto; }
	.v2-mileage-export-progress { align-items: stretch; flex-direction: column; gap: 7px; padding: 9px 12px; }
	.v2-mileage-export-progress > span { min-width: 0; }
	.v2-mileage-table-wrap { display: block; }
	.v2-mileage-mobile-list { display: none; }
	.v2-mileage-mobile-list article { border-bottom: 1px solid #e9eef5; padding: 14px 12px; }
	.v2-mileage-mobile-list article > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
	.v2-mileage-mobile-list article > header div { min-width: 0; }
	.v2-mileage-mobile-list article > header strong, .v2-mileage-mobile-list article > header span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.v2-mileage-mobile-list article > header strong { color: #253449; font-size: 13px; }
	.v2-mileage-mobile-list article > header b { flex: 0 0 auto; color: var(--v2-blue); font-size: 14px; text-align: right; }
	.v2-mileage-mobile-list article > header b small { display: block; margin-top: 3px; color: var(--v2-muted); font-size: 8px; font-weight: 500; }
	.v2-mileage-mobile-list article > header span, .v2-mileage-mobile-list time { margin-top: 3px; color: var(--v2-muted); font-size: 9px; }
	.v2-mileage-mobile-list dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px 14px; margin: 12px 0 0; }
	.v2-mileage-mobile-list dl div { min-width: 0; }
	.v2-mileage-mobile-list dt { color: var(--v2-muted); font-size: 9px; }
	.v2-mileage-mobile-list dd { margin: 4px 0 0; overflow: hidden; color: #334155; font-size: 11px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
	.v2-mileage-mobile-list dd.is-daily { color: var(--v2-blue); font-size: 14px; }
	.v2-mileage-mobile-days { display: grid; grid-auto-columns: 84px; grid-auto-flow: column; gap: 6px; margin-top: 12px; overflow-x: auto; padding-bottom: 3px; }
	.v2-mileage-mobile-days > div { border: 1px solid #e2e8f0; border-radius: 7px; background: #f8fafc; padding: 8px; }
	.v2-mileage-mobile-days time, .v2-mileage-mobile-days strong { display: block; }
	.v2-mileage-mobile-days time { color: var(--v2-muted); font-size: 8px; }
	.v2-mileage-mobile-days strong { margin-top: 4px; color: #334155; font-size: 10px; }
	.v2-mileage-results > .semi-card-body > footer { min-height: 58px; align-items: flex-start; flex-direction: column; gap: 7px; padding: 9px 10px; }
	.v2-mileage-results > .semi-card-body > footer div { width: 100%; }
	.v2-mileage-results > .semi-card-body > footer button { height: 34px; }
	.v2-mileage-results > .semi-card-body > footer div button { flex: 1; }
	.v2-mileage-evidence { flex-direction: column; line-height: 1.5; }
}

/* Account administration follows the platform's open table/workspace layout. */
.v2-user-admin { min-height: 100%; padding: 22px 24px 34px; }
.v2-user-admin-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin: 0 auto 18px; max-width: 1480px; }
.v2-user-admin-heading h2 { margin: 0; font-size: 22px; letter-spacing: -.035em; }
.v2-user-admin-heading p { margin: 7px 0 0; color: var(--v2-muted); font-size: 12px; }
.v2-user-admin-heading > button, .v2-user-editor form > footer button, .v2-user-editor-empty button { height: 38px; border: 0; border-radius: 8px; background: var(--v2-blue); padding: 0 16px; color: #fff; cursor: pointer; font-size: 12px; font-weight: 700; }
.v2-user-admin-grid { display: grid; max-width: 1480px; min-height: 690px; margin: 0 auto; grid-template-columns: 300px minmax(0, 1fr); gap: 12px; }
.v2-user-list.semi-card { min-width: 0; overflow: hidden; border: 1px solid var(--v2-border); border-radius: 13px; background: #f9fbfd; box-shadow: var(--v2-shadow); }
.v2-user-list > .semi-card-body { padding: 12px; }
.v2-user-list-summary { display: flex; align-items: baseline; gap: 7px; padding: 8px 9px 14px; color: #7a8798; font-size: 11px; }
.v2-user-list-summary strong { color: #26364e; font-size: 20px; }
.v2-user-avatar { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 9px; background: #dfe9f8; color: #3a5e91; font-weight: 800; }
.v2-user-editor.semi-card { min-width: 0; overflow: hidden; border: 1px solid var(--v2-border); border-radius: 13px; box-shadow: var(--v2-shadow); }
.v2-user-editor > .semi-card-body { height: 100%; }
.v2-user-editor-empty { display: grid; height: 100%; place-content: center; justify-items: center; color: #4a5b72; text-align: center; }
.v2-user-editor-empty strong { font-size: 18px; }.v2-user-editor-empty p { margin: 8px 0 18px; color: #8a96a7; font-size: 12px; }
.v2-user-editor form { height: 100%; padding: 24px 28px 82px; }
.v2-user-editor-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding-bottom: 20px; border-bottom: 1px solid #edf1f5; }
.v2-user-editor-title h3 { margin: 0; font-size: 20px; }.v2-user-editor-title p { margin: 6px 0 0; color: #8591a2; font-size: 10px; }
.v2-user-status { display: flex; align-items: center; gap: 8px; color: #45556c; font-size: 11px; font-weight: 650; }
.v2-user-status input { width: 16px; height: 16px; accent-color: var(--v2-blue); }
.v2-user-editor section { padding: 20px 0; border-bottom: 1px solid #edf1f5; }
.v2-user-editor h4 { margin: 0 0 14px; color: #2c3d54; font-size: 13px; }
.v2-user-editor h4 small { margin-left: 7px; color: #91a0b2; font-size: 9px; font-weight: 500; }
.v2-user-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.v2-user-fields label, .v2-vehicle-permission-tools label { display: flex; min-width: 0; flex-direction: column; gap: 6px; color: #637188; font-size: 10px; font-weight: 650; }
.v2-user-fields input, .v2-vehicle-permission-tools input { width: 100%; height: 38px; border: 1px solid #dbe3ed; border-radius: 7px; padding: 0 10px; outline: 0; color: #273750; font-size: 12px; }
.v2-user-fields input:focus, .v2-vehicle-permission-tools input:focus { border-color: #8ab4f7; box-shadow: 0 0 0 3px rgba(18,104,243,.07); }
.v2-user-fields input:disabled { background: #f5f7fa; color: #8390a0; }
.v2-menu-permissions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.v2-menu-permissions label { display: flex; min-width: 0; align-items: flex-start; gap: 10px; border: 1px solid #e0e7ef; border-radius: 8px; padding: 11px; cursor: pointer; }
.v2-menu-permissions label.is-selected { border-color: #a9c8fb; background: #f3f7ff; }
.v2-menu-permissions input { margin-top: 2px; accent-color: var(--v2-blue); }.v2-menu-permissions span { min-width: 0; }.v2-menu-permissions b, .v2-menu-permissions small { display: block; }.v2-menu-permissions b { color: #33445c; font-size: 11px; }.v2-menu-permissions small { margin-top: 4px; color: #8491a3; font-size: 9px; line-height: 1.5; }
.v2-vehicle-permission-heading { display: flex; align-items: center; justify-content: space-between; }.v2-vehicle-permission-heading h4 { margin-bottom: 14px; }.v2-vehicle-permission-heading > button { border: 0; background: transparent; color: #7d899a; cursor: pointer; font-size: 10px; }
.v2-vehicle-permission-tools { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.v2-bulk-vin { display: flex; gap: 6px; }.v2-bulk-vin button { flex: 0 0 auto; border: 1px solid #cbd8e9; border-radius: 7px; background: #f7f9fc; padding: 0 11px; color: #46607e; cursor: pointer; font-size: 10px; }
.v2-vehicle-candidates { display: grid; max-height: 194px; margin-top: 10px; grid-template-columns: repeat(2,minmax(0,1fr)); overflow: auto; border: 1px solid #e1e7ef; border-radius: 8px; padding: 5px; }
.v2-vehicle-candidates > p { grid-column: 1/-1; margin: 16px; color: #8996a7; font-size: 10px; }
.v2-vehicle-candidates > button { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 8px; border: 0; border-radius: 6px; background: transparent; padding: 8px; text-align: left; cursor: pointer; }.v2-vehicle-candidates > button:hover { background: #f4f7fa; }.v2-vehicle-candidates > button.is-selected { background: #edf4ff; }
.v2-vehicle-candidates b, .v2-vehicle-candidates small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.v2-vehicle-candidates b { color: #34455c; font-size: 10px; }.v2-vehicle-candidates small { margin-top: 3px; color: #8a96a6; font-size: 8px; }.v2-vehicle-candidates i { color: var(--v2-blue); font-size: 9px; font-style: normal; }
.v2-assigned-vins { display: grid; max-height: 330px; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; overflow: auto; margin-top: 10px; }
.v2-assigned-vins > article { min-width: 0; border: 1px solid #dbe4ef; border-radius: 9px; background: #f8fafc; padding: 10px; }
.v2-assigned-vins article > header { display: flex; min-width: 0; align-items: flex-start; justify-content: space-between; gap: 8px; }
.v2-assigned-vins article > header > span { min-width: 0; }
.v2-assigned-vins article > header button { width: 24px; height: 24px; flex: 0 0 auto; border: 0; border-radius: 6px; background: transparent; color: #99a4b3; cursor: pointer; font-size: 15px; }
.v2-assigned-vins article > header button:hover { background: #eef2f7; color: var(--v2-red); }
.v2-assigned-vins b,.v2-assigned-vins small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.v2-assigned-vins b { color: #34455c; font-size: 11px; }.v2-assigned-vins small { margin-top: 3px; color: #8a96a6; font: 9px ui-monospace,SFMono-Regular,Menlo,monospace; }
.v2-assigned-vins article > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 9px; }
.v2-assigned-vins label { min-width: 0; color: #758296; font-size: 9px; }
.v2-assigned-vins label span { display: block; margin-bottom: 4px; }
.v2-assigned-vins input { width: 100%; height: 32px; border: 1px solid #dbe3ed; border-radius: 6px; background: #fff; padding: 0 7px; color: #34455c; font-size: 10px; }
.v2-grant-history { margin-top: 12px; border: 1px solid #e1e7ef; border-radius: 9px; background: #fff; }
.v2-grant-history summary { padding: 10px 12px; color: #4c5f78; cursor: pointer; font-size: 10px; font-weight: 700; }
.v2-grant-history > div { display: grid; max-height: 250px; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; overflow: auto; border-top: 1px solid #edf1f5; padding: 8px; }
.v2-grant-history article { min-width: 0; border-radius: 7px; background: #f7f9fc; padding: 9px; }
.v2-grant-history article header { display: flex; min-width: 0; justify-content: space-between; gap: 8px; color: #34455c; font-size: 10px; }
.v2-grant-history article header span { overflow: hidden; color: #8290a3; font: 8px ui-monospace,SFMono-Regular,Menlo,monospace; text-overflow: ellipsis; white-space: nowrap; }
.v2-grant-history article p { margin: 6px 0 4px; color: #4d6078; font-size: 9px; }
.v2-grant-history article small { color: #8996a7; font-size: 8px; line-height: 1.5; }
.v2-user-empty { margin: 14px 4px; color: #8b97a7; font-size: 10px; line-height: 1.6; }
.v2-user-feedback { margin: 14px 0 0; color: #16805b; font-size: 11px; }.v2-user-feedback.is-error { color: var(--v2-red); }
.v2-user-editor form > footer { display: flex; justify-content: flex-end; margin-top: 18px; }.v2-user-editor form > footer button:disabled { opacity: .5; }

@media (max-width: 900px) {
  .v2-auth-screen { grid-template-columns: 1fr; }
  .v2-auth-intro { display: none; }
  .v2-auth-card { justify-self: center; }
  .v2-user-admin { padding: 12px; }
  .v2-user-admin-grid { grid-template-columns: 230px minmax(560px,1fr); overflow-x: auto; }
}

@media (max-width: 680px) {
  .v2-auth-screen { min-height: 100dvh; padding: 16px; }
  .v2-auth-card { padding: 28px 22px; }
  .v2-user-admin { padding: 8px 8px 82px; }
  .v2-user-admin-heading { align-items: flex-start; margin-bottom: 10px; }.v2-user-admin-heading h2 { font-size: 17px; }.v2-user-admin-heading p { display: none; }.v2-user-admin-heading > button { height: 34px; flex: 0 0 auto; padding: 0 10px; font-size: 10px; }
  .v2-user-admin-grid { display: flex; min-height: 0; flex-direction: column; gap: 8px; }
  .v2-user-list.semi-card { border-radius: 10px; background: #fff; }
  .v2-user-list > .semi-card-body { display: flex; gap: 6px; overflow-x: auto; padding: 6px; scroll-snap-type: x proximity; }
  .v2-user-list-summary { flex: 0 0 auto; padding: 8px; }
  .v2-user-list > .semi-card-body > .v2-user-list-card.semi-card { scroll-snap-align: start; }
  .v2-user-editor.semi-card { border-radius: 10px; background: #fff; }
  .v2-user-editor form { padding: 16px 14px 22px; }.v2-user-fields, .v2-menu-permissions, .v2-vehicle-permission-tools, .v2-vehicle-candidates, .v2-assigned-vins, .v2-grant-history > div { grid-template-columns: 1fr; }
  .v2-assigned-vins article > div { grid-template-columns: 1fr; }
  .v2-topbar-actions .v2-current-user {
    display: inline-flex;
    width: 36px;
    min-width: 36px;
    margin: 0;
    padding: 0;
  }
  .v2-current-user .semi-button-content { display: flex; width: 100%; align-items: center; justify-content: center; }
  .v2-current-user .semi-button-content > :is(b, .semi-tag, .v2-account-chevron) { display: none; }
}

@media (max-width: 1280px) {
  .v2-access-filter-v3 { grid-template-columns: minmax(210px, 1.3fr) repeat(3, minmax(120px, .75fr)) auto auto; }
  .v2-access-filter-v3 > button { min-width: 76px; }
  .v2-access-protocol-coverage b { display: none; }
  .v2-access-workspace-v3.is-inspector-open { position: relative; grid-template-columns: minmax(0, 1fr); }
  .v2-access-inspector-v3 { position: absolute; z-index: 6; top: 0; right: 0; bottom: 0; width: min(390px, calc(100% - 40px)); box-shadow: -12px 0 38px rgba(24, 38, 58, .16); }
}

@media (max-width: 760px) {
  .v2-batch-search-backdrop { align-items: end; padding: 0; }
  .v2-batch-search-dialog { width: 100%; border-radius: 16px 16px 0 0; padding: 18px 16px calc(16px + env(safe-area-inset-bottom)); }
  .v2-batch-search-dialog textarea { min-height: 32vh; font-size: 16px; }
  .v2-batch-search-dialog > footer button { min-width: 0; flex: 1; height: 44px; }
  .v2-access-page-v3 { gap: 9px; padding: 10px 8px 18px; }
  .v2-access-heading { align-items: flex-start; flex-direction: column; gap: 8px; }
  .v2-access-heading h2 { font-size: 19px; }
  .v2-access-heading p { font-size: 11px; }
  .v2-access-heading > div:last-child { width: 100%; justify-content: space-between; }
  .v2-access-filter-v3 { grid-template-columns: 1fr 1fr; padding: 11px; }
  .v2-access-filter-v3 .is-search { grid-column: 1 / -1; }
  .v2-access-filter-v3 label { font-size: 11px; }
  .v2-access-filter-v3 input, .v2-access-filter-v3 select, .v2-access-filter-v3 label > div { height: 42px; font-size: 13px; }
  .v2-access-filter-v3 > button { height: 42px; }
  .v2-access-kpis-v3 { display: flex; min-height: 56px; overflow-x: auto; scroll-snap-type: x proximity; }
  .v2-access-kpis-v3 button { min-width: 150px; flex: 0 0 150px; scroll-snap-align: start; }
  .v2-access-kpis-v3 strong { font-size: 20px; }
  .v2-access-workspace-v3 { min-height: 620px; flex-basis: 620px; }
  .v2-access-table-v3 > .semi-card-body > header { align-items: flex-start; min-height: 62px; flex-direction: column; padding: 9px 10px; }
  .v2-access-table-title { align-items: flex-start; flex-direction: column; gap: 3px; }
  .v2-access-table-actions { width: 100%; justify-content: space-between; overflow: hidden; }
  .v2-access-protocol-coverage { overflow-x: auto; }
  .v2-access-protocol-coverage b { display: inline; }
  .v2-access-table-v3 > .semi-card-body > footer { align-items: flex-start; min-height: 76px; flex-direction: column; padding: 9px 10px; }
  .v2-access-table-scroll-v3 table { font-size: 12px; }
  .v2-access-inspector-v3 { position: fixed; z-index: 30; top: 76px; right: 8px; bottom: 8px; width: calc(100% - 16px); border-radius: 12px; }
  .v2-access-identity-queue-v3 summary { align-items: flex-start; flex-direction: column; justify-content: center; gap: 3px; padding: 8px 10px; }
  .v2-access-identity-queue-v3 > div { grid-template-columns: 1fr; }
  .v2-access-settings fieldset { align-items: stretch; flex-direction: column; }
  .v2-access-settings input { width: 100%; box-sizing: border-box; }
}

@keyframes v2-mobile-sheet-enter {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 374px) {
  .v2-nav-label, .v2-sidebar.is-collapsed .v2-nav-label { font-size: 8px; }
  .v2-monitor-workspace, .v2-monitor-workspace.is-detail-open, .v2-monitor-workspace.is-detail-collapsed { grid-template-rows: minmax(330px, 50dvh) 340px; min-height: calc(50dvh + 340px); }
  .v2-map-legend span:nth-of-type(3), .v2-map-legend span:nth-of-type(4) { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Mobile task-first interaction layer. Desktop keeps the full workspace. */
.v2-mobile-navigation,
.v2-mobile-filter-toggle,
.v2-alert-mobile-list,
.v2-access-mobile-list,
.v2-history-mobile-list { display: none; }

@media (max-width: 680px) {
  .v2-mobile-navigation { position: fixed; z-index: 90; right: 0; bottom: 0; left: 0; display: grid; height: calc(66px + env(safe-area-inset-bottom)); grid-template-columns: repeat(var(--v2-mobile-nav-count, 5), minmax(0, 1fr)); border-top: 1px solid #dce4ee; background: rgba(255,255,255,.97); padding: 5px 6px calc(5px + env(safe-area-inset-bottom)); box-shadow: 0 -10px 30px rgba(20,35,55,.10); backdrop-filter: blur(16px); }
  .v2-mobile-nav-item { position: relative; display: flex; min-width: 0; min-height: 54px; align-items: center; justify-content: center; flex-direction: column; gap: 4px; border: 0; border-radius: 10px; background: transparent; color: #718096; text-decoration: none; cursor: pointer; }
  .v2-mobile-nav-item > svg { font-size: 20px; }
  .v2-mobile-nav-item > span { max-width: 100%; overflow: hidden; font-size: 10px; font-weight: 700; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
  .v2-mobile-nav-item.is-active { background: #edf4ff; color: var(--v2-blue); }
  .v2-mobile-nav-item.is-active::after { position: absolute; right: 22%; bottom: 1px; left: 22%; height: 2px; border-radius: 2px; background: var(--v2-blue); content: ""; }
  .v2-main { padding-bottom: calc(66px + env(safe-area-inset-bottom)); }

  .v2-mobile-filter-toggle.semi-button { display: flex; width: 100%; min-height: 58px; height: auto; flex: 0 0 auto; border: 1px solid #dce5ef; border-radius: 12px; background: linear-gradient(135deg,#fff 0%,#fbfdff 100%); padding: 8px 10px; color: #26364b; box-shadow: 0 5px 18px rgba(25,39,59,.055); text-align: left; }
  .v2-mobile-filter-toggle.semi-button:hover { border-color: #cad9ec; background: #fff; }
  .v2-mobile-filter-toggle.semi-button:active { background: #f6f9fd; transform: translateY(1px); }
  .v2-mobile-filter-toggle.semi-button > .semi-button-content { display: block; width: 100%; min-width: 0; }
  .v2-mobile-filter-toggle-content { display: grid; width: 100%; min-width: 0; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 9px; }
  .v2-mobile-filter-toggle-icon { display: inline-flex; width: 34px; height: 34px; align-items: center; justify-content: center; border-radius: 9px; background: #eaf3ff; color: var(--v2-blue); font-size: 16px; }
  .v2-mobile-filter-toggle-copy { display: flex; min-width: 0; flex-direction: column; gap: 3px; line-height: 1.2; }
  .v2-mobile-filter-toggle-copy b { font-size: 13px; }
  .v2-mobile-filter-toggle-copy small { overflow: hidden; color: #7a889b; font-size: 11px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
  .v2-mobile-filter-toggle-action { display: inline-flex; min-height: 28px; flex: 0 0 auto; align-items: center; gap: 3px; border-radius: 15px; background: #edf4ff; padding: 0 9px; color: var(--v2-blue); font-size: 11px; font-weight: 700; white-space: nowrap; }
  .v2-mobile-filter-toggle-action svg { font-size: 12px; }
  :is(.v2-alert-filter,.v2-alert-filter-card,.v2-access-filter-v3,.v2-access-filter-card-v3,.v2-history-toolbar,.v2-history-filter-card,.v2-mileage-filter,.v2-reconcile-toolbar).is-mobile-collapsed { display: none !important; }

  .v2-alert-heading > div,
  .v2-access-heading > div:first-child,
  .v2-mileage-heading > div { display: none; }
  .v2-alert-heading { display: none; }
  .v2-access-heading { justify-content: flex-end; min-height: 40px; }
  .v2-access-heading > div:last-child { width: 100%; }
  .v2-mileage-heading { justify-content: flex-end; min-height: 40px; }

  .v2-kpis > .semi-card-body { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); overflow: hidden; }
  .v2-kpi { width: auto; min-width: 0; min-height: 64px; padding: 9px 11px; }
  .v2-kpi.is-offline, .v2-kpi.is-idle { display: none; }
  .v2-kpi + .v2-kpi::before { display: block; }
  .v2-monitor-workspace,
  .v2-monitor-workspace.is-detail-open,
  .v2-monitor-workspace.is-detail-collapsed { min-height: max(430px, calc(100dvh - 330px)); grid-template-columns: 1fr; grid-template-rows: minmax(430px, 1fr); }
  .v2-monitor-workspace > .v2-vehicle-rail { display: none; }
  .v2-monitor-workspace > .v2-fleet-map { grid-row: 1; }
  .v2-vehicle-detail { height: min(58dvh, 520px); }

  .v2-alert-page { gap: 9px; }
  .v2-alert-kpis { display: flex; min-height: 70px; overflow-x: auto; scroll-snap-type: x proximity; }
  .v2-alert-kpis button { min-width: 116px; flex: 0 0 116px; scroll-snap-align: start; }
  .v2-alert-workspace { display: flex; min-height: 0; flex-direction: column; }
  .v2-alert-table-card { height: auto; min-height: 420px; }
  .v2-alert-table-scroll { overflow: visible; }
  .v2-alert-table-scroll table { display: none; }
  .v2-alert-mobile-list { display: flex; flex-direction: column; background: #f5f7fa; padding: 8px; gap: 8px; }
  .v2-alert-mobile-list > .v2-alert-mobile-card.semi-card { width: 100%; overflow: hidden; border: 1px solid #e0e7f0; border-radius: 11px; background: #fff; box-shadow: 0 2px 8px rgba(20,35,55,.04); content-visibility: auto; contain-intrinsic-size: auto 188px; }
  .v2-alert-mobile-list > .v2-alert-mobile-card.semi-card.is-selected { border-color: #8eb8f8; box-shadow: inset 3px 0 var(--v2-blue), 0 0 0 2px rgba(18,104,243,.08); }
  .v2-alert-mobile-action.semi-button { display: block; width: 100%; height: auto; min-height: 0; border-radius: 0; padding: 0; color: #334155; text-align: left; }
  .v2-alert-mobile-action.semi-button:hover { background: #f8fbff; }
  .v2-alert-mobile-action.semi-button:active { background: #f1f6ff; }
  .v2-alert-mobile-action .semi-button-content { display: block; width: 100%; min-width: 0; white-space: normal; }
  .v2-alert-mobile-card-content { display: block; padding: 12px; }
  .v2-alert-mobile-card-content header { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
  .v2-alert-mobile-card-content header > strong { overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
  .v2-alert-mobile-card-content header > span { display: flex; flex: 0 0 auto; gap: 5px; }
  .v2-alert-mobile-card-content p { margin: 9px 0; color: #26364b; font-size: 13px; font-weight: 700; }
  .v2-alert-mobile-card-content dl { display: grid; grid-template-columns: 1fr 1fr; gap: 9px 12px; margin: 0; border-top: 1px solid #edf1f5; padding-top: 10px; }
  .v2-alert-mobile-card-content dt { color: #8a97a9; font-size: 10px; }
  .v2-alert-mobile-card-content dd { margin: 3px 0 0; color: #46566c; font-size: 11px; font-weight: 650; }
  .v2-alert-mobile-card-content footer { display: flex; align-items: center; justify-content: flex-end; gap: 2px; margin-top: 10px; color: var(--v2-blue); font-size: 11px; font-weight: 700; }
  .v2-alert-mobile-card-content footer svg { width: 13px; height: 13px; }
  .v2-alert-inspector { max-height: none; margin-top: 10px; }

  .v2-access-kpis-v3 { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); overflow: hidden; }
  .v2-access-kpis-v3 button { min-width: 0; min-height: 74px; flex: none; }
  .v2-access-workspace-v3 { min-height: 480px; flex-basis: auto; }
  .v2-access-table-v3 > .semi-card-body > header { min-height: 0; }
  .v2-access-table-title > span, .v2-access-protocol-coverage { display: none; }
  .v2-access-table-actions { justify-content: flex-end; }
  .v2-access-table-scroll-v3 { overflow: visible; }
  .v2-access-table-scroll-v3 table { display: none; }
  .v2-access-mobile-list { display: flex; flex-direction: column; gap: 8px; background: #f5f7fa; padding: 8px; }
  .v2-access-mobile-list .v2-access-protocol-cell { min-width: 0; border-radius: 7px; background: #f7f9fc; padding: 7px; }
  .v2-access-mobile-list .v2-access-protocol-cell strong { font-size: 9px; }
  .v2-access-mobile-list .v2-access-protocol-cell small { display: none; }

  .v2-history-page { gap: 9px; }
  .v2-history-metrics { max-height: 48px; }
  .v2-history-main { display: flex; height: auto; min-height: 0; flex-direction: column; }
  .v2-history-summary { min-height: 92px; }
  .v2-history-table-card { order: 2; height: auto; min-height: 380px; }
  .v2-history-trend { order: 3; min-height: 220px; margin-top: 10px; }
  .v2-history-table-scroll { overflow: visible; }
  .v2-history-table-scroll table { display: none; }
  .v2-history-mobile-list { display: flex; flex-direction: column; gap: 8px; background: #f5f7fa; padding: 8px; }
  .v2-history-mobile-list > .v2-history-mobile-card.semi-card { width: 100%; overflow: hidden; border: 1px solid #e0e7ef; border-radius: 11px; background: #fff; box-shadow: 0 2px 8px rgba(20,35,55,.04); content-visibility: auto; contain-intrinsic-size: auto 220px; }
  .v2-history-mobile-list > .v2-history-mobile-card.semi-card.is-selected { border-color: #8eb8f8; box-shadow: inset 3px 0 var(--v2-blue), 0 0 0 2px rgba(18,104,243,.08); }
  .v2-history-mobile-action.semi-button { display: block; width: 100%; height: auto; min-height: 0; border-radius: 0; padding: 0; color: #334155; text-align: left; }
  .v2-history-mobile-action.semi-button:hover { background: #f8fbff; }
  .v2-history-mobile-action.semi-button:active { background: #f1f6ff; }
  .v2-history-mobile-action .semi-button-content { display: block; width: 100%; min-width: 0; white-space: normal; }
  .v2-history-mobile-card-content { display: block; padding: 12px; }
  .v2-history-mobile-card-content header, .v2-history-mobile-card-content p { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
  .v2-history-mobile-card-content header > span:first-child { min-width: 0; }
  .v2-history-mobile-card-content header strong, .v2-history-mobile-card-content header small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .v2-history-mobile-card-content header strong { font-size: 14px; }
  .v2-history-mobile-card-content header small { margin-top: 3px; color: #8794a5; font-size: 10px; }
  .v2-history-mobile-card-content p { margin: 9px 0; color: #718096; font-size: 10px; }
  .v2-history-mobile-card-content p b { color: var(--v2-blue); }
  .v2-history-mobile-quality { display: block; margin: -2px 0 9px; color: #6d7b8f; font-size: 10px; line-height: 1.45; }
  .v2-history-mobile-card-content dl { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; margin: 0; border-top: 1px solid #edf1f5; padding-top: 9px; }
  .v2-history-mobile-card-content dt { color: #8a97a9; font-size: 9px; }
  .v2-history-mobile-card-content dd { margin: 3px 0 0; font-size: 11px; font-weight: 700; }
  .v2-history-mobile-card-content footer { display: flex; align-items: center; justify-content: flex-end; gap: 2px; margin-top: 10px; color: var(--v2-blue); font-size: 11px; font-weight: 700; }
  .v2-history-mobile-card-content footer svg { width: 13px; height: 13px; }
  .v2-history-side { margin-top: 10px; }

  .v2-mileage-query-panel { padding: 8px; }
  .v2-mileage-query-panel > .semi-card-body > .v2-mobile-filter-toggle { margin-bottom: 8px; }
  .v2-mileage-filter.is-mobile-collapsed + .v2-mileage-validation { margin-top: 4px; }

  .v2-track-page.is-rail-collapsed { display: grid; grid-template-columns: minmax(0,1fr); }
  .v2-track-page.is-rail-collapsed .v2-track-stage { min-height: calc(100dvh - 118px - env(safe-area-inset-bottom)); }
}

/* Track replay command center — map-first layout based on the G7 reference. */
.v2-track-page { display: grid; width: 100%; height: 100%; min-height: 0; grid-template-columns: 320px minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); gap: 0; overflow: hidden; padding: 0; background: #e9eef4; }
.v2-track-page.has-monitor-return { grid-template-rows: auto minmax(0, 1fr); }
.v2-track-page > .v2-monitor-return { margin: 7px 8px; }
.v2-track-page.is-rail-collapsed { grid-template-columns: 0 minmax(0, 1fr); }
.v2-track-rail { position: relative; z-index: 12; display: flex; min-width: 0; min-height: 0; flex-direction: column; overflow: visible; border-right: 1px solid #d9e1ea; background: #fff; box-shadow: 8px 0 24px rgba(30, 45, 66, .07); transition: transform .18s ease, opacity .18s ease; }
.v2-track-page.is-rail-collapsed .v2-track-rail { opacity: 0; pointer-events: none; transform: translateX(-100%); }
.v2-track-query-card.semi-card { flex: 0 0 auto; overflow: visible; border: 0; border-radius: 0; background: #fff; box-shadow: none; }
.v2-track-query-card.is-collapsed { border-bottom: 1px solid #e2e8f0; }
.v2-track-query-header { min-height: 54px; }
.v2-track-query-header .v2-workspace-panel-actions { flex: 0 0 auto; gap: 3px; }
.v2-track-query-header .v2-workspace-panel-actions > button { height: 32px; padding: 0; }
.v2-track-query-header .v2-track-query-toggle.semi-button { width: auto; min-width: 76px; justify-content: center; border-radius: 7px; padding: 0 8px; color: #49617f; font-size: 9px; font-weight: 700; }
.v2-track-query-header .v2-track-query-toggle .semi-icon { color: #7f91a7; transition: transform .16s ease; }
.v2-track-query-card:not(.is-collapsed) .v2-track-query-toggle .semi-icon { transform: rotate(90deg); }
.v2-track-query-header .v2-track-rail-hide.semi-button { width: 32px; min-width: 32px; border-radius: 7px; color: #77879a; }
.v2-track-query { flex: 0 0 auto; border-bottom: 1px solid #e2e8f0; padding: 12px 14px 14px; background: #fff; }
.v2-track-query-summary { display: grid; min-height: 50px; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 7px 13px 10px; background: linear-gradient(180deg,#fff 0%,#fbfcfe 100%); }
.v2-track-query-summary > span { display: grid; min-width: 0; gap: 4px; }
.v2-track-query-summary strong,
.v2-track-query-summary small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v2-track-query-summary strong { color: #34475e; font-size: 11px; font-weight: 750; }
.v2-track-query-summary small { color: #8795a8; font-size: 8px; font-variant-numeric: tabular-nums; }
.v2-track-query-summary .semi-tag { max-width: 98px; overflow: hidden; border-radius: 999px; font-size: 8px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.v2-track-query > label, .v2-track-date-grid label { position: relative; display: flex; min-width: 0; flex-direction: column; gap: 5px; color: #738197; font-size: 10px; }
.v2-track-vehicle-options { position: absolute; z-index: 50; top: calc(100% + 6px); right: -1px; left: -1px; overflow: hidden; border: 1px solid #d8e1ec; border-radius: 9px; background: #fff; box-shadow: 0 16px 36px rgba(29, 43, 63, .16); }
.v2-track-vehicle-options header { display: flex; height: 32px; align-items: center; justify-content: space-between; border-bottom: 1px solid #edf1f6; background: #f8fafc; padding: 0 10px; color: #617086; font-size: 9px; }
.v2-track-vehicle-options header em { color: #95a1b1; font-style: normal; }
.v2-track-vehicle-options > button { display: grid; width: 100%; min-height: 44px; grid-template-columns: minmax(0, .85fr) minmax(0, 1.4fr) auto; align-items: center; gap: 8px; border: 0; border-top: 1px solid #f0f3f7; background: #fff; padding: 6px 10px; text-align: left; cursor: pointer; }
.v2-track-vehicle-options > button:hover { background: #f3f7ff; }
.v2-track-vehicle-options > button strong, .v2-track-vehicle-options > button span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v2-track-vehicle-options > button strong { color: #334155; font-size: 10px; }.v2-track-vehicle-options > button span { color: #8390a2; font-size: 8px; }.v2-track-vehicle-options > button em { color: var(--v2-blue); font-size: 8px; font-style: normal; }
.v2-track-vehicle-options > p { display: flex; min-height: 46px; align-items: center; justify-content: center; gap: 7px; margin: 0; color: #8390a2; font-size: 9px; }
.v2-track-presets { display: flex; gap: 6px; margin: 8px 0; }
.v2-track-presets button { height: 25px; flex: 1; border: 1px solid #e0e7f0; border-radius: 5px; background: #f8fafc; color: #64748b; font-family: inherit; font-size: 9px; cursor: pointer; }
.v2-track-presets button:hover { border-color: #aac7f6; background: #eef5ff; color: var(--v2-blue); }
.v2-track-date-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-bottom: 8px; }
.v2-track-query-button { display: flex; width: 100%; height: 36px; align-items: center; justify-content: center; gap: 7px; border: 1px solid #2563eb; border-radius: 7px; background: #2563eb; color: #fff; box-shadow: 0 6px 14px rgba(37, 99, 235, .18); font-family: inherit; font-size: 11px; font-weight: 700; cursor: pointer; }
.v2-track-query-button:disabled { cursor: not-allowed; opacity: .48; }
.v2-track-rail-result.semi-card { min-height: 0; flex: 1; overflow: hidden; border: 0; border-radius: 0; background: #fff; box-shadow: none; }
.v2-track-rail-result > .semi-card-body { display: flex; height: 100%; min-height: 0; flex-direction: column; }
.v2-track-result-header { min-height: 58px; }
.v2-track-result-header .v2-workspace-panel-copy > h5.semi-typography { color: #253348; font-size: 13px; }
.v2-track-result-header .v2-workspace-panel-copy > .semi-typography { font-size: 9px; }
.v2-track-result-header .v2-workspace-panel-meta { color: #2563eb; font-size: 13px; font-weight: 750; }
.v2-track-rail-tabs { display: grid; height: 40px; flex: 0 0 40px; grid-template-columns: 1fr 1fr 1fr; border-bottom: 1px solid #dfe6ee; padding: 0 8px; }
.v2-track-rail-tabs button { position: relative; border: 0; background: transparent; color: #66758a; font-family: inherit; font-size: 10px; cursor: pointer; }
.v2-track-rail-tabs button.is-active { color: #2563eb; font-weight: 700; }.v2-track-rail-tabs button.is-active::after { position: absolute; right: 12px; bottom: -1px; left: 12px; height: 2px; border-radius: 2px 2px 0 0; background: #2563eb; content: ''; }
.v2-track-rail-tabs .v2-segmented-tab-count { min-width: 16px; min-height: 16px; padding: 0 4px; font-size: 8px; }
.v2-track-rail-scroll { min-height: 0; flex: 1; overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.v2-track-overview-panel { display: grid; padding-bottom: 14px; }
.v2-track-overview-card.semi-card { min-width: 0; border: 0; border-bottom: 1px solid #edf1f5; border-radius: 0; background: #fff; box-shadow: none; }
.v2-track-overview-card .v2-workspace-panel-header { border-bottom-color: #edf1f5; background: #fbfcfe; }
.v2-track-overview-card .v2-workspace-panel-actions { max-width: none; }
.v2-track-overview-card .v2-workspace-panel-header .semi-tag { flex: 0 0 auto; border-radius: 999px; font-size: 9px; }
.v2-track-overview-card-body { padding: 11px 13px; }
.v2-track-quality-card.semi-card.is-good { background: #f7fcf9; }
.v2-track-quality-card.semi-card.is-warning { background: #fffaf2; }
.v2-track-quality-card.is-good .v2-workspace-panel-header { background: #f3fbf7; }
.v2-track-quality-card.is-warning .v2-workspace-panel-header { background: #fff8ed; }
.v2-track-quality-card p { margin: 0; color: #526176; font-size: 8px; line-height: 1.55; }.v2-track-quality-card small { display: block; margin-top: 6px; color: #8190a3; font-size: 7px; }

.v2-track-stage { position: relative; min-width: 0; min-height: 0; overflow: hidden; background: #e7edf3; }
.v2-track-map, .v2-track-map-canvas { position: absolute; inset: 0; }
.v2-track-stage-tools { position: absolute; z-index: 18; top: 14px; right: 14px; display: flex; gap: 7px; }
.v2-track-stage-tools button { display: flex; height: 34px; align-items: center; gap: 6px; border: 1px solid #d7e0eb; border-radius: 7px; background: rgba(255, 255, 255, .95); padding: 0 10px; color: #607086; box-shadow: 0 5px 15px rgba(26, 42, 63, .1); backdrop-filter: blur(8px); font-family: inherit; font-size: 9px; cursor: pointer; }
.v2-track-stage-tools button.is-active { border-color: #a8c5f4; background: #eef5ff; color: #2563eb; }.v2-track-stage-tools button:disabled { cursor: not-allowed; opacity: .45; }
.v2-track-rail-expand { position: absolute; z-index: 19; top: 50%; left: 0; display: flex; min-height: 108px; align-items: center; justify-content: center; flex-direction: column; gap: 7px; border: 1px solid #cfd9e5; border-left: 0; border-radius: 0 10px 10px 0; background: rgba(255,255,255,.96); padding: 10px 7px; color: #2f6fcb; box-shadow: 5px 7px 18px rgba(26,42,63,.14); backdrop-filter: blur(8px); font-family: inherit; cursor: pointer; transform: translateY(-50%); }
.v2-track-rail-expand span { max-width: 1em; font-size: 10px; font-weight: 700; line-height: 1.2; }
.v2-track-rail-expand .semi-icon { font-size: 16px; }
.v2-track-coverage-float { position: absolute; z-index: 16; top: 14px; left: 14px; display: grid; width: min(510px, calc(100% - 450px)); min-height: 34px; grid-template-columns: 7px minmax(0, 1fr) auto; align-items: center; gap: 9px; border: 1px solid rgba(209, 221, 234, .94); border-radius: 7px; background: rgba(255, 255, 255, .94); padding: 5px 10px; color: #65748a; box-shadow: 0 5px 16px rgba(26, 42, 63, .09); backdrop-filter: blur(9px); font-size: 8px; }
.v2-track-coverage-float > i { width: 7px; height: 7px; border-radius: 50%; background: #18a86b; }.v2-track-coverage-float.is-warning > i { background: #f1a238; }.v2-track-coverage-float > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.v2-track-coverage-float strong { margin-right: 7px; color: #354358; font-size: 9px; }.v2-track-coverage-float em { color: #758399; font-size: 8px; font-style: normal; white-space: nowrap; }
.v2-track-current-card.semi-card { --track-overlay-text: #f8fbff; --track-overlay-muted: #c8d3df; position: absolute; z-index: 16; top: 60px; left: 14px; width: 292px; overflow: hidden; border: 1px solid rgba(221, 230, 240, .56); border-radius: 9px; background: rgba(25, 36, 52, .95); color: var(--track-overlay-text); box-shadow: 0 12px 30px rgba(15, 23, 42, .24); backdrop-filter: blur(12px); }
.v2-track-current-card > .semi-card-body > div { display: grid; grid-template-columns: 1fr 1fr 1fr; border-top: 1px solid rgba(255, 255, 255, .14); border-bottom: 1px solid rgba(255, 255, 255, .14); }.v2-track-current-card > .semi-card-body > div > span { min-width: 0; padding: 8px 10px; }.v2-track-current-card > .semi-card-body > div > span + span { border-left: 1px solid rgba(255, 255, 255, .14); }.v2-track-current-card small, .v2-track-current-card strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.v2-track-current-card small { color: #bdc8d6; font-size: 7px; }.v2-track-current-card > .semi-card-body > div strong { margin-top: 4px; color: var(--track-overlay-text); font-size: 10px; text-shadow: 0 1px 1px rgba(0, 0, 0, .16); }.v2-track-current-card em { color: #c4cfdb; font-size: 7px; font-style: normal; font-weight: 500; }
.v2-track-current-card > .semi-card-body > p { margin: 0; overflow: hidden; padding: 8px 11px; color: #d5dde7; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.v2-track-empty-state.semi-card { position: absolute; z-index: 14; top: 50%; left: 50%; width: min(330px, calc(100% - 36px)); transform: translate(-50%, calc(-50% - 56px)); border: 1px solid rgba(211, 221, 232, .95); border-radius: 12px; background: rgba(255, 255, 255, .93); color: #8a97a8; box-shadow: 0 14px 36px rgba(27, 42, 61, .1); text-align: center; backdrop-filter: blur(10px); }.v2-track-empty-state > .semi-card-body { display: flex; align-items: center; flex-direction: column; padding: 24px !important; }.v2-track-empty-state > .semi-card-body > svg { color: #2563eb; font-size: 28px; }.v2-track-empty-state strong { margin-top: 10px; color: #344256; font-size: 13px; }.v2-track-empty-state p { margin: 6px 0 14px; font-size: 9px; }.v2-track-empty-state button { display: flex; height: 34px; align-items: center; gap: 6px; border: 0; border-radius: 6px; background: #2563eb; padding: 0 12px; color: #fff; font-family: inherit; font-size: 10px; font-weight: 700; cursor: pointer; }
.v2-track-loading { position: absolute; z-index: 25; top: 14px; left: 50%; display: flex; height: 34px; align-items: center; gap: 8px; transform: translateX(-50%); border: 1px solid #d9e2ec; border-radius: 7px; background: rgba(255, 255, 255, .96); padding: 0 12px; color: #59687c; box-shadow: 0 8px 20px rgba(30, 45, 66, .13); font-size: 9px; }
.v2-track-error { position: absolute; z-index: 28; top: 56px; right: 14px; width: min(420px, calc(100% - 28px)); }
.v2-track-marker { display: grid; width: 25px; height: 25px; place-items: center; border: 3px solid #fff; border-radius: 50%; background: #2563eb; color: #fff; box-shadow: 0 3px 10px rgba(29, 44, 65, .28); }.v2-track-marker span { font-size: 8px; font-weight: 800; line-height: 1; }.v2-track-marker.is-start { background: #18a86b; }.v2-track-marker.is-end { background: #e64c4c; }.v2-track-marker.is-stop { width: 22px; height: 22px; border-width: 2px; background: #f1a238; }
.v2-track-current-marker { position: relative; width: 42px; height: 42px; }.v2-track-current-marker > i { position: absolute; inset: 2px; border: 2px solid rgba(37, 99, 235, .45); border-radius: 50%; animation: v2-track-pulse 1.8s ease-out infinite; }.v2-track-current-marker > span { position: absolute; top: 13px; left: 13px; width: 16px; height: 16px; box-sizing: border-box; border: 4px solid #fff; border-radius: 50%; background: #2563eb; box-shadow: 0 3px 9px rgba(37, 99, 235, .5); }
@keyframes v2-track-pulse { 0% { opacity: .9; transform: scale(.45); } 80%, 100% { opacity: 0; transform: scale(1); } }

.v2-track-playback-dock.semi-card { position: absolute; z-index: 20; right: 0; bottom: 0; left: 0; min-height: 112px; overflow: hidden; border: 0; border-top: 1px solid rgba(202, 214, 228, .95); border-radius: 0; background: rgba(255, 255, 255, .96); box-shadow: 0 -8px 26px rgba(24, 38, 58, .11); backdrop-filter: blur(14px); }
.v2-track-playback-dock > .semi-card-body { display: grid; min-height: 112px; grid-template-columns: 145px minmax(260px, 1fr) auto; align-items: center; gap: 18px; padding: 12px 16px !important; }
.v2-track-dock-summary { min-width: 0; }.v2-track-dock-summary strong, .v2-track-dock-summary span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.v2-track-dock-summary strong { color: #263448; font-size: 17px; letter-spacing: -.02em; }.v2-track-dock-summary span { margin-top: 5px; color: #7e8b9d; font-size: 8px; }
.v2-track-dock-progress { min-width: 0; }.v2-track-segment-rail { display: flex; width: 100%; height: 10px; overflow: hidden; border-radius: 5px; background: #e8edf3; }.v2-track-segment-rail > span { min-width: 2px; border-right: 1px solid rgba(255, 255, 255, .55); background: #b9e6d0; }.v2-track-segment-rail > span.is-stopped { background: #f8d797; }.v2-track-segment-rail > span.is-gap { background: #f2a7a7; }.v2-track-segment-placeholder { height: 10px; border-radius: 5px; background: #e7ecf2; }
.v2-track-progress-slider.semi-slider-wrapper { width: 100%; margin: 11px 0 6px; padding: 4px 0; }
.v2-track-progress-slider .semi-slider-rail { height: 4px; border-radius: 2px; background: #dce4ee; }
.v2-track-progress-slider .semi-slider-track { height: 4px; border-radius: 2px; background: linear-gradient(90deg, #1b73e8, #438df1); }
.v2-track-progress-slider .semi-slider-handle { width: 16px; height: 16px; margin-top: -6px; border: 3px solid #fff; background: #1677ff; box-shadow: 0 2px 8px rgba(22,119,255,.35); }
.v2-track-progress-slider:hover .semi-slider-handle, .v2-track-progress-slider .semi-slider-handle:focus-visible { box-shadow: 0 0 0 4px rgba(22,119,255,.14), 0 2px 8px rgba(22,119,255,.35); }
.v2-track-progress-slider.semi-slider-disabled, .v2-track-progress-slider[aria-disabled="true"] { cursor: not-allowed; opacity: .48; }.v2-track-progress-meta { display: flex; justify-content: space-between; color: #7c899a; font-size: 8px; }.v2-track-dock-progress time { color: #4b596d; font-variant-numeric: tabular-nums; }
.v2-track-dock-controls { display: flex; align-items: center; gap: 6px; }.v2-track-dock-controls > button { display: grid; width: 32px; height: 32px; place-items: center; border: 1px solid #d8e1eb; border-radius: 50%; background: #fff; color: #5c6b7f; cursor: pointer; }.v2-track-dock-controls > button.is-primary { width: 42px; height: 42px; border-color: #2563eb; background: #2563eb; color: #fff; box-shadow: 0 5px 14px rgba(37, 99, 235, .25); }.v2-track-dock-controls > button:disabled { cursor: not-allowed; opacity: .36; }
.v2-track-dock-controls label { display: flex; height: 32px; align-items: center; gap: 5px; border: 1px solid #d8e1eb; border-radius: 16px; padding: 0 8px 0 10px; color: #7c899a; font-size: 8px; }.v2-track-dock-controls select { border: 0; background: transparent; color: #3f4e63; outline: 0; font-family: inherit; font-size: 9px; font-weight: 700; }
.v2-track-dock-metrics { display: none; align-items: center; }.v2-track-dock-metrics > span { min-width: 92px; padding: 0 12px; }.v2-track-dock-metrics > span + span { border-left: 1px solid #e2e8f0; }.v2-track-dock-metrics small, .v2-track-dock-metrics strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.v2-track-dock-metrics small { color: #8a97a8; font-size: 7px; }.v2-track-dock-metrics strong { margin-top: 5px; color: #405066; font-size: 9px; }

@media (min-width: 1680px) {
  .v2-track-page { grid-template-columns: 340px minmax(0, 1fr); }
  .v2-track-page.is-rail-collapsed { grid-template-columns: 0 minmax(0, 1fr); }
  .v2-track-playback-dock > .semi-card-body { grid-template-columns: 150px minmax(310px, 1fr) auto auto; }
  .v2-track-dock-metrics { display: flex; }
}

@media (max-width: 1100px) {
  .v2-track-page { grid-template-columns: 286px minmax(0, 1fr); }
  .v2-track-page.is-rail-collapsed { grid-template-columns: 0 minmax(0, 1fr); }
  .v2-track-current-card { width: 260px; }
  .v2-track-coverage-float { width: min(420px, calc(100% - 360px)); }
  .v2-track-playback-dock > .semi-card-body { grid-template-columns: minmax(250px, 1fr) auto; gap: 12px; }
  .v2-track-dock-summary, .v2-track-dock-metrics { display: none; }
}

@media (max-width: 700px) {
  .v2-track-page, .v2-track-page.is-rail-collapsed { position: relative; display: block; height: 100%; min-height: 0; overflow: hidden; }
  .v2-track-stage { width: 100%; height: 100%; }
  .v2-track-rail { position: fixed; z-index: 72; right: 8px; bottom: calc(72px + env(safe-area-inset-bottom)); left: 8px; width: auto; height: min(76dvh, 680px); border: 1px solid #d7e0ea; border-radius: 16px; box-shadow: 0 -14px 46px rgba(22, 34, 50, .22); transform: translateY(0); }
  .v2-track-rail::before { display: block; width: 40px; height: 4px; flex: 0 0 4px; margin: 8px auto 0; border-radius: 2px; background: #d5dee9; content: ''; }
  .v2-track-page.is-rail-collapsed .v2-track-rail { opacity: 0; pointer-events: none; transform: translateY(calc(100% + 90px)); }
  .v2-track-query { padding: 9px 12px 10px; }
  .v2-track-query-header .v2-workspace-panel-actions > .semi-button { height: 34px; }
  .v2-track-query-header .v2-track-query-toggle.semi-button { min-width: 82px; font-size: 10px; }
  .v2-track-query-header .v2-track-rail-hide.semi-button { width: 34px; min-width: 34px; transform: rotate(-90deg); }
  .v2-track-query-summary { min-height: 56px; padding: 8px 13px 11px; }
  .v2-track-query-summary strong { font-size: 12px; }
  .v2-track-query-summary small,
  .v2-track-query-summary .semi-tag { font-size: 9px; }
  .v2-track-date-grid { grid-template-columns: 1fr; gap: 6px; }
  .v2-track-presets { margin: 6px 0; }
  .v2-track-presets > .semi-button { height: 32px; }
  .v2-track-query-button.semi-button { height: 42px; font-size: 13px; }
  .v2-track-rail-tabs { height: 42px; flex-basis: 42px; }
  .v2-track-overview-card-body { padding: 12px 13px; }
  .v2-track-overview-card header strong { font-size: 11px; }
  .v2-track-overview-card header .semi-tag { font-size: 9px; }
  .v2-track-quality-card p { font-size: 9px; }
  .v2-track-quality-card small { font-size: 8px; }
  .v2-track-stage-tools { top: 8px; right: 8px; gap: 6px; }.v2-track-stage-tools button { width: 40px; height: 40px; justify-content: center; padding: 0; }.v2-track-stage-tools .semi-button-content { font-size: 0; }.v2-track-stage-tools .semi-button-content > .semi-icon { display: inline-flex; font-size: 17px; }
  .v2-track-rail-expand { z-index: 21; top: auto; bottom: calc(132px + env(safe-area-inset-bottom)); min-height: 48px; flex-direction: row; padding: 0 12px 0 10px; transform: none; }
  .v2-track-stage:has(.v2-track-current-card) .v2-track-rail-expand { bottom: calc(248px + env(safe-area-inset-bottom)); }
  .v2-track-rail-expand span { max-width: none; font-size: 11px; }
  .v2-track-coverage-float { top: 56px; right: 8px; left: 8px; width: auto; min-height: 36px; grid-template-columns: 7px minmax(0, 1fr); }.v2-track-coverage-float > span { white-space: nowrap; }.v2-track-coverage-float > span:not(strong) { font-size: 0; }.v2-track-coverage-float strong { font-size: 10px; }.v2-track-coverage-float em { display: none; }
  .v2-track-current-card.semi-card { top: auto; right: 8px; bottom: 126px; left: 8px; width: auto; height: auto; border-radius: 9px; }.v2-track-current-card .v2-workspace-panel-header { padding: 8px 10px 6px; }.v2-track-current-card > .semi-card-body > div > span { padding: 6px 9px; }.v2-track-current-card > .semi-card-body > p { display: none; }
  .v2-track-empty-state { width: min(300px, calc(100% - 28px)); transform: translate(-50%, calc(-50% - 42px)); }.v2-track-empty-state > .semi-card-body { padding: 20px 16px !important; }
  .v2-track-loading { top: 103px; width: max-content; max-width: calc(100% - 20px); }
  .v2-track-error { top: 103px; right: 8px; width: calc(100% - 16px); }
  .v2-track-playback-dock, .v2-track-playback-dock > .semi-card-body { min-height: 118px; }.v2-track-playback-dock > .semi-card-body { grid-template-columns: minmax(0, 1fr) auto; gap: 10px; padding: 10px 9px !important; }.v2-track-dock-summary, .v2-track-dock-metrics { display: none; }.v2-track-dock-progress { align-self: center; }.v2-track-dock-controls { align-self: center; gap: 4px; }.v2-track-dock-controls > button { width: 34px; height: 34px; }.v2-track-dock-controls > button.is-primary { width: 42px; height: 42px; }.v2-track-dock-controls > button:first-child, .v2-track-dock-controls > button:nth-child(3), .v2-track-dock-controls > button:last-child { display: none; }.v2-track-dock-controls label { height: 34px; padding: 0 6px; }.v2-track-dock-controls label > span { display: none; }
  .v2-track-progress-meta span { display: none; }
}

/* Shared workspace scale — aligns data pages with the monitor command center. */
:is(.v2-vehicle-search-page, .v2-vehicle-record-page, .v2-track-page, .v2-history-page, .v2-mileage-page, .v2-alert-page, .v2-access-page) {
  --v2-workspace-title: 22px;
  --v2-workspace-body: 13px;
  --v2-workspace-control: 12px;
  --v2-workspace-meta: 11px;
  --v2-workspace-row: 48px;
  font-size: var(--v2-workspace-body);
}

:is(.v2-vehicle-search-page, .v2-vehicle-record-page, .v2-track-page, .v2-history-page, .v2-mileage-page, .v2-alert-page, .v2-access-page)
  :where(button, input, select, textarea) {
  font-size: var(--v2-workspace-control);
}

:is(.v2-vehicle-search-page, .v2-vehicle-record-page, .v2-track-page, .v2-history-page, .v2-mileage-page, .v2-alert-page, .v2-access-page)
  :where(p, li, dt, dd, td) {
  font-size: var(--v2-workspace-control);
  line-height: 1.5;
}

:is(.v2-vehicle-search-page, .v2-vehicle-record-page, .v2-track-page, .v2-history-page, .v2-mileage-page, .v2-alert-page, .v2-access-page)
  :where(small, time, code) {
  font-size: var(--v2-workspace-meta);
  line-height: 1.45;
}

:is(.v2-vehicle-record-page, .v2-history-page, .v2-mileage-page, .v2-alert-page, .v2-access-page) :where(h2) {
  font-size: var(--v2-workspace-title);
  line-height: 1.25;
  letter-spacing: -.03em;
}

:is(.v2-vehicle-record-page, .v2-history-page, .v2-mileage-page, .v2-alert-page, .v2-access-page) :where(h3) {
  font-size: 14px;
  line-height: 1.35;
}

:is(.v2-vehicle-record-page, .v2-track-page, .v2-history-page, .v2-mileage-page, .v2-alert-page, .v2-access-page)
  :where(table th) {
  font-size: var(--v2-workspace-meta);
  line-height: 1.35;
}

/* Vehicle lookup and detail. */
.v2-vehicle-search-card { width: min(620px, 100%); padding: 38px 42px; }
.v2-vehicle-search-card h2, .v2-not-found h2 { font-size: 24px; }
.v2-vehicle-search-card > p, .v2-not-found p { font-size: 13px; }
.v2-vehicle-search-card input { height: 42px; font-size: 14px; }
.v2-vehicle-record-page { gap: 14px; padding: 16px 20px 20px; }
.v2-vehicle-record-page header strong, .v2-vehicle-record-page article strong { font-size: 13px; }
.v2-vehicle-record-page .v2-plate { min-height: 40px; font-size: 17px; }
.v2-vehicle-record-page .v2-live-grid strong { font-size: 18px; }
.v2-vehicle-record-page .v2-record-list > div,
.v2-vehicle-record-page .v2-telemetry-list > div { min-height: 42px; font-size: 12px; }
.v2-vehicle-record-page .v2-telemetry-list strong { font-size: 12px; }
.v2-vehicle-record-page .v2-identity-actions a { height: 38px; font-size: 12px; }

/* Track replay keeps the map-first layout while making command chrome readable. */
.v2-track-page { grid-template-columns: 340px minmax(0, 1fr); }
.v2-track-query { padding: 16px; }
.v2-track-query-header .v2-workspace-panel-copy > h5.semi-typography { font-size: 16px; }
.v2-track-query-header .v2-workspace-panel-copy > .semi-typography,
.v2-track-query > label,
.v2-track-date-grid label { font-size: 11px; }
.v2-track-vehicle-picker { height: 42px; }
.v2-track-presets > .semi-button { height: 30px; font-size: 11px; }
.v2-track-query-button.semi-button { height: 40px; font-size: 13px; }
.v2-track-page header strong,
.v2-track-stop-list button strong,
.v2-track-event-list button strong,
.v2-track-overview-panel strong { font-size: 12px; }
.v2-track-page small,
.v2-track-stop-list button small,
.v2-track-event-list button small { font-size: 10px; }
.v2-track-evidence-list .v2-track-list-action.semi-button { min-height: 56px; }
.v2-track-stage-tools > .semi-button { height: 38px; font-size: 11px; }
.v2-track-coverage-float { min-height: 38px; font-size: 10px; }
.v2-track-coverage-float strong { font-size: 12px; }
.v2-track-current-card { width: 310px; }
.v2-track-current-card .v2-workspace-panel-copy > h5.semi-typography { font-size: 14px; }
.v2-track-current-card > .semi-card-body > div strong { font-size: 12px; }
.v2-track-current-card > .semi-card-body > p { font-size: 10px; }
.v2-track-dock-summary strong { font-size: 18px; }
.v2-track-dock-summary span,
.v2-track-progress-meta,
.v2-track-dock-controls label { font-size: 10px; }

/* History data table. */
.v2-history-page { gap: 12px; padding: 16px 20px 20px; }
.v2-history-toolbar { padding: 14px 16px; }
.v2-history-toolbar label, .v2-history-range legend { font-size: 11px; }
.v2-history-toolbar input, .v2-history-toolbar select { height: 38px; font-size: 12px; }
.v2-history-range > div { height: 38px; }
.v2-history-range > div input { height: 36px; font-size: 12px; }
.v2-history-range > div span { font-size: 11px; }
.v2-history-summary { min-height: 76px; }
.v2-history-summary small { font-size: 11px; }
.v2-history-summary strong { font-size: 20px; }
.v2-history-table-card > .semi-card-body > header { min-height: 48px; padding: 0 14px; }
.v2-history-table-card > .semi-card-body > header strong { font-size: 14px; }
.v2-history-table-scroll table { font-size: 12px; }
.v2-history-table-scroll th { height: 42px; }
.v2-history-table-scroll td { height: 46px; }
.v2-history-table-card > .semi-card-body > footer { min-height: 44px; font-size: 11px; }
.v2-history-side header strong,
.v2-history-evidence strong { font-size: 13px; }

/* Mileage query already uses the monitor palette; align its compact metadata. */
.v2-mileage-page { gap: 14px; padding: 18px 20px 20px; }
.v2-mileage-heading h2 { font-size: 24px; }
.v2-mileage-heading p { font-size: 13px; }
.v2-mileage-filter > label { font-size: 12px; }
.v2-mileage-filter > label > input,
.v2-mileage-multiselect,
.v2-mileage-source-trigger { min-height: 42px; font-size: 13px; }
.v2-mileage-selection > input { font-size: 13px; }
.v2-mileage-chip { height: 28px; font-size: 11px; }
.v2-mileage-summary small, .v2-mileage-summary span { font-size: 11px; }
.v2-mileage-results > .semi-card-body > header strong { font-size: 14px; }
.v2-mileage-results > .semi-card-body > header span,
.v2-mileage-results > .semi-card-body > header em,
.v2-mileage-results > .semi-card-body > footer { font-size: 11px; }
.v2-mileage-table { font-size: 13px; }
.v2-mileage-table th { height: 44px; font-size: 12px; }
.v2-mileage-table td { height: 54px; }

/* Alert center: the previous 6–9px command-center scale was unreadable. */
.v2-alert-page { gap: 12px; overflow: auto; padding: 14px 18px 18px; background: var(--v2-bg); }
.v2-alert-heading { min-height: 50px; margin: 0; background: transparent; padding: 0; }
.v2-alert-heading h2 { font-size: 22px; }
.v2-alert-heading p { margin-left: 14px; font-size: 12px; }
.v2-alert-tabs { min-height: 42px; margin: 0; border: 1px solid var(--v2-border); border-radius: 9px 9px 0 0; padding: 0 14px; }
.v2-alert-tabs button { font-size: 12px; }
.v2-alert-filter { gap: 9px; padding: 12px; }
.v2-alert-filter label { gap: 6px; font-size: 11px; }
.v2-alert-filter label > div,
.v2-alert-filter input,
.v2-alert-filter select,
.v2-alert-filter button { height: 36px; font-size: 12px; }
.v2-alert-kpis-card.semi-card { min-height: 76px; margin-top: 0; }
.v2-alert-kpis { min-height: 76px; }
.v2-alert-kpis small { font-size: 11px; }
.v2-alert-kpis strong { font-size: 21px; }
.v2-alert-workspace { min-height: 520px; grid-template-columns: minmax(760px, 1fr) 360px; gap: 12px; margin-top: 0; }
.v2-alert-page strong { font-size: 12px; }
.v2-alert-table-card > .semi-card-body > header { min-height: 44px; padding: 0 12px; }
.v2-alert-table-card > .semi-card-body > header strong { font-size: 14px; }
.v2-alert-table-card > .semi-card-body > header span { font-size: 11px; }
.v2-alert-table-card > .semi-card-body > header button { height: 32px; font-size: 11px; }
.v2-alert-table-scroll table { font-size: 11px; }
.v2-alert-table-scroll th { height: 40px; }
.v2-alert-table-scroll td { height: 46px; }
.v2-alert-table-scroll td small { font-size: 10px; }
.v2-alert-table-card > .semi-card-body > footer { min-height: 42px; font-size: 11px; }
.v2-alert-table-card > .semi-card-body > footer button, .v2-alert-table-card > .semi-card-body > footer select { height: 30px; font-size: 11px; }
.v2-alert-inspector > .semi-card-body > header strong { font-size: 14px; }
.v2-alert-inspector h3 { font-size: 12px; }
.v2-alert-inspector dl > div { min-height: 30px; align-items: center; font-size: 11px; }
.v2-alert-actions button { height: 34px; font-size: 11px; }
.v2-alert-rule-list > header strong,
.v2-alert-rule-editor > header strong { font-size: 14px; }
.v2-alert-rule-list > button { min-height: 66px; }
.v2-alert-rule-list > button strong,
.v2-alert-notifications article strong { font-size: 12px; }
.v2-alert-rule-list > button small,
.v2-alert-notifications article span { font-size: 10px; }
.v2-rule-form-grid label { font-size: 11px; }
.v2-rule-form-grid input, .v2-rule-form-grid select, .v2-rule-form-grid textarea { font-size: 12px; }
.v2-alert-rule-templates { grid-template-columns: 190px minmax(0,1fr); }
.v2-alert-rule-templates > div strong { font-size: 13px; }
.v2-alert-rule-templates > div span,
.v2-alert-rule-templates button small { font-size: 10px; }
.v2-alert-rule-templates button b { font-size: 12px; }

/* Access management: preserve the table-first layout and enlarge work text. */
.v2-access-page-v3 { gap: 14px; padding: 18px 20px 22px; }
.v2-access-heading h2 { font-size: 22px; }
.v2-access-heading p { font-size: 12px; }
.v2-access-page strong { font-size: 12px; }
.v2-access-filter-v3 { padding: 13px 15px; }
.v2-access-filter-v3 label { gap: 6px; font-size: 11px; }
.v2-access-filter-v3 input,
.v2-access-filter-v3 select,
.v2-access-filter-v3 label > div,
.v2-access-filter-v3 > button { height: 38px; font-size: 12px; }
.v2-access-kpis-card-v3.semi-card,
.v2-access-kpis-v3 { min-height: 76px; }
.v2-access-kpis-v3 small { font-size: 11px; }
.v2-access-kpis-v3 strong { font-size: 20px; }
.v2-access-table-v3 > .semi-card-body > header { min-height: 54px; padding: 0 14px; }
.v2-access-table-title strong { font-size: 14px; }
.v2-access-table-title span { font-size: 11px; }
.v2-access-table-scroll-v3 table { font-size: 12px; }
.v2-access-table-scroll-v3 th { height: 42px; font-size: 11px; }
.v2-access-table-scroll-v3 td { height: 56px; }
.v2-access-table-v3 > .semi-card-body > footer { min-height: 44px; font-size: 11px; }
.v2-access-inspector-summary span,
.v2-access-protocol-cell span { font-size: 11px; }

/* Mileage query: one dominant conclusion, compact controls, data-first results. */
.v2-mileage-page { gap: 12px; padding: 18px 20px 20px; }
.v2-mileage-summary > .is-primary small,
.v2-mileage-summary > .is-primary span { font-size: 11px; }
.v2-mileage-summary-secondary small,
.v2-mileage-summary-secondary span { font-size: 11px; }
.v2-mileage-table th { height: 46px; }
.v2-mileage-table td { height: 56px; }
.v2-mileage-mobile-day-heading { display: none; }

@media (max-width: 1280px) {
  .v2-alert-workspace { grid-template-columns: minmax(650px, 1fr) 330px; }
  .v2-track-page { grid-template-columns: 310px minmax(0, 1fr); }
}

@media (max-width: 900px) {
  :is(.v2-vehicle-search-page, .v2-vehicle-record-page, .v2-track-page, .v2-history-page, .v2-mileage-page, .v2-alert-page, .v2-access-page) {
    --v2-workspace-control: 13px;
    --v2-workspace-meta: 11px;
  }
  .v2-vehicle-record-page, .v2-history-page, .v2-mileage-page, .v2-alert-page, .v2-access-page-v3 { padding: 12px 10px 18px; }
  .v2-alert-heading > div { align-items: flex-start; flex-direction: column; gap: 4px; }
  .v2-alert-heading p { margin-left: 0; }
  .v2-alert-workspace { min-height: 700px; grid-template-columns: minmax(650px, 1fr); }
}

@media (max-width: 700px) {
  .v2-track-page { display: block; }
  .v2-track-page > .v2-monitor-return { margin: 7px; }
  .v2-monitor-return { min-height: 34px; gap: 7px; padding: 4px 6px; }
  .v2-monitor-return a { height: 27px; padding: 0 8px; }
  .v2-monitor-return span { flex: 1; }
  .v2-monitor-return em { display: none; }
  .v2-track-query > label, .v2-track-date-grid label { font-size: 12px; }
  .v2-track-query-button { font-size: 13px; }
  .v2-alert-tabs { overflow-x: auto; }
  .v2-alert-tabs button { min-width: max-content; }
}

/* Keep mobile task layouts authoritative after the desktop typography layer. */
@media (max-width: 680px) {
  .v2-alert-heading { display: none; }
  .v2-alert-workspace { display: flex; min-height: 0; grid-template-columns: none; flex-direction: column; }
  .v2-alert-table-card { height: auto; min-height: 420px; }
  .v2-alert-table-scroll table { display: none; }
  .v2-alert-mobile-list { display: flex; }
  .v2-access-heading > div:first-child,
  .v2-mileage-heading > div { display: none; }
  .v2-access-kpis-v3 { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); overflow: hidden; }
  .v2-access-kpis-v3 button { min-width: 0; flex: none; }
  .v2-access-kpis-v3 small { flex: 0 0 auto; white-space: nowrap; }
  .v2-access-kpis-v3 em { display: none; }
  .v2-access-workspace-v3 { min-height: 480px; flex-basis: auto; }
  .v2-access-table-scroll-v3 table { display: none; }
  .v2-access-mobile-list { display: flex; }
  .v2-history-main { display: flex; height: auto; min-height: 0; flex-direction: column; }
  .v2-history-table-card { height: auto; min-height: 380px; order: 2; }
  .v2-history-trend { order: 3; }
  .v2-history-table-scroll table { display: none; }
  .v2-history-mobile-list { display: flex; }
  :is(.v2-alert-filter,.v2-alert-filter-card,.v2-access-filter-v3,.v2-access-filter-card-v3,.v2-history-toolbar,.v2-history-filter-card,.v2-mileage-filter,.v2-reconcile-toolbar).is-mobile-collapsed { display: none !important; }
  .v2-track-page.is-rail-collapsed { display: grid; grid-template-columns: minmax(0,1fr); }

  .v2-mileage-page { gap: 7px; padding: 7px 7px 14px; }
  .v2-mileage-query-panel { padding: 7px; border-radius: 11px; }
  .v2-mileage-query-panel > .semi-card-body > .v2-mobile-filter-toggle { min-height: 52px; margin: 0 0 7px; padding: 6px 8px; }
  .v2-mileage-ranges { grid-template-columns: repeat(5,minmax(0,1fr)); }
  .v2-mileage-ranges button { height: 36px; padding: 0 3px; font-size: 10px; }
  .v2-mileage-summary { display: grid; grid-template-columns: 1fr; gap: 6px; border: 0; background: transparent; }
  .v2-mileage-summary > .is-primary { min-height: 82px; border-radius: 9px; }
  .v2-mileage-summary > .is-primary > .semi-card-body { min-height: 82px; padding: 11px 14px 12px !important; }
  .v2-mileage-summary > .is-primary strong { margin: 4px 0 2px; font-size: 25px; }
  .v2-mileage-summary-secondary { grid-template-columns: repeat(3,minmax(0,1fr)); overflow: hidden; border: 1px solid #e1e7ef; border-radius: 10px; }
  .v2-mileage-summary-secondary .v2-mileage-summary-card { border-bottom: 0; }
  .v2-mileage-summary-secondary .v2-mileage-summary-card > .semi-card-body { min-height: 70px; justify-content: flex-start; padding: 9px 9px 8px !important; }
  .v2-mileage-summary-secondary .v2-mileage-summary-card + .v2-mileage-summary-card > .semi-card-body::before { inset: 9px auto 9px 0; }
  .v2-mileage-summary-secondary strong { margin: 4px 0 2px; font-size: 16px; }
  .v2-mileage-summary-secondary span { overflow: hidden; font-size: 9px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
  .v2-mileage-results { min-height: 430px; border-radius: 12px; }
  .v2-mileage-results > .semi-card-body > header { gap: 5px; padding: 9px 10px; }
  .v2-mileage-results > .semi-card-body > header div:first-child { width: 100%; flex-direction: row; align-items: baseline; justify-content: space-between; gap: 8px; }
  .v2-mileage-results > .semi-card-body > header strong { font-size: 14px; }
  .v2-mileage-results > .semi-card-body > header .v2-mileage-result-actions { gap: 6px; }
  .v2-mileage-results > .semi-card-body > header .v2-mileage-result-actions em { min-width: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .v2-mileage-result-actions > button { height: 32px; padding: 0 9px; font-size: 10px; }
  .v2-mileage-table-wrap { display: block; width: 100%; max-width: 100%; overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; scrollbar-width: thin; }
  .v2-mileage-table { width: max-content; min-width: 100%; font-size: 10px; }
  .v2-mileage-table th { height: 38px; padding: 0 8px; font-size: 9px; }
  .v2-mileage-table td { height: 44px; padding: 0 8px; font-size: 10px; }
  .v2-mileage-table .is-vin { display: none; }
  .v2-mileage-table .is-plate { left: 0; width: 92px; min-width: 92px; max-width: 92px; border-right: 1px solid #d8e0ea; box-shadow: 5px 0 10px rgba(15,23,42,.035); }
  .v2-mileage-table td.is-plate strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .v2-mileage-table .is-date { width: 76px; min-width: 76px; }
  .v2-mileage-table .is-total { width: 104px; min-width: 104px; padding-right: 10px; }
  .v2-mileage-table .is-daily { font-size: 10px; }
  .v2-mileage-table .is-period { font-size: 11px; }
  .v2-source-evidence-trigger { min-height: 58px; padding: 10px 11px; }
  .v2-source-evidence-trigger strong { font-size: 13px; }
  .v2-source-evidence-trigger span { max-width: 220px; font-size: 10px; }
  .v2-source-evidence-trigger button { height: 34px; font-size: 10px; }
  .v2-source-evidence-body { padding: 10px; }
  .v2-source-evidence-toolbar { align-items: flex-start; flex-direction: column; gap: 7px; }
  .v2-source-evidence-toolbar label { font-size: 10px; }
  .v2-source-evidence-toolbar input { height: 34px; font-size: 11px; }
  .v2-source-evidence-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .v2-source-evidence-summary > div:nth-child(3) { border-left: 0; }
  .v2-source-evidence-summary > div:nth-child(n+3) { border-top: 1px solid #e2e8f0; }
  .v2-source-evidence-summary strong { font-size: 15px; }
  .v2-source-evidence-group > div { display: flex; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: thin; }
  .v2-source-evidence-card { min-width: min(82vw,300px); flex: 0 0 min(82vw,300px); scroll-snap-align: start; }
  .v2-source-evidence-card > .semi-card-body > header strong { font-size: 11px; }
  .v2-source-evidence-card dd { font-size: 10px; }
}

/* Semi UI production migration: shared page hierarchy and component normalization. */
.v2-page-heading {
  display: flex;
  min-height: 66px;
  flex: 0 0 auto;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  padding: 2px 2px 4px;
}
.v2-page-heading-copy { display: flex; min-width: 0; flex-direction: column; gap: 6px; }
.v2-page-heading-copy > div { display: flex; min-width: 0; align-items: center; gap: 10px; }
.v2-page-heading-copy h3 { margin: 0; color: #172033; font-size: 25px; font-weight: 720; letter-spacing: -.04em; }
.v2-page-heading-copy > .semi-typography { max-width: 760px; font-size: 12px; line-height: 1.6; }
.v2-page-heading-copy .semi-tag { flex: 0 0 auto; border-radius: 999px; font-weight: 650; }
.v2-page-heading-aside { display: flex; flex: 0 0 auto; align-items: center; gap: 10px; padding-bottom: 2px; }
.v2-page-heading-aside > .semi-typography { font-size: 11px; }

.v2-mileage-query-panel,
.v2-mileage-results { border-color: var(--v2-border); box-shadow: var(--v2-shadow); }
.v2-mileage-filter > .semi-button-primary {
  height: 42px;
  margin-top: 18px;
  border-radius: 8px;
  padding: 0 24px;
  font-size: 12px;
  font-weight: 700;
  box-shadow: 0 7px 16px rgba(18,104,243,.16);
}
.v2-mileage-source-trigger.semi-button {
  height: 42px;
  border: 1px solid #d7e0ea;
  background: #fff;
  color: #56657a;
  box-shadow: none;
}
.v2-mileage-source-trigger.semi-button:hover,
.v2-mileage-source-trigger.semi-button[aria-expanded="true"] { border-color: #a8bad2; background: #f8fafc; }
.v2-mileage-source-switch.semi-switch {
  width: 32px;
  height: 18px;
  min-width: 32px;
  border: 0;
  background: transparent;
}
.v2-mileage-source-list article > p .semi-button {
  width: 28px;
  min-width: 28px;
  height: 28px;
  border: 1px solid #dce4ee;
  border-radius: 6px;
  background: #fff;
  color: #65758b;
  padding: 0;
}
.v2-mileage-ranges .semi-button {
  height: 34px;
  border: 0;
  border-radius: 6px;
  padding: 0 9px;
  font-size: 11px;
  font-weight: 650;
  box-shadow: none;
}
.v2-mileage-ranges .semi-button-light { background: transparent; color: #64748b; }
.v2-mileage-ranges .semi-button-solid { background: #fff; color: var(--v2-blue); box-shadow: 0 1px 4px rgba(20,44,78,.12); }
.v2-mileage-result-actions > .semi-button {
  height: 34px;
  border-radius: 8px;
  padding: 0 12px;
  font-size: 11px;
  font-weight: 650;
}
.v2-mileage-results > .semi-card-body > footer .semi-button { height: 30px; border-radius: 7px; font-size: 10px; }

@media (max-width: 900px) {
  .v2-page-heading { min-height: 58px; align-items: center; }
  .v2-page-heading-copy h3 { font-size: 22px; }
}

@media (max-width: 680px) {
  .v2-auth-card { padding: 0; }
  .v2-auth-form { padding: 30px 22px; }
  .v2-auth-form label .semi-input-wrapper,
  .v2-auth-form > .semi-button-primary { height: 46px; }
  .v2-page-heading { min-height: 48px; align-items: center; gap: 10px; padding: 2px 3px; }
  .v2-page-heading-copy { gap: 0; }
  .v2-page-heading-copy h3 { font-size: 18px; letter-spacing: -.025em; }
  .v2-page-heading-copy > .semi-typography { display: none; }
  .v2-page-heading-copy .semi-tag { max-width: 120px; }
  .v2-page-heading-aside { gap: 5px; padding: 0; }
  .v2-page-heading-aside > .semi-typography { display: none; }
  .v2-page-heading-aside > .semi-button { height: 34px; border-radius: 8px; padding: 0 10px; }
  .v2-mileage-page > .v2-page-heading { display: none; }
  .v2-mileage-filter > .semi-button-primary { width: 100%; margin-top: 0; }
  .v2-mileage-source-strategy { margin-top: 0; }
  .v2-mileage-source-trigger.semi-button { width: 100%; justify-content: center; }
  .v2-mileage-ranges .semi-button { height: 36px; padding: 0 3px; font-size: 10px; }
  .v2-mileage-result-actions > .semi-button { height: 32px; padding: 0 9px; font-size: 10px; }
}

/* Semi UI second migration: core business pages share one visual grammar. */
.v2-page-state > header > div { display: flex; flex-direction: column; gap: 3px; }
.v2-page-state > header .semi-spin { flex: 0 0 auto; }
.v2-inline-state .semi-empty { padding: 12px 0; }
.v2-inline-state .semi-empty-image { display: none; }
.v2-inline-state .semi-empty-title { color: var(--v2-muted); font-size: 12px; }
.v2-inline-state.is-error > .semi-button { height: 30px; margin-left: auto; border-radius: 7px; padding: 0 10px; color: #b42318; }

.v2-vehicle-search-card.semi-card {
  overflow: visible;
  border-color: rgba(218,226,237,.96);
  background: rgba(255,255,255,.98);
  padding: 0;
  box-shadow: 0 24px 64px rgba(25,45,74,.09);
}
.v2-vehicle-search-card > .semi-card-body { padding: 46px 48px; }
.v2-vehicle-search-card > .semi-card-body > h2 { margin: 0; color: #172033; font-size: 27px; letter-spacing: -.045em; }
.v2-vehicle-search-card > .semi-card-body > .semi-typography {
  display: block;
  max-width: 520px;
  margin: 12px auto 27px;
  font-size: 13px;
  line-height: 1.75;
}
.v2-vehicle-search-card form {
  height: 58px;
  gap: 8px;
  border: 1px solid #d9e2ed;
  border-radius: 12px;
  background: #f8fafc;
  padding: 6px;
  box-shadow: none;
}
.v2-vehicle-search-card form:focus-within { border-color: #86aff0; background: #fff; box-shadow: 0 0 0 4px rgba(18,104,243,.08); }
.v2-vehicle-search-card form .semi-input-wrapper {
  min-width: 0;
  height: 44px;
  flex: 1;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.v2-vehicle-search-card form .semi-input { font-size: 14px; }
.v2-vehicle-search-card form > .semi-button {
  height: 44px;
  flex: 0 0 auto;
  border-radius: 9px;
  padding: 0 19px;
  font-size: 13px;
  box-shadow: 0 7px 16px rgba(18,104,243,.17);
}
.v2-vehicle-search-card .v2-profile-sync-open.semi-button {
  height: 34px;
  margin-top: 17px;
  border: 0;
  background: transparent;
  color: var(--v2-blue);
  box-shadow: none;
}
.v2-identity-primary > .semi-tag.v2-online-label { display: inline-flex; height: 24px; align-items: center; border-radius: 999px; padding: 0 9px; }
.v2-identity-primary > .semi-button { width: 28px; min-width: 28px; height: 28px; border-radius: 7px; color: #78869a; }

:is(.v2-history-toolbar,.v2-alert-filter,.v2-access-filter-v3) > .semi-button {
  height: 38px;
  border-radius: 8px;
  padding: 0 16px;
  font-size: 12px;
  font-weight: 700;
}
:is(.v2-history-toolbar,.v2-alert-filter,.v2-access-filter-v3) > .semi-button-primary.semi-button-solid {
  box-shadow: 0 7px 16px rgba(18,104,243,.15);
}

.v2-history-metrics .v2-history-metrics-manage.semi-button {
  height: 30px;
  margin-left: auto;
  border-radius: 7px;
  color: var(--v2-blue);
  font-size: 10px;
}
.v2-history-table-card > .semi-card-body > header .semi-button,
.v2-alert-table-card > .semi-card-body > header .semi-button,
.v2-access-table-actions > .semi-button {
  height: 32px;
  border-radius: 7px;
  padding: 0 10px;
  font-size: 10px;
}
.v2-access-table-v3 > .semi-card-body > footer .semi-button,
.v2-alert-table-card > .semi-card-body > footer .semi-button,
.v2-history-table-card > .semi-card-body > footer .semi-button {
  height: 30px;
  border-radius: 7px;
  padding: 0 12px;
  font-size: 10px;
}

.v2-alert-tabs > .semi-button {
  height: 42px;
  border-radius: 0;
  padding: 0 7px;
  color: #667085;
  font-size: 12px;
  font-weight: 650;
}
.v2-alert-tabs > .semi-button.is-active { background: transparent; color: var(--v2-blue); }
.v2-alert-actions > .semi-button { min-width: 0; height: 34px; flex: 1; border-radius: 8px; font-size: 11px; }

.v2-track-query-header .v2-workspace-panel-actions > .semi-button { width: 30px; min-width: 30px; height: 30px; border-radius: 7px; padding: 0; }
.v2-track-presets > .semi-button { height: 30px; flex: 1; border-radius: 7px; font-size: 11px; }
.v2-track-query > .v2-track-query-button.semi-button { height: 40px; border-radius: 8px; font-size: 13px; }
.v2-track-rail-tabs > .semi-button { width: 100%; min-width: 0; height: 38px; border-radius: 0; padding: 0 8px; font-size: 10px; }
.v2-track-stage-tools > .semi-button {
  height: 38px;
  border: 1px solid rgba(215,224,235,.95);
  border-radius: 9px;
  background: rgba(255,255,255,.94);
  color: #5f6f84;
  box-shadow: 0 8px 24px rgba(26,42,63,.11);
  backdrop-filter: blur(12px);
}
.v2-track-stage-tools > .semi-button.is-active { border-color: #aac6f1; background: #edf4ff; color: var(--v2-blue); }
.v2-track-empty-state > .semi-card-body > .semi-button { height: 38px; border-radius: 8px; padding: 0 16px; }
.v2-track-dock-controls > .semi-button { width: 32px; min-width: 32px; height: 32px; border-radius: 8px; padding: 0; }
.v2-track-dock-controls > .semi-button.is-primary { width: 38px; min-width: 38px; height: 38px; box-shadow: 0 6px 14px rgba(18,104,243,.2); }

@media (max-width: 680px) {
  .v2-vehicle-search-card > .semi-card-body { padding: 30px 18px; }
  .v2-vehicle-search-card > .semi-card-body > h2 { font-size: 22px; }
  .v2-vehicle-search-card form { height: auto; flex-wrap: wrap; padding: 7px; }
  .v2-vehicle-search-card form .semi-input-wrapper { width: 100%; flex-basis: 100%; }
  .v2-vehicle-search-card form > .semi-button { width: 100%; justify-content: center; }
  :is(.v2-history-toolbar,.v2-alert-filter,.v2-access-filter-v3) > .semi-button { width: 100%; height: 42px; }
  .v2-track-stage-tools > .semi-button { width: 40px; min-width: 40px; height: 40px; padding: 0; }
  .v2-track-stage-tools > .semi-button .semi-button-content { display: inline-flex; font-size: 0; }
  .v2-track-stage-tools > .semi-button .semi-button-content > .semi-icon { font-size: 17px; }
}

/* Semi UI third migration: account administration and operations workspace. */
.v2-user-admin {
  display: flex;
  flex-direction: column;
}
.v2-user-admin > .v2-page-heading {
  width: 100%;
  max-width: 1480px;
  margin: 0 auto 18px;
}
.v2-user-admin-grid { width: 100%; }
.v2-user-editor form > footer .semi-button,
.v2-user-editor-empty > .semi-button {
  height: 38px;
  border-radius: 8px;
  padding: 0 17px;
  font-size: 12px;
  font-weight: 700;
  box-shadow: 0 7px 16px rgba(18,104,243,.16);
}
.v2-user-status .semi-switch {
  width: 32px;
  min-width: 32px;
  height: 18px;
  border: 0;
}
.v2-user-fields .semi-input-wrapper,
.v2-vehicle-permission-tools .semi-input-wrapper {
  width: 100%;
  height: 38px;
  border: 1px solid #dbe3ed;
  border-radius: 7px;
  background: #fff;
  box-shadow: none;
}
.v2-user-fields .semi-input-wrapper:hover,
.v2-vehicle-permission-tools .semi-input-wrapper:hover { border-color: #b9c8da; }
.v2-user-fields .semi-input-wrapper-focus,
.v2-vehicle-permission-tools .semi-input-wrapper-focus {
  border-color: #8ab4f7;
  box-shadow: 0 0 0 3px rgba(18,104,243,.07);
}
.v2-user-fields .semi-input-wrapper-disabled { background: #f5f7fa; }
.v2-user-fields .semi-input,
.v2-vehicle-permission-tools .semi-input {
  height: 36px;
  border: 0;
  padding: 0 10px;
  color: #273750;
  font-size: 12px;
}
.v2-menu-permissions .semi-checkbox {
  margin-top: 1px;
  flex: 0 0 auto;
}
.v2-menu-permissions .semi-checkbox-inner { border-radius: 4px; }
.v2-vehicle-permission-heading > .semi-button {
  height: 28px;
  border-radius: 6px;
  color: #7d899a;
  font-size: 10px;
}
.v2-bulk-vin > .semi-input-wrapper { min-width: 0; flex: 1; }
.v2-bulk-vin > .semi-button {
  height: 38px;
  flex: 0 0 auto;
  border-radius: 7px;
  padding: 0 12px;
  font-size: 10px;
}
.v2-assigned-vins > article {
  content-visibility: auto;
  contain-intrinsic-size: auto 106px;
}
.v2-assigned-vins article > header .semi-button {
  width: 24px;
  min-width: 24px;
  height: 24px;
  flex: 0 0 auto;
  border-radius: 6px;
  padding: 0;
  color: #99a4b3;
  font-size: 15px;
}
.v2-assigned-vins article > header .semi-button:hover { background: #eef2f7; color: var(--v2-red); }

.v2-ops-page > .v2-page-heading { margin-bottom: 2px; }
.v2-ops-page > .v2-page-heading .semi-button {
  height: 36px;
  border: 1px solid #d8e2ee;
  border-radius: 8px;
  background: #fff;
  color: #526176;
  padding: 0 13px;
  font-size: 11px;
}
.v2-ops-kpis {
  gap: 10px;
}
.v2-ops-kpi-card.semi-card {
  border-color: #dce4ee;
  box-shadow: 0 8px 28px rgba(31,53,80,.055);
}
.v2-ops-kpi-card > .semi-card-body { padding: 15px 16px !important; }
.v2-ops-kpis small { font-size: 10px; }
.v2-ops-kpis strong { margin: 7px 0 5px; font-size: 18px; letter-spacing: -.02em; }
.v2-ops-kpis span { font-size: 9px; }
.v2-ops-panel.semi-card { border-color: #dce4ee; box-shadow: 0 8px 28px rgba(31,53,80,.055); }
.v2-ops-links article { min-height: 52px; padding: 8px 15px; }
.v2-ops-links article strong { font-size: 10px; }
.v2-ops-links article p { font-size: 9px; }
.v2-ops-runtime dl div { min-height: 35px; font-size: 10px; }
.v2-ops-sources article { padding: 14px 16px; }
.v2-ops-sources article strong { font-size: 11px; }
.v2-ops-sources article b { font-size: 16px; }
.v2-ops-sources article p,
.v2-ops-sources article em { font-size: 9px; }

.v2-source-diagnostic.semi-card {
  border-color: #d6e1ed;
  box-shadow: 0 10px 30px rgba(31,53,80,.065);
}
.v2-source-search > .semi-button {
  height: 36px;
  border-radius: 8px;
  padding: 0 13px;
  font-size: 11px;
}
.v2-source-search { padding: 13px 16px; }
.v2-source-search > label { height: 38px; border-radius: 8px; padding: 0 12px; }
.v2-source-search input { font-size: 12px; }
.v2-source-search > .semi-button {
  border-color: var(--v2-blue);
  background: var(--v2-blue);
  color: #fff;
  box-shadow: 0 7px 16px rgba(18,104,243,.15);
}
.v2-source-candidates { top: 54px; right: 132px; left: 16px; }
.v2-source-candidates footer .semi-button {
  height: 27px;
  border-radius: 6px;
  padding: 0 9px;
  font-size: 9px;
}
.v2-source-policy-cell > .semi-button {
  grid-column: 1 / -1;
  height: 29px;
  border-radius: 6px;
  font-size: 9px;
}

@media (max-width: 900px) {
  .v2-user-admin > .v2-page-heading { margin-bottom: 12px; }
  .v2-ops-kpis { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .v2-ops-grid { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
  .v2-user-admin > .v2-page-heading { margin-bottom: 8px; }
  .v2-user-admin > .v2-page-heading .semi-tag { display: none; }
  .v2-user-editor-title { align-items: center; }
  .v2-user-fields .semi-input-wrapper,
  .v2-vehicle-permission-tools .semi-input-wrapper,
  .v2-bulk-vin > .semi-button { height: 42px; }
  .v2-user-fields .semi-input,
  .v2-vehicle-permission-tools .semi-input { height: 40px; font-size: 13px; }
  .v2-user-editor form > footer .semi-button { width: 100%; height: 44px; justify-content: center; }
  .v2-ops-page { gap: 8px; padding: 8px 8px 18px; }
  .v2-ops-page > .v2-page-heading .semi-tag { display: none; }
  .v2-ops-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .v2-ops-kpi-card > .semi-card-body { min-height: 96px; padding: 12px !important; }
  .v2-ops-sources > .semi-card-body > div { display: flex; overflow-x: auto; scroll-snap-type: x proximity; }
  .v2-ops-sources article { min-width: min(82vw,320px); flex: 0 0 min(82vw,320px); scroll-snap-align: start; }
  .v2-source-search > .semi-button { width: 100%; height: 42px; justify-content: center; }
  .v2-source-candidates { top: 64px; right: 14px; left: 14px; }
}

/* Semi UI fourth migration: reconciliation and vehicle profile maintenance. */
.v2-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  clip-path: inset(50%);
  white-space: nowrap;
}
.v2-reconcile-heading > .semi-button {
  height: 36px;
  flex: 0 0 auto;
  border: 1px solid #c5d4e5;
  border-radius: 8px;
  background: #fff;
  color: #355272;
  padding: 0 13px;
  font-size: 11px;
}
.v2-reconcile-toolbar > .semi-input-wrapper,
.v2-reconcile-toolbar > .semi-select {
  width: 100%;
  min-width: 0;
  height: 38px;
  border: 1px solid #d7e0eb;
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}
.v2-reconcile-toolbar > .semi-input-wrapper:hover,
.v2-reconcile-toolbar > .semi-select:hover { border-color: #b8c7da; }
.v2-reconcile-toolbar > .semi-input-wrapper-focus,
.v2-reconcile-toolbar > .semi-select-focus {
  border-color: #8ab4f7;
  box-shadow: 0 0 0 3px rgba(18,104,243,.07);
}
.v2-reconcile-toolbar .semi-input,
.v2-reconcile-toolbar .semi-select-selection-text {
  color: #33465c;
  font-size: 11px;
}
.v2-reconcile-search.semi-input-wrapper { padding: 0 11px; }
.v2-reconcile-search.semi-input-wrapper .semi-input { padding: 0 0 0 7px; }
.v2-reconcile-pagination .semi-button {
  height: 30px;
  border: 1px solid #d5dfeb;
  border-radius: 7px;
  background: #fff;
  color: #405870;
  padding: 0 11px;
  font-size: 11px;
}
.v2-reconcile-detail > .semi-card-body > header > .semi-button {
  width: 30px;
  min-width: 30px;
  height: 30px;
  flex: 0 0 auto;
  border-radius: 7px;
  padding: 0;
  color: #6f8093;
}
.v2-reconcile-review > .semi-card-body > label > .semi-radioGroup,
.v2-reconcile-review > .semi-card-body > label > .semi-input-textarea-wrapper {
  width: 100%;
  border: 1px solid #d5dfeb;
  border-radius: 7px;
  background: #fff;
  box-shadow: none;
}
.v2-reconcile-review > .semi-card-body > label > .semi-radioGroup {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 4px;
  border: 0;
}
.v2-reconcile-review .semi-radio-addon-buttonRadio {
  min-width: 0;
  height: 32px;
  border-radius: 6px;
  padding: 0 7px;
  font-size: 9px;
}
.v2-reconcile-review .semi-input-textarea {
  color: #30465d;
  font-size: 11px;
}
.v2-reconcile-review .semi-input-textarea-counter {
  padding: 0 8px 5px;
  color: #8a97a8;
  font-size: 9px;
}
.v2-reconcile-review > .semi-card-body > .semi-button {
  height: 34px;
  margin: 3px 11px 0;
  border-radius: 7px;
  padding: 0 14px;
  font-size: 11px;
  box-shadow: 0 7px 16px rgba(18,104,243,.15);
}

.v2-profile-sync-panel {
  border-color: #d9e3ef;
  box-shadow: 0 16px 44px rgba(25,45,74,.09);
}
.v2-profile-sync-panel > header > .semi-button {
  height: 30px;
  border-radius: 7px;
  padding: 0 10px;
  color: #6e7e92;
  font-size: 10px;
}
.v2-profile-sync-fields .semi-input-wrapper,
.v2-profile-sync-fields .semi-select {
  width: 100%;
  min-width: 0;
  height: 36px;
  border: 1px solid #dbe3ed;
  border-radius: 7px;
  background: #fff;
  box-shadow: none;
}
.v2-profile-sync-fields .semi-input-wrapper:hover,
.v2-profile-sync-fields .semi-select:hover { border-color: #b9c8da; }
.v2-profile-sync-fields .semi-input-wrapper-focus,
.v2-profile-sync-fields .semi-select-focus {
  border-color: #8ab4f7;
  box-shadow: 0 0 0 3px rgba(18,104,243,.07);
}
.v2-profile-sync-fields .semi-input,
.v2-profile-sync-fields .semi-select-selection-text {
  height: 34px;
  color: #273750;
  font-size: 11px;
}
.v2-profile-sync-fields input[type="file"] {
  height: 36px;
  border-color: #dbe3ed;
  border-radius: 7px;
  padding: 7px 8px;
  font-size: 9px;
}
.v2-profile-sync-panel > footer .semi-button {
  height: 34px;
  border-radius: 7px;
  padding: 0 14px;
  font-size: 10px;
  font-weight: 650;
}
.v2-profile-sync-panel > footer .semi-button-primary.semi-button-solid {
  box-shadow: 0 7px 16px rgba(18,104,243,.15);
}

.v2-profile-form .semi-input-wrapper,
.v2-profile-form .semi-select {
  width: 100%;
  min-width: 0;
  height: 31px;
  border: 1px solid var(--v2-border);
  border-radius: 6px;
  background: #fff;
  box-shadow: none;
}
.v2-profile-form .semi-input-wrapper-focus,
.v2-profile-form .semi-select-focus {
  border-color: #8ab4f7;
  box-shadow: 0 0 0 3px rgba(18,104,243,.06);
}
.v2-profile-form .semi-input,
.v2-profile-form .semi-select-selection-text {
  height: 29px;
  color: var(--v2-text);
  font-size: 9px;
}
.v2-profile-form footer .semi-button {
  height: 29px;
  border-radius: 6px;
  padding: 0 11px;
  font-size: 9px;
}

@media (max-width: 680px) {
  .v2-reconcile-heading { align-items: flex-start; flex-direction: column; }
  .v2-reconcile-heading > .semi-button { width: 100%; height: 40px; justify-content: center; }
  .v2-reconcile-toolbar { grid-template-columns: 1fr; }
  .v2-reconcile-toolbar > .semi-input-wrapper,
  .v2-reconcile-toolbar > .semi-select { height: 42px; }
  .v2-reconcile-toolbar .semi-input,
  .v2-reconcile-toolbar .semi-select-selection-text { font-size: 12px; }
  .v2-reconcile-pagination { align-items: flex-start; flex-direction: column; gap: 7px; }
  .v2-reconcile-pagination div { width: 100%; }
  .v2-reconcile-pagination .semi-button { height: 36px; flex: 1; }
  .v2-reconcile-detail.semi-card { width: 100%; }
  .v2-reconcile-review > .semi-card-body > label > .semi-radioGroup { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .v2-reconcile-review .semi-radio-addon-buttonRadio { height: 36px; font-size: 10px; }
  .v2-reconcile-review > .semi-card-body > .semi-button { width: calc(100% - 22px); height: 40px; justify-content: center; }
  .v2-profile-sync-fields .semi-input-wrapper,
  .v2-profile-sync-fields .semi-select,
  .v2-profile-sync-fields input[type="file"] { height: 42px; }
  .v2-profile-sync-fields .semi-input,
  .v2-profile-sync-fields .semi-select-selection-text { height: 40px; font-size: 12px; }
  .v2-profile-sync-panel > footer .semi-button { height: 40px; flex: 1; }
}

/* Semi UI fifth migration: history, alerts and shared source evidence. */
.v2-history-toolbar label > .semi-input-wrapper,
.v2-history-toolbar label > .semi-select,
.v2-alert-filter label > .semi-input-wrapper,
.v2-alert-filter label > .semi-select {
  width: 100%;
  min-width: 0;
  height: 38px;
  border: 1px solid #d7e0eb;
  border-radius: 8px;
  background: #fff;
  padding: 0;
  box-shadow: none;
}
.v2-history-toolbar label > .semi-input-wrapper:hover,
.v2-history-toolbar label > .semi-select:hover,
.v2-alert-filter label > .semi-input-wrapper:hover,
.v2-alert-filter label > .semi-select:hover { border-color: #b8c7da; }
.v2-history-toolbar label > .semi-input-wrapper-focus,
.v2-history-toolbar label > .semi-select-focus,
.v2-alert-filter label > .semi-input-wrapper-focus,
.v2-alert-filter label > .semi-select-focus {
  border-color: #8ab4f7;
  box-shadow: 0 0 0 3px rgba(18,104,243,.07);
}
.v2-history-toolbar .semi-input,
.v2-history-toolbar .semi-select-selection-text,
.v2-alert-filter .semi-input,
.v2-alert-filter .semi-select-selection-text {
  height: 36px;
  color: #33465c;
  font-size: 12px;
}
.v2-history-vehicles > .semi-input-wrapper,
.v2-alert-filter label:first-child > .semi-input-wrapper { padding: 0 10px; }
.v2-history-vehicles > .semi-input-wrapper .semi-input,
.v2-alert-filter label:first-child > .semi-input-wrapper .semi-input { padding-left: 7px; }

.v2-history-range > div { height: 38px; }
.v2-history-range > div > .semi-input-wrapper {
  width: 100%;
  min-width: 0;
  height: 36px;
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0;
  box-shadow: none;
}
.v2-history-range > div > .semi-input-wrapper .semi-input {
  width: 100%;
  height: 36px;
  border: 0;
  padding: 0 8px;
  font-size: 11px;
}
.v2-history-table-card > .semi-card-body > header .semi-select,
.v2-history-table-card > .semi-card-body > footer .semi-select,
.v2-alert-table-card > .semi-card-body > footer .semi-select {
  min-width: 92px;
  height: 30px;
  border: 1px solid #d5dfeb;
  border-radius: 7px;
  background: #fff;
  box-shadow: none;
}
.v2-history-table-card > .semi-card-body > header .semi-select-selection-text,
.v2-history-table-card > .semi-card-body > footer .semi-select-selection-text,
.v2-alert-table-card > .semi-card-body > footer .semi-select-selection-text {
  color: #405870;
  font-size: 10px;
}


.v2-alert-inspector .semi-input-textarea-wrapper {
  width: 100%;
  min-height: 64px;
  border: 1px solid #d7e0eb;
  border-radius: 7px;
  background: #fff;
  box-shadow: none;
}
.v2-alert-inspector .semi-input-textarea-wrapper:hover { border-color: #b8c7da; }
.v2-alert-inspector .semi-input-textarea-wrapper-focus {
  border-color: #8ab4f7;
  box-shadow: 0 0 0 3px rgba(18,104,243,.07);
}
.v2-alert-inspector .semi-input-textarea {
  min-height: 44px;
  color: #405168;
  font-size: 11px;
  line-height: 1.55;
}
.v2-alert-inspector .semi-input-textarea-counter {
  padding: 0 8px 5px;
  color: #8d99aa;
  font-size: 9px;
}

.v2-source-evidence-trigger > .semi-button {
  height: 32px;
  flex: 0 0 auto;
  border-radius: 7px;
  padding: 0 11px;
  color: var(--v2-blue);
  font-size: 9px;
  font-weight: 700;
}
.v2-source-evidence-toolbar label > .semi-input-wrapper {
  width: 144px;
  height: 32px;
  border: 1px solid #d8e2ee;
  border-radius: 7px;
  background: #fff;
  box-shadow: none;
}
.v2-source-evidence-toolbar label > .semi-input-wrapper-focus {
  border-color: #8ab4f7;
  box-shadow: 0 0 0 3px rgba(18,104,243,.07);
}
.v2-source-evidence-toolbar label .semi-input {
  height: 30px;
  border: 0;
  padding: 0 9px;
  color: #344257;
  font-size: 10px;
}
.v2-source-evidence-state > .semi-button {
  height: 28px;
  border-radius: 6px;
  padding: 0 9px;
  font-size: 9px;
}

@media (max-width: 680px) {
  .v2-history-toolbar label > .semi-input-wrapper,
  .v2-history-toolbar label > .semi-select,
  .v2-alert-filter label > .semi-input-wrapper,
  .v2-alert-filter label > .semi-select,
  .v2-history-range > div { height: 42px; }
  .v2-history-toolbar .semi-input,
  .v2-history-toolbar .semi-select-selection-text,
  .v2-alert-filter .semi-input,
  .v2-alert-filter .semi-select-selection-text,
  .v2-history-range > div > .semi-input-wrapper,
  .v2-history-range > div > .semi-input-wrapper .semi-input { height: 40px; font-size: 12px; }
  .v2-alert-inspector .semi-input-textarea { font-size: 12px; }
  .v2-source-evidence-trigger > .semi-button { height: 36px; font-size: 10px; }
  .v2-source-evidence-toolbar label { width: 100%; }
  .v2-source-evidence-toolbar label > .semi-input-wrapper { width: 100%; height: 38px; }
  .v2-source-evidence-toolbar label .semi-input { height: 36px; font-size: 11px; }
}

/* Semi UI sixth migration: alert rule authoring and notification operations. */
.v2-alert-rules {
  grid-template-columns: minmax(280px,320px) minmax(620px,1fr);
  gap: 10px;
}
.v2-alert-rule-list,
.v2-alert-rule-editor,
.v2-alert-notifications {
  border-color: #dbe3ed;
  box-shadow: 0 10px 30px rgba(31,53,80,.06);
}
.v2-alert-rule-list > header,
.v2-alert-rule-editor > header {
  min-height: 52px;
  padding: 0 15px;
}
.v2-alert-rule-list > header strong,
.v2-alert-rule-editor > header strong {
  color: #26364c;
  font-size: 13px;
}
.v2-alert-rule-list > header > .semi-button,
.v2-alert-rule-editor > header > .semi-button {
  height: 32px;
  border-radius: 7px;
  padding: 0 11px;
  color: var(--v2-blue);
  font-size: 10px;
  font-weight: 650;
}
.v2-alert-rule-list > button {
  min-height: 66px;
  padding: 10px 14px;
  content-visibility: auto;
  contain-intrinsic-size: auto 66px;
}
.v2-alert-rule-list > button strong { color: #34455c; font-size: 11px; }
.v2-alert-rule-list > button small { font-size: 9px; }
.v2-alert-rule-list > button em { font-size: 9px; }

.v2-alert-rule-editor > header div { gap: 4px; }
.v2-alert-rule-editor > header span { font-size: 10px; }
.v2-alert-rule-templates {
  grid-template-columns: 180px minmax(0,1fr);
  gap: 16px;
  background: linear-gradient(135deg,#f8fbff 0%,#f3f7fc 100%);
  padding: 14px 16px;
}
.v2-alert-rule-templates > div strong { font-size: 12px; }
.v2-alert-rule-templates > div span { font-size: 9px; }
.v2-alert-rule-templates button {
  min-height: 58px;
  border-color: #d8e3f0;
  border-radius: 9px;
  padding: 10px 12px;
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.v2-alert-rule-templates button:hover {
  border-color: #9bbcf0;
  box-shadow: 0 7px 18px rgba(37,99,235,.09);
  transform: translateY(-1px);
}
.v2-alert-rule-templates button b { font-size: 11px; }
.v2-alert-rule-templates button small { font-size: 9px; }

.v2-rule-form-grid {
  gap: 13px 16px;
  padding: 18px 16px 20px;
}
.v2-rule-form-grid label {
  gap: 7px;
  color: #5d6d81;
  font-size: 10px;
  font-weight: 650;
}
.v2-rule-form-grid label > .semi-input-wrapper,
.v2-rule-form-grid label > .semi-select,
.v2-rule-form-grid label > .semi-input-textarea-wrapper {
  width: 100%;
  min-width: 0;
  border: 1px solid #d7e0eb;
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}
.v2-rule-form-grid label > .semi-input-wrapper,
.v2-rule-form-grid label > .semi-select { height: 38px; }
.v2-rule-form-grid label > .semi-input-wrapper:hover,
.v2-rule-form-grid label > .semi-select:hover,
.v2-rule-form-grid label > .semi-input-textarea-wrapper:hover { border-color: #b8c7da; }
.v2-rule-form-grid label > .semi-input-wrapper-focus,
.v2-rule-form-grid label > .semi-select-focus,
.v2-rule-form-grid label > .semi-input-textarea-wrapper-focus {
  border-color: #8ab4f7;
  box-shadow: 0 0 0 3px rgba(18,104,243,.07);
}
.v2-rule-form-grid .semi-input,
.v2-rule-form-grid .semi-select-selection-text {
  height: 36px;
  border: 0;
  padding: 0 11px;
  color: #33465c;
  font-size: 11px;
  font-weight: 400;
}
.v2-rule-form-grid .semi-input-textarea {
  min-height: 68px;
  border: 0;
  padding: 9px 11px;
  color: #33465c;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.55;
}
.v2-rule-form-grid .semi-input-textarea-counter {
  padding: 0 9px 6px;
  color: #8d99aa;
  font-size: 9px;
}
.v2-rule-form-grid .semi-input-wrapper-disabled,
.v2-rule-form-grid .semi-select-disabled { background: #f5f7fa; }

.v2-alert-rule-editor > footer {
  min-height: 58px;
  padding: 10px 16px;
}
.v2-alert-rule-editor > footer b { color: #34455c; font-size: 10px; }
.v2-alert-rule-editor > footer span { font-size: 9px; }
.v2-alert-rule-editor > footer > .semi-button {
  height: 38px;
  flex: 0 0 auto;
  border-radius: 8px;
  padding: 0 18px;
  font-size: 11px;
  font-weight: 700;
  box-shadow: 0 7px 16px rgba(18,104,243,.15);
}

.v2-alert-notifications > div { max-height: calc(100% - 134px); }
.v2-alert-notifications article {
  min-height: 72px;
  gap: 12px;
  padding: 11px 16px;
  content-visibility: auto;
  contain-intrinsic-size: auto 72px;
}
.v2-alert-notifications article strong { color: #34455c; font-size: 12px; }
.v2-alert-notifications article p { margin: 5px 0; font-size: 10px; line-height: 1.55; }
.v2-alert-notifications article span { font-size: 9px; }
.v2-alert-notifications article > .semi-button {
  height: 30px;
  border-radius: 7px;
  padding: 0 10px;
  color: var(--v2-blue);
  font-size: 9px;
}
.v2-alert-notifications > footer {
  min-height: 48px;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px 18px;
  padding: 10px 16px;
  font-size: 9px;
}

@media (max-width: 1100px) {
  .v2-alert-rules { grid-template-columns: minmax(250px,290px) minmax(540px,1fr); }
}

@media (max-width: 900px) {
  .v2-alert-rules { grid-template-columns: 1fr; overflow: auto; }
  .v2-alert-rule-list { max-height: 300px; }
  .v2-alert-rule-editor { overflow: visible; }
}

@media (max-width: 680px) {
  .v2-alert-rule-list > header,
  .v2-alert-rule-editor > header { min-height: 56px; padding: 8px 12px; }
  .v2-alert-rule-list > header > .semi-button,
  .v2-alert-rule-editor > header > .semi-button { height: 36px; }
  .v2-alert-rule-list { max-height: 252px; }
  .v2-alert-rule-templates { grid-template-columns: 1fr; padding: 12px; }
  .v2-alert-rule-templates nav { display: flex; overflow-x: auto; scroll-snap-type: x proximity; }
  .v2-alert-rule-templates button { min-width: min(78vw,300px); flex: 0 0 min(78vw,300px); scroll-snap-align: start; }
  .v2-rule-form-grid { gap: 12px; padding: 14px 12px 16px; }
  .v2-rule-form-grid label > .semi-input-wrapper,
  .v2-rule-form-grid label > .semi-select { height: 42px; }
  .v2-rule-form-grid .semi-input,
  .v2-rule-form-grid .semi-select-selection-text { height: 40px; font-size: 12px; }
  .v2-rule-form-grid .semi-input-textarea { font-size: 12px; }
  .v2-alert-rule-editor > footer { align-items: stretch; flex-direction: column; padding: 12px; }
  .v2-alert-rule-editor > footer > .semi-button { width: 100%; height: 42px; justify-content: center; }
  .v2-alert-notifications article { grid-template-columns: 8px minmax(0,1fr); padding: 11px 12px; }
  .v2-alert-notifications article > .semi-button { grid-column: 2; justify-self: start; }
  .v2-alert-notifications > footer { align-items: flex-start; flex-direction: column; gap: 6px; }
}

/* Semi UI seventh migration: access management and source diagnostics. */
.v2-access-filter-v3 label > .semi-input-wrapper,
.v2-access-filter-v3 label > .semi-select {
  width: 100%;
  min-width: 0;
  height: 38px;
  border: 1px solid #d7e0eb;
  border-radius: 8px;
  background: #fff;
  padding: 0;
  box-shadow: none;
}
.v2-access-filter-v3 label > .semi-input-wrapper:hover,
.v2-access-filter-v3 label > .semi-select:hover { border-color: #b8c7da; }
.v2-access-filter-v3 label > .semi-input-wrapper-focus,
.v2-access-filter-v3 label > .semi-select-focus {
  border-color: #8ab4f7;
  box-shadow: 0 0 0 3px rgba(18,104,243,.07);
}
.v2-access-filter-v3 .is-search > .semi-input-wrapper { padding: 0 10px; }
.v2-access-filter-v3 .is-search > .semi-input-wrapper .semi-input { padding-left: 7px; }
.v2-access-filter-v3 .semi-input,
.v2-access-filter-v3 .semi-select-selection-text {
  height: 36px;
  color: #35475d;
  font-size: 12px;
}
.v2-access-table-v3 > .semi-card-body > footer .semi-select {
  min-width: 100px;
  height: 30px;
  border: 1px solid #d5dfeb;
  border-radius: 7px;
  background: #fff;
  box-shadow: none;
}
.v2-access-table-v3 > .semi-card-body > footer .semi-select-selection-text {
  color: #405870;
  font-size: 10px;
}

.v2-access-settings fieldset label > .semi-input-wrapper {
  width: 100%;
  min-width: 0;
  height: 36px;
  border: 1px solid #d7e0eb;
  border-radius: 7px;
  background: #fff;
  box-shadow: none;
}
.v2-access-settings fieldset label > .semi-input-wrapper-focus {
  border-color: #8ab4f7;
  box-shadow: 0 0 0 3px rgba(18,104,243,.07);
}
.v2-access-settings fieldset label .semi-input {
  height: 34px;
  color: #35475d;
  font-size: 11px;
}
.v2-access-settings fieldset > .semi-button {
  height: 36px;
  align-self: end;
  border-radius: 7px;
  padding: 0 13px;
  font-size: 10px;
  box-shadow: 0 7px 16px rgba(18,104,243,.15);
}

.v2-source-search > .semi-input-wrapper {
  min-width: 280px;
  height: 38px;
  flex: 1;
  border: 1px solid #d4deea;
  border-radius: 8px;
  background: #fff;
  padding: 0 11px;
  box-shadow: none;
}
.v2-source-search > .semi-input-wrapper:hover { border-color: #b8c7da; }
.v2-source-search > .semi-input-wrapper-focus {
  border-color: #8ab4f7;
  box-shadow: 0 0 0 3px rgba(18,104,243,.07);
}
.v2-source-search > .semi-input-wrapper .semi-input {
  height: 36px;
  border: 0;
  padding: 0 0 0 7px;
  color: #35475d;
  font-size: 12px;
}
.v2-source-policy-cell > .semi-checkbox {
  align-self: center;
  margin: 0;
  color: #4e6076;
  font-size: 9px;
}
.v2-source-policy-cell > .semi-checkbox .semi-checkbox-inner { border-radius: 4px; }
.v2-source-policy-cell > .semi-input-wrapper {
  width: 100%;
  min-width: 0;
  height: 28px;
  border: 1px solid #ccd7e5;
  border-radius: 6px;
  background: #fff;
  box-shadow: none;
}
.v2-source-policy-cell > .semi-input-wrapper-focus {
  border-color: #8ab4f7;
  box-shadow: 0 0 0 3px rgba(18,104,243,.06);
}
.v2-source-policy-cell > .semi-input-wrapper .semi-input {
  height: 26px;
  border: 0;
  padding: 0 7px;
  color: #405168;
  font-size: 9px;
}
.v2-source-policy-cell > .semi-input-wrapper.v2-source-provider-input,
.v2-source-policy-cell > .semi-input-wrapper.v2-source-provider-evidence-input,
.v2-source-policy-cell > .semi-input-wrapper.v2-source-policy-remark-input {
  grid-column: 1 / -1;
}
.v2-source-policy-cell > .semi-button { margin-top: 1px; }

@media (max-width: 680px) {
  .v2-access-filter-v3 label > .semi-input-wrapper,
  .v2-access-filter-v3 label > .semi-select { height: 42px; }
  .v2-access-filter-v3 .semi-input,
  .v2-access-filter-v3 .semi-select-selection-text { height: 40px; font-size: 13px; }
  .v2-access-settings fieldset label > .semi-input-wrapper { height: 42px; }
  .v2-access-settings fieldset label .semi-input { height: 40px; font-size: 12px; }
  .v2-access-settings fieldset > .semi-button { width: 100%; height: 42px; justify-content: center; }
  .v2-source-search > .semi-input-wrapper { width: 100%; min-width: 0; height: 42px; }
  .v2-source-search > .semi-input-wrapper .semi-input { height: 40px; font-size: 13px; }
}

/* Semi UI eighth migration: track query and playback controls. */
.v2-track-vehicle-picker {
  display: flex;
  height: 40px;
  gap: 4px;
  border: 0;
  background: transparent;
  padding: 0;
}
.v2-track-vehicle-picker:focus-within { border: 0; box-shadow: none; }
.v2-track-vehicle-picker > .semi-input-wrapper {
  width: 100%;
  min-width: 0;
  height: 40px;
  flex: 1;
  border: 1px solid #d7e0eb;
  border-radius: 8px;
  background: #fff;
  padding: 0 10px;
  box-shadow: none;
}
.v2-track-vehicle-picker > .semi-input-wrapper:hover { border-color: #b8c7da; }
.v2-track-vehicle-picker > .semi-input-wrapper-focus {
  border-color: #8ab4f7;
  box-shadow: 0 0 0 3px rgba(18,104,243,.07);
}
.v2-track-vehicle-picker > .semi-input-wrapper .semi-input {
  height: 38px;
  border: 0;
  padding: 0 0 0 7px;
  color: #334155;
  font-size: 11px;
}
.v2-track-vehicle-picker > .v2-track-vehicle-clear.semi-button {
  width: 30px;
  min-width: 30px;
  height: 40px;
  flex: 0 0 30px;
  border: 1px solid #d7e0eb;
  border-radius: 7px;
  background: #fff;
  padding: 0;
}
.v2-track-date-grid label > .semi-input-wrapper,
.v2-track-query > label > .semi-select {
  width: 100%;
  min-width: 0;
  height: 39px;
  border: 1px solid #d7e0eb;
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}
.v2-track-date-grid label > .semi-input-wrapper:hover,
.v2-track-query > label > .semi-select:hover { border-color: #b8c7da; }
.v2-track-date-grid label > .semi-input-wrapper-focus,
.v2-track-query > label > .semi-select-focus {
  border-color: #8ab4f7;
  box-shadow: 0 0 0 3px rgba(18,104,243,.07);
}
.v2-track-date-grid .semi-input,
.v2-track-query > label > .semi-select .semi-select-selection-text {
  height: 37px;
  color: #405168;
  font-size: 11px;
}
.v2-track-query > label > .semi-select { margin-bottom: 9px; }

.v2-track-dock-controls label > .semi-select {
  min-width: 66px;
  height: 28px;
  border: 0;
  border-radius: 14px;
  background: transparent;
  box-shadow: none;
}
.v2-track-dock-controls label > .semi-select .semi-select-selection-text {
  color: #3f4e63;
  font-size: 10px;
  font-weight: 700;
}

@media (max-width: 700px) {
  .v2-track-vehicle-picker,
  .v2-track-vehicle-picker > .semi-input-wrapper,
  .v2-track-date-grid label > .semi-input-wrapper,
  .v2-track-query > label > .semi-select { height: 42px; }
  .v2-track-vehicle-picker > .semi-input-wrapper .semi-input,
  .v2-track-date-grid .semi-input,
  .v2-track-query > label > .semi-select .semi-select-selection-text { height: 40px; font-size: 16px; }
  .v2-track-vehicle-picker > button { height: 42px; }
  .v2-track-dock-controls label > .semi-select { min-width: 62px; }
}

/* Semi UI ninth migration: monitor filters, batch search and list pagination. */
.v2-search-field {
  position: relative;
  height: 36px;
  min-width: 0;
  border: 0;
  border-radius: 8px;
  padding: 0;
  box-shadow: none;
}
.v2-search-field:focus-within { border: 0; box-shadow: none; }
.v2-search-field > .semi-input-wrapper {
  width: 100%;
  min-width: 0;
  height: 36px;
  flex: 1;
  border: 1px solid #d7e0eb;
  border-radius: 8px;
  background: #fff;
  padding: 0 5px 0 10px;
  box-shadow: none;
}
.v2-search-field > .semi-input-wrapper:hover { border-color: #b8c7da; }
.v2-search-field > .semi-input-wrapper-focus {
  border-color: #8ab4f7;
  box-shadow: 0 0 0 3px rgba(18,104,243,.07);
}
.v2-search-field.is-batch > .semi-input-wrapper {
  border-color: #9fc0f7;
  background: #fbfdff;
}
.v2-search-field > .semi-input-wrapper .semi-input {
  height: 34px;
  border: 0;
  padding-left: 7px;
  color: #334155;
  font-size: 12px;
}
.v2-search-field .v2-search-batch-action.semi-button {
  height: 26px;
  margin-left: 3px;
  border-left: 1px solid #dce4ef;
  border-radius: 0 6px 6px 0;
  padding: 0 7px 0 10px;
  color: var(--v2-blue);
  font-size: 10px;
  font-weight: 700;
}
.v2-search-field > .v2-search-batch-count { margin-left: 1px; }

.v2-filterbar > .semi-card-body > .semi-select {
  width: 100%;
  min-width: 0;
  height: 36px;
  border: 1px solid #d7e0eb;
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}
.v2-filterbar > .semi-card-body > .semi-select:hover { border-color: #b8c7da; }
.v2-filterbar > .semi-card-body > .semi-select-focus {
  border-color: #8ab4f7;
  box-shadow: 0 0 0 3px rgba(18,104,243,.07);
}
.v2-filterbar > .semi-card-body > .semi-select .semi-select-selection-text {
  height: 34px;
  color: #4d5c70;
  font-size: 12px;
}
.v2-filterbar > .semi-card-body > .v2-filter-reset.semi-button,
.v2-filterbar > .semi-card-body > .v2-monitor-mobile-entry.semi-button {
  height: 36px;
  border-radius: 8px;
  font-size: 11px;
  font-weight: 650;
}
.v2-filterbar > .semi-card-body > .v2-filter-reset.semi-button { border-color: #d7e0eb; color: #59677c; }
.v2-monitor-mode.semi-button-group {
  display: grid;
  height: 36px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid #d7e0eb;
  border-radius: 8px;
  background: #f5f7fa;
  padding: 2px;
}
.v2-monitor-mode.semi-button-group .semi-button {
  width: 100%;
  min-width: 0;
  height: 30px;
  border: 0;
  border-radius: 6px;
  padding: 0 10px;
  font-size: 11px;
  font-weight: 650;
  box-shadow: none;
}
.v2-monitor-mode.semi-button-group > .semi-button-group-line { display: none; }
.v2-monitor-mode.semi-button-group .semi-button-primary {
  background: #fff;
  color: var(--v2-blue);
  box-shadow: 0 2px 7px rgba(21,32,51,.1);
}
.v2-monitor-mode.semi-button-group .semi-button.is-active { position: relative; z-index: 1; }

.v2-batch-search-modal.semi-modal {
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.8);
  border-radius: 16px;
  box-shadow: 0 28px 80px rgba(13,33,62,.25);
}
.v2-batch-search-modal .semi-modal-header { margin: 0; border-bottom: 1px solid #edf1f6; padding: 18px 20px 15px; }
.v2-batch-search-modal .semi-modal-body { margin: 0; padding: 18px 20px; }
.v2-batch-search-modal .semi-modal-footer { margin: 0; border-top: 1px solid #edf1f6; padding: 13px 20px; }
.v2-batch-search-title { display: grid; gap: 4px; }
.v2-batch-search-title strong { color: #17253a; font-size: 17px; }
.v2-batch-search-title span { color: #728096; font-size: 12px; font-weight: 400; }
.v2-batch-search-dialog {
  width: auto;
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0;
  box-shadow: none;
}
.v2-batch-search-dialog > label { margin-bottom: 9px; }
.v2-batch-search-dialog .semi-input-textarea-wrapper {
  width: 100%;
  border: 1px solid #ccd8e7;
  border-radius: 9px;
  background: #fbfcfe;
  box-shadow: none;
}
.v2-batch-search-dialog .semi-input-textarea-wrapper-focus {
  border-color: #4386df;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(45,116,210,.09);
}
.v2-batch-search-dialog .semi-input-textarea {
  min-height: 210px;
  padding: 12px 14px;
  color: #1d2a3d;
  font: 13px/1.75 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}
.v2-batch-search-actions { display: flex; justify-content: flex-end; gap: 8px; }
.v2-batch-search-actions .semi-button { min-width: 94px; height: 36px; border-radius: 8px; }

.v2-monitor-table-panel > .semi-card-body > footer > div { align-items: center; }
.v2-monitor-table-panel > .semi-card-body > footer .semi-button {
  height: 30px;
  border-radius: 7px;
  padding: 0 10px;
  font-size: 10px;
}
.v2-monitor-table-panel > .semi-card-body > footer .semi-select {
  width: 96px;
  height: 30px;
  border: 1px solid #d7e0eb;
  border-radius: 7px;
  background: #fff;
}
.v2-monitor-table-panel > .semi-card-body > footer .semi-select-selection-text { height: 28px; font-size: 10px; }

@media (max-width: 760px) {
  .v2-search-field,
  .v2-search-field > .semi-input-wrapper,
  .v2-filterbar > .semi-card-body > .semi-select,
  .v2-filterbar > .semi-card-body > .v2-filter-reset.semi-button,
  .v2-filterbar > .semi-card-body > .v2-monitor-mobile-entry.semi-button,
  .v2-monitor-mode.semi-button-group { height: 44px; }
  .v2-search-field > .semi-input-wrapper .semi-input,
  .v2-filterbar > .semi-card-body > .semi-select .semi-select-selection-text { height: 42px; font-size: 16px; }
  .v2-search-field .v2-search-batch-action.semi-button { height: 32px; font-size: 11px; }
  .v2-monitor-mode.semi-button-group .semi-button { height: 38px; font-size: 12px; }
  .v2-batch-search-modal.semi-modal { width: calc(100vw - 16px) !important; margin: 8px; border-radius: 16px; }
  .v2-batch-search-modal .semi-modal-header { padding: 16px 16px 13px; }
  .v2-batch-search-modal .semi-modal-body { padding: 15px 16px; }
  .v2-batch-search-modal .semi-modal-footer { padding: 11px 16px calc(11px + env(safe-area-inset-bottom)); }
  .v2-batch-search-dialog .semi-input-textarea { min-height: 30vh; font-size: 16px; }
  .v2-batch-search-actions .semi-button { min-width: 0; height: 42px; flex: 1; }

  .v2-monitor-mobile-cards { gap: 6px; padding: 6px; }
  .v2-monitor-mobile-cards > .v2-monitor-mobile-card.semi-card { border-radius: 9px; }
  .v2-monitor-mobile-card .semi-card-body { padding: 9px 10px; }
  .v2-monitor-mobile-card .semi-card-body > header strong { font-size: 14px; }
  .v2-monitor-mobile-card .semi-card-body > header > b { font-size: 16px; }
  .v2-monitor-mobile-cards dl { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 10px; margin-top: 8px; padding-top: 8px; }
  .v2-monitor-mobile-cards dd { margin-top: 2px; }
  .v2-monitor-mobile-card .semi-card-body > footer { margin-top: 7px; padding-top: 7px; }
}

/* Semi UI tenth migration: mileage vehicle and date inputs. */
.v2-mileage-selection > .semi-input-wrapper {
  width: 120px;
  min-width: 90px;
  height: 26px;
  flex: 1;
  border: 0;
  border-radius: 5px;
  background: transparent;
  padding: 0;
  box-shadow: none;
}
.v2-mileage-selection > .semi-input-wrapper .semi-input {
  height: 26px;
  border: 0;
  background: transparent;
  padding: 0 3px;
  color: var(--v2-text);
  font-size: 12px;
}
.v2-mileage-filter > label > .semi-input-wrapper {
  width: 100%;
  height: 40px;
  border: 1px solid #d7e0ea;
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}
.v2-mileage-filter > label > .semi-input-wrapper:hover { border-color: #b8c7da; }
.v2-mileage-filter > label > .semi-input-wrapper-focus {
  border-color: #6d9ff1;
  box-shadow: 0 0 0 3px rgba(37,99,235,.08);
}
.v2-mileage-filter > label > .semi-input-wrapper .semi-input {
  height: 38px;
  border: 0;
  padding: 0 11px;
  color: #253248;
  font-size: 13px;
}

@media (max-width: 680px) {
  .v2-mileage-selection > .semi-input-wrapper,
  .v2-mileage-selection > .semi-input-wrapper .semi-input { height: 28px; }
  .v2-mileage-selection > .semi-input-wrapper .semi-input { font-size: 16px; }
  .v2-mileage-filter > label > .semi-input-wrapper { height: 44px; }
  .v2-mileage-filter > label > .semi-input-wrapper .semi-input { height: 42px; font-size: 16px; }
}

/* Semi UI eleventh migration: account grants and profile timestamps. */
.v2-assigned-vins label > .semi-input-wrapper {
  width: 100%;
  height: 32px;
  border: 1px solid #dbe3ed;
  border-radius: 6px;
  background: #fff;
  box-shadow: none;
}
.v2-assigned-vins label > .semi-input-wrapper:hover { border-color: #b9c8da; }
.v2-assigned-vins label > .semi-input-wrapper-focus {
  border-color: #8ab4f7;
  box-shadow: 0 0 0 3px rgba(18,104,243,.06);
}
.v2-assigned-vins label > .semi-input-wrapper .semi-input {
  height: 30px;
  border: 0;
  padding: 0 7px;
  color: #34455c;
  font-size: 10px;
}

@media (max-width: 680px) {
  .v2-assigned-vins label > .semi-input-wrapper { height: 40px; }
  .v2-assigned-vins label > .semi-input-wrapper .semi-input { height: 38px; font-size: 12px; }
}

/* Semi UI twelfth migration: history/alert selection and profile upload. */
.v2-history-table-scroll tbody tr,
.v2-alert-table-scroll tbody tr {
  transition: background .14s ease, box-shadow .14s ease;
}
.v2-history-table-scroll tbody tr { cursor: pointer; }
.v2-history-table-scroll tr.is-selected td:first-child,
.v2-alert-table-scroll tr.is-selected td:first-child { box-shadow: inset 3px 0 var(--v2-blue); }
.v2-history-table-scroll td > .semi-checkbox,
.v2-alert-table-scroll td > .semi-radio {
  display: inline-flex;
  margin: 0;
  vertical-align: middle;
}
.v2-history-table-scroll td > .semi-checkbox .semi-checkbox-inner,
.v2-alert-table-scroll td > .semi-radio .semi-radio-inner { transform: scale(.86); }
.v2-history-table-scroll td > .semi-button {
  height: 28px;
  border-radius: 6px;
  padding: 0 7px;
  color: var(--v2-blue);
  font-size: 10px;
}
.v2-profile-sync-fields .is-file > .semi-upload {
  display: block;
  width: 100%;
}
.v2-profile-sync-fields .is-file > .semi-upload > .semi-button {
  width: 100%;
  height: 34px;
  justify-content: flex-start;
  overflow: hidden;
  border: 1px solid var(--v2-border);
  border-radius: 7px;
  background: #fff;
  padding: 0 10px;
  color: #4f6076;
  font-size: 10px;
  text-overflow: ellipsis;
}
.v2-profile-sync-fields .is-file > .semi-upload > .semi-button:hover {
  border-color: #b9c8da;
  background: #f8fafc;
}
.v2-profile-sync-loading {
  display: flex;
  min-height: 180px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  color: #68788d;
  font-size: 11px;
}

@media (max-width: 680px) {
  .v2-profile-sync-fields .is-file > .semi-upload > .semi-button {
    height: 42px;
    font-size: 12px;
  }
}

/* Semi UI thirteenth migration: global navigation shell. */
.v2-navigation.semi-navigation {
  width: 100%;
  min-height: 0;
  flex: 1;
  border: 0;
  background: #fff;
  padding: 12px 9px;
}
.v2-navigation.semi-navigation .semi-navigation-inner,
.v2-navigation.semi-navigation .semi-navigation-list-wrapper,
.v2-navigation.semi-navigation .semi-navigation-list {
  width: 100%;
  min-height: 0;
}
.v2-navigation.semi-navigation .semi-navigation-item {
  min-height: 44px;
  margin: 2px 0;
  overflow: hidden;
  border-radius: 9px;
  color: #59677c;
}
.v2-navigation.semi-navigation .semi-navigation-item-link {
  min-height: 44px;
  border-radius: inherit;
  color: inherit;
  text-decoration: none;
}
.v2-navigation.semi-navigation .semi-navigation-item-inner {
  min-height: 44px;
  padding: 0 13px;
}
.v2-navigation.semi-navigation .semi-navigation-item-icon {
  color: #7a8799;
  font-size: 18px;
}
.v2-navigation.semi-navigation .semi-navigation-item-text {
  color: inherit;
  font-size: 13px;
  font-weight: 620;
}
.v2-navigation.semi-navigation .semi-navigation-item:hover {
  background: #f6f8fb;
  color: #26364b;
}
.v2-navigation.semi-navigation .semi-navigation-item-selected {
  background: var(--v2-blue-soft);
  color: var(--v2-blue);
  box-shadow: inset 3px 0 var(--v2-blue);
}
.v2-navigation.semi-navigation .semi-navigation-item-selected .semi-navigation-item-icon { color: var(--v2-blue); }
.v2-sidebar.is-collapsed .v2-navigation.semi-navigation { padding: 12px 8px; }
.v2-sidebar.is-collapsed .v2-navigation.semi-navigation .semi-navigation-item,
.v2-sidebar.is-collapsed .v2-navigation.semi-navigation .semi-navigation-item-link,
.v2-sidebar.is-collapsed .v2-navigation.semi-navigation .semi-navigation-item-inner { width: 52px; min-width: 52px; }
.v2-sidebar.is-collapsed .v2-navigation.semi-navigation .semi-navigation-item-inner { justify-content: center; padding: 0; }

@media (max-width: 680px) {
  .v2-mobile-navigation > .semi-button.v2-mobile-nav-item {
    min-width: 0;
    min-height: 54px;
    flex-direction: column;
    gap: 4px;
    border-radius: 10px;
    padding: 0;
    color: #718096;
  }
  .v2-mobile-navigation > .semi-button.v2-mobile-nav-item .semi-button-content {
    max-width: 100%;
    overflow: hidden;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .v2-mobile-navigation > .semi-button.v2-mobile-nav-item.is-active {
    background: #edf4ff;
    color: var(--v2-blue);
  }
  .v2-mobile-more-sidesheet .semi-sidesheet-inner {
    overflow: hidden;
    border-radius: 18px 18px 0 0;
    padding-bottom: env(safe-area-inset-bottom);
  }
  .v2-mobile-more-sidesheet .semi-sidesheet-header {
    border-bottom: 1px solid #edf1f5;
    padding: 15px 16px 12px;
  }
  .v2-mobile-more-sidesheet .semi-sidesheet-title > div {
    display: flex;
    flex-direction: column;
    gap: 3px;
  }
  .v2-mobile-more-sidesheet .semi-sidesheet-title strong { color: #17253a; font-size: 17px; }
  .v2-mobile-more-sidesheet .semi-sidesheet-title span { color: #8290a3; font-size: 11px; font-weight: 400; }
  .v2-mobile-more-sidesheet .semi-sidesheet-body { padding: 12px 14px 18px; }
  .v2-mobile-more-sidesheet nav { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 8px; }
  .v2-mobile-more-sidesheet .v2-mobile-nav-item {
    min-height: 76px;
    border: 1px solid #e5eaf1;
    background: #f8fafc;
  }
}

/* Semi UI fourteenth migration: configuration workspaces use shared SideSheets. */
.v2-mileage-source-sidesheet .semi-sidesheet-inner,
.v2-history-column-sidesheet .semi-sidesheet-inner {
  overflow: hidden;
  border-left: 1px solid rgba(220,228,238,.9);
  box-shadow: -18px 0 60px rgba(20,38,66,.14);
}
.v2-mileage-source-sidesheet .semi-sidesheet-header,
.v2-history-column-sidesheet .semi-sidesheet-header {
  min-height: 72px;
  border-bottom: 1px solid #e9eef5;
  padding: 16px 18px;
}
.v2-mileage-source-title,
.v2-history-column-title {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.v2-mileage-source-title strong,
.v2-history-column-title strong {
  color: #17253a;
  font-size: 18px;
  font-weight: 720;
  letter-spacing: -.025em;
}
.v2-mileage-source-title span,
.v2-history-column-title span {
  color: #7b889b;
  font-size: 11px;
  font-weight: 400;
}
.v2-mileage-source-sidesheet .semi-sidesheet-body { padding: 14px; }
.v2-mileage-source-sidesheet .semi-sidesheet-footer,
.v2-history-column-sidesheet .semi-sidesheet-footer {
  border-top: 1px solid #e9eef5;
  background: #fff;
  padding: 12px 16px;
}
.v2-mileage-source-list {
  display: grid;
  gap: 10px;
}
.v2-mileage-source-list article {
  min-height: 86px;
  grid-template-columns: auto minmax(0,1fr) auto;
  gap: 10px 12px;
  border: 1px solid #e1e8f1;
  border-radius: 11px;
  background: #fff;
  padding: 13px;
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
.v2-mileage-source-list article:hover {
  border-color: #c6d6ea;
  box-shadow: 0 7px 20px rgba(31,55,86,.06);
}
.v2-mileage-source-list article.is-disabled {
  border-color: #edf1f5;
  background: #f8fafc;
  box-shadow: none;
}
.v2-mileage-source-list article > div { gap: 5px; }
.v2-mileage-source-list article > div strong { color: #26364b; font-size: 13px; }
.v2-mileage-source-list article > div small { gap: 8px; font-size: 10px; }
.v2-mileage-source-list article > div small b { border-radius: 999px; background: #edf4ff; padding: 3px 7px; color: #3568a9; font-size: 9px; }
.v2-mileage-source-list article > em {
  align-self: start;
  border-radius: 999px;
  background: #f1f5f9;
  padding: 4px 8px;
  color: #53657d;
  font-size: 9px;
}
.v2-mileage-source-list article > p {
  grid-column: 2 / -1;
  justify-content: flex-end;
}
.v2-mileage-source-switch.semi-switch {
  background: #cbd5e1;
  box-shadow: inset 0 0 0 1px rgba(72,88,110,.08);
}
.v2-mileage-source-switch.semi-switch:hover { background: #b9c4d2; }
.v2-mileage-source-switch.semi-switch-checked,
.v2-mileage-source-switch.semi-switch-checked:hover {
  background: var(--v2-blue);
  box-shadow: 0 0 0 3px rgba(18,104,243,.09);
}
.v2-mileage-source-footer,
.v2-history-column-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.v2-mileage-source-footer > span,
.v2-history-column-footer > span {
  color: #748196;
  font-size: 10px;
  line-height: 1.5;
}
.v2-mileage-source-footer > .semi-button {
  min-width: 88px;
  height: 36px;
  flex: 0 0 auto;
  border-radius: 8px;
  font-weight: 700;
}

.v2-history-column-sidesheet .semi-sidesheet-body {
  overflow: hidden;
  padding: 0;
}
.v2-history-column-content {
  display: flex;
  height: 100%;
  min-height: 0;
  flex-direction: column;
}
.v2-history-column-search {
  display: block;
  flex: 0 0 auto;
  border-bottom: 1px solid #e9eef5;
  background: #fbfcfe;
  padding: 12px 14px;
}
.v2-history-column-search > .semi-input-wrapper {
  width: 100%;
  height: 40px;
  border: 1px solid #d5dfeb;
  border-radius: 9px;
  background: #fff;
  padding: 0 11px;
  box-shadow: none;
}
.v2-history-column-search > .semi-input-wrapper-focus {
  border-color: #79a6ee;
  box-shadow: 0 0 0 3px rgba(18,104,243,.08);
}
.v2-history-column-search .semi-input {
  height: 38px;
  padding-left: 7px;
  color: #34445a;
  font-size: 12px;
}
.v2-history-column-list {
  min-height: 0;
  flex: 1;
  overflow: auto;
  overscroll-behavior: contain;
  padding: 5px 14px 12px;
}
.v2-history-column-list > label {
  display: grid;
  min-height: 54px;
  grid-template-columns: auto minmax(0,1fr) minmax(80px,auto);
  align-items: center;
  gap: 10px;
  border-bottom: 1px solid #edf1f5;
  padding: 7px 4px;
  color: #34445a;
  cursor: pointer;
}
.v2-history-column-list > label:hover { background: #f8fbff; }
.v2-history-column-list > label > .semi-checkbox { margin: 0; }
.v2-history-column-list > label > .semi-checkbox .semi-checkbox-inner { border-radius: 4px; }
.v2-history-column-list > label > span {
  display: grid;
  min-width: 0;
  gap: 4px;
  font-size: 12px;
  font-weight: 620;
}
.v2-history-column-list > label > span em {
  overflow: hidden;
  color: #78869a;
  font-size: 9px;
  font-style: normal;
  font-weight: 400;
  line-height: 1.4;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-history-column-list > label > small {
  overflow: hidden;
  border-radius: 5px;
  background: #f2f5f9;
  padding: 4px 6px;
  color: #7d899a;
  font: 9px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-history-column-list > p {
  margin: 30px 8px;
  color: var(--v2-muted);
  text-align: center;
  font-size: 11px;
}
.v2-history-column-footer { justify-content: flex-end; }
.v2-history-column-footer > span { margin-right: auto; }
.v2-history-column-footer > .semi-button {
  height: 34px;
  border-radius: 8px;
  padding: 0 12px;
  font-size: 10px;
}

@media (max-width: 680px) {
  .v2-mileage-source-sidesheet .semi-sidesheet-inner,
  .v2-history-column-sidesheet .semi-sidesheet-inner {
    width: 100% !important;
    border-left: 0;
  }
  .v2-mileage-source-sidesheet .semi-sidesheet-header,
  .v2-history-column-sidesheet .semi-sidesheet-header {
    min-height: 68px;
    padding: 14px 16px;
  }
  .v2-mileage-source-title strong,
  .v2-history-column-title strong { font-size: 17px; }
  .v2-mileage-source-sidesheet .semi-sidesheet-body { padding: 10px; }
  .v2-mileage-source-list article { min-height: 92px; padding: 12px; }
  .v2-mileage-source-footer { align-items: stretch; flex-direction: column; }
  .v2-mileage-source-footer > .semi-button { width: 100%; height: 42px; }
  .v2-history-column-search { padding: 10px 12px; }
  .v2-history-column-search > .semi-input-wrapper { height: 44px; }
  .v2-history-column-search .semi-input { height: 42px; font-size: 16px; }
  .v2-history-column-list { padding: 4px 10px 12px; }
  .v2-history-column-list > label { min-height: 58px; grid-template-columns: auto minmax(0,1fr); }
  .v2-history-column-list > label > small { grid-column: 2; justify-self: start; margin-top: -4px; }
  .v2-history-column-footer { display: grid; grid-template-columns: 1fr 1fr; }
  .v2-history-column-footer > span { grid-column: 1 / -1; }
  .v2-history-column-footer > .semi-button { height: 40px; }
}

/* Semi UI metric actions: keep compact data surfaces readable and intentional. */
.v2-history-metric-tag.semi-tag {
  font-size: 10px;
  cursor: pointer;
}
.v2-alert-severity.semi-tag,
.v2-alert-status.semi-tag {
  height: 24px;
  padding-inline: 8px;
  font-size: 10px;
}

@media (max-width: 680px) {
  .v2-history-metrics {
    min-height: 48px;
    padding: 7px 8px;
  }
  .v2-history-metrics > strong {
    font-size: 11px;
  }
  .v2-history-metric-tag.semi-tag {
    height: 32px;
    padding-inline: 9px 7px;
    font-size: 11px;
  }
  .v2-history-metric-scroll > span {
    display: none;
  }
  .v2-history-metrics .v2-history-metrics-manage.semi-button {
    z-index: 2;
    width: 36px;
    min-width: 36px;
    height: 34px;
    border: 1px solid #d7e3f2;
    background: #fff;
    padding: 0;
    box-shadow: -6px 0 12px rgba(255,255,255,.98);
    font-size: 0;
  }
  .v2-history-metrics .v2-history-metrics-manage.semi-button .semi-icon {
    margin: 0;
    font-size: 16px;
  }
}

/* Semi UI semantic tags: shared status grammar across access, reconciliation and operations. */
.v2-access-connection-tag.semi-tag,
.v2-access-protocol-tag.semi-tag,
.v2-reconcile-severity.semi-tag,
.v2-reconcile-status.semi-tag,
.v2-ops-health-tag.semi-tag {
  display: inline-flex;
  width: fit-content;
  min-height: 24px;
  align-items: center;
  border-radius: 6px;
  padding-inline: 8px;
  font-size: 10px;
  font-weight: 650;
  white-space: nowrap;
}
.v2-access-protocol-tag.semi-tag,
.v2-ops-health-tag.semi-tag {
  gap: 5px;
}
.v2-access-protocol-tag.semi-tag i,
.v2-ops-health-tag.semi-tag i {
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  border-radius: 50%;
  background: currentColor;
}
.v2-access-connection {
  align-items: start;
}
.v2-access-protocol-detail > header .v2-access-protocol-tag.semi-tag,
.v2-reconcile-detail > .semi-card-body > header .v2-reconcile-severity.semi-tag {
  padding: 0 8px;
}
.v2-reconcile-table .v2-reconcile-severity.semi-tag,
.v2-reconcile-table .v2-reconcile-status.semi-tag {
  min-height: 26px;
}
.v2-ops-kpis .v2-ops-health-tag.semi-tag {
  font-size: 9px;
}
.v2-ops-links article > .v2-ops-health-tag.semi-tag {
  min-height: 24px;
  padding-inline: 8px;
  font-size: 9px;
}
.v2-ops-health-tag.is-ok.semi-tag { background: #eaf8f2; color: #167759; }
.v2-ops-health-tag.is-warning.semi-tag { background: #fff4e5; color: #a8620a; }
.v2-ops-health-tag.is-error.semi-tag { background: #fff0ef; color: #c53c36; }

@media (max-width: 680px) {
  .v2-access-connection-tag.semi-tag,
  .v2-access-protocol-tag.semi-tag,
  .v2-reconcile-severity.semi-tag,
  .v2-reconcile-status.semi-tag,
  .v2-ops-health-tag.semi-tag {
    min-height: 26px;
    font-size: 11px;
  }
}

/* Semi UI shared pagination: one compact rhythm for every data workspace. */
.v2-table-pagination-info {
  min-width: 0;
  overflow: hidden;
  color: #718096;
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-table-pagination-controls {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 6px;
}
.v2-table-pagination-button.semi-button {
  height: 32px;
  border: 1px solid #d8e2ee;
  border-radius: 8px;
  background: #fff;
  padding: 0 10px;
  color: #52647a;
  font-size: 10px;
  font-weight: 650;
  box-shadow: 0 1px 2px rgba(15,23,42,.03);
}
.v2-table-pagination-button.semi-button:hover:not(.semi-button-disabled) {
  border-color: #a9c3e7;
  background: #f5f9ff;
  color: var(--v2-blue);
}
.v2-table-pagination-button.semi-button-disabled {
  background: #f7f9fc;
  color: #a5afbd;
}
.v2-table-pagination-current {
  display: inline-flex;
  min-width: 58px;
  height: 32px;
  align-items: center;
  justify-content: center;
  gap: 5px;
  border: 1px solid #dce5f0;
  border-radius: 8px;
  background: #f7faff;
  color: #718096;
  font-size: 10px;
  font-variant-numeric: tabular-nums;
}
.v2-table-pagination-current b {
  color: var(--v2-blue);
  font-size: 11px;
}
.v2-table-pagination-current i {
  color: #adb7c5;
  font-style: normal;
}
.v2-table-pagination-size.semi-select {
  width: 92px;
  height: 32px;
  border: 1px solid #d8e2ee;
  border-radius: 8px;
  background: #fff;
}
.v2-table-pagination-size .semi-select-selection {
  height: 30px;
  margin-left: 9px;
}
.v2-table-pagination-size .semi-select-selection-text {
  height: 30px;
  font-size: 10px;
  line-height: 30px;
}

@media (max-width: 680px) {
  :is(
    .v2-alert-table-card,
    .v2-history-table-card,
    .v2-access-table-v3
  ) > footer,
  .v2-monitor-table-panel > .semi-card-body > footer,
  .v2-mileage-results > .semi-card-body > footer,
  .v2-reconcile-pagination {
    align-items: stretch;
    gap: 8px;
  }
  :is(
    .v2-alert-table-card,
    .v2-history-table-card,
    .v2-access-table-v3
  ) > footer:has(.v2-table-pagination-controls),
  .v2-monitor-table-panel > .semi-card-body > footer:has(.v2-table-pagination-controls),
  .v2-mileage-results > .semi-card-body > footer:has(.v2-table-pagination-controls),
  .v2-reconcile-pagination {
    min-height: 76px;
    flex-direction: column;
    justify-content: center;
    padding: 8px 10px;
  }
  .v2-table-pagination-info {
    width: 100%;
    font-size: 10px;
  }
  .v2-table-pagination-controls {
    width: 100%;
  }
  .v2-table-pagination-button.semi-button {
    height: 36px;
    flex: 1;
    padding: 0 8px;
    font-size: 11px;
  }
  .v2-table-pagination-current {
    height: 36px;
    flex: 0 0 58px;
    font-size: 11px;
  }
  .v2-table-pagination-size.semi-select {
    width: 92px;
    height: 36px;
    flex: 0 0 92px;
  }
  .v2-table-pagination-size .semi-select-selection,
  .v2-table-pagination-size .semi-select-selection-text {
    height: 34px;
    line-height: 34px;
  }
}

/* Semi UI alert workspace: unified rule selector and template action cards. */
.v2-alert-rule-list {
  display: flex;
  overflow: hidden;
  flex-direction: column;
}
.v2-alert-rule-list > header {
  flex: 0 0 auto;
  background: rgba(255,255,255,.96);
}
.v2-alert-rule-list > header > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 3px;
}
.v2-alert-rule-list > header > div > span {
  color: #8793a4;
  font-size: 9px;
}
.v2-alert-rule-items {
  min-height: 0;
  overflow: auto;
  flex: 1 1 auto;
  background: #fff;
}
.v2-alert-rule-item.semi-button {
  width: 100%;
  height: auto;
  min-height: 76px;
  justify-content: flex-start;
  border: 0;
  border-bottom: 1px solid #edf1f6;
  border-radius: 0;
  background: #fff;
  padding: 11px 13px;
  color: #35465c;
  text-align: left;
  transition: background-color .16s ease, box-shadow .16s ease;
}
.v2-alert-rule-item.semi-button:hover {
  background: #f7faff;
}
.v2-alert-rule-item.semi-button.is-selected {
  background: linear-gradient(90deg,#edf5ff 0%,#f7faff 100%);
  box-shadow: inset 3px 0 #1268f3;
}
.v2-alert-rule-item.semi-button .semi-button-content {
  display: grid;
  width: 100%;
  min-width: 0;
  grid-template-columns: 8px minmax(0,1fr) auto;
  align-items: center;
  gap: 10px;
  white-space: normal;
}
.v2-alert-rule-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #94a3b8;
  box-shadow: 0 0 0 4px rgba(148,163,184,.12);
}
.v2-alert-rule-dot.is-critical {
  background: #e5484d;
  box-shadow: 0 0 0 4px rgba(229,72,77,.11);
}
.v2-alert-rule-dot.is-major {
  background: #f59e0b;
  box-shadow: 0 0 0 4px rgba(245,158,11,.12);
}
.v2-alert-rule-copy {
  display: grid;
  min-width: 0;
  gap: 7px;
}
.v2-alert-rule-copy > span {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 7px;
}
.v2-alert-rule-copy strong {
  overflow: hidden;
  min-width: 0;
  color: #2d4058;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-alert-rule-copy small {
  overflow: hidden;
  color: #7d8a9d;
  font-size: 9px;
  line-height: 1.45;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-alert-rule-copy .semi-tag,
.v2-alert-rule-state.semi-tag {
  flex: 0 0 auto;
  border-radius: 5px;
  font-size: 8px;
}
.v2-alert-rule-empty.semi-empty {
  min-height: 210px;
  justify-content: center;
  padding: 24px 16px;
}
.v2-alert-rule-empty .semi-empty-image {
  width: 76px;
  height: 76px;
}
.v2-alert-rule-empty .semi-empty-title {
  color: #44536a;
  font-size: 12px;
}
.v2-alert-rule-empty .semi-empty-description {
  max-width: 210px;
  color: #8793a4;
  font-size: 9px;
  line-height: 1.55;
}
.v2-alert-rule-templates nav {
  align-items: stretch;
}
.v2-alert-template-card.semi-button {
  display: inline-flex;
  width: 100%;
  height: auto;
  min-height: 70px;
  justify-content: flex-start;
  flex-direction: row;
  gap: 0;
  border: 1px solid #d7e3f1;
  border-radius: 10px;
  background: rgba(255,255,255,.94);
  padding: 10px 11px;
  color: #3d4d63;
  text-align: left;
}
.v2-alert-template-card.semi-button:hover {
  border-color: #91b5ed;
  background: #fff;
  box-shadow: 0 8px 20px rgba(37,99,235,.1);
  transform: translateY(-1px);
}
.v2-alert-template-card.semi-button-disabled {
  border-color: #e3e8ef;
  background: rgba(248,250,252,.82);
  transform: none;
}
.v2-alert-template-card.semi-button .semi-button-content {
  display: grid;
  width: 100%;
  min-width: 0;
  grid-template-columns: 34px minmax(0,1fr) auto;
  align-items: center;
  gap: 10px;
  white-space: normal;
}
.v2-alert-template-icon {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 9px;
  background: #edf5ff;
  color: #1268f3;
  font-size: 16px;
}
.v2-alert-template-card.semi-button-disabled .v2-alert-template-icon {
  background: #f0f2f5;
  color: #9aa5b4;
}
.v2-alert-template-copy {
  display: grid;
  min-width: 0;
  gap: 5px;
}
.v2-alert-template-copy b {
  color: #30435b;
  font-size: 11px;
}
.v2-alert-template-copy small {
  overflow: hidden;
  color: #7c899b;
  font-size: 9px;
  line-height: 1.45;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-alert-template-card .semi-tag {
  max-width: 118px;
  overflow: hidden;
  border-radius: 5px;
  font-size: 8px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 680px) {
  .v2-alert-rule-list > header > div > span { font-size: 10px; }
  .v2-alert-rule-items {
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    scroll-padding-left: 12px;
    scroll-snap-type: x proximity;
    padding: 10px 12px 12px;
    gap: 9px;
  }
  .v2-alert-rule-items::-webkit-scrollbar,
  .v2-alert-rule-templates nav::-webkit-scrollbar { display: none; }
  .v2-alert-rule-item.semi-button {
    width: min(82vw,310px);
    min-width: min(82vw,310px);
    min-height: 84px;
    flex: 0 0 min(82vw,310px);
    border: 1px solid #dce5ef;
    border-radius: 10px;
    padding: 12px;
    scroll-snap-align: start;
  }
  .v2-alert-rule-item.semi-button.is-selected {
    border-color: #a9c8f6;
    box-shadow: inset 3px 0 #1268f3, 0 7px 18px rgba(37,99,235,.08);
  }
  .v2-alert-rule-copy strong { font-size: 12px; }
  .v2-alert-rule-copy small { font-size: 10px; }
  .v2-alert-rule-copy .semi-tag,
  .v2-alert-rule-state.semi-tag { font-size: 9px; }
  .v2-alert-rule-empty.semi-empty {
    width: 100%;
    min-height: 150px;
  }
  .v2-alert-rule-templates nav {
    gap: 9px;
    scrollbar-width: none;
    padding-bottom: 3px;
  }
  .v2-alert-template-card.semi-button {
    min-width: min(84vw,320px);
    min-height: 82px;
    flex: 0 0 min(84vw,320px);
    padding: 11px 12px;
  }
  .v2-alert-template-card.semi-button .semi-button-content {
    grid-template-columns: 38px minmax(0,1fr);
  }
  .v2-alert-template-icon {
    width: 38px;
    height: 38px;
  }
  .v2-alert-template-copy b { font-size: 12px; }
  .v2-alert-template-copy small {
    font-size: 10px;
    white-space: normal;
  }
  .v2-alert-template-card .semi-tag {
    grid-column: 2;
    justify-self: start;
    font-size: 9px;
  }
}

/* Semi UI vehicle identity and profile synchronization shells. */
.v2-identity-band.semi-card {
  display: block;
  min-height: 96px;
  overflow: hidden;
  border: 1px solid var(--v2-border);
  border-radius: var(--v2-radius);
  background: #fff;
  box-shadow: var(--v2-shadow);
}
.v2-identity-band > .semi-card-body {
  display: grid;
  min-height: 94px;
  grid-template-columns: minmax(260px,1fr) minmax(340px,1.25fr) auto;
  align-items: center;
  padding: 0;
}
.v2-profile-sync-panel.semi-card {
  width: min(900px,100%);
  overflow: hidden;
  border: 1px solid #d9e3ef;
  border-radius: 12px;
  background: #fff;
  padding: 0;
  box-shadow: 0 16px 44px rgba(25,45,74,.09);
}
.v2-profile-sync-panel > .semi-card-body {
  padding: 16px;
}
.v2-profile-sync-panel > .semi-card-body > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.v2-profile-sync-panel > .semi-card-body > header strong { color: #26364c; font-size: 14px; }
.v2-profile-sync-panel > .semi-card-body > header p { margin: 5px 0 0; color: var(--v2-muted); font-size: 9px; }
.v2-profile-sync-panel > .semi-card-body > header > .semi-button {
  height: 30px;
  flex: 0 0 auto;
  border-radius: 7px;
  padding: 0 10px;
  color: #6e7e92;
  font-size: 10px;
}
.v2-profile-sync-panel > .semi-card-body > footer {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 12px;
}
.v2-profile-sync-panel > .semi-card-body > footer .semi-button {
  height: 34px;
  border-radius: 7px;
  padding: 0 14px;
  font-size: 10px;
  font-weight: 650;
}
.v2-profile-sync-panel > .semi-card-body > footer .semi-button-primary.semi-button-solid {
  box-shadow: 0 7px 16px rgba(18,104,243,.15);
}
.v2-profile-sync-loading > .semi-card-body {
  display: flex;
  min-height: 120px;
  align-items: center;
  justify-content: center;
}
.v2-profile-sync-loading > .semi-card-body > [role="status"] {
  display: flex;
  align-items: center;
  gap: 9px;
  color: var(--v2-muted);
  font-size: 11px;
}

@media (max-width: 1180px) {
  .v2-identity-band > .semi-card-body {
    grid-template-columns: minmax(240px,1fr) minmax(300px,1fr);
  }
}

@media (max-width: 900px) {
  .v2-identity-band > .semi-card-body { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
  .v2-profile-sync-panel > .semi-card-body { padding: 13px; }
  .v2-profile-sync-panel > .semi-card-body > footer .semi-button {
    height: 40px;
    flex: 1;
  }
}

/* Semi UI alert workspace shells: rule list, rule editor and notifications. */
.v2-alert-rule-list.semi-card,
.v2-alert-rule-editor.semi-card,
.v2-alert-notifications.semi-card {
  min-width: 0;
  min-height: 0;
  border: 1px solid #dbe3ed;
  border-radius: var(--v2-radius);
  background: #fff;
  box-shadow: 0 10px 30px rgba(31,53,80,.06);
}
.v2-alert-rule-list.semi-card {
  display: flex;
  overflow: hidden;
  flex-direction: column;
}
.v2-alert-rule-list > .semi-card-body {
  display: flex;
  min-height: 0;
  flex: 1;
  flex-direction: column;
  padding: 0;
}
.v2-alert-rule-editor.semi-card {
  overflow: auto;
  overscroll-behavior: contain;
}
.v2-alert-rule-editor > .semi-card-body {
  min-height: 100%;
  padding: 0;
}
.v2-alert-rule-editor-form {
  display: flex;
  min-height: 100%;
  flex-direction: column;
}
.v2-alert-notifications.semi-card {
  display: flex;
  overflow: hidden;
  flex: 1;
  flex-direction: column;
}
.v2-alert-notifications > .semi-card-body {
  display: flex;
  min-height: 0;
  flex: 1;
  flex-direction: column;
  padding: 0;
}
.v2-alert-rule-list > .semi-card-body > header,
.v2-alert-rule-editor-form > header {
  display: flex;
  min-height: 52px;
  flex: 0 0 auto;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid var(--v2-border);
  background: rgba(255,255,255,.97);
  padding: 0 15px;
}
.v2-alert-rule-editor-form > header {
  position: sticky;
  top: 0;
  z-index: 4;
}
.v2-alert-rule-list > .semi-card-body > header > div,
.v2-alert-rule-editor-form > header > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 4px;
}
.v2-alert-rule-list > .semi-card-body > header strong,
.v2-alert-rule-editor-form > header strong {
  color: #26364c;
  font-size: 13px;
}
.v2-alert-rule-list > .semi-card-body > header span,
.v2-alert-rule-editor-form > header span {
  color: var(--v2-muted);
  font-size: 10px;
}
.v2-alert-rule-list > .semi-card-body > header > .semi-button,
.v2-alert-rule-editor-form > header > .semi-button {
  height: 32px;
  flex: 0 0 auto;
  border-radius: 7px;
  padding: 0 11px;
  color: var(--v2-blue);
  font-size: 10px;
  font-weight: 650;
}
.v2-alert-rule-editor-form > footer {
  position: sticky;
  bottom: 0;
  z-index: 4;
  display: flex;
  min-height: 58px;
  align-items: center;
  gap: 12px;
  border-top: 1px solid var(--v2-border);
  background: rgba(255,255,255,.97);
  padding: 10px 16px;
  box-shadow: 0 -8px 22px rgba(31,53,80,.04);
}
.v2-alert-rule-editor-form > footer > div {
  display: flex;
  min-width: 0;
  flex: 1;
  flex-direction: column;
  gap: 3px;
}
.v2-alert-rule-editor-form > footer b { color: #34455c; font-size: 10px; }
.v2-alert-rule-editor-form > footer span { color: var(--v2-muted); font-size: 9px; }
.v2-alert-rule-editor-form > footer em { color: var(--v2-red); font-size: 9px; font-style: normal; }
.v2-alert-rule-editor-form > footer > .semi-button {
  height: 38px;
  flex: 0 0 auto;
  border-radius: 8px;
  padding: 0 18px;
  font-size: 11px;
  font-weight: 700;
  box-shadow: 0 7px 16px rgba(18,104,243,.15);
}
.v2-alert-notification-list {
  min-height: 0;
  overflow: auto;
  flex: 1;
  overscroll-behavior: contain;
}
.v2-alert-notifications > .semi-card-body > footer {
  display: flex;
  min-height: 48px;
  flex: 0 0 auto;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px 18px;
  border-top: 1px solid var(--v2-border);
  padding: 10px 16px;
  color: #7f8c9f;
  font-size: 9px;
}
.v2-alert-notifications > .semi-card-body > footer b { color: #4f5d72; }

@media (max-width: 900px) {
  .v2-alert-rule-editor.semi-card { overflow: visible; }
  .v2-alert-rule-editor-form > header,
  .v2-alert-rule-editor-form > footer { position: static; }
}

@media (max-width: 680px) {
  .v2-alert-rule-list > .semi-card-body > header,
  .v2-alert-rule-editor-form > header {
    min-height: 56px;
    padding: 8px 12px;
  }
  .v2-alert-rule-list > .semi-card-body > header > .semi-button,
  .v2-alert-rule-editor-form > header > .semi-button { height: 36px; }
  .v2-alert-rule-editor-form > footer {
    align-items: stretch;
    flex-direction: column;
    padding: 12px;
  }
  .v2-alert-rule-editor-form > footer > .semi-button {
    width: 100%;
    height: 42px;
    justify-content: center;
  }
  .v2-alert-notifications > .semi-card-body > footer {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
  }
}

/* Semi UI access workspace: disclosure panels, identity cards and mobile vehicle cards. */
.v2-access-identity-queue-v3.semi-collapse,
.v2-access-settings.semi-collapse {
  overflow: hidden;
  flex: 0 0 auto;
  border: 1px solid #dbe3ed;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(31,53,80,.05);
}
.v2-access-identity-queue-v3 > .semi-collapse-item,
.v2-access-settings > .semi-collapse-item {
  display: block;
  max-height: none;
  overflow: visible;
  border: 0;
  padding: 0;
}
.v2-access-identity-queue-v3 .semi-collapse-header,
.v2-access-settings .semi-collapse-header {
  min-height: 56px;
  align-items: center;
  border: 0;
  padding: 0 14px;
  color: #34465c;
}
.v2-access-identity-queue-v3 .semi-collapse-header:hover,
.v2-access-settings .semi-collapse-header:hover {
  background: #f8fbff;
}
.v2-access-identity-queue-v3 .semi-collapse-header-icon,
.v2-access-settings .semi-collapse-header-icon {
  color: #75869c;
}
.v2-access-collapse-title {
  display: flex;
  width: 100%;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}
.v2-access-collapse-title > span:first-child {
  display: grid;
  min-width: 0;
  gap: 4px;
}
.v2-access-collapse-title strong {
  color: #304158;
  font-size: 12px;
}
.v2-access-collapse-title small {
  overflow: hidden;
  color: #7c899b;
  font-size: 9px;
  font-weight: 400;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-access-collapse-title > .semi-tag {
  flex: 0 0 auto;
  border-radius: 6px;
  font-size: 9px;
}
.v2-access-identity-queue-v3 .semi-collapse-content,
.v2-access-settings .semi-collapse-content {
  border-top: 1px solid #e7edf4;
  padding: 0;
}
.v2-access-identity-queue-v3 .semi-collapse-content-wrapper,
.v2-access-settings .semi-collapse-content-wrapper {
  padding: 0;
}
.v2-access-identity-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 10px;
  padding: 12px;
}
.v2-access-identity-card.semi-card {
  min-width: 0;
  border: 1px solid #e0e7f0;
  border-radius: 9px;
  background: #fbfcfe;
  box-shadow: none;
}
.v2-access-identity-card .semi-card-body {
  display: grid;
  gap: 7px;
  padding: 11px 12px;
}
.v2-access-identity-card header {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.v2-access-identity-card header b {
  overflow: hidden;
  min-width: 0;
  color: #31445d;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-access-identity-card header .semi-tag {
  flex: 0 0 auto;
  border-radius: 5px;
  font-size: 8px;
}
.v2-access-identity-card span,
.v2-access-identity-card small {
  overflow: hidden;
  color: #748296;
  font-size: 9px;
  line-height: 1.5;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-access-identity-card small {
  color: #4e6077;
  white-space: normal;
}
.v2-access-settings fieldset {
  padding: 14px;
  gap: 12px;
}
.v2-access-settings fieldset label {
  min-width: 124px;
  gap: 7px;
  color: #5e6f84;
  font-size: 10px;
  font-weight: 650;
}
.v2-access-settings fieldset label > .semi-input-wrapper {
  width: 124px;
  height: 38px;
  border-radius: 8px;
}
.v2-access-settings fieldset label .semi-input {
  height: 36px;
  font-size: 11px;
}
.v2-access-settings fieldset label .semi-input-suffix {
  color: #8a96a7;
  font-size: 9px;
}
.v2-access-settings fieldset > .semi-button {
  height: 38px;
  border-radius: 8px;
  padding: 0 15px;
  font-weight: 650;
}
.v2-access-mobile-card.semi-card {
  width: 100%;
  overflow: hidden;
  border: 1px solid #dfe7f0;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 4px 14px rgba(31,53,80,.035);
  content-visibility: auto;
  contain-intrinsic-size: auto 190px;
}
.v2-access-mobile-card.semi-card.is-selected {
  border-color: #8eb8f8;
  box-shadow: inset 3px 0 #1268f3, 0 7px 18px rgba(18,104,243,.08);
}
.v2-access-mobile-action.semi-button {
  display: block;
  width: 100%;
  height: auto;
  min-height: 0;
  border-radius: 0;
  background: #fff;
  padding: 0;
  color: #334155;
  text-align: left;
}
.v2-access-mobile-action.semi-button:hover { background: #f8fbff; }
.v2-access-mobile-action.semi-button:active { background: #f1f6ff; }
.v2-access-mobile-action .semi-button-content {
  display: block;
  width: 100%;
  min-width: 0;
  white-space: normal;
}
.v2-access-mobile-card-content {
  display: grid;
  min-width: 0;
  gap: 9px;
  padding: 12px;
}
.v2-access-mobile-card-content > header {
  display: flex;
  min-width: 0;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}
.v2-access-mobile-card-content > header > span:first-child {
  display: grid;
  min-width: 0;
  gap: 3px;
}
.v2-access-mobile-card-content > header strong,
.v2-access-mobile-card-content > header small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-access-mobile-card-content > header strong {
  color: #2d4058;
  font-size: 15px;
}
.v2-access-mobile-card-content > header small {
  color: #8491a3;
  font-size: 10px;
}
.v2-access-mobile-card-content > p {
  margin: 0;
  color: #68768a;
  font-size: 11px;
}
.v2-access-mobile-protocols {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 5px;
  border-top: 1px solid #edf1f5;
  padding-top: 9px;
}
.v2-access-mobile-card-content > footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 2px;
  color: var(--v2-blue);
  font-size: 11px;
  font-weight: 700;
}
.v2-access-mobile-card-content > footer svg {
  width: 13px;
  height: 13px;
}

@media (max-width: 900px) {
  .v2-access-identity-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 680px) {
  .v2-access-identity-queue-v3 .semi-collapse-header,
  .v2-access-settings .semi-collapse-header {
    min-height: 66px;
    padding: 0 12px;
  }
  .v2-access-collapse-title { gap: 9px; }
  .v2-access-collapse-title strong { font-size: 13px; }
  .v2-access-collapse-title small {
    max-width: 255px;
    font-size: 10px;
  }
  .v2-access-collapse-title > .semi-tag { font-size: 10px; }
  .v2-access-identity-grid {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 10px;
  }
  .v2-access-identity-card .semi-card-body { padding: 12px; }
  .v2-access-identity-card header b { font-size: 12px; }
  .v2-access-identity-card span,
  .v2-access-identity-card small { font-size: 10px; }
  .v2-access-settings fieldset {
    align-items: stretch;
    flex-direction: column;
    padding: 12px;
  }
  .v2-access-settings fieldset label { width: 100%; }
  .v2-access-settings fieldset label > .semi-input-wrapper {
    width: 100%;
    height: 42px;
  }
  .v2-access-settings fieldset label .semi-input { height: 40px; font-size: 12px; }
  .v2-access-settings fieldset > .semi-button {
    width: 100%;
    height: 42px;
    justify-content: center;
  }
  .v2-access-mobile-card-content { gap: 7px; padding: 10px 11px; }
  .v2-access-mobile-card-content > p { font-size: 10px; }
  .v2-access-mobile-protocols {
    gap: 4px;
    padding-top: 7px;
  }
  .v2-access-mobile-list .v2-access-protocol-cell {
    padding: 6px;
  }
}

/* Semi UI vehicle record: evidence actions stay lightweight inside the data dashboard. */
.v2-current-location .v2-current-address-action.semi-button {
  width: max-content;
  max-width: 100%;
  height: 30px;
  min-width: 0;
  overflow: hidden;
  border-radius: 7px;
  padding: 0 9px;
  font-size: 9px;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-current-location .v2-current-address-action.semi-button .semi-button-content {
  overflow: hidden;
  min-width: 0;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-current-location .v2-current-address-action.semi-button.is-error {
  border-color: #edb5b0;
  background: #fff5f4;
  color: var(--v2-red);
}
.v2-live-source-link.semi-button {
  display: inline-flex;
  width: 100%;
  height: auto;
  min-height: 29px;
  justify-content: flex-start;
  margin-top: 2px;
  border-radius: 7px;
  padding: 2px 5px 2px 0;
  color: #25364d;
  font-size: 17px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  text-align: left;
}
.v2-live-source-link.semi-button:hover {
  background: #edf5ff;
  color: var(--v2-blue);
}
.v2-live-source-link.semi-button .semi-button-content {
  display: flex;
  width: 100%;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  white-space: nowrap;
}
.v2-live-source-link.semi-button .semi-button-content > span {
  overflow: hidden;
  min-width: 0;
  text-overflow: ellipsis;
}
.v2-live-source-link.semi-button .semi-button-content > svg {
  flex: 0 0 auto;
  color: #9aabc0;
  font-size: 12px;
}
.v2-live-source-link.semi-button:hover .semi-button-content > svg {
  color: var(--v2-blue);
  transform: translateX(1px);
}
.v2-map-source-link.semi-button {
  display: inline-flex;
  width: auto;
  max-width: calc(100% - 180px);
  height: 30px;
  min-width: 0;
  justify-content: flex-start;
  border-radius: 7px;
  padding: 0 7px;
  color: #64748b;
  font-size: 9px;
  font-weight: 500;
  text-align: left;
}
.v2-map-source-link.semi-button:hover {
  background: #edf5ff;
  color: var(--v2-blue);
}
.v2-map-source-link.semi-button .semi-button-content {
  display: block;
  overflow: hidden;
  min-width: 0;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-map-source-link.semi-button .semi-button-icon {
  flex: 0 0 auto;
}

@media (max-width: 680px) {
  .v2-current-location .v2-current-address-action.semi-button {
    height: 34px;
    font-size: 10px;
  }
  .v2-live-source-link.semi-button {
    min-height: 34px;
    font-size: 17px;
  }
  .v2-map-source-link.semi-button {
    width: 100%;
    max-width: 100%;
    height: 34px;
    padding: 0 4px;
    font-size: 10px;
  }
}

/* Semi UI source diagnostic evidence: summary cards, states and audit trail. */
.v2-source-empty.semi-empty {
  min-height: 180px;
  padding: 28px 24px;
}
.v2-source-empty .semi-empty-image { width: 104px; height: 82px; }
.v2-source-empty .semi-empty-title { color: #2f435b; font-size: 15px; font-weight: 700; }
.v2-source-empty .semi-empty-description {
  max-width: 560px;
  color: var(--v2-muted);
  font-size: 12px;
  line-height: 1.6;
}
.v2-source-loading {
  display: flex;
  min-height: 180px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 8px;
  color: var(--v2-muted);
  text-align: center;
}
.v2-source-loading strong { margin-top: 5px; color: #2f435b; font-size: 15px; }
.v2-source-loading span { font-size: 11px; }
.v2-source-summary {
  gap: 10px;
  border-block: 1px solid #e1e9f3;
  background: linear-gradient(180deg, #f8fbff 0%, #f5f8fc 100%);
  padding: 12px 14px;
}
.v2-source-summary-card.semi-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #dce5f0;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 5px 16px rgba(31,53,80,.045);
}
.v2-source-summary-card > .semi-card-body { min-height: 94px; padding: 13px 14px; }
.v2-source-summary-card small,
.v2-source-summary-card > .semi-card-body > span:not(.semi-tag) {
  display: block;
  overflow: hidden;
  color: #7b899c;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-source-summary-card strong {
  display: block;
  margin: 8px 0 7px;
  overflow: hidden;
  color: #23384f;
  font-size: 17px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-source-summary-card .semi-tag {
  width: max-content;
  max-width: 100%;
  min-height: 22px;
  overflow: hidden;
  border-radius: 999px;
  color: #1769d2;
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-source-summary-card.is-ok { border-color: #bfe4d5; box-shadow: inset 3px 0 #22a878, 0 5px 16px rgba(31,53,80,.045); }
.v2-source-summary-card.is-warning { border-color: #edcc91; box-shadow: inset 3px 0 #e8a12b, 0 5px 16px rgba(31,53,80,.045); }
.v2-source-recommendation.semi-card {
  overflow: hidden;
  margin: 14px 14px 10px;
  border: 1px solid #d8e5fb;
  border-left: 4px solid #2f6fe4;
  border-radius: 9px;
  background: linear-gradient(100deg, #f1f6ff 0%, #f7faff 100%);
  padding: 0;
  box-shadow: none;
}
.v2-source-recommendation > .semi-card-body { padding: 12px 14px; }
.v2-source-recommendation header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.v2-source-recommendation header .semi-tag { flex: 0 0 auto; min-height: 22px; border-radius: 999px; font-size: 10px; }
.v2-source-recommendation header span {
  overflow: hidden;
  color: #6e7f95;
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-source-recommendation p { margin: 9px 0 0; color: #35506e; font-size: 12px; line-height: 1.65; }
.v2-source-readonly {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 14px 10px;
  border: 1px solid #f1ddb1;
  border-radius: 8px;
  background: #fff9ec;
  padding: 9px 11px;
}
.v2-source-readonly .semi-tag { flex: 0 0 auto; min-height: 22px; border-radius: 999px; font-size: 10px; }
.v2-source-readonly span { color: #86601b; font-size: 11px; line-height: 1.5; }
.v2-source-audit.semi-card {
  overflow: hidden;
  margin: 0 14px 14px;
  border: 1px solid #dce5ef;
  border-radius: 10px;
  background: #fff;
  box-shadow: none;
}
.v2-source-audit > .semi-card-body > p { margin: 0; padding: 16px 13px; color: var(--v2-muted); font-size: 11px; }
.v2-source-audit > .semi-card-body > ol { margin: 0; padding: 8px 13px; }
.v2-source-audit > .semi-card-body > ol li { min-height: 44px; padding-block: 8px; }
.v2-source-audit > .semi-card-body > ol li b { font-size: 11px; }
.v2-source-audit > .semi-card-body > ol li span { font-size: 11px; }
.v2-source-audit > .semi-card-body > ol li em { font-size: 10px; }

@media (max-width: 1180px) {
  .v2-source-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 680px) {
  .v2-source-empty.semi-empty,
  .v2-source-loading { min-height: 190px; padding: 22px 14px; }
  .v2-source-summary { grid-template-columns: 1fr; gap: 8px; padding: 10px; }
  .v2-source-summary-card > .semi-card-body { min-height: 88px; padding: 12px 13px; }
  .v2-source-summary-card small,
  .v2-source-summary-card > .semi-card-body > span:not(.semi-tag) { font-size: 11px; }
  .v2-source-summary-card strong { margin-block: 7px; font-size: 16px; }
  .v2-source-recommendation { margin: 10px; }
  .v2-source-recommendation > .semi-card-body { padding: 12px; }
  .v2-source-recommendation header { align-items: flex-start; flex-direction: column; gap: 7px; }
  .v2-source-recommendation header span { width: 100%; font-size: 10px; white-space: normal; }
  .v2-source-recommendation p { font-size: 12px; }
  .v2-source-readonly { align-items: flex-start; margin: 0 10px 10px; }
  .v2-source-readonly span { font-size: 11px; }
  .v2-source-audit { margin: 0 10px 10px; }
}

/* Semi UI alert evidence inspector: readable descriptions, evidence cards and audit timeline. */
.v2-alert-inspector.semi-card {
  background: #f6f8fb;
}
.v2-alert-inspector > .semi-card-body {
  display: flex;
  min-height: 100%;
  flex-direction: column;
  padding: 0;
}
.v2-alert-inspector > .semi-card-body > header {
  position: sticky;
  z-index: 5;
  top: 0;
  min-height: 64px;
  flex: 0 0 auto;
  border-bottom: 1px solid #dfe7f1;
  background: rgba(255,255,255,.97);
  padding: 12px 14px;
  backdrop-filter: blur(12px);
}
.v2-alert-inspector > .semi-card-body > header > div { gap: 8px; }
.v2-alert-inspector > .semi-card-body > header strong {
  overflow: hidden;
  color: #23384f;
  font-size: 15px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-alert-inspector > .semi-card-body > header span { gap: 6px; }
.v2-alert-inspector-content {
  display: grid;
  gap: 10px;
  padding: 10px;
}
.v2-alert-detail-card.semi-card {
  overflow: hidden;
  border: 1px solid #dce5ef;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 4px 14px rgba(31,53,80,.035);
}
.v2-alert-detail-card > .semi-card-header {
  min-height: 42px;
  border-color: #e5ebf2;
  background: linear-gradient(180deg,#fff 0%,#fbfcfe 100%);
  padding: 0 12px;
}
.v2-alert-detail-card > .semi-card-header .semi-card-header-wrapper-title h6,
.v2-alert-detail-card > .semi-card-header .semi-card-header-wrapper-title > strong {
  color: #31475f;
  font-size: 12px;
  font-weight: 700;
}
.v2-alert-detail-card > .semi-card-body { padding: 12px; }
.v2-alert-detail-card > .semi-card-body[style*="padding: 0"] { padding: 0 !important; }
.v2-alert-descriptions.semi-descriptions { width: 100%; line-height: 1.5; }
.v2-alert-descriptions.semi-descriptions table { width: 100%; table-layout: fixed; }
.v2-alert-descriptions .semi-descriptions-item {
  min-width: 0;
  border-bottom: 1px solid #edf1f5;
  padding: 9px 11px;
}
.v2-alert-descriptions tr:last-child .semi-descriptions-item { border-bottom: 0; }
.v2-alert-descriptions .semi-descriptions-item-th {
  width: 92px;
  background: #fafbfd;
  padding-right: 10px;
}
.v2-alert-descriptions .semi-descriptions-key {
  color: #7a899c;
  font-size: 10px;
  line-height: 1.5;
}
.v2-alert-descriptions .semi-descriptions-value {
  display: block;
  overflow: hidden;
  color: #30445b;
  font-size: 11px;
  line-height: 1.55;
  overflow-wrap: anywhere;
  text-overflow: ellipsis;
}
.v2-alert-descriptions code {
  color: #405873;
  font: 10px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;
  overflow-wrap: anywhere;
}
.v2-alert-descriptions .semi-tag { min-height: 22px; border-radius: 999px; font-size: 9px; }
.v2-alert-evidence-card > .semi-card-body { background: #fbfcfe; }
.v2-alert-evidence {
  grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
  gap: 8px;
  padding: 11px;
}
.v2-alert-evidence > .v2-alert-evidence-value.semi-card {
  overflow: hidden;
  border: 1px solid #dfe7f0;
  border-radius: 9px;
  background: #fff;
  box-shadow: none;
}
.v2-alert-evidence > .v2-alert-evidence-value > .semi-card-body {
  display: flex;
  min-height: 74px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  padding: 10px;
  text-align: center;
}
.v2-alert-evidence > .v2-alert-evidence-value.is-trigger {
  border-color: #efc7c4;
  background: #fff9f8;
}
.v2-alert-evidence > .semi-tag { align-self: center; border-radius: 999px; font-size: 9px; font-weight: 700; }
.v2-alert-evidence small { color: #7a899c; font-size: 10px; }
.v2-alert-evidence strong {
  display: -webkit-box;
  max-width: 100%;
  margin-top: 8px;
  overflow: hidden;
  color: #30445b;
  font-size: 14px;
  line-height: 1.4;
  overflow-wrap: anywhere;
  text-overflow: ellipsis;
  white-space: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.v2-alert-evidence > .v2-alert-evidence-value.is-trigger strong { color: #c03f39; }
.v2-alert-progress-card > .semi-card-body { padding: 12px 12px 2px; }
.v2-alert-timeline.semi-timeline { padding: 2px 0 0; }
.v2-alert-timeline .semi-timeline-item { padding-bottom: 18px; }
.v2-alert-timeline .semi-timeline-item-content { margin-left: 23px; }
.v2-alert-timeline .semi-timeline-item-content strong { color: #30445b; font-size: 11px; }
.v2-alert-timeline .semi-timeline-item-content-time { color: #8491a3; font-size: 9px; }
.v2-alert-timeline .semi-timeline-item-content p { margin: 5px 0 0; color: #62748a; font-size: 10px; line-height: 1.5; }
.v2-alert-timeline-empty.semi-empty { min-height: 116px; padding: 12px; }
.v2-alert-timeline-empty .semi-empty-image { width: 54px; height: 44px; }
.v2-alert-timeline-empty .semi-empty-title { color: #4b5e74; font-size: 11px; }
.v2-alert-timeline-empty .semi-empty-description { max-width: 250px; color: #8995a5; font-size: 9px; line-height: 1.5; }
.v2-alert-disposition-card > .semi-card-body { padding: 12px; }
.v2-alert-disposition-card .v2-alert-actions { gap: 7px; margin-top: 10px; }
.v2-alert-disposition-card .v2-alert-actions > .semi-button {
  height: 36px;
  border-radius: 7px;
  font-size: 11px;
}
.v2-alert-inspector-empty.semi-empty {
  min-height: 340px;
  justify-content: center;
  padding: 30px 20px;
  background: #fff;
}
.v2-alert-inspector-empty .semi-empty-image {
  display: grid;
  width: 64px;
  height: 64px;
  place-items: center;
  border-radius: 18px;
  background: #edf5ff;
  color: #3577d3;
  font-size: 28px;
}
.v2-alert-inspector-empty .semi-empty-title { color: #34495f; font-size: 14px; font-weight: 700; }
.v2-alert-inspector-empty .semi-empty-description { max-width: 250px; color: #8290a3; font-size: 11px; line-height: 1.6; }
.v2-alert-inspector > .semi-card-body > .v2-alert-links {
  position: sticky;
  z-index: 4;
  bottom: 0;
  min-height: 48px;
  flex: 0 0 auto;
  gap: 6px;
  border-top: 1px solid #dfe7f1;
  background: rgba(255,255,255,.97);
  padding: 7px 10px;
  backdrop-filter: blur(12px);
}
.v2-alert-inspector > .semi-card-body > .v2-alert-links a {
  height: 34px;
  border-radius: 7px;
  background: #f3f7fc;
  font-size: 10px;
  font-weight: 650;
}
.v2-alert-inspector > .semi-card-body > .v2-alert-links a:hover { background: #eaf3ff; }

@media (max-width: 680px) {
  .v2-alert-inspector > .semi-card-body > header {
    position: static;
    min-height: 62px;
  }
  .v2-alert-inspector-content { gap: 9px; padding: 9px; }
  .v2-alert-detail-card > .semi-card-header { min-height: 44px; }
  .v2-alert-detail-card > .semi-card-header .semi-card-header-wrapper-title h6,
  .v2-alert-detail-card > .semi-card-header .semi-card-header-wrapper-title > strong { font-size: 13px; }
  .v2-alert-descriptions .semi-descriptions-item { padding: 10px; }
  .v2-alert-descriptions .semi-descriptions-item-th { width: 88px; }
  .v2-alert-descriptions .semi-descriptions-key { font-size: 11px; }
  .v2-alert-descriptions .semi-descriptions-value { font-size: 12px; }
  .v2-alert-evidence { gap: 6px; padding: 10px; }
  .v2-alert-evidence > .v2-alert-evidence-value > .semi-card-body { min-height: 78px; padding: 8px; }
  .v2-alert-evidence strong { font-size: 13px; }
  .v2-alert-timeline .semi-timeline-item-content strong { font-size: 12px; }
  .v2-alert-timeline .semi-timeline-item-content-time,
  .v2-alert-timeline .semi-timeline-item-content p { font-size: 10px; }
  .v2-alert-disposition-card .v2-alert-actions { grid-template-columns: 1fr; }
  .v2-alert-disposition-card .v2-alert-actions > .semi-button { width: 100%; height: 42px; justify-content: center; }
  .v2-alert-inspector > .semi-card-body > .v2-alert-links {
    position: static;
    min-height: 54px;
    padding: 8px 9px;
  }
  .v2-alert-inspector > .semi-card-body > .v2-alert-links a { height: 38px; font-size: 11px; }
}

/* Semi UI mileage summary and source strategy: consistent metric groups and source cards. */
.v2-mileage-summary.semi-card {
  display: block;
  overflow: hidden;
  border: 1px solid #dce4ee;
  border-radius: 12px;
  background: #f7f9fc;
  box-shadow: 0 6px 22px rgba(24,39,62,.045);
}
.v2-mileage-summary > .semi-card-body {
  display: grid;
  grid-template-columns: minmax(390px,1.05fr) minmax(0,1.45fr);
  padding: 0;
}
.v2-mileage-summary > .semi-card-body > .v2-mileage-summary-card.is-primary {
  border: 0;
  border-radius: 0;
}
.v2-mileage-summary > .semi-card-body > .v2-mileage-summary-card.is-primary > .semi-card-body {
  position: relative;
  display: flex;
  overflow: hidden;
  min-height: 120px;
  justify-content: center;
  flex-direction: column;
  background: linear-gradient(125deg,#0f60e5 0%,#1f79f3 100%);
  padding: 20px 26px 21px !important;
  color: #fff;
}
.v2-mileage-summary > .semi-card-body > .v2-mileage-summary-card.is-primary > .semi-card-body::after {
  position: absolute;
  right: -34px;
  bottom: -54px;
  width: 150px;
  height: 150px;
  border: 26px solid rgba(255,255,255,.08);
  border-radius: 50%;
  content: '';
}
.v2-mileage-summary > .semi-card-body > .is-primary small,
.v2-mileage-summary > .semi-card-body > .is-primary span,
.v2-mileage-summary > .semi-card-body > .is-primary strong { position: relative; z-index: 1; }
.v2-mileage-summary > .semi-card-body > .is-primary small,
.v2-mileage-summary > .semi-card-body > .is-primary span { color: rgba(255,255,255,.78); }
.v2-mileage-summary > .semi-card-body > .is-primary strong { color: #fff; font-size: clamp(29px,2.2vw,37px); }
.v2-mileage-summary > .semi-card-body > .is-primary .v2-mileage-summary-value {
  min-height: 1.22em;
  margin: 6px 0 5px;
  padding: 2px 0 3px;
  line-height: 1.16;
}
.v2-mileage-summary-secondary.semi-card-group {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(3,minmax(0,1fr));
  background: #fff;
}
.v2-mileage-summary-secondary.semi-card-group > .v2-mileage-summary-card.semi-card {
  min-width: 0;
  border: 0;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}
.v2-mileage-summary-secondary.semi-card-group > .v2-mileage-summary-card + .v2-mileage-summary-card { border-left: 1px solid #e2e8f0; }
.v2-mileage-summary-secondary.semi-card-group > .v2-mileage-summary-card > .semi-card-body {
  display: flex;
  min-width: 0;
  min-height: 104px;
  justify-content: center;
  flex-direction: column;
  padding: 18px 20px !important;
}
.v2-mileage-source-card.semi-card {
  min-height: 88px;
  overflow: hidden;
  border: 1px solid #dfe7f0;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 5px 16px rgba(31,55,86,.035);
  transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.v2-mileage-source-card.semi-card:hover {
  border-color: #b9cce4;
  box-shadow: 0 8px 22px rgba(31,55,86,.075);
  transform: translateY(-1px);
}
.v2-mileage-source-card.semi-card.is-disabled {
  border-color: #e8edf3;
  background: #f8fafc;
  box-shadow: none;
  transform: none;
}
.v2-mileage-source-card > .semi-card-body {
  display: grid;
  min-height: 86px;
  grid-template-columns: auto minmax(0,1fr) auto;
  align-items: center;
  gap: 10px 12px;
  padding: 13px;
}
.v2-mileage-source-copy {
  display: grid;
  min-width: 0;
  gap: 6px;
}
.v2-mileage-source-copy > strong { overflow: hidden; color: #26364b; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.v2-mileage-source-copy > small { display: flex; min-width: 0; align-items: center; gap: 8px; }
.v2-mileage-source-copy > small .semi-tag {
  flex: 0 0 auto;
  min-height: 22px;
  border-radius: 999px;
  font-size: 9px;
}
.v2-mileage-source-copy code {
  overflow: hidden;
  color: #7d8a9c;
  font: 9px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-mileage-source-priority.semi-tag {
  align-self: start;
  min-height: 23px;
  border-radius: 999px;
  font-size: 9px;
}
.v2-mileage-source-card.is-disabled .v2-mileage-source-copy,
.v2-mileage-source-card.is-disabled .v2-mileage-source-priority { opacity: .62; }
.v2-mileage-source-order {
  display: flex;
  grid-column: 2 / -1;
  justify-content: flex-end;
  gap: 4px;
}
.v2-mileage-source-order > .semi-button {
  width: 30px;
  height: 30px;
  min-width: 30px;
  border: 1px solid #dbe4ee;
  border-radius: 7px;
  background: #fff;
  padding: 0;
  color: #607188;
}
.v2-mileage-source-order > .semi-button:hover { border-color: #a9bfdc; background: #f4f8fd; color: var(--v2-blue); }

@media (max-width: 680px) {
  .v2-mileage-summary.semi-card { overflow: visible; border: 0; background: transparent; box-shadow: none; }
  .v2-mileage-summary > .semi-card-body { grid-template-columns: 1fr; gap: 7px; }
  .v2-mileage-summary > .semi-card-body > .v2-mileage-summary-card.is-primary {
    overflow: hidden;
    border-radius: 10px;
  }
  .v2-mileage-summary > .semi-card-body > .v2-mileage-summary-card.is-primary > .semi-card-body {
    min-height: 96px;
    padding: 13px 14px 14px !important;
  }
  .v2-mileage-summary > .semi-card-body > .is-primary .v2-mileage-summary-value { min-height: 1.2em; margin: 4px 0 3px; padding: 1px 0 2px; font-size: 27px; }
  .v2-mileage-summary-secondary.semi-card-group {
    overflow: hidden;
    border: 1px solid #dfe6ef;
    border-radius: 10px;
  }
  .v2-mileage-summary-secondary.semi-card-group > .v2-mileage-summary-card > .semi-card-body {
    min-height: 76px;
    justify-content: flex-start;
    padding: 10px 9px !important;
  }
  .v2-mileage-summary-secondary.semi-card-group strong { margin: 5px 0 3px; font-size: 16px; }
  .v2-mileage-summary-secondary.semi-card-group span { font-size: 9px; line-height: 1.4; }
  .v2-mileage-source-card > .semi-card-body {
    min-height: 94px;
    padding: 12px;
  }
  .v2-mileage-source-copy > strong { font-size: 13px; }
  .v2-mileage-source-copy code { font-size: 9px; }
  .v2-mileage-source-order > .semi-button { width: 34px; height: 34px; min-width: 34px; }
}

/* Semi UI detail language: vehicle archive, lookup recovery and track evidence. */
.v2-record-descriptions.semi-descriptions {
  padding: 9px 14px 4px;
}
.v2-record-descriptions .semi-descriptions-item {
  min-height: 30px;
  padding: 6px 0;
}
.v2-record-descriptions .semi-descriptions-item-th {
  width: 104px;
  padding-right: 14px;
}
.v2-record-descriptions .semi-descriptions-key {
  color: #78879a;
  font-size: 10px;
  font-weight: 500;
}
.v2-record-descriptions .semi-descriptions-value {
  color: #34465c;
  font-size: 11px;
  font-weight: 600;
  overflow-wrap: anywhere;
}
.v2-record-descriptions .semi-tag {
  min-height: 22px;
  border-radius: 999px;
  font-size: 9px;
}
.v2-not-found.semi-card {
  width: min(560px, calc(100% - 40px));
  min-height: 0;
  align-self: center;
  justify-self: center;
  overflow: hidden;
  border: 1px solid #dce5ef;
  border-radius: 16px;
  background: #fff;
  padding: 0;
  box-shadow: 0 14px 40px rgba(31,53,80,.08);
}
.v2-not-found > .semi-card-body { width: 100%; }
.v2-not-found .semi-empty {
  min-height: 360px;
  justify-content: center;
  padding: 36px 28px;
}
.v2-not-found .semi-empty-image {
  display: grid;
  width: 68px;
  height: 68px;
  place-items: center;
  border-radius: 20px;
  background: #edf5ff;
  color: #3476d2;
  font-size: 30px;
}
.v2-not-found .semi-empty-title { margin-top: 16px; color: #2f435a; font-size: 20px; font-weight: 750; }
.v2-not-found .semi-empty-description { max-width: 380px; margin-top: 8px; color: #7c8a9c; font-size: 13px; line-height: 1.65; }
.v2-not-found .semi-empty-content { margin-top: 20px; }
.v2-not-found .semi-empty-content > a {
  height: auto;
  margin: 0;
  background: transparent;
  padding: 0;
}
.v2-not-found .semi-empty-content .semi-button { height: 40px; border-radius: 8px; padding: 0 18px; }

.v2-track-overview-descriptions.semi-descriptions { padding: 0; }
.v2-track-overview-descriptions .semi-descriptions-item {
  min-height: 28px;
  padding: 5px 0;
}
.v2-track-overview-descriptions .semi-descriptions-item-th {
  width: 98px;
  padding-right: 10px;
}
.v2-track-overview-descriptions .semi-descriptions-key {
  color: #7d8a9b;
  font-size: 9px;
  font-weight: 500;
}
.v2-track-overview-descriptions .semi-descriptions-value {
  color: #36475d;
  font-size: 10px;
  font-weight: 650;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.v2-track-rail-empty.semi-empty {
  min-height: 280px;
  justify-content: center;
  padding: 24px 18px;
}
.v2-track-rail-empty .semi-empty-image {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border-radius: 15px;
  background: #eef5ff;
  color: #3978d0;
  font-size: 23px;
}
.v2-track-rail-empty .semi-empty-title { margin-top: 12px; color: #465970; font-size: 12px; font-weight: 700; }
.v2-track-rail-empty .semi-empty-description { max-width: 220px; margin-top: 6px; color: #8996a7; font-size: 9px; line-height: 1.55; }
.v2-track-empty-state > .semi-card-body { display: block; padding: 0 !important; }
.v2-track-empty-state .semi-empty {
  min-height: 248px;
  justify-content: center;
  padding: 24px 20px;
}
.v2-track-empty-state .semi-empty-image {
  display: grid;
  width: 60px;
  height: 60px;
  place-items: center;
  border-radius: 18px;
  background: #edf5ff;
  color: #3476d2;
  font-size: 27px;
}
.v2-track-empty-state .semi-empty-title { margin-top: 13px; color: #34475e; font-size: 14px; font-weight: 750; }
.v2-track-empty-state .semi-empty-description { max-width: 260px; margin-top: 6px; color: #7f8da0; font-size: 10px; line-height: 1.55; }
.v2-track-empty-state .semi-empty-content { margin-top: 15px; }
.v2-track-empty-state .semi-empty-content > .semi-button { height: 38px; border-radius: 8px; padding: 0 16px; }

@media (max-width: 680px) {
  .v2-record-descriptions.semi-descriptions { padding: 8px 12px 3px; }
  .v2-record-descriptions .semi-descriptions-item { min-height: 38px; padding: 8px 0; }
  .v2-record-descriptions .semi-descriptions-item-th { width: 96px; }
  .v2-record-descriptions .semi-descriptions-key { font-size: 11px; }
  .v2-record-descriptions .semi-descriptions-value { font-size: 12px; }
  .v2-not-found.semi-card { width: calc(100% - 24px); }
  .v2-not-found .semi-empty { min-height: 330px; padding: 28px 18px; }
  .v2-not-found .semi-empty-title { font-size: 18px; }
  .v2-not-found .semi-empty-description { font-size: 12px; }
  .v2-track-overview-descriptions .semi-descriptions-item { min-height: 32px; padding: 7px 0; }
  .v2-track-overview-descriptions .semi-descriptions-key { font-size: 10px; }
  .v2-track-overview-descriptions .semi-descriptions-value { font-size: 11px; }
  .v2-track-rail-empty.semi-empty { min-height: 230px; }
  .v2-track-rail-empty .semi-empty-title { font-size: 13px; }
  .v2-track-rail-empty .semi-empty-description { font-size: 10px; }
  .v2-track-empty-state .semi-empty { min-height: 220px; padding: 20px 16px; }
  .v2-track-empty-state .semi-empty-title { font-size: 14px; }
  .v2-track-empty-state .semi-empty-description { font-size: 10px; }
}

/* Semi UI account editor: one card language for identity, menus and vehicle grants. */
.v2-user-list-loading {
  display: grid;
  min-height: 180px;
  place-items: center;
  color: #748399;
}
.v2-user-list-loading .semi-spin-wrapper { display: grid; justify-items: center; gap: 8px; }
.v2-user-list-loading .semi-spin-tip { color: #7d8b9d; font-size: 11px; }
.v2-user-list-empty.semi-empty {
  min-height: 210px;
  justify-content: center;
  padding: 22px 16px;
}
.v2-user-list-empty .semi-empty-image { width: 64px; height: 52px; }
.v2-user-list-empty .semi-empty-title { color: #42556d; font-size: 12px; font-weight: 700; }
.v2-user-list-empty .semi-empty-description { max-width: 210px; color: #8492a4; font-size: 9px; line-height: 1.55; }
.v2-user-editor-empty.semi-empty {
  min-height: 620px;
  justify-content: center;
  padding: 36px 24px;
}
.v2-user-editor-empty .semi-empty-image { width: 92px; height: 76px; }
.v2-user-editor-empty .semi-empty-title { color: #354960; font-size: 18px; font-weight: 750; }
.v2-user-editor-empty .semi-empty-description { margin-top: 7px; color: #8190a3; font-size: 12px; }
.v2-user-editor-empty .semi-empty-content { margin-top: 19px; }
.v2-user-editor-empty .semi-empty-content > .semi-button {
  height: 40px;
  border-radius: 8px;
  padding: 0 18px;
  box-shadow: 0 7px 16px rgba(18,104,243,.16);
  font-weight: 700;
}
.v2-user-editor form {
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: #f7f9fc;
}
.v2-user-editor-title {
  flex: 0 0 auto;
  border: 1px solid #dfe6ef;
  border-radius: 11px;
  background: linear-gradient(100deg,#fff 0%,#f7faff 100%);
  padding: 16px 18px;
}
.v2-user-editor-section.semi-card {
  flex: 0 0 auto;
  overflow: hidden;
  border: 1px solid #dfe6ef;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 5px 18px rgba(31,53,80,.035);
}
.v2-user-editor-section > .semi-card-header {
  min-height: 48px;
  border-bottom-color: #e7edf4;
  background: linear-gradient(180deg,#fff 0%,#fbfcfe 100%);
  padding: 0 16px;
}
.v2-user-editor-section > .semi-card-header .semi-card-header-wrapper-title h6,
.v2-user-editor-section > .semi-card-header .semi-card-header-wrapper-title > span {
  color: #2f4259;
  font-size: 13px;
  font-weight: 750;
}
.v2-user-editor-section > .semi-card-body { padding: 16px; }
.v2-user-section-title { display: inline-flex; align-items: center; gap: 9px; }
.v2-user-section-title .semi-tag {
  min-height: 22px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 600;
}
.v2-user-editor-section > .semi-card-header .semi-card-header-wrapper-extra > .semi-button {
  height: 30px;
  border-radius: 7px;
  color: #687990;
}
.v2-user-menu-section .v2-menu-permissions label {
  min-height: 70px;
  border-color: #dfe6ef;
  border-radius: 9px;
  background: #fff;
  padding: 12px;
  transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.v2-user-menu-section .v2-menu-permissions label:hover {
  border-color: #b9cce5;
  box-shadow: 0 5px 14px rgba(31,55,86,.055);
  transform: translateY(-1px);
}
.v2-user-menu-section .v2-menu-permissions label.is-selected {
  border-color: #aac8f7;
  background: linear-gradient(120deg,#f0f6ff 0%,#f8fbff 100%);
  box-shadow: inset 3px 0 var(--v2-blue);
}
.v2-user-menu-section .v2-menu-permissions b { color: #31455d; font-size: 12px; }
.v2-user-menu-section .v2-menu-permissions small { color: #7c8b9e; font-size: 10px; }
.v2-user-vehicle-empty.semi-empty {
  min-height: 136px;
  justify-content: center;
  margin-top: 12px;
  border: 1px dashed #d8e1ec;
  border-radius: 9px;
  background: #fafbfd;
  padding: 16px;
}
.v2-user-vehicle-empty .semi-empty-image { display: none; }
.v2-user-vehicle-empty .semi-empty-title { color: #53657c; font-size: 12px; font-weight: 700; }
.v2-user-vehicle-empty .semi-empty-description { color: #8a97a8; font-size: 10px; }
.v2-user-editor form > footer { flex: 0 0 auto; margin-top: 2px; }

@media (max-width: 680px) {
  .v2-user-list-loading,
  .v2-user-list-empty.semi-empty { min-width: 230px; min-height: 64px; flex: 0 0 230px; }
  .v2-user-list-empty .semi-empty-image { display: none; }
  .v2-user-list-empty.semi-empty { align-items: flex-start; justify-content: center; padding: 8px 12px; }
  .v2-user-list-empty .semi-empty-title { margin: 0; font-size: 12px; }
  .v2-user-list-empty .semi-empty-description { margin-top: 2px; font-size: 9px; }
  .v2-user-editor-empty.semi-empty { min-height: 360px; padding: 26px 18px; }
  .v2-user-editor-empty .semi-empty-title { font-size: 16px; }
  .v2-user-editor-empty .semi-empty-description { font-size: 11px; }
  .v2-user-editor form { gap: 9px; background: #f5f7fa; }
  .v2-user-editor-title { border-radius: 9px; padding: 13px 12px; }
  .v2-user-editor-title h3 { font-size: 18px; line-height: 1.25; }
  .v2-user-editor-title > div { min-width: 0; }
  .v2-user-editor-title .v2-user-status { flex: 0 0 auto; }
  .v2-user-editor-title .v2-user-status > span { display: none; }
  .v2-user-editor-section.semi-card { border-radius: 9px; }
  .v2-user-editor-section > .semi-card-header { min-height: 46px; padding: 0 12px; }
  .v2-user-editor-section > .semi-card-body { padding: 12px; }
  .v2-user-editor-section > .semi-card-header .semi-card-header-wrapper-title h6,
  .v2-user-editor-section > .semi-card-header .semi-card-header-wrapper-title > span { font-size: 13px; }
  .v2-user-menu-section .v2-menu-permissions label { min-height: 72px; padding: 12px; }
  .v2-user-menu-section .v2-menu-permissions label:hover { transform: none; }
  .v2-user-vehicle-empty.semi-empty { min-height: 118px; }
}

/* Semi UI operations health: consistent status, evidence, action and acceptance surfaces. */
.v2-ops-link-list {
  display: grid;
  gap: 0;
}
.v2-ops-link-card.semi-card {
  min-width: 0;
  border: 0;
  border-bottom: 1px solid #e8edf3;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}
.v2-ops-link-card:last-child { border-bottom: 0; }
.v2-ops-link-card > .semi-card-body {
  display: grid;
  min-height: 58px;
  grid-template-columns: minmax(130px,.65fr) minmax(0,1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 9px 15px;
}
.v2-ops-link-status { display: flex; min-width: 0; align-items: center; gap: 9px; }
.v2-ops-link-status > i {
  width: 8px;
  height: 8px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #94a3b8;
  box-shadow: 0 0 0 4px rgba(148,163,184,.12);
}
.v2-ops-link-card.is-ok .v2-ops-link-status > i { background: var(--v2-green); box-shadow: 0 0 0 4px rgba(26,160,109,.11); }
.v2-ops-link-card.is-warning .v2-ops-link-status > i { background: var(--v2-orange); box-shadow: 0 0 0 4px rgba(232,161,43,.12); }
.v2-ops-link-card.is-error .v2-ops-link-status > i { background: var(--v2-red); box-shadow: 0 0 0 4px rgba(225,76,72,.1); }
.v2-ops-link-status strong {
  overflow: hidden;
  color: #32465e;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-ops-link-card p {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  color: #748398;
  font-size: 10px;
  line-height: 1.5;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-ops-link-card .v2-ops-health-tag.semi-tag { min-height: 24px; border-radius: 999px; }
.v2-ops-link-empty.semi-empty { min-height: 190px; justify-content: center; padding: 20px; }
.v2-ops-link-empty .semi-empty-image { width: 66px; height: 54px; }
.v2-ops-link-empty .semi-empty-title { color: #4c5f75; font-size: 12px; font-weight: 700; }
.v2-ops-link-empty .semi-empty-description { color: #8794a5; font-size: 9px; }

.v2-ops-runtime-descriptions.semi-descriptions { padding: 9px 15px 3px; }
.v2-ops-runtime-descriptions .semi-descriptions-item {
  min-height: 38px;
  border-bottom: 1px solid #edf1f5;
  padding: 7px 0;
}
.v2-ops-runtime-descriptions .semi-descriptions-item:last-child { border-bottom: 0; }
.v2-ops-runtime-descriptions .semi-descriptions-item-th { width: 122px; padding-right: 12px; }
.v2-ops-runtime-descriptions .semi-descriptions-key { color: #748398; font-size: 10px; font-weight: 500; }
.v2-ops-runtime-descriptions .semi-descriptions-value { color: #34475e; font-size: 11px; font-weight: 650; text-align: right; }
.v2-ops-runtime-descriptions .v2-ops-health-tag.semi-tag { min-height: 23px; border-radius: 999px; }
.v2-ops-capacity-findings { display: grid; gap: 7px; padding: 6px 13px 13px; }
.v2-ops-capacity-finding.semi-card {
  border: 1px solid #efd6a6;
  border-radius: 8px;
  background: #fffaf1;
  box-shadow: none;
}
.v2-ops-capacity-finding > .semi-card-body { display: flex; align-items: flex-start; gap: 9px; padding: 9px 10px; }
.v2-ops-capacity-finding p { margin: 2px 0 0; color: #8a5e18; font-size: 9px; line-height: 1.55; }
.v2-ops-capacity-empty.semi-empty {
  min-height: 112px;
  justify-content: center;
  margin: 5px 13px 13px;
  border: 1px solid #d7ebe3;
  border-radius: 8px;
  background: #f4fbf8;
  padding: 12px;
}
.v2-ops-capacity-empty .semi-empty-image {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 10px;
  background: #e3f6ee;
  color: #16825d;
  font-size: 19px;
}
.v2-ops-capacity-empty .semi-empty-title { margin-top: 7px; color: #28745c; font-size: 11px; font-weight: 700; }
.v2-ops-capacity-empty .semi-empty-description { margin-top: 2px; color: #6d9185; font-size: 9px; }

.v2-ops-source-list.semi-card-group {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 10px;
  padding: 12px;
  background: #f7f9fc;
}
.v2-ops-source-card.semi-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #dfe6ef;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 5px 16px rgba(31,53,80,.045);
}
.v2-ops-source-card.is-ok { border-color: #cce8dd; }
.v2-ops-source-card.is-warning { border-color: #ecd7ad; }
.v2-ops-source-card.is-error { border-color: #efc9c7; }
.v2-ops-source-card > .semi-card-header {
  min-height: 50px;
  background: linear-gradient(180deg,#fff 0%,#fbfcfe 100%);
  padding: 0 13px;
}
.v2-ops-source-title { display: flex; min-width: 0; align-items: center; gap: 7px; }
.v2-ops-source-title .semi-tag { flex: 0 0 auto; min-height: 22px; border-radius: 6px; font-size: 9px; }
.v2-ops-source-title small { overflow: hidden; color: #718197; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.v2-ops-source-card > .semi-card-header .v2-ops-health-tag.semi-tag { min-height: 23px; border-radius: 999px; font-size: 8px; }
.v2-ops-source-card > .semi-card-body { display: grid; gap: 0; padding: 0; }
.v2-ops-source-evidence,
.v2-ops-source-action { min-height: 88px; padding: 12px 13px; }
.v2-ops-source-action { border-top: 1px solid #e9eef4; background: #fbfcfe; }
.v2-ops-source-evidence strong,
.v2-ops-source-action strong { color: #41556d; font-size: 9px; }
.v2-ops-source-evidence p,
.v2-ops-source-action p { margin: 6px 0 0; color: #6d7d91; font-size: 9px; line-height: 1.6; }
.v2-ops-source-card > .semi-card-body > footer {
  display: grid;
  min-height: 82px;
  grid-template-columns: auto minmax(0,1fr);
  align-items: flex-start;
  gap: 8px;
  border-top: 1px solid #e9eef4;
  padding: 11px 13px;
  background: #f5faf8;
}
.v2-ops-source-card footer .semi-tag { min-height: 22px; border-radius: 999px; font-size: 8px; }
.v2-ops-source-card footer span { color: #557567; font-size: 9px; line-height: 1.55; }
.v2-ops-source-empty.semi-empty,
.v2-ops-source-loading { min-height: 250px; justify-content: center; padding: 28px; background: #f8fafc; }
.v2-ops-source-loading { display: grid; place-items: center; }
.v2-ops-source-empty .semi-empty-title { color: #4b5e74; font-size: 13px; font-weight: 700; }
.v2-ops-source-empty .semi-empty-description,
.v2-ops-source-loading .semi-spin-tip { color: #8491a3; font-size: 10px; }

@media (max-width: 1100px) {
  .v2-ops-source-list.semi-card-group { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
  .v2-ops-link-card > .semi-card-body {
    min-height: 72px;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 5px 10px;
    padding: 10px 12px;
  }
  .v2-ops-link-card p { grid-column: 1 / -1; font-size: 10px; white-space: normal; }
  .v2-ops-link-status strong { font-size: 12px; }
  .v2-ops-runtime-descriptions.semi-descriptions { padding: 8px 12px 3px; }
  .v2-ops-runtime-descriptions .semi-descriptions-item { min-height: 42px; }
  .v2-ops-runtime-descriptions .semi-descriptions-key,
  .v2-ops-runtime-descriptions .semi-descriptions-value { font-size: 11px; }
  .v2-ops-source-list.semi-card-group {
    display: flex;
    overflow-x: auto;
    grid-template-columns: none;
    gap: 8px;
    padding: 10px;
    scroll-snap-type: x proximity;
  }
  .v2-ops-source-card.semi-card {
    min-width: min(84vw,330px);
    flex: 0 0 min(84vw,330px);
    scroll-snap-align: start;
  }
  .v2-ops-source-evidence,
  .v2-ops-source-action { min-height: 98px; }
  .v2-ops-source-evidence strong,
  .v2-ops-source-action strong,
  .v2-ops-source-evidence p,
  .v2-ops-source-action p,
  .v2-ops-source-card footer span { font-size: 10px; }
}

/* Semi UI access inspector: one vocabulary for vehicle facts, protocol evidence and async states. */
.v2-access-inspector-summary.semi-descriptions {
  border-bottom: 1px solid var(--v2-border);
  padding: 10px 14px 8px;
}
.v2-access-inspector-summary .semi-descriptions-item {
  min-height: 42px;
  border-bottom: 1px solid #edf1f5;
  padding: 7px 0;
}
.v2-access-inspector-summary .semi-descriptions-item:last-child { border-bottom: 0; }
.v2-access-inspector-summary .semi-descriptions-item-th {
  width: 92px;
  padding-right: 10px;
}
.v2-access-inspector-summary .semi-descriptions-key {
  color: #7c899b;
  font-size: 10px;
  font-weight: 500;
}
.v2-access-inspector-summary .semi-descriptions-value {
  min-width: 0;
  color: #3d4e64;
  font-size: 11px;
  font-weight: 650;
  overflow-wrap: anywhere;
}
.v2-access-inspector-summary .v2-access-connection {
  display: flex;
  align-items: center;
  gap: 7px;
}
.v2-access-inspector-summary .v2-access-connection span { display: none; }
.v2-access-inspector-summary .v2-access-connection-tag.semi-tag { flex: 0 0 auto; }

.v2-access-inspector-summary-grid {
  display: grid;
  grid-template-columns: 1.25fr 1fr 1fr;
  border-bottom: 1px solid var(--v2-border);
  background: #fff;
  padding: 8px 12px;
}
.v2-access-inspector-summary-grid > span {
  display: grid;
  min-width: 0;
  align-content: center;
  gap: 4px;
  padding: 3px 9px;
}
.v2-access-inspector-summary-grid > span:first-child { padding-left: 0; }
.v2-access-inspector-summary-grid > span + span { border-left: 1px solid #e8edf3; }
.v2-access-inspector-summary-grid small {
  color: #8592a3;
  font-size: 9px;
  line-height: 1.2;
}
.v2-access-inspector-summary-grid strong {
  overflow: hidden;
  color: #3c4e65;
  font-size: 10px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-access-protocol-heading {
  display: flex;
  min-height: 45px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid #e6ebf2;
  background: #f7f9fc;
  padding: 8px 13px 7px;
}
.v2-access-protocol-heading > span {
  display: grid;
  min-width: 0;
  gap: 2px;
}
.v2-access-protocol-heading strong {
  color: #34475e;
  font-size: 12px;
}
.v2-access-protocol-heading small {
  overflow: hidden;
  color: #8794a5;
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-access-protocol-heading .semi-tag {
  min-height: 22px;
  flex: 0 0 auto;
  border-radius: 999px;
  font-size: 9px;
}
.v2-access-protocol-details.semi-card-group {
  display: grid;
  grid-template-columns: 1fr;
  gap: 9px;
  padding: 12px;
  background: #f7f9fc;
}
.v2-access-protocol-detail.semi-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #dfe6ef;
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 3px 12px rgba(31,53,80,.035);
}
.v2-access-protocol-detail.is-online { border-color: #cfe8de; }
.v2-access-protocol-detail.is-offline,
.v2-access-protocol-detail.is-unknown { border-color: #ecd9b6; }
.v2-access-protocol-detail > .semi-card-header {
  min-height: 42px;
  background: linear-gradient(180deg,#fff 0%,#fafbfd 100%);
  padding: 0 11px;
}
.v2-access-protocol-detail > .semi-card-header .semi-card-header-wrapper-title strong {
  color: #354960;
  font-size: 12px;
}
.v2-access-protocol-detail .v2-access-protocol-tag.semi-tag {
  min-height: 23px;
  border-radius: 999px;
  font-size: 9px;
}
.v2-access-protocol-detail .v2-access-protocol-tag i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
}
.v2-access-protocol-detail.is-missing .v2-access-protocol-tag i {
  border: 1px solid currentColor;
  background: transparent;
}
.v2-access-protocol-glance {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: #edf1f5;
}
.v2-access-protocol-glance > span {
  display: grid;
  min-width: 0;
  min-height: 45px;
  align-content: center;
  gap: 3px;
  background: #fff;
  padding: 6px 11px;
}
.v2-access-protocol-glance small {
  color: #8793a4;
  font-size: 9px;
  line-height: 1.2;
}
.v2-access-protocol-glance strong,
.v2-access-protocol-glance .v2-access-time {
  overflow: hidden;
  color: #405269;
  font-size: 10px;
  font-weight: 650;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-access-protocol-glance .is-danger strong { color: var(--v2-red); }
.v2-access-protocol-toggle.semi-button {
  width: 100%;
  min-height: 38px;
  justify-content: space-between;
  border-top: 1px solid #e9eef4;
  border-radius: 0;
  color: #54708e;
  padding: 0 11px;
  font-size: 10px;
  font-weight: 650;
}
.v2-access-protocol-toggle .semi-icon {
  transition: transform .18s ease;
}
.v2-access-protocol-toggle.is-expanded .semi-icon { transform: rotate(180deg); }
.v2-access-protocol-expanded {
  border-top: 1px solid #e9eef4;
  background: #fbfcfe;
}
.v2-access-protocol-descriptions.semi-descriptions { padding: 7px 11px 3px; }
.v2-access-protocol-descriptions .semi-descriptions-item {
  min-height: 31px;
  padding: 5px 0;
}
.v2-access-protocol-descriptions .semi-descriptions-item-th {
  width: 84px;
  padding-right: 8px;
}
.v2-access-protocol-descriptions .semi-descriptions-key {
  color: #8390a2;
  font-size: 9px;
  font-weight: 500;
}
.v2-access-protocol-descriptions .semi-descriptions-value,
.v2-access-protocol-descriptions .semi-typography {
  overflow: hidden;
  color: #43546a;
  font-size: 10px;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-access-protocol-descriptions .semi-typography-danger { color: var(--v2-red); }
.v2-access-protocol-evidence {
  margin: 0;
  border-top: 1px solid #e9eef4;
  background: #fbfcfe;
  padding: 8px 11px;
  color: #77869a;
  font-size: 9px;
  line-height: 1.55;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.v2-access-protocol-missing {
  display: grid;
  min-height: 62px;
  align-content: center;
  gap: 4px;
  background: #fbfcfd;
  padding: 9px 11px;
}
.v2-access-protocol-missing span {
  color: #627188;
  font-size: 10px;
  font-weight: 650;
}
.v2-access-protocol-missing small {
  color: #909bab;
  font-size: 9px;
  line-height: 1.4;
}
.v2-access-loading {
  position: absolute;
  z-index: 4;
  inset: 42px 0 auto;
  display: grid;
  min-height: 66px;
  place-items: center;
  background: rgba(255,255,255,.9);
  backdrop-filter: blur(3px);
}
.v2-access-loading .semi-spin-tip {
  color: #718197;
  font-size: 10px;
  font-weight: 600;
}
.v2-access-empty.semi-empty {
  min-height: 260px;
  justify-content: center;
  padding: 24px;
}
.v2-access-empty .semi-empty-image { width: 72px; height: 58px; }
.v2-access-empty .semi-empty-title {
  color: #4b5e75;
  font-size: 13px;
  font-weight: 700;
}
.v2-access-empty .semi-empty-description {
  max-width: 260px;
  color: #8592a4;
  font-size: 10px;
  line-height: 1.5;
}

@media (max-width: 680px) {
  .v2-access-inspector-summary-grid { min-height: 68px; }
  .v2-access-inspector-summary-grid > span { padding-inline: 8px; }
  .v2-access-inspector-summary-grid small { font-size: 10px; }
  .v2-access-inspector-summary-grid strong { font-size: 11px; }
  .v2-access-protocol-heading { min-height: 44px; padding-inline: 12px; }
  .v2-access-protocol-heading strong { font-size: 13px; }
  .v2-access-protocol-heading small,
  .v2-access-protocol-heading .semi-tag { font-size: 10px; }
  .v2-access-protocol-details.semi-card-group {
    display: flex;
    overflow-x: auto;
    flex-wrap: nowrap;
    gap: 8px;
    padding: 10px;
    scroll-snap-type: x proximity;
  }
  .v2-access-protocol-detail.semi-card {
    min-width: min(82vw,320px);
    flex: 0 0 min(82vw,320px);
    scroll-snap-align: start;
  }
  .v2-access-protocol-detail > .semi-card-header { min-height: 44px; }
  .v2-access-protocol-detail > .semi-card-header .semi-card-header-wrapper-title strong { font-size: 13px; }
  .v2-access-protocol-glance > span { min-height: 43px; padding-inline: 10px; }
  .v2-access-protocol-glance small,
  .v2-access-protocol-glance strong,
  .v2-access-protocol-glance .v2-access-time,
  .v2-access-protocol-missing span { font-size: 11px; }
  .v2-access-protocol-toggle.semi-button { min-height: 42px; font-size: 11px; }
  .v2-access-protocol-missing { min-height: 66px; }
  .v2-access-protocol-missing small { font-size: 10px; }
  .v2-access-protocol-descriptions .semi-descriptions-item { min-height: 34px; }
  .v2-access-protocol-descriptions .semi-descriptions-key,
  .v2-access-protocol-descriptions .semi-descriptions-value,
  .v2-access-protocol-descriptions .semi-typography,
  .v2-access-protocol-evidence { font-size: 10px; }
  .v2-access-empty.semi-empty { min-height: 300px; }
}

/* Semi UI history evidence: consistent facts, jobs, progress and empty states. */
.v2-history-chart-empty.semi-empty,
.v2-history-chart-loading {
  min-height: 128px;
  flex: 1;
  justify-content: center;
  padding: 14px 20px;
}
.v2-history-chart-loading { display: grid; place-items: center; }
.v2-history-chart-empty .semi-empty-image { display: none; }
.v2-history-chart-empty .semi-empty-title {
  margin: 0;
  color: #506279;
  font-size: 12px;
  font-weight: 700;
}
.v2-history-chart-empty .semi-empty-description,
.v2-history-chart-loading .semi-spin-tip {
  max-width: 420px;
  margin-top: 4px;
  color: #8491a3;
  font-size: 10px;
  line-height: 1.55;
}
.v2-history-chart-empty.is-error .semi-empty-title { color: #b64d4d; }

.v2-history-evidence-descriptions.semi-descriptions {
  border-bottom: 1px solid var(--v2-border);
  padding: 8px 12px 5px;
}
.v2-history-evidence-descriptions .semi-descriptions-item {
  min-height: 34px;
  border-bottom: 1px solid #edf1f5;
  padding: 5px 0;
}
.v2-history-evidence-descriptions .semi-descriptions-item:last-child { border-bottom: 0; }
.v2-history-evidence-descriptions .semi-descriptions-item-th {
  width: 76px;
  padding-right: 8px;
}
.v2-history-evidence-descriptions .semi-descriptions-key {
  color: #7d8a9d;
  font-size: 9px;
  font-weight: 500;
}
.v2-history-evidence-descriptions .semi-descriptions-value {
  color: #405168;
  font-size: 10px;
  font-weight: 600;
  overflow-wrap: anywhere;
}
.v2-history-evidence-descriptions .semi-tag,
.v2-history-quality-tag.semi-tag {
  min-height: 22px;
  border-radius: 999px;
  font-size: 8px;
}
.v2-evidence-section-title {
  display: flex;
  min-height: 38px;
  align-items: center;
  justify-content: space-between;
  padding: 0 12px;
}
.v2-evidence-section-title strong { color: #405168; font-size: 10px; }
.v2-evidence-section-title .semi-tag { min-height: 21px; border-radius: 999px; font-size: 8px; }
.v2-evidence-values.semi-descriptions {
  max-height: 360px;
  overflow: auto;
  border-top: 1px solid #edf1f5;
  padding: 3px 12px 7px;
}
.v2-evidence-values .semi-descriptions-item {
  min-height: 37px;
  border-bottom: 1px solid #edf1f5;
  padding: 6px 0;
}
.v2-evidence-values .semi-descriptions-item:last-child { border-bottom: 0; }
.v2-evidence-values .semi-descriptions-item-th {
  width: 122px;
  padding-right: 8px;
}
.v2-evidence-values .semi-descriptions-key > span {
  display: grid;
  min-width: 0;
  gap: 2px;
  color: #586a81;
  font-size: 9px;
  font-weight: 600;
}
.v2-evidence-values .semi-descriptions-key small {
  overflow: hidden;
  color: #9aa6b5;
  font-size: 7px;
  font-weight: 400;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-evidence-values .semi-descriptions-value {
  color: #33465d;
  font-size: 10px;
  font-weight: 700;
  text-align: right;
}
.v2-evidence-values-empty.semi-empty {
  min-height: 106px;
  justify-content: center;
  border-top: 1px solid #edf1f5;
  padding: 12px;
}
.v2-evidence-values-empty .semi-empty-image { display: none; }
.v2-evidence-values-empty .semi-empty-title { margin: 0; color: #5b6d82; font-size: 10px; font-weight: 700; }
.v2-evidence-values-empty .semi-empty-description { margin-top: 3px; color: #8a97a8; font-size: 8px; }
.v2-history-evidence > .semi-card-body > footer .semi-tag { flex: 0 0 auto; min-height: 22px; border-radius: 999px; font-size: 8px; }
.v2-history-evidence > .semi-card-body > footer .semi-typography {
  min-width: 0;
  color: var(--v2-blue);
  font-size: 9px;
  font-weight: 600;
}
.v2-history-side-empty.semi-empty,
.v2-history-side-loading {
  min-height: 154px;
  justify-content: center;
  padding: 18px 14px;
}
.v2-history-side-loading { display: grid; place-items: center; }
.v2-history-side-empty .semi-empty-image { width: 58px; height: 46px; }
.v2-history-side-empty .semi-empty-title { color: #506279; font-size: 11px; font-weight: 700; }
.v2-history-side-empty .semi-empty-description,
.v2-history-side-loading .semi-spin-tip { color: #8995a6; font-size: 8px; line-height: 1.5; }

.v2-history-detail-sidesheet .semi-sidesheet-inner,
.v2-history-export-sidesheet .semi-sidesheet-inner {
  width: min(100vw, 460px) !important;
  max-width: 100vw;
  background: #f4f7fb;
}
.v2-history-detail-sidesheet .semi-sidesheet-header,
.v2-history-export-sidesheet .semi-sidesheet-header {
  min-height: 68px;
  border-bottom: 1px solid #dfe6ef;
  background: rgba(255,255,255,.96);
  padding: calc(10px + env(safe-area-inset-top)) 16px 10px;
  backdrop-filter: blur(14px);
}
.v2-history-detail-sidesheet .semi-sidesheet-title,
.v2-history-export-sidesheet .semi-sidesheet-title { min-width: 0; }
.v2-history-mobile-sheet-title { display: grid; min-width: 0; gap: 3px; }
.v2-history-mobile-sheet-title strong { color: #30445c; font-size: 16px; font-weight: 750; }
.v2-history-mobile-sheet-title span { overflow: hidden; color: #7d8b9e; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.v2-history-detail-sidesheet .semi-sidesheet-close,
.v2-history-export-sidesheet .semi-sidesheet-close { width: 38px; height: 38px; border-radius: 10px; color: #607086; }
.v2-history-detail-sidesheet .semi-sidesheet-body,
.v2-history-export-sidesheet .semi-sidesheet-body {
  overflow: auto;
  overscroll-behavior: contain;
  padding: 10px 10px calc(18px + env(safe-area-inset-bottom));
}
.v2-history-detail-sidesheet .v2-history-evidence.semi-card,
.v2-history-export-sidesheet .v2-export-jobs.semi-card {
  overflow: hidden;
  border: 1px solid #dfe6ef;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(31,48,70,.08);
}
.v2-history-detail-sidesheet .v2-evidence-values.semi-descriptions { max-height: none; }
.v2-history-export-sidesheet .v2-export-jobs > .semi-card-body > .v2-export-job-list { max-height: none; }

.v2-export-jobs > .semi-card-body > .v2-export-job-list {
  max-height: 430px;
  overflow: auto;
  background: #f7f9fc;
  padding: 8px;
}
.v2-export-job-list > .semi-card-group {
  display: grid;
  grid-template-columns: 1fr;
  gap: 7px;
}
.v2-export-job-card.semi-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #dfe6ef;
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}
.v2-export-job-card.is-running { border-color: #c8dcfa; }
.v2-export-job-card.is-completed { border-color: #cce7dc; }
.v2-export-job-card.is-failed { border-color: #edc9c8; }
.v2-export-job-card > .semi-card-header {
  min-height: 38px;
  background: linear-gradient(180deg,#fff 0%,#fbfcfe 100%);
  padding: 0 9px;
}
.v2-export-job-name {
  display: block;
  max-width: 168px;
  overflow: hidden;
  color: #405168;
  font-size: 9px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-export-job-card > .semi-card-header .semi-tag { min-height: 21px; border-radius: 999px; font-size: 7px; }
.v2-export-job-card > .semi-card-body { display: grid; gap: 7px; padding: 9px; }
.v2-export-job-summary { display: grid; min-width: 0; gap: 4px; }
.v2-export-job-summary strong { color: #46586f; font-size: 9px; line-height: 1.45; }
.v2-export-job-summary small {
  overflow: hidden;
  color: #8390a2;
  font-size: 7px;
  line-height: 1.45;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-export-job-progress.semi-progress { margin-top: 1px; }
.v2-export-job-progress .semi-progress-line-text { color: #6d7c90; font-size: 8px; }
.v2-export-job-card .v2-export-download.semi-button {
  width: fit-content;
  height: 26px;
  justify-self: end;
  color: var(--v2-blue);
  font-size: 8px;
}
.v2-history-loading {
  position: sticky;
  left: 0;
  display: grid;
  min-height: 120px;
  place-items: center;
}
.v2-history-loading .semi-spin-tip { color: #6e7f94; font-size: 10px; font-weight: 600; }
.v2-history-empty.semi-empty {
  position: sticky;
  left: 0;
  min-height: 260px;
  justify-content: center;
  padding: 22px;
}
.v2-history-empty .semi-empty-image { width: 72px; height: 58px; }
.v2-history-empty .semi-empty-title { color: #4c5f76; font-size: 13px; font-weight: 700; }
.v2-history-empty .semi-empty-description { max-width: 300px; color: #8794a5; font-size: 10px; line-height: 1.5; }

@media (max-width: 680px) {
  .v2-history-chart-empty.semi-empty,
  .v2-history-chart-loading { min-height: 140px; }
  .v2-history-side-empty.semi-empty { min-height: 180px; }
  .v2-history-evidence-descriptions .semi-descriptions-item { min-height: 40px; }
  .v2-history-evidence-descriptions .semi-descriptions-key,
  .v2-history-evidence-descriptions .semi-descriptions-value { font-size: 10px; }
  .v2-evidence-section-title strong { font-size: 11px; }
  .v2-evidence-values .semi-descriptions-item { min-height: 42px; }
  .v2-evidence-values .semi-descriptions-key > span,
  .v2-evidence-values .semi-descriptions-value { font-size: 10px; }
  .v2-export-jobs > .semi-card-body > .v2-export-job-list { max-height: none; }
  .v2-export-job-card > .semi-card-header .semi-typography { max-width: 210px; font-size: 10px; }
  .v2-export-job-summary strong { font-size: 10px; }
  .v2-export-job-summary small { font-size: 8px; }
}

/* Semi UI alert notifications: card-based delivery records and explicit channel readiness. */
.v2-alert-loading {
  position: absolute;
  z-index: 4;
  inset: 42px 0 auto;
  display: grid;
  min-height: 66px;
  place-items: center;
  background: rgba(255,255,255,.9);
  backdrop-filter: blur(3px);
}
.v2-alert-loading .semi-spin-tip {
  color: #6f8095;
  font-size: 10px;
  font-weight: 600;
}
.v2-alert-empty.semi-empty {
  position: sticky;
  left: 0;
  min-height: 260px;
  justify-content: center;
  padding: 22px;
}
.v2-alert-empty .semi-empty-image { width: 72px; height: 58px; }
.v2-alert-empty .semi-empty-title { color: #4c5f76; font-size: 13px; font-weight: 700; }
.v2-alert-empty .semi-empty-description { max-width: 320px; color: #8794a5; font-size: 10px; line-height: 1.5; }

.v2-alert-notification-list {
  background: #f6f8fb;
  padding: 10px;
}
.v2-alert-notification-cards.semi-card-group {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 9px;
}
.v2-alert-notification-card.semi-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #dfe6ef;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 4px 15px rgba(31,53,80,.04);
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.v2-alert-notification-card.is-unread {
  border-color: #c8dcfa;
  box-shadow: inset 3px 0 #2d7ef7, 0 5px 17px rgba(38,105,203,.06);
}
.v2-alert-notification-card.is-read { opacity: .76; }
.v2-alert-notification-card:hover { border-color: #b9cbe2; box-shadow: 0 7px 19px rgba(31,53,80,.07); transform: translateY(-1px); }
.v2-alert-notification-card > .semi-card-header {
  min-height: 46px;
  background: linear-gradient(180deg,#fff 0%,#fbfcfe 100%);
  padding: 0 11px;
}
.v2-alert-notification-title {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 7px;
}
.v2-alert-notification-title .v2-alert-severity.semi-tag { flex: 0 0 auto; min-height: 22px; font-size: 8px; }
.v2-alert-notification-title > span:last-child {
  min-width: 0;
  overflow: hidden;
  color: #34465d;
  font-size: 11px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-alert-notification-card > .semi-card-header .semi-card-header-wrapper-extra > .semi-tag {
  min-height: 22px;
  border-radius: 999px;
  font-size: 8px;
}
.v2-alert-notification-card > .semi-card-body { display: grid; min-height: 104px; gap: 8px; padding: 0; }
.v2-alert-notification-content {
  margin: 0;
  padding: 11px 12px 0;
  color: #65758a;
  font-size: 10px;
  line-height: 1.6;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.v2-alert-notification-card > .semi-card-body > footer {
  display: flex;
  min-height: 38px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border-top: 1px solid #e9eef4;
  padding: 5px 9px 5px 12px;
  background: #fbfcfe;
}
.v2-alert-notification-card footer .semi-typography { color: #8b97a8; font-size: 9px; }
.v2-alert-notification-card footer .semi-button { height: 28px; border-radius: 7px; color: var(--v2-blue); font-size: 9px; }
.v2-alert-notification-loading,
.v2-alert-notification-empty.semi-empty {
  min-height: 280px;
  justify-content: center;
  padding: 26px;
}
.v2-alert-notification-loading { display: grid; place-items: center; }
.v2-alert-notification-loading .semi-spin-tip { color: #7c899b; font-size: 10px; }
.v2-alert-notification-empty .semi-empty-image {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border-radius: 15px;
  background: #edf4ff;
  color: #347be5;
  font-size: 24px;
}
.v2-alert-notification-empty .semi-empty-title { color: #4c5f76; font-size: 13px; font-weight: 700; }
.v2-alert-notification-empty .semi-empty-description { color: #8794a5; font-size: 10px; }
.v2-alert-channel-card.semi-card {
  min-width: 0;
  flex: 0 0 auto;
  border: 0;
  border-top: 1px solid #dfe6ef;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}
.v2-alert-channel-card > .semi-card-header { min-height: 40px; padding: 0 14px; }
.v2-alert-channel-card > .semi-card-header strong { color: #4c5e74; font-size: 10px; }
.v2-alert-channel-descriptions.semi-descriptions { padding: 5px 14px 9px; }
.v2-alert-channel-descriptions .semi-descriptions-item {
  min-height: 31px;
  padding: 5px 0;
}
.v2-alert-channel-descriptions .semi-descriptions-item-th { width: 150px; padding-right: 10px; }
.v2-alert-channel-descriptions .semi-descriptions-key { color: #718096; font-size: 9px; }
.v2-alert-channel-descriptions .semi-descriptions-value { text-align: right; }
.v2-alert-channel-descriptions .semi-tag { min-height: 22px; border-radius: 999px; font-size: 8px; }

@media (max-width: 900px) {
  .v2-alert-notification-cards.semi-card-group { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
  .v2-alert-notification-list { padding: 8px; }
  .v2-alert-notification-card:hover { transform: none; }
  .v2-alert-notification-card > .semi-card-header { min-height: 48px; padding: 0 10px; }
  .v2-alert-notification-title > span:last-child { font-size: 12px; }
  .v2-alert-notification-content { font-size: 11px; }
  .v2-alert-notification-card footer .semi-typography,
  .v2-alert-notification-card footer .semi-button { font-size: 10px; }
  .v2-alert-channel-card > .semi-card-header { min-height: 44px; padding: 0 12px; }
  .v2-alert-channel-card > .semi-card-header strong { font-size: 11px; }
  .v2-alert-channel-descriptions.semi-descriptions { padding: 5px 12px 9px; }
  .v2-alert-channel-descriptions .semi-descriptions-item { min-height: 36px; }
  .v2-alert-channel-descriptions .semi-descriptions-item-th { width: 135px; }
  .v2-alert-channel-descriptions .semi-descriptions-key,
  .v2-alert-channel-descriptions .semi-descriptions-value { font-size: 10px; }
}

/* Semi UI reconciliation queue: desktop data grid and mobile evidence cards. */
.v2-reconcile-table.semi-table-wrapper {
  width: 100%;
  min-width: 0;
  border-collapse: initial;
  color: #33475e;
}
.v2-reconcile-table .semi-table-container { border: 0; }
.v2-reconcile-table .semi-table-thead > .semi-table-row > .semi-table-row-head {
  height: 40px;
  border-bottom: 1px solid #dfe7f0;
  background: #f7f9fc;
  padding: 0 11px;
  color: #718095;
  font-size: 10px;
  font-weight: 700;
}
.v2-reconcile-table .semi-table-tbody > .semi-table-row {
  cursor: pointer;
  outline: none;
  transition: background-color .14s ease, box-shadow .14s ease;
}
.v2-reconcile-table .semi-table-tbody > .semi-table-row:hover,
.v2-reconcile-table .semi-table-tbody > .semi-table-row:focus-visible { background: #f7fbff; }
.v2-reconcile-table .semi-table-tbody > .semi-table-row.is-selected {
  background: #eef6ff;
  box-shadow: inset 3px 0 #3478d4;
}
.v2-reconcile-table .semi-table-tbody > .semi-table-row > .semi-table-row-cell {
  height: 64px;
  border-bottom: 1px solid #edf1f6;
  padding: 8px 11px;
  vertical-align: middle;
}
.v2-reconcile-cell { display: grid; min-width: 0; gap: 4px; }
.v2-reconcile-cell strong,
.v2-reconcile-cell small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-reconcile-cell strong { color: #2f4359; font-size: 10px; font-weight: 700; }
.v2-reconcile-cell small { color: #8290a2; font-size: 8px; }
.v2-reconcile-mobile-list { display: none; }
.v2-reconcile-loading {
  display: grid;
  min-height: 180px;
  place-items: center;
}
.v2-reconcile-loading .semi-spin-tip,
.v2-reconcile-detail-loading .semi-spin-tip { color: #718197; font-size: 10px; font-weight: 600; }
.v2-reconcile-empty.semi-empty {
  min-height: 220px;
  justify-content: center;
  padding: 24px;
}
.v2-reconcile-empty .semi-empty-image { width: 68px; height: 54px; }
.v2-reconcile-empty .semi-empty-title { color: #4c5f76; font-size: 12px; font-weight: 700; }
.v2-reconcile-empty .semi-empty-description { max-width: 300px; color: #8794a5; font-size: 9px; line-height: 1.5; }
.v2-reconcile-detail-loading { display: grid; min-height: 100%; place-items: center; }

@media (max-width: 680px) {
  .v2-reconcile-table.semi-table-wrapper { display: none; }
  .v2-reconcile-mobile-list {
    display: grid;
    gap: 8px;
    padding: 8px;
    background: #f6f8fb;
  }
  .v2-reconcile-mobile-card.semi-card {
    overflow: hidden;
    border: 1px solid #dfe6ef;
    border-radius: 11px;
    background: #fff;
    box-shadow: 0 4px 14px rgba(31,53,80,.04);
  }
  .v2-reconcile-mobile-card.is-selected {
    border-color: #bcd4f6;
    box-shadow: inset 3px 0 #3478d4, 0 5px 16px rgba(47,111,198,.08);
  }
  .v2-reconcile-mobile-action.semi-button {
    width: 100%;
    height: auto;
    min-height: 172px;
    border-radius: 0;
    padding: 0;
    color: inherit;
    text-align: left;
  }
  .v2-reconcile-mobile-action > .semi-button-content { width: 100%; }
  .v2-reconcile-mobile-content { display: grid; width: 100%; gap: 6px; padding: 11px 12px 9px; }
  .v2-reconcile-mobile-content > header,
  .v2-reconcile-mobile-content > header > span,
  .v2-reconcile-mobile-content > footer { display: flex; align-items: center; }
  .v2-reconcile-mobile-content > header { justify-content: space-between; gap: 8px; }
  .v2-reconcile-mobile-content > header > span { gap: 5px; }
  .v2-reconcile-mobile-content > header small { color: #8a97a8; font-size: 9px; }
  .v2-reconcile-mobile-content > strong { color: #31465d; font-size: 12px; line-height: 1.35; }
  .v2-reconcile-mobile-content > p { margin: 0; color: #78889b; font-size: 10px; }
  .v2-reconcile-mobile-content > dl {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 6px;
    margin: 2px 0 0;
  }
  .v2-reconcile-mobile-content > dl > div { min-width: 0; border-radius: 7px; background: #f5f8fb; padding: 7px 8px; }
  .v2-reconcile-mobile-content dt { color: #8a97a8; font-size: 8px; }
  .v2-reconcile-mobile-content dd { overflow: hidden; margin: 3px 0 0; color: #52667d; font-size: 10px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
  .v2-reconcile-mobile-content > footer {
    min-height: 29px;
    justify-content: flex-end;
    gap: 4px;
    border-top: 1px solid #edf1f5;
    color: #3478d4;
    font-size: 10px;
  }
  .v2-reconcile-table-wrap { min-height: 280px; overflow: visible; }
  .v2-reconcile-empty.semi-empty { min-height: 260px; }
}

/* Semi UI mileage matrix: fixed vehicle and total columns with one responsive data grid. */
.v2-mileage-table.semi-table-wrapper {
  width: 100%;
  min-width: 0;
  border-collapse: initial;
  border-spacing: initial;
  font-size: 11px;
}
.v2-mileage-table .semi-table-container { border: 0; }
.v2-mileage-table table { min-width: 100%; }
.v2-mileage-table .semi-table-body {
  overflow: auto !important;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}
.v2-mileage-table .semi-table-thead > .semi-table-row > .semi-table-row-head {
  height: 46px;
  border-bottom: 1px solid #dfe6ef;
  background: #f5f8fc;
  padding: 0 14px;
  color: #526279;
  font-size: 10px;
  font-weight: 700;
  white-space: nowrap;
}
.v2-mileage-table .semi-table-tbody > .semi-table-row { transition: background-color .14s ease; }
.v2-mileage-table .semi-table-tbody > .semi-table-row:hover { background: #f8fbff; }
.v2-mileage-table .semi-table-tbody > .semi-table-row > .semi-table-row-cell {
  height: 56px;
  border-bottom: 1px solid #e8edf3;
  padding: 0 14px;
  color: #46556a;
  white-space: nowrap;
}
.v2-mileage-table :is(.semi-table-row-head,.semi-table-row-cell).is-number {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.v2-mileage-table :is(.semi-table-row-head,.semi-table-row-cell).is-date { text-align: center; }
.v2-mileage-table :is(.semi-table-row-head,.semi-table-row-cell).is-plate,
.v2-mileage-table :is(.semi-table-row-head,.semi-table-row-cell).semi-table-cell-fixed-left { background: #fff; }
.v2-mileage-table.semi-table-wrapper :is(.semi-table-row-head,.semi-table-row-cell).is-plate {
  position: sticky;
  z-index: 3;
  left: 0;
}
.v2-mileage-table .semi-table-row-head.is-plate { z-index: 5; background: #f7f9fc; }
.v2-mileage-table :is(.semi-table-row-head,.semi-table-row-cell).is-vin {
  border-right: 1px solid #d8e0ea;
  box-shadow: 5px 0 10px rgba(15,23,42,.025);
}
.v2-mileage-table.semi-table-wrapper :is(.semi-table-row-head,.semi-table-row-cell).is-total,
.v2-mileage-table :is(.semi-table-row-head,.semi-table-row-cell).semi-table-cell-fixed-right {
  position: sticky;
  z-index: 3;
  right: 0;
  border-left: 1px solid #d8e0ea;
  background: #fbfdff;
  box-shadow: -5px 0 10px rgba(15,23,42,.025);
}
.v2-mileage-table .semi-table-row-head.is-total { z-index: 5; background: #f1f6fe; color: #315f9f; }
.v2-mileage-table .semi-table-row-cell.is-daily { color: #28496f; font-size: 10px; font-weight: 650; }
.v2-mileage-table .semi-table-row-cell.is-empty { color: #b2bcc9; text-align: center; }
.v2-mileage-table .semi-table-row-cell.is-period { color: #135fcb; font-size: 11px; font-weight: 800; }
.v2-mileage-table .semi-table-row-cell strong { color: #263448; }
.v2-mileage-table .semi-table-row-cell code { color: #69778b; font-family: ui-monospace,SFMono-Regular,Menlo,monospace; font-size: 9px; }
.v2-mileage-loading { flex-direction: column; gap: 7px; }
.v2-mileage-loading .semi-spin-tip { color: #52637a; font-size: 11px; font-weight: 700; }
.v2-mileage-loading > small { color: #8491a3; font-size: 9px; }
.v2-mileage-empty.semi-empty { min-height: 260px; justify-content: center; padding: 24px; }
.v2-mileage-empty .semi-empty-image { width: 72px; height: 58px; }
.v2-mileage-empty .semi-empty-title { color: #4c5f76; font-size: 13px; font-weight: 700; }
.v2-mileage-empty .semi-empty-description { color: #8794a5; font-size: 10px; }

@media (max-width: 680px) {
  .v2-mileage-table.semi-table-wrapper { width: 100%; min-width: 0; font-size: 10px; }
  .v2-mileage-table .semi-table-thead > .semi-table-row > .semi-table-row-head { height: 40px; padding: 0 8px; font-size: 9px; }
  .v2-mileage-table .semi-table-tbody > .semi-table-row > .semi-table-row-cell { height: 46px; padding: 0 8px; font-size: 10px; }
  .v2-mileage-table :is(.semi-table-row-head,.semi-table-row-cell).is-plate { width: 96px; min-width: 96px; max-width: 96px; }
  .v2-mileage-table :is(.semi-table-row-head,.semi-table-row-cell).is-date { width: 78px; min-width: 78px; }
  .v2-mileage-table :is(.semi-table-row-head,.semi-table-row-cell).is-total { width: 108px; min-width: 108px; }
  .v2-mileage-table .semi-table-row-cell.is-daily { font-size: 9px; }
  .v2-mileage-table .semi-table-row-cell.is-period { font-size: 10px; }
  .v2-mileage-loading { min-height: 260px; }
}

/* Semi UI monitor list: realtime desktop grid and shared async feedback. */
.v2-monitor-table.semi-table-wrapper {
  width: 100%;
  min-width: 1080px;
  color: #46566c;
}
.v2-monitor-table .semi-table-container { border: 0; }
.v2-monitor-table-scroll .v2-monitor-table.semi-table-wrapper .semi-table-thead > .semi-table-row > .semi-table-row-head {
  position: sticky;
  z-index: 3;
  top: 0;
  height: 42px;
  border-bottom: 1px solid #dce4ee;
  background: #f7f9fc;
  padding: 0 14px;
  color: #607086;
  font-size: 10px;
  font-weight: 700;
}
.v2-monitor-table .semi-table-tbody > .semi-table-row { transition: background-color .14s ease; }
.v2-monitor-table .semi-table-tbody > .semi-table-row:hover { background: #f8fbff; }
.v2-monitor-table .semi-table-tbody > .semi-table-row > .semi-table-row-cell {
  height: 62px;
  border-bottom: 1px solid #edf1f6;
  padding: 7px 14px;
  vertical-align: middle;
}
.v2-monitor-table-loading {
  position: sticky;
  z-index: 4;
  bottom: 0;
  min-height: 36px;
  height: auto;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(3px);
}
.v2-monitor-table-loading .semi-spin-wrapper { display: flex; align-items: center; gap: 7px; }
.v2-monitor-table-loading .semi-spin-tip { margin-top: 0; color: #607086; font-size: 10px; font-weight: 600; }
.v2-monitor-table-empty.semi-empty {
  position: sticky;
  left: 0;
  min-height: 260px;
  justify-content: center;
  padding: 24px;
}
.v2-monitor-table-empty .semi-empty-image { width: 70px; height: 56px; }
.v2-monitor-table-empty .semi-empty-title { color: #4b5f76; font-size: 13px; font-weight: 700; }
.v2-monitor-table-empty .semi-empty-description { color: #8794a5; font-size: 10px; }
.v2-monitor-address-loading .semi-spin { flex: 0 0 auto; }

/* Semi UI access fleet: one interaction model for dense source-health inspection. */
.v2-access-semi-table.semi-table-wrapper {
  width: 100%;
  min-width: 1030px;
  color: #48576c;
  font-size: 12px;
}
.v2-access-semi-table .semi-table-container { border: 0; }
.v2-access-table-scroll-v3 .v2-access-semi-table .semi-table-body { overflow: visible; }
.v2-access-table-scroll-v3 .v2-access-semi-table.semi-table-wrapper .semi-table-thead > .semi-table-row > .semi-table-row-head {
  position: sticky;
  z-index: 3;
  top: 0;
  height: 42px;
  border-bottom: 1px solid #dfe5ed;
  background: #f7f9fc;
  padding: 8px 11px;
  color: #647287;
  font-size: 11px;
  font-weight: 700;
}
.v2-access-semi-table .semi-table-tbody > .semi-table-row {
  cursor: pointer;
  transition: background-color .14s ease, box-shadow .14s ease;
}
.v2-access-semi-table .semi-table-tbody > .semi-table-row:hover > .semi-table-row-cell,
.v2-access-semi-table .semi-table-tbody > .semi-table-row.is-selected > .semi-table-row-cell {
  background: #f2f7ff;
}
.v2-access-semi-table .semi-table-tbody > .semi-table-row:focus-visible {
  outline: 0;
  box-shadow: inset 3px 0 0 #2f7de1, inset 0 0 0 2px rgba(47,125,225,.22);
}
.v2-access-semi-table .semi-table-tbody > .semi-table-row > .semi-table-row-cell {
  height: 67px;
  border-bottom: 1px solid #edf1f5;
  padding: 8px 11px;
  vertical-align: middle;
}
.v2-access-primary-cell,
.v2-access-source-cell {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 5px;
}
.v2-access-primary-cell > strong,
.v2-access-source-cell > b {
  overflow: hidden;
  color: #314158;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-access-primary-cell > span,
.v2-access-source-cell > span {
  overflow: hidden;
  color: #8793a5;
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Semi UI alert events: dense evidence grid with a single responsive render path. */
.v2-alert-event-table.semi-table-wrapper {
  width: 100%;
  min-width: 1410px;
  color: #4e5b6f;
  font-size: 11px;
}
.v2-alert-event-table .semi-table-container { border: 0; }
.v2-alert-table-scroll .v2-alert-event-table .semi-table-body { overflow: visible; }
.v2-alert-table-scroll .v2-alert-event-table.semi-table-wrapper .semi-table-thead > .semi-table-row > .semi-table-row-head {
  position: sticky;
  z-index: 4;
  top: 0;
  height: 40px;
  max-width: none;
  border-right: 1px solid #edf1f6;
  border-bottom: 1px solid #dfe6ef;
  background: #f7f9fc;
  padding: 0 9px;
  color: #607086;
  font-size: 10px;
  font-weight: 700;
}
.v2-alert-event-table .semi-table-tbody > .semi-table-row {
  cursor: pointer;
  transition: background-color .14s ease, box-shadow .14s ease;
}
.v2-alert-event-table .semi-table-tbody > .semi-table-row:hover > .semi-table-row-cell,
.v2-alert-event-table .semi-table-tbody > .semi-table-row.is-selected > .semi-table-row-cell {
  background: #f2f7ff;
}
.v2-alert-event-table .semi-table-tbody > .semi-table-row.is-selected > .semi-table-row-cell:first-child {
  box-shadow: inset 3px 0 #2f7de1;
}
.v2-alert-event-table .semi-table-tbody > .semi-table-row:focus-visible {
  outline: 0;
  box-shadow: inset 0 0 0 2px rgba(47,125,225,.24);
}
.v2-alert-event-table .semi-table-tbody > .semi-table-row > .semi-table-row-cell {
  height: 46px;
  max-width: none;
  border-right: 1px solid #eef2f7;
  border-bottom: 1px solid #eef2f7;
  padding: 6px 9px;
  font-variant-numeric: tabular-nums;
  vertical-align: middle;
}
.v2-alert-event-table .semi-radio { display: inline-flex; }
.v2-alert-event-vehicle {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 3px;
}
.v2-alert-event-vehicle strong,
.v2-alert-event-vehicle small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-alert-event-vehicle strong { color: #34445a; font-size: 11px; }
.v2-alert-event-vehicle small { color: #8b97a8; font-size: 9px; }
.v2-alert-event-rule,
.v2-alert-event-location {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Semi UI history data: dynamic protocol columns with one responsive render path. */
.v2-history-data-table.semi-table-wrapper {
  width: 100%;
  color: #4e5b6f;
  font-size: 11px;
}
.v2-history-data-table .semi-table-container { border: 0; }
.v2-history-table-scroll .v2-history-data-table .semi-table-body { overflow: visible; }
.v2-history-table-scroll .v2-history-data-table.semi-table-wrapper .semi-table-thead > .semi-table-row > .semi-table-row-head {
  position: sticky;
  z-index: 4;
  top: 0;
  height: 42px;
  max-width: none;
  border-right: 1px solid #edf1f6;
  border-bottom: 1px solid #dfe6ef;
  background: #f7f9fc;
  padding: 0 9px;
  color: #607086;
  font-size: 10px;
  font-weight: 700;
}
.v2-history-data-table .semi-table-tbody > .semi-table-row {
  cursor: pointer;
  transition: background-color .14s ease, box-shadow .14s ease;
}
.v2-history-data-table .semi-table-tbody > .semi-table-row:hover > .semi-table-row-cell,
.v2-history-data-table .semi-table-tbody > .semi-table-row.is-selected > .semi-table-row-cell {
  background: #f2f7ff;
}
.v2-history-data-table .semi-table-tbody > .semi-table-row.is-selected > .semi-table-row-cell:first-child {
  box-shadow: inset 3px 0 #2f7de1;
}
.v2-history-data-table .semi-table-tbody > .semi-table-row:focus-visible {
  outline: 0;
  box-shadow: inset 0 0 0 2px rgba(47,125,225,.24);
}
.v2-history-data-table .semi-table-tbody > .semi-table-row > .semi-table-row-cell {
  height: 46px;
  max-width: none;
  border-right: 1px solid #eef2f7;
  border-bottom: 1px solid #eef2f7;
  padding: 6px 9px;
  font-variant-numeric: tabular-nums;
  vertical-align: middle;
}
.v2-history-table-card.is-comfortable .v2-history-data-table .semi-table-tbody > .semi-table-row > .semi-table-row-cell { height: 58px; }
.v2-history-data-table .semi-checkbox { display: inline-flex; }
.v2-history-vin,
.v2-history-data-table .v2-history-quality-reason > span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-history-data-table .v2-history-quality-reason { color: #66758a; }
.v2-history-data-table .semi-table-row-cell > .semi-button {
  height: 28px;
  border-radius: 6px;
  padding: 0 7px;
  color: var(--v2-blue);
  font-size: 10px;
}

/* Semi UI source diagnostics: one dense desktop table and task-focused mobile cards. */
.v2-source-table-wrap {
  margin: 0 14px 12px;
  overflow: hidden;
  border: 1px solid #dce5ef;
  border-radius: 10px;
  background: #fff;
}
.v2-source-table.semi-table-wrapper {
  width: 100%;
  min-width: 0;
  border: 0;
  table-layout: initial;
}
.v2-source-table .semi-table-container { border: 0; }
.v2-source-table .semi-table-body { overflow-x: auto; }
.v2-source-table .semi-table-thead > .semi-table-row > .semi-table-row-head {
  height: 42px;
  border-color: #e3e9f1;
  background: #f5f7fa;
  padding: 0 11px;
  color: #66788e;
  font-size: 10px;
  font-weight: 650;
  vertical-align: middle;
}
.v2-source-table .semi-table-tbody > .semi-table-row > .semi-table-row-cell {
  height: auto;
  min-height: 76px;
  border-color: #e8edf3;
  padding: 11px;
  color: #384c63;
  font-size: 11px;
  line-height: 1.5;
  vertical-align: top;
}
.v2-source-table .semi-table-tbody > .semi-table-row:hover > .semi-table-row-cell { background: #f8fbff; }
.v2-source-table .semi-table-tbody > .semi-table-row.is-recommended > .semi-table-row-cell { background: #f2faf7; }
.v2-source-table .semi-table-tbody > .semi-table-row.is-recommended:hover > .semi-table-row-cell { background: #ebf7f2; }
.v2-source-table .semi-table-tbody > .semi-table-row.is-recommended > .semi-table-row-cell:first-child { box-shadow: inset 3px 0 #22a878; }
.v2-source-cell {
  display: grid;
  min-width: 0;
  gap: 5px;
}
.v2-source-cell > strong,
.v2-source-cell > span > strong {
  overflow: hidden;
  color: #2c4159;
  font-size: 11px;
  font-weight: 680;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-source-cell > small {
  display: block;
  overflow: hidden;
  color: #7e8c9f;
  font-size: 9px;
  line-height: 1.5;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-source-identity-cell > span,
.v2-source-health-cell > span {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 6px;
}
.v2-source-identity-cell .semi-tag,
.v2-source-cell > .semi-tag {
  width: max-content;
  min-height: 22px;
  border-radius: 999px;
  font-size: 9px;
}
.v2-source-health-cell i {
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #94a3b8;
  box-shadow: 0 0 0 3px rgba(148,163,184,.12);
}
.v2-source-health-cell i.is-online { background: #22a878; box-shadow: 0 0 0 3px rgba(34,168,120,.12); }
.v2-source-reason small {
  overflow: visible;
  line-height: 1.55;
  text-overflow: clip;
  white-space: normal;
}
.v2-source-policy-cell {
  display: grid;
  min-width: 250px;
  grid-template-columns: minmax(86px,auto) 76px;
  gap: 7px;
}
.v2-source-policy-cell > .semi-checkbox { min-height: 32px; font-size: 10px; }
.v2-source-policy-cell > .semi-input-wrapper {
  height: 32px;
  border-color: #d5deea;
  border-radius: 7px;
}
.v2-source-policy-cell > .semi-input-wrapper .semi-input { height: 30px; font-size: 10px; }
.v2-source-policy-cell > .semi-button {
  width: 100%;
  height: 32px;
  grid-column: 1 / -1;
  border-radius: 7px;
  font-size: 10px;
}
.v2-source-policy-summary {
  display: grid;
  min-width: 0;
  gap: 7px;
}
.v2-source-policy-summary > span { display: flex; min-width: 0; align-items: center; gap: 7px; }
.v2-source-policy-summary .semi-tag { min-height: 22px; border-radius: 999px; font-size: 9px; }
.v2-source-policy-summary b { color: #53667d; font-size: 10px; font-weight: 600; }
.v2-source-policy-summary small { overflow: hidden; color: #8794a6; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.v2-source-policy-summary > .semi-button { width: max-content; height: 28px; border-radius: 6px; padding: 0 9px; font-size: 9px; }
.v2-source-policy-sidesheet .semi-sidesheet-inner { width: min(440px,100vw) !important; }
.v2-source-policy-sidesheet .semi-sidesheet-header {
  min-height: 66px;
  border-bottom: 1px solid #e1e8f0;
  background: linear-gradient(180deg,#fff,#f8fafd);
  padding: 12px 16px;
}
.v2-source-policy-sheet-title { display: grid; gap: 4px; }
.v2-source-policy-sheet-title strong { color: #263d55; font-size: 16px; }
.v2-source-policy-sheet-title span { color: #7c8b9e; font-size: 10px; font-weight: 400; }
.v2-source-policy-sidesheet .semi-sidesheet-body { background: #f5f7fa; padding: 14px; }
.v2-source-policy-sheet-content { display: grid; gap: 12px; }
.v2-source-policy-sheet-summary {
  display: grid;
  grid-template-columns: minmax(0,.7fr) minmax(0,1.3fr);
  gap: 12px;
  border: 1px solid #dfe7f0;
  border-radius: 10px;
  background: #fff;
  padding: 12px;
}
.v2-source-policy-sheet-content > .v2-source-policy-cell {
  min-width: 0;
  grid-template-columns: minmax(96px,auto) 84px;
  gap: 9px;
  border: 1px solid #dfe7f0;
  border-radius: 10px;
  background: #fff;
  padding: 14px;
}
.v2-source-policy-sheet-content > .v2-source-policy-cell > .semi-checkbox,
.v2-source-policy-sheet-content > .v2-source-policy-cell > .semi-input-wrapper,
.v2-source-policy-sheet-content > .v2-source-policy-cell > .semi-button { min-height: 38px; }
.v2-source-policy-sheet-content > .v2-source-policy-cell > .semi-input-wrapper .semi-input { height: 36px; font-size: 12px; }
.v2-source-policy-sheet-content > .v2-source-policy-cell > .semi-button { height: 38px; font-size: 12px; }
.v2-source-mobile-list { display: none; }

@media (max-width: 680px) {
  .v2-source-table-wrap { display: none; }
  .v2-source-mobile-list {
    display: grid;
    gap: 10px;
    padding: 0 10px 10px;
  }
  .v2-source-mobile-card.semi-card {
    overflow: hidden;
    border: 1px solid #dce5ef;
    border-radius: 11px;
    background: #fff;
    box-shadow: 0 5px 18px rgba(31,53,80,.05);
  }
  .v2-source-mobile-card.semi-card.is-recommended {
    border-color: #adddcc;
    box-shadow: inset 3px 0 #22a878, 0 7px 20px rgba(31,53,80,.06);
  }
  .v2-source-mobile-card > .semi-card-body > header {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: start;
    gap: 10px;
    border-bottom: 1px solid #e6ecf3;
    background: linear-gradient(180deg,#fff,#fafcfe);
    padding: 12px 13px;
  }
  .v2-source-mobile-card > .semi-card-body > header .v2-source-health-cell { min-width: 66px; justify-items: end; }
  .v2-source-mobile-card > .semi-card-body > header .v2-source-health-cell small { max-width: 120px; text-align: right; white-space: normal; }
  .v2-source-mobile-descriptions.semi-descriptions { width: 100%; padding: 4px 13px; }
  .v2-source-mobile-descriptions table { width: 100%; table-layout: fixed; }
  .v2-source-mobile-descriptions .semi-descriptions-item { min-height: 54px; border-bottom: 1px solid #edf1f5; padding: 9px 0; }
  .v2-source-mobile-descriptions .semi-descriptions-item-th { width: 104px; padding-right: 10px; }
  .v2-source-mobile-descriptions .semi-descriptions-key { color: #7c8b9e; font-size: 10px; font-weight: 500; }
  .v2-source-mobile-descriptions .semi-descriptions-value { min-width: 0; color: #33485f; font-size: 11px; }
  .v2-source-mobile-descriptions .v2-source-cell > strong,
  .v2-source-mobile-descriptions .v2-source-cell > span > strong { font-size: 11px; white-space: normal; }
  .v2-source-mobile-descriptions .v2-source-cell > small { font-size: 10px; white-space: normal; }
  .v2-source-mobile-card > .semi-card-body > section { padding: 11px 13px 13px; }
  .v2-source-mobile-card > .semi-card-body > section > strong {
    display: block;
    margin-bottom: 9px;
    color: #30465e;
    font-size: 12px;
  }
  .v2-source-mobile-card .v2-source-policy-cell {
    min-width: 0;
    grid-template-columns: minmax(0,1fr) 84px;
    gap: 8px;
  }
  .v2-source-mobile-card .v2-source-policy-cell > .semi-checkbox,
  .v2-source-mobile-card .v2-source-policy-cell > .semi-input-wrapper,
  .v2-source-mobile-card .v2-source-policy-cell > .semi-button { min-height: 40px; }
  .v2-source-mobile-card .v2-source-policy-cell > .semi-input-wrapper .semi-input { height: 38px; font-size: 12px; }
  .v2-source-mobile-card .v2-source-policy-cell > .semi-button { height: 40px; font-size: 12px; }
  .v2-source-policy-sidesheet .semi-sidesheet-body { padding: 10px; }
  .v2-source-policy-sheet-summary { grid-template-columns: 1fr; }
}

/* Semi UI account workspace: searchable directory, task tabs and a compact mobile switcher. */
.v2-user-admin-grid {
  align-items: start;
  grid-template-columns: 310px minmax(0,1fr);
  gap: 14px;
}
.v2-user-list.semi-card {
  position: sticky;
  top: 14px;
  max-height: calc(100vh - 122px);
  border-color: #dce5ef;
  background: #fff;
}
.v2-user-list > .semi-card-body {
  display: flex;
  min-height: 0;
  flex-direction: column;
  padding: 14px;
}
.v2-user-directory-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 2px 2px 13px;
}
.v2-user-directory-heading > span { display: flex; align-items: baseline; gap: 7px; }
.v2-user-directory-heading strong { color: #263b54; font-size: 24px; letter-spacing: -.04em; }
.v2-user-directory-heading small { color: #7b899b; font-size: 11px; font-weight: 650; }
.v2-user-directory-heading .semi-tag { min-height: 23px; border-radius: 999px; font-size: 9px; font-weight: 650; }
.v2-user-list-search.semi-input-wrapper {
  min-height: 38px;
  flex: 0 0 auto;
  margin-bottom: 11px;
  border: 1px solid #d9e3ee;
  border-radius: 9px;
  background: #f8fafc;
}
.v2-user-list-search.semi-input-wrapper-focus {
  border-color: #8fb7f4;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(18,104,243,.08);
}
.v2-user-list-search .semi-input { height: 36px; font-size: 12px; }
.v2-customer-list.semi-list {
  min-height: 0;
  overflow: auto;
  padding-right: 2px;
}
.v2-customer-list .semi-list-items { display: grid; gap: 7px; }
.v2-customer-list .v2-user-list-row.semi-list-item {
  overflow: hidden;
  min-height: 62px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: #f7f9fc;
  padding: 0;
  transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.v2-customer-list .v2-user-list-row.semi-list-item:hover {
  border-color: #d2deeb;
  background: #fff;
  box-shadow: 0 6px 16px rgba(38,62,91,.06);
  transform: translateY(-1px);
}
.v2-customer-list .v2-user-list-row.is-active.semi-list-item {
  border-color: #a8c8f6;
  background: linear-gradient(110deg,#edf5ff 0%,#f8fbff 100%);
  box-shadow: inset 3px 0 var(--v2-blue), 0 6px 18px rgba(18,104,243,.07);
}
.v2-customer-list .v2-user-list-item.semi-button {
  display: flex;
  width: 100%;
  height: auto;
  min-height: 62px;
  justify-content: stretch;
  border-radius: 10px;
  background: transparent;
  padding: 9px 10px;
  color: #273750;
  text-align: left;
}
.v2-customer-list .v2-user-list-item.semi-button:hover { background: transparent; }
.v2-customer-list .v2-user-list-row.is-active .v2-user-list-trailing > svg { color: var(--v2-blue); }
.v2-user-filter-empty.semi-empty { min-height: 170px; justify-content: center; padding: 18px 8px; }
.v2-user-filter-empty .semi-empty-image { display: none; }
.v2-user-filter-empty .semi-empty-title { color: #4e6179; font-size: 12px; font-weight: 700; }
.v2-user-filter-empty .semi-empty-description { color: #8794a5; font-size: 10px; }
.v2-user-mobile-picker { display: none; }
.v2-user-editor.semi-card { border-color: #dce5ef; background: #fff; }
.v2-user-editor form {
  min-height: 690px;
  gap: 14px;
  padding: 20px;
}
.v2-user-editor-title { min-height: 76px; align-items: center; padding: 15px 18px; }
.v2-user-editor-title h3 { font-size: 21px; }
.v2-user-editor-title p { font-size: 11px; }
.v2-user-editor-tabs.semi-tabs {
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
  border: 1px solid #dfe6ef;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 5px 18px rgba(31,53,80,.035);
}
.v2-user-editor-tabs > .semi-tabs-bar {
  min-height: 51px;
  border-bottom: 1px solid #e5ebf2;
  background: linear-gradient(180deg,#fff,#fafcfe);
  padding: 0 16px;
}
.v2-user-editor-tabs > .semi-tabs-bar .semi-tabs-tab {
  min-height: 50px;
  margin: 0 24px 0 0;
  padding: 0 2px;
  color: #6c7b8e;
  font-size: 12px;
  font-weight: 650;
}
.v2-user-editor-tabs > .semi-tabs-bar .semi-tabs-tab-active { color: var(--v2-blue); }
.v2-user-tab-label { display: inline-flex; align-items: center; gap: 7px; }
.v2-user-tab-label .semi-tag { min-width: 22px; min-height: 20px; justify-content: center; border-radius: 999px; padding: 0 6px; font-size: 9px; }
.v2-user-editor-tabs > .semi-tabs-content { background: #f5f7fa; padding: 14px; }
.v2-user-editor-tabs .v2-user-editor-section.semi-card { margin: 0; box-shadow: none; }
.v2-user-editor form > footer {
  position: sticky;
  z-index: 2;
  bottom: 0;
  align-items: center;
  min-height: 58px;
  justify-content: flex-end;
  border-top: 1px solid #e3e9f1;
  background: rgba(255,255,255,.94);
  margin: 0 -20px -20px;
  padding: 9px 20px;
  backdrop-filter: blur(10px);
}
.v2-user-editor form > footer .semi-button { min-width: 128px; }

@media (max-width: 680px) {
  .v2-user-admin-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 8px; overflow: visible; }
  .v2-user-list.semi-card { position: static; max-height: none; border-radius: 10px; }
  .v2-user-list > .semi-card-body { display: block; padding: 10px; }
  .v2-user-directory-heading { padding: 0 1px 9px; }
  .v2-user-directory-heading strong { font-size: 21px; }
  .v2-user-directory-heading small { font-size: 10px; }
  .v2-user-list-search,
  .v2-customer-list { display: none; }
  .v2-user-mobile-picker { display: grid; gap: 7px; }
  .v2-user-mobile-picker > label { color: #68788d; font-size: 10px; font-weight: 650; }
  .v2-user-mobile-picker > .semi-select {
    width: 100%;
    min-height: 42px;
    border: 1px solid #d7e1ec;
    border-radius: 9px;
    background: #f8fafc;
  }
  .v2-user-mobile-picker > .semi-select .semi-select-selection { min-height: 40px; font-size: 12px; }
  .v2-user-mobile-picker > small { color: #8794a5; font-size: 9px; line-height: 1.45; }
  .v2-user-select-option { display: grid; gap: 2px; padding: 2px 0; }
  .v2-user-select-option b { color: #354a62; font-size: 12px; }
  .v2-user-select-option small { color: #8390a2; font-size: 9px; }
  .v2-user-editor form { min-height: 0; gap: 8px; padding: 9px; }
  .v2-user-editor-title { min-height: 66px; border-radius: 9px; padding: 12px; }
  .v2-user-editor-title h3 { font-size: 18px; }
  .v2-user-editor-title p { overflow: hidden; max-width: 230px; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
  .v2-user-editor-tabs.semi-tabs { border-radius: 9px; }
  .v2-user-editor-tabs > .semi-tabs-bar { min-height: 47px; overflow-x: auto; padding: 0 9px; }
  .v2-user-editor-tabs > .semi-tabs-bar .semi-tabs-tab { min-height: 46px; flex: 0 0 auto; margin-right: 17px; font-size: 11px; }
  .v2-user-editor-tabs > .semi-tabs-content { padding: 8px; }
  .v2-user-editor-section > .semi-card-header { min-height: 44px; }
  .v2-user-editor-section > .semi-card-body { padding: 11px; }
  .v2-user-editor form > footer {
    bottom: 66px;
    min-height: 60px;
    margin: 0 -9px -9px;
    padding: 8px 9px;
  }
  .v2-user-editor form > footer .semi-button { width: 100%; min-width: 0; height: 44px; justify-content: center; }
}

/* Semi UI vehicle evidence: full-width telemetry table and responsive evidence cards. */
.v2-record-grid {
  grid-template-rows: minmax(300px,1.05fr) auto auto;
}
.v2-telemetry-card.semi-card {
  grid-column: 1 / -1;
  grid-row: 2;
  content-visibility: visible;
}
.v2-archive-card.semi-card {
  grid-column: 1 / -1;
  grid-row: 3;
}
.v2-event-list.semi-list { padding: 4px 14px 10px; }
.v2-event-list .semi-list-items { display: grid; }
.v2-event-list .v2-event-row.semi-list-item {
  position: relative;
  display: grid;
  min-height: 46px;
  grid-template-columns: 25px minmax(0,1fr) auto;
  align-items: center;
  gap: 8px;
  border: 0;
  padding: 5px 0;
}
.v2-event-list .v2-event-row.semi-list-item:not(:last-child)::after {
  position: absolute;
  top: 34px;
  bottom: -12px;
  left: 11px;
  width: 1px;
  background: #dfe7f0;
  content: '';
}
.v2-event-list .v2-event-row strong { color: #33485f; font-size: 10px; }
.v2-event-list .v2-event-row p { color: #7d8b9e; font-size: 9px; }
.v2-event-list .v2-event-row time { color: #8795a7; font-size: 9px; }
.v2-event-empty.semi-empty { min-height: 225px; justify-content: center; padding: 22px; }
.v2-event-empty .semi-empty-image { width: 72px; height: 58px; }
.v2-event-empty .semi-empty-title { color: #43576f; font-size: 12px; font-weight: 700; }
.v2-event-empty .semi-empty-description { max-width: 260px; color: #8492a4; font-size: 10px; line-height: 1.55; }
.v2-telemetry-table-wrap {
  overflow: hidden;
  margin: 12px 14px 4px;
  border: 1px solid #dce5ef;
  border-radius: 9px;
  background: #fff;
}
.v2-telemetry-table.semi-table-wrapper { width: 100%; }
.v2-telemetry-table .semi-table-container { border: 0; }
.v2-telemetry-table .semi-table-thead > .semi-table-row > .semi-table-row-head {
  min-height: 40px;
  border-bottom: 1px solid #dce5ef;
  background: #f5f8fb;
  padding: 10px 12px;
  color: #65758a;
  font-size: 10px;
  font-weight: 700;
}
.v2-telemetry-table .semi-table-tbody > .semi-table-row > .semi-table-row-cell {
  min-height: 58px;
  border-bottom: 1px solid #e8edf3;
  padding: 10px 12px;
  vertical-align: middle;
}
.v2-telemetry-table .semi-table-tbody > .semi-table-row:last-child > .semi-table-row-cell { border-bottom: 0; }
.v2-telemetry-table .semi-table-tbody > .semi-table-row:hover > .semi-table-row-cell { background: #f7faff; }
.v2-telemetry-field,
.v2-telemetry-quality,
.v2-telemetry-time,
.v2-telemetry-source { display: grid; min-width: 0; gap: 4px; }
.v2-telemetry-field strong {
  overflow: hidden;
  color: #30455d;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-telemetry-field small {
  overflow: hidden;
  color: #8a98aa;
  font: 9px ui-monospace,SFMono-Regular,Menlo,monospace;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-telemetry-value { display: flex; min-width: 0; align-items: baseline; gap: 5px; }
.v2-telemetry-value strong {
  overflow: hidden;
  color: #263c55;
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.v2-telemetry-value span { color: #7d8b9e; font-size: 9px; }
.v2-telemetry-value.is-complex { display: block; }
.v2-telemetry-value.is-complex.is-static {
  display: grid;
  max-width: 150px;
  justify-items: end;
  gap: 3px;
  text-align: right;
}
.v2-telemetry-value.is-complex.is-static strong,
.v2-telemetry-value.is-complex.is-static small {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-telemetry-value.is-complex.is-static small {
  color: #8492a4;
  font-size: 8px;
}
.v2-telemetry-value-trigger.semi-button {
  width: 100%;
  height: auto;
  min-height: 36px;
  justify-content: flex-start;
  border-radius: 7px;
  padding: 4px 6px;
  color: #315f9f;
  text-align: left;
}
.v2-telemetry-value-trigger .semi-button-content {
  display: grid;
  width: 100%;
  min-width: 0;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 7px;
}
.v2-telemetry-value-trigger .semi-button-content > span {
  display: grid;
  min-width: 0;
  gap: 3px;
}
.v2-telemetry-value-trigger .semi-button-content strong,
.v2-telemetry-value-trigger .semi-button-content small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-telemetry-value-trigger .semi-button-content strong { color: #245f9f; font-size: 11px; }
.v2-telemetry-value-trigger .semi-button-content small { color: #8492a4; font-size: 8px; font-weight: 500; }
.v2-telemetry-value-trigger .semi-icon { flex: 0 0 auto; color: #7d9ac2; font-size: 12px; }
.v2-telemetry-value-trigger:hover { background: #edf5ff; }
.v2-telemetry-quality { justify-items: start; }
.v2-telemetry-quality .semi-tag { min-height: 22px; border-radius: 999px; font-size: 9px; font-weight: 650; }
.v2-telemetry-quality small,
.v2-telemetry-source small { overflow: hidden; color: #7f8d9f; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.v2-telemetry-time { gap: 3px; }
.v2-telemetry-time > span { display: grid; grid-template-columns: 30px minmax(0,1fr); gap: 6px; color: #4b6078; font-size: 9px; font-variant-numeric: tabular-nums; }
.v2-telemetry-time > span small { color: #93a0b0; font-size: 8px; }
.v2-telemetry-source .semi-tag { width: max-content; min-height: 22px; border-radius: 7px; font-size: 9px; }
.v2-telemetry-state {
  display: grid;
  min-height: 170px;
  place-content: center;
  justify-items: center;
  gap: 6px;
  color: #8190a3;
}
.v2-telemetry-state strong { color: #42566e; font-size: 13px; }
.v2-telemetry-state span { font-size: 10px; }
.v2-telemetry-state.is-error strong,
.v2-telemetry-state.is-error span { color: var(--v2-red); }
.v2-telemetry-empty.semi-empty { min-height: 170px; justify-content: center; padding: 22px; }
.v2-telemetry-empty .semi-empty-image { width: 72px; height: 58px; }
.v2-telemetry-empty .semi-empty-title { color: #43576f; font-size: 12px; font-weight: 700; }
.v2-telemetry-empty .semi-empty-description { color: #8492a4; font-size: 10px; }
.v2-telemetry-mobile-list { display: none; }
.v2-telemetry-card > .semi-card-body > footer { min-height: 40px; margin-top: 10px; }
.v2-telemetry-value-sidesheet .semi-sidesheet-inner { max-width: 100vw; }
.v2-telemetry-value-sidesheet .semi-sidesheet-header { border-bottom: 1px solid #e3e9f1; padding: 18px 20px 15px; }
.v2-telemetry-value-title { display: grid; min-width: 0; gap: 4px; }
.v2-telemetry-value-title strong {
  overflow: hidden;
  color: #243a53;
  font-size: 16px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-telemetry-value-title span {
  overflow: hidden;
  color: #8391a3;
  font: 9px ui-monospace,SFMono-Regular,Menlo,monospace;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-telemetry-value-sidesheet .semi-sidesheet-body { background: #f6f8fb; padding: 16px; }
.v2-telemetry-value-detail { display: grid; gap: 12px; }
.v2-telemetry-value-meta.semi-descriptions {
  border: 1px solid #dfe6ef;
  border-radius: 10px;
  background: #fff;
  padding: 12px 14px;
}
.v2-telemetry-value-meta .semi-descriptions-item { min-width: 130px; padding-block: 5px; }
.v2-telemetry-value-meta .semi-descriptions-key { color: #8a97a8; font-size: 9px; }
.v2-telemetry-value-meta .semi-descriptions-value { color: #3d5067; font-size: 10px; font-weight: 650; }
.v2-telemetry-detail-protocol.semi-tag,
.v2-telemetry-detail-quality.semi-tag {
  min-height: 22px;
  margin: 0;
  border-radius: 999px;
}
.v2-telemetry-value-detail > section {
  overflow: hidden;
  border: 1px solid #dfe6ef;
  border-radius: 10px;
  background: #fff;
}
.v2-telemetry-value-detail > section > header {
  display: flex;
  min-height: 54px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid #e4e9f0;
  padding: 9px 12px 9px 15px;
}
.v2-telemetry-value-detail > section > header > div { display: grid; min-width: 0; gap: 3px; }
.v2-telemetry-value-detail > section > header strong { color: #30445c; font-size: 12px; }
.v2-telemetry-value-detail > section > header small { color: #8a97a8; font-size: 9px; }
.v2-telemetry-value-detail > section > header .semi-button { flex: 0 0 auto; }
.v2-telemetry-value-detail pre {
  max-height: min(54vh,560px);
  margin: 0;
  overflow: auto;
  background: #f8fafc;
  padding: 15px;
  color: #31465e;
  font: 10px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace;
  tab-size: 2;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.v2-telemetry-value-detail > footer {
  display: grid;
  min-width: 0;
  grid-template-columns: auto minmax(0,1fr);
  align-items: center;
  gap: 9px;
  border: 1px solid #dfe6ef;
  border-radius: 9px;
  background: #fff;
  padding: 10px 12px;
}
.v2-telemetry-value-detail > footer span { color: #8a97a8; font-size: 9px; }
.v2-telemetry-value-detail > footer strong {
  overflow: hidden;
  color: #52667d;
  font: 9px ui-monospace,SFMono-Regular,Menlo,monospace;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-telemetry-value-footer { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 14px; }
.v2-telemetry-value-footer span { color: #7e8d9f; font-size: 9px; }

@media (max-width: 680px) {
  .v2-record-grid { grid-template-rows: none; }
  .v2-telemetry-card.semi-card,
  .v2-archive-card.semi-card { grid-column: auto; grid-row: auto; }
  .v2-event-list.semi-list { padding: 4px 12px 9px; }
  .v2-event-list .v2-event-row.semi-list-item { min-height: 50px; grid-template-columns: 25px minmax(0,1fr); padding: 6px 0; }
  .v2-event-list .v2-event-row time { grid-column: 2; margin-top: -5px; text-align: left; }
  .v2-event-list .v2-event-row.semi-list-item:not(:last-child)::after { top: 36px; bottom: -14px; }
  .v2-event-empty.semi-empty { min-height: 150px; }
  .v2-telemetry-table-wrap { display: none; }
  .v2-telemetry-mobile-list.semi-list { display: block; padding: 9px; }
  .v2-telemetry-mobile-list .semi-list-items { display: grid; gap: 8px; }
  .v2-telemetry-mobile-list .v2-telemetry-mobile-item.semi-list-item {
    display: grid;
    gap: 9px;
    border: 1px solid #dce5ef;
    border-radius: 10px;
    background: #fff;
    padding: 11px 12px;
    box-shadow: 0 4px 14px rgba(31,53,80,.04);
  }
  .v2-telemetry-mobile-item > header {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: start;
    gap: 10px;
  }
  .v2-telemetry-mobile-item > header .v2-telemetry-value { justify-content: end; }
  .v2-telemetry-mobile-item > header .v2-telemetry-value strong { font-size: 13px; }
  .v2-telemetry-mobile-item > header .v2-telemetry-value.is-complex { width: min(142px,42vw); }
  .v2-telemetry-mobile-item > header .v2-telemetry-value-trigger.semi-button { padding: 2px 4px; }
  .v2-telemetry-mobile-item > div {
    display: grid;
    grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr);
    align-items: start;
    gap: 10px;
    border-top: 1px solid #edf1f5;
    padding-top: 9px;
  }
  .v2-telemetry-mobile-source {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    border-top: 1px solid #edf1f5;
    padding-top: 8px;
  }
  .v2-telemetry-mobile-source > .v2-telemetry-source {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 7px;
  }
  .v2-telemetry-mobile-source > .v2-telemetry-source small {
    min-width: 0;
  }
  .v2-telemetry-mobile-action.semi-button {
    min-width: 76px;
    min-height: 30px;
    flex: 0 0 auto;
    justify-content: flex-end;
    border-radius: 7px;
    padding-inline: 7px;
    font-size: 9px;
    font-weight: 700;
  }
  .v2-telemetry-card > .semi-card-body > footer { flex-wrap: wrap; gap: 5px; margin: 3px 9px 9px; }
  .v2-telemetry-card > .semi-card-body > footer small { width: 100%; margin: 3px 0 0; }
  .v2-telemetry-value-sidesheet .semi-sidesheet-inner {
    width: 100vw !important;
    overflow: hidden;
    border-radius: 16px 16px 0 0;
    background: #f4f7fb;
    box-shadow: 0 -18px 48px rgba(25,45,72,.18);
  }
  .v2-telemetry-value-sidesheet .semi-sidesheet-header {
    min-height: 68px;
    border-bottom-color: #dfe7f0;
    background: rgba(255,255,255,.98);
    padding: 11px 14px;
  }
  .v2-telemetry-value-sidesheet .semi-sidesheet-body {
    overflow: auto;
    background: #f4f7fb;
    padding: 10px;
    overscroll-behavior: contain;
  }
  .v2-telemetry-value-sidesheet .semi-sidesheet-footer {
    border-top: 1px solid #dfe7f0;
    background: rgba(255,255,255,.98);
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
  }
  .v2-telemetry-value-title strong { font-size: 15px; }
  .v2-telemetry-value-meta .semi-descriptions-item { min-width: 108px; }
  .v2-telemetry-value-detail > section > header { align-items: flex-start; flex-direction: column; }
  .v2-telemetry-value-detail > section > header .semi-button { width: 100%; justify-content: center; }
  .v2-telemetry-value-detail pre { max-height: 46vh; font-size: 9px; }
  .v2-telemetry-value-footer { align-items: stretch; flex-direction: column; }
  .v2-telemetry-value-footer .semi-button { width: 100%; justify-content: center; }
}

/* Semi UI track evidence: one list language for stops, events and source provenance. */
.v2-track-evidence-list.semi-list {
  min-height: 100%;
  background: #f7f9fc;
  padding: 7px;
}
.v2-track-evidence-list .semi-list-items { display: grid; gap: 5px; }
.v2-track-evidence-list .v2-track-evidence-item.semi-list-item {
  display: block;
  overflow: hidden;
  border: 1px solid transparent;
  border-radius: 9px;
  background: #fff;
  padding: 0;
  box-shadow: 0 2px 8px rgba(32,54,82,.035);
}
.v2-track-evidence-list .v2-track-list-action.semi-button {
  display: grid;
  width: 100%;
  min-height: 54px;
  height: auto;
  grid-template-columns: 25px minmax(0,1fr) auto;
  align-items: center;
  gap: 9px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  padding: 7px 10px;
  color: inherit;
  text-align: left;
}
.v2-track-evidence-list .v2-track-list-action .semi-button-content { display: contents; }
.v2-track-evidence-list .v2-track-list-action:hover { background: #f6f9fd; }
.v2-track-evidence-list .v2-track-list-action:focus-visible {
  outline: 2px solid rgba(37,99,235,.35);
  outline-offset: -2px;
}
.v2-track-evidence-list .v2-track-list-action.is-active {
  background: linear-gradient(90deg, #e8f2ff 0%, #f3f8ff 100%);
  box-shadow: inset 3px 0 #2b74d8;
}
.v2-track-evidence-list .v2-track-list-action .semi-button-content > i {
  display: grid;
  width: 23px;
  height: 23px;
  place-items: center;
  border-radius: 50%;
  background: #eea63a;
  color: #fff;
  font-size: 9px;
  font-style: normal;
  font-weight: 800;
  box-shadow: 0 3px 8px rgba(224,150,42,.18);
}
.v2-track-event-list .v2-track-list-action .semi-button-content > i { background: #397bda; box-shadow: 0 3px 8px rgba(57,123,218,.18); }
.v2-track-event-list .v2-track-list-action .semi-button-content > i.is-start { background: #1ba871; }
.v2-track-event-list .v2-track-list-action .semi-button-content > i.is-end { background: #e15858; }
.v2-track-event-list .v2-track-list-action .semi-button-content > i.is-warning { background: #eea63a; }
.v2-track-evidence-list .v2-track-list-action .semi-button-content > span { min-width: 0; }
.v2-track-evidence-list button strong,
.v2-track-evidence-list button small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-track-evidence-list button strong { color: #34475e; font-size: 11px; font-weight: 700; }
.v2-track-evidence-list button small { margin-top: 4px; color: #8795a8; font-size: 9px; }
.v2-track-evidence-list .v2-track-list-action .semi-button-content > em { color: #65758a; font-size: 9px; font-style: normal; white-space: nowrap; }
.v2-track-list-empty.semi-empty {
  min-height: 230px;
  justify-content: center;
  padding: 28px 18px;
}
.v2-track-list-empty .semi-empty-image {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border-radius: 14px;
  background: #edf4fd;
  color: #4780cf;
  font-size: 20px;
}
.v2-track-list-empty .semi-empty-title { margin-top: 11px; color: #4a5e76; font-size: 12px; font-weight: 700; }
.v2-track-list-empty .semi-empty-description { max-width: 220px; margin-top: 5px; color: #8a97a8; font-size: 9px; line-height: 1.55; }

.v2-track-source-list.semi-list { background: transparent; }
.v2-track-source-list .semi-list-items { display: grid; gap: 6px; }
.v2-track-source-list .v2-track-source-item.semi-list-item {
  display: grid;
  min-height: 48px;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 4px 8px;
  border: 1px solid #e1e8f1;
  border-radius: 8px;
  background: linear-gradient(135deg, #f8fafc 0%, #f4f8fd 100%);
  padding: 8px 9px;
}
.v2-track-source-item .v2-track-protocol-tag.semi-tag { width: max-content; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v2-track-source-item > strong { color: #3e526a; font-size: 10px; text-align: right; font-variant-numeric: tabular-nums; }
.v2-track-source-item > small { grid-column: 1 / -1; color: #8795a7; font-size: 8px; font-variant-numeric: tabular-nums; }

@media (max-width: 700px) {
  .v2-track-evidence-list.semi-list { padding: 8px; }
  .v2-track-evidence-list .v2-track-list-action.semi-button { min-height: 58px; padding: 8px 10px; }
  .v2-track-evidence-list button strong { font-size: 12px; }
  .v2-track-evidence-list button small,
  .v2-track-evidence-list .v2-track-list-action .semi-button-content > em { font-size: 10px; }
  .v2-track-source-list .v2-track-source-item.semi-list-item { min-height: 54px; padding: 9px 10px; }
  .v2-track-source-item .v2-track-protocol-tag.semi-tag,
  .v2-track-source-item > small { font-size: 9px; }
  .v2-track-source-item > strong { font-size: 11px; }
}

/* Semi UI history workspace: compact query rail, resilient summary and clear permission state. */
.v2-history-filter-card > .semi-card-body { min-height: 0; }
.v2-history-toolbar {
  min-height: 72px;
  grid-template-columns: minmax(190px,1fr) minmax(300px,1.45fr) minmax(104px,.55fr) minmax(112px,.6fr) auto;
  align-items: end;
  column-gap: 10px;
  row-gap: 12px;
}
.v2-history-toolbar-actions {
  display: flex;
  min-width: max-content;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
}
.v2-history-toolbar-actions > .semi-button {
  width: auto;
  min-width: 58px;
  height: 38px;
  border-radius: 8px;
  padding-inline: 14px;
  font-size: 12px;
  font-weight: 700;
}
.v2-history-toolbar-actions > .semi-button-primary.semi-button-solid { box-shadow: 0 7px 16px rgba(18,104,243,.15); }
.v2-history-permission-tag.semi-tag {
  height: 30px;
  flex: 0 0 auto;
  border-radius: 7px;
  padding-inline: 10px;
  color: #6d7c90;
  font-size: 10px;
  font-weight: 700;
  cursor: help;
}
.v2-history-metric-scroll {
  scrollbar-width: none;
  scroll-padding-inline: 8px;
  scroll-snap-type: x proximity;
}
.v2-history-metric-scroll::-webkit-scrollbar { display: none; }
.v2-history-metric-tag.semi-tag { scroll-snap-align: start; }
.v2-history-summary strong.is-source { font-size: 17px; }

@media (max-width: 1100px) {
  .v2-history-toolbar { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .v2-history-vehicles,
  .v2-history-range { grid-column: 1 / -1; }
  .v2-history-toolbar-actions { grid-column: 1 / -1; }
}

@media (max-height: 800px) and (min-width: 901px) {
  .v2-history-page { height: auto; min-height: 100%; overflow: auto; }
  .v2-history-workspace { min-height: 540px; flex: 0 0 540px; }
}

@media (max-width: 680px) {
  .v2-history-toolbar { min-height: 0; grid-template-columns: 1fr; }
  .v2-history-vehicles,
  .v2-history-range,
  .v2-history-toolbar-actions { grid-column: auto; }
  .v2-history-toolbar-actions { min-width: 0; justify-content: stretch; }
  .v2-history-toolbar-actions > .semi-button { width: auto; min-width: 0; height: 42px; flex: 1; }
  .v2-history-permission-tag.semi-tag { height: 32px; padding-inline: 9px; }
  .v2-history-summary > .semi-card-body > div { padding-inline: 8px; }
  .v2-history-summary strong { font-size: 18px; }
  .v2-history-summary strong.is-source { font-size: 15px; }
}

/* Monitor realtime list: operational mileage and protocol evidence stay visible. */
.v2-monitor-table.semi-table-wrapper { min-width: 1320px; }
.v2-monitor-table-scroll table { min-width: 1320px; }
.v2-monitor-live-value.is-today { color: #1268df; }
.v2-monitor-protocol { display: flex; min-width: 0; align-items: center; gap: 6px; }
.v2-monitor-protocol .semi-tag {
  max-width: 104px;
  overflow: hidden;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-monitor-protocol > small { color: #77869a; font-size: 9px; white-space: nowrap; }

/* Monitor detail: the newest report is the first, strongest evidence block. */
.v2-detail-body {
  min-width: 0;
  min-height: 100%;
}
.v2-detail-loading-card > .semi-card-body {
  display: grid;
  height: 100%;
  min-height: 220px;
  place-items: center;
}
.v2-detail-loading-card [role="status"] {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #718197;
  font-size: 11px;
}
.v2-detail-shell-header {
  position: sticky;
  z-index: 5;
  top: -14px;
  margin: -14px -14px 8px;
  border-bottom: 1px solid #e5ebf3;
  background: #fff;
  padding: 14px 14px 8px;
}
.v2-detail-shell-header .v2-detail-controls {
  position: absolute;
  top: 12px;
  right: 14px;
}
.v2-detail-shell-header .v2-detail-controls .semi-button {
  width: 32px;
  min-width: 32px;
  height: 32px;
  border-radius: 8px;
}
.v2-detail-shell-header .v2-detail-title {
  border-bottom: 0;
  padding: 1px 76px 10px 0;
}
.v2-detail-shell-header .v2-detail-title strong {
  color: #1d2b3f;
  font-size: 18px;
  letter-spacing: -.2px;
}
.v2-detail-shell-header .v2-detail-title small {
  margin-top: 5px;
  color: #718197;
  font-size: 10px;
  font-variant-numeric: tabular-nums;
}
.v2-detail-shell-header .v2-status-text.semi-tag {
  height: 22px;
  padding-inline: 8px;
  font-size: 10px;
}
.v2-detail-actions {
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 6px;
  padding: 0;
}
.v2-detail-actions a {
  height: 40px;
  min-width: 0;
  justify-content: space-between;
  gap: 8px;
  border-color: #e1e8f1;
  border-radius: 8px;
  background: #fff;
  padding-inline: 11px;
  color: #55667c;
  font-size: 11px;
}
.v2-detail-actions a > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-detail-actions a > svg {
  flex: 0 0 auto;
  font-size: 13px;
}
.v2-detail-actions a:first-child {
  border-color: #c6daf8;
  background: #eef5ff;
  color: #1268df;
}
.v2-detail-actions a:hover,
.v2-detail-actions a:focus-visible {
  border-color: #a9c8f7;
  background: #f4f8ff;
  color: #1268df;
  outline: 0;
}
.v2-vehicle-detail .v2-detail-section {
  margin-top: 8px;
  overflow: hidden;
  border: 1px solid #e0e8f1;
  border-radius: 10px;
  background: #fff;
  padding: 0;
}
.v2-detail-section > .v2-workspace-panel-header {
  min-height: 48px;
  border-bottom: 1px solid #e8edf4;
  background: #fbfcfe;
  padding: 9px 10px;
}
.v2-detail-section > .v2-workspace-panel-header .v2-workspace-panel-copy > h5 {
  font-size: 12px;
}
.v2-detail-section > .v2-workspace-panel-header .v2-workspace-panel-copy > .semi-typography,
.v2-detail-section > .v2-workspace-panel-header .v2-workspace-panel-meta {
  font-size: 9px;
}
.v2-detail-section > .v2-workspace-panel-header .semi-tag {
  flex: 0 0 auto;
  max-width: 122px;
  overflow: hidden;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-vehicle-detail .v2-detail-report {
  margin-top: 8px;
  border-color: #d6e5f8;
  background: #fff;
  padding: 0;
}
.v2-detail-report > .v2-workspace-panel-header {
  border-bottom-color: #dce9f8;
  background: #f5f9ff;
}
.v2-report-summary {
  display: grid;
  grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr);
  gap: 0;
  overflow: hidden;
  margin: 9px 10px 0;
  border: 1px solid #dce7f4;
  border-radius: 9px;
  background: #f8fafd;
}
.v2-report-summary > span {
  min-width: 0;
  padding: 8px 9px;
}
.v2-report-summary > .is-time {
  grid-column: 1 / -1;
  border-bottom: 1px solid #e3eaf3;
}
.v2-report-summary > .is-source { border-left: 1px solid #e3eaf3; }
.v2-report-summary small,
.v2-report-summary strong,
.v2-report-summary b {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-report-summary small { color: #7186a1; font-size: 8px; }
.v2-report-summary strong {
  margin-top: 4px;
  color: #153f73;
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}
.v2-report-summary b { margin-top: 4px; color: #345679; font-size: 10px; }
.v2-report-summary .v2-protocol-tag { max-width: 100%; margin-top: 4px; }
.v2-detail-report .v2-detail-list { margin: 5px 10px 8px; }
.v2-detail-report .v2-detail-list > div { min-height: 24px; grid-template-columns: 44px minmax(0,1fr); align-items: center; padding-block: 3px; }
.v2-detail-report .v2-detail-list dd { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v2-detail-report .v2-detail-source-link.semi-button { width: 100%; min-width: 0; justify-content: flex-start; overflow: hidden; }
.v2-detail-report .v2-detail-source-link .semi-button-content { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v2-detail-section > .v2-metric-grid {
  margin: 10px;
  border-color: #e0e7f0;
  border-radius: 8px;
}
.v2-detail-section > .v2-metric-grid > div {
  position: relative;
  min-height: 68px;
  padding: 10px 11px 9px;
}
.v2-detail-section > .v2-metric-grid > div::after {
  position: absolute;
  right: 11px;
  bottom: 0;
  left: 11px;
  height: 2px;
  border-radius: 999px 999px 0 0;
  background: #dce5ef;
  content: "";
}
.v2-detail-section > .v2-metric-grid > div:nth-child(1)::after { background: #78a9ef; }
.v2-detail-section > .v2-metric-grid > div:nth-child(2)::after { background: #65bf94; }
.v2-detail-section > .v2-metric-grid > div:nth-child(3)::after { background: #79a7ea; }
.v2-detail-section > .v2-metric-grid > div:nth-child(4)::after { background: #2f7de9; }
.v2-detail-section > .v2-metric-grid > div:nth-child(5)::after { background: #43b77d; }
.v2-detail-section > .v2-metric-grid > .has-alerts::after { background: #eb6d70; }
.v2-detail-section > .v2-metric-grid > div:nth-child(4) strong,
.v2-detail-section > .v2-metric-grid > div:nth-child(4) .v2-metric-source-link { color: #1268df; }
.v2-detail-section > .v2-metric-grid > .has-alerts strong { color: #c84349; }
.v2-detail-section > .v2-gb-highlight-grid {
  margin: 0 10px 10px;
}
.v2-detail-section > .v2-detail-list {
  margin: 0;
  padding: 5px 10px 9px;
}
.v2-detail-section > .v2-detail-list > div {
  min-height: 30px;
  align-items: center;
  border-bottom: 1px solid #edf1f5;
}
.v2-detail-section > .v2-detail-list > div:last-child {
  border-bottom: 0;
}
.v2-detail-protocols {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
}
.v2-detail-protocols .v2-protocol-tag { max-width: 100%; }

@media (max-width: 760px) {
  .v2-detail-shell-header {
    top: -18px;
    margin: -14px -15px 8px;
    padding: 18px 15px 9px;
  }
  .v2-detail-shell-header .v2-detail-controls {
    top: 17px;
    right: 15px;
  }
  .v2-detail-actions {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  .v2-detail-actions a {
    height: 42px;
    font-size: 11px;
  }
  .v2-detail-section > .v2-workspace-panel-header {
    min-height: 52px;
    padding: 9px 11px;
  }
  .v2-detail-section > .v2-workspace-panel-header .v2-workspace-panel-copy > h5 {
    font-size: 13px;
  }
  .v2-detail-section > .v2-workspace-panel-header .v2-workspace-panel-copy > .semi-typography,
  .v2-detail-section > .v2-workspace-panel-header .v2-workspace-panel-meta {
    font-size: 10px;
  }
  .v2-report-summary { grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr); }
  .v2-report-summary strong { font-size: 13px; }
  .v2-detail-list > div { font-size: 10px; }
  .v2-metric-grid small { font-size: 9px; }
  .v2-metric-grid strong,
  .v2-metric-source-link.semi-button { font-size: 16px; }
}

/* Track replay always occupies the whole application workspace. */
.v2-content.is-track-workspace { min-height: 0; overflow: hidden; }
.v2-content > .v2-track-page {
  width: 100%;
  height: 100%;
  min-height: 0;
  flex: 1 1 auto;
  align-self: stretch;
}
.v2-track-page > .v2-track-stage,
.v2-track-stage > .v2-track-map,
.v2-track-stage .v2-track-map-canvas { width: 100%; height: 100%; min-height: 0; }

/* Mileage query: fixed workspace, compact controls and one independently scrolling matrix. */
.v2-content:has(> .v2-mileage-page) { min-height: 0; overflow: hidden; }
.v2-mileage-page {
  width: 100%;
  height: 100%;
  min-height: 0;
  gap: 9px;
  overflow: hidden;
  padding: 12px 16px 14px;
}
.v2-mileage-page > .v2-monitor-return { flex: 0 0 auto; margin: 0; }
.v2-mileage-query-panel.semi-card { flex: 0 0 auto; border-radius: 10px; }
.v2-mileage-filter {
  min-height: 70px;
  grid-template-columns: minmax(190px,1.25fr) repeat(2,minmax(138px,.72fr)) auto minmax(170px,.9fr) minmax(232px,1.1fr);
  align-items: end;
  gap: 7px;
  padding: 10px 12px;
}
.v2-mileage-filter > label { gap: 5px; font-size: 10px; }
.v2-mileage-vehicle-field > small { display: none; }
.v2-mileage-filter > label > .semi-input-wrapper,
.v2-mileage-source-trigger.semi-button,
.v2-mileage-filter > .semi-button-primary { height: 36px; min-height: 36px; }
.v2-mileage-filter > .semi-button-primary { margin-top: 0; padding-inline: 17px; }
.v2-mileage-source-strategy { align-self: end; margin-top: 0; }
.v2-mileage-ranges {
  display: grid;
  min-width: 0;
  height: 36px;
  grid-template-columns: repeat(5,minmax(0,1fr));
  align-items: center;
  gap: 3px;
  border-radius: 8px;
  background: #f3f6fa;
  padding: 3px;
}
.v2-mileage-ranges > span { display: none; }
.v2-mileage-ranges .semi-button { height: 30px; min-width: 0; padding-inline: 5px; font-size: 9px; }
.v2-mileage-summary.semi-card { height: 104px; min-height: 104px; }
.v2-mileage-summary > .semi-card-body { height: 104px; grid-template-columns: minmax(330px,1.2fr) minmax(0,2fr); }
.v2-mileage-summary > .semi-card-body > .v2-mileage-summary-card.is-primary,
.v2-mileage-summary > .semi-card-body > .v2-mileage-summary-card.is-primary > .semi-card-body { min-height: 104px; height: 104px; }
.v2-mileage-summary > .semi-card-body > .v2-mileage-summary-card.is-primary > .semi-card-body { padding: 10px 22px 11px !important; }
.v2-mileage-summary > .semi-card-body > .is-primary strong { font-size: clamp(25px,2vw,31px); }
.v2-mileage-summary > .semi-card-body > .is-primary .v2-mileage-summary-value { min-height: auto; margin: 3px 0; padding: 0; line-height: 1.12; }
.v2-mileage-summary-secondary.semi-card-group,
.v2-mileage-summary-secondary.semi-card-group > .v2-mileage-summary-card.semi-card { height: 104px; min-height: 104px; }
.v2-mileage-summary-secondary.semi-card-group > .v2-mileage-summary-card > .semi-card-body { min-height: 104px; padding: 10px 15px !important; }
.v2-mileage-results.semi-card { min-height: 0; flex: 1 1 0; }
.v2-mileage-results > .semi-card-body { height: 100%; min-height: 0; }
.v2-mileage-results > .semi-card-body > header { min-height: 46px; padding-inline: 14px; }
.v2-mileage-table-wrap {
  min-height: 0;
  flex: 1 1 0;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-color: #8296af #eef3f8;
  scrollbar-gutter: stable;
  scrollbar-width: auto;
}
.v2-mileage-table-wrap::-webkit-scrollbar { width: 14px; height: 14px; }
.v2-mileage-table-wrap::-webkit-scrollbar-track { border-radius: 999px; background: #eef3f8; }
.v2-mileage-table-wrap::-webkit-scrollbar-thumb {
  min-width: 48px;
  min-height: 48px;
  border: 3px solid transparent;
  border-radius: 999px;
  background: #8296af;
  background-clip: padding-box;
}
.v2-mileage-table-wrap::-webkit-scrollbar-thumb:hover { background-color: #617a99; }
.v2-mileage-table-wrap::-webkit-scrollbar-corner { background: #eef3f8; }
.v2-mileage-results > .semi-card-body > footer { min-height: 40px; height: 40px; padding: 4px 12px; }
.v2-mileage-results > .semi-card-body > footer .v2-table-pagination-button,
.v2-mileage-results > .semi-card-body > footer .v2-table-pagination-current { height: 28px; min-height: 28px; }
.v2-mileage-results > .semi-card-body > footer .v2-table-pagination-button { padding-inline: 8px; }
.v2-mileage-results > .semi-card-body > footer .v2-table-pagination-current { min-width: 52px; }
.v2-mileage-evidence { min-height: 17px; flex: 0 0 auto; overflow: hidden; white-space: nowrap; }

@media (max-width: 1100px) and (min-width: 681px) {
  .v2-mileage-filter { grid-template-columns: minmax(190px,1fr) repeat(2,minmax(138px,.72fr)) auto minmax(168px,.9fr); }
  .v2-mileage-ranges { grid-column: 1 / -1; }
  .v2-mileage-summary > .semi-card-body { grid-template-columns: minmax(285px,1fr) minmax(0,2fr); }
}

@media (max-width: 680px) {
  .v2-monitor-mobile-cards dl { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .v2-monitor-mobile-cards dl > div {
    display: grid;
    min-height: 30px;
    grid-template-columns: auto minmax(0,1fr);
    align-items: center;
    gap: 6px;
  }
  .v2-monitor-mobile-cards dl > div.is-address { min-height: 36px; grid-template-columns: 68px minmax(0,1fr); }
  .v2-monitor-mobile-cards dt { white-space: nowrap; }
  .v2-monitor-mobile-cards dd { min-width: 0; margin: 0; overflow: hidden; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
  .v2-monitor-mobile-cards dl > div.is-address dd { text-align: left; }
  .v2-monitor-mobile-cards dd code { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .v2-monitor-mobile-cards dd.is-today,
  .v2-monitor-mobile-protocol { color: #1268df; font-weight: 750; }
  .v2-monitor-mobile-protocol {
    display: inline-flex;
    max-width: 100%;
    align-items: center;
    justify-content: flex-end;
    gap: 5px;
  }
  .v2-monitor-mobile-protocol > small { color: #77869a; font-size: 9px; white-space: nowrap; }
  .v2-monitor-mobile-cards > .v2-monitor-mobile-card.semi-card { contain-intrinsic-size: auto 190px; }
  .v2-report-summary {
    grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr);
  }
  .v2-report-summary strong { font-size: 13px; }
  .v2-report-summary b { font-size: 11px; }

  .v2-mileage-page { height: 100%; min-height: 0; gap: 6px; overflow: hidden; padding: 7px; }
  .v2-mileage-query-panel { flex: 0 0 auto; padding: 0; }
  .v2-mileage-filter { min-height: 0; grid-template-columns: 1fr; padding: 10px; }
  .v2-mileage-summary.semi-card { height: 158px; min-height: 158px; }
  .v2-mileage-summary > .semi-card-body { height: 158px; grid-template-columns: 1fr; gap: 5px; }
  .v2-mileage-summary > .semi-card-body > .v2-mileage-summary-card.is-primary,
  .v2-mileage-summary > .semi-card-body > .v2-mileage-summary-card.is-primary > .semi-card-body { height: 82px; min-height: 82px; }
  .v2-mileage-summary > .semi-card-body > .v2-mileage-summary-card.is-primary > .semi-card-body {
    padding: 8px 14px 9px !important;
  }
  .v2-mileage-summary > .semi-card-body > .is-primary .v2-mileage-summary-value {
    min-height: 32px;
    margin: 1px 0 2px;
    overflow: visible;
    padding: 0;
    line-height: 32px;
  }
  .v2-mileage-summary-secondary.semi-card-group,
  .v2-mileage-summary-secondary.semi-card-group > .v2-mileage-summary-card.semi-card { height: 70px; min-height: 70px; }
  .v2-mileage-summary-secondary.semi-card-group > .v2-mileage-summary-card > .semi-card-body { min-height: 70px; padding: 8px 9px !important; }
  .v2-mileage-results.semi-card { min-height: 0; height: auto; flex: 1 1 0; overflow: hidden; }
  .v2-mileage-results > .semi-card-body { min-height: 0; }
  .v2-mileage-results > .semi-card-body > header { min-height: 76px; flex: 0 0 auto; padding: 8px 10px; }
  .v2-mileage-table-wrap { min-height: 0; flex: 1 1 0; overflow: auto; }
  .v2-mileage-results > .semi-card-body > footer:has(.v2-table-pagination-controls) {
    min-height: 44px;
    height: 44px;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    padding: 4px 8px;
  }
  .v2-mileage-results > .semi-card-body > footer .v2-table-pagination-info { display: none; }
  .v2-mileage-results > .semi-card-body > footer .v2-table-pagination-controls { width: 100%; justify-content: flex-end; }
  .v2-mileage-results > .semi-card-body > footer .v2-table-pagination-button { height: 34px; flex: 0 1 96px; }
  .v2-mileage-results > .semi-card-body > footer .v2-table-pagination-current { height: 34px; flex: 0 0 58px; }
  .v2-mileage-evidence { display: none; }
}

/* Mobile visual QA: keep compact pagination controls and metric type fully visible. */
@media (max-width: 680px) {
  .v2-history-table-card > .semi-card-body > footer:has(.v2-table-pagination-controls) {
    min-height: 76px;
    height: auto;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    gap: 6px;
    padding: 7px 10px;
  }
  .v2-history-table-card > .semi-card-body > footer .v2-table-pagination-info {
    width: 100%;
    flex: 0 0 auto;
  }
  .v2-history-table-card > .semi-card-body > footer .v2-table-pagination-controls {
    width: 100%;
    flex: 0 0 auto;
  }
  .v2-history-table-card > .semi-card-body > footer .v2-table-pagination-button {
    min-width: 0;
    flex: 1 1 0;
    padding-inline: 7px;
  }
  .v2-history-table-card > .semi-card-body > footer .v2-table-pagination-current {
    flex: 0 0 58px;
  }
}

/* Semi UI vehicle workspace refinement: one calm lookup surface and a responsive evidence-first record. */
.v2-vehicle-search-page {
  position: relative;
  background:
    radial-gradient(circle at 50% 38%,rgba(255,255,255,.94) 0,rgba(255,255,255,0) 38%),
    linear-gradient(180deg,#f6f9fd 0%,#eef3f8 100%);
}
.v2-vehicle-search-card.semi-card {
  width: min(700px,100%);
  border-radius: 18px;
  box-shadow: 0 28px 74px rgba(25,45,74,.105);
}
.v2-vehicle-search-card > .semi-card-body { padding: 44px 48px 40px; }
.v2-vehicle-search-card .v2-search-hero-icon {
  width: 58px;
  height: 58px;
  margin-bottom: 20px;
  border: 1px solid #d9e8ff;
  border-radius: 16px;
  background: linear-gradient(145deg,#f4f8ff 0%,#e8f1ff 100%);
  box-shadow: 0 10px 26px rgba(18,104,243,.10);
}
.v2-vehicle-search-card > .semi-card-body > h2 {
  font-size: 28px;
  font-weight: 750;
  letter-spacing: -.045em;
}
.v2-vehicle-search-card > .semi-card-body > .semi-typography {
  max-width: 530px;
  margin: 11px auto 26px;
  color: #718096;
  font-size: 13px;
  line-height: 1.7;
}
.v2-vehicle-search-card form {
  height: 60px;
  border-color: #d7e1ed;
  background: #f7f9fc;
}
.v2-vehicle-search-card form > .semi-button { min-width: 116px; }

.v2-vehicle-record-page {
  width: 100%;
  max-width: 1540px;
  margin-inline: auto;
}
.v2-vehicle-record-page .v2-identity-band.semi-card {
  min-height: 112px;
  border-color: #d7e2ef;
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(31,53,80,.055);
}
.v2-vehicle-record-page .v2-identity-band > .semi-card-body { min-height: 110px; }
.v2-vehicle-record-page .v2-identity-primary,
.v2-vehicle-record-page .v2-identity-meta,
.v2-vehicle-record-page .v2-identity-actions { padding: 17px 20px; }
.v2-vehicle-record-page .v2-identity-primary { gap: 7px 13px; }
.v2-vehicle-record-page .v2-plate {
  min-height: 42px;
  border-radius: 8px;
  padding-inline: 14px;
  font-size: 18px;
  letter-spacing: .01em;
  white-space: nowrap;
}
.v2-vehicle-record-page .v2-identity-primary small { font-size: 10px; }
.v2-vehicle-record-page .v2-identity-primary b {
  min-width: 0;
  color: #3f4e63;
  font-size: 11px;
  letter-spacing: .015em;
}
.v2-vehicle-record-page .v2-identity-meta { gap: 20px; }
.v2-vehicle-record-page .v2-identity-meta small { font-size: 10px; }
.v2-vehicle-record-page .v2-identity-meta strong { margin-top: 7px; font-size: 12px; }
.v2-vehicle-record-page .v2-identity-meta p { margin-top: 7px; }
.v2-vehicle-record-page .v2-identity-meta p span {
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  border-radius: 6px;
  padding: 3px 8px;
  font-size: 10px;
}
.v2-vehicle-record-page .v2-identity-actions a {
  min-width: 0;
  height: 40px;
  justify-content: center;
  border-radius: 8px;
  background: #fff;
  padding-inline: 13px;
  font-size: 11px;
  transition: border-color .16s ease,background-color .16s ease,color .16s ease,transform .16s ease;
}
.v2-vehicle-record-page .v2-identity-actions a:hover {
  background: #f5f8ff;
  transform: translateY(-1px);
}
.v2-vehicle-record-page .v2-record-card.semi-card,
.v2-vehicle-record-page .v2-single-map-card.semi-card {
  border-color: #dbe4ef;
  border-radius: 12px;
  box-shadow: 0 7px 22px rgba(31,53,80,.048);
}
.v2-vehicle-record-page .v2-live-grid > div { padding: 14px 16px; }
.v2-vehicle-record-page .v2-live-grid small { font-size: 10px; }
.v2-vehicle-record-page .v2-live-grid strong,
.v2-vehicle-record-page .v2-live-source-link { font-size: 20px; }
.v2-vehicle-record-page .v2-live-grid strong.is-text { font-size: 15px; }
.v2-vehicle-record-page .v2-live-grid em { font-size: 9px; }
.v2-vehicle-record-page .v2-current-location { min-height: 56px; }
.v2-vehicle-record-page .v2-current-location strong { font-size: 12px; }

@media (max-width: 1400px) and (min-width: 901px) {
  .v2-vehicle-record-page .v2-identity-band > .semi-card-body {
    grid-template-columns: minmax(300px,.92fr) minmax(0,1.35fr);
  }
  .v2-vehicle-record-page .v2-identity-meta { border-right: 0; }
  .v2-vehicle-record-page .v2-identity-actions {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 8px;
    border-top: 1px solid var(--v2-border);
    padding: 10px 14px;
  }
  .v2-vehicle-record-page .v2-identity-actions a { width: 100%; }
}

@media (max-width: 900px) {
  .v2-vehicle-record-page .v2-identity-band > .semi-card-body { grid-template-columns: 1fr; }
  .v2-vehicle-record-page .v2-identity-meta {
    border: 0;
    border-top: 1px solid var(--v2-border);
    border-bottom: 1px solid var(--v2-border);
  }
  .v2-vehicle-record-page .v2-identity-actions {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 8px;
  }
  .v2-vehicle-record-page .v2-identity-actions a { width: 100%; }
}

@media (max-width: 680px) {
  .v2-vehicle-search-page { padding: 10px; }
  .v2-vehicle-search-card.semi-card { border-radius: 14px; }
  .v2-vehicle-search-card > .semi-card-body { padding: 30px 18px 25px; }
  .v2-vehicle-search-card .v2-search-hero-icon {
    width: 52px;
    height: 52px;
    margin-bottom: 16px;
    border-radius: 14px;
  }
  .v2-vehicle-search-card > .semi-card-body > h2 { font-size: 23px; }
  .v2-vehicle-search-card > .semi-card-body > .semi-typography {
    max-width: 310px;
    margin: 10px auto 21px;
    font-size: 12px;
    line-height: 1.65;
  }
  .v2-vehicle-search-card form { height: auto; gap: 7px; }
  .v2-vehicle-search-card form > .semi-button { min-width: 0; }
  .v2-vehicle-record-page { padding: 8px; }
  .v2-vehicle-record-page .v2-identity-primary,
  .v2-vehicle-record-page .v2-identity-meta,
  .v2-vehicle-record-page .v2-identity-actions { padding: 13px; }
  .v2-vehicle-record-page .v2-identity-actions { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .v2-vehicle-record-page .v2-identity-actions a {
    min-height: 42px;
    height: 42px;
    padding-inline: 8px;
    font-size: 11px;
  }
  .v2-vehicle-record-page .v2-live-grid strong,
  .v2-vehicle-record-page .v2-live-source-link { font-size: 18px; }
}

/* Semi UI convergence: one desktop/mobile grammar for standard data workspaces. */
:root {
  --v2-sidebar-width: 216px;
  --v2-page-gutter: clamp(16px, 1.55vw, 22px);
  --v2-page-gap: 12px;
  --v2-surface-border: #dfe6ef;
  --v2-surface-shadow: 0 7px 24px rgba(28, 44, 68, .055);
}

.v2-sidebar { width: var(--v2-sidebar-width); }
.v2-main { margin-left: var(--v2-sidebar-width); }
.v2-topbar-title > .semi-typography { font-size: 11px; }
.v2-topbar-title h4 { font-size: 21px; }

:is(.v2-history-page, .v2-alert-page, .v2-access-page-v3, .v2-user-admin, .v2-ops-page) {
  width: 100%;
  gap: var(--v2-page-gap);
  background: var(--v2-bg);
  padding: 12px var(--v2-page-gutter) var(--v2-page-gutter);
}

.v2-page-heading {
  width: 100%;
  min-height: 72px;
  align-items: center;
  padding: 5px 2px 3px;
}
.v2-page-heading-copy { gap: 7px; }
.v2-page-heading-copy :is(h2, h3),
.v2-page-heading-copy h2.semi-typography {
  margin: 0;
  color: #162033;
  font-size: 26px;
  font-weight: 720;
  letter-spacing: -.035em;
  line-height: 1.15;
}
.v2-page-heading-copy > .semi-typography {
  max-width: 820px;
  color: #66758a;
  font-size: 13px;
  line-height: 1.55;
}
.v2-page-heading-copy .semi-tag {
  min-height: 24px;
  border-radius: 999px;
  padding: 0 9px;
  font-size: 10px;
}
.v2-page-heading-aside > .semi-typography { font-size: 12px; }
.v2-page-heading-aside > .semi-button {
  min-height: 38px;
  border-radius: 9px;
  padding: 0 14px;
  font-size: 12px;
}

:is(
  .v2-history-filter-card,
  .v2-history-metrics-card,
  .v2-history-summary,
  .v2-history-table-card,
  .v2-alert-filter-card,
  .v2-alert-kpis-card,
  .v2-alert-table-card,
  .v2-access-filter-card-v3,
  .v2-access-kpis-card-v3,
  .v2-access-table-v3,
  .v2-user-list,
  .v2-user-editor,
  .v2-reconcile-center,
  .v2-source-diagnostic,
  .v2-ops-kpi-card,
  .v2-ops-panel
).semi-card {
  border-color: var(--v2-surface-border);
  border-radius: 12px;
  background: #fff;
  box-shadow: var(--v2-surface-shadow);
}

:is(.v2-history-toolbar, .v2-alert-filter, .v2-access-filter-v3) label,
:is(.v2-history-toolbar, .v2-alert-filter, .v2-access-filter-v3) legend {
  color: #5d6c80;
  font-size: 12px;
  font-weight: 600;
}
:is(.v2-history-toolbar, .v2-alert-filter, .v2-access-filter-v3) :is(.semi-input-wrapper, .semi-select),
:is(.v2-history-toolbar, .v2-alert-filter, .v2-access-filter-v3) > .semi-button {
  min-height: 40px;
  border-radius: 8px;
}
:is(.v2-history-toolbar, .v2-alert-filter, .v2-access-filter-v3) :is(.semi-input, .semi-select-selection) {
  font-size: 13px;
}

:is(.v2-history-table-scroll, .v2-alert-table-scroll, .v2-access-table-scroll-v3) table {
  font-size: 13px;
}
:is(.v2-history-table-scroll, .v2-alert-table-scroll, .v2-access-table-scroll-v3) th {
  height: 44px;
  color: #65758a;
  font-size: 12px;
  font-weight: 650;
}
:is(.v2-history-table-scroll, .v2-alert-table-scroll, .v2-access-table-scroll-v3) td {
  color: #293b52;
  font-size: 13px;
}

.v2-user-admin > .v2-page-heading {
  max-width: 1480px;
  margin-bottom: 4px;
}
.v2-user-admin-grid {
  min-height: 0;
  gap: 14px;
}
.v2-user-list.semi-card { top: 12px; }

.v2-ops-page > .v2-page-heading { margin-bottom: 4px; }
.v2-reconcile-center .v2-reconcile-layout {
  height: clamp(520px, 62vh, 680px);
  min-height: 0;
}
.v2-reconcile-main,
.v2-reconcile-trend.semi-card { min-height: 0; }
.v2-reconcile-table-wrap {
  min-height: 0;
  flex: 1 1 auto;
  overflow: auto;
}
.v2-reconcile-heading {
  min-height: 74px;
  padding: 13px 16px;
}
.v2-reconcile-heading strong { font-size: 19px; }
.v2-reconcile-heading span { font-size: 12px; }
.v2-ops-kpis small { font-size: 11px; }
.v2-ops-kpis strong { font-size: 20px; }
.v2-ops-kpis span { font-size: 10px; }
.v2-ops-links article strong,
.v2-ops-runtime dl div,
.v2-ops-sources article strong { font-size: 12px; }
.v2-ops-links article p,
.v2-ops-sources article p,
.v2-ops-sources article em { font-size: 10px; }

@media (max-width: 900px) {
  :root { --v2-page-gutter: 12px; }
  .v2-main { margin-left: 0; }
  :is(.v2-history-page, .v2-alert-page, .v2-access-page-v3, .v2-user-admin, .v2-ops-page) {
    padding: 8px var(--v2-page-gutter) 18px;
  }
  .v2-page-heading { min-height: 62px; }
  .v2-page-heading-copy :is(h2, h3),
  .v2-page-heading-copy h2.semi-typography { font-size: 22px; }
  .v2-page-heading-copy > .semi-typography { font-size: 12px; }
  .v2-reconcile-center .v2-reconcile-layout { height: 600px; }
}

@media (max-width: 680px) {
  .v2-page-heading { min-height: 50px; padding: 2px 1px; }
  .v2-page-heading-copy :is(h2, h3),
  .v2-page-heading-copy h2.semi-typography { font-size: 19px; }
  .v2-page-heading-copy > .semi-typography { display: none; }
  .v2-page-heading-aside > .semi-typography { display: none; }
  .v2-reconcile-center .v2-reconcile-layout {
    height: auto;
    min-height: 520px;
  }
  :is(.v2-history-toolbar, .v2-alert-filter, .v2-access-filter-v3) :is(.semi-input-wrapper, .semi-select),
  :is(.v2-history-toolbar, .v2-alert-filter, .v2-access-filter-v3) > .semi-button {
    min-height: 44px;
  }
}

/* Semi UI workspace migration: reconciliation headers share one visual anatomy. */
.v2-reconcile-heading.v2-workspace-panel-header {
  min-height: 74px;
  align-items: center;
  border-bottom-color: #e2e9f2;
  background: linear-gradient(105deg, #f8fbff 0%, #f4f8ff 58%, #eff6ff 100%);
  padding: 13px 16px;
}
.v2-reconcile-heading > .v2-workspace-panel-copy {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  gap: 4px;
}
.v2-reconcile-heading > .v2-workspace-panel-copy > h5.semi-typography {
  color: #17283b;
  font-size: 19px;
}
.v2-reconcile-heading > .v2-workspace-panel-copy > .semi-typography {
  max-width: min(760px, 58vw);
  color: #64758a;
  font-size: 12px;
}
.v2-reconcile-heading > .v2-workspace-panel-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-direction: row;
  gap: 10px;
}
.v2-reconcile-heading > .v2-workspace-panel-actions > .v2-workspace-panel-meta {
  border-radius: 999px;
  background: #e7f0ff;
  padding: 4px 9px;
  color: #3e679d;
  font-size: 10px;
  font-weight: 600;
}

.v2-reconcile-detail > .semi-card-body > .v2-reconcile-detail-heading {
  min-height: 66px;
  align-items: center;
  border-bottom: 1px solid #e3eaf2;
  background: linear-gradient(180deg, #fbfdff 0%, #f5f8fc 100%);
  padding: 10px 14px;
}
.v2-reconcile-detail > .semi-card-body > .v2-reconcile-detail-heading > .v2-workspace-panel-copy {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  gap: 3px;
}
.v2-reconcile-detail-heading > .v2-workspace-panel-copy > h5.semi-typography {
  color: #21364d;
  font-size: 15px;
}
.v2-reconcile-detail-heading > .v2-workspace-panel-copy > .semi-typography {
  color: #738297;
  font-size: 10px;
}
.v2-reconcile-detail > .semi-card-body > .v2-reconcile-detail-heading > .v2-workspace-panel-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-direction: row;
  gap: 7px;
}
.v2-reconcile-detail-heading > .v2-workspace-panel-actions > .v2-workspace-panel-meta {
  border-radius: 0;
  background: transparent;
  padding: 0;
}

:is(.v2-reconcile-evidence, .v2-reconcile-review, .v2-reconcile-actions) > .semi-card-body > .v2-workspace-panel-header {
  min-height: 44px;
  margin: 0;
  border-bottom: 1px solid #e5ebf2;
  background: linear-gradient(180deg, #fff 0%, #fafbfd 100%);
  padding: 7px 11px;
}
:is(.v2-reconcile-evidence, .v2-reconcile-review, .v2-reconcile-actions) .v2-workspace-panel-copy > h5.semi-typography {
  color: #34495f;
  font-size: 12px;
}
:is(.v2-reconcile-evidence, .v2-reconcile-review, .v2-reconcile-actions) .v2-workspace-panel-copy > .semi-typography,
:is(.v2-reconcile-evidence, .v2-reconcile-review, .v2-reconcile-actions) .v2-workspace-panel-meta {
  color: #8794a4;
  font-size: 10px;
}
.v2-reconcile-review > .semi-card-body > .v2-workspace-panel-header {
  margin-bottom: 9px;
}

.v2-reconcile-trend > .semi-card-body > .v2-workspace-panel-header {
  min-height: 46px;
  margin: -12px -12px 10px;
  border-bottom: 1px solid #e5ebf2;
  background: linear-gradient(180deg, #fff 0%, #fafbfd 100%);
  padding: 8px 12px;
}
.v2-reconcile-trend .v2-workspace-panel-copy > h5.semi-typography {
  color: #273b51;
  font-size: 13px;
}
.v2-reconcile-trend .v2-workspace-panel-meta {
  color: #8390a2;
  font-size: 10px;
}

@media (max-width: 680px) {
  .v2-reconcile-heading.v2-workspace-panel-header {
    min-height: 64px;
    align-items: flex-start;
    padding: 10px;
  }
  .v2-reconcile-heading > .v2-workspace-panel-copy > .semi-typography { display: none; }
  .v2-reconcile-heading > .v2-workspace-panel-actions {
    max-width: 58%;
    flex-wrap: wrap;
    justify-content: flex-end;
  }
  .v2-reconcile-heading > .v2-workspace-panel-actions > .v2-workspace-panel-meta { display: none; }
  .v2-reconcile-heading > .v2-workspace-panel-actions > .semi-button {
    width: auto;
    min-height: 38px;
  }
  .v2-reconcile-detail > .semi-card-body > .v2-reconcile-detail-heading { min-height: 64px; }
  .v2-reconcile-detail-heading > .v2-workspace-panel-copy > .semi-typography { display: block; }
  .v2-reconcile-trend > .semi-card-body > .v2-workspace-panel-header { align-items: center; }
}

/* Semi UI operations workspace: one focused task per view. */
.v2-ops-tabs {
  display: grid;
  width: min(620px, 100%);
  min-height: 52px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-self: flex-start;
  gap: 5px;
  border: 1px solid var(--v2-surface-border);
  border-radius: 12px;
  background: #fff;
  padding: 5px;
  box-shadow: var(--v2-surface-shadow);
}
.v2-ops-tabs > .semi-button {
  width: 100%;
  min-height: 40px;
  justify-content: center;
  border-radius: 8px;
  color: #607086;
  font-size: 12px;
  font-weight: 650;
}
.v2-ops-tabs > .semi-button:hover { background: #f3f6fa; color: #294c7a; }
.v2-ops-tabs > .semi-button.is-active {
  background: var(--v2-blue);
  color: #fff;
  box-shadow: 0 5px 14px rgba(18, 104, 243, .2);
}
.v2-ops-workspace {
  display: grid;
  min-width: 0;
  gap: 12px;
}
.v2-ops-workspace > .v2-inline-state { margin: 0; }
.v2-ops-workspace.is-health .v2-ops-kpis { gap: 12px; }
.v2-ops-workspace.is-health .v2-ops-kpi-card > .semi-card-body {
  min-height: 112px;
  padding: 16px !important;
}
.v2-ops-workspace.is-health .v2-ops-kpis small {
  color: #687a91;
  font-size: 12px;
  font-weight: 600;
}
.v2-ops-workspace.is-health .v2-ops-kpis strong {
  margin: 9px 0 7px;
  color: #1f3249;
  font-size: 24px;
  font-variant-numeric: tabular-nums;
  line-height: 1.05;
}
.v2-ops-workspace.is-health .v2-ops-kpis span { font-size: 11px; }
.v2-ops-workspace.is-health .v2-ops-grid { gap: 12px; }
.v2-ops-source-title small,
.v2-ops-source-evidence strong,
.v2-ops-source-action strong,
.v2-ops-source-evidence p,
.v2-ops-source-action p,
.v2-ops-source-card footer span { font-size: 11px; }
.v2-ops-source-title .semi-tag,
.v2-ops-source-card > .semi-card-header .v2-ops-health-tag.semi-tag,
.v2-ops-source-card footer .semi-tag { font-size: 10px; }
.v2-ops-source-evidence,
.v2-ops-source-action { min-height: 96px; }

@media (max-width: 900px) {
  .v2-ops-tabs { width: 100%; }
  .v2-ops-workspace.is-health .v2-ops-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v2-ops-workspace.is-health .v2-ops-kpi-card:last-child { grid-column: 1 / -1; }
}

@media (max-width: 680px) {
  .v2-ops-tabs {
    position: sticky;
    z-index: 8;
    top: 0;
    min-height: 50px;
    gap: 3px;
    border-radius: 10px;
    padding: 4px;
  }
  .v2-ops-tabs > .semi-button {
    min-height: 40px;
    padding-inline: 7px;
    font-size: 11px;
  }
  .v2-ops-workspace { gap: 10px; }
  .v2-ops-workspace.is-health .v2-ops-kpis { gap: 8px; }
  .v2-ops-workspace.is-health .v2-ops-kpi-card > .semi-card-body {
    min-height: 100px;
    padding: 13px !important;
  }
  .v2-ops-workspace.is-health .v2-ops-kpis small { font-size: 11px; }
  .v2-ops-workspace.is-health .v2-ops-kpis strong { font-size: 21px; }
  .v2-ops-workspace.is-health .v2-ops-kpis span { font-size: 10px; }
}

/* Semi UI alert command center: one shared hierarchy for events, rules and notifications. */
.v2-alert-page {
  gap: 12px;
  overflow: hidden;
  padding: 14px 18px 18px;
  background: #f4f7fb;
}
.v2-alert-tabs.v2-segmented-tabs {
  display: grid;
  width: min(540px, 100%);
  min-height: 52px;
  grid-auto-flow: column;
  grid-auto-columns: minmax(132px, 1fr);
  align-self: flex-start;
  gap: 5px;
  overflow: visible;
  border: 1px solid #dce5ef;
  border-radius: 12px;
  background: #fff;
  margin: 0;
  padding: 5px;
  box-shadow: 0 5px 18px rgba(31, 53, 80, .045);
}
.v2-alert-tabs.v2-segmented-tabs > .semi-button {
  width: 100%;
  min-height: 40px;
  justify-content: center;
  border-radius: 8px;
  color: #617188;
  font-size: 12px;
  font-weight: 650;
}
.v2-alert-tabs.v2-segmented-tabs > .semi-button::after { display: none; }
.v2-alert-tabs.v2-segmented-tabs > .semi-button:hover {
  background: #f3f6fa;
  color: #2d527f;
}
.v2-alert-tabs.v2-segmented-tabs > .semi-button.is-active {
  background: #1268f3;
  color: #fff;
  box-shadow: 0 5px 14px rgba(18, 104, 243, .2);
}
.v2-alert-tabs .v2-segmented-tab-label { justify-content: center; gap: 7px; }
.v2-alert-tabs .v2-segmented-tab-count {
  min-width: 19px;
  min-height: 19px;
  background: rgba(255, 255, 255, .2);
  color: inherit;
  font-size: 9px;
}
.v2-alert-tabs > .semi-button:not(.is-active) .v2-segmented-tab-count {
  background: #fff0ed;
  color: #d9473f;
}

.v2-alert-filter-card.semi-card,
.v2-alert-kpis-card.semi-card,
.v2-alert-table-card.semi-card,
.v2-alert-inspector.semi-card,
.v2-alert-rule-list.semi-card,
.v2-alert-rule-editor.semi-card,
.v2-alert-notifications.semi-card {
  border-color: #dce5ef;
  border-radius: 12px;
  box-shadow: 0 6px 22px rgba(31, 53, 80, .045);
}
.v2-alert-filter { gap: 10px; padding: 12px 14px; }
.v2-alert-filter label { gap: 6px; color: #66778e; font-size: 12px; font-weight: 600; }
.v2-alert-filter label > .semi-input-wrapper,
.v2-alert-filter label > .semi-select,
.v2-alert-filter > .semi-button {
  min-height: 40px;
  border-radius: 8px;
}
.v2-alert-filter .semi-input,
.v2-alert-filter .semi-select-selection-text,
.v2-alert-filter > .semi-button { font-size: 13px; }
.v2-alert-kpis-card.semi-card { min-height: 84px; }
.v2-alert-kpis { min-height: 84px; }
.v2-alert-kpis .v2-metric-action-content { min-height: 84px; }
.v2-alert-kpis small { color: #687991; font-size: 12px; font-weight: 600; }
.v2-alert-kpis strong { margin-top: 8px; font-size: 24px; font-weight: 750; }

.v2-alert-workspace {
  min-height: 0;
  flex: 1 1 0;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  margin-top: 0;
}
.v2-alert-workspace.is-inspector-open {
  grid-template-columns: minmax(690px, 1fr) minmax(360px, 390px);
}
.v2-alert-table-card > .semi-card-body > .v2-workspace-panel-header {
  min-height: 54px;
  padding: 9px 14px;
}
.v2-alert-table-card .v2-workspace-panel-copy > h5.semi-typography { font-size: 15px; }
.v2-alert-table-card .v2-workspace-panel-meta { font-size: 11px; }
.v2-alert-table-card .v2-workspace-panel-actions > .semi-button {
  min-height: 36px;
  padding-inline: 11px;
  font-size: 12px;
}
.v2-alert-table-scroll .v2-alert-event-table.semi-table-wrapper {
  color: #42536a;
  font-size: 12px;
}
.v2-alert-table-scroll .v2-alert-event-table.semi-table-wrapper .semi-table-thead > .semi-table-row > .semi-table-row-head {
  height: 44px;
  background: #f7f9fc;
  color: #5e7087;
  font-size: 12px;
  font-weight: 650;
}
.v2-alert-table-scroll .v2-alert-event-table.semi-table-wrapper .semi-table-tbody > .semi-table-row > .semi-table-row-cell {
  height: 52px;
  color: #47586e;
  font-size: 12px;
}
.v2-alert-event-vehicle strong { color: #2b4058; font-size: 13px; }
.v2-alert-event-vehicle small { color: #8794a5; font-size: 10px; }
.v2-alert-event-rule,
.v2-alert-event-location { font-size: 12px; }
.v2-alert-table-card > .semi-card-body > footer {
  min-height: 48px;
  padding: 7px 12px;
}

.v2-alert-inspector.semi-card { background: #f6f8fb; }
.v2-alert-inspector > .semi-card-body > .v2-alert-inspector-heading {
  position: sticky;
  z-index: 5;
  top: 0;
  min-height: 68px;
  align-items: center;
  border-bottom: 1px solid #dfe7f1;
  background: rgba(255, 255, 255, .98);
  padding: 11px 14px;
  backdrop-filter: blur(12px);
}
.v2-alert-inspector-heading > .v2-workspace-panel-copy > h5.semi-typography {
  max-width: 250px;
  color: #23384f;
  font-size: 15px;
  line-height: 1.35;
}
.v2-alert-inspector-heading > .v2-workspace-panel-actions {
  max-width: none;
  flex-wrap: nowrap;
}
.v2-alert-inspector-status { display: flex; align-items: center; gap: 6px; }
.v2-alert-inspector-status .semi-tag { min-height: 24px; font-size: 10px; }
.v2-alert-inspector-close.semi-button {
  width: 32px;
  min-width: 32px;
  height: 32px;
  border-radius: 8px;
  color: #6d7c90;
}
.v2-alert-inspector-content { gap: 12px; padding: 12px; }
.v2-alert-detail-card > .semi-card-header { min-height: 46px; padding: 0 13px; }
.v2-alert-detail-card > .semi-card-header .semi-card-header-wrapper-title h6,
.v2-alert-detail-card > .semi-card-header .semi-card-header-wrapper-title > strong { font-size: 13px; }
.v2-alert-descriptions .semi-descriptions-item { padding: 10px 12px; }
.v2-alert-descriptions .semi-descriptions-key { font-size: 11px; }
.v2-alert-descriptions .semi-descriptions-value { font-size: 12px; }
.v2-alert-descriptions code { font-size: 11px; }
.v2-alert-evidence > .v2-alert-evidence-value > .semi-card-body { min-height: 80px; }
.v2-alert-evidence small { font-size: 11px; }
.v2-alert-evidence strong { font-size: 15px; }
.v2-alert-timeline .semi-timeline-item-content strong { font-size: 12px; }
.v2-alert-timeline .semi-timeline-item-content-time,
.v2-alert-timeline .semi-timeline-item-content p { font-size: 10px; }
.v2-alert-disposition-card .v2-alert-actions > .semi-button {
  min-height: 38px;
  font-size: 12px;
}
.v2-alert-inspector > .semi-card-body > .v2-alert-links { min-height: 52px; }
.v2-alert-inspector > .semi-card-body > .v2-alert-links a { min-height: 36px; font-size: 11px; }

.v2-alert-rules {
  min-height: 0;
  flex: 1 1 0;
  grid-template-columns: minmax(340px, 370px) minmax(620px, 1fr);
  gap: 12px;
}
.v2-alert-rule-list > .semi-card-body > .v2-alert-rule-list-heading,
.v2-alert-rule-editor-form > .v2-alert-rule-editor-heading {
  min-height: 64px;
  flex: 0 0 auto;
  border-bottom: 1px solid #dfe7f1;
  background: rgba(255, 255, 255, .98);
  padding: 10px 14px;
}
.v2-alert-rule-editor-form > .v2-alert-rule-editor-heading {
  position: sticky;
  z-index: 4;
  top: 0;
}
.v2-alert-rule-list-heading .v2-workspace-panel-copy > h5.semi-typography,
.v2-alert-rule-editor-heading .v2-workspace-panel-copy > h5.semi-typography {
  color: #253a52;
  font-size: 15px;
}
.v2-alert-rule-list-heading .v2-workspace-panel-copy > .semi-typography,
.v2-alert-rule-editor-heading .v2-workspace-panel-copy > .semi-typography { font-size: 11px; }
.v2-alert-rule-list-heading .v2-workspace-panel-actions > .semi-button,
.v2-alert-rule-editor-heading .v2-workspace-panel-actions > .semi-button {
  min-height: 36px;
  padding-inline: 12px;
  font-size: 12px;
}
.v2-alert-rule-item.semi-button {
  min-height: 76px;
  padding: 10px 13px;
}
.v2-alert-rule-copy > span > strong { color: #2d425a; font-size: 13px; }
.v2-alert-rule-copy > small {
  margin-top: 7px;
  color: #7a899d;
  font-size: 11px;
}
.v2-alert-rule-copy .semi-tag,
.v2-alert-rule-state.semi-tag { font-size: 10px; }
.v2-alert-rule-templates { padding: 15px 16px; }
.v2-alert-rule-templates > div > strong { color: #30465e; font-size: 13px; }
.v2-alert-rule-templates > div > span { font-size: 11px; }
.v2-alert-rule-templates > nav { gap: 10px; }
.v2-alert-template-card.semi-button {
  min-height: 88px;
  border-radius: 10px;
  padding: 12px;
}
.v2-alert-template-copy b { font-size: 13px; }
.v2-alert-template-copy small { margin-top: 6px; font-size: 11px; line-height: 1.5; }
.v2-rule-form-grid { gap: 14px 16px; padding: 18px 16px 20px; }
.v2-rule-form-grid label { gap: 7px; color: #607188; font-size: 12px; font-weight: 600; }
.v2-rule-form-grid label > .semi-input-wrapper,
.v2-rule-form-grid label > .semi-select { min-height: 40px; border-radius: 8px; }
.v2-rule-form-grid .semi-input,
.v2-rule-form-grid .semi-select-selection-text { font-size: 13px; }
.v2-rule-form-grid .semi-input-textarea { font-size: 13px; line-height: 1.6; }
.v2-alert-rule-editor-form > footer {
  min-height: 64px;
  padding: 10px 16px;
}
.v2-alert-rule-editor-form > footer b { font-size: 12px; }
.v2-alert-rule-editor-form > footer span,
.v2-alert-rule-editor-form > footer em { font-size: 10px; }
.v2-alert-rule-editor-form > footer > .semi-button {
  min-height: 40px;
  font-size: 12px;
}

.v2-alert-notifications > .semi-card-body > .v2-workspace-panel-header {
  min-height: 60px;
  padding: 10px 14px;
}
.v2-alert-notifications .v2-workspace-panel-copy > h5.semi-typography { font-size: 15px; }
.v2-alert-notifications .v2-workspace-panel-copy > .semi-typography { font-size: 11px; }
.v2-alert-notification-list { padding: 12px; }
.v2-alert-notification-cards.semi-card-group { gap: 12px; }
.v2-alert-notification-card > .semi-card-header { min-height: 54px; padding: 0 12px; }
.v2-alert-notification-title > span:last-child { font-size: 13px; }
.v2-alert-notification-content { font-size: 12px; line-height: 1.65; }
.v2-alert-notification-card footer .semi-typography,
.v2-alert-notification-card footer .semi-button { font-size: 11px; }

@media (max-width: 1180px) {
  .v2-alert-workspace { grid-template-columns: minmax(620px, 1fr) 340px; }
  .v2-alert-rules { grid-template-columns: 330px minmax(560px, 1fr); }
}

@media (max-width: 900px) {
  .v2-alert-page { height: auto; min-height: 100%; overflow: auto; }
  .v2-alert-workspace { display: flex; min-height: 0; flex-direction: column; }
  .v2-alert-rules {
    display: flex;
    min-height: 0;
    flex: none;
    flex-direction: column;
    overflow: visible;
  }
  .v2-alert-table-card { min-height: 620px; }
  .v2-alert-rule-list { max-height: 330px; flex: none; }
  .v2-alert-rule-editor.semi-card { flex: none; overflow: visible; }
  .v2-alert-rule-editor-form > .v2-alert-rule-editor-heading { position: static; }
}

@media (max-width: 1280px) and (min-width: 681px) {
  .v2-alert-workspace.is-inspector-open {
    position: relative;
    grid-template-columns: minmax(0, 1fr);
  }
  .v2-alert-workspace.is-inspector-open > .v2-alert-inspector {
    position: absolute;
    z-index: 8;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(390px, calc(100% - 56px));
    box-shadow: -12px 0 38px rgba(24, 38, 58, .16);
  }
}

@media (max-width: 680px) {
  .v2-alert-page { gap: 10px; padding: 10px 8px 18px; }
  .v2-alert-tabs.v2-segmented-tabs {
    position: sticky;
    z-index: 8;
    top: 0;
    width: 100%;
    min-height: 50px;
    grid-auto-columns: minmax(112px, 1fr);
    gap: 3px;
    overflow-x: auto;
    padding: 4px;
  }
  .v2-alert-tabs.v2-segmented-tabs > .semi-button {
    min-height: 40px;
    padding-inline: 7px;
    font-size: 11px;
  }
  .v2-alert-filter { gap: 9px; padding: 11px; }
  .v2-alert-filter label { font-size: 11px; }
  .v2-alert-filter label > .semi-input-wrapper,
  .v2-alert-filter label > .semi-select,
  .v2-alert-filter > .semi-button { min-height: 42px; }
  .v2-alert-kpis-card.semi-card { min-height: 112px; }
  .v2-alert-kpis {
    display: grid;
    min-height: 112px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    overflow: hidden;
  }
  .v2-alert-kpis .v2-metric-action {
    min-width: 0;
    flex-basis: auto;
    border-top: 1px solid transparent;
    scroll-snap-align: none;
  }
  .v2-alert-kpis .v2-metric-action:nth-child(n + 5) { border-top-color: #e5ebf2; }
  .v2-alert-kpis .v2-metric-action:nth-child(4n + 1)::before { display: none; }
  .v2-alert-kpis .v2-metric-action.is-notice { grid-column: span 2; }
  .v2-alert-kpis .v2-metric-action-content { min-height: 56px; }
  .v2-alert-kpis small { font-size: 10px; }
  .v2-alert-kpis strong { margin-top: 5px; font-size: 19px; }
  .v2-alert-table-card { min-height: 440px; }
  .v2-alert-mobile-card-content { padding: 13px; }
  .v2-alert-mobile-card-content header > strong { font-size: 14px; }
  .v2-alert-mobile-card-content p { font-size: 13px; }
  .v2-alert-mobile-card-content dt { font-size: 10px; }
  .v2-alert-mobile-card-content dd { font-size: 12px; }
  .v2-alert-inspector > .semi-card-body > .v2-alert-inspector-heading {
    position: static;
    min-height: 64px;
    align-items: center;
  }
  .v2-alert-workspace.is-inspector-open > .v2-alert-inspector {
    position: fixed;
    z-index: 80;
    top: 52px;
    right: 8px;
    bottom: calc(66px + env(safe-area-inset-bottom));
    left: 8px;
    width: auto;
    max-height: none;
    overflow: auto;
    border-radius: 14px;
    box-shadow: 0 18px 52px rgba(20, 35, 55, .22);
    animation: v2-mobile-sheet-enter .18s ease-out;
  }
  .v2-alert-inspector-heading > .v2-workspace-panel-copy > h5.semi-typography { max-width: 210px; font-size: 14px; }
  .v2-alert-inspector-heading > .v2-workspace-panel-actions { max-width: none; }
  .v2-alert-inspector-content { gap: 9px; padding: 9px; }
  .v2-alert-rule-list > .semi-card-body > .v2-alert-rule-list-heading,
  .v2-alert-rule-editor-form > .v2-alert-rule-editor-heading {
    min-height: 64px;
    align-items: center;
    padding: 9px 10px;
  }
  .v2-alert-rule-list-heading .v2-workspace-panel-copy > h5.semi-typography,
  .v2-alert-rule-editor-heading .v2-workspace-panel-copy > h5.semi-typography { font-size: 14px; }
  .v2-alert-rule-list-heading .v2-workspace-panel-copy > .semi-typography,
  .v2-alert-rule-editor-heading .v2-workspace-panel-copy > .semi-typography { max-width: 190px; font-size: 10px; }
  .v2-alert-rule-list-heading .v2-workspace-panel-actions > .semi-button,
  .v2-alert-rule-editor-heading .v2-workspace-panel-actions > .semi-button { min-height: 38px; }
  .v2-alert-rule-item.semi-button { min-height: 72px; padding: 9px 11px; }
  .v2-alert-rule-copy > span > strong { font-size: 12px; }
  .v2-alert-rule-copy > small { font-size: 10px; }
  .v2-alert-rule-templates { padding: 12px; }
  .v2-alert-rule-templates > nav { grid-template-columns: 1fr; }
  .v2-alert-template-card.semi-button { min-height: 84px; }
  .v2-rule-form-grid { grid-template-columns: 1fr; gap: 13px; padding: 14px 12px 18px; }
  .v2-rule-form-grid label.is-wide { grid-column: auto; }
  .v2-rule-form-grid label { font-size: 11px; }
  .v2-rule-form-grid label > .semi-input-wrapper,
  .v2-rule-form-grid label > .semi-select { min-height: 42px; }
  .v2-alert-rule-editor-form > footer { min-height: 0; padding: 12px; }
  .v2-alert-notification-list { padding: 8px; }
  .v2-alert-notification-card > .semi-card-header { min-height: 50px; padding: 0 10px; }
  .v2-alert-notification-title > span:last-child { font-size: 12px; }
  .v2-alert-notification-content { font-size: 11px; }
}

/* Semi UI vehicle lookup: one stable workspace, with suggestions revealed only after user intent. */
.v2-vehicle-search-page {
  align-content: start;
  place-items: start center;
  gap: 14px;
  overflow: auto;
  background: var(--v2-bg);
  padding: clamp(24px, 4vh, 40px) var(--v2-page-gutter) 32px;
}
.v2-vehicle-search-card.semi-card,
.v2-vehicle-recent-card.semi-card {
  width: min(1040px, 100%);
  border-color: var(--v2-surface-border);
  border-radius: 14px;
  box-shadow: var(--v2-surface-shadow);
  text-align: left;
}
.v2-vehicle-search-card > .semi-card-body {
  padding: 32px 36px 28px;
}
.v2-vehicle-search-intro {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  align-items: center;
  gap: 18px;
}
.v2-vehicle-search-intro .v2-search-hero-icon {
  width: 56px;
  height: 56px;
  margin: 0;
  border-radius: 14px;
  box-shadow: none;
}
.v2-vehicle-search-intro h2.semi-typography {
  margin: 0;
  color: #172033;
  font-size: 24px;
  font-weight: 740;
  letter-spacing: -.035em;
  line-height: 1.2;
}
.v2-vehicle-search-intro .semi-typography-secondary {
  display: block;
  max-width: 670px;
  margin-top: 7px;
  color: #718096;
  font-size: 13px;
  line-height: 1.65;
}
.v2-vehicle-search-form {
  position: relative;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: 54px;
  margin-top: 24px;
  overflow: visible;
  border-color: #d7e1ed;
  background: #f8fafc;
}
.v2-vehicle-search-form > .v2-vehicle-search-picker {
  position: relative;
  min-width: 0;
  flex: 1 1 auto;
}
.v2-vehicle-search-form > .v2-vehicle-search-picker > .semi-input-wrapper {
  width: 100%;
}
.v2-vehicle-search-form > .semi-button {
  min-width: 126px;
  height: 44px;
  margin-right: 5px;
  border-radius: 9px;
}
.v2-vehicle-search-options.v2-vehicle-candidate-list {
  position: absolute;
  z-index: 40;
  box-sizing: border-box;
  min-width: 0;
  top: calc(100% + 13px);
  left: 0;
  width: 100%;
  max-height: min(354px, 46vh);
  overflow: auto;
  border: 1px solid #d9e3ef;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 22px 54px rgba(24, 45, 75, .16);
  text-align: left;
  overscroll-behavior: contain;
}
.v2-vehicle-search-options.v2-vehicle-candidate-list > header {
  position: sticky;
  z-index: 1;
  top: 0;
  min-height: 42px;
  padding-inline: 14px;
  background: rgba(249, 251, 254, .96);
  backdrop-filter: blur(10px);
}
.v2-vehicle-search-options.v2-vehicle-candidate-list > .v2-vehicle-option.semi-button {
  min-height: 58px;
  padding: 8px 13px;
}
.v2-vehicle-search-options.is-grid > .v2-vehicle-option .semi-button-content {
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
}
.v2-vehicle-search-options.is-grid .v2-vehicle-option-protocols { grid-column: 1; }
.v2-vehicle-search-options.is-grid .v2-vehicle-option-action.semi-tag {
  grid-column: 2;
  grid-row: 1 / span 2;
}
.v2-vehicle-search-options .v2-vehicle-option-identity strong { font-size: 12px; }
.v2-vehicle-search-options .v2-vehicle-option-identity small { font-size: 9px; }
.v2-vehicle-search-card .v2-profile-sync-open.semi-button {
  display: flex;
  width: max-content;
  margin: 16px 0 0 auto;
}
.v2-vehicle-recent-card > .semi-card-body {
  overflow: hidden;
  border-radius: inherit;
}
.v2-vehicle-recent-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 12px;
}
.v2-vehicle-recent-item.semi-button {
  display: block;
  width: 100%;
  min-width: 0;
  height: auto;
  min-height: 82px;
  border: 1px solid #e3eaf2;
  border-radius: 10px;
  background: #fbfcfe;
  padding: 11px 34px 10px 12px;
  color: #26374d;
  text-align: left;
  transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.v2-vehicle-recent-item.semi-button:hover,
.v2-vehicle-recent-item.semi-button:focus-visible {
  border-color: #b8d1fb;
  background: #f5f9ff;
  box-shadow: 0 6px 18px rgba(33, 102, 217, .08);
  transform: translateY(-1px);
}
.v2-vehicle-recent-item .semi-button-content {
  position: relative;
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  align-items: center;
  gap: 8px;
}
.v2-vehicle-recent-identity {
  display: grid;
  min-width: 0;
  gap: 3px;
}
.v2-vehicle-recent-identity strong {
  overflow: hidden;
  color: #182438;
  font-size: 14px;
  font-weight: 720;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-vehicle-recent-identity small,
.v2-vehicle-recent-status small {
  overflow: hidden;
  color: #8391a4;
  font-size: 9px;
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-vehicle-recent-status {
  display: grid;
  justify-items: end;
  gap: 4px;
}
.v2-vehicle-recent-protocols {
  display: flex;
  min-width: 0;
  gap: 4px;
}
.v2-vehicle-recent-protocols .semi-tag,
.v2-vehicle-recent-status .semi-tag {
  margin: 0;
}
.v2-vehicle-recent-arrow {
  position: absolute;
  top: 50%;
  right: -24px;
  color: #9aabba;
  transform: translateY(-50%);
}
.v2-vehicle-recent-state {
  display: flex;
  min-height: 128px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  color: #718096;
  font-size: 12px;
}
.v2-vehicle-recent-state.is-error {
  flex-direction: column;
  color: var(--semi-color-danger);
}
.v2-vehicle-recent-empty.semi-empty {
  padding: 22px 16px 28px;
}

@media (max-width: 680px) {
  .v2-vehicle-search-page {
    align-content: start;
    overflow: auto;
    padding: 12px 10px 96px;
  }
  .v2-vehicle-search-form > .v2-vehicle-search-picker {
    width: auto;
    flex: 1 1 100%;
  }
  .v2-vehicle-search-card.semi-card,
  .v2-vehicle-recent-card.semi-card {
    width: 100%;
    min-width: 0;
    border-radius: 12px;
  }
  .v2-vehicle-search-card > .semi-card-body {
    padding: 20px 14px 16px;
  }
  .v2-vehicle-search-intro {
    grid-template-columns: 44px minmax(0, 1fr);
    align-items: start;
    gap: 11px;
  }
  .v2-vehicle-search-intro .v2-search-hero-icon {
    display: grid;
    width: 44px;
    height: 44px;
    border-radius: 11px;
  }
  .v2-vehicle-search-intro h2.semi-typography {
    font-size: 18px;
    text-align: left;
  }
  .v2-vehicle-search-intro .semi-typography-secondary {
    display: -webkit-box;
    max-width: none;
    margin: 4px 0 0;
    overflow: hidden;
    font-size: 11px;
    line-height: 1.55;
    text-align: left;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
  .v2-vehicle-search-form {
    height: auto;
    margin-top: 16px;
    gap: 8px;
    border: 0;
    background: transparent;
    padding: 0;
  }
  .v2-vehicle-search-form > .v2-vehicle-search-picker {
    height: 48px;
    border: 1px solid #d7e1ed;
    border-radius: 10px;
    background: #f8fafc;
    padding-inline: 4px;
  }
  .v2-vehicle-search-form > .semi-button {
    width: 100%;
    height: 46px;
    margin: 0;
  }
  .v2-vehicle-search-options.v2-vehicle-candidate-list {
    position: static;
    width: 100%;
    max-height: min(390px, 49vh);
    margin-top: 8px;
    border-radius: 10px;
    box-shadow: 0 14px 38px rgba(24, 45, 75, .13);
  }
  .v2-vehicle-search-options.v2-vehicle-candidate-list > .v2-vehicle-option .semi-button-content,
  .v2-vehicle-search-options.is-grid > .v2-vehicle-option .semi-button-content {
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .v2-vehicle-search-options .v2-vehicle-option-protocols {
    grid-column: 1;
  }
  .v2-vehicle-search-options .v2-vehicle-option-action.semi-tag {
    grid-column: 2;
    grid-row: 1 / span 2;
  }
  .v2-vehicle-search-card .v2-profile-sync-open.semi-button {
    width: 100%;
    justify-content: center;
    margin-top: 12px;
  }
  .v2-vehicle-recent-grid {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 4px 10px 8px;
  }
  .v2-vehicle-recent-item.semi-button {
    min-height: 62px;
    border: 0;
    border-bottom: 1px solid #edf1f6;
    border-radius: 0;
    background: transparent;
    padding: 8px 28px 8px 2px;
  }
  .v2-vehicle-recent-item.semi-button:last-child {
    border-bottom: 0;
  }
  .v2-vehicle-recent-item.semi-button:hover,
  .v2-vehicle-recent-item.semi-button:focus-visible {
    background: #f5f9ff;
    box-shadow: none;
    transform: none;
  }
  .v2-vehicle-recent-identity strong {
    font-size: 13px;
  }
  .v2-vehicle-recent-arrow {
    right: -20px;
  }
}

/* Semi UI history hierarchy: keep evidence rows primary and aggregate trends explicitly on demand. */
.v2-history-trend.is-collapsed.semi-card {
  height: 56px;
  min-height: 56px;
}
.v2-history-trend.is-collapsed > .semi-card-body {
  height: 56px;
}
.v2-history-trend.is-collapsed .v2-workspace-panel-header {
  height: 56px;
  min-height: 56px;
  border-bottom: 0;
}
.v2-history-trend-toggle.semi-button {
  min-width: 86px;
  height: 32px;
  border-radius: 7px;
  padding-inline: 9px;
  color: #607086;
  font-size: 11px;
}
.v2-history-trend-toggle.semi-button:hover {
  background: #f1f6fd;
  color: var(--v2-blue);
}
.v2-history-trend-toggle .semi-icon {
  transition: transform .18s ease;
}
.v2-history-trend-toggle.is-expanded .semi-icon {
  transform: rotate(90deg);
}

@media (min-width: 901px) {
  .v2-history-main {
    grid-template-rows: 76px 56px minmax(210px, 1fr);
  }
  .v2-history-main.has-expanded-trend {
    grid-template-rows: 76px 205px minmax(210px, 1fr);
  }
  .v2-history-trend.is-expanded.semi-card {
    height: 205px;
    min-height: 205px;
  }
}

@media (max-width: 900px) {
  .v2-history-trend {
    order: 0;
    margin-top: 0;
  }
  .v2-history-trend.is-collapsed.semi-card {
    height: 56px;
    min-height: 56px;
  }
  .v2-history-trend.is-expanded.semi-card {
    height: auto;
    min-height: 220px;
  }
  .v2-history-trend-toggle.semi-button {
    min-width: 88px;
    height: 38px;
    font-size: 12px;
  }
}

/* Semi UI operations queue: render one responsive result surface and keep filters/trends task-focused. */
.v2-reconcile-trend-toggle.semi-button {
  min-width: 68px;
  height: 34px;
  border-radius: 8px;
  color: #55708f;
  font-size: 11px;
}

@media (max-height: 800px) and (min-width: 901px) {
  .v2-ops-page > .v2-page-heading {
    min-height: 62px;
    padding-block: 2px;
  }
  .v2-ops-tabs {
    min-height: 46px;
    padding: 4px;
  }
  .v2-ops-tabs > .semi-button { height: 36px; }
  .v2-reconcile-heading.v2-workspace-panel-header { min-height: 64px; }
  .v2-reconcile-kpis { padding: 8px 10px; }
  .v2-reconcile-kpi-card > .semi-card-body {
    min-height: 72px;
    padding: 9px 12px !important;
  }
}

@media (max-width: 680px) {
  .v2-reconcile-layout {
    display: flex;
    flex-direction: column;
  }
  .v2-reconcile-main { order: 1; }
  .v2-reconcile-trend { order: 2; }
  .v2-reconcile-main > .v2-mobile-filter-toggle {
    margin: 8px;
    width: calc(100% - 16px);
  }
  .v2-reconcile-trend.is-mobile-collapsed.semi-card {
    height: 58px;
    min-height: 58px;
    overflow: hidden;
  }
  .v2-reconcile-trend.is-mobile-collapsed > .semi-card-body {
    height: 56px;
    padding: 0 !important;
  }
  .v2-reconcile-trend.is-mobile-collapsed .v2-workspace-panel-header {
    min-height: 56px;
    border-bottom: 0;
    padding-inline: 12px;
  }
  .v2-reconcile-trend.is-mobile-collapsed .v2-workspace-panel-actions {
    margin-left: auto;
  }
  .v2-reconcile-trend-toggle.semi-button {
    min-width: 72px;
    height: 38px;
    font-size: 12px;
  }
}

/* Semi UI account directory: list first, edit in a focused inspector. */
.v2-user-admin-grid {
  display: block;
  min-height: 0;
}
.v2-user-list.semi-card {
  position: static;
  max-height: none;
}
.v2-user-directory-metrics {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 8px;
  margin-bottom: 12px;
}
.v2-user-directory-metrics > span {
  display: grid;
  min-height: 68px;
  align-content: center;
  gap: 5px;
  border: 1px solid #e1e8f1;
  border-radius: 10px;
  background: #f7f9fc;
  padding: 10px 13px;
}
.v2-user-directory-metrics small {
  color: #7a889b;
  font-size: 10px;
  font-weight: 600;
}
.v2-user-directory-metrics strong {
  color: #21364f;
  font-size: 21px;
  line-height: 1;
}
.v2-customer-list .semi-list-items {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(min(100%,680px),1fr));
  gap: 8px;
}
.v2-customer-list .v2-user-list-row.semi-list-item,
.v2-customer-list .v2-user-list-item.semi-button,
.v2-customer-list .v2-user-list-item .semi-button-content,
.v2-user-list-identity,
.v2-user-list-facts,
.v2-user-list-trailing {
  min-width: 0;
}
.v2-customer-list .v2-user-list-item.semi-button {
  min-height: 76px;
  padding: 10px 12px;
}
.v2-customer-list .v2-user-list-item .semi-button-content {
  grid-template-columns: 38px minmax(170px,1.35fr) minmax(72px,.5fr) minmax(72px,.5fr) minmax(150px,.9fr) auto;
  gap: 12px;
}
.v2-user-list-facts {
  display: grid;
  min-width: 0;
  gap: 4px;
}
.v2-user-list-facts small {
  color: #8a97a8;
  font-size: 9px;
}
.v2-user-list-facts b {
  overflow: hidden;
  color: #43576e;
  font-size: 11px;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-user-editor.semi-card {
  position: fixed;
  z-index: 33;
  top: 68px;
  right: 0;
  bottom: 0;
  width: min(900px,78vw);
  overflow: hidden;
  border: 0;
  border-left: 1px solid #cbd8e8;
  border-radius: 0;
  box-shadow: -16px 0 42px rgba(20,37,59,.16);
}
.v2-user-editor > .semi-card-body { height: 100%; }
.v2-user-editor form {
  height: 100%;
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
}
.v2-user-editor-title {
  position: sticky;
  z-index: 4;
  top: 0;
}
.v2-user-editor-close.semi-button {
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  border-radius: 9px;
  color: #65768a;
}

/* Semi UI operations: keep the queue before secondary trend evidence on small screens. */
@media (max-width: 680px) {
  .v2-user-admin-grid { display: block; }
  .v2-user-list > .semi-card-body { display: block; padding: 10px; }
  .v2-user-directory-heading { padding-bottom: 9px; }
  .v2-user-directory-metrics { gap: 6px; margin-bottom: 9px; }
  .v2-user-directory-metrics > span {
    min-height: 58px;
    padding: 8px 10px;
  }
  .v2-user-directory-metrics small { font-size: 9px; }
  .v2-user-directory-metrics strong { font-size: 19px; }
  .v2-user-list-search.semi-input-wrapper {
    display: flex;
    min-height: 42px;
    margin-bottom: 9px;
  }
  .v2-customer-list.semi-list {
    display: block;
    overflow: visible;
  }
  .v2-customer-list .semi-list-items {
    grid-template-columns: minmax(0,1fr);
    gap: 7px;
  }
  .v2-customer-list .v2-user-list-item.semi-button {
    min-height: 88px;
    padding: 10px;
  }
  .v2-customer-list .v2-user-list-item .semi-button-content {
    grid-template-columns: 36px minmax(0,1fr) 70px auto;
    grid-template-rows: auto auto;
    gap: 5px 9px;
  }
  .v2-user-avatar { grid-row: 1 / 3; }
  .v2-user-list-identity { grid-column: 2 / 4; grid-row: 1; }
  .v2-user-list-facts { grid-row: 2; }
  .v2-user-list-facts.is-login { display: none; }
  .v2-user-list-trailing { grid-column: 4; grid-row: 1 / 3; }
  .v2-user-editor.semi-card {
    inset: 54px 0 66px;
    width: auto;
    border-left: 0;
  }
  .v2-user-editor-title {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto auto;
    gap: 8px;
  }
  .v2-user-editor-close.semi-button {
    width: 40px;
    height: 40px;
  }
  .v2-reconcile-kpis {
    display: grid;
    overflow: visible;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 6px;
  }
  .v2-reconcile-kpi-card.semi-card {
    min-width: 0;
    flex: initial;
  }
  .v2-reconcile-kpi-card:last-child { grid-column: 1 / -1; }
  .v2-reconcile-kpi-card > .semi-card-body {
    min-height: 72px;
    padding: 9px 10px !important;
  }
  .v2-reconcile-kpis strong { font-size: 20px; }
  .v2-reconcile-detail.semi-card { bottom: 66px; }
}

/* Semi UI customer workspace: align replay and mileage density with the monitor. */
@media (min-width: 701px) {
  .v2-track-query-header.v2-workspace-panel-header {
    min-height: 58px;
    padding-inline: 15px 10px;
  }
  .v2-track-query-header .v2-workspace-panel-copy > h5.semi-typography {
    font-size: 16px;
  }
  .v2-track-query-header .v2-workspace-panel-copy > .semi-typography {
    font-size: 11px;
  }
  .v2-track-query {
    padding: 14px 16px 16px;
  }
  .v2-track-query > label,
  .v2-track-date-grid label {
    color: #66788f;
    font-size: 12px;
    font-weight: 600;
  }
  .v2-track-vehicle-picker > .semi-input-wrapper .semi-input,
  .v2-track-date-grid .semi-input,
  .v2-track-query > label > .semi-select .semi-select-selection-text {
    font-size: 13px;
  }
  .v2-track-presets {
    gap: 7px;
  }
  .v2-track-presets > .semi-button {
    height: 34px;
    border-radius: 8px;
    font-size: 12px;
  }
  .v2-track-presets > .semi-button-solid {
    background: #edf4ff;
    color: var(--v2-blue);
    box-shadow: inset 0 0 0 1px #bdd4f8;
  }
  .v2-track-query > .v2-track-query-button.semi-button {
    height: 42px;
    border-radius: 9px;
    font-size: 13px;
  }
  .v2-track-result-header.v2-workspace-panel-header {
    min-height: 52px;
    padding-inline: 14px;
  }
  .v2-track-result-header .v2-workspace-panel-copy > h5.semi-typography {
    font-size: 14px;
  }
  .v2-track-result-header .v2-workspace-panel-copy > .semi-typography,
  .v2-track-result-header .v2-workspace-panel-meta {
    font-size: 11px;
  }
  .v2-track-rail-tabs > .semi-button {
    height: 42px;
    font-size: 12px;
  }
  .v2-track-rail-tabs .v2-segmented-tab-count {
    min-width: 18px;
    min-height: 18px;
    font-size: 9px;
  }
  .v2-track-evidence-list button strong {
    font-size: 12px;
  }
  .v2-track-evidence-list button small,
  .v2-track-evidence-list .v2-track-list-action .semi-button-content > em {
    font-size: 10px;
  }
  .v2-track-coverage-float {
    width: min(560px, calc(100% - 420px));
    min-height: 40px;
    grid-template-columns: 8px minmax(0, 1fr) auto;
    border-radius: 9px;
    padding: 6px 12px;
  }
  .v2-track-coverage-float > span {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 8px;
  }
  .v2-track-coverage-float > span strong {
    flex: 0 0 auto;
    margin: 0;
    font-size: 12px;
  }
  .v2-track-coverage-float > span small {
    min-width: 0;
    overflow: hidden;
    color: #748399;
    font-size: 10px;
    font-weight: 500;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .v2-track-coverage-float > em {
    font-size: 10px;
  }
  .v2-track-current-card.semi-card {
    top: 68px;
    width: 320px;
    border-radius: 10px;
  }
  .v2-track-current-card small {
    font-size: 10px;
  }
  .v2-track-current-card > .semi-card-body > div strong {
    font-size: 13px;
  }
  .v2-track-current-card > .semi-card-body > p {
    font-size: 11px;
  }
  .v2-track-stage-tools > .semi-button {
    min-height: 40px;
    border-radius: 10px;
    padding-inline: 12px;
    font-size: 12px;
  }
  .v2-track-dock-summary span,
  .v2-track-progress-meta,
  .v2-track-dock-controls label {
    font-size: 11px;
  }

  .v2-mileage-filter > label {
    color: #66788f;
    font-size: 11px;
    font-weight: 600;
  }
  .v2-mileage-filter > label > .semi-input-wrapper,
  .v2-mileage-source-trigger.semi-button,
  .v2-mileage-filter > .semi-button-primary {
    height: 38px;
    min-height: 38px;
  }
  .v2-mileage-selection > .semi-input-wrapper .semi-input,
  .v2-mileage-filter > label > .semi-input-wrapper .semi-input {
    font-size: 12px;
  }
  .v2-mileage-ranges {
    height: 38px;
  }
  .v2-mileage-ranges .semi-button {
    height: 32px;
    font-size: 11px;
  }
  .v2-mileage-results > .semi-card-body > header {
    min-height: 50px;
  }
  .v2-mileage-results > .semi-card-body > header strong {
    font-size: 15px;
  }
  .v2-mileage-results > .semi-card-body > header span,
  .v2-mileage-results > .semi-card-body > header em {
    font-size: 11px;
  }
  .v2-mileage-table .semi-table-thead > .semi-table-row > .semi-table-row-head {
    height: 44px;
    font-size: 11px;
  }
  .v2-mileage-table .semi-table-tbody > .semi-table-row > .semi-table-row-cell {
    height: 54px;
    font-size: 12px;
  }
  .v2-mileage-table .semi-table-row-cell.is-daily {
    font-size: 11px;
  }
  .v2-mileage-table .semi-table-row-cell.is-period {
    font-size: 12px;
  }
  .v2-mileage-results > .semi-card-body > footer,
  .v2-mileage-evidence {
    font-size: 10px;
  }
}

@media (max-width: 700px) {
  .v2-track-vehicle-options.v2-vehicle-candidate-list {
    max-height: min(300px, 42vh);
  }
  .v2-track-coverage-float > span {
    min-width: 0;
  }
  .v2-track-coverage-float > span small {
    display: none;
  }
  .v2-track-current-card small {
    font-size: 10px;
  }
  .v2-track-current-card > .semi-card-body > div strong {
    font-size: 13px;
  }
  .v2-mileage-table .semi-table-thead > .semi-table-row > .semi-table-row-head {
    font-size: 10px;
  }
  .v2-mileage-table .semi-table-tbody > .semi-table-row > .semi-table-row-cell {
    font-size: 11px;
  }
  .v2-mileage-table .semi-table-row-cell.is-daily {
    font-size: 10px;
  }
  .v2-mileage-table .semi-table-row-cell.is-period {
    font-size: 11px;
  }
  .v2-mileage-result-actions > .semi-button {
    font-size: 11px;
  }
}

/* Semi UI single-vehicle workspace: persistent section navigation and aligned evidence panels. */
.v2-vehicle-record-nav.semi-card {
  position: sticky;
  z-index: 24;
  top: 8px;
  overflow: hidden;
  border-color: #d8e3ef;
  border-radius: 11px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 8px 24px rgba(31, 53, 80, .07);
  backdrop-filter: blur(12px);
}
.v2-vehicle-record-nav .v2-workspace-panel-header {
  min-height: 46px;
  border-bottom: 0;
  background: transparent;
}
.v2-vehicle-record-nav .v2-workspace-panel-actions {
  max-width: none;
}
.v2-vehicle-section-nav {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 3px;
  border: 1px solid #e0e7f0;
  border-radius: 8px;
  background: #f7f9fc;
  padding: 3px;
}
.v2-vehicle-section-nav > .semi-button {
  min-height: 32px;
  border-radius: 6px;
  padding-inline: 10px;
  color: #53657b;
  font-size: 11px;
  font-weight: 650;
}
.v2-vehicle-section-nav > .semi-button:hover,
.v2-vehicle-section-nav > .semi-button:focus-visible {
  background: #fff;
  color: var(--v2-blue);
  box-shadow: 0 1px 5px rgba(31, 53, 80, .09);
}
.v2-record-section-anchor {
  min-width: 0;
  min-height: 0;
  scroll-margin-top: 68px;
  outline: none;
}
.v2-record-section-anchor:focus-visible,
.v2-single-map-card:focus-visible {
  outline: 3px solid rgba(18, 104, 243, .22);
  outline-offset: 2px;
}
#vehicle-location-panel {
  grid-column: 1;
  grid-row: 1;
}
#vehicle-events-panel {
  grid-column: 2;
  grid-row: 1;
}
#vehicle-telemetry-panel {
  grid-column: 1 / -1;
  grid-row: 2;
}
#vehicle-archive-panel {
  grid-column: 1 / -1;
  grid-row: 3;
}
.v2-record-section-anchor > .semi-card {
  width: 100%;
  height: 100%;
}
.v2-single-map-card > .semi-card-body > .v2-workspace-panel-header {
  min-height: 52px;
}
.v2-telemetry-card > .semi-card-body > .v2-workspace-panel-header {
  border-bottom-color: #e5ebf3;
}

@media (max-width: 680px) {
  .v2-vehicle-record-nav.semi-card {
    top: 0;
    border-radius: 10px;
  }
  .v2-vehicle-record-nav .v2-workspace-panel-header {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    padding: 7px 8px;
  }
  .v2-vehicle-record-nav .v2-workspace-panel-copy > .semi-typography {
    display: none;
  }
  .v2-vehicle-record-nav .v2-workspace-panel-actions {
    width: 100%;
    max-width: none;
    overflow: hidden;
  }
  .v2-vehicle-section-nav {
    width: 100%;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
  }
  .v2-vehicle-section-nav::-webkit-scrollbar { display: none; }
  .v2-vehicle-section-nav > .semi-button {
    min-height: 34px;
    flex: 0 0 auto;
    padding-inline: 8px;
    font-size: 10px;
  }
  .v2-record-section-anchor {
    scroll-margin-top: 60px;
  }
}

/* Semi UI vehicle action rail: one consistent, touch-safe command group. */
.v2-vehicle-record-page .v2-identity-actions {
  display: flex;
  flex-wrap: wrap;
  align-content: center;
  justify-content: flex-end;
  gap: 7px;
}
.v2-vehicle-record-page .v2-identity-actions > .semi-button {
  min-width: 102px;
  min-height: 38px;
  flex: 0 1 auto;
  justify-content: center;
  border-radius: 8px;
  padding-inline: 12px;
  font-size: 11px;
  font-weight: 650;
  white-space: nowrap;
}
.v2-vehicle-record-page .v2-identity-actions > .semi-button-primary {
  border-color: #bfd5fb;
  background: #edf4ff;
  color: var(--v2-blue);
}
.v2-vehicle-record-page .v2-identity-actions > .semi-button:hover {
  transform: translateY(-1px);
}

@media (max-width: 1400px) and (min-width: 681px) {
  .v2-vehicle-record-page .v2-identity-actions {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
  }
  .v2-vehicle-record-page .v2-identity-actions > .semi-button {
    width: 100%;
  }
}

@media (max-width: 680px) {
  .v2-vehicle-record-page .v2-identity-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
  }
  .v2-vehicle-record-page .v2-identity-actions > .semi-button {
    width: 100%;
    min-width: 0;
    min-height: 42px;
    padding-inline: 8px;
    font-size: 11px;
  }
}

/* Semi UI mileage workflow: keep the mobile data canvas stable while filters open. */
.v2-mileage-filter-title {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 3px;
}
.v2-mileage-filter-title strong {
  color: #213149;
  font-size: 15px;
  line-height: 1.25;
}
.v2-mileage-filter-title span {
  color: #7c8b9f;
  font-size: 10px;
  font-weight: 500;
}
.v2-mileage-filter-footer {
  display: flex;
  width: 100%;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.v2-mileage-filter-footer > span {
  color: #7b899b;
  font-size: 10px;
}
.v2-mileage-filter-footer > .semi-button {
  min-width: 118px;
  min-height: 38px;
  border-radius: 8px;
  font-weight: 700;
}

@media (max-width: 680px) {
  .v2-mileage-mobile-discovery {
    display: grid;
    min-width: 0;
    flex: 0 0 auto;
    gap: 7px;
  }
  .v2-mileage-mobile-discovery > .v2-mobile-filter-toggle.semi-button {
    min-height: 58px;
    margin: 0;
  }
  .v2-mileage-filter-sidesheet .semi-sidesheet-inner {
    width: 100vw !important;
    overflow: hidden;
    border-radius: 18px 18px 0 0;
    background: #f4f7fb;
    box-shadow: 0 -20px 56px rgba(25, 45, 72, .2);
  }
  .v2-mileage-filter-sidesheet .semi-sidesheet-header {
    min-height: 68px;
    border-bottom: 1px solid #dfe7f0;
    background: rgba(255, 255, 255, .98);
    padding: 11px 14px;
  }
  .v2-mileage-filter-sidesheet .semi-sidesheet-body {
    overflow: auto;
    background: #f4f7fb;
    padding: 12px;
    overscroll-behavior: contain;
  }
  .v2-mileage-filter-sidesheet .semi-sidesheet-footer {
    border-top: 1px solid #dfe7f0;
    background: rgba(255, 255, 255, .98);
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
  }
  .v2-mileage-filter-sidesheet .v2-mileage-filter {
    display: grid !important;
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 12px;
    border: 1px solid #dfe7f0;
    border-radius: 12px;
    background: #fff;
    padding: 12px;
    box-shadow: 0 8px 24px rgba(31, 53, 80, .06);
  }
  .v2-mileage-filter-sidesheet .v2-mileage-filter > label {
    gap: 6px;
    color: #5f7188;
    font-size: 11px;
  }
  .v2-mileage-filter-sidesheet .v2-mileage-filter > label > .semi-input-wrapper,
  .v2-mileage-filter-sidesheet .v2-mileage-source-trigger.semi-button {
    height: 44px;
    min-height: 44px;
    border-radius: 9px;
  }
  .v2-mileage-filter-sidesheet .v2-mileage-selection > .semi-input-wrapper .semi-input,
  .v2-mileage-filter-sidesheet .v2-mileage-filter > label > .semi-input-wrapper .semi-input {
    font-size: 14px;
  }
  .v2-mileage-filter-sidesheet .v2-mileage-inline-submit {
    display: none;
  }
  .v2-mileage-filter-sidesheet .v2-mileage-source-strategy {
    width: 100%;
  }
  .v2-mileage-filter-sidesheet .v2-mileage-ranges {
    height: 44px;
    order: 5;
    border: 1px solid #e0e7f0;
    border-radius: 9px;
    background: #f4f7fb;
    padding: 4px;
  }
  .v2-mileage-filter-sidesheet .v2-mileage-ranges .semi-button {
    height: 34px;
    border-radius: 7px;
    font-size: 10px;
  }
  .v2-mileage-filter-sidesheet .v2-mileage-validation {
    margin: 9px 2px 0;
  }
  .v2-mileage-filter-footer > span {
    max-width: 150px;
    line-height: 1.4;
  }
}
