/*
  EDOVA EMS professional shell.
  Last-loaded shared layer for the web portals; keep role-specific data and JS intact.
*/

:root,
.edova-portal {
  --ems-bg: #eef3f6;
  --ems-surface: #ffffff;
  --ems-surface-soft: #f8fafb;
  --ems-line: #d5e0e7;
  --ems-line-strong: #aebfca;
  --ems-ink: #102331;
  --ems-muted: #556a78;
  --ems-rail: #102a38;
  --ems-rail-soft: #183747;
  --ems-admin: #ec6608;
  --ems-tech: #1c6687;
  --ems-customer: #17745f;
  --ems-good: #16775f;
  --ems-info: #1c6687;
  --ems-warn: #b85c00;
  --ems-danger: #b3261e;
  --ems-radius: 5px;
  --ems-control: 4px;
  --ems-shadow: none;
  color: var(--ems-ink);
}

body.edova-admin-portal,
body.edova-technician-portal,
body.edova-customer-portal {
  background: var(--ems-bg) !important;
  color: var(--ems-ink);
  font-family: Arial, Helvetica, sans-serif;
  min-height: 100vh;
}

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

body.edova-customer-portal {
  display: grid;
  grid-template-columns: 252px minmax(0, 1fr);
}

body.edova-customer-portal > .portal-nav {
  grid-column: 1;
  grid-row: 1 / span 20;
}

body.edova-customer-portal > .topbar,
body.edova-customer-portal > .view-scope-line,
body.edova-customer-portal > .object-context,
body.edova-customer-portal > .customer-workbench-board,
body.edova-customer-portal > .edova-system-spine,
body.edova-customer-portal > .layout,
body.edova-customer-portal > .legal-footer {
  grid-column: 2;
}

body.edova-admin-portal .admin-sidebar,
body.edova-technician-portal .technician-rail,
body.edova-customer-portal > .portal-nav {
  align-content: start;
  background: var(--ems-rail) !important;
  border: 0 !important;
  border-right: 1px solid rgba(255, 255, 255, 0.10) !important;
  color: #ffffff;
  display: grid !important;
  gap: 10px;
  min-height: 100vh;
  overflow: visible !important;
  padding: 14px 12px !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 30;
}

body.edova-customer-portal > .portal-nav::before {
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 7px;
  color: #ffffff;
  content: "EDOVA EMS\A Kundenportal";
  display: block;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.25;
  margin: 2px 0 18px;
  padding: 14px 12px;
  white-space: pre-line;
}

body.edova-admin-portal .admin-sidebar-brand,
body.edova-technician-portal .rail-brand {
  background: transparent !important;
  border: 1px solid rgba(255, 255, 255, 0.14) !important;
  border-radius: 7px !important;
  box-shadow: none !important;
  margin: 2px 0 18px !important;
  min-height: 86px;
  padding: 14px 12px !important;
}

body.edova-admin-portal .admin-mark,
body.edova-technician-portal .rail-mark {
  border-radius: 4px !important;
  height: 26px !important;
  width: 26px !important;
}

