/* UI V2 content layer. Loaded after the legacy stylesheet so business renderers stay untouched. */
.main {
  --content-gap: 12px;
  --control-height: 36px;
}

.page { width: 100%; color: var(--c-fg); }
.page-head { min-height: 52px; align-items: flex-end; margin-bottom: 16px; }
.page-head h2 { font-size: 18px; font-weight: 600; line-height: 1.3; text-wrap: balance; }
.page-head .sub { max-width: 72ch; margin-top: 3px; color: var(--c-muted); font-size: 11px; line-height: 1.55; }
.head-actions, .btns, .actions, .master-toolbar, .view-tools, .configuration-actions,
.reference-entry-actions, .notification-toolbar, .inspection-command-bar { gap: 7px; }

.card, .metric, .reference-catalog, .configuration-card, .integration-provider-card,
.notification-automation, .inspection-template-editor, .inspection-impact, .agent-workbench,
.login-card, .modal {
  border-color: var(--c-border);
  background: var(--c-bg-elevated);
  color: var(--c-fg);
  box-shadow: none;
}

.card { margin-bottom: var(--content-gap); padding: 13px 14px; border-radius: var(--r-md); }
.card-t, .section-title { min-height: 28px; margin-bottom: 10px; font-size: 13px; }
.card-t .tag, .badge-date { border-color: color-mix(in oklab, var(--c-info) 32%, transparent); background: color-mix(in oklab, var(--c-info) 9%, transparent); color: var(--c-info); }
.grid2, .grid3, .reference-catalog-grid, .configuration-grid, .integration-provider-grid,
.inspection-lower-grid { gap: var(--content-gap); }

.metrics { gap: 8px; margin-bottom: 12px; grid-template-columns: repeat(auto-fit, minmax(142px, 1fr)); }
.metric { min-height: 88px; padding: 12px 13px; border-radius: var(--r-md); overflow: hidden; }
.metric::after { display: none; }
.metric .ml { margin-bottom: 7px; color: var(--c-muted); font-size: 11px; }
.metric .mv { color: var(--c-fg); font: 600 24px/1.05 var(--font-sans); letter-spacing: -.02em; }
.metric .ms, .metric .mv small { color: var(--c-subtle); font-size: 10px; }
.metric.cyan .mv, .metric.blue .mv { color: var(--c-info); }
.metric.green .mv { color: var(--c-primary); }
.metric.amber .mv { color: var(--c-warn); }
.metric.red .mv { color: var(--c-danger); }
.metric.violet .mv { color: var(--c-info-deep); }

.btn, .op-btn, .button {
  min-height: var(--control-height);
  border-color: var(--c-border);
  border-radius: var(--r-sm);
  background: var(--c-primary);
  color: var(--c-primary-fg);
  font-size: 12px;
  font-weight: 500;
  box-shadow: none;
  transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease, opacity 150ms ease;
}
.btn:hover:not(:disabled), .button:hover:not(:disabled) { border-color: var(--c-primary); background: color-mix(in oklab, var(--c-primary) 86%, var(--c-fg)); }
.btn:active:not(:disabled), .button:active:not(:disabled) { background: color-mix(in oklab, var(--c-primary) 78%, var(--c-bg)); }
.btn.ghost, .button.ghost, .op-btn { border-color: var(--c-border); background: transparent; color: var(--c-muted); }
.btn.ghost:hover:not(:disabled), .button.ghost:hover:not(:disabled), .op-btn:hover:not(:disabled) { border-color: var(--c-border-strong); background: var(--c-surface); color: var(--c-fg); }
.btn.green { border-color: var(--c-primary); background: var(--c-primary); color: var(--c-primary-fg); }
.btn.danger, .button.danger { border-color: color-mix(in oklab, var(--c-danger) 52%, transparent); background: color-mix(in oklab, var(--c-danger) 12%, transparent); color: var(--c-danger); }
.btn.danger:hover:not(:disabled), .button.danger:hover:not(:disabled),
.btn.danger:active:not(:disabled), .button.danger:active:not(:disabled) { border-color: var(--c-danger); background: color-mix(in oklab, var(--c-danger) 20%, transparent); color: var(--c-danger); }
.master-state-reason { grid-column: 1 / -1; }
.btn.sm, .button.small { min-height: 30px; padding: 5px 9px; font-size: 11px; }
.btn:disabled, .button:disabled, .op-btn:disabled { opacity: .42; cursor: not-allowed; }

input, select, textarea, .master-search input, .master-toolbar select, .view-tools select,
.reference-toolbar input, .reference-toolbar select, .configuration-card input,
.configuration-card select, .configuration-card textarea {
  min-height: var(--control-height);
  border-color: var(--c-border);
  border-radius: var(--r-sm);
  background: var(--c-bg);
  color: var(--c-fg);
  font-size: 12px;
  box-shadow: none;
}
textarea { min-height: 84px; line-height: 1.55; }
input::placeholder, textarea::placeholder { color: var(--c-muted); opacity: 1; }
input:hover:not(:disabled), select:hover:not(:disabled), textarea:hover:not(:disabled) { border-color: var(--c-border-strong); }
input:focus, select:focus, textarea:focus, .master-search input:focus, .master-toolbar select:focus {
  border-color: var(--c-info);
  outline: 0;
  box-shadow: 0 0 0 2px color-mix(in oklab, var(--c-info) 14%, transparent);
}
label, .f-item label { color: var(--c-muted); font-size: 11px; }

.tbl-wrap, .table-wrap { border: 1px solid var(--c-border); border-radius: var(--r-md); background: var(--c-bg-elevated); }
.ui-scroll-region { position: relative; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-gutter: stable; }
.ui-scroll-region:focus-visible { outline: 2px solid var(--c-info); outline-offset: 2px; }
table { color: var(--c-fg); font-size: 12px; }
th { padding: 8px 10px; border-color: var(--c-border); background: var(--c-surface); color: var(--c-muted); font-size: 10.5px; font-weight: 500; letter-spacing: .02em; }
td { padding: 9px 10px; border-color: var(--c-border); color: var(--c-fg); }
tbody tr { transition: background-color 150ms ease; }
tbody tr:hover td { background: color-mix(in oklab, var(--c-info) 4%, transparent); }
td .sub, .tbl-note, .result-count, .field-help { color: var(--c-muted); }

.pill, .status, .tag, .badge {
  border-color: var(--c-border);
  background: transparent;
  color: var(--c-muted);
  font-size: 10px;
}
.pill.green, .status.green { border-color: color-mix(in oklab, var(--c-primary) 38%, transparent); background: color-mix(in oklab, var(--c-primary) 9%, transparent); color: var(--c-primary); }
.pill.cyan, .pill.blue, .status.blue { border-color: color-mix(in oklab, var(--c-info) 38%, transparent); background: color-mix(in oklab, var(--c-info) 9%, transparent); color: var(--c-info); }
.pill.amber, .status.amber { border-color: color-mix(in oklab, var(--c-warn) 42%, transparent); background: color-mix(in oklab, var(--c-warn) 9%, transparent); color: var(--c-warn); }
.pill.red, .status.red { border-color: color-mix(in oklab, var(--c-danger) 42%, transparent); background: color-mix(in oklab, var(--c-danger) 9%, transparent); color: var(--c-danger); }
.pill.violet { border-color: color-mix(in oklab, var(--c-info-deep) 42%, transparent); background: color-mix(in oklab, var(--c-info-deep) 9%, transparent); color: var(--c-info-deep); }

.connection-notice, .empty-state, .agent-panel-state, .agent-detail-empty,
.screen-empty-state, .screen-geo-empty {
  border: 1px solid var(--c-border);
  border-radius: var(--r-md);
  background: var(--c-surface);
  color: var(--c-muted);
  box-shadow: none;
}
.connection-notice { display: flex; gap: 10px; padding: 12px 13px; line-height: 1.6; }
.connection-notice > span:first-child { color: var(--c-info); }
.product-disclosure {
  margin: 0 0 12px;
  border: 1px solid var(--c-border);
  border-radius: var(--r-md);
  background: var(--c-surface);
  color: var(--c-muted);
}
.product-disclosure summary { min-height: 38px; display: flex; align-items: center; padding: 8px 12px; color: var(--c-fg); font-size: 11px; cursor: pointer; }
.product-disclosure p { margin: 0; padding: 0 12px 11px; font-size: 11px; line-height: 1.6; }
.page-section-tabs {
  width: max-content;
  max-width: 100%;
  display: flex;
  gap: 3px;
  margin: 0 0 12px;
  padding: 3px;
  border: 1px solid var(--c-border);
  border-radius: var(--r-md);
  background: var(--c-surface);
  overflow-x: auto;
}
.page-section-tabs button {
  min-width: max-content;
  min-height: 34px;
  padding: 7px 12px;
  border: 0;
  border-radius: var(--r-sm);
  background: transparent;
  color: var(--c-muted);
  font: 500 12px/1.2 var(--font-sans);
  cursor: pointer;
}
.page-section-tabs button:hover { color: var(--c-fg); background: var(--c-bg-elevated); }
.page-section-tabs button.selected { background: color-mix(in oklab, var(--c-primary) 12%, var(--c-bg-elevated)); color: var(--c-fg); box-shadow: inset 0 -2px var(--c-primary); }
.page-section-tabs button:focus-visible { outline: 2px solid var(--c-info); outline-offset: 1px; }
.admin-hub-tabs { position: sticky; top: 0; z-index: 18; margin-bottom: 14px; box-shadow: 0 6px 18px color-mix(in oklab, var(--c-bg) 72%, transparent); }
.admin-hub-tabs[hidden] { display: none; }
.settings-technical-detail { margin-top: 7px; color: var(--c-muted); font-size: 11px; }
.settings-technical-detail summary { width: max-content; min-height: 32px; display: flex; align-items: center; color: var(--c-muted); cursor: pointer; }
.settings-technical-detail code { display: block; width: fit-content; max-width: 100%; padding: 6px 8px; overflow-wrap: anywhere; border: 1px solid var(--c-border); border-radius: var(--r-sm); background: var(--c-bg); color: var(--c-muted); }
.settings-safety-detail { margin-top: 10px; }
.settings-safety-detail .settings-foot-status { margin-top: 6px; }
.connection-notice strong, .empty-state b { color: var(--c-fg); }
.empty-state, .empty { padding: 28px 18px; color: var(--c-muted); text-align: center; }
.form-error { color: var(--c-danger); }

.reference-catalog, .configuration-card, .integration-provider-card { border-radius: var(--r-md); overflow: hidden; }
.reference-catalog-head, .reference-toolbar, .configuration-card-head,
.integration-provider-head { border-color: var(--c-border); background: var(--c-bg-elevated); }
.reference-toolbar, .configuration-draft, .configuration-details,
.configuration-values > div, .integration-test-result { border-color: var(--c-border); background: var(--c-surface); }
.reference-entry, .configuration-history, .integration-provider-facts > div { border-color: var(--c-border); }
.reference-entry:hover { background: color-mix(in oklab, var(--c-info) 4%, transparent); }

.notification-item, .automation-rule-row, .inspection-item, .inspection-version-list article,
.agent-run-row, .agent-task-facts > div, .agent-task-switcher button {
  border-color: var(--c-border);
  background: var(--c-surface);
  color: var(--c-fg);
  box-shadow: none;
}
.notification-item.unread { border-left-width: 1px; border-color: color-mix(in oklab, var(--c-info) 38%, var(--c-border)); background: color-mix(in oklab, var(--c-info) 5%, var(--c-bg-elevated)); }
.inspection-item::before { display: none; }
.inspection-impact { background: color-mix(in oklab, var(--c-info) 5%, var(--c-bg-elevated)); }
.inspection-template-meta input, .inspection-template-meta textarea,
.inspection-item-fields input, .inspection-item-fields textarea { border-color: var(--c-border); background: var(--c-bg); color: var(--c-fg); }

/* Existing domain workbenches share one visual vocabulary without changing their state or payload. */
.evaluation-detail, .audit-detail, .expense-attachment-workbench, .expense-attachment-item,
.expense-ocr-review, .maintenance-line-editor, .maintenance-line-item, .maintenance-line-summary,
.report-card, .reporting-section, .automation-workspace, .automation-simulation-result,
.screen-device-origin-note, .screen-device-cidrs, .screen-device-timeline,
.reference-snapshot-notice, .configuration-onboarding, .configuration-provider-note {
  border-color: var(--c-border);
  border-radius: var(--r-md);
  background: var(--c-surface);
  color: var(--c-fg);
  box-shadow: none;
}
.evaluation-detail-hero, .audit-detail-hero, .expense-attachment-head,
.maintenance-line-head, .report-card-head, .reporting-section-title,
.automation-workspace-head { border-color: var(--c-border); background: var(--c-bg-elevated); }
.evaluation-detail-facts > div, .audit-detail-facts > div, .expense-attachment-summary > div,
.maintenance-line-fields > label, .automation-locked-facts > div, .screen-device-timeline article {
  border-color: var(--c-border);
  background: var(--c-bg);
}
.evaluation-detail p, .evaluation-review-history, .audit-detail-note, .audit-summary-cell,
.expense-attachment-state, .expense-provider-note, .maintenance-editor-gate,
.report-columns, .report-export-state, .automation-dirty-note, .automation-action-status,
.screen-device-origin-note, .screen-device-security-note { color: var(--c-muted); }
.evaluation-detail-warning, .automation-dirty-note[data-state="dirty"], .maintenance-editor-gate[data-state="blocked"] {
  border-color: color-mix(in oklab, var(--c-warn) 42%, transparent);
  background: color-mix(in oklab, var(--c-warn) 8%, transparent);
  color: var(--c-warn);
}
.expense-ocr-error, .form-error.on { color: var(--c-danger); }
.fuel-quality-bars { border-color: var(--c-border); background: var(--c-surface); }
.fuel-bar-muted { background: var(--c-offline); }
.fuel-bar-valid { background: var(--c-primary); }
.fuel-bar-over { background: var(--c-warn); }
.fuel-bar-value { color: var(--c-fg); }
code, pre { font-family: var(--font-mono); }

