/* GEO admin theme. Keep behavior in the existing Vue application. */
body.geo-admin-theme {
  --geo-ink: #142238;
  --geo-muted: #66758c;
  --geo-border: #e3e8f0;
  --geo-canvas: #f5f7fb;
  --geo-blue: #2563eb;
  --el-color-primary: #2563eb;
  --el-color-primary-rgb: 37, 99, 235;
  --el-color-primary-light-3: #6792f1;
  --el-color-primary-light-5: #92b1f5;
  --el-color-primary-light-7: #bed0f9;
  --el-color-primary-light-8: #d3e0fb;
  --el-color-primary-light-9: #e9effd;
  --el-color-primary-dark-2: #1e4fbc;
  --el-font-family: "Noto Sans SC", "Microsoft YaHei UI", "Microsoft YaHei", "Segoe UI", "PingFang SC", sans-serif;
  --el-text-color-primary: #142238;
  --el-text-color-regular: #526176;
  --el-border-color: #d5ddeb;
  --el-border-radius-base: 8px;
  margin: 0;
  font-family: var(--el-font-family);
  color: var(--geo-ink);
  -webkit-font-smoothing: antialiased;
}
body.geo-admin-theme .layout-container { height: 100dvh; min-height: 0; }
body.geo-admin-theme .layout-container > .el-container { min-width: 0; }
body.geo-admin-theme .layout-container .nav-aside {
  width: 224px;
  background: #17283f;
  border-right: 1px solid #24354b;
}
body.geo-admin-theme .layout-container .nav-logo { height: 76px; padding: 0 26px; flex-shrink: 0; }
body.geo-admin-theme .layout-container .nav-logo > :not(.geo-brand) { display: none; }
.geo-brand { display: flex; align-items: center; gap: 9px; color: #fff; white-space: nowrap; }
.geo-brand svg { width: 27px; height: 27px; flex-shrink: 0; }
.geo-brand strong { font-size: 21px; font-weight: 750; letter-spacing: -.7px; }
.geo-brand span { font-size: 13px; font-weight: 600; letter-spacing: .2px; }
body.geo-admin-theme .layout-container .nav-menu { padding: 10px 12px 20px; }
body.geo-admin-theme .layout-container .nav-item {
  height: 44px;
  padding: 0 16px;
  margin: 4px 0;
  gap: 14px;
  font-size: 15px;
  line-height: 1.4;
  color: #dbe4f0;
  border-radius: 8px;
  transition: background .16s ease, color .16s ease;
}
body.geo-admin-theme .layout-container .nav-item:hover { background: #213751; color: #fff; }
body.geo-admin-theme .layout-container .nav-item.active { background: #203e66; color: #66a7ff; font-weight: 600; }
body.geo-admin-theme .layout-container .nav-item.active::before { background: #4c9aff; top: 10px; bottom: 10px; width: 3px; }
body.geo-admin-theme .layout-container .nav-item > .nav-item__icon { display: none; }
.geo-nav-icon { display: block; width: 20px; height: 20px; flex-shrink: 0; }
body.geo-admin-theme .layout-container .nav-group { margin-top: 26px; }
body.geo-admin-theme .layout-container .nav-group__label { padding: 0 16px; margin: 0 0 9px; color: #91a2b9; font-size: 11px; letter-spacing: .5px; }
body.geo-admin-theme .layout-container .nav-footer { padding: 14px 26px; border-top: 1px solid #ffffff0a; }
body.geo-admin-theme .layout-container .header { height: 64px; padding: 0 32px; border-bottom: 1px solid var(--geo-border); box-shadow: none; gap: 16px; }
body.geo-admin-theme .layout-container .header-title { font-size: 16px; font-weight: 650; color: var(--geo-ink); }
.geo-context-current { color: var(--geo-ink); }
.geo-context-current::before { content: "/"; color: #96a3b6; margin: 0 12px; font-weight: 400; }
body.geo-admin-theme .layout-container .header-center { min-width: 0; flex-shrink: 1; }
body.geo-admin-theme .layout-container .compliance-pill { max-width: 320px; font-size: 11px; height: 26px; background: #fffaf2; border-color: #f0dfc5; }
body.geo-admin-theme .layout-container .main { padding: 30px 32px 16px; background: var(--geo-canvas); min-width: 0; }
body.geo-admin-theme .layout-container .main-copyright { color: #96a3b6; padding-top: 22px; font-size: 11px; }
body.geo-admin-theme .menu-config-page {
  max-width: 1280px; margin: 0 auto; padding: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-areas: "heading heading" "top content" "publish system" "customer system" "customer actions" "plugin plugin";
  gap: 20px 24px;
  align-items: start;
}
body.geo-admin-theme .menu-config-page .page-header { grid-area: heading; margin-bottom: 0; }
body.geo-admin-theme .menu-config-page .page-title { margin: 0 0 8px; font-size: 30px; line-height: 1.35; letter-spacing: -.7px; font-weight: 750; color: var(--geo-ink); }
body.geo-admin-theme .menu-config-page .back-icon { display: none; }
body.geo-admin-theme .menu-config-page .page-desc { font-size: 14px; line-height: 1.7; color: var(--geo-muted); }
body.geo-admin-theme .menu-config-page .menu-groups {
  display: contents;
}
body.geo-admin-theme .menu-config-page .menu-group-section {
  background: #fff;
  border: 1px solid var(--geo-border);
  border-radius: 10px;
  box-shadow: 0 2px 6px #14223802;
}
body.geo-admin-theme .menu-config-page .menu-group-section:has([data-group="default"]) { grid-area: top; }
body.geo-admin-theme .menu-config-page .menu-group-section:has([data-group="content"]) { grid-area: content; }
body.geo-admin-theme .menu-config-page .menu-group-section:has([data-group="publish"]) { grid-area: publish; }
body.geo-admin-theme .menu-config-page .menu-group-section:has([data-group="system"]) { grid-area: system; }
body.geo-admin-theme .menu-config-page .menu-group-section:has([data-group="customer"]) { grid-area: customer; }
body.geo-admin-theme .menu-config-page .menu-group-section:has([data-group="plugin"]) { grid-area: plugin; }
body.geo-admin-theme .menu-config-page .menu-group-section:has([data-group="default"]) { align-self: stretch; }
body.geo-admin-theme .menu-config-page .group-header { padding: 14px 24px; font-size: 16px; font-weight: 650; line-height: 1.4; color: var(--geo-ink); background: #fbfcfe; border-bottom: 1px solid #edf0f6; }
body.geo-admin-theme .menu-config-page .group-items { padding: 4px 24px 8px; }
body.geo-admin-theme .menu-config-page .menu-item-row { min-height: 42px; padding: 0 0; gap: 16px; border-bottom: 1px solid #f0f3f8; opacity: 1; }
body.geo-admin-theme .menu-config-page .menu-item-row:last-child { border-bottom: 0; }
body.geo-admin-theme .menu-config-page .menu-item-row:hover { background: #f8faff; }
body.geo-admin-theme .menu-config-page .item-label { color: var(--geo-ink); font-size: 15px; line-height: 1.5; }
body.geo-admin-theme .menu-config-page .menu-item-row.hidden .item-label { color: #66758c; }
body.geo-admin-theme .menu-config-page .item-drag-handle { width: 12px; color: #a6b3c7; }
body.geo-admin-theme .menu-config-page .item-drag-handle .iconfont { display: none; }
body.geo-admin-theme .menu-config-page .item-drag-handle:not(.placeholder)::before { content: ""; display: block; width: 10px; height: 16px; background: radial-gradient(circle, #a6b3c7 1.25px, transparent 1.6px) 0 0 / 5px 5px; }
body.geo-admin-theme .menu-config-page .item-icon { display: none; }
.geo-item-icon { display: block; width: 19px; height: 19px; color: #26394f; flex-shrink: 0; }
body.geo-admin-theme .menu-config-page .menu-item-row.hidden .geo-item-icon { color: #66758c; }
body.geo-admin-theme .menu-config-page .item-actions { min-width: 42px; justify-content: flex-end; }
body.geo-admin-theme .menu-config-page .el-switch { --el-switch-on-color: #2563eb; --el-switch-off-color: #e7ebf1; }
body.geo-admin-theme .menu-config-page .el-switch--small .el-switch__core { min-width: 36px; height: 20px; }
body.geo-admin-theme .menu-config-page .el-switch--small .el-switch__action { width: 16px; height: 16px; }
body.geo-admin-theme .menu-config-page .el-switch--small.is-checked .el-switch__core .el-switch__action { left: calc(100% - 17px); }
body.geo-admin-theme .menu-config-page .el-tag { background: #f0f3f8; border: 0; color: #7d8ba0; font-size: 11px; border-radius: 5px; }
body.geo-admin-theme .menu-config-page .page-footer { grid-area: actions; align-self: end; margin-top: 0; padding-top: 16px; border-top: 1px solid var(--geo-border); gap: 12px; }
body.geo-admin-theme .menu-config-page:has([data-group="plugin"]) { grid-template-areas: "heading heading" "top content" "publish system" "customer system" "plugin plugin" "actions actions"; }
body.geo-admin-theme .menu-config-page .page-footer .el-button { height: 38px; padding: 0 20px; font-size: 13px; font-weight: 550; border-radius: 7px; margin: 0; }
body.geo-admin-theme .menu-config-page .page-footer .el-button--warning { --el-button-text-color: #526176; --el-button-bg-color: #fff; --el-button-border-color: #d5ddeb; --el-button-hover-text-color: #2563eb; --el-button-hover-bg-color: #f5f8ff; --el-button-hover-border-color: #92b1f5; --el-button-active-bg-color: #e9effd; --el-button-active-text-color: #1e4fbc; --el-button-active-border-color: #6792f1; }
body.geo-admin-theme a:focus-visible, body.geo-admin-theme button:focus-visible { outline: 2px solid #6792f1; outline-offset: 3px; }
body.geo-admin-theme .menu-config-page .el-switch:focus-within .el-switch__core { outline: 2px solid #6792f1; outline-offset: 3px; }
@media (max-width: 1180px) {
  body.geo-admin-theme .layout-container .nav-aside { width: 200px; }
  body.geo-admin-theme .layout-container .nav-logo { padding: 0 20px; }
  body.geo-admin-theme .layout-container .main { padding: 24px; }
  body.geo-admin-theme .menu-config-page .group-items { padding-right: 18px; padding-left: 18px; }
  body.geo-admin-theme .menu-config-page { gap: 18px; }
}
@media (max-width: 900px) {
  body.geo-admin-theme .menu-config-page,
  body.geo-admin-theme .menu-config-page:has([data-group="plugin"]) { grid-template-columns: minmax(0, 1fr); grid-template-areas: "heading" "top" "content" "publish" "system" "customer" "plugin" "actions"; }
  body.geo-admin-theme .layout-container .header-center { display: none; }
}
@media (max-width: 640px) {
  body.geo-admin-theme .layout-container .nav-aside { width: 64px; }
  body.geo-admin-theme .layout-container .nav-logo { height: 64px; padding: 0; justify-content: center; }
  body.geo-admin-theme .layout-container .geo-brand strong, body.geo-admin-theme .layout-container .geo-brand span { display: none; }
  body.geo-admin-theme .layout-container .nav-menu { padding: 8px; }
  body.geo-admin-theme .layout-container .nav-item { padding: 0; justify-content: center; gap: 0; height: 42px; }
  body.geo-admin-theme .layout-container .nav-item > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  body.geo-admin-theme .layout-container .nav-group { margin-top: 18px; }
  body.geo-admin-theme .layout-container .nav-group__label, body.geo-admin-theme .layout-container .nav-footer { display: none; }
  body.geo-admin-theme .layout-container .header { height: 56px; padding: 0 14px; gap: 8px; }
  body.geo-admin-theme .layout-container .header-title { font-size: 13px; }
  .geo-context-current::before { margin: 0 6px; }
  body.geo-admin-theme .layout-container .header-left { gap: 6px; }
  body.geo-admin-theme .layout-container .membership-badge, body.geo-admin-theme .layout-container .help-btn { display: none; }
  body.geo-admin-theme .layout-container .main { padding: 22px 14px 14px; }
  body.geo-admin-theme .menu-config-page .page-title { font-size: 24px; }
  body.geo-admin-theme .menu-config-page .page-desc { font-size: 12px; }
  body.geo-admin-theme .menu-config-page .group-header { padding: 12px 16px; font-size: 15px; }
  body.geo-admin-theme .menu-config-page .group-items { padding-right: 14px; padding-left: 14px; }
  body.geo-admin-theme .menu-config-page .menu-item-row { gap: 10px; min-height: 42px; }
  body.geo-admin-theme .menu-config-page .item-label { font-size: 13px; }
  body.geo-admin-theme .menu-config-page .page-footer { flex-wrap: wrap; gap: 8px; }
  body.geo-admin-theme .menu-config-page .page-footer .el-button { padding: 0 11px; font-size: 12px; }
  body.geo-admin-theme .menu-config-page .page-footer .el-button--primary { flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce) {
  body.geo-admin-theme .layout-container .nav-item { transition: none; }
  body.geo-admin-theme .menu-config-page .menu-item-row { transition: none; }
}
