/* Argus global UI scale and density system.
   This file is intentionally loaded after legacy and specialized styles. */
:root {
  color-scheme: dark;

  /* Typography */
  --text-xs: clamp(0.75rem, 0.73rem + 0.05vw, 0.8125rem);
  --text-sm: clamp(0.8125rem, 0.79rem + 0.07vw, 0.9rem);
  --text-base: clamp(0.9375rem, 0.9rem + 0.09vw, 1rem);
  --text-lg: clamp(1.0625rem, 1rem + 0.14vw, 1.1875rem);
  --text-xl: clamp(1.3rem, 1.18rem + 0.3vw, 1.625rem);
  --text-2xl: clamp(1.75rem, 1.48rem + 0.65vw, 2.25rem);
  --text-display: clamp(2rem, 1.65rem + 0.9vw, 2.85rem);
  --line-tight: 1.2;
  --line-normal: 1.5;
  --line-relaxed: 1.65;

  /* Spacing */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 2.75rem;

  /* Controls */
  --control-sm: 2.25rem;
  --control-md: 2.625rem;
  --control-lg: 2.875rem;
  --hit-area: 2.5rem;

  /* Layout */
  --sidebar-width: clamp(15rem, 14.2rem + 1vw, 16.75rem);
  --header-height: clamp(4rem, 3.75rem + 0.35vw, 4.5rem);
  --content-max-width: 106rem;
  --content-gutter: clamp(1.25rem, 1rem + 1.2vw, 2.5rem);
  --page-padding-x: clamp(1.25rem, 1rem + 1.15vw, 2.5rem);
  --page-padding-y: clamp(1.5rem, 1.2rem + 0.8vw, 2.5rem);
  --content-wide-max: 200rem;
  --content-standard-max: 96rem;
  --content-reading-max: 58rem;
  --grid-gap: clamp(0.85rem, 0.7rem + 0.35vw, 1.25rem);
  --card-padding: clamp(1rem, 0.85rem + 0.35vw, 1.35rem);
  --table-row-height: 3.25rem;

  /* Buttons */
  --button-height-sm: 2.25rem;
  --button-height-md: 2.625rem;
  --button-height-lg: 2.875rem;
  --button-padding-x: 1rem;
  --button-font-size: var(--text-sm);

  /* Radius */
  --radius-sm: 0.45rem;
  --radius-md: 0.7rem;
  --radius-lg: 1rem;
}

html {
  font-size: clamp(16px, calc(15px + 0.08vw), 18px);
  text-size-adjust: 100%;
}
html[data-ui-scale="compact"] { font-size: clamp(15px, calc(14.4px + 0.06vw), 16px); }
html[data-ui-scale="normal"] { font-size: clamp(16px, calc(15px + 0.08vw), 18px); }
html[data-ui-scale="comfortable"] { font-size: clamp(17px, calc(16px + 0.09vw), 19px); }