/* Settings workspace: category rail, catalog, and one focused detail surface. */
.settings-page-head {
  min-height: 52px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}
.settings-page-head > div:first-child > span {
  display: block;
  margin-bottom: 3px;
  color: var(--c-muted);
  font-size: 11px;
}
.settings-page-head h2 { margin: 0; font-size: 22px; font-weight: 650; line-height: 1.25; }
.settings-workbench {
  min-width: 0;
  min-height: min(720px, calc(100dvh - 142px));
  display: grid;
  grid-template-columns: 188px 280px minmax(0, 1fr);
  border: 1px solid var(--c-border);
  border-radius: var(--r-md);
  background: var(--c-bg-elevated);
  overflow: hidden;
}
.settings-workbench--static { grid-template-columns: 188px minmax(0, 1fr); }
.settings-section-nav,
.settings-directory,
.settings-detail-pane { min-width: 0; min-height: 0; }
.settings-section-nav {
  display: flex;
  flex-direction: column;
  padding: 12px 9px;
  border-right: 1px solid var(--c-border);
  background: color-mix(in oklab, var(--c-surface) 64%, var(--c-bg-elevated));
}
.settings-search {
  min-width: 0;
  position: relative;
  display: flex;
  align-items: center;
  margin-bottom: 10px;
}
.settings-search > span {
  position: absolute;
  left: 10px;
  z-index: 1;
  color: var(--c-muted);
  font: 18px/1 var(--font-sans);
}
.settings-search input {
  width: 100%;
  min-width: 0;
  height: 34px;
  min-height: 34px;
  padding-left: 32px;
  border: 0;
  background: color-mix(in oklab, var(--c-bg-elevated) 76%, transparent);
}
.settings-search input:disabled { opacity: .72; }
.settings-nav-context {
  min-width: 0;
  display: grid;
  gap: 4px;
  margin-bottom: 10px;
  padding: 8px 9px 10px;
  border-bottom: 1px solid var(--c-border);
}
.settings-nav-context b { color: var(--c-fg); font-size: 11px; font-weight: 600; }
.settings-nav-context span { color: var(--c-muted); font-size: 9.5px; line-height: 1.5; overflow-wrap: anywhere; }
.settings-section-nav nav { display: grid; gap: 3px; }
.settings-section-nav nav button,
.settings-nav-link {
  width: 100%;
  min-height: 36px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 7px 9px;
  border: 0;
  border-radius: var(--r-sm);
  background: transparent;
  color: var(--c-muted);
  font: 500 12px/1.35 var(--font-sans);
  text-align: left;
  cursor: pointer;
}
.settings-section-nav nav button b,
.settings-nav-link b { color: var(--c-subtle); font: 500 10px/1 var(--font-mono); }
.settings-section-nav nav button:hover,
.settings-nav-link:hover { background: var(--c-surface); color: var(--c-fg); }
.settings-section-nav nav button.selected {
  background: color-mix(in oklab, var(--c-info) 11%, var(--c-bg-elevated));
  color: var(--c-fg);
}
.settings-section-nav nav button.selected b { color: var(--c-info); }
.settings-nav-link { margin-top: auto; border: 1px solid transparent; }
.settings-nav-status {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 10px;
  padding: 8px 9px;
  border-top: 1px solid var(--c-border);
  color: var(--c-muted);
  font-size: 10px;
  line-height: 1.4;
}
.settings-status-dot {
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  display: inline-block;
  border: 1px solid var(--c-subtle);
  border-radius: 50%;
  background: transparent;
}
.settings-status-dot.ready { border-color: var(--c-primary); background: var(--c-primary); }
.settings-status-dot.blocked { border-color: var(--c-danger); background: var(--c-danger); }
.settings-status-dot.idle { border-color: var(--c-info); }
.settings-status-dot.muted { border-color: var(--c-subtle); background: var(--c-subtle); }
.settings-directory {
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--c-border);
  background: var(--c-bg-elevated);
}
.settings-directory > header {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 13px;
  border-bottom: 1px solid var(--c-border);
}
.settings-directory > header div { min-width: 0; display: grid; gap: 2px; }
.settings-directory > header span { color: var(--c-info); font: 500 9px/1.2 var(--font-mono); letter-spacing: .08em; }
.settings-directory > header b { overflow: hidden; color: var(--c-fg); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.settings-directory > header small { color: var(--c-muted); font-size: 10px; white-space: nowrap; }
.settings-directory-scroll { min-height: 0; flex: 1; overflow-y: auto; padding: 8px; }
.settings-directory-scroll section + section { margin-top: 13px; }
.settings-directory-scroll section > h3 {
  margin: 0 7px 5px;
  color: var(--c-muted);
  font-size: 10px;
  font-weight: 600;
}
.settings-directory-item {
  width: 100%;
  min-width: 0;
  min-height: 48px;
  display: grid;
  grid-template-columns: 8px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 7px 8px;
  border: 1px solid transparent;
  border-radius: var(--r-sm);
  background: transparent;
  color: var(--c-fg);
  text-align: left;
  cursor: pointer;
}
.settings-directory-item:hover { background: var(--c-surface); }
.settings-directory-item.selected {
  border-color: color-mix(in oklab, var(--c-info) 36%, var(--c-border));
  background: color-mix(in oklab, var(--c-info) 9%, var(--c-bg-elevated));
}
.settings-section-nav nav button:focus-visible,
.settings-nav-link:focus-visible,
.settings-directory-item:focus-visible,
.settings-detail-tabs button:focus-visible {
  outline: 2px solid var(--c-info);
  outline-offset: 1px;
}
.settings-directory-copy { min-width: 0; display: grid; gap: 3px; }
.settings-directory-copy b,
.settings-directory-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.settings-directory-copy b { font-size: 12px; font-weight: 550; }
.settings-directory-copy small { color: var(--c-muted); font-size: 9.5px; }
.settings-directory-meta { max-width: 76px; overflow: hidden; color: var(--c-subtle); font: 500 9px/1.2 var(--font-mono); text-overflow: ellipsis; white-space: nowrap; }
.settings-directory-empty { padding: 28px 12px; color: var(--c-muted); font-size: 11px; text-align: center; }
.settings-detail-pane { overflow-y: auto; background: var(--c-bg-elevated); }
.settings-detail { min-height: 100%; }
.settings-detail-head {
  min-height: 98px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 20px 14px;
  border-bottom: 1px solid var(--c-border);
}
.settings-detail-head > div:first-child { min-width: 0; }
.settings-detail-head > div:first-child > span { color: var(--c-info); font: 500 9px/1.2 var(--font-mono); letter-spacing: .08em; }
.settings-detail-head h3 { margin: 4px 0 3px; font-size: 19px; font-weight: 620; line-height: 1.3; }
.settings-detail-head p { max-width: 68ch; margin: 0; color: var(--c-muted); font-size: 11px; line-height: 1.5; }
.settings-detail-actions { flex: 0 0 auto; display: flex; align-items: center; justify-content: flex-end; gap: 7px; flex-wrap: wrap; }
.settings-summary-line {
  display: flex;
  min-width: 0;
  gap: 8px 22px;
  padding: 10px 20px;
  border-bottom: 1px solid var(--c-border);
  background: color-mix(in oklab, var(--c-surface) 48%, transparent);
  color: var(--c-muted);
  font-size: 10px;
  flex-wrap: wrap;
}
.settings-summary-line b { margin-left: 4px; color: var(--c-fg); font-weight: 550; }
.configuration-source-badge {
  width: max-content;
  max-width: 100%;
  display: inline-flex;
  min-height: 22px;
  align-items: center;
  padding: 3px 7px;
  border: 1px solid var(--c-border);
  border-radius: 999px;
  background: var(--c-bg);
  color: var(--c-muted);
  font: 500 9.5px/1.25 var(--font-sans);
  overflow-wrap: anywhere;
}
.configuration-source-badge.published { border-color: color-mix(in oklab, var(--c-primary) 38%, var(--c-border)); color: var(--c-primary); }
.configuration-source-badge.draft { border-color: color-mix(in oklab, var(--c-info) 38%, var(--c-border)); color: var(--c-info); }
.configuration-source-badge.environment { border-color: color-mix(in oklab, var(--c-warn) 40%, var(--c-border)); color: var(--c-warn); }
.configuration-source-badge.default,
.configuration-source-badge.baseline,
.configuration-source-badge.muted { color: var(--c-muted); }
.configuration-source-note { max-width: 100%; color: var(--c-subtle); font-size: 9px; line-height: 1.45; overflow-wrap: anywhere; }
.settings-detail-tabs { display: flex; gap: 2px; padding: 9px 20px 0; border-bottom: 1px solid var(--c-border); }
.settings-detail-tabs button {
  min-height: 34px;
  padding: 7px 11px 9px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--c-muted);
  font: 500 11px/1.2 var(--font-sans);
  cursor: pointer;
}
.settings-detail-tabs button:hover { color: var(--c-fg); }
.settings-detail-tabs button.selected { border-bottom-color: var(--c-info); color: var(--c-fg); }
.settings-detail-body { padding: 4px 20px 24px; }
.settings-detail-body [hidden] { display: none !important; }
.settings-detail-section { padding: 16px 0; border-bottom: 1px solid var(--c-border); }
.settings-detail-section:last-child { border-bottom: 0; }
.settings-detail-section h4 { margin: 0 0 10px; color: var(--c-fg); font-size: 12px; font-weight: 600; }
.settings-provider-picker {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(150px, auto);
  align-items: end;
  gap: 12px 18px;
  margin: 12px 0 0;
  padding: 12px;
  border: 1px solid var(--c-border);
  border-radius: var(--r-sm);
  background: var(--c-surface);
}
.settings-provider-picker label { min-width: 0; display: grid; gap: 6px; }
.settings-provider-picker label > span,
.settings-provider-picker > div > span:first-child { color: var(--c-muted); font-size: 10px; }
.settings-provider-picker select { width: 100%; min-width: 0; }
.settings-provider-picker label > small { color: var(--c-subtle); font: 500 9px/1.4 var(--font-mono); overflow-wrap: anywhere; }
.settings-provider-picker > div { min-width: 0; display: grid; justify-items: end; gap: 5px; }
.configuration-map-capability-grid {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}
.configuration-map-capability {
  min-width: 0;
  padding: 11px;
  border: 1px solid var(--c-border);
  border-radius: var(--r-sm);
  background: var(--c-surface);
}
.configuration-map-capability > header {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 8px;
  gap: 3px 8px;
  align-items: center;
}
.configuration-map-capability > header > span { color: var(--c-info); font-size: 9.5px; font-weight: 600; }
.configuration-map-capability > header > b { min-width: 0; color: var(--c-fg); font-size: 12px; font-weight: 600; overflow-wrap: anywhere; }
.configuration-map-capability > header > .settings-status-dot { grid-column: 2; grid-row: 1 / 3; }
.configuration-map-capability dl { margin: 10px 0 0; border-top: 1px solid var(--c-border); }
.configuration-map-capability dl > div {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(92px, auto) minmax(0, 1fr);
  gap: 10px;
  padding: 7px 0;
  border-bottom: 1px solid var(--c-border);
}
.configuration-map-capability dt { color: var(--c-muted); font-size: 9.5px; }
.configuration-map-capability dd { min-width: 0; margin: 0; color: var(--c-fg); font-size: 10px; font-weight: 550; text-align: right; overflow-wrap: anywhere; }
.configuration-map-capability > p { margin: 9px 0 0; color: var(--c-muted); font-size: 9.5px; line-height: 1.5; text-wrap: pretty; }
.configuration-map-runtime-event {
  min-width: 0;
  display: grid;
  grid-template-columns: 8px minmax(0, 1fr);
  align-items: start;
  gap: 9px;
  margin-top: 8px;
  padding: 9px 10px;
  border: 1px solid var(--c-border);
  border-radius: var(--r-sm);
  background: var(--c-bg);
}
.configuration-map-runtime-event.ready { border-color: color-mix(in oklab, var(--c-primary) 30%, var(--c-border)); }
.configuration-map-runtime-event.blocked { border-color: color-mix(in oklab, var(--c-danger) 34%, var(--c-border)); }
.configuration-map-runtime-event > .settings-status-dot { margin-top: 4px; }
.configuration-map-runtime-event > div { min-width: 0; }
.configuration-map-runtime-event b { display: block; color: var(--c-fg); font-size: 10.5px; }
.configuration-map-runtime-event p { margin: 3px 0 0; color: var(--c-muted); font-size: 9.5px; line-height: 1.5; overflow-wrap: anywhere; }
.configuration-precedence {
  margin: 10px 0 0;
  padding: 9px 10px;
  border-top: 1px solid var(--c-border);
  border-bottom: 1px solid var(--c-border);
  color: var(--c-muted);
  font-size: 10px;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.configuration-precedence b { color: var(--c-fg); font-weight: 600; }
.settings-section-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.settings-section-head h4 { margin: 0; }
.settings-section-head > div { min-width: 0; }
.settings-section-head > div > p { max-width: 68ch; margin: 3px 0 0; color: var(--c-muted); font-size: 10px; line-height: 1.5; text-wrap: pretty; }
.configuration-credential-section + .configuration-credential-section { padding-top: 18px; }
.configuration-credential-block + .configuration-credential-block { margin-top: 13px; }
.configuration-credential-block h5 { margin: 0 0 6px; color: var(--c-muted); font-size: 10px; font-weight: 600; }
.configuration-root-key-notice { align-items: flex-start; }
.configuration-root-key-notice > .settings-status-dot { margin-top: 4px; }
.configuration-modal-group {
  min-width: 0;
  grid-column: 1 / -1;
  display: grid;
  gap: 3px;
  margin-top: 5px;
  padding: 9px 1px 5px;
  border-bottom: 1px solid var(--c-border);
}
.configuration-modal-group:first-child { margin-top: 0; padding-top: 0; }
.configuration-modal-group b { color: var(--c-fg); font-size: 12px; font-weight: 650; }
.configuration-modal-group span { max-width: 68ch; color: var(--c-muted); font-size: 10px; line-height: 1.5; overflow-wrap: anywhere; }
.settings-kv-list,
.settings-version-list { border-top: 1px solid var(--c-border); }
.settings-kv-list > div,
.settings-version-list > div {
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 8px 2px;
  border-bottom: 1px solid var(--c-border);
}
.settings-kv-list span,
.settings-version-list span { min-width: 0; color: var(--c-muted); font-size: 10.5px; }
.settings-kv-list span { display: flex; align-items: center; gap: 7px; }
.settings-kv-list b,
.settings-version-list b { color: var(--c-fg); font-size: 11px; font-weight: 550; text-align: right; overflow-wrap: anywhere; }
.settings-value-block { min-width: 0; max-width: min(58%, 520px); display: grid; justify-items: end; gap: 5px; text-align: right; }
.settings-value-block > span { min-width: 0; display: flex; align-items: center; justify-content: flex-end; gap: 5px; flex-wrap: wrap; }
.settings-value-block > .configuration-source-badge { justify-self: end; }
.settings-secret-state.configured { color: var(--c-primary); }
.settings-secret-state.missing { color: var(--c-warn); }
.settings-version-list span > b,
.settings-version-list span > small { display: block; text-align: left; }
.settings-version-list span > small { margin-top: 3px; color: var(--c-muted); font-size: 9px; }
.settings-draft-bar,
.settings-inline-state {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 12px 0 0;
  padding: 10px 12px;
  border: 1px solid var(--c-border);
  border-radius: var(--r-sm);
  background: var(--c-surface);
}
.settings-draft-bar > div:first-child { min-width: 0; display: grid; grid-template-columns: auto auto; align-items: center; gap: 4px 8px; }
.settings-draft-bar span { color: var(--c-muted); font-size: 10px; }
.settings-draft-bar b { font-size: 11px; }
.settings-draft-bar small { grid-column: 1 / -1; overflow: hidden; color: var(--c-muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.settings-inline-state { justify-content: flex-start; }
.settings-inline-state > div { min-width: 0; display: grid; gap: 2px; }
.settings-inline-state b { font-size: 11px; }
.settings-inline-state span:not(.settings-status-dot) { color: var(--c-muted); font-size: 10px; line-height: 1.45; overflow-wrap: anywhere; }
.settings-inline-state.blocked { border-color: color-mix(in oklab, var(--c-danger) 32%, var(--c-border)); background: color-mix(in oklab, var(--c-danger) 6%, var(--c-bg-elevated)); }
.settings-inline-state.ready { border-color: color-mix(in oklab, var(--c-primary) 30%, var(--c-border)); background: color-mix(in oklab, var(--c-primary) 6%, var(--c-bg-elevated)); }
.agent-runtime-setup { margin: 0; padding: 14px 20px 16px; background: color-mix(in oklab, var(--c-bg-elevated) 70%, var(--c-bg)); }
.agent-runtime-setup .settings-section-head { align-items: flex-start; margin-bottom: 12px; }
.agent-runtime-setup .settings-section-head > div:first-child { min-width: 0; }
.agent-runtime-setup .settings-help { max-width: 68ch; margin-top: 4px; font-size: 11px; line-height: 1.5; }
.agent-runtime-setup ol { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.agent-setup-step { min-width: 0; display: grid; grid-template-columns: 22px minmax(0, 1fr); align-items: start; gap: 8px; padding-top: 9px; border-top: 2px solid var(--c-border); }
.agent-setup-step > div { min-width: 0; }
.agent-setup-step b { display: block; color: var(--c-fg); font-size: 11.5px; font-weight: 600; line-height: 1.35; }
.agent-setup-step small { display: block; margin-top: 4px; color: var(--c-muted); font-size: 10.5px; line-height: 1.5; overflow-wrap: anywhere; }
.agent-setup-index { width: 22px; height: 22px; display: grid; place-items: center; border: 1px solid var(--c-border); border-radius: 50%; background: var(--c-bg); color: var(--c-muted); font-size: 11px; font-weight: 700; }
.agent-setup-step.ready { border-top-color: var(--c-primary); }
.agent-setup-step.ready .agent-setup-index { border-color: color-mix(in oklab, var(--c-primary) 52%, var(--c-border)); color: var(--c-primary); }
.agent-setup-step.ready .agent-setup-index::before { content: "✓"; }
.agent-setup-step.current { border-top-color: var(--c-info); }
.agent-setup-step.current .agent-setup-index { border-color: color-mix(in oklab, var(--c-info) 52%, var(--c-border)); color: var(--c-info); }
.agent-setup-step.current .agent-setup-index::before { content: "…"; }
.agent-setup-step.blocked { border-top-color: var(--c-danger); }
.agent-setup-step.blocked .agent-setup-index { border-color: color-mix(in oklab, var(--c-danger) 52%, var(--c-border)); color: var(--c-danger); }
.agent-setup-step.blocked .agent-setup-index::before { content: "!"; }
.agent-setup-step.pending .agent-setup-index::before { content: "·"; }
.settings-inline-state .btn { width: max-content; margin-top: 6px; }
.settings-help { margin: 9px 0 0; color: var(--c-muted); font-size: 10px; }
.settings-capability-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(168px, 1fr)); gap: 6px; }
.settings-capability-list > div {
  min-width: 0;
  display: grid;
  grid-template-columns: 8px minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  padding: 8px 9px;
  border: 1px solid var(--c-border);
  border-radius: var(--r-sm);
  background: var(--c-bg);
}
.settings-capability-list b { overflow: hidden; font: 500 10px/1.2 var(--font-mono); text-overflow: ellipsis; white-space: nowrap; }
.settings-capability-list small { color: var(--c-muted); font-size: 9px; }
.settings-chip-list { display: flex; gap: 6px; flex-wrap: wrap; }
.settings-chip-list code { padding: 5px 7px; border: 1px solid var(--c-border); border-radius: var(--r-xs); background: var(--c-bg); color: var(--c-info); font-size: 9.5px; }
.settings-json { max-height: 320px; margin: 0; padding: 10px; overflow: auto; border: 1px solid var(--c-border); border-radius: var(--r-sm); background: var(--c-bg); color: var(--c-muted); font-size: 10px; line-height: 1.55; white-space: pre-wrap; }
.settings-detail-empty { min-height: 360px; display: grid; place-content: center; justify-items: center; gap: 7px; padding: 32px; color: var(--c-muted); text-align: center; }
.settings-detail-empty b { color: var(--c-fg); font-size: 13px; }
.settings-detail-empty span { max-width: 48ch; font-size: 11px; line-height: 1.5; }
.settings-workbench-loading {
  min-height: 420px;
  display: grid;
  grid-template-columns: 188px 280px minmax(0, 1fr);
  gap: 1px;
  place-items: stretch;
  border: 1px solid var(--c-border);
  border-radius: var(--r-md);
  overflow: hidden;
  background: var(--c-border);
}
.settings-workbench-loading span { background: var(--c-bg-elevated); }
.settings-workbench-loading b { display: grid; place-content: center; background: var(--c-bg-elevated); color: var(--c-muted); font-size: 11px; }
.settings-foot-status { display: flex; gap: 8px 18px; padding: 8px 2px; color: var(--c-muted); font-size: 9.5px; flex-wrap: wrap; }
.settings-foot-status span::before { content: "·"; margin-right: 5px; color: var(--c-subtle); }
.settings-native-security { margin: 8px 0 2px; padding: 12px; border: 1px solid var(--c-border); border-radius: 10px; background: color-mix(in srgb, var(--c-bg-elevated) 82%, transparent); }
.settings-native-security-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.settings-native-security-head > div { display: grid; gap: 3px; min-width: 0; }
.settings-native-security-head b { color: var(--c-fg); font-size: 12px; }
.settings-native-security-head small { color: var(--c-muted); font-size: 10px; line-height: 1.45; }
.settings-native-security-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 10px; }
.settings-native-security-gate { display: flex; align-items: flex-start; gap: 7px; min-width: 0; padding: 8px; border: 1px solid var(--c-border); border-radius: 8px; }
.settings-native-security-gate.ready { border-color: color-mix(in srgb, var(--c-success) 55%, var(--c-border)); }
.settings-native-security-gate > div { display: grid; gap: 2px; min-width: 0; }
.settings-native-security-gate b { color: var(--c-fg); font-size: 10px; }
.settings-native-security-gate small { color: var(--c-muted); font-size: 9px; line-height: 1.4; }
.settings-native-security-capabilities { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.settings-native-security-capabilities span { padding: 4px 7px; border-radius: 999px; border: 1px solid var(--c-border); color: var(--c-muted); font-size: 9px; }
.settings-native-security-capabilities span.ready { border-color: color-mix(in srgb, var(--c-success) 55%, var(--c-border)); color: var(--c-success); }
.settings-native-security-capabilities span.blocked { color: var(--c-warning); }

@media (max-width: 1180px) and (min-width: 901px) {
  .settings-workbench { grid-template-columns: 158px 236px minmax(0, 1fr); }
  .settings-workbench--static { grid-template-columns: 158px minmax(0, 1fr); }
  .settings-section-nav { padding-inline: 7px; }
  .settings-detail-head { padding-inline: 16px; }
  .settings-summary-line, .settings-detail-tabs { padding-inline: 16px; }
  .settings-detail-body { padding-inline: 16px; }
  .agent-runtime-setup { padding-inline: 16px; }
  .agent-runtime-setup ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .settings-page-head { min-height: 44px; align-items: center; }
  .settings-workbench { min-height: 0; grid-template-columns: minmax(0, 1fr); overflow: visible; }
  .settings-section-nav { display: block; padding: 9px; border-right: 0; border-bottom: 1px solid var(--c-border); }
  .settings-search { margin-bottom: 8px; }
  .settings-search input { height: 44px; min-height: 44px; }
  .settings-section-nav nav { display: flex; gap: 5px; overflow-x: auto; }
  .settings-section-nav nav button { width: auto; min-width: max-content; min-height: 44px; }
  .settings-nav-link, .settings-nav-status { display: none; }
  .settings-directory { max-height: 300px; border-right: 0; border-bottom: 1px solid var(--c-border); }
  .settings-directory-scroll { max-height: 238px; }
  .settings-detail-pane { overflow: visible; }
  .settings-provider-picker { grid-template-columns: minmax(0, 1fr); align-items: stretch; }
  .settings-provider-picker > div { justify-items: start; }
  .settings-detail-tabs { overflow-x: auto; }
  .settings-detail-tabs button { min-width: max-content; min-height: 44px; }
  .settings-workbench-loading { grid-template-columns: 1fr; grid-template-rows: 80px 180px 260px; }
  .agent-runtime-setup ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 480px) {
  .settings-page-head h2 { font-size: 19px; }
  .settings-page-head .head-actions { display: flex; width: auto; }
  .settings-page-head .btn { min-height: 44px; }
  .settings-directory { max-height: 330px; }
  .settings-directory-scroll { max-height: 266px; }
  .settings-directory-item { min-height: 52px; }
  .settings-detail-head { min-height: 0; display: grid; padding: 15px 13px 12px; }
  .settings-detail-head h3 { font-size: 17px; }
  .settings-detail-actions { justify-content: flex-start; }
  .settings-detail-actions .btn { min-height: 44px; }
  .settings-summary-line { padding: 9px 13px; gap: 7px 14px; }
  .settings-detail-tabs { padding-inline: 8px; overflow-x: auto; }
  .settings-detail-tabs button { min-width: max-content; min-height: 44px; }
  .settings-detail-body { padding: 2px 13px 20px; }
  .settings-detail-section > .settings-section-head { align-items: stretch; flex-direction: column; }
  .settings-detail-section > .settings-section-head .btn { width: 100%; min-height: 44px; }
  .agent-runtime-setup { padding-inline: 13px; }
  .agent-runtime-setup .settings-section-head { align-items: stretch; flex-direction: column; }
  .agent-runtime-setup .agent-control-inline-actions { display: grid; grid-template-columns: 1fr; width: 100%; }
  .agent-runtime-setup .agent-control-inline-actions .btn { width: 100%; }
  .agent-runtime-setup ol { grid-template-columns: 1fr; gap: 10px; }
  .settings-draft-bar { align-items: stretch; flex-direction: column; }
  .settings-draft-bar .configuration-actions { display: grid; grid-template-columns: 1fr; }
  .settings-draft-bar .btn,
  .settings-version-list .btn,
  .agent-control-inline-actions .btn { min-height: 44px; }
  .settings-kv-list > div { align-items: flex-start; flex-direction: column; gap: 4px; }
  .settings-kv-list b { text-align: left; }
  .settings-value-block { width: 100%; max-width: 100%; justify-items: start; text-align: left; }
  .settings-value-block > span { justify-content: flex-start; }
  .settings-value-block > .configuration-source-badge { justify-self: start; }
  .settings-version-list > div { align-items: flex-start; flex-direction: column; }
  .settings-capability-list { grid-template-columns: 1fr; }
  .configuration-map-capability-grid { grid-template-columns: minmax(0, 1fr); }
  .configuration-map-capability dl > div { grid-template-columns: minmax(0, 1fr); gap: 3px; }
  .configuration-map-capability dd { text-align: left; }
  .configuration-map-runtime-event { padding: 10px; }
  .configuration-modal-group { padding-top: 12px; }
}

/* Server-owned reporting analytics: bounded daily buckets, never synthetic charts. */
.analytics-workbench {
  min-width: 0;
  margin-bottom: 16px;
  border: 1px solid var(--c-border);
  border-radius: var(--r-lg);
  background: var(--c-bg-elevated);
  overflow: hidden;
}
.analytics-filter-grid {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) minmax(142px, 180px) minmax(142px, 180px) auto;
  gap: 9px;
  align-items: end;
  padding: 14px;
  border-bottom: 1px solid var(--c-border);
  background: var(--c-surface);
}
.analytics-filter-grid > div:first-child { align-self: center; min-width: 0; }
.analytics-filter-grid > div:first-child > span,
.analytics-domain-head > div > span {
  display: block;
  color: var(--c-primary);
  font: 600 9px/1.3 var(--font-mono);
  letter-spacing: .13em;
}
.analytics-filter-grid > div:first-child > b { display: block; margin-top: 4px; font-size: 15px; }
.analytics-filter-grid > div:first-child > p {
  max-width: 68ch;
  margin-top: 4px;
  color: var(--c-muted);
  font-size: 10.5px;
  line-height: 1.55;
}
.analytics-filter-grid label { display: grid; gap: 5px; min-width: 0; }
.analytics-filter-grid input { width: 100%; min-width: 0; }
.analytics-filter-actions { display: grid; grid-template-columns: repeat(2, minmax(76px, 1fr)); gap: 7px; }
.analytics-source-strip {
  display: flex;
  min-width: 0;
  padding: 9px 14px;
  border-bottom: 1px solid var(--c-border);
  gap: 8px 18px;
  flex-wrap: wrap;
  color: var(--c-muted);
  font-size: 10px;
}
.analytics-source-strip b { margin-left: 4px; color: var(--c-fg); font-weight: 500; }
.analytics-domain-grid { display: grid; gap: 10px; padding: 10px; }
.analytics-domain {
  min-width: 0;
  border: 1px solid var(--c-border);
  border-radius: var(--r-md);
  background: var(--c-bg);
  overflow: hidden;
}
.analytics-domain[data-coverage="unavailable"],
.analytics-domain[data-coverage="forbidden"] { background: var(--c-surface); }
.analytics-domain-head {
  display: flex;
  min-height: 50px;
  padding: 10px 12px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid var(--c-border);
  background: var(--c-bg-elevated);
}
.analytics-domain-head h4 { margin-top: 3px; font-size: 13px; font-weight: 600; }
.analytics-definition { padding: 9px 12px 0; color: var(--c-muted); font-size: 10.5px; line-height: 1.55; }
.analytics-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
  padding: 10px 12px;
}
.analytics-summary-grid > div {
  min-width: 0;
  padding: 10px;
  border: 1px solid var(--c-border);
  border-radius: var(--r-sm);
  background: var(--c-surface);
}
.analytics-summary-grid span,
.analytics-summary-grid b,
.analytics-summary-grid small { display: block; }
.analytics-summary-grid span { color: var(--c-muted); font-size: 9.5px; }
.analytics-summary-grid b {
  margin-top: 7px;
  color: var(--c-fg);
  font: 600 20px/1.1 var(--font-mono);
  overflow-wrap: anywhere;
}
.analytics-summary-grid small { margin-top: 5px; color: var(--c-subtle); font-size: 9.5px; line-height: 1.4; }
.analytics-table-wrap {
  max-height: 360px;
  margin: 0 12px 12px;
  border: 1px solid var(--c-border);
  border-radius: var(--r-sm);
  overflow: auto;
  overscroll-behavior: contain;
}
.analytics-daily-table { width: 100%; min-width: 720px; border-collapse: separate; border-spacing: 0; }
.analytics-daily-table th { position: sticky; top: 0; z-index: 1; }
.analytics-daily-table td:not(:first-child),
.analytics-daily-table th:not(:first-child) { text-align: right; font-variant-numeric: tabular-nums; }
.analytics-daily-table time { color: var(--c-muted); font-family: var(--font-mono); }
.analytics-domain-empty { padding: 26px 16px; color: var(--c-muted); text-align: center; }
.analytics-domain-empty b { display: block; color: var(--c-fg); font-size: 12px; }
.analytics-domain-empty p { max-width: 70ch; margin: 6px auto 0; font-size: 10.5px; line-height: 1.6; }

