:root,
.edova-portal {
  --edova-color-ink: #13293d;
  --edova-color-muted: #60717d;
  --edova-color-bg: #f5f7fa;
  --edova-color-surface: #ffffff;
  --edova-color-soft: #f7fafb;
  --edova-color-line: #dce5ea;
  --edova-color-line-strong: #bcccdc;
  --edova-color-primary: #ec6608;
  --edova-color-primary-hover: #c94f00;
  --edova-color-primary-soft: #fff4ec;
  --edova-color-primary-border: rgba(236, 102, 8, 0.32);
  --edova-color-accent: #ec6608;
  --edova-color-accent-soft: #fff4ec;
  --edova-color-info: #185a7d;
  --edova-color-good: #287d53;
  --edova-color-warn: #a15c2f;
  --edova-color-danger: #b3261e;
  --edova-focus-ring: rgba(236, 102, 8, 0.18);
  --edova-radius-control: 6px;
  --edova-radius-card: 8px;
  --edova-shadow-soft: 0 12px 32px rgba(19, 41, 61, 0.06);
  --edova-shadow-raised: 0 18px 48px rgba(19, 41, 61, 0.08);
  --edova-font-family: Arial, Helvetica, sans-serif;
  --portal-bg: var(--edova-color-bg);
  --portal-surface: var(--edova-color-surface);
  --portal-surface-soft: var(--edova-color-soft);
  --portal-line: var(--edova-color-line);
  --portal-line-strong: var(--edova-color-line-strong);
  --portal-accent: var(--edova-color-accent);
  --portal-accent-2: var(--edova-color-accent);
  --portal-accent-soft: var(--edova-color-accent-soft);
  --portal-ink: var(--edova-color-ink);
  --portal-muted: var(--edova-color-muted);
  --portal-good: var(--edova-color-good);
  --portal-warn: var(--edova-color-warn);
  --portal-info: var(--edova-color-info);
  --portal-shadow: var(--edova-shadow-soft);
  --customer-teal: var(--edova-color-accent);
  --customer-work-teal: var(--edova-color-accent);
  --operator-teal: var(--edova-color-accent);
  --tech-accent: var(--edova-color-accent);
  --tech-bg: var(--edova-color-bg);
  --tech-line: var(--edova-color-line);
  --tech-muted: var(--edova-color-muted);
  --tech-surface: var(--edova-color-surface);
  --tech-ink: var(--edova-color-ink);
  --workbench-teal: var(--edova-color-accent);
}

.edova-admin-portal {
  --edova-color-primary: #ec6608;
  --edova-color-primary-hover: #c94f00;
  --edova-focus-ring: rgba(236, 102, 8, 0.18);
}

.edova-technician-portal {
  --edova-color-primary: #185a7d;
  --edova-color-primary-hover: #0f4664;
  --edova-color-primary-soft: #e8f1f6;
  --edova-color-primary-border: rgba(24, 90, 125, 0.28);
  --edova-focus-ring: rgba(24, 90, 125, 0.18);
}

