/* Shared admin presentation only. Component dimensions and semantic states remain owned by Element Plus. */
:root:root {
  color-scheme: light;
  --admin-canvas: #f4f6f8;
  --admin-surface: #fff;
  --admin-ink: #24343d;
  --admin-muted: #697b85;
  --admin-line: #e3e9ed;
  --admin-accent: #267568;
  --el-color-primary: #267568;
  --el-color-primary-light-3: #679e94;
  --el-color-primary-light-5: #93bab4;
  --el-color-primary-light-7: #bed6d2;
  --el-color-primary-light-8: #d4e5e1;
  --el-color-primary-light-9: #edf5f3;
  --el-color-primary-dark-2: #1e5e53;
  --el-text-color-primary: #24343d;
  --el-text-color-regular: #4e606b;
  --el-text-color-secondary: #697b85;
  --el-border-color: #d8e1e6;
  --el-border-color-light: #e3e9ed;
  --el-border-color-lighter: #edf1f4;
  --el-fill-color-light: #f5f7f9;
  --el-fill-color-lighter: #fafbfc;
  --el-bg-color-page: #f4f6f8;
  --el-border-radius-base: 7px;
  --el-font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Microsoft YaHei', sans-serif;
  --el-font-size-base: 14px;
  --el-box-shadow-light: 0 6px 24px rgb(28 52 64 / 7%);
}
body { margin: 0; color: var(--admin-ink); background: var(--admin-canvas); font-family: var(--el-font-family); font-size: 14px; line-height: 1.55; -webkit-font-smoothing: antialiased; font-variant-numeric: tabular-nums; }
button, input, textarea, select { font: inherit; }
:where(button, a, summary, [tabindex]):focus-visible { outline: 2px solid var(--admin-accent); outline-offset: 3px; }
/* Page headings and toolbars use existing markup; editor/canvas internals are intentionally excluded. */
.layout .main > * { min-width: 0; }
.layout .main > .page { padding: 0; }
.layout .main > * > :is(.head, .page-head, .page-heading, .toolbar, .filters) { gap: 12px; flex-wrap: wrap; }
.layout .main > * > :is(.head, .page-head, .page-heading, .heading) { margin: 0 0 24px; align-items: center; }
.layout .main > * > :is(.head, .page-head, .page-heading, .heading) :is(h1, h2, .title) { margin: 0; color: var(--admin-ink); font-size: 24px; font-weight: 650; line-height: 1.4; letter-spacing: -.025em; }
.layout .main > * > :is(.head, .page-head, .page-heading, .heading) :is(p, .sub) { margin: 7px 0 0; color: var(--admin-muted); font-size: 13px; line-height: 1.7; }
.layout .main > * > :is(.toolbar, .filters) { padding: 16px; margin-bottom: 20px; background: var(--admin-surface); border: 1px solid var(--admin-line); border-radius: 10px; }
.layout .main :is(.search-panel, .results, .city-scope-bar, .map-import) { border-color: var(--admin-line); border-radius: 10px; }
/* Shared components also cover dialogs/popovers teleported outside the layout. */
body .el-card { --el-card-border-color: var(--admin-line); --el-card-border-radius: 10px; box-shadow: none; }
body .el-card__header { padding: 18px 22px; font-weight: 600; }
body .el-card__body { padding: 22px; }
body .el-table { --el-table-border-color: #e8edf0; --el-table-header-bg-color: #f5f7f9; --el-table-header-text-color: #526773; --el-table-row-hover-bg-color: #f0f7f5; color: var(--el-text-color-regular); font-size: 13px; }
body .el-table th.el-table__cell { padding: 12px 0; font-size: 12px; font-weight: 600; }
body .el-table td.el-table__cell { padding: 12px 0; }
body .el-table .cell { line-height: 1.65; }
body .el-table--small th.el-table__cell, body .el-table--small td.el-table__cell { padding: 8px 0; }
body .el-table__empty-block { min-height: 150px; }
body .el-button { font-weight: 500; transition: color .16s ease, background-color .16s ease, border-color .16s ease; }
body .el-button:not(.is-link):not(.is-text):not(.is-circle) { border-radius: 7px; }
body .el-form-item__label { color: #4b606b; font-weight: 500; }
body .el-input__wrapper, body .el-select__wrapper { border-radius: 7px; }
body .el-textarea__inner { border-radius: 7px; line-height: 1.7; }
body .el-tabs { --el-tabs-header-height: 46px; }
body .el-tabs__item { font-weight: 500; }
body .el-tabs__nav-wrap::after { height: 1px; background-color: var(--admin-line); }
body .el-tabs--border-card { border-color: var(--admin-line); border-radius: 10px; box-shadow: none; }
body .el-tabs--border-card > .el-tabs__header { border-radius: 10px 10px 0 0; }
body .el-tag { border-radius: 5px; font-weight: 500; }
body .el-alert { border-radius: 8px; }
body .el-alert__description { line-height: 1.7; }
body .el-pagination { gap: 6px; flex-wrap: wrap; row-gap: 12px; }
body .el-dialog { max-width: calc(100vw - 32px); padding: 24px; border-radius: 14px; box-sizing: border-box; box-shadow: 0 24px 80px rgb(28 52 64 / 18%); }
body .el-dialog.is-fullscreen { max-width: 100%; border-radius: 0; }
body .el-dialog__header { margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--admin-line); }
body .el-dialog__title { font-size: 19px; font-weight: 600; }
body .el-dialog__footer { padding-top: 20px; }
body .el-drawer__header { margin-bottom: 0; padding-bottom: 20px; border-bottom: 1px solid var(--admin-line); color: var(--admin-ink); }
body .el-drawer__body { padding: 24px; }
body .el-empty { padding: 40px 0; }
body .el-empty__description p { color: var(--admin-muted); }
.layout .translation-switches { flex-wrap: wrap; row-gap: 16px; }
.layout .route-form { padding-top: 0; }
.layout .route-list { padding: 0; }
.layout :is(.route-list, .route-form) > header { gap: 16px; flex-wrap: wrap; }
.layout :is(.route-list, .route-form) > header h2 { font-size: 24px; font-weight: 650; color: var(--admin-ink); }
@media (max-width: 1100px) {
  body .el-card__body, body .el-card__header { padding: 16px; }
  .layout .main > * > :is(.head, .page-head, .page-heading, .heading) :is(h1, h2, .title) { font-size: 21px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