.mask { background: color-mix(in oklab, var(--c-bg) 68%, transparent); backdrop-filter: blur(2px); }
.modal { width: min(620px, calc(100% - 28px)); max-height: min(84dvh, 760px); overflow-y: auto; padding: 18px; border-radius: var(--r-lg); box-shadow: var(--sh-float); }
.modal h3 { font-size: 16px; font-weight: 600; }
.toast { border-color: var(--c-border-strong); border-radius: var(--r-md); background: var(--c-bg-elevated); color: var(--c-fg); box-shadow: var(--sh-float); }

.login-mask { padding: 0; overflow: auto; overflow-x: hidden; overscroll-behavior-y: contain; scroll-padding-block: 20px; background: var(--c-bg); }
.login-mask.on { display: block; }
.login-shell { display: grid; width: 100%; min-height: 100dvh; grid-template-columns: minmax(0, 55fr) minmax(0, 45fr); background: var(--c-bg); }
.login-scene { position: relative; isolation: isolate; min-width: 0; min-height: 100dvh; overflow: hidden; border-right: 0; background: var(--c-bg); color: var(--c-fg); }
.login-sichuan {
  position: absolute;
  inset: -1.5%;
  z-index: -2;
  background-position: 54% center;
  background-repeat: no-repeat;
  background-size: cover;
  filter: saturate(.88) contrast(1.04);
  transform: scale(1.015);
  -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 84%, rgba(0, 0, 0, .94) 89%, rgba(0, 0, 0, .52) 95%, transparent 100%);
  mask-image: linear-gradient(90deg, #000 0%, #000 84%, rgba(0, 0, 0, .94) 89%, rgba(0, 0, 0, .52) 95%, transparent 100%);
}
.login-scene::before,
.login-scene::after { content: ""; position: absolute; inset: 0; pointer-events: none; }
.login-scene::before { z-index: -1; background: radial-gradient(circle at 76% 56%, color-mix(in oklab, var(--c-primary) 9%, transparent) 0, transparent 31%), linear-gradient(180deg, color-mix(in oklab, var(--c-bg) 64%, transparent) 0%, color-mix(in oklab, var(--c-bg) 18%, transparent) 37%, color-mix(in oklab, var(--c-bg) 50%, transparent) 76%, color-mix(in oklab, var(--c-bg) 90%, transparent) 100%); }
.login-scene::after { z-index: -1; background: linear-gradient(90deg, color-mix(in oklab, var(--c-bg) 94%, transparent) 0%, color-mix(in oklab, var(--c-bg) 80%, transparent) 36%, color-mix(in oklab, var(--c-bg) 32%, transparent) 70%, color-mix(in oklab, var(--c-bg) 78%, transparent) 88%, var(--c-bg) 100%); }
.login-scene-content { position: relative; z-index: 1; display: flex; min-height: 100dvh; padding: clamp(32px, 3.2vw, 48px); flex-direction: column; justify-content: space-between; }
.login-scene-brand, .login-mobile-brand { display: flex; align-items: center; gap: 11px; }
.login-scene-brand span, .login-scene-brand strong, .login-mobile-brand span, .login-mobile-brand strong { display: block; }
.login-scene-brand span { color: color-mix(in oklab, var(--c-fg) 68%, transparent); font: 600 10px/1.4 var(--font-mono); letter-spacing: .12em; }
.login-scene-brand strong { margin-top: 2px; font-size: 13px; font-weight: 500; }
.login-scene-copy { max-width: 520px; }
.login-scene-copy > span, .login-kicker { color: var(--c-primary); font: 600 10px/1.4 var(--font-mono); letter-spacing: .18em; text-transform: uppercase; }
.login-scene-copy h2 { max-width: 9.5em; margin-top: 12px; color: var(--c-fg); font-size: clamp(38px, 4vw, 58px); font-weight: 600; line-height: 1.12; letter-spacing: -.038em; text-wrap: balance; text-shadow: 0 2px 22px color-mix(in oklab, var(--c-bg) 74%, transparent); }
.login-scene-copy p { max-width: 460px; margin-top: 18px; color: color-mix(in oklab, var(--c-fg) 68%, transparent); font-size: 13px; line-height: 1.75; text-shadow: 0 1px 14px color-mix(in oklab, var(--c-bg) 76%, transparent); }
.login-kpis { display: grid; max-width: 520px; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.login-kpis > div { min-width: 0; padding: 12px 13px; border: 1px solid color-mix(in oklab, var(--c-fg) 15%, transparent); border-radius: var(--r-md); background: color-mix(in oklab, var(--c-bg-elevated) 74%, transparent); backdrop-filter: blur(14px) saturate(112%); box-shadow: inset 0 1px color-mix(in oklab, var(--c-fg) 7%, transparent); }
.login-kpis span, .login-kpis small { display: block; color: var(--c-muted); font-size: 10px; }
.login-kpis b { display: block; margin: 6px 0 5px; color: var(--c-fg); font: 600 23px/1 var(--font-mono); }
.login-kpis small { color: var(--c-subtle); }
.login-map-note { position: absolute; right: 18px; bottom: 14px; z-index: 2; padding: 3px 6px; border-radius: var(--r-xs); background: color-mix(in oklab, var(--c-bg) 78%, transparent); color: color-mix(in oklab, var(--c-fg) 68%, transparent); font-size: 10px; letter-spacing: .02em; }
.login-auth-pane {
  position: relative;
  isolation: isolate;
  display: flex;
  min-width: 0;
  min-height: 100dvh;
  align-items: center;
  justify-content: center;
  padding: clamp(32px, 4vw, 64px);
  overflow: hidden;
  background:
    radial-gradient(circle at 82% 16%, color-mix(in oklab, var(--c-primary) 8%, transparent) 0, transparent 31%),
    radial-gradient(circle at 12% 88%, color-mix(in oklab, var(--c-info) 5%, transparent) 0, transparent 30%),
    linear-gradient(145deg, var(--c-bg), color-mix(in oklab, var(--c-surface) 22%, var(--c-bg)));
}
.login-auth-pane::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .24;
  background-image: linear-gradient(color-mix(in oklab, var(--c-fg) 4%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in oklab, var(--c-fg) 4%, transparent) 1px, transparent 1px);
  background-size: 40px 40px;
  -webkit-mask-image: linear-gradient(145deg, transparent 10%, #000 58%, transparent 94%);
  mask-image: linear-gradient(145deg, transparent 10%, #000 58%, transparent 94%);
}
.login-card {
  position: relative;
  z-index: 1;
  width: min(448px, 100%);
  max-width: none;
  padding: clamp(28px, 2.25vw, 34px);
  overflow: hidden;
  border: 1px solid var(--c-border);
  border-radius: var(--r-lg);
  background: color-mix(in oklab, var(--c-bg-elevated) 96%, var(--c-bg));
  box-shadow: 0 8px 28px color-mix(in oklab, var(--c-bg) 24%, transparent), inset 0 1px color-mix(in oklab, var(--c-fg) 5%, transparent);
  animation: none;
}
.login-card::before { content: ""; position: absolute; top: 0; right: 26px; left: 26px; height: 1px; background: linear-gradient(90deg, transparent, color-mix(in oklab, var(--c-primary) 72%, transparent), transparent); pointer-events: none; }
.login-mobile-brand { display: none; margin-bottom: 28px; }
.login-mobile-brand span { color: var(--c-muted); font-size: .75rem; letter-spacing: .08em; }
.login-mobile-brand strong { margin-top: 2px; color: var(--c-fg); font-size: .9375rem; font-weight: 600; }
.login-kicker { font-size: .75rem; letter-spacing: .08em; }
.login-title { margin-top: 8px; color: var(--c-fg); font-size: 1.75rem; font-weight: 600; line-height: 1.2; letter-spacing: -.028em; text-align: left; }
.login-sub { max-width: 54ch; margin-top: 9px; color: var(--c-muted); font-size: .875rem; line-height: 1.65; text-align: left; }
.login-appearance { margin-top: 16px; border-top: 1px solid var(--c-border); }
.login-appearance > summary { min-height: 44px; padding: 12px 4px; color: var(--c-muted); font-size: .875rem; line-height: 1.5; cursor: pointer; }
.login-appearance > summary:hover { color: var(--c-fg); }
.login-appearance > summary:focus-visible { outline: 2px solid var(--c-primary); outline-offset: 2px; border-radius: var(--r-xs); }
.login-theme-grid { display: grid; padding-block: 4px 8px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 8rem), 1fr)); gap: 8px; }
.login-theme-choice {
  --preview-bg: #061016;
  --preview-surface: #122833;
  --preview-accent: #13b35e;
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  height: auto;
  min-height: 44px;
  padding: 8px;
  border: 1px solid var(--c-border);
  border-radius: var(--r-sm);
  background: var(--c-bg);
  color: var(--c-muted);
  text-align: left;
  transition: border-color 160ms ease, background-color 160ms ease, color 160ms ease, transform 160ms ease;
}
.login-theme-choice[data-theme-choice="paper"] { --preview-bg: #efece5; --preview-surface: #e5e1d8; --preview-accent: #096b33; }
.login-theme-choice[data-theme-choice="slate"] { --preview-bg: #090b0e; --preview-surface: #1a1f28; --preview-accent: #4aa3e8; }
.login-theme-choice[data-theme-choice="mist"] { --preview-bg: #e7eef1; --preview-surface: #dbe4e9; --preview-accent: #0c6c65; }
.login-theme-choice[data-theme-choice="system"] span { background: linear-gradient(135deg, #061016 0 50%, #e7eef1 50% 100%); }
.login-theme-choice:hover { border-color: var(--c-border-strong); background: var(--c-surface); transform: translateY(-1px); }
.login-theme-choice[aria-pressed="true"] { border-color: var(--c-primary); background: color-mix(in oklab, var(--c-primary) 7%, var(--c-bg-elevated)); color: var(--c-fg); }
.login-theme-choice span { position: relative; flex: 0 0 24px; width: 24px; height: 24px; border-color: color-mix(in oklab, var(--preview-accent) 24%, transparent); border-radius: 5px; background: linear-gradient(135deg, var(--preview-bg) 0 61%, var(--preview-surface) 61% 100%); }
.login-theme-choice span::after { content: ""; position: absolute; right: 6px; bottom: 5px; width: 7px; height: 7px; border-radius: 50%; background: var(--preview-accent); box-shadow: 0 0 0 2px color-mix(in oklab, var(--preview-bg) 72%, transparent); }
.login-theme-choice b { display: block; min-width: 0; font: 500 .875rem/1.5 var(--font-sans); overflow-wrap: anywhere; }
.login-field { margin-top: 20px; }
.login-field + .login-field { margin-top: 12px; }
.login-field label { display: block; margin-bottom: 7px; color: var(--c-muted); font-size: .875rem; font-weight: 500; }
.login-field input { width: 100%; min-height: 48px; padding-inline: 14px; border-color: var(--c-border); background: var(--c-bg); color: var(--c-fg); font-size: 1rem; }
.login-field input:focus { border-color: var(--c-primary); box-shadow: 0 0 0 3px color-mix(in oklab, var(--c-primary) 14%, transparent); }
.login-field input:-webkit-autofill,
.login-field input:-webkit-autofill:hover,
.login-field input:-webkit-autofill:focus { -webkit-text-fill-color: var(--c-fg); caret-color: var(--c-fg); -webkit-box-shadow: 0 0 0 1000px var(--c-bg) inset; }
.login-opt { margin-top: 12px; }
.login-opt label { display: flex; min-height: 44px; align-items: center; gap: 8px; color: var(--c-muted); font-size: .875rem; cursor: pointer; }
.login-opt input { width: 17px; min-height: 17px; height: 17px; margin: 0; accent-color: var(--c-primary); }
.login-btn { width: 100%; min-height: 48px; margin-top: 10px; border-color: var(--c-primary); border-radius: var(--r-sm); background: var(--c-primary); color: var(--c-primary-fg); font-size: 1rem; font-weight: 600; }
.login-entry-link { display: flex; width: fit-content; min-height: 44px; max-width: 100%; align-items: center; justify-content: center; margin: 4px auto 0; padding: 10px 12px; color: var(--c-info); font-size: .875rem; line-height: 1.5; text-align: center; text-underline-offset: 3px; }
.login-entry-link::after { content: "  →"; }
.login-tip { margin-top: 12px; color: var(--c-muted); font-size: .875rem; line-height: 1.65; text-align: left; overflow-wrap: anywhere; }

body[data-admin-route="requests"] .dispatch-trip-card,
body[data-admin-route="trips"] .dispatch-request-card { display: none; }
body[data-admin-route="requests"] .dispatch-flow,
body[data-admin-route="trips"] .dispatch-flow { display: none; }

@media (min-width: 1024px) {
  html[data-theme="grid-night"] .login-mask.on .login-sichuan { background-image: url("/ui-v2/assets/login-sichuan-operations.webp"); }
  html[data-theme="paper"] .login-mask.on .login-sichuan { background-image: url("/ui-v2/assets/login-sichuan-paper.webp"); }
  html[data-theme="slate"] .login-mask.on .login-sichuan { background-image: url("/ui-v2/assets/login-sichuan-slate.webp"); }
  html[data-theme="mist"] .login-mask.on .login-sichuan { background-image: url("/ui-v2/assets/login-sichuan-mist.webp"); }
}

.ui-iconized { display: inline-flex; align-items: center; gap: 7px; }
.ui-leading-icon { width: 1em; height: 1em; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.connection-notice > .ui-iconized { align-self: flex-start; display: grid; width: 28px; height: 28px; flex: 0 0 28px; place-items: center; border-radius: var(--r-sm); background: color-mix(in oklab, currentColor 10%, transparent); font-size: 0; }
.connection-notice > .ui-iconized .ui-leading-icon { width: 15px; height: 15px; }
.op-btn.ui-iconized { justify-content: center; }

@media (max-width: 1023px) {
  .main { --content-gap: 10px; --control-height: 44px; }
  .page-head { align-items: flex-start; }
  .page-head h2 { font-size: 17px; }
  .card { padding: 13px; border-radius: var(--r-md); }
  .metric { min-height: 82px; }
  .btn.sm, .button.small, .op-btn { min-width: 44px; min-height: 44px; }
  .op-btn { width: 44px; }
  .page-section-tabs { width: 100%; }
  .page-section-tabs button { min-height: 44px; flex: 1 0 auto; }
  .product-disclosure summary { min-height: 44px; }
  .admin-inline-link,
  .admin-panel-head > .admin-inline-link { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 6px 8px; }
  .ui-scroll-region[data-ui-overflow="true"]::before {
    content: "左右滑动查看完整表格";
    position: sticky;
    left: 8px;
    z-index: 3;
    display: block;
    width: max-content;
    margin: 7px 8px 1px;
    padding: 3px 7px;
    border: 1px solid var(--c-border);
    border-radius: 999px;
    background: color-mix(in oklab, var(--c-bg-elevated) 92%, transparent);
    color: var(--c-muted);
    font-size: 9px;
    line-height: 1.4;
    transition: opacity 150ms ease;
  }
  .ui-scroll-region[data-ui-overflow="true"][data-ui-scrolled="true"]::before { opacity: 0; }
  .ui-scroll-region td[colspan] > .empty-state,
  .ui-scroll-region td[colspan] > .empty {
    position: sticky;
    left: 0;
    width: min(560px, calc(100dvw - 72px));
    box-sizing: border-box;
  }
  .login-shell { display: block; }
  .login-scene { display: none; }
  .login-auth-pane { min-height: 100dvh; align-items: flex-start; padding: max(28px, env(safe-area-inset-top)) 22px max(28px, env(safe-area-inset-bottom)); }
  .login-card { width: min(430px, 100%); margin: 0 auto; padding: 0; overflow: visible; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
  .login-card::before { display: none; }
  .login-mobile-brand { display: flex; }
  .analytics-filter-grid { grid-template-columns: minmax(0, 1fr) repeat(2, minmax(142px, 180px)); }
  .analytics-filter-grid > div:first-child { grid-column: 1 / -1; }
  .analytics-filter-actions { align-self: stretch; }
}

@media (prefers-reduced-motion: reduce) {
  .admin-map-skeleton { animation: none; }
}

@media (max-width: 700px) {
  .page-head { display: grid; grid-template-columns: minmax(0, 1fr); }
  .page-head .head-actions, .page-head > .btns { display: grid; width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-head .head-actions .btn, .page-head > .btns .btn { width: 100%; }
  .metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid2, .grid3, .reference-catalog-grid, .configuration-grid, .integration-provider-grid,
  .inspection-lower-grid { grid-template-columns: minmax(0, 1fr); }
  .master-toolbar, .view-tools, .reference-toolbar { display: grid; grid-template-columns: minmax(0, 1fr); }
  .settings-provider-picker { grid-template-columns: minmax(0, 1fr); align-items: stretch; }
  .settings-provider-picker > div { justify-items: start; }
  .master-search { min-width: 0; width: 100%; }
  .result-count { margin-left: 0; }
  .modal { padding: 15px; }
  .f-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .modal .btns { display: grid; grid-template-columns: 1fr 1fr; }
  .analytics-workbench { border-radius: var(--r-md); }
  .analytics-filter-grid { grid-template-columns: minmax(0, 1fr); padding: 12px; }
  .analytics-filter-grid > div:first-child { grid-column: auto; }
  .analytics-filter-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .analytics-source-strip { display: grid; grid-template-columns: minmax(0, 1fr); gap: 5px; padding: 9px 12px; }
  .analytics-domain-grid { padding: 8px; }
  .analytics-summary-grid { grid-template-columns: minmax(0, 1fr); padding: 9px; }
  .analytics-table-wrap { margin: 0 9px 9px; }
}

@media (max-width: 390px) {
  .metrics { gap: 7px; }
  .metric { min-height: 78px; padding: 10px; }
  .metric .mv { font-size: 21px; }
  .card { padding: 12px; }
  th, td { padding: 9px 8px; }
  .login-auth-pane { padding: max(22px, env(safe-area-inset-top)) 20px max(24px, env(safe-area-inset-bottom)); }
  .login-mobile-brand { margin-bottom: 26px; }
  .login-title { font-size: 1.5rem; }
}

/* New UI admin workbench: real-data projection, independent safety pages, no synthetic map points. */
#page-home, #page-weather, #page-alerts, #page-map { max-width: none; }
.admin-dashboard { display: grid; gap: 12px; }
.admin-page-head { margin-bottom: 0; }
.admin-page-head h2 { font-size: 18px; letter-spacing: -.015em; }
.admin-head-extra { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.admin-data-contract, .admin-alert-count {
  color: var(--c-subtle);
  font: 600 11px/1.4 var(--font-mono);
}
.admin-alert-count { color: var(--c-danger); }
.admin-kpi-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.admin-kpi {
  min-width: 0;
  min-height: 88px;
  padding: 11px 12px;
  border: 1px solid var(--c-border);
  border-radius: var(--r-md);
  background: var(--c-bg-elevated);
}
.admin-kpi > span, .admin-kpi > small { display: block; color: var(--c-muted); font-size: 11px; }
.admin-kpi > strong { display: block; margin: 5px 0 4px; color: var(--c-fg); font: 600 23px/1.05 var(--font-mono); }
.admin-kpi > small { color: var(--c-subtle); line-height: 1.35; }
.admin-kpi.green > strong { color: var(--c-primary); }
.admin-kpi.blue > strong { color: var(--c-info); }
.admin-kpi.red > strong { color: var(--c-danger); }
.admin-kpi.amber > strong { color: var(--c-warn); }
.admin-todo-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
.admin-todo-grid > button {
  min-width: 0;
  min-height: 78px;
  padding: 10px 12px;
  border: 1px solid var(--c-border);
  border-radius: var(--r-md);
  background: var(--c-bg-elevated);
  color: var(--c-fg);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.admin-todo-grid span, .admin-todo-grid small { display: block; color: var(--c-muted); font-size: 11px; }
.admin-todo-grid b { display: block; margin: 2px 0; font: 600 20px/1.1 var(--font-mono); }
.admin-todo-grid small { color: var(--c-subtle); }
.admin-todo-grid > button:hover, .admin-queue-list button:hover { border-color: var(--c-border-strong); background: var(--c-surface); }
.admin-situation-grid, .admin-bottom-grid, .admin-weather-page-layout, .admin-alert-layout, .admin-map-page-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  align-items: start;
}
.admin-panel, .admin-map-stage {
  min-width: 0;
  border: 1px solid var(--c-border);
  border-radius: var(--r-md);
  background: var(--c-bg-elevated);
}
.admin-panel { padding: 12px; }
.admin-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.admin-panel-head h3 { color: var(--c-fg); font-size: 13px; font-weight: 600; }
.admin-panel-head span { display: block; margin-top: 2px; color: var(--c-subtle); font-size: 10px; }
.admin-panel-head > .pill { margin-top: 0; }
.admin-side-stack { display: grid; gap: 12px; }
.admin-inline-link {
  min-height: 32px;
  padding: 4px 0;
  border: 0;
  background: transparent;
  color: var(--c-info);
  font: 500 11px/1.4 var(--font-sans);
  text-align: left;
  cursor: pointer;
}
.admin-panel-head > .admin-inline-link { min-height: auto; padding: 0; white-space: nowrap; }
.admin-map-stage {
  position: relative;
  min-height: 280px;
  padding: 12px;
  overflow: hidden;
  background-color: var(--c-bg);
  background-image: linear-gradient(color-mix(in oklab, var(--c-border) 42%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in oklab, var(--c-border) 42%, transparent) 1px, transparent 1px);
  background-size: 28px 28px;
}
.admin-map-empty { display: grid; min-height: 132px; place-items: center; align-content: center; gap: 10px; padding: 18px; text-align: center; }
.admin-map-empty-icon { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid var(--c-border-strong); border-radius: 50%; color: var(--c-info); font: 500 22px/1 var(--font-mono); }
.admin-map-empty b, .admin-map-empty p { display: block; }
.admin-map-empty b { color: var(--c-fg); font-size: 13px; }
.admin-map-empty p { max-width: 60ch; margin-top: 5px; color: var(--c-muted); font-size: 11px; line-height: 1.55; }
.admin-map-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; border: 1px solid var(--c-border); background: var(--c-border); }
.admin-map-facts > div { min-width: 0; padding: 8px 9px; background: var(--c-bg-elevated); }
.admin-map-facts dt, .admin-contract-list dt { color: var(--c-subtle); font-size: 10px; }
.admin-map-facts dd, .admin-contract-list dd { margin-top: 3px; color: var(--c-fg); font-size: 11px; overflow-wrap: anywhere; }
.admin-map-facts small, .admin-contract-list small { display: block; margin-top: 3px; color: var(--c-subtle); font-size: 9.5px; line-height: 1.45; }
.admin-map-coordinate-list { display: grid; gap: 1px; margin-bottom: 10px; border: 1px solid var(--c-border); background: var(--c-border); }
.admin-map-coordinate-list article { display: grid; grid-template-columns: auto minmax(150px, 1fr) minmax(190px, auto) minmax(120px, auto); align-items: center; gap: 9px; min-width: 0; padding: 8px 9px; background: var(--c-bg-elevated); }
.admin-map-coordinate-list article > div { min-width: 0; }
.admin-map-coordinate-list b, .admin-map-coordinate-list small { display: block; }
.admin-map-coordinate-list b { overflow: hidden; color: var(--c-fg); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.admin-map-coordinate-list small, .admin-map-coordinate-list time { margin-top: 2px; color: var(--c-subtle); font-size: 9.5px; }
.admin-map-coordinate-list code { color: var(--c-info); font: 10px/1.45 var(--font-mono); white-space: nowrap; }
.admin-map-coordinate-list time { font-family: var(--font-mono); text-align: right; }
.admin-map-search-workspace {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(270px, .7fr);
  align-items: start;
  gap: 12px;
  margin-bottom: 12px;
  padding: 12px;
  border: 1px solid var(--c-border);
  border-radius: var(--r-md);
  background: var(--c-bg-elevated);
}
.admin-map-search-form { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; gap: 6px; }
.admin-map-search-form > label { min-width: 0; display: grid; gap: 2px; }
.admin-map-search-form > label span { color: var(--c-fg); font-size: 12px; font-weight: 600; }
.admin-map-search-form > label small { color: var(--c-subtle); font-size: 9.5px; }
.admin-map-search-input { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; }
.admin-map-search-input input { width: 100%; min-width: 0; }
.admin-map-search-feedback { display: contents; }
.admin-map-renderer-picker { min-width: 0; margin: 0; padding: 0; border: 0; }
.admin-map-renderer-picker legend { margin-bottom: 5px; color: var(--c-muted); font-size: 10px; }
.admin-map-renderer-picker > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
.admin-map-renderer-picker button {
  min-width: 0;
  min-height: 38px;
  display: grid;
  gap: 2px;
  padding: 6px 8px;
  border: 1px solid var(--c-border);
  border-radius: var(--r-sm);
  background: var(--c-bg);
  color: var(--c-muted);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.admin-map-renderer-picker button[aria-pressed="true"] { border-color: var(--c-info); background: color-mix(in oklab, var(--c-info) 8%, var(--c-bg)); color: var(--c-fg); }
.admin-map-renderer-picker button:disabled { opacity: .45; cursor: not-allowed; }
.admin-map-renderer-picker button b { overflow: hidden; font-size: 10.5px; text-overflow: ellipsis; white-space: nowrap; }
.admin-map-renderer-picker button small { color: var(--c-subtle); font-size: 9px; }
.admin-map-renderer-picker > p { margin: 5px 0 0; color: var(--c-subtle); font-size: 9px; line-height: 1.4; overflow-wrap: anywhere; }
.admin-map-renderer-picker button:focus-visible,
.admin-map-search-results button:focus-visible,
.admin-map-place-actions button:focus-visible,
.admin-map-route-swap:focus-visible { outline: 2px solid var(--c-info); outline-offset: 2px; }
.admin-map-search-results, .admin-map-search-state, .admin-map-search-meta { grid-column: 1 / -1; }
.admin-map-search-results { max-height: 238px; display: grid; gap: 1px; overflow: auto; border: 1px solid var(--c-border); background: var(--c-border); scrollbar-gutter: stable; }
.admin-map-search-results button { min-width: 0; min-height: 48px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 8px 10px; border: 0; background: var(--c-bg); color: var(--c-fg); font: inherit; text-align: left; cursor: pointer; }
.admin-map-search-results button:hover, .admin-map-search-results button[aria-selected="true"], .admin-map-search-results button[data-active="true"] { background: color-mix(in oklab, var(--c-info) 7%, var(--c-bg)); }
.admin-map-search-results button > span { min-width: 0; }
.admin-map-search-results b, .admin-map-search-results small { display: block; }
.admin-map-search-results b { overflow: hidden; font-size: 11.5px; text-overflow: ellipsis; white-space: nowrap; }
.admin-map-search-results small { margin-top: 3px; overflow: hidden; color: var(--c-subtle); font-size: 9.5px; text-overflow: ellipsis; white-space: nowrap; }
.admin-map-search-results code { color: var(--c-info); font: 9px/1.4 var(--font-mono); white-space: nowrap; }
.admin-map-search-meta { display: flex; justify-content: space-between; gap: 10px; color: var(--c-subtle); font-size: 9px; }
.admin-map-search-state { min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px; border: 1px solid var(--c-border); border-radius: var(--r-sm); background: var(--c-bg); color: var(--c-muted); font-size: 10.5px; line-height: 1.45; }
.admin-map-search-state > div { min-width: 0; display: grid; gap: 2px; }
.admin-map-search-state > div > b { color: var(--c-fg); font-size: 10.5px; }
.admin-map-search-state > div > span { min-width: 0; overflow-wrap: anywhere; }
.admin-map-search-state > .admin-inline-link { flex: 0 0 auto; padding-inline: 8px; white-space: nowrap; }
.admin-map-search-state.error, .admin-map-panel-state.error { border-color: color-mix(in oklab, var(--c-danger) 38%, var(--c-border)); color: var(--c-danger); }
.admin-map-skeleton { width: 16px; height: 16px; flex: 0 0 auto; border: 2px solid var(--c-border-strong); border-top-color: var(--c-info); border-radius: 50%; animation: geodata-spin .75s linear infinite; }
.admin-map-workspace-layout { min-width: 0; }
.admin-map-tools { min-width: 0; }
.admin-map-place-actions { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 10px; }
.admin-map-place-actions button, .admin-map-route-swap { min-height: 32px; padding: 5px 8px; border: 1px solid var(--c-border); border-radius: var(--r-sm); background: var(--c-bg); color: var(--c-muted); font: 500 10px/1.2 var(--font-sans); cursor: pointer; }
.admin-map-place-actions button:hover:not(:disabled), .admin-map-route-swap:hover { border-color: var(--c-border-strong); color: var(--c-fg); }
.admin-map-panel-state { min-height: 72px; display: grid; place-items: center; align-content: center; gap: 5px; padding: 10px; border: 1px solid var(--c-border); border-radius: var(--r-sm); background: var(--c-bg); color: var(--c-muted); text-align: center; }
.admin-map-panel-state b, .admin-map-panel-state span { display: block; font-size: 10.5px; }
.admin-map-panel-state b { color: var(--c-fg); }
.admin-map-current-weather { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 11px; padding: 10px; border: 1px solid var(--c-border); border-radius: var(--r-sm); background: var(--c-bg); }
.admin-map-current-weather > strong { color: var(--c-info); font: 600 28px/1 var(--font-mono); }
.admin-map-current-weather b, .admin-map-current-weather small { display: block; }
.admin-map-current-weather b { color: var(--c-fg); font-size: 11px; }
.admin-map-current-weather small { margin-top: 3px; color: var(--c-subtle); font-size: 9px; line-height: 1.45; }
.admin-map-forecast-block { min-width: 0; margin-top: 10px; padding-top: 9px; border-top: 1px solid var(--c-border); }
.admin-map-forecast-block > div { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 7px; }
.admin-map-forecast-block > div b { color: var(--c-fg); font-size: 10.5px; }
.admin-map-forecast-block > div span { color: var(--c-subtle); font-size: 9px; }
.admin-map-hourly { min-width: 0; display: flex; gap: 5px; margin: 0; padding: 0 0 4px; overflow-x: auto; list-style: none; overscroll-behavior-inline: contain; scrollbar-gutter: stable; }
.admin-map-hourly li { min-width: 82px; display: grid; gap: 3px; padding: 7px; border: 1px solid var(--c-border); border-radius: var(--r-sm); background: var(--c-bg); }
.admin-map-hourly time, .admin-map-hourly span { color: var(--c-subtle); font-size: 8.5px; }
.admin-map-hourly b { color: var(--c-fg); font: 600 13px/1.2 var(--font-mono); }
.admin-map-daily { display: grid; gap: 1px; margin: 0; padding: 0; background: var(--c-border); list-style: none; }
.admin-map-daily li { min-width: 0; display: grid; grid-template-columns: minmax(86px, auto) minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 7px 8px; background: var(--c-bg); font-size: 9px; }
.admin-map-daily time { color: var(--c-subtle); }
.admin-map-daily span { min-width: 0; overflow: hidden; color: var(--c-muted); text-overflow: ellipsis; white-space: nowrap; }
.admin-map-daily b { color: var(--c-fg); font: 500 9px/1.3 var(--font-mono); white-space: nowrap; }
.admin-map-panel-source { margin: 8px 0 0; color: var(--c-subtle); font-size: 9px; }
.admin-map-route-planner form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; }
.admin-map-route-planner form label { min-width: 0; display: grid; gap: 4px; }
.admin-map-route-planner form label:nth-of-type(1) { grid-column: 1; grid-row: 1; }
.admin-map-route-planner form label:nth-of-type(2) { grid-column: 1; grid-row: 2; }
.admin-map-route-planner input { width: 100%; min-width: 0; }
.admin-map-route-swap { grid-column: 2; grid-row: 1 / 3; align-self: center; min-width: 34px; padding-inline: 6px; }
.admin-map-route-planner form > .btn { grid-column: 1 / -1; }
.admin-map-route-result { display: grid; gap: 6px; margin-top: 10px; padding: 10px; border: 1px solid color-mix(in oklab, var(--c-info) 36%, var(--c-border)); border-radius: var(--r-sm); background: color-mix(in oklab, var(--c-info) 5%, var(--c-bg)); }
.admin-map-route-result > div { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.admin-map-route-result > div span { margin-right: auto; color: var(--c-info); font-size: 9px; }
.admin-map-route-result > div b { color: var(--c-fg); font: 600 11px/1.3 var(--font-mono); }
.admin-map-route-result p { margin: 0; color: var(--c-fg); font-size: 10.5px; line-height: 1.5; overflow-wrap: anywhere; }
.admin-map-route-result small, .admin-map-route-result em { color: var(--c-subtle); font-size: 9px; font-style: normal; line-height: 1.45; }
.admin-map-route-result em { color: var(--c-warn); }
.admin-map-route-idle { display: grid; gap: 3px; margin-top: 10px; padding: 10px; border: 1px dashed var(--c-border-strong); border-radius: var(--r-sm); color: var(--c-muted); }
.admin-map-route-idle b { color: var(--c-fg); font-size: 10.5px; }
.admin-map-route-idle span { font-size: 9.5px; line-height: 1.45; }
.admin-map-route-result-actions { display: flex; gap: 6px; padding-top: 7px; border-top: 1px solid var(--c-border); }
.admin-map-route-result-actions button,
.admin-map-task-route-toolbar button,
.admin-map-task-route-actions button { min-height: 32px; padding: 5px 8px; border: 1px solid var(--c-border); border-radius: var(--r-sm); background: var(--c-bg); color: var(--c-muted); font: 500 10px/1.2 var(--font-sans); cursor: pointer; }
.admin-map-route-result-actions button:hover,
.admin-map-task-route-toolbar button:hover,
.admin-map-task-route-actions button:hover { border-color: var(--c-border-strong); color: var(--c-fg); }
.admin-map-route-result-actions button:focus-visible,
.admin-map-task-route-toolbar button:focus-visible,
.admin-map-task-route-actions button:focus-visible { outline: 2px solid var(--c-info); outline-offset: 2px; }
.admin-map-task-route-manager { margin-top: 12px; border-top: 1px solid var(--c-border); }
.admin-map-task-route-manager > summary { min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 0; color: var(--c-fg); cursor: pointer; }
.admin-map-task-route-manager > summary > span { min-width: 0; display: grid; gap: 2px; }
.admin-map-task-route-manager > summary b { font-size: 11px; }
.admin-map-task-route-manager > summary small { color: var(--c-subtle); font-size: 9px; font-weight: 400; }
.admin-map-task-route-manager > summary em { color: var(--c-info); font: 500 9.5px/1.3 var(--font-mono); font-style: normal; white-space: nowrap; }
.admin-map-task-route-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 0; border-top: 1px solid var(--c-border); }
.admin-map-task-route-toolbar > span { color: var(--c-subtle); font-size: 9.5px; }
.admin-map-task-route-toolbar > div { display: flex; gap: 5px; }
.admin-map-task-route-list { display: grid; gap: 6px; }
.admin-map-task-route-row { min-width: 0; display: grid; gap: 8px; padding: 9px; border: 1px solid var(--c-border); border-radius: var(--r-sm); background: var(--c-bg); }
.admin-map-task-route-row[data-visible="true"] { border-color: color-mix(in oklab, var(--c-info) 46%, var(--c-border)); background: color-mix(in oklab, var(--c-info) 5%, var(--c-bg)); }
.admin-map-task-route-row > div:first-child { min-width: 0; display: grid; gap: 4px; }
.admin-map-task-route-row > div:first-child > span { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.admin-map-task-route-row b { color: var(--c-fg); font-size: 10.5px; }
.admin-map-task-route-row p { margin: 0; overflow-wrap: anywhere; color: var(--c-muted); font-size: 10px; line-height: 1.45; }
.admin-map-task-route-row small { color: var(--c-subtle); font-size: 9px; line-height: 1.45; }
.admin-map-task-route-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; }
.admin-map-task-route-actions button[aria-pressed="true"] { border-color: var(--c-info); color: var(--c-fg); }
.admin-map-plot-notice { display: grid; gap: 3px; padding: 8px 10px; border: 1px solid color-mix(in oklab, var(--c-warn) 36%, var(--c-border)); border-radius: var(--r-sm); background: color-mix(in oklab, var(--c-warn) 6%, var(--c-bg)); color: var(--c-warn); font-size: 9.5px; line-height: 1.45; }
.admin-map-operational-details { min-width: 0; border: 1px solid var(--c-border); border-radius: var(--r-md); background: var(--c-bg-elevated); overflow: hidden; }
.admin-map-operational-details > summary { min-height: 42px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 12px; color: var(--c-fg); font-size: 11px; cursor: pointer; }
.admin-map-operational-details > summary b { color: var(--c-subtle); font: 500 9px/1.3 var(--font-mono); }
.admin-map-operational-details > .admin-map-stage { border: 0; border-top: 1px solid var(--c-border); border-radius: 0; }
.amap-operational-marker.selected { border-color: #73e8f2; box-shadow: 0 0 0 5px rgba(56, 189, 248, .2), 0 7px 22px rgba(0, 0, 0, .42); }
.admin-compact-empty { padding: 18px 8px; color: var(--c-muted); text-align: center; }
.admin-compact-empty b, .admin-compact-empty span { display: block; }
.admin-compact-empty b { color: var(--c-fg); font-size: 12px; }
.admin-compact-empty span { max-width: 62ch; margin: 5px auto 0; font-size: 10.5px; line-height: 1.55; }
.admin-compact-empty .admin-inline-link { margin: 6px auto 0; }
.admin-weather-rows { display: grid; gap: 1px; background: var(--c-border); }
.admin-weather-rows > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 9px; background: var(--c-bg); }
.admin-weather-rows > div > span { min-width: 0; }
.admin-weather-rows > div > span:last-child { text-align: right; }
.admin-weather-rows b, .admin-weather-rows small { display: block; }
.admin-weather-rows b { color: var(--c-fg); font-size: 11.5px; }
.admin-weather-rows small { margin-top: 2px; color: var(--c-subtle); font-size: 9.5px; }
.admin-panel-note { margin-top: 8px; color: var(--c-subtle); font-size: 10px; line-height: 1.5; }
.admin-queue-list { display: grid; gap: 6px; }
.admin-queue-list button { display: flex; width: 100%; align-items: flex-start; gap: 9px; padding: 8px; border: 1px solid transparent; border-radius: var(--r-sm); background: var(--c-bg); color: var(--c-fg); font: inherit; text-align: left; cursor: pointer; }
.admin-queue-list button > span:last-child { min-width: 0; }
.admin-queue-list b, .admin-queue-list small { display: block; }
.admin-queue-list b { overflow: hidden; font-size: 11.5px; text-overflow: ellipsis; white-space: nowrap; }
.admin-queue-list small { margin-top: 3px; color: var(--c-subtle); font-size: 9.5px; }
.admin-queue-list time { margin-left: auto; color: var(--c-subtle); font: 9.5px/1.4 var(--font-mono); white-space: nowrap; }
.admin-weather-detail, .admin-weather-detail .route-weather-widget { min-width: 0; margin: 0; }
.admin-area-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.admin-area-chips span { padding: 5px 7px; border: 1px solid var(--c-border); border-radius: var(--r-sm); background: var(--c-bg-elevated); color: var(--c-muted); font-size: 10px; }
.admin-map-stage.admin-weather-coverage { min-height: 0; padding: 0; }
.admin-weather-coverage > .admin-panel-head { padding: 12px; border-bottom: 1px solid var(--c-border); }
.admin-weather-coverage-meta { display: flex; align-items: center; gap: 7px 14px; flex-wrap: wrap; padding: 8px 12px; border-bottom: 1px solid var(--c-border); color: var(--c-subtle); font-size: 9.5px; }
.admin-weather-coverage-meta > span:first-child { color: var(--c-info); font-weight: 600; }
.admin-weather-coverage-meta .warning { color: var(--c-warn); }
.admin-weather-coverage > #admin-weather-coverage-map { height: clamp(330px, 44vh, 480px); min-height: 330px; }
.admin-weather-coverage > .admin-map-empty { min-height: 180px; }
.admin-weather-coverage > .admin-geodata-loading { min-height: 260px; }
.admin-weather-coverage > .admin-area-chips { padding: 10px 12px 0; }
.admin-weather-coverage > .admin-panel-note { margin: 0; padding: 10px 12px 12px; }
.admin-alert-list { display: grid; gap: 8px; }
.admin-alert-toolbar { display: flex; gap: 8px; margin-bottom: 12px; flex-wrap: wrap; }
.admin-alert-toolbar label { display: grid; min-width: 150px; gap: 5px; }
.admin-alert-toolbar select { min-width: 150px; }
.admin-alert-row { display: grid; width: 100%; grid-template-columns: auto minmax(0, 1fr) auto; align-items: start; gap: 9px; padding: 10px; border: 1px solid var(--c-border); border-radius: var(--r-md); background: var(--c-bg); color: var(--c-fg); font: inherit; text-align: left; cursor: pointer; transition: border-color 150ms ease, background-color 150ms ease; }
.admin-alert-row:hover { border-color: var(--c-border-strong); background: var(--c-surface); }
.admin-alert-row:focus-visible { border-color: var(--c-info); outline: 2px solid color-mix(in oklab, var(--c-info) 18%, transparent); outline-offset: 1px; }
.admin-alert-row.selected { border-color: var(--c-info); background: color-mix(in oklab, var(--c-info) 7%, var(--c-bg)); }
.admin-alert-row > span:nth-child(2) { min-width: 0; }
.admin-alert-row b, .admin-alert-row small, .admin-alert-row em { display: block; }
.admin-alert-row b { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.admin-alert-row small, .admin-alert-row time { margin-top: 3px; color: var(--c-subtle); font: 10px/1.4 var(--font-mono); }
.admin-alert-row em { margin-top: 5px; overflow: hidden; color: var(--c-muted); font-size: 10.5px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.admin-alert-pager { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 10px; }
.admin-alert-pager span { color: var(--c-subtle); font: 10px/1.4 var(--font-mono); text-align: center; }
.admin-alert-detail { display: grid; gap: 11px; }
.admin-alert-detail-head { display: flex; align-items: flex-start; gap: 9px; }
.admin-alert-detail-head > div { min-width: 0; }
.admin-alert-detail-head b, .admin-alert-detail-head small { display: block; }
.admin-alert-detail-head b { color: var(--c-fg); font-size: 12px; }
.admin-alert-detail-head small { margin-top: 3px; color: var(--c-subtle); font-size: 9.5px; }
.admin-alert-detail > p { color: var(--c-muted); font-size: 11px; line-height: 1.6; }
.admin-alert-actions, .admin-alert-history { display: grid; gap: 6px; padding-top: 10px; border-top: 1px solid var(--c-border); }
.admin-alert-actions > b, .admin-alert-history > b { color: var(--c-fg); font-size: 11px; }
.admin-alert-actions > small, .admin-alert-history > small { color: var(--c-subtle); font-size: 9.5px; line-height: 1.45; }
.admin-alert-actions .btn { width: 100%; justify-content: flex-start; }
.admin-alert-history ol { display: grid; gap: 1px; background: var(--c-border); }
.admin-alert-history li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 8px; background: var(--c-bg); color: var(--c-muted); font-size: 10px; }
.admin-alert-history time { color: var(--c-subtle); font: 9px/1.4 var(--font-mono); text-align: right; }
.admin-alert-entry { border: 1px solid var(--c-border); border-radius: var(--r-md); background: var(--c-bg); }
.admin-alert-entry summary { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: start; gap: 9px; padding: 11px; cursor: pointer; }
.admin-alert-entry summary > span:nth-child(2) { min-width: 0; }
.admin-alert-entry summary b, .admin-alert-entry summary small { display: block; }
.admin-alert-entry summary b { color: var(--c-fg); font-size: 12px; }
.admin-alert-entry summary small, .admin-alert-entry time { margin-top: 3px; color: var(--c-subtle); font: 10px/1.4 var(--font-mono); }
.admin-alert-entry > div { padding: 0 11px 11px 43px; color: var(--c-muted); font-size: 11px; line-height: 1.6; }
.admin-alert-entry > div span { display: block; margin-top: 5px; color: var(--c-subtle); font-size: 9.5px; }
.admin-alert-lifecycle ol { display: grid; gap: 0; }
.admin-alert-lifecycle li { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 9px; position: relative; padding: 0 0 13px; }
.admin-alert-lifecycle li:not(:last-child)::after { content: ""; position: absolute; top: 25px; bottom: 0; left: 12px; width: 1px; background: var(--c-border); }
.admin-alert-lifecycle li > span { display: grid; z-index: 1; width: 25px; height: 25px; place-items: center; border: 1px solid var(--c-border); border-radius: 50%; background: var(--c-bg); color: var(--c-subtle); font: 10px/1 var(--font-mono); }
.admin-alert-lifecycle li.available > span { border-color: var(--c-info); color: var(--c-info); }
.admin-alert-lifecycle li b, .admin-alert-lifecycle li small { display: block; }
.admin-alert-lifecycle li b { color: var(--c-fg); font-size: 11px; }
.admin-alert-lifecycle li small { margin-top: 2px; color: var(--c-subtle); font-size: 9.5px; }
.admin-alert-lifecycle > p { padding-top: 10px; border-top: 1px solid var(--c-border); color: var(--c-muted); font-size: 10px; line-height: 1.55; }
.admin-contract-list { display: grid; gap: 1px; background: var(--c-border); }
.admin-contract-list > div { padding: 9px; background: var(--c-bg); }
.route-weather-snapshot { border-color: var(--c-border); background: var(--c-border); }
.route-weather-snapshot > span, .route-weather-hourly-list > div { background: var(--c-bg); color: var(--c-subtle); }
.route-weather-snapshot b, .route-weather-hourly > div:first-child b { color: var(--c-muted); }
.route-weather-health, .route-weather-meta, .route-weather-unresolved, .route-weather-hourly-empty { color: var(--c-subtle); }
.route-weather-alerts { border-color: color-mix(in oklab, var(--c-danger) 44%, transparent); background: color-mix(in oklab, var(--c-danger) 8%, var(--c-bg-elevated)); }
.route-weather-alert-title { color: var(--c-danger); }
.route-weather-alert-title span, .route-weather-alerts > p { color: var(--c-muted); }
.route-weather-alert { border-color: color-mix(in oklab, var(--c-danger) 40%, var(--c-border)); background: var(--c-bg); }
.route-weather-alert.amber { border-color: color-mix(in oklab, var(--c-warn) 40%, var(--c-border)); background: color-mix(in oklab, var(--c-warn) 5%, var(--c-bg)); }
.route-weather-alert summary b { color: var(--c-danger); }
.route-weather-alert.amber summary b { color: var(--c-warn); }
.route-weather-alert > div { color: var(--c-muted); }
.route-weather-alert > div span { color: var(--c-subtle); }
.route-weather-item, .route-weather-empty { border-color: var(--c-border); background: var(--c-bg); }
.route-weather-head > div span, .route-weather-live > div span, .route-weather-advice { color: var(--c-muted); }
.route-weather-live > strong { color: var(--c-info); }
.route-weather-hourly, .route-weather-hourly-empty, .route-weather-advice, .route-weather-attribution { border-color: var(--c-border); }
.route-weather-hourly-list > div { border-color: var(--c-border); }
.route-weather-attribution { color: var(--c-muted); font-size: 13px; line-height: 1.55; }
.route-weather-attribution b { color: var(--c-fg); }
.route-weather-attribution a { color: var(--c-info); font-weight: 600; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
.route-weather-attribution--compact { display: block; margin-top: 8px; padding: 0; border: 1px solid var(--c-border); border-radius: var(--r-sm); overflow: hidden; font-size: 10px; line-height: 1.45; }
.route-weather-attribution--compact > summary { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 8px; cursor: pointer; list-style: none; }
.route-weather-attribution--compact > summary::-webkit-details-marker { display: none; }
.route-weather-attribution--compact > summary > span { flex: 0 0 auto; color: var(--c-muted); }
.route-weather-attribution--compact > summary > b { min-width: 0; overflow: hidden; color: var(--c-fg); font-size: 10px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.route-weather-attribution--compact > summary > em { flex: 0 0 auto; color: var(--c-info); font-size: 9px; font-style: normal; white-space: nowrap; }
.route-weather-attribution--compact[open] > summary { border-bottom: 1px solid var(--c-border); }
.route-weather-attribution--compact > div { display: flex; flex-wrap: wrap; gap: 5px 9px; padding: 7px 8px; color: var(--c-muted); }
.route-weather-attribution--compact > div > * { min-width: 0; overflow-wrap: anywhere; }
.admin-situation-grid { align-items: start; }

@media (min-width: 700px) {
  .admin-kpi-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .admin-todo-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
  .admin-bottom-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-alert-layout { grid-template-columns: minmax(0, 1fr) 340px; }
  .admin-map-page-layout { grid-template-columns: minmax(0, 1.5fr) minmax(280px, .8fr); }
}

@media (min-width: 1280px) {
  .admin-kpi-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .admin-todo-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .admin-situation-grid { grid-template-columns: minmax(0, 1.4fr) minmax(300px, .9fr); }
  .admin-weather-page-layout { grid-template-columns: minmax(0, 1.2fr) minmax(360px, 1fr); }
  .admin-alert-layout { grid-template-columns: minmax(0, 1fr) 340px; }
  .admin-map-page-layout { grid-template-columns: minmax(0, 1.5fr) minmax(320px, .8fr); }
  .admin-map-stage:not(.admin-map-stage--full) { min-height: 420px; }
  .admin-map-stage.admin-weather-coverage { min-height: 0; }
  .admin-map-stage--full { min-height: 560px; }
}

@media (max-width: 900px) {
  .admin-map-search-workspace { grid-template-columns: minmax(0, 1fr); }
  .admin-map-renderer-picker { max-width: 520px; }
}

@media (max-width: 700px) {
  .admin-map-search-state { align-items: stretch; flex-direction: column; }
  .admin-map-search-state > .admin-inline-link { width: 100%; justify-content: center; white-space: normal; }
  .admin-map-coordinate-list article { grid-template-columns: auto minmax(0, 1fr); }
  .admin-map-coordinate-list code, .admin-map-coordinate-list time { grid-column: 2; text-align: left; white-space: normal; }
}

@media (max-width: 390px) {
  .admin-dashboard { gap: 10px; }
  .admin-head-extra { justify-content: flex-start; }
  .admin-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
  .admin-kpi { min-height: 82px; padding: 10px; }
  .admin-kpi > strong { font-size: 21px; }
  .admin-todo-grid, .admin-situation-grid, .admin-bottom-grid, .admin-weather-page-layout,
  .admin-alert-layout, .admin-map-page-layout { grid-template-columns: minmax(0, 1fr); }
  .admin-todo-grid > button, .admin-inline-link { min-height: 44px; }
  .admin-map-stage { min-height: 280px; padding: 10px; }
  .admin-map-stage--full { min-height: 360px; }
  .admin-map-facts { grid-template-columns: minmax(0, 1fr); }
  .admin-map-search-workspace { gap: 10px; padding: 10px; }
  .admin-map-search-input { grid-template-columns: minmax(0, 1fr); }
  .admin-map-search-input .btn, .admin-map-renderer-picker button, .admin-map-search-results button,
  .admin-map-place-actions button, .admin-map-route-swap, .admin-map-route-planner form > .btn,
  .admin-map-operational-details > summary { min-height: 44px; }
  .admin-map-search-results button { grid-template-columns: minmax(0, 1fr); }
  .admin-map-search-results code { white-space: normal; }
  .admin-map-place-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-map-place-actions button:last-child { grid-column: 1 / -1; }
  .admin-map-daily li { grid-template-columns: minmax(76px, auto) minmax(0, 1fr); }
  .admin-map-daily li b { grid-column: 2; }
  .admin-map-route-planner input { min-height: 44px; }
  .admin-map-route-result-actions, .admin-map-task-route-toolbar, .admin-map-task-route-toolbar > div { display: grid; grid-template-columns: minmax(0, 1fr); }
  .admin-map-route-result-actions button, .admin-map-task-route-toolbar button, .admin-map-task-route-actions button { min-height: 44px; }
  .admin-map-task-route-toolbar { align-items: stretch; }
  .admin-map-task-route-toolbar > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-weather-coverage > #admin-weather-coverage-map { height: clamp(280px, 48vh, 360px); min-height: 280px; }
  .admin-alert-toolbar { display: grid; grid-template-columns: minmax(0, 1fr); }
  .admin-alert-toolbar label, .admin-alert-toolbar select { min-width: 0; width: 100%; }
  .admin-alert-row { grid-template-columns: auto minmax(0, 1fr); }
  .admin-alert-row time { grid-column: 2; }
  .admin-alert-pager { align-items: stretch; }
  .admin-alert-entry summary { grid-template-columns: auto minmax(0, 1fr); }
  .admin-alert-entry summary time { grid-column: 2; }
  .admin-alert-entry > div { padding-left: 11px; }
}

/* Identity administration and detail previews.  Keep this layer token-driven
   so the four product themes retain the same contrast and hierarchy. */
.identity-row-actions {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 5px;
  min-width: 168px;
}
.identity-row-actions .op-btn {
  min-height: 30px;
  padding: 5px 8px;
  font-size: 10.5px;
  white-space: nowrap;
}
.identity-preview {
  display: grid;
  gap: 12px;
  min-width: 0;
  color: var(--c-fg);
}
.identity-preview-hero {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 14px;
  border: 1px solid color-mix(in oklab, var(--c-info) 28%, var(--c-border));
  border-radius: var(--r-md);
  background: linear-gradient(135deg, color-mix(in oklab, var(--c-info) 9%, var(--c-bg-elevated)), var(--c-bg-elevated));
}
.identity-preview-avatar {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border: 1px solid color-mix(in oklab, var(--c-primary) 45%, var(--c-border));
  border-radius: 14px;
  background: color-mix(in oklab, var(--c-primary) 18%, var(--c-bg));
  color: var(--c-primary);
  font: 700 22px/1 var(--font-sans);
}
.identity-preview-hero > div:nth-child(2) { min-width: 0; }
.identity-preview-kicker {
  display: block;
  color: var(--c-info);
  font: 600 9px/1.2 var(--font-mono);
  letter-spacing: .12em;
}
.identity-preview-hero h4 {
  margin: 3px 0 2px;
  overflow-wrap: anywhere;
  font-size: 17px;
}
.identity-preview-hero p {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px;
  margin: 0;
  color: var(--c-muted);
  font-size: 10.5px;
}
.identity-preview-version {
  display: grid;
  justify-items: end;
  gap: 3px;
  color: var(--c-muted);
  font-size: 10px;
  text-align: right;
}
.identity-preview-version b {
  color: var(--c-fg);
  font: 600 17px/1 var(--font-mono);
}
.identity-preview-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--c-border);
  border-radius: var(--r-md);
  background: var(--c-border);
}
.identity-preview-facts > div {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 10px;
  background: var(--c-bg-elevated);
}
.identity-preview-facts span,
.identity-preview-section-head span {
  color: var(--c-muted);
  font-size: 10px;
}
.identity-preview-facts b {
  min-width: 0;
  overflow-wrap: anywhere;
  color: var(--c-fg);
  font-size: 11.5px;
}
.identity-preview-section {
  display: grid;
  gap: 9px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--c-border);
  border-radius: var(--r-md);
  background: var(--c-surface);
}
.identity-preview-section-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--c-border);
}
.identity-preview-section-head b { color: var(--c-fg); font-size: 12px; }
.identity-preview-section-head span { text-align: right; overflow-wrap: anywhere; }
.identity-preview-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  min-width: 0;
}
.identity-preview-permissions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  min-width: 0;
}
.identity-preview-permissions > span {
  display: block;
  min-width: 0;
  padding: 7px 8px;
  border: 1px solid var(--c-border);
  border-radius: var(--r-sm);
  background: var(--c-bg-elevated);
  color: var(--c-fg);
  font-size: 10.5px;
  overflow-wrap: anywhere;
}
.identity-preview-permissions code {
  display: block;
  margin-top: 3px;
  color: var(--c-info);
  font: 9px/1.35 var(--font-mono);
  overflow-wrap: anywhere;
}
.identity-preview-binding {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}
.identity-preview-binding > div {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 9px;
  border: 1px solid var(--c-border);
  border-radius: var(--r-sm);
  background: var(--c-bg-elevated);
}
.identity-preview-binding span { color: var(--c-muted); font-size: 10px; }
.identity-preview-binding b { color: var(--c-fg); font-size: 11px; overflow-wrap: anywhere; }
.identity-preview-audit-list {
  display: grid;
  gap: 1px;
  margin: 0;
  padding: 0;
  list-style: none;
  border: 1px solid var(--c-border);
  border-radius: var(--r-sm);
  overflow: hidden;
  background: var(--c-border);
}
.identity-preview-audit-list li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 7px 12px;
  min-width: 0;
  padding: 9px;
  background: var(--c-bg-elevated);
}
.identity-preview-audit-list li > div {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
}
.identity-preview-audit-list li b { overflow-wrap: anywhere; font-size: 10.5px; }
.identity-preview-audit-list li p { grid-column: 1; margin: 0; color: var(--c-muted); font-size: 9.5px; overflow-wrap: anywhere; }
.identity-preview-audit-list li time { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: var(--c-muted); font: 9px/1.35 var(--font-mono); white-space: nowrap; }
.identity-preview-empty {
  display: grid;
  gap: 4px;
  padding: 10px;
  color: var(--c-muted);
  font-size: 10.5px;
  line-height: 1.5;
}
.identity-preview-empty b { color: var(--c-fg); }
.identity-preview-loading {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 10px;
  color: var(--c-muted);
  font-size: 10.5px;
}
.identity-preview-loading span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--c-info);
  animation: ui-v2-pulse 1.1s ease-in-out infinite alternate;
}
.identity-preview-loading span:nth-child(2) { animation-delay: .18s; }
@keyframes ui-v2-pulse { to { opacity: .28; transform: scale(.7); } }

/* Dense tables and legacy cards should not turn Chinese labels into one
   character per line at desktop widths. */
#page-identity .tbl-wrap { min-width: 0; overflow-x: auto; }
#page-identity table { min-width: 760px; }
#page-identity td, #page-identity th { vertical-align: top; }
#page-identity td:first-child { min-width: 150px; }
#page-drivers .driver-detail-doc-grid {
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  align-items: stretch;
}
#page-drivers .driver-detail-doc {
  grid-template-columns: 50px minmax(0, 1fr);
  min-height: 78px;
}
#page-drivers .driver-detail-doc-art { width: 50px; height: 58px; }
#page-drivers .driver-detail-doc-copy > div:first-child { align-items: center; }
#page-drivers .driver-detail-doc-copy strong {
  white-space: normal;
  overflow-wrap: anywhere;
}
#page-drivers .driver-detail-doc-copy small {
  white-space: normal;
  overflow-wrap: anywhere;
}