body {
  font-size: var(--text-base);
  line-height: var(--line-normal);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

button, input, select, textarea { font-family: inherit; }
:focus-visible { outline: 2px solid #60a5fa; outline-offset: 2px; }

/* Application frame */
.sidebar { width: var(--sidebar-width); }
.main-content { margin-left: var(--sidebar-width); }
.topbar {
  min-height: var(--header-height);
  height: var(--header-height);
  padding-inline: var(--content-gutter);
}
.dashboard {
  width: min(100%, var(--content-max-width));
  max-width: var(--content-max-width);
  padding: clamp(1.75rem, 1.35rem + 0.8vw, 2.5rem) var(--content-gutter) var(--space-7);
}

/* Sidebar and navigation */
.brand { padding: 1.1rem 1.1rem 1rem; gap: var(--space-3); }
.brand .global-brand-logo { height: clamp(5.25rem, 4.75rem + 0.7vw, 6rem); }
.brand strong { font-size: var(--text-base); }
.brand small, .start-menu-title, .nav-submenu-head small { font-size: var(--text-xs); }
.main-nav { padding: var(--space-4) 0.65rem 1.1rem; }
.nav-menu-trigger {
  min-height: 3.35rem;
  padding: 0.55rem 0.65rem;
  grid-template-columns: 2.35rem minmax(0, 1fr) 1rem;
  gap: 0.65rem;
}
.nav-menu-icon { width: 2.35rem; height: 2.35rem; font-size: 1.15rem; }
.nav-menu-trigger strong { font-size: var(--text-sm); font-weight: 600; }
.nav-menu-trigger small { font-size: var(--text-xs); }
.nav-submenu { width: auto; padding: 0.4rem; }
.nav-submenu-head strong { font-size: var(--text-base); }
.nav-submenu .nav-item, .nav-item {
  min-height: 2.85rem;
  padding-inline: 0.85rem;
  gap: 0.75rem;
  font-size: var(--text-sm);
}
.nav-icon { width: 1.25rem; font-size: 1.1rem; }
.nav-submenu .nav-icon { flex: 0 0 1.25rem; }
.nav-submenu .nav-item { overflow-wrap: anywhere; }
.nav-count { min-width: 1.55rem; height: 1.55rem; font-size: var(--text-xs); }
.sidebar-footer { padding: 0.85rem 1.1rem 1rem; }
@media (max-height: 600px) {
  .sidebar .brand { padding-block: 0.5rem; gap: 0.4rem; }
  .sidebar .brand .global-brand-logo { height: 3rem; }
  .sidebar-footer { padding-block: 0.5rem; }
  .sidebar-footer .system-status { margin-bottom: 0.5rem; padding-bottom: 0.5rem; }
}
.system-status strong, .user-card strong { font-size: var(--text-sm); }
.system-status small, .user-card small { font-size: var(--text-xs); }
.avatar { width: 2.35rem; height: 2.35rem; font-size: var(--text-sm); }

/* Header controls */
.search-box { width: min(32rem, 48vw); }
.search-box input {
  height: var(--control-md);
  padding-inline: 2.6rem 4.25rem;
  font-size: var(--text-sm);
}
.search-box kbd, #zoomResetButton { font-size: var(--text-xs); }
.icon-button, .refresh-button {
  min-width: var(--hit-area);
  height: var(--control-md);
  min-height: var(--control-md);
}
.refresh-button { padding-inline: 1rem; font-size: var(--text-sm); }
.zoom-menu { width: 11.5rem; min-height: var(--control-md); height: auto; grid-template-columns: 2.5rem 1fr 2.5rem; }

/* Typography and page hierarchy */
h1, .service-page-header h1 { font-size: var(--text-2xl); line-height: var(--line-tight); }
.page-heading p, .service-page-header p { font-size: var(--text-base); }
.eyebrow, .service-section-head span, .service-settings-card > span { font-size: var(--text-xs); }
.heading-meta { font-size: var(--text-sm); }
.panel-header h2, .device-toolbar h2, .detail-panel-header h2,
.service-section-head h2 { font-size: var(--text-lg); }
.panel-header p, .device-toolbar p, .detail-panel-header p,
.detail-panel-header > span { font-size: var(--text-sm); }

/* Semantic floor for legacy helper text. No operational copy may regress below 12 CSS px. */
.app-shell small, .app-shell time, .login-screen small,
.portal-shell small, .portal-shell time {
  font-size: var(--text-xs);
  line-height: var(--line-normal);
}
.y-axis, .x-axis, .chart-legend, .period-switcher button,
.filter-button, .device-filter-panel > div:first-child span,
.reports-status, .report-catalog-card b, .login-password button {
  font-size: var(--text-xs);
}
.report-catalog-card small, .report-catalog-card strong { font-size: var(--text-sm); }
.report-catalog-card b { line-height: var(--line-normal); }
.login-password button { min-height: var(--control-sm); padding-inline: 0.75rem; }
.donut span, .status-list small, .status-list > div,
.device-interval, .toast strong, .toast small,
.availability-legend, .availability-footer { font-size: var(--text-xs); }
.alert-item p, .alert-item time, .empty-state span { font-size: var(--text-sm); }

/* Base controls */
.primary-button, .secondary-button, .test-button, .outline-button,
.danger-outline-button, .service-page-actions button, .service-ticket-header-actions button,
.service-settings-toolbar button, .service-settings-pagination button,
.service-settings-bulk button, .service-settings-general-actions button {
  min-height: var(--button-height-md);
  padding-inline: var(--button-padding-x);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  border-radius: var(--radius-sm);
  font-size: var(--button-font-size);
  font-weight: 650;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
}
.action-button, .delete-alert-button, .service-settings-actions summary {
  width: var(--hit-area);
  height: var(--hit-area);
  min-height: var(--hit-area);
  font-size: var(--text-base);
}
.app-shell input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.app-shell select, .app-shell textarea,
.login-screen input:not([type="checkbox"]):not([type="radio"]),
.service-settings-field input, .service-settings-field select, .service-settings-field textarea {
  min-height: var(--control-md);
  padding-inline: 0.85rem;
  font-size: var(--text-sm);
}
.app-shell textarea, .service-settings-field textarea { padding-block: 0.75rem; line-height: var(--line-normal); }
.form-field > span, .service-settings-field > span, .service-settings-permissions legend,
.service-ticket-filters label > span, .service-new-form label > span,
.service-sidebar-form label > span, .service-compose label > span { font-size: var(--text-xs); }
.field-hint, .field-error, .service-settings-field small { font-size: var(--text-xs); line-height: var(--line-normal); }

/* Cards and operational values */
.panel { padding: clamp(1rem, 0.85rem + 0.35vw, 1.35rem); border-radius: var(--radius-md); }
.metric-card { min-height: 10rem; padding: 1.2rem; border-radius: var(--radius-md); }
.metric-top { font-size: var(--text-sm); }
.metric-value { font-size: clamp(2rem, 1.65rem + 0.65vw, 2.65rem); }
.metric-value small { font-size: var(--text-base); }
.metric-footer, .text-action { font-size: var(--text-xs); }
.detail-kpi > span, .detail-kpi small, .info-item span, .info-item small { font-size: var(--text-xs); }
.detail-kpi strong { font-size: var(--text-xl); }
.info-item strong { font-size: var(--text-sm); }

/* Tables and badges */
.app-shell table th, .service-settings-table th, .service-ticket-table th {
  min-height: 2.75rem;
  padding: 0.75rem 0.9rem;
  font-size: var(--text-xs);
  line-height: 1.25;
}
.app-shell table td, .service-settings-table td, .service-ticket-table td {
  height: auto;
  min-height: var(--table-row-height);
  padding: 0.8rem 0.9rem;
  font-size: var(--text-sm);
  line-height: var(--line-normal);
}

/* Grid and table contract: children shrink inside grids; tables scroll inside their panel. */
.app-shell :where([class$="-grid"], [class*="-grid "]) > * {
  min-width: 0;
}
.app-shell :where(
  .table-wrap,
  .service-table-wrap,
  .central-table-wrap,
  .switch-table-wrap,
  .printer-counter-table,
  .printer-report-table,
  .collector-update-targets
) {
  width: 100%;
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-color: #385170 transparent;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}
.app-shell :where(
  .routers-panel table,
  .device-register-table,
  .local-collector-table,
  .user-register-table,
  .detail-table,
  .interfaces-detail-table,
  .service-ticket-table,
  .service-settings-table,
  .printer-counter-table table,
  .printer-report-table table,
  .collector-update-targets table
) {
  width: 100%;
}
.app-shell .routers-panel table,
.app-shell .device-register-table { min-width: 64rem; }
.app-shell .local-collector-table,
.app-shell .service-ticket-table { min-width: 68rem; }
.app-shell .user-register-table { min-width: 76rem; }
.app-shell .detail-table { min-width: 45rem; }
.app-shell .interfaces-detail-table { min-width: 80rem; }
.app-shell .service-settings-table { min-width: 58rem; }
.app-shell .printer-counter-table table,
.app-shell .printer-report-table table { min-width: 64rem; }
.app-shell .collector-update-targets table { min-width: 52rem; }
.device-cell strong, .ip-cell strong, .equipment-detail-link,
.service-ticket-table td strong { font-size: var(--text-sm); }
.device-cell small, .ip-cell small, .traffic-values strong, .traffic-values small,
.service-ticket-table td > span:not(.service-status):not(.service-priority) { font-size: var(--text-xs); }
.status-badge, .connection-badge, .enabled-badge, .disabled-badge,
.collector-status, .service-status, .service-setting-status, .role-badge,
.alert-severity-pill, .type-badge {
  min-height: 1.65rem;
  padding: 0.3rem 0.55rem;
  align-items: center;
  font-size: var(--text-xs);
  line-height: 1.15;
}

/* Service Desk */
.service-desk-shell { gap: var(--space-5); }
.service-page-header { gap: var(--space-5); }
.service-kpi { min-height: 8.75rem; padding: 1.15rem; }
.service-kpi span, .service-kpi small { font-size: var(--text-xs); }
.service-kpi strong { font-size: var(--text-xl); }
.service-panel-copy, .service-empty span, .service-queue-card p { font-size: var(--text-sm); }
.service-section-head { min-height: 4.5rem; padding: 1rem 1.2rem; }
.service-performance-grid span { font-size: var(--text-sm); }
.service-performance-grid strong { font-size: var(--text-xl); }
.service-back { min-height: 2.25rem; align-items: center; font-size: var(--text-sm); }
.service-timeline-meta strong, .service-timeline-body { font-size: var(--text-sm); }
.service-timeline-meta time, .service-timeline-item small { font-size: var(--text-xs); }
.service-compose-tabs button { min-height: var(--control-md); font-size: var(--text-sm); }

/* Service Desk settings administration */
.service-settings-overview { gap: var(--space-4); }
.service-settings-overview-card { min-height: 7.5rem; padding: 1.1rem; }
.service-settings-overview-card span, .service-settings-overview-card small { font-size: var(--text-xs); }
.service-settings-overview-card strong { font-size: var(--text-xl); }
.service-settings-card { min-height: 12rem; padding: 1.1rem; }
.service-settings-card h2 { font-size: var(--text-lg); }
.service-settings-card p, .service-settings-card li, .service-settings-card footer span { font-size: var(--text-sm); }
.service-settings-card footer { gap: var(--space-3); }
.service-settings-card footer button { min-height: var(--control-sm); font-size: var(--text-sm); }
.service-settings-toolbar { min-height: 4.75rem; padding: 0.85rem 1rem; gap: var(--space-3); }
.service-settings-search input { min-height: var(--control-md); font-size: var(--text-sm); }
.service-settings-filter-tabs button { min-height: var(--control-sm); font-size: var(--text-xs); }
.service-settings-table th button { font-size: var(--text-xs); }
.service-setting-name strong { max-width: 22rem; font-size: var(--text-sm); }
.service-settings-actions > div { width: 13rem; padding: 0.4rem; }
.service-settings-actions button { min-height: var(--control-sm); padding: 0.6rem 0.75rem; font-size: var(--text-sm); }
.service-settings-pagination { min-height: 4.25rem; padding: 0.8rem 1rem; }
.service-settings-pagination span, .service-settings-pagination strong { font-size: var(--text-xs); }
.service-settings-drawer { width: min(48rem, 92vw); }
.service-settings-drawer > header { padding: 1.25rem 1.4rem; }
.service-settings-drawer > header h2 { font-size: var(--text-xl); }
.service-settings-drawer > header small { font-size: var(--text-xs); }
.service-settings-form { padding: 1.25rem 1.4rem; gap: var(--space-4); }
.service-settings-toggle b, .service-settings-permissions label { font-size: var(--text-sm); }
.service-settings-context, .service-settings-dependencies span,
.service-settings-audit span, .service-settings-audit small,
.service-settings-audit strong, .service-settings-audit summary { font-size: var(--text-xs); }

/* Modals and drawers */
.modal-backdrop { padding: clamp(0.75rem, 2vw, 1.5rem); }
.device-modal, .type-modal { width: min(92vw, 52rem); max-height: 90dvh; }
.alert-detail-modal, .printer-audit-modal, .router-update-modal, .vm-operational-modal {
  width: min(94vw, 70rem);
  max-height: 90dvh;
}
.modal-header { min-height: 5rem; padding: 1.15rem 1.35rem; }
.modal-header h2 { font-size: var(--text-xl); }
.modal-header p { font-size: var(--text-sm); }
.modal-kicker { font-size: var(--text-xs); }
.modal-close { width: var(--hit-area); height: var(--hit-area); }
.modal-footer { gap: var(--space-3); padding-top: var(--space-4); }

/* Login */
.login-card { width: min(92vw, 31rem); padding: clamp(1.5rem, 1.2rem + 1vw, 2.25rem); }
.login-brand strong, .login-heading h1 { font-size: var(--text-xl); }
.login-brand small, .login-heading > span, .login-environment small,
.login-support, .login-collector-download small, .login-service-portal small { font-size: var(--text-xs); }
.login-heading p, .login-environment strong, .login-service-portal strong,
.login-collector-download strong { font-size: var(--text-sm); }

/* Switch remains specialized, while respecting global readable minimums. */
.network-switch-layout { font-size: var(--text-sm); line-height: var(--line-normal); }
.network-switch-layout .switch-title h1 { font-size: var(--text-xl); line-height: var(--line-tight); }
.network-switch-layout .switch-title p, .network-switch-layout .switch-summary small,
.network-switch-layout .switch-chart-legend, .network-switch-layout td { font-size: var(--text-sm); }
.network-switch-layout .switch-badges span, .network-switch-layout .switch-summary span,
.network-switch-layout .switch-panel header span, .network-switch-layout th,
.network-switch-layout .switch-state { font-size: var(--text-xs); }
.network-switch-layout .switch-panel header h2 { font-size: var(--text-lg); }
.network-switch-layout .switch-summary strong { font-size: var(--text-xl); }
.network-switch-layout .switch-port strong, .network-switch-layout .switch-port small { font-size: var(--text-xs); }

/* Public Service Desk portal */
.portal-brand strong { font-size: var(--text-lg); }
.portal-brand small, .portal-eyebrow, .portal-panel-head span,
.portal-success small, footer { font-size: var(--text-xs); }
.portal-security, .portal-panel-head em, .portal-step > p,
.choice-card small, .lookup-meta span { font-size: var(--text-sm); }
.portal-hero-copy p, .portal-action small, .lookup-card p { font-size: var(--text-base); }
.portal-action strong { font-size: var(--text-lg); }
.portal-step legend, .portal-panel-head h1 { font-size: var(--text-xl); }
.portal-grid label > span, .portal-lookup-form label > span { font-size: var(--text-sm); }
.portal-main input:not([type="checkbox"]):not([type="radio"]), .portal-main select, .portal-main textarea {
  min-height: var(--control-lg);
  font-size: var(--text-base);
}
.portal-primary, .portal-secondary { min-height: var(--control-lg); font-size: var(--text-sm); }

/* Notebook: keep readable controls and use available width. */
@media (max-width: 1199px) {
  :root { --sidebar-width: 14.25rem; --content-gutter: clamp(1rem, 2vw, 1.5rem); }
  .dashboard { max-width: none; }
  .service-kpis { grid-template-columns: repeat(4, minmax(9rem, 1fr)); }
  .service-settings-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Full HD and wide desktop. */
@media (min-width: 1600px) {
  :root { --content-max-width: 112rem; --table-row-height: 3.4rem; }
  .service-settings-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .metrics-grid { gap: 1.1rem; }
}

/* 2K and large desktop. */
@media (min-width: 2200px) {
  :root {
    --content-max-width: 132rem;
    --content-gutter: 2.5rem;
    --sidebar-width: 17.25rem;
    --header-height: 4.75rem;
  }
  .service-kpis { gap: 0.9rem; }
  .metrics-grid { gap: 1.25rem; }
}

/* 4K: increase through tokens, never transform or zoom. */
@media (min-width: 3200px) {
  html[data-ui-scale="normal"], html:not([data-ui-scale]) { font-size: 18px; }
  :root { --content-max-width: 148rem; --sidebar-width: 18rem; --content-gutter: 3rem; }
}

@media (max-width: 900px) {
  :root { --sidebar-width: min(19rem, 88vw); }
  .sidebar { width: var(--sidebar-width); }
  .main-content { margin-left: 0; }
  .service-settings-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 640px) {
  html, html[data-ui-scale] { font-size: 16px; }
  .service-settings-drawer { width: 100vw; }
  .service-settings-toolbar { align-items: stretch; flex-direction: column; }
  .service-settings-filter-tabs { width: 100%; overflow-x: auto; }
  .service-settings-filter-tabs button { flex: 1 0 auto; }
}

/* Argus Central: this layer is enabled only by runtime configuration on VM27. */
[hidden] { display: none !important; }
body.central-platform .brand-copy small { text-transform: uppercase; letter-spacing: 0.08em; }
body.central-dashboard-mode .overview-section { display: none; }
body.central-dashboard-mode .central-dashboard-view { display: grid; gap: var(--space-5); }
body:not(.central-dashboard-mode) .central-dashboard-view { display: none; }

.central-context {
  min-width: min(34rem, 46vw);
  min-height: var(--control-lg);
  padding: 0.35rem;
  border: 1px solid #26364a;
  border-radius: var(--radius-md);
  background: #0b131d;
}
.central-context-badge { display: flex; align-items: center; gap: 0.65rem; min-width: 10rem; padding: 0 0.55rem; }
.central-context-badge > span { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 0.55rem; background: rgba(59,130,246,.14); color: #60a5fa; font-size: 1.1rem; }
.central-context-badge div { display: grid; min-width: 0; }
.central-context-badge strong { overflow: hidden; color: #f3f7fc; font-size: var(--text-sm); text-overflow: ellipsis; white-space: nowrap; }
.central-context-badge small { color: #7892b2; font-size: var(--text-xs); }
.central-context label { min-width: 9rem; }
.central-context label > span { padding-left: 0.15rem; font-size: var(--text-xs); }
.central-context select { min-width: 11rem; min-height: var(--control-sm); height: var(--control-sm); font-size: var(--text-sm); }

.central-dashboard-view { color: #e8f0fb; }
.central-dashboard-loading, .central-empty, .central-error {
  display: grid; place-items: center; min-height: 22rem; gap: 0.5rem;
  border: 1px solid #26364a; border-radius: var(--radius-lg); background: #0e1621; text-align: center;
}
.central-dashboard-loading span, .central-empty span, .central-error span { color: #8198b4; font-size: var(--text-sm); }
.central-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-5); }
.central-breadcrumb { display: flex; flex-wrap: wrap; gap: 0.45rem; margin-bottom: 0.65rem; color: #7892b2; font-size: var(--text-xs); }
.central-breadcrumb b { color: #b8cae0; font-weight: 600; }
.central-hero h1 { margin: 0; font-size: var(--text-2xl); line-height: var(--line-tight); }
.central-hero p { margin: 0.45rem 0 0; color: #91a6c0; font-size: var(--text-base); }
.central-hero-actions { display: flex; align-items: center; gap: var(--space-3); }
.central-generated-at { color: #7892b2; font-size: var(--text-xs); text-align: right; }
.central-generated-at strong { display: block; color: #d6e4f5; font-size: var(--text-sm); }

.central-platform-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-3); }
.central-stat-card {
  display: grid; min-height: 8.5rem; padding: 1.1rem; border: 1px solid #26364a;
  border-radius: var(--radius-md); background: linear-gradient(145deg, #101a27, #0e1621);
}
.central-stat-card > span { color: #7f9ab9; font-size: var(--text-xs); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.central-stat-card strong { align-self: center; color: #f7fbff; font-size: var(--text-xl); }
.central-stat-card small { color: #7892b2; font-size: var(--text-xs); }
.central-stat-card.good { border-color: rgba(34,197,94,.28); }
.central-stat-card.warning { border-color: rgba(245,158,11,.35); }
.central-stat-card.critical { border-color: rgba(239,68,68,.4); }

.central-section { display: grid; align-content: start; gap: var(--space-3); }
.central-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-4); }
.central-section-head h2 { margin: 0; font-size: var(--text-lg); }
.central-section-head p { margin: 0.2rem 0 0; color: #7892b2; font-size: var(--text-sm); }
.central-project-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: var(--space-4); }
.central-project-card {
  display: grid; gap: var(--space-4); min-height: 23rem; padding: 1.25rem; border: 1px solid #28394e;
  border-radius: var(--radius-lg); background: linear-gradient(150deg, #121d2b 0%, #0d151f 72%);
  box-shadow: 0 1rem 2.5rem rgba(0,0,0,.12);
}
.central-project-card[data-health="CRITICAL"], .central-project-card[data-health="NO_COMMUNICATION"], .central-project-card[data-health="COMMUNICATION_LOST"] { border-color: rgba(239,68,68,.45); }
.central-project-card[data-health="ATTENTION"] { border-color: rgba(245,158,11,.4); }
.central-project-identity { display: flex; align-items: center; gap: 0.9rem; }
.central-project-logo { display: grid; place-items: center; flex: 0 0 4.25rem; width: 4.25rem; height: 4.25rem; overflow: hidden; border: 1px solid #30445d; border-radius: 0.85rem; background: #f7f9fc; color: #173250; font-size: var(--text-lg); font-weight: 800; }
.central-project-logo img { width: 100%; height: 100%; object-fit: contain; }
.central-project-identity div { min-width: 0; }
.central-project-identity h3 { margin: 0; overflow: hidden; color: #f7fbff; font-size: var(--text-lg); text-overflow: ellipsis; white-space: nowrap; }
.central-project-identity p { margin: 0.2rem 0 0; color: #7292b7; font-size: var(--text-sm); }
.central-health { display: inline-flex; align-items: center; gap: 0.45rem; width: fit-content; min-height: 1.8rem; padding: 0.3rem 0.6rem; border-radius: 999px; background: rgba(34,197,94,.1); color: #4ade80; font-size: var(--text-xs); font-weight: 700; }
.central-health::before { width: 0.48rem; height: 0.48rem; border-radius: 50%; background: currentColor; content: ""; }
.central-health.attention { background: rgba(245,158,11,.1); color: #fbbf24; }
.central-health.critical, .central-health.no-communication { background: rgba(239,68,68,.11); color: #fb7185; }
.central-project-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.55rem; }
.central-project-metrics div { padding: 0.7rem; border: 1px solid #24364b; border-radius: var(--radius-sm); background: #0a121b; }
.central-project-metrics span { display: block; color: #7892b2; font-size: var(--text-xs); }
.central-project-metrics strong { display: block; margin-top: 0.2rem; font-size: var(--text-lg); }
.central-project-footer { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); margin-top: auto; }
.central-project-footer small { color: #7892b2; font-size: var(--text-xs); }

.central-operation-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(20rem, .8fr); gap: var(--space-4); }
.central-panel { overflow: hidden; border: 1px solid #26364a; border-radius: var(--radius-md); background: #0e1621; }
.central-panel > header { display: flex; align-items: center; justify-content: space-between; min-height: 4.5rem; padding: 1rem 1.1rem; border-bottom: 1px solid #233246; }
.central-panel > header h2 { margin: 0; font-size: var(--text-lg); }
.central-panel > header span { color: #7892b2; font-size: var(--text-xs); }
.central-table-wrap { overflow-x: auto; }
.central-table { width: 100%; border-collapse: collapse; }
.central-table th { color: #7190b5; text-align: left; }
.central-table td { border-top: 1px solid #1e2c3d; color: #cbd9ea; }
.central-table td strong { color: #eef5fd; }
.central-problem-list { display: grid; }
.central-problem { display: grid; grid-template-columns: auto 1fr auto; gap: 0.75rem; padding: 0.85rem 1rem; border-bottom: 1px solid #1e2c3d; }
.central-problem:last-child { border-bottom: 0; }
.central-problem > i { width: 0.55rem; height: 0.55rem; margin-top: 0.35rem; border-radius: 50%; background: #fbbf24; }
.central-problem.critical > i { background: #fb7185; }
.central-problem strong { display: block; font-size: var(--text-sm); }
.central-problem span, .central-problem small { color: #7892b2; font-size: var(--text-xs); }

.central-project-header-card { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 1rem; align-items: center; padding: 1.25rem; border: 1px solid #2b3d53; border-radius: var(--radius-lg); background: linear-gradient(145deg,#111d2b,#0d151f); }
.central-project-header-card .central-project-logo { width: 5.5rem; height: 5.5rem; flex-basis: 5.5rem; }
.central-project-header-card h2 { margin: 0; font-size: var(--text-xl); }
.central-project-header-card p { margin: .3rem 0 0; color: #7f9ab9; font-size: var(--text-sm); }
.central-project-tabs { display: flex; gap: 0.4rem; overflow-x: auto; padding-bottom: 0.2rem; }
.central-project-tabs button { min-height: var(--control-md); padding: 0 0.9rem; border: 1px solid #27394f; border-radius: var(--radius-sm); background: #0c151f; color: #9bb0c9; font-size: var(--text-sm); white-space: nowrap; }
.central-project-tabs button.active { border-color: #3b82f6; background: rgba(59,130,246,.12); color: #dcecff; }
.central-detail-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--space-3); }
.central-detail-card { padding: 1rem; border: 1px solid #26364a; border-radius: var(--radius-md); background: #0e1621; }
.central-detail-card span { display: block; color: #7892b2; font-size: var(--text-xs); text-transform: uppercase; }
.central-detail-card strong { display: block; margin-top: .35rem; color: #eef5fd; font-size: var(--text-sm); overflow-wrap: anywhere; }
.central-family-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(11rem,1fr)); gap: var(--space-3); }
.central-family-card { padding: 1rem; border: 1px solid #26364a; border-radius: var(--radius-md); background: #0e1621; }
.central-family-card span { color: #7f9ab9; font-size: var(--text-sm); }
.central-family-card strong { display: block; margin: .5rem 0; font-size: var(--text-xl); }
.central-family-card small { color: #7892b2; font-size: var(--text-xs); }

.central-stats-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--space-3); }
.central-stats-grid article { display: grid; min-height: 8rem; padding: 1rem; border: 1px solid #26364a; border-radius: var(--radius-md); background: linear-gradient(145deg,#101a27,#0e1621); }
.central-stats-grid span, .central-stats-grid small { color: #7892b2; font-size: var(--text-xs); }
.central-stats-grid strong { align-self: center; color: #f7fbff; font-size: var(--text-xl); }
.central-section > header { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-4); }
.central-section > header > div > span { color: #568bc9; font-size: var(--text-xs); font-weight: 700; letter-spacing: .1em; }
.central-section > header h2 { margin: .2rem 0 0; font-size: var(--text-lg); }
.central-section > header > small { color: #7892b2; font-size: var(--text-xs); }
.central-health-line { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); }
.central-health-line small { color: #7892b2; font-size: var(--text-xs); }
.central-two-column { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--space-4); }
.central-two-column > .central-section { overflow: hidden; padding: 1rem; border: 1px solid #26364a; border-radius: var(--radius-md); background: #0e1621; }
.central-list { display: grid; }
.central-list > div { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: .75rem; min-height: 4.1rem; padding: .65rem 0; border-top: 1px solid #1e2c3d; }
.central-list > div > i { width: .55rem; height: .55rem; border-radius: 50%; background: #4ade80; }
.central-list > div > i.degraded, .central-list > div > i.warning { background: #fbbf24; }
.central-list > div > i.offline, .central-list > div > i.critical, .central-list > div > i.revoked { background: #fb7185; }
.central-list strong { display: block; color: #eef5fd; font-size: var(--text-sm); }
.central-list small, .central-list p { color: #7892b2; font-size: var(--text-xs); }
.central-list b { color: #a9bed7; font-size: var(--text-xs); }
.central-detail-grid article, .central-family-grid article { padding: 1rem; border: 1px solid #26364a; border-radius: var(--radius-md); background: #0e1621; }
.central-detail-grid article > span, .central-family-grid article > span { display: block; color: #7892b2; font-size: var(--text-xs); text-transform: uppercase; }
.central-detail-grid article > strong, .central-family-grid article > strong { display: block; margin: .4rem 0; color: #eef5fd; font-size: var(--text-lg); }
.central-detail-grid article > small, .central-family-grid article > small { color: #7892b2; font-size: var(--text-xs); }
.central-family-grid article button { display: block; margin-top: .75rem; border: 0; background: transparent; color: #60a5fa; font-size: var(--text-xs); }
.central-route-card { display: grid; grid-template-columns: minmax(0,1fr) max-content; align-items: center; gap: .35rem 1.25rem; padding: var(--card-padding); border: 1px solid #2b3d53; border-radius: var(--radius-md); background: #0e1621; }
.central-route-card strong { font-size: var(--text-lg); }
.central-route-card span { color: #8198b4; font-size: var(--text-sm); }
.central-route-card > a, .central-route-card > button { grid-column: 2; grid-row: 1 / span 2; width: max-content; max-width: 100%; }
.central-project-header-card > div:last-child { display: grid; justify-items: end; }
.central-project-header-card > div:last-child strong { font-size: var(--text-xl); }
.central-project-header-card > div:last-child small { color: #7892b2; font-size: var(--text-xs); }

@media (max-width: 1280px) {
  .central-stats-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .central-platform-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .central-operation-grid { grid-template-columns: minmax(0,1fr); }
  .central-detail-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .central-context-badge { display: none; }
}
@media (max-width: 900px) {
  .central-two-column { grid-template-columns: minmax(0,1fr); }
  .central-context { display: none !important; }
  .central-hero, .central-section-head { align-items: flex-start; flex-direction: column; }
  .central-hero-actions { width: 100%; justify-content: space-between; }
  .central-project-header-card { grid-template-columns: auto minmax(0,1fr); }
  .central-project-header-card > :last-child { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .central-stats-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .central-platform-grid, .central-detail-grid { grid-template-columns: minmax(0,1fr); }
  .central-project-metrics { grid-template-columns: repeat(2,1fr); }
  .central-project-footer { align-items: stretch; flex-direction: column; }
  .central-project-footer button { width: 100%; }
}

/* Argus Central NOC console v2. All rules are runtime-isolated from client installations. */
body.central-platform {
  --central-panel: #0e1722;
  --central-panel-raised: #111d2b;
  --central-border: #26384e;
  --central-muted: #8ba2bd;
  --central-text: #eef5fd;
  --central-blue: #60a5fa;
  --central-green: #4ade80;
  --central-amber: #fbbf24;
  --central-red: #fb7185;
}
body.central-platform .brand {
  min-height: 8.25rem;
  border-bottom: 1px solid rgba(72, 97, 128, .22);
  background: radial-gradient(circle at 20% 0%, rgba(59,130,246,.13), transparent 62%);
}
body.central-platform .brand-mark:not(.has-client-logo) {
  width: 3.25rem;
  height: 3.25rem;
  border: 1px solid rgba(96,165,250,.35);
  background: linear-gradient(145deg,#10233a,#0b1623);
}
body.central-platform .brand-mark:not(.has-client-logo) span { background: #60a5fa; }
body.central-platform .brand-copy strong { color: #f4f8fd; font-size: var(--text-lg); }
body.central-platform .brand-copy strong::before { display: block; color: #60a5fa; font-size: var(--text-xs); font-weight: 700; letter-spacing: .13em; content: "ARGUS"; }
body.central-platform .central-main-nav { padding-top: var(--space-4); }
body.central-platform .central-main-nav .start-menu-title { color: #6e8db1; letter-spacing: .13em; }
body.central-platform .central-main-nav .nav-menu-trigger { border: 1px solid transparent; }
body.central-platform .central-main-nav .nav-menu-trigger:hover,
body.central-platform .central-main-nav .nav-menu-group.open > .nav-menu-trigger { border-color: #2d4664; background: #111f2e; }

body.central-platform .topbar { gap: var(--space-4); border-bottom-color: #203047; background: rgba(8,13,20,.96); }
body.central-platform .search-box { flex: 1 1 24rem; width: auto; max-width: 32rem; }
body.central-platform .central-context {
  display: grid;
  grid-template-columns: auto minmax(10rem, 1fr) minmax(10rem, 1fr);
  align-items: center;
  gap: .55rem;
  min-width: min(43rem, 48vw);
  margin-left: auto;
  padding: .45rem .55rem;
  border-color: #2a405b;
  background: linear-gradient(145deg,#0e1926,#0a121c);
  box-shadow: inset 0 1px rgba(255,255,255,.02);
}
body.central-platform .central-context-title { display: grid; min-width: 10.5rem; padding: 0 .5rem; border-right: 1px solid #26384e; }
body.central-platform .central-context-title span { color: #75aef2; font-size: .7rem; font-weight: 800; letter-spacing: .12em; }
body.central-platform .central-context-title small { color: #758ca7; font-size: .68rem; white-space: nowrap; }
body.central-platform .central-context-badge { display: none; }
body.central-platform .central-context label { min-width: 0; }
body.central-platform .central-context label > span { color: #829ab6; font-size: .69rem; letter-spacing: .09em; }
body.central-platform .central-context select { width: 100%; min-width: 0; height: 2.5rem; border-color: #304761; background-color: #0b141f; color: #e8f1fb; }

body.central-platform .dashboard {
  width: min(100%, var(--content-wide-max));
  max-width: var(--content-wide-max);
  padding: var(--page-padding-y) var(--page-padding-x) var(--space-7);
}
body.central-platform .central-dashboard-view,
body.central-platform .devices-view,
body.central-platform .device-types-view,
body.central-platform .device-detail-view,
body.central-platform .customer-management-view,
body.central-platform .local-collectors-view,
body.central-platform .users-view,
body.central-platform .reports-view,
body.central-platform .alerts-view,
body.central-platform .service-desk-view {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  min-width: 0;
}

.identity-sync-panel { margin-bottom: var(--space-4); }
.identity-sync-panel .device-toolbar { min-height: var(--control-lg); }
.user-register-table { min-width: 1220px; }
.user-register-table td > strong,
.user-register-table td > small { display: block; }
.user-register-table td > small { margin-top: .3rem; color: var(--text-muted, #718198); }
.page-heading-actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.identity-site-scope,
.identity-permission-catalog { margin: 0; padding: 1rem; border: 1px solid #2b3f57; border-radius: var(--radius-md); }
.identity-site-scope legend,
.identity-permission-catalog legend { padding-inline: .4rem; color: #8aa6c7; font-size: var(--text-sm); font-weight: 700; }
.identity-site-scope > label { display: inline-flex; align-items: center; gap: .5rem; margin-right: 1.25rem; color: #d5e2f1; font-size: var(--text-sm); }
.identity-site-options { display: grid; grid-template-columns: repeat(auto-fit,minmax(13rem,1fr)); gap: .6rem; margin-top: .9rem; }
.identity-site-options > label { display: flex; align-items: center; gap: .65rem; min-height: 3.25rem; padding: .65rem .75rem; border: 1px solid #263a51; border-radius: var(--radius-sm); background: #0c1622; }
.identity-site-options > label > span { min-width: 0; }
.identity-site-options strong,
.identity-site-options small { display: block; }
.identity-site-options small { margin-top: .15rem; color: #7289a4; font-size: var(--text-xs); }
.identity-site-options.disabled { opacity: .55; }
.identity-roles-modal { width: min(94vw,72rem); max-width: 72rem; }
.identity-roles-layout { display: grid; grid-template-columns: minmax(15rem,20rem) minmax(0,1fr); min-height: min(68vh,48rem); }
.identity-roles-layout > aside { padding: 1rem; border-right: 1px solid #263546; background: #0a121c; }
.identity-roles-layout > form { min-width: 0; padding: 1rem 1.25rem; overflow-y: auto; }
.identity-role-list-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .75rem; }
.identity-role-list { display: grid; gap: .45rem; }
.identity-role-item { display: flex; align-items: center; justify-content: space-between; gap: .75rem; width: 100%; min-height: 3.75rem; padding: .75rem; border: 1px solid #25384e; border-radius: var(--radius-sm); color: #d9e6f5; text-align: left; background: #0e1926; cursor: pointer; }
.identity-role-item:hover,
.identity-role-item.active { border-color: #3b82f6; background: #12233a; }
.identity-role-item strong,
.identity-role-item small { display: block; }
.identity-role-item small { margin-top: .2rem; color: #7790ad; font-size: var(--text-xs); }
.identity-role-item em { min-width: 2rem; padding: .25rem .45rem; border-radius: 999px; color: #9fc7fa; font-size: var(--text-xs); font-style: normal; text-align: center; background: #18304c; }
.identity-role-impact { padding: .8rem 1rem; border: 1px solid #314a65; border-radius: var(--radius-sm); color: #aac0d8; background: #0c1723; }
.identity-permission-catalog > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }
.identity-permission-catalog section { padding: .8rem; border: 1px solid #263a51; border-radius: var(--radius-sm); background: #0c1622; }
.identity-permission-catalog section > strong { display: block; margin-bottom: .45rem; color: #76b3ff; font-size: var(--text-sm); }
.identity-permission-catalog label { display: flex; align-items: center; gap: .45rem; min-height: 2rem; color: #c0d0e2; font-size: var(--text-sm); }
@media (max-width: 900px) {
  .identity-roles-layout { grid-template-columns: 1fr; }
  .identity-roles-layout > aside { border-right: 0; border-bottom: 1px solid #263546; }
  .identity-permission-catalog > div { grid-template-columns: 1fr; }
}
body.central-platform .central-dashboard-view { gap: clamp(1.25rem, 1rem + .5vw, 2rem); }
body.central-platform .central-breadcrumb { margin: 0; font-size: var(--text-sm); }
body.central-platform .central-breadcrumb span { color: #415a77; }
body.central-platform .central-breadcrumb b:first-child { color: #60a5fa; }
body.central-platform .central-hero { align-items: center; min-height: 7rem; padding-bottom: .25rem; }
body.central-platform .central-hero > div:first-child > span { color: #60a5fa; font-size: var(--text-xs); font-weight: 800; letter-spacing: .15em; }
body.central-platform .central-hero h1 { margin-top: .3rem; font-size: var(--text-display); }
body.central-platform .central-generated-at { min-width: 10rem; padding: .75rem 1rem; border-left: 2px solid #2e69af; }

body.central-platform .central-primary-grid { grid-template-columns: repeat(6,minmax(0,1fr)); gap: .85rem; }
body.central-platform .central-primary-grid .central-stat-card {
  position: relative;
  min-height: 9rem;
  padding: 1rem 1.05rem;
  overflow: hidden;
  border-color: var(--central-border);
  background: linear-gradient(155deg,#122031 0%,#0d1621 78%);
}
body.central-platform .central-primary-grid .central-stat-card::after { position: absolute; inset: 0 0 auto; height: 2px; background: #31567e; content: ""; }
body.central-platform .central-primary-grid .central-stat-card.good::after { background: #22c55e; }
body.central-platform .central-primary-grid .central-stat-card.warning::after { background: #f59e0b; }
body.central-platform .central-primary-grid .central-stat-card.critical::after { background: #ef4444; }
body.central-platform .central-primary-grid .central-stat-card > span { color: #89a2c0; font-size: .72rem; }
body.central-platform .central-primary-grid .central-stat-card strong { font-size: clamp(1.8rem,1.55rem + .45vw,2.4rem); font-variant-numeric: tabular-nums; }
body.central-platform .central-primary-grid .central-stat-card small { min-height: 2.5em; color: #8198b4; line-height: 1.35; }

body.central-platform .central-section { gap: 1rem; }
body.central-platform .central-section-head { align-items: center; }
body.central-platform .central-section-head h2 { color: var(--central-text); font-size: var(--text-xl); }
body.central-platform .central-section-head p { color: var(--central-muted); }
body.central-platform .central-section-head > small { max-width: 32rem; color: #7890ac; text-align: right; }
body.central-platform .central-health-overview { padding: 1.15rem 1.25rem; border: 1px solid var(--central-border); border-radius: var(--radius-lg); background: #0c151f; }
body.central-platform .central-health-overview > div:last-child { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .75rem; }
body.central-platform .central-health-overview article { display: flex; align-items: center; gap: .75rem; min-height: 4.5rem; padding: .75rem 1rem; border: 1px solid #24364b; border-radius: var(--radius-md); background: #0a121b; }
body.central-platform .central-health-overview article::before { width: .6rem; height: .6rem; border-radius: 50%; background: var(--central-green); content: ""; }
body.central-platform .central-health-overview article.attention::before { background: var(--central-amber); }
body.central-platform .central-health-overview article.critical::before,
body.central-platform .central-health-overview article.no-communication::before { background: var(--central-red); }
body.central-platform .central-health-overview strong { color: var(--central-text); font-size: var(--text-xl); }
body.central-platform .central-health-overview span { color: #9ab0c8; font-size: var(--text-sm); }

body.central-platform .central-project-grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,25rem),1fr)); gap: 1rem; }
body.central-platform .central-project-grid.single { grid-template-columns: minmax(0,1fr); }
body.central-platform .central-project-card { min-height: 0; padding: 1.3rem; border-color: #2a4059; background: radial-gradient(circle at 100% 0%,rgba(59,130,246,.11),transparent 38%),linear-gradient(150deg,#121e2d,#0c141e 72%); }
body.central-platform .central-project-grid.single .central-project-card { grid-template-columns: minmax(18rem,.8fr) minmax(9rem,.35fr) minmax(32rem,1.5fr); align-items: center; }
body.central-platform .central-project-grid.single .central-project-metrics { grid-template-columns: repeat(6,minmax(0,1fr)); }
body.central-platform .central-project-grid.single .central-project-footer { grid-column: 1 / -1; }
body.central-platform .central-project-logo { width: 4.75rem; height: 4.75rem; flex-basis: 4.75rem; padding: .35rem; }
body.central-platform .central-project-identity h3 { font-size: var(--text-xl); }
body.central-platform .central-project-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); }
body.central-platform .central-project-metrics div { min-height: 4.4rem; padding: .7rem .8rem; }
body.central-platform .central-project-metrics div.attention { border-color: rgba(245,158,11,.38); }
body.central-platform .central-project-metrics div.critical { border-color: rgba(239,68,68,.42); }
body.central-platform .central-project-metrics strong { font-variant-numeric: tabular-nums; }
body.central-platform .central-project-footer b { color: #c5d8ed; }

body.central-platform .central-operation-grid { grid-template-columns: minmax(22rem,.72fr) minmax(40rem,1.28fr); }
body.central-platform .central-panel { border-color: var(--central-border); background: var(--central-panel); }
body.central-platform .central-panel > header { min-height: 4.8rem; }
body.central-platform .central-panel > header > div > span { color: #5e92cf; font-size: .7rem; font-weight: 800; letter-spacing: .12em; }
body.central-platform .central-panel > header a { color: #70b2ff; font-size: var(--text-sm); text-decoration: none; }
body.central-platform .central-problem { min-height: 4.75rem; align-items: start; padding: .85rem 1.05rem; }
body.central-platform .central-problem time { color: #8da3bc; font-size: var(--text-xs); white-space: nowrap; }
body.central-platform .central-list-empty { display: grid; place-items: center; min-height: 11rem; padding: 1rem; text-align: center; }
body.central-platform .central-list-empty strong { color: #dce9f8; }
body.central-platform .central-list-empty span { color: var(--central-muted); font-size: var(--text-sm); }
body.central-platform .central-table th,
body.central-platform .central-table td { height: 3.5rem; padding: .65rem .8rem; font-size: var(--text-sm); white-space: nowrap; }
body.central-platform .central-table th { background: #0a121c; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; }
body.central-platform .central-table td small { display: block; color: #7890ac; font-size: var(--text-xs); }
body.central-platform .central-table .central-health { min-height: 1.7rem; font-size: .7rem; }
body.central-platform .attention-text { color: var(--central-amber); font-weight: 700; }
body.central-platform .central-collection-state { display: inline-flex; align-items: center; gap: .4rem; min-height: 1.8rem; padding: .25rem .55rem; border-radius: 999px; background: rgba(100,116,139,.12); color: #a8b8ca; font-size: var(--text-xs); font-weight: 700; }
body.central-platform .central-collection-state::before { width: .45rem; height: .45rem; border-radius: 50%; background: currentColor; content: ""; }
body.central-platform .central-collection-state.current { background: rgba(34,197,94,.1); color: var(--central-green); }
body.central-platform .central-collection-state.stale { background: rgba(245,158,11,.1); color: var(--central-amber); }
body.central-platform .central-collection-state.unreachable_by_probe { background: rgba(239,68,68,.11); color: var(--central-red); }
body.central-platform .central-alert-scope { color: #70a9ed; font-weight: 600; }

body.central-platform .central-state-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; }
body.central-platform .central-state-list { display: grid; padding: .55rem 1rem .9rem; }
body.central-platform .central-state-list > div { display: flex; align-items: center; justify-content: space-between; min-height: 2.65rem; border-bottom: 1px solid #1e2d40; }
body.central-platform .central-state-list > div:last-child { border-bottom: 0; }
body.central-platform .central-state-list span { display: flex; align-items: center; gap: .6rem; color: #a9bdd4; font-size: var(--text-sm); }
body.central-platform .central-state-list i { width: .5rem; height: .5rem; border-radius: 50%; background: #71849b; }
body.central-platform .central-state-list i.good { background: var(--central-green); }
body.central-platform .central-state-list i.warning { background: var(--central-amber); }
body.central-platform .central-state-list i.critical,
body.central-platform .central-state-list i.offline { background: var(--central-red); }
body.central-platform .central-state-list strong { font-size: var(--text-lg); font-variant-numeric: tabular-nums; }
body.central-platform .central-callout-number { display: grid; padding: .8rem 1rem .4rem; color: #f5f9fe; font-size: clamp(2rem,1.6rem + .6vw,2.7rem); font-weight: 800; }
body.central-platform .central-callout-number span { color: #849bb6; font-size: var(--text-xs); font-weight: 400; }
body.central-platform .central-mini-metrics { display: grid; gap: .35rem; padding: .25rem 1rem 1rem; }
body.central-platform .central-mini-metrics span { color: #91a8c1; font-size: var(--text-sm); }
body.central-platform .central-mini-metrics b { display: inline-block; min-width: 2rem; color: #eaf3fd; }

body.central-platform .central-project-header-card { padding: 1.35rem 1.5rem; background: radial-gradient(circle at 85% 0%,rgba(59,130,246,.14),transparent 42%),linear-gradient(145deg,#111d2b,#0d151f); }
body.central-platform .central-project-header-card h1 { margin: .25rem 0 0; font-size: var(--text-2xl); }
body.central-platform .central-project-header-card > div:last-child strong { font-size: var(--text-display); }
body.central-platform .central-project-tabs { position: sticky; top: var(--header-height); z-index: 4; padding: .55rem; border: 1px solid #263a52; border-radius: var(--radius-md); background: rgba(10,17,26,.94); backdrop-filter: blur(12px); }
body.central-platform .central-project-tabs button { flex: 0 0 auto; min-height: 2.75rem; }
body.central-platform .central-family-grid { grid-template-columns: repeat(auto-fit,minmax(13rem,1fr)); }
body.central-platform .central-family-grid article { min-height: 10rem; }
body.central-platform .central-family-grid article em { display: block; margin-top: .25rem; color: #fbbf24; font-size: var(--text-xs); font-style: normal; }
body.central-platform .central-family-grid article button { font-size: var(--text-sm); }
body.central-platform .central-catalog-identity { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 1.25rem; align-items: center; padding: 1.25rem; border: 1px solid var(--central-border); border-radius: var(--radius-lg); background: var(--central-panel); }
body.central-platform .central-catalog-identity span { color: #7890ac; font-size: var(--text-xs); text-transform: uppercase; }
body.central-platform .central-catalog-identity h2 { margin: .2rem 0; font-size: var(--text-xl); }
body.central-platform .central-catalog-identity p { margin: 0; color: var(--central-muted); }
body.central-platform .central-catalog-identity > div:not(:first-child) { min-width: 10rem; padding-left: 1rem; border-left: 1px solid #26384e; }
body.central-platform .central-catalog-identity strong { display: block; margin-top: .25rem; }
body.central-platform .central-catalog-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
body.central-platform .central-catalog-panel { align-self: start; }

/* Wide operational layouts must not inherit article-sized legacy wrappers. */
body.central-platform .customer-management-layout {
  grid-template-columns: minmax(20rem, .8fr) minmax(38rem, 2.2fr);
  gap: var(--grid-gap);
}
body.central-platform .customer-management-table-panel,
body.central-platform .customer-management-table-panel .table-wrap { min-width: 0; }
body.central-platform .customer-management-table-panel .table-wrap { overflow-x: auto; }
body.central-platform .customer-table { min-width: 62rem; table-layout: auto; }
body.central-platform .customer-table th { min-width: max-content; overflow-wrap: normal; word-break: normal; white-space: nowrap; }
body.central-platform .customer-table td { overflow-wrap: normal; word-break: normal; }
body.central-platform .customer-table td:first-child { min-width: 15rem; }
body.central-platform .customer-table th:last-child,
body.central-platform .customer-table td:last-child { width: auto; min-width: 14rem; }
body.central-platform .customer-row-actions { flex-wrap: nowrap; align-items: center; }
body.central-platform .customer-inline-action { min-height: var(--button-height-sm); white-space: nowrap; }
body.central-platform .central-table { min-width: max(100%, 40rem); table-layout: auto; }
body.central-platform .central-table th { overflow-wrap: normal; word-break: normal; white-space: nowrap; }
body.central-platform .central-table-wrap { width: 100%; min-width: 0; overflow-x: auto; }
body.central-platform .central-panel > header { min-width: 0; gap: 1rem; }
body.central-platform .central-panel > header > div { min-width: 0; }
body.central-platform .central-panel > header > small { flex: 0 0 auto; white-space: nowrap; }
body.central-platform .central-probe-table {
  width: 100%;
  min-width: 64rem;
  table-layout: fixed;
}
body.central-platform .central-probe-table th:nth-child(1) { width: 18%; }
body.central-platform .central-probe-table th:nth-child(2) { width: 18%; }
body.central-platform .central-probe-table th:nth-child(3) { width: 13%; }
body.central-platform .central-probe-table th:nth-child(4) { width: 11%; }
body.central-platform .central-probe-table th:nth-child(5) { width: 10%; }
body.central-platform .central-probe-table th:nth-child(6) { width: 10%; }
body.central-platform .central-probe-table th:nth-child(7) { width: 12%; }
body.central-platform .central-probe-table th:nth-child(8) { width: 8%; }
body.central-platform .central-probe-table td:nth-child(1),
body.central-platform .central-probe-table td:nth-child(2) {
  overflow-wrap: break-word;
  white-space: normal;
}
body.central-platform .central-probe-table td:nth-child(2) strong,
body.central-platform .central-probe-table td:nth-child(2) small {
  max-width: 100%;
  overflow-wrap: anywhere;
}
body.central-platform .central-panel:has(.central-list-empty) > header { min-height: 4.25rem; }
body.central-platform .central-panel:has(.central-list-empty) .central-list-empty { min-height: 7rem; }

@media (min-width: 2200px) {
  body.central-platform .central-primary-grid { gap: 1rem; }
  body.central-platform .central-project-grid:not(.single) { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 1550px) {
  body.central-platform .central-context { min-width: 31rem; grid-template-columns: minmax(9rem,1fr) minmax(9rem,1fr); }
  body.central-platform .central-context-title { display: none; }
  body.central-platform .central-primary-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  body.central-platform .central-state-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.central-platform .central-project-grid.single .central-project-card { grid-template-columns: minmax(18rem,.8fr) minmax(9rem,.35fr); }
  body.central-platform .central-project-grid.single .central-project-metrics,
  body.central-platform .central-project-grid.single .central-project-footer { grid-column: 1 / -1; }
}
@media (max-width: 1180px) {
  body.central-platform .central-context { display: none; }
  body.central-platform .central-operation-grid { grid-template-columns: minmax(0,1fr); }
  body.central-platform .central-health-overview > div:last-child { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.central-platform .central-catalog-grid { grid-template-columns: minmax(0,1fr); }
  body.central-platform .customer-management-layout { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 760px) {
  body.central-platform .central-primary-grid,
  body.central-platform .central-state-grid { grid-template-columns: minmax(0,1fr); }
  body.central-platform .central-project-grid.single .central-project-card { grid-template-columns: minmax(0,1fr); }
  body.central-platform .central-project-grid.single .central-project-metrics,
  body.central-platform .central-project-grid.single .central-project-footer { grid-column: auto; }
  body.central-platform .central-project-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.central-platform .central-catalog-identity { grid-template-columns: minmax(0,1fr); }
  body.central-platform .central-catalog-identity > div:not(:first-child) { padding: .75rem 0 0; border-top: 1px solid #26384e; border-left: 0; }
  body.central-platform .central-route-card { grid-template-columns: minmax(0,1fr); }
  body.central-platform .central-route-card > a,
  body.central-platform .central-route-card > button { grid-column: auto; grid-row: auto; width: 100%; }
}

@media (max-width: 900px) {
  .app-shell .routers-panel table,
  .app-shell .device-register-table,
  .app-shell .user-register-table {
    min-width: 0;
  }
}

/* Operational intelligence: deterministic Project health and correlated incidents. */
body.central-platform .central-stat-card[role="button"] { cursor: pointer; transition: border-color .16s ease,transform .16s ease,background .16s ease; }
body.central-platform .central-stat-card[role="button"]:hover,
body.central-platform .central-stat-card[role="button"]:focus-visible { border-color: #4d8ee8; background: #132238; outline: none; transform: translateY(-1px); }
body.central-platform .central-project-rank { display: block; margin-bottom: .25rem; color: #62a5ff; font: 700 var(--text-xs)/1.2 var(--font-family); letter-spacing: .09em; }
body.central-platform .central-project-reasons { display: grid; gap: .35rem; align-content: center; }
body.central-platform .central-project-reasons span { display: block; color: #a9bdd3; font-size: var(--text-sm); line-height: 1.45; }
body.central-platform .central-project-reasons span::before { content: "•"; margin-right: .45rem; color: #f59e0b; }
body.central-platform .central-project-card[data-health="HEALTHY"] .central-project-reasons span::before { color: #22c55e; }
body.central-platform .central-problem em { display: block; margin-top: .25rem; color: #7893af; font-size: var(--text-xs); font-style: normal; }
body.central-platform .central-project-health-panel { display: grid; grid-template-columns: minmax(14rem,.38fr) minmax(20rem,1fr); gap: 1rem; margin-bottom: 1rem; padding: 1.15rem 1.3rem; border: 1px solid #2b425d; border-left: 4px solid #22c55e; border-radius: var(--radius-lg); background: linear-gradient(135deg,#111d2b,#0c151f); }
body.central-platform .central-project-health-panel[data-health="ATTENTION"] { border-left-color: #f59e0b; }
body.central-platform .central-project-health-panel[data-health="CRITICAL"],
body.central-platform .central-project-health-panel[data-health="COMMUNICATION_LOST"] { border-left-color: #ef4444; }
body.central-platform .central-project-health-panel > div { display: grid; align-content: start; gap: .25rem; }
body.central-platform .central-project-health-panel > div > span { color: #68a8fb; font-size: var(--text-xs); font-weight: 800; letter-spacing: .09em; }
body.central-platform .central-project-health-panel > div > strong { color: #f4f8ff; font-size: var(--text-xl); }
body.central-platform .central-project-health-panel > div > small { color: #8ea6bf; font-size: var(--text-sm); }
body.central-platform .central-project-health-panel > div > em { color: #8bbcff; font-size: var(--text-xs); font-style: normal; }
body.central-platform .central-project-health-panel details { border-left: 1px solid #2b425d; padding-left: 1rem; }
body.central-platform .central-project-health-panel summary { cursor: pointer; color: #7bb5ff; font-weight: 700; }
body.central-platform .central-project-health-panel details div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .5rem; margin-top: .65rem; }
body.central-platform .central-project-health-panel p { display: grid; gap: .15rem; margin: 0; padding: .55rem .65rem; border: 1px solid #26394d; border-radius: var(--radius-md); background: #0b141e; }
body.central-platform .central-project-health-panel p b { color: #dce9f8; font-size: var(--text-sm); }
body.central-platform .central-project-health-panel p span { color: #748ca5; font-size: var(--text-xs); }
body.central-platform .central-analysis-list { display: grid; }
body.central-platform .central-analysis-list > div { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 3.4rem; padding: .7rem 1rem; border-top: 1px solid #203247; }
body.central-platform .central-analysis-list > div:first-child { border-top: 0; }
body.central-platform .central-analysis-list span { display: grid; gap: .15rem; min-width: 0; }
body.central-platform .central-analysis-list strong { overflow: hidden; color: #dce9f8; font-size: var(--text-sm); text-overflow: ellipsis; white-space: nowrap; }
body.central-platform .central-analysis-list small { color: #7893af; font-size: var(--text-xs); }
body.central-platform .central-analysis-list time,
body.central-platform .central-analysis-list > div > b { flex: 0 0 auto; color: #8bbcff; font-size: var(--text-sm); }

@media (max-width: 900px) {
  body.central-platform .central-project-health-panel { grid-template-columns: 1fr; }
  body.central-platform .central-project-health-panel details { border-top: 1px solid #2b425d; border-left: 0; padding-top: .8rem; padding-left: 0; }
  body.central-platform .central-project-health-panel details div { grid-template-columns: 1fr; }
}
