@font-face {
  font-family: 'Fira Code Local';
  src: url('/assets/FiraCode-VF-Bc8wnsZt.woff2') format('woff2');
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
}


.cssDeviceHealthMap[data-v-6f6ee6cb] {
  width: 100%;
  height: 100%;
}
.cssMapCanvas[data-v-6f6ee6cb] {
  width: 100%;
  height: 100%;
}

.cssAiAlert[data-v-95432cc4] {
  background-color: #fff7ed;
  border: 1px solid #fb923c;
  border-radius: 10px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.cssAiAlertHeader[data-v-95432cc4] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.cssAiIcon[data-v-95432cc4] {
  color: #ea580c;
  font-size: 1.1rem;
}
.cssAiAlertTitle[data-v-95432cc4] {
  font-weight: 700;
  font-size: 0.9rem;
  color: #9a3412;
}
.cssAiAlertBody[data-v-95432cc4] {
  margin: 0;
  font-size: 0.85rem;
  color: #7c2d12;
  line-height: 1.5;
}
.cssAiAlertBtn[data-v-95432cc4] {
  align-self: flex-start;
  background-color: #dc2626;
  color: #ffffff;
  border: none;
  border-radius: 6px;
  padding: 6px 14px;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 0.15s ease;
}
.cssAiAlertBtn[data-v-95432cc4]:hover {
  background-color: #b91c1c;
}

.cssBadge[data-v-329d645d] {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 600;
  padding: 0.15rem 0.45rem;
  border-radius: 4px;
  white-space: nowrap;
}
.cssDanger[data-v-329d645d]    { background: #fee2e2; color: #dc2626;
}
.cssError[data-v-329d645d]     { background: #ffedd5; color: #ea580c;
}
.cssWarning[data-v-329d645d]   { background: #fef9c3; color: #ca8a04;
}
.cssInfo[data-v-329d645d]      { background: #dbeafe; color: #2563eb;
}
.cssSuccess[data-v-329d645d]   { background: #dcfce7; color: #16a34a;
}
.cssSecondary[data-v-329d645d] { background: #f1f5f9; color: #64748b;
}

/* Title row ---------------------------------------------------------------- */
.cssTitleRow[data-v-49fcaf42] {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
}
.cssTitleMain[data-v-49fcaf42] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex: 1;
  flex-wrap: wrap;
  min-width: 0;
}
.cssTitle[data-v-49fcaf42] {
  font-size: 1.25rem;
  font-weight: 700;
  word-break: break-all;
}
.cssStatusTag[data-v-49fcaf42] {
  flex-shrink: 0;
  font-size: 0.8em;
}
.cssCloseBtn[data-v-49fcaf42] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1.75rem;
  height: 1.75rem;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 50%;
  color: #6b7280;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.cssCloseBtn[data-v-49fcaf42]:hover {
  background: rgba(0, 0, 0, 0.07);
  color: #1f2937;
}

/* Info grid ---------------------------------------------------------------- */
.cssInfoGrid[data-v-49fcaf42] {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.7rem 1.25rem;
  /* Visual separation from the section below (Crash Context / Alerts) so the
     metadata grid reads as a distinct block instead of bleeding into it. */
  padding-bottom: 0.85rem;
  border-bottom: 1px solid var(--p-content-border-color, #e5e7eb);
}
.cssInfoCell[data-v-49fcaf42] {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-width: 0;
}

/* Row divider: a light horizontal rule between rows (not under the last one),
   relying on the fixed 3-column grid so every cell from the 2nd row onward gets it. */
.cssInfoCell[data-v-49fcaf42]:nth-child(n+4) {
  border-top: 1px solid var(--p-content-border-color, #e2e8f0);
  padding-top: 0.7rem;
}
.cssInfoLabel[data-v-49fcaf42] {
  font-size: 0.6875rem;
  font-weight: 600;
  line-height: 1.5;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--p-text-muted-color, #94a3b8);
  white-space: nowrap;
}
.cssInfoValue[data-v-49fcaf42] {
  font-family: 'Fira Code Local', ui-monospace, monospace;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--p-text-color, #1e293b);
  word-break: break-all;
}
.cssInfoValueNormal[data-v-49fcaf42] {
  font-family: inherit;
}
.cssInfoBadge[data-v-49fcaf42] {
  align-self: flex-start;
}

/* Devices ----------------------------------------------------------------- */
.cssDevicesSection[data-v-49fcaf42] {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.cssDevicesLabel[data-v-49fcaf42] {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--p-text-muted-color, #64748b);
}
.cssDeviceList[data-v-49fcaf42] {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  max-height: 6rem;
  overflow-y: auto;
  padding: 0.4rem;
  background: var(--p-surface-50, #f8fafc);
  border-radius: 6px;
  border: 1px solid var(--p-content-border-color, #e2e8f0);
}
.cssDeviceChip[data-v-49fcaf42] {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-family: 'Fira Code Local', ui-monospace, monospace;
  font-size: 0.78rem;
  background: var(--p-surface-100, #f1f5f9);
  border: 1px solid var(--p-content-border-color, #e2e8f0);
  border-radius: 4px;
  padding: 0.2rem 0.5rem;
  white-space: nowrap;
  cursor: pointer;
  color: inherit;
  transition: background 0.12s, border-color 0.12s;
}
.cssDeviceChip[data-v-49fcaf42]:hover {
  background: var(--p-primary-50, #eff6ff);
  border-color: var(--p-primary-300, #93c5fd);
  color: var(--p-primary-700, #1d4ed8);
}
.cssDeviceChipIcon[data-v-49fcaf42] {
  font-size: 0.65rem;
  opacity: 0.6;
}

/* Crash context ----------------------------------------------------------- */
.cssCrashSection[data-v-49fcaf42] {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.cssCrashLabel[data-v-49fcaf42] {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--p-text-muted-color, #64748b);
}
.cssCrashKnownTypeRow[data-v-49fcaf42] {
  display: flex;
  align-items: center;
}
.cssCrashScalars[data-v-49fcaf42] {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.cssCrashScalarChip[data-v-49fcaf42] {
  display: inline-flex;
  align-items: baseline;
  gap: 0.25rem;
  padding: 0.2rem 0.55rem;
  background: var(--p-surface-50, #f8fafc);
  border: 1px solid var(--p-content-border-color, #e2e8f0);
  border-radius: 4px;
  font-size: 0.78rem;
}
.cssCrashScalarKey[data-v-49fcaf42] {
  font-weight: 600;
  color: var(--p-text-muted-color, #64748b);
  text-transform: lowercase;
}
.cssCrashScalarVal[data-v-49fcaf42] {
  font-family: 'Fira Code Local', ui-monospace, monospace;
  color: var(--p-text-color, #1e293b);
  word-break: break-all;
}
.cssCrashStack[data-v-49fcaf42] {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.cssCrashStackTitle[data-v-49fcaf42] {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--p-text-muted-color, #94a3b8);
}
.cssCrashStackBody[data-v-49fcaf42] {
  background: var(--p-surface-50, #f8fafc);
  border: 1px solid var(--p-content-border-color, #e2e8f0);
  border-radius: 6px;
  padding: 0.5rem 0.75rem;
  max-height: 10rem;
  overflow-y: auto;
}
.cssCrashFrame[data-v-49fcaf42] {
  font-family: 'Fira Code Local', ui-monospace, monospace;
  font-size: 0.75rem;
  color: var(--p-text-color, #1e293b);
  white-space: pre;
  padding: 0.1rem 0;
}

/* Alerts ------------------------------------------------------------------ */
.cssAlertsSection[data-v-49fcaf42] {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.cssAlertsHeader[data-v-49fcaf42] {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
}
.cssAlertsLabel[data-v-49fcaf42] {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--p-text-muted-color, #64748b);
}
.cssAlertsCap[data-v-49fcaf42] {
  font-size: 0.78rem;
  color: var(--p-text-muted-color, #94a3b8);
}
.cssAlertsLoading[data-v-49fcaf42] {
  display: flex;
  justify-content: center;
  padding: 1.5rem 0;
}
.cssAlertsEmpty[data-v-49fcaf42] {
  font-size: 0.82rem;
  color: var(--p-text-muted-color, #94a3b8);
  padding: 0.5rem 0;
}
.cssAlertsTable[data-v-49fcaf42] .p-datatable-tbody > tr {
  cursor: pointer;
}
.cssAlertsTable[data-v-49fcaf42] .p-datatable-tbody > tr > td {
  padding: 0.45rem 0.6rem;
  vertical-align: top;
  font-size: 0.8rem;
}
.cssAlertsTable[data-v-49fcaf42] .p-datatable-thead > tr > th {
  padding: 0.45rem 0.6rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.cssDeviceVal[data-v-49fcaf42] {
  font-size: 0.8rem;
}
.cssMetaVal[data-v-49fcaf42] {
  font-size: 0.78rem;
  color: var(--p-text-muted-color, #64748b);
  font-family: inherit;
  word-break: break-word;
}


/* Title row ---------------------------------------------------------------- */
.cssTitleRow[data-v-3c085f7a] {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
}
.cssTitleMain[data-v-3c085f7a] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex: 1;
  flex-wrap: wrap;
  min-width: 0;
}
.cssTitle[data-v-3c085f7a] {
  font-size: 1.05rem;
  font-weight: 600;
  word-break: break-all;
}
.cssStatusTag[data-v-3c085f7a] {
  flex-shrink: 0;
  font-size: 0.8em;
}
.cssCloseBtn[data-v-3c085f7a] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1.75rem;
  height: 1.75rem;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 50%;
  color: #6b7280;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.cssCloseBtn[data-v-3c085f7a]:hover {
  background: rgba(0, 0, 0, 0.07);
  color: #1f2937;
}

/* Info grid ---------------------------------------------------------------- */
.cssInfoGrid[data-v-3c085f7a] {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.7rem 1.25rem;
}
.cssInfoCell[data-v-3c085f7a] {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-width: 0;
}

/* Row divider: a light horizontal rule between rows (not under the last one),
   relying on the fixed 3-column grid so every cell from the 2nd row onward gets it. */
.cssInfoCell[data-v-3c085f7a]:nth-child(n+4) {
  border-top: 1px solid var(--p-content-border-color, #e2e8f0);
  padding-top: 0.7rem;
}
.cssInfoLabel[data-v-3c085f7a] {
  font-size: 0.68rem;
  font-weight: 600;
  line-height: 1.5;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--p-text-muted-color, #94a3b8);
  white-space: nowrap;
}
.cssInfoValue[data-v-3c085f7a] {
  font-family: 'Fira Code Local', ui-monospace, monospace;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--p-text-color, #1e293b);
  word-break: break-all;
}
.cssInfoValueNormal[data-v-3c085f7a] {
  font-family: inherit;
}

/* Metadata ----------------------------------------------------------------- */
.cssSectionLabel[data-v-3c085f7a] {
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--p-text-muted-color, #94a3b8);
  margin-top: 0.25rem;
}
.cssKvTable[data-v-3c085f7a] .p-datatable-tbody > tr > td {
  padding: 0.55rem 0.75rem;
  vertical-align: top;
}
.cssKvTable[data-v-3c085f7a] .p-datatable-tbody > tr > td:nth-child(1) {
  width: 10em;
  font-weight: 500;
  color: var(--p-text-muted-color, #64748b);
  font-size: 0.875rem;
}
.cssKvTable[data-v-3c085f7a] .p-datatable-tbody > tr > td:nth-child(2) {
  text-align: right;
}
.cssVal[data-v-3c085f7a] {
  font-family: 'Fira Code Local', ui-monospace, monospace;
  font-size: 0.875rem;
}

.cssAnrDetailDialog[data-v-6bbbdad4] {
  width: 48em;
  height: 50em;
}

/* Dialog shell: fixed size with !important to override any PrimeVue inline styles */
.cssAnrDetailDialog[data-v-6bbbdad4] .cssAnrDetailDialogRoot {
  width: 48em !important;
  height: 50em !important;
  min-width: 48em !important;
  max-width: 48em !important;
  min-height: 50em !important;
  max-height: 50em !important;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}
.cssAnrDetailDialog[data-v-6bbbdad4] .p-dialog-content {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.cssAnrDetailLayout[data-v-6bbbdad4] {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}
.cssAnrTitleRow[data-v-6bbbdad4] {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 2em;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.3;
}
.cssAnrTitlePkg[data-v-6bbbdad4] {
  word-break: break-all;
}
.cssAnrDateRow[data-v-6bbbdad4] {
  font-size: 0.9rem;
  opacity: 0.9;
}
.cssAnrHeadDivider[data-v-6bbbdad4] {
  margin: 0.35rem 0 0.5rem;
}
.cssAnrTabsRow[data-v-6bbbdad4] {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  flex-shrink: 0;
}
.cssAnrTabsRow[data-v-6bbbdad4] .p-button {
  padding: 0.25em 0.75em;
  font-size: 0.9em;
}
.cssAnrTabBody[data-v-6bbbdad4] {
  flex: 1 1 auto;
  min-height: 0;
  margin-top: 0.35rem;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

/* In-flow flex child: only the v-shown tab participates in layout (others display:none). */
.cssAnrTabPane[data-v-6bbbdad4] {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  display: flex;
  flex-direction: column;
}
.cssAnrTabPane .cssAnrKvTable[data-v-6bbbdad4] {
  flex: 0 0 auto;
}

/* Key-value table: label left, value right (Broker Data style) */
.cssAnrKvTable[data-v-6bbbdad4] .p-datatable-tbody > tr > td {
  vertical-align: top;
  padding: 0.65rem 0.85rem;
}
.cssAnrKvTable[data-v-6bbbdad4] .p-datatable-tbody > tr > td:nth-child(1) {
  text-align: left;
  width: 10em;
  font-weight: 500;
}
.cssAnrKvTable[data-v-6bbbdad4] .p-datatable-tbody > tr > td:nth-child(2) {
  text-align: right;
  word-break: break-word;
}

/* ─────────────────────────────────────────────────────────────────── */
.cssAnrValMono[data-v-6bbbdad4] {
  font-family: 'Fira Code Local', ui-monospace, monospace;
}
.cssAnrValProse[data-v-6bbbdad4] {
  font-family: inherit;
  text-align: left;
  display: inline-block;
  width: 100%;
  white-space: pre-wrap;
}

.cssTsDetailDialog[data-v-e2fe9c81] {
  width: 48em;
  height: 50em;
}

/* Dialog shell: fixed size with !important to override PrimeVue inline styles */
.cssTsDetailDialog[data-v-e2fe9c81] .cssTsDetailDialogRoot {
  width: 48em !important;
  height: 50em !important;
  min-width: 48em !important;
  max-width: 48em !important;
  min-height: 50em !important;
  max-height: 50em !important;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}
.cssTsDetailDialog[data-v-e2fe9c81] .p-dialog-content {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.cssTsDetailLayout[data-v-e2fe9c81] {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

/* ── Title row ── */
.cssTsTitleRow[data-v-e2fe9c81] {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 2em;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.3;
}
.cssTsTitlePkg[data-v-e2fe9c81] {
  word-break: break-all;
}
.cssTsDateRow[data-v-e2fe9c81] {
  font-size: 0.9rem;
  opacity: 0.9;
}
.cssTsHeadDivider[data-v-e2fe9c81] {
  margin: 0.35rem 0 0.5rem;
}

/* ── Tab bar ── */
.cssTsTabsRow[data-v-e2fe9c81] {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  flex-shrink: 0;
}
.cssTsTabsRow[data-v-e2fe9c81] .p-button {
  padding: 0.25em 0.75em;
  font-size: 0.9em;
}
.cssTsTabBody[data-v-e2fe9c81] {
  flex: 1 1 auto;
  min-height: 0;
  margin-top: 0.35rem;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

/* In-flow flex child: only the v-shown pane participates in layout */
.cssTsTabPane[data-v-e2fe9c81] {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  display: flex;
  flex-direction: column;
}
.cssTsTabPane .cssTsKvTable[data-v-e2fe9c81] {
  flex: 0 0 auto;
}

/* ── Key-value table ── */
.cssTsKvTable[data-v-e2fe9c81] .p-datatable-tbody > tr > td {
  vertical-align: top;
  padding: 0.65rem 0.85rem;
}
.cssTsKvTable[data-v-e2fe9c81] .p-datatable-tbody > tr > td:nth-child(1) {
  text-align: left;
  width: 10em;
  font-weight: 500;
}
.cssTsKvTable[data-v-e2fe9c81] .p-datatable-tbody > tr > td:nth-child(2) {
  text-align: right;
  word-break: break-word;
}
.cssTsValMono[data-v-e2fe9c81] {
  font-family: 'Fira Code Local', ui-monospace, monospace;
}
.cssTsValProse[data-v-e2fe9c81] {
  font-family: inherit;
  text-align: left;
  display: inline-block;
  width: 100%;
  white-space: pre-wrap;
}


.cssHomeContainer[data-v-a4f10664] {
  display: flex;
  width: 100%;
  justify-content: center;
  min-height: 100%;
  padding-bottom: 2rem;
}
.cssHomeBody[data-v-a4f10664] {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.cssStatCards[data-v-a4f10664] {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.cssStatCard[data-v-a4f10664] {
  flex: 1 1 140px;
  background: var(--p-surface-0);
  border: 1px solid var(--p-content-border-color);
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05), 0 3px 12px rgba(0, 0, 0, 0.05);
  padding: 16px 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.cssStatCardActive[data-v-a4f10664] {
  border-color: var(--p-primary-color) !important;
  background: var(--p-primary-50, #eff6ff) !important;
  box-shadow: 0 0 0 1px var(--p-primary-color), 0 3px 12px rgba(0, 0, 0, 0.05);
}
.cssStatCardClickable[data-v-a4f10664] {
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
.cssStatCardClickable[data-v-a4f10664]:hover {
  border-color: var(--p-primary-color);
  background: var(--p-primary-50, #eff6ff);
}
.cssStatLabel[data-v-a4f10664] {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #64748b;
}
.cssStatIcon[data-v-a4f10664] {
  font-size: 0.85rem;
}
.cssStatValue[data-v-a4f10664] {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
}
.cssStatTotal[data-v-a4f10664] {
  color: #1e293b;
}
.cssStatHealthy[data-v-a4f10664] {
  color: #16a34a;
}
.cssStatWarning[data-v-a4f10664] {
  color: #d97706;
}
.cssStatCritical[data-v-a4f10664] {
  color: #dc2626;
}
.cssStatOffline[data-v-a4f10664] {
  color: #7c3aed;
}
.cssMainGrid[data-v-a4f10664] {
  display: flex;
  gap: 16px;
  align-items: stretch;
  flex-wrap: wrap;
}
.cssMapSection[data-v-a4f10664] {
  flex: 1 1 600px;
  background: var(--p-surface-0);
  border: 1px solid var(--p-content-border-color);
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05), 0 3px 12px rgba(0, 0, 0, 0.05);
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  height: 640px;
  box-sizing: border-box;
}
.cssMapHeader[data-v-a4f10664] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.cssMapTitle[data-v-a4f10664] {
  font-size: 1rem;
  font-weight: 600;
  color: #1e293b;
}
.cssMapControls[data-v-a4f10664] {
  display: flex;
  align-items: center;
  gap: 10px;
}
.cssFilterBadge[data-v-a4f10664] {
  display: inline-flex;
  align-items: center;
  background-color: #f1f5f9;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 4px 10px;
  font-size: 0.75rem;
  font-weight: 500;
  color: #475569;
  white-space: nowrap;
}
.cssMapMenuBtn[data-v-a4f10664] {
  top: 1px;
  padding: 4px;
  font-size: 1.05em;
}
.cssMap[data-v-a4f10664] {
  flex: 1;
  width: 100%;
  min-height: 0;
}
.cssMapFooter[data-v-a4f10664] {
  font-size: 0.8rem;
  color: #64748b;
  text-align: right;
}
.cssRightPanel[data-v-a4f10664] {
  flex: 0 0 460px;
  height: 640px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}
.cssIssuesPanel[data-v-a4f10664] {
  flex: 1;
  background: var(--p-surface-0);
  border: 1px solid var(--p-content-border-color);
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05), 0 3px 12px rgba(0, 0, 0, 0.05);
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow-y: auto;
}
.cssIssuesPanelTitle[data-v-a4f10664] {
  font-size: 0.9rem;
  font-weight: 700;
  color: #1e293b;
}
.cssIssuesEmpty[data-v-a4f10664] {
  padding: 20px 0;
  text-align: center;
  color: #94a3b8;
  font-size: 0.85rem;
}
.cssIssuesTable[data-v-a4f10664] {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8rem;
}
.cssIssuesTable th[data-v-a4f10664] {
  text-align: left;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #94a3b8;
  padding: 0 8px 8px 0;
  border-bottom: 1px solid #f1f5f9;
}
.cssIssuesTable td[data-v-a4f10664] {
  padding: 10px 8px 10px 0;
  vertical-align: middle;
  border-bottom: 1px solid #f8fafc;
}
.cssBadge[data-v-a4f10664] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border-radius: 5px;
  padding: 2px 8px;
  font-size: 0.7rem;
  font-weight: 600;
  white-space: nowrap;
}
.cssBadgeCritical[data-v-a4f10664] {
  background-color: #fee2e2;
  color: #dc2626;
}
.cssBadgeError[data-v-a4f10664] {
  background-color: #ffedd5;
  color: #ea580c;
}
.cssBadgeWarning[data-v-a4f10664] {
  background-color: #fef9c3;
  color: #ca8a04;
}
.cssBadgeInfo[data-v-a4f10664] {
  background-color: #dbeafe;
  color: #2563eb;
}
.cssBadgeOffline[data-v-a4f10664] {
  background-color: #ede9fe;
  color: #7c3aed;
}
.cssBadgeUnknown[data-v-a4f10664] {
  background-color: #f1f5f9;
  color: #6b7280;
}
.cssIssueName[data-v-a4f10664] {
  font-weight: 600;
  color: #1e293b;
  margin-bottom: 3px;
}
.cssIssueAiTag[data-v-a4f10664] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background-color: #dbeafe;
  color: #1d4ed8;
  border-radius: 4px;
  padding: 2px 6px;
  font-size: 0.7rem;
  font-style: italic;
}
.cssIssueAiIcon[data-v-a4f10664] {
  font-size: 0.75rem;
}
.cssIssueSub[data-v-a4f10664] {
  font-size: 0.75rem;
  color: #64748b;
}

/* Centre-align header cells for DEVICES and ACTION columns */
.cssIssueThCenter[data-v-a4f10664] {
  text-align: center !important;
}

/* DEVICES column cell */
.cssIssueDevices[data-v-a4f10664] {
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
  width: 4em;
}

/* Subtle pill around the device count number */
.cssDeviceCount[data-v-a4f10664] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.6em;
  padding: 0.1em 0.45em;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  color: #374151;
}

/* ACTION column cell — vertically and horizontally centre the ghost button */
.cssIssueActionTd[data-v-a4f10664] {
  text-align: center;
  vertical-align: middle;
  width: 3em;
  padding: 6px 8px;
}


.bui-icon {
  display: flex;
  top: 0;
  left: 0;
  width: 1em;
  height: 1em;
  padding: 0;
  fill: currentColor;
  color: var(--bui-icon-color, currentColor);
}

.cssFilterBar[data-v-d94bd215] {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex: 1;
  min-width: 0;
}

/* ── Star button ──────────────────────────────────────────────────────────── */
.cssStarBtn[data-v-d94bd215] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  flex-shrink: 0;
  border: 1px solid var(--p-togglebutton-border-color);
  border-radius: 6px;
  background: var(--p-togglebutton-background);
  color: var(--p-togglebutton-color);
  cursor: pointer;
  transition: all 0.12s ease;
}
.cssStarBtn[data-v-d94bd215]:hover {
  background: var(--p-togglebutton-hover-background);
  color: var(--p-togglebutton-hover-color);
}
.cssStarBtn.active[data-v-d94bd215] {
  background: var(--p-togglebutton-checked-background);
  color: var(--p-togglebutton-checked-color);
  border-color: var(--p-togglebutton-checked-border-color, var(--p-primary-400, #60a5fa));
}
.cssStarBtn[data-v-d94bd215] .bui-icon { font-size: 1.1em; pointer-events: none;
}

/* ── Chip input bar ───────────────────────────────────────────────────────── */
.cssChipInputWrap[data-v-d94bd215] {
  position: relative;
  flex: 1;
  min-width: 160px;
  max-width: 360px;
}
.cssChipInputBar[data-v-d94bd215] {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  height: 34px;
  padding: 0 0.5rem;
  border: 1px solid var(--p-content-border-color, #d1d5db);
  border-radius: 6px;
  background: var(--p-surface-0, white);
  cursor: text;
  transition: border-color 0.12s, box-shadow 0.12s;
  overflow: hidden;
}
.cssChipInputBar[data-v-d94bd215]:focus-within,
.cssChipInputBar.cssChipInputBarFocused[data-v-d94bd215] {
  border-color: var(--p-primary-400, #60a5fa);
  box-shadow: 0 0 0 1px var(--p-primary-200, #bfdbfe);
}
.cssChipInputBar.cssChipInputBarDisabled[data-v-d94bd215] {
  background: var(--p-surface-50, #f8fafc);
  border-color: var(--p-content-border-color, #d1d5db);
  cursor: default;
}

/* ── Inline chips ─────────────────────────────────────────────────────────── */
.cssInlineChip[data-v-d94bd215] {
  display: inline-flex;
  align-items: center;
  gap: 0.22rem;
  padding: 0.08rem 0.35rem;
  background: var(--p-primary-50, #eff6ff);
  border: 1px solid var(--p-primary-200, #bfdbfe);
  border-radius: 4px;
  font-size: 0.75rem;
  white-space: nowrap;
  flex-shrink: 0;
  height: 22px;
}
.cssInlineChipKey[data-v-d94bd215] {
  font-weight: 700;
  color: var(--p-primary-500, #3b82f6);
  font-size: 0.67rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.cssInlineChipVal[data-v-d94bd215] { color: var(--p-primary-900, #1e3a8a); font-weight: 500;
}
.cssInlineChipX[data-v-d94bd215] {
  display: inline-flex;
  align-items: center;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--p-primary-400, #60a5fa);
  font-size: 0.75rem;
  padding: 0;
  line-height: 1;
}
.cssInlineChipX[data-v-d94bd215]:hover { color: var(--p-primary-700, #1d4ed8);
}

/* ── Text input inside bar ────────────────────────────────────────────────── */
.cssChipInputText[data-v-d94bd215] {
  flex: 1;
  border: none;
  outline: none;
  background: transparent;
  font-size: 0.82rem;
  color: var(--p-text-color, #374151);
  min-width: 60px;
  height: 100%;
}
.cssChipInputText[data-v-d94bd215]::placeholder { color: var(--p-text-muted-color, #9ca3af); font-size: 0.8rem;
}
.cssChipInputText[data-v-d94bd215]:disabled { cursor: default;
}

/* ── Clear all button ─────────────────────────────────────────────────────── */
.cssChipInputClear[data-v-d94bd215] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--p-text-muted-color, #9ca3af);
  border-radius: 50%;
  flex-shrink: 0;
  transition: background 0.1s, color 0.1s;
}
.cssChipInputClear[data-v-d94bd215]:hover { background: var(--p-surface-200, #e5e7eb); color: var(--p-text-color, #374151);
}

/* ── Dropdown ─────────────────────────────────────────────────────────────── */
.cssChipDropdown[data-v-d94bd215] {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  min-width: 210px;
  max-width: 100%;
  z-index: 300;
  background: var(--p-surface-0, white);
  border: 1px solid var(--p-content-border-color, #d1d5db);
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
  max-height: 280px;
  overflow-y: auto;
  padding: 0.25rem;
}
.cssChipDropdownHeader[data-v-d94bd215] {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.6rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--p-text-muted-color, #64748b);
  border-bottom: 1px solid var(--p-content-border-color, #e5e7eb);
  margin-bottom: 0.2rem;
  cursor: pointer;
  border-radius: 5px 5px 0 0;
}
.cssChipDropdownHeader[data-v-d94bd215]:hover { color: var(--p-primary-600, #2563eb); background: var(--p-surface-50, #f8fafc);
}
.cssUidSearchSpinner[data-v-d94bd215] { font-size: 0.7rem; color: var(--p-text-muted-color, #9ca3af); margin-left: auto;
}
.cssChipDropdownItem[data-v-d94bd215] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 34px;
  padding: 0 0.6rem;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 0.82rem;
  text-align: left;
  color: var(--p-text-color, #374151);
  border-radius: 5px;
  gap: 0.5rem;
  transition: background 0.08s;
  box-sizing: border-box;
}
.cssChipDropdownItem[data-v-d94bd215]:hover,
.cssChipDropdownItem--active[data-v-d94bd215] { background: var(--p-content-hover-background, #f3f4f6);
}
.cssChipDropdownKey[data-v-d94bd215] { font-weight: 500;
}
.cssChipDropdownApplyItem[data-v-d94bd215] { font-style: italic; color: var(--p-primary-600, #2563eb); cursor: pointer;
}
.cssChipDropdownEmpty[data-v-d94bd215] {
  padding: 0.5rem 0.6rem;
  font-size: 0.8rem;
  color: var(--p-text-muted-color, #9ca3af);
}
.cssChipDropdownTextHint[data-v-d94bd215] {
  padding: 0.6rem 0.6rem;
  font-size: 0.8rem;
  color: var(--p-text-muted-color, #9ca3af);
  text-align: center;
}

/* ── UID search result items ──────────────────────────────────────────────── */
.cssChipDropdownUidItem[data-v-d94bd215] { gap: 0.75rem;
}
.cssChipDropdownUidVal[data-v-d94bd215] {
  font-weight: 500;
  font-family: monospace;
  font-size: 0.8rem;
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cssChipDropdownUidMeta[data-v-d94bd215] {
  font-size: 0.72rem;
  color: var(--p-text-muted-color, #9ca3af);
  flex-shrink: 0;
  max-width: 120px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ── Device count ─────────────────────────────────────────────────────────── */
.cssCount[data-v-d94bd215] {
  font-size: 0.78rem;
  color: var(--p-text-muted-color, #6b7280);
  white-space: nowrap;
  flex-shrink: 0;
}

.bui-icon {
        display: flex;
        top: 0;
        left: 0;
        width: 1em;
        height: 1em;
        padding: 0;
        fill: currentColor;
        color: var(--bui-icon-color, currentColor);
}

.bui-button-container {
        position: relative;
        display: inline-flex;
        align-items: center;
        column-gap: .5em;
        color: inherit;
}
.bui-button-container-vertical {
        row-gap: .25em;
}

    /* Default Buttons */
.bui-button {
        display: inline-flex;
        position: relative;
        color: var(--bui-static-foreground-color);
        background-color: var(--bui-static-background-color);
        border: var(--bui-border-style) var(--bui-static-border-color);
        padding: var(--bui-padding-top-bottom) var(--bui-padding-left-right);
        user-select: none;
        align-items: center;
        text-align: center;
        overflow: hidden;
        cursor: pointer;
        outline: none;
        transition: background-color .25s, color .25s, border-color .25s, box-shadow .25s;
}
.bui-button:hover {
        color: var(--bui-hover-foreground-color);
        background-color: var(--bui-hover-background-color);
        border-color: var(--bui-hover-border-color);
}
.bui-button:focus {
        color: var(--bui-focus-foreground-color);
        border-color: var(--bui-focus-border-color);
        box-shadow: var(--bui-focus-shadow);
}
.bui-button:active {
        color: var(--bui-active-foreground-color);
        background-color: var(--bui-active-background-color);
        border-color: var(--bui-active-border-color);
}

    /* Outline Buttons */
.bui-button-outline {
        color: var(--bui-static-background-color);
        background-color: transparent;
        border-color: var(--bui-static-background-color);
}
.bui-button-outline:hover {
        color: var(--bui-static-background-color);
        background-color: var(--bui-muted-background-color);
        border-color: var(--bui-hover-border-color);
}
.bui-button-outline:focus {
        color: var(--bui-focus-background-color);
        background-color: transparent;
        border-color: var(--bui-focus-border-color);
}
.bui-button-outline:hover:focus {
        color: var(--bui-focus-foreground-color);
        background-color: var(--bui-focus-background-color);
        border-color: var(--bui-focus-border-color);
}
.bui-button-outline:hover:active {
        color: var(--bui-active-foreground-color);
        background-color: var(--bui-active-background-color);
        border-color: var(--bui-active-border-color);
}

    /* Text Buttons */
.bui-button-text {
        color: var(--bui-static-background-color);
        background-color: transparent;
        border-color: transparent;
}
.bui-button-text:hover {
        color: var(--bui-hover-background-color);
        background-color: var(--bui-muted-background-color);
        border-color: transparent;
}
.bui-button-text:focus {
        color: var(--bui-focus-background-color);
        background-color: transparent;
        border-color: transparent;
}
.bui-button-text:active {
        color: var(--bui-active-background-color);
        background-color: transparent;
        border-color: transparent;
}
.bui-button-text:hover:focus {
        color: var(--bui-hover-background-color);
        background-color: var(--bui-muted-background-color);
        border-color: transparent;
}
.bui-button-text:hover:active {
        color: var(--bui-active-background-color);
        background-color: transparent;
        border-color: transparent;
}

    /* Toggle Buttons */
.bui-button-pressed {
        color: var(--bui-active-foreground-color);
        background-color: var(--bui-active-background-color);
        border-color: var(--bui-active-border-color);
}

    /* Icon Buttons */
.bui-button-icon {
        color: inherit;
        fill: currentColor;
}


.cardChartExpanded[data-v-97a34f07] {
    position: absolute !important;
    width: 100% !important;
    height: 100% !important;
    position: absolute !important;
    background-color: var(--bui-base-background-color);
    top: 0;
    left: 0;
    z-index: 3;
}
.expandLegend[data-v-97a34f07] {
    right: 0px;
    left: auto !important;
    width: auto !important;
}
.expandButton[data-v-97a34f07] {
    position: absolute;
    right: 20px;
}
.cssCardChartVars[data-v-97a34f07] {
  --card-w: var(--card-chart-w, 400px);
  --card-h: var(--card-chart-h, 200px);
  --card-border: var(--card-chart-border, 1px solid black);
  --card-border-radius: var(--card-chart-border-radius, 0px);

  --title-x: var(--card-chart-title-x, 5px);
  --title-y: var(--card-chart-title-y, 5px);
  --title-w: var(--card-chart-title-w, 400px);
  --title-h: var(--card-chart-title-h, 16px);
  --title-font: var(--card-chart-title-font, 600 16px Verdana);

  --subtitle-x: var(--card-chart-subtitle-x, 5px);
  --subtitle-y: var(--card-chart-subtitle-y, 26px);
  --subtitle-w: var(--card-chart-subtitle-w, 320px);
  --subtitle-h: var(--card-chart-subtitle-h, 16px);
  --subtitle-font: var(--card-chart-subtitle-font, 400 14px Verdana);
  --subtitle-text-align: var(--card-chart-subtitle-text-align, left);

  --canvas-x: var(--card-chart-canvas-x, 30px);
  --canvas-y: var(--card-chart-canvas-y, 50px);
  --canvas-w: var(--card-chart-canvas-w, 135px);
  --canvas-h: var(--card-chart-canvas-h, 135px);

  --legend-area-x: var(--card-chart-legend-area-x, 200px);
  --legend-area-y: var(--card-chart-legend-area-y, 50px);
  --legend-area-w: var(--card-chart-legend-area-w, 200px);
  --legend-area-h: var(--card-chart-legend-area-h, 135px);

  --legend-gap: var(--card-chart-legend-gap, 8px);

  --legend-text-w: var(--card-chart-legend-text-w, 160px);
  --legend-text-h: var(--card-chart-legend-text-h, 16x);
  --legend-text-font: var(--card-chart-legend-text-font, 16px Arial);
  --legend-text-align: var(--card-chart-legend-text-align, left);

  --legend-color-box-0: var(--card-chart-legend-color-box-0, blue);
  --legend-color-box-1: var(--card-chart-legend-color-box-1, purple);
  --legend-color-box-2: var(--card-chart-legend-color-box-2, orange);
  --legend-color-box-3: var(--card-chart-legend-color-box-3, red);
  --legend-color-box-4: var(--card-chart-legend-color-box-4, green);
}
.cssHorizontalBarCardChartVars[data-v-97a34f07] {
  --canvas-x: var(--card-chart-canvas-x, 80px);
  --canvas-y: var(--card-chart-canvas-y, 40px);
  --canvas-w: var(--card-chart-canvas-w, 290px);
  --canvas-h: var(--card-chart-canvas-h, 145px);

  --axis-x-unit-x: var(--card-chart-axis-x-unit-x, 380px);
  --axis-x-unit-y: var(--card-chart-axis-x-unit-y, 166px);
  --axis-x-unit-w: var(--card-chart-axis-x-unit-w, 12px);
  --axis-x-unit-h: var(--card-chart-axis-x-unit-h, 12px);
  --axis-x-unit-font: var(--card-chart-axis-x-unit-font, 12px Arial);

  --legend-area-x: var(--card-chart-legend-area-x, -15px);
  --legend-area-y: var(--card-chart-legend-area-y, 69px);
  --legend-area-w: var(--card-chart-legend-area-w, 120px);
  --legend-area-h: var(--card-chart-legend-area-h, 120px);

  --legend-gap: var(--card-chart-legend-gap, 14px);

  --legend-text-w: var(--card-chart-legend-text-w, 80px);
  --legend-text-align: var(--card-chart-legend-text-align, right);

  --legend-color-box-0: var(--card-chart-legend-color-box-0, transparent);
  --legend-color-box-1: var(--card-chart-legend-color-box-1, transparent);
  --legend-color-box-2: var(--card-chart-legend-color-box-2, transparent);
  --legend-color-box-3: var(--card-chart-legend-color-box-3, transparent);
  --legend-color-box-4: var(--card-chart-legend-color-box-4, transparent);
}
.cssCardChart[data-v-97a34f07] {
  position: relative;
  width: var(--card-w);
  height: var(--card-h);
  border: var(--card-border);
  border-radius: var(--card-border-radius);
}
.cssCardChartTitle[data-v-97a34f07] {
  position: absolute;
  left: var(--title-x);
  top: var(--title-y);
  width: var(--title-w);
  height: var(--title-h);
  font: var(--title-font);
}
.cssCardChartSubtitle[data-v-97a34f07] {
  position: absolute;
  left: var(--subtitle-x);
  top: var(--subtitle-y);
  width: var(--subtitle-w);
  height: var(--subtitle-h);
  font: var(--subtitle-font);
  text-align: var(--subtitle-text-align);
}
.cssCardChartCanvas[data-v-97a34f07] {
  position: relative;
  left: var(--canvas-x);
  top: var(--canvas-y);
  width: var(--canvas-w);
  height: var(--canvas-h);
}
.cssCardChartLegendArea[data-v-97a34f07] {
  position: absolute;
  left: var(--legend-area-x);
  top: var(--legend-area-y);
  width: var(--legend-area-w);
  height: var(--legend-area-h);

  display: flex;
  flex-flow: column wrap;
  gap: var(--legend-gap);
}
.cssCardChartLegend[data-v-97a34f07] {
  display: flex;
  align-items: flex-start;
}
.cssCardChartLegendColorBox[data-v-97a34f07] {
  display: inline-block;
  width: 16px;
  height: 16px;
}
.cssCardChartLegendColorBox0[data-v-97a34f07] {
  background-color: var(--legend-color-box-0);
}
.cssCardChartLegendColorBox1[data-v-97a34f07] {
  background-color: var(--legend-color-box-1);
}
.cssCardChartLegendColorBox2[data-v-97a34f07] {
  background-color: var(--legend-color-box-2);
}
.cssCardChartLegendColorBox3[data-v-97a34f07] {
  background-color: var(--legend-color-box-3);
}
.cssCardChartLegendColorBox4[data-v-97a34f07] {
  background-color: var(--legend-color-box-4);
}
.cssCardChartLegendText[data-v-97a34f07] {
  display: inline-block;
  width: var(--legend-text-w);
  font: var(--legend-text-font);

  margin-left: 8px;
  text-align: var(--legend-text-align);
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
}
.cssCardChartHbarXUnit[data-v-97a34f07] {
  position: absolute;
  left: var(--axis-x-unit-x);
  top: var(--axis-x-unit-y);
  width: var(--axis-x-unit-w);
  height: var(--axis-x-unit-h);
  font: var(--axis-x-unit-font);
}
a[data-v-97a34f07]:link,
a[data-v-97a34f07]:visited {
  text-decoration: none;
  color:inherit;
}
a[data-v-97a34f07]:hover,
a[data-v-97a34f07]:active {
  text-decoration: underline;
}
.cssCardChartLoadingIcon[data-v-97a34f07] {
  position: absolute;
  left: calc(var(--card-w) - 25px);
  top: calc(var(--card-h) - 25px);
  width: 20px;
  height: 20px;
  animation: spinAnimation-97a34f07 2s infinite linear;
}
@keyframes spinAnimation-97a34f07 {
0%   {transform: rotate(0deg);}
100% {transform: rotate(360deg);}
}


.mapModal[data-v-bf39a075] {
  margin: 0;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;

  z-index: 10;
  background-color: var(--bas-backdrop-bg);
}
.mapContainer[data-v-bf39a075] {
  position: relative;
  top: 10%;
  left: 5%;
  width: 90%;
  height: 80%;
  background-color: var(--bui-base-background-color);
  border: 1px solid var(--bui-base-foreground-color);
}
.map[data-v-bf39a075] {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.mapInputDialog[data-v-bf39a075] {
  position: absolute;
  top: 30px;
  left: 30px;
  width: 50%;
  padding: 15px;
  background-color: var(--bui-base-background-color);
  border: 1px solid var(--bui-base-foreground-color);
}
.mapInputContainer[data-v-bf39a075] {
  display: flex;
  align-items: center;
  width: 100%;
  height: 50px;
}
.mapInputPrompt[data-v-bf39a075] {
  font-size: 16px;
  margin-bottom: 5px;
}
#domAppInputContainer[data-v-bf39a075] {
  width: 70%;
  padding: 5px 0;
  margin-right: 10px;
}
.mapAddrInput[data-v-bf39a075] {
  font-size: 18px;
  width: 97%;
  background-color: var(--bui-static-foreground-color);
}
.mapInputButton[data-v-bf39a075] {
  display: flex;
  font-size: 18px;
  margin-right: 10px;
}
.cssSuggestContainerOuter[data-v-bf39a075] {
  position: absolute;
  padding-left: 2px;
  padding-top: 2px;
}
.cssSuggestContainerInner[data-v-bf39a075] {
  position: absolute;
  min-width: 500px;
}
.cssSuggest[data-v-bf39a075] {
  padding: 0.25em 1em;
  color: var(--bui-static-background-color);
  background-color: var(--bui-static-foreground-color);
  cursor: pointer;
}
.cssSuggest[data-v-bf39a075]:hover {
  color: var(--bui-hover-foreground-color);
  background-color: var(--bui-hover-background-color);
}

.cssDialogDeviceVars[data-v-b2ddbaa0] {
  --dialog-w: var(--dialog-device-w, 960px);
  --dialog-h: var(--dialog-device-h, 603px);
  --dialog-bg: var(--dialog-device-bg, var(--bui-base-background-color));
  --dialog-corner: var(--dialog-device-corner, 10px);

  --dialog-text-semi-bold: var(--dialog-device-text-semi-bold, 600);
  --p-datatable-paginator-bottom-border-width: 0;
}
.cssDialogDeviceDarkModeVars[data-v-b2ddbaa0] {
  --dialog-border-darkmode: 1px solid var(--bui-base-foreground-color);
}
.cssModal[data-v-b2ddbaa0] {
  margin: 0;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;

  z-index: 5;
  background-color: var(--bas-backdrop-bg);
}
.cssDialog[data-v-b2ddbaa0] {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
  width: var(--dialog-w);
  height: var(--dialog-h);

  background-color: var(--dialog-bg);
  border: var(--dialog-border-darkmode);
  border-radius: var(--dialog-corner);
  padding: 20px;

  display: flex;
  flex-direction: column;
  gap: 5px;

  box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.25);
}
.cssFlexLeftRight[data-v-b2ddbaa0] {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}
.cssFlexTopDown[data-v-b2ddbaa0] {
  display: flex;
  flex-direction: column;
}
.cssFlexAlignRight[data-v-b2ddbaa0] {
  align-items: flex-end;
}
.cssProductDevice[data-v-b2ddbaa0] {
  font-size: 18px;
  height: 20px;
  font-weight: var(--dialog-text-semi-bold);
}
.cssDeviceId[data-v-b2ddbaa0] {
  font-size: 14px;
  height: 20px;
  margin-top: 5px;
}
.cssDateTime[data-v-b2ddbaa0] {
  font-size: 14px;
  height: 14px;
  margin-top: 3px;
}
.cssRowConnection[data-v-b2ddbaa0] {
  height: 20px;
  font-weight: var(--dialog-text-semi-bold);
}
.cssConnected[data-v-b2ddbaa0] {
  color: var(--bui-base-foreground-color);
}
.cssDisconnected[data-v-b2ddbaa0] {
  color: var(--bui-base-foreground-color);
}
.cssTabsContainer[data-v-b2ddbaa0] {
  display: flex;
  gap: 0.5em;
  margin-bottom: 1em;
  flex-wrap: wrap;
}
.cssTabsContainer[data-v-b2ddbaa0] .p-button {
  padding: 0.25em 0.75em;
  font-size: 0.9em;
}
.cssDeviceDialogTabContent[data-v-b2ddbaa0] {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.cssTabContent[data-v-b2ddbaa0] {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.cssRowMain[data-v-b2ddbaa0] {
  height: 300px;
  display: flex;
  flex-direction: row;
  gap: 20px;
  margin-top: 20px;
}
.cssDeviceChart[data-v-b2ddbaa0] {
  width: 600px;
  height: 300px;
  border: 1px solid var(--bui-neutral-background-color);
  border-radius: 10px;

  --card-chart-w: 100%;
  --card-chart-h: 100%;
  --card-chart-border: 0px solid black;

  --card-chart-canvas-x: 0px;
  --card-chart-canvas-y: 10px;
  --card-chart-canvas-w: calc(100% - 10px);
  --card-chart-canvas-h: calc(100% - var(--card-chart-canvas-y));
}
.cssDeviceFields[data-v-b2ddbaa0] {
  width: 300px;
  height: 100%;
}
.cssDeviceField[data-v-b2ddbaa0] {
  height: 80px;
}
.cssDeviceFieldLabel[data-v-b2ddbaa0] {
  font-size: 1rem;
  margin-bottom: 5px;
  color: var(--bui-neutral-background-color);
}
.cssConnectionTab[data-v-b2ddbaa0] {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
}
.cssBrokerTab[data-v-b2ddbaa0] {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding-top: 0.25rem;
  flex: 1 1 auto;
  min-height: 0;
}
.cssBrokerSectionTitle[data-v-b2ddbaa0] {
  margin: 0;
  font-size: 1.1rem;
  font-weight: var(--dialog-text-semi-bold);
  color: var(--bui-base-foreground-color);
}
.cssNetworkInfo[data-v-b2ddbaa0] {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.cssNetworkTable[data-v-b2ddbaa0] {
  width: 100%;
  border-collapse: collapse;
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid #e9ecef;
}
.cssNetworkTable tr[data-v-b2ddbaa0] {
  border-bottom: 1px solid #e9ecef;
}
.cssNetworkTable tr[data-v-b2ddbaa0]:last-child {
  border-bottom: none;
}
.cssNetworkTable tr[data-v-b2ddbaa0]:nth-child(even) {
  background-color: #f8f9fa;
}
.cssNetworkTable tr[data-v-b2ddbaa0]:nth-child(odd) {
  background-color: #ffffff;
}
.cssBrokerTableLabel[data-v-b2ddbaa0] {
  color: var(--bui-base-foreground-color);
  padding: 0.75rem 1rem;
  text-align: left;
  min-width: 250px;
  vertical-align: top;
}
.cssBrokerTableValue[data-v-b2ddbaa0] {
  padding: 0.75rem 1rem;
  text-align: right;
  font-family: 'Fira Code Local', monospace;
  color: var(--bui-base-foreground-color);
  vertical-align: top;
}
.cssMqttVersionBadge[data-v-b2ddbaa0] {
  font-size: 0.875rem;
  font-weight: 600;
}
.cssBrokerNetworkEmpty[data-v-b2ddbaa0] {
  font-size: 0.875rem;
  color: var(--bui-neutral-background-color);
  padding: 0.5rem 0;
}

/* cancel data table sortable effect */
[data-v-b2ddbaa0] .p-datatable-sortable-column {
  pointer-events: none;
  cursor: default;
}
.cssBottomRow[data-v-b2ddbaa0] {
  height: 30px;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
}
.cssButtonSet[data-v-b2ddbaa0] {
  display: flex;
  flex-direction: row;
  gap: 10px;
  margin-right: 10px;
}
.cssMessageBlock[data-v-b2ddbaa0] {
  display: flex;
  align-items: center;
  height: 1rem;
  gap: 10px;
  width: 500px;
}
.cssMessageIcon[data-v-b2ddbaa0] {
  width: 24px;
  height: 24px;
}
.cssMessage[data-v-b2ddbaa0] {
  font-size: inherit;
}

.cssSelectLongList > div {
  max-height: 30vh;
  overflow-y: scroll;
}

.cssDialogConfirmVars[data-v-90b16334] {
  --dialog-w: var(--dialog-confirm-w, 800px);
  --dialog-h: var(--dialog-confirm-h, 200px);
  --dialog-bg: var(--dialog-confirm-bg, var(--bui-base-background-color));
  --dialog-corner: var(--dialog-confirm-corner, 10px);
}
.cssDialogConfirmDarkModeVars[data-v-90b16334] {
  --dialog-border-darkmode: 1px solid var(--bui-base-foreground-color);
}
.cssModal[data-v-90b16334] {
  margin: 0;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;

  z-index: 5;
  background-color: var(--bas-backdrop-bg);
}
.cssFlexTopDown[data-v-90b16334] {
  display: flex;
  flex-direction: column;
}
.cssFlexLeftRight[data-v-90b16334] {
  display: flex;
  flex-direction: row;
}
.cssDialog[data-v-90b16334] {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
  width: var(--dialog-w);
  min-height: var(--dialog-h);
  max-height: 90vh;

  background-color: var(--dialog-bg);
  border: var(--dialog-border-darkmode);
  border-radius: var(--dialog-corner);
  padding: 20px;

  display: flex;
  flex-direction: column;
  gap: 12px;

  box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.25);
}
.cssConfirmMessageBlock[data-v-90b16334] {
  width: calc(var(--dialog-w) - 40px);
  min-height: calc(var(--dialog-h) - 110px);
  flex: 1;

  display: flex;
  justify-content: center;
  align-items: center;
  align-content: center;

  /* Handle long text gracefully */
  word-wrap: break-word;
  overflow-wrap: break-word;
  hyphens: auto;
  text-align: center;
  overflow-y: auto;
}
.cssBottomRow[data-v-90b16334] {
  height: 30px;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  gap: 50px;
}


.cssKpiBar[data-v-629d0114] {
  display: flex;
  gap: 0.75rem;
  margin: 0.75rem 0 1rem;
  flex-wrap: wrap;
  transition: opacity 0.2s;
}
.cssKpiLoading[data-v-629d0114] {
  opacity: 0.45;
}
.cssKpiCard[data-v-629d0114] {
  flex: 1 1 130px;
  min-width: 110px;
  background: var(--p-surface-0);
  border: 1px solid var(--p-content-border-color);
  border-radius: 8px;
  padding: 0.9rem 1.1rem;
  display: flex;
  flex-direction: column;
  gap: 6px;
  text-align: left;
}
.cssKpiCardClickable[data-v-629d0114] {
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
.cssKpiCardClickable[data-v-629d0114]:hover {
  border-color: var(--p-primary-color);
  background: var(--p-primary-50, #eff6ff);
}
.cssKpiCardActive[data-v-629d0114] {
  border-color: var(--p-primary-color) !important;
  background: var(--p-primary-50, #eff6ff) !important;
  box-shadow: 0 0 0 1px var(--p-primary-color);
}
.cssKpiValue[data-v-629d0114] {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
  color: var(--p-text-color);
}
.cssKpiPct[data-v-629d0114] {
  font-size: 0.78rem;
  color: var(--p-text-muted-color);
  font-weight: 500;
}
.cssKpiLabel[data-v-629d0114] {
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--p-text-muted-color);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  display: flex;
  align-items: center;
  gap: 0.3rem;
}
.cssColorOnline[data-v-629d0114]  { color: var(--p-green-500);
}
.cssColorOffline[data-v-629d0114] { color: var(--p-red-500);
}
.cssColorIssues[data-v-629d0114]  { color: var(--p-orange-500);
}
.cssKpiIcon[data-v-629d0114] {
  font-size: 0.85rem;
}

.cssDrawerHeader[data-v-d69203ff] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
  flex: 1;
}
.cssDrawerTitle[data-v-d69203ff] {
  display: flex;
  flex-direction: column;
  gap: 0.06rem;
  min-width: 0;
}
.cssDrawerTitleText[data-v-d69203ff] {
  font-size: 0.95rem;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cssDrawerTitleUid[data-v-d69203ff] {
  font-size: 0.72rem;
  color: var(--p-text-muted-color);
  font-family: 'Fira Code Local', ui-monospace, monospace;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cssDrawerHeaderActions[data-v-d69203ff] {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  margin-left: auto;
  flex-shrink: 0;
}
.cssHeaderBtn[data-v-d69203ff] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border: 1px solid var(--p-content-border-color, #e5e7eb);
  border-radius: 6px;
  background: transparent;
  color: var(--p-text-muted-color, #6b7280);
  cursor: pointer;
  font-size: 0.85rem;
  transition: all 0.12s;
}
.cssHeaderBtn[data-v-d69203ff]:hover { background: var(--p-surface-100, #f3f4f6); color: var(--p-text-color);
}
.cssHeaderBtn[data-v-d69203ff]:disabled { opacity: 0.5; cursor: not-allowed;
}
.cssHeaderBtnSuccess[data-v-d69203ff] { color: var(--p-green-600, #16a34a); border-color: var(--p-green-200, #bbf7d0);
}
.cssHeaderBtnSuccess[data-v-d69203ff]:hover { background: var(--p-green-50, #f0fdf4); color: var(--p-green-700, #15803d);
}
.cssDrawerBody[data-v-d69203ff] {
  display: flex;
  flex-direction: column;
}
.cssMetaGrid[data-v-d69203ff] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.6rem 1.5rem;
  padding-bottom: 0.25rem;
}
.cssMetaItemWide[data-v-d69203ff] { grid-column: span 2;
}
.cssMetaItem[data-v-d69203ff]     { min-width: 0;
}
.cssMetaLabel[data-v-d69203ff] {
  font-size: 0.72rem;
  color: var(--p-text-muted-color);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 0.1rem;
}
.cssMetaValue[data-v-d69203ff] {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--p-text-color);
}
.cssMuted[data-v-d69203ff] { color: var(--p-text-muted-color); font-weight: 400;
}
.cssMonospace[data-v-d69203ff] {
  font-family: 'Fira Code Local', ui-monospace, monospace;
  font-size: 0.82rem;
}
.cssEditInput[data-v-d69203ff] {
  width: 100%;
  height: 30px;
  padding: 0 0.5rem;
  border: 1px solid var(--p-inputtext-border-color, #d1d5db);
  border-radius: 5px;
  background: var(--p-inputtext-background, white);
  color: var(--p-inputtext-color, #374151);
  font-size: 0.82rem;
  outline: none;
  box-sizing: border-box;
}
.cssEditInput[data-v-d69203ff]:focus {
  border-color: var(--p-primary-400, #60a5fa);
  box-shadow: 0 0 0 1px var(--p-primary-200, #bfdbfe);
}
.cssInlineError[data-v-d69203ff] {
  font-size: 0.8rem;
  color: var(--p-red-600, #dc2626);
  display: flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0 0;
}
.cssTagRow[data-v-d69203ff] {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  padding-top: 0.05rem;
}
.cssTagChip[data-v-d69203ff] { font-size: 0.72rem !important;
}
.cssSectionHeader[data-v-d69203ff] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.65rem;
}
.cssSectionTitle[data-v-d69203ff] {
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--p-text-muted-color);
}
.cssEmptyMsg[data-v-d69203ff] {
  font-size: 0.85rem;
  color: var(--p-text-muted-color);
  padding: 0.25rem 0 0.5rem;
}
.cssLoadingMsg[data-v-d69203ff] { display: flex; align-items: center; gap: 0.4rem;
}
.cssIssueList[data-v-d69203ff] { display: flex; flex-direction: column; gap: 0.4rem;
}
.cssIssueRow[data-v-d69203ff] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.55rem 0.75rem;
  background: var(--p-surface-50, #f8fafc);
  border: 1px solid var(--p-content-border-color);
  border-radius: 6px;
}
.cssIssueLeft[data-v-d69203ff] { display: flex; flex-direction: column; gap: 0.1rem; min-width: 0;
}
.cssIssueCode[data-v-d69203ff] {
  font-family: 'Fira Code Local', ui-monospace, monospace;
  font-size: 0.82rem;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cssIssueMeta[data-v-d69203ff] {
  font-size: 0.75rem;
  color: var(--p-text-muted-color);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cssActionRow[data-v-d69203ff] { display: flex; flex-wrap: wrap; gap: 0.5rem;
}
.cssConnectionTimeline[data-v-d69203ff] { display: flex; flex-direction: column; gap: 0.35rem;
}
.cssConnectionRow[data-v-d69203ff] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
}
.cssConnectionTime[data-v-d69203ff] {
  font-size: 0.78rem;
  color: var(--p-text-muted-color);
  min-width: 4.5rem;
  flex-shrink: 0;
}
.cssConnectionLabel[data-v-d69203ff] { font-size: 0.85rem;
}

/* ── Delete section ─────────────────────────────────────────── */
.cssDeleteSection[data-v-d69203ff] {
  margin-top: 1rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--p-content-border-color, #e5e7eb);
}
.cssDeleteConfirm[data-v-d69203ff] {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.cssDeleteMsg[data-v-d69203ff] {
  font-size: 0.82rem;
  color: var(--p-text-color);
}
.cssDeleteUid[data-v-d69203ff] {
  font-family: 'Fira Code Local', ui-monospace, monospace;
  font-size: 0.82rem;
}
.cssDeleteButtons[data-v-d69203ff] {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.cssBulkBar[data-v-bf924e11] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.75rem;
  padding: 0.6rem 1rem;
  background: var(--p-primary-50, #eff6ff);
  border: 1px solid var(--p-primary-200, #bfdbfe);
  border-radius: 8px;
  margin-bottom: 0.75rem;
}
.cssBulkInfo[data-v-bf924e11] {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
  font-size: 0.875rem;
  color: var(--p-primary-700, #1d4ed8);
}
.cssBulkIcon[data-v-bf924e11] {
  font-size: 1rem;
  flex-shrink: 0;
}
.cssSelectAllLink[data-v-bf924e11] {
  background: none;
  border: none;
  color: var(--p-primary-color);
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
  padding: 0;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.cssSelectAllLink[data-v-bf924e11]:hover {
  color: var(--p-primary-700, #1d4ed8);
}
.cssBulkActions[data-v-bf924e11] {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  align-items: center;
}

/* slide-down transition */
.cssBulkSlide-enter-active[data-v-bf924e11],
.cssBulkSlide-leave-active[data-v-bf924e11] {
  transition: all 0.2s ease;
  overflow: hidden;
}
.cssBulkSlide-enter-from[data-v-bf924e11],
.cssBulkSlide-leave-to[data-v-bf924e11] {
  opacity: 0;
  max-height: 0;
  margin-bottom: 0;
  padding-top: 0;
  padding-bottom: 0;
}
.cssBulkSlide-enter-to[data-v-bf924e11],
.cssBulkSlide-leave-from[data-v-bf924e11] {
  opacity: 1;
  max-height: 6rem;
}

.cssBody[data-v-3c6a6ac6] {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  padding-top: 0.25rem;
}
.cssScope[data-v-3c6a6ac6] {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.65rem 0.85rem;
  background: var(--p-primary-50, #eff6ff);
  border: 1px solid var(--p-primary-200, #bfdbfe);
  border-radius: 6px;
  font-size: 0.875rem;
  color: var(--p-primary-700, #1d4ed8);
}
.cssScopeIcon[data-v-3c6a6ac6] { flex-shrink: 0; margin-top: 0.1rem;
}
.cssField[data-v-3c6a6ac6] {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.cssLabel[data-v-3c6a6ac6] {
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--p-text-muted-color);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.cssSelect[data-v-3c6a6ac6] {
  height: 36px;
  padding: 0 0.65rem;
  border: 1px solid var(--p-inputtext-border-color, #d1d5db);
  border-radius: 6px;
  background: var(--p-inputtext-background, white);
  color: var(--p-inputtext-color, #374151);
  font-size: 0.875rem;
  outline: none;
  width: 100%;
  box-sizing: border-box;
  cursor: pointer;
  appearance: auto;
}
.cssSelect[data-v-3c6a6ac6]:focus {
  border-color: var(--p-primary-400, #60a5fa);
  box-shadow: 0 0 0 1px var(--p-primary-200, #bfdbfe);
}
.cssSelect[data-v-3c6a6ac6]:disabled { opacity: 0.55; cursor: not-allowed;
}
.cssErrorNote[data-v-3c6a6ac6] {
  font-size: 0.8rem;
  color: var(--p-red-500);
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.cssWarnNote[data-v-3c6a6ac6] {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.6rem 0.8rem;
  background: var(--p-orange-50, #fff7ed);
  border: 1px solid var(--p-orange-200, #fed7aa);
  border-radius: 6px;
  font-size: 0.82rem;
  color: var(--p-orange-700, #c2410c);
}
.cssInfoNote[data-v-3c6a6ac6] {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.55rem 0.75rem;
  background: var(--p-surface-50, #f8fafc);
  border: 1px solid var(--p-content-border-color);
  border-radius: 6px;
  font-size: 0.82rem;
  color: var(--p-text-muted-color);
}

.cssBody[data-v-010a694b] {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  padding-top: 0.25rem;
}
.cssProgressSection[data-v-010a694b] { display: flex; flex-direction: column; gap: 0.4rem;
}
.cssProgressHeader[data-v-010a694b] {
  display: flex;
  justify-content: space-between;
  font-size: 0.85rem;
  color: var(--p-text-color);
}
.cssProgressPct[data-v-010a694b] { font-weight: 600;
}
.cssProgressTrack[data-v-010a694b] {
  height: 8px;
  background: var(--p-surface-200, #e5e7eb);
  border-radius: 9999px;
  overflow: hidden;
}
.cssProgressFill[data-v-010a694b] {
  height: 100%;
  background: var(--p-primary-500, #3b82f6);
  border-radius: 9999px;
  transition: width 0.3s ease;
}
.cssCounters[data-v-010a694b] { display: flex; gap: 1rem;
}
.cssCounter[data-v-010a694b] {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  padding: 0.65rem 0.5rem;
  border: 1px solid var(--p-content-border-color);
  border-radius: 8px;
  background: var(--p-surface-50, #f8fafc);
}
.cssCountNum[data-v-010a694b]  { font-size: 1.3rem; font-weight: 700; line-height: 1;
}
.cssCountLabel[data-v-010a694b] { font-size: 0.72rem; color: var(--p-text-muted-color); text-align: center;
}
.cssIconSuccess[data-v-010a694b] { color: var(--p-green-500, #22c55e); font-size: 1rem;
}
.cssIconPending[data-v-010a694b] { color: var(--p-orange-400, #fb923c); font-size: 1rem;
}
.cssIconFailed[data-v-010a694b]  { color: var(--p-red-500, #ef4444);   font-size: 1rem;
}
.cssInfoNote[data-v-010a694b] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.55rem 0.75rem;
  background: var(--p-surface-50, #f8fafc);
  border: 1px solid var(--p-content-border-color);
  border-radius: 6px;
  font-size: 0.82rem;
  color: var(--p-text-muted-color);
}
.cssCompleteNote[data-v-010a694b] {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.85rem;
  color: var(--p-green-700, #15803d);
  padding: 0.5rem 0.75rem;
  background: var(--p-green-50, #f0fdf4);
  border: 1px solid var(--p-green-200, #bbf7d0);
  border-radius: 6px;
}
.cssSection[data-v-010a694b] { display: flex; flex-direction: column; gap: 0.4rem;
}
.cssSectionTitle[data-v-010a694b] {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--p-text-muted-color);
}
.cssResultList[data-v-010a694b] {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  max-height: 10rem;
  overflow-y: auto;
}
.cssResultRow[data-v-010a694b] {
  display: flex;
  align-items: baseline;
  gap: 0.65rem;
  padding: 0.3rem 0.55rem;
  border-radius: 5px;
  font-size: 0.82rem;
}
.cssResultFailed[data-v-010a694b]  { background: var(--p-red-50, #fef2f2);
}
.cssResultPending[data-v-010a694b] { background: var(--p-surface-50, #f8fafc);
}
.cssResultUid[data-v-010a694b] {
  font-family: 'Fira Code Local', ui-monospace, monospace;
  font-size: 0.78rem;
  font-weight: 500;
  flex-shrink: 0;
}
.cssResultErr[data-v-010a694b] {
  color: var(--p-red-600, #dc2626);
  font-size: 0.78rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cssForm[data-v-52ac1d62] {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 0.25rem 0;
}
.cssField[data-v-52ac1d62] {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.cssLabel[data-v-52ac1d62] {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--p-text-color);
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.cssRequired[data-v-52ac1d62] {
  color: var(--p-red-500, #ef4444);
  font-size: 0.85rem;
}
.cssOptional[data-v-52ac1d62] {
  font-weight: 400;
  color: var(--p-text-muted-color);
  font-size: 0.72rem;
}
.cssSpinner[data-v-52ac1d62] {
  font-size: 0.75rem;
  color: var(--p-text-muted-color);
}
.cssInput[data-v-52ac1d62] {
  height: 34px;
  padding: 0 0.65rem;
  border: 1px solid var(--p-inputtext-border-color, #d1d5db);
  border-radius: 6px;
  background: var(--p-inputtext-background, white);
  color: var(--p-inputtext-color, #374151);
  font-size: 0.875rem;
  outline: none;
  width: 100%;
  box-sizing: border-box;
  transition: border-color 0.12s, box-shadow 0.12s;
}
.cssInput[data-v-52ac1d62]:focus {
  border-color: var(--p-primary-400, #60a5fa);
  box-shadow: 0 0 0 1px var(--p-primary-200, #bfdbfe);
}
.cssInput[data-v-52ac1d62]:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.cssInputError[data-v-52ac1d62] {
  border-color: var(--p-red-400, #f87171) !important;
}
.cssSelect[data-v-52ac1d62] {
  appearance: auto;
  cursor: pointer;
}
.cssFieldError[data-v-52ac1d62] {
  font-size: 0.75rem;
  color: var(--p-red-600, #dc2626);
}
.cssSubmitError[data-v-52ac1d62] {
  font-size: 0.82rem;
  color: var(--p-red-600, #dc2626);
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.65rem;
  background: var(--p-red-50, #fef2f2);
  border: 1px solid var(--p-red-200, #fecaca);
  border-radius: 6px;
}
.cssFooter[data-v-52ac1d62] {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
}

.cssUid[data-v-887feb8a] {
  font-family: 'Fira Code Local', ui-monospace, monospace;
  font-size: 0.85em;
  letter-spacing: 0.01em;
}

.cssTable[data-v-d06749c2] {
  padding: 0;
  width: 100%;
}
.cssTable[data-v-d06749c2] .p-datatable-paginator-bottom {
  border: 0;
}
.cssInvalidProductIcon[data-v-d06749c2] {
  color: var(--p-rose-900);
  font-size: 1.25em;
  position: relative;
  top: 0.125em;
  margin-left: 0.25em;
}

/* firmware version cell */
.cssVersionDetails[data-v-d06749c2] {
  display: flex;
  flex-direction: column;
  gap: 0.125em;
  max-width: 10em;
  overflow: hidden;
}
.cssVersionDetailItem[data-v-d06749c2] {
  display: flex;
  gap: 0.375em;
  font-size: 0.85em;
  line-height: 1.3;
  min-width: 0;
}
.cssVersionDetailKey[data-v-d06749c2] {
  font-weight: 600;
  white-space: nowrap;
  flex-shrink: 0;
}
.cssVersionDetailValue[data-v-d06749c2] {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}
.cssVersionToggle[data-v-d06749c2] {
  background: none;
  border: none;
  color: var(--p-primary-color);
  cursor: pointer;
  font-size: 0.8em;
  padding: 0.125em 0;
  text-align: left;
}
.cssVersionToggle[data-v-d06749c2]:hover {
  text-decoration: underline;
}

/* issues cell */
.cssIssuesCell[data-v-d06749c2] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3em;
}
.cssIssueBadge[data-v-d06749c2] {
  font-size: 0.7rem;
  max-width: 8em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: default;
}
.cssIssuesMore[data-v-d06749c2] {
  font-size: 0.75rem;
  color: var(--p-text-muted-color);
}
.cssNoIssues[data-v-d06749c2] {
  color: var(--p-text-muted-color);
}

/* tags cell */
.cssTagsCell[data-v-d06749c2] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3em;
}
.cssTagBadge[data-v-d06749c2] {
  font-size: 0.7rem;
  max-width: 8em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: default;
}

/* action buttons */
.cssActionContainer[data-v-d06749c2] {
  display: flex;
  gap: 0.1em;
}
.cssActionBtn[data-v-d06749c2] {
  color: var(--p-text-muted-color) !important;
}
.cssActionBtn[data-v-d06749c2]:hover {
  color: var(--p-text-color) !important;
}


/* column selector */
.cssColumnMultiSelect[data-v-d06749c2] {
  color: var(--p-togglebutton-color);
  background: var(--p-togglebutton-background);
  padding: 0.3em 0.25em;
  height: 36px;
  width: 3.125em;
}
.cssColumnMultiSelect[data-v-d06749c2]:hover {
  background: var(--p-togglebutton-hover-background);
  color: var(--p-togglebutton-hover-color);
}
.cssColumnMultiSelect[data-v-d06749c2] .p-multiselect-dropdown-icon { font-size: 1.25em;
}
.cssColumnMultiSelect[data-v-d06749c2] .bui-icon                    { font-size: 1.25em; border-radius: 0;
}
.cssColumnMultiSelect[data-v-d06749c2] .p-multiselect-label-container { display: none;
}

.cssVersionTooltip.p-tooltip {
  max-width: 40em;
}

.cssToolBar[data-v-d8ee2365] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  margin-top: 1rem;
}
.cssToolBarLeft[data-v-d8ee2365] {
  display: flex;
  align-items: center;
  gap: 0.5em;
  flex: 1;
  min-width: 0;
}
.cssToolBarRight[data-v-d8ee2365] {
  display: flex;
  gap: 0.5em;
  align-items: center;
  justify-content: flex-end;
}
.cssToolBtn[data-v-d8ee2365] {
  color: var(--p-togglebutton-color);
  background: var(--p-togglebutton-background);
  padding: 0.3em 0.25em;
  height: 36px;
  width: 2.25rem;
  justify-content: center;
}
.cssToolBtn[data-v-d8ee2365]:hover {
  background: var(--p-togglebutton-hover-background);
  color: var(--p-togglebutton-hover-color);
}
.cssToolBtn[data-v-d8ee2365] .bui-icon {
  font-size: 1.1em;
  border-radius: 0;
}

/* status filter badge */
.cssFilterBadge[data-v-d8ee2365] {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.3rem 0.7rem;
  margin-bottom: 0.5rem;
  font-size: 0.82rem;
  font-weight: 500;
  background: var(--p-primary-50, #eff6ff);
  border: 1px solid var(--p-primary-200, #bfdbfe);
  border-radius: 1rem;
  color: var(--p-primary-700, #1d4ed8);
}
.cssFilterClear[data-v-d8ee2365] {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--p-primary-color);
  font-size: 0.8rem;
  padding: 0 0 0 0.25rem;
  display: flex;
  align-items: center;
  gap: 0.2rem;
}
.cssFilterBadge-enter-active[data-v-d8ee2365],
.cssFilterBadge-leave-active[data-v-d8ee2365] {
  transition: all 0.18s ease;
}
.cssFilterBadge-enter-from[data-v-d8ee2365],
.cssFilterBadge-leave-to[data-v-d8ee2365] {
  opacity: 0;
  transform: translateY(-4px);
}
.cssToolBtnRegister[data-v-d8ee2365] {
  width: auto;
  padding: 0 0.75rem;
  font-size: 0.82rem;
}
.cssDeleteUid[data-v-d8ee2365] {
  font-family: 'Fira Code Local', ui-monospace, monospace;
  font-size: 0.9em;
}


.mapModal[data-v-59eb7434] {
    margin: 0;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;

    z-index: 10;
    background-color: var(--bas-backdrop-bg);
}
.mapContainer[data-v-59eb7434] {
    position: relative;
    top: 10%;
    left: 5%;
    width: 90%;
    height: 80%;
    background-color: var(--bui-base-background-color);
    border: 1px solid var(--bui-base-foreground-color);
}
.map[data-v-59eb7434] {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.mapInputDialog[data-v-59eb7434] {
    position: absolute;
    top: 30px;
    left: 30px;
    width: 50%;
    padding: 15px;
    background-color: var(--bui-base-background-color);
    border: 1px solid var(--bui-base-foreground-color);
}
.mapInputContainer[data-v-59eb7434] {
    display: flex;
    align-items: center;
    width: 100%;
    height: 50px;
}
.mapInputPrompt[data-v-59eb7434] {
    font-size: 16px;
    margin-bottom: 5px;
}
#domAppInputContainer[data-v-59eb7434] {
    width: 70%;
    padding: 5px 0;
    margin-right: 10px;
}
.mapAddrInput[data-v-59eb7434] {
    font-size: 18px;
    width: 97%;
}
.mapInputButton[data-v-59eb7434] {
    display: flex;
    font-size: 18px;
    margin-right: 10px;
}

.device-css-scope[data-v-8bb7d493] {
        --property-width: 380px;
}
a[data-v-8bb7d493]:link, a[data-v-8bb7d493]:visited, a[data-v-8bb7d493]:hover, a[data-v-8bb7d493]:active {
        text-decoration: none;
}
.device-detail[data-v-8bb7d493] {
        font-size: 24px;
        font-weight: bold;
}
.device-button-row[data-v-8bb7d493] {
        display: flex;
        align-items: center;
        gap: 20px;
        margin: 20px;
}
.device-property-container[data-v-8bb7d493] {
        margin-left: 100px;
        padding: 10px 0px;
}
.device-property-row[data-v-8bb7d493] {
        margin-top: 20px;
        margin-bottom: 20px;
        width: var(--property-width);
}
.device-connected[data-v-8bb7d493] {
        /*
        color: green;
        */
        color: var(--bui-base-foreground-color);
}
.device-disconnected[data-v-8bb7d493] {
        /*
        color: #900C3F;
        */
        color: var(--bui-base-foreground-color);
}
.device-readonly[data-v-8bb7d493] {
        border-bottom: 2px solid #DDD;
}
.device-flex-container[data-v-8bb7d493] {
        display: flex;
        align-items: center;
        gap: 30px;
        margin-top: 50px;
        font-size: 30px;
}
.device-label[data-v-8bb7d493] {
        display: block;
        width: 170px;
        font-size: 22px;
        margin-bottom: 10px;
        font-weight: bold;
}
.device-label-row[data-v-8bb7d493] {
        display: flex;
        align-items: center;
        gap: 10px;
        margin-bottom: 5px;
}
.device-label-text[data-v-8bb7d493] {
        font-size: 22px;
        font-weight: bold;
}
.device-invalid-icon[data-v-8bb7d493] {
        display: inline;
        width: 20px;
        height: 20px;
        margin-left: 20px;
}
.device-invalid-location[data-v-8bb7d493] {
        font-size: 20px;
        color: red;
}
.device-value[data-v-8bb7d493] {
        display: block;
        width: var(--property-width);
        font-size: 20px;
        padding-left: 40px;
}
.device-textbox[data-v-8bb7d493] {
        display: block;
        width: var(--property-width);
        font-size: 20px;
}
.device-action-icon[data-v-8bb7d493] {
        width: 24px;
        height: 24px;
}
.device-action-message[data-v-8bb7d493] {
        font-size: 20px;
}
.device-message[data-v-8bb7d493] {
        display: flex;
        align-items: center;
        margin-top: 40px;
        gap: 10px;
        width: 600px;
}


.cssMapBaseBox[data-v-6a8a87eb] {
  width: 100%;
  height: 100%;
}
.cssAzureMapBox[data-v-6a8a87eb] {
  width: 100%;
  height: 100%;
}

.cssDeviceMapBox[data-v-c4518ced] {
  position: relative;
  width: 100%;
  height: 100%;
}
.cssDeviceMap[data-v-c4518ced] {
  width: 100%;
  height: 100%;
}
.cssSidePanel[data-v-c4518ced] {
  position: absolute;
  left: 1.5em;
  top: 1.5em;
  width: 18em;
  max-width: calc(100vw - 2em);
  border-radius: 1em;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  padding: 0.75em 1em;
  display: flex;
  flex-direction: column;
  gap: 0.5em;
  z-index: 10;
  overflow: hidden;
  transition: max-height 0.25s ease-out;

  background-color: rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(10px);
}
.cssSidePanelRowLeft[data-v-c4518ced] {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5em;
  flex: 1 1 0;
  min-width: 0;
}
.cssDeviceIdPvIconField[data-v-c4518ced] {
  width: 100%;
}
.cssDeviceIdPvInput[data-v-c4518ced] {
  --p-inputtext-padding-y: 0.6em;
  width: 100%;
}
.cssSidePanelControlRow[data-v-c4518ced] {
  display: flex;
  align-items: center;
  gap: 0.5em;
}
.cssSidePanelControlButton[data-v-c4518ced] {
  flex: 1;
}
.cssSidePanelMessage[data-v-c4518ced] {
  font-size: 0.9em;
  color: var(--p-text-color, #374151);
}

.cssDeviceMapPopup {
  padding: 1em;
}
.cssDeviceMapPopup .cssHide {
  opacity: 0;
}
.cssDeviceMapPopup .cssDevice {
  display: block;
  text-decoration: none;
  font-family: monospace;
  font-size: 1.25em;
  padding: 0.25em 0.5em;
  text-align: center;
  color: rgb(3, 105, 161);
  background-color: rgb(224, 242, 254);
  border-radius: 0.5em;
  cursor: pointer;
}
.cssDeviceMapPopup .cssDevice:hover {
  background-color: rgb(214, 232, 244);
}
.cssDeviceMapPopup .cssConnected {
  font-size: 1.15em;
  color: rgb(21, 168, 21);
  font-weight: bold;
  padding: 0.25em 0.5em;
  text-align: center;
}
.cssDeviceMapPopup .cssDisconnected,
.cssDeviceMapPopup .cssUnknown {
  font-size: 1.15em;
  color: rgb(71, 85, 105);
  font-weight: bold;
  text-align: center;
  padding: 0.25em 0.5em;
}
.cssDeviceMapPopup .cssSnr {
  font-size: 1.15em;
  text-align: center;
}
.cssDeviceMapPopup .cssAddress {
  font-size: 1.15em;
  text-align: center;
}
.cssDeviceMapPopup .cssSetCenterBtnContainer {
  display: flex;
  justify-content: center;
  margin-top: 0.5em;
  text-align: center;
}
.cssDeviceMapPopup .cssSetReferenceBtn {
  display: block;
  text-decoration: none;
  font-size: 1.25em;
  padding: 0.25em 0.5em;
  text-align: center;
  color: rgb(3, 105, 161);
  background-color: rgb(224, 242, 254);
  border-radius: 0.5em;
  border: none;
  cursor: pointer;
}
.cssDeviceMapPopup .cssSetReferenceBtn:hover {
  background-color: rgb(214, 232, 244);
}

.cssDeviceMap[data-v-f9ec5b74] {
  width: 100%;
  height: 100%;
}

.cssTimeRangePicker[data-v-d5e186d0] {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-shrink: 0;
}

/* ── Preset SelectButton ──────────────────────────────────────────────────── */
.cssPresets[data-v-d5e186d0] .p-togglebutton {
  height: 34px;
  padding: 0;
  font-size: 0.8rem;
  font-weight: 500;
  background: var(--p-surface-0, white);
  border-color: var(--p-content-border-color, #d1d5db);
  color: var(--p-text-color, #374151);
}
.cssPresets[data-v-d5e186d0] .p-togglebutton-content {
  padding: 0 0.65rem;
}
.cssPresets[data-v-d5e186d0] .p-togglebutton:not(.p-togglebutton-checked):hover {
  background: var(--p-surface-100, #f3f4f6);
  border-color: var(--p-primary-300, #93c5fd);
  color: var(--p-text-color, #374151);
}
.cssPresets[data-v-d5e186d0] .p-togglebutton.p-togglebutton-checked {
  background: var(--p-primary-50, #eff6ff);
  border-color: var(--p-primary-400, #60a5fa);
  color: var(--p-primary-700, #1d4ed8);
}
.cssPresets[data-v-d5e186d0] .p-togglebutton-checked .p-togglebutton-content {
  background: transparent;
  box-shadow: none;
}

/* ── Custom date button ───────────────────────────────────────────────────── */
.cssCustomWrap[data-v-d5e186d0] { position: relative; flex-shrink: 0;
}
.cssCustomBtn[data-v-d5e186d0] {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  height: 34px;
  padding: 0 0.65rem;
  border: 1px solid var(--p-content-border-color, #d1d5db);
  border-radius: 6px;
  background: var(--p-surface-0, white);
  color: var(--p-text-color, #374151);
  font-size: 0.82rem;
  font-weight: 500;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.12s, border-color 0.12s;
}
.cssCustomBtn[data-v-d5e186d0]:hover {
  background: var(--p-surface-100, #f3f4f6);
  border-color: var(--p-primary-300, #93c5fd);
}
.cssCustomBtnActive[data-v-d5e186d0] {
  background: var(--p-primary-50, #eff6ff);
  border-color: var(--p-primary-400, #60a5fa);
  color: var(--p-primary-700, #1d4ed8);
}
.cssCustomBtnActive[data-v-d5e186d0]:hover {
  background: var(--p-primary-100, #dbeafe);
  border-color: var(--p-primary-400, #60a5fa);
}
.cssCustomChevron[data-v-d5e186d0] { font-size: 0.6rem; opacity: 0.6;
}
.cssCustomBtnX[data-v-d5e186d0] {
  font-size: 0.65rem;
  opacity: 0.7;
  border-radius: 50%;
  padding: 0.1rem;
  margin-left: 0.1rem;
}
.cssCustomBtnX[data-v-d5e186d0]:hover { opacity: 1; background: var(--p-primary-100, #dbeafe);
}

/* ── Calendar dropdown (teleported to body) ───────────────────────────────── */
.cssDateDropdown[data-v-d5e186d0] {
  background: var(--p-surface-0, white);
  border: 1px solid var(--p-content-border-color, #d1d5db);
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
  padding: 0.3rem;
  overflow: visible;
}
.cssDateDropdown[data-v-d5e186d0] .p-datepicker {
  border: none;
  box-shadow: none;
  padding: 0;
}

.cssExplorer[data-v-2b3df89e] { display:flex; flex-direction:column; gap:0.75rem; height:100%; overflow:hidden;
}

/* ── Toolbar ──────────────────────────────────────────────────────────────── */
.cssToolBar[data-v-2b3df89e] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.cssToolBarLeft[data-v-2b3df89e] {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex: 1;
  min-width: 0;
  flex-wrap: wrap;
}
.cssToolBarRight[data-v-2b3df89e] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
}
.cssToolBarSeparator[data-v-2b3df89e] {
  width: 1px;
  align-self: stretch;
  min-height: 1.5rem;
  background: var(--p-content-border-color, rgba(0,0,0,.12));
  flex-shrink: 0;
}

/* ── Toolbar height normalization ─────────────────────────────────────────── */
.cssToolBarLeft[data-v-2b3df89e] .p-inputtext {
  height: 34px;
  font-size: 0.82rem;
  padding-top: 0;
  padding-bottom: 0;
}

/* ── Stats/Raw view toggle ────────────────────────────────────────────────── */
.cssViewToggle[data-v-2b3df89e] {
  display: flex;
  height: 34px;
  border: 1px solid var(--p-content-border-color, rgba(0,0,0,.15));
  border-radius: 6px;
  overflow: hidden;
  flex-shrink: 0;
}
.cssViewToggle button[data-v-2b3df89e] {
  display: inline-flex;
  align-items: center;
  height: 100%;
  background: var(--p-surface-0, #fff);
  border: none;
  cursor: pointer;
  padding: 0 0.65rem;
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1;
  color: var(--p-text-muted-color, #94a3b8);
}
.cssViewToggle button[data-v-2b3df89e]:not(:last-child) {
  border-right: 1px solid var(--p-content-border-color, rgba(0,0,0,.15));
}
.cssViewToggle button.cssViewToggleActive[data-v-2b3df89e] {
  background: rgba(14,165,233,.1);
  color: rgb(14,165,233);
}

/* ── Filter controls ──────────────────────────────────────────────────────── */
.cssFilterGroup[data-v-2b3df89e] { display:flex; align-items:center; gap:0.35rem; flex-wrap:wrap;
}
.cssScopeLabel[data-v-2b3df89e] { font-size:0.72rem; font-weight:600; color:var(--p-text-muted-color,#94a3b8); text-transform:uppercase; letter-spacing:.05em; flex-shrink:0;
}



/* ── Compare panel ────────────────────────────────────────────────────────── */
.cssComparePanel[data-v-2b3df89e] { display:flex; flex-direction:column; flex-shrink:0; box-shadow:0 1px 3px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.05); border-radius:8px; background:var(--p-surface-50,#f8fafc); overflow:hidden;
}
.cssComparePanelOpen[data-v-2b3df89e] { height:280px;
}
.cssComparePanelBar[data-v-2b3df89e] { display:flex; align-items:center; gap:.5rem; padding:.45rem .75rem; background:var(--p-surface-0,#fff); flex-shrink:0;
}
.cssComparePanelBarOpen[data-v-2b3df89e] { border-bottom:1px solid var(--p-content-border-color,rgba(0,0,0,.07));
}
.cssComparePanelHint[data-v-2b3df89e] { font-size:.78rem; color:var(--p-text-muted-color,#94a3b8); display:flex; align-items:center; gap:.4rem; flex:1;
}
.cssComparePanelTitle[data-v-2b3df89e] { font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--p-text-muted-color,#94a3b8); flex-shrink:0;
}
.cssComparePanelChips[data-v-2b3df89e] { display:flex; flex-wrap:nowrap; overflow-x:auto; gap:.4rem; flex:1; min-width:0; align-items:center; scrollbar-width:none;
}
.cssComparePanelChips[data-v-2b3df89e]::-webkit-scrollbar { display:none;
}
.cssPinBtn[data-v-2b3df89e] { display:inline-flex; align-items:center; justify-content:center; width:1.55rem; height:1.55rem; background:none; border:1px solid var(--p-content-border-color,rgba(0,0,0,.15)); border-radius:4px; cursor:pointer; font-size:.8rem; color:var(--p-text-muted-color,#94a3b8); transition:background .1s,color .1s,border-color .1s; line-height:1; flex-shrink:0;
}
.cssPinBtn[data-v-2b3df89e]:hover { background:rgba(14,165,233,.1); color:rgb(14,165,233); border-color:rgba(14,165,233,.4);
}
.cssPinBtnActive[data-v-2b3df89e] { border-color:currentColor; font-size:.65rem;
}
.cssMetricName[data-v-2b3df89e] { font-size:.85rem; color:var(--p-text-muted-color,#64748b); transition:color .1s;
}

/* ── Split panel ──────────────────────────────────────────────────────────── */
.cssBody[data-v-2b3df89e] { display:grid; grid-template-columns:256px 1fr; flex:1; min-height:0; border-radius:8px; overflow:hidden; box-shadow:0 1px 4px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.07);
}

/* ── Sidebar ──────────────────────────────────────────────────────────────── */
.cssSidebar[data-v-2b3df89e] { display:flex; flex-direction:column; border-right:1px solid var(--p-content-border-color,rgba(0,0,0,.1)); background:var(--p-surface-50,#f8fafc); overflow:hidden;
}
.cssNavHeader[data-v-2b3df89e] {
  padding: 0.55rem 0.75rem 0.4rem;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--p-text-muted-color, #94a3b8);
}
.cssNavSearch[data-v-2b3df89e] { padding:0.4rem 0.75rem;
}
.cssNavDivider[data-v-2b3df89e] { margin:0.5rem 0.75rem 0.1rem; padding-top:0.5rem; border-top:1px solid var(--p-content-border-color,rgba(0,0,0,.08)); font-size:0.63rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--p-text-muted-color,#94a3b8);
}
.cssNavSearchInput[data-v-2b3df89e] { width:100%; height:34px; font-size:0.82rem; padding-top:0; padding-bottom:0;
}
.cssNavSummary[data-v-2b3df89e] { padding:.35rem .75rem; font-size:.69rem; color:var(--p-text-muted-color,#94a3b8); display:flex; align-items:center; gap:.3rem; flex-wrap:wrap; border-bottom:1px solid var(--p-content-border-color,rgba(0,0,0,.06));
}
.cssNavSumDot[data-v-2b3df89e]  { opacity:.4;
}
.cssNavSkeletons[data-v-2b3df89e] { padding:0.75rem; display:flex; flex-direction:column; gap:0.75rem;
}
.cssNavSkeletonRow[data-v-2b3df89e] { display:flex; align-items:center; justify-content:space-between; gap:0.5rem;
}
.cssNavEmpty[data-v-2b3df89e] { display:flex; flex-direction:column; align-items:center; gap:.4rem; padding:2rem .75rem; color:var(--p-text-muted-color,#94a3b8); font-size:.8rem;
}
.cssNavEmptyIcon[data-v-2b3df89e] { font-size:1.4rem; opacity:.3;
}
.cssNavList[data-v-2b3df89e] { flex:1; overflow-y:auto; padding:0.35rem 0; display:flex; flex-direction:column;
}

/* Category row: outer div holds chevron btn + text btn + sparkline + badge */
.cssNavCatRow[data-v-2b3df89e] { display:flex; align-items:center; width:100%; gap:0; padding:0; background:transparent; transition:background .12s;
}
.cssNavCatRow[data-v-2b3df89e]:hover { background:var(--p-surface-100,#f1f5f9);
}
.cssNavCatActive[data-v-2b3df89e] { background:rgba(14,165,233,.08) !important;
}
.cssNavCatActive .cssNavCatBtn[data-v-2b3df89e] { color:var(--p-primary-color,rgb(14,165,233));
}
.cssNavChevronBtn[data-v-2b3df89e] { display:flex; align-items:center; justify-content:center; width:1.85rem; height:2rem; background:transparent; border:none; cursor:pointer; flex-shrink:0; color:var(--p-text-muted-color,#94a3b8); font-size:.65rem; transition:background .1s;
}
.cssNavChevronBtn[data-v-2b3df89e]:hover { background:rgba(14,165,233,.12); color:var(--p-primary-color,rgb(14,165,233));
}
.cssNavCircleIcon[data-v-2b3df89e] { font-size:.45rem; width:1.85rem; text-align:center; flex-shrink:0; color:var(--p-text-muted-color,#94a3b8); pointer-events:none;
}
.cssNavCatBtn[data-v-2b3df89e] { flex:1; min-width:0; display:flex; align-items:center; background:transparent; border:none; cursor:pointer; text-align:left; padding:.42rem .25rem .42rem 0;
}
.cssNavCatName[data-v-2b3df89e] { flex:1; font-size:.83rem; font-weight:500; color:var(--p-text-color,#374151); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}

/* Standalone Raw Documents button (no outer div wrapper) */
.cssNavCatRowBtn[data-v-2b3df89e] { display:flex; align-items:center; width:100%; gap:0.4rem; padding:0.42rem 0.75rem; background:transparent; border:none; cursor:pointer; text-align:left; font-size:0.83rem; font-weight:500; color:var(--p-text-color,#374151); transition:background .12s;
}
.cssNavCatRowBtn[data-v-2b3df89e]:hover { background:var(--p-surface-100,#f1f5f9);
}
.cssNavCatRowBtn.cssNavCatActive[data-v-2b3df89e] { background:rgba(14,165,233,.08) !important; color:var(--p-primary-color,rgb(14,165,233));
}
.cssNavToggleIcon[data-v-2b3df89e] { font-size:0.65rem; width:0.85rem; flex-shrink:0; color:var(--p-text-muted-color,#94a3b8);
}
.cssNavSparkSvg[data-v-2b3df89e] { display:block; width:72px; height:18px; flex-shrink:0; opacity:.7;
}
.cssSparklineFill[data-v-2b3df89e] { fill:rgba(14,165,233,.12); stroke:none;
}
.cssSparklineLine[data-v-2b3df89e] { fill:none; stroke:rgb(14,165,233); stroke-width:1.5; vector-effect:non-scaling-stroke;
}
.cssNavSecRow[data-v-2b3df89e] { display:flex; align-items:center; width:100%; gap:0.45rem; padding:0.32rem 0.75rem 0.32rem 2rem; background:transparent; border:none; cursor:pointer; text-align:left; font-size:0.8rem; color:var(--p-text-color,#374151); transition:background .12s;
}
.cssNavSecRow[data-v-2b3df89e]:hover { background:var(--p-surface-100,#f1f5f9);
}
.cssNavSecActive[data-v-2b3df89e]    { background:rgba(14,165,233,.08) !important; color:var(--p-primary-color,rgb(14,165,233)); font-weight:600;
}
.cssNavSecDot[data-v-2b3df89e]  { display:inline-block; width:5px; height:5px; border-radius:50%; background:currentColor; flex-shrink:0; opacity:.5;
}
.cssNavSecName[data-v-2b3df89e] { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.cssNavSecBadge[data-v-2b3df89e] { font-size:0.68rem; color:var(--p-text-muted-color,#94a3b8); flex-shrink:0;
}
.cssBadge[data-v-2b3df89e] { display:inline-flex; align-items:center; justify-content:center; min-width:1.4rem; height:1.2rem; padding:0 0.3rem; border-radius:9px; font-size:0.64rem; font-weight:700; background:var(--p-surface-200,#e2e8f0); color:var(--p-text-muted-color,#64748b); flex-shrink:0;
}
.cssRawBadge[data-v-2b3df89e] { background:rgba(99,102,241,.12); color:rgb(99,102,241);
}

/* ── Main pane ────────────────────────────────────────────────────────────── */
.cssMain[data-v-2b3df89e] { display:flex; flex-direction:column; gap:1.25rem; padding:1.25rem 1.5rem 0; overflow:hidden; background:var(--p-surface-0,#fff);
}
.cssMainScroll[data-v-2b3df89e] { flex:1; overflow-y:auto; min-height:0; display:flex; flex-direction:column; gap:1.25rem; padding-bottom:1.5rem;
}
.cssStatsFill[data-v-2b3df89e] { flex:1; min-height:0; display:flex; flex-direction:column; gap:1.25rem; overflow:hidden;
}
.cssWelcome[data-v-2b3df89e] { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:0.75rem; padding:4rem 2rem; color:var(--p-text-muted-color,#94a3b8);
}
.cssWelcomeIcon[data-v-2b3df89e] { font-size:3.5rem; opacity:.25;
}
.cssWelcomeText[data-v-2b3df89e] { font-size:.95rem; margin:0;
}
.cssWelcomeHint[data-v-2b3df89e] { font-size:.82rem; margin:0; opacity:.7;
}
.cssMainHeader[data-v-2b3df89e] { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:0.5rem;
}
.cssHeaderRight[data-v-2b3df89e] { display:flex; align-items:center; gap:.5rem;
}
.cssBreadcrumb[data-v-2b3df89e] { display:flex; align-items:center; gap:0.4rem; font-size:1rem; font-weight:600;
}
.cssBreadCatBtn[data-v-2b3df89e] { background:none; border:none; padding:0; cursor:default; font-size:1rem; font-weight:600; color:var(--p-text-muted-color,#64748b);
}
.cssBreadCatClickable[data-v-2b3df89e] { cursor:pointer;
}
.cssBreadCatClickable[data-v-2b3df89e]:hover { color:var(--p-primary-color,rgb(14,165,233)); text-decoration:underline;
}
.cssBreadSep[data-v-2b3df89e] { font-size:.85rem; opacity:.4;
}
.cssHeaderTags[data-v-2b3df89e] { display:flex; gap:0.4rem; flex-wrap:wrap;
}

/* ── Chart area ───────────────────────────────────────────────────────────── */
.cssChartArea[data-v-2b3df89e] { position:relative; display:flex; flex-direction:column; min-height:280px; box-shadow:0 1px 3px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.05); border-radius:8px; background:var(--p-surface-50,#f8fafc); overflow:hidden;
}
.cssChartChips[data-v-2b3df89e] { display:flex; flex-wrap:wrap; align-items:center; gap:.4rem; padding:.6rem .75rem .5rem; border-bottom:1px solid var(--p-content-border-color,rgba(0,0,0,.07)); background:var(--p-surface-0,#fff); flex-shrink:0;
}
.cssMetricChip[data-v-2b3df89e] { display:inline-flex; align-items:center; gap:.35rem; padding:.2rem .5rem .2rem .4rem; background:var(--p-surface-0,#fff); border:1px solid color-mix(in srgb, var(--chip-color) 40%, transparent); border-radius:999px; font-size:.76rem;
}
.cssMetricChipDot[data-v-2b3df89e] { width:8px; height:8px; border-radius:50%; background:var(--chip-color); flex-shrink:0;
}
.cssMetricChipLabel[data-v-2b3df89e] { color:var(--p-text-color,#1e293b); font-weight:500; max-width:12rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.cssMetricChipX[data-v-2b3df89e] { background:none; border:none; cursor:pointer; padding:0 0 0 .15rem; font-size:.9rem; line-height:1; color:var(--p-text-muted-color,#94a3b8); display:flex; align-items:center;
}
.cssMetricChipX[data-v-2b3df89e]:hover { color:var(--p-text-color,#1e293b);
}
.cssClearMetricsBtn[data-v-2b3df89e] { background:none; border:none; cursor:pointer; font-size:.72rem; color:var(--p-text-muted-color,#94a3b8); display:flex; align-items:center; gap:.25rem; padding:.2rem .35rem; border-radius:4px; margin-left:auto;
}
.cssClearMetricsBtn[data-v-2b3df89e]:hover { background:var(--p-surface-100,#f1f5f9); color:var(--p-text-color,#374151);
}
.cssChartCenter[data-v-2b3df89e] { flex:1; display:flex; align-items:center; justify-content:center; min-height:240px;
}
.cssChartHint[data-v-2b3df89e] { flex-direction:column; gap:.5rem; color:var(--p-text-muted-color,#94a3b8); font-size:.9rem;
}
.cssHintIcon[data-v-2b3df89e] { font-size:1.5rem; opacity:.4;
}
.cssChartCanvas[data-v-2b3df89e] { flex:1; width:100% !important; min-height:240px; padding:.75rem;
}

/* ── Metrics table ────────────────────────────────────────────────────────── */
.cssTableSection[data-v-2b3df89e] { display:flex; flex-direction:column; gap:.5rem; flex:1; min-height:0; overflow:hidden;
}
.cssTableScroll[data-v-2b3df89e] { flex:1; overflow-y:auto; min-height:0; overflow-x:auto;
}
.cssTableScroll[data-v-2b3df89e] .p-datatable-table { table-layout:fixed; min-width:100%;
}
.cssTableTitleRow[data-v-2b3df89e] { display:flex; align-items:center; justify-content:space-between; gap:.75rem;
}
.cssTableTitle[data-v-2b3df89e] { font-size:.72rem; font-weight:600; text-transform:uppercase; letter-spacing:.06em; color:var(--p-text-muted-color,#94a3b8);
}
.cssMetricSearch[data-v-2b3df89e] { width:14rem;
}

/* Group header row */
[data-v-2b3df89e] tr:has(.cssGroupHeader) { background:var(--p-surface-100,#f1f5f9) !important;
}
[data-v-2b3df89e] tr:has(.cssGroupHeader) > td { padding:0 !important; border-top:2px solid rgba(14,165,233,.3) !important;
}
.cssGroupHeader[data-v-2b3df89e] { display:flex; align-items:center; gap:.6rem; padding:.5rem .75rem; border-left:3px solid var(--p-primary-color,rgb(14,165,233));
}
.cssGroupIcon[data-v-2b3df89e]  { font-size:.72rem; color:var(--p-primary-color,rgb(14,165,233)); flex-shrink:0;
}
.cssGroupLabel[data-v-2b3df89e] { font-size:.84rem; font-weight:700; color:var(--p-text-color,#1e293b); letter-spacing:.01em; flex:1;
}
.cssGroupCount[data-v-2b3df89e] { font-size:.72rem; color:var(--p-text-muted-color,#94a3b8);
}

/* Pinned metric rows — colored left border + subtle tint matching chart series color */
[data-v-2b3df89e] tr.cssRowPinned td:first-child { box-shadow: inset 3px 0 0 var(--pin-row-color);
}
[data-v-2b3df89e] tr.pin0 { --pin-row-color: rgb(14,165,233);  background: rgba(14,165,233,.05)  !important;
}
[data-v-2b3df89e] tr.pin1 { --pin-row-color: rgb(249,115,22);  background: rgba(249,115,22,.05)  !important;
}
[data-v-2b3df89e] tr.pin2 { --pin-row-color: rgb(34,197,94);   background: rgba(34,197,94,.05)   !important;
}
[data-v-2b3df89e] tr.pin3 { --pin-row-color: rgb(168,85,247);  background: rgba(168,85,247,.05)  !important;
}
[data-v-2b3df89e] tr.pin4 { --pin-row-color: rgb(239,68,68);   background: rgba(239,68,68,.05)   !important;
}

/* ── Raw browser ──────────────────────────────────────────────────────────── */
.cssRawHeader[data-v-2b3df89e] { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.75rem; padding-bottom:.75rem; border-bottom:1px solid var(--p-content-border-color,rgba(0,0,0,.08));
}
.cssRawHeaderLeft[data-v-2b3df89e] { display:flex; align-items:center; gap:.75rem;
}
.cssRawCatChip[data-v-2b3df89e] { display:inline-flex; align-items:center; gap:.22rem; padding:.1rem .4rem; background:var(--p-primary-50,#eff6ff); border:1px solid var(--p-primary-200,#bfdbfe); border-radius:4px; font-size:.78rem;
}
.cssRawCatKey[data-v-2b3df89e] { font-weight:700; color:var(--p-primary-500,#3b82f6); font-size:.67rem; text-transform:uppercase;
}
.cssRawCatVal[data-v-2b3df89e] { color:var(--p-primary-900,#1e3a8a); font-weight:500;
}
.cssRawCatX[data-v-2b3df89e] { background:none; border:none; cursor:pointer; color:var(--p-primary-400,#60a5fa); font-size:.8rem; padding:0; line-height:1;
}
.cssRawCatX[data-v-2b3df89e]:hover { color:var(--p-primary-700,#1d4ed8);
}
.cssRawIcon[data-v-2b3df89e] { font-size:1.5rem; color:rgb(99,102,241); opacity:.8;
}
.cssRawTitle[data-v-2b3df89e] { font-size:1rem; font-weight:600;
}
.cssRawSubtitle[data-v-2b3df89e] { font-size:.75rem; color:var(--p-text-muted-color,#94a3b8); font-family:monospace;
}
.cssRawStats[data-v-2b3df89e] { display:flex; align-items:center; gap:.75rem; font-size:.82rem; color:var(--p-text-muted-color,#64748b);
}
.cssRawCount[data-v-2b3df89e] { font-weight:500;
}
.cssRawCountNote[data-v-2b3df89e] { font-weight:400; opacity:.7;
}
.cssRawTable[data-v-2b3df89e] { width:100%;
}
.cssTimestamp[data-v-2b3df89e] { font-size:.83rem; font-variant-numeric:tabular-nums;
}
.cssMonoCell[data-v-2b3df89e]  { font-family:monospace; font-size:.8rem;
}
.cssHashCell[data-v-2b3df89e]  { font-family:monospace; font-size:.78rem; color:var(--p-text-muted-color,#94a3b8);
}
.cssEmptyCell[data-v-2b3df89e] { display:block; text-align:center; color:var(--p-text-muted-color,#94a3b8); font-size:.85rem;
}

/* ── Expanded row ─────────────────────────────────────────────────────────── */
.cssExpandedDoc[data-v-2b3df89e] { padding:.75rem 1rem 1rem; background:var(--p-surface-50,#f9fafb); border-top:1px solid var(--p-content-border-color,rgba(0,0,0,.06));
}
.cssDocMeta[data-v-2b3df89e] { display:flex; align-items:center; flex-wrap:wrap; gap:1rem; margin-bottom:.75rem; font-size:.8rem;
}
.cssDocMetaItem[data-v-2b3df89e] { display:flex; align-items:center; gap:.4rem;
}
.cssDocMetaLabel[data-v-2b3df89e] { font-size:.68rem; font-weight:600; text-transform:uppercase; letter-spacing:.05em; color:var(--p-text-muted-color,#94a3b8);
}
.cssDocCopyBtn[data-v-2b3df89e] { margin-left:auto;
}
.cssDocLoadingRow[data-v-2b3df89e] { display:flex; align-items:center; gap:.75rem; padding:.75rem 0; color:var(--p-text-muted-color,#94a3b8); font-size:.83rem;
}
.cssDocTable[data-v-2b3df89e] { overflow-x:auto;
}

/* ── JSON nested table ────────────────────────────────────────────────────── */
[data-v-2b3df89e] .jt-root { width:100%; border-collapse:collapse;
}
[data-v-2b3df89e] .jt-root > tbody > tr:nth-child(even) { background:rgba(0,0,0,.018);
}
[data-v-2b3df89e] .jt-root > tbody > tr > .jt-k { width:160px; font-size:.78rem; font-weight:600; color:var(--p-text-muted-color,#64748b); padding:.38rem .75rem .38rem 0; vertical-align:top; white-space:nowrap;
}
[data-v-2b3df89e] .jt-root > tbody > tr > .jt-v { padding:.3rem 0; vertical-align:top;
}
[data-v-2b3df89e] .jt:not(.jt-root) { width:100%; border-collapse:collapse; border-left:2px solid var(--p-surface-200,#e2e8f0); padding-left:.5rem;
}
[data-v-2b3df89e] .jt:not(.jt-root) .jt-k { font-size:.76rem; font-weight:500; color:var(--p-text-muted-color,#64748b); padding:.25rem .5rem .25rem 0; white-space:nowrap; vertical-align:top;
}
[data-v-2b3df89e] .jt:not(.jt-root) .jt-v { padding:.22rem 0; vertical-align:top;
}
[data-v-2b3df89e] .jt-indexed { border-collapse:collapse;
}
[data-v-2b3df89e] .jt-indexed .jt-idx { font-size:.7rem; color:var(--p-text-muted-color,#9ca3af); text-align:right; padding:.2rem .5rem .2rem 0; vertical-align:top; min-width:1.5rem; font-family:monospace;
}
[data-v-2b3df89e] .jt-indexed .jt-td  { padding:.2rem 0; vertical-align:top;
}
[data-v-2b3df89e] .jt-grid-wrap { overflow-x:auto; border:1px solid var(--p-content-border-color,rgba(0,0,0,.08)); border-radius:6px;
}
[data-v-2b3df89e] .jt-grid { border-collapse:collapse; min-width:100%; font-size:.78rem;
}
[data-v-2b3df89e] .jt-grid thead tr { background:var(--p-surface-100,#f1f5f9); border-bottom:2px solid var(--p-content-border-color,rgba(0,0,0,.1));
}
[data-v-2b3df89e] .jt-th { padding:.3rem .6rem; text-align:left; font-size:.72rem; font-weight:600; text-transform:uppercase; letter-spacing:.04em; color:var(--p-text-muted-color,#64748b); white-space:nowrap;
}
[data-v-2b3df89e] .jt-td { padding:.28rem .6rem; vertical-align:top; border-top:1px solid var(--p-surface-100,#f1f5f9);
}
[data-v-2b3df89e] .jt-grid tbody tr:hover .jt-td { background:rgba(14,165,233,.04);
}
[data-v-2b3df89e] .jt-more-rows { padding:.3rem .6rem; font-size:.74rem; font-style:italic; color:var(--p-text-muted-color,#94a3b8);
}
[data-v-2b3df89e] .jt-num  { color:#1d4ed8; font-variant-numeric:tabular-nums; font-size:.82rem;
}
[data-v-2b3df89e] .jt-str  { color:#166534;
}
[data-v-2b3df89e] .jt-true { color:#15803d; font-weight:600;
}
[data-v-2b3df89e] .jt-false{ color:#b91c1c; font-weight:600;
}
[data-v-2b3df89e] .jt-null { color:#9ca3af; font-style:italic;
}
[data-v-2b3df89e] .jt-muted{ color:#9ca3af; font-size:.78rem;
}
[data-v-2b3df89e] .jt-chips     { display:flex; flex-wrap:wrap; gap:.25rem;
}
[data-v-2b3df89e] .jt-chip      { display:inline-block; padding:.1rem .45rem; background:var(--p-surface-100,#f1f5f9); border:1px solid var(--p-surface-200,#e2e8f0); border-radius:4px; font-size:.74rem; color:var(--p-text-color,#374151); font-variant-numeric:tabular-nums;
}
[data-v-2b3df89e] .jt-chip-more { background:rgba(14,165,233,.08); border-color:rgba(14,165,233,.2); color:rgb(14,165,233);
}

/* ── Full document dialog ─────────────────────────────────────────────────── */
.cssDialogTopBar[data-v-2b3df89e]  { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.6rem; margin-bottom:.85rem;
}
.cssDialogTags[data-v-2b3df89e]    { display:flex; flex-wrap:wrap; gap:.4rem; align-items:center;
}
.cssDialogActions[data-v-2b3df89e] { display:flex; align-items:center; gap:.5rem;
}
.cssDocTableDialog[data-v-2b3df89e] { overflow:auto; max-height:calc(90vh - 12rem);
}
.cssJsonPreFull[data-v-2b3df89e] { margin:0; font-family:'Cascadia Code','Fira Code',Consolas,monospace; font-size:.78rem; line-height:1.55; white-space:pre; overflow:auto; max-height:calc(90vh-12rem); background:var(--p-surface-50,#f9fafb); border:1px solid var(--p-content-border-color,rgba(0,0,0,.08)); border-radius:6px; padding:1rem 1.25rem; tab-size:2;
}
[data-v-2b3df89e] .jk   { color:#7c3aed;
}
[data-v-2b3df89e] .js   { color:#15803d;
}
[data-v-2b3df89e] .jnum { color:#2563eb;
}
[data-v-2b3df89e] .jb   { color:#c2410c;
}
[data-v-2b3df89e] .jn   { color:#9ca3af;
}
.cssRawPaginator[data-v-2b3df89e] { border-top:1px solid var(--p-content-border-color,rgba(0,0,0,.08)); padding-top:.5rem;
}

/* ── Custom visualizers ───────────────────────────────────────────────────── */
[data-v-2b3df89e] .viz-sec           { margin-bottom:1.1rem;
}
[data-v-2b3df89e] .viz-sec:last-child{ margin-bottom:0;
}
[data-v-2b3df89e] .viz-sec-hdr       { font-size:.67rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--p-text-muted-color,#64748b); margin-bottom:.5rem;
}
[data-v-2b3df89e] .viz-table-wrap { overflow-x:auto; border:1px solid var(--p-content-border-color,rgba(0,0,0,.08)); border-radius:6px;
}
[data-v-2b3df89e] .viz-table      { width:100%; border-collapse:collapse; font-size:.81rem;
}
[data-v-2b3df89e] .viz-table th   { padding:.28rem .6rem; text-align:left; font-size:.69rem; font-weight:600; text-transform:uppercase; letter-spacing:.04em; color:var(--p-text-muted-color,#64748b); background:var(--p-surface-100,#f1f5f9); border-bottom:2px solid var(--p-content-border-color,rgba(0,0,0,.1)); white-space:nowrap;
}
[data-v-2b3df89e] .viz-table td   { padding:.27rem .6rem; border-top:1px solid var(--p-surface-100,#f1f5f9); vertical-align:middle;
}
[data-v-2b3df89e] .viz-table tr:hover td { background:rgba(14,165,233,.025);
}
[data-v-2b3df89e] .viz-tr-conn td { background:rgba(14,165,233,.055) !important; font-weight:500;
}
[data-v-2b3df89e] .viz-num        { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap;
}
[data-v-2b3df89e] .viz-mode-cell  { font-size:.73rem; color:var(--p-text-muted-color,#64748b);
}
[data-v-2b3df89e] .viz-muted-cell { text-align:center; padding:.75rem; color:var(--p-text-muted-color,#94a3b8); font-style:italic;
}
[data-v-2b3df89e] .viz-star       { color:var(--p-primary-color,rgb(14,165,233)); margin-right:.25rem;
}
[data-v-2b3df89e] .viz-ap-ssid    { font-weight:500;
}
[data-v-2b3df89e] .viz-alert      { color:#dc2626 !important; font-weight:600;
}
[data-v-2b3df89e] .viz-bar-wrap   { display:inline-flex; height:8px; width:100px; background:var(--p-surface-200,#e2e8f0); border-radius:4px; overflow:hidden; vertical-align:middle;
}
[data-v-2b3df89e] .viz-bar-narrow { height:6px;
}
[data-v-2b3df89e] .viz-bar-cpu    { width:180px; height:10px;
}
[data-v-2b3df89e] .viz-bar-fill   { height:100%; border-radius:4px; min-width:2px; transition:width .25s;
}
[data-v-2b3df89e] .viz-bar-label  { display:inline-block; margin-left:.4rem; font-size:.74rem; font-variant-numeric:tabular-nums; vertical-align:middle; color:var(--p-text-muted-color,#64748b);
}
[data-v-2b3df89e] .viz-sig-cell   { min-width:120px;
}
[data-v-2b3df89e] .vsig-exc  { color:#16a34a;
}
[data-v-2b3df89e] .vsig-good { color:#65a30d;
}
[data-v-2b3df89e] .vsig-fair { color:#ca8a04;
}
[data-v-2b3df89e] .vsig-poor { color:#ea580c;
}
[data-v-2b3df89e] .vsig-bad  { color:#dc2626;
}
[data-v-2b3df89e] .viz-bar-fill.vsig-exc  { background:#4ade80;
}
[data-v-2b3df89e] .viz-bar-fill.vsig-good { background:#a3e635;
}
[data-v-2b3df89e] .viz-bar-fill.vsig-fair { background:#facc15;
}
[data-v-2b3df89e] .viz-bar-fill.vsig-poor { background:#fb923c;
}
[data-v-2b3df89e] .viz-bar-fill.vsig-bad  { background:#f87171;
}
[data-v-2b3df89e] .viz-bar-fill.vbusy-high { background:#f87171;
}
[data-v-2b3df89e] .viz-bar-fill.vbusy-med  { background:#fbbf24;
}
[data-v-2b3df89e] .viz-bar-fill.vbusy-low  { background:#6ee7b7;
}
[data-v-2b3df89e] .vcpu-high { color:#dc2626;
}
[data-v-2b3df89e] .vcpu-med  { color:#ca8a04;
}
[data-v-2b3df89e] .vcpu-low  { color:#16a34a;
}
[data-v-2b3df89e] .viz-bar-fill.vcpu-high { background:#f87171;
}
[data-v-2b3df89e] .viz-bar-fill.vcpu-med  { background:#fbbf24;
}
[data-v-2b3df89e] .viz-bar-fill.vcpu-low  { background:#86efac;
}
[data-v-2b3df89e] .viz-conn-card      { border:1px solid var(--p-content-border-color,rgba(0,0,0,.1)); border-radius:8px; padding:.75rem 1rem; background:var(--p-surface-0,#fff);
}
[data-v-2b3df89e] .viz-conn-top       { display:flex; align-items:center; gap:.75rem; margin-bottom:.65rem;
}
[data-v-2b3df89e] .viz-conn-ssid-block{ flex:1; min-width:0;
}
[data-v-2b3df89e] .viz-conn-ssid      { display:block; font-size:.98rem; font-weight:700; line-height:1.2; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
[data-v-2b3df89e] .viz-conn-bssid     { display:block; font-size:.73rem; font-family:monospace; color:var(--p-text-muted-color,#94a3b8); margin-top:.1rem;
}
[data-v-2b3df89e] .viz-wifi-bars      { display:flex; align-items:flex-end; gap:2px; height:24px; flex-shrink:0;
}
[data-v-2b3df89e] .vwb                { display:block; width:5px; border-radius:2px 2px 0 0; background:var(--p-surface-200,#e2e8f0);
}
[data-v-2b3df89e] .v1{height:6px;}[data-v-2b3df89e] .v2{height:10px;}[data-v-2b3df89e] .v3{height:15px;}[data-v-2b3df89e] .v4{height:22px;}
[data-v-2b3df89e] .viz-wifi-bars.vsig-exc  .vwb { background:#4ade80;
}
[data-v-2b3df89e] .viz-wifi-bars.vsig-good .vwb { background:#a3e635;
}
[data-v-2b3df89e] .viz-wifi-bars.vsig-good .v4  { background:var(--p-surface-200,#e2e8f0);
}
[data-v-2b3df89e] .viz-wifi-bars.vsig-fair .vwb { background:#facc15;
}
[data-v-2b3df89e] .viz-wifi-bars.vsig-fair .v3 { background:var(--p-surface-200,#e2e8f0);
}
[data-v-2b3df89e] .viz-wifi-bars.vsig-poor .vwb { background:#fb923c;
}
[data-v-2b3df89e] .viz-wifi-bars.vsig-poor .v2 { background:var(--p-surface-200,#e2e8f0);
}
[data-v-2b3df89e] .viz-wifi-bars.vsig-bad  .vwb { background:var(--p-surface-200,#e2e8f0);
}
[data-v-2b3df89e] .viz-wifi-bars.vsig-bad  .v1  { background:#f87171;
}
[data-v-2b3df89e] .viz-sig-badge           { display:inline-flex; align-items:center; padding:.2rem .65rem; border-radius:999px; font-size:.75rem; font-weight:600; flex-shrink:0;
}
[data-v-2b3df89e] .viz-sig-badge.vsig-exc  { background:#dcfce7; color:#15803d;
}
[data-v-2b3df89e] .viz-sig-badge.vsig-good { background:#ecfccb; color:#4d7c0f;
}
[data-v-2b3df89e] .viz-sig-badge.vsig-fair { background:#fef9c3; color:#854d0e;
}
[data-v-2b3df89e] .viz-sig-badge.vsig-poor { background:#ffedd5; color:#9a3412;
}
[data-v-2b3df89e] .viz-sig-badge.vsig-bad  { background:#fee2e2; color:#991b1b;
}
[data-v-2b3df89e] .viz-conn-meta { display:flex; flex-wrap:wrap; gap:.35rem;
}
[data-v-2b3df89e] .viz-kv        { display:inline-flex; align-items:stretch; border:1px solid var(--p-surface-200,#e2e8f0); border-radius:5px; overflow:hidden; font-size:.75rem; line-height:1;
}
[data-v-2b3df89e] .viz-kv-k      { padding:.2rem .4rem; background:var(--p-surface-100,#f1f5f9); color:var(--p-text-muted-color,#64748b); font-weight:500;
}
[data-v-2b3df89e] .viz-kv-v      { padding:.2rem .45rem; color:var(--p-text-color,#1e293b);
}
[data-v-2b3df89e] .viz-stats-row              { display:flex; flex-wrap:wrap; gap:.5rem;
}
[data-v-2b3df89e] .viz-stat                   { display:flex; flex-direction:column; align-items:center; min-width:5.5rem; padding:.5rem .75rem; border:1px solid var(--p-surface-200,#e2e8f0); border-radius:6px; background:var(--p-surface-50,#f8fafc);
}
[data-v-2b3df89e] .viz-stat-val               { font-size:.9rem; font-weight:600; font-variant-numeric:tabular-nums;
}
[data-v-2b3df89e] .viz-stat-lbl               { font-size:.67rem; color:var(--p-text-muted-color,#94a3b8); margin-top:.15rem; text-align:center;
}
[data-v-2b3df89e] .viz-stat-warn .viz-stat-val{ color:#dc2626;
}
[data-v-2b3df89e] .viz-mem-card      { border:1px solid var(--p-content-border-color,rgba(0,0,0,.08)); border-radius:8px; padding:.75rem 1rem; background:var(--p-surface-0,#fff);
}
[data-v-2b3df89e] .viz-mem-bar-bg    { height:12px; background:var(--p-surface-200,#e2e8f0); border-radius:6px; overflow:hidden; margin-bottom:.5rem;
}
[data-v-2b3df89e] .viz-mem-label-row { display:flex; justify-content:space-between; font-size:.78rem; color:var(--p-text-muted-color,#64748b); margin-bottom:.35rem;
}
[data-v-2b3df89e] .viz-cpu-cores     { display:flex; flex-direction:column; gap:.5rem;
}
[data-v-2b3df89e] .viz-cpu-row       { display:flex; align-items:center; gap:.75rem;
}
[data-v-2b3df89e] .viz-cpu-lbl       { font-size:.78rem; font-weight:500; min-width:3.8rem;
}
[data-v-2b3df89e] .viz-cpu-pct       { font-size:.82rem; font-weight:700; min-width:2.8rem; text-align:right; font-variant-numeric:tabular-nums;
}
[data-v-2b3df89e] .viz-cpu-detail    { display:flex; gap:.4rem; flex-wrap:wrap; font-size:.72rem; color:var(--p-text-muted-color,#64748b);
}
[data-v-2b3df89e] .viz-freq-chip     { display:inline-block; padding:.1rem .35rem; background:rgba(99,102,241,.08); color:rgb(99,102,241); border-radius:3px; font-size:.7rem; font-weight:500; font-variant-numeric:tabular-nums;
}
[data-v-2b3df89e] .viz-freq-wrap     { display:flex; flex-wrap:wrap; gap:.35rem;
}

/* ── Scope chips (filter bar) ─────────────────────────────────────────────── */
.cssScopeChip[data-v-2b3df89e] { display:inline-flex; align-items:center; gap:.3rem; padding:.2rem .6rem; border-radius:999px; font-size:.78rem; font-weight:500; cursor:pointer; transition:background .12s,border-color .12s,color .12s; white-space:nowrap; line-height:1.4; border:1px solid transparent;
}
.cssScopeChipOn[data-v-2b3df89e] { background:rgba(14,165,233,.1); border-color:rgba(14,165,233,.35); color:rgb(14,165,233);
}
.cssScopeChipOn[data-v-2b3df89e]:hover { background:rgba(14,165,233,.18);
}
.cssScopeChipOff[data-v-2b3df89e] { background:var(--p-surface-100,#f1f5f9); border-color:var(--p-content-border-color,rgba(0,0,0,.15)); color:var(--p-text-muted-color,#94a3b8);
}
.cssScopeChipOff[data-v-2b3df89e]:hover { background:var(--p-surface-200,#e2e8f0); color:var(--p-text-color,#374151); border-color:rgba(0,0,0,.22);
}
.cssScopeChipDevice[data-v-2b3df89e] { cursor:default;
}
.cssScopeChipLabel[data-v-2b3df89e] { max-width:10rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.cssScopeChipX[data-v-2b3df89e] { background:none; border:none; cursor:pointer; padding:0 0 0 .15rem; font-size:.85rem; line-height:1; color:currentColor; opacity:.7; display:flex; align-items:center;
}
.cssScopeChipX[data-v-2b3df89e]:hover { opacity:1;
}
.cssDeviceAddInput[data-v-2b3df89e] { width:13rem; padding-right: 1.6rem;
}
.cssDeviceAddWrap[data-v-2b3df89e] {
  position: relative;
  display: inline-block;
}
.cssDeviceAddSpinner[data-v-2b3df89e] {
  position: absolute;
  top: 50%;
  right: 0.5rem;
  transform: translateY(-50%);
  font-size: 0.75rem;
  color: var(--p-text-muted-color, #9ca3af);
  pointer-events: none;
}
.cssDeviceAddDropdown[data-v-2b3df89e] {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  min-width: 260px;
  z-index: 300;
  background: var(--p-surface-0, white);
  border: 1px solid var(--p-content-border-color, #d1d5db);
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
  max-height: 280px;
  overflow-y: auto;
  padding: 0.25rem;
}
.cssDeviceAddDropdownHint[data-v-2b3df89e] {
  padding: 0.6rem;
  font-size: 0.8rem;
  color: var(--p-text-muted-color, #9ca3af);
  text-align: center;
}
.cssDeviceAddDropdownItem[data-v-2b3df89e] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 34px;
  padding: 0 0.6rem;
  background: none;
  border: none;
  cursor: pointer;
  border-radius: 5px;
  gap: 0.75rem;
  transition: background 0.08s;
  box-sizing: border-box;
}
.cssDeviceAddDropdownItem[data-v-2b3df89e]:hover,
.cssDeviceAddDropdownItemActive[data-v-2b3df89e] {
  background: var(--p-content-hover-background, #f3f4f6);
}
.cssDeviceAddDropdownUid[data-v-2b3df89e] {
  font-size: 0.8rem;
  font-weight: 500;
  font-family: monospace;
  color: var(--p-text-color, #374151);
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: left;
}
.cssDeviceAddDropdownProduct[data-v-2b3df89e] {
  font-size: 0.72rem;
  color: var(--p-text-muted-color, #9ca3af);
  flex-shrink: 0;
  max-width: 120px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cssCompareScopeBadge[data-v-2b3df89e] { display:inline-flex; align-items:center; gap:.3rem; font-size:.72rem; color:var(--p-text-muted-color,#94a3b8); padding:.1rem .45rem; background:var(--p-surface-100,#f1f5f9); border:1px solid var(--p-content-border-color,rgba(0,0,0,.08)); border-radius:4px; flex-shrink:0;
}

/* ── Chart hint sub-text ──────────────────────────────────────────────────── */
.cssChartHintSub[data-v-2b3df89e] { display:block; font-size:.74rem; opacity:.6; margin-top:.3rem; font-weight:400;
}

/* ── No-data bar ──────────────────────────────────────────────────────────── */
.cssNoDataBar[data-v-2b3df89e] { display:flex; align-items:center; gap:.4rem; padding:.3rem .85rem; background:rgba(251,191,36,.06); border-bottom:1px solid rgba(251,191,36,.18); font-size:.78rem; color:var(--p-text-muted-color,#64748b); flex-wrap:wrap;
}
.cssNoDataChip[data-v-2b3df89e] { display:inline-flex; align-items:center; padding:.05rem .45rem; background:rgba(251,191,36,.12); border:1px solid rgba(251,191,36,.28); border-radius:4px; font-size:.75rem; color:#92400e; font-weight:500;
}

/* ── Compare panel collapse toggle ───────────────────────────────────────── */
.cssComparePanelToggle[data-v-2b3df89e] { background:none; border:none; cursor:pointer; padding:.15rem .3rem; border-radius:4px; color:var(--p-text-muted-color,#94a3b8); display:flex; align-items:center; flex-shrink:0; margin-left:auto;
}
.cssComparePanelToggle[data-v-2b3df89e]:hover { background:var(--p-surface-100,#f1f5f9); color:var(--p-text-color,#374151);
}

/* ── Stale last-seen ─────────────────────────────────────────────────────── */
.cssLastSeenStale[data-v-2b3df89e] { color:#b45309; font-weight:600;
}
.cssLastSeenStale[data-v-2b3df89e]::after { content:' ●'; font-size:.55rem; vertical-align:middle; opacity:.7;
}

/* ── Anomaly indicator ────────────────────────────────────────────────────── */
.cssAnomalyIcon[data-v-2b3df89e] { font-size:.68rem; margin-left:.3rem; color:#b45309; vertical-align:middle; opacity:.85;
}


.cssCardFrame[data-v-ee461a6b] {
  background: var(--p-content-background);
  border: 1px solid var(--p-content-border-color);
  border-radius: 0.5rem;
  padding: 0.875rem 1rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
}
.cssCardTop[data-v-ee461a6b] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 6px;
}
.cssCardLabel[data-v-ee461a6b] {
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--p-text-muted-color);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.cssCardIcon[data-v-ee461a6b] {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}
.cssCardValue[data-v-ee461a6b] {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
}
.cssCardSub[data-v-ee461a6b] {
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
  margin-top: 0.25rem;
  display: flex;
  align-items: center;
  gap: 0.25rem;
  flex-wrap: wrap;
  min-height: 1.2em;
}
.cssCardProgress[data-v-ee461a6b] {
  height: 3px;
  background: var(--p-content-border-color);
  border-radius: 2px;
  margin-top: 0.5rem;
  overflow: hidden;
}
.cssCardProgressFill[data-v-ee461a6b] {
  height: 100%;
  border-radius: 2px;
  transition: width 0.4s ease;
}

.cssBreakdownCard[data-v-2a6e36ef] {
  background: var(--p-content-background);
  border: 1px solid var(--p-content-border-color);
  border-radius: 0.5rem;
  padding: 1rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
  cursor: pointer;
  transition: box-shadow 0.15s ease, border-color 0.15s ease;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.cssBreakdownCard[data-v-2a6e36ef]:hover {
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  border-color: #c7d2fe;
}
.cssBreakdownHeader[data-v-2a6e36ef] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.75rem;
}
.cssBreakdownTitle[data-v-2a6e36ef] {
  font-size: 1rem;
  font-weight: 700;
  color: var(--p-text-color);
}
.cssBreakdownBadge[data-v-2a6e36ef] {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.15em 0.5em;
  border-radius: 0.75em;
}
.cssBreakdownKpis[data-v-2a6e36ef] {
  display: flex;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}
.cssBreakdownSparkline[data-v-2a6e36ef] {
  margin-bottom: 0.5rem;
}
.cssBreakdownFooter[data-v-2a6e36ef] {
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
  margin-top: auto;
}

.cssOverview[data-v-723a14f1] {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
  padding-bottom: 1.5rem;
}

/* ── Section label ───────────────────────────────────────── */
.cssSectionLabel[data-v-723a14f1] {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--p-text-muted-color);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  margin: 0.25rem 0 0;
}

/* ── Summary KPI grid ────────────────────────────────────── */
.cssSummaryGrid[data-v-723a14f1] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.875rem;
}
@media (max-width: 1100px) {
.cssSummaryGrid[data-v-723a14f1] { grid-template-columns: repeat(2, 1fr);
}
}

/* ── Delta / muted helpers ───────────────────────────────── */
.cssDeltaUp[data-v-723a14f1]   { color: #059669; font-weight: 600;
}
.cssDeltaDown[data-v-723a14f1] { color: #dc2626; font-weight: 600;
}
.cssMuted[data-v-723a14f1]     { color: var(--p-text-muted-color);
}

/* ── Crash type breakdown grid ───────────────────────────── */
.cssBreakdownGrid[data-v-723a14f1] {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.875rem;
}
@media (max-width: 700px) {
.cssBreakdownGrid[data-v-723a14f1] { grid-template-columns: 1fr;
}
}

/* ── KPI inside breakdown card ───────────────────────────── */
.cssBreakdownKpi[data-v-723a14f1] {
  flex: 1;
  min-width: 0;
}
.cssBreakdownKpiVal[data-v-723a14f1] {
  font-size: 1.375rem;
  font-weight: 700;
  line-height: 1.1;
}
.cssBreakdownKpiLabel[data-v-723a14f1] {
  font-size: 0.75rem;
  color: var(--p-text-muted-color);
  margin-top: 0.1em;
}

/* ── Sparklines ──────────────────────────────────────────── */
.cssSparkBars[data-v-723a14f1] {
  display: flex;
  align-items: flex-end;
  gap: 2px;
  height: 28px;
}
.cssSparkBar[data-v-723a14f1] {
  flex: 1;
  border-radius: 2px 2px 0 0;
  min-width: 2px;
}
.cssSparkEmpty[data-v-723a14f1] {
  height: 28px;
  display: flex;
  align-items: center;
  font-size: 0.75rem;
  color: var(--p-text-muted-color);
}

/* ── Chart cards ─────────────────────────────────────────── */
.cssChartCard[data-v-723a14f1] {
  background: var(--p-content-background);
  border: 1px solid var(--p-content-border-color);
  border-radius: 0.5rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
  overflow: hidden;
}
.cssChartCardFull[data-v-723a14f1] {
  width: 100%;
}
.cssChartHead[data-v-723a14f1] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 0.875rem 1rem 0.625rem;
  border-bottom: 1px solid var(--p-content-border-color);
}
.cssChartTitle[data-v-723a14f1] {
  font-size: 1rem;
  font-weight: 700;
  color: var(--p-text-color);
}
.cssChartSubtitle[data-v-723a14f1] {
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
  margin-top: 1px;
}
.cssChartBody[data-v-723a14f1] {
  padding: 0.875rem 1rem;
}
.cssPill[data-v-723a14f1] {
  display: inline-flex;
  align-items: center;
  font-size: 0.75rem;
  color: var(--p-text-muted-color);
  background: var(--p-surface-50, #f8f9fc);
  border: 1px solid var(--p-content-border-color);
  border-radius: 4px;
  padding: 0.2em 0.5em;
  flex-shrink: 0;
}

/* ── No-data placeholders ────────────────────────────────── */
.cssNoData[data-v-723a14f1] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  height: 180px;
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
}
.cssNoDataInline[data-v-723a14f1] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  width: 190px;
  height: 190px;
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
  flex-shrink: 0;
}

/* ── Legend (under stacked chart) ───────────────────────── */
.cssLegend[data-v-723a14f1] {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 0.625rem;
}
.cssLegendItem[data-v-723a14f1] {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
}
.cssLegendDot[data-v-723a14f1] {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

/* ── Rate bar + share donut row ──────────────────────────── */
.cssChartRow2[data-v-723a14f1] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.875rem;
}
@media (max-width: 900px) {
.cssChartRow2[data-v-723a14f1] { grid-template-columns: 1fr;
}
}

/* ── Share donut: horizontal chart + legend layout ───────── */
.cssShareCardBody[data-v-723a14f1] {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 0.875rem 1rem;
  min-height: 210px;
}
.cssShareDonutWrap[data-v-723a14f1] {
  width: 190px;
  height: 190px;
  position: relative;
  flex-shrink: 0;
}
.cssShareDonutWrap canvas[data-v-723a14f1] {
  width: 100% !important;
  height: 100% !important;
}
.cssShareLegend[data-v-723a14f1] {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding-top: 0.25rem;
  align-self: center;
}
[data-v-723a14f1] .cssShareLegendRow {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.25rem 0;
  border-bottom: 1px solid var(--p-content-border-color);
}
[data-v-723a14f1] .cssShareLegendRow:last-child {
  border-bottom: none;
}

.cssCrashIssuesTable[data-v-8a65c21f] {
  background: var(--p-content-background);
  border-radius: 0.5rem;
  border: 1px solid var(--p-content-border-color);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
  overflow: hidden;
}

/* ── Table header ─────────────────────────────────────────── */
.cssTableHead[data-v-8a65c21f] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.875rem 1rem;
  border-bottom: 1px solid var(--p-content-border-color);
  gap: 1rem;
  flex-wrap: wrap;
}
.cssTableHeadLeft[data-v-8a65c21f] {
  min-width: 0;
}
.cssTableTitle[data-v-8a65c21f] {
  font-size: 0.875rem;
  font-weight: 700;
}
.cssTableNote[data-v-8a65c21f] {
  font-size: 0.75rem;
  color: var(--p-text-muted-color);
  margin-top: 0.15rem;
}
.cssTableHeadRight[data-v-8a65c21f] {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
[data-v-8a65c21f] .cssStatusOption.p-selectbutton {
  height: 2.25em;
}

/* ── DataTable ────────────────────────────────────────────── */
.cssTable[data-v-8a65c21f] {
  width: 100%;
}
.cssTable[data-v-8a65c21f] .p-datatable-paginator-bottom {
  border: 0;
}

/* ── Cell styles ──────────────────────────────────────────── */
.cssMonoMuted[data-v-8a65c21f] {
  font-family: 'Fira Code Local', 'Fira Code', ui-monospace, monospace;
  font-size: 0.8em;
  color: var(--p-text-muted-color);
}
.cssMuted[data-v-8a65c21f] {
  font-size: 0.875em;
  color: var(--p-text-muted-color);
}
.cssStatusTag[data-v-8a65c21f] {
  font-size: 0.8em;
}

/* ── Root container ───────────────────────────────────────── */
.cssAnrTab[data-v-299f7c82] {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* ── Section label ────────────────────────────────────────── */
.cssSectionLabel[data-v-299f7c82] {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--p-text-muted-color);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.625rem;
  margin-top: 0.25rem;
}
.cssSectionLabel[data-v-299f7c82]:first-child {
  margin-top: 0;
}

/* ── KPI summary grid ─────────────────────────────────────── */
.cssSummaryGrid[data-v-299f7c82] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.75rem;
  margin-bottom: 1rem;
}

/* ── Chart row layouts ────────────────────────────────────── */
.cssChartRow21[data-v-299f7c82] {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}
.cssChartRow11[data-v-299f7c82] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
  /* Give both cards a fixed height so the App chart can fill it */
  grid-auto-rows: 380px;
}

/* ── Chart card ───────────────────────────────────────────── */
.cssChartCard[data-v-299f7c82] {
  background: var(--p-content-background);
  border-radius: 0.5rem;
  border: 1px solid var(--p-content-border-color);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
  overflow: hidden;
}

/* Flex variant: chart body grows to fill card height */
.cssChartCardFlex[data-v-299f7c82] {
  display: flex;
  flex-direction: column;
}
.cssChartHead[data-v-299f7c82] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 0.875rem 1rem 0.625rem;
  border-bottom: 1px solid var(--p-content-border-color);
  flex-shrink: 0;
}
.cssChartTitle[data-v-299f7c82] {
  font-size: 1rem;
  font-weight: 700;
  color: var(--p-text-color);
}
.cssChartSubtitle[data-v-299f7c82] {
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
  margin-top: 0.1rem;
}
.cssChartBody[data-v-299f7c82] {
  padding: 0.875rem 1rem;
}

/* Flex body: grows and lets canvas fill remaining height */
.cssChartBodyFlex[data-v-299f7c82] {
  padding: 0.875rem 1rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.cssChartCanvasWrap[data-v-299f7c82] {
  position: relative;
  flex: 1;
  min-height: 0;
}

/* ── No data / loading placeholder ───────────────────────── */
.cssNoData[data-v-299f7c82] {
  display: flex;
  align-items: center;
  gap: 0.5em;
  padding: 2rem 0;
  color: var(--p-text-muted-color);
  font-size: 0.9375rem;
  justify-content: center;
}

/* ── Legend ───────────────────────────────────────────────── */
.cssLegend[data-v-299f7c82] {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
  margin-top: 0.625rem;
}
.cssLegendItem[data-v-299f7c82] {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.8125rem;
  color: var(--p-text-muted-color);
}
.cssLegendDot[data-v-299f7c82] {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

/* ── Pill badge (chart header) ────────────────────────────── */
.cssPill[data-v-299f7c82] {
  display: inline-flex;
  align-items: center;
  font-size: 0.75rem;
  color: var(--p-text-muted-color);
  background: var(--p-surface-100, #f8fafc);
  border: 1px solid var(--p-content-border-color);
  border-radius: 0.25rem;
  padding: 0.2rem 0.5rem;
  white-space: nowrap;
  flex-shrink: 0;
}

/* ── Foreground / Background list ────────────────────────── */
.cssFgBgList[data-v-299f7c82] {
  margin-top: 0.75rem;
}
.cssSigRow[data-v-299f7c82] {
  display: flex;
  align-items: center;
  padding: 0.3rem 0;
  border-bottom: 1px solid var(--p-surface-100, #f8fafc);
  gap: 0.5rem;
}
.cssSigRow[data-v-299f7c82]:last-child {
  border-bottom: none;
}
.cssSigBadge[data-v-299f7c82] {
  font-family: 'Fira Code Local', 'Fira Code', ui-monospace, monospace;
  font-size: 0.8125rem;
  font-weight: 700;
  padding: 0.15rem 0.5rem;
  border-radius: 0.25rem;
  flex-shrink: 0;
  min-width: 2.5rem;
  text-align: center;
}
.cssSigBadgeFg[data-v-299f7c82] {
  background: #fee2e2;
  color: #dc2626;
}
.cssSigBadgeBg[data-v-299f7c82] {
  background: #d1fae5;
  color: #059669;
}
.cssSigBarWrap[data-v-299f7c82] {
  flex: 1;
  height: 4px;
  background: var(--p-surface-200, #f1f5f9);
  border-radius: 2px;
}
.cssSigBar[data-v-299f7c82] {
  height: 100%;
  border-radius: 2px;
}
.cssSigCount[data-v-299f7c82] {
  font-size: 0.8125rem;
  font-weight: 600;
  min-width: 3rem;
  text-align: right;
}
.cssSigPct[data-v-299f7c82] {
  font-size: 0.75rem;
  color: var(--p-text-muted-color);
  min-width: 2.5rem;
  text-align: right;
}

/* ── Reason breakdown list ────────────────────────────────── */
.cssReasonList[data-v-299f7c82] {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.cssReasonRow[data-v-299f7c82] {
  display: flex;
  align-items: flex-start;
  padding: 0.45rem 0;
  border-bottom: 1px solid var(--p-surface-100, #f8fafc);
  gap: 0.75rem;
  /* Two main columns: label ~60% | right ~40% */
}
.cssReasonRow[data-v-299f7c82]:last-child {
  border-bottom: none;
}

/* Label badge: occupies ~70% of the row, two-line clamp */
.cssReasonBadge[data-v-299f7c82] {
  font-size: 0.8125rem;
  font-weight: 600;
  padding: 0.25rem 0.6rem;
  border-radius: 0.5rem;
  /* Two-line clamp with ellipsis */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.45;
  /* Fixed two-line block height so rows stay uniform */
  height: calc(1.45em * 2 + 0.5rem);
  flex: 0 0 70%;
  max-width: 70%;
  min-width: 0;
}

/* Right section: bar + stats, occupies remaining ~40% */
.cssReasonRight[data-v-299f7c82] {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  padding-top: 0.2rem;
}
.cssReasonBarWrap[data-v-299f7c82] {
  width: 100%;
  height: 4px;
  background: var(--p-surface-200, #f1f5f9);
  border-radius: 2px;
}
.cssReasonBar[data-v-299f7c82] {
  height: 100%;
  border-radius: 2px;
}
.cssReasonStats[data-v-299f7c82] {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.cssReasonCount[data-v-299f7c82] {
  font-size: 0.8rem;
  font-weight: 600;
  flex-shrink: 0;
}
.cssReasonPct[data-v-299f7c82] {
  font-size: 0.75rem;
  color: var(--p-text-muted-color);
  flex-shrink: 0;
}

/* ── Muted text ───────────────────────────────────────────── */
.cssMuted[data-v-299f7c82] {
  color: var(--p-text-muted-color);
}

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width: 1280px) {
.cssSummaryGrid[data-v-299f7c82] {
    grid-template-columns: repeat(2, 1fr);
}
.cssChartRow21[data-v-299f7c82] {
    grid-template-columns: 1fr;
}
}
@media (max-width: 900px) {
.cssSummaryGrid[data-v-299f7c82] {
    grid-template-columns: repeat(2, 1fr);
}
.cssChartRow11[data-v-299f7c82] {
    grid-template-columns: 1fr;
}
}

/* ── Root container ───────────────────────────────────────── */
.cssStoneTab[data-v-08199f5c] {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* ── Section label ────────────────────────────────────────── */
.cssSectionLabel[data-v-08199f5c] {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--p-text-muted-color);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.625rem;
  margin-top: 0.25rem;
}
.cssSectionLabel[data-v-08199f5c]:first-child {
  margin-top: 0;
}

/* ── KPI summary grid (5 columns on wide screens) ─────────── */
.cssSummaryGrid[data-v-08199f5c] {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0.75rem;
  margin-bottom: 1rem;
}

/* ── Card value size overrides for mono/short values ─────── */
.cssCardValueSm[data-v-08199f5c] {
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}
.cssCardValueXs[data-v-08199f5c] {
  font-size: 1.125rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  word-break: break-all;
}

/* ── Chart row layouts ────────────────────────────────────── */
.cssChartRow21[data-v-08199f5c] {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
  grid-auto-rows: 360px;
}
.cssChartRow11[data-v-08199f5c] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
  grid-auto-rows: 380px;
}

/* ── Chart card ───────────────────────────────────────────── */
.cssChartCard[data-v-08199f5c] {
  background: var(--p-content-background);
  border-radius: 0.5rem;
  border: 1px solid var(--p-content-border-color);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
  overflow: hidden;
}
.cssChartCardFlex[data-v-08199f5c] {
  display: flex;
  flex-direction: column;
}
.cssChartHead[data-v-08199f5c] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 0.875rem 1rem 0.625rem;
  border-bottom: 1px solid var(--p-content-border-color);
  flex-shrink: 0;
}
.cssChartTitle[data-v-08199f5c] {
  font-size: 1rem;
  font-weight: 700;
  color: var(--p-text-color);
}
.cssChartSubtitle[data-v-08199f5c] {
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
  margin-top: 0.1rem;
}
.cssChartBody[data-v-08199f5c] {
  padding: 0.875rem 1rem;
}
.cssChartBodyFlex[data-v-08199f5c] {
  padding: 0.875rem 1rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

/* Ensures the canvas has a minimum height when the card is unconstrained */
.cssChartBodyFlex .cssChartCanvasWrap[data-v-08199f5c] {
  min-height: 180px;
}
.cssChartCanvasWrap[data-v-08199f5c] {
  position: relative;
  flex: 1;
  min-height: 0;
}

/* ── No data / loading placeholder ───────────────────────── */
.cssNoData[data-v-08199f5c] {
  display: flex;
  align-items: center;
  gap: 0.5em;
  padding: 2rem 0;
  color: var(--p-text-muted-color);
  font-size: 0.9375rem;
  justify-content: center;
}

/* ── Legend ───────────────────────────────────────────────── */
.cssLegend[data-v-08199f5c] {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
  margin-top: 0.625rem;
}
.cssLegendItem[data-v-08199f5c] {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.8125rem;
  color: var(--p-text-muted-color);
}
.cssLegendDot[data-v-08199f5c] {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

/* Dashed-line legend indicator for target lines */
.cssLegendDotDash[data-v-08199f5c] {
  border-radius: 1px;
  height: 2px;
  width: 14px;
}

/* ── Pill badge (chart header) ────────────────────────────── */
.cssPill[data-v-08199f5c] {
  display: inline-flex;
  align-items: center;
  font-size: 0.75rem;
  color: var(--p-text-muted-color);
  background: var(--p-surface-100, #f8fafc);
  border: 1px solid var(--p-content-border-color);
  border-radius: 0.25rem;
  padding: 0.2rem 0.5rem;
  white-space: nowrap;
  flex-shrink: 0;
}

/* ── Signal distribution list ─────────────────────────────── */
.cssSigList[data-v-08199f5c] {
  margin-top: 0.75rem;
}
.cssSigRow[data-v-08199f5c] {
  display: flex;
  align-items: center;
  padding: 0.3rem 0;
  border-bottom: 1px solid var(--p-surface-100, #f8fafc);
  gap: 0.5rem;
}
.cssSigRow[data-v-08199f5c]:last-child {
  border-bottom: none;
}
.cssSigBadge[data-v-08199f5c] {
  font-family: 'Fira Code Local', 'Fira Code', ui-monospace, monospace;
  font-size: 0.8125rem;
  font-weight: 700;
  padding: 0.15rem 0.5rem;
  border-radius: 0.25rem;
  flex-shrink: 0;
  min-width: 4.5rem;
  text-align: center;
}
.cssSigBarWrap[data-v-08199f5c] {
  flex: 1;
  height: 4px;
  background: var(--p-surface-200, #f1f5f9);
  border-radius: 2px;
}
.cssSigBar[data-v-08199f5c] {
  height: 100%;
  border-radius: 2px;
}
.cssSigCount[data-v-08199f5c] {
  font-size: 0.8125rem;
  font-weight: 600;
  min-width: 3rem;
  text-align: right;
}
.cssSigPct[data-v-08199f5c] {
  font-size: 0.75rem;
  color: var(--p-text-muted-color);
  min-width: 2.75rem;
  text-align: right;
}

/* ── Muted text ───────────────────────────────────────────── */
.cssMuted[data-v-08199f5c] {
  color: var(--p-text-muted-color);
}

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width: 1280px) {
.cssSummaryGrid[data-v-08199f5c] {
    grid-template-columns: repeat(3, 1fr);
}
.cssChartRow21[data-v-08199f5c] {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
}
}
@media (max-width: 900px) {
.cssSummaryGrid[data-v-08199f5c] {
    grid-template-columns: repeat(2, 1fr);
}
.cssChartRow11[data-v-08199f5c] {
    grid-template-columns: 1fr;
}
}

/* ── Root container ───────────────────────────────────────── */
.cssUserspaceTab[data-v-80b0e666] {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* ── Section label ────────────────────────────────────────── */
.cssSectionLabel[data-v-80b0e666] {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--p-text-muted-color);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.625rem;
  margin-top: 0.25rem;
}
.cssSectionLabel[data-v-80b0e666]:first-child {
  margin-top: 0;
}

/* ── KPI summary grid (5 columns) ─────────────────────────── */
.cssSummaryGrid[data-v-80b0e666] {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0.75rem;
  margin-bottom: 1rem;
}

/* Smaller font for long text values in summary cards */
.cssKpiValueSm[data-v-80b0e666] {
  font-size: 1.25rem;
  font-family: 'Fira Code Local', 'Fira Code', ui-monospace, monospace;
  word-break: break-all;
}

/* ── Chart row layouts ────────────────────────────────────── */
.cssChartRow21[data-v-80b0e666] {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
  grid-auto-rows: 360px;
}
.cssChartRow11[data-v-80b0e666] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
  grid-auto-rows: 320px;
}

/* ── Chart card ───────────────────────────────────────────── */
.cssChartCard[data-v-80b0e666] {
  background: var(--p-content-background);
  border-radius: 0.5rem;
  border: 1px solid var(--p-content-border-color);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
  overflow: hidden;
}
.cssChartCardFlex[data-v-80b0e666] {
  display: flex;
  flex-direction: column;
}
.cssChartHead[data-v-80b0e666] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 0.875rem 1rem 0.625rem;
  border-bottom: 1px solid var(--p-content-border-color);
  flex-shrink: 0;
}
.cssChartTitle[data-v-80b0e666] {
  font-size: 1rem;
  font-weight: 700;
  color: var(--p-text-color);
}
.cssChartSubtitle[data-v-80b0e666] {
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
  margin-top: 0.1rem;
}
.cssChartBody[data-v-80b0e666] {
  padding: 0.875rem 1rem;
}
.cssChartBodyFlex[data-v-80b0e666] {
  padding: 0.875rem 1rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.cssChartBodyFlex .cssChartCanvasWrap[data-v-80b0e666] {
  min-height: 180px;
}
.cssChartCanvasWrap[data-v-80b0e666] {
  position: relative;
  flex: 1;
  min-height: 0;
}

/* ── No data / loading placeholder ───────────────────────── */
.cssNoData[data-v-80b0e666] {
  display: flex;
  align-items: center;
  gap: 0.5em;
  padding: 2rem 0;
  color: var(--p-text-muted-color);
  font-size: 0.9375rem;
  justify-content: center;
}

/* ── Legend ───────────────────────────────────────────────── */
.cssLegend[data-v-80b0e666] {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
  margin-top: 0.625rem;
}
.cssLegendItem[data-v-80b0e666] {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.8125rem;
  color: var(--p-text-muted-color);
}
.cssLegendDot[data-v-80b0e666] {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

/* ── Distribution list (signal / module) ──────────────────── */
.cssSigList[data-v-80b0e666] {
  margin-top: 0.75rem;
}
.cssSigRow[data-v-80b0e666] {
  display: flex;
  align-items: center;
  padding: 0.3rem 0;
  border-bottom: 1px solid var(--p-surface-100, #f8fafc);
  gap: 0.5rem;
}
.cssSigRow[data-v-80b0e666]:last-child {
  border-bottom: none;
}
.cssSigBadge[data-v-80b0e666] {
  font-family: 'Fira Code Local', 'Fira Code', ui-monospace, monospace;
  font-size: 0.8125rem;
  font-weight: 700;
  padding: 0.15rem 0.5rem;
  border-radius: 0.25rem;
  flex-shrink: 0;
  min-width: 5rem;
  text-align: center;
}
.cssSigBarWrap[data-v-80b0e666] {
  flex: 1;
  height: 4px;
  background: var(--p-surface-200, #f1f5f9);
  border-radius: 2px;
}
.cssSigBar[data-v-80b0e666] {
  height: 100%;
  border-radius: 2px;
}
.cssSigCount[data-v-80b0e666] {
  font-size: 0.8125rem;
  font-weight: 600;
  min-width: 3rem;
  text-align: right;
}
.cssSigPct[data-v-80b0e666] {
  font-size: 0.75rem;
  color: var(--p-text-muted-color);
  min-width: 2.75rem;
  text-align: right;
}

/* ── Muted text ───────────────────────────────────────────── */
.cssMuted[data-v-80b0e666] {
  color: var(--p-text-muted-color);
}

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width: 1400px) {
.cssSummaryGrid[data-v-80b0e666] {
    grid-template-columns: repeat(3, 1fr);
}
}
@media (max-width: 1280px) {
.cssChartRow21[data-v-80b0e666] {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
}
.cssChartRow11[data-v-80b0e666] {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
}
}
@media (max-width: 900px) {
.cssSummaryGrid[data-v-80b0e666] {
    grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 600px) {
.cssSummaryGrid[data-v-80b0e666] {
    grid-template-columns: 1fr;
}
}

/* ── Root container ───────────────────────────────────────── */
.cssKernelTab[data-v-d76ee18d] {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* ── Section label ────────────────────────────────────────── */
.cssSectionLabel[data-v-d76ee18d] {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--p-text-muted-color);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.625rem;
  margin-top: 0.25rem;
}
.cssSectionLabel[data-v-d76ee18d]:first-child {
  margin-top: 0;
}

/* ── KPI summary grid (4 columns) ─────────────────────────── */
.cssSummaryGrid[data-v-d76ee18d] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.75rem;
  margin-bottom: 1rem;
}

/* Smaller font for long text values in summary cards */
.cssKpiValueSm[data-v-d76ee18d] {
  font-size: 1.25rem;
  font-family: 'Fira Code Local', 'Fira Code', ui-monospace, monospace;
  word-break: break-all;
}

/* ── Chart row layouts ────────────────────────────────────── */
.cssChartRow21[data-v-d76ee18d] {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
  grid-auto-rows: 360px;
}
.cssChartRow1[data-v-d76ee18d] {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

/* ── Chart card ───────────────────────────────────────────── */
.cssChartCard[data-v-d76ee18d] {
  background: var(--p-content-background);
  border-radius: 0.5rem;
  border: 1px solid var(--p-content-border-color);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
  overflow: hidden;
}
.cssChartCardFlex[data-v-d76ee18d] {
  display: flex;
  flex-direction: column;
}
.cssChartHead[data-v-d76ee18d] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 0.875rem 1rem 0.625rem;
  border-bottom: 1px solid var(--p-content-border-color);
  flex-shrink: 0;
}
.cssChartTitle[data-v-d76ee18d] {
  font-size: 1rem;
  font-weight: 700;
  color: var(--p-text-color);
}
.cssChartSubtitle[data-v-d76ee18d] {
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
  margin-top: 0.1rem;
}
.cssChartBody[data-v-d76ee18d] {
  padding: 0.875rem 1rem;
}
.cssChartBodyFlex[data-v-d76ee18d] {
  padding: 0.875rem 1rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.cssChartBodyFlex .cssChartCanvasWrap[data-v-d76ee18d] {
  min-height: 180px;
}
.cssChartCanvasWrap[data-v-d76ee18d] {
  position: relative;
  flex: 1;
  min-height: 0;
}

/* ── No data / loading placeholder ───────────────────────── */
.cssNoData[data-v-d76ee18d] {
  display: flex;
  align-items: center;
  gap: 0.5em;
  padding: 2rem 0;
  color: var(--p-text-muted-color);
  font-size: 0.9375rem;
  justify-content: center;
}

/* ── Legend ───────────────────────────────────────────────── */
.cssLegend[data-v-d76ee18d] {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
  margin-top: 0.625rem;
}
.cssLegendItem[data-v-d76ee18d] {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.8125rem;
  color: var(--p-text-muted-color);
}
.cssLegendDot[data-v-d76ee18d] {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

/* ── Fault type distribution list ─────────────────────────── */
.cssSigList[data-v-d76ee18d] {
  margin-top: 0.75rem;
}
.cssSigRow[data-v-d76ee18d] {
  display: flex;
  align-items: center;
  padding: 0.3rem 0;
  border-bottom: 1px solid var(--p-surface-100, #f8fafc);
  gap: 0.5rem;
}
.cssSigRow[data-v-d76ee18d]:last-child {
  border-bottom: none;
}
.cssSigBadge[data-v-d76ee18d] {
  font-family: 'Fira Code Local', 'Fira Code', ui-monospace, monospace;
  font-size: 0.8125rem;
  font-weight: 700;
  padding: 0.15rem 0.5rem;
  border-radius: 0.25rem;
  flex-shrink: 0;
  min-width: 5rem;
  text-align: center;
}
.cssSigBarWrap[data-v-d76ee18d] {
  flex: 1;
  height: 4px;
  background: var(--p-surface-200, #f1f5f9);
  border-radius: 2px;
}
.cssSigBar[data-v-d76ee18d] {
  height: 100%;
  border-radius: 2px;
}
.cssSigCount[data-v-d76ee18d] {
  font-size: 0.8125rem;
  font-weight: 600;
  min-width: 3rem;
  text-align: right;
}
.cssSigPct[data-v-d76ee18d] {
  font-size: 0.75rem;
  color: var(--p-text-muted-color);
  min-width: 2.75rem;
  text-align: right;
}

/* ── Muted text ───────────────────────────────────────────── */
.cssMuted[data-v-d76ee18d] {
  color: var(--p-text-muted-color);
}

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width: 1280px) {
.cssSummaryGrid[data-v-d76ee18d] {
    grid-template-columns: repeat(2, 1fr);
}
.cssChartRow21[data-v-d76ee18d] {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
}
}
@media (max-width: 900px) {
.cssSummaryGrid[data-v-d76ee18d] {
    grid-template-columns: 1fr 1fr;
}
}
@media (max-width: 600px) {
.cssSummaryGrid[data-v-d76ee18d] {
    grid-template-columns: 1fr;
}
}

.cssPage[data-v-7b2805e1] {
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* ── Page header ─────────────────────────────────────────── */
.basPageHeader[data-v-7b2805e1] {
  flex-shrink: 0;
}

/* ── Tabs ────────────────────────────────────────────────── */
.cssCrashesTabs[data-v-7b2805e1] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}
[data-v-7b2805e1] .cssTabList {
  flex-shrink: 0;
}
.cssTab[data-v-7b2805e1] {
  display: flex;
  align-items: center;
  gap: 0.4em;
  font-size: 1rem;
  font-weight: 600;
  padding: 0.7em 1em;
}
.cssTabDot[data-v-7b2805e1] {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
}
.cssTabBadge[data-v-7b2805e1] {
  display: inline-flex;
  align-items: center;
  font-size: 0.875rem;
  font-weight: 700;
  padding: 0.1em 0.45em;
  border-radius: 0.75em;
}
.cssTabBadgeAmber[data-v-7b2805e1]  { background: #fef3c7; color: #d97706;
}
.cssTabBadgeRed[data-v-7b2805e1]    { background: #fee2e2; color: #dc2626;
}
.cssTabBadgePurple[data-v-7b2805e1] { background: #ede9fe; color: #7c3aed;
}
.cssTabBadgeTeal[data-v-7b2805e1]   { background: #cffafe; color: #0891b2;
}
.cssTabBadgeBlue[data-v-7b2805e1]   { background: #dbeafe; color: #2563eb;
}
.cssTabBadgeOrange[data-v-7b2805e1] { background: #ffedd5; color: #ea580c;
}

/* ── Tab panels ──────────────────────────────────────────── */
.cssTabPanels[data-v-7b2805e1] {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 0.65em;
}
.cssTabPanel[data-v-7b2805e1] {
  width: 100%;
  height: 100%;
  box-sizing: border-box;
}

/* ── Tab transition (mirrors ANRs.vue) ───────────────────── */
.cssTabPanelChange-enter-active[data-v-7b2805e1],
.cssTabPanelChange-leave-active[data-v-7b2805e1] {
  transition: opacity 0.5s ease, transform 0.5s ease;
}
.cssTabPanelChange-enter-from[data-v-7b2805e1],
.cssTabPanelChange-leave-to[data-v-7b2805e1] {
  opacity: 0;
  transform: translateY(0.5em);
}

/* ── Coming soon placeholder ─────────────────────────────── */
.cssComingSoon[data-v-7b2805e1] {
  display: flex;
  align-items: center;
  gap: 0.5em;
  padding: 2rem;
  color: var(--p-text-muted-color);
  font-size: 1.125rem;
}

.cssCardFrame[data-v-ae50de6d] {
  background: var(--p-content-background);
  border: 1px solid var(--p-content-border-color);
  border-radius: 0.5rem;
  padding: 0.875rem 1rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
  position: relative;
}
.cssCardClickable[data-v-ae50de6d] {
  cursor: pointer;
  transition: box-shadow 0.15s, border-color 0.15s, transform 0.15s;
}
.cssCardClickable[data-v-ae50de6d]:hover {
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  border-color: var(--p-primary-color);
}
.cssCardClickable:hover .cssCardDrill[data-v-ae50de6d] {
  opacity: 1;
}
.cssCardDrill[data-v-ae50de6d] {
  position: absolute;
  top: 55%;
  right: 0.9rem;
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--p-primary-color);
  opacity: 0;
  transition: opacity 0.15s;
  pointer-events: none;
}
.cssCardTop[data-v-ae50de6d] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 6px;
}
.cssCardLabel[data-v-ae50de6d] {
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--p-text-muted-color);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.cssCardIcon[data-v-ae50de6d] {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}
.cssCardValue[data-v-ae50de6d] {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
}
.cssCardSub[data-v-ae50de6d] {
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
  margin-top: 0.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-height: 1.2em;
}
.cssCardSub2[data-v-ae50de6d] {
  font-size: 0.8125rem;
  color: var(--p-text-muted-color);
  margin-top: 0.35rem;
  display: flex;
  align-items: center;
  gap: 0.3rem;
  flex-wrap: wrap;
  min-height: 1.1em;
}
.cssCardProgress[data-v-ae50de6d] {
  height: 3px;
  background: var(--p-content-border-color);
  border-radius: 2px;
  margin-top: 0.5rem;
  overflow: hidden;
}
.cssCardProgressFill[data-v-ae50de6d] {
  height: 100%;
  border-radius: 2px;
  transition: width 0.4s ease;
}

.cssChartCard[data-v-24828e79] {
  background: var(--p-content-background);
  border: 1px solid var(--p-content-border-color);
  border-radius: 0.5rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
  overflow: hidden;
  height: 100%;
}
.cssChartHead[data-v-24828e79] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 0.875rem 1rem 0.625rem;
  border-bottom: 1px solid var(--p-content-border-color);
}
.cssChartTitle[data-v-24828e79] {
  font-size: 1rem;
  font-weight: 700;
  color: var(--p-text-color);
}
.cssChartSubtitle[data-v-24828e79] {
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
  margin-top: 1px;
}
.cssChartBody[data-v-24828e79] {
  padding: 0.875rem 1rem;
}
.cssNoData[data-v-24828e79] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  height: 230px;
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
}

.cssChartCard[data-v-45a07047] {
  background: var(--p-content-background);
  border: 1px solid var(--p-content-border-color);
  border-radius: 0.5rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
  overflow: hidden;
  height: 100%;
}
.cssChartHead[data-v-45a07047] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 0.875rem 1rem 0.625rem;
  border-bottom: 1px solid var(--p-content-border-color);
}
.cssChartTitle[data-v-45a07047] {
  font-size: 1rem;
  font-weight: 700;
  color: var(--p-text-color);
}
.cssChartSubtitle[data-v-45a07047] {
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
  margin-top: 1px;
}
.cssChartBody[data-v-45a07047] {
  padding: 0.875rem 1rem;
}
.cssNoData[data-v-45a07047] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  height: 190px;
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
}
.cssChartAndLegend[data-v-45a07047] {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.cssDonutWrap[data-v-45a07047] {
  position: relative;
  height: 220px;
  flex: 1 1 auto;
  min-width: 0;
}

/* Legend sits to the right of the donut as a single column. */
.cssLegend[data-v-45a07047] {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  flex-shrink: 0;
}
.cssLegendItem[data-v-45a07047] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.9rem;
  color: var(--p-text-color);
  min-width: 0;
}
.cssLegendItemClickable[data-v-45a07047] {
  cursor: pointer;
}
.cssLegendItemClickable:hover .cssLegendText[data-v-45a07047] {
  text-decoration: underline;
}
.cssLegendDot[data-v-45a07047] {
  width: 0.75rem;
  height: 0.75rem;

  border-radius: 0.125rem;
  flex-shrink: 0;
}
.cssLegendText[data-v-45a07047] {
  margin-right: 1rem;
}
.cssLegendPct[data-v-45a07047] {
  color: var(--p-text-muted-color);
  margin-left: auto;
  flex-shrink: 0;
}

.cssChartCard[data-v-8acf2f51] {
  background: var(--p-content-background);
  border: 1px solid var(--p-content-border-color);
  border-radius: 0.5rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
  overflow: hidden;
  height: 100%;
}
.cssChartHead[data-v-8acf2f51] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 0.875rem 1rem 0.625rem;
  border-bottom: 1px solid var(--p-content-border-color);
}
.cssChartTitle[data-v-8acf2f51] {
  font-size: 1rem;
  font-weight: 700;
  color: var(--p-text-color);
}
.cssChartSubtitle[data-v-8acf2f51] {
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
  margin-top: 1px;
}
.cssChartBody[data-v-8acf2f51] {
  padding: 0.875rem 1rem;
}
.cssNoData[data-v-8acf2f51] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  height: 270px;
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
}

.cssChartCard[data-v-c42011d5] {
  background: var(--p-content-background);
  border: 1px solid var(--p-content-border-color);
  border-radius: 0.5rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
  overflow: hidden;
  height: 100%;
}
.cssChartHead[data-v-c42011d5] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 0.875rem 1rem 0.625rem;
  border-bottom: 1px solid var(--p-content-border-color);
}
.cssChartTitle[data-v-c42011d5] {
  font-size: 1rem;
  font-weight: 700;
  color: var(--p-text-color);
}
.cssChartSubtitle[data-v-c42011d5] {
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
  margin-top: 1px;
}
.cssChartBody[data-v-c42011d5] {
  padding: 0.875rem 1rem;
}
.cssNoData[data-v-c42011d5] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  height: 270px;
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
}

.cssChartCard[data-v-384aa160] {
  background: var(--p-content-background);
  border: 1px solid var(--p-content-border-color);
  border-radius: 0.5rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
  overflow: hidden;
}
.cssChartHead[data-v-384aa160] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 0.875rem 1rem 0.625rem;
  border-bottom: 1px solid var(--p-content-border-color);
}
.cssChartTitle[data-v-384aa160] {
  font-size: 1rem;
  font-weight: 700;
  color: var(--p-text-color);
}
.cssChartSubtitle[data-v-384aa160] {
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
  margin-top: 1px;
}
.cssChartBody[data-v-384aa160] {
  padding: 0.875rem 1rem;
}
.cssNoData[data-v-384aa160] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  height: 220px;
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
}
.cssMuted[data-v-384aa160] { color: var(--p-text-muted-color);
}

/* ── Heatmap grid ─────────────────────────────────────────── */
.cssHmWrap[data-v-384aa160] {
  overflow-x: auto;
  padding-bottom: 0.25rem;
}
.cssHmHourRow[data-v-384aa160] {
  display: flex;
  gap: 0.5rem;
  margin-left: 2.75rem;
  margin-bottom: 0.2rem;
}
.cssHmHourLabel[data-v-384aa160] {
  width: 3rem;
  text-align: center;
  font-size: 0.75rem;
  color: var(--p-text-muted-color);
  flex-shrink: 0;
}
.cssHmRow[data-v-384aa160] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 2px;
}
.cssHmDayLabel[data-v-384aa160] {
  width: 2.75rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--p-text-muted-color);
  text-align: right;
  padding-right: 0.4rem;
  flex-shrink: 0;
}
.cssHmCell[data-v-384aa160] {
  width: 3rem;
  height: 1.5rem;
  border-radius: 3px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 600;
  cursor: default;
  transition: transform 0.1s;
}

/* Only cells with data are interactive — no-data (gray) cells don't enlarge or click. */
.cssHmCellClickable[data-v-384aa160] {
  cursor: pointer;
}
.cssHmCellClickable[data-v-384aa160]:hover {
  transform: scale(1.2);
  position: relative;
  z-index: 2;
}
.cssHmLegend[data-v-384aa160] {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.7rem;
  font-size: 0.75rem;
  color: var(--p-text-muted-color);
  flex-wrap: wrap;
}
.cssHmSwatch[data-v-384aa160] {
  width: 18px;
  height: 10px;
  border-radius: 2px;
}

.cssChartCard[data-v-77a11ff1] {
  background: var(--p-content-background);
  border: 1px solid var(--p-content-border-color);
  border-radius: 0.5rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
  overflow: hidden;
}
.cssChartHead[data-v-77a11ff1] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 0.875rem 1rem 0.625rem;
  border-bottom: 1px solid var(--p-content-border-color);
}
.cssChartTitle[data-v-77a11ff1] {
  font-size: 1rem;
  font-weight: 700;
  color: var(--p-text-color);
}
.cssChartSubtitle[data-v-77a11ff1] {
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
  margin-top: 1px;
}
.cssChartBody[data-v-77a11ff1] {
  padding: 0.875rem 1rem;
}
.cssChartBodyNp[data-v-77a11ff1] {
  padding: 0;
}
.cssNoData[data-v-77a11ff1] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  height: 160px;
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
}

/* ── Firmware matrix table ───────────────────────────────────── */
.cssFwWrap[data-v-77a11ff1] {
  overflow-x: auto;
}
.cssFwTbl[data-v-77a11ff1] {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8125rem;
}
.cssFwTbl thead th[data-v-77a11ff1] {
  padding: 0.6rem 0.9rem;
  font-size: 0.6875rem;
  font-weight: 700;
  color: var(--p-text-muted-color);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: var(--p-surface-50, #f8f9fc);
  border-bottom: 2px solid var(--p-content-border-color);
  text-align: center;
  white-space: nowrap;
}
.cssFwTbl thead th.cssFwColVersion[data-v-77a11ff1] {
  text-align: left;
  min-width: 160px;
}
.cssFwTbl tbody td[data-v-77a11ff1] {
  padding: 0.65rem 0.9rem;
  border-bottom: 1px solid var(--p-content-border-color);
  text-align: center;
}
.cssFwTbl tbody tr:last-child td[data-v-77a11ff1] {
  border-bottom: none;
}
.cssFwColVersion[data-v-77a11ff1] {
  text-align: left;
}
.cssFwVersion[data-v-77a11ff1] {
  font-weight: 700;
  font-family: 'SF Mono', 'Fira Code', monospace;
  font-size: 0.8125rem;
}
.cssFwHash[data-v-77a11ff1] {
  font-size: 0.6875rem;
  color: var(--p-text-muted-color);
  font-family: 'SF Mono', 'Fira Code', monospace;
  margin-top: 0.1rem;
}
.cssFwPlain[data-v-77a11ff1] {
  font-size: 0.75rem;
  color: var(--p-text-muted-color);
}
.cssFwVal[data-v-77a11ff1] {
  font-size: 0.875rem;
  font-weight: 700;
}
.cssFwUnit[data-v-77a11ff1] {
  font-size: 0.625rem;
  opacity: 0.7;
}

.cssLogTable[data-v-ba43d55c] {
  width: 100%;
}
.cssLogTable[data-v-ba43d55c] .p-datatable-paginator-bottom {
  border: 0;
}
.cssEmpty[data-v-ba43d55c] {
  padding: 1.5rem;
  text-align: center;
  color: var(--p-text-muted-color);
  font-size: 0.875rem;
}

/* ── Cell styles ──────────────────────────────────────────── */
.cssMono[data-v-ba43d55c] {
  font-family: 'Fira Code Local', 'Fira Code', ui-monospace, monospace;
  font-size: 0.8em;
}
.cssMonoMuted[data-v-ba43d55c] {
  font-family: 'Fira Code Local', 'Fira Code', ui-monospace, monospace;
  font-size: 0.8em;
  color: var(--p-text-muted-color);
}
.cssSeverityBadge[data-v-ba43d55c] {
  display: inline-flex;
  align-items: center;
  padding: 0.1em 0.55em;
  border-radius: 10px;
  font-size: 0.7em;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.cssMsgTruncate[data-v-ba43d55c] {
  display: block;
  max-width: 40em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.875em;
}

/* ── Row expansion ────────────────────────────────────────── */
.cssExpansion[data-v-ba43d55c] {
  padding: 0.5rem 0.75rem 0.75rem;
  background: var(--p-surface-50);
}
.cssExpansionLabel[data-v-ba43d55c] {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--p-text-muted-color);
  margin-bottom: 0.35rem;
}
.cssExpansionMessage[data-v-ba43d55c] {
  margin: 0;
  padding: 0.75rem 0.9rem;
  background: var(--p-content-background);
  border: 1px solid var(--p-content-border-color);
  border-radius: 0.375rem;
  font-family: 'Fira Code Local', 'Fira Code', ui-monospace, monospace;
  font-size: 0.85em;
  line-height: 1.6;
  color: var(--p-text-color);
  white-space: pre-wrap;
  word-break: break-word;
}

/* Drawer width is applied via the :style prop — PrimeVue teleports the drawer to
   <body>, so a scoped class rule here would never match its root element. */

/* ── Header ───────────────────────────────────────────────── */
.cssDrawerHeader[data-v-4396c704] {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  min-width: 0;
}
.cssDrawerTitle[data-v-4396c704] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1rem;
  font-weight: 700;
  color: var(--p-text-color);
}
.cssDrawerIcon[data-v-4396c704] {
  font-size: 1.1rem;
}
.cssDrawerChips[data-v-4396c704] {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.cssChip[data-v-4396c704] {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.6rem;
  border-radius: 20px;
  font-size: 0.7rem;
  font-weight: 600;
  border: 1px solid;
  white-space: nowrap;
}
.cssChipBlue[data-v-4396c704]  { background: #dbeafe; border-color: #93c5fd; color: #1e40af;
}
.cssChipRed[data-v-4396c704]   { background: #fee2e2; border-color: #fca5a5; color: #991b1b;
}
.cssChipAmber[data-v-4396c704] { background: #fef3c7; border-color: #fde68a; color: #92400e;
}
.cssChipGray[data-v-4396c704]  { background: var(--p-surface-100); border-color: var(--p-content-border-color); color: var(--p-text-muted-color);
}

/* ── Body ─────────────────────────────────────────────────── */
.cssDrawerBody[data-v-4396c704] {
  padding-top: 0.25rem;
}

.cssPage[data-v-63086c8b] {
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* ── Page header ─────────────────────────────────────────── */
.basPageHeader[data-v-63086c8b] {
  flex-shrink: 0;
}

/* ── Body ────────────────────────────────────────────────── */
.cssBody[data-v-63086c8b] {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 0.65em;
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}

/* ── Section label ───────────────────────────────────────── */
.cssSectionLabel[data-v-63086c8b] {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--p-text-muted-color);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  margin: 0.25rem 0 0;
}

/* ── Summary KPI grid ─────────────────────────────────────── */
.cssSummaryGrid[data-v-63086c8b] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.875rem;
}
@media (max-width: 1100px) {
.cssSummaryGrid[data-v-63086c8b] { grid-template-columns: repeat(2, 1fr);
}
}

/* ── Delta / muted / badge helpers ───────────────────────── */
.cssDeltaBad[data-v-63086c8b]  { color: #dc2626; font-weight: 700;
}
.cssDeltaGood[data-v-63086c8b] { color: #059669; font-weight: 700;
}
.cssMuted[data-v-63086c8b]     { color: var(--p-text-muted-color);
}
.cssMonoRed[data-v-63086c8b] {
  font-family: 'SF Mono', 'Fira Code', monospace;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #dc2626;
}
.cssBadge[data-v-63086c8b] {
  display: inline-flex;
  align-items: center;
  padding: 0.1em 0.5em;
  border-radius: 10px;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.cssBadgeEmerg[data-v-63086c8b] { background: #f3e8ff; color: #6b21a8;
}
.cssBadgeAlert[data-v-63086c8b] { background: #fde8d8; color: #9a3412;
}
.cssBadgeCrit[data-v-63086c8b]  { background: #fee2e2; color: #dc2626;
}
.cssBadgeErr[data-v-63086c8b]   { background: #fef2f2; color: #ef4444;
}

/* ── Chart rows ───────────────────────────────────────────── */
.cssChartRow21[data-v-63086c8b] {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 0.875rem;
  align-items: stretch;
}
.cssChartRow11[data-v-63086c8b] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.875rem;
  align-items: stretch;
}
.cssChartRow1[data-v-63086c8b] {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.875rem;
}
@media (max-width: 1280px) {
.cssChartRow21[data-v-63086c8b] { grid-template-columns: 1fr;
}
}
@media (max-width: 900px) {
.cssChartRow11[data-v-63086c8b] { grid-template-columns: 1fr;
}
}

.cssChartCard[data-v-c66c337e] {
  background: var(--p-content-background);
  border: 1px solid var(--p-content-border-color);
  border-radius: 0.5rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
  overflow: hidden;
  height: 100%;
}
.cssChartHead[data-v-c66c337e] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 0.875rem 1rem 0.625rem;
  border-bottom: 1px solid var(--p-content-border-color);
}
.cssChartTitle[data-v-c66c337e] {
  font-size: 1rem;
  font-weight: 700;
  color: var(--p-text-color);
}
.cssChartSubtitle[data-v-c66c337e] {
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
  margin-top: 1px;
}
.cssChartBody[data-v-c66c337e] {
  padding: 0.875rem 1rem;
}
.cssNoData[data-v-c66c337e] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  height: 270px;
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
}

.cssLogTable[data-v-61f3693d] {
  width: 100%;
}
.cssLogTable[data-v-61f3693d] .p-datatable-paginator-bottom {
  border: 0;
}
.cssEmpty[data-v-61f3693d] {
  padding: 1.5rem;
  text-align: center;
  color: var(--p-text-muted-color);
  font-size: 0.875rem;
}

/* ── Cell styles ──────────────────────────────────────────── */
.cssMono[data-v-61f3693d] {
  font-family: 'Fira Code Local', 'Fira Code', ui-monospace, monospace;
  font-size: 0.8em;
}
.cssMonoMuted[data-v-61f3693d] {
  font-family: 'Fira Code Local', 'Fira Code', ui-monospace, monospace;
  font-size: 0.8em;
  color: var(--p-text-muted-color);
}
.cssSeverityBadge[data-v-61f3693d] {
  display: inline-flex;
  align-items: center;
  padding: 0.1em 0.55em;
  border-radius: 10px;
  font-size: 0.7em;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.cssMsgTruncate[data-v-61f3693d] {
  display: block;
  max-width: 40em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.875em;
}

/* ── Row expansion ────────────────────────────────────────── */
.cssExpansion[data-v-61f3693d] {
  padding: 0.5rem 0.75rem 0.75rem;
  background: var(--p-surface-50);
}
.cssExpansionLabel[data-v-61f3693d] {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--p-text-muted-color);
  margin-bottom: 0.35rem;
}
.cssExpansionMessage[data-v-61f3693d] {
  margin: 0;
  padding: 0.75rem 0.9rem;
  background: var(--p-content-background);
  border: 1px solid var(--p-content-border-color);
  border-radius: 0.375rem;
  font-family: 'Fira Code Local', 'Fira Code', ui-monospace, monospace;
  font-size: 0.85em;
  line-height: 1.6;
  color: var(--p-text-color);
  white-space: pre-wrap;
  word-break: break-word;
}

/* Drawer width is applied via the :style prop — PrimeVue teleports the drawer to
   <body>, so a scoped class rule here would never match its root element. */

/* ── Header ───────────────────────────────────────────────── */
.cssDrawerHeader[data-v-1e04a60e] {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  min-width: 0;
}
.cssDrawerTitle[data-v-1e04a60e] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1rem;
  font-weight: 700;
  color: var(--p-text-color);
}
.cssDrawerIcon[data-v-1e04a60e] {
  font-size: 1.1rem;
}
.cssDrawerChips[data-v-1e04a60e] {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.cssChip[data-v-1e04a60e] {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.6rem;
  border-radius: 20px;
  font-size: 0.7rem;
  font-weight: 600;
  border: 1px solid;
  white-space: nowrap;
}
.cssChipBlue[data-v-1e04a60e]  { background: #dbeafe; border-color: #93c5fd; color: #1e40af;
}
.cssChipRed[data-v-1e04a60e]   { background: #fee2e2; border-color: #fca5a5; color: #991b1b;
}
.cssChipAmber[data-v-1e04a60e] { background: #fef3c7; border-color: #fde68a; color: #92400e;
}
.cssChipGray[data-v-1e04a60e]  { background: var(--p-surface-100); border-color: var(--p-content-border-color); color: var(--p-text-muted-color);
}

/* ── Body ─────────────────────────────────────────────────── */
.cssDrawerBody[data-v-1e04a60e] {
  padding-top: 0.25rem;
}

.cssBody[data-v-51a21676] {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}

/* ── Section label ───────────────────────────────────────── */
.cssSectionLabel[data-v-51a21676] {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--p-text-muted-color);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  margin: 0.25rem 0 0;
}

/* ── Summary KPI grid ─────────────────────────────────────── */
.cssSummaryGrid[data-v-51a21676] {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0.875rem;
}
@media (max-width: 1300px) {
.cssSummaryGrid[data-v-51a21676] { grid-template-columns: repeat(3, 1fr);
}
}
@media (max-width: 900px) {
.cssSummaryGrid[data-v-51a21676] { grid-template-columns: repeat(2, 1fr);
}
}

/* ── Delta / muted / badge helpers ───────────────────────── */
.cssDeltaBad[data-v-51a21676]  { color: #dc2626; font-weight: 700;
}
.cssDeltaGood[data-v-51a21676] { color: #059669; font-weight: 700;
}
.cssMuted[data-v-51a21676]     { color: var(--p-text-muted-color);
}
.cssMonoRed[data-v-51a21676] {
  font-family: 'SF Mono', 'Fira Code', monospace;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #dc2626;
}
.cssBadge[data-v-51a21676] {
  display: inline-flex;
  align-items: center;
  padding: 0.1em 0.5em;
  border-radius: 10px;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.cssBadgeEmerg[data-v-51a21676] { background: #f3e8ff; color: #6b21a8;
}
.cssBadgeAlert[data-v-51a21676] { background: #fde8d8; color: #9a3412;
}
.cssBadgeCrit[data-v-51a21676]  { background: #fee2e2; color: #dc2626;
}
.cssBadgeErr[data-v-51a21676]   { background: #fef2f2; color: #ef4444;
}

/* ── Chart rows ───────────────────────────────────────────── */
.cssChartRow21[data-v-51a21676] {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 0.875rem;
  align-items: stretch;
}
.cssChartRow11[data-v-51a21676] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.875rem;
  align-items: stretch;
}
.cssChartRow1[data-v-51a21676] {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.875rem;
}
@media (max-width: 1280px) {
.cssChartRow21[data-v-51a21676] { grid-template-columns: 1fr;
}
}
@media (max-width: 900px) {
.cssChartRow11[data-v-51a21676] { grid-template-columns: 1fr;
}
}

.cssChartCard[data-v-9ea74ec4] {
  background: var(--p-content-background);
  border: 1px solid var(--p-content-border-color);
  border-radius: 0.5rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
  overflow: hidden;
  height: 100%;
}
.cssChartHead[data-v-9ea74ec4] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 0.875rem 1rem 0.625rem;
  border-bottom: 1px solid var(--p-content-border-color);
}
.cssChartTitle[data-v-9ea74ec4] {
  font-size: 1rem;
  font-weight: 700;
  color: var(--p-text-color);
}
.cssChartSubtitle[data-v-9ea74ec4] {
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
  margin-top: 1px;
}
.cssChartBody[data-v-9ea74ec4] {
  padding: 0.875rem 1rem;
}
.cssNoData[data-v-9ea74ec4] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  height: 230px;
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
}

.cssBody[data-v-8263fc71] {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}

/* ── Section label ───────────────────────────────────────── */
.cssSectionLabel[data-v-8263fc71] {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--p-text-muted-color);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  margin: 0.25rem 0 0;
}

/* ── Summary KPI grid ─────────────────────────────────────── */
.cssSummaryGrid[data-v-8263fc71] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.875rem;
}
@media (max-width: 1300px) {
.cssSummaryGrid[data-v-8263fc71] { grid-template-columns: repeat(2, 1fr);
}
}

/* ── Delta / muted helpers ────────────────────────────────── */
.cssDeltaBad[data-v-8263fc71]  { color: #dc2626; font-weight: 700;
}
.cssDeltaGood[data-v-8263fc71] { color: #059669; font-weight: 700;
}
.cssMuted[data-v-8263fc71]     { color: var(--p-text-muted-color);
}

/* ── Call-direction card ──────────────────────────────────── */
.cssDirectionCard[data-v-8263fc71] {
  background: var(--p-content-background);
  border: 1px solid var(--p-content-border-color);
  border-radius: 0.5rem;
  padding: 0.875rem 1rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.cssDirectionLabel[data-v-8263fc71] {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--p-text-muted-color);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.cssDirectionRow[data-v-8263fc71] {
  display: flex;
  gap: 1rem;
}
.cssDirectionStat[data-v-8263fc71] {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}
.cssDirectionStatLabel[data-v-8263fc71] {
  font-size: 0.75rem;
  color: var(--p-text-muted-color);
}
.cssDirectionStatValue[data-v-8263fc71] {
  font-size: 1.375rem;
  font-weight: 700;
  color: var(--p-text-color);
  letter-spacing: -0.02em;
}

/* ── Chart rows ───────────────────────────────────────────── */
.cssChartRow111[data-v-8263fc71] {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.875rem;
  align-items: stretch;
}
@media (max-width: 1280px) {
.cssChartRow111[data-v-8263fc71] { grid-template-columns: 1fr;
}
}

.cssChartCard[data-v-e6760146] {
  background: var(--p-content-background);
  border: 1px solid var(--p-content-border-color);
  border-radius: 0.5rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
  overflow: hidden;
  height: 100%;
}
.cssChartHead[data-v-e6760146] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 0.875rem 1rem 0.625rem;
  border-bottom: 1px solid var(--p-content-border-color);
}
.cssChartTitle[data-v-e6760146] {
  font-size: 1rem;
  font-weight: 700;
  color: var(--p-text-color);
}
.cssChartSubtitle[data-v-e6760146] {
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
  margin-top: 1px;
}
.cssChartBody[data-v-e6760146] {
  padding: 0.875rem 1rem;
}
.cssNoData[data-v-e6760146] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  height: 270px;
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
}

.cssBody[data-v-1fe04cec] {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}

/* ── Section label ───────────────────────────────────────── */
.cssSectionLabel[data-v-1fe04cec] {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--p-text-muted-color);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  margin: 0.25rem 0 0;
}

/* ── Summary KPI grid ─────────────────────────────────────── */
.cssSummaryGrid[data-v-1fe04cec] {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.875rem;
}
@media (max-width: 900px) {
.cssSummaryGrid[data-v-1fe04cec] { grid-template-columns: 1fr;
}
}

/* ── Delta / muted helpers ────────────────────────────────── */
.cssDeltaBad[data-v-1fe04cec]  { color: #dc2626; font-weight: 700;
}
.cssDeltaGood[data-v-1fe04cec] { color: #059669; font-weight: 700;
}
.cssMuted[data-v-1fe04cec]     { color: var(--p-text-muted-color);
}

/* ── Chart rows ───────────────────────────────────────────── */
.cssChartRow22[data-v-1fe04cec] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.875rem;
  align-items: stretch;
}
.cssChartRow11[data-v-1fe04cec] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.875rem;
  align-items: stretch;
}
@media (max-width: 1400px) {
.cssChartRow22[data-v-1fe04cec] { grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 900px) {
.cssChartRow22[data-v-1fe04cec] { grid-template-columns: 1fr;
}
.cssChartRow11[data-v-1fe04cec] { grid-template-columns: 1fr;
}
}

.cssBody[data-v-f1e79bc1] {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}

/* ── Section label ───────────────────────────────────────── */
.cssSectionLabel[data-v-f1e79bc1] {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--p-text-muted-color);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  margin: 0.25rem 0 0;
}

/* ── Summary KPI grid ─────────────────────────────────────── */
.cssSummaryGrid[data-v-f1e79bc1] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.875rem;
}
@media (max-width: 1300px) {
.cssSummaryGrid[data-v-f1e79bc1] { grid-template-columns: repeat(2, 1fr);
}
}

/* ── Delta / muted helpers ────────────────────────────────── */
.cssDeltaBad[data-v-f1e79bc1]  { color: #dc2626; font-weight: 700;
}
.cssDeltaGood[data-v-f1e79bc1] { color: #059669; font-weight: 700;
}
.cssMuted[data-v-f1e79bc1]     { color: var(--p-text-muted-color);
}

/* ── Chart rows ───────────────────────────────────────────── */
.cssChartRow1[data-v-f1e79bc1] {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.875rem;
  align-items: stretch;
}
.cssChartRow3[data-v-f1e79bc1] {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.875rem;
  align-items: stretch;
}
@media (max-width: 1280px) {
.cssChartRow3[data-v-f1e79bc1] { grid-template-columns: 1fr;
}
}

.cssBody[data-v-92795e9c] {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}

/* ── Section label ───────────────────────────────────────── */
.cssSectionLabel[data-v-92795e9c] {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--p-text-muted-color);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  margin: 0.25rem 0 0;
}

/* ── Summary KPI grid ─────────────────────────────────────── */
.cssSummaryGrid[data-v-92795e9c] {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.875rem;
}
@media (max-width: 900px) {
.cssSummaryGrid[data-v-92795e9c] { grid-template-columns: 1fr;
}
}

/* ── Delta / muted helpers ────────────────────────────────── */
.cssDeltaBad[data-v-92795e9c]  { color: #dc2626; font-weight: 700;
}
.cssDeltaGood[data-v-92795e9c] { color: #059669; font-weight: 700;
}
.cssMuted[data-v-92795e9c]     { color: var(--p-text-muted-color);
}

/* ── Chart rows ───────────────────────────────────────────── */
.cssChartRow2[data-v-92795e9c] {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.875rem;
  align-items: stretch;
}
.cssChartRow1[data-v-92795e9c] {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.875rem;
  align-items: stretch;
}
@media (max-width: 900px) {
.cssChartRow2[data-v-92795e9c] { grid-template-columns: 1fr;
}
}

.cssBody[data-v-86da2a26] {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}

/* ── Section label ───────────────────────────────────────── */
.cssSectionLabel[data-v-86da2a26] {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--p-text-muted-color);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  margin: 0.25rem 0 0;
}

/* ── Summary KPI grid ─────────────────────────────────────── */
.cssSummaryGrid[data-v-86da2a26] {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.875rem;
}
@media (max-width: 900px) {
.cssSummaryGrid[data-v-86da2a26] { grid-template-columns: 1fr;
}
}

/* ── Delta / muted helpers ────────────────────────────────── */
.cssDeltaBad[data-v-86da2a26]  { color: #dc2626; font-weight: 700;
}
.cssDeltaGood[data-v-86da2a26] { color: #059669; font-weight: 700;
}
.cssMuted[data-v-86da2a26]     { color: var(--p-text-muted-color);
}

/* ── Chart rows ───────────────────────────────────────────── */
.cssChartRow11[data-v-86da2a26] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.875rem;
  align-items: stretch;
}
@media (max-width: 900px) {
.cssChartRow11[data-v-86da2a26] { grid-template-columns: 1fr;
}
}

.cssBody[data-v-6ce725a2] {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}

/* ── Section label ───────────────────────────────────────── */
.cssSectionLabel[data-v-6ce725a2] {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--p-text-muted-color);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  margin: 0.25rem 0 0;
}

/* ── Fleet-wide summary cards ─────────────────────────────── */
.cssSummaryGrid[data-v-6ce725a2] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.875rem;
}
@media (max-width: 900px) {
.cssSummaryGrid[data-v-6ce725a2] { grid-template-columns: repeat(2, 1fr);
}
}
.cssSummaryCard[data-v-6ce725a2] {
  background: var(--p-content-background);
  border: 1px solid var(--p-content-border-color);
  border-radius: 0.5rem;
  padding: 0.875rem 1rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.cssSummaryLabel[data-v-6ce725a2] {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--p-text-muted-color);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.cssSummaryValue[data-v-6ce725a2] {
  font-size: 1.875rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.1;
  color: var(--p-text-color);
}
.cssSummaryValueBad[data-v-6ce725a2] {
  color: #dc2626;
}

/* ── Module table panel ───────────────────────────────────── */
.cssPanel[data-v-6ce725a2] {
  background: var(--p-content-background);
  border: 1px solid var(--p-content-border-color);
  border-radius: 0.5rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
  overflow: hidden;
}
.cssModuleTable[data-v-6ce725a2] {
  width: 100%;
}
.cssEmpty[data-v-6ce725a2] {
  padding: 1.5rem;
  text-align: center;
  color: var(--p-text-muted-color);
  font-size: 0.875rem;
}
.cssMono[data-v-6ce725a2] {
  font-family: 'Fira Code Local', 'Fira Code', ui-monospace, monospace;
  font-size: 0.8em;
}
.cssDeltaBad[data-v-6ce725a2] {
  color: #dc2626;
  font-weight: 700;
}

.cssPage[data-v-9f8b7bda] {
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* ── Page header ─────────────────────────────────────────── */
.basPageHeader[data-v-9f8b7bda] {
  flex-shrink: 0;
}

/* ── Tabs ────────────────────────────────────────────────── */
.cssBtraceTabs[data-v-9f8b7bda] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}
[data-v-9f8b7bda] .cssTabList {
  flex-shrink: 0;
}
.cssTab[data-v-9f8b7bda] {
  display: flex;
  align-items: center;
  gap: 0.4em;
  font-size: 1rem;
  font-weight: 600;
  padding: 0.7em 1em;
}
.cssTabDot[data-v-9f8b7bda] {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
}

/* ── Tab panels ──────────────────────────────────────────── */
.cssTabPanels[data-v-9f8b7bda] {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 0.65em;
}
.cssTabPanel[data-v-9f8b7bda] {
  width: 100%;
  height: 100%;
  box-sizing: border-box;
}

/* ── Tab transition (mirrors CrashLogs.vue) ─────────────────── */
.cssTabPanelChange-enter-active[data-v-9f8b7bda],
.cssTabPanelChange-leave-active[data-v-9f8b7bda] {
  transition: opacity 0.5s ease, transform 0.5s ease;
}
.cssTabPanelChange-enter-from[data-v-9f8b7bda],
.cssTabPanelChange-leave-to[data-v-9f8b7bda] {
  opacity: 0;
  transform: translateY(0.5em);
}
.jse-theme-dark[data-v-93f10606] {
  /* over all fonts, sizes, and colors */
  --jse-theme-color: #2f6dd0;
  --jse-theme-color-highlight: #467cd2;
  --jse-background-color: #1e1e1e;
  --jse-text-color: #d4d4d4;

  /* main, menu, modal */
  --jse-main-border: 1px solid #4f4f4f;
  --jse-menu-color: #fff;
  --jse-modal-background: #2f2f2f;
  --jse-modal-overlay-background: rgba(0, 0, 0, 0.5);
  --jse-modal-code-background: #2f2f2f;

  /* tooltip in text mode */
  --jse-tooltip-color: var(--jse-text-color);
  --jse-tooltip-background: #4b4b4b;
  --jse-tooltip-border: 1px solid #737373;
  --jse-tooltip-action-button-color: inherit;
  --jse-tooltip-action-button-background: #737373;

  /* panels: navigation bar, gutter, search box */
  --jse-panel-background: #333333;
  --jse-panel-background-border: 1px solid #464646;
  --jse-panel-color: var(--jse-text-color);
  --jse-panel-color-readonly: #737373;
  --jse-panel-border: 1px solid #3c3c3c;
  --jse-panel-button-color-highlight: #e5e5e5;
  --jse-panel-button-background-highlight: #464646;

  /* navigation-bar */
  --jse-navigation-bar-background: #656565;
  --jse-navigation-bar-background-highlight: #7e7e7e;
  --jse-navigation-bar-dropdown-color: var(--jse-text-color);

  /* context menu */
  --jse-context-menu-background: #4b4b4b;
  --jse-context-menu-background-highlight: #595959;
  --jse-context-menu-separator-color: #595959;
  --jse-context-menu-color: var(--jse-text-color);
  --jse-context-menu-button-background: #737373;
  --jse-context-menu-button-background-highlight: #818181;
  --jse-context-menu-button-color: var(--jse-context-menu-color);

  /* contents: json key and values */
  --jse-key-color: #9cdcfe;
  --jse-value-color: var(--jse-text-color);
  --jse-value-color-number: #b5cea8;
  --jse-value-color-boolean: #569cd6;
  --jse-value-color-null: #569cd6;
  --jse-value-color-string: #ce9178;
  --jse-value-color-url: #ce9178;
  --jse-delimiter-color: #949494;
  --jse-edit-outline: 2px solid var(--jse-text-color);

  /* contents: selected or hovered */
  --jse-selection-background-color: #464646;
  --jse-selection-background-light-color: #333333;
  --jse-hover-background-color: #343434;

  /* contents: section of collapsed items in an array */
  --jse-collapsed-items-background-color: #333333;
  --jse-collapsed-items-selected-background-color: #565656;
  --jse-collapsed-items-link-color: #b2b2b2;
  --jse-collapsed-items-link-color-highlight: #ec8477;

  /* contents: highlighting of search results */
  --jse-search-match-color: #724c27;
  --jse-search-match-outline: 1px solid #966535;
  --jse-search-match-active-color: #9f6c39;
  --jse-search-match-active-outline: 1px solid #bb7f43;

  /* contents: inline tags inside the JSON document */
  --jse-tag-background: #444444;
  --jse-tag-color: #bdbdbd;

  /* controls in modals: inputs, buttons, and `a` */
  --jse-input-background: #3d3d3d;
  --jse-input-border: var(--jse-main-border);
  --jse-button-background: #808080;
  --jse-button-background-highlight: #7a7a7a;
  --jse-button-color: #e0e0e0;
  --jse-a-color: #55abff;
  --jse-a-color-highlight: #4387c9;

  /* svelte-select */
  --background: #3d3d3d;
  --border: 1px solid #4f4f4f;
  --listBackground: #3d3d3d;
  --itemHoverBG: #505050;
  --multiItemBG: #5b5b5b;
  --inputColor: #d4d4d4;
  --multiClearBG: #8a8a8a;
  --listShadow: 0 2px 6px 0 rgba(0, 0, 0, 0.24);

  /* color picker */
  --jse-color-picker-background: #656565;
  --jse-color-picker-border-box-shadow: #8c8c8c 0 0 0 1px;
}
.cssVars[data-v-93f10606] {
  --bui-json-editor-container-width: var(--bui-json-editor-width, 600px);
  --jse-font-size-mono: var(--bui-json-editor-font-size, 16px);
  --jse-line-height: var(--bui-json-editor-line-height, calc(1em + 6px));
}
.cssJsonEditorContainer[data-v-93f10606] {
  width: var(--bui-json-editor-container-width);
}


.cssVars[data-v-c8a437cf] {
  --profile-header-height: 136px;
  --property-width: 380px;
  --font-weight-semi-bold: 600;

  --bui-json-container-width: 800px;
  --bui-json-name-width: 340px;

  --bui-json-level-0-odd-color: #f2f2f2;
  --bui-json-level-0-hover-color: #e6e6e6;
  --bui-json-level-1-odd-color: #f2f2f2;
  --bui-json-level-1-hover-color: #e6e6e6;
  --bui-json-level-2-odd-color: #f2f2f2;
  --bui-json-level-2-hover-color: #e6e6e6;
  --bui-json-level-3-odd-color: #f2f2f2;
  --bui-json-level-3-hover-color: #e6e6e6;
  --bui-json-level-4-odd-color: #f2f2f2;
  --bui-json-level-4-hover-color: #e6e6e6;
  --bui-json-level-5-odd-color: #f2f2f2;
  --bui-json-level-5-hover-color: #e6e6e6;
}
.cssDetail[data-v-c8a437cf] {
  margin-top: 20px;
  font-size: 18pt;
  font-weight: var(--font-weight-semi-bold);
}
.cssButtonRow[data-v-c8a437cf] {
  display: flex;
  align-items: center;
  gap: 20px;
  margin: 20px;
}
.cssContainer[data-v-c8a437cf] {
  margin-left: 100px;
  padding: 10px 0px;
}
.cssRow[data-v-c8a437cf] {
  margin-top: 20px;
  margin-bottom: 20px;
  width: var(--property-width);
}
.cssPropertyLabel[data-v-c8a437cf] {
  display: block;
  width: 250px;
  margin-bottom: 10px;
  font-weight: var(--font-weight-semi-bold);
}
.cssPropertyValue[data-v-c8a437cf] {
  display: block;
  width: var(--property-width);
  font-size: 20px;
}
.cssReadOnly[data-v-c8a437cf] {
  padding-left: 40px;
  border-bottom: 2px solid #DDD;
}
.cssNullValue[data-v-c8a437cf] {
  font-family: 'Fira Code Local', monospace;
  color: #CCC;
}
.cssButtonsFlexContainer[data-v-c8a437cf] {
  display: flex;
  align-items: center;
  gap: 30px;
  margin-top: 50px;
  font-size: 30px;
}
.cssTextbox[data-v-c8a437cf] {
  display: block;
  width: var(--property-width);
  font-size: 20px;
}
.cssMessage[data-v-c8a437cf] {
  display: flex;
  align-items: center;
  margin-top: 20px;
  gap: 10px;
  width: 600px;
}
.cssActionIcon[data-v-c8a437cf] {
  width: 24px;
  height: 24px;
}
.cssActionMessage[data-v-c8a437cf] {
  font-size: inherit;
}
.cssTitleRow[data-v-c8a437cf] {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 5px;
}
.cssTitle[data-v-c8a437cf] {
  font-weight: var(--font-weight-semi-bold);
}
.cssSwitch[data-v-c8a437cf] {
  display: inline;
  width: 30px;
}
a[data-v-c8a437cf]:link, a[data-v-c8a437cf]:visited, a[data-v-c8a437cf]:hover, a[data-v-c8a437cf]:active {
  text-decoration: none;
}
.cssScrollContainer[data-v-c8a437cf] {
  /* appbar 32px, padding-top 8px, padding-bottom 8px, footer 40px */
  height: calc(100vh - 32px - 8px - var(--profile-header-height) - 8px - 40px);
  width: 100%;

  /* hide horizontal scroll bar */
  overflow-x: hidden;

  overflow-y: auto;
}

.errorHeader[data-v-1c049823] {
    margin: 0 0 20px 0;
}
.errorContainer[data-v-1c049823] {
    padding: 20px;
    position: absolute;
    width: 100vw;
    height: calc(100vh - var(--app-appbar-h));
    z-index: 1000;
    top: 0;
    left: 0;
    background-color: var(--bui-base-background-color);
}

.container[data-v-0bdfd0d5] {
  display: flex;
  align-items: center;
  justify-content: center;
}
.msgContainer[data-v-0bdfd0d5] {
  display: flex;
  align-items: center;
  font-size: 3em;
  gap: 30px;
}


/* Title row ---------------------------------------------------------------- */
.cssTitleRow[data-v-942371c9] {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
}
.cssTitleGroup[data-v-942371c9] {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}
.cssTitle[data-v-942371c9] {
  font-size: 1.05rem;
  font-weight: 600;
  min-width: 0;
}
.cssTitleSub[data-v-942371c9] {
  font-size: 0.75rem;
  color: var(--p-text-muted-color, #94a3b8);
}
.cssTitleBtn[data-v-942371c9] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1.75rem;
  height: 1.75rem;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 50%;
  color: #6b7280;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.cssTitleBtn[data-v-942371c9]:hover {
  background: rgba(0, 0, 0, 0.07);
  color: #1f2937;
}

/* Info grid (view mode) ---------------------------------------------------- */
.cssInfoGrid[data-v-942371c9] {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.7rem 1.25rem;
}
.cssInfoCell[data-v-942371c9] {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-width: 0;
}

/* Row divider: a light horizontal rule between rows (not under the last one),
   relying on the fixed 3-column grid so every cell from the 2nd row onward gets it. */
.cssInfoCell[data-v-942371c9]:nth-child(n+4) {
  border-top: 1px solid var(--p-content-border-color, #e2e8f0);
  padding-top: 0.7rem;
}
.cssInfoLabel[data-v-942371c9] {
  font-size: 0.68rem;
  font-weight: 600;
  line-height: 1.5;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--p-text-muted-color, #94a3b8);
  white-space: nowrap;
}
.cssInfoValue[data-v-942371c9] {
  font-family: 'Fira Code Local', ui-monospace, monospace;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--p-text-color, #1e293b);
  word-break: break-all;
}
.cssInfoValueNormal[data-v-942371c9] {
  font-family: inherit;
}

/* Edit mode 2-column metadata grid ---------------------------------------- */
.cssMetaGrid[data-v-942371c9] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.6rem 1.25rem;
  align-items: start;
}
.cssMetaField[data-v-942371c9] {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  align-items: stretch;
}
.cssMetaFieldSpan2[data-v-942371c9] {
  grid-column: 1 / -1;
}

/* Force PvInputText to fill the full description field width */
.cssMetaFieldSpan2[data-v-942371c9] .bui-input-container {
  max-width: 100%;
  width: 100%;
}
.cssMetaLabel[data-v-942371c9] {
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--p-text-muted-color, #94a3b8);
}

/* Section separator -------------------------------------------------------- */
.cssSectionRule[data-v-942371c9] {
  border: none;
  border-top: 1px solid var(--p-content-border-color, #e2e8f0);
  margin: 0;
}

/* Scrollable content area -------------------------------------------------- */
.cssScrollArea[data-v-942371c9] {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

/* Section header ----------------------------------------------------------- */
.cssSectionHeader[data-v-942371c9] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding-bottom: 0.45rem;
  border-bottom: 1px solid var(--p-content-border-color, #e2e8f0);
  margin-bottom: 0.55rem;
}
.cssSectionTitle[data-v-942371c9] {
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: var(--p-text-color, #1e293b);
}

/* Pill toggle -------------------------------------------------------------- */
.cssPillToggle[data-v-942371c9] {
  display: inline-flex;
  background: var(--p-surface-100, #f1f5f9);
  border: 1px solid var(--p-content-border-color, #e2e8f0);
  border-radius: 6px;
  overflow: hidden;
  flex-shrink: 0;
}
.cssPillToggle button[data-v-942371c9] {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.22rem 0.65rem;
  font-size: 0.74rem;
  font-weight: 600;
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--p-text-muted-color, #64748b);
  transition: background-color 0.15s ease, color 0.15s ease;
  white-space: nowrap;
  line-height: 1.4;
}
.cssPillToggle button.cssActive[data-v-942371c9] {
  background: var(--p-primary-color, #3b82f6);
  color: #ffffff;
}
.cssPillToggle button[data-v-942371c9]:not(.cssActive):hover {
  background: var(--p-surface-200, #e2e8f0);
  color: var(--p-text-color, #1e293b);
}
.cssTelemetryModeToggle[data-v-942371c9] {
  margin-left: auto;
}

/* Schedule mode pill — same visual size as the Form/JSON pill */
.cssScheduleModePill button[data-v-942371c9] {
  padding: 0.22rem 0.65rem;
  font-size: 0.74rem;
  gap: 0.3rem;
}

/* Cron preset select ------------------------------------------------------- */
.cssCronSelect[data-v-942371c9] {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: 0 0.5rem;
  height: 2rem;
  font-size: 0.84rem;
  border: 1px solid var(--p-content-border-color, #e2e8f0);
  border-radius: 5px;
  background: var(--p-surface-0, #ffffff);
  color: var(--p-text-color, #1e293b);
  cursor: pointer;
  outline: none;
  transition: border-color 0.15s ease;
}
.cssCronSelect[data-v-942371c9]:focus {
  border-color: var(--p-primary-color, #3b82f6);
}

/* Schedule field header (label + pill toggle row) -------------------------- */
.cssScheduleHeader[data-v-942371c9] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.4rem;
  margin-bottom: 0.2rem;
  min-height: 1.75rem; /* matches pill toggle button height so both meta fields have the same header height */
}

/* Telemetry section -------------------------------------------------------- */
.cssTelemetrySection[data-v-942371c9] {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

/* Telemetry view mode */
.cssTelemetryView[data-v-942371c9] {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.cssTelemetryViewMeta[data-v-942371c9] {
  display: flex;
  gap: 2rem;
}
.cssTelemetryViewMetaItem[data-v-942371c9] {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.cssTelemetryViewKey[data-v-942371c9] {
  font-size: 0.68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--p-text-muted-color, #94a3b8);
}
.cssTelemetryViewVal[data-v-942371c9] {
  font-size: 0.82rem;
  font-family: 'Fira Code Local', ui-monospace, monospace;
  color: var(--p-text-color, #1e293b);
}
.cssTelemetryTable[data-v-942371c9] {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8rem;
}
.cssTelemetryTable th[data-v-942371c9],
.cssTelemetryTable td[data-v-942371c9] {
  text-align: left;
  padding: 0.3rem 0.6rem;
  border: 1px solid var(--p-content-border-color, #e2e8f0);
}
.cssTelemetryTable th[data-v-942371c9] {
  font-weight: 600;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: var(--p-surface-50, #f8fafc);
  color: var(--p-text-muted-color, #94a3b8);
}
.cssTelemetryExcludeCell[data-v-942371c9] {
  max-width: 22rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Telemetry JSON edit mode */
.cssTelemetryJsonEdit[data-v-942371c9] {
  display: flex;
  flex-direction: column;
}
.cssTelemetryTextarea[data-v-942371c9] {
  width: 100%;
  min-height: 200px;
  font-family: 'Fira Code Local', ui-monospace, monospace;
  font-size: 0.8rem;
  line-height: 1.55;
  padding: 0.6rem 0.75rem;
  border: 1px solid var(--p-content-border-color, #e2e8f0);
  border-radius: 6px;
  background: var(--p-surface-0, #ffffff);
  color: var(--p-text-color, #1e293b);
  resize: vertical;
  box-sizing: border-box;
  outline: none;
  transition: border-color 0.15s ease;
}
.cssTelemetryTextarea[data-v-942371c9]:focus {
  border-color: var(--p-primary-color, #3b82f6);
}

/* Telemetry edit mode */
.cssTelemetryEdit[data-v-942371c9] {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.cssTelemetryMetaRow[data-v-942371c9] {
  display: flex;
  gap: 1rem;
}
.cssTelemetryMetaField[data-v-942371c9] {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

/* Make PvInputText fill the same width as the preset <select> */
.cssTelemetryMetaField[data-v-942371c9] .bui-input-container {
  max-width: 100%;
  width: 100%;
}

/* Lock text input to the same 2rem height as cssCronSelect so toggling doesn't shift layout */
.cssTelemetryMetaField[data-v-942371c9] .bui-input {
  height: 2rem;
  box-sizing: border-box;
}
.cssTelemetryLabel[data-v-942371c9] {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--p-text-muted-color, #64748b);
}
.cssTelemetryDatasetsHeader[data-v-942371c9] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 0.4rem;
  padding-bottom: 0.1rem;
  border-top: 1px solid var(--p-content-border-color, #e2e8f0);
}
.cssTelemetryEmpty[data-v-942371c9] {
  font-size: 0.82rem;
  color: var(--p-text-muted-color, #94a3b8);
  margin: 0;
  padding: 0.15rem 0;
}
.cssTelemetryDatasetCard[data-v-942371c9] {
  display: flex;
  flex-direction: column;
  background: #f9fafb;
  border: 1px solid var(--p-content-border-color, #e2e8f0);
  border-radius: 5px;
  overflow: hidden;
}
.cssTelemetryDatasetTop[data-v-942371c9] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.4rem 0.65rem;
  background: #f3f4f6;
  border-bottom: 1px solid var(--p-content-border-color, #e2e8f0);
}
.cssTelemetryDatasetName[data-v-942371c9] {
  flex: 1;
  min-width: 0;
}
.cssTelemetryDatasetTopSpacer[data-v-942371c9] {
  flex: 1;
}
.cssTelemetryDatasetFields[data-v-942371c9] {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.55rem 0.85rem;
  align-items: start;
  padding: 0.7rem 0.75rem;
}
.cssTelemetryDatasetField[data-v-942371c9] {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}

/* Make PvInputText fill the column the same way the <select> does */
.cssTelemetryDatasetField[data-v-942371c9] .bui-input-container {
  max-width: 100%;
  width: 100%;
}

/* Lock PvInputText to the same 2rem height as cssCronSelect so toggling doesn't shift the card */
.cssTelemetryDatasetField[data-v-942371c9] .bui-input {
  height: 2rem;
  box-sizing: border-box;
}
.cssTelemetryFieldLabel[data-v-942371c9] {
  font-size: 0.68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--p-text-muted-color, #94a3b8);
}
.cssCronDesc[data-v-942371c9] {
  font-size: 0.72rem;
  color: var(--p-primary-color, #3b82f6);
  font-style: italic;
}

/* Icon button (used for dataset remove) ------------------------------------ */
.cssIconBtn[data-v-942371c9] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1.5rem;
  height: 1.5rem;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 4px;
  color: #9ca3af;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.cssIconBtn[data-v-942371c9]:hover {
  background: rgba(239, 68, 68, 0.1);
  color: #ef4444;
}

/* Advanced JSON section ---------------------------------------------------- */
.cssAdvancedSection[data-v-942371c9] {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.cssAdvancedToggle[data-v-942371c9] {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background: transparent;
  border: none;
  padding: 0.2rem 0;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--p-text-muted-color, #64748b);
  cursor: pointer;
  transition: color 0.15s ease;
}
.cssAdvancedToggle[data-v-942371c9]:hover {
  color: var(--p-primary-color, #3b82f6);
}
.cssAdvancedEditor[data-v-942371c9] {
  height: 300px;
  --bui-json-container-width: 100%;
  --bui-json-name-width: 220px;
  --bui-json-level-0-odd-color: #f2f2f2;
  --bui-json-level-0-hover-color: #e6e6e6;
  --bui-json-level-1-odd-color: #f2f2f2;
  --bui-json-level-1-hover-color: #e6e6e6;
  --bui-json-level-2-odd-color: #f2f2f2;
  --bui-json-level-2-hover-color: #e6e6e6;
  --bui-json-level-3-odd-color: #f2f2f2;
  --bui-json-level-3-hover-color: #e6e6e6;
  --bui-json-level-4-odd-color: #f2f2f2;
  --bui-json-level-4-hover-color: #e6e6e6;
  --bui-json-level-5-odd-color: #f2f2f2;
  --bui-json-level-5-hover-color: #e6e6e6;
}

/* Footer ------------------------------------------------------------------- */
.cssFooter[data-v-942371c9] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 0.25rem;
  border-top: 1px solid var(--p-content-border-color, #e2e8f0);
}
.cssFooterButtons[data-v-942371c9] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-left: auto;
}
.cssMessage[data-v-942371c9] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  min-width: 0;
}
.cssActionIcon[data-v-942371c9] {
  flex-shrink: 0;
  width: 1.1rem;
  height: 1.1rem;
}
.cssActionMessage[data-v-942371c9] {
  font-size: inherit;
  min-width: 0;
  word-break: break-word;
}

.cssDialogConfirmVars[data-v-e9d1201d] {
  --dialog-w: var(--dialog-confirm-w, 800px);
  --dialog-h: var(--dialog-confirm-h, 500px);
  --dialog-bg: var(--dialog-confirm-bg, var(--bui-base-background-color));
  --dialog-corner: var(--dialog-confirm-corner, 10px);
}
.cssDialogConfirmDarkModeVars[data-v-e9d1201d] {
  --dialog-border-darkmode: 1px solid var(--bui-base-foreground-color);
}
.flex[data-v-e9d1201d] {
  display: flex;
  flex-direction: row;
}
.cssModal[data-v-e9d1201d] {
  margin: 0;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;

  z-index: 5;
  background-color: var(--bas-backdrop-bg);
}
.cssFlexTopDown[data-v-e9d1201d] {
  display: flex;
  flex-direction: column;
}
.cssFlexLeftRight[data-v-e9d1201d] {
  display: flex;
  flex-direction: row;
}
.cssDialog[data-v-e9d1201d] {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
  width: var(--dialog-w);
  height: var(--dialog-h);

  background-color: var(--dialog-bg);
  border: var(--dialog-border-darkmode);
  border-radius: var(--dialog-corner);
  padding: 20px;

  display: flex;
  flex-direction: column;
  gap: 12px;

  box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.25);
}
.cssConfirmMessageBlock[data-v-e9d1201d] {
  width: calc(var(--dialog-w) - 40px);
  height: calc(var(--dialog-h) - 110px);

  display: flex;
  justify-content: space-between;
  align-items: center;
  align-content: center;
}
.cssBottomRow[data-v-e9d1201d] {
  height: 30px;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  gap: 50px;
}
.inputSelect[data-v-e9d1201d]{
    margin-right: 20px;
    width: 210px;
}
.inputGrid[data-v-e9d1201d] {
    margin-right: 20px;
}


.cssToolBar[data-v-db6cc35e] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
}
.cssToolBarLeft[data-v-db6cc35e] {
  display: flex;
  gap: 20px;
  align-items: center;
}
.cssToolBarRight[data-v-db6cc35e] {
  display: flex;
  gap: 0.5em;
  align-items: center;
  justify-content: flex-end;
}
.cssTable[data-v-db6cc35e] .p-datatable-paginator-bottom {
  border: 0;
}
.cssLoadingSpinner[data-v-db6cc35e] {
  width: 1.25rem;
  height: 1.25rem;
  opacity: 0.55;
}

/* Component-specific width; all other multiselect styles come from toolbar.css */
.cssColumnMultiSelect[data-v-db6cc35e] {
  width: 2.75em;
}
.cssColumnMultiSelect[data-v-db6cc35e] .p-multiselect-dropdown-icon {
  font-size: 1.25em;
}
a[data-v-db6cc35e]:link, a[data-v-db6cc35e]:visited, a[data-v-db6cc35e]:hover, a[data-v-db6cc35e]:active {
  text-decoration: none;
}

/* Portions of this code may have been modified by generative ai. */
.cssDialogMsg[data-v-db6cc35e] {
  font-size: 18pt;
  text-align: center;
  word-wrap: break-word;
  overflow-wrap: break-word;
}
.cssDialogMainText[data-v-db6cc35e] {
  text-align: center;
  line-height: 1.4;
  margin-bottom: 0.5em;
}
.cssDialogWarning[data-v-db6cc35e] {
  padding-top: 0.5em;
  font-size: 14pt;
  line-height: 1.3;
  word-wrap: break-word;
  overflow-wrap: break-word;
}
.cssProduct[data-v-db6cc35e] {
  font-style: italic;
  font-weight: 600;
  word-break: break-word;
}
.cssProfile[data-v-db6cc35e] {
  font-style: italic;
  font-weight: 600;
  word-break: break-word;
  display: inline-block;
  max-width: 100%;
}

.cssPlatformFeatures[data-v-1e044a10] {
  width: 100%;
}
.cssIntro[data-v-1e044a10] {
  margin: 0 0 1rem;
  font-size: 0.875rem;
  color: var(--p-text-muted-color);
  max-width: 46rem;
}
.cssNotLoaded[data-v-1e044a10] {
  display: flex;
  justify-content: center;
  padding: 2rem;
}
.cssNodeLabel[data-v-1e044a10] {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
.cssProductTag[data-v-1e044a10] {
  font-size: 0.7rem;
}
.cssNodeDescription[data-v-1e044a10] {
  font-size: 0.78rem;
  color: var(--p-text-muted-color);
}

/* Page shell: readable text even when parent .bui-primary sets a light theme foreground */
.cssSettingsPage[data-v-288cca6a] {
  --settings-fg: #0f172a;
  --settings-fg-muted: #64748b;
  --settings-border: #e2e8f0;
  --settings-tab-inactive: #475569;
  --settings-tab-hover: #1e293b;

  width: 100%;
  min-height: 0;
  padding: 1rem 1.25rem 2rem;
  box-sizing: border-box;
  color: var(--settings-fg);
}
.cssPageHeading[data-v-288cca6a] {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid var(--p-content-border-color, #e5e7eb);
  margin-bottom: 1.5rem;
}
.cssPageTitle[data-v-288cca6a] {
  font-size: 1.35rem;
  font-weight: 700;
  margin: 0;
  line-height: 1.2;
  color: var(--p-text-color);
}
.cssPageSubtitle[data-v-288cca6a] {
  font-size: 0.82rem;
  color: var(--p-text-muted-color);
}
.cssSettingsTablist[data-v-288cca6a] {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 0;
  margin-bottom: 1.25rem;
  border-bottom: 1px solid var(--settings-border);
  color: var(--settings-tab-inactive);
}
.cssSettingsTab[data-v-288cca6a] {
  position: relative;
  margin: 0;
  padding: 0.65rem 1.1rem 0.75rem;
  border: none;
  border-bottom: 2px solid transparent;
  background: transparent;
  font-family: inherit;
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--settings-tab-inactive);
  cursor: pointer;
  transition:
    color 0.18s ease,
    border-color 0.18s ease,
    background-color 0.18s ease;
}
.cssSettingsTab[data-v-288cca6a]:hover {
  color: var(--settings-tab-hover);
  border-bottom-color: #cbd5e1;
}
.cssSettingsTab--active[data-v-288cca6a] {
  font-weight: 600;
  color: var(--p-primary-color, #0284c7);
  border-bottom-color: var(--p-primary-color, #0284c7);
}
.cssSettingsTabPanels[data-v-288cca6a] {
  min-height: 12rem;
}
.cssSettingsPanel[data-v-288cca6a] {
  width: 100%;
}
.cssSettingsPanel--general[data-v-288cca6a] {
  padding-top: 0.25rem;
}
.cssSettingsGeneralMax[data-v-288cca6a] {
  max-width: 56rem;
  width: 100%;
}
.cssSettingsCard[data-v-288cca6a] {
  background: #ffffff;
  border-radius: 0.5rem;
  box-shadow:
    0 1px 3px rgba(15, 23, 42, 0.08),
    0 1px 2px rgba(15, 23, 42, 0.06);
  border: 1px solid var(--settings-border);
  overflow: hidden;
}
.cssSettingsRow[data-v-288cca6a] {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0;
  padding: 1.75rem 2rem;
  border-bottom: 1px solid #e2e8f0;
}
.cssSettingsRow[data-v-288cca6a]:last-child {
  border-bottom: none;
}
.cssSettingsRowText[data-v-288cca6a] {
  flex: 0 0 60%;
  max-width: 60%;
  min-width: 0;
  padding-right: 2rem;
}
.cssSettingsRowTitle[data-v-288cca6a] {
  font-size: 1rem;
  font-weight: 600;
  color: #111827;
  line-height: 1.35;
}
.cssSettingsRowDesc[data-v-288cca6a] {
  margin: 0.25rem 0 0;
  font-size: 0.875rem;
  line-height: 1.45;
  color: #6b7280;
}
.cssSettingsRowControls[data-v-288cca6a] {
  flex: 0 0 40%;
  max-width: 40%;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem;
}
.cssNumberInput[data-v-288cca6a] {
  width: 5.5rem;
  height: 2.25rem;
  padding: 0 0.625rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  font-size: 0.9rem;
  font-family: inherit;
  color: #374151;
  background: #ffffff;
  outline: none;
  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease;
  appearance: textfield;
  -moz-appearance: textfield;
}
.cssNumberInput[data-v-288cca6a]:focus {
  border-color: var(--p-primary-color, #0284c7);
  box-shadow: 0 0 0 3px rgba(2, 132, 199, 0.12);
}
.cssNumberInput[data-v-288cca6a]::-webkit-inner-spin-button,
.cssNumberInput[data-v-288cca6a]::-webkit-outer-spin-button {
  opacity: 0.6;
}
.cssSettingsPanel--profiles[data-v-288cca6a] {
  width: 100%;
  max-width: none;
}
.cssProfilesInSettings[data-v-288cca6a] {
  width: 100%;
}
.cssProfilesInSettings[data-v-288cca6a] .bui-col {
  padding-left: 0;
  padding-right: 0;
  max-width: 100%;
}
.cssSettingsStatusSlot[data-v-288cca6a] {
  display: inline-flex;
  align-items: center;
  min-width: 5rem;
  min-height: 1.5rem;
}
.cssSettingsSaved[data-v-288cca6a] {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  color: #16a34a;
}
.cssStatusIcon[data-v-288cca6a] {
  display: inline-block;
  font-size: 0.85rem;
}
.cssSavedText[data-v-288cca6a] {
  font-size: 0.8rem;
  font-weight: 500;
}
.vueStatusIcon-enter-active[data-v-288cca6a],
.vueStatusIcon-leave-active[data-v-288cca6a] {
  transition: opacity 0.4s ease;
}
.vueStatusIcon-enter-from[data-v-288cca6a],
.vueStatusIcon-leave-to[data-v-288cca6a] {
  opacity: 0;
}

.cssTabs[data-v-7257877a] {
  width: 100%;
  padding-left: 0.5em;
  margin-bottom: 1rem;
}
.cssFilterBar[data-v-7257877a] {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-bottom: 1rem;
  align-items: center;
  width: 100%;
}
.cssFilterControl[data-v-7257877a] {
  width: 180px;
}
.cssActionButtons[data-v-7257877a] {
  display: flex;
  gap: 0.5em;
  align-items: center;
}
.cssBadge[data-v-7257877a] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 24px;
  border-radius: 12px;
  background: var(--bui-primary-color, #0078d4);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0 6px;
}
.cssMuted[data-v-7257877a] {
  color: var(--bui-muted-color, #888);
  font-size: 0.85rem;
}
.cssExpansion[data-v-7257877a] {
  padding: 0.75rem 1rem;
}
.cssChipSection[data-v-7257877a] {
  margin-bottom: 0.5rem;
}
.cssChipList[data-v-7257877a] {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.25rem;
}
.cssChip[data-v-7257877a] {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.2rem 0.6rem;
  border-radius: 16px;
  background: var(--bui-surface-color, #e8e8e8);
  font-size: 0.8rem;
}
.cssChipComponent[data-v-7257877a] {
  background: var(--bui-info-bg, #e0f0ff);
}
.cssChipRemove[data-v-7257877a] {
  transform: scale(0.6);
  margin: 0;
  padding: 0;
}
.cssMetaTag[data-v-7257877a] {
  display: inline-block;
  padding: 0.15rem 0.5rem;
  margin: 0.15rem;
  border-radius: 4px;
  background: var(--bui-surface-color, #f0f0f0);
  font-size: 0.8rem;
  font-family: monospace;
}
.cssVersionLabel[data-v-7257877a] {
  font-weight: 500;
}
.cssVersionResource[data-v-7257877a] {
  padding: 0.25rem 0;
  border-bottom: 1px solid var(--bui-border-color, #eee);
}
.cssUploadCard[data-v-7257877a] {
  background: var(--bui-base-background-color);
  padding: 1.5rem;
  border-radius: 10px;
  width: 100%;
}
.cssToggleBar[data-v-7257877a] {
  display: flex;
  gap: 20px;
  margin-bottom: 1rem;
}
.cssFormSection[data-v-7257877a] {
  margin-bottom: 1.25rem;
}
.cssFormRow[data-v-7257877a] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
}
.cssFormRow label[data-v-7257877a] {
  min-width: 80px;
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--bui-base-foreground-color);
}
.cssFormControl[data-v-7257877a] {
  flex: 1;
  max-width: 400px;
}
.cssFormControlSm[data-v-7257877a] {
  width: 180px;
}
.cssDropZone[data-v-7257877a] {
  border: 2px dashed var(--bui-border-color, #ccc);
  border-radius: 10px;
  padding: 2rem;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.2s;
}
.cssDropZone[data-v-7257877a]:hover {
  border-color: var(--bui-primary-color, #0078d4);
}
.cssDropText[data-v-7257877a] {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: var(--bui-muted-color, #888);
}
.cssTargetModes[data-v-7257877a] {
  display: flex;
  gap: 20px;
  margin: 0.5rem 0;
}
.cssTargetPanel[data-v-7257877a] {
  margin-top: 0.5rem;
  padding: 0.75rem;
  border: 1px solid var(--bui-border-color, #ddd);
  border-radius: 8px;
}
.cssComponentRow[data-v-7257877a] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}
.cssMetaRow[data-v-7257877a] {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  margin-bottom: 0.5rem;
}
.cssSelectedSummary[data-v-7257877a] {
  margin-top: 0.5rem;
  font-size: 0.85rem;
  color: var(--bui-primary-color, #0078d4);
  font-weight: 600;
}
.cssMessage[data-v-7257877a] {
  margin-top: 0.5rem;
  font-weight: 600;
  color: var(--bui-success-color, green);
}
.cssError[data-v-7257877a] {
  color: var(--bui-error-color, red);
}
.cssButton[data-v-7257877a] {
  height: 33px;
}
a[data-v-7257877a]:link, a[data-v-7257877a]:visited, a[data-v-7257877a]:hover, a[data-v-7257877a]:active {
  text-decoration: none;
}
.cssDialogBody[data-v-7257877a] {
  padding: 0.75rem 0.5rem;
  min-height: 500px;
}
.cssRootfsPanel[data-v-7257877a] {
  margin-top: 0.75rem;
  padding: 0.75rem;
  border: 1px solid var(--bui-border-color, #ddd);
  border-radius: 8px;
  background: var(--bui-surface-color, #f8f9fa);
}
.cssRootfsHint[data-v-7257877a] {
  margin-top: 0.5rem;
  font-size: 0.8rem;
  color: var(--bui-muted-color, #888);
  line-height: 1.4;
}
.cssRootfsHint code[data-v-7257877a] {
  background: var(--bui-surface-color, #e8e8e8);
  padding: 0.1rem 0.3rem;
  border-radius: 3px;
  font-size: 0.78rem;
}

.conn-pipe[data-v-fbafc882] {
  margin-bottom: 28px;
  padding: 18px 20px 20px;
  border-radius: var(--bui-border-radius, 8px);
  border: 1px solid var(--p-content-border-color, #e2e8f0);
  background: var(--p-surface-0, var(--p-content-background, #fff));
  overflow-x: auto;
  overflow-y: visible;
}
.conn-pipe--connection[data-v-fbafc882] {
  border-left: 4px solid rgb(13, 148, 136);
}
.conn-pipe-heading[data-v-fbafc882] {
  margin: 0 0 8px;
  font-size: 16px;
  font-weight: 600;
  color: var(--p-text-color, inherit);
}
.conn-pipe-desc[data-v-fbafc882] {
  margin: 0 0 18px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--p-text-muted-color, #64748b);
}
.conn-pipe-code[data-v-fbafc882] {
  font-size: 12px;
}
.conn-pipe-msg[data-v-fbafc882] {
  margin: 0 0 14px;
  padding: 10px 12px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--p-text-muted-color, #64748b);
  background: var(--p-surface-50, #f8fafc);
  border: 1px solid var(--p-content-border-color, #e2e8f0);
  border-radius: var(--bui-border-radius, 6px);
}
.conn-pipe-grid[data-v-fbafc882] {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: 16px;
  align-items: stretch;
  min-width: 900px;
}
.conn-chart-card--pipe-wide[data-v-fbafc882] {
  min-width: 0;
}
.conn-chart-canvas-wrap--pipe[data-v-fbafc882] {
  height: 240px;
}
.conn-chart-card[data-v-fbafc882] {
  background: var(--p-surface-0, var(--p-content-background, #fff));
  border: 1px solid var(--p-content-border-color, #e2e8f0);
  border-radius: var(--bui-border-radius, 8px);
  padding: 14px 16px 12px;
  min-width: 0;
}
.conn-chart-title[data-v-fbafc882] {
  margin: 0 0 10px;
  font-size: 13px;
  font-weight: 600;
  color: var(--p-text-color, inherit);
}
.conn-chart-canvas-wrap[data-v-fbafc882] {
  position: relative;
  height: 220px;
  width: 100%;
}
.conn-chart-canvas-wrap--stacked[data-v-fbafc882] {
  isolation: isolate;
}
.conn-chart-overlay[data-v-fbafc882] {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px 16px;
  text-align: center;
  font-size: 12px;
  line-height: 1.45;
  color: var(--p-text-muted-color, #64748b);
  background: var(--p-surface-50, rgba(248, 250, 252, 0.96));
  border-radius: 4px;
  pointer-events: none;
  z-index: 1;
}
.conn-pipe-stats-bar[data-v-fbafc882] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 6px 0 10px;
}
.conn-pipe-stat-label[data-v-fbafc882] {
  font-size: 11px;
  color: var(--p-text-muted-color, #64748b);
  margin-right: 2px;
}
.conn-pipe-stat-chip[data-v-fbafc882] {
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 99px;
  background: var(--p-surface-100, rgba(148, 163, 184, 0.15));
  color: var(--p-text-color, inherit);
  border: 1px solid var(--p-content-border-color, rgba(148, 163, 184, 0.3));
}
.conn-pipe-stat-chip--error[data-v-fbafc882] {
  color: rgb(239, 68, 68);
  border-color: rgba(239, 68, 68, 0.4);
  background: rgba(239, 68, 68, 0.08);
}

/* Fills RouterView (.cssContent); colors follow Prime / BUI like other portal pages. */
.runtime-metrics[data-v-2d6b6ca8] {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  box-sizing: border-box;
  margin: 0;
  color: var(--p-text-color, var(--bui-neutral-foreground-color, inherit));
  background: var(--p-content-background, var(--bui-neutral-background-color, transparent));
  border-radius: 0;
  overflow-x: auto;
  overflow-y: visible;
}
.runtime-metrics__bar[data-v-2d6b6ca8] {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 24px;
  background: var(--p-surface-50, var(--p-content-background, transparent));
  border-bottom: 1px solid var(--p-content-border-color, var(--bui-neutral-background-color, #e2e8f0));
  flex-wrap: wrap;
  flex-shrink: 0;
}
.runtime-metrics__title[data-v-2d6b6ca8] {
  font-size: 15px;
  font-weight: 600;
}
.runtime-metrics__actions[data-v-2d6b6ca8] {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 12px;
}
.runtime-metrics__meta[data-v-2d6b6ca8] {
  font-size: 12px;
  color: var(--p-text-muted-color, #64748b);
}
.runtime-metrics__btn[data-v-2d6b6ca8] {
  font: inherit;
  font-size: 12px;
  font-weight: 500;
  padding: 6px 12px;
  border-radius: var(--bui-border-radius, 6px);
  cursor: pointer;
  border: 1px solid var(--p-content-border-color, #cbd5e1);
  background: var(--p-surface-0, var(--p-content-background, #fff));
  color: var(--p-text-color, inherit);
}
.runtime-metrics__btn[data-v-2d6b6ca8]:hover:not(:disabled) {
  background: var(--p-content-hover-background, var(--p-surface-100, #f1f5f9));
  border-color: var(--p-primary-color, #0ea5e9);
}
.runtime-metrics__btn[data-v-2d6b6ca8]:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.runtime-metrics__err[data-v-2d6b6ca8] {
  color: var(--p-red-500, #ef4444);
  font-size: 13px;
}
.runtime-metrics__wrap[data-v-2d6b6ca8] {
  flex: none;
  overflow: visible;
  padding: 20px 28px 28px;
  max-width: min(2800px, 100%);
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box;
}
.runtime-metrics__pipe[data-v-2d6b6ca8] {
  margin-bottom: 28px;
  padding: 18px 20px 20px;
  border-radius: var(--bui-border-radius, 8px);
  border: 1px solid var(--p-content-border-color, #e2e8f0);
  background: var(--p-surface-0, var(--p-content-background, #fff));
  overflow-x: auto;
  overflow-y: visible;
}
.runtime-metrics__pipe--telemetry[data-v-2d6b6ca8] {
  border-left: 4px solid rgb(14, 165, 233);
}
.runtime-metrics__pipe--events[data-v-2d6b6ca8] {
  border-left: 4px solid rgb(99, 102, 241);
}
.runtime-metrics__pipe--alerts[data-v-2d6b6ca8] {
  border-left: 4px solid rgb(245, 158, 11);
}
.runtime-metrics__pipe-heading[data-v-2d6b6ca8] {
  margin: 0 0 8px;
  font-size: 16px;
  font-weight: 600;
}
.runtime-metrics__pipe-desc[data-v-2d6b6ca8] {
  margin: 0 0 18px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--p-text-muted-color, #64748b);
}
.runtime-metrics__pipe-grid[data-v-2d6b6ca8] {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: 16px;
  align-items: stretch;
  min-width: 1180px;
}
.runtime-metrics__chart-card--pipe-wide[data-v-2d6b6ca8] {
  min-width: 0;
}
.runtime-metrics__chart-canvas-wrap--pipe[data-v-2d6b6ca8] {
  height: 240px;
}
.runtime-metrics__connection[data-v-2d6b6ca8] {
  margin-bottom: 0;
}
.runtime-metrics__charts[data-v-2d6b6ca8] {
  margin-bottom: 28px;
}
.runtime-metrics__charts-heading[data-v-2d6b6ca8] {
  margin: 0 0 6px;
  font-size: 16px;
  font-weight: 600;
}
.runtime-metrics__charts-sub[data-v-2d6b6ca8] {
  margin: 0 0 16px;
  font-size: 13px;
  color: var(--p-text-muted-color, #64748b);
}
.runtime-metrics__code[data-v-2d6b6ca8] {
  font-size: 12px;
}
.runtime-metrics__chart-grid[data-v-2d6b6ca8] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 16px;
}
@media (min-width: 1600px) {
.runtime-metrics__chart-grid[data-v-2d6b6ca8] {
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}
}
@media (max-width: 900px) {
.runtime-metrics__chart-grid[data-v-2d6b6ca8] {
    grid-template-columns: 1fr;
}
}
.runtime-metrics__chart-grid--wide[data-v-2d6b6ca8] {
  grid-template-columns: 1fr 1fr;
}
@media (min-width: 1600px) {
.runtime-metrics__chart-grid--wide[data-v-2d6b6ca8] {
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}
}
@media (max-width: 1000px) {
.runtime-metrics__chart-grid--wide[data-v-2d6b6ca8] {
    grid-template-columns: 1fr;
}
}
.runtime-metrics__chart-card[data-v-2d6b6ca8] {
  background: var(--p-surface-0, var(--p-content-background, #fff));
  border: 1px solid var(--p-content-border-color, #e2e8f0);
  border-radius: var(--bui-border-radius, 8px);
  padding: 14px 16px 12px;
  min-width: 0;
}
.runtime-metrics__chart-title[data-v-2d6b6ca8] {
  margin: 0 0 10px;
  font-size: 13px;
  font-weight: 600;
  color: var(--p-text-color, inherit);
}
.runtime-metrics__chart-canvas-wrap[data-v-2d6b6ca8] {
  position: relative;
  height: 220px;
  width: 100%;
}
.runtime-metrics__chart-canvas-wrap--tall[data-v-2d6b6ca8] {
  height: 260px;
}
.runtime-metrics__chart-canvas-wrap--stacked[data-v-2d6b6ca8] {
  isolation: isolate;
}
.runtime-metrics__chart-overlay[data-v-2d6b6ca8] {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px 16px;
  text-align: center;
  font-size: 12px;
  line-height: 1.45;
  color: var(--p-text-muted-color, #64748b);
  background: var(--p-surface-50, rgba(248, 250, 252, 0.96));
  border-radius: 4px;
  pointer-events: none;
  z-index: 1;
}
.runtime-metrics__loading[data-v-2d6b6ca8] {
  padding: 32px 24px;
  text-align: center;
  color: var(--p-text-muted-color, #64748b);
  font-size: 14px;
}
.runtime-metrics__td-empty[data-v-2d6b6ca8] {
  padding: 28px 20px;
  text-align: center;
  color: var(--p-text-muted-color, #64748b);
  font-size: 13px;
  border-bottom: none;
}
.runtime-metrics__tr-empty:hover .runtime-metrics__td-empty[data-v-2d6b6ca8] {
  background: transparent;
}
.runtime-metrics__table[data-v-2d6b6ca8] {
  width: 100%;
  border-collapse: collapse;
  background: var(--p-surface-0, var(--p-content-background, #fff));
  border: 1px solid var(--p-content-border-color, #e2e8f0);
  border-radius: 0;
  overflow: hidden;
  font-size: 13px;
}
.runtime-metrics__th[data-v-2d6b6ca8],
.runtime-metrics__td[data-v-2d6b6ca8] {
  text-align: left;
  padding: 10px 14px;
  border-bottom: 1px solid var(--p-content-border-color, #e2e8f0);
}
.runtime-metrics__th[data-v-2d6b6ca8] {
  background: var(--p-surface-100, var(--p-surface-50, #f8fafc));
  font-weight: 600;
  color: var(--p-text-muted-color, #64748b);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.runtime-metrics__table tbody tr:last-child .runtime-metrics__td[data-v-2d6b6ca8] {
  border-bottom: none;
}
.runtime-metrics__table tbody tr:hover .runtime-metrics__td[data-v-2d6b6ca8] {
  background: var(--p-content-hover-background, var(--p-surface-100, #f1f5f9));
}
.runtime-metrics__col-meter[data-v-2d6b6ca8] {
  width: 22%;
  word-break: break-all;
}
.runtime-metrics__col-name[data-v-2d6b6ca8] {
  width: 22%;
  word-break: break-all;
}
.runtime-metrics__col-type[data-v-2d6b6ca8] {
  width: 10%;
  white-space: nowrap;
}
.runtime-metrics__col-tags[data-v-2d6b6ca8] {
  width: 26%;
  word-break: break-all;
  color: var(--p-text-muted-color, #64748b);
  font-size: 12px;
}
.runtime-metrics__col-value[data-v-2d6b6ca8] {
  width: 20%;
}
.mono[data-v-2d6b6ca8] {
  font-family: ui-monospace, monospace;
}
.runtime-metrics__raw[data-v-2d6b6ca8] {
  margin-top: 16px;
}
.runtime-metrics__raw-summary[data-v-2d6b6ca8] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 0;
  font-size: 12px;
  font-weight: 500;
  color: var(--p-text-muted-color, #64748b);
  cursor: pointer;
  user-select: none;
}
.runtime-metrics__raw-summary[data-v-2d6b6ca8]:hover {
  color: var(--p-text-color, inherit);
}
.runtime-metrics__hint[data-v-2d6b6ca8] {
  margin-top: 16px;
  font-size: 12px;
  color: var(--p-text-muted-color, #64748b);
}
.runtime-metrics__stats-bar[data-v-2d6b6ca8] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 6px 0 10px;
}
.runtime-metrics__stat-label[data-v-2d6b6ca8] {
  font-size: 11px;
  color: var(--p-text-muted-color, #64748b);
  margin-right: 2px;
}
.runtime-metrics__stat-chip[data-v-2d6b6ca8] {
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 99px;
  background: var(--p-surface-100, rgba(148, 163, 184, 0.15));
  color: var(--p-text-color, inherit);
  border: 1px solid var(--p-content-border-color, rgba(148, 163, 184, 0.3));
}
.runtime-metrics__stat-chip--error[data-v-2d6b6ca8] {
  color: rgb(239, 68, 68);
  border-color: rgba(239, 68, 68, 0.4);
  background: rgba(239, 68, 68, 0.08);
}

/* ── Backdrop ──────────────────────────────────────────────────────── */
.rgen-backdrop[data-v-1005fce1] {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(27, 29, 54, 0.35);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 5vh;
}

/* ── Dialog Card ───────────────────────────────────────────────────── */
.rgen-dialog[data-v-1005fce1] {
  width: 640px;
  max-width: 92vw;
  max-height: 85vh;
  background: var(--rpt-surface, #ffffff);
  border-radius: 12px;
  box-shadow: 0 8px 40px rgba(27, 29, 54, 0.18), 0 2px 12px rgba(27, 29, 54, 0.08);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* ── Header ────────────────────────────────────────────────────────── */
.rgen-header[data-v-1005fce1] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.5rem;
  border-bottom: 1px solid var(--rpt-border, #e2e6ed);
  flex-shrink: 0;
}
.rgen-title[data-v-1005fce1] {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--rpt-text-primary, #1B1D36);
}
.rgen-close[data-v-1005fce1] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: none;
  border-radius: 6px;
  background: transparent;
  color: var(--rpt-text-secondary, #53565A);
  cursor: pointer;
  transition: background 0.15s;
}
.rgen-close[data-v-1005fce1]:hover {
  background: var(--rpt-surface-variant, #f5f7fa);
}

/* ── Domain Tabs ───────────────────────────────────────────────────── */
.rgen-domain-tabs[data-v-1005fce1] {
  display: flex;
  border-bottom: 1px solid var(--rpt-border, #e2e6ed);
  flex-shrink: 0;
  padding: 0 1.5rem;
  gap: 0;
}
.rgen-domain-tab[data-v-1005fce1] {
  padding: 0.65rem 1.25rem;
  border: none;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--rpt-text-secondary, #53565A);
  font-size: 0.85rem;
  font-weight: 500;
  cursor: pointer;
  transition: color 0.15s, border-color 0.15s;
  white-space: nowrap;
}
.rgen-domain-tab[data-v-1005fce1]:hover {
  color: var(--rpt-text-primary, #1B1D36);
}
.rgen-domain-tab--active[data-v-1005fce1] {
  color: var(--rpt-cobalt, #0098C7);
  border-bottom-color: var(--rpt-cobalt, #0098C7);
  font-weight: 600;
}

/* ── Body ──────────────────────────────────────────────────────────── */
.rgen-body[data-v-1005fce1] {
  flex: 1;
  overflow-y: auto;
  padding: 1.25rem 1.5rem;
}
.rgen-section[data-v-1005fce1] {
  margin-bottom: 1.25rem;
}
.rgen-section[data-v-1005fce1]:last-child {
  margin-bottom: 0;
}
.rgen-section--params[data-v-1005fce1] {
  background: var(--rpt-surface-variant, #f5f7fa);
  border: 1px solid var(--rpt-border, #e2e6ed);
  border-radius: 8px;
  padding: 1rem 1.25rem;
}
.rgen-section-label[data-v-1005fce1] {
  display: block;
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--rpt-text-tertiary, #8a8d93);
  margin-bottom: 0.6rem;
}

/* ── 2-column grid ─────────────────────────────────────────────────── */
.rgen-grid-2[data-v-1005fce1] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}
@media (max-width: 560px) {
.rgen-grid-2[data-v-1005fce1] {
    grid-template-columns: 1fr;
}
}

/* ── Chips ─────────────────────────────────────────────────────────── */
.rgen-chips[data-v-1005fce1] {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
}
.rgen-chip[data-v-1005fce1] {
  padding: 0.4rem 0.85rem;
  border: 1px solid var(--rpt-border, #e2e6ed);
  border-radius: 100px;
  background: var(--rpt-surface, #ffffff);
  color: var(--rpt-text-secondary, #53565A);
  font-size: 0.8rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.15s;
}
.rgen-chip[data-v-1005fce1]:hover {
  border-color: var(--rpt-cobalt, #0098C7);
  color: var(--rpt-text-primary, #1B1D36);
}
.rgen-chip--active[data-v-1005fce1] {
  background: var(--rpt-cobalt, #0098C7);
  border-color: var(--rpt-cobalt, #0098C7);
  color: #ffffff;
}

/* ── Fields ────────────────────────────────────────────────────────── */
.rgen-field[data-v-1005fce1] {
  margin-bottom: 0.75rem;
}
.rgen-field[data-v-1005fce1]:last-child {
  margin-bottom: 0;
}
.rgen-field-label[data-v-1005fce1] {
  display: block;
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--rpt-text-secondary, #53565A);
  margin-bottom: 0.3rem;
}
.rgen-input-full[data-v-1005fce1] {
  width: 100%;
}
.rgen-field-sublabel[data-v-1005fce1] {
  display: block;
  font-size: 0.7rem;
  color: var(--rpt-text-secondary, #53565A);
  margin-bottom: 0.25rem;
}

/* ── Date Presets ──────────────────────────────────────────────────── */
.rgen-date-presets[data-v-1005fce1] {
  display: flex;
  gap: 0.35rem;
  margin-bottom: 0.5rem;
}
.rgen-preset-btn[data-v-1005fce1] {
  padding: 0.25rem 0.6rem;
  border: 1px solid var(--rpt-border, #e2e6ed);
  border-radius: 4px;
  background: transparent;
  color: var(--rpt-text-secondary, #53565A);
  font-size: 0.75rem;
  cursor: pointer;
  transition: all 0.12s;
}
.rgen-preset-btn[data-v-1005fce1]:hover {
  border-color: var(--rpt-cobalt, #0098C7);
}
.rgen-preset-btn--active[data-v-1005fce1] {
  background: var(--rpt-cobalt, #0098C7);
  border-color: var(--rpt-cobalt, #0098C7);
  color: #ffffff;
}

/* ── Checkbox alignment ────────────────────────────────────────────── */
.rgen-field--check-aligned[data-v-1005fce1] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding-top: 1.6rem;
}
.rgen-check-label[data-v-1005fce1] {
  font-size: 0.85rem;
  color: var(--rpt-text-primary, #1B1D36);
  cursor: pointer;
  margin: 0;
}
.rgen-hint[data-v-1005fce1] {
  display: block;
  font-size: 0.72rem;
  color: var(--rpt-text-tertiary, #8a8d93);
  margin-top: 0.2rem;
}

/* ── Footer ────────────────────────────────────────────────────────── */
.rgen-footer[data-v-1005fce1] {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  padding: 0.85rem 1.5rem;
  border-top: 1px solid var(--rpt-border, #e2e6ed);
  flex-shrink: 0;
}

/* ── Modal transition ──────────────────────────────────────────────── */
.rgen-modal-enter-active[data-v-1005fce1],
.rgen-modal-leave-active[data-v-1005fce1] {
  transition: opacity 0.2s ease;
}
.rgen-modal-enter-active .rgen-dialog[data-v-1005fce1],
.rgen-modal-leave-active .rgen-dialog[data-v-1005fce1] {
  transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s ease;
}
.rgen-modal-enter-from[data-v-1005fce1],
.rgen-modal-leave-to[data-v-1005fce1] {
  opacity: 0;
}
.rgen-modal-enter-from .rgen-dialog[data-v-1005fce1] {
  transform: translateY(-20px) scale(0.97);
  opacity: 0;
}
.rgen-modal-leave-to .rgen-dialog[data-v-1005fce1] {
  transform: translateY(-10px) scale(0.99);
  opacity: 0;
}

/* ── Fade for progressive disclosure ───────────────────────────────── */
.rgen-fade-enter-active[data-v-1005fce1],
.rgen-fade-leave-active[data-v-1005fce1] {
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.rgen-fade-enter-from[data-v-1005fce1],
.rgen-fade-leave-to[data-v-1005fce1] {
  opacity: 0;
  transform: translateY(-6px);
}

/* ── Dark mode ─────────────────────────────────────────────────────── */
[theme="dark"] .rgen-backdrop[data-v-1005fce1] {
  background: rgba(0, 0, 0, 0.5);
}
[theme="dark"] .rgen-dialog[data-v-1005fce1] {
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.35);
}
[theme="dark"] .rgen-section--params[data-v-1005fce1] {
  background: var(--rpt-surface-elevated, #252740);
  border-color: var(--rpt-border, #3a3d54);
}

.report-viewer-container[data-v-ff093a41] {
  display: flex;
  flex-direction: column;
  height: 100%;
  width: 100%;
}
.reports-detail-body[data-v-ff093a41] {
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
  height: 100%;
}
.reports-toc[data-v-ff093a41] {
  flex: 0 0 200px;
  position: sticky;
  top: 0;
  max-height: 100%;
  overflow-y: auto;
  padding: 0.75rem 1rem;
  border: 1px solid var(--rpt-border);
  border-radius: var(--rpt-radius-md);
  background: var(--rpt-surface-elevated);
  box-shadow: var(--rpt-shadow-sm);
}
.reports-toc-title[data-v-ff093a41] {
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--rpt-text-tertiary);
  margin-bottom: 0.5rem;
}
.reports-toc ul[data-v-ff093a41] { list-style: none; padding: 0; margin: 0;
}
.reports-toc li[data-v-ff093a41] { margin: 0.15rem 0;
}
.reports-toc li a[data-v-ff093a41] {
  display: block;
  font-size: 0.8rem;
  color: var(--rpt-text-primary);
  text-decoration: none;
  padding: 0.2rem 0.4rem;
  border-radius: var(--rpt-radius-sm);
  transition: background 0.15s, color 0.15s;
}
.reports-toc li a[data-v-ff093a41]:hover {
  background: var(--rpt-surface-variant);
  color: var(--rpt-cobalt);
}
.reports-toc .reports-toc-h3 a[data-v-ff093a41] {
  padding-left: 1rem;
  font-size: 0.75rem;
  color: var(--rpt-text-tertiary);
}
.reports-content-wrapper[data-v-ff093a41] {
  flex: 1;
  min-width: 0;
  border: 1px solid var(--rpt-border);
  border-radius: var(--rpt-radius-md);
  padding: 2rem 2.5rem;
  background: var(--rpt-surface-elevated);
  box-shadow: var(--rpt-shadow-md);
  overflow-x: auto;
  height: 100%;
  overflow-y: auto;
}
.reports-content-wrapper--critical[data-v-ff093a41] { border-top: 4px solid var(--rpt-critical-fg);
}
.reports-content-wrapper--high[data-v-ff093a41] { border-top: 4px solid var(--rpt-high-fg);
}
.reports-content-wrapper--medium[data-v-ff093a41] { border-top: 4px solid var(--rpt-medium-fg);
}
.reports-content-wrapper--low[data-v-ff093a41] { border-top: 4px solid var(--rpt-low-fg);
}
.reports-content-wrapper--healthy[data-v-ff093a41] { border-top: 4px solid var(--rpt-healthy-fg);
}
.report-card-header[data-v-ff093a41] {
  padding-bottom: 1rem;
  margin-bottom: 1.25rem;
  border-bottom: 1px solid var(--rpt-border);
}
.report-card-header-main[data-v-ff093a41] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
}
.report-card-header-title[data-v-ff093a41] {
  margin: 0;
  font-size: 1.3rem;
  font-weight: 600;
  color: var(--rpt-text-primary);
}
.report-card-header-meta[data-v-ff093a41] {
  display: flex;
  align-items: center;
  gap: 1rem;
  font-size: 0.85rem;
  color: var(--rpt-text-secondary);
  flex-wrap: wrap;
}
.reports-detail-id[data-v-ff093a41] {
  font-size: 0.85rem;
  color: var(--rpt-text-tertiary);
}
.report-card-header-summary[data-v-ff093a41] {
  font-size: 0.85rem;
  color: var(--rpt-text-secondary);
  font-style: italic;
  margin: 0.5rem 0 0;
  line-height: 1.6;
}
.reports-severity-badge[data-v-ff093a41] {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.2rem 0.65rem;
  border-radius: 100px;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  white-space: nowrap;
}
.reports-severity-badge--critical[data-v-ff093a41] { background: var(--rpt-critical-bg); color: var(--rpt-critical-fg);
}
.reports-severity-badge--high[data-v-ff093a41] { background: var(--rpt-high-bg); color: var(--rpt-high-fg);
}
.reports-severity-badge--medium[data-v-ff093a41] { background: var(--rpt-medium-bg); color: var(--rpt-medium-fg);
}
.reports-severity-badge--low[data-v-ff093a41] { background: var(--rpt-low-bg); color: var(--rpt-low-fg);
}
.reports-severity-badge--healthy[data-v-ff093a41] { background: var(--rpt-healthy-bg); color: var(--rpt-healthy-fg);
}
.reports-detail-range[data-v-ff093a41] {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.85rem;
  color: var(--rpt-text-secondary);
}
.reports-detail-date[data-v-ff093a41] {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.reports-tags[data-v-ff093a41] {
  display: flex;
  gap: 0.35rem;
  flex-wrap: wrap;
}
.reports-tag[data-v-ff093a41] {
  font-size: 0.75rem;
}
.reports-loading-content[data-v-ff093a41] {
  padding: 2rem;
  text-align: center;
  color: var(--rpt-text-tertiary);
}
.report-filter-popover[data-v-ff093a41] {
  position: fixed;
  z-index: 1000;
  background: var(--rpt-surface-elevated);
  border: 1px solid var(--rpt-border);
  border-radius: var(--rpt-radius-sm);
  box-shadow: var(--rpt-shadow-md);
  padding: 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.report-filter-popover input[data-v-ff093a41] {
  border: 1px solid var(--rpt-border);
  border-radius: 4px;
  padding: 0.3rem 0.5rem;
  font-size: 0.85rem;
  color: var(--rpt-text-primary);
  background: var(--rpt-surface);
  outline: none;
}
.report-filter-popover input[data-v-ff093a41]:focus {
  border-color: var(--rpt-cobalt);
}
.reports-filter-clear-btn[data-v-ff093a41] {
  background: transparent;
  border: none;
  color: var(--rpt-text-tertiary);
  cursor: pointer;
  padding: 0.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
}
.reports-filter-clear-btn[data-v-ff093a41]:hover {
  background: var(--rpt-surface-variant);
  color: var(--rpt-text-primary);
}
@media (max-width: 768px) {
.reports-detail-body[data-v-ff093a41] {
    flex-direction: column;
}
.reports-toc[data-v-ff093a41] {
    flex: none;
    position: static;
    max-height: none;
    width: 100%;
}
}

/* ── Report Content Typography ─────────────────────────────────────── */
.reports-content {
  font-family: 'Inter', Arial, sans-serif;
  line-height: 1.7;
  color: var(--rpt-text-primary, #1B1D36);
}
.reports-content h1 { display: none;
}
.reports-content h2 {
  font-size: 1.25rem;
  font-weight: 600;
  margin: 1.75rem 0 0.6rem;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid var(--rpt-border, #e2e6ed);
  color: var(--rpt-text-primary, #1B1D36);
}
.reports-content h3 {
  font-size: 1.05rem;
  font-weight: 600;
  margin: 1.25rem 0 0.4rem;
  color: var(--rpt-purple, #6C4B94);
}
.reports-content h4 {
  font-size: 0.95rem;
  font-weight: 600;
  margin: 1rem 0 0.35rem;
  color: var(--rpt-text-secondary, #53565A);
}
.reports-content p {
  margin: 0.5rem 0;
  line-height: 1.7;
}
.reports-content blockquote {
  border-left: 4px solid var(--rpt-cobalt, #0098C7);
  margin: 1rem 0;
  padding: 0.75rem 1.25rem;
  background: var(--rpt-surface-variant, #f5f7fa);
  border-radius: 0 var(--rpt-radius-sm, 6px) var(--rpt-radius-sm, 6px) 0;
  font-style: normal;
  color: var(--rpt-text-primary, #1B1D36);
}
.report-severity {
  display: inline-flex;
  align-items: center;
  padding: 0.15em 0.55em;
  border-radius: 100px;
  font-size: 0.8em;
  font-weight: 600;
  letter-spacing: 0.02em;
  vertical-align: middle;
}
.report-severity--critical { background: var(--rpt-critical-bg, rgba(204,9,47,0.10)); color: var(--rpt-critical-fg, #CC092F);
}
.report-severity--high { background: var(--rpt-high-bg, rgba(232,89,12,0.10)); color: var(--rpt-high-fg, #c94a0a);
}
.report-severity--medium { background: var(--rpt-medium-bg, rgba(245,159,0,0.10)); color: var(--rpt-medium-fg, #b37400);
}
.report-severity--low { background: var(--rpt-low-bg, rgba(0,152,199,0.10)); color: var(--rpt-low-fg, #007a9e);
}
.report-severity--healthy { background: var(--rpt-healthy-bg, rgba(47,158,68,0.10)); color: var(--rpt-healthy-fg, #267a39);
}
.report-trend {
  display: inline-flex;
  align-items: center;
  font-weight: 700;
  font-size: 1.05em;
  margin: 0 0.15em;
}
.report-trend--worsening { color: var(--rpt-critical-fg, #CC092F);
}
.report-trend--improving { color: var(--rpt-healthy-fg, #267a39);
}
.report-trend--stable { color: var(--rpt-cobalt, #0098C7);
}
.reports-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 1rem 0;
  font-size: 0.875rem;
  border: 1px solid var(--rpt-border, #e2e6ed);
  border-radius: var(--rpt-radius-sm, 6px);
  overflow: hidden;
}
.reports-content thead th {
  background: var(--rpt-surface-variant, #f5f7fa);
  color: var(--rpt-text-primary, #1B1D36);
  font-weight: 600;
  text-align: left;
  padding: 0.6rem 0.75rem;
  border-bottom: 2px solid var(--rpt-border, #e2e6ed);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.reports-content tbody td {
  padding: 0.55rem 0.75rem;
  border-bottom: 1px solid var(--rpt-border-subtle, #eef0f4);
}
.reports-content tbody tr:nth-child(even) {
  background: var(--rpt-surface-variant, #f5f7fa);
}
.reports-content tbody tr:hover {
  background: rgba(0, 152, 199, 0.06);
}
.reports-content ul,
.reports-content ol {
  padding-left: 1.5rem;
  margin: 0.5rem 0;
}
.reports-content li {
  margin: 0.25rem 0;
  line-height: 1.65;
}
.reports-content code {
  font-family: 'Fira Code Local', 'Consolas', 'Monaco', monospace;
  font-size: 0.85em;
  background: var(--rpt-surface-variant, #f0f2f5);
  padding: 0.15em 0.4em;
  border-radius: 4px;
}
.reports-content pre {
  margin: 1rem 0;
  border-radius: var(--rpt-radius-sm, 6px);
  overflow-x: auto;
}
.reports-content pre code {
  display: block;
  padding: 1rem;
  background: var(--rpt-surface-variant, #f5f6f8);
  border: 1px solid var(--rpt-border, #e2e6ed);
  border-radius: var(--rpt-radius-sm, 6px);
  line-height: 1.55;
}
.reports-content thead th.sort-asc::after { content: ' \2191'; font-size: 0.9em; opacity: 0.7;
}
.reports-content thead th.sort-desc::after { content: ' \2193'; font-size: 0.9em; opacity: 0.7;
}
.reports-filter-icon {
  display: inline-flex;
  align-items: center;
  margin-left: 0.5rem;
  font-size: 0.95em;
  opacity: 0.4;
  cursor: pointer;
  transition: opacity 0.15s, color 0.15s;
}
.reports-filter-icon:hover {
  opacity: 0.8;
}
.reports-filter-icon--active {
  opacity: 1;
  color: var(--rpt-cobalt, #0098C7);
}
.reports-content thead th.reports-th--filtered {
  background: rgba(0, 152, 199, 0.08);
  border-bottom-color: var(--rpt-cobalt, #0098C7);
}

/* ── Filter Toolbar (Pills) ────────────────────────────────────────── */
.reports-table-filter-toolbar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 1rem 0 0.5rem;
  padding: 0.5rem 0.75rem;
  background: var(--rpt-surface-variant, #f5f7fa);
  border: 1px solid var(--rpt-border, #e2e6ed);
  border-radius: var(--rpt-radius-sm, 6px);
  font-size: 0.8rem;
}
.reports-filter-count {
  color: var(--rpt-text-secondary, #53565A);
  margin-right: 0.5rem;
  font-weight: 500;
}
.reports-filter-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background: var(--rpt-surface-elevated, #fff);
  border: 1px solid var(--rpt-border, #e2e6ed);
  padding: 0.15rem 0.5rem;
  border-radius: 100px;
  color: var(--rpt-text-primary, #1B1D36);
  box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}
.reports-filter-pill b {
  font-weight: 600;
  color: var(--rpt-text-secondary, #53565A);
}
.reports-filter-pill-close {
  background: transparent;
  border: none;
  color: var(--rpt-text-tertiary, #8a8d93);
  font-size: 1.1em;
  line-height: 1;
  padding: 0 0.1rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.reports-filter-pill-close:hover {
  color: var(--rpt-critical-fg, #CC092F);
}
.reports-filter-clear-all {
  background: transparent;
  border: none;
  color: var(--rpt-cobalt, #0098C7);
  font-weight: 600;
  cursor: pointer;
  padding: 0.2rem 0.5rem;
  margin-left: auto;
}
.reports-filter-clear-all:hover {
  text-decoration: underline;
}
.report-detail-charts { margin: 0.75rem 0 5rem;
}
.report-chart-container {
  margin: 0 0 5rem;
  padding: 0.25rem;
  border: 1px solid var(--rpt-border, #e2e6ed);
  border-radius: var(--rpt-radius-md, 10px);
  background: var(--rpt-surface-elevated, #ffffff);
  height: 500px;
  position: relative;
}
.report-chart-container:last-child { margin-bottom: 0;
}
.report-chart-title {
  margin: 0 0 0.75rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--rpt-purple, #6C4B94);
}
.report-section-card {
  border: 1px solid var(--rpt-border, #e2e6ed);
  border-left: 4px solid var(--rpt-cobalt, #0098C7);
  border-radius: var(--rpt-radius-sm, 6px);
  padding: 1.25rem 1.5rem;
  margin: 1.25rem 0;
  background: var(--rpt-surface-elevated, #fff);
  box-shadow: var(--rpt-shadow-sm, 0 1px 3px rgba(0,0,0,0.06));
}
.report-section-card--findings { border-left-color: var(--rpt-critical-fg, #CC092F);
}
.report-section-card--detail { border-left-color: var(--rpt-purple, #6C4B94);
}
.report-section-card--recommendations { border-left-color: var(--rpt-cobalt, #0098C7);
}
.report-section-card--appendix { border-left-color: var(--rpt-text-tertiary, #8a8d93);
}
.report-section-card > h2 {
  margin-top: 0 !important;
  padding-bottom: 0.35rem;
}
.report-section-card--appendix.report-section-card--collapsed > *:not(h2) { display: none;
}
.report-section-card--appendix > h2::after {
  content: ' \25BC';
  font-size: 0.7em;
  color: var(--rpt-text-tertiary, #8a8d93);
}
.report-section-card--appendix.report-section-card--collapsed > h2::after {
  content: ' \25B6';
}
.report-section-card--detail > h3 {
  margin-top: 1.75rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--rpt-border-subtle, #eef0f4);
}
.report-section-card--detail > h3:first-of-type {
  margin-top: 0.5rem;
  padding-top: 0;
  border-top: none;
}
.report-section-card--detail .report-table-scroll {
  max-height: 320px;
  overflow-y: auto;
  border: 1px solid var(--rpt-border, #e2e6ed);
  border-radius: var(--rpt-radius-sm, 6px);
  margin: 0.75rem 0 1rem;
}
.report-section-card--detail .report-table-scroll table { margin: 0; border: none;
}
.report-section-card--detail .report-table-scroll thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--rpt-surface-variant, #f5f7fa);
  box-shadow: 0 1px 0 var(--rpt-border, #e2e6ed);
}
.reports-content hr {
  border: none;
  border-top: 1px solid var(--rpt-border, #e2e6ed);
  margin: 1.5rem 0;
}
.reports-content strong { font-weight: 600;
}
@media print {
.report-section-card--appendix.report-section-card--collapsed > *:not(h2) {
    display: block !important;
}
.reports-content-wrapper {
    border: none !important;
    padding: 0 !important;
    box-shadow: none !important;
}
.reports-content h3 { color: #6C4B94 !important;
}
.reports-content thead th {
    background: #1B1D36 !important;
    color: white !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}
.report-severity {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}
}

/* ── Design Tokens ─────────────────────────────────────────────────── */
.reports-page[data-v-745ddef9] {
  --rpt-navy: #1B1D36;
  --rpt-cobalt: #0098C7;
  --rpt-purple: #6C4B94;
  --rpt-red: #CC092F;

  --rpt-surface: #ffffff;
  --rpt-surface-variant: #f5f7fa;
  --rpt-surface-elevated: #ffffff;
  --rpt-border: #e2e6ed;
  --rpt-border-subtle: #eef0f4;

  --rpt-text-primary: #1B1D36;
  --rpt-text-secondary: #53565A;
  --rpt-text-tertiary: #8a8d93;

  --rpt-critical-bg: rgba(204, 9, 47, 0.10);
  --rpt-critical-fg: #CC092F;
  --rpt-high-bg: rgba(232, 89, 12, 0.10);
  --rpt-high-fg: #c94a0a;
  --rpt-medium-bg: rgba(245, 159, 0, 0.10);
  --rpt-medium-fg: #b37400;
  --rpt-low-bg: rgba(0, 152, 199, 0.10);
  --rpt-low-fg: #007a9e;
  --rpt-healthy-bg: rgba(47, 158, 68, 0.10);
  --rpt-healthy-fg: #267a39;

  --rpt-shadow-sm: 0 1px 3px rgba(27, 29, 54, 0.06), 0 1px 2px rgba(27, 29, 54, 0.04);
  --rpt-shadow-md: 0 2px 8px rgba(27, 29, 54, 0.08), 0 1px 3px rgba(27, 29, 54, 0.06);
  --rpt-shadow-lg: 0 4px 16px rgba(27, 29, 54, 0.10), 0 2px 6px rgba(27, 29, 54, 0.06);

  --rpt-radius-sm: 6px;
  --rpt-radius-md: 10px;
  --rpt-radius-lg: 14px;

  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  padding: 1.5rem;
  overflow: auto;
  font-family: 'Inter', Arial, sans-serif;
}
[theme="dark"] .reports-page[data-v-745ddef9] {
  --rpt-surface: #1a1c2e;
  --rpt-surface-variant: #22243a;
  --rpt-surface-elevated: #252740;
  --rpt-border: #3a3d54;
  --rpt-border-subtle: #2e3148;
  --rpt-text-primary: #e4e5eb;
  --rpt-text-secondary: #a0a3ad;
  --rpt-text-tertiary: #6e7180;
  --rpt-critical-bg: rgba(204, 9, 47, 0.16);
  --rpt-critical-fg: #f47187;
  --rpt-high-bg: rgba(232, 89, 12, 0.16);
  --rpt-high-fg: #f5a070;
  --rpt-medium-bg: rgba(245, 159, 0, 0.16);
  --rpt-medium-fg: #f5c94d;
  --rpt-low-bg: rgba(0, 152, 199, 0.16);
  --rpt-low-fg: #5dc8e8;
  --rpt-healthy-bg: rgba(47, 158, 68, 0.16);
  --rpt-healthy-fg: #6dd58c;
  --rpt-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.20), 0 1px 2px rgba(0, 0, 0, 0.14);
  --rpt-shadow-md: 0 2px 8px rgba(0, 0, 0, 0.24), 0 1px 3px rgba(0, 0, 0, 0.18);
  --rpt-shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.30), 0 2px 6px rgba(0, 0, 0, 0.20);
}

/* ── Top Bar (New Report + Refresh) ────────────────────────────────── */
.reports-top-bar[data-v-745ddef9] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

/* ── Table Card ────────────────────────────────────────────────────── */
.reports-card[data-v-745ddef9] .p-selection-column .p-checkbox {
  margin: 0 auto;
}
.reports-card[data-v-745ddef9] {
  border: 1px solid var(--rpt-border);
  border-radius: var(--rpt-radius-md);
  background: var(--rpt-surface-elevated);
  box-shadow: var(--rpt-shadow-sm);
  overflow: hidden;
}
.reports-toolbar[data-v-745ddef9] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--rpt-border-subtle);
}
.reports-toolbar-divider[data-v-745ddef9] {
  width: 1px;
  height: 24px;
  background: var(--rpt-border);
  margin: 0 0.25rem;
  flex-shrink: 0;
}
.reports-filter-chips[data-v-745ddef9] {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
  align-items: center;
}
.reports-search[data-v-745ddef9] {
  width: 220px;
}

/* ── Skeleton Loading ──────────────────────────────────────────────── */
.reports-skeleton[data-v-745ddef9] {
  padding: 0.5rem 1rem;
}
.reports-skeleton-row[data-v-745ddef9] {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--rpt-border-subtle);
}
.reports-skeleton-row[data-v-745ddef9]:last-child {
  border-bottom: none;
}
.reports-skeleton-cell[data-v-745ddef9] {
  height: 14px;
  border-radius: 4px;
  background: var(--rpt-surface-variant);
  animation: skeleton-pulse-745ddef9 1.5s ease-in-out infinite;
}
.reports-skeleton-cell--title[data-v-745ddef9] { flex: 2;
}
.reports-skeleton-cell--badge[data-v-745ddef9] { width: 80px;
}
.reports-skeleton-cell--date[data-v-745ddef9] { width: 130px;
}
.reports-skeleton-cell--tags[data-v-745ddef9] { width: 100px;
}
.reports-skeleton-cell--actions[data-v-745ddef9] { width: 90px;
}
@keyframes skeleton-pulse-745ddef9 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.4;
}
}

/* ── Empty State ───────────────────────────────────────────────────── */
.reports-empty[data-v-745ddef9] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 4rem 2rem;
}
.reports-empty-illustration[data-v-745ddef9] {
  width: 100px;
  height: 100px;
  color: var(--rpt-text-tertiary);
  margin-bottom: 0.5rem;
}
.reports-empty-text[data-v-745ddef9] {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--rpt-text-secondary);
}
.reports-empty-hint[data-v-745ddef9] {
  font-size: 0.85rem;
  color: var(--rpt-text-tertiary);
  margin-bottom: 0.75rem;
}
.reports-empty-cta[data-v-745ddef9] {
  margin-top: 0.25rem;
}

/* ── Report ID cell (plain text) ───────────────────────────────────── */
.reports-id-cell[data-v-745ddef9] {
  white-space: nowrap;
}

/* ── Title cell with ellipsis ──────────────────────────────────────── */
.reports-title-cell[data-v-745ddef9] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
}
.reports-title-text[data-v-745ddef9] {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ── Severity dot indicator ────────────────────────────────────────── */
.reports-severity-dot[data-v-745ddef9] {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.reports-severity-dot--critical[data-v-745ddef9] { background: var(--rpt-critical-fg);
}
.reports-severity-dot--high[data-v-745ddef9] { background: var(--rpt-high-fg);
}
.reports-severity-dot--medium[data-v-745ddef9] { background: var(--rpt-medium-fg);
}
.reports-severity-dot--low[data-v-745ddef9] { background: var(--rpt-low-fg);
}
.reports-severity-dot--healthy[data-v-745ddef9] { background: var(--rpt-healthy-fg);
}
.reports-filter-chip[data-v-745ddef9] {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.3rem 0.75rem;
  border: 1px solid var(--rpt-border);
  border-radius: 100px;
  background: var(--rpt-surface);
  color: var(--rpt-text-secondary);
  font-size: 0.8rem;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
  white-space: nowrap;
}
.reports-filter-chip[data-v-745ddef9]:hover {
  background: var(--rpt-surface-variant);
  border-color: var(--rpt-cobalt);
  color: var(--rpt-text-primary);
}
.reports-filter-chip--active[data-v-745ddef9] {
  background: var(--rpt-cobalt);
  border-color: var(--rpt-cobalt);
  color: #ffffff;
}
.reports-filter-chip--active .reports-severity-dot[data-v-745ddef9] {
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5);
}
.reports-filter-chip--active.reports-filter-chip--critical[data-v-745ddef9] {
  background: var(--rpt-critical-fg);
  border-color: var(--rpt-critical-fg);
}
.reports-filter-chip--active.reports-filter-chip--high[data-v-745ddef9] {
  background: var(--rpt-high-fg);
  border-color: var(--rpt-high-fg);
}
.reports-filter-chip--active.reports-filter-chip--medium[data-v-745ddef9] {
  background: var(--rpt-medium-fg);
  border-color: var(--rpt-medium-fg);
}
.reports-filter-chip--active.reports-filter-chip--low[data-v-745ddef9] {
  background: var(--rpt-low-fg);
  border-color: var(--rpt-low-fg);
}
.reports-filter-chip--active.reports-filter-chip--healthy[data-v-745ddef9] {
  background: var(--rpt-healthy-fg);
  border-color: var(--rpt-healthy-fg);
}
.reports-filter-chip-count[data-v-745ddef9] {
  font-size: 0.7rem;
  opacity: 0.8;
  font-weight: 600;
}

/* ── Centered table headers ────────────────────────────────────────── */
.reports-card[data-v-745ddef9] .p-column-header-content {
  justify-content: center;
}

/* Normalize all table body cell fonts */
.reports-card[data-v-745ddef9] .p-datatable-tbody td {
  font-family: 'Inter', Arial, sans-serif;
  font-size: 0.875rem;
  color: var(--rpt-text-primary);
}

/* ── Status Badges ─────────────────────────────────────────────────── */
.reports-status-badge[data-v-745ddef9] {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.2rem 0.65rem;
  border-radius: 100px;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  white-space: nowrap;
}
.reports-status-badge--completed[data-v-745ddef9] {
  background: var(--rpt-healthy-bg);
  color: var(--rpt-healthy-fg);
}
.reports-status-badge--processing[data-v-745ddef9] {
  background: rgba(0, 152, 199, 0.10);
  color: var(--rpt-cobalt);
}
.reports-status-badge--failed[data-v-745ddef9] {
  background: var(--rpt-critical-bg);
  color: var(--rpt-critical-fg);
}
.reports-status-spinner[data-v-745ddef9] {
  display: inline-block;
  width: 10px;
  height: 10px;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: reports-spin-745ddef9 0.8s linear infinite;
}
@keyframes reports-spin-745ddef9 {
to { transform: rotate(360deg);
}
}

/* ── Actions Column ────────────────────────────────────────────────── */
.reports-actions[data-v-745ddef9] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
}
.reports-action-btn[data-v-745ddef9] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border: none;
  border-radius: 6px;
  background: transparent;
  color: var(--rpt-text-secondary);
  cursor: pointer;
  font-size: 0.9rem;
  transition: background 0.15s, color 0.15s;
}
.reports-action-btn[data-v-745ddef9]:hover {
  background: var(--rpt-surface-variant);
  color: var(--rpt-cobalt);
}
.reports-action-btn--danger[data-v-745ddef9]:hover {
  background: var(--rpt-critical-bg);
  color: var(--rpt-critical-fg);
}

/* ── Download Dropdown ─────────────────────────────────────────────── */
.reports-download-wrapper[data-v-745ddef9] {
  position: relative;
}
.reports-download-menu[data-v-745ddef9] {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  z-index: 100;
  background: var(--rpt-surface-elevated);
  border: 1px solid var(--rpt-border);
  border-radius: var(--rpt-radius-sm);
  box-shadow: var(--rpt-shadow-md);
  padding: 0.25rem 0;
  min-width: 120px;
  white-space: nowrap;
}
.reports-download-menu button[data-v-745ddef9] {
  display: block;
  width: 100%;
  padding: 0.4rem 0.75rem;
  border: none;
  background: transparent;
  color: var(--rpt-text-primary);
  font-size: 0.8rem;
  text-align: left;
  cursor: pointer;
  transition: background 0.12s;
}
.reports-download-menu button[data-v-745ddef9]:hover {
  background: var(--rpt-surface-variant);
  color: var(--rpt-cobalt);
}
.reports-tags[data-v-745ddef9] {
  display: flex;
  gap: 0.35rem;
  flex-wrap: wrap;
}
.reports-tag[data-v-745ddef9] {
  font-size: 0.75rem;
}

/* ── Detail View ───────────────────────────────────────────────────── */
.reports-detail[data-v-745ddef9],
.reports-compare[data-v-745ddef9] {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  height: 100%;
}
.reports-compare-body[data-v-745ddef9] {
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
  height: calc(100vh - 140px);
}
.reports-compare-panes[data-v-745ddef9] {
  display: flex;
  gap: 1.25rem;
  flex: 1;
  min-width: 0;
  height: 100%;
}
.reports-detail-toolbar[data-v-745ddef9] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem;
}
.reports-detail-toolbar-actions[data-v-745ddef9] {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  align-items: center;
}

/* Severity badges */
.reports-severity-badge[data-v-745ddef9] {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.2rem 0.65rem;
  border-radius: 100px;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  white-space: nowrap;
}
.reports-severity-badge--critical[data-v-745ddef9] { background: var(--rpt-critical-bg); color: var(--rpt-critical-fg);
}
.reports-severity-badge--high[data-v-745ddef9] { background: var(--rpt-high-bg); color: var(--rpt-high-fg);
}
.reports-severity-badge--medium[data-v-745ddef9] { background: var(--rpt-medium-bg); color: var(--rpt-medium-fg);
}
.reports-severity-badge--low[data-v-745ddef9] { background: var(--rpt-low-bg); color: var(--rpt-low-fg);
}
.reports-severity-badge--healthy[data-v-745ddef9] { background: var(--rpt-healthy-bg); color: var(--rpt-healthy-fg);
}

/* ── Toast ─────────────────────────────────────────────────────────── */
.reports-toast[data-v-745ddef9] {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  background: var(--rpt-navy);
  color: #fff;
  padding: 0.6rem 1.2rem;
  border-radius: var(--rpt-radius-sm);
  font-size: 0.875rem;
  box-shadow: var(--rpt-shadow-lg);
  z-index: 9999;
  animation: fadeInUp-745ddef9 0.25s ease-out;
}
@keyframes fadeInUp-745ddef9 {
from { opacity: 0; transform: translateY(10px);
}
to   { opacity: 1; transform: translateY(0);
}
}
@media print {
.reports-detail-toolbar[data-v-745ddef9],
  .reports-toast[data-v-745ddef9],
  .bui-component.cssAppbar[data-v-745ddef9],
  .app-sidebar[data-v-745ddef9],
  .cssFooter[data-v-745ddef9],
  footer[data-v-745ddef9] {
    display: none !important;
}
.reports-page[data-v-745ddef9] {
    padding: 0 !important;
    --rpt-text-primary: #000;
    --rpt-text-secondary: #333;
    --rpt-surface: #fff;
    --rpt-surface-variant: #f5f5f5;
    --rpt-border: #ccc;
    --rpt-border-subtle: #ddd;
}
body[data-v-745ddef9] {
    background: white !important;
    font-family: 'Inter', Arial, sans-serif !important;
}
}

.loginHeader[data-v-65ecf77d] {
    margin: 0 0 20px 0;
}
.loginContainer[data-v-65ecf77d] {
    padding: 20px;
    position: absolute;
    width: 100vw;
    height: calc(100vh - var(--app-appbar-h));
    top: 0;
    left: 0;
    background-color: var(--bui-base-background-color);
}

.signInHeader[data-v-6f891b4f] {
    margin: 0 0 20px 0;
}
.signInContainer[data-v-6f891b4f] {
    padding: 20px;
    position: absolute;
    width: 100vw;
    height: calc(100vh - var(--app-appbar-h));
    top: 0;
    left: 0;
    background-color: var(--bui-base-background-color);
}
.retryButton[data-v-6f891b4f] {
    margin-top: 12px;
    padding: 8px 20px;
    cursor: pointer;
}
@font-face {
    font-family: 'primeicons';
    font-display: block;
    src: url('/assets/primeicons-DMOk5skT.eot');
    src: url('/assets/primeicons-DMOk5skT.eot?#iefix') format('embedded-opentype'), url('/assets/primeicons-C6QP2o4f.woff2') format('woff2'), url('/assets/primeicons-WjwUDZjB.woff') format('woff'), url('/assets/primeicons-MpK4pl85.ttf') format('truetype'), url('/assets/primeicons-Dr5RGzOO.svg?#primeicons') format('svg');
    font-weight: normal;
    font-style: normal;
}

.pi {
    font-family: 'primeicons';
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    display: inline-block;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.pi:before {
    --webkit-backface-visibility:hidden;
    backface-visibility: hidden;
}

.pi-fw {
    width: 1.28571429em;
    text-align: center;
}

.pi-spin {
    -webkit-animation: fa-spin 2s infinite linear;
    animation: fa-spin 2s infinite linear;
}

@media (prefers-reduced-motion: reduce) {
  .pi-spin {
    -webkit-animation-delay: -1ms;
    animation-delay: -1ms;
    -webkit-animation-duration: 1ms;
    animation-duration: 1ms;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1;
    -webkit-transition-delay: 0s;
    transition-delay: 0s;
    -webkit-transition-duration: 0s;
    transition-duration: 0s;
  }
}

@-webkit-keyframes fa-spin {
    0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    100% {
        -webkit-transform: rotate(359deg);
        transform: rotate(359deg);
    }
}

@keyframes fa-spin {
    0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    100% {
        -webkit-transform: rotate(359deg);
        transform: rotate(359deg);
    }
}

.pi-folder-plus:before {
    content: "\ea05";
}

.pi-receipt:before {
    content: "\ea06";
}

.pi-asterisk:before {
    content: "\ea07";
}

.pi-face-smile:before {
    content: "\ea08";
}

.pi-pinterest:before {
    content: "\ea09";
}

.pi-expand:before {
    content: "\ea0a";
}

.pi-pen-to-square:before {
    content: "\ea0b";
}

.pi-wave-pulse:before {
    content: "\ea0c";
}

.pi-turkish-lira:before {
    content: "\ea0d";
}

.pi-spinner-dotted:before {
    content: "\ea0e";
}

.pi-crown:before {
    content: "\ea0f";
}

.pi-pause-circle:before {
    content: "\ea10";
}

.pi-warehouse:before {
    content: "\ea11";
}

.pi-objects-column:before {
    content: "\ea12";
}

.pi-clipboard:before {
    content: "\ea13";
}

.pi-play-circle:before {
    content: "\ea14";
}

.pi-venus:before {
    content: "\ea15";
}

.pi-cart-minus:before {
    content: "\ea16";
}

.pi-file-plus:before {
    content: "\ea17";
}

.pi-microchip:before {
    content: "\ea18";
}

.pi-twitch:before {
    content: "\ea19";
}

.pi-building-columns:before {
    content: "\ea1a";
}

.pi-file-check:before {
    content: "\ea1b";
}

.pi-microchip-ai:before {
    content: "\ea1c";
}

.pi-trophy:before {
    content: "\ea1d";
}

.pi-barcode:before {
    content: "\ea1e";
}

.pi-file-arrow-up:before {
    content: "\ea1f";
}

.pi-mars:before {
    content: "\ea20";
}

.pi-tiktok:before {
    content: "\ea21";
}

.pi-arrow-up-right-and-arrow-down-left-from-center:before {
    content: "\ea22";
}

.pi-ethereum:before {
    content: "\ea23";
}

.pi-list-check:before {
    content: "\ea24";
}

.pi-thumbtack:before {
    content: "\ea25";
}

.pi-arrow-down-left-and-arrow-up-right-to-center:before {
    content: "\ea26";
}

.pi-equals:before {
    content: "\ea27";
}

.pi-lightbulb:before {
    content: "\ea28";
}

.pi-star-half:before {
    content: "\ea29";
}

.pi-address-book:before {
    content: "\ea2a";
}

.pi-chart-scatter:before {
    content: "\ea2b";
}

.pi-indian-rupee:before {
    content: "\ea2c";
}

.pi-star-half-fill:before {
    content: "\ea2d";
}

.pi-cart-arrow-down:before {
    content: "\ea2e";
}

.pi-calendar-clock:before {
    content: "\ea2f";
}

.pi-sort-up-fill:before {
    content: "\ea30";
}

.pi-sparkles:before {
    content: "\ea31";
}

.pi-bullseye:before {
    content: "\ea32";
}

.pi-sort-down-fill:before {
    content: "\ea33";
}

.pi-graduation-cap:before {
    content: "\ea34";
}

.pi-hammer:before {
    content: "\ea35";
}

.pi-bell-slash:before {
    content: "\ea36";
}

.pi-gauge:before {
    content: "\ea37";
}

.pi-shop:before {
    content: "\ea38";
}

.pi-headphones:before {
    content: "\ea39";
}

.pi-eraser:before {
    content: "\ea04";
}

.pi-stopwatch:before {
    content: "\ea01";
}

.pi-verified:before {
    content: "\ea02";
}

.pi-delete-left:before {
    content: "\ea03";
}

.pi-hourglass:before {
    content: "\e9fe";
}

.pi-truck:before {
    content: "\ea00";
}

.pi-wrench:before {
    content: "\e9ff";
}

.pi-microphone:before {
    content: "\e9fa";
}

.pi-megaphone:before {
    content: "\e9fb";
}

.pi-arrow-right-arrow-left:before {
    content: "\e9fc";
}

.pi-bitcoin:before {
    content: "\e9fd";
}

.pi-file-edit:before {
    content: "\e9f6";
}

.pi-language:before {
    content: "\e9f7";
}

.pi-file-export:before {
    content: "\e9f8";
}

.pi-file-import:before {
    content: "\e9f9";
}

.pi-file-word:before {
    content: "\e9f1";
}

.pi-gift:before {
    content: "\e9f2";
}

.pi-cart-plus:before {
    content: "\e9f3";
}

.pi-thumbs-down-fill:before {
    content: "\e9f4";
}

.pi-thumbs-up-fill:before {
    content: "\e9f5";
}

.pi-arrows-alt:before {
    content: "\e9f0";
}

.pi-calculator:before {
    content: "\e9ef";
}

.pi-sort-alt-slash:before {
    content: "\e9ee";
}

.pi-arrows-h:before {
    content: "\e9ec";
}

.pi-arrows-v:before {
    content: "\e9ed";
}

.pi-pound:before {
    content: "\e9eb";
}

.pi-prime:before {
    content: "\e9ea";
}

.pi-chart-pie:before {
    content: "\e9e9";
}

.pi-reddit:before {
    content: "\e9e8";
}

.pi-code:before {
    content: "\e9e7";
}

.pi-sync:before {
    content: "\e9e6";
}

.pi-shopping-bag:before {
    content: "\e9e5";
}

.pi-server:before {
    content: "\e9e4";
}

.pi-database:before {
    content: "\e9e3";
}

.pi-hashtag:before {
    content: "\e9e2";
}

.pi-bookmark-fill:before {
    content: "\e9df";
}

.pi-filter-fill:before {
    content: "\e9e0";
}

.pi-heart-fill:before {
    content: "\e9e1";
}

.pi-flag-fill:before {
    content: "\e9de";
}

.pi-circle:before {
    content: "\e9dc";
}

.pi-circle-fill:before {
    content: "\e9dd";
}

.pi-bolt:before {
    content: "\e9db";
}

.pi-history:before {
    content: "\e9da";
}

.pi-box:before {
    content: "\e9d9";
}

.pi-at:before {
    content: "\e9d8";
}

.pi-arrow-up-right:before {
    content: "\e9d4";
}

.pi-arrow-up-left:before {
    content: "\e9d5";
}

.pi-arrow-down-left:before {
    content: "\e9d6";
}

.pi-arrow-down-right:before {
    content: "\e9d7";
}

.pi-telegram:before {
    content: "\e9d3";
}

.pi-stop-circle:before {
    content: "\e9d2";
}

.pi-stop:before {
    content: "\e9d1";
}

.pi-whatsapp:before {
    content: "\e9d0";
}

.pi-building:before {
    content: "\e9cf";
}

.pi-qrcode:before {
    content: "\e9ce";
}

.pi-car:before {
    content: "\e9cd";
}

.pi-instagram:before {
    content: "\e9cc";
}

.pi-linkedin:before {
    content: "\e9cb";
}

.pi-send:before {
    content: "\e9ca";
}

.pi-slack:before {
    content: "\e9c9";
}

.pi-sun:before {
    content: "\e9c8";
}

.pi-moon:before {
    content: "\e9c7";
}

.pi-vimeo:before {
    content: "\e9c6";
}

.pi-youtube:before {
    content: "\e9c5";
}

.pi-flag:before {
    content: "\e9c4";
}

.pi-wallet:before {
    content: "\e9c3";
}

.pi-map:before {
    content: "\e9c2";
}

.pi-link:before {
    content: "\e9c1";
}

.pi-credit-card:before {
    content: "\e9bf";
}

.pi-discord:before {
    content: "\e9c0";
}

.pi-percentage:before {
    content: "\e9be";
}

.pi-euro:before {
    content: "\e9bd";
}

.pi-book:before {
    content: "\e9ba";
}

.pi-shield:before {
    content: "\e9b9";
}

.pi-paypal:before {
    content: "\e9bb";
}

.pi-amazon:before {
    content: "\e9bc";
}

.pi-phone:before {
    content: "\e9b8";
}

.pi-filter-slash:before {
    content: "\e9b7";
}

.pi-facebook:before {
    content: "\e9b4";
}

.pi-github:before {
    content: "\e9b5";
}

.pi-twitter:before {
    content: "\e9b6";
}

.pi-step-backward-alt:before {
    content: "\e9ac";
}

.pi-step-forward-alt:before {
    content: "\e9ad";
}

.pi-forward:before {
    content: "\e9ae";
}

.pi-backward:before {
    content: "\e9af";
}

.pi-fast-backward:before {
    content: "\e9b0";
}

.pi-fast-forward:before {
    content: "\e9b1";
}

.pi-pause:before {
    content: "\e9b2";
}

.pi-play:before {
    content: "\e9b3";
}

.pi-compass:before {
    content: "\e9ab";
}

.pi-id-card:before {
    content: "\e9aa";
}

.pi-ticket:before {
    content: "\e9a9";
}

.pi-file-o:before {
    content: "\e9a8";
}

.pi-reply:before {
    content: "\e9a7";
}

.pi-directions-alt:before {
    content: "\e9a5";
}

.pi-directions:before {
    content: "\e9a6";
}

.pi-thumbs-up:before {
    content: "\e9a3";
}

.pi-thumbs-down:before {
    content: "\e9a4";
}

.pi-sort-numeric-down-alt:before {
    content: "\e996";
}

.pi-sort-numeric-up-alt:before {
    content: "\e997";
}

.pi-sort-alpha-down-alt:before {
    content: "\e998";
}

.pi-sort-alpha-up-alt:before {
    content: "\e999";
}

.pi-sort-numeric-down:before {
    content: "\e99a";
}

.pi-sort-numeric-up:before {
    content: "\e99b";
}

.pi-sort-alpha-down:before {
    content: "\e99c";
}

.pi-sort-alpha-up:before {
    content: "\e99d";
}

.pi-sort-alt:before {
    content: "\e99e";
}

.pi-sort-amount-up:before {
    content: "\e99f";
}

.pi-sort-amount-down:before {
    content: "\e9a0";
}

.pi-sort-amount-down-alt:before {
    content: "\e9a1";
}

.pi-sort-amount-up-alt:before {
    content: "\e9a2";
}

.pi-palette:before {
    content: "\e995";
}

.pi-undo:before {
    content: "\e994";
}

.pi-desktop:before {
    content: "\e993";
}

.pi-sliders-v:before {
    content: "\e991";
}

.pi-sliders-h:before {
    content: "\e992";
}

.pi-search-plus:before {
    content: "\e98f";
}

.pi-search-minus:before {
    content: "\e990";
}

.pi-file-excel:before {
    content: "\e98e";
}

.pi-file-pdf:before {
    content: "\e98d";
}

.pi-check-square:before {
    content: "\e98c";
}

.pi-chart-line:before {
    content: "\e98b";
}

.pi-user-edit:before {
    content: "\e98a";
}

.pi-exclamation-circle:before {
    content: "\e989";
}

.pi-android:before {
    content: "\e985";
}

.pi-google:before {
    content: "\e986";
}

.pi-apple:before {
    content: "\e987";
}

.pi-microsoft:before {
    content: "\e988";
}

.pi-heart:before {
    content: "\e984";
}

.pi-mobile:before {
    content: "\e982";
}

.pi-tablet:before {
    content: "\e983";
}

.pi-key:before {
    content: "\e981";
}

.pi-shopping-cart:before {
    content: "\e980";
}

.pi-comments:before {
    content: "\e97e";
}

.pi-comment:before {
    content: "\e97f";
}

.pi-briefcase:before {
    content: "\e97d";
}

.pi-bell:before {
    content: "\e97c";
}

.pi-paperclip:before {
    content: "\e97b";
}

.pi-share-alt:before {
    content: "\e97a";
}

.pi-envelope:before {
    content: "\e979";
}

.pi-volume-down:before {
    content: "\e976";
}

.pi-volume-up:before {
    content: "\e977";
}

.pi-volume-off:before {
    content: "\e978";
}

.pi-eject:before {
    content: "\e975";
}

.pi-money-bill:before {
    content: "\e974";
}

.pi-images:before {
    content: "\e973";
}

.pi-image:before {
    content: "\e972";
}

.pi-sign-in:before {
    content: "\e970";
}

.pi-sign-out:before {
    content: "\e971";
}

.pi-wifi:before {
    content: "\e96f";
}

.pi-sitemap:before {
    content: "\e96e";
}

.pi-chart-bar:before {
    content: "\e96d";
}

.pi-camera:before {
    content: "\e96c";
}

.pi-dollar:before {
    content: "\e96b";
}

.pi-lock-open:before {
    content: "\e96a";
}

.pi-table:before {
    content: "\e969";
}

.pi-map-marker:before {
    content: "\e968";
}

.pi-list:before {
    content: "\e967";
}

.pi-eye-slash:before {
    content: "\e965";
}

.pi-eye:before {
    content: "\e966";
}

.pi-folder-open:before {
    content: "\e964";
}

.pi-folder:before {
    content: "\e963";
}

.pi-video:before {
    content: "\e962";
}

.pi-inbox:before {
    content: "\e961";
}

.pi-lock:before {
    content: "\e95f";
}

.pi-unlock:before {
    content: "\e960";
}

.pi-tags:before {
    content: "\e95d";
}

.pi-tag:before {
    content: "\e95e";
}

.pi-power-off:before {
    content: "\e95c";
}

.pi-save:before {
    content: "\e95b";
}

.pi-question-circle:before {
    content: "\e959";
}

.pi-question:before {
    content: "\e95a";
}

.pi-copy:before {
    content: "\e957";
}

.pi-file:before {
    content: "\e958";
}

.pi-clone:before {
    content: "\e955";
}

.pi-calendar-times:before {
    content: "\e952";
}

.pi-calendar-minus:before {
    content: "\e953";
}

.pi-calendar-plus:before {
    content: "\e954";
}

.pi-ellipsis-v:before {
    content: "\e950";
}

.pi-ellipsis-h:before {
    content: "\e951";
}

.pi-bookmark:before {
    content: "\e94e";
}

.pi-globe:before {
    content: "\e94f";
}

.pi-replay:before {
    content: "\e94d";
}

.pi-filter:before {
    content: "\e94c";
}

.pi-print:before {
    content: "\e94b";
}

.pi-align-right:before {
    content: "\e946";
}

.pi-align-left:before {
    content: "\e947";
}

.pi-align-center:before {
    content: "\e948";
}

.pi-align-justify:before {
    content: "\e949";
}

.pi-cog:before {
    content: "\e94a";
}

.pi-cloud-download:before {
    content: "\e943";
}

.pi-cloud-upload:before {
    content: "\e944";
}

.pi-cloud:before {
    content: "\e945";
}

.pi-pencil:before {
    content: "\e942";
}

.pi-users:before {
    content: "\e941";
}

.pi-clock:before {
    content: "\e940";
}

.pi-user-minus:before {
    content: "\e93e";
}

.pi-user-plus:before {
    content: "\e93f";
}

.pi-trash:before {
    content: "\e93d";
}

.pi-external-link:before {
    content: "\e93c";
}

.pi-window-maximize:before {
    content: "\e93b";
}

.pi-window-minimize:before {
    content: "\e93a";
}

.pi-refresh:before {
    content: "\e938";
}
  
.pi-user:before {
    content: "\e939";
}

.pi-exclamation-triangle:before {
    content: "\e922";
}

.pi-calendar:before {
    content: "\e927";
}

.pi-chevron-circle-left:before {
    content: "\e928";
}

.pi-chevron-circle-down:before {
    content: "\e929";
}

.pi-chevron-circle-right:before {
    content: "\e92a";
}

.pi-chevron-circle-up:before {
    content: "\e92b";
}

.pi-angle-double-down:before {
    content: "\e92c";
}

.pi-angle-double-left:before {
    content: "\e92d";
}

.pi-angle-double-right:before {
    content: "\e92e";
}

.pi-angle-double-up:before {
    content: "\e92f";
}

.pi-angle-down:before {
    content: "\e930";
}

.pi-angle-left:before {
    content: "\e931";
}

.pi-angle-right:before {
    content: "\e932";
}

.pi-angle-up:before {
    content: "\e933";
}

.pi-upload:before {
    content: "\e934";
}

.pi-download:before {
    content: "\e956";
}

.pi-ban:before {
    content: "\e935";
}

.pi-star-fill:before {
    content: "\e936";
}

.pi-star:before {
    content: "\e937";
}

.pi-chevron-left:before {
    content: "\e900";
}

.pi-chevron-right:before {
    content: "\e901";
}

.pi-chevron-down:before {
    content: "\e902";
}

.pi-chevron-up:before {
    content: "\e903";
}

.pi-caret-left:before {
    content: "\e904";
}

.pi-caret-right:before {
    content: "\e905";
}

.pi-caret-down:before {
    content: "\e906";
}

.pi-caret-up:before {
    content: "\e907";
}

.pi-search:before {
    content: "\e908";
}

.pi-check:before {
    content: "\e909";
}

.pi-check-circle:before {
    content: "\e90a";
}

.pi-times:before {
    content: "\e90b";
}

.pi-times-circle:before {
    content: "\e90c";
}

.pi-plus:before {
    content: "\e90d";
}

.pi-plus-circle:before {
    content: "\e90e";
}

.pi-minus:before {
    content: "\e90f";
}

.pi-minus-circle:before {
    content: "\e910";
}

.pi-circle-on:before {
    content: "\e911";
}

.pi-circle-off:before {
    content: "\e912";
}

.pi-sort-down:before {
    content: "\e913";
}

.pi-sort-up:before {
    content: "\e914";
}

.pi-sort:before {
    content: "\e915";
}

.pi-step-backward:before {
    content: "\e916";
}

.pi-step-forward:before {
    content: "\e917";
}

.pi-th-large:before {
    content: "\e918";
}

.pi-arrow-down:before {
    content: "\e919";
}

.pi-arrow-left:before {
    content: "\e91a";
}

.pi-arrow-right:before {
    content: "\e91b";
}

.pi-arrow-up:before {
    content: "\e91c";
}

.pi-bars:before {
    content: "\e91d";
}

.pi-arrow-circle-down:before {
    content: "\e91e";
}

.pi-arrow-circle-left:before {
    content: "\e91f";
}

.pi-arrow-circle-right:before {
    content: "\e920";
}

.pi-arrow-circle-up:before {
    content: "\e921";
}

.pi-info:before {
    content: "\e923";
}

.pi-info-circle:before {
    content: "\e924";
}

.pi-home:before {
    content: "\e925";
}

.pi-spinner:before {
    content: "\e926";
}

.cssPrimarySidebar[data-v-13ff23cc] {
  position: fixed;
  top: calc(var(--app-appbar-h) + var(--app-sidebar-float-y, 10px));
  left: var(--app-sidebar-float-x, 12px);
  width: var(--app-sidebar-w);
  height: calc(
    100% - var(--app-appbar-h) - var(--app-sidebar-float-y, 10px) - var(--app-sidebar-float-bottom, 12px)
  );
  color: var(--app-sidebar-fg);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 14px;
  overflow: hidden;
  z-index: 5;
  display: flex;
  flex-direction: column;
  transition: width 0.25s ease, box-shadow 0.25s ease;

  background: linear-gradient(
    155deg,
    color-mix(in srgb, var(--app-sidebar-bg, #0c4a6e) 78%, transparent) 0%,
    color-mix(in srgb, var(--app-sidebar-bg, #0c4a6e) 72%, transparent) 100%
  );
  backdrop-filter: blur(20px) saturate(1.35);
  -webkit-backdrop-filter: blur(20px) saturate(1.35);
  box-shadow:
    0 8px 32px rgba(0, 0, 0, 0.22),
    0 0 0 1px rgba(255, 255, 255, 0.06) inset;

  --p-button-text-primary-color: var(--app-sidebar-fg);
  --p-button-text-primary-hover-background: var(--app-sidebar-hover-bg);
  --p-button-text-primary-hover-color: var(--app-sidebar-fg);
}
.cssPrimarySidebar.cssIconOnly[data-v-13ff23cc] {
  --p-button-text-primary-hover-background: var(--app-sidebar-secondary-hover-bg);
  --p-button-text-primary-hover-color: var(--app-sidebar-secondary-fg);
}
.sb-brand-header[data-v-13ff23cc] {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 0.35rem;
  padding: 0.45rem 0.5rem 0.4rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  flex-shrink: 0;
  border-radius: 14px 14px 0 0;
}
.sb-brand-header--collapsed[data-v-13ff23cc] {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding-top: 0.5rem;
  padding-bottom: 0.35rem;
  gap: 0;
}
.sb-brand-menu-btn[data-v-13ff23cc] {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin: 0;
  padding: 0.35rem;
  border: none;
  border-radius: 10px;
  background: transparent;
  color: var(--app-sidebar-fg);
  cursor: pointer;
  font: inherit;
}
.sb-brand-header--collapsed .sb-brand-menu-btn[data-v-13ff23cc] {
  width: 100%;
  padding: 0.45rem 0.25rem;
}
.sb-brand-burger-icon[data-v-13ff23cc] {
  font-size: 1rem;
  line-height: 1;
  flex-shrink: 0;
}
.sb-brand-header--collapsed .sb-brand-burger-icon[data-v-13ff23cc] {
  font-size: 1.05rem;
}
.sb-brand-menu-btn[data-v-13ff23cc]:hover {
  background: var(--app-sidebar-hover-bg);
}
.cssPrimarySidebar.cssIconOnly .sb-brand-menu-btn[data-v-13ff23cc]:hover {
  background: var(--app-sidebar-secondary-hover-bg);
  color: var(--app-sidebar-secondary-fg);
}
.sb-brand-expanded-block[data-v-13ff23cc] {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.45rem;
  min-width: 0;
  flex: 1 1 auto;
}
.sb-brand-logo[data-v-13ff23cc] {
  width: 1.75rem;
  height: 1.75rem;
  object-fit: contain;
  flex-shrink: 0;
}
.sb-brand-text[data-v-13ff23cc] {
  font-weight: 700;
  font-size: 1.05rem;
  letter-spacing: 0.04em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Search trigger — sits between brand header and main nav */
.sb-search-trigger[data-v-13ff23cc] {
  display: flex;
  align-items: center;
  gap: 8px;
  width: calc(100% - 1.5rem);
  margin: 4px 0.75rem 2px;
  padding: 0.55rem 0.65rem;
  border: none;
  border-radius: 10px;
  background: transparent;
  color: color-mix(in srgb, var(--app-sidebar-fg) 75%, transparent);
  font-size: 13px;
  font-family: inherit;
  cursor: pointer;
  text-align: left;
  transition: background-color 0.18s ease, color 0.18s ease;
  flex-shrink: 0;
}
.sb-search-trigger[data-v-13ff23cc]:hover {
  background: var(--app-sidebar-hover-bg);
  color: var(--app-sidebar-fg);
}
.sb-search-trigger--collapsed[data-v-13ff23cc] {
  width: 2.5rem;
  height: 2.5rem;
  margin: 2px auto;
  padding: 0;
  border-radius: 50%;
  justify-content: center;
}
.cssPrimarySidebar.cssIconOnly .sb-search-trigger--collapsed[data-v-13ff23cc]:hover {
  background: var(--app-sidebar-secondary-hover-bg);
  color: var(--app-sidebar-secondary-fg);
}
.sb-search-icon[data-v-13ff23cc] {
  font-size: 1rem;
  flex-shrink: 0;
}
.sb-search-placeholder[data-v-13ff23cc] {
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sb-search-kbd[data-v-13ff23cc] {
  font-size: 10px;
  padding: 1px 5px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 3px;
  background: transparent;
  color: rgba(255, 255, 255, 0.4);
  font-family: inherit;
  flex-shrink: 0;
}
.sb-expanded[data-v-13ff23cc] {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.sb-nav-flat[data-v-13ff23cc] {
  flex: 1;
  min-height: 0;
  padding: 0.75rem;
  overflow-x: hidden;
  overflow-y: auto;
}
.sb-nav-section[data-v-13ff23cc] {
  margin-top: 1.5rem;
  font-size: 0.75rem;
  line-height: 1.2;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: color-mix(in srgb, var(--app-sidebar-fg) 58%, transparent);
  padding: 0 0.65rem 0.35rem;
  user-select: none;
  pointer-events: none;
}
.sb-nav-sep[data-v-13ff23cc] {
  height: 1px;
  margin: 0.35rem 0.5rem;
  background: rgba(255, 255, 255, 0.15);
  flex-shrink: 0;
}
.sb-nav-link[data-v-13ff23cc] {
  width: 100%;
  justify-content: flex-start !important;
  min-height: 2.65rem;
  padding: 0.55rem 0.65rem !important;
  border-radius: 10px;
  margin-inline: 2px;
  color: var(--app-sidebar-fg) !important;
  transition: background-color 0.18s ease;
}
.sb-nav-link[data-v-13ff23cc]:hover {
  background: var(--app-sidebar-hover-bg) !important;
}
.sb-nav-link--active[data-v-13ff23cc] {
  /* Cobalt Blue at 32% — the guide uses full-opacity brand colors in active elements;
     32% is a tasteful translation of that to a transparent overlay on Navy Blue. */
  background: color-mix(in srgb, #0098C7 32%, transparent) !important;
  font-weight: 600;
}
.sb-nav-link--uncat-first[data-v-13ff23cc] {
  margin-top: 1.5rem;
}
.sb-nav-link.sb-recent-device-item[data-v-13ff23cc] .p-button-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.sb-recent-accordion[data-v-13ff23cc] {
  margin-inline: 2px;
}
.sb-recent-toggle[data-v-13ff23cc] {
  display: flex;
  flex-direction: row;
  align-items: center;
  width: 100%;
  min-height: 2.65rem;
  padding: 0.55rem 0.65rem;
  gap: 0.5rem;
  border: none;
  border-radius: 10px;
  background: transparent;
  color: var(--app-sidebar-fg);
  font: inherit;
  cursor: pointer;
  text-align: left;
  transition: background-color 0.18s ease;
}
.sb-recent-toggle[data-v-13ff23cc]:hover {
  background: var(--app-sidebar-hover-bg);
}
.sb-recent-toggle-icon[data-v-13ff23cc] {
  flex-shrink: 0;
  font-size: 1rem;
  line-height: 1;
}
.sb-recent-toggle-label[data-v-13ff23cc] {
  flex: 1 1 auto;
  min-width: 0;
  font-weight: 500;
}
.sb-recent-chevron[data-v-13ff23cc] {
  flex-shrink: 0;
  font-size: 0.85rem;
  line-height: 1;
  opacity: 0.85;
  transition: transform 0.22s ease;
}
.sb-recent-chevron--expanded[data-v-13ff23cc] {
  transform: rotate(90deg);
}
.sb-recent-nested-list[data-v-13ff23cc] {
  list-style: none;
  margin: 0;
  padding: 0.15rem 0 0.35rem 0;
}
.sb-recent-nested-item[data-v-13ff23cc] {
  margin: 0;
  padding: 0;
}
.sb-recent-nested-btn[data-v-13ff23cc] {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  width: 100%;
  padding: 0.35rem 0.65rem 0.35rem 2.5rem;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: color-mix(in srgb, var(--app-sidebar-fg) 78%, transparent);
  font: inherit;
  font-size: 0.8125rem;
  line-height: 1.25;
  cursor: pointer;
  text-align: left;
  transition: background-color 0.18s ease, color 0.18s ease;
}
.sb-recent-nested-btn[data-v-13ff23cc]:hover {
  background: var(--app-sidebar-hover-bg);
  color: var(--app-sidebar-fg);
}
.sb-recent-nested-dot[data-v-13ff23cc] {
  flex-shrink: 0;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--app-sidebar-fg) 45%, transparent);
}
.sb-recent-nested-label[data-v-13ff23cc] {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sb-sidebar-footer[data-v-13ff23cc] {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.35rem 0.5rem 0.65rem;
  border-top: 1px solid rgba(255, 255, 255, 0.22);
}
.sb-footer-btn[data-v-13ff23cc] {
  width: 100%;
  justify-content: flex-start !important;
  color: color-mix(in srgb, var(--app-sidebar-fg) 72%, transparent) !important;
  font-weight: 500;
}
.sb-footer-btn[data-v-13ff23cc]:hover {
  color: var(--app-sidebar-fg) !important;
  background: var(--app-sidebar-hover-bg) !important;
}
.sb-collapsed[data-v-13ff23cc] {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding-bottom: 0.35rem;
}
.sb-collapsed-icons[data-v-13ff23cc] {
  flex: 1;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  padding: 0.25rem 0;
}
.sb-collapsed-footer[data-v-13ff23cc] {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  padding-top: 0.25rem;
  width: 100%;
}
.sb-collapsed-footer-sep[data-v-13ff23cc] {
  width: 60%;
  height: 1px;
  margin: 0.15rem auto 0.25rem;
  background: rgba(255, 255, 255, 0.2);
  flex-shrink: 0;
}
.sb-rail-btn--footer[data-v-13ff23cc] {
  opacity: 0.85;
}
.sb-rail-btn--footer[data-v-13ff23cc]:hover {
  opacity: 1;
}
.sb-sep[data-v-13ff23cc] {
  width: 60%;
  height: 1px;
  margin: 0.35rem auto;
  background: rgba(255, 255, 255, 0.15);
  flex-shrink: 0;
}
.sb-rail-btn[data-v-13ff23cc] {
  width: 2.5rem;
  height: 2.5rem;
  color: var(--app-sidebar-fg) !important;
}
.cssPrimarySidebar.cssIconOnly .sb-rail-btn[data-v-13ff23cc]:not(:disabled):hover,
.cssPrimarySidebar.cssIconOnly .sb-rail-btn[data-v-13ff23cc]:not(:disabled):focus-visible {
  background: var(--app-sidebar-secondary-hover-bg) !important;
  color: var(--app-sidebar-secondary-fg) !important;
}
.cssPrimarySidebar.cssIconOnly .sb-rail-btn[data-v-13ff23cc]:not(:disabled):hover .p-button-icon,
.cssPrimarySidebar.cssIconOnly .sb-rail-btn[data-v-13ff23cc]:not(:disabled):focus-visible .p-button-icon {
  color: var(--app-sidebar-secondary-fg) !important;
}
.cssSlide-enter-active[data-v-13ff23cc],
.cssSlide-leave-active[data-v-13ff23cc] {
  transition: transform 0.25s ease;
}
.cssSlide-enter-from[data-v-13ff23cc],
.cssSlide-leave-to[data-v-13ff23cc] {
  transform: translateX(-100%);
}

/*
 * Collapsed-sidebar flyout: PrimeVue Menu overlay; caret Y from alignGroupFlyout (--caret-y).
 */
.sb-popup-menu.p-menu.p-menu-overlay {
  --sb-popup-fg: #374151;
  --sb-popup-fg-hover: #111827;
  --sb-popup-hover-bg: #f9fafb;
  --sb-popup-border: #f3f4f6;

  min-width: 11rem;
  overflow: visible;
  background: #ffffff !important;
  border: 1px solid var(--sb-popup-border);
  border-radius: 0.75rem;
  box-shadow:
    0 10px 15px -3px rgba(0, 0, 0, 0.1),
    0 4px 6px -4px rgba(0, 0, 0, 0.1);
  color: var(--sb-popup-fg);
  padding: 0.5rem;
  --p-menu-background: #ffffff;
  --p-menu-border-color: transparent;
  --p-menu-color: var(--sb-popup-fg);
  --p-menu-item-color: var(--sb-popup-fg);
  --p-menu-item-focus-color: var(--sb-popup-fg-hover);
  --p-menu-item-icon-color: var(--sb-popup-fg);
  --p-menu-item-icon-focus-color: var(--sb-popup-fg-hover);
  --p-menu-item-focus-background: var(--sb-popup-hover-bg);
}
.sb-popup-menu.p-menu.p-menu-overlay::before {
  content: '';
  position: absolute;
  left: -6px;
  top: var(--caret-y, 50%);
  transform: translateY(-50%);
  z-index: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px 7px 6px 0;
  border-color: transparent #ffffff transparent transparent;
  filter: drop-shadow(-2px 0 2px rgba(15, 23, 42, 0.1));
  pointer-events: none;
}
.sb-popup-menu .p-menu-list {
  position: relative;
  z-index: 1;
  padding: 0;
  gap: 0.125rem;
  background: transparent !important;
}
.sb-popup-menu .p-menu-submenu-label {
  color: #6b7280 !important;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.35rem 0.75rem 0.25rem;
}
.sb-popup-menu .p-menu-item-link {
  border-radius: 0.375rem;
  padding: 0.5rem 0.75rem !important;
  font-size: 0.875rem;
  line-height: 1.35;
  color: var(--sb-popup-fg) !important;
  background: transparent !important;
  transition:
    background-color 0.15s ease,
    color 0.15s ease;
}
.sb-popup-menu .p-menu-item-label,
.sb-popup-menu .p-menu-item-icon {
  color: inherit !important;
}
.sb-popup-menu .p-menu-item-icon {
  font-size: 0.875rem;
}
.sb-popup-menu .sb-recent-device-item .p-menu-item-link {
  min-width: 0;
  max-width: min(18rem, 85vw);
  overflow: hidden;
}
.sb-popup-menu .sb-recent-device-item .p-menu-item-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.sb-popup-menu .p-menu-item-link:hover,
.sb-popup-menu .p-menu-item:not(.p-disabled) > .p-menu-item-content:hover .p-menu-item-link,
.sb-popup-menu .p-menu-item:not(.p-disabled) > .p-menu-item-content:focus-visible .p-menu-item-link {
  background: var(--sb-popup-hover-bg) !important;
  color: var(--sb-popup-fg-hover) !important;
}
.sb-popup-menu .p-menu-item:not(.p-disabled):hover .p-menu-item-icon,
.sb-popup-menu .p-menu-item:not(.p-disabled) > .p-menu-item-content:hover .p-menu-item-icon {
  color: var(--sb-popup-fg-hover) !important;
}
.sb-popup-menu .p-menu-separator {
  border-top: 1px solid #f3f4f6;
  margin: 0.25rem 0;
}

.cssCardVars[data-v-d6aa5c8b] {
  --border-radius: var(--bas-card-border-radius, 10px);
  --header-padding: var(--bas-card-header-padding, 0.5em);
  --header-font-size: var(--bas-card-header-font-size, 1.25em);
  --content-footer-h: var(--bas-card-content-footer-h, 0em);

  --titile-block-z-order: var(--bas-card-title-z-order, 30);
  --disable-block-z-order: var(--bas-card-title-z-order, 20);
}
.cssCardContainer[data-v-d6aa5c8b] {
  display: flex;
  flex-flow: column;
  width: 100%;
  height: 100%;
  background-color: #FFFFFF;
  border: 1px solid var(--bas-card-border-color, #E5E7EB);
  border-radius: 8px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.04);
  overflow: hidden;
  padding: 16px;
  box-sizing: border-box;
}
.cssCardContainer[data-v-d6aa5c8b] *::-webkit-scrollbar {
  width: 3px;
  height: 3px;
}
.cssCardHeader[data-v-d6aa5c8b] {
  flex: none;

  display: flex;
  width: 100%;
  padding: 0 0 12px 0;
  justify-content: space-between;
  align-items: center;
  gap: 0.5em;
}
.cssCardTitle[data-v-d6aa5c8b] {
  display: flex;
  align-items: center;
  gap: 0.5em;
  z-index: var(--titile-block-z-order);
}
.cssCardAction[data-v-d6aa5c8b] {
  display: flex;
  gap: 0.5em;
  cursor: pointer;
  align-items: center;
}
.cssCardIcon[data-v-d6aa5c8b] {
  font-size: var(--header-font-size);
  display: inline-flex;
  width: 1em;
  height: 1em;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.cssCardTitleText[data-v-d6aa5c8b] {
  font-size: var(--header-font-size);
  font-weight: bolder;
}
.cssCardContent[data-v-d6aa5c8b] {
  flex: 1 1 auto;
  width: 100%;
  overflow: auto;
}
.cssCardContentFooter[data-v-d6aa5c8b] {
  width: 100%;
  height: var(--content-footer-h);
}
.cssCardDisabled[data-v-d6aa5c8b] {
  position: absolute;
  left: 0px;
  top: 0px;
  width: 100%;
  height: 100%;
  z-index: var(--disable-block-z-order);

  display: flex;
  justify-content: center;
  align-items: center;

  background-color: rgba(40, 40, 40, 0.1);
  border-radius: var(--border-radius);
  backdrop-filter: blur(6px);
}

.cssDialogConfirmVars[data-v-75e8a90d] {
  /* Defaults ~⅔ of former 50%/70% (About box smaller than generic confirm dialogs). */
  --dialog-w: var(--dialog-confirm-w, calc(50% * 2 / 3));
  --dialog-h: var(--dialog-confirm-h, calc(70% * 2 / 3));
  --dialog-bg: var(--dialog-confirm-bg, var(--bui-base-background-color));
  --dialog-corner: var(--dialog-confirm-corner, 10px);
}
.cssDialogConfirmDarkModeVars[data-v-75e8a90d] {
  --dialog-border-darkmode: 1px solid var(--bui-base-foreground-color);
}
.bui-header-cell-sm[data-v-75e8a90d] {
    text-align: left;
    border-bottom: 1px solid #aaa;
}
.css-body-cell[data-v-75e8a90d] {
    border-bottom: 1px solid #ddd;
}
.cssFlex[data-v-75e8a90d] {
    display: flex;
}
.cssTable[data-v-75e8a90d] {
    width: 100%;
}
.cssCardContainer[data-v-75e8a90d] {
    padding: 5px;
}
.cssSideTop[data-v-75e8a90d] {
    padding-left: 40px;
}
.cssCenterAlign[data-v-75e8a90d] {
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    vertical-align: middle;
}
.cssFlexRowSettings[data-v-75e8a90d] {
    justify-content: space-between;
    width: 90%;
    display: flex;
}
.cssSettingsRow[data-v-75e8a90d] {
    flex-wrap: wrap;
    grid-gap: 10px;
    align-items: center;
    padding-left: 1em;
}
.cssModal[data-v-75e8a90d] {
  margin: 0;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 201;
  background-color: var(--bas-backdrop-bg);
}
.cssFlexTopDown[data-v-75e8a90d] {
  display: flex;
  flex-direction: column;
}
.cssContainer[data-v-75e8a90d] {
  width: 100%;
  height: 100%;
  padding: 10px;
}
.cssFlexLeftRight[data-v-75e8a90d] {
  display: flex;
  flex-direction: row;
}
.cssDialog[data-v-75e8a90d] {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
  width: var(--dialog-w);
  height: var(--dialog-h);

  background-color: var(--dialog-bg);
  border: var(--dialog-border-darkmode);
  border-radius: var(--dialog-corner);

  display: flex;
  flex-direction: column;
  gap: 12px;

  box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.25);
}
.cssConfirmMessageBlock[data-v-75e8a90d] {
  width: calc(var(--dialog-w) - 40px);
  height: calc(var(--dialog-h) - 110px);

  display: flex;
  justify-content: center;
  align-items: center;
  align-content: center;
}
.cssChartRow[data-v-75e8a90d] {
    padding-bottom: 20px;
}
.cssCards[data-v-75e8a90d] {
    display: grid;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 10px;
    /* grid-template-columns: repeat(2, 1fr); */
    grid-column-gap: 1em;
    grid-row-gap: 1em;
    padding: 0 0 1em 1em;
}
.cssNotLoaded[data-v-75e8a90d] {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}
.cssAboutProduct[data-v-75e8a90d] {
    margin-bottom: 0.5rem;
    line-height: 1.45;
}
.cssAboutVersionLine[data-v-75e8a90d] {
    margin-bottom: 0.75rem;
    font-weight: 600;
    line-height: 1.45;
}
.cssAboutCopyrightBlock[data-v-75e8a90d] {
    max-width: 36rem;
    font-size: 0.9em;
    line-height: 1.45;
    color: var(--bui-base-muted-color, #555);
    white-space: normal;
}
.cssAboutSectionTitle[data-v-75e8a90d] {
    font-size: 1rem;
    font-weight: 600;
    margin: 1rem 0 0.5rem;
    padding: 0;
}

.cssOmnisearchBackdrop[data-v-3a26e2e2] {
  position: fixed;
  inset: 0;
  z-index: 600;
  background: var(--bas-backdrop-bg, rgba(0, 0, 0, 0.4));
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 15vh;
}
.cssOmnisearchModal[data-v-3a26e2e2] {
  width: 480px;
  max-width: calc(100vw - 32px);
  background: var(--p-surface-0);
  border: 1px solid var(--p-content-border-color);
  border-radius: 10px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.cssOmnisearchInputRow[data-v-3a26e2e2] {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
}
.cssOmnisearchSearchIcon[data-v-3a26e2e2] {
  color: var(--p-text-muted-color);
  font-size: 15px;
  flex-shrink: 0;
}
.cssOmnisearchInput[data-v-3a26e2e2] {
  flex: 1;
  border: none;
  outline: none;
  background: transparent;
  color: var(--p-text-color);
  font-size: 14px;
  font-family: inherit;
}
.cssOmnisearchInput[data-v-3a26e2e2]::placeholder {
  color: var(--p-text-muted-color);
}
.cssOmnisearchSpinner[data-v-3a26e2e2] {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.cssOmnisearchEscKey[data-v-3a26e2e2] {
  flex-shrink: 0;
  font-size: 11px;
  padding: 1px 6px;
  border: 1px solid var(--p-content-border-color);
  border-radius: 4px;
  color: var(--p-text-muted-color);
  background: transparent;
  font-family: inherit;
}
.cssOmnisearchDivider[data-v-3a26e2e2] {
  height: 1px;
  background: var(--p-content-border-color);
}
.cssOmnisearchList[data-v-3a26e2e2] {
  max-height: 340px;
  overflow-y: auto;
  padding: 4px 0;
}
.cssOmnisearchSectionLabel[data-v-3a26e2e2] {
  padding: 6px 14px 2px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--p-text-muted-color);
}
.cssOmnisearchItem[data-v-3a26e2e2] {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 14px;
  border: none;
  background: transparent;
  cursor: pointer;
  text-align: left;
  color: var(--p-text-color);
  font-family: inherit;
  font-size: 13px;
  transition: background 0.1s;
}
.cssOmnisearchItem--active[data-v-3a26e2e2] {
  background: var(--p-primary-50, rgba(0, 152, 199, 0.08));
}
.cssOmnisearchItemIcon[data-v-3a26e2e2] {
  color: var(--p-text-muted-color);
  font-size: 14px;
  flex-shrink: 0;
}
.cssOmnisearchItemUid[data-v-3a26e2e2] {
  flex: 1;
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cssOmnisearchItemName[data-v-3a26e2e2] {
  font-size: 11px;
  color: var(--p-text-muted-color);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 140px;
}
.cssOmnisearchItemService[data-v-3a26e2e2] {
  font-size: 11px;
  color: var(--p-text-muted-color);
  flex-shrink: 0;
}
.cssOmnisearchItemArrow[data-v-3a26e2e2] {
  color: var(--p-primary-color);
  font-size: 11px;
  flex-shrink: 0;
}
.cssOmnisearchEmpty[data-v-3a26e2e2] {
  padding: 20px 14px;
  color: var(--p-text-muted-color);
  font-size: 13px;
  text-align: center;
}
.cssOmnisearchFooter[data-v-3a26e2e2] {
  display: flex;
  gap: 16px;
  padding: 7px 14px;
  border-top: 1px solid var(--p-content-border-color);
  background: var(--p-surface-50, #fafafa);
}
.cssOmnisearchHint[data-v-3a26e2e2] {
  font-size: 11px;
  color: var(--p-text-muted-color);
  display: flex;
  align-items: center;
  gap: 3px;
}
.cssOmnisearchHint kbd[data-v-3a26e2e2] {
  font-size: 10px;
  padding: 1px 4px;
  border: 1px solid var(--p-content-border-color);
  border-radius: 3px;
  font-family: inherit;
  background: transparent;
}

.chat-message[data-v-b068d0f9] {
  display: flex;
  flex-direction: column;
  margin-bottom: 0.75em;
  padding: 0 0.5em;
}
.chat-message.user[data-v-b068d0f9] {
  align-items: flex-end;
}
.chat-message.assistant[data-v-b068d0f9] {
  align-items: flex-start;
}
.chat-timestamp[data-v-b068d0f9] {
  font-size: 0.7em;
  color: #999;
  margin-top: 2px;
  padding: 0 0.4em;
  cursor: default;
}
.chat-bubble[data-v-b068d0f9] {
  max-width: 85%;
  padding: 0.6em 0.9em;
  border-radius: 12px;
  font-size: 0.875em;
  line-height: 1.5;
  word-wrap: break-word;
  overflow-wrap: break-word;
}
.user .chat-bubble[data-v-b068d0f9] {
  background-color: var(--bui-static-foreground-color, hsl(200, 100%, 27%));
  color: #fff;
  border-bottom-right-radius: 2px;
}
.assistant .chat-bubble[data-v-b068d0f9] {
  background-color: var(--bui-neutral-foreground-color, hsl(0, 0%, 97%));
  color: #1a1a1a;
  border-bottom-left-radius: 2px;
}
.chat-text[data-v-b068d0f9] {
  white-space: pre-wrap;
}
.chat-attachments[data-v-b068d0f9] {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 0.35em;
}
.chat-attachment-chip[data-v-b068d0f9] {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 0.7em;
  padding: 1px 7px 1px 5px;
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.18);
  opacity: 0.85;
  line-height: 1.6;
}
.chat-attachment-chip svg[data-v-b068d0f9] {
  flex-shrink: 0;
}
.streaming-dots[data-v-b068d0f9] {
  display: block;
  margin-top: 0.3em;
  font-size: 0.8em;
  color: #999;
}
.streaming-dots[data-v-b068d0f9]::after {
  content: '.';
  animation: dots-cycle-b068d0f9 1.2s step-end infinite;
}
@keyframes dots-cycle-b068d0f9 {
0%  { content: '.';
}
33% { content: '..';
}
66% { content: '...';
}
}
.thinking-block[data-v-b068d0f9] {
  margin-bottom: 0.5em;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 6px;
  overflow: hidden;
  background: rgba(0, 0, 0, 0.025);
}
.thinking-toggle[data-v-b068d0f9] {
  display: flex;
  align-items: center;
  gap: 5px;
  width: 100%;
  padding: 5px 8px;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 0.75em;
  color: #888;
  text-align: left;
}
.thinking-toggle[data-v-b068d0f9]:hover {
  background: rgba(0, 0, 0, 0.04);
}
.thinking-pulse[data-v-b068d0f9] {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #aaa;
  flex-shrink: 0;
  transition: background 0.2s;
}
.thinking-pulse.active[data-v-b068d0f9] {
  background: var(--bui-static-foreground-color, hsl(200, 100%, 27%));
  animation: thinking-pulse-b068d0f9 1.2s ease-in-out infinite;
}
@keyframes thinking-pulse-b068d0f9 {
0%, 100% { opacity: 0.4; transform: scale(0.85);
}
50% { opacity: 1; transform: scale(1);
}
}
.thinking-label[data-v-b068d0f9] {
  flex: 1;
  font-weight: 500;
  letter-spacing: 0.01em;
}
.thinking-chevron[data-v-b068d0f9] {
  transition: transform 0.2s ease;
  opacity: 0.6;
}
.thinking-chevron.open[data-v-b068d0f9] {
  transform: rotate(180deg);
}
.thinking-content[data-v-b068d0f9] {
  padding: 6px 8px 8px;
  font-size: 0.75em;
  color: #777;
  line-height: 1.55;
  white-space: pre-wrap;
  word-break: break-word;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  max-height: 200px;
  overflow-y: auto;
}
.tool-status[data-v-b068d0f9] {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 0.3em;
  font-size: 0.8em;
  color: var(--bas-chart-axis-text);
}
.tool-status-spinner[data-v-b068d0f9] {
  width: 12px;
  height: 12px;
  border: 2px solid rgba(0, 0, 0, 0.1);
  border-top-color: var(--bui-static-foreground-color, hsl(200, 100%, 27%));
  border-radius: 50%;
  animation: tool-spin-b068d0f9 0.8s linear infinite;
  flex-shrink: 0;
}
.tool-status-label[data-v-b068d0f9] {
  opacity: 0.85;
}
@keyframes tool-spin-b068d0f9 {
to { transform: rotate(360deg);
}
}
.assistant .chat-bubble[data-v-b068d0f9] {
  position: relative;
}
.chat-copy-btn[data-v-b068d0f9] {
  position: absolute;
  top: 6px;
  right: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border: none;
  background: transparent;
  color: #aaa;
  cursor: pointer;
  border-radius: 5px;
  padding: 0;
  opacity: 0;
  transition: opacity 0.15s, background 0.15s, color 0.15s;
}
.assistant .chat-bubble:hover .chat-copy-btn[data-v-b068d0f9] {
  opacity: 1;
}
.chat-copy-btn[data-v-b068d0f9]:hover {
  background: rgba(0, 0, 0, 0.09);
  color: var(--bui-static-foreground-color, hsl(200, 100%, 27%));
}

.chat-markdown p { margin: 0.3em 0;
}
.chat-markdown p:first-child { margin-top: 0;
}
.chat-markdown p:last-child { margin-bottom: 0;
}
.chat-markdown ul, .chat-markdown ol { margin: 0.3em 0; padding-left: 1.5em;
}
.chat-markdown code { background: rgba(0,0,0,0.08); padding: 0.15em 0.35em; border-radius: 3px; font-size: 0.9em;
}
.chat-markdown pre { background: rgba(0,0,0,0.06); padding: 0.6em; border-radius: 6px; overflow-x: auto; margin: 0.4em 0;
}
.chat-markdown pre code { background: none; padding: 0;
}
.chat-markdown table { border-collapse: collapse; margin: 0.4em 0; font-size: 0.9em;
}
.chat-markdown th, .chat-markdown td { border: 1px solid rgba(0,0,0,0.15); padding: 0.3em 0.6em;
}
.chat-markdown th { background: rgba(0,0,0,0.06);
}
.chat-markdown a { color: var(--bui-static-foreground-color, hsl(200, 100%, 27%));
}
.chat-markdown a[href^="/Reports"] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  background: rgba(0, 152, 199, 0.08);
  border: 1px solid rgba(0, 152, 199, 0.25);
  border-radius: 6px;
  text-decoration: none;
  font-weight: 500;
  font-size: 0.92em;
  transition: background 0.15s, border-color 0.15s;
}
.chat-markdown a[href^="/Reports"]::before {
  content: '\f15c';
  font-family: 'Font Awesome 6 Free', 'Font Awesome 5 Free', 'FontAwesome';
  font-weight: 400;
  font-size: 0.9em;
  opacity: 0.7;
}
.chat-markdown a[href^="/Reports"]:hover {
  background: rgba(0, 152, 199, 0.15);
  border-color: rgba(0, 152, 199, 0.4);
}
.typing-indicator {
  display: inline-flex;
  gap: 4px;
  align-items: center;
  padding: 2px 0;
}
.typing-indicator span {
  width: 6px;
  height: 6px;
  background: #888;
  border-radius: 50%;
  animation: typing-bounce 1.2s infinite ease-in-out;
}
.typing-indicator span:nth-child(2) { animation-delay: 0.2s;
}
.typing-indicator span:nth-child(3) { animation-delay: 0.4s;
}
@keyframes typing-bounce {
0%, 60%, 100% { transform: translateY(0); opacity: 0.4;
}
30% { transform: translateY(-4px); opacity: 1;
}
}

.chat-input-wrapper[data-v-f91cc80b] {
  border-top: 1px solid rgba(0, 0, 0, 0.12);
  background: var(--bui-neutral-foreground-color, #f8f8f8);
  flex-shrink: 0;
  padding: 0.5em 0.6em;
  display: flex;
  flex-direction: column;
  gap: 0.4em;
}
.chat-file-chips[data-v-f91cc80b] {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.chat-file-chip[data-v-f91cc80b] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: rgba(0, 0, 0, 0.07);
  border-radius: 12px;
  padding: 2px 8px;
  font-size: 0.75em;
  max-width: 200px;
}
.chat-file-chip-name[data-v-f91cc80b] {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.chat-file-chip-size[data-v-f91cc80b] {
  color: var(--bas-chart-subtitle-text);
  white-space: nowrap;
}
.chat-file-chip-remove[data-v-f91cc80b] {
  background: none;
  border: none;
  cursor: pointer;
  font-size: 1.1em;
  line-height: 1;
  color: var(--bas-chart-axis-text);
  padding: 0 2px;
}
.chat-file-chip-remove[data-v-f91cc80b]:hover {
  color: #c00;
}
.chat-file-error[data-v-f91cc80b] {
  font-size: 0.75em;
  color: #c00;
}
.chat-file-input-hidden[data-v-f91cc80b] {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}
.chat-input[data-v-f91cc80b] {
  width: 100%;
  resize: none;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 8px;
  padding: 0.5em 0.7em;
  font-size: 0.875em;
  font-family: inherit;
  line-height: 1.4;
  outline: none;
  overflow-y: auto;
  max-height: 120px;
  background: #fff;
  box-sizing: border-box;
}
.chat-input[data-v-f91cc80b]:focus {
  border-color: var(--bui-static-foreground-color, hsl(200, 100%, 27%));
}
.chat-input[data-v-f91cc80b]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.chat-toolbar[data-v-f91cc80b] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  opacity: 0.75;
  transition: opacity 0.15s ease;
}
.chat-toolbar[data-v-f91cc80b]:hover {
  opacity: 1;
}
.chat-model-select[data-v-f91cc80b] {
  padding: 2px 5px;
  font-size: 0.7em;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 3px;
  background: transparent;
  color: var(--bas-chart-axis-text);
  cursor: pointer;
  outline: none;
}
.chat-model-select[data-v-f91cc80b]:hover:not(:disabled) {
  border-color: rgba(0, 0, 0, 0.3);
  color: #444;
}
.chat-model-select[data-v-f91cc80b]:focus {
  border-color: var(--bui-static-foreground-color, hsl(200, 100%, 27%));
}
.chat-model-select[data-v-f91cc80b]:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.chat-toolbar-actions[data-v-f91cc80b] {
  display: flex;
  align-items: center;
  gap: 0.2em;
}
.chat-attach-btn[data-v-f91cc80b] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border: none;
  border-radius: 50%;
  background: none;
  cursor: pointer;
  flex-shrink: 0;
  color: var(--bas-chart-subtitle-text);
  padding: 0;
}
.chat-attach-btn svg[data-v-f91cc80b] {
  width: 15px;
  height: 15px;
}
.chat-attach-btn[data-v-f91cc80b]:hover:not(:disabled) {
  background: rgba(0, 0, 0, 0.06);
  color: #555;
}
.chat-attach-btn[data-v-f91cc80b]:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.chat-send-btn[data-v-f91cc80b] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border: none;
  border-radius: 50%;
  background: var(--bui-static-foreground-color, hsl(200, 100%, 27%));
  color: #fff;
  cursor: pointer;
  flex-shrink: 0;
  font-size: 0.75em;
}
.chat-send-btn[data-v-f91cc80b]:hover:not(:disabled) {
  opacity: 0.85;
}
.chat-send-btn[data-v-f91cc80b]:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}
.chat-cancel-btn[data-v-f91cc80b] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border: none;
  border-radius: 50%;
  background: #c62828;
  color: #fff;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.15s ease;
}
.chat-cancel-btn[data-v-f91cc80b]:hover {
  background: #a01a1a;
}

/* Quota Indicator Styles */
.quota-indicator[data-v-f91cc80b] {
  position: relative;
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.65em;
  cursor: pointer;
  opacity: 0.7;
  transition: opacity 0.2s ease;
}
.quota-indicator[data-v-f91cc80b]:hover {
  opacity: 1;
}
.quota-circle[data-v-f91cc80b] {
  position: relative;
  width: 20px;
  height: 20px;
}
.quota-circle svg[data-v-f91cc80b] {
  transform: rotate(-90deg);
  width: 100%;
  height: 100%;
}
.quota-circle-bg[data-v-f91cc80b] {
  fill: none;
  stroke: rgba(0, 0, 0, 0.1);
  stroke-width: 3;
}
.quota-circle-fill[data-v-f91cc80b] {
  fill: none;
  stroke-width: 3;
  stroke-linecap: round;
  transition: stroke 0.3s ease, stroke-dasharray 0.3s ease;
}
.quota-normal .quota-circle-fill[data-v-f91cc80b] {
  stroke: var(--bui-static-foreground-color, hsl(200, 100%, 27%));
}
.quota-warning .quota-circle-fill[data-v-f91cc80b] {
  stroke: #ff9800;
}
.quota-critical .quota-circle-fill[data-v-f91cc80b] {
  stroke: #f44336;
}

/* Click-based tooltip styles */
.quota-tooltip[data-v-f91cc80b] {
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  margin-bottom: 8px;
  z-index: 1000;
  pointer-events: auto;
}
.quota-tooltip-content[data-v-f91cc80b] {
  background: rgba(0, 0, 0, 0.9);
  color: white;
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 0.75em;
  white-space: pre-line;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  max-width: 150px;
  min-width: 120px;
  text-align: left;
}

/* Quota Exceeded Input Styles */
.chat-input.quota-exceeded[data-v-f91cc80b] {
  background-color: #fafafa;
  color: var(--bas-chart-axis-text);
  border-color: #ddd;
  cursor: not-allowed;
}
.chat-input.quota-exceeded[data-v-f91cc80b]::placeholder {
  color: #999;
  font-style: italic;
}

/* Quota Disabled Send Button */
.chat-send-btn.quota-disabled[data-v-f91cc80b] {
  background: #f5f5f5;
  color: #999;
  border-color: #ddd;
  cursor: not-allowed;
}
.chat-send-btn.quota-disabled[data-v-f91cc80b]:hover {
  background: #f5f5f5;
  color: #999;
  transform: none;
}

/* Same float tokens as .cssPrimarySidebar (App.vue / device host): inset top, right, bottom so the
   drawer reads as a sibling "floating" panel, not edge-to-edge. --app-appbar-h: 0 when unset. */
.chat-drawer-wrapper[data-v-6c6b1e39] {
  position: fixed;
  top: calc(var(--app-appbar-h, 0px) + var(--app-sidebar-float-y, 10px));
  right: var(--app-sidebar-float-x, 12px);
  bottom: var(--app-sidebar-float-bottom, 12px);
  left: 0;
  z-index: 1000;
  pointer-events: none;
}
.chat-drawer[data-v-6c6b1e39] {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 14px;
  overflow: hidden;
  box-shadow:
    0 8px 32px rgba(0, 0, 0, 0.22),
    0 0 0 1px rgba(255, 255, 255, 0.65) inset;
  pointer-events: auto;
}
.chat-resize-handle[data-v-6c6b1e39] {
  position: absolute;
  top: 0;
  left: 0;
  width: 5px;
  height: 100%;
  cursor: col-resize;
  z-index: 1;
}
.chat-resize-handle[data-v-6c6b1e39]:hover {
  background: rgba(0, 0, 0, 0.08);
}
.chat-header[data-v-6c6b1e39] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.6em 0.8em;
  background: var(--bui-static-foreground-color, hsl(200, 100%, 27%));
  color: #fff;
  flex-shrink: 0;
}
.chat-header-title[data-v-6c6b1e39] {
  font-weight: 600;
  font-size: 0.9em;
}
.chat-header-actions[data-v-6c6b1e39] {
  display: flex;
  align-items: center;
  gap: 2px;
}
.chat-header-btn[data-v-6c6b1e39] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  background: none;
  border: none;
  color: #fff;
  cursor: pointer;
  border-radius: 4px;
  padding: 0;
}
.chat-header-btn[data-v-6c6b1e39]:hover {
  background: rgba(255, 255, 255, 0.15);
}
.chat-menu-anchor[data-v-6c6b1e39] {
  position: relative;
}
.chat-menu[data-v-6c6b1e39] {
  position: absolute;
  top: 100%;
  right: 0;
  margin-top: 4px;
  min-width: 170px;
  background: #fff;
  border-radius: 6px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);
  z-index: 10;
  padding: 4px 0;
}
.chat-menu-item[data-v-6c6b1e39] {
  display: block;
  width: 100%;
  padding: 7px 14px;
  border: none;
  background: none;
  color: #333;
  font-size: 0.8em;
  text-align: left;
  cursor: pointer;
  white-space: nowrap;
}
.chat-menu-item[data-v-6c6b1e39]:hover:not(:disabled) {
  background: rgba(0, 0, 0, 0.06);
}
.chat-menu-item[data-v-6c6b1e39]:disabled {
  color: #aaa;
  cursor: not-allowed;
}
.chat-menu-divider[data-v-6c6b1e39] {
  height: 1px;
  background: rgba(0, 0, 0, 0.1);
  margin: 4px 0;
}
.chat-messages[data-v-6c6b1e39] {
  flex: 1;
  overflow-y: auto;
  padding: 0.75em 0;
}
.chat-empty[data-v-6c6b1e39] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  color: var(--bas-chart-subtitle-text);
  text-align: center;
  padding: 2em;
}
.chat-empty-icon[data-v-6c6b1e39] {
  font-size: 2.5em;
  margin-bottom: 0.5em;
  opacity: 0.5;
}
.chat-empty p[data-v-6c6b1e39] {
  font-size: 0.9em;
  line-height: 1.5;
  max-width: 280px;
}
.chat-empty-hint[data-v-6c6b1e39] {
  font-size: 0.8em;
  color: #aaa;
  margin-top: 0.25em;
}
.chat-suggestions[data-v-6c6b1e39] {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: center;
  margin-top: 0.75em;
  max-width: 340px;
}
.chat-suggestion-chip[data-v-6c6b1e39] {
  padding: 5px 12px;
  font-size: 0.78em;
  border: 1px solid rgba(0, 152, 199, 0.3);
  border-radius: 16px;
  background: rgba(0, 152, 199, 0.06);
  color: var(--bui-static-foreground-color, hsl(200, 100%, 27%));
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
  text-align: center;
  line-height: 1.4;
}
.chat-suggestion-chip[data-v-6c6b1e39]:hover:not(:disabled) {
  background: rgba(0, 152, 199, 0.14);
  border-color: rgba(0, 152, 199, 0.5);
}
.chat-suggestion-chip[data-v-6c6b1e39]:disabled,
.chat-suggestion-chip.disabled[data-v-6c6b1e39] {
  opacity: 0.5;
  cursor: not-allowed;
  background: rgba(0, 0, 0, 0.05);
  border-color: rgba(0, 0, 0, 0.1);
  color: #999;
}
.chat-suggestion-chip[data-v-6c6b1e39]:disabled:hover,
.chat-suggestion-chip.disabled[data-v-6c6b1e39]:hover {
  background: rgba(0, 0, 0, 0.05);
  border-color: rgba(0, 0, 0, 0.1);
}
.chat-confirm-overlay[data-v-6c6b1e39] {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 20;
}
.chat-confirm-dialog[data-v-6c6b1e39] {
  background: #fff;
  border-radius: 8px;
  padding: 1.4em 1.6em;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.2);
  max-width: 280px;
  width: 90%;
}
.chat-confirm-text[data-v-6c6b1e39] {
  margin: 0 0 1.2em;
  font-size: 0.85em;
  line-height: 1.5;
  color: #333;
}
.chat-confirm-actions[data-v-6c6b1e39] {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}
.chat-confirm-btn[data-v-6c6b1e39] {
  padding: 5px 14px;
  border-radius: 4px;
  font-size: 0.8em;
  cursor: pointer;
  border: none;
}
.chat-confirm-btn.cancel[data-v-6c6b1e39] {
  background: none;
  color: var(--bas-chart-axis-text);
}
.chat-confirm-btn.cancel[data-v-6c6b1e39]:hover {
  background: rgba(0, 0, 0, 0.06);
}
.chat-confirm-btn.confirm[data-v-6c6b1e39] {
  background: var(--bui-static-foreground-color, hsl(200, 100%, 27%));
  color: #fff;
}
.chat-confirm-btn.confirm[data-v-6c6b1e39]:hover {
  opacity: 0.85;
}
.fade-enter-active[data-v-6c6b1e39],
.fade-leave-active[data-v-6c6b1e39] {
  transition: opacity 0.15s ease;
}
.fade-enter-from[data-v-6c6b1e39],
.fade-leave-to[data-v-6c6b1e39] {
  opacity: 0;
}
.drawer-slide-enter-active .chat-drawer[data-v-6c6b1e39],
.drawer-slide-leave-active .chat-drawer[data-v-6c6b1e39] {
  transition: transform 0.25s ease;
}
.drawer-slide-enter-from .chat-drawer[data-v-6c6b1e39],
.drawer-slide-leave-to .chat-drawer[data-v-6c6b1e39] {
  transform: translateX(100%);
}

/* Clean Quota Notice */
.quota-notice[data-v-6c6b1e39] {
  margin: 0.5em;
  margin-bottom: 1em;
  padding: 0.75em 1em;
  background: #ffebee;
  border: 1px solid #ffcdd2;
  border-radius: 4px;
  font-size: 0.9em;
}
.quota-message[data-v-6c6b1e39] {
  color: #c62828;
  line-height: 1.4;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.quota-details-button[data-v-6c6b1e39] {
  background: none;
  border: 1px solid #f44336;
  border-radius: 3px;
  padding: 0.25em 0.5em;
  font-size: 0.8em;
  color: #f44336;
  cursor: pointer;
  margin-left: 1em;
  white-space: nowrap;
}
.quota-details-button[data-v-6c6b1e39]:hover {
  background: #f44336;
  color: white;
}
.quota-details[data-v-6c6b1e39] {
  margin-top: 0.75em;
  padding-top: 0.75em;
  border-top: 1px solid #ffcdd2;
  display: flex;
  flex-direction: column;
  gap: 0.5em;
}
.quota-detail[data-v-6c6b1e39] {
  display: flex;
  justify-content: space-between;
  font-size: 0.85em;
  color: #c62828;
}
.quota-detail span[data-v-6c6b1e39]:last-child {
  font-family: monospace;
  color: #d32f2f;
}

.cssAppVars[data-v-4e83d1af] {
  /* No top app bar — keep variable for pages that still reference it in calc(). */
  --app-appbar-h: 0px;
  --app-sidebar-w: 15em;
  --app-sidebar-w-collapsed: 3.5em;
  --app-sidebar-secondary-w: 14em;
  --app-sidebar-secondary-collapsed-w: 3.5em;
  /* Reserved for layouts that still reference var(--app-footer-h); main app has no footer bar. */
  --app-footer-h: 0px;

  /* Floated sidebars: inset from viewport + gap before main content */
  --app-sidebar-float-x: 12px;
  --app-sidebar-float-y: 10px;
  --app-sidebar-float-bottom: 12px;
  --app-sidebar-float-gap: 16px;

  /* Cumulative horizontal offset for RouterView (end of sidebar column + gap) */
  --app-layout-primary-end: calc(var(--app-sidebar-float-x) + var(--app-sidebar-w) + var(--app-sidebar-float-gap));
  --app-layout-secondary-end: calc(var(--app-sidebar-float-x) + var(--app-sidebar-secondary-w) + var(--app-sidebar-float-gap));
  --app-layout-both-end: calc(
    var(--app-sidebar-float-x) + var(--app-sidebar-w) + var(--app-sidebar-float-gap) +
    var(--app-sidebar-secondary-w) + var(--app-sidebar-float-gap)
  );
  --app-layout-primary-secondary-collapsed-end: calc(
    var(--app-sidebar-float-x) + var(--app-sidebar-w) + var(--app-sidebar-float-gap) +
    var(--app-sidebar-secondary-collapsed-w) + var(--app-sidebar-float-gap)
  );
  --app-layout-secondary-collapsed-end: calc(
    var(--app-sidebar-float-x) + var(--app-sidebar-secondary-collapsed-w) + var(--app-sidebar-float-gap)
  );

  /* Sidebar palette — Broadcom color palette.
     Primary sidebar:   Navy Blue bg (#1B1D36) + white text
     Secondary sidebar: light Cobalt Blue tint bg + Navy Blue text */
  --app-sidebar-bg:                var(--p-broadcomGray-900, #1B1D36);
  --app-sidebar-hover-bg:          rgba(255, 255, 255, 0.1);
  --app-sidebar-fg:                #ffffff;

  --app-sidebar-secondary-bg:      var(--p-broadcomBlue-50,  #e0f7fd);
  --app-sidebar-secondary-hover-bg: var(--p-broadcomBlue-100, #b3ecf8);
  --app-sidebar-secondary-fg:      var(--p-broadcomGray-900, #1B1D36);
}
.cssApp[data-v-4e83d1af] {
  width: 100%;
  height: 100vh;
}
.cssBody[data-v-4e83d1af] {
  position: relative;
  top: var(--app-appbar-h);
  left: 0;
  width: 100%;
  height: calc(100% - var(--app-appbar-h));
}
.cssContent[data-v-4e83d1af] {
  position: relative;
  top: 0;
  padding: .5em .5em;
  height: 100%;
  overflow-y: scroll;
}

/* Server Metrics (own tab): one vertical scroll — app shell, not an inner content panel */
.cssApp.cssAppMetricsStandalone[data-v-4e83d1af] {
  height: auto;
  min-height: 100vh;
  overflow-x: hidden;
  overflow-y: auto;
}
.cssBody.cssBodyMetricsStandalone[data-v-4e83d1af] {
  height: auto;
  min-height: calc(100vh - var(--app-appbar-h));
  overflow: visible;
}
.cssContent.cssContentMetricsStandalone[data-v-4e83d1af] {
  height: auto;
  overflow-y: visible;
  overflow-x: hidden;
}
.cssSidebarTransition[data-v-4e83d1af] {
  transition: width .25s, left .25s;
}
.cssSidebarNone[data-v-4e83d1af] {
  width: 100%;
  left: 0;
}

/* Standalone tools (Server Metrics): full viewport width, no primary sidebar offset */
.cssSidebarStandalone[data-v-4e83d1af] {
  width: 100%;
  left: 0;
}
.cssSidebarPrimary[data-v-4e83d1af] {
  width: calc(100% - var(--app-layout-primary-end));
  left: var(--app-layout-primary-end);
}
.cssSidebarSecondary[data-v-4e83d1af] {
  width: calc(100% - var(--app-layout-secondary-end));
  left: var(--app-layout-secondary-end);
}
.cssSidebarBoth[data-v-4e83d1af] {
  width: calc(100% - var(--app-layout-both-end));
  left: var(--app-layout-both-end);
}
.cssSidebarPrimaryCollapsed[data-v-4e83d1af] {
  width: calc(100% - var(--app-layout-primary-secondary-collapsed-end));
  left: var(--app-layout-primary-secondary-collapsed-end);
}
.cssSidebarCollapsedOnly[data-v-4e83d1af] {
  width: calc(100% - var(--app-layout-secondary-collapsed-end));
  left: var(--app-layout-secondary-collapsed-end);
}

/* Floating chat launcher — below modals (~200), above sidebar/content; ChatDrawer (~1000) covers when open. */
.cssChatFab[data-v-4e83d1af] {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 150;
  width: 3.25rem;
  height: 3.25rem;
  box-shadow: 0 6px 20px rgba(15, 23, 42, 0.22);
}


html {
  font-family:  -apple-system,
                BlinkMacSystemFont,
                "Segoe UI",
                Roboto,
                "Helvetica Neue",
                Arial,
                "Noto Sans",
                sans-serif,
                "Apple Color Emoji",
                "Segoe UI Emoji",
                "Segoe UI Symbol",
                "Noto Color Emoji";
}
.bui-row {
  display: inline-flex;
  flex-wrap: wrap;
  grid-gap: 10px;
  align-items: center;
  padding-left: 1em;
  padding-bottom: .5em;
}
.bui-col {
  display: flex;
  flex-direction: column;
  grid-gap: .5em;
  align-items: flex-start;
  width: 70%;
}
.bui-appbar-title-icon {
  color: var(--bui-static-foreground-color);
  width: 20px;
}
.app-sidebar {
  position: fixed;
  top: var(--app-appbar-h);
  left: 0;
  width: var(--app-sidebar-w);
  height: calc(100% - var(--app-appbar-h));
}
.app-sidebar .bui-menu{
  min-width: unset;
}
.app-sidebar .bui-menu-item {
  border-left: 4px solid transparent;
}
.app-sidebar .bui-menu-item:hover:not(.bui-menu-item-selected) {
  border-left: 4px solid red;
}
.app-sidebar .bui-menu-item:focus:not(.bui-menu-item-selected) {
  margin-right: 4px;
}
.app-sidebar .bui-menu-item:active:not(.bui-menu-item-selected) {
  border-left: 4px solid red;
  margin-right: 4px;
}
.app-sidebar .bui-menu-item-selected {
  border-left: 4px solid red;
}
input.cssPrimeVueLikeSelect {
  border-radius: 8px;
  padding: 0.5rem 0.75rem;
  border: none;
  box-shadow: 0 4px 6px rgba(0,0,0,0.05);
  background-color: var(--bui-base-background-color, #FFFFFF);
}

:root {
  /* Cards */
  --bas-card-border-color: #E5E7EB;

  /* Dialogs & Overlays */
  --bas-backdrop-bg: rgba(0, 0, 0, 0.4);

  /* Log Table Severities — Broadcom palette */
  --bas-log-error-bg: rgba(204, 9, 47, 0.08);     /* Pulse Red tint */
  --bas-log-error-text: #CC092F;                   /* Pulse Red */

  --bas-log-warn-bg: rgba(243, 186, 22, 0.12);     /* Gold tint */
  --bas-log-warn-text: #8a6400;                    /* Gold darkened for legibility on white */

  --bas-log-info-bg: rgba(0, 152, 199, 0.08);      /* Cobalt Blue tint */
  --bas-log-info-text: #007B8C;                    /* Jade — slightly darker than Cobalt */

  --bas-log-success-bg: rgba(97, 166, 14, 0.08);   /* Lime tint */
  --bas-log-success-text: #4a7d00;                 /* Lime darkened for legibility on white */

  --bas-log-debug-bg: rgba(232, 232, 232, 0.5);    /* Gray 100 tint */
  --bas-log-debug-text: #53565A;                   /* Cool Gray 11 */

  --bas-log-fatal-bg: rgba(108, 75, 148, 0.08);    /* Steel Purple tint */
  --bas-log-fatal-text: #6C4B94;                   /* Steel Purple */

  /* Charts & Text — Broadcom grays */
  --bas-chart-axis-text: #53565A;                  /* Cool Gray 11 */
  --bas-chart-grid-line: #D1D2D7;                  /* Gray 200 */
  --bas-chart-title-text: #282a2e;                 /* Dark neutral */
  --bas-chart-subtitle-text: #A4A5AF;              /* Gray 400 */

  /* Chart data-series palette — Broadcom official colors in recommended order.
     PDF visual-element gradient: Pulse Red → Cobalt Blue → Steel Purple.
     Series start with neutral blues/greens; Pulse Red is reserved for the last
     series to avoid false danger associations in standard monitoring views. */
  --bas-chart-color-1: #0098C7;   /* Cobalt Blue  — primary */
  --bas-chart-color-2: #007B8C;   /* Jade */
  --bas-chart-color-3: #61A60E;   /* Lime */
  --bas-chart-color-4: #F3BA16;   /* Gold */
  --bas-chart-color-5: #6C4B94;   /* Steel Purple */
  --bas-chart-color-6: #005C8A;   /* Sapphire */
  --bas-chart-color-7: #2EBEEF;   /* Cyan */
  --bas-chart-color-8: #CC092F;   /* Pulse Red — last, high-contrast accent */
}
/*
 * Shared toolbar and table-action styles.
 *
 * These are global (non-scoped) rules, so plain descendant selectors are used
 * instead of Vue's :deep() wrapper. Because PrimeVue is configured with
 * cssLayer:true, all non-layered CSS here automatically outranks PrimeVue's
 * layered defaults; !important is used only where PrimeVue applies high-
 * specificity inline or component-level overrides.
 */

/* ============================================================
   Segmented toolbar button group
   ------------------------------------------------------------
   Usage:
     <div class="basToolbarGroup">
       <PvToggleButton ... />
       <div class="basToolbarDivider" />
       <PvButton ... />
       <div class="basToolbarDivider" />
       <div class="basToolbarSlot">  <!-- for teleported content -->
         ...
       </div>
     </div>
   ============================================================ */

.basToolbarGroup {
  display: flex;
  align-items: stretch;
  height: 46px;
  border: 1px solid #D1D2D7;
  border-radius: 8px;
  overflow: hidden;
  background: var(--p-surface-0, #ffffff);
}

.basToolbarDivider {
  width: 1px;
  flex-shrink: 0;
  background: #D1D2D7;
}

/* Flex wrapper for teleported or otherwise separately-rendered group items */
.basToolbarSlot {
  display: flex;
  align-items: stretch;
}

/* --- PrimeVue Button & ToggleButton chrome reset inside the group --- */

.basToolbarGroup .p-button,
.basToolbarGroup .p-togglebutton {
  height: 100% !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  color: #53565A !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 0.875em !important;
  min-width: 2.75em;
  justify-content: center;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.basToolbarGroup .p-button:hover:not(:disabled),
.basToolbarGroup .p-togglebutton:hover:not(:disabled) {
  background: #E8E8E8 !important;
  color: #282a2e !important;
}

.basToolbarGroup .p-button:disabled,
.basToolbarGroup .p-togglebutton:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* Active / toggled-on state (e.g. star filter engaged) — Broadcom Gold */
.basToolbarGroup [aria-pressed="true"] {
  color: #F3BA16 !important;
}

.basToolbarGroup [aria-pressed="true"]:hover {
  color: #c99800 !important;
  background: rgba(243, 186, 22, 0.12) !important;
}

/* ToggleButton renders a label span — hide it for icon-only buttons */
.basToolbarGroup .p-togglebutton-label {
  display: none;
}

/* Icon sizing inside any group button */
.basToolbarGroup .bui-icon {
  font-size: 1.25em;
  pointer-events: none;
}

/* --- PrimeVue MultiSelect (column selector) inside the group --- */

.basToolbarGroup .p-multiselect {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  height: 100%;
  color: #53565A;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.basToolbarGroup .p-multiselect:hover {
  background: #E8E8E8 !important;
  color: #282a2e;
}

/* Hide the selected-values label — this acts as an icon-only button */
.basToolbarGroup .p-multiselect .p-multiselect-label-container {
  display: none;
}

/* Dropdown trigger fills the slot and centers the icon */
.basToolbarGroup .p-multiselect .p-multiselect-dropdown {
  flex: 1;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  color: inherit;
}

.basToolbarGroup .p-multiselect .p-multiselect-dropdown-icon {
  font-size: 1.25em;
}


/* ============================================================
   Ghost action buttons — borderless icon buttons for table rows
   ------------------------------------------------------------
   Usage:
     <button class="basGhostBtn" v-tooltip.top="...">
       <i class="pi pi-info-circle" />
     </button>
     <a class="basGhostBtn" href="..." v-tooltip.top="...">
       <i class="pi pi-gauge" />
     </a>
   ============================================================ */

.basGhostBtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2em;
  height: 2em;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 50%;
  color: #53565A;
  cursor: pointer;
  text-decoration: none;
  flex-shrink: 0;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.basGhostBtn:hover {
  color: var(--p-primary-color);
  background: color-mix(in srgb, var(--p-primary-color) 10%, transparent);
}

.basGhostBtn:focus-visible {
  outline: 2px solid var(--p-primary-color);
  outline-offset: 2px;
}

/* Active / toggled-on modifier (e.g. a device that is already starred) — Broadcom Gold */
.basGhostBtnStarred {
  color: #F3BA16;
}

.basGhostBtn i {
  font-size: 1em;
  pointer-events: none;
}


/* ============================================================
   Action button row — flex container for ghost buttons in table cells
   ============================================================ */

.basActionRow {
  display: flex;
  gap: 0.125em;
  align-items: center;
}


/* ============================================================
   Standalone toolbar button / select — outside a basToolbarGroup
   ------------------------------------------------------------
   Use this class on any PvButton or PvMultiSelect that lives in a
   toolbar but is NOT wrapped by basToolbarGroup (e.g. "Register"
   button, column-selector MultiSelect). Gives it the same soft
   border and rounded corners as the app's input fields.

   Usage:
     <PvButton  class="cssToolBtn basToolbarBtn" ... />
     <PvMultiSelect class="cssColumnMultiSelect basToolbarBtn" ... />
   ============================================================ */

.basToolbarBtn {
  border: 1px solid #E5E7EB !important;
  border-radius: 8px !important;
  transition: border-color 0.15s ease !important;
}

.basToolbarBtn:hover:not(:disabled) {
  border-color: #9CA3AF !important;
}


/* ============================================================
   Input field three-state border system (app-wide)
   ------------------------------------------------------------
   1. Default  — soft gray  (#E5E7EB)  — blends into background
   2. Hover    — medium gray (#9CA3AF) — gentle interactive hint
   3. Focus    — brand blue + glow     — clear typing anchor
   ============================================================ */

/* ── Standalone Select ──────────────────────────────────────── */

.p-select {
  border-radius: 8px !important;
  border-color: #E5E7EB !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
}

.p-select:not(.p-disabled):hover {
  border-color: #9CA3AF !important;
}

.p-select:not(.p-disabled).p-focus {
  border-color: var(--p-primary-color, #3B82F6) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--p-primary-color, #3B82F6) 20%, transparent) !important;
  outline: none !important;
}

/* ── Standalone InputText ─────────────────────────────────── */

.p-inputtext {
  border-radius: 8px !important;
  border-color: #E5E7EB !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
}

.p-inputtext:hover:not(:focus) {
  border-color: #9CA3AF !important;
}

.p-inputtext:focus {
  border-color: var(--p-primary-color, #3B82F6) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--p-primary-color, #3B82F6) 20%, transparent) !important;
  outline: none !important;
}

/* ── IconField wrapper (border lives on the <span> wrapper) ── */

.p-iconfield {
  border-radius: 8px !important;
  border-color: #E5E7EB !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
}

.p-iconfield:hover:not(:focus-within) {
  border-color: #9CA3AF !important;
}

.p-iconfield:focus-within {
  border-color: var(--p-primary-color, #3B82F6) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--p-primary-color, #3B82F6) 20%, transparent) !important;
}

/* ── DatePicker input ─────────────────────────────────────── */

.p-datepicker-input {
  border-radius: 8px !important;
  border-color: #E5E7EB !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
}

.p-datepicker-input:hover:not(:focus) {
  border-color: #9CA3AF !important;
}

.p-datepicker-input:focus {
  border-color: var(--p-primary-color, #3B82F6) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--p-primary-color, #3B82F6) 20%, transparent) !important;
  outline: none !important;
}
/*
 * Shared page-level utility classes for BAS-P pages.
 *
 * Import: globally via main.js — do not import per-component.
 * Usage:  apply .bas* classes directly in templates; no need to
 *         redeclare these patterns in scoped <style> blocks.
 *
 * Tokens used:
 *   --p-surface-0            white card / panel background
 *   --p-content-border-color soft gray border (#e5e7eb)
 *   --p-text-color           primary text
 *   --p-text-muted-color     secondary / label text
 *   --p-primary-color        Broadcom Cobalt Blue (#0098C7)
 *   --p-primary-50           very light blue tint for active states
 */


/* ============================================================
   Page container
   ============================================================ */

.basPage {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 0.5em;
  min-height: 0;
  flex: 1;
}


/* ============================================================
   Page header  (title + subtitle left, filters/actions right)
   ------------------------------------------------------------
   Usage:
     <div class="basPageHeader">
       <div class="basPageHeading">
         <h1 class="basPageTitle">My Page</h1>
         <span class="basPageSubtitle">Brief description</span>
       </div>
       <div class="basPageFilters">
         <!-- filter inputs / action buttons -->
       </div>
     </div>
   ============================================================ */

.basPageHeader {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  padding: 0 4px 0.85rem;
  border-bottom: 1px solid var(--p-content-border-color, #e5e7eb);
}

.basPageHeading {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.basPageTitle {
  font-size: 1.35rem;
  font-weight: 700;
  margin: 0;
  line-height: 1.2;
  color: var(--p-text-color);
}

.basPageSubtitle {
  font-size: 0.82rem;
  color: var(--p-text-muted-color);
}

.basPageFilters {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}


/* ============================================================
   Stat / KPI cards  (row of summary metric tiles)
   ------------------------------------------------------------
   Usage:
     <div class="basStatCards">
       <div class="basStatCard basStatCardClickable"
            :class="{ basStatCardActive: activeFilter === 'offline' }"
            @click="onFilterSelect('offline')">
         <div class="basStatLabel">OFFLINE</div>
         <div class="basStatValue basStatOffline">{{ count }}</div>
       </div>
       <!-- non-interactive card — omit basStatCardClickable -->
       <div class="basStatCard">
         <div class="basStatLabel">TOTAL DEVICES</div>
         <div class="basStatValue basStatTotal">{{ total }}</div>
       </div>
     </div>

   Value color modifiers:
     basStatTotal    — dark neutral  (no health state)
     basStatHealthy  — green
     basStatWarning  — orange/amber
     basStatCritical — red
     basStatOffline  — purple
   ============================================================ */

.basStatCards {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.basStatCard {
  flex: 1 1 140px;
  background: var(--p-surface-0);
  border: 1px solid var(--p-content-border-color, #e5e7eb);
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05), 0 3px 12px rgba(0, 0, 0, 0.05);
  padding: 16px 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.basStatCardClickable {
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}

.basStatCardClickable:hover {
  border-color: var(--p-primary-color);
  background: var(--p-primary-50, #e0f7fd);
}

.basStatCardActive {
  border-color: var(--p-primary-color) !important;
  background: var(--p-primary-50, #e0f7fd) !important;
  box-shadow: 0 0 0 1px var(--p-primary-color), 0 3px 12px rgba(0, 0, 0, 0.05) !important;
}

.basStatLabel {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--p-text-muted-color);
}

.basStatValue {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
}

/* Value color modifiers */
.basStatTotal    { color: #1e293b; }
.basStatHealthy  { color: #16a34a; }
.basStatWarning  { color: #d97706; }
.basStatCritical { color: #dc2626; }
.basStatOffline  { color: #7c3aed; }


/* ============================================================
   Severity badges  (inline pill labels for critical/warning/etc.)
   ------------------------------------------------------------
   Usage:
     <span class="basBadge basBadgeCritical">Critical</span>
     <span class="basBadge basBadgeWarning">Warning</span>
   ============================================================ */

.basBadge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border-radius: 5px;
  padding: 2px 8px;
  font-size: 0.7rem;
  font-weight: 600;
  white-space: nowrap;
}

.basBadgeCritical { background-color: #fee2e2; color: #dc2626; }
.basBadgeError    { background-color: #ffedd5; color: #ea580c; }
.basBadgeWarning  { background-color: #fef9c3; color: #ca8a04; }
.basBadgeInfo     { background-color: #dbeafe; color: #2563eb; }
.basBadgeOffline  { background-color: #ede9fe; color: #7c3aed; }
.basBadgeUnknown  { background-color: #f1f5f9; color: #6b7280; }
.basBadgeOnline   { background-color: #dcfce7; color: #16a34a; }


/* ============================================================
   Status dot  (colored circle for online/offline/warning state)
   ------------------------------------------------------------
   Usage:
     <span class="basStatusDot basStatusDotOnline" />
     <span class="basStatusDot basStatusDotOffline" />
   ============================================================ */

.basStatusDot {
  display: inline-block;
  width: 0.55em;
  height: 0.55em;
  border-radius: 50%;
  flex-shrink: 0;
}

.basStatusDotOnline  { background-color: #16a34a; }
.basStatusDotOffline { background-color: #dc2626; }
.basStatusDotWarning { background-color: #d97706; }
.basStatusDotUnknown { background-color: #94a3b8; }


/* ============================================================
   Content panel  (white bordered section — for non-card panels)
   ------------------------------------------------------------
   Usage:
     <div class="basPanel">
       <div class="basPanelTitle">Section Title</div>
       <!-- content -->
     </div>
   ============================================================ */

.basPanel {
  background: var(--p-surface-0);
  border: 1px solid var(--p-content-border-color, #e5e7eb);
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05), 0 3px 12px rgba(0, 0, 0, 0.05);
  padding: 16px;
}

.basPanelTitle {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--p-text-color);
  margin-bottom: 12px;
}


/* ============================================================
   Empty / no-data state
   ============================================================ */

.basEmptyState {
  padding: 20px 0;
  text-align: center;
  color: var(--p-text-muted-color);
  font-size: 0.85rem;
}