/* The home workbench must not stretch a sparse map card to the height of a
   neighboring weather/alert column. */
.admin-situation-grid { align-items: start; }
.admin-situation-grid > .admin-map-stage { align-self: start; min-height: 0; }
.admin-map-stage .admin-map-empty { min-height: 148px; }
.admin-map-stage:not(.admin-map-stage--full) .admin-map-coordinate-list { max-height: 360px; overflow: auto; }

/* Cross-theme legibility and keyboard affordances. */
:where(.page, .modal, .login-card) small,
:where(.page, .modal, .login-card) .sub,
:where(.page, .modal, .login-card) .field-help { color: var(--c-muted); }
:where(input, select, textarea)::placeholder { color: var(--c-muted); opacity: 1; }
:where(button, a, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid var(--c-info);
  outline-offset: 2px;
}

@media (max-width: 760px) {
  .identity-preview-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .identity-preview-binding { grid-template-columns: minmax(0, 1fr); }
  .identity-preview-hero { grid-template-columns: auto minmax(0, 1fr); }
  .identity-preview-version { grid-column: 2; justify-items: start; text-align: left; }
  .identity-preview-permissions { grid-template-columns: minmax(0, 1fr); }
  #page-drivers .driver-detail-doc-grid { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
}

@media (max-width: 460px) {
  .identity-preview-facts { grid-template-columns: minmax(0, 1fr); }
  .identity-preview-section-head { align-items: flex-start; flex-direction: column; }
  .identity-preview-section-head span { text-align: left; }
  .identity-preview-audit-list li { grid-template-columns: minmax(0, 1fr); }
  .identity-preview-audit-list li time { grid-column: 1; grid-row: auto; }
  #page-drivers .driver-detail-doc-grid { grid-template-columns: minmax(0, 1fr); }
}
/* List navigation stays reachable on narrow management screens. */
.admin-list-pagination { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:12px 0; }
.admin-list-pagination > div { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.admin-list-pagination label { display:flex; align-items:center; gap:6px; }
.admin-list-pagination .btn, .admin-list-pagination select { min-height:44px; min-width:44px; }
.admin-list-pagination:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
@media (max-width:600px) { .admin-list-pagination > div { width:100%; } .admin-list-pagination label { width:100%; } }