body.edova-admin-portal .admin-sidebar-brand p,
body.edova-technician-portal .rail-brand p,
body.edova-customer-portal .portal-nav-label {
  color: rgba(255, 255, 255, 0.60) !important;
  font-size: 10px !important;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

body.edova-admin-portal .admin-sidebar-brand strong,
body.edova-technician-portal .rail-brand strong {
  color: #ffffff !important;
  display: block;
  font-size: 18px !important;
  line-height: 1.1;
}

body.edova-admin-portal .admin-sidebar-brand span,
body.edova-technician-portal .rail-brand span {
  color: rgba(255, 255, 255, 0.68) !important;
}

body.edova-admin-portal .portal-nav,
body.edova-technician-portal .portal-nav,
body.edova-customer-portal .portal-nav {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  gap: 4px !important;
  padding: 0 !important;
}

body.edova-customer-portal > .portal-nav {
  background: var(--ems-rail) !important;
  gap: 10px !important;
  padding: 14px 12px !important;
}

body.edova-admin-portal .portal-nav + .portal-nav,
body.edova-technician-portal .rail-process {
  border-top: 1px solid rgba(255, 255, 255, 0.12) !important;
  margin-top: 8px !important;
  padding-top: 12px !important;
}

body.edova-admin-portal .portal-nav button,
body.edova-technician-portal .portal-nav button,
body.edova-customer-portal .portal-nav button {
  align-items: center !important;
  background: transparent !important;
  border: 1px solid transparent !important;
  border-radius: var(--ems-control) !important;
  color: rgba(255, 255, 255, 0.84) !important;
  display: grid !important;
  gap: 6px !important;
  grid-template-columns: auto minmax(0, 1fr);
  justify-content: stretch !important;
  min-height: 34px !important;
  padding: 0 9px !important;
  text-align: left !important;
  width: 100% !important;
}

body.edova-customer-portal .portal-nav button {
  grid-template-columns: minmax(0, 1fr);
}

body.edova-admin-portal .portal-nav button.active,
body.edova-technician-portal .portal-nav button.active,
body.edova-customer-portal .portal-nav button.active {
  background: rgba(255, 255, 255, 0.13) !important;
  border-color: rgba(255, 255, 255, 0.18) !important;
  color: #ffffff !important;
}

body.edova-admin-portal .portal-nav button:hover,
body.edova-technician-portal .portal-nav button:hover,
body.edova-customer-portal .portal-nav button:hover {
  background: rgba(255, 255, 255, 0.09) !important;
  color: #ffffff !important;
}

body.edova-admin-portal .portal-nav button span,
body.edova-technician-portal .portal-nav button span,
body.edova-customer-portal .portal-nav button span {
  color: rgba(255, 255, 255, 0.58) !important;
  font-size: 10px !important;
  font-weight: 900;
}

body.edova-admin-portal .portal-nav-empty-state,
body.edova-technician-portal .rail-process,
body.edova-customer-portal .portal-nav button small {
  display: none !important;
}

body.edova-admin-portal .admin-workspace,
body.edova-technician-portal .technician-workspace {
  min-width: 0;
}

body.edova-admin-portal .topbar,
body.edova-technician-portal .topbar,
body.edova-customer-portal .topbar {
  align-items: center !important;
  background: var(--ems-surface) !important;
  border-bottom: 1px solid var(--ems-line) !important;
  box-shadow: none !important;
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 64px !important;
  padding: 10px 18px !important;
  position: sticky;
  top: 0;
  z-index: 20;
}

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

body.edova-admin-portal .topbar h1,
body.edova-technician-portal .topbar h1,
body.edova-customer-portal .topbar h1 {
  color: var(--ems-ink) !important;
  font-size: 18px !important;
  line-height: 1.14 !important;
  max-width: 100%;
  overflow: visible;
  overflow-wrap: anywhere;
  text-overflow: clip;
  white-space: normal;
}

body.edova-customer-portal .topbar > div:first-child {
  grid-template-columns: 54px max-content minmax(0, 1fr) !important;
}

body.edova-customer-portal .topbar .eyebrow {
  grid-column: 1;
}

body.edova-customer-portal .topbar h1 {
  grid-column: 2;
  white-space: nowrap;
}

body.edova-customer-portal .top-customer-context {
  grid-column: 3;
  max-width: none !important;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.edova-admin-portal .topbar .eyebrow,
body.edova-technician-portal .topbar .eyebrow,
body.edova-customer-portal .topbar .eyebrow {
  color: var(--ems-muted) !important;
  font-size: 10px !important;
  font-weight: 900;
  letter-spacing: 0;
}

body.edova-admin-portal .topbar-actions,
body.edova-technician-portal .topbar-actions,
body.edova-customer-portal .topbar-actions {
  align-items: center;
  display: flex !important;
  flex-wrap: wrap;
  gap: 6px !important;
  justify-content: flex-end;
}

body.edova-admin-portal .topbar-actions button,
body.edova-technician-portal .topbar-actions button,
body.edova-customer-portal .topbar-actions button,
body.edova-admin-portal button,
body.edova-technician-portal button,
body.edova-customer-portal button {
  border-radius: var(--ems-control) !important;
}

body.edova-admin-portal .topbar-actions button,
body.edova-technician-portal .topbar-actions button,
body.edova-customer-portal .topbar-actions button {
  min-height: 30px !important;
  padding: 4px 10px !important;
}

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

body.edova-admin-portal .admin-context-bar {
  gap: 8px !important;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.36fr) !important;
  margin: 0 !important;
}

body.edova-admin-portal .top-tenant-picker,
body.edova-admin-portal .global-customer-alerts,
body.edova-admin-portal .view-scope-line,
body.edova-technician-portal .object-context,
body.edova-customer-portal .view-scope-line,
body.edova-customer-portal .object-context {
  background: var(--ems-surface) !important;
  border: 1px solid var(--ems-line) !important;
  border-radius: var(--ems-radius) !important;
  box-shadow: none !important;
}

body.edova-admin-portal .tenant-picker-grid {
  gap: 6px !important;
  grid-template-columns: minmax(240px, 1fr) minmax(160px, 0.45fr) auto auto !important;
}

body.edova-admin-portal input,
body.edova-admin-portal select,
body.edova-admin-portal textarea,
body.edova-technician-portal input,
body.edova-technician-portal select,
body.edova-technician-portal textarea,
body.edova-customer-portal input,
body.edova-customer-portal select,
body.edova-customer-portal textarea {
  border: 1px solid var(--ems-line-strong) !important;
  border-radius: var(--ems-control) !important;
  min-height: 30px;
}

body.edova-admin-portal .admin-workbench-board,
body.edova-technician-portal .technician-workbench-board,
body.edova-customer-portal .customer-workbench-board,
body.edova-admin-portal .edova-system-spine,
body.edova-technician-portal .edova-system-spine,
body.edova-customer-portal .edova-system-spine,
body.edova-admin-portal .edova-system-map,
body.edova-technician-portal .edova-system-map {
  display: none !important;
}

body.edova-admin-portal .view-scope-line,
body.edova-customer-portal .view-scope-line {
  align-items: center;
  display: grid !important;
  gap: 8px;
  grid-template-columns: 130px minmax(0, 1fr);
  margin-top: 10px !important;
  min-height: 34px;
  padding: 6px 10px !important;
}

body.edova-admin-portal .view-scope-line span,
body.edova-customer-portal .view-scope-line span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.edova-admin-portal .object-context,
body.edova-technician-portal .object-context,
body.edova-customer-portal .object-context {
  display: grid !important;
  gap: 1px !important;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin-top: 8px !important;
  overflow: hidden;
  padding: 0 !important;
}

body.edova-admin-portal[data-active-view="plattform"] .object-context,
body.edova-admin-portal.admin-no-customer .object-context,
body.edova-technician-portal:not(.is-authenticated) .object-context,
body.edova-customer-portal:not(.is-authenticated) .object-context {
  display: none !important;
}

body.edova-admin-portal .context-step,
body.edova-technician-portal .context-step,
body.edova-customer-portal .context-step {
  background: var(--ems-surface-soft) !important;
  border: 0 !important;
  border-left: 3px solid var(--ems-line-strong) !important;
  border-radius: 0 !important;
  min-height: 42px !important;
  min-width: 0;
  padding: 6px 8px !important;
}

body.edova-admin-portal .context-step.is-ok,
body.edova-technician-portal .context-step.ok,
body.edova-technician-portal .context-step.is-ok,
body.edova-customer-portal .context-step.is-ok {
  border-left-color: var(--ems-good) !important;
}

body.edova-admin-portal .context-step.is-missing,
body.edova-technician-portal .context-step.warn,
body.edova-technician-portal .context-step.is-missing,
body.edova-customer-portal .context-step.is-missing {
  border-left-color: var(--ems-warn) !important;
}

body.edova-admin-portal .context-step span,
body.edova-admin-portal .context-step strong,
body.edova-admin-portal .context-step small,
body.edova-technician-portal .context-step span,
body.edova-technician-portal .context-step strong,
body.edova-technician-portal .context-step small,
body.edova-customer-portal .context-step span,
body.edova-customer-portal .context-step strong,
body.edova-customer-portal .context-step small {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.edova-admin-portal .layout,
body.edova-technician-portal .layout,
body.edova-customer-portal .layout {
  display: grid !important;
  gap: 10px !important;
  grid-template-columns: minmax(0, 1fr) !important;
  margin: 0 !important;
  max-width: none !important;
  padding: 10px 14px 22px !important;
}

body.edova-admin-portal .panel,
body.edova-admin-portal .platform-operations-panel,
body.edova-admin-portal .tenant-room-panel,
body.edova-admin-portal .admin-system-map-canvas,
body.edova-admin-portal .admin-system-checklist,
body.edova-technician-portal .panel,
body.edova-technician-portal .technician-console,
body.edova-technician-portal .service-focus-panel,
body.edova-customer-portal .panel,
body.edova-customer-portal .customer-operations-panel,
body.edova-customer-portal .customer-ems-console,
body.edova-customer-portal .flow-panel,
body.edova-customer-portal .control-policy-panel,
body.edova-customer-portal .monthly-panel {
  background: var(--ems-surface) !important;
  border: 1px solid var(--ems-line) !important;
  border-radius: var(--ems-radius) !important;
  box-shadow: none !important;
  min-width: 0;
}

body.edova-admin-portal .panel-head,
body.edova-technician-portal .panel-head,
body.edova-customer-portal .panel-head,
body.edova-customer-portal .ems-console-head {
  border-bottom: 1px solid var(--ems-line) !important;
  margin-bottom: 8px !important;
  min-height: 32px;
  padding-bottom: 7px !important;
}

body.edova-admin-portal .panel-head h2,
body.edova-technician-portal .panel-head h2,
body.edova-customer-portal .panel-head h2,
body.edova-customer-portal .ems-console-head h2 {
  color: var(--ems-ink) !important;
  font-size: 15px !important;
  line-height: 1.18 !important;
}

body.edova-admin-portal .metric,
body.edova-admin-portal .analytics-metrics div,
body.edova-admin-portal .billing-status-panel article,
body.edova-admin-portal .admin-controller-review-grid article,
body.edova-technician-portal .metric,
body.edova-technician-portal .technician-console-stat,
body.edova-customer-portal .metric,
body.edova-customer-portal .summary-band div,
body.edova-customer-portal .monthly-grid > div,
body.edova-customer-portal .billing-status-panel article {
  background: var(--ems-surface-soft) !important;
  border: 1px solid var(--ems-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  min-height: 46px !important;
  padding: 7px 9px !important;
}

body.edova-admin-portal .chart-box,
body.edova-technician-portal .chart-box,
body.edova-customer-portal .chart-box {
  min-height: 180px;
}

body.edova-admin-portal .table-wrap,
body.edova-admin-portal .analytics-list,
body.edova-admin-portal .customer-list,
body.edova-admin-portal .site-list,
body.edova-admin-portal .controller-list,
body.edova-technician-portal .list,
body.edova-customer-portal .site-list,
body.edova-customer-portal .charge-point-list,
body.edova-customer-portal .user-list,
body.edova-customer-portal .session-list,
body.edova-customer-portal .mini-list {
  border-radius: var(--ems-radius) !important;
}

body.edova-admin-portal .legal-footer,
body.edova-technician-portal .legal-footer,
body.edova-customer-portal .legal-footer {
  background: transparent !important;
  border-top: 1px solid var(--ems-line);
  margin: 0 14px;
  padding: 12px 0 18px !important;
}

/* Technician operations shell: dense commissioning cockpit for desktop service work. */
body.edova-technician-portal .service-focus-panel.technician-commissioning-console {
  border-left: 4px solid var(--ems-tech) !important;
  display: grid !important;
  gap: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
}

body.edova-technician-portal .technician-console-head {
  align-items: stretch !important;
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: minmax(250px, 0.32fr) minmax(0, 1fr) !important;
  min-height: 0 !important;
}

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

body.edova-technician-portal .technician-console-head .service-focus-copy h2 {
  color: var(--ems-ink) !important;
  font-size: 15px !important;
  line-height: 1.12 !important;
  margin: 0 !important;
}

body.edova-technician-portal .technician-console-head .service-focus-copy span {
  color: var(--ems-muted) !important;
  font-size: 11px !important;
  line-height: 1.22 !important;
}

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

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

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

body.edova-technician-portal .technician-console-stat span,
body.edova-technician-portal .technician-console-stat small {
  color: var(--ems-muted) !important;
  font-size: 10px !important;
  line-height: 1.12 !important;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

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

body.edova-technician-portal .technician-console-stat.is-good {
  box-shadow: inset 3px 0 0 var(--ems-good) !important;
}

body.edova-technician-portal .technician-console-stat.is-warning {
  box-shadow: inset 3px 0 0 var(--ems-warn) !important;
}

body.edova-technician-portal .technician-console-stat.is-critical {
  box-shadow: inset 3px 0 0 var(--ems-danger) !important;
}

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

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

body.edova-technician-portal .technician-console-side {
  display: grid !important;
  gap: 0 !important;
  min-width: 0;
}

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,
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(--ems-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  margin: 0 !important;
  min-width: 0;
}

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 {
  align-items: center !important;
  border-bottom: 1px solid var(--ems-line) !important;
  display: grid !important;
  gap: 6px !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  min-height: 34px !important;
  padding: 6px 8px !important;
}

body.edova-technician-portal .technician-console-main .technician-mission-head h3,
body.edova-technician-portal .technician-console-main .technician-registration-head h3 {
  color: var(--ems-ink) !important;
  font-size: 13px !important;
  line-height: 1.12 !important;
  margin: 0 !important;
}

body.edova-technician-portal .technician-console-main .technician-mission-head small,
body.edova-technician-portal .technician-console-main .technician-registration-head strong {
  color: var(--ems-muted) !important;
  font-size: 11px !important;
  line-height: 1.18 !important;
}

body.edova-technician-portal .technician-console-main .technician-mission-grid {
  display: grid !important;
  gap: 1px !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(--ems-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  min-height: 78px !important;
  padding: 6px 7px !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 {
  display: grid !important;
  gap: 1px !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  padding: 0 !important;
}

body.edova-technician-portal .technician-console-main .technician-registration-path button {
  border: 0 !important;
  border-left: 1px solid var(--ems-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  min-height: 42px !important;
  padding: 5px 7px !important;
}

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

body.edova-technician-portal .technician-console-main .service-queue-row,
body.edova-technician-portal .technician-console-main .technician-registration-row {
  align-items: center !important;
  border: 0 !important;
  border-bottom: 1px solid var(--ems-line) !important;
  border-radius: 0 !important;
  display: grid !important;
  gap: 4px 8px !important;
  grid-template-columns: 108px minmax(0, 0.78fr) minmax(0, 1fr) minmax(0, 0.82fr) minmax(150px, 0.72fr) !important;
  min-height: 34px !important;
  padding: 4px 8px !important;
}

body.edova-technician-portal .technician-console-main .technician-registration-row {
  grid-template-columns: 132px minmax(0, 0.85fr) minmax(0, 1fr) minmax(170px, 0.82fr) !important;
}

body.edova-technician-portal .service-focus-actions {
  display: grid !important;
  gap: 4px !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body.edova-technician-portal .service-focus-actions button {
  min-height: 27px !important;
  padding: 0 7px !important;
}

body.edova-technician-portal .technician-console-side .service-focus-row {
  align-items: center !important;
  border: 0 !important;
  border-bottom: 1px solid var(--ems-line) !important;
  border-radius: 0 !important;
  display: grid !important;
  gap: 3px 8px !important;
  grid-template-columns: 94px minmax(0, 1fr) !important;
  min-height: 31px !important;
  padding: 4px 8px !important;
  text-align: left !important;
  width: 100% !important;
}

body.edova-technician-portal .technician-console-side .service-focus-row small {
  grid-column: 2 !important;
}

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

body.edova-technician-portal .technician-console-main .technician-mission-grid strong,
body.edova-technician-portal .technician-console-main .technician-registration-path strong,
body.edova-technician-portal .technician-console-main .service-queue-row strong,
body.edova-technician-portal .technician-console-main .technician-registration-row strong,
body.edova-technician-portal .technician-console-side .service-focus-row strong,
body.edova-technician-portal .technician-console-side .service-focus-current strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

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,
body.edova-technician-portal .technician-console-side .service-focus-row small,
body.edova-technician-portal .technician-console-side .service-focus-current small {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap !important;
}

/* Admin platform console: dense status cards without broken labels. */
body.edova-admin-portal .platform-console-head {
  align-items: stretch !important;
  display: grid !important;
  gap: 1px !important;
  grid-template-columns: minmax(240px, 0.34fr) minmax(0, 1fr) !important;
}

body.edova-admin-portal .platform-console-head .platform-operations-copy,
body.edova-admin-portal .platform-console-head .platform-stat-row {
  background: #ffffff !important;
  border: 1px solid var(--ems-line) !important;
  border-radius: 0 !important;
  min-width: 0;
}

body.edova-admin-portal .platform-console-head .platform-operations-copy {
  border-left: 4px solid var(--ems-admin) !important;
  display: grid !important;
  gap: 3px !important;
  padding: 10px 12px !important;
}

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

body.edova-admin-portal .platform-console-head .platform-stat-row {
  align-content: start !important;
  display: grid !important;
  gap: 3px !important;
  grid-template-columns: minmax(0, 1fr) !important;
  min-height: 104px !important;
  padding: 10px 12px !important;
}

body.edova-admin-portal .platform-console-head .platform-stat-row span,
body.edova-admin-portal .platform-console-head .platform-stat-row strong,
body.edova-admin-portal .platform-console-head .platform-stat-row small {
  display: block;
  min-width: 0;
  overflow: hidden !important;
  overflow-wrap: normal !important;
  text-overflow: ellipsis;
  white-space: normal !important;
  word-break: normal !important;
}

body.edova-admin-portal .platform-console-head .platform-stat-row span {
  color: var(--ems-muted) !important;
  font-size: 11px !important;
  font-weight: 900;
  text-transform: uppercase;
}

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

body.edova-admin-portal .platform-console-head .platform-stat-row small {
  color: var(--ems-muted) !important;
  font-size: 11px !important;
  line-height: 1.22 !important;
}

/* Admin controller onboarding map: compact operations matrix, not a card stack. */
body.edova-admin-portal .admin-system-map-panel {
  padding: 10px !important;
}

body.edova-admin-portal .admin-system-map-panel > .panel-head {
  align-items: center;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
}

body.edova-admin-portal .admin-system-map-shell {
  align-items: stretch;
  display: grid !important;
  gap: 10px !important;
  grid-template-columns: minmax(620px, 1fr) minmax(420px, 0.46fr) !important;
}

body.edova-admin-portal .admin-system-ops-board,
body.edova-admin-portal .controller-map-list {
  background: #f8fbfd !important;
  border: 1px solid var(--ems-line) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  display: grid !important;
  gap: 8px !important;
  min-width: 0;
  padding: 8px !important;
}

body.edova-admin-portal .admin-system-map-head {
  align-items: stretch !important;
  background: transparent !important;
  border-bottom: 0 !important;
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: minmax(240px, 0.9fr) minmax(360px, 1.1fr);
  padding: 0 !important;
}

body.edova-admin-portal .admin-system-map-head > div:first-child,
body.edova-admin-portal .admin-system-queue-head {
  background: #ffffff;
  border: 1px solid var(--ems-line);
  border-left: 4px solid var(--ems-admin);
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 8px 10px;
}

body.edova-admin-portal .admin-system-map-head h3,
body.edova-admin-portal .admin-system-map-head strong,
body.edova-admin-portal .admin-system-queue-head strong {
  color: var(--ems-ink) !important;
  font-size: 15px !important;
  line-height: 1.16 !important;
  margin: 0 !important;
}

body.edova-admin-portal .admin-system-map-head small,
body.edova-admin-portal .admin-system-queue-head small {
  color: var(--ems-muted) !important;
  font-size: 11px !important;
  line-height: 1.25;
}

body.edova-admin-portal .admin-system-keyfacts,
body.edova-admin-portal .admin-system-metrics {
  background: var(--ems-line) !important;
  border: 1px solid var(--ems-line) !important;
  display: grid !important;
  gap: 1px !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

body.edova-admin-portal .admin-system-metric {
  background: #ffffff !important;
  border: 0 !important;
  display: grid !important;
  gap: 2px !important;
  min-height: 54px;
  padding: 7px 8px !important;
}

body.edova-admin-portal .admin-system-lanes {
  background: var(--ems-line) !important;
  border: 1px solid var(--ems-line) !important;
  display: grid !important;
  gap: 1px !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}

body.edova-admin-portal .admin-system-node {
  background: #ffffff !important;
  border: 0 !important;
  border-top: 4px solid #617887 !important;
  display: grid !important;
  gap: 2px !important;
  min-height: 70px !important;
  padding: 7px 8px !important;
}

body.edova-admin-portal .admin-system-node.is-good {
  border-top-color: var(--ems-good) !important;
}

body.edova-admin-portal .admin-system-node.is-warning,
body.edova-admin-portal .admin-system-node.is-new,
body.edova-admin-portal .admin-system-node.is-waiting {
  border-top-color: var(--ems-warn) !important;
}

body.edova-admin-portal .admin-system-node.is-critical,
body.edova-admin-portal .admin-system-node.is-blocked {
  border-top-color: var(--ems-danger) !important;
}

body.edova-admin-portal .admin-system-workgrid {
  display: grid;
  min-width: 0;
}

body.edova-admin-portal .admin-system-ledger {
  background: var(--ems-line) !important;
  border: 1px solid var(--ems-line) !important;
  border-radius: 0 !important;
  display: grid !important;
  gap: 1px !important;
}

body.edova-admin-portal .admin-system-ledger-head,
body.edova-admin-portal .admin-system-ledger-row {
  align-items: center !important;
  background: #ffffff !important;
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: 118px minmax(0, 1fr) 96px minmax(0, 0.78fr) !important;
  min-height: 32px !important;
  padding: 4px 8px !important;
}

body.edova-admin-portal .admin-system-ledger-head {
  background: #eef3f6 !important;
}

body.edova-admin-portal .admin-system-selected {
  background: #ffffff !important;
  border: 0 !important;
  border-left: 4px solid var(--ems-admin) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--ems-ink) !important;
  display: grid !important;
  gap: 6px !important;
  grid-column: 2 / -1 !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  min-height: 28px !important;
  padding: 4px 8px !important;
  text-align: left !important;
}

body.edova-admin-portal .admin-system-responsibility {
  background: var(--ems-line) !important;
  border: 1px solid var(--ems-line) !important;
  display: grid !important;
  gap: 1px !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

body.edova-admin-portal .admin-system-responsibility span {
  background: #ffffff !important;
  border: 0 !important;
  color: var(--ems-muted) !important;
  font-size: 11px !important;
  line-height: 1.25 !important;
  padding: 7px 8px !important;
}

body.edova-admin-portal .admin-system-queue-head {
  border-left-color: var(--ems-tech);
}

body.edova-admin-portal .admin-handover-table {
  background: var(--ems-line) !important;
  border: 1px solid var(--ems-line) !important;
  display: grid !important;
  gap: 1px !important;
  max-height: 470px !important;
  overflow: auto !important;
}

body.edova-admin-portal .admin-handover-row {
  background: #ffffff !important;
  border: 0 !important;
  border-left: 4px solid #617887 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--ems-ink) !important;
  display: grid !important;
  gap: 3px 8px !important;
  grid-template-columns: 118px minmax(0, 1fr) !important;
  min-height: 42px !important;
  padding: 6px 8px !important;
  text-align: left !important;
  width: 100% !important;
}

body.edova-admin-portal .admin-handover-row.is-head {
  background: #eef3f6 !important;
  min-height: 25px !important;
}

body.edova-admin-portal .admin-handover-row:hover,
body.edova-admin-portal .admin-handover-row:focus-visible,
body.edova-admin-portal .admin-handover-row.active,
body.edova-admin-portal .admin-system-selected:hover,
body.edova-admin-portal .admin-system-selected:focus-visible {
  background: #f2f6f8 !important;
  outline: 2px solid rgba(236, 102, 8, 0.18) !important;
}

body.edova-admin-portal .admin-system-actions {
  display: grid !important;
  gap: 6px !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body.edova-admin-portal .admin-system-runbook {
  align-content: start;
}

body.edova-admin-portal .admin-system-runbook-step {
  background: #ffffff;
  border: 1px solid var(--ems-line);
  display: grid !important;
  gap: 2px 8px;
  grid-template-columns: 28px minmax(0, 1fr);
  padding: 7px 8px;
}

body.edova-admin-portal .admin-system-runbook-step em {
  align-items: center;
  background: var(--ems-rail);
  color: #ffffff;
  display: inline-flex;
  font-style: normal;
  font-weight: 900;
  grid-row: 1 / span 2;
  justify-content: center;
  min-height: 28px;
}

body.edova-admin-portal .admin-system-runbook-step strong,
body.edova-admin-portal .admin-system-runbook-step small {
  min-width: 0;
}

/* Admin system map final shell pass: table first, selected controller matrix second. */
body.edova-admin-portal .admin-system-map-shell {
  align-items: start !important;
  grid-template-columns: minmax(0, 1.42fr) minmax(320px, 0.58fr) !important;
}

body.edova-admin-portal .admin-system-map-panel {
  min-width: 0 !important;
  overflow: hidden !important;
}

body.edova-admin-portal .admin-system-control-room,
body.edova-admin-portal .admin-system-map-shell > .controller-map-list {
  background: #ffffff !important;
  border-radius: 3px !important;
  gap: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
}

body.edova-admin-portal .admin-system-control-room .admin-system-map-head {
  background: #f8fafb !important;
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.42fr) !important;
  padding: 0 !important;
}

body.edova-admin-portal .admin-system-control-room .admin-system-map-head > div:first-child {
  border: 0 !important;
  border-right: 1px solid var(--ems-line) !important;
  border-left: 0 !important;
  padding: 9px 10px !important;
}

body.edova-admin-portal .admin-system-control-room .admin-system-keyfacts {
  border: 0 !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

body.edova-admin-portal .admin-system-control-room .admin-system-keyfacts .admin-system-metric {
  border-left: 1px solid var(--ems-line) !important;
  min-height: 48px !important;
}

body.edova-admin-portal .admin-system-stage-strip .admin-system-node {
  min-height: 44px !important;
  padding: 5px 7px !important;
}

body.edova-admin-portal .admin-system-stage-strip .admin-system-node em {
  font-size: 16px !important;
}

body.edova-admin-portal .admin-system-command-table .admin-handover-table {
  max-height: calc(100vh - 380px) !important;
  min-height: 310px !important;
}

body.edova-admin-portal .admin-handover-row {
  border-left-width: 3px !important;
  gap: 8px !important;
  grid-template-columns: 90px minmax(240px, 1.36fr) minmax(130px, 0.86fr) 128px !important;
  min-height: 31px !important;
  padding: 4px 7px !important;
}

body.edova-admin-portal .admin-handover-row span,
body.edova-admin-portal .admin-handover-row strong,
body.edova-admin-portal .admin-handover-row small,
body.edova-admin-portal .admin-handover-row em,
body.edova-admin-portal .admin-handover-row b {
  letter-spacing: 0 !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.edova-admin-portal .admin-handover-row:not(.is-head) span {
  grid-column: 1 !important;
  grid-row: 1 / span 2 !important;
}

body.edova-admin-portal .admin-handover-row:not(.is-head) strong {
  grid-column: 2 !important;
  grid-row: 1 !important;
}

body.edova-admin-portal .admin-handover-row:not(.is-head) small {
  grid-column: 2 !important;
  grid-row: 2 !important;
}

body.edova-admin-portal .admin-handover-row:not(.is-head) em {
  grid-column: 3 !important;
  grid-row: 1 / span 2 !important;
}

body.edova-admin-portal .admin-handover-row:not(.is-head) b {
  grid-column: 4 !important;
  grid-row: 1 / span 2 !important;
}

body.edova-admin-portal .admin-handover-row.is-head span {
  grid-column: auto !important;
  grid-row: auto !important;
}

body.edova-admin-portal .admin-handover-row.is-head {
  position: sticky !important;
  top: 0 !important;
  z-index: 2 !important;
}

body.edova-admin-portal .admin-system-map-shell > .controller-map-list {
  align-content: start !important;
  gap: 8px !important;
  padding: 8px !important;
}

body.edova-admin-portal .admin-system-map-shell .admin-system-queue-head {
  border-left-color: var(--ems-tech) !important;
  padding: 8px !important;
}

body.edova-admin-portal .admin-system-map-shell .admin-system-ledger-head,
body.edova-admin-portal .admin-system-map-shell .admin-system-ledger-row {
  grid-template-columns: 82px minmax(0, 1fr) 72px !important;
  min-height: 29px !important;
  padding: 4px 7px !important;
}

body.edova-admin-portal .admin-system-map-shell .admin-system-selected {
  grid-template-columns: minmax(0, 1fr) 118px !important;
}

body.edova-admin-portal .admin-system-map-shell .admin-system-ledger-row span,
body.edova-admin-portal .admin-system-map-shell .admin-system-ledger-row strong,
body.edova-admin-portal .admin-system-map-shell .admin-system-ledger-row em,
body.edova-admin-portal .admin-system-map-shell .admin-system-ledger-row small {
  letter-spacing: 0 !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.edova-admin-portal .admin-system-map-shell .admin-system-ledger-row span {
  grid-column: 1 !important;
  grid-row: 1 / span 2 !important;
}

body.edova-admin-portal .admin-system-map-shell .admin-system-ledger-row strong {
  grid-column: 2 !important;
  grid-row: 1 !important;
}

body.edova-admin-portal .admin-system-map-shell .admin-system-ledger-row em {
  grid-column: 3 !important;
  grid-row: 1 !important;
}

body.edova-admin-portal .admin-system-map-shell .admin-system-ledger-row small {
  grid-column: 2 / -1 !important;
  grid-row: 2 !important;
}

body.edova-admin-portal .admin-system-map-shell .admin-system-responsibility {
  grid-template-columns: minmax(0, 1fr) !important;
}

body.edova-admin-portal .admin-system-map-shell .admin-system-actions {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

/* Technician commissioning matrix: device/RFID/OCPP/regulator checks as one work surface. */
body.edova-technician-portal .technician-technical-matrix {
  background: #f8fbfd !important;
  border: 1px solid var(--ems-line) !important;
  border-left: 4px solid var(--ems-tech) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  display: grid !important;
  gap: 8px !important;
  margin-bottom: 10px !important;
  padding: 8px !important;
}

body.edova-technician-portal .technician-technical-matrix .technician-technical-head {
  align-items: stretch !important;
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
}

body.edova-technician-portal .technician-technical-matrix .technician-technical-head > div {
  background: #ffffff;
  border: 1px solid var(--ems-line);
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 8px 10px;
}

body.edova-technician-portal .technician-technical-matrix .technician-technical-head h2 {
  color: var(--ems-ink) !important;
  font-size: 15px !important;
  line-height: 1.16 !important;
  margin: 0 !important;
}

body.edova-technician-portal .technician-technical-matrix .technician-technical-head span {
  color: var(--ems-muted) !important;
  font-size: 11px !important;
  line-height: 1.25 !important;
}

body.edova-technician-portal .technician-technical-matrix .technician-technical-head > strong {
  align-items: center;
  background: #ffffff !important;
  border: 1px solid var(--ems-line) !important;
  border-radius: 0 !important;
  color: var(--ems-ink) !important;
  display: inline-flex;
  font-size: 14px !important;
  justify-content: center;
  min-width: 96px;
  padding: 8px 10px !important;
  text-transform: uppercase;
}

body.edova-technician-portal .technician-technical-keyfacts,
body.edova-technician-portal .technician-technical-boundary {
  background: var(--ems-line);
  border: 1px solid var(--ems-line);
  display: grid;
  gap: 1px;
}

body.edova-technician-portal .technician-technical-keyfacts {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

body.edova-technician-portal .technician-technical-keyfacts article,
body.edova-technician-portal .technician-technical-boundary span {
  background: #ffffff !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  display: grid;
  gap: 2px;
  min-height: 44px;
  min-width: 0;
  padding: 7px 8px;
}

body.edova-technician-portal .technician-technical-keyfacts span,
body.edova-technician-portal .technician-technical-boundary span,
body.edova-technician-portal .technician-technical-row span {
  color: var(--ems-muted) !important;
  font-size: 10px !important;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

body.edova-technician-portal .technician-technical-row > span {
  align-items: center !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  display: inline-flex !important;
  height: auto !important;
  justify-content: flex-start !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  width: auto !important;
}

body.edova-technician-portal .technician-technical-row > span:first-child {
  background: #f8fbfd !important;
  border: 1px solid var(--ems-line) !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  height: 26px !important;
  justify-content: center !important;
  width: 26px !important;
}

body.edova-technician-portal .technician-technical-keyfacts strong,
body.edova-technician-portal .technician-technical-boundary strong {
  color: var(--ems-ink) !important;
  font-size: 12px !important;
  line-height: 1.18 !important;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.edova-technician-portal .technician-technical-grid {
  background: var(--ems-line) !important;
  border: 1px solid var(--ems-line) !important;
  display: grid !important;
  gap: 1px !important;
  grid-template-columns: minmax(0, 1fr) !important;
}

body.edova-technician-portal .technician-technical-row {
  align-items: center !important;
  background: #ffffff !important;
  border: 0 !important;
  border-left: 4px solid var(--ems-warn) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--ems-ink) !important;
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: 42px 88px minmax(220px, 0.9fr) minmax(260px, 1fr) 132px !important;
  min-height: 42px !important;
  padding: 5px 8px !important;
}

body.edova-technician-portal .technician-technical-row.is-head {
  background: #eef3f6 !important;
  border-left-color: var(--ems-line-strong) !important;
  min-height: 26px !important;
}

body.edova-technician-portal .technician-technical-row.is-ok {
  border-left-color: var(--ems-good) !important;
}

body.edova-technician-portal .technician-technical-row.is-kritisch {
  border-left-color: var(--ems-danger) !important;
}

body.edova-technician-portal .technician-technical-row.is-wartet {
  border-left-color: var(--ems-tech) !important;
}

body.edova-technician-portal .technician-technical-row strong,
body.edova-technician-portal .technician-technical-row b {
  color: var(--ems-ink) !important;
  font-size: 12px !important;
  line-height: 1.18 !important;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.edova-technician-portal .technician-technical-row small,
body.edova-technician-portal .technician-technical-row em {
  color: var(--ems-muted) !important;
  font-size: 11px !important;
  font-style: normal;
  line-height: 1.2 !important;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.edova-technician-portal .technician-technical-row button {
  min-height: 28px !important;
  padding: 0 8px !important;
  white-space: nowrap;
}

body.edova-technician-portal .technician-technical-boundary {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Technician dispatch cockpit: one operator table, one selected-controller matrix. */
body.edova-technician-portal .technician-dispatch-matrix,
body.edova-technician-portal .technician-work-table-section,
body.edova-technician-portal .technician-selected-matrix {
  background: #ffffff !important;
  border: 1px solid var(--ems-line) !important;
  border-radius: 3px !important;
  box-shadow: none !important;
  display: grid !important;
  gap: 0 !important;
  min-width: 0 !important;
  overflow: hidden !important;
}

body.edova-technician-portal .technician-dispatch-head,
body.edova-technician-portal .technician-work-table-head,
body.edova-technician-portal .technician-selected-head {
  align-content: center !important;
  background: #f8fafb !important;
  border-bottom: 1px solid var(--ems-line) !important;
  display: grid !important;
  gap: 2px !important;
  min-width: 0 !important;
  padding: 8px 10px !important;
}

body.edova-technician-portal .technician-dispatch-head,
body.edova-technician-portal .technician-work-table-head {
  align-items: center !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
}

body.edova-technician-portal .technician-dispatch-head h3,
body.edova-technician-portal .technician-work-table-head h3,
body.edova-technician-portal .technician-selected-head strong {
  color: var(--ems-ink) !important;
  font-size: 14px !important;
  line-height: 1.16 !important;
  margin: 0 !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.edova-technician-portal .technician-dispatch-head small,
body.edova-technician-portal .technician-work-table-head small,
body.edova-technician-portal .technician-selected-head small {
  color: var(--ems-muted) !important;
  font-size: 11px !important;
  line-height: 1.2 !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.edova-technician-portal .technician-dispatch-table,
body.edova-technician-portal .technician-work-table {
  background: var(--ems-line) !important;
  display: grid !important;
  gap: 1px !important;
  min-width: 0 !important;
}

body.edova-technician-portal .technician-dispatch-row,
body.edova-technician-portal .technician-work-row {
  align-items: center !important;
  background: #ffffff !important;
  border: 0 !important;
  border-left: 3px solid var(--ems-tech) !important;
  border-radius: 0 !important;
  color: var(--ems-ink) !important;
  display: grid !important;
  gap: 8px !important;
  min-width: 0 !important;
  padding: 5px 8px !important;
  text-align: left !important;
  width: 100% !important;
}

body.edova-technician-portal .technician-dispatch-row {
  grid-template-columns: 34px minmax(140px, 0.82fr) 74px minmax(180px, 1fr) 98px !important;
  min-height: 34px !important;
}

body.edova-technician-portal .technician-work-row {
  grid-template-columns: 88px minmax(0, 1.12fr) minmax(0, 0.88fr) 118px !important;
  min-height: 36px !important;
}

body.edova-technician-portal .technician-dispatch-row.is-head,
body.edova-technician-portal .technician-work-row.is-head {
  background: #eef3f6 !important;
  border-left-color: var(--ems-line-strong) !important;
  min-height: 24px !important;
  pointer-events: none;
}

body.edova-technician-portal .technician-dispatch-row.is-ok,
body.edova-technician-portal .technician-work-row.is-ok {
  border-left-color: var(--ems-good) !important;
}

body.edova-technician-portal .technician-dispatch-row.is-warning,
body.edova-technician-portal .technician-dispatch-row.is-wait,
body.edova-technician-portal .technician-work-row.is-warning {
  border-left-color: var(--ems-warn) !important;
}

body.edova-technician-portal .technician-dispatch-row.is-critical,
body.edova-technician-portal .technician-work-row.is-critical {
  border-left-color: var(--ems-danger) !important;
}

body.edova-technician-portal .technician-dispatch-row span,
body.edova-technician-portal .technician-dispatch-row strong,
body.edova-technician-portal .technician-dispatch-row em,
body.edova-technician-portal .technician-dispatch-row small,
body.edova-technician-portal .technician-dispatch-row b,
body.edova-technician-portal .technician-work-row span,
body.edova-technician-portal .technician-work-row > div,
body.edova-technician-portal .technician-work-row strong,
body.edova-technician-portal .technician-work-row small,
body.edova-technician-portal .technician-work-row em {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.edova-technician-portal .technician-dispatch-row span,
body.edova-technician-portal .technician-work-row span {
  color: var(--ems-muted) !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
}

body.edova-technician-portal .technician-dispatch-row strong,
body.edova-technician-portal .technician-work-row strong {
  color: var(--ems-ink) !important;
  font-size: 12px !important;
  line-height: 1.16 !important;
}

body.edova-technician-portal .technician-dispatch-row em,
body.edova-technician-portal .technician-dispatch-row small,
body.edova-technician-portal .technician-dispatch-row b,
body.edova-technician-portal .technician-work-row small,
body.edova-technician-portal .technician-work-row em {
  color: var(--ems-muted) !important;
  font-size: 11px !important;
  font-style: normal !important;
  line-height: 1.18 !important;
}

body.edova-technician-portal .technician-dispatch-row b {
  color: var(--ems-tech) !important;
  font-weight: 900 !important;
}

body.edova-technician-portal .technician-work-row .service-focus-actions {
  display: grid !important;
  gap: 5px !important;
  grid-template-columns: minmax(0, 1fr) !important;
  min-width: 0 !important;
  overflow: hidden !important;
}

body.edova-technician-portal .technician-work-row .service-focus-actions button {
  min-height: 24px !important;
  min-width: 0 !important;
  padding: 0 6px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.edova-technician-portal .technician-selected-matrix {
  align-content: start !important;
}

body.edova-technician-portal .technician-selected-head {
  border-left: 4px solid var(--ems-tech) !important;
}

body.edova-technician-portal .technician-selected-row {
  align-items: center !important;
  background: #ffffff !important;
  border-bottom: 1px solid var(--ems-line) !important;
  border-left: 3px solid var(--ems-tech) !important;
  display: grid !important;
  gap: 6px !important;
  grid-template-columns: 78px minmax(0, 1fr) 66px !important;
  min-height: 31px !important;
  min-width: 0 !important;
  padding: 4px 8px !important;
}

body.edova-technician-portal .technician-selected-row.is-ok {
  border-left-color: var(--ems-good) !important;
}

body.edova-technician-portal .technician-selected-row.is-warning {
  border-left-color: var(--ems-warn) !important;
}

body.edova-technician-portal .technician-selected-row.is-critical {
  border-left-color: var(--ems-danger) !important;
}

body.edova-technician-portal .technician-selected-row span,
body.edova-technician-portal .technician-selected-row strong,
body.edova-technician-portal .technician-selected-row em {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.edova-technician-portal .technician-selected-row span {
  color: var(--ems-muted) !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
}

body.edova-technician-portal .technician-selected-row strong {
  color: var(--ems-ink) !important;
  font-size: 12px !important;
}

body.edova-technician-portal .technician-selected-row em {
  color: var(--ems-muted) !important;
  font-size: 11px !important;
  font-style: normal !important;
}

body.edova-admin-portal {
  --ems-role: var(--ems-admin);
}

body.edova-technician-portal {
  --ems-role: var(--ems-tech);
}

body.edova-customer-portal {
  --ems-role: var(--ems-customer);
}

/* Customer portal operations shell: one EMS workspace with a fixed role rail. */
body.edova-customer-portal {
  align-content: start;
  background: #eef3f6 !important;
  display: grid !important;
  grid-template-columns: 252px minmax(0, 1fr);
  min-height: 100vh;
}

body.edova-customer-portal > .topbar,
body.edova-customer-portal > .customer-scope-line,
body.edova-customer-portal > .object-context,
body.edova-customer-portal > .customer-workbench-board,
body.edova-customer-portal > .edova-system-spine,
body.edova-customer-portal > .layout,
body.edova-customer-portal > .legal-footer {
  grid-column: 2;
  min-width: 0;
}

body.edova-customer-portal > .topbar {
  align-items: center !important;
  background: #ffffff !important;
  border-bottom: 1px solid var(--ems-line) !important;
  border-left: 1px solid var(--ems-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  margin: 0 !important;
  min-height: 64px;
  padding: 10px 16px !important;
}

body.edova-customer-portal > .topbar > div:first-child {
  align-items: start !important;
  display: grid !important;
  gap: 2px !important;
  grid-template-columns: minmax(0, 1fr) !important;
  min-width: 0;
}

body.edova-customer-portal > .topbar .brand-logo[hidden] {
  display: none !important;
}

body.edova-customer-portal > .topbar .eyebrow {
  display: none !important;
}

body.edova-customer-portal > .topbar h1 {
  color: var(--ems-ink) !important;
  font-size: 20px !important;
  line-height: 1.15 !important;
  margin: 0 !important;
}

body.edova-customer-portal > .topbar .top-customer-context,
body.edova-customer-portal > .topbar .top-session-line {
  color: var(--ems-muted) !important;
  font-size: 12px !important;
}

body.edova-customer-portal > .topbar .top-customer-context {
  display: block;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.edova-customer-portal > .portal-nav {
  align-self: start;
  background: #102f3b !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: #d8e5eb;
  display: grid !important;
  gap: 5px !important;
  grid-column: 1;
  grid-row: 1 / span 8;
  min-height: 100vh;
  padding: 16px 12px !important;
  position: sticky;
  top: 0;
  z-index: 4;
}

body.edova-customer-portal > .portal-nav::before {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #ffffff;
  content: "EDOVA EMS\A Kundenportal";
  display: block;
  font-size: 16px;
  font-weight: 900;
  line-height: 1.18;
  margin-bottom: 18px;
  padding: 14px 12px;
  white-space: pre-line;
}

body.edova-customer-portal > .portal-nav .portal-nav-label {
  color: #9db4bf !important;
  font-size: 10px !important;
  font-weight: 900;
  margin: 12px 8px 3px;
  text-transform: uppercase;
}

body.edova-customer-portal > .portal-nav button {
  align-items: center;
  background: transparent !important;
  border: 1px solid transparent !important;
  border-radius: 3px !important;
  box-shadow: none !important;
  color: #edf5f8 !important;
  display: flex !important;
  font-size: 13px !important;
  font-weight: 800;
  justify-content: flex-start;
  min-height: 34px !important;
  padding: 0 10px !important;
  text-align: left;
}

body.edova-customer-portal > .portal-nav button:hover,
body.edova-customer-portal > .portal-nav button:focus-visible,
body.edova-customer-portal > .portal-nav button.active,
body.edova-customer-portal > .portal-nav button[aria-selected="true"] {
  background: rgba(255, 255, 255, 0.1) !important;
  border-color: rgba(255, 255, 255, 0.16) !important;
  color: #ffffff !important;
}

body.edova-customer-portal > .customer-scope-line,
body.edova-customer-portal > .object-context,
body.edova-customer-portal > .customer-workbench-board,
body.edova-customer-portal > .edova-system-spine {
  margin-left: 14px !important;
  margin-right: 14px !important;
}

body.edova-customer-portal > .customer-scope-line {
  background: #ffffff !important;
  border: 1px solid var(--ems-line) !important;
  border-radius: 0 !important;
  margin-top: 10px !important;
  padding: 7px 10px !important;
}

body.edova-customer-portal > .object-context {
  margin-top: 8px !important;
}

body.edova-customer-portal > .customer-workbench-board {
  background: #ffffff !important;
  border: 1px solid var(--ems-line) !important;
  border-left: 4px solid var(--ems-customer) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  display: grid !important;
  gap: 1px !important;
  grid-template-columns: minmax(280px, 0.42fr) minmax(260px, 0.35fr) minmax(0, 1fr);
  margin-bottom: 8px !important;
  margin-top: 8px !important;
  padding: 0 !important;
}

body.edova-customer-portal > .customer-workbench-board .workbench-lead,
body.edova-customer-portal > .customer-workbench-board .operations-process,
body.edova-customer-portal > .customer-workbench-board .operations-actions {
  background: #ffffff !important;
  border-right: 1px solid var(--ems-line);
  min-width: 0;
  padding: 9px 10px !important;
}

body.edova-customer-portal > .customer-workbench-board .workbench-lead h2 {
  color: var(--ems-ink) !important;
  font-size: 15px !important;
  line-height: 1.15 !important;
  margin: 0 !important;
}

body.edova-customer-portal > .customer-workbench-board .workbench-lead span {
  color: var(--ems-muted) !important;
  display: block;
  font-size: 11px !important;
  line-height: 1.25 !important;
  margin-top: 3px;
}

body.edova-customer-portal > .customer-workbench-board .operations-process {
  align-content: center;
  display: grid !important;
  gap: 3px !important;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

body.edova-customer-portal > .customer-workbench-board .operations-process span {
  background: #f8fbfd !important;
  border: 1px solid var(--ems-line) !important;
  border-radius: 2px !important;
  color: var(--ems-muted) !important;
  display: grid;
  font-size: 10px !important;
  font-weight: 800;
  gap: 1px;
  min-height: 36px;
  padding: 4px 5px;
}

body.edova-customer-portal > .customer-workbench-board .operations-process strong {
  color: var(--ems-customer) !important;
  font-size: 11px !important;
}

body.edova-customer-portal > .customer-workbench-board .operations-actions {
  border-right: 0;
  display: grid !important;
  gap: 4px !important;
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

body.edova-customer-portal > .customer-workbench-board .operations-actions button {
  align-items: start;
  background: #f8fbfd !important;
  border: 1px solid var(--ems-line) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
  color: var(--ems-ink) !important;
  display: grid !important;
  gap: 2px;
  min-height: 46px !important;
  padding: 5px 6px !important;
  text-align: left;
}

body.edova-customer-portal > .customer-workbench-board .operations-actions button span {
  color: var(--ems-customer) !important;
  font-size: 10px !important;
  font-weight: 900;
}

body.edova-customer-portal > .customer-workbench-board .operations-actions button strong {
  color: var(--ems-ink) !important;
  font-size: 11px !important;
  line-height: 1.15 !important;
}

body.edova-customer-portal > .customer-workbench-board .operations-actions button small {
  color: var(--ems-muted) !important;
  font-size: 10px !important;
  line-height: 1.15 !important;
  min-height: 0 !important;
}

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 {
  border-color: var(--ems-customer) !important;
}

body.edova-customer-portal > .edova-system-spine {
  background: #ffffff !important;
  border: 1px solid var(--ems-line) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: minmax(260px, 0.35fr) minmax(0, 1fr);
  margin-bottom: 0 !important;
  padding: 8px !important;
}

body.edova-customer-portal > .edova-system-spine .system-spine-head {
  border-right: 1px solid var(--ems-line);
  padding-right: 10px;
}

body.edova-customer-portal > .edova-system-spine .system-spine-head h2 {
  color: var(--ems-ink) !important;
  font-size: 14px !important;
  line-height: 1.16 !important;
  margin: 0 !important;
}

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

body.edova-customer-portal > .edova-system-spine .system-spine-track {
  align-content: stretch;
  display: grid !important;
  gap: 1px !important;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

body.edova-customer-portal > .edova-system-spine .system-spine-node {
  background: #f8fbfd !important;
  border: 1px solid var(--ems-line) !important;
  border-radius: 0 !important;
  min-height: 58px;
  padding: 7px 8px !important;
}

body.edova-customer-portal > .layout {
  padding-top: 8px !important;
}

body.edova-customer-portal .customer-ems-console {
  border-left: 4px solid var(--ems-customer) !important;
}

body.edova-customer-portal .customer-ems-console .summary-band,
body.edova-customer-portal .customer-ems-console .energy-grid,
body.edova-customer-portal .ems-console-body {
  border-radius: 0 !important;
}

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

body.edova-customer-portal .customer-ems-console .metric strong {
  font-size: 21px !important;
}

body.edova-customer-portal .ems-console-body {
  grid-template-columns: minmax(560px, 1.26fr) minmax(340px, 0.74fr) !important;
}

body.edova-customer-portal .flow-card-head {
  align-items: start !important;
  grid-template-columns: minmax(0, 1fr) !important;
}

body.edova-customer-portal .flow-card-head > div:first-child {
  min-width: 0;
}

body.edova-customer-portal .flow-card-head #flow-summary {
  display: block;
  max-width: none !important;
  overflow-wrap: normal !important;
  white-space: normal !important;
}

body.edova-customer-portal .flow-legend {
  display: flex !important;
  flex-wrap: wrap;
  gap: 5px !important;
  justify-content: flex-start !important;
}

body.edova-customer-portal .ems-console-side,
body.edova-customer-portal .ems-console-side .panel,
body.edova-customer-portal .ems-console-side .control-panel {
  min-width: 0 !important;
}

body.edova-customer-portal .ems-console-side .control-panel {
  max-height: none !important;
  overflow: visible !important;
}

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

body.edova-customer-portal .ems-console-side .charge-point-list {
  max-height: none !important;
  overflow: visible !important;
}

body.edova-customer-portal .customer-selfservice-console {
  border-left: 4px solid var(--ems-customer) !important;
}

body.edova-customer-portal .customer-mode-notes article {
  border-left-color: #245f73 !important;
}

body.edova-customer-portal .customer-account-workbench {
  gap: 10px !important;
}

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

body.edova-customer-portal .portal-view-layout.view-overview #customer-operations {
  grid-column: 1 !important;
  grid-row: 1 !important;
}

body.edova-customer-portal .portal-view-layout.view-overview #dashboard {
  grid-column: 1 !important;
  grid-row: 2 !important;
}

/* Customer operating desk: compact daily EMS workspace, not a card stack. */
body.edova-customer-portal .customer-operations-panel {
  border-left: 4px solid var(--ems-customer) !important;
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: minmax(0, 1fr) !important;
  overflow: hidden !important;
  padding: 0 !important;
}

body.edova-customer-portal[data-active-view="overview"] #customer-operations {
  display: grid !important;
}

body.edova-customer-portal .customer-ops-console {
  display: grid !important;
  gap: 0 !important;
  min-width: 0 !important;
}

body.edova-customer-portal .customer-ops-head {
  background: #ffffff !important;
  border-bottom: 1px solid var(--ems-line) !important;
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.36fr) !important;
  min-width: 0 !important;
}

body.edova-customer-portal .customer-ops-head > div {
  min-width: 0 !important;
  padding: 9px 10px !important;
}

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

body.edova-customer-portal .customer-ops-head span,
body.edova-customer-portal .customer-ops-head small {
  color: var(--ems-muted) !important;
  display: block !important;
  font-size: 11px !important;
  line-height: 1.2 !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.edova-customer-portal .customer-ops-alert {
  align-content: center !important;
  background: #f8fbfd !important;
  border-left: 1px solid var(--ems-line) !important;
  display: grid !important;
  gap: 2px !important;
}

body.edova-customer-portal .customer-ops-alert strong {
  color: var(--ems-ink) !important;
  font-size: 13px !important;
  line-height: 1.15 !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.edova-customer-portal .customer-ops-alert.is-ok {
  border-left: 4px solid var(--ems-good) !important;
}

body.edova-customer-portal .customer-ops-alert.is-warning,
body.edova-customer-portal .customer-ops-alert.is-info {
  border-left: 4px solid var(--ems-warn) !important;
}

body.edova-customer-portal .customer-ops-alert.is-critical {
  border-left: 4px solid var(--ems-danger) !important;
}

body.edova-customer-portal .customer-ops-body {
  background: var(--ems-line) !important;
  display: grid !important;
  gap: 1px !important;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.3fr) !important;
  min-width: 0 !important;
}

body.edova-customer-portal .customer-ops-matrix {
  background: var(--ems-line) !important;
  display: grid !important;
  gap: 1px !important;
  min-width: 0 !important;
}

body.edova-customer-portal .customer-ops-row {
  align-items: center !important;
  background: #ffffff !important;
  border: 0 !important;
  border-left: 3px solid var(--ems-line-strong) !important;
  border-radius: 0 !important;
  color: var(--ems-ink) !important;
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: 110px minmax(190px, 0.86fr) minmax(220px, 1fr) 90px !important;
  min-height: 32px !important;
  min-width: 0 !important;
  padding: 4px 8px !important;
  text-align: left !important;
  width: 100% !important;
}

body.edova-customer-portal .customer-ops-row.is-head {
  background: #eef3f6 !important;
  border-left-color: var(--ems-line-strong) !important;
  min-height: 25px !important;
  pointer-events: none;
}

body.edova-customer-portal .customer-ops-row.is-ok {
  border-left-color: var(--ems-good) !important;
}

body.edova-customer-portal .customer-ops-row.is-warning,
body.edova-customer-portal .customer-ops-row.is-info {
  border-left-color: var(--ems-warn) !important;
}

body.edova-customer-portal .customer-ops-row.is-critical,
body.edova-customer-portal .customer-ops-row.is-missing {
  border-left-color: var(--ems-danger) !important;
}

body.edova-customer-portal .customer-ops-row span,
body.edova-customer-portal .customer-ops-row strong,
body.edova-customer-portal .customer-ops-row small,
body.edova-customer-portal .customer-ops-row b {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.edova-customer-portal .customer-ops-row span {
  color: var(--ems-muted) !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
}

body.edova-customer-portal .customer-ops-row strong {
  color: var(--ems-ink) !important;
  font-size: 12px !important;
  line-height: 1.16 !important;
}

body.edova-customer-portal .customer-ops-row small,
body.edova-customer-portal .customer-ops-row b {
  color: var(--ems-muted) !important;
  font-size: 11px !important;
  line-height: 1.16 !important;
}

body.edova-customer-portal .customer-ops-row b {
  color: var(--ems-customer) !important;
  font-weight: 900 !important;
}

body.edova-customer-portal .customer-ops-side {
  align-content: start !important;
  background: #ffffff !important;
  display: grid !important;
  gap: 1px !important;
  min-width: 0 !important;
}

body.edova-customer-portal .customer-ops-live {
  background: #f8fbfd !important;
  border-bottom: 1px solid var(--ems-line) !important;
  display: grid !important;
  gap: 2px !important;
  min-width: 0 !important;
  padding: 8px 10px !important;
}

body.edova-customer-portal .customer-ops-live span,
body.edova-customer-portal .customer-ops-live small {
  color: var(--ems-muted) !important;
  font-size: 11px !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.edova-customer-portal .customer-ops-live strong {
  color: var(--ems-ink) !important;
  font-size: 20px !important;
  line-height: 1.08 !important;
}

body.edova-customer-portal .customer-ops-actions {
  display: grid !important;
  gap: 5px !important;
  padding: 8px !important;
}

body.edova-customer-portal .customer-ops-actions button {
  min-height: 28px !important;
  padding: 0 8px !important;
  text-align: left !important;
}

@media (max-width: 1100px) {
  body.edova-customer-portal {
    display: block !important;
  }

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

  body.edova-customer-portal > .customer-workbench-board,
  body.edova-customer-portal > .edova-system-spine,
  body.edova-customer-portal .ems-console-body {
    grid-template-columns: minmax(0, 1fr) !important;
  }

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

  body.edova-customer-portal > .customer-workbench-board .operations-actions,
  body.edova-customer-portal > .customer-workbench-board .operations-process,
  body.edova-customer-portal > .edova-system-spine .system-spine-track,
  body.edova-customer-portal .customer-ems-console .energy-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

body.edova-admin-portal .portal-nav button.active,
body.edova-admin-portal .admin-mark {
  border-left-color: var(--ems-admin) !important;
}

body.edova-technician-portal .portal-nav button.active,
body.edova-technician-portal .rail-mark {
  border-left-color: var(--ems-tech) !important;
}

body.edova-customer-portal .portal-nav button.active {
  border-left: 3px solid var(--ems-customer) !important;
}

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

  body.edova-admin-portal .admin-sidebar,
  body.edova-technician-portal .technician-rail,
  body.edova-customer-portal > .portal-nav {
    min-height: 0;
    position: static !important;
  }

  body.edova-customer-portal > .portal-nav,
  body.edova-customer-portal > .topbar,
  body.edova-customer-portal > .view-scope-line,
  body.edova-customer-portal > .object-context,
  body.edova-customer-portal > .customer-workbench-board,
  body.edova-customer-portal > .edova-system-spine,
  body.edova-customer-portal > .layout,
  body.edova-customer-portal > .legal-footer {
    grid-column: 1;
  }

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

  body.edova-customer-portal > .topbar h1,
  body.edova-customer-portal > .topbar .top-customer-context,
  body.edova-customer-portal > .topbar .top-session-line {
    white-space: normal !important;
  }

  body.edova-customer-portal > .topbar .topbar-actions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, auto)) !important;
    justify-content: start !important;
    width: 100% !important;
  }

  body.edova-customer-portal > .topbar .top-session-line {
    grid-column: 1 / -1;
  }

  body.edova-admin-portal .object-context,
  body.edova-technician-portal .object-context,
  body.edova-customer-portal .object-context,
  body.edova-admin-portal .tenant-picker-grid,
  body.edova-admin-portal .admin-context-bar {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

@media (max-width: 760px) {
  body.edova-customer-portal > .portal-nav {
    margin: 0 14px 10px !important;
    min-height: 0 !important;
  }

  body.edova-customer-portal > .customer-scope-line,
  body.edova-customer-portal > .object-context,
  body.edova-customer-portal > .layout {
    margin-left: 12px !important;
    margin-right: 12px !important;
  }

  body.edova-customer-portal > .layout {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.edova-customer-portal .customer-ops-row {
    grid-template-columns: 74px minmax(0, 1fr) 70px !important;
  }

  body.edova-customer-portal .customer-ops-row small {
    grid-column: 2 / -1;
  }

  body.edova-customer-portal .customer-ops-row b {
    grid-column: 3;
    grid-row: 1;
  }
}

/* Final system orientation visibility: start screens use a compact system line,
   not the full architecture matrix. */
body.edova-admin-portal[data-active-view="plattform"] .admin-workbench-board,
body.edova-admin-portal[data-active-view="plattform"] .edova-admin-system-spine,
body.edova-technician-portal[data-active-view="overview"] .technician-workbench-board,
body.edova-technician-portal[data-active-view="overview"] .edova-technician-system-spine {
  display: grid !important;
}

body.edova-admin-portal[data-active-view="plattform"] .edova-admin-architecture-map,
body.edova-technician-portal[data-active-view="overview"] .edova-technician-architecture-map {
  display: none !important;
}

/* EDOVA professional command workspace rebuild.
   This final layer makes Admin, Technician and Customer surfaces behave like
   dense EMS operator workspaces while keeping the existing API bindings intact. */
body.edova-admin-portal,
body.edova-technician-portal {
  overflow: hidden !important;
}

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

body.edova-admin-portal .admin-sidebar,
body.edova-technician-portal .technician-rail {
  height: 100vh !important;
  min-height: 0 !important;
  overflow-y: auto !important;
  padding: 12px 10px !important;
}

body.edova-admin-portal .admin-workspace,
body.edova-technician-portal .technician-workspace {
  display: grid !important;
  grid-template-rows: auto auto auto auto minmax(0, 1fr);
  min-height: 0 !important;
  overflow: hidden !important;
}

body.edova-admin-portal .topbar,
body.edova-technician-portal .topbar {
  min-height: 52px !important;
  padding: 7px 12px !important;
  position: static !important;
}

body.edova-admin-portal .topbar h1,
body.edova-technician-portal .topbar h1 {
  font-size: 15px !important;
  line-height: 1.12 !important;
}

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

body.edova-admin-portal .topbar-actions,
body.edova-technician-portal .topbar-actions,
body.edova-customer-portal .topbar-actions {
  align-items: center !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 6px !important;
}

body.edova-admin-portal .topbar-actions button,
body.edova-technician-portal .topbar-actions button,
body.edova-customer-portal .topbar-actions button,
body.edova-admin-portal button,
body.edova-technician-portal button,
body.edova-customer-portal button {
  border-radius: 3px !important;
  min-height: 28px !important;
}

body.edova-admin-portal .admin-context-bar {
  gap: 6px !important;
  margin-top: 5px !important;
}

body.edova-admin-portal .tenant-picker-grid {
  grid-template-columns: minmax(180px, 0.8fr) minmax(160px, 0.7fr) auto auto !important;
}

body.edova-admin-portal .view-scope-line,
body.edova-customer-portal .view-scope-line {
  min-height: 30px !important;
  padding: 5px 12px !important;
}

body.edova-admin-portal .object-context,
body.edova-technician-portal .object-context,
body.edova-customer-portal .object-context {
  margin: 6px 10px 0 !important;
  min-height: 0 !important;
}

body.edova-admin-portal .layout,
body.edova-technician-portal .layout {
  height: auto !important;
  min-height: 0 !important;
  overflow: auto !important;
  padding: 8px 10px 12px !important;
}

body.edova-admin-portal .admin-workbench-board,
body.edova-technician-portal .technician-workbench-board,
body.edova-customer-portal .customer-workbench-board {
  background: #ffffff !important;
  border: 1px solid var(--ems-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  display: grid !important;
  gap: 0 !important;
  margin: 8px 10px 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
}

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

body.edova-customer-portal .customer-workbench-board {
  grid-template-columns: minmax(200px, 0.25fr) minmax(0, 1fr) !important;
}

body.edova-admin-portal .workbench-lead,
body.edova-technician-portal .workbench-lead,
body.edova-customer-portal .workbench-lead {
  align-content: center !important;
  background: var(--ems-surface-soft) !important;
  border-right: 1px solid var(--ems-line) !important;
  display: grid !important;
  gap: 2px !important;
  min-height: 54px !important;
  padding: 7px 9px !important;
}

body.edova-admin-portal .workbench-lead h2,
body.edova-technician-portal .workbench-lead h2,
body.edova-customer-portal .workbench-lead h2 {
  font-size: 13px !important;
  line-height: 1.12 !important;
  margin: 0 !important;
}

body.edova-admin-portal .workbench-lead span,
body.edova-technician-portal .workbench-lead span,
body.edova-customer-portal .workbench-lead span,
body.edova-admin-portal .operations-process,
body.edova-technician-portal .operations-process,
body.edova-customer-portal .operations-process {
  display: none !important;
}

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

body.edova-admin-portal .operations-actions button,
body.edova-technician-portal .operations-actions button,
body.edova-customer-portal .operations-actions button {
  align-content: center !important;
  background: #ffffff !important;
  border: 0 !important;
  border-left: 1px solid var(--ems-line) !important;
  border-radius: 0 !important;
  display: grid !important;
  gap: 1px !important;
  min-height: 54px !important;
  padding: 5px 7px !important;
  text-align: left !important;
}

body.edova-admin-portal .operations-actions button span,
body.edova-technician-portal .operations-actions button span,
body.edova-customer-portal .operations-actions button span {
  color: var(--ems-muted) !important;
  font-size: 10px !important;
  font-weight: 900 !important;
}

body.edova-admin-portal .operations-actions button strong,
body.edova-technician-portal .operations-actions button strong,
body.edova-customer-portal .operations-actions button strong {
  color: var(--ems-ink) !important;
  font-size: 11px !important;
  line-height: 1.1 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.edova-admin-portal .operations-actions button small,
body.edova-technician-portal .operations-actions button small,
body.edova-customer-portal .operations-actions button small {
  display: none !important;
}

body.edova-admin-portal .operations-actions button.active,
body.edova-admin-portal .operations-actions button:hover {
  box-shadow: inset 0 3px 0 var(--ems-admin) !important;
}

body.edova-technician-portal .operations-actions button.active,
body.edova-technician-portal .operations-actions button:hover {
  box-shadow: inset 0 3px 0 var(--ems-tech) !important;
}

body.edova-customer-portal .operations-actions button.active,
body.edova-customer-portal .operations-actions button:hover {
  box-shadow: inset 0 3px 0 var(--ems-customer) !important;
}

body.edova-admin-portal .edova-system-map,
body.edova-technician-portal .edova-system-map,
body.edova-admin-portal .edova-system-spine,
body.edova-technician-portal .edova-system-spine {
  border-radius: 0 !important;
  box-shadow: none !important;
  margin: 8px 10px 0 !important;
  padding: 0 !important;
}

body.edova-admin-portal .system-map-head,
body.edova-technician-portal .system-map-head,
body.edova-admin-portal .system-spine-head,
body.edova-technician-portal .system-spine-head {
  border-bottom: 1px solid var(--ems-line) !important;
  display: grid !important;
  gap: 2px !important;
  padding: 7px 9px !important;
}

body.edova-admin-portal .system-map-head h2,
body.edova-technician-portal .system-map-head h2,
body.edova-admin-portal .system-spine-head h2,
body.edova-technician-portal .system-spine-head h2 {
  font-size: 13px !important;
  margin: 0 !important;
}

body.edova-admin-portal .system-map-head span,
body.edova-technician-portal .system-map-head span,
body.edova-admin-portal .system-spine-head span,
body.edova-technician-portal .system-spine-head span {
  display: none !important;
}

body.edova-admin-portal .system-map-row,
body.edova-technician-portal .system-map-row {
  min-height: 30px !important;
}

body.edova-admin-portal .system-map-cell,
body.edova-technician-portal .system-map-cell {
  padding: 5px 7px !important;
}

body.edova-admin-portal .system-map-cell small,
body.edova-technician-portal .system-map-cell small,
body.edova-admin-portal .system-map-rules span,
body.edova-technician-portal .system-map-rules span {
  font-size: 10px !important;
  line-height: 1.16 !important;
}

body.edova-admin-portal .system-map-rules,
body.edova-technician-portal .system-map-rules {
  gap: 0 !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

body.edova-admin-portal .system-map-rules span,
body.edova-technician-portal .system-map-rules span {
  border-radius: 0 !important;
  border-width: 0 0 0 1px !important;
  min-height: 34px !important;
  padding: 5px 7px !important;
}

body.edova-admin-portal .panel,
body.edova-admin-portal .content,
body.edova-technician-portal .panel,
body.edova-technician-portal .content,
body.edova-customer-portal .panel,
body.edova-customer-portal .content {
  border-radius: 0 !important;
  box-shadow: none !important;
}

body.edova-admin-portal .panel-head,
body.edova-technician-portal .panel-head,
body.edova-customer-portal .panel-head {
  min-height: 36px !important;
  padding-bottom: 6px !important;
}

body.edova-admin-portal .panel-head h2,
body.edova-admin-portal .panel-head h3,
body.edova-technician-portal .panel-head h2,
body.edova-technician-portal .panel-head h3,
body.edova-customer-portal .panel-head h2,
body.edova-customer-portal .panel-head h3 {
  font-size: 14px !important;
  line-height: 1.14 !important;
}

body.edova-admin-portal .platform-operations-panel,
body.edova-admin-portal .platform-console-head,
body.edova-admin-portal .platform-console-body,
body.edova-technician-portal .service-focus-panel,
body.edova-technician-portal .technician-console-head,
body.edova-technician-portal .technician-console-body {
  border-radius: 0 !important;
  box-shadow: none !important;
}

body.edova-admin-portal .platform-console-head,
body.edova-technician-portal .technician-console-head {
  min-height: 64px !important;
}

body.edova-admin-portal .platform-stat-list,
body.edova-technician-portal .technician-console-stats {
  gap: 0 !important;
}

body.edova-admin-portal .platform-stat-row,
body.edova-technician-portal .technician-console-stat,
body.edova-customer-portal .metric {
  border-radius: 0 !important;
  min-height: 42px !important;
  padding: 5px 7px !important;
}

body.edova-admin-portal .platform-stat-row strong,
body.edova-technician-portal .technician-console-stat strong,
body.edova-customer-portal .metric strong {
  font-size: 17px !important;
  line-height: 1.05 !important;
}

body.edova-admin-portal .table th,
body.edova-admin-portal .table td,
body.edova-technician-portal .table th,
body.edova-technician-portal .table td,
body.edova-customer-portal .table th,
body.edova-customer-portal .table td {
  padding: 5px 7px !important;
}

body.edova-customer-portal {
  overflow: auto !important;
}

body.edova-customer-portal > .topbar {
  min-height: 54px !important;
  padding: 8px 14px !important;
  position: sticky !important;
}

body.edova-customer-portal > .layout {
  padding: 8px 10px 14px !important;
}

body.edova-customer-portal .customer-ems-console,
body.edova-customer-portal .customer-selfservice-console {
  border-radius: 0 !important;
  box-shadow: none !important;
}

@media (max-width: 1180px) {
  body.edova-admin-portal .admin-shell,
  body.edova-technician-portal .technician-shell,
  body.edova-customer-portal {
    display: block !important;
    height: auto !important;
    overflow: auto !important;
  }

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

  body.edova-admin-portal .admin-workspace,
  body.edova-technician-portal .technician-workspace {
    display: block !important;
    overflow: visible !important;
  }

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

/* Admin/Technician command density hard lock. */
body.edova-admin-portal .admin-workbench-board.admin-operations-strip .operations-actions button small,
body.edova-technician-portal .technician-workbench-board.technician-operations-strip .operations-actions button small,
body.edova-customer-portal .customer-workbench-board.customer-operations-strip .operations-actions button small {
  display: none !important;
  height: 0 !important;
  max-height: 0 !important;
  opacity: 0 !important;
  overflow: hidden !important;
}

body.edova-admin-portal .topbar {
  align-content: start !important;
  gap: 5px !important;
  grid-template-columns: minmax(0, 1fr) !important;
  min-height: 0 !important;
}

body.edova-admin-portal .topbar-main {
  align-items: center !important;
  display: grid !important;
  gap: 10px !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  min-height: 38px !important;
}

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

body.edova-admin-portal .admin-context-bar {
  align-items: start !important;
  display: grid !important;
  gap: 6px !important;
  grid-template-columns: minmax(0, 1fr) 230px !important;
  min-height: 0 !important;
}

body.edova-admin-portal .tenant-picker-grid {
  align-items: end !important;
  gap: 5px !important;
  grid-template-columns: minmax(160px, 0.8fr) minmax(130px, 0.56fr) auto auto !important;
}

body.edova-admin-portal .tenant-picker-grid label {
  align-items: center !important;
  display: grid !important;
  font-size: 10px !important;
  gap: 2px !important;
  line-height: 1 !important;
  min-width: 0 !important;
}

body.edova-admin-portal .tenant-picker-grid input,
body.edova-admin-portal .tenant-picker-grid select {
  min-height: 28px !important;
  padding: 3px 7px !important;
}

body.edova-admin-portal .tenant-picker-grid button {
  min-height: 28px !important;
  padding: 0 9px !important;
  white-space: nowrap !important;
}

body.edova-admin-portal .global-customer-alerts {
  align-content: start !important;
  font-size: 10px !important;
  line-height: 1.12 !important;
  max-height: 38px !important;
  min-height: 0 !important;
  overflow: auto !important;
  padding: 5px 7px !important;
}

body.edova-admin-portal .global-customer-alerts > span {
  display: block !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.edova-admin-portal .topbar > .topbar-main {
  align-items: center !important;
  display: grid !important;
  gap: 10px !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  min-height: 38px !important;
}

body.edova-admin-portal .topbar .topbar-brand {
  min-height: 0 !important;
  padding-left: 0 !important;
}

body.edova-admin-portal .topbar .topbar-brand::before {
  display: none !important;
}

body.edova-admin-portal .topbar > .admin-context-bar {
  max-height: 44px !important;
  overflow: hidden !important;
}

body.edova-admin-portal .topbar .global-customer-alerts {
  max-height: 44px !important;
  min-height: 0 !important;
  overflow: auto !important;
  padding: 5px 7px !important;
}

body.edova-admin-portal .topbar .global-customer-alerts > :not(:first-child) {
  display: none !important;
}

body.edova-admin-portal .admin-workbench-board.admin-operations-strip .workbench-lead > span,
body.edova-technician-portal .technician-workbench-board.technician-operations-strip .workbench-lead > span,
body.edova-customer-portal .customer-workbench-board.customer-operations-strip .workbench-lead > span {
  display: none !important;
  height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
}

body.edova-admin-portal .admin-workbench-board.admin-operations-strip .workbench-lead,
body.edova-technician-portal .technician-workbench-board.technician-operations-strip .workbench-lead,
body.edova-customer-portal .customer-workbench-board.customer-operations-strip .workbench-lead {
  min-height: 50px !important;
  padding: 6px 8px !important;
}

body.edova-admin-portal[data-active-view="plattform"] .edova-admin-system-spine,
body.edova-technician-portal[data-active-view="overview"] .edova-technician-system-spine {
  align-items: stretch !important;
  grid-template-columns: 260px minmax(0, 1fr) !important;
  max-height: 72px !important;
  min-height: 0 !important;
  overflow: hidden !important;
}

body.edova-admin-portal[data-active-view="plattform"] .edova-admin-system-spine .system-spine-head,
body.edova-technician-portal[data-active-view="overview"] .edova-technician-system-spine .system-spine-head,
body.edova-admin-portal[data-active-view="plattform"] .edova-admin-system-spine .system-spine-track,
body.edova-technician-portal[data-active-view="overview"] .edova-technician-system-spine .system-spine-track {
  max-height: 64px !important;
  min-height: 0 !important;
  overflow: hidden !important;
}

body.edova-admin-portal[data-active-view="plattform"] .edova-admin-system-spine .system-spine-node,
body.edova-technician-portal[data-active-view="overview"] .edova-technician-system-spine .system-spine-node {
  min-height: 0 !important;
  padding: 6px 8px !important;
}

/* EDOVA command-table pass: remove remaining card-like command blocks from
   Admin and Technician start workspaces. */
body.edova-admin-portal .admin-workbench-board,
body.edova-technician-portal .technician-workbench-board {
  grid-template-columns: 170px minmax(0, 1fr) !important;
}

body.edova-admin-portal .admin-workbench-board.admin-operations-strip .workbench-lead,
body.edova-technician-portal .technician-workbench-board.technician-operations-strip .workbench-lead {
  min-height: 42px !important;
  padding: 5px 8px !important;
}

body.edova-admin-portal .operations-actions button,
body.edova-technician-portal .operations-actions button {
  min-height: 42px !important;
  padding: 4px 7px !important;
}

body.edova-admin-portal[data-active-view="plattform"] .edova-admin-system-spine,
body.edova-technician-portal[data-active-view="overview"] .edova-technician-system-spine {
  grid-template-columns: 222px minmax(0, 1fr) !important;
  max-height: 58px !important;
}

body.edova-admin-portal[data-active-view="plattform"] .edova-admin-system-spine .system-spine-head,
body.edova-technician-portal[data-active-view="overview"] .edova-technician-system-spine .system-spine-head,
body.edova-admin-portal[data-active-view="plattform"] .edova-admin-system-spine .system-spine-track,
body.edova-technician-portal[data-active-view="overview"] .edova-technician-system-spine .system-spine-track {
  max-height: 54px !important;
}

body.edova-admin-portal .platform-console-body {
  align-items: start !important;
  grid-template-columns: minmax(0, 1fr) !important;
}

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

body.edova-admin-portal .platform-console-side .platform-issue-list {
  grid-column: 1 !important;
  grid-row: 1 !important;
  width: auto !important;
}

body.edova-admin-portal .platform-console-side .platform-command-list {
  grid-column: 2 !important;
  grid-row: 1 !important;
  width: auto !important;
}

body.edova-admin-portal .platform-command-list,
body.edova-admin-portal .tenant-summary-table,
body.edova-admin-portal .tenant-command-list,
body.edova-technician-portal .technician-mission-list {
  background: var(--ems-line) !important;
  display: grid !important;
  gap: 1px !important;
  min-width: 0 !important;
  overflow: hidden !important;
}

body.edova-admin-portal .platform-command-row,
body.edova-admin-portal .tenant-command-row,
body.edova-technician-portal .technician-mission-row {
  align-items: center !important;
  background: #ffffff !important;
  border: 0 !important;
  border-left: 3px solid var(--ems-role) !important;
  border-radius: 0 !important;
  color: var(--ems-ink) !important;
  display: grid !important;
  gap: 6px !important;
  min-height: 30px !important;
  min-width: 0 !important;
  padding: 4px 7px !important;
  text-align: left !important;
  width: 100% !important;
}

body.edova-admin-portal .platform-command-row {
  grid-template-columns: 74px minmax(0, 1fr) 54px !important;
}

body.edova-admin-portal .tenant-command-row {
  grid-template-columns: minmax(92px, 0.82fr) minmax(0, 1fr) !important;
}

body.edova-technician-portal .technician-mission-row {
  grid-template-columns: 48px minmax(150px, 0.9fr) minmax(0, 1fr) 92px !important;
}

body.edova-admin-portal .platform-command-row.is-head,
body.edova-admin-portal .tenant-command-row.is-head,
body.edova-technician-portal .technician-mission-row.is-head {
  background: #eef3f6 !important;
  border-left-color: var(--ems-line-strong) !important;
  min-height: 24px !important;
  pointer-events: none !important;
}

body.edova-admin-portal button.platform-command-row:hover,
body.edova-admin-portal button.platform-command-row:focus-visible,
body.edova-admin-portal button.tenant-command-row:hover,
body.edova-admin-portal button.tenant-command-row:focus-visible,
body.edova-technician-portal button.technician-mission-row:hover,
body.edova-technician-portal button.technician-mission-row:focus-visible {
  background: #f8fafb !important;
  box-shadow: inset 0 0 0 1px var(--ems-role) !important;
}

body.edova-admin-portal .platform-command-row span,
body.edova-admin-portal .platform-command-row strong,
body.edova-admin-portal .platform-command-row small,
body.edova-admin-portal .tenant-summary-row span,
body.edova-admin-portal .tenant-summary-row strong,
body.edova-admin-portal .tenant-summary-row small,
body.edova-admin-portal .tenant-command-row span,
body.edova-admin-portal .tenant-command-row strong,
body.edova-admin-portal .tenant-command-row small,
body.edova-technician-portal .technician-mission-row span,
body.edova-technician-portal .technician-mission-row strong,
body.edova-technician-portal .technician-mission-row small,
body.edova-technician-portal .technician-mission-row em {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.edova-admin-portal .platform-command-row span,
body.edova-admin-portal .tenant-summary-row span,
body.edova-technician-portal .technician-mission-row span {
  color: var(--ems-muted) !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
}

body.edova-admin-portal .platform-command-row strong,
body.edova-admin-portal .tenant-summary-row strong,
body.edova-admin-portal .tenant-command-row strong,
body.edova-technician-portal .technician-mission-row strong {
  color: var(--ems-ink) !important;
  font-size: 12px !important;
  line-height: 1.14 !important;
}

body.edova-admin-portal .platform-command-row small,
body.edova-admin-portal .tenant-summary-row small,
body.edova-admin-portal .tenant-command-row small,
body.edova-technician-portal .technician-mission-row small,
body.edova-technician-portal .technician-mission-row em {
  color: var(--ems-muted) !important;
  font-size: 11px !important;
  font-style: normal !important;
  line-height: 1.15 !important;
}

body.edova-admin-portal .admin-tenant-command-shell {
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: minmax(0, 1fr) 260px !important;
  margin-bottom: 8px !important;
  min-width: 0 !important;
}

body.edova-admin-portal .tenant-summary-row {
  align-items: center !important;
  background: #ffffff !important;
  border: 0 !important;
  border-left: 3px solid var(--ems-line-strong) !important;
  display: grid !important;
  gap: 6px !important;
  grid-template-columns: 90px minmax(160px, 0.64fr) minmax(0, 1fr) !important;
  min-height: 29px !important;
  min-width: 0 !important;
  padding: 4px 7px !important;
}

body.edova-admin-portal .tenant-summary-row.is-head {
  background: #eef3f6 !important;
  min-height: 24px !important;
}

body.edova-admin-portal .tenant-summary-row.is-good {
  border-left-color: var(--ems-good) !important;
}

body.edova-admin-portal .tenant-summary-row.is-warn {
  border-left-color: var(--ems-warn) !important;
}

body.edova-admin-portal .tenant-hero,
body.edova-admin-portal .tenant-stat-strip {
  display: none !important;
}

body.edova-technician-portal .technician-console-main .technician-mission-grid {
  display: none !important;
}

body.edova-technician-portal .technician-console-main .technician-mission-board {
  min-height: 0 !important;
}

body.edova-technician-portal .technician-console-main .technician-mission-head small {
  max-width: 420px !important;
}

body.edova-technician-portal .technician-mission-row.is-good,
body.edova-technician-portal .technician-mission-row.is-info {
  border-left-color: var(--ems-good) !important;
}

body.edova-technician-portal .technician-mission-row.is-warning {
  border-left-color: var(--ems-warn) !important;
}

body.edova-technician-portal .technician-mission-row.is-critical {
  border-left-color: var(--ems-danger) !important;
}

body.edova-customer-portal .flow-panel {
  overflow: hidden !important;
}

body.edova-customer-portal .flow-sankey-chart.is-empty-schema {
  background:
    linear-gradient(90deg, rgba(16, 39, 45, 0.06) 0 1px, transparent 1px 100%),
    linear-gradient(180deg, rgba(16, 39, 45, 0.05) 0 1px, transparent 1px 100%),
    #fbfdfd !important;
  background-size: 28px 28px !important;
  min-height: 286px !important;
  position: relative !important;
}

body.edova-customer-portal .flow-sankey-chart.is-empty-schema::after {
  border: 1px solid rgba(15, 118, 110, 0.16);
  content: "";
  inset: 10px;
  pointer-events: none;
  position: absolute;
}

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

body.edova-customer-portal .flow-kpis span {
  border-radius: 3px !important;
  min-height: 42px !important;
  padding: 6px 7px !important;
}

body.edova-admin-portal .system-spine-proofline,
body.edova-technician-portal .system-spine-proofline,
body.edova-customer-portal .system-spine-proofline {
  border-top: 1px solid var(--ems-line) !important;
  display: grid !important;
  gap: 1px !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  margin-top: 1px !important;
  min-width: 0 !important;
}

body.edova-admin-portal .system-spine-proofline span,
body.edova-technician-portal .system-spine-proofline span,
body.edova-customer-portal .system-spine-proofline span {
  background: #ffffff !important;
  border-left: 3px solid var(--ems-line-strong) !important;
  display: grid !important;
  gap: 2px !important;
  min-height: 36px !important;
  min-width: 0 !important;
  padding: 5px 7px !important;
}

body.edova-admin-portal .system-spine-proofline span:nth-child(1),
body.edova-technician-portal .system-spine-proofline span:nth-child(1),
body.edova-customer-portal .system-spine-proofline span:nth-child(1) {
  border-left-color: var(--ems-role) !important;
}

body.edova-admin-portal .system-spine-proofline b,
body.edova-admin-portal .system-spine-proofline small,
body.edova-technician-portal .system-spine-proofline b,
body.edova-technician-portal .system-spine-proofline small,
body.edova-customer-portal .system-spine-proofline b,
body.edova-customer-portal .system-spine-proofline small {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.edova-admin-portal .system-spine-proofline b,
body.edova-technician-portal .system-spine-proofline b,
body.edova-customer-portal .system-spine-proofline b {
  color: var(--ems-ink) !important;
  font-size: 11px !important;
  line-height: 1.12 !important;
}

body.edova-admin-portal .system-spine-proofline small,
body.edova-technician-portal .system-spine-proofline small,
body.edova-customer-portal .system-spine-proofline small {
  color: var(--ems-muted) !important;
  font-size: 10px !important;
  line-height: 1.12 !important;
}

body.edova-admin-portal[data-active-view="plattform"] .edova-admin-system-spine,
body.edova-technician-portal[data-active-view="overview"] .edova-technician-system-spine {
  grid-template-columns: 222px minmax(0, 1fr) !important;
  grid-template-rows: auto auto !important;
  max-height: none !important;
  min-height: 86px !important;
  overflow: hidden !important;
}

body.edova-admin-portal[data-active-view="plattform"] .edova-admin-system-spine .system-spine-head,
body.edova-technician-portal[data-active-view="overview"] .edova-technician-system-spine .system-spine-head {
  grid-column: 1 !important;
  grid-row: 1 / 3 !important;
  max-height: none !important;
  min-height: 0 !important;
  overflow: hidden !important;
}

body.edova-admin-portal[data-active-view="plattform"] .edova-admin-system-spine .system-spine-track,
body.edova-technician-portal[data-active-view="overview"] .edova-technician-system-spine .system-spine-track {
  grid-column: 2 !important;
  grid-row: 1 !important;
  max-height: none !important;
  min-height: 0 !important;
  overflow: hidden !important;
}

body.edova-admin-portal[data-active-view="plattform"] .edova-admin-system-spine .system-spine-proofline,
body.edova-technician-portal[data-active-view="overview"] .edova-technician-system-spine .system-spine-proofline {
  grid-column: 2 !important;
  grid-row: 2 !important;
}

body.edova-admin-portal[data-active-view="plattform"] .edova-admin-system-spine .system-spine-node,
body.edova-technician-portal[data-active-view="overview"] .edova-technician-system-spine .system-spine-node {
  min-height: 37px !important;
  padding: 5px 7px !important;
}

body.edova-admin-portal[data-active-view="plattform"] .edova-admin-system-spine .system-spine-proofline span,
body.edova-technician-portal[data-active-view="overview"] .edova-technician-system-spine .system-spine-proofline span {
  min-height: 34px !important;
}

body.edova-customer-portal.is-authenticated[data-active-view="overview"] .edova-customer-system-spine {
  display: grid !important;
  grid-template-columns: 222px minmax(0, 1fr) !important;
  grid-template-rows: auto auto !important;
  margin: 8px 10px 0 !important;
  max-height: none !important;
  min-height: 86px !important;
  overflow: hidden !important;
}

body.edova-customer-portal.is-authenticated[data-active-view="overview"] .edova-customer-system-spine .system-spine-head {
  grid-column: 1 !important;
  grid-row: 1 / 3 !important;
  max-height: none !important;
  min-height: 0 !important;
  overflow: hidden !important;
}

body.edova-customer-portal.is-authenticated[data-active-view="overview"] .edova-customer-system-spine .system-spine-track {
  grid-column: 2 !important;
  grid-row: 1 !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  max-height: none !important;
  min-height: 0 !important;
  overflow: hidden !important;
}

body.edova-customer-portal.is-authenticated[data-active-view="overview"] .edova-customer-system-spine .system-spine-proofline {
  grid-column: 2 !important;
  grid-row: 2 !important;
}

body.edova-customer-portal.is-authenticated[data-active-view="overview"] .edova-customer-system-spine .system-spine-node {
  min-height: 37px !important;
  padding: 5px 7px !important;
}

body.edova-customer-portal.is-authenticated[data-active-view="overview"] .edova-customer-system-spine .system-spine-proofline span {
  min-height: 34px !important;
}

body.edova-customer-portal .customer-identity-workspace {
  border-left: 4px solid var(--ems-customer) !important;
  overflow: hidden !important;
  padding: 0 !important;
}

body.edova-customer-portal .customer-identity-workspace .customer-workspace-head {
  border-bottom: 1px solid var(--ems-line) !important;
  margin: 0 !important;
  min-height: 56px !important;
  padding: 9px 12px !important;
}

body.edova-customer-portal .customer-identity-workspace .workspace-count {
  align-self: center !important;
  background: var(--ems-surface-soft) !important;
  border: 1px solid var(--ems-line) !important;
  border-radius: 3px !important;
  color: var(--ems-muted) !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  justify-self: end !important;
  line-height: 1 !important;
  min-width: 0 !important;
  padding: 6px 8px !important;
  text-transform: uppercase !important;
}

body.edova-customer-portal .customer-identity-summary {
  background: var(--ems-line) !important;
  display: grid !important;
  gap: 1px !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  min-width: 0 !important;
}

body.edova-customer-portal .customer-identity-stat {
  background: #ffffff !important;
  border-left: 3px solid var(--ems-line-strong) !important;
  display: grid !important;
  gap: 2px !important;
  min-height: 52px !important;
  min-width: 0 !important;
  padding: 7px 9px !important;
}

body.edova-customer-portal .customer-identity-stat.is-good {
  border-left-color: var(--ems-good) !important;
}

body.edova-customer-portal .customer-identity-stat.is-warning,
body.edova-customer-portal .customer-identity-stat.is-critical {
  border-left-color: var(--ems-warn) !important;
}

body.edova-customer-portal .customer-identity-stat.is-info {
  border-left-color: var(--ems-info) !important;
}

/* 2026-06-11 professional light pass.
   Keep all existing bindings intact, but reduce visual weight and move the
   three web portals from dark command rails to a bright technical workspace. */
body.edova-admin-portal,
body.edova-technician-portal,
body.edova-customer-portal {
  --ems-bg: #f4f7f8;
  --ems-surface: #ffffff;
  --ems-surface-soft: #f8fafb;
  --ems-line: #d7e0e5;
  --ems-line-strong: #aebcc5;
  --ems-ink: #14242e;
  --ems-muted: #5c6f79;
  --ems-rail: #ffffff;
  --ems-rail-soft: #f7fafb;
  --ems-admin: #245f73;
  --ems-tech: #245f73;
  --ems-customer: #245f73;
  --ems-role: #245f73;
  --ems-good: #21735b;
  --ems-info: #245f73;
  --ems-warn: #9a6700;
  --ems-danger: #a8302b;
  background:
    linear-gradient(90deg, rgba(36, 95, 115, 0.035) 0 1px, transparent 1px 100%),
    linear-gradient(180deg, rgba(20, 36, 46, 0.035) 0 1px, transparent 1px 100%),
    var(--ems-bg) !important;
  background-size: 32px 32px !important;
}

body.edova-admin-portal h1,
body.edova-admin-portal h2,
body.edova-admin-portal h3,
body.edova-technician-portal h1,
body.edova-technician-portal h2,
body.edova-technician-portal h3,
body.edova-customer-portal h1,
body.edova-customer-portal h2,
body.edova-customer-portal h3 {
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}

body.edova-admin-portal strong,
body.edova-admin-portal b,
body.edova-technician-portal strong,
body.edova-technician-portal b,
body.edova-customer-portal strong,
body.edova-customer-portal b {
  font-weight: 600 !important;
}

body.edova-admin-portal .eyebrow,
body.edova-technician-portal .eyebrow,
body.edova-customer-portal .eyebrow,
body.edova-admin-portal .portal-nav-label,
body.edova-technician-portal .portal-nav-label,
body.edova-customer-portal .portal-nav-label {
  color: var(--ems-muted) !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}

body.edova-admin-portal .admin-sidebar,
body.edova-technician-portal .technician-rail,
body.edova-customer-portal > .portal-nav {
  background: rgba(255, 255, 255, 0.96) !important;
  border-right: 1px solid var(--ems-line) !important;
  color: var(--ems-ink) !important;
}

body.edova-admin-portal .admin-sidebar-brand,
body.edova-technician-portal .rail-brand,
body.edova-customer-portal > .portal-nav::before {
  background: var(--ems-rail-soft) !important;
  border: 1px solid var(--ems-line) !important;
  border-left: 3px solid var(--ems-role) !important;
  border-radius: 4px !important;
  color: var(--ems-ink) !important;
}

body.edova-admin-portal .admin-sidebar-brand p,
body.edova-technician-portal .rail-brand p,
body.edova-admin-portal .admin-sidebar-brand span,
body.edova-technician-portal .rail-brand span {
  color: var(--ems-muted) !important;
  font-weight: 500 !important;
}

body.edova-admin-portal .admin-sidebar-brand strong,
body.edova-technician-portal .rail-brand strong {
  color: var(--ems-ink) !important;
  font-weight: 600 !important;
}

body.edova-customer-portal > .portal-nav::before {
  content: "EDOVA EMS\A Kundenportal";
  font-size: 14px !important;
  font-weight: 600 !important;
}

body.edova-admin-portal .admin-mark,
body.edova-technician-portal .rail-mark {
  background: var(--ems-role) !important;
  box-shadow: none !important;
}

body.edova-admin-portal .portal-nav,
body.edova-technician-portal .portal-nav,
body.edova-customer-portal > .portal-nav {
  gap: 5px !important;
}

body.edova-admin-portal .portal-nav + .portal-nav,
body.edova-technician-portal .rail-process {
  border-top: 1px solid var(--ems-line) !important;
}

body.edova-admin-portal .portal-nav button,
body.edova-technician-portal .portal-nav button,
body.edova-customer-portal > .portal-nav button {
  background: transparent !important;
  border: 1px solid transparent !important;
  border-radius: 4px !important;
  color: var(--ems-ink) !important;
  font-weight: 500 !important;
  min-height: 33px !important;
}

body.edova-admin-portal .portal-nav button span,
body.edova-technician-portal .portal-nav button span,
body.edova-customer-portal > .portal-nav button span {
  color: var(--ems-muted) !important;
  font-weight: 500 !important;
}

body.edova-admin-portal .portal-nav button.active,
body.edova-admin-portal .portal-nav button:hover,
body.edova-technician-portal .portal-nav button.active,
body.edova-technician-portal .portal-nav button:hover,
body.edova-customer-portal > .portal-nav button.active,
body.edova-customer-portal > .portal-nav button:hover,
body.edova-customer-portal > .portal-nav button[aria-selected="true"] {
  background: #eef5f7 !important;
  border-color: #c6d7de !important;
  box-shadow: inset 3px 0 0 var(--ems-role) !important;
  color: var(--ems-ink) !important;
}

body.edova-admin-portal button,
body.edova-technician-portal button,
body.edova-customer-portal button,
body.edova-admin-portal input,
body.edova-admin-portal select,
body.edova-admin-portal textarea,
body.edova-technician-portal input,
body.edova-technician-portal select,
body.edova-technician-portal textarea,
body.edova-customer-portal input,
body.edova-customer-portal select,
body.edova-customer-portal textarea {
  font-weight: 500 !important;
}

body.edova-admin-portal .panel,
body.edova-admin-portal .platform-operations-panel,
body.edova-admin-portal .tenant-room-panel,
body.edova-technician-portal .panel,
body.edova-technician-portal .service-focus-panel,
body.edova-customer-portal .panel,
body.edova-customer-portal .customer-operations-panel,
body.edova-customer-portal .customer-ems-console,
body.edova-customer-portal .flow-panel,
body.edova-customer-portal .control-policy-panel,
body.edova-customer-portal .monthly-panel {
  background: rgba(255, 255, 255, 0.98) !important;
}

body.edova-admin-portal .panel-head h2,
body.edova-technician-portal .panel-head h2,
body.edova-customer-portal .panel-head h2,
body.edova-customer-portal .ems-console-head h2 {
  font-weight: 600 !important;
}

body.edova-admin-portal .metric,
body.edova-admin-portal .analytics-metrics div,
body.edova-admin-portal .billing-status-panel article,
body.edova-admin-portal .admin-controller-review-grid article,
body.edova-technician-portal .metric,
body.edova-technician-portal .technician-console-stat,
body.edova-customer-portal .metric,
body.edova-customer-portal .summary-band div,
body.edova-customer-portal .monthly-grid > div,
body.edova-customer-portal .billing-status-panel article,
body.edova-customer-portal .customer-identity-stat {
  background: #fbfcfd !important;
}

body.edova-customer-portal .customer-identity-stat.is-muted {
  border-left-color: var(--ems-line-strong) !important;
}

body.edova-customer-portal .customer-identity-stat span,
body.edova-customer-portal .customer-identity-stat strong,
body.edova-customer-portal .customer-identity-stat small {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.edova-customer-portal .customer-identity-stat span {
  color: var(--ems-muted) !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
}

body.edova-customer-portal .customer-identity-stat strong {
  color: var(--ems-ink) !important;
  font-size: 18px !important;
  line-height: 1.05 !important;
}

body.edova-customer-portal .customer-identity-stat small {
  color: var(--ems-muted) !important;
  font-size: 11px !important;
}

body.edova-customer-portal .customer-identity-layout {
  border-top: 1px solid var(--ems-line) !important;
  grid-template-columns: minmax(340px, 0.38fr) minmax(0, 1fr) !important;
  margin: 0 !important;
}

body.edova-customer-portal .customer-list-rail,
body.edova-customer-portal .customer-form-rail {
  padding: 10px !important;
}

body.edova-customer-portal .customer-list-rail {
  grid-template-rows: auto minmax(220px, 1fr) !important;
}

body.edova-customer-portal .customer-identity-empty {
  align-content: start !important;
  background: #ffffff !important;
  border-left: 3px solid var(--ems-warn) !important;
  display: grid !important;
  gap: 6px !important;
  min-height: 220px !important;
  padding: 12px !important;
}

body.edova-customer-portal .customer-identity-empty strong {
  color: var(--ems-ink) !important;
  font-size: 14px !important;
}

body.edova-customer-portal .customer-identity-empty span,
body.edova-customer-portal .customer-identity-empty small {
  color: var(--ems-muted) !important;
  font-size: 12px !important;
  line-height: 1.25 !important;
}

body.edova-customer-portal .customer-tool-section .tool-form {
  padding: 8px !important;
}

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

body.edova-customer-portal .customer-tool-section .form-grid label,
body.edova-customer-portal .customer-tool-section .customer-charge-point-picker {
  min-height: 58px !important;
  padding: 6px 7px !important;
}

/* 2026 console polish: Admin and Technician are workstation tools. */
body.edova-admin-portal,
body.edova-technician-portal {
  --ems-bg: #f3f6f5;
  --ems-surface: #fcfdfc;
  --ems-surface-soft: #f7faf8;
  --ems-line: #d9e3df;
  --ems-line-strong: #9fb4ae;
  --ems-ink: #14251f;
  --ems-muted: #5a6b64;
  background:
    linear-gradient(90deg, rgba(20, 37, 31, 0.025) 0, rgba(20, 37, 31, 0.025) 1px, transparent 1px, transparent 42px),
    var(--ems-bg) !important;
  font-family: "Segoe UI", Arial, Helvetica, sans-serif !important;
}

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

body.edova-admin-portal .admin-sidebar,
body.edova-technician-portal .technician-rail {
  background: #f8fbfa !important;
  border-right: 1px solid #cfdcd7 !important;
  color: var(--ems-ink) !important;
  gap: 8px !important;
  padding: 10px !important;
}

body.edova-admin-portal .admin-sidebar-brand,
body.edova-technician-portal .rail-brand {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid var(--ems-line) !important;
  border-left: 4px solid var(--ems-role) !important;
  border-radius: 6px !important;
  display: grid !important;
  grid-template-columns: 28px minmax(0, 1fr) !important;
  margin: 0 0 12px !important;
  min-height: 72px !important;
  padding: 10px !important;
}

body.edova-admin-portal .admin-mark,
body.edova-technician-portal .rail-mark {
  background: var(--ems-role) !important;
  border-radius: 5px !important;
  height: 22px !important;
  width: 22px !important;
}

body.edova-admin-portal .admin-sidebar-brand p,
body.edova-technician-portal .rail-brand p,
body.edova-admin-portal .portal-nav-label,
body.edova-technician-portal .portal-nav-label {
  color: var(--ems-muted) !important;
  font-size: 10px !important;
}

body.edova-admin-portal .admin-sidebar-brand strong,
body.edova-technician-portal .rail-brand strong {
  color: var(--ems-ink) !important;
  font-size: 17px !important;
}

body.edova-admin-portal .admin-sidebar-brand span,
body.edova-technician-portal .rail-brand span,
body.edova-admin-portal .admin-version-badge {
  color: var(--ems-muted) !important;
}

body.edova-admin-portal .portal-nav + .portal-nav,
body.edova-technician-portal .rail-process {
  border-top: 1px solid var(--ems-line) !important;
}

body.edova-admin-portal .portal-nav button,
body.edova-technician-portal .portal-nav button {
  background: transparent !important;
  border: 1px solid transparent !important;
  border-left: 3px solid transparent !important;
  color: #263b34 !important;
  font-size: 13px !important;
  font-weight: 750 !important;
  min-height: 31px !important;
  padding: 0 8px !important;
}

body.edova-admin-portal .portal-nav button span,
body.edova-technician-portal .portal-nav button span {
  background: #edf3f1 !important;
  border: 1px solid #d7e3df !important;
  border-radius: 3px !important;
  color: var(--ems-muted) !important;
  display: inline-grid !important;
  min-width: 22px !important;
  padding: 2px 4px !important;
  place-items: center !important;
}

body.edova-admin-portal .portal-nav button.active,
body.edova-technician-portal .portal-nav button.active {
  background: #ffffff !important;
  border-color: var(--ems-line) !important;
  border-left-color: var(--ems-role) !important;
  color: var(--ems-ink) !important;
}

body.edova-admin-portal .portal-nav button:hover,
body.edova-technician-portal .portal-nav button:hover {
  background: #ffffff !important;
  color: var(--ems-ink) !important;
}

body.edova-admin-portal .topbar,
body.edova-technician-portal .topbar {
  background: rgba(252, 253, 252, 0.96) !important;
  border-bottom: 1px solid var(--ems-line) !important;
  box-shadow: 0 1px 0 rgba(20, 37, 31, 0.03) !important;
}

body.edova-admin-portal .topbar h1,
body.edova-technician-portal .topbar h1 {
  font-size: 16px !important;
  font-weight: 800 !important;
}

body.edova-admin-portal .topbar-actions button,
body.edova-technician-portal .topbar-actions button {
  background: #ffffff !important;
  border: 1px solid var(--ems-line-strong) !important;
  color: var(--ems-ink) !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  padding: 0 10px !important;
}

body.edova-admin-portal .topbar-actions button:last-child,
body.edova-technician-portal .topbar-actions button:last-child {
  background: var(--ems-ink) !important;
  border-color: var(--ems-ink) !important;
  color: #ffffff !important;
}

body.edova-admin-portal .top-session-line,
body.edova-technician-portal .top-session-line {
  background: #ffffff !important;
  border: 1px solid var(--ems-line) !important;
  border-radius: 4px !important;
  color: var(--ems-muted) !important;
  padding: 5px 8px !important;
}

body.edova-admin-portal .admin-context-bar,
body.edova-admin-portal .view-scope-line,
body.edova-admin-portal .object-context,
body.edova-technician-portal .object-context {
  background: transparent !important;
  border: 0 !important;
}

body.edova-admin-portal .top-tenant-picker,
body.edova-admin-portal .global-customer-alerts,
body.edova-admin-portal .view-scope-line,
body.edova-admin-portal .object-context,
body.edova-technician-portal .object-context {
  box-shadow: none !important;
}

body.edova-admin-portal .tenant-picker-grid input,
body.edova-admin-portal .tenant-picker-grid select,
body.edova-admin-portal input,
body.edova-admin-portal select,
body.edova-admin-portal textarea,
body.edova-technician-portal input,
body.edova-technician-portal select,
body.edova-technician-portal textarea {
  background: #ffffff !important;
  border-color: #b9cac4 !important;
  color: var(--ems-ink) !important;
}

body.edova-admin-portal .admin-workbench-board,
body.edova-technician-portal .technician-workbench-board,
body.edova-admin-portal .edova-system-spine,
body.edova-technician-portal .edova-system-spine,
body.edova-admin-portal .panel,
body.edova-technician-portal .panel,
body.edova-admin-portal .platform-operations-panel,
body.edova-technician-portal .service-focus-panel {
  background: #ffffff !important;
  border-color: #cedbd6 !important;
  border-radius: 6px !important;
}

body.edova-admin-portal .admin-workbench-board,
body.edova-technician-portal .technician-workbench-board {
  border-left: 4px solid var(--ems-role) !important;
  grid-template-columns: 168px minmax(0, 1fr) !important;
}

body.edova-admin-portal .workbench-lead,
body.edova-technician-portal .workbench-lead {
  background: #fbf7f2 !important;
  border-right: 1px solid var(--ems-line) !important;
}

body.edova-technician-portal .workbench-lead {
  background: #f2f8fb !important;
}

body.edova-admin-portal .operations-actions button,
body.edova-technician-portal .operations-actions button {
  background: #ffffff !important;
  border-left-color: var(--ems-line) !important;
}

body.edova-admin-portal .operations-actions button.active,
body.edova-admin-portal .operations-actions button:hover,
body.edova-technician-portal .operations-actions button.active,
body.edova-technician-portal .operations-actions button:hover {
  background: var(--ems-surface-soft) !important;
  box-shadow: inset 0 3px 0 var(--ems-role) !important;
}

body.edova-admin-portal .system-spine-head,
body.edova-technician-portal .system-spine-head {
  background: var(--ems-surface-soft) !important;
  border-right: 1px solid var(--ems-line) !important;
}

body.edova-admin-portal .system-spine-node,
body.edova-technician-portal .system-spine-node,
body.edova-admin-portal .system-spine-proofline span,
body.edova-technician-portal .system-spine-proofline span {
  background: #ffffff !important;
}

body.edova-admin-portal .system-spine-node.is-owner,
body.edova-technician-portal .system-spine-node.is-owner {
  background: var(--ems-surface-soft) !important;
  border-top-color: var(--ems-role) !important;
}

body.edova-admin-portal .platform-console-head,
body.edova-technician-portal .technician-console-head {
  background: #ffffff !important;
  border-bottom: 1px solid var(--ems-line) !important;
  border-left: 4px solid var(--ems-role) !important;
  grid-template-columns: minmax(240px, 0.36fr) minmax(0, 1fr) !important;
  padding: 10px !important;
}

body.edova-admin-portal .platform-stat-list,
body.edova-technician-portal .technician-console-stats {
  background: var(--ems-line) !important;
  gap: 1px !important;
}

body.edova-admin-portal .platform-stat-row,
body.edova-technician-portal .technician-console-stat,
body.edova-admin-portal .admin-system-metric,
body.edova-technician-portal .metric {
  background: var(--ems-surface-soft) !important;
  border: 0 !important;
  border-left: 3px solid var(--ems-line-strong) !important;
  border-radius: 0 !important;
}

body.edova-admin-portal .platform-stat-row:first-child,
body.edova-technician-portal .technician-console-stat:first-child {
  border-left-color: var(--ems-role) !important;
}

body.edova-admin-portal .platform-approval-queue,
body.edova-admin-portal .platform-console-side .platform-issue-list,
body.edova-admin-portal .platform-console-side .platform-command-list,
body.edova-technician-portal .technician-mission-board,
body.edova-technician-portal .technician-console-side .service-focus-table,
body.edova-technician-portal .technician-console-side .service-focus-current {
  background: #ffffff !important;
  border: 1px solid var(--ems-line) !important;
  border-radius: 5px !important;
  overflow: hidden !important;
}

body.edova-admin-portal .admin-sidebar .portal-nav-label,
body.edova-technician-portal .technician-rail .portal-nav-label {
  color: var(--ems-muted) !important;
}

body.edova-admin-portal .admin-sidebar .portal-nav button,
body.edova-technician-portal .technician-rail .portal-nav button {
  background: transparent !important;
  border-color: transparent !important;
  border-left-color: transparent !important;
  color: #263b34 !important;
}

body.edova-admin-portal .admin-sidebar .portal-nav button span,
body.edova-technician-portal .technician-rail .portal-nav button span {
  color: var(--ems-muted) !important;
}

body.edova-admin-portal .admin-sidebar .portal-nav button.active,
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-rail .portal-nav button.active,
body.edova-technician-portal .technician-rail .portal-nav button:hover,
body.edova-technician-portal .technician-rail .portal-nav button:focus-visible {
  background: #ffffff !important;
  border-color: var(--ems-line) !important;
  border-left-color: var(--ems-role) !important;
  color: var(--ems-ink) !important;
}

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

body.edova-admin-portal.admin-no-customer .portal-nav-tenant button,
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 .portal-nav-empty-state {
  display: none !important;
}

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

/* Admin customer and handover workflow: compact workstation layout. */
body.edova-admin-portal[data-active-view="kunden"] .customers-panel {
  align-content: start !important;
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.34fr) !important;
}

body.edova-admin-portal[data-active-view="kunden"] .customers-panel > .panel-head,
body.edova-admin-portal[data-active-view="kunden"] .customers-panel > .customer-admin-summary {
  grid-column: 1 / -1 !important;
}

body.edova-admin-portal[data-active-view="kunden"] .customers-panel > .customer-directory-box {
  grid-column: 1 !important;
  margin: 0 !important;
}

body.edova-admin-portal[data-active-view="kunden"] .customers-panel > .customer-create-box {
  align-self: start !important;
  grid-column: 2 !important;
  margin: 0 !important;
}

body.edova-admin-portal .customers-panel .customer-admin-summary {
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: minmax(0, 1fr) !important;
  margin: 0 !important;
}

body.edova-admin-portal .admin-customer-flow {
  background: var(--ems-line) !important;
  display: grid !important;
  gap: 1px !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  overflow: hidden !important;
}

body.edova-admin-portal .admin-customer-stat {
  background: #ffffff !important;
  border-left: 3px solid var(--ems-line-strong) !important;
  display: grid !important;
  gap: 2px !important;
  min-height: 52px !important;
  padding: 7px 9px !important;
}

body.edova-admin-portal .admin-customer-stat.is-good {
  border-left-color: var(--ems-good) !important;
}

body.edova-admin-portal .admin-customer-stat.is-warning {
  border-left-color: var(--ems-warn) !important;
}

body.edova-admin-portal .admin-customer-stat.is-critical {
  border-left-color: var(--ems-danger) !important;
}

body.edova-admin-portal .admin-customer-stat.is-info {
  border-left-color: var(--ems-info) !important;
}

body.edova-admin-portal .admin-customer-stat span,
body.edova-admin-portal .admin-customer-stat strong,
body.edova-admin-portal .admin-customer-stat small {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.edova-admin-portal .admin-customer-stat span {
  color: var(--ems-muted) !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
}

body.edova-admin-portal .admin-customer-stat strong {
  color: var(--ems-ink) !important;
  font-size: 19px !important;
  line-height: 1.05 !important;
}

body.edova-admin-portal .admin-customer-stat small {
  color: var(--ems-muted) !important;
  font-size: 11px !important;
}

body.edova-admin-portal .admin-customer-nextline {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid var(--ems-line) !important;
  border-left: 4px solid var(--ems-role) !important;
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: minmax(150px, 0.24fr) minmax(0, 1fr) auto !important;
  min-height: 40px !important;
  padding: 6px 8px !important;
}

body.edova-admin-portal .admin-customer-nextline span {
  color: var(--ems-muted) !important;
  font-size: 11px !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.edova-admin-portal .admin-customer-nextline span strong {
  color: var(--ems-ink) !important;
  display: block !important;
  font-size: 10px !important;
  text-transform: uppercase !important;
}

body.edova-admin-portal .admin-customer-nextline div {
  display: grid !important;
  gap: 4px !important;
  grid-template-columns: repeat(4, minmax(74px, 1fr)) !important;
}

body.edova-admin-portal .customers-panel details {
  background: #ffffff !important;
  border-color: var(--ems-line) !important;
  border-radius: 5px !important;
  overflow: hidden !important;
}

body.edova-admin-portal .customers-panel summary {
  background: var(--ems-surface-soft) !important;
  border-bottom-color: var(--ems-line) !important;
  color: var(--ems-ink) !important;
}

body.edova-admin-portal .customers-panel .customer-list {
  background: var(--ems-line) !important;
  gap: 1px !important;
  max-height: calc(100vh - 392px) !important;
  min-height: 250px !important;
  overflow: auto !important;
}

body.edova-admin-portal .customers-panel .customer-item {
  align-items: center !important;
  background: #ffffff !important;
  border: 0 !important;
  border-left: 3px solid var(--ems-line-strong) !important;
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: minmax(230px, 1.12fr) minmax(120px, 0.5fr) minmax(260px, 1.12fr) minmax(170px, 0.7fr) 72px !important;
  min-height: 56px !important;
  padding: 6px 8px !important;
}

body.edova-admin-portal .customers-panel .customer-item.active {
  background: #fffaf5 !important;
  border-left-color: var(--ems-role) !important;
}

body.edova-admin-portal .customers-panel .customer-item.customer-health-error {
  border-left-color: var(--ems-danger) !important;
}

body.edova-admin-portal .customers-panel .customer-item.customer-health-warning {
  border-left-color: var(--ems-warn) !important;
}

body.edova-admin-portal .customers-panel .customer-item-head {
  align-content: center !important;
  display: grid !important;
  gap: 2px !important;
  grid-template-columns: minmax(0, 1fr) !important;
}

body.edova-admin-portal .customers-panel .customer-item-head strong,
body.edova-admin-portal .customers-panel .customer-item-head small,
body.edova-admin-portal .customers-panel .customer-portal-state,
body.edova-admin-portal .customers-panel .customer-footprint {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.edova-admin-portal .customers-panel .customer-cloud-readiness {
  line-height: 1.18 !important;
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
  white-space: normal !important;
}

body.edova-admin-portal .customers-panel .customer-item-head strong {
  color: var(--ems-ink) !important;
  font-size: 13px !important;
}

body.edova-admin-portal .customers-panel .customer-item-head small,
body.edova-admin-portal .customers-panel .customer-footprint {
  color: var(--ems-muted) !important;
  font-size: 11px !important;
}

body.edova-admin-portal .customers-panel .customer-portal-state,
body.edova-admin-portal .customers-panel .customer-cloud-readiness {
  align-self: center !important;
  background: var(--ems-surface-soft) !important;
  border: 1px solid var(--ems-line) !important;
  border-radius: 3px !important;
  color: var(--ems-ink) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  padding: 6px 7px !important;
}

body.edova-admin-portal .customers-panel .customer-cloud-readiness.is-enabled,
body.edova-admin-portal .customers-panel .customer-cloud-readiness.is-ready {
  background: #edf8f3 !important;
  border-color: #c4dfd3 !important;
}

body.edova-admin-portal .customers-panel .customer-cloud-readiness.is-blocked {
  background: #fff4ed !important;
  border-color: #ffd2b8 !important;
}

body.edova-admin-portal .customers-panel .customer-delete-button {
  justify-self: end !important;
  min-height: 28px !important;
  width: 68px !important;
}

body.edova-admin-portal .customers-panel .customer-delete-confirm {
  grid-column: 1 / -1 !important;
}

body.edova-admin-portal .customers-panel .customer-directory-actions {
  align-items: center !important;
  background: #ffffff !important;
  border-top: 1px solid var(--ems-line) !important;
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: minmax(0, 1fr) auto auto !important;
  padding: 8px !important;
}

body.edova-admin-portal .customers-panel .customer-directory-actions::before {
  color: var(--ems-muted) !important;
  content: "Auswahl wirkt auf die aktive Kundenakte links oben.";
  font-size: 11px !important;
}

@media (max-width: 700px) {
  body.edova-admin-portal .admin-customer-nextline {
    align-items: stretch !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.edova-admin-portal .admin-customer-nextline span {
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
  }

  body.edova-admin-portal .admin-customer-nextline div {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    min-width: 0 !important;
  }

  body.edova-admin-portal .admin-customer-nextline button {
    min-width: 0 !important;
    width: 100% !important;
  }

  body.edova-admin-portal .customers-panel .customer-list {
    max-height: none !important;
  }

  body.edova-admin-portal .customers-panel .customer-item {
    align-items: stretch !important;
    gap: 6px !important;
    grid-template-columns: minmax(0, 1fr) !important;
    padding: 8px !important;
  }

  body.edova-admin-portal .customers-panel .customer-item-head,
  body.edova-admin-portal .customers-panel .customer-portal-state,
  body.edova-admin-portal .customers-panel .customer-cloud-readiness,
  body.edova-admin-portal .customers-panel .customer-footprint,
  body.edova-admin-portal .customers-panel .customer-delete-button {
    grid-column: 1 !important;
    grid-row: auto !important;
    justify-self: stretch !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.edova-admin-portal .customers-panel .customer-item-head strong,
  body.edova-admin-portal .customers-panel .customer-item-head small,
  body.edova-admin-portal .customers-panel .customer-portal-state,
  body.edova-admin-portal .customers-panel .customer-cloud-readiness,
  body.edova-admin-portal .customers-panel .customer-footprint {
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
  }

  body.edova-admin-portal .customers-panel .customer-delete-button {
    width: 100% !important;
  }
}

body.edova-admin-portal .customers-panel .customer-create-box .inline-form {
  grid-template-columns: minmax(0, 1fr) !important;
  padding: 10px !important;
}

body.edova-admin-portal .customers-panel .customer-create-box .inline-check,
body.edova-admin-portal .customers-panel .customer-create-box button[type="submit"] {
  grid-column: auto !important;
}

body.edova-admin-portal .admin-customer-empty {
  align-content: center !important;
  background: #ffffff !important;
  border-left: 3px solid var(--ems-warn) !important;
  display: grid !important;
  gap: 6px !important;
  min-height: 210px !important;
  padding: 16px !important;
}

body.edova-admin-portal .admin-customer-empty strong {
  color: var(--ems-ink) !important;
  font-size: 14px !important;
}

body.edova-admin-portal .admin-customer-empty span {
  color: var(--ems-muted) !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
}

body.edova-admin-portal[data-active-view="karte"] .admin-system-map-panel {
  align-content: start !important;
}

body.edova-admin-portal[data-active-view="karte"] .admin-system-map-shell {
  gap: 10px !important;
}

body.edova-admin-portal[data-active-view="karte"] .admin-system-ops-board.is-empty,
body.edova-admin-portal[data-active-view="karte"] .admin-system-checklist {
  min-height: 190px !important;
}

/* Technician device/RFID/OCPP empty state: compact next action with optional commissioning map. */
body.edova-technician-portal .technician-device-empty-console {
  background: #ffffff !important;
  border: 1px solid var(--ems-line) !important;
  border-left: 4px solid var(--ems-role) !important;
  color: var(--ems-ink) !important;
  display: grid !important;
  gap: 10px !important;
  padding: 10px !important;
}

body.edova-technician-portal .technician-device-empty-head {
  align-items: start !important;
  border-bottom: 1px solid var(--ems-line) !important;
  display: grid !important;
  gap: 10px !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  padding-bottom: 8px !important;
}

body.edova-technician-portal .technician-device-empty-head h2,
body.edova-technician-portal .technician-device-empty-head p,
body.edova-technician-portal .technician-device-empty-head span {
  margin: 0 !important;
  min-width: 0 !important;
}

body.edova-technician-portal .technician-device-empty-head h2 {
  color: var(--ems-ink) !important;
  font-size: 18px !important;
  line-height: 1.15 !important;
}

body.edova-technician-portal .technician-device-empty-head span {
  color: var(--ems-muted) !important;
  display: block !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
  margin-top: 4px !important;
}

body.edova-technician-portal .technician-device-empty-head > strong {
  background: #fff4ed !important;
  border: 1px solid #ffd2b8 !important;
  color: #92400e !important;
  font-size: 11px !important;
  letter-spacing: 0 !important;
  padding: 5px 8px !important;
  text-transform: uppercase !important;
}

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

body.edova-technician-portal .technician-device-empty-stats article {
  background: var(--ems-surface-soft) !important;
  border: 1px solid var(--ems-line) !important;
  display: grid !important;
  gap: 2px !important;
  min-height: 44px !important;
  padding: 6px 8px !important;
}

body.edova-technician-portal .technician-device-empty-stats span,
body.edova-technician-portal .technician-device-empty-stats strong {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.edova-technician-portal .technician-device-empty-stats span {
  color: var(--ems-muted) !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
}

body.edova-technician-portal .technician-device-empty-stats strong {
  color: var(--ems-ink) !important;
  font-size: 13px !important;
}

body.edova-technician-portal .technician-device-empty-actions {
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body.edova-technician-portal .technician-device-empty-actions button {
  background: #ffffff !important;
  border: 1px solid #cbd9e0 !important;
  color: #245f73 !important;
  min-height: 34px !important;
  padding: 7px 10px !important;
}

body.edova-technician-portal .technician-device-empty-flow-disclosure .technician-device-empty-flow {
  margin-top: 8px !important;
}

body.edova-technician-portal .technician-device-empty-flow {
  background: var(--ems-line) !important;
  display: grid !important;
  gap: 1px !important;
}

body.edova-technician-portal .technician-device-empty-row {
  align-items: center !important;
  background: #ffffff !important;
  border-left: 3px solid var(--ems-warn) !important;
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: 34px minmax(118px, 0.35fr) minmax(0, 1fr) 128px !important;
  min-height: 42px !important;
  padding: 6px 8px !important;
}

body.edova-technician-portal .technician-device-empty-row.is-ok {
  border-left-color: var(--ems-good) !important;
}

body.edova-technician-portal .technician-device-empty-row > span {
  align-items: center !important;
  background: var(--ems-surface-soft) !important;
  color: var(--ems-ink) !important;
  display: inline-flex !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  height: 26px !important;
  justify-content: center !important;
  width: 26px !important;
}

body.edova-technician-portal .technician-device-empty-row strong,
body.edova-technician-portal .technician-device-empty-row small {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.edova-technician-portal .technician-device-empty-row strong {
  color: var(--ems-ink) !important;
  font-size: 13px !important;
}

body.edova-technician-portal .technician-device-empty-row small {
  color: var(--ems-muted) !important;
  font-size: 11px !important;
}

body.edova-technician-portal .technician-device-empty-row button {
  background: #ffffff !important;
  border: 1px solid #cbd9e0 !important;
  color: #245f73 !important;
  min-height: 30px !important;
  padding: 5px 8px !important;
}

body.edova-technician-portal .technician-device-empty-row button:hover,
body.edova-technician-portal .technician-device-empty-row button:focus-visible,
body.edova-technician-portal .technician-device-empty-row button.active {
  background: #f2f7f9 !important;
  border-color: #9eb7c3 !important;
  color: #1d5061 !important;
}

@media (max-width: 1180px) {
  body.edova-technician-portal .technician-device-empty-stats,
  body.edova-technician-portal .technician-device-empty-actions,
  body.edova-technician-portal .technician-device-empty-row {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.edova-technician-portal .technician-device-empty-row small {
    white-space: normal !important;
  }
}

/* Customer portal rebuild pass: light EMS operator shell and explicit empty charts. */
body.edova-customer-portal {
  background: #edf3f4 !important;
  display: grid !important;
  grid-template-columns: 224px minmax(0, 1fr) !important;
}

body.edova-customer-portal > .portal-nav {
  align-content: start !important;
  background: #ffffff !important;
  border: 0 !important;
  border-right: 1px solid var(--ems-line) !important;
  box-shadow: none !important;
  color: var(--ems-ink) !important;
  display: grid !important;
  gap: 5px !important;
  grid-column: 1 !important;
  grid-row: 1 / span 20 !important;
  min-height: 100vh !important;
  overflow-y: auto !important;
  padding: 12px 10px !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 32 !important;
}

body.edova-customer-portal > .portal-nav::before {
  background: #f8fbfd !important;
  border: 1px solid var(--ems-line) !important;
  border-left: 4px solid var(--ems-customer) !important;
  border-radius: 5px !important;
  color: var(--ems-ink) !important;
  content: "EDOVA EMS\A Kundenbetrieb" !important;
  display: block !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  line-height: 1.15 !important;
  margin: 0 0 18px !important;
  padding: 12px 10px !important;
  white-space: pre-line !important;
}

body.edova-customer-portal > .portal-nav .portal-nav-label {
  color: var(--ems-muted) !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  margin: 8px 8px 3px !important;
  text-transform: uppercase !important;
}

body.edova-customer-portal > .portal-nav button {
  align-items: center !important;
  background: transparent !important;
  border: 1px solid transparent !important;
  border-left: 3px solid transparent !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  color: var(--ems-ink) !important;
  display: flex !important;
  font-size: 13px !important;
  font-weight: 850 !important;
  justify-content: flex-start !important;
  min-height: 34px !important;
  padding: 0 9px !important;
  text-align: left !important;
}

body.edova-customer-portal > .portal-nav button:hover,
body.edova-customer-portal > .portal-nav button:focus-visible,
body.edova-customer-portal > .portal-nav button.active,
body.edova-customer-portal > .portal-nav button[aria-selected="true"],
body.edova-customer-portal > .portal-nav button[aria-current="page"] {
  background: #edf8f3 !important;
  border-color: #c4dfd3 !important;
  border-left-color: var(--ems-customer) !important;
  color: #0c4a3c !important;
}

body.edova-customer-portal > .topbar {
  background: #ffffff !important;
  border-bottom: 1px solid var(--ems-line) !important;
  border-left: 0 !important;
  box-shadow: none !important;
  grid-column: 2 !important;
  min-height: 58px !important;
  padding: 9px 14px !important;
}

body.edova-customer-portal > .topbar h1 {
  color: var(--ems-ink) !important;
  font-size: 18px !important;
}

body.edova-customer-portal > .customer-scope-line,
body.edova-customer-portal > .object-context,
body.edova-customer-portal > .customer-workbench-board,
body.edova-customer-portal > .edova-system-spine,
body.edova-customer-portal > .layout,
body.edova-customer-portal > .legal-footer {
  grid-column: 2 !important;
  margin-left: 10px !important;
  margin-right: 10px !important;
}

body.edova-customer-portal > .layout {
  max-width: none !important;
  padding: 8px 10px 28px !important;
}

body.edova-customer-portal .chart-box.is-empty-chart {
  background:
    linear-gradient(#f7fafb, #f7fafb) padding-box,
    repeating-linear-gradient(0deg, rgba(23, 116, 95, 0.08) 0, rgba(23, 116, 95, 0.08) 1px, transparent 1px, transparent 24px),
    repeating-linear-gradient(90deg, rgba(23, 116, 95, 0.08) 0, rgba(23, 116, 95, 0.08) 1px, transparent 1px, transparent 24px) !important;
  min-height: 210px !important;
  position: relative !important;
}

body.edova-customer-portal .chart-box.is-empty-chart::after {
  align-items: center !important;
  background: rgba(255, 255, 255, 0.86) !important;
  border: 1px solid var(--ems-line) !important;
  color: var(--ems-muted) !important;
  content: attr(data-empty-label) !important;
  display: flex !important;
  font-size: 13px !important;
  font-weight: 850 !important;
  inset: 42% auto auto 50% !important;
  justify-content: center !important;
  min-height: 34px !important;
  min-width: 220px !important;
  padding: 0 12px !important;
  position: absolute !important;
  transform: translate(-50%, -50%) !important;
  z-index: 2 !important;
}

body.edova-customer-portal .analytics-panel .chart-panel,
body.edova-customer-portal .billing-panel .chart-panel {
  min-height: 260px !important;
}

body.edova-customer-portal .chart-panel.is-empty-chart-panel {
  background:
    repeating-linear-gradient(0deg, rgba(23, 116, 95, 0.06) 0, rgba(23, 116, 95, 0.06) 1px, transparent 1px, transparent 24px),
    repeating-linear-gradient(90deg, rgba(23, 116, 95, 0.06) 0, rgba(23, 116, 95, 0.06) 1px, transparent 1px, transparent 24px),
    #ffffff !important;
  position: relative !important;
}

body.edova-customer-portal .chart-panel.is-empty-chart-panel::after {
  align-items: center !important;
  background: rgba(255, 255, 255, 0.9) !important;
  border: 1px solid var(--ems-line) !important;
  color: var(--ems-muted) !important;
  content: attr(data-empty-label) !important;
  display: flex !important;
  font-size: 13px !important;
  font-weight: 850 !important;
  inset: 50% auto auto 50% !important;
  justify-content: center !important;
  min-height: 34px !important;
  min-width: 220px !important;
  padding: 0 12px !important;
  position: absolute !important;
  transform: translate(-50%, -50%) !important;
  z-index: 5 !important;
}

body.edova-customer-portal .chart-empty-state {
  align-items: center !important;
  background: rgba(255, 255, 255, 0.94) !important;
  border: 1px solid var(--ems-line) !important;
  color: var(--ems-muted) !important;
  display: flex !important;
  font-size: 13px !important;
  font-weight: 850 !important;
  justify-content: center !important;
  left: 50% !important;
  min-height: 34px !important;
  min-width: 220px !important;
  padding: 0 12px !important;
  position: absolute !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  z-index: 6 !important;
}

@media (max-width: 1100px) {
  body.edova-customer-portal {
    display: block !important;
  }

  body.edova-customer-portal > .portal-nav {
    margin: 0 !important;
    min-height: 0 !important;
    position: static !important;
  }

  body.edova-customer-portal > .customer-scope-line,
  body.edova-customer-portal > .object-context,
  body.edova-customer-portal > .customer-workbench-board,
  body.edova-customer-portal > .edova-system-spine,
  body.edova-customer-portal > .layout,
  body.edova-customer-portal > .legal-footer {
    margin-left: 10px !important;
    margin-right: 10px !important;
  }
}

/* Final typography lock: keep the production workspaces light. */
body.edova-admin-portal h1,
body.edova-admin-portal h2,
body.edova-admin-portal h3,
body.edova-technician-portal h1,
body.edova-technician-portal h2,
body.edova-technician-portal h3,
body.edova-customer-portal h1,
body.edova-customer-portal h2,
body.edova-customer-portal h3 {
  font-weight: 600 !important;
}

body.edova-admin-portal strong,
body.edova-admin-portal b,
body.edova-admin-portal button,
body.edova-technician-portal strong,
body.edova-technician-portal b,
body.edova-technician-portal button,
body.edova-customer-portal strong,
body.edova-customer-portal b,
body.edova-customer-portal button {
  font-weight: 500 !important;
}

body.edova-admin-portal .portal-nav-label,
body.edova-technician-portal .portal-nav-label,
body.edova-customer-portal .portal-nav-label,
body.edova-admin-portal .eyebrow,
body.edova-technician-portal .eyebrow,
body.edova-customer-portal .eyebrow {
  font-weight: 500 !important;
}

/* Portal UI weight override: later, role-specific CSS uses stronger selectors.
   Keep the operational UI crisp without the previous heavy dashboard type. */
body.edova-admin-portal .topbar h1,
body.edova-technician-portal .topbar h1,
body.edova-customer-portal > .topbar h1,
body.edova-customer-portal .topbar h1 {
  font-weight: 600 !important;
}

body.edova-admin-portal .topbar h1 *,
body.edova-technician-portal .topbar h1 *,
body.edova-customer-portal > .topbar h1 *,
body.edova-customer-portal .topbar h1 * {
  font-weight: 600 !important;
}

body.edova-admin-portal .admin-sidebar .portal-nav button,
body.edova-admin-portal .admin-sidebar .portal-nav button *,
body.edova-technician-portal .technician-rail .portal-nav button,
body.edova-technician-portal .technician-rail .portal-nav button *,
body.edova-customer-portal > .portal-nav button,
body.edova-customer-portal > .portal-nav button * {
  font-weight: 500 !important;
}

body.edova-admin-portal .admin-sidebar .portal-nav button.active,
body.edova-admin-portal .admin-sidebar .portal-nav button.active *,
body.edova-technician-portal .technician-rail .portal-nav button.active,
body.edova-technician-portal .technician-rail .portal-nav button.active *,
body.edova-customer-portal > .portal-nav button.active,
body.edova-customer-portal > .portal-nav button.active *,
body.edova-customer-portal > .portal-nav button[aria-current="page"],
body.edova-customer-portal > .portal-nav button[aria-current="page"] *,
body.edova-customer-portal > .portal-nav button[aria-selected="true"],
body.edova-customer-portal > .portal-nav button[aria-selected="true"] * {
  font-weight: 600 !important;
}

/* Light technical entry surfaces: avoid dark promo blocks on operational portals. */
body.edova-admin-portal .admin-workbench-board,
body.edova-technician-portal .technician-workbench-board,
body.edova-customer-portal .customer-workbench-board,
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,
body.edova-customer-portal .customer-login-brief,
body.edova-technician-portal .technician-login-brief {
  background: rgba(255, 255, 255, 0.98) !important;
  border-color: var(--ems-line) !important;
  color: var(--ems-ink) !important;
}

body.edova-customer-portal .customer-login-brief,
body.edova-technician-portal .technician-login-brief {
  border-left: 3px solid var(--ems-role) !important;
}

body.edova-customer-portal .customer-login-brief > strong,
body.edova-technician-portal .technician-login-brief > strong,
body.edova-customer-portal .customer-login-brief small,
body.edova-technician-portal .technician-login-brief small {
  color: var(--ems-ink) !important;
}

body.edova-customer-portal .customer-login-brief [role="list"] span,
body.edova-technician-portal .technician-login-brief [role="list"] span {
  background: #f6fafb !important;
  border: 1px solid var(--ems-line) !important;
  color: var(--ems-ink) !important;
}

body.edova-customer-portal .customer-login-brief b,
body.edova-technician-portal .technician-login-brief b,
body.edova-admin-portal .operations-actions button span,
body.edova-technician-portal .operations-actions button span,
body.edova-customer-portal .operations-actions button span,
body.edova-admin-portal .admin-workbench-board button span,
body.edova-technician-portal .technician-workbench-board button span,
body.edova-customer-portal .customer-workbench-board button span {
  background: var(--ems-role) !important;
  border-color: var(--ems-role) !important;
  color: #ffffff !important;
}

body.edova-admin-portal .operations-actions button,
body.edova-technician-portal .operations-actions button,
body.edova-customer-portal .operations-actions button,
body.edova-admin-portal .admin-workbench-board button,
body.edova-technician-portal .technician-workbench-board button,
body.edova-customer-portal .customer-workbench-board button {
  background: #fbfcfd !important;
  border: 1px solid var(--ems-line) !important;
  color: var(--ems-ink) !important;
  box-shadow: none !important;
}

body.edova-admin-portal .operations-actions button.active,
body.edova-admin-portal .operations-actions button:hover,
body.edova-admin-portal .operations-actions button:focus-visible,
body.edova-technician-portal .operations-actions button.active,
body.edova-technician-portal .operations-actions button:hover,
body.edova-technician-portal .operations-actions button:focus-visible,
body.edova-customer-portal .operations-actions button.active,
body.edova-customer-portal .operations-actions button:hover,
body.edova-customer-portal .operations-actions button:focus-visible {
  background: #eef5f7 !important;
  border-color: #c6d7de !important;
  box-shadow: inset 3px 0 0 var(--ems-role) !important;
}

body.edova-admin-portal .operations-actions button.active *,
body.edova-admin-portal .operations-actions button:hover *,
body.edova-admin-portal .operations-actions button:focus-visible *,
body.edova-technician-portal .operations-actions button.active *,
body.edova-technician-portal .operations-actions button:hover *,
body.edova-technician-portal .operations-actions button:focus-visible *,
body.edova-customer-portal .operations-actions button.active *,
body.edova-customer-portal .operations-actions button:hover *,
body.edova-customer-portal .operations-actions button:focus-visible * {
  color: var(--ems-ink) !important;
}

body.edova-admin-portal .operations-actions button.active span,
body.edova-admin-portal .operations-actions button:hover span,
body.edova-admin-portal .operations-actions button:focus-visible span,
body.edova-technician-portal .operations-actions button.active span,
body.edova-technician-portal .operations-actions button:hover span,
body.edova-technician-portal .operations-actions button:focus-visible span,
body.edova-customer-portal .operations-actions button.active span,
body.edova-customer-portal .operations-actions button:hover span,
body.edova-customer-portal .operations-actions button:focus-visible span {
  color: #ffffff !important;
}

body.edova-admin-portal .admin-workbench-board .operations-actions button.active,
body.edova-admin-portal .admin-workbench-board .operations-actions button.active strong,
body.edova-admin-portal .admin-workbench-board .operations-actions button:hover,
body.edova-admin-portal .admin-workbench-board .operations-actions button:hover strong,
body.edova-technician-portal .technician-workbench-board .operations-actions button.active,
body.edova-technician-portal .technician-workbench-board .operations-actions button.active strong,
body.edova-technician-portal .technician-workbench-board .operations-actions button:hover,
body.edova-technician-portal .technician-workbench-board .operations-actions button:hover strong,
body.edova-customer-portal .customer-workbench-board .operations-actions button.active,
body.edova-customer-portal .customer-workbench-board .operations-actions button.active strong,
body.edova-customer-portal .customer-workbench-board .operations-actions button:hover,
body.edova-customer-portal .customer-workbench-board .operations-actions button:hover strong {
  color: var(--ems-ink) !important;
}

body.edova-admin-portal .auth-actions .primary,
body.edova-admin-portal #login-button,
body.edova-technician-portal .auth-actions .primary,
body.edova-technician-portal #login-button,
body.edova-customer-portal .auth-actions .primary,
body.edova-customer-portal #login-button,
body.edova-customer-portal .customer-register-link,
body.edova-technician-portal .technician-public-registration-link {
  background: var(--ems-role) !important;
  border: 1px solid var(--ems-role) !important;
  color: #ffffff !important;
  box-shadow: none !important;
}

body.edova-admin-portal .auth-actions .primary:hover,
body.edova-admin-portal #login-button:hover,
body.edova-technician-portal .auth-actions .primary:hover,
body.edova-technician-portal #login-button:hover,
body.edova-customer-portal .auth-actions .primary:hover,
body.edova-customer-portal #login-button:hover,
body.edova-customer-portal .customer-register-link:hover,
body.edova-technician-portal .technician-public-registration-link:hover {
  background: #1d5061 !important;
  border-color: #1d5061 !important;
}

body.edova-technician-portal .login-entry #login-button.primary,
body.edova-technician-portal .login-entry .auth-actions #login-button,
body.edova-technician-portal .technician-login-brief .technician-public-registration-link,
body.edova-customer-portal .login-entry #login-button.primary,
body.edova-customer-portal .login-entry .auth-actions #login-button,
body.edova-customer-portal .customer-register-entry .customer-register-link {
  background: var(--ems-role) !important;
  border-color: var(--ems-role) !important;
  color: #ffffff !important;
}

body.edova-technician-portal .login-entry #login-button.primary:hover,
body.edova-technician-portal .login-entry .auth-actions #login-button:hover,
body.edova-technician-portal .technician-login-brief .technician-public-registration-link:hover,
body.edova-customer-portal .login-entry #login-button.primary:hover,
body.edova-customer-portal .login-entry .auth-actions #login-button:hover,
body.edova-customer-portal .customer-register-entry .customer-register-link:hover {
  background: #1d5061 !important;
  border-color: #1d5061 !important;
}

body.edova-admin-portal .view-scope-line strong,
body.edova-technician-portal .view-scope-line strong,
body.edova-customer-portal .view-scope-line strong {
  background: var(--ems-role) !important;
  border-color: var(--ems-role) !important;
  color: #ffffff !important;
}

body.edova-admin-portal .system-spine-node.is-owner,
body.edova-technician-portal .system-spine-node.is-owner,
body.edova-customer-portal .system-spine-node.is-owner,
body.edova-admin-portal .system-spine-proofline span,
body.edova-technician-portal .system-spine-proofline span,
body.edova-customer-portal .system-spine-proofline span {
  border-color: var(--ems-line) !important;
}

body.edova-admin-portal .system-spine-node.is-owner,
body.edova-technician-portal .system-spine-node.is-owner,
body.edova-customer-portal .system-spine-node.is-owner {
  box-shadow: inset 3px 0 0 var(--ems-role) !important;
}

body.edova-admin-portal .system-spine-node.is-owner::before,
body.edova-technician-portal .system-spine-node.is-owner::before,
body.edova-customer-portal .system-spine-node.is-owner::before,
body.edova-admin-portal .system-spine-node.is-owner::after,
body.edova-technician-portal .system-spine-node.is-owner::after,
body.edova-customer-portal .system-spine-node.is-owner::after {
  background: var(--ems-role) !important;
  border-color: var(--ems-role) !important;
}

/* Minimal unauthenticated portal boundary: login first, work surfaces after login. */
body.edova-admin-portal [hidden],
body.edova-customer-portal [hidden],
body.edova-technician-portal [hidden] {
  display: none !important;
}

body.edova-admin-portal.is-login .admin-sidebar,
body.edova-admin-portal.is-login .topbar,
body.edova-admin-portal.is-login .view-scope-line,
body.edova-admin-portal.is-login .admin-workbench-board,
body.edova-admin-portal.is-login .edova-system-spine,
body.edova-admin-portal.is-login .edova-system-map,
body.edova-admin-portal.is-login .object-context,
body.edova-admin-portal.is-login [data-view-panel]:not(#zugang),
body.edova-admin-portal.is-login [data-view-shell],
body.edova-customer-portal.is-login > .topbar,
body.edova-customer-portal.is-login > .portal-nav,
body.edova-customer-portal.is-login .view-scope-line,
body.edova-customer-portal.is-login .object-context,
body.edova-customer-portal.is-login .customer-workbench-board,
body.edova-customer-portal.is-login .edova-system-spine,
body.edova-customer-portal.is-login .customer-register-entry,
body.edova-customer-portal.is-login .customer-login-brief,
body.edova-customer-portal.is-login .login-entry-copy,
body.edova-customer-portal.is-login .login-entry-note,
body.edova-customer-portal.is-login [data-view-panel]:not(#zugang),
body.edova-customer-portal.is-login [data-view-shell],
body.edova-technician-portal.is-login .technician-rail,
body.edova-technician-portal.is-login .topbar,
body.edova-technician-portal.is-login .object-context,
body.edova-technician-portal.is-login .technician-workbench-board,
body.edova-technician-portal.is-login .edova-system-spine,
body.edova-technician-portal.is-login .technician-privacy-line,
body.edova-technician-portal.is-login .edova-system-map,
body.edova-technician-portal.is-login .technician-login-brief,
body.edova-technician-portal.is-login .login-entry-copy,
body.edova-technician-portal.is-login [data-view-panel]:not(#zugang),
body.edova-technician-portal.is-login [data-view-shell] {
  display: none !important;
}

body.edova-admin-portal.is-login .admin-shell,
body.edova-admin-portal.is-login .admin-workspace,
body.edova-technician-portal.is-login .technician-shell,
body.edova-technician-portal.is-login .technician-workspace {
  display: block !important;
  min-height: 100vh !important;
}

body.edova-admin-portal .portal-login-layout,
body.edova-customer-portal .portal-login-layout,
body.edova-technician-portal .portal-login-layout {
  display: grid !important;
  grid-template-columns: minmax(280px, 440px) !important;
  justify-content: center !important;
  align-items: start !important;
  width: min(100%, 520px) !important;
  margin: 0 auto !important;
  padding: clamp(36px, 9vh, 88px) 18px !important;
}

body.edova-admin-portal .portal-login-layout[hidden],
body.edova-customer-portal .portal-login-layout[hidden],
body.edova-technician-portal .portal-login-layout[hidden] {
  display: none !important;
}

body.edova-admin-portal.is-login .layout,
body.edova-customer-portal.is-login .layout,
body.edova-technician-portal.is-login .layout {
  display: grid !important;
  grid-template-columns: minmax(280px, 440px) !important;
  justify-content: center !important;
  align-items: start !important;
  width: min(100%, 520px) !important;
  margin: 0 auto !important;
  padding: clamp(36px, 9vh, 88px) 18px !important;
}

body.edova-admin-portal.is-login #zugang,
body.edova-customer-portal.is-login #zugang,
body.edova-technician-portal.is-login #zugang {
  display: grid !important;
  gap: 14px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 24px !important;
  background: rgba(255, 255, 255, 0.98) !important;
  border: 1px solid var(--ems-line) !important;
  border-radius: 8px !important;
  box-shadow: 0 18px 44px rgba(30, 54, 63, 0.1) !important;
}

body.edova-customer-portal.is-login #zugang.customer-login-console,
body.edova-technician-portal.is-login #zugang.technician-login-console {
  grid-template-columns: minmax(0, 1fr) !important;
}

body.edova-customer-portal.is-login #zugang .customer-login-form,
body.edova-technician-portal.is-login #zugang .technician-login-form {
  border: 0 !important;
  padding: 0 !important;
}

body.edova-admin-portal.is-login #zugang h2,
body.edova-customer-portal.is-login #zugang h2,
body.edova-technician-portal.is-login #zugang h2 {
  margin: 0 0 4px !important;
  font-size: 1.35rem !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}

body.edova-admin-portal.is-login #zugang label,
body.edova-customer-portal.is-login #zugang label,
body.edova-technician-portal.is-login #zugang label {
  gap: 6px !important;
  font-weight: 500 !important;
  text-transform: none !important;
}

body.edova-admin-portal.is-login #zugang input,
body.edova-customer-portal.is-login #zugang input,
body.edova-technician-portal.is-login #zugang input {
  min-height: 42px !important;
}

body.edova-admin-portal.is-login #logout-button,
body.edova-customer-portal.is-login #logout-button,
body.edova-technician-portal.is-login #logout-button {
  display: none !important;
}

/* Keep primary menus short; secondary views stay reachable from contextual actions. */
body.edova-portal .portal-nav button.portal-nav-secondary {
  display: none !important;
}

/* Final portal visual guard: calm technical palette and lighter typography. */
body.edova-admin-portal,
body.edova-technician-portal,
body.edova-customer-portal {
  --ems-role: #245f73 !important;
  --ems-admin: #245f73 !important;
  --ems-tech: #245f73 !important;
  --ems-customer: #245f73 !important;
  --ems-info: #245f73 !important;
  --brand-primary: #245f73 !important;
  --brand-primary-hover: #1d5061 !important;
  --brand-accent: #245f73 !important;
  --portal-accent: #245f73 !important;
  --portal-accent-2: #245f73 !important;
  --operator-teal: #245f73 !important;
  --workbench-teal: #245f73 !important;
  --customer-teal: #245f73 !important;
  --customer-work-teal: #245f73 !important;
  --customer-console-orange: #245f73 !important;
  --tech-accent: #245f73 !important;
  --edova-color-primary: #245f73 !important;
  --edova-color-primary-hover: #1d5061 !important;
  --edova-color-primary-soft: #eef6f8 !important;
  --edova-color-primary-border: rgba(36, 95, 115, 0.28) !important;
  color: var(--ems-ink) !important;
}

body.edova-admin-portal h1,
body.edova-admin-portal h2,
body.edova-admin-portal h3,
body.edova-admin-portal h4,
body.edova-admin-portal strong,
body.edova-admin-portal b,
body.edova-technician-portal h1,
body.edova-technician-portal h2,
body.edova-technician-portal h3,
body.edova-technician-portal h4,
body.edova-technician-portal strong,
body.edova-technician-portal b,
body.edova-customer-portal h1,
body.edova-customer-portal h2,
body.edova-customer-portal h3,
body.edova-customer-portal h4,
body.edova-customer-portal strong,
body.edova-customer-portal b {
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}

body.edova-admin-portal button,
body.edova-admin-portal input,
body.edova-admin-portal select,
body.edova-admin-portal textarea,
body.edova-admin-portal label,
body.edova-technician-portal button,
body.edova-technician-portal input,
body.edova-technician-portal select,
body.edova-technician-portal textarea,
body.edova-technician-portal label,
body.edova-customer-portal button,
body.edova-customer-portal input,
body.edova-customer-portal select,
body.edova-customer-portal textarea,
body.edova-customer-portal label {
  font-weight: 500 !important;
  letter-spacing: 0 !important;
}

body.edova-admin-portal .primary,
body.edova-admin-portal button.primary,
body.edova-admin-portal .primary-button,
body.edova-admin-portal .edova-action-button.primary,
body.edova-technician-portal .primary,
body.edova-technician-portal button.primary,
body.edova-technician-portal .primary-button,
body.edova-technician-portal .edova-action-button.primary,
body.edova-customer-portal .primary,
body.edova-customer-portal button.primary,
body.edova-customer-portal .primary-button,
body.edova-customer-portal .edova-action-button.primary,
body.edova-customer-portal .customer-register-link,
body.edova-technician-portal .technician-public-registration-link {
  background: #245f73 !important;
  border-color: #245f73 !important;
  color: #ffffff !important;
  box-shadow: none !important;
}

body.edova-admin-portal .primary:hover,
body.edova-admin-portal button.primary:hover,
body.edova-admin-portal .primary-button:hover,
body.edova-admin-portal .edova-action-button.primary:hover,
body.edova-technician-portal .primary:hover,
body.edova-technician-portal button.primary:hover,
body.edova-technician-portal .primary-button:hover,
body.edova-technician-portal .edova-action-button.primary:hover,
body.edova-customer-portal .primary:hover,
body.edova-customer-portal button.primary:hover,
body.edova-customer-portal .primary-button:hover,
body.edova-customer-portal .edova-action-button.primary:hover,
body.edova-customer-portal .customer-register-link:hover,
body.edova-technician-portal .technician-public-registration-link:hover {
  background: #1d5061 !important;
  border-color: #1d5061 !important;
}

body.edova-admin-portal a,
body.edova-admin-portal .status-pill,
body.edova-admin-portal .meta-pill,
body.edova-admin-portal .chip,
body.edova-technician-portal a,
body.edova-technician-portal .status-pill,
body.edova-technician-portal .meta-pill,
body.edova-technician-portal .chip,
body.edova-customer-portal a,
body.edova-customer-portal .status-pill,
body.edova-customer-portal .meta-pill,
body.edova-customer-portal .chip {
  border-color: rgba(36, 95, 115, 0.24) !important;
}

body.edova-admin-portal [style*="#ec6608"],
body.edova-technician-portal [style*="#ec6608"],
body.edova-customer-portal [style*="#ec6608"] {
  color: #245f73 !important;
  border-color: #245f73 !important;
}

body.edova-admin-portal #top-logout-button,
body.edova-admin-portal #refresh-button,
body.edova-technician-portal #top-logout-button,
body.edova-technician-portal #refresh-button,
body.edova-customer-portal #top-logout-button,
body.edova-customer-portal #refresh-button,
body.edova-admin-portal #select-customer-button,
body.edova-technician-portal #select-customer-button,
body.edova-customer-portal #select-customer-button {
  font-weight: 500 !important;
}

body.edova-admin-portal #select-customer-button,
body.edova-technician-portal #select-customer-button,
body.edova-customer-portal #select-customer-button {
  background: #245f73 !important;
  border-color: #245f73 !important;
  color: #ffffff !important;
  box-shadow: none !important;
}

body.edova-admin-portal #clear-customer-selection-button,
body.edova-technician-portal #clear-customer-selection-button,
body.edova-customer-portal #clear-customer-selection-button {
  background: #ffffff !important;
  border-color: #bfd2da !important;
  color: #245f73 !important;
  box-shadow: none !important;
  font-weight: 500 !important;
}

body.edova-admin-portal .object-context .context-step span,
body.edova-admin-portal .object-context .context-step strong,
body.edova-admin-portal .view-scope-line span,
body.edova-admin-portal .view-scope-line strong,
body.edova-technician-portal .object-context .context-step span,
body.edova-technician-portal .object-context .context-step strong,
body.edova-technician-portal .view-scope-line span,
body.edova-technician-portal .view-scope-line strong,
body.edova-customer-portal .object-context .context-step span,
body.edova-customer-portal .object-context .context-step strong,
body.edova-customer-portal .view-scope-line span,
body.edova-customer-portal .view-scope-line strong {
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}

body.edova-admin-portal .portal-nav-label,
body.edova-admin-portal .edova-system-spine span,
body.edova-admin-portal .edova-system-spine strong,
body.edova-admin-portal .system-spine-node span,
body.edova-admin-portal .system-spine-node strong,
body.edova-admin-portal .system-spine-proofline span,
body.edova-technician-portal .portal-nav-label,
body.edova-technician-portal .edova-system-spine span,
body.edova-technician-portal .edova-system-spine strong,
body.edova-technician-portal .system-spine-node span,
body.edova-technician-portal .system-spine-node strong,
body.edova-technician-portal .system-spine-proofline span,
body.edova-customer-portal .portal-nav-label,
body.edova-customer-portal .edova-system-spine span,
body.edova-customer-portal .edova-system-spine strong,
body.edova-customer-portal .system-spine-node span,
body.edova-customer-portal .system-spine-node strong,
body.edova-customer-portal .system-spine-proofline span {
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}

body.edova-customer-portal > .portal-nav .portal-nav-label,
body.edova-customer-portal.is-authenticated[data-active-view="overview"] .edova-customer-system-spine .system-spine-proofline span,
body.edova-admin-portal[data-active-view="plattform"] .edova-admin-system-spine .system-spine-proofline span,
body.edova-technician-portal[data-active-view="overview"] .edova-technician-system-spine .system-spine-proofline span {
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}

body.edova-customer-portal .customer-ops-row span,
body.edova-customer-portal .customer-ops-row b,
body.edova-customer-portal .customer-ops-live strong,
body.edova-customer-portal .customer-identity-workspace .workspace-count {
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}

body.edova-technician-portal #top-session-line,
body.edova-technician-portal .operations-actions button span,
body.edova-technician-portal .technician-privacy-line span,
body.edova-technician-portal .technician-console-stat span,
body.edova-technician-portal .technician-dispatch-row,
body.edova-technician-portal .technician-dispatch-row span,
body.edova-technician-portal .technician-dispatch-row b,
body.edova-technician-portal .technician-work-row,
body.edova-technician-portal .technician-work-row span,
body.edova-technician-portal .technician-work-row b,
body.edova-technician-portal .service-focus-row,
body.edova-technician-portal .service-focus-row span,
body.edova-technician-portal .service-focus-row b {
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}

body.edova-technician-portal .technician-workbench-board .operations-actions button span,
body.edova-technician-portal .technician-console-side .service-focus-row,
body.edova-technician-portal .technician-console-side .service-focus-row span,
body.edova-technician-portal .technician-console-side .service-focus-row strong,
body.edova-technician-portal .technician-console-side .service-focus-row small,
body.edova-technician-portal .technician-dispatch-table .technician-dispatch-row span,
body.edova-technician-portal .technician-dispatch-table .technician-dispatch-row b {
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}

body.edova-admin-portal .eyebrow,
body.edova-technician-portal .eyebrow,
body.edova-customer-portal .eyebrow {
  color: #245f73 !important;
  border-color: rgba(36, 95, 115, 0.28) !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}

body.edova-admin-portal .topbar-brand .eyebrow,
body.edova-admin-portal .panel-head .eyebrow,
body.edova-admin-portal .admin-command-lead .eyebrow,
body.edova-technician-portal .topbar-brand .eyebrow,
body.edova-technician-portal .panel-head .eyebrow,
body.edova-technician-portal .service-focus-copy .eyebrow,
body.edova-technician-portal .technician-command-lead .eyebrow,
body.edova-customer-portal .topbar-brand .eyebrow,
body.edova-customer-portal .panel-head .eyebrow,
body.edova-customer-portal .topbar .eyebrow {
  color: #245f73 !important;
  border-color: rgba(36, 95, 115, 0.28) !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}

/* Login pages are authentication surfaces, not the full portal grid. */
body.edova-admin-portal.is-login,
body.edova-customer-portal.is-login,
body.edova-technician-portal.is-login {
  display: block !important;
  grid-template-columns: none !important;
  min-height: 100vh !important;
  overflow-x: hidden !important;
}

body.edova-admin-portal.is-login .portal-login-layout,
body.edova-customer-portal.is-login .portal-login-layout,
body.edova-technician-portal.is-login .portal-login-layout {
  box-sizing: border-box !important;
  max-width: none !important;
  width: 100% !important;
}

body.edova-admin-portal.is-login #zugang,
body.edova-customer-portal.is-login #zugang,
body.edova-technician-portal.is-login #zugang {
  box-sizing: border-box !important;
  justify-self: center !important;
  max-width: min(440px, calc(100vw - 36px)) !important;
  min-width: 0 !important;
}

/* Final weight ceiling for operational portals. Keep headings readable, but
   prevent old dashboard numerals, chips and footer links from turning heavy. */
body.edova-admin-portal :is(p, a, span, small, strong, b, label, li, td, th),
body.edova-customer-portal :is(p, a, span, small, strong, b, label, li, td, th),
body.edova-technician-portal :is(p, a, span, small, strong, b, label, li, td, th) {
  font-weight: 500 !important;
  letter-spacing: 0 !important;
}

body.edova-admin-portal :is(h1, h2, h3, h4),
body.edova-customer-portal :is(h1, h2, h3, h4),
body.edova-technician-portal :is(h1, h2, h3, h4),
body.edova-admin-portal :is(button.primary, .primary, .portal-nav button.active, .portal-nav button[aria-current="page"]),
body.edova-customer-portal :is(button.primary, .primary, .portal-nav button.active, .portal-nav button[aria-current="page"], .portal-nav button[aria-selected="true"]),
body.edova-technician-portal :is(button.primary, .primary, .portal-nav button.active, .portal-nav button[aria-current="page"]) {
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}

body.edova-admin-portal .admin-workbench-board .operations-actions button span,
body.edova-admin-portal .admin-workbench-board .operations-actions button.active span,
body.edova-admin-portal .admin-sidebar .portal-nav .portal-nav-empty-state,
body.edova-technician-portal .technician-device-empty-console .technician-device-empty-row > span {
  font-weight: 500 !important;
  letter-spacing: 0 !important;
}

@media (max-width: 720px) {
  body.edova-admin-portal,
  body.edova-customer-portal,
  body.edova-technician-portal {
    display: block !important;
    grid-template-columns: none !important;
    overflow-x: hidden !important;
  }

  body.edova-admin-portal .admin-shell,
  body.edova-technician-portal .technician-shell {
    display: block !important;
    grid-template-columns: none !important;
    min-height: 0 !important;
  }

  body.edova-admin-portal .admin-sidebar,
  body.edova-technician-portal .technician-rail,
  body.edova-customer-portal > .portal-nav {
    align-content: start !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    min-height: 0 !important;
    position: static !important;
    top: auto !important;
    width: 100% !important;
  }

  body.edova-admin-portal .admin-sidebar-brand,
  body.edova-technician-portal .rail-brand,
  body.edova-customer-portal > .portal-nav::before {
    margin-bottom: 8px !important;
    min-height: 0 !important;
  }

  body.edova-admin-portal .admin-workspace,
  body.edova-technician-portal .technician-workspace,
  body.edova-customer-portal > .topbar,
  body.edova-customer-portal > .view-scope-line,
  body.edova-customer-portal > .object-context,
  body.edova-customer-portal > .customer-workbench-board,
  body.edova-customer-portal > .edova-system-spine,
  body.edova-customer-portal > .layout,
  body.edova-customer-portal > .legal-footer {
    grid-column: auto !important;
    min-width: 0 !important;
    width: 100% !important;
  }

  body.edova-admin-portal .topbar,
  body.edova-technician-portal .topbar,
  body.edova-customer-portal .topbar {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    position: static !important;
    top: auto !important;
  }

  body.edova-admin-portal .topbar h1,
  body.edova-technician-portal .topbar h1,
  body.edova-customer-portal .topbar h1 {
    font-size: 18px !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  body.edova-admin-portal .top-session-line,
  body.edova-technician-portal .top-session-line,
  body.edova-customer-portal .top-session-line {
    display: none !important;
  }

  body.edova-admin-portal .topbar-actions,
  body.edova-technician-portal .topbar-actions,
  body.edova-customer-portal .topbar-actions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
  }

  body.edova-admin-portal .edova-system-spine,
  body.edova-technician-portal .edova-system-spine,
  body.edova-customer-portal .edova-system-spine,
  body.edova-admin-portal .edova-system-map,
  body.edova-technician-portal .edova-system-map,
  body.edova-customer-portal .edova-system-map,
  body.edova-customer-portal .customer-workbench-board,
  body.edova-technician-portal .technician-workbench-board,
  body.edova-admin-portal .admin-workbench-board {
    display: none !important;
  }

  body.edova-customer-portal .layout,
  body.edova-technician-portal .layout,
  body.edova-admin-portal .layout {
    margin: 8px !important;
    max-width: none !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
    width: calc(100% - 16px) !important;
  }

  body.edova-customer-portal .object-context,
  body.edova-technician-portal .object-context,
  body.edova-admin-portal .object-context,
  body.edova-customer-portal .view-scope-line,
  body.edova-admin-portal .view-scope-line {
    margin: 8px !important;
    width: calc(100% - 16px) !important;
  }

  body.edova-technician-portal .technician-console-body,
  body.edova-technician-portal .technician-console-main,
  body.edova-technician-portal .technician-console-side,
  body.edova-technician-portal .technician-mission-board,
  body.edova-technician-portal .technician-mission-grid,
  body.edova-technician-portal .technician-console-stats,
  body.edova-customer-portal .customer-operations-panel,
  body.edova-customer-portal .customer-operations-panel .operations-body,
  body.edova-customer-portal .customer-ems-console,
  body.edova-customer-portal .ems-console-body,
  body.edova-customer-portal .customer-ems-console .summary-band,
  body.edova-customer-portal .customer-ems-console .energy-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
  }

  body.edova-technician-portal .technician-mission-grid article,
  body.edova-technician-portal .technician-console-stat,
  body.edova-customer-portal .customer-operations-panel > *,
  body.edova-customer-portal .customer-ems-console > * {
    min-width: 0 !important;
    width: 100% !important;
  }

  body.edova-admin-portal .panel,
  body.edova-technician-portal .panel,
  body.edova-customer-portal .panel,
  body.edova-admin-portal [role="table"],
  body.edova-technician-portal [role="table"],
  body.edova-customer-portal [role="table"] {
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.edova-admin-portal .topbar-main,
  body.edova-admin-portal .admin-context-bar,
  body.edova-admin-portal .top-tenant-picker,
  body.edova-admin-portal .tenant-picker-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    inline-size: 100% !important;
    max-inline-size: 100% !important;
  }

  body.edova-admin-portal .topbar-actions,
  body.edova-admin-portal .tenant-picker-grid button,
  body.edova-admin-portal .tenant-picker-grid label,
  body.edova-admin-portal .tenant-picker-grid input,
  body.edova-admin-portal .tenant-picker-grid select {
    inline-size: 100% !important;
    max-inline-size: 100% !important;
    min-inline-size: 0 !important;
  }

  body.edova-admin-portal .topbar-actions {
    justify-content: stretch !important;
  }

  body.edova-admin-portal .topbar-actions > * {
    min-inline-size: 0 !important;
    white-space: normal !important;
  }

  body.edova-admin-portal .admin-task-row,
  body.edova-admin-portal .platform-approval-row,
  body.edova-admin-portal .platform-approval-table .platform-approval-row,
  body.edova-technician-portal .service-focus-row,
  body.edova-technician-portal .technician-dispatch-row,
  body.edova-technician-portal .technician-work-row,
  body.edova-technician-portal .technician-technical-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    inline-size: 100% !important;
    max-inline-size: 100% !important;
  }

  body.edova-admin-portal .admin-task-row.is-head,
  body.edova-admin-portal .platform-approval-row.is-head,
  body.edova-technician-portal .service-focus-row.is-head,
  body.edova-technician-portal .technician-dispatch-row.is-head,
  body.edova-technician-portal .technician-work-row.is-head,
  body.edova-technician-portal .technician-technical-row.is-head {
    display: none !important;
  }

  body.edova-admin-portal .admin-task-row :is(span, small, strong, em, b),
  body.edova-admin-portal .platform-approval-row :is(span, small, strong, em, b),
  body.edova-technician-portal .service-focus-row :is(span, small, strong, em, b),
  body.edova-technician-portal .technician-dispatch-row :is(span, small, strong, em, b),
  body.edova-technician-portal .technician-work-row :is(span, small, strong, em, b),
  body.edova-technician-portal .technician-technical-row :is(span, small, strong, em, b) {
    inline-size: 100% !important;
    max-inline-size: 100% !important;
    min-inline-size: 0 !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
  }

  body.edova-admin-portal .admin-task-row button,
  body.edova-admin-portal .platform-approval-row button,
  body.edova-technician-portal .service-focus-row button,
  body.edova-technician-portal .technician-dispatch-row button,
  body.edova-technician-portal .technician-work-row button,
  body.edova-technician-portal .technician-technical-row button {
    justify-self: stretch !important;
    inline-size: 100% !important;
    max-inline-size: 100% !important;
  }
}

/* Final mobile guard: prevent overview maps and footer bands from widening the
   viewport or compressing text into unusable columns. */
@media (max-width: 720px) {
  body.edova-admin-portal .edova-system-spine,
  body.edova-technician-portal .edova-system-spine,
  body.edova-customer-portal .edova-system-spine,
  body.edova-admin-portal .edova-system-map,
  body.edova-technician-portal .edova-system-map,
  body.edova-customer-portal .edova-system-map,
  body.edova-customer-portal .customer-workbench-board,
  body.edova-technician-portal .technician-workbench-board,
  body.edova-admin-portal .admin-workbench-board {
    display: none !important;
  }

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

  body.edova-admin-portal .legal-footer,
  body.edova-technician-portal .legal-footer,
  body.edova-customer-portal .legal-footer {
    margin-left: 8px !important;
    margin-right: 8px !important;
    max-width: calc(100vw - 16px) !important;
    width: calc(100vw - 16px) !important;
  }

  body.edova-admin-portal .layout,
  body.edova-technician-portal .layout,
  body.edova-customer-portal .layout,
  body.edova-admin-portal .admin-workspace,
  body.edova-technician-portal .technician-workspace {
    max-width: 100vw !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
  }

  body.edova-admin-portal .portal-nav,
  body.edova-technician-portal .portal-nav,
  body.edova-customer-portal .portal-nav {
    display: grid !important;
    gap: 5px !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    margin-left: 8px !important;
    margin-right: 8px !important;
    max-width: calc(100vw - 16px) !important;
    overflow: visible !important;
    width: calc(100vw - 16px) !important;
  }

  body.edova-admin-portal .portal-nav-label,
  body.edova-technician-portal .portal-nav-label,
  body.edova-customer-portal .portal-nav-label {
    grid-column: 1 / -1 !important;
    min-width: 0 !important;
    width: 100% !important;
  }

  body.edova-admin-portal .portal-nav button,
  body.edova-technician-portal .portal-nav button,
  body.edova-customer-portal .portal-nav button {
    align-items: center !important;
    display: grid !important;
    gap: 5px !important;
    grid-template-columns: 28px minmax(0, 1fr) !important;
    justify-content: start !important;
    min-height: 42px !important;
    min-width: 0 !important;
    overflow: visible !important;
    padding: 6px 7px !important;
    text-align: left !important;
    white-space: normal !important;
    width: 100% !important;
  }

  body.edova-admin-portal .portal-nav button span,
  body.edova-technician-portal .portal-nav button span,
  body.edova-customer-portal .portal-nav button span {
    min-width: 0 !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
  }

  body.edova-technician-portal.is-authenticated[data-active-view="overview"] .technician-workbench-board,
  body.edova-technician-portal[data-active-view="overview"] .technician-workbench-board {
    display: grid !important;
    gap: 8px !important;
    grid-template-columns: minmax(0, 1fr) !important;
    margin-left: 8px !important;
    margin-right: 8px !important;
    max-width: calc(100vw - 16px) !important;
    min-width: 0 !important;
    width: calc(100vw - 16px) !important;
  }

  body.edova-technician-portal.is-authenticated[data-active-view="overview"] .technician-workbench-board .workbench-lead,
  body.edova-technician-portal[data-active-view="overview"] .technician-workbench-board .workbench-lead,
  body.edova-technician-portal.is-authenticated[data-active-view="overview"] .technician-workbench-board .operations-process,
  body.edova-technician-portal[data-active-view="overview"] .technician-workbench-board .operations-process,
  body.edova-technician-portal.is-authenticated[data-active-view="overview"] .technician-workbench-board .operations-actions,
  body.edova-technician-portal[data-active-view="overview"] .technician-workbench-board .operations-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    max-width: 100% !important;
    min-width: 0 !important;
    width: 100% !important;
  }

  body.edova-technician-portal.is-authenticated[data-active-view="overview"] .technician-workbench-board .workbench-lead :is(.eyebrow, h2, span),
  body.edova-technician-portal[data-active-view="overview"] .technician-workbench-board .workbench-lead :is(.eyebrow, h2, span),
  body.edova-technician-portal.is-authenticated[data-active-view="overview"] .technician-workbench-board .operations-process :is(span, strong),
  body.edova-technician-portal[data-active-view="overview"] .technician-workbench-board .operations-process :is(span, strong),
  body.edova-technician-portal.is-authenticated[data-active-view="overview"] .technician-workbench-board .operations-actions button,
  body.edova-technician-portal[data-active-view="overview"] .technician-workbench-board .operations-actions button {
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
    width: 100% !important;
  }

  body.edova-technician-portal.is-authenticated[data-active-view="overview"] .technician-workbench-board .operations-process :is(span, strong),
  body.edova-technician-portal[data-active-view="overview"] .technician-workbench-board .operations-process :is(span, strong) {
    font-weight: 600 !important;
    letter-spacing: 0 !important;
  }

  body.edova-technician-portal .technician-mission-list,
  body.edova-technician-portal .technician-mission-row,
  body.edova-technician-portal .technician-dispatch-matrix,
  body.edova-technician-portal .technician-dispatch-head,
  body.edova-technician-portal .technician-dispatch-table,
  body.edova-technician-portal .technician-dispatch-row,
  body.edova-technician-portal .technician-work-table-section,
  body.edova-technician-portal .technician-work-table-head,
  body.edova-technician-portal .technician-work-table,
  body.edova-technician-portal .technician-work-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    max-width: 100% !important;
    min-width: 0 !important;
    width: 100% !important;
  }

  body.edova-technician-portal .technician-mission-row {
    gap: 5px !important;
  }

  body.edova-technician-portal .technician-mission-row.is-head {
    display: none !important;
  }

  body.edova-technician-portal .technician-mission-row :is(span, strong, small, em) {
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
    width: 100% !important;
  }

  body.edova-technician-portal .technician-dispatch-head {
    align-items: start !important;
    gap: 5px !important;
  }

  body.edova-technician-portal .technician-dispatch-head > div,
  body.edova-technician-portal .technician-dispatch-head .eyebrow,
  body.edova-technician-portal .technician-dispatch-head h3,
  body.edova-technician-portal .technician-dispatch-head small {
    display: block !important;
    inline-size: 100% !important;
    max-inline-size: 100% !important;
    min-inline-size: 0 !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
  }

  body.edova-technician-portal .technician-dispatch-head .eyebrow {
    line-height: 1.2 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  body.edova-technician-portal .technician-dispatch-row {
    gap: 5px !important;
  }

  body.edova-technician-portal .technician-dispatch-row :is(span, strong, small, em, b) {
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
    width: 100% !important;
  }

  body.edova-technician-portal .technician-work-row.is-head {
    display: none !important;
  }

  body.edova-technician-portal .technician-dispatch-row.is-head {
    display: none !important;
  }

  body.edova-technician-portal .technician-work-table-head :is(div, span, h3, small),
  body.edova-technician-portal .technician-work-row :is(span, div, strong, small, em, b) {
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
    width: 100% !important;
  }

  body.edova-technician-portal .technician-work-row .service-focus-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
  }
}

/* Login guard: public portal entry screens expose authentication only. */
body.edova-admin-portal.is-login [hidden],
body.edova-customer-portal.is-login [hidden],
body.edova-technician-portal.is-login [hidden],
body.edova-admin-portal.is-login .admin-sidebar,
body.edova-admin-portal.is-login .portal-nav,
body.edova-admin-portal.is-login .topbar,
body.edova-admin-portal.is-login .admin-context-bar,
body.edova-admin-portal.is-login .object-context,
body.edova-admin-portal.is-login .view-scope-line,
body.edova-admin-portal.is-login .layout,
body.edova-admin-portal.is-login .edova-system-spine,
body.edova-admin-portal.is-login .edova-system-map,
body.edova-admin-portal.is-login .admin-workbench-board,
body.edova-admin-portal.is-login [data-view-panel]:not(#zugang),
body.edova-admin-portal.is-login [data-view-shell],
body.edova-technician-portal.is-login .technician-rail,
body.edova-technician-portal.is-login .rail-process,
body.edova-technician-portal.is-login .portal-nav,
body.edova-technician-portal.is-login .topbar,
body.edova-technician-portal.is-login .object-context,
body.edova-technician-portal.is-login .view-scope-line,
body.edova-technician-portal.is-login .layout,
body.edova-technician-portal.is-login .edova-system-spine,
body.edova-technician-portal.is-login .edova-system-map,
body.edova-technician-portal.is-login .technician-workbench-board,
body.edova-technician-portal.is-login .technician-privacy-line,
body.edova-technician-portal.is-login .technician-login-brief,
body.edova-technician-portal.is-login .login-entry-copy,
body.edova-technician-portal.is-login [data-view-panel]:not(#zugang),
body.edova-technician-portal.is-login [data-view-shell],
body.edova-customer-portal.is-login .portal-nav,
body.edova-customer-portal.is-login .topbar,
body.edova-customer-portal.is-login .object-context,
body.edova-customer-portal.is-login .view-scope-line,
body.edova-customer-portal.is-login .layout,
body.edova-customer-portal.is-login .edova-system-spine,
body.edova-customer-portal.is-login .edova-system-map,
body.edova-customer-portal.is-login .customer-workbench-board,
body.edova-customer-portal.is-login .customer-register-entry,
body.edova-customer-portal.is-login .customer-login-brief,
body.edova-customer-portal.is-login .login-entry-copy,
body.edova-customer-portal.is-login .login-entry-note,
body.edova-customer-portal.is-login [data-view-panel]:not(#zugang),
body.edova-customer-portal.is-login [data-view-shell] {
  display: none !important;
}

body.edova-admin-portal.is-login #zugang h2,
body.edova-customer-portal.is-login #zugang h2,
body.edova-technician-portal.is-login #zugang h2,
body.edova-admin-portal.is-login #login-button,
body.edova-customer-portal.is-login #login-button,
body.edova-technician-portal.is-login #login-button {
  font-weight: 500 !important;
}

/* Final context tone: customer/site/controller chips should guide, not alarm. */
body.edova-admin-portal .object-context .context-step,
body.edova-technician-portal .object-context .context-step,
body.edova-customer-portal .object-context .context-step {
  background: #fbfcfd !important;
  border: 1px solid var(--ems-line) !important;
  border-left: 3px solid #b8cbd4 !important;
  box-shadow: none !important;
  color: var(--ems-ink) !important;
}

body.edova-admin-portal .object-context .context-step.is-ok,
body.edova-technician-portal .object-context .context-step.is-ok,
body.edova-customer-portal .object-context .context-step.is-ok {
  background: #f7fafb !important;
  border-left-color: var(--ems-role) !important;
}

body.edova-admin-portal .object-context .context-step.is-missing,
body.edova-technician-portal .object-context .context-step.is-missing,
body.edova-customer-portal .object-context .context-step.is-missing {
  background: #fbfcfd !important;
  border-left-color: #8fa5b0 !important;
}

body.edova-admin-portal .object-context .context-step span,
body.edova-admin-portal .object-context .context-step strong,
body.edova-admin-portal .object-context .context-step small,
body.edova-technician-portal .object-context .context-step span,
body.edova-technician-portal .object-context .context-step strong,
body.edova-technician-portal .object-context .context-step small,
body.edova-customer-portal .object-context .context-step span,
body.edova-customer-portal .object-context .context-step strong,
body.edova-customer-portal .object-context .context-step small {
  color: inherit !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
}

body.edova-admin-portal .object-context .context-step strong,
body.edova-technician-portal .object-context .context-step strong,
body.edova-customer-portal .object-context .context-step strong {
  font-weight: 600 !important;
}

body.edova-admin-portal summary,
body.edova-technician-portal summary,
body.edova-customer-portal summary {
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}

/* Customer mobile workspaces: keep navigation and context available without
   pushing the actual task below a full screen of chrome. */
@media (max-width: 720px) {
  body.edova-admin-portal.is-authenticated .admin-sidebar {
    min-height: 0 !important;
    padding: 6px 8px !important;
  }

  body.edova-admin-portal.is-authenticated .admin-sidebar-brand {
    align-items: center !important;
    display: grid !important;
    grid-template-columns: 28px minmax(0, 1fr) !important;
    margin: 6px 2px !important;
    min-height: 0 !important;
    padding: 8px 10px !important;
  }

  body.edova-admin-portal.is-authenticated .admin-sidebar-brand p {
    font-size: 9px !important;
    line-height: 1.05 !important;
  }

  body.edova-admin-portal.is-authenticated .admin-sidebar-brand strong {
    font-size: 16px !important;
    line-height: 1.05 !important;
  }

  body.edova-admin-portal.is-authenticated .admin-sidebar-brand .admin-version-badge {
    font-size: 10px !important;
    line-height: 1 !important;
    margin-top: 2px !important;
    padding: 4px 7px !important;
    width: max-content !important;
  }

  body.edova-admin-portal.is-authenticated .admin-sidebar .portal-nav {
    display: grid !important;
    gap: 4px !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    margin: 6px 0 !important;
    max-width: calc(100vw - 16px) !important;
    padding: 6px !important;
    width: calc(100vw - 16px) !important;
  }

  body.edova-admin-portal.is-authenticated .admin-sidebar .portal-nav + .portal-nav {
    margin-top: 6px !important;
    padding-top: 8px !important;
  }

  body.edova-admin-portal.is-authenticated .admin-sidebar .portal-nav-label {
    font-size: 9px !important;
    grid-column: 1 / -1 !important;
    line-height: 1.05 !important;
    margin: 2px 0 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
  }

  body.edova-admin-portal.is-authenticated .admin-sidebar .portal-nav-empty-state {
    display: none !important;
  }

  body.edova-admin-portal.is-authenticated .admin-sidebar .portal-nav button {
    align-items: center !important;
    display: flex !important;
    font-size: 12px !important;
    justify-content: flex-start !important;
    line-height: 1.12 !important;
    min-height: 31px !important;
    min-width: 0 !important;
    overflow: visible !important;
    padding: 4px 6px !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
  }

  body.edova-admin-portal.is-authenticated.admin-no-customer .admin-sidebar .portal-nav-tenant,
  body.edova-admin-portal.is-authenticated .admin-sidebar .portal-nav button.portal-nav-secondary {
    display: none !important;
  }

  body.edova-admin-portal.is-authenticated .topbar {
    gap: 6px !important;
    min-height: 0 !important;
    padding: 8px 12px !important;
  }

  body.edova-admin-portal.is-authenticated .topbar-main {
    align-items: stretch !important;
    display: grid !important;
    gap: 6px !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.edova-admin-portal.is-authenticated .topbar .eyebrow,
  body.edova-admin-portal.is-authenticated .topbar .top-customer-context,
  body.edova-admin-portal.is-authenticated .topbar .top-session-line {
    display: none !important;
  }

  body.edova-admin-portal.is-authenticated .topbar h1 {
    font-size: 17px !important;
    line-height: 1.12 !important;
    margin: 0 !important;
  }

  body.edova-admin-portal.is-authenticated .topbar .topbar-actions {
    gap: 6px !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    margin: 0 !important;
  }

  body.edova-admin-portal.is-authenticated .topbar .topbar-actions button {
    min-height: 30px !important;
    padding: 4px 8px !important;
  }

  body.edova-admin-portal.is-authenticated .admin-context-bar {
    gap: 6px !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.edova-admin-portal.is-authenticated .tenant-picker-grid {
    gap: 6px !important;
    grid-template-columns: minmax(0, 1fr) minmax(112px, 0.38fr) !important;
  }

  body.edova-admin-portal.is-authenticated .tenant-picker-grid label {
    gap: 3px !important;
    min-width: 0 !important;
  }

  body.edova-admin-portal.is-authenticated.admin-has-customer:not([data-active-view="plattform"]) .tenant-picker-grid label:nth-of-type(2),
  body.edova-admin-portal.is-authenticated.admin-has-customer:not([data-active-view="plattform"]) #clear-customer-selection-button,
  body.edova-admin-portal.is-authenticated.admin-has-customer:not([data-active-view="plattform"]) #global-customer-alerts {
    display: none !important;
  }

  body.edova-admin-portal.is-authenticated .view-scope-line {
    gap: 6px !important;
    grid-template-columns: minmax(0, auto) minmax(0, 1fr) !important;
    margin: 6px 8px !important;
    min-height: 0 !important;
    padding: 5px 8px !important;
    width: calc(100% - 16px) !important;
  }

  body.edova-admin-portal.is-authenticated .view-scope-line strong {
    font-size: 10px !important;
    line-height: 1 !important;
    padding: 4px 7px !important;
    white-space: nowrap !important;
  }

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

  body.edova-admin-portal.is-authenticated[data-active-view="kunden"] .view-scope-line {
    margin: 2px 8px !important;
    padding: 3px 8px !important;
  }

  body.edova-admin-portal.is-authenticated[data-active-view="kunden"] .layout {
    margin-top: 2px !important;
  }

  body.edova-admin-portal.is-authenticated .object-context {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    margin: 6px 8px !important;
    width: calc(100% - 16px) !important;
  }

  body.edova-admin-portal.is-authenticated .object-context .context-step {
    min-height: 34px !important;
    padding: 5px 7px !important;
  }

  body.edova-admin-portal.is-authenticated:not([data-active-view="overview"]) .object-context .context-step small {
    display: none !important;
  }

  body.edova-admin-portal.is-authenticated .object-context .context-step span {
    font-size: 9px !important;
    line-height: 1.05 !important;
  }

  body.edova-admin-portal.is-authenticated .object-context .context-step strong {
    font-size: 12px !important;
    line-height: 1.15 !important;
  }

  body.edova-admin-portal.is-authenticated .layout {
    margin: 6px 8px !important;
    padding: 0 0 18px !important;
    width: calc(100% - 16px) !important;
  }

  body.edova-customer-portal.is-authenticated > .topbar {
    gap: 6px !important;
    min-height: 0 !important;
    padding: 8px 14px !important;
  }

  body.edova-customer-portal.is-authenticated > .topbar .eyebrow,
  body.edova-customer-portal.is-authenticated > .topbar #top-customer-context,
  body.edova-customer-portal.is-authenticated > .topbar .top-customer-context {
    display: none !important;
  }

  body.edova-customer-portal.is-authenticated > .topbar h1 {
    font-size: 17px !important;
    line-height: 1.12 !important;
    margin: 0 !important;
  }

  body.edova-customer-portal.is-authenticated > .topbar .topbar-actions {
    gap: 6px !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    margin: 0 !important;
  }

  body.edova-customer-portal.is-authenticated > .portal-nav {
    gap: 4px !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    margin: 6px 8px !important;
    max-width: calc(100vw - 16px) !important;
    padding: 6px !important;
    width: calc(100vw - 16px) !important;
  }

  body.edova-customer-portal.is-authenticated > .portal-nav::before {
    display: none !important;
  }

  body.edova-customer-portal.is-authenticated > .portal-nav .portal-nav-label {
    color: #54717d !important;
    font-size: 9px !important;
    grid-column: 1 / -1 !important;
    line-height: 1.1 !important;
    margin: 2px 0 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
  }

  body.edova-customer-portal.is-authenticated > .portal-nav button {
    align-items: center !important;
    display: flex !important;
    font-size: 12px !important;
    justify-content: center !important;
    line-height: 1.12 !important;
    min-height: 30px !important;
    padding: 4px 5px !important;
    text-align: center !important;
  }

  body.edova-customer-portal.is-authenticated > .customer-scope-line,
  body.edova-customer-portal.is-authenticated > .view-scope-line {
    gap: 6px !important;
    grid-template-columns: minmax(0, auto) minmax(0, 1fr) !important;
    margin: 6px 8px !important;
    min-height: 0 !important;
    padding: 5px 8px !important;
    width: calc(100% - 16px) !important;
  }

  body.edova-customer-portal.is-authenticated > .customer-scope-line strong,
  body.edova-customer-portal.is-authenticated > .view-scope-line strong {
    font-size: 10px !important;
    line-height: 1 !important;
    padding: 4px 7px !important;
    white-space: nowrap !important;
  }

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

  body.edova-customer-portal.is-authenticated > .object-context {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    margin: 6px 8px !important;
    width: calc(100% - 16px) !important;
  }

  body.edova-customer-portal.is-authenticated > .object-context .context-step {
    min-height: 34px !important;
    padding: 5px 7px !important;
  }

  body.edova-customer-portal.is-authenticated:not([data-active-view="overview"]) > .object-context .context-step small {
    display: none !important;
  }

  body.edova-customer-portal.is-authenticated > .object-context .context-step span {
    font-size: 9px !important;
    line-height: 1.05 !important;
  }

  body.edova-customer-portal.is-authenticated > .object-context .context-step strong {
    font-size: 12px !important;
    line-height: 1.15 !important;
  }

  body.edova-customer-portal.is-authenticated > .layout {
    margin: 6px 8px !important;
    padding: 0 0 18px !important;
    width: calc(100% - 16px) !important;
  }

  body.edova-technician-portal.is-authenticated .rail-brand {
    align-items: center !important;
    display: grid !important;
    grid-template-columns: 28px minmax(0, 1fr) !important;
    margin: 6px 8px !important;
    min-height: 0 !important;
    padding: 8px 10px !important;
  }

  body.edova-technician-portal.is-authenticated .rail-brand p,
  body.edova-technician-portal.is-authenticated .rail-brand > div > span {
    font-size: 9px !important;
    line-height: 1.05 !important;
  }

  body.edova-technician-portal.is-authenticated .rail-brand strong {
    font-size: 16px !important;
    line-height: 1.05 !important;
  }

  body.edova-technician-portal.is-authenticated .portal-nav.technician-nav {
    gap: 4px !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    margin: 6px 8px !important;
    max-width: calc(100vw - 16px) !important;
    padding: 6px !important;
    width: calc(100vw - 16px) !important;
  }

  body.edova-technician-portal.is-authenticated .portal-nav.technician-nav .portal-nav-label {
    font-size: 9px !important;
    grid-column: 1 / -1 !important;
    line-height: 1.05 !important;
    margin: 2px 0 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
  }

  body.edova-technician-portal.is-authenticated .portal-nav.technician-nav button {
    align-items: center !important;
    display: grid !important;
    font-size: 12px !important;
    gap: 4px !important;
    grid-template-columns: 22px minmax(0, 1fr) !important;
    line-height: 1.12 !important;
    min-height: 32px !important;
    min-width: 0 !important;
    overflow: visible !important;
    padding: 4px 5px !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
  }

  body.edova-technician-portal.is-authenticated .portal-nav.technician-nav button span {
    min-width: 0 !important;
  }

  body.edova-technician-portal.is-authenticated .topbar {
    gap: 6px !important;
    min-height: 0 !important;
    padding: 8px 12px !important;
  }

  body.edova-technician-portal.is-authenticated .topbar .eyebrow,
  body.edova-technician-portal.is-authenticated .topbar .workspace-subtitle {
    display: none !important;
  }

  body.edova-technician-portal.is-authenticated .topbar h1 {
    font-size: 17px !important;
    line-height: 1.12 !important;
    margin: 0 !important;
  }

  body.edova-technician-portal.is-authenticated .object-context {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    margin: 6px 8px !important;
    width: calc(100% - 16px) !important;
  }

  body.edova-technician-portal.is-authenticated .object-context .context-step {
    min-height: 34px !important;
    padding: 5px 7px !important;
  }

  body.edova-technician-portal.is-authenticated:not([data-active-view="overview"]) .object-context .context-step small {
    display: none !important;
  }

  body.edova-technician-portal.is-authenticated .object-context .context-step span {
    font-size: 9px !important;
    line-height: 1.05 !important;
  }

  body.edova-technician-portal.is-authenticated .object-context .context-step strong {
    font-size: 12px !important;
    line-height: 1.15 !important;
  }
}

/* Final Admin action tone: default actions stay light; only primary and destructive actions are filled. */
body.edova-admin-portal button:not(.primary):not(.primary-button):not(.danger-button):not(.customer-delete-button):not(#delete-customer-button):not(#delete-site-button):not(#controller-delete-submit-button):not(.active):not([aria-selected="true"]) {
  background: #ffffff !important;
  border: 1px solid #cbd9e0 !important;
  box-shadow: none !important;
  color: #245f73 !important;
}

body.edova-admin-portal button:not(.primary):not(.primary-button):not(.danger-button):not(.customer-delete-button):not(#delete-customer-button):not(#delete-site-button):not(#controller-delete-submit-button):not(.active):not([aria-selected="true"]):hover,
body.edova-admin-portal button:not(.primary):not(.primary-button):not(.danger-button):not(.customer-delete-button):not(#delete-customer-button):not(#delete-site-button):not(#controller-delete-submit-button):not(.active):not([aria-selected="true"]):focus-visible {
  background: #f2f7f9 !important;
  border-color: #9eb7c3 !important;
  color: #1d5061 !important;
}

body.edova-admin-portal :is(button.primary, .primary-button, #select-customer-button, button[type="submit"]):not(.danger-button):not(.customer-delete-button) {
  background: #245f73 !important;
  border-color: #245f73 !important;
  box-shadow: none !important;
  color: #ffffff !important;
}

body.edova-admin-portal :is(button.primary, .primary-button, #select-customer-button, button[type="submit"]):not(.danger-button):not(.customer-delete-button):hover,
body.edova-admin-portal :is(button.primary, .primary-button, #select-customer-button, button[type="submit"]):not(.danger-button):not(.customer-delete-button):focus-visible {
  background: #1d5061 !important;
  border-color: #1d5061 !important;
}

body.edova-admin-portal :is(.danger-button, .customer-delete-button, #delete-customer-button, #delete-site-button, #controller-delete-submit-button) {
  background: #b42318 !important;
  border-color: #b42318 !important;
  color: #ffffff !important;
}

body.edova-admin-portal .workflow-current {
  background: #f8fbfc !important;
  border-color: #d7e2e8 !important;
  border-left-color: #245f73 !important;
}

body.edova-admin-portal .workflow-current span {
  background: #eef6f8 !important;
  border-color: #c8dce4 !important;
  color: #245f73 !important;
  font-weight: 600 !important;
}

body.edova-admin-portal .workflow-rail .workflow-step.current {
  border-color: #9eb7c3 !important;
  box-shadow: none !important;
}

body.edova-admin-portal .workflow-rail .workflow-step.current i {
  background: #245f73 !important;
  color: #ffffff !important;
}

@media (max-width: 720px) {
  body.edova-admin-portal .platform-console-head,
  body.edova-admin-portal .platform-console-body,
  body.edova-admin-portal .platform-console-side {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    max-height: none !important;
    min-width: 0 !important;
  }

  body.edova-admin-portal .platform-stat-list,
  body.edova-admin-portal .platform-console-side .platform-issue-list,
  body.edova-admin-portal .platform-console-side .platform-command-list {
    grid-column: 1 !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
  }

  body.edova-admin-portal .platform-stat-row,
  body.edova-admin-portal .platform-console-side .platform-issue-row,
  body.edova-admin-portal .platform-command-row {
    grid-template-columns: minmax(0, 1fr) !important;
    min-height: 0 !important;
  }

  body.edova-admin-portal .platform-stat-row span,
  body.edova-admin-portal .platform-stat-row strong,
  body.edova-admin-portal .platform-stat-row small,
  body.edova-admin-portal .platform-console-side .platform-issue-row span,
  body.edova-admin-portal .platform-console-side .platform-issue-row strong,
  body.edova-admin-portal .platform-console-side .platform-issue-row small,
  body.edova-admin-portal .platform-command-row span,
  body.edova-admin-portal .platform-command-row strong,
  body.edova-admin-portal .platform-command-row small {
    overflow-wrap: normal !important;
    white-space: normal !important;
    word-break: normal !important;
  }

  body.edova-admin-portal[data-active-view="kunden"] .customers-panel {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.edova-admin-portal[data-active-view="kunden"] .customers-panel > .customer-directory-box,
  body.edova-admin-portal[data-active-view="kunden"] .customers-panel > .customer-create-box {
    grid-column: 1 !important;
    min-width: 0 !important;
    width: 100% !important;
  }

  body.edova-admin-portal .customers-panel .customer-directory-actions {
    display: grid !important;
    gap: 6px !important;
    grid-template-columns: minmax(0, 1fr) !important;
    min-width: 0 !important;
    padding: 8px !important;
  }

  body.edova-admin-portal .customers-panel .customer-directory-actions button {
    min-width: 0 !important;
    overflow-wrap: normal !important;
    white-space: normal !important;
    width: 100% !important;
  }

  body.edova-admin-portal[data-active-view="karte"] .admin-system-map-shell,
  body.edova-admin-portal[data-active-view="karte"] .controller-map-shell {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    min-width: 0 !important;
    width: 100% !important;
  }

  body.edova-admin-portal[data-active-view="karte"] .controller-map,
  body.edova-admin-portal[data-active-view="karte"] .controller-map-list,
  body.edova-admin-portal[data-active-view="karte"] .admin-system-map-shell > .controller-map-list {
    grid-column: 1 !important;
    min-width: 0 !important;
    width: 100% !important;
  }

  body.edova-admin-portal[data-active-view="karte"] .admin-system-map-head,
  body.edova-admin-portal[data-active-view="karte"] .admin-system-keyfacts,
  body.edova-admin-portal[data-active-view="karte"] .admin-system-lanes,
  body.edova-admin-portal[data-active-view="karte"] .admin-system-flowline {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    min-width: 0 !important;
    width: 100% !important;
  }

  body.edova-admin-portal[data-active-view="karte"] .admin-system-metric,
  body.edova-admin-portal[data-active-view="karte"] .admin-system-node {
    min-width: 0 !important;
    width: 100% !important;
  }

  body.edova-admin-portal[data-active-view="karte"] .controller-map .detail-empty,
  body.edova-admin-portal[data-active-view="karte"] .controller-map-list .detail-empty {
    min-width: 0 !important;
    overflow-wrap: normal !important;
    white-space: normal !important;
    width: auto !important;
  }

  body.edova-admin-portal[data-active-view="karte"] .admin-system-command-table .admin-handover-table {
    max-height: none !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  body.edova-admin-portal[data-active-view="karte"] .admin-handover-row {
    gap: 3px !important;
    grid-template-columns: minmax(0, 1fr) !important;
    min-height: 0 !important;
    padding: 7px 8px !important;
  }

  body.edova-admin-portal[data-active-view="karte"] .admin-handover-row.is-head {
    display: none !important;
  }

  body.edova-admin-portal[data-active-view="karte"] .admin-handover-row span,
  body.edova-admin-portal[data-active-view="karte"] .admin-handover-row strong,
  body.edova-admin-portal[data-active-view="karte"] .admin-handover-row small,
  body.edova-admin-portal[data-active-view="karte"] .admin-handover-row em,
  body.edova-admin-portal[data-active-view="karte"] .admin-handover-row b {
    grid-column: 1 !important;
    grid-row: auto !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
  }

  body.edova-admin-portal[data-active-view="karte"] .admin-handover-row:not(.is-head) span {
    font-size: 10px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
  }
}

/* Final customer identity tone: status labels and account fields stay readable without heavy display weights. */
body.edova-customer-portal .customer-identity-stat span,
body.edova-customer-portal .customer-identity-stat small,
body.edova-customer-portal .customer-identity-workspace label,
body.edova-customer-portal .customer-identity-workspace button,
body.edova-customer-portal .customer-identity-workspace summary {
  font-weight: 500 !important;
  letter-spacing: 0 !important;
}

body.edova-customer-portal .customer-identity-stat strong,
body.edova-customer-portal .customer-identity-workspace strong {
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}

body.edova-customer-portal label,
body.edova-customer-portal .compact-field,
body.edova-customer-portal .compact-actions,
body.edova-customer-portal .filter-grid,
body.edova-customer-portal .filter-grid-sessions,
body.edova-customer-portal .customer-session-filters .compact-field,
body.edova-customer-portal .customer-form-rail label,
body.edova-customer-portal .customer-charge-point-picker {
  font-weight: 500 !important;
  letter-spacing: 0 !important;
}

@media (max-width: 720px) {
  body.edova-customer-portal .billing-table-wrap,
  body.edova-customer-portal .table-wrap {
    overflow-x: hidden !important;
    width: 100% !important;
  }

  body.edova-customer-portal .billing-table {
    display: block !important;
    min-width: 0 !important;
    table-layout: fixed !important;
    width: 100% !important;
  }

  body.edova-customer-portal .billing-table thead {
    display: none !important;
  }

  body.edova-customer-portal .billing-table tbody,
  body.edova-customer-portal .billing-table tr {
    display: grid !important;
    gap: 1px !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
  }

  body.edova-customer-portal .billing-table tr {
    background: var(--ems-line) !important;
    border: 1px solid var(--ems-line) !important;
    margin-bottom: 8px !important;
  }

  body.edova-customer-portal .billing-table td,
  body.edova-customer-portal .billing-table th {
    background: #ffffff !important;
    display: grid !important;
    gap: 8px !important;
    grid-template-columns: minmax(82px, 0.42fr) minmax(0, 1fr) !important;
    min-width: 0 !important;
    overflow-wrap: normal !important;
    text-align: left !important;
    white-space: normal !important;
    width: 100% !important;
  }

  body.edova-customer-portal .billing-table td::before {
    color: var(--ems-muted) !important;
    font-size: 11px !important;
    font-weight: 500 !important;
  }

  body.edova-customer-portal .billing-table td:nth-child(1)::before { content: "Benutzer"; }
  body.edova-customer-portal .billing-table td:nth-child(2)::before { content: "Firma"; }
  body.edova-customer-portal .billing-table td:nth-child(3)::before { content: "Vorgänge"; }
  body.edova-customer-portal .billing-table td:nth-child(4)::before { content: "Energie"; }
  body.edova-customer-portal .billing-table td:nth-child(5)::before { content: "Tarif"; }
  body.edova-customer-portal .billing-table td:nth-child(6)::before { content: "Netto"; }
  body.edova-customer-portal .billing-table td:nth-child(7)::before { content: "MwSt"; }
  body.edova-customer-portal .billing-table td:nth-child(8)::before { content: "Brutto"; }

  body.edova-customer-portal .billing-table.compact-table td:nth-child(1)::before { content: "Name"; }
  body.edova-customer-portal .billing-table.compact-table td:nth-child(2)::before { content: "Ladevorgänge"; }
  body.edova-customer-portal .billing-table.compact-table td:nth-child(3)::before { content: "Energie"; }
  body.edova-customer-portal .billing-table.compact-table td:nth-child(4)::before { content: "Dauer"; }
  body.edova-customer-portal .billing-table.compact-table td:nth-child(5)::before { content: "Brutto"; }
  body.edova-customer-portal .billing-table.compact-table td:nth-child(6)::before { content: "Letzter"; }

  body.edova-customer-portal .billing-table td[colspan] {
    display: block !important;
  }

  body.edova-customer-portal .billing-table td[colspan]::before {
    content: "" !important;
    display: none !important;
  }
}

/* Technician calm-action pass: regular work steps stay technical, warning colors stay for state only. */
body.edova-technician-portal .technician-technical-row button,
body.edova-technician-portal .technician-mission-grid article button,
body.edova-technician-portal .service-focus-actions button:not(.muted-action-button):not(.tiny-danger-button):not(.danger-button),
body.edova-technician-portal #onboarding button:not(.muted-action-button):not(.tiny-danger-button):not(.danger-button),
body.edova-technician-portal #onboarding-flow button:not(.muted-action-button):not(.tiny-danger-button):not(.danger-button),
body.edova-technician-portal #onboarding-flow .onboarding-next button,
body.edova-technician-portal #onboarding-flow .onboarding-step.current button,
body.edova-technician-portal #onboarding-flow .onboarding-actions button:not(.muted-action-button):not(.tiny-danger-button):not(.danger-button) {
  background: #245f73 !important;
  border-color: #245f73 !important;
  box-shadow: none !important;
  color: #ffffff !important;
  font-weight: 500 !important;
}

body.edova-technician-portal .technician-technical-row button:hover,
body.edova-technician-portal .technician-technical-row button:focus-visible,
body.edova-technician-portal .technician-mission-grid article button:hover,
body.edova-technician-portal .technician-mission-grid article button:focus-visible,
body.edova-technician-portal .service-focus-actions button:not(.muted-action-button):not(.tiny-danger-button):not(.danger-button):hover,
body.edova-technician-portal .service-focus-actions button:not(.muted-action-button):not(.tiny-danger-button):not(.danger-button):focus-visible,
body.edova-technician-portal #onboarding button:not(.muted-action-button):not(.tiny-danger-button):not(.danger-button):hover,
body.edova-technician-portal #onboarding button:not(.muted-action-button):not(.tiny-danger-button):not(.danger-button):focus-visible,
body.edova-technician-portal #onboarding-flow button:not(.muted-action-button):not(.tiny-danger-button):not(.danger-button):hover,
body.edova-technician-portal #onboarding-flow button:not(.muted-action-button):not(.tiny-danger-button):not(.danger-button):focus-visible,
body.edova-technician-portal #onboarding-flow .onboarding-next button:hover,
body.edova-technician-portal #onboarding-flow .onboarding-next button:focus-visible,
body.edova-technician-portal #onboarding-flow .onboarding-step.current button:hover,
body.edova-technician-portal #onboarding-flow .onboarding-step.current button:focus-visible,
body.edova-technician-portal #onboarding-flow .onboarding-actions button:not(.muted-action-button):not(.tiny-danger-button):not(.danger-button):hover,
body.edova-technician-portal #onboarding-flow .onboarding-actions button:not(.muted-action-button):not(.tiny-danger-button):not(.danger-button):focus-visible {
  background: #1d5061 !important;
  border-color: #1d5061 !important;
  outline: 2px solid rgba(36, 95, 115, 0.18) !important;
  outline-offset: 2px !important;
}

body.edova-technician-portal .technician-technical-row.is-ok,
body.edova-technician-portal #onboarding-flow .onboarding-step.done,
body.edova-technician-portal #onboarding-flow .onboarding-checks article.done {
  border-color: var(--ems-line) !important;
  border-left-color: #245f73 !important;
}

body.edova-technician-portal .technician-technical-row,
body.edova-technician-portal .technician-technical-row.is-wartet,
body.edova-technician-portal #onboarding-flow .onboarding-role-boundary article.is-active,
body.edova-technician-portal #onboarding-flow .onboarding-step.current,
body.edova-technician-portal #onboarding-flow .onboarding-checks article.open {
  border-color: var(--ems-line) !important;
  border-left-color: #6f8791 !important;
}

body.edova-technician-portal #onboarding-flow .onboarding-step.current > span {
  background: #245f73 !important;
  border-color: #245f73 !important;
  color: #ffffff !important;
}

body.edova-technician-portal .technician-technical-row.is-kritisch {
  border-color: var(--ems-line) !important;
  border-left-color: var(--ems-danger) !important;
}

body.edova-technician-portal .technician-privacy-line {
  background: #f8fbfd !important;
  border-color: var(--ems-line) !important;
  box-shadow: none !important;
}

body.edova-technician-portal .technician-privacy-line header {
  background: #ffffff !important;
  border-right: 1px solid var(--ems-line) !important;
  color: var(--ems-ink) !important;
}

body.edova-technician-portal .technician-privacy-line header span {
  color: #245f73 !important;
  font-weight: 600 !important;
}

body.edova-technician-portal .technician-privacy-line header strong {
  color: var(--ems-ink) !important;
  font-weight: 600 !important;
}

body.edova-technician-portal .technician-privacy-grid article {
  background: #ffffff !important;
  border-color: var(--ems-line) !important;
  box-shadow: none !important;
}

body.edova-technician-portal .technician-privacy-grid article.is-good,
body.edova-technician-portal .technician-privacy-grid article.is-info {
  border-top-color: #245f73 !important;
}

body.edova-admin-portal .customer-item.active,
body.edova-admin-portal .site-item.active,
body.edova-admin-portal .controller-item.active,
body.edova-admin-portal .catalog-admin-template.active {
  border-color: #bfd2da !important;
  border-left-color: #245f73 !important;
  box-shadow: inset 3px 0 0 #245f73 !important;
}

/* Technician mobile cockpit: start on the live Einsatzcockpit, while the
   duplicate quick-nav/compliance copy stays out of the first mobile flow. */
@media (max-width: 720px) {
  body.edova-technician-portal.is-authenticated[data-active-view="overview"] .technician-workbench-board,
  body.edova-technician-portal.is-authenticated[data-active-view="overview"] .technician-privacy-line {
    display: none !important;
  }

  body.edova-technician-portal.is-authenticated[data-active-view="overview"] .layout {
    margin-top: 8px !important;
  }
}

/* Final portal lightness guard: this file is loaded last in all role portals. */
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;
}

/* Compact proof panels must stay readable; these texts carry operational evidence. */
body.edova-admin-portal .platform-security-row {
  align-items: start !important;
  gap: 2px 8px !important;
  grid-template-columns: minmax(88px, 0.46fr) minmax(0, 1fr) !important;
  min-height: 46px !important;
}

body.edova-admin-portal .platform-security-row small {
  grid-column: 1 / -1 !important;
}

body.edova-admin-portal details.platform-security-matrix:not([open]) > :not(summary) {
  display: none !important;
}

body.edova-admin-portal .platform-security-row :is(span, strong, small),
body.edova-admin-portal .platform-security-head :is(strong, small),
body.edova-customer-portal .customer-privacy-line > summary small,
body.edova-customer-portal .customer-privacy-line article :is(strong, small),
body.edova-admin-portal .system-map-cell small,
body.edova-technician-portal .system-map-cell small,
body.edova-customer-portal .system-map-cell small,
body.edova-admin-portal .system-spine-node small,
body.edova-technician-portal .system-spine-node small,
body.edova-customer-portal .system-spine-node small {
  min-width: 0 !important;
  overflow: visible !important;
  overflow-wrap: anywhere !important;
  text-overflow: clip !important;
  white-space: normal !important;
}

body.edova-customer-portal .customer-privacy-line {
  grid-template-columns: minmax(210px, 0.28fr) minmax(0, 1fr) !important;
}