.edova-customer-portal {
  --edova-color-primary: var(--brand-primary, #13293d);
  --edova-color-primary-hover: var(--brand-primary-hover, #0d1d2b);
  --edova-color-primary-soft: #eef3f6;
  --edova-color-primary-border: rgba(19, 41, 61, 0.24);
  --edova-focus-ring: rgba(19, 41, 61, 0.18);
}

.edova-portal {
  background: var(--edova-color-bg);
  color: var(--edova-color-ink);
  font-family: var(--edova-font-family);
}

.edova-portal *,
.edova-portal *::before,
.edova-portal *::after {
  box-sizing: border-box;
}

.edova-portal h1,
.edova-portal h2,
.edova-portal h3,
.edova-portal p {
  margin: 0;
}

.edova-portal .eyebrow {
  color: var(--edova-color-primary);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.edova-portal .topbar {
  border-bottom: 1px solid var(--edova-color-line);
}

.edova-portal .portal-nav {
  border-bottom: 1px solid var(--edova-color-line);
}

.edova-portal .portal-nav button,
.edova-portal .portal-nav a,
.edova-mode-switch button,
.edova-action-button {
  align-items: center;
  border-radius: var(--edova-radius-control);
  display: inline-flex;
  font-weight: 800;
  justify-content: center;
  min-height: 36px;
}

.edova-portal .portal-nav button,
.edova-portal .portal-nav a,
.edova-mode-switch button {
  background: var(--edova-color-surface);
  border: 1px solid var(--edova-color-line);
  color: var(--edova-color-ink);
}

.edova-portal .portal-nav button:hover,
.edova-portal .portal-nav a:hover,
.edova-mode-switch button:hover {
  background: var(--edova-color-primary-soft);
  border-color: var(--edova-color-primary-border);
  color: var(--edova-color-primary);
}

.edova-portal .portal-nav button.active,
.edova-portal .portal-nav a.active,
.edova-mode-switch button.active {
  background: var(--edova-color-primary);
  border-color: var(--edova-color-primary);
  color: #ffffff;
}

.edova-portal button {
  border-radius: var(--edova-radius-control);
  font-weight: 800;
}

.edova-portal button:not(.danger-button):not(.secondary-button):not(.tiny-button):not([data-view-button]):not([data-view-jump]),
.edova-action-button.primary {
  background: var(--edova-color-primary);
  border-color: var(--edova-color-primary);
  color: #ffffff;
}

.edova-portal button:not(.danger-button):not(.secondary-button):not(.tiny-button):not([data-view-button]):not([data-view-jump]):hover,
.edova-portal button:not(.danger-button):not(.secondary-button):not(.tiny-button):not([data-view-button]):not([data-view-jump]):focus-visible,
.edova-action-button.primary:hover,
.edova-action-button.primary:focus-visible {
  background: var(--edova-color-primary-hover);
  border-color: var(--edova-color-primary-hover);
}

.edova-portal input,
.edova-portal select,
.edova-portal textarea {
  border-color: var(--edova-color-line-strong);
  border-radius: var(--edova-radius-control);
  color: var(--edova-color-ink);
  font-family: var(--edova-font-family);
}

.edova-portal input:focus,
.edova-portal select:focus,
.edova-portal textarea:focus,
.edova-portal button:focus-visible,
.edova-portal a:focus-visible {
  outline: 3px solid var(--edova-focus-ring);
  outline-offset: 2px;
}

.edova-portal .panel,
.edova-portal .flow-panel,
.edova-portal .control-policy-panel,
.edova-portal .update-panel,
.edova-portal .tenant-room-panel,
.edova-portal .service-focus-panel,
.edova-portal .platform-operations-panel,
.edova-portal .device-wizard,
.edova-portal .device-assistant-readout {
  border: 1px solid var(--edova-color-line);
  border-radius: var(--edova-radius-card);
  box-shadow: var(--edova-shadow-soft);
}

.edova-portal .metric,
.edova-portal .item,
.edova-portal .customer-item,
.edova-portal .site-item,
.edova-portal .context-step,
.edova-portal .operation-card,
.edova-portal .control-metric,
.edova-portal .regulator-kpi,
.edova-portal .setpoint-strip article,
.edova-portal .controller-chain-strip article,
.edova-portal .device-wizard-step,
.edova-portal .device-assistant-checks article,
.edova-card {
  border-radius: var(--edova-radius-card);
  min-width: 0;
}

.edova-portal .table-wrap {
  border-radius: var(--edova-radius-card);
}

.edova-portal .detail-empty,
.edova-portal .status-line,
.edova-portal .session-line,
.edova-portal .muted {
  color: var(--edova-color-muted);
}

.edova-mode-switch,
.edova-action-row {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.edova-mode-switch {
  background: var(--edova-color-surface);
  border: 1px solid var(--edova-color-line);
  border-radius: var(--edova-radius-card);
  padding: 6px;
}

.edova-action-button.primary {
  background: var(--edova-color-primary);
  border-color: var(--edova-color-primary);
  color: #ffffff;
}

.edova-status-chip {
  align-items: center;
  background: #eef2f6;
  border: 1px solid var(--edova-color-line);
  border-radius: 999px;
  color: var(--edova-color-ink);
  display: inline-flex;
  font-size: 12px;
  font-weight: 800;
  gap: 6px;
  line-height: 1.2;
  min-height: 28px;
  padding: 0 10px;
}

.edova-portal button:disabled {
  cursor: not-allowed;
  opacity: 0.56;
}

.edova-status-chip::before {
  background: currentColor;
  border-radius: 50%;
  content: "";
  height: 7px;
  opacity: 0.82;
  width: 7px;
}

.edova-status-chip.is-good {
  background: #e9f7ef;
  border-color: rgba(40, 125, 83, 0.24);
  color: var(--edova-color-good);
}

.edova-status-chip.is-warning {
  background: #fff4ea;
  border-color: rgba(161, 92, 47, 0.28);
  color: var(--edova-color-warn);
}

.edova-status-chip.is-critical {
  background: #fdecea;
  border-color: rgba(179, 38, 30, 0.24);
  color: var(--edova-color-danger);
}

.edova-status-chip.is-info {
  background: #e8f1f6;
  border-color: rgba(24, 90, 125, 0.24);
  color: var(--edova-color-info);
}

.edova-alert {
  background: var(--edova-color-soft);
  border: 1px solid var(--edova-color-line);
  border-left: 4px solid var(--edova-color-info);
  border-radius: var(--edova-radius-card);
  color: var(--edova-color-ink);
  display: grid;
  gap: 4px;
  line-height: 1.4;
  min-width: 0;
  padding: 12px;
}

.edova-alert.is-good {
  border-left-color: var(--edova-color-good);
}

.edova-alert.is-warning {
  border-left-color: var(--edova-color-warn);
}

.edova-alert.is-critical {
  border-left-color: var(--edova-color-danger);
}

.edova-alert span,
.edova-alert small {
  color: var(--edova-color-muted);
  font-size: 12px;
  font-weight: 800;
}

.edova-alert strong {
  color: var(--edova-color-ink);
  overflow-wrap: anywhere;
}

.edova-portal .health-badge,
.edova-portal .portal-pill {
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
}

@media (max-width: 720px) {
  .edova-mode-switch,
  .edova-action-row {
    align-items: stretch;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Compatibility layer: keep older portal CSS below the shared design tokens. */
.edova-portal .eyebrow,
.edova-portal .portal-nav-label,
.edova-portal .topbar-brand .eyebrow,
.edova-portal .panel-head .eyebrow {
  color: var(--edova-color-accent) !important;
}

.edova-portal .portal-nav button,
.edova-portal .portal-nav a,
.edova-portal .edova-mode-switch button {
  background: var(--edova-color-surface) !important;
  border-color: var(--edova-color-line) !important;
  border-radius: var(--edova-radius-control) !important;
  box-shadow: none !important;
  color: var(--edova-color-ink) !important;
}

.edova-portal .portal-nav button:hover,
.edova-portal .portal-nav button:focus-visible,
.edova-portal .portal-nav a:hover,
.edova-portal .portal-nav a:focus-visible,
.edova-portal .edova-mode-switch button:hover,
.edova-portal .edova-mode-switch button:focus-visible {
  background: var(--edova-color-primary-soft) !important;
  border-color: var(--edova-color-primary-border) !important;
  color: var(--edova-color-primary) !important;
}

.edova-portal .portal-nav button.active,
.edova-portal .portal-nav a.active,
.edova-portal .edova-mode-switch button.active {
  background: var(--edova-color-primary) !important;
  border-color: var(--edova-color-primary) !important;
  color: #ffffff !important;
}

.edova-portal .view-scope-line strong,
.edova-portal .scope-line strong {
  background: var(--edova-color-primary) !important;
  border-color: var(--edova-color-primary) !important;
  color: #ffffff !important;
}

.edova-portal .panel,
.edova-portal .flow-panel,
.edova-portal .control-policy-panel,
.edova-portal .update-panel,
.edova-portal .tenant-room-panel,
.edova-portal .service-focus-panel,
.edova-portal .platform-operations-panel,
.edova-portal .device-wizard,
.edova-portal .device-assistant-readout {
  background: var(--edova-color-surface) !important;
  border-color: var(--edova-color-line) !important;
  border-radius: var(--edova-radius-card) !important;
  box-shadow: var(--edova-shadow-soft) !important;
}

.edova-portal .context-step {
  border-left-color: var(--edova-color-ink) !important;
}

.edova-portal .context-step.is-missing {
  border-left-color: var(--edova-color-accent) !important;
}

/* Professional operations console layer.
   This is the current V2 UI direction: dense, technical, role-led, and
   deliberately flatter than the older card-heavy portal styles. */
.edova-portal {
  --edova-console-bg: #f3f6f8;
  --edova-console-ink: #102632;
  --edova-console-muted: #566977;
  --edova-console-line: #cfd9df;
  --edova-console-line-strong: #aebdc6;
  --edova-console-surface: #ffffff;
  --edova-console-subtle: #eef3f6;
  --edova-console-navy: #102632;
  --edova-console-blue: #185a7d;
  --edova-console-orange: #ec6608;
  --edova-console-green: #287d53;
  --edova-console-red: #b3261e;
  --edova-console-radius: 6px;
  --edova-console-shadow: 0 10px 28px rgba(16, 38, 50, 0.07);
  background:
    linear-gradient(180deg, #f7fafb 0, var(--edova-console-bg) 280px),
    var(--edova-console-bg) !important;
  color: var(--edova-console-ink) !important;
  font-size: 14px;
  line-height: 1.38;
}

.edova-portal .admin-shell,
.edova-portal .technician-shell {
  background: transparent !important;
}

body.edova-admin-portal .admin-shell,
body.edova-technician-portal .technician-shell {
  display: grid !important;
  grid-template-columns: 252px minmax(0, 1fr) !important;
  min-height: 100vh;
}

body.edova-customer-portal {
  min-height: 100vh;
  padding: 0 !important;
}

body.edova-admin-portal .admin-sidebar,
body.edova-technician-portal .technician-rail {
  background: #0f2630 !important;
  border-right: 1px solid #183844 !important;
  color: #e9f1f4 !important;
  padding: 16px 12px !important;
  position: sticky !important;
  top: 0;
  height: 100vh;
  overflow: auto;
}

body.edova-admin-portal .admin-sidebar-brand,
body.edova-technician-portal .rail-brand {
  align-items: center;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: var(--edova-console-radius) !important;
  display: grid !important;
  grid-template-columns: 32px minmax(0, 1fr) !important;
  gap: 10px !important;
  margin: 0 0 16px !important;
  padding: 10px !important;
}

body.edova-admin-portal .admin-sidebar-brand p,
body.edova-admin-portal .admin-sidebar-brand strong,
body.edova-admin-portal .admin-sidebar-brand span,
body.edova-technician-portal .rail-brand p,
body.edova-technician-portal .rail-brand strong,
body.edova-technician-portal .rail-brand span {
  color: inherit !important;
}

body.edova-admin-portal .admin-mark,
body.edova-technician-portal .rail-mark {
  background: var(--edova-console-orange) !important;
  border-radius: 4px !important;
  height: 28px !important;
  width: 28px !important;
}

body.edova-admin-portal .portal-nav,
body.edova-technician-portal .portal-nav {
  background: transparent !important;
  border: 0 !important;
  display: grid !important;
  gap: 4px !important;
  margin: 0 0 14px !important;
  padding: 0 !important;
}

body.edova-admin-portal .portal-nav + .portal-nav {
  border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
  padding-top: 14px !important;
}

body.edova-admin-portal .portal-nav-label,
body.edova-technician-portal .portal-nav-label {
  color: #9fb4bd !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  padding: 10px 8px 4px !important;
  text-transform: uppercase;
}

body.edova-admin-portal .admin-sidebar .portal-nav button,
body.edova-technician-portal .technician-nav button {
  background: transparent !important;
  border: 1px solid transparent !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  color: #dce8ed !important;
  display: grid !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  justify-content: start !important;
  min-height: 34px !important;
  padding: 7px 8px !important;
  text-align: left !important;
  width: 100% !important;
}

body.edova-admin-portal .admin-sidebar .portal-nav button:hover,
body.edova-admin-portal .admin-sidebar .portal-nav button:focus-visible,
body.edova-technician-portal .technician-nav button:hover,
body.edova-technician-portal .technician-nav button:focus-visible {
  background: rgba(255, 255, 255, 0.07) !important;
  border-color: rgba(255, 255, 255, 0.12) !important;
  color: #ffffff !important;
}

body.edova-admin-portal .admin-sidebar .portal-nav button.active,
body.edova-technician-portal .technician-nav button.active {
  background: #ffffff !important;
  border-color: #ffffff !important;
  color: var(--edova-console-navy) !important;
}

body.edova-admin-portal .portal-nav button.needs-customer::after,
body.edova-admin-portal.admin-no-customer .portal-nav-tenant .portal-nav-label::after {
  content: none !important;
  display: none !important;
}

body.edova-admin-portal .portal-nav-empty-state {
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: 4px !important;
  color: #dce8ed !important;
  display: none !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  padding: 9px 10px !important;
}

body.edova-admin-portal.admin-no-customer .portal-nav-tenant {
  gap: 8px !important;
}

body.edova-admin-portal.admin-no-customer .portal-nav-tenant .portal-nav-empty-state {
  display: block !important;
}

body.edova-admin-portal.admin-no-customer .portal-nav-tenant .portal-nav-support-label {
  display: none !important;
}

body.edova-admin-portal.admin-no-customer .portal-nav-tenant button {
  display: none !important;
}

body.edova-admin-portal.admin-has-customer .portal-nav-tenant .portal-nav-empty-state {
  display: none !important;
}

body.edova-admin-portal[data-active-view="plattform"] .edova-admin-system-spine {
  display: none !important;
}

body.edova-customer-portal[data-active-view="overview"] .customer-workbench-board,
body.edova-customer-portal[data-active-view="overview"] .edova-customer-system-spine,
body.edova-customer-portal[data-active-view="overview"] #customer-operations,
body.edova-customer-portal[data-active-view="overview"] #standorte,
body.edova-customer-portal[data-active-view="overview"] #benutzer,
body.edova-customer-portal[data-active-view="overview"] #sessions {
  display: none !important;
}

body.edova-customer-portal:not([data-active-view="overview"]) .customer-workbench-board,
body.edova-customer-portal:not([data-active-view="overview"]) .edova-customer-system-spine,
body.edova-customer-portal [data-view-panel][hidden],
body.edova-customer-portal [data-view-shell][hidden] {
  display: none !important;
}

body.edova-admin-portal .admin-workspace,
body.edova-technician-portal .technician-workspace,
body.edova-customer-portal > .topbar,
body.edova-customer-portal > .portal-nav,
body.edova-customer-portal > .view-scope-line,
body.edova-customer-portal > .object-context,
body.edova-customer-portal > .layout,
body.edova-customer-portal > .legal-footer {
  max-width: none !important;
}

.edova-portal .topbar {
  background: rgba(255, 255, 255, 0.94) !important;
  border-bottom: 1px solid var(--edova-console-line) !important;
  box-shadow: none !important;
  color: var(--edova-console-ink) !important;
  display: grid !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 14px 18px !important;
}

body.edova-admin-portal .topbar,
body.edova-technician-portal .topbar {
  position: sticky;
  top: 0;
  z-index: 20;
}

body.edova-customer-portal > .topbar {
  grid-template-columns: minmax(0, 1fr) auto !important;
  position: sticky;
  top: 0;
  z-index: 20;
}

.edova-portal .topbar-main,
.edova-portal .topbar > div:first-child {
  align-items: center;
  display: flex !important;
  gap: 16px !important;
  justify-content: space-between !important;
  min-width: 0;
}

.edova-portal .topbar h1 {
  color: var(--edova-console-ink) !important;
  font-size: 20px !important;
  font-weight: 900 !important;
  letter-spacing: 0 !important;
  line-height: 1.15 !important;
}

.edova-portal .topbar .eyebrow,
.edova-portal .portal-nav-label,
.edova-portal .panel-head .eyebrow {
  letter-spacing: 0 !important;
}

.edova-portal .topbar-actions {
  align-items: center !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  justify-content: flex-end !important;
}

.edova-portal .topbar-actions button,
.edova-portal .auth-actions button,
.edova-portal .panel-actions button {
  min-height: 32px !important;
  padding: 6px 10px !important;
}

body.edova-admin-portal .admin-context-bar {
  align-items: start !important;
}

body.edova-admin-portal .topbar .global-customer-alerts {
  align-content: start !important;
  max-height: 96px !important;
  overflow: auto !important;
}

body.edova-customer-portal > .portal-nav {
  background: #ffffff !important;
  border-bottom: 1px solid var(--edova-console-line) !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  margin: 0 !important;
  padding: 8px 18px !important;
  position: sticky;
  top: 69px;
  z-index: 19;
}

body.edova-customer-portal > .portal-nav .portal-nav-label {
  align-self: center;
  color: var(--edova-console-muted) !important;
  padding: 0 8px 0 0 !important;
}

body.edova-customer-portal > .portal-nav button {
  border-radius: 4px !important;
  min-height: 32px !important;
  padding: 6px 10px !important;
}

.edova-portal .view-scope-line,
.edova-portal .object-context {
  margin: 10px 18px 0 !important;
}

body.edova-admin-portal .view-scope-line,
body.edova-admin-portal .object-context,
body.edova-technician-portal .object-context {
  margin-left: 18px !important;
  margin-right: 18px !important;
}

.edova-portal .layout,
body.edova-admin-portal .admin-workbench-board,
body.edova-technician-portal .technician-workbench-board,
body.edova-customer-portal .customer-workbench-board {
  margin: 12px 18px !important;
}

body.edova-admin-portal .layout,
body.edova-technician-portal .layout,
body.edova-customer-portal .layout {
  display: grid !important;
  gap: 12px !important;
  grid-template-columns: minmax(0, 1fr) !important;
}

body.edova-admin-portal .admin-workbench-board,
body.edova-technician-portal .technician-workbench-board {
  background: #ffffff !important;
  border: 1px solid var(--edova-console-line) !important;
  border-radius: var(--edova-console-radius) !important;
  box-shadow: var(--edova-console-shadow) !important;
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: minmax(260px, 1.3fr) repeat(auto-fit, minmax(150px, 1fr)) !important;
  overflow: hidden !important;
  padding: 0 !important;
}

body.edova-admin-portal .workbench-lead,
body.edova-technician-portal .workbench-lead {
  background: #f8fafb !important;
  border-right: 1px solid var(--edova-console-line) !important;
  color: var(--edova-console-ink) !important;
  display: grid !important;
  gap: 4px !important;
  padding: 12px !important;
}

body.edova-admin-portal .workbench-lead h2,
body.edova-technician-portal .workbench-lead h2 {
  font-size: 16px !important;
  line-height: 1.2 !important;
}

body.edova-admin-portal .workbench-lead span,
body.edova-technician-portal .workbench-lead span {
  color: var(--edova-console-muted) !important;
  font-size: 12px !important;
}

body.edova-admin-portal .admin-workbench-board button,
body.edova-technician-portal .technician-workbench-board button {
  background: #ffffff !important;
  border: 0 !important;
  border-left: 1px solid var(--edova-console-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--edova-console-ink) !important;
  display: grid !important;
  gap: 3px !important;
  justify-items: start !important;
  min-height: 78px !important;
  padding: 10px 12px !important;
  text-align: left !important;
}

body.edova-admin-portal .admin-workbench-board button:hover,
body.edova-admin-portal .admin-workbench-board button:focus-visible,
body.edova-admin-portal .admin-workbench-board button.active,
body.edova-technician-portal .technician-workbench-board button:hover,
body.edova-technician-portal .technician-workbench-board button:focus-visible,
body.edova-technician-portal .technician-workbench-board button.active {
  background: #f7fafb !important;
  color: var(--edova-console-orange) !important;
}

body.edova-admin-portal .admin-workbench-board button span,
body.edova-technician-portal .technician-workbench-board button span {
  background: #edf2f5 !important;
  border-radius: 4px !important;
  color: var(--edova-console-blue) !important;
  font-size: 11px !important;
  min-height: 0 !important;
  padding: 2px 6px !important;
}

body.edova-admin-portal .admin-workbench-board button strong,
body.edova-technician-portal .technician-workbench-board button strong {
  color: inherit !important;
  font-size: 14px !important;
  line-height: 1.15 !important;
}

body.edova-admin-portal .admin-workbench-board button small,
body.edova-technician-portal .technician-workbench-board button small {
  color: var(--edova-console-muted) !important;
  font-size: 11px !important;
  line-height: 1.25 !important;
}

.edova-portal .panel,
.edova-portal .flow-panel,
.edova-portal .control-policy-panel,
.edova-portal .update-panel,
.edova-portal .tenant-room-panel,
.edova-portal .service-focus-panel,
.edova-portal .platform-operations-panel,
.edova-portal .customer-operations-panel,
.edova-portal .chart-panel {
  background: var(--edova-console-surface) !important;
  border: 1px solid var(--edova-console-line) !important;
  border-radius: var(--edova-console-radius) !important;
  box-shadow: none !important;
  color: var(--edova-console-ink) !important;
  padding: 12px !important;
}

.edova-portal .panel-head {
  align-items: center !important;
  border-bottom: 1px solid var(--edova-console-line) !important;
  display: flex !important;
  gap: 10px !important;
  justify-content: space-between !important;
  margin: -12px -12px 12px !important;
  padding: 10px 12px !important;
}

.edova-portal .panel-head h2,
.edova-portal .panel h2,
.edova-portal .flow-panel h2,
.edova-portal .control-policy-panel h2 {
  color: var(--edova-console-ink) !important;
  font-size: 15px !important;
  line-height: 1.2 !important;
}

.edova-portal .chart-panel {
  position: relative;
}

.edova-portal .chart-box,
.edova-portal .flow-sankey-chart {
  position: relative;
}

.edova-portal .chart-box.is-empty-chart::after,
.edova-portal .flow-sankey-chart.is-empty-chart::after {
  align-items: center;
  background: #f8fafb;
  border: 1px dashed var(--edova-console-line);
  border-radius: 4px;
  color: var(--edova-console-muted);
  content: attr(data-empty-label);
  display: flex;
  font-size: 12px;
  font-weight: 700;
  inset: 10px;
  justify-content: center;
  line-height: 1.35;
  min-height: 64px;
  padding: 12px;
  pointer-events: none;
  position: absolute;
  text-align: center;
  z-index: 1;
}

.edova-portal .platform-stat-list,
.edova-portal .service-focus-table,
.edova-portal .service-focus-current,
.edova-portal .summary-band,
.edova-portal .energy-grid,
.edova-portal .metric-grid,
.edova-portal .chart-grid,
.edova-portal .portal-grid {
  gap: 8px !important;
}

.edova-portal .platform-stat-row,
.edova-portal .service-focus-row,
.edova-portal .metric,
.edova-portal .summary-band > div,
.edova-portal .flow-kpis span,
.edova-portal .billing-status-panel article,
.edova-portal .operation-card,
.edova-portal .customer-item,
.edova-portal .site-item,
.edova-portal .controller-card,
.edova-portal .tenant-card,
.edova-portal .catalog-card,
.edova-portal .rfid-token-card,
.edova-portal .charge-point-card,
.edova-portal .customer-runtime-card {
  background: #ffffff !important;
  border: 1px solid var(--edova-console-line) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  color: var(--edova-console-ink) !important;
  min-width: 0;
}

.edova-portal .platform-stat-row,
.edova-portal .service-focus-row {
  min-height: 34px !important;
  padding: 7px 10px !important;
}

.edova-portal .platform-stat-row.is-head,
.edova-portal .service-focus-row.is-head {
  background: var(--edova-console-subtle) !important;
  color: var(--edova-console-muted) !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  text-transform: uppercase;
}

.edova-portal table,
.edova-portal .table {
  border-collapse: collapse !important;
  width: 100% !important;
}

.edova-portal th,
.edova-portal td,
.edova-portal .table th,
.edova-portal .table td {
  border-bottom: 1px solid var(--edova-console-line) !important;
  padding: 7px 8px !important;
  text-align: left !important;
  vertical-align: top !important;
}

.edova-portal th,
.edova-portal .table th {
  background: var(--edova-console-subtle) !important;
  color: var(--edova-console-muted) !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  text-transform: uppercase;
}

.edova-portal input,
.edova-portal select,
.edova-portal textarea {
  background: #ffffff !important;
  border: 1px solid var(--edova-console-line-strong) !important;
  border-radius: 4px !important;
  min-height: 34px !important;
}

.edova-portal label {
  color: var(--edova-console-muted) !important;
  font-size: 12px !important;
  font-weight: 800 !important;
}

.edova-portal button {
  border-radius: 4px !important;
}

.edova-portal .status-line,
.edova-portal .session-line,
.edova-portal .detail-empty,
.edova-portal .muted,
.edova-portal small,
.edova-portal span {
  overflow-wrap: anywhere;
}

.edova-portal .legal-footer {
  margin: 18px !important;
}

@media (max-width: 980px) {
  body.edova-admin-portal .admin-shell,
  body.edova-technician-portal .technician-shell {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.edova-admin-portal .admin-sidebar,
  body.edova-technician-portal .technician-rail {
    height: auto;
    position: static !important;
  }

  body.edova-admin-portal .admin-workbench-board,
  body.edova-technician-portal .technician-workbench-board {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.edova-admin-portal .admin-workbench-board button,
  body.edova-technician-portal .technician-workbench-board button,
  body.edova-admin-portal .workbench-lead,
  body.edova-technician-portal .workbench-lead {
    border-left: 0 !important;
    border-right: 0 !important;
    border-top: 1px solid var(--edova-console-line) !important;
  }

  body.edova-customer-portal > .topbar {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.edova-customer-portal > .portal-nav {
    position: static;
  }
}

/* Operations console pass: Admin and Technician are technical work surfaces, not card boards. */
body.edova-admin-portal .admin-workbench-board,
body.edova-technician-portal .technician-workbench-board {
  align-items: stretch !important;
  background: #ffffff !important;
  border: 1px solid var(--edova-console-line) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: minmax(210px, 0.56fr) minmax(300px, 0.72fr) minmax(520px, 1.35fr) !important;
  margin: 10px 18px 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
}

.edova-portal .edova-system-spine {
  background: #ffffff !important;
  border: 1px solid var(--edova-console-line) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: minmax(260px, 0.48fr) minmax(0, 1.52fr) !important;
  margin: 10px 18px 0 !important;
  overflow: hidden !important;
}

.edova-portal .system-spine-head {
  align-content: center !important;
  background: #f8fafb !important;
  border-right: 1px solid var(--edova-console-line) !important;
  display: grid !important;
  gap: 3px !important;
  padding: 10px 12px !important;
}

.edova-portal .system-spine-head h2 {
  color: var(--edova-console-ink) !important;
  font-size: 14px !important;
  line-height: 1.15 !important;
  margin: 0 !important;
}

.edova-portal .system-spine-head span {
  color: var(--edova-console-muted) !important;
  font-size: 11px !important;
  line-height: 1.25 !important;
}

.edova-portal .system-spine-track {
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  min-width: 0 !important;
}

.edova-portal .system-spine-node {
  background: #ffffff !important;
  border-left: 1px solid var(--edova-console-line) !important;
  color: var(--edova-console-ink) !important;
  display: grid !important;
  gap: 2px !important;
  min-height: 56px !important;
  min-width: 0 !important;
  padding: 9px 10px !important;
}

.edova-portal .system-spine-node:first-child {
  border-left: 0 !important;
}

.edova-portal .system-spine-node.is-owner {
  background: #fffaf5 !important;
  box-shadow: inset 3px 0 0 var(--edova-console-orange) !important;
}

.edova-portal .system-spine-node strong {
  color: inherit !important;
  font-size: 12px !important;
  line-height: 1.15 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.edova-portal .system-spine-node small {
  color: var(--edova-console-muted) !important;
  font-size: 10.5px !important;
  line-height: 1.2 !important;
}

.edova-portal .edova-system-map {
  background: #ffffff !important;
  border: 1px solid var(--edova-console-line) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  display: grid !important;
  gap: 0 !important;
  margin: 10px 18px 0 !important;
  min-width: 0 !important;
  overflow: hidden !important;
}

.edova-portal .system-map-head {
  align-items: end !important;
  background: #f8fafb !important;
  border-bottom: 1px solid var(--edova-console-line) !important;
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: minmax(260px, 0.45fr) minmax(0, 1fr) !important;
  padding: 10px 12px !important;
}

.edova-portal .system-map-head .eyebrow {
  grid-column: 1 !important;
}

.edova-portal .system-map-head h2 {
  color: var(--edova-console-ink) !important;
  font-size: 14px !important;
  line-height: 1.15 !important;
  margin: 0 !important;
}

.edova-portal .system-map-head span {
  color: var(--edova-console-muted) !important;
  font-size: 11px !important;
  line-height: 1.25 !important;
}

.edova-portal .system-map-matrix {
  background: var(--edova-console-line) !important;
  display: grid !important;
  gap: 1px !important;
  min-width: 0 !important;
}

.edova-portal .system-map-row {
  display: grid !important;
  gap: 1px !important;
  grid-template-columns: 126px repeat(5, minmax(0, 1fr)) !important;
  min-width: 0 !important;
}

.edova-portal .system-map-row.is-head span,
.edova-portal .system-map-row > strong,
.edova-portal .system-map-cell {
  background: #ffffff !important;
  border: 0 !important;
  color: var(--edova-console-ink) !important;
  line-height: 1.2 !important;
  min-width: 0 !important;
  padding: 7px 8px !important;
}

.edova-portal .system-map-row.is-head span,
.edova-portal .system-map-row > strong {
  background: var(--edova-console-subtle) !important;
  color: var(--edova-console-muted) !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  letter-spacing: 0 !important;
  text-transform: uppercase !important;
}

.edova-portal .system-map-row > strong {
  align-content: center !important;
  display: grid !important;
}

.edova-portal .system-map-cell {
  box-shadow: inset 3px 0 0 transparent !important;
  display: grid !important;
  gap: 2px !important;
  font-size: 11px !important;
  min-height: 52px !important;
}

.edova-portal .system-map-cell b {
  color: var(--edova-console-ink) !important;
  font-size: 12px !important;
  line-height: 1.15 !important;
}

.edova-portal .system-map-cell small {
  color: var(--edova-console-muted) !important;
  font-size: 10.5px !important;
  line-height: 1.22 !important;
}

.edova-portal .system-map-cell.is-pi {
  box-shadow: inset 3px 0 0 var(--edova-console-blue) !important;
}

.edova-portal .system-map-cell.is-admin,
.edova-portal .system-map-cell.is-dev {
  box-shadow: inset 3px 0 0 var(--edova-console-orange) !important;
}

.edova-portal .system-map-cell.is-technician {
  box-shadow: inset 3px 0 0 #287d53 !important;
}

.edova-portal .system-map-cell.is-customer {
  box-shadow: inset 3px 0 0 #5f6f8f !important;
}

.edova-portal .system-map-cell.is-owner {
  background: #fffaf5 !important;
}

.edova-portal .system-map-grid {
  display: grid !important;
  gap: 1px !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  min-width: 0 !important;
}

.edova-portal .system-map-zone {
  background: #ffffff !important;
  border: 1px solid var(--edova-console-line) !important;
  border-left: 4px solid #8ca2ad !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  display: grid !important;
  gap: 4px !important;
  min-height: 106px !important;
  min-width: 0 !important;
  padding: 8px 9px !important;
}

.edova-portal .system-map-zone.is-pi {
  border-left-color: var(--edova-console-blue) !important;
}

.edova-portal .system-map-zone.is-admin,
.edova-portal .system-map-zone.is-dev {
  border-left-color: var(--edova-console-orange) !important;
}

.edova-portal .system-map-zone.is-technician {
  border-left-color: #287d53 !important;
}

.edova-portal .system-map-zone.is-customer {
  border-left-color: #5f6f8f !important;
}

.edova-portal .system-map-zone.is-owner {
  background: #fffaf5 !important;
}

.edova-portal .system-map-zone span {
  align-items: center !important;
  background: #eef3f6 !important;
  border: 1px solid var(--edova-console-line) !important;
  border-radius: 999px !important;
  color: var(--edova-console-ink) !important;
  display: inline-flex !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  height: 24px !important;
  justify-content: center !important;
  line-height: 1 !important;
  width: 24px !important;
}

.edova-portal .system-map-zone strong {
  color: var(--edova-console-ink) !important;
  font-size: 13px !important;
  line-height: 1.16 !important;
}

.edova-portal .system-map-zone small,
.edova-portal .system-map-zone em {
  color: var(--edova-console-muted) !important;
  font-size: 11px !important;
  font-style: normal !important;
  line-height: 1.22 !important;
  overflow-wrap: anywhere !important;
}

.edova-portal .system-map-chain,
.edova-portal .system-map-rules {
  display: grid !important;
  gap: 1px !important;
  min-width: 0 !important;
}

.edova-portal .system-map-chain {
  background: #eef3f6 !important;
  border-top: 1px solid var(--edova-console-line) !important;
  grid-template-columns: 132px repeat(6, minmax(0, 1fr)) !important;
}

.edova-portal .system-map-chain strong,
.edova-portal .system-map-chain span,
.edova-portal .system-map-rules span {
  background: #ffffff !important;
  border: 1px solid var(--edova-console-line) !important;
  color: var(--edova-console-muted) !important;
  font-size: 11px !important;
  font-weight: 850 !important;
  line-height: 1.24 !important;
  min-width: 0 !important;
  padding: 7px 8px !important;
}

.edova-portal .system-map-chain strong,
.edova-portal .system-map-rules strong {
  color: var(--edova-console-ink) !important;
}

.edova-portal .system-map-rules {
  border-top: 1px solid var(--edova-console-line) !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

body.edova-admin-portal .admin-workbench-board .workbench-lead,
body.edova-technician-portal .technician-workbench-board .workbench-lead,
body.edova-customer-portal .customer-workbench-board .workbench-lead {
  align-content: center !important;
  background: #f8fafb !important;
  border: 0 !important;
  border-right: 1px solid var(--edova-console-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  display: grid !important;
  gap: 2px !important;
  min-width: 0 !important;
  padding: 10px 12px !important;
}

body.edova-admin-portal .admin-workbench-board .workbench-lead h2,
body.edova-technician-portal .technician-workbench-board .workbench-lead h2,
body.edova-customer-portal .customer-workbench-board .workbench-lead h2 {
  color: var(--edova-console-ink) !important;
  font-size: 14px !important;
  line-height: 1.15 !important;
}

body.edova-admin-portal .admin-workbench-board .workbench-lead span,
body.edova-technician-portal .technician-workbench-board .workbench-lead span,
body.edova-customer-portal .customer-workbench-board .workbench-lead span {
  color: var(--edova-console-muted) !important;
  display: block !important;
  font-size: 11px !important;
  line-height: 1.25 !important;
}

.edova-portal .operations-process {
  align-content: stretch !important;
  background: #fbfcfd !important;
  border-right: 1px solid var(--edova-console-line) !important;
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: minmax(0, 1fr) !important;
  min-width: 0 !important;
}

.edova-portal .operations-process span {
  align-items: center !important;
  border-bottom: 1px solid var(--edova-console-line) !important;
  color: var(--edova-console-muted) !important;
  display: grid !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  gap: 8px !important;
  grid-template-columns: 28px minmax(0, 1fr) !important;
  line-height: 1.15 !important;
  min-height: 28px !important;
  padding: 5px 10px !important;
}

.edova-portal .operations-process span:last-child {
  border-bottom: 0 !important;
}

.edova-portal .operations-process strong {
  align-items: center !important;
  background: #eef3f6 !important;
  border-radius: 3px !important;
  color: var(--edova-console-blue) !important;
  display: inline-flex !important;
  font-size: 11px !important;
  justify-content: center !important;
  min-height: 20px !important;
  min-width: 24px !important;
}

.edova-portal .operations-actions {
  align-content: stretch !important;
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  min-width: 0 !important;
}

body.edova-admin-portal .admin-workbench-board .operations-actions button,
body.edova-technician-portal .technician-workbench-board .operations-actions button,
body.edova-customer-portal .customer-workbench-board .operations-actions button {
  align-items: center !important;
  background: #ffffff !important;
  border: 0 !important;
  border-bottom: 1px solid var(--edova-console-line) !important;
  border-left: 1px solid var(--edova-console-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--edova-console-ink) !important;
  display: grid !important;
  gap: 0 7px !important;
  grid-template-columns: 26px minmax(0, 1fr) !important;
  justify-items: stretch !important;
  min-height: 38px !important;
  padding: 5px 9px !important;
  text-align: left !important;
}

body.edova-admin-portal .admin-workbench-board .operations-actions button span,
body.edova-technician-portal .technician-workbench-board .operations-actions button span,
body.edova-customer-portal .customer-workbench-board .operations-actions button span {
  background: transparent !important;
  color: var(--edova-console-muted) !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  grid-row: 1 / 3 !important;
  min-height: 0 !important;
  padding: 0 !important;
}

body.edova-admin-portal .admin-workbench-board .operations-actions button strong,
body.edova-technician-portal .technician-workbench-board .operations-actions button strong,
body.edova-customer-portal .customer-workbench-board .operations-actions button strong {
  color: inherit !important;
  font-size: 12px !important;
  line-height: 1.15 !important;
}

body.edova-admin-portal .admin-workbench-board .operations-actions button small,
body.edova-technician-portal .technician-workbench-board .operations-actions button small,
body.edova-customer-portal .customer-workbench-board .operations-actions button small {
  color: var(--edova-console-muted) !important;
  display: block !important;
  font-size: 10.5px !important;
  line-height: 1.15 !important;
  white-space: nowrap !important;
}

body.edova-admin-portal .admin-workbench-board .operations-actions button:hover,
body.edova-admin-portal .admin-workbench-board .operations-actions button:focus-visible,
body.edova-admin-portal .admin-workbench-board .operations-actions button.active,
body.edova-technician-portal .technician-workbench-board .operations-actions button:hover,
body.edova-technician-portal .technician-workbench-board .operations-actions button:focus-visible,
body.edova-technician-portal .technician-workbench-board .operations-actions button.active,
body.edova-customer-portal .customer-workbench-board .operations-actions button:hover,
body.edova-customer-portal .customer-workbench-board .operations-actions button:focus-visible,
body.edova-customer-portal .customer-workbench-board .operations-actions button.active {
  background: #f2f6f8 !important;
  color: var(--edova-console-orange) !important;
  outline: none !important;
}

.edova-portal .object-context {
  background: #ffffff !important;
  border: 1px solid var(--edova-console-line) !important;
  border-radius: 4px !important;
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  margin: 10px 18px 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
}

.edova-portal .context-step {
  background: #ffffff !important;
  border: 0 !important;
  border-left: 1px solid var(--edova-console-line) !important;
  border-radius: 0 !important;
  display: grid !important;
  gap: 2px !important;
  min-height: 48px !important;
  padding: 7px 10px !important;
}

.edova-portal .context-step:first-child {
  border-left: 0 !important;
}

.edova-portal .context-step.is-missing {
  background: #fffaf5 !important;
  box-shadow: inset 3px 0 0 var(--edova-console-orange) !important;
  opacity: 1 !important;
}

.edova-portal .context-step span,
.edova-portal .context-step small {
  color: var(--edova-console-muted) !important;
  font-size: 10.5px !important;
  line-height: 1.2 !important;
}

.edova-portal .context-step strong {
  color: var(--edova-console-ink) !important;
  font-size: 12px !important;
  line-height: 1.15 !important;
}

body.edova-admin-portal .platform-operations-panel,
body.edova-technician-portal .service-focus-panel,
body.edova-customer-portal .customer-operations-panel {
  border-radius: 4px !important;
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: minmax(220px, 0.48fr) minmax(0, 1.52fr) !important;
  padding: 10px !important;
}

body.edova-admin-portal .platform-stat-list,
body.edova-admin-portal .platform-issue-list,
body.edova-admin-portal .platform-approval-table,
body.edova-technician-portal .service-focus-table,
body.edova-technician-portal .service-focus-queue,
body.edova-technician-portal .technician-registration-list,
body.edova-customer-portal .operations-grid {
  display: grid !important;
  gap: 1px !important;
}

body.edova-admin-portal .platform-approval-queue,
body.edova-admin-portal .platform-issue-list,
body.edova-admin-portal .platform-action-row,
body.edova-technician-portal .technician-registration-lane,
body.edova-technician-portal .service-focus-queue,
body.edova-customer-portal .operations-action {
  grid-column: 1 / -1 !important;
}

body.edova-admin-portal .platform-approval-row,
body.edova-technician-portal .service-queue-row,
body.edova-technician-portal .technician-registration-row,
body.edova-customer-portal .operations-grid article,
body.edova-customer-portal .operations-action {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid var(--edova-console-line) !important;
  border-radius: 0 !important;
  display: grid !important;
  gap: 8px !important;
  min-height: 30px !important;
  padding: 4px 8px !important;
}

body.edova-admin-portal .platform-approval-row {
  grid-template-columns: 120px minmax(160px, 0.8fr) minmax(180px, 0.95fr) minmax(260px, 1.2fr) 96px !important;
}

body.edova-admin-portal .admin-platform-console {
  background: #ffffff !important;
  border: 1px solid var(--edova-console-line) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: minmax(0, 1fr) !important;
  overflow: hidden !important;
  padding: 0 !important;
}

body.edova-admin-portal .platform-console-head {
  background: #f8fafb !important;
  border-bottom: 1px solid var(--edova-console-line) !important;
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: minmax(260px, 0.45fr) minmax(0, 1.55fr) !important;
  min-width: 0 !important;
}

body.edova-admin-portal .platform-console-head .platform-operations-copy {
  align-content: center !important;
  border-right: 1px solid var(--edova-console-line) !important;
  display: grid !important;
  gap: 4px !important;
  padding: 12px !important;
}

body.edova-admin-portal .platform-console-head .platform-stat-list {
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

body.edova-admin-portal .platform-console-head .platform-stat-row {
  border: 0 !important;
  border-left: 1px solid var(--edova-console-line) !important;
  min-height: 74px !important;
  padding: 10px !important;
}

body.edova-admin-portal .platform-console-head .platform-stat-row:first-child {
  border-left: 0 !important;
}

body.edova-admin-portal .platform-console-body {
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: minmax(560px, 1.35fr) minmax(320px, 0.72fr) !important;
  min-width: 0 !important;
}

body.edova-admin-portal .platform-console-body .platform-approval-queue {
  border: 0 !important;
  border-radius: 0 !important;
  border-right: 1px solid var(--edova-console-line) !important;
  box-shadow: none !important;
  display: grid !important;
  gap: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.edova-admin-portal .platform-console-body .platform-approval-head {
  border-bottom: 1px solid var(--edova-console-line) !important;
  padding: 10px 12px !important;
}

body.edova-admin-portal .platform-console-body .platform-approval-table {
  display: grid !important;
  gap: 0 !important;
}

body.edova-admin-portal .platform-console-body .platform-approval-row {
  border: 0 !important;
  border-bottom: 1px solid var(--edova-console-line) !important;
  grid-template-columns: 120px minmax(150px, 0.72fr) minmax(190px, 0.9fr) minmax(240px, 1.14fr) 98px !important;
  min-height: 34px !important;
}

body.edova-admin-portal .platform-console-side {
  display: grid !important;
  gap: 0 !important;
  grid-template-rows: minmax(0, 1fr) auto !important;
  min-width: 0 !important;
}

body.edova-admin-portal .platform-console-side .platform-issue-list {
  display: grid !important;
  gap: 0 !important;
}

body.edova-admin-portal .platform-console-side .platform-issue-row {
  border: 0 !important;
  border-bottom: 1px solid var(--edova-console-line) !important;
  border-radius: 0 !important;
  grid-template-columns: 98px minmax(0, 1fr) !important;
  min-height: 44px !important;
}

body.edova-admin-portal .platform-console-side .platform-issue-row small {
  grid-column: 2 !important;
}

body.edova-admin-portal .platform-console-side .platform-action-row {
  align-content: stretch !important;
  border-top: 1px solid var(--edova-console-line) !important;
  display: grid !important;
  gap: 0 !important;
  grid-column: auto !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body.edova-admin-portal .platform-console-side .platform-action-row button {
  border: 0 !important;
  border-left: 1px solid var(--edova-console-line) !important;
  border-radius: 0 !important;
  min-height: 38px !important;
}

body.edova-admin-portal .platform-console-side .platform-action-row button:nth-child(odd) {
  border-left: 0 !important;
}

body.edova-technician-portal .technician-commissioning-console {
  background: #ffffff !important;
  border: 1px solid var(--edova-console-line) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: minmax(0, 1fr) !important;
  overflow: hidden !important;
  padding: 0 !important;
}

body.edova-technician-portal .technician-console-head {
  background: #f8fafb !important;
  border-bottom: 1px solid var(--edova-console-line) !important;
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: minmax(260px, 0.45fr) minmax(0, 1.55fr) !important;
  min-width: 0 !important;
}

body.edova-technician-portal .technician-console-head .service-focus-copy {
  align-content: center !important;
  border: 0 !important;
  border-right: 1px solid var(--edova-console-line) !important;
  border-radius: 0 !important;
  display: grid !important;
  gap: 4px !important;
  padding: 12px !important;
}

body.edova-technician-portal .technician-console-stats {
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  min-width: 0 !important;
}

body.edova-technician-portal .technician-console-stat {
  align-content: center !important;
  background: #ffffff !important;
  border-left: 1px solid var(--edova-console-line) !important;
  display: grid !important;
  gap: 2px !important;
  min-height: 74px !important;
  min-width: 0 !important;
  padding: 10px !important;
}

body.edova-technician-portal .technician-console-stat:first-child {
  border-left: 0 !important;
}

body.edova-technician-portal .technician-console-stat.is-warning {
  box-shadow: inset 3px 0 0 #d97706 !important;
}

body.edova-technician-portal .technician-console-stat.is-critical {
  box-shadow: inset 3px 0 0 #b91c1c !important;
}

body.edova-technician-portal .technician-console-stat.is-good {
  box-shadow: inset 3px 0 0 #0f766e !important;
}

body.edova-technician-portal .technician-console-stat span,
body.edova-technician-portal .technician-console-stat small {
  color: var(--edova-console-muted) !important;
  font-size: 10.5px !important;
  line-height: 1.2 !important;
}

body.edova-technician-portal .technician-console-stat strong {
  color: var(--edova-console-ink) !important;
  font-size: 20px !important;
  line-height: 1 !important;
}

body.edova-technician-portal .technician-console-body {
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: minmax(0, 1.34fr) minmax(280px, 0.72fr) !important;
  min-width: 0 !important;
}

body.edova-technician-portal .technician-console-main {
  border-right: 1px solid var(--edova-console-line) !important;
  display: grid !important;
  gap: 0 !important;
  min-width: 0 !important;
}

body.edova-technician-portal .technician-console-side {
  display: grid !important;
  gap: 0 !important;
  grid-template-rows: minmax(0, auto) auto !important;
  min-width: 0 !important;
}

body.edova-technician-portal .technician-console-main .technician-mission-board,
body.edova-technician-portal .technician-console-main .technician-registration-lane,
body.edova-technician-portal .technician-console-main .service-focus-queue {
  border: 0 !important;
  border-bottom: 1px solid var(--edova-console-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.edova-technician-portal .technician-console-main .technician-mission-board,
body.edova-technician-portal .technician-console-main .technician-mission-head,
body.edova-technician-portal .technician-console-main .technician-mission-head > div {
  min-width: 0 !important;
}

body.edova-technician-portal .technician-console-main .technician-mission-head,
body.edova-technician-portal .technician-console-main .technician-registration-head,
body.edova-technician-portal .technician-console-main .service-focus-queue > div:first-child {
  border-bottom: 1px solid var(--edova-console-line) !important;
  padding: 10px 12px !important;
}

body.edova-technician-portal .technician-console-main .technician-mission-head {
  grid-template-columns: minmax(0, 1fr) !important;
}

body.edova-technician-portal .technician-console-main .technician-mission-head h3,
body.edova-technician-portal .technician-console-main .technician-mission-head small {
  overflow-wrap: anywhere !important;
  white-space: normal !important;
}

body.edova-technician-portal .technician-console-main .technician-mission-grid {
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}

body.edova-technician-portal .technician-console-main .technician-mission-grid article {
  border: 0 !important;
  border-left: 1px solid var(--edova-console-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  min-height: 118px !important;
  padding: 9px !important;
}

body.edova-technician-portal .technician-console-main .technician-mission-grid article:first-child {
  border-left: 0 !important;
}

body.edova-technician-portal .technician-console-main .technician-registration-path {
  border: 0 !important;
  border-bottom: 1px solid var(--edova-console-line) !important;
  border-radius: 0 !important;
}

body.edova-technician-portal .technician-console-main .service-queue-row,
body.edova-technician-portal .technician-console-main .technician-registration-row {
  border: 0 !important;
  border-bottom: 1px solid var(--edova-console-line) !important;
  grid-template-columns: 112px minmax(0, 0.75fr) minmax(0, 1.05fr) minmax(0, 0.82fr) minmax(130px, 0.76fr) !important;
  min-height: 36px !important;
}

body.edova-technician-portal .technician-console-side .service-focus-table,
body.edova-technician-portal .technician-console-side .service-focus-current {
  border: 0 !important;
  border-bottom: 1px solid var(--edova-console-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  display: grid !important;
  gap: 0 !important;
  margin: 0 !important;
  min-width: 0 !important;
  padding: 0 !important;
}

body.edova-technician-portal .technician-console-side .service-focus-current {
  align-content: start !important;
  gap: 4px !important;
  padding: 10px 12px !important;
}

body.edova-technician-portal .technician-console-side .service-focus-row {
  border: 0 !important;
  border-bottom: 1px solid var(--edova-console-line) !important;
  grid-template-columns: 96px minmax(0, 1fr) !important;
  min-height: 34px !important;
}

body.edova-technician-portal .technician-console-side .service-focus-row small {
  grid-column: 2 !important;
  overflow-wrap: anywhere !important;
  white-space: normal !important;
}

body.edova-technician-portal .technician-console-main .service-queue-row small,
body.edova-technician-portal .technician-console-main .service-queue-row em,
body.edova-technician-portal .technician-console-main .technician-registration-row small {
  overflow-wrap: anywhere !important;
  white-space: normal !important;
}

body.edova-customer-portal .customer-workbench-board {
  grid-template-columns: minmax(220px, 0.5fr) minmax(300px, 0.7fr) minmax(560px, 1.38fr) !important;
}

body.edova-customer-portal .portal-nav {
  border-radius: 4px !important;
  margin: 8px 18px 0 !important;
  position: static !important;
}

body.edova-customer-portal .customer-operations-panel {
  grid-template-columns: minmax(220px, 0.55fr) minmax(0, 1.45fr) !important;
}

body.edova-customer-portal .operations-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

body.edova-customer-portal .operations-grid article {
  align-content: center !important;
  min-height: 54px !important;
}

body.edova-customer-portal .operations-action {
  align-content: center !important;
  background: #fbfcfd !important;
}

body.edova-customer-portal .customer-selfservice-console {
  background: #ffffff !important;
  border: 1px solid var(--edova-console-line) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  display: grid !important;
  gap: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
}

body.edova-customer-portal .customer-selfservice-head {
  background: #f8fafb !important;
  border-bottom: 1px solid var(--edova-console-line) !important;
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: minmax(300px, 1fr) minmax(220px, 0.42fr) !important;
  min-width: 0 !important;
}

body.edova-customer-portal .customer-selfservice-head > div {
  display: grid !important;
  gap: 4px !important;
  min-width: 0 !important;
  padding: 12px !important;
}

body.edova-customer-portal .customer-selfservice-head > div + div {
  align-content: center !important;
  background: #ffffff !important;
  border-left: 1px solid var(--edova-console-line) !important;
}

body.edova-customer-portal .customer-selfservice-head h2 {
  color: var(--edova-console-ink) !important;
  font-size: 16px !important;
  line-height: 1.15 !important;
  margin: 0 !important;
}

body.edova-customer-portal .customer-selfservice-head span,
body.edova-customer-portal .customer-selfservice-head small {
  color: var(--edova-console-muted) !important;
  font-size: 11px !important;
  line-height: 1.25 !important;
}

body.edova-customer-portal .customer-selfservice-head strong {
  color: var(--edova-console-ink) !important;
  font-size: 17px !important;
  line-height: 1.15 !important;
  overflow-wrap: anywhere !important;
}

body.edova-customer-portal .customer-selfservice-summary {
  border-bottom: 1px solid var(--edova-console-line) !important;
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  margin: 0 !important;
  min-width: 0 !important;
}

body.edova-customer-portal .customer-selfservice-summary:empty {
  display: none !important;
}

body.edova-customer-portal .customer-selfservice-summary article,
body.edova-customer-portal .customer-selfservice-summary .customer-runtime-card,
body.edova-customer-portal .customer-selfservice-summary .runtime-status-summary {
  background: #ffffff !important;
  border: 0 !important;
  border-left: 1px solid var(--edova-console-line) !important;
  border-radius: 0 !important;
  margin: 0 !important;
  min-height: 58px !important;
  padding: 9px 10px !important;
}

body.edova-customer-portal .customer-selfservice-summary article:first-child {
  border-left: 0 !important;
}

body.edova-customer-portal .customer-selfservice-form {
  display: grid !important;
  gap: 0 !important;
  margin: 0 !important;
  min-width: 0 !important;
}

body.edova-customer-portal .customer-selfservice-body {
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: minmax(0, 1.3fr) minmax(320px, 0.78fr) !important;
  min-width: 0 !important;
}

body.edova-customer-portal .customer-selfservice-main,
body.edova-customer-portal .customer-selfservice-side {
  display: grid !important;
  gap: 0 !important;
  min-width: 0 !important;
}

body.edova-customer-portal .customer-selfservice-main {
  border-right: 1px solid var(--edova-console-line) !important;
}

body.edova-customer-portal .customer-selfservice-console .tool-form {
  border: 0 !important;
  border-bottom: 1px solid var(--edova-console-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  margin: 0 !important;
  min-width: 0 !important;
  padding: 12px !important;
}

body.edova-customer-portal .customer-selfservice-console .tool-form h3,
body.edova-customer-portal .customer-selfservice-console .tool-form h4,
body.edova-customer-portal .customer-selfservice-console .tool-form summary {
  color: var(--edova-console-ink) !important;
  font-size: 13px !important;
  line-height: 1.2 !important;
  margin: 0 0 10px !important;
}

body.edova-customer-portal .customer-selfservice-console .form-grid {
  display: grid !important;
  gap: 1px !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

body.edova-customer-portal .customer-selfservice-side .form-grid,
body.edova-customer-portal .customer-device-console .form-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body.edova-customer-portal .customer-selfservice-console label,
body.edova-customer-portal .customer-selfservice-console .schedule-day-field {
  background: #ffffff !important;
  border: 1px solid var(--edova-console-line) !important;
  border-radius: 0 !important;
  color: var(--edova-console-muted) !important;
  display: grid !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  gap: 4px !important;
  min-height: 58px !important;
  min-width: 0 !important;
  padding: 7px 8px !important;
}

body.edova-customer-portal .customer-selfservice-console input,
body.edova-customer-portal .customer-selfservice-console select {
  min-height: 32px !important;
}

body.edova-customer-portal .customer-selfservice-console .checkbox-list {
  gap: 4px !important;
}

body.edova-customer-portal .customer-selfservice-console .checkbox-pill {
  border-radius: 3px !important;
  min-height: 26px !important;
  padding: 3px 6px !important;
}

body.edova-customer-portal .customer-mode-notes {
  display: grid !important;
  gap: 1px !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  margin-top: 1px !important;
}

body.edova-customer-portal .customer-mode-notes article {
  border: 1px solid var(--edova-console-line) !important;
  border-left: 3px solid var(--edova-console-orange) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  min-width: 0 !important;
  padding: 8px !important;
}

body.edova-customer-portal .customer-runtime-devices {
  align-content: start !important;
}

body.edova-customer-portal .customer-runtime-devices .runtime-device-editor,
body.edova-customer-portal .customer-device-console .runtime-catalog-summary {
  display: grid !important;
  gap: 1px !important;
}

body.edova-customer-portal .customer-runtime-devices .runtime-device-row {
  border: 1px solid var(--edova-console-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 8px !important;
}

body.edova-customer-portal .customer-runtime-devices .runtime-device-fields {
  gap: 1px !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body.edova-customer-portal .customer-selfservice-actions {
  background: #f8fafb !important;
  border-top: 1px solid var(--edova-console-line) !important;
  display: flex !important;
  justify-content: flex-end !important;
  margin: 0 !important;
  padding: 10px 12px !important;
}

body.edova-customer-portal .customer-account-workbench {
  align-items: start !important;
  display: grid !important;
  gap: 12px !important;
  grid-template-columns: minmax(0, 1.05fr) minmax(430px, 0.86fr) !important;
}

body.edova-customer-portal .customer-identity-workspace,
body.edova-customer-portal .customer-session-workspace {
  background: #ffffff !important;
  border: 1px solid var(--edova-console-line) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  overflow: hidden !important;
  padding: 0 !important;
}

body.edova-customer-portal .customer-workspace-head {
  align-items: stretch !important;
  background: #f8fafb !important;
  border-bottom: 1px solid var(--edova-console-line) !important;
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  margin: 0 !important;
  min-height: 58px !important;
}

body.edova-customer-portal .customer-workspace-head > div:first-child {
  align-content: center !important;
  display: grid !important;
  gap: 2px !important;
  min-width: 0 !important;
  padding: 10px 12px !important;
}

body.edova-customer-portal .customer-workspace-head h2 {
  font-size: 15px !important;
  line-height: 1.16 !important;
  margin: 0 !important;
}

body.edova-customer-portal .workspace-count {
  align-items: center !important;
  background: #ffffff !important;
  border-left: 1px solid var(--edova-console-line) !important;
  color: var(--edova-console-ink) !important;
  display: inline-flex !important;
  font-size: 20px !important;
  font-weight: 850 !important;
  justify-content: center !important;
  min-width: 74px !important;
  padding: 0 12px !important;
}

body.edova-customer-portal .customer-identity-layout,
body.edova-customer-portal .customer-session-layout {
  display: grid !important;
  gap: 0 !important;
  min-width: 0 !important;
}

body.edova-customer-portal .customer-identity-layout {
  grid-template-columns: minmax(300px, 0.46fr) minmax(0, 1fr) !important;
}

body.edova-customer-portal .customer-session-layout {
  grid-template-columns: minmax(410px, 0.96fr) minmax(320px, 0.74fr) !important;
}

body.edova-customer-portal .customer-form-rail,
body.edova-customer-portal .customer-session-list-rail {
  background: #fbfcfd !important;
  border-right: 1px solid var(--edova-console-line) !important;
  display: grid !important;
  gap: 0 !important;
  min-width: 0 !important;
}

body.edova-customer-portal .customer-list-rail,
body.edova-customer-portal .customer-session-detail {
  min-width: 0 !important;
}

body.edova-customer-portal .customer-tool-form {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--edova-console-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  margin: 0 !important;
  padding: 10px 12px !important;
}

body.edova-customer-portal .customer-tool-form h3 {
  color: var(--edova-console-ink) !important;
  font-size: 13px !important;
  line-height: 1.2 !important;
  margin: 0 !important;
}

body.edova-customer-portal .customer-form-rail .form-grid,
body.edova-customer-portal .customer-session-filters {
  display: grid !important;
  gap: 1px !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body.edova-customer-portal .customer-form-rail label,
body.edova-customer-portal .customer-charge-point-picker,
body.edova-customer-portal .customer-session-filters .compact-field {
  background: #ffffff !important;
  border: 1px solid var(--edova-console-line) !important;
  border-radius: 0 !important;
  color: var(--edova-console-muted) !important;
  display: grid !important;
  font-size: 11px !important;
  font-weight: 850 !important;
  gap: 4px !important;
  min-height: 54px !important;
  min-width: 0 !important;
  padding: 7px 8px !important;
}

body.edova-customer-portal .customer-form-rail input,
body.edova-customer-portal .customer-form-rail select,
body.edova-customer-portal .customer-session-filters input,
body.edova-customer-portal .customer-session-filters select {
  min-height: 31px !important;
}

body.edova-customer-portal .customer-list-toolbar {
  background: #f8fafb !important;
  border-bottom: 1px solid var(--edova-console-line) !important;
  padding: 10px 12px !important;
}

body.edova-customer-portal .customer-list-toolbar .compact-field {
  margin: 0 !important;
}

body.edova-customer-portal .customer-user-list,
body.edova-customer-portal .customer-session-list {
  display: grid !important;
  gap: 0 !important;
}

body.edova-customer-portal .customer-user-row,
body.edova-customer-portal .customer-session-row {
  background: #ffffff !important;
  border: 0 !important;
  border-bottom: 1px solid var(--edova-console-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  margin: 0 !important;
  min-width: 0 !important;
  padding: 10px 12px !important;
}

body.edova-customer-portal .customer-user-row.is-inactive {
  opacity: 0.72 !important;
}

body.edova-customer-portal .customer-user-row .user-item-head {
  align-items: start !important;
  display: grid !important;
  gap: 10px !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
}

body.edova-customer-portal .customer-user-main {
  display: grid !important;
  gap: 4px !important;
  min-width: 0 !important;
}

body.edova-customer-portal .customer-user-main > span,
body.edova-customer-portal .customer-session-main span,
body.edova-customer-portal .customer-session-meta span,
body.edova-customer-portal .customer-session-meta small {
  color: var(--edova-console-muted) !important;
  font-size: 12px !important;
  line-height: 1.28 !important;
  overflow-wrap: anywhere !important;
}

body.edova-customer-portal .customer-user-kpis {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 5px !important;
}

body.edova-customer-portal .customer-user-kpis span,
body.edova-customer-portal .customer-status-pill {
  background: #eef3f6 !important;
  border: 1px solid var(--edova-console-line) !important;
  border-radius: 999px !important;
  color: var(--edova-console-muted) !important;
  display: inline-flex !important;
  font-size: 11px !important;
  font-weight: 850 !important;
  line-height: 1 !important;
  padding: 5px 7px !important;
}

body.edova-customer-portal .customer-status-pill.is-good {
  background: #e6f5ef !important;
  border-color: #b7dccb !important;
  color: #136b4a !important;
}

body.edova-customer-portal .customer-status-pill.is-muted {
  background: #f1f3f4 !important;
  color: #60717d !important;
}

body.edova-customer-portal .customer-user-row .inline-actions,
body.edova-customer-portal .rfid-token-actions {
  align-items: flex-start !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  justify-content: flex-end !important;
}

body.edova-customer-portal .customer-user-row .secondary-button,
body.edova-customer-portal .rfid-token-actions .secondary-button {
  min-height: 30px !important;
  padding: 0 9px !important;
}

body.edova-customer-portal .customer-user-row .rfid-sync-overview,
body.edova-customer-portal .customer-user-row .rfid-token-card,
body.edova-customer-portal .customer-user-row .user-session-item {
  border-radius: 4px !important;
}

body.edova-customer-portal .customer-user-row details {
  border-top: 1px solid var(--edova-console-line) !important;
  margin-top: 9px !important;
  padding-top: 8px !important;
}

body.edova-customer-portal .customer-export-actions {
  align-items: center !important;
  background: #ffffff !important;
  border-left: 1px solid var(--edova-console-line) !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  justify-content: flex-end !important;
  min-width: 0 !important;
  padding: 10px 12px !important;
}

body.edova-customer-portal .customer-export-actions .compact-month {
  max-width: 144px !important;
  min-height: 32px !important;
}

body.edova-customer-portal .customer-session-filters {
  background: #f8fafb !important;
  border-bottom: 1px solid var(--edova-console-line) !important;
  margin: 0 !important;
  padding: 10px 12px !important;
}

body.edova-customer-portal .customer-session-row {
  cursor: pointer !important;
  grid-template-columns: minmax(0, 1fr) minmax(150px, auto) !important;
}

body.edova-customer-portal .customer-session-row.active {
  background: #eef8f6 !important;
  border-color: var(--edova-console-line) !important;
  box-shadow: inset 4px 0 0 var(--edova-console-orange) !important;
}

body.edova-customer-portal .customer-session-meta {
  display: grid !important;
  gap: 2px !important;
  justify-items: end !important;
  text-align: right !important;
}

body.edova-customer-portal .customer-session-detail {
  align-content: start !important;
  background: #ffffff !important;
  border: 0 !important;
  margin: 0 !important;
  padding: 12px !important;
}

body.edova-customer-portal .customer-session-detail .panel-head {
  border-bottom: 1px solid var(--edova-console-line) !important;
  margin: -12px -12px 12px !important;
  padding: 10px 12px !important;
}

body.edova-customer-portal .customer-session-detail .detail-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body.edova-customer-portal .customer-session-detail .detail-grid article {
  border-radius: 4px !important;
  box-shadow: none !important;
}

body.edova-customer-portal .portal-view-layout.view-focused .customer-account-workbench {
  grid-template-columns: minmax(0, 1fr) !important;
}

body.edova-customer-portal .portal-view-layout.view-focused .customer-identity-layout,
body.edova-customer-portal .portal-view-layout.view-focused .customer-session-layout {
  grid-template-columns: minmax(320px, 0.4fr) minmax(0, 1fr) !important;
}

@media (max-width: 1180px) {
  .edova-portal .edova-system-map,
  .edova-portal .system-map-head,
  .edova-portal .system-map-row,
  .edova-portal .system-map-grid,
  .edova-portal .system-map-chain,
  .edova-portal .system-map-rules {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.edova-customer-portal .customer-account-workbench,
  body.edova-customer-portal .customer-identity-layout,
  body.edova-customer-portal .customer-session-layout,
  body.edova-customer-portal .portal-view-layout.view-focused .customer-identity-layout,
  body.edova-customer-portal .portal-view-layout.view-focused .customer-session-layout {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.edova-customer-portal .customer-form-rail,
  body.edova-customer-portal .customer-session-list-rail {
    border-right: 0 !important;
    border-bottom: 1px solid var(--edova-console-line) !important;
  }
}

body.edova-technician-portal .service-queue-row,
body.edova-technician-portal .technician-registration-row {
  grid-template-columns: 132px minmax(160px, 0.82fr) minmax(260px, 1.2fr) minmax(180px, 0.9fr) minmax(170px, 0.82fr) !important;
}

body.edova-admin-portal .platform-approval-row.is-head,
body.edova-technician-portal .service-focus-row.is-head {
  background: var(--edova-console-subtle) !important;
  min-height: 26px !important;
}

body.edova-technician-portal .technician-registration-path {
  border: 1px solid var(--edova-console-line) !important;
  border-radius: 4px !important;
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  overflow: hidden !important;
}

body.edova-technician-portal .technician-registration-path button {
  background: #ffffff !important;
  border: 0 !important;
  border-left: 1px solid var(--edova-console-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  display: grid !important;
  gap: 2px !important;
  min-height: 42px !important;
  padding: 6px 9px !important;
  text-align: left !important;
}

body.edova-technician-portal .technician-registration-path button:first-child {
  border-left: 0 !important;
}

body.edova-technician-portal .technician-registration-path button.is-done {
  background: #f5faf7 !important;
}

body.edova-technician-portal .technician-registration-path button.is-open {
  background: #fffaf5 !important;
}

.edova-portal .onboarding-role-boundary,
.edova-portal .onboarding-rail,
.edova-portal .commissioning-summary-grid,
.edova-portal .admin-controller-review-grid {
  gap: 1px !important;
}

.edova-portal .onboarding-role-boundary article,
.edova-portal .onboarding-step,
.edova-portal .commissioning-summary-grid article,
.edova-portal .admin-controller-review-grid article {
  background: #ffffff !important;
  border: 1px solid var(--edova-console-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  min-height: 0 !important;
  padding: 8px 9px !important;
}

.edova-portal .onboarding-card,
.edova-portal .commissioning-summary,
.edova-portal .controller-assignment-panel,
.edova-portal .control-policy-panel {
  border-radius: 4px !important;
  box-shadow: none !important;
}

body.edova-admin-portal:not([data-active-view="plattform"]) .admin-workbench-board,
body.edova-admin-portal:not([data-active-view="plattform"]) .edova-admin-system-spine,
body.edova-admin-portal:not([data-active-view="plattform"]) .edova-admin-architecture-map,
body.edova-admin-portal:not([data-active-view="plattform"]) #platform-operations,
body.edova-technician-portal[data-active-view="overview"] .edova-technician-system-spine,
body.edova-technician-portal:not([data-active-view="overview"]) .technician-workbench-board,
body.edova-technician-portal:not([data-active-view="overview"]) .edova-technician-system-spine,
body.edova-technician-portal:not([data-active-view="overview"]) .edova-technician-architecture-map,
body.edova-technician-portal:not([data-active-view="overview"]) #service-focus {
  display: none !important;
}

body.edova-technician-portal[data-active-view="geraete"] .technical-panel-title-diagnose,
body.edova-technician-portal:not([data-active-view="geraete"]) .technical-panel-title-devices {
  display: none !important;
}

body.edova-admin-portal:not([data-active-view="plattform"]) .object-context,
body.edova-technician-portal:not([data-active-view="overview"]) .object-context {
  grid-template-columns: minmax(180px, 1.15fr) repeat(3, minmax(140px, 1fr)) !important;
  margin: 0 0 12px !important;
  padding: 9px 11px !important;
}

@media (max-width: 1180px) {
  body.edova-admin-portal .admin-workbench-board,
  body.edova-technician-portal .technician-workbench-board,
  body.edova-customer-portal .customer-workbench-board,
  .edova-portal .edova-system-spine,
  body.edova-admin-portal .platform-operations-panel,
  body.edova-technician-portal .service-focus-panel,
  body.edova-customer-portal .customer-operations-panel {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .edova-portal .operations-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .edova-portal .object-context {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .edova-portal .system-spine-track {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.edova-admin-portal .platform-approval-row,
  body.edova-technician-portal .service-queue-row,
  body.edova-technician-portal .technician-registration-row,
  body.edova-customer-portal .operations-grid article,
  body.edova-customer-portal .operations-action {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.edova-admin-portal .platform-console-head,
  body.edova-admin-portal .platform-console-body,
  body.edova-admin-portal .platform-console-head .platform-stat-list,
  body.edova-admin-portal .platform-console-side .platform-action-row,
  body.edova-technician-portal .technician-console-head,
  body.edova-technician-portal .technician-console-body,
  body.edova-technician-portal .technician-console-stats,
  body.edova-technician-portal .technician-console-main .technician-mission-grid,
  body.edova-technician-portal .technician-console-main .service-queue-row,
  body.edova-technician-portal .technician-console-main .technician-registration-row,
  body.edova-customer-portal .customer-selfservice-head,
  body.edova-customer-portal .customer-selfservice-body,
  body.edova-customer-portal .customer-selfservice-summary,
  body.edova-customer-portal .customer-selfservice-console .form-grid,
  body.edova-customer-portal .customer-selfservice-side .form-grid,
  body.edova-customer-portal .customer-device-console .form-grid,
  body.edova-customer-portal .customer-runtime-devices .runtime-device-fields {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.edova-admin-portal .platform-console-head .platform-operations-copy,
  body.edova-admin-portal .platform-console-body .platform-approval-queue,
  body.edova-technician-portal .technician-console-head .service-focus-copy,
  body.edova-technician-portal .technician-console-main,
  body.edova-customer-portal .customer-selfservice-head > div + div,
  body.edova-customer-portal .customer-selfservice-main {
    border-right: 0 !important;
  }
}

@media (max-width: 760px) {
  .edova-portal .operations-actions,
  .edova-portal .object-context,
  .edova-portal .system-spine-track,
  body.edova-technician-portal .technician-registration-path,
  body.edova-customer-portal .operations-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* EDOVA enterprise chrome 2026-06-04: compact status and context surfaces. */
body.edova-admin-portal .topbar,
body.edova-technician-portal .topbar,
body.edova-customer-portal > .topbar {
  gap: 6px !important;
  min-height: 0 !important;
  padding: 9px 18px !important;
}

body.edova-admin-portal .topbar-main,
body.edova-technician-portal .topbar-main,
body.edova-customer-portal > .topbar > div:first-child {
  min-height: 0 !important;
}

body.edova-admin-portal .topbar h1,
body.edova-technician-portal .topbar h1,
body.edova-customer-portal > .topbar h1 {
  font-size: 19px !important;
  line-height: 1.08 !important;
}

body.edova-admin-portal .topbar .eyebrow,
body.edova-technician-portal .topbar .eyebrow,
body.edova-customer-portal > .topbar .eyebrow {
  font-size: 11px !important;
  line-height: 1 !important;
}

body.edova-admin-portal .top-customer-context,
body.edova-admin-portal .top-session-line,
body.edova-technician-portal .top-customer-context,
body.edova-technician-portal .top-session-line,
body.edova-customer-portal .top-customer-context,
body.edova-customer-portal .top-session-line {
  font-size: 12px !important;
  line-height: 1.2 !important;
}

body.edova-admin-portal .admin-context-bar {
  align-items: stretch !important;
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.34fr) !important;
  margin: 0 !important;
}

body.edova-admin-portal .top-tenant-picker,
body.edova-admin-portal .global-customer-alerts {
  border-radius: 4px !important;
  min-height: 0 !important;
  padding: 7px 9px !important;
}

body.edova-admin-portal .tenant-picker-grid {
  align-items: end !important;
  display: grid !important;
  gap: 7px !important;
  grid-template-columns: minmax(180px, 1fr) minmax(160px, 0.72fr) auto auto !important;
}

body.edova-admin-portal .tenant-picker-grid label {
  display: grid !important;
  font-size: 11px !important;
  gap: 3px !important;
  margin: 0 !important;
}

body.edova-admin-portal .tenant-picker-grid input,
body.edova-admin-portal .tenant-picker-grid select {
  height: 32px !important;
  min-height: 32px !important;
  padding: 5px 8px !important;
}

body.edova-admin-portal .tenant-picker-grid button {
  height: 32px !important;
  min-height: 32px !important;
  padding: 5px 10px !important;
  white-space: nowrap !important;
}

body.edova-admin-portal .global-customer-alerts {
  align-content: center !important;
  display: grid !important;
  max-height: 55px !important;
  overflow: auto !important;
}

body.edova-admin-portal .global-customer-alerts strong,
body.edova-admin-portal .global-customer-alerts span,
body.edova-admin-portal .global-customer-alerts small {
  font-size: 12px !important;
  line-height: 1.2 !important;
}

body.edova-customer-portal > .portal-nav {
  top: 56px !important;
}

.edova-portal .view-scope-line,
.edova-portal .scope-line,
.edova-portal .customer-scope-line {
  align-items: center !important;
  border-radius: 4px !important;
  display: flex !important;
  gap: 8px !important;
  margin: 6px 18px 0 !important;
  min-height: 30px !important;
  padding: 5px 10px !important;
}

.edova-portal .view-scope-line strong,
.edova-portal .scope-line strong,
.edova-portal .customer-scope-line strong {
  border-radius: 4px !important;
  font-size: 11px !important;
  line-height: 1 !important;
  padding: 5px 8px !important;
  white-space: nowrap !important;
}

.edova-portal .view-scope-line span,
.edova-portal .scope-line span,
.edova-portal .customer-scope-line span {
  font-size: 12px !important;
  line-height: 1.2 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.edova-portal .object-context,
body.edova-admin-portal:not([data-active-view="plattform"]) .object-context,
body.edova-technician-portal:not([data-active-view="overview"]) .object-context {
  display: grid !important;
  gap: 1px !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  margin: 6px 18px 10px !important;
  padding: 0 !important;
}

.edova-portal .context-step {
  border: 1px solid var(--edova-console-line) !important;
  border-left: 3px solid #13293d !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  gap: 2px !important;
  min-height: 45px !important;
  padding: 6px 8px !important;
}

.edova-portal .context-step span,
.edova-portal .context-step small {
  font-size: 10px !important;
  line-height: 1.15 !important;
}

.edova-portal .context-step strong {
  font-size: 12px !important;
  line-height: 1.1 !important;
}

@media (max-width: 1180px) {
  body.edova-admin-portal .admin-context-bar,
  body.edova-admin-portal .tenant-picker-grid,
  .edova-portal .object-context,
  body.edova-admin-portal:not([data-active-view="plattform"]) .object-context,
  body.edova-technician-portal:not([data-active-view="overview"]) .object-context {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .edova-portal .view-scope-line span,
  .edova-portal .scope-line span,
  .edova-portal .customer-scope-line span {
    white-space: normal !important;
  }
}

/* Admin customer directory 2026-06-04: table-like operations list. */
body.edova-admin-portal .customers-panel {
  overflow: hidden !important;
}

body.edova-admin-portal .customers-panel .panel-head {
  min-height: 38px !important;
  padding: 9px 12px !important;
}

body.edova-admin-portal .customer-directory-box {
  border-radius: 4px !important;
}

body.edova-admin-portal .customer-directory-box > summary,
body.edova-admin-portal .customer-create-box > summary {
  min-height: 34px !important;
  padding: 8px 10px !important;
}

body.edova-admin-portal .customers-panel .customer-list {
  background: var(--edova-console-line) !important;
  border: 1px solid var(--edova-console-line) !important;
  display: grid !important;
  gap: 1px !important;
}

body.edova-admin-portal .customers-panel .customer-item {
  align-items: center !important;
  background: #ffffff !important;
  border: 0 !important;
  border-left: 3px solid transparent !important;
  border-radius: 0 !important;
  display: grid !important;
  gap: 4px 10px !important;
  grid-template-columns: minmax(250px, 0.92fr) minmax(180px, 0.62fr) minmax(250px, 1fr) auto !important;
  min-height: 52px !important;
  padding: 6px 9px !important;
}

body.edova-admin-portal .customers-panel .customer-item.active,
body.edova-admin-portal .customers-panel .customer-item:hover {
  background: #f8fbfc !important;
  box-shadow: none !important;
}

body.edova-admin-portal .customers-panel .customer-item-head {
  display: contents !important;
}

body.edova-admin-portal .customers-panel .customer-item-head strong {
  color: #13293d !important;
  font-size: 13px !important;
  line-height: 1.18 !important;
  margin: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

body.edova-admin-portal .customers-panel .customer-item > span {
  color: #526477 !important;
  font-size: 11px !important;
  line-height: 1.2 !important;
  margin: 0 !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

body.edova-admin-portal .customers-panel .customer-item > span:nth-of-type(1) {
  grid-column: 2 !important;
  grid-row: 1 !important;
  white-space: normal !important;
}

body.edova-admin-portal .customers-panel .customer-cloud-readiness {
  border-radius: 4px !important;
  font-size: 11px !important;
  gap: 4px !important;
  grid-column: 3 !important;
  grid-row: 1 !important;
  line-height: 1.2 !important;
  max-width: 100% !important;
  padding: 5px 7px !important;
}

body.edova-admin-portal .customers-panel .customer-item > span:nth-of-type(3) {
  grid-column: 1 / span 3 !important;
  grid-row: 2 !important;
  white-space: nowrap !important;
}

body.edova-admin-portal .customers-panel .customer-delete-button {
  grid-column: 4 !important;
  grid-row: 1 / span 2 !important;
  min-height: 30px !important;
  padding: 5px 10px !important;
}

body.edova-admin-portal .customer-directory-actions {
  border-top: 1px solid var(--edova-console-line) !important;
  justify-content: flex-end !important;
  margin: 0 !important;
  padding: 8px 0 0 !important;
}

body.edova-admin-portal .customer-directory-actions button {
  min-height: 32px !important;
  padding: 5px 11px !important;
  width: auto !important;
}

body.edova-admin-portal .customer-directory-actions .danger-button {
  background: #b3261e !important;
  opacity: 0.82 !important;
}

body.edova-admin-portal .customer-delete-confirm {
  border-radius: 4px !important;
  gap: 8px !important;
  grid-column: 1 / -1 !important;
  margin-top: 4px !important;
  padding: 10px !important;
}

/* Customer operations workspaces 2026-06-04: desktop tools stay inside the viewport. */
@media (min-width: 1181px) {
  body.edova-customer-portal[data-active-view="overview"] .customer-ems-console,
  body.edova-customer-portal[data-active-view="dashboard"] .customer-ems-console {
    max-height: calc(100vh - 305px) !important;
    overflow: hidden !important;
  }

  body.edova-customer-portal[data-active-view="overview"] .ems-console-body,
  body.edova-customer-portal[data-active-view="dashboard"] .ems-console-body {
    grid-template-columns: minmax(520px, 1.25fr) minmax(330px, 0.75fr) !important;
    max-height: calc(100vh - 470px) !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  body.edova-customer-portal[data-active-view="overview"] .ems-console-body .flow-panel,
  body.edova-customer-portal[data-active-view="dashboard"] .ems-console-body .flow-panel {
    min-height: 0 !important;
    overflow: hidden !important;
    padding: 10px !important;
  }

  body.edova-customer-portal[data-active-view="overview"] .flow-card-head,
  body.edova-customer-portal[data-active-view="dashboard"] .flow-card-head {
    margin-bottom: 6px !important;
  }

  body.edova-customer-portal[data-active-view="overview"] .flow-sankey-chart,
  body.edova-customer-portal[data-active-view="dashboard"] .flow-sankey-chart {
    height: clamp(220px, 24vw, 285px) !important;
    min-height: 220px !important;
  }

  body.edova-customer-portal[data-active-view="overview"] .flow-kpis,
  body.edova-customer-portal[data-active-view="dashboard"] .flow-kpis {
    gap: 6px !important;
    margin-top: 6px !important;
  }

  body.edova-customer-portal[data-active-view="overview"] .flow-kpis span,
  body.edova-customer-portal[data-active-view="dashboard"] .flow-kpis span {
    padding: 6px 8px !important;
  }

  body.edova-customer-portal[data-active-view="overview"] .ems-console-side .panel,
  body.edova-customer-portal[data-active-view="dashboard"] .ems-console-side .panel {
    padding: 9px 10px !important;
  }

  body.edova-customer-portal[data-active-view="konfiguration"] .customer-selfservice-console {
    max-height: calc(100vh - 260px) !important;
    overflow: hidden !important;
  }

  body.edova-customer-portal[data-active-view="konfiguration"] .customer-selfservice-form {
    max-height: calc(100vh - 380px) !important;
    min-height: 0 !important;
    overflow: auto !important;
  }

  body.edova-customer-portal[data-active-view="konfiguration"] .customer-selfservice-main,
  body.edova-customer-portal[data-active-view="konfiguration"] .customer-selfservice-side {
    padding: 10px !important;
  }

  body.edova-customer-portal[data-active-view="konfiguration"] .customer-config-simple .form-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }

  body.edova-customer-portal[data-active-view="konfiguration"] .customer-mode-notes {
    display: none !important;
  }

  body.edova-customer-portal[data-active-view="abrechnung"] .monthly-panel {
    max-height: calc(100vh - 270px) !important;
    overflow: auto !important;
  }

  body.edova-customer-portal[data-active-view="abrechnung"] .billing-status-panel {
    gap: 6px !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    margin: 8px 0 !important;
  }

  body.edova-customer-portal[data-active-view="abrechnung"] .billing-status-panel article,
  body.edova-customer-portal[data-active-view="abrechnung"] .monthly-grid > div {
    border-radius: 4px !important;
    min-height: 0 !important;
    padding: 8px 10px !important;
  }

  body.edova-customer-portal[data-active-view="abrechnung"] .billing-run-actions {
    justify-content: flex-start !important;
    margin: 8px 0 !important;
  }

  body.edova-customer-portal[data-active-view="abrechnung"] .billing-run-actions button {
    min-height: 34px !important;
    padding: 5px 11px !important;
  }

  body.edova-customer-portal[data-active-view="abrechnung"] .billing-settings-form {
    gap: 8px !important;
    margin: 0 0 8px !important;
    padding: 9px 10px !important;
  }

  body.edova-customer-portal[data-active-view="abrechnung"] .billing-settings-form .form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.edova-customer-portal[data-active-view="abrechnung"] .billing-settings-form input {
    height: 32px !important;
    min-height: 32px !important;
  }

  body.edova-customer-portal[data-active-view="abrechnung"] .monthly-grid {
    gap: 6px !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    margin: 8px 0 !important;
  }

  body.edova-customer-portal[data-active-view="abrechnung"] .monthly-grid strong {
    font-size: 16px !important;
    margin-top: 2px !important;
  }

  body.edova-customer-portal[data-active-view="abrechnung"] .chart-grid {
    gap: 8px !important;
    margin-top: 8px !important;
  }

  body.edova-customer-portal[data-active-view="abrechnung"] .chart-box {
    height: 220px !important;
  }

  body.edova-customer-portal[data-active-view="abrechnung"] .billing-table-wrap,
  body.edova-customer-portal[data-active-view="abrechnung"] .monthly-columns {
    margin-top: 8px !important;
  }
}

body.edova-portal.is-authenticated .legal-footer {
  display: none !important;
}

body.edova-admin-portal.is-authenticated .legal-footer,
body.edova-technician-portal.is-authenticated .legal-footer,
body.edova-customer-portal.is-authenticated .legal-footer {
  display: flex !important;
}

body.edova-customer-portal.is-authenticated > .layout {
  padding-bottom: 10px !important;
}

.portal-manual-panel {
  display: grid;
  gap: 18px;
}

.portal-manual-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: start;
  padding: 18px;
  border: 1px solid rgba(20, 38, 52, 0.14);
  border-radius: 8px;
  background: #f8fbfc;
}

.portal-manual-hero h2 {
  margin: 4px 0 8px;
  font-size: 1.45rem;
  font-weight: 650;
  letter-spacing: 0;
}

.portal-manual-hero span {
  display: block;
  max-width: 78ch;
  color: #455863;
  line-height: 1.55;
}

.portal-manual-hero > strong {
  justify-self: end;
  padding: 6px 10px;
  border: 1px solid rgba(20, 38, 52, 0.14);
  border-radius: 999px;
  background: #fff;
  color: #26424f;
  font-size: 0.84rem;
  font-weight: 650;
  white-space: nowrap;
}

.portal-manual-flow {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}

.portal-manual-step {
  min-width: 0;
  padding: 14px;
  border: 1px solid rgba(20, 38, 52, 0.13);
  border-radius: 8px;
  background: #fff;
}

.portal-manual-step span {
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  margin-bottom: 12px;
  border-radius: 50%;
  background: #e7f0f2;
  color: #183746;
  font-weight: 700;
  font-size: 0.82rem;
}

.portal-manual-step strong {
  display: block;
  margin-bottom: 6px;
  color: #162a34;
  font-size: 0.96rem;
  font-weight: 650;
}

.portal-manual-step small {
  display: block;
  color: #536773;
  line-height: 1.45;
}

.portal-manual-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.portal-manual-card,
.portal-manual-checklist {
  min-width: 0;
  padding: 16px;
  border: 1px solid rgba(20, 38, 52, 0.13);
  border-radius: 8px;
  background: #fff;
}

.portal-manual-card h3,
.portal-manual-checklist h3 {
  margin: 0 0 10px;
  color: #152934;
  font-size: 1.02rem;
  font-weight: 650;
  letter-spacing: 0;
}

.portal-manual-card ul {
  margin: 0;
  padding-left: 18px;
  color: #455863;
  line-height: 1.55;
}

.portal-manual-card li + li {
  margin-top: 6px;
}

.portal-manual-checklist {
  background: #f8fbfc;
}

.portal-manual-checklist p {
  margin: 0;
  color: #455863;
  line-height: 1.55;
}

@media (max-width: 1100px) {
  .portal-manual-flow,
  .portal-manual-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .portal-manual-hero {
    grid-template-columns: 1fr;
  }

  .portal-manual-hero > strong {
    justify-self: start;
  }

  .portal-manual-flow,
  .portal-manual-grid {
    grid-template-columns: 1fr;
  }
}

/* 2026-06-13 visual consistency guard: keep all role portals light, technical and quiet. */
body.edova-portal :is(h1, h2, h3, h4, h5, h6) {
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}

body.edova-portal :is(strong, b, th, label, legend, summary, button, .eyebrow, .chip, .pill, .badge, .portal-brand strong, .portal-nav button, .metric strong, .status-tile strong) {
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}

body.edova-portal :is(p, span, small, li, td, dd, input, select, textarea, .session-line, .detail-empty) {
  font-weight: 400 !important;
  letter-spacing: 0 !important;
}
