:root {
  color-scheme: dark;
  --bg: #111418;
  --panel: #171c22;
  --panel-2: #1d232b;
  --panel-3: #242b34;
  --line: #303944;
  --line-soft: #252d36;
  --text: #edf2f7;
  --muted: #9aa7b4;
  --faint: #697684;
  --accent: #4fb7c5;
  --accent-strong: #76d0da;
  --danger: #ef6b73;
  --warning: #e5b857;
  --warning-soft: rgba(229, 184, 87, 0.16);
  --success: #65c883;
  --terminal: #090d10;
  --terminal-text: #90f5a9;
  --radius: 8px;
  --shadow: 0 16px 40px rgba(0, 0, 0, 0.28);
  --header-height: 56px;
  --footer-height: 34px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Ops pages */

.ops-page {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-height: calc(100vh - var(--header-height));
  padding: 14px;
}

:root[data-theme="dark"] .ops-page,
:root[data-theme="dark"] .rollout-page,
:root[data-theme="dark"] #dashboard,
:root[data-theme="dark"] .manager-empty {
  background-color: #101419;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.024) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.018) 1px, transparent 1px),
    linear-gradient(135deg, rgba(79, 183, 197, 0.035), transparent 34%);
  background-position: -1px -1px, -1px -1px, 0 0;
  background-size: 28px 28px, 28px 28px, 100% 100%;
}

.ops-page-header,
.ops-section,
.ops-filter-bar {
  background: var(--panel);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
}

.ops-page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 16px;
}

.ops-page-header h3,
.ops-section-header h4 {
  margin: 0;
}

.ops-page-header h3 i,
.ops-section-header h4 i {
  margin-right: 7px;
  color: var(--accent);
}

.ops-page-header small,
.ops-section-header small,
.medic-check-main small,
.windows-update-card small,
.alarm-check small,
.alarm-row-details small {
  color: var(--muted);
}

.ops-page-actions,
.ops-form-actions,
.ops-filter-bar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 34px;
  padding: 7px 12px;
  color: var(--text);
  font-weight: 700;
  text-decoration: none;
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  cursor: pointer;
}

.button:hover {
  border-color: var(--accent);
}

.button.primary {
  color: #071014;
  background: var(--accent);
  border-color: var(--accent);
}

.button.warning {
  color: #1f1600;
  background: var(--warning);
  border-color: var(--warning);
}

.button.danger {
  color: #21080b;
  background: var(--danger);
  border-color: var(--danger);
}

.ops-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.ops-section {
  padding: 16px;
}

.ops-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.ops-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.ops-form-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(180px, 1fr));
  gap: 12px;
}

.medic-target-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(180px, 1fr));
  gap: 12px;
}

.ops-form label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  color: var(--muted);
  font-weight: 700;
}

.ops-form label span {
  font-size: 0.82rem;
}

.ops-checkbox {
  flex-direction: row !important;
  align-items: center;
  min-height: 36px;
  padding-top: 22px;
}

.ops-rule-fields {
  padding-top: 12px;
  border-top: 1px solid var(--line-soft);
}

.ops-empty {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 22px;
  color: var(--muted);
  background: var(--panel-2);
  border: 1px dashed var(--line);
  border-radius: var(--radius);
}

.medic-check-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.medic-checks-header {
  align-items: flex-start;
  flex-wrap: wrap;
}

.medic-check-tools {
  display: flex;
  align-items: center;
  flex: 1 1 520px;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.medic-status-filter {
  display: inline-flex;
  flex: 0 1 auto;
  flex-wrap: wrap;
  overflow: hidden;
  gap: 0;
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.medic-status-filter button {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 34px;
  padding: 6px 10px;
  color: var(--muted);
  background: transparent;
  border: 0;
  border-left: 1px solid var(--line);
  border-radius: 0;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 800;
  cursor: pointer;
}

.medic-status-filter button:first-child {
  border-left: 0;
}

.medic-status-filter button:hover,
.medic-status-filter button.active {
  color: var(--text);
}

.medic-status-filter button.active {
  background: rgba(79, 183, 197, 0.16);
}

.medic-check-filter {
  position: relative;
  display: block;
  flex: 0 1 300px;
  min-width: min(300px, 100%);
}

.medic-check-filter i {
  position: absolute;
  top: 50%;
  left: 11px;
  color: var(--muted);
  transform: translateY(-50%);
  pointer-events: none;
}

.medic-check-filter .form-input {
  min-height: 34px;
  padding-left: 34px;
}

.medic-summary-card h5 i {
  margin-right: 6px;
}

.medic-summary-card strong {
  display: block;
  margin-top: 4px;
  color: var(--text);
  font-size: 1.45rem;
}

.medic-summary-ok h5 i,
.medic-state-healthy {
  color: var(--success);
}

.medic-summary-warning h5 i,
.medic-state-warning {
  color: var(--warning);
}

.medic-summary-danger h5 i,
.medic-state-alarm {
  color: var(--danger);
}

.alarm-summary-card {
  display: grid;
  place-items: center;
  min-height: 104px;
  text-align: center;
}

.alarm-summary-card h5 {
  margin: 0;
}

.alarm-summary-card strong {
  display: block;
  color: var(--text);
  font-size: 2.15rem;
  line-height: 1;
}

.alarm-summary-card small {
  display: block;
  margin-top: 2px;
}

.medic-new-check > summary {
  margin-bottom: 0;
  list-style: none;
  cursor: pointer;
}

.medic-new-check > summary::-webkit-details-marker {
  display: none;
}

.downloads-new-release > summary::-webkit-details-marker {
  display: none;
}

.downloads-library > summary::-webkit-details-marker {
  display: none;
}

.medic-new-check[open] > summary {
  margin-bottom: 14px;
}

.downloads-new-release[open] > summary {
  margin-bottom: 14px;
}

.downloads-library[open] > summary {
  margin-bottom: 14px;
}

.medic-new-check > summary > i {
  color: var(--muted);
  transition: transform 0.16s ease;
}

.downloads-new-release > summary > i {
  color: var(--muted);
  transition: transform 0.16s ease;
}

.downloads-library > summary > i {
  color: var(--muted);
  transition: transform 0.16s ease;
}

.medic-new-check[open] > summary > i {
  transform: rotate(180deg);
}

.downloads-new-release[open] > summary > i {
  transform: rotate(180deg);
}

.downloads-library[open] > summary > i {
  transform: rotate(180deg);
}

.downloads-notes-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.download-notes-card h5 i,
.download-product-header i,
.download-release-icon i {
  color: var(--accent);
}

.download-notes-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.download-notes-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.download-notes-head h5 {
  margin: 0;
}

.download-notes-head small,
.download-notes-copy {
  color: var(--muted);
}

.download-notes-copy {
  margin: 0;
  background: rgba(0, 0, 0, 0.12);
  border: 1px solid var(--line-soft);
  border-radius: 6px;
}

.download-notes-copy summary {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 9px 10px;
  color: var(--accent-strong);
  cursor: pointer;
  font-weight: 800;
}

.download-notes-copy-body {
  max-height: 140px;
  overflow: auto;
  padding: 0 10px 10px;
  color: var(--text);
  white-space: pre-wrap;
}

.downloads-alert {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--warning);
  border-color: rgba(229, 184, 87, 0.35);
  background: var(--warning-soft);
}

.download-product-section {
  display: grid;
  gap: 10px;
  padding: 14px 0;
  border-top: 1px solid var(--line-soft);
}

.download-product-section:first-of-type {
  padding-top: 0;
  border-top: 0;
}

.download-product-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.download-product-header h5 {
  margin: 0;
  font-size: 0.98rem;
}

.download-product-header small,
.download-release-main small,
.download-release-meta {
  color: var(--muted);
}

.download-release-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 10px;
}

.download-release-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 14px;
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.download-release-main {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
}

.download-release-main h5 {
  margin: 0;
  font-size: 1rem;
}

.download-release-main h5 .rollout-stage-badge {
  margin-left: 8px;
  vertical-align: middle;
}

.download-release-main small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.download-release-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(79, 183, 197, 0.4);
  border-radius: 50%;
  background: rgba(79, 183, 197, 0.08);
}

.download-release-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 0.78rem;
}

.download-release-meta span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.download-release-notes {
  color: var(--text);
  background: rgba(0, 0, 0, 0.12);
  border: 1px solid var(--line-soft);
  border-radius: 6px;
}

.download-release-notes summary {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 9px 10px;
  color: var(--accent-strong);
  cursor: pointer;
  font-weight: 800;
}

.download-release-notes summary::marker {
  color: var(--muted);
}

.download-release-notes-body {
  max-height: 180px;
  overflow: auto;
  padding: 0 10px 10px;
  color: var(--text);
  white-space: pre-wrap;
}

.download-release-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: auto;
}

.download-release-actions form {
  margin: 0;
}

.downloads-empty {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px;
  color: var(--muted);
  background: var(--panel-2);
  border: 1px dashed var(--line);
  border-radius: var(--radius);
}

.medic-check-card {
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.medic-check-card summary {
  display: grid;
  align-items: center;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) minmax(660px, 760px);
  padding: 12px;
  cursor: pointer;
}

.medic-check-main {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.medic-check-main strong {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
}

.medic-check-main strong i {
  flex: 0 0 auto;
}

.medic-check-main strong,
.medic-check-main small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.medic-check-meta {
  display: grid;
  align-items: center;
  gap: 6px;
  grid-template-columns: 64px 92px minmax(190px, 230px) 78px minmax(160px, 190px);
  justify-content: flex-end;
  min-width: 220px;
  width: 100%;
}

.medic-check-meta .rollout-stage-badge {
  justify-content: center;
  width: 100%;
  min-width: 0;
  max-width: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.medic-check-meta .medic-edit-cue,
.medic-check-meta .medic-state-badge {
  justify-content: center;
  width: 100%;
}

.medic-check-readonly summary {
  cursor: default;
}

.medic-check-readonly .medic-check-meta {
  grid-template-columns: 92px minmax(190px, 230px) 78px minmax(160px, 190px);
}

.medic-state-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 2px 8px;
  border: 1px solid currentColor;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.03);
  font-size: 0.72rem;
  font-weight: 800;
}

.medic-edit-cue {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 2px 8px;
  color: var(--accent-strong);
  background: rgba(79, 183, 197, 0.08);
  border: 1px solid rgba(79, 183, 197, 0.38);
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 800;
}

.medic-state-paused,
.medic-state-waiting {
  color: var(--muted);
}

.medic-rule-summary {
  color: var(--accent-strong) !important;
}

.medic-repair-summary,
.alarm-repair-guide {
  color: var(--accent-strong) !important;
}

.medic-rule-badge {
  border-color: rgba(148, 163, 184, 0.35);
  color: var(--muted);
}

.medic-built-in-note {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 36px;
  padding-top: 22px;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 800;
}

.medic-built-in-note i {
  color: var(--accent);
}

.medic-check-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 12px;
  border-top: 1px solid var(--line-soft);
}

.medic-check-actions form {
  margin: 0;
}

.medic-clone-form {
  padding: 12px;
  background: var(--panel);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
}

.ops-filter-bar {
  padding: 10px;
}

.ops-table-wrap {
  overflow: auto;
}

.alarm-table-wrap {
  background: var(--panel-2);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
}

.alarm-table {
  min-width: 1120px;
}

.alarm-check strong,
.alarm-check small,
.alarm-check p {
  display: block;
}

.alarm-check p {
  margin: 6px 0 0;
  color: var(--muted);
}

.alarm-severity {
  color: var(--muted);
  font-weight: 700;
}

.alarm-detail-row td {
  padding-top: 0;
  background: rgba(0, 0, 0, 0.12);
  border-bottom-color: var(--line);
}

.alarm-row-details {
  margin: 0 0 8px;
  color: var(--muted);
}

.alarm-row-details summary {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  color: var(--text);
  cursor: pointer;
}

.alarm-detail-fields {
  display: grid;
  gap: 10px;
  width: 100%;
}

.alarm-detail-field strong {
  display: block;
  margin-bottom: 4px;
  color: var(--muted);
  font-size: 0.78rem;
}

.alarm-repair-detail {
  display: grid;
  gap: 4px;
  margin-bottom: 10px;
  padding: 10px;
  background: rgba(79, 183, 197, 0.08);
  border: 1px solid rgba(79, 183, 197, 0.22);
  border-radius: var(--radius);
}

.alarm-repair-detail strong {
  color: var(--accent-strong);
}

.alarm-row-details pre {
  width: 100%;
  max-width: none;
  max-height: 180px;
  margin: 0;
  overflow: auto;
  padding: 10px;
  color: var(--terminal-text);
  background: var(--terminal);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

@media (max-width: 1180px) {
  .medic-check-card summary {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 900px) {
  .ops-page-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .medic-check-meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    min-width: 0;
    width: 100%;
  }

  .medic-check-meta .rollout-stage-badge,
  .medic-check-meta .medic-edit-cue,
  .medic-check-meta .medic-state-badge {
    width: auto;
  }

  .ops-summary-grid,
  .downloads-notes-grid,
  .ops-form-grid,
  .medic-target-grid {
    grid-template-columns: 1fr;
  }
}

:root[data-theme="light"] {
  color-scheme: light;
  --bg: #f4f7fb;
  --panel: #ffffff;
  --panel-2: #f8fafc;
  --panel-3: #eef3f8;
  --line: #cfd9e5;
  --line-soft: #e2e9f1;
  --text: #14202b;
  --muted: #5d6b7a;
  --faint: #7c8998;
  --accent: #168da0;
  --accent-strong: #0f7486;
  --danger: #c93f4a;
  --warning: #a36b00;
  --warning-soft: rgba(163, 107, 0, 0.12);
  --success: #21884a;
  --terminal: #fbfae9;
  --terminal-text: #203126;
  --shadow: 0 16px 40px rgba(31, 45, 61, 0.16);
}

* {
  box-sizing: border-box;
}

html,
body {
  min-height: 100%;
}

html {
  scrollbar-color: var(--faint) var(--bg);
  scrollbar-width: thin;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-size: 14px;
  line-height: 1.45;
}

a {
  color: inherit;
}

[x-cloak] {
  display: none !important;
}

.standard-only {
  display: none !important;
}

:root[data-view="standard"] .advanced-only {
  display: none !important;
}

:root[data-view="standard"] .standard-only {
  display: inline-flex !important;
}

:root[data-view="standard"] #stdout .favourites,
:root[data-view="standard"] #stdout #history,
:root[data-view="standard"] #stdout #files,
:root[data-view="standard"] #stdout .services,
:root[data-view="standard"] #stdout .system-tools,
:root[data-view="standard"] #stdout .windows-update,
:root[data-view="standard"] #stdout .quick-restore,
:root[data-view="standard"] #stdout .spacemap,
:root[data-view="standard"] #stdout .bits,
:root[data-view="standard"] #stdout .usbguard,
:root[data-view="standard"] #stdout .osquery {
  display: none !important;
}

* {
  scrollbar-color: var(--faint) transparent;
  scrollbar-width: thin;
}

*::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

*::-webkit-scrollbar-track {
  background: color-mix(in srgb, var(--panel-3) 45%, transparent);
  border-radius: 999px;
}

*::-webkit-scrollbar-thumb {
  background: var(--faint);
  border: 2px solid transparent;
  border-radius: 999px;
  background-clip: padding-box;
}

*::-webkit-scrollbar-thumb:hover {
  background: var(--muted);
  border: 2px solid transparent;
  background-clip: padding-box;
}

*::-webkit-scrollbar-corner {
  background: transparent;
}

.text-primary {
  color: var(--accent-strong) !important;
}

.text-success {
  color: var(--success) !important;
}

.text-danger,
.text-error {
  color: var(--danger) !important;
}

.text-muted {
  color: var(--muted) !important;
}

.text-center {
  text-align: center;
}

.container {
  width: 100%;
  max-width: 100%;
}

.columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.column {
  min-width: 0;
}

.form-group {
  margin-bottom: 14px;
}

.form-input {
  width: 100%;
  min-height: 36px;
  padding: 7px 10px;
  color: var(--text);
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.btn,
button {
  color: inherit;
}

.btn-clear {
  position: relative;
  width: 28px;
  height: 28px;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
}

.btn-clear::before,
.btn-clear::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 2px;
  content: "";
  background: currentColor;
}

.btn-clear::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.btn-clear::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.modal {
  display: none;
}

.modal.active {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  place-items: center;
}

.modal-overlay {
  position: absolute;
  inset: 0;
}

.modal-container {
  position: relative;
  z-index: 1;
  width: min(520px, calc(100vw - 32px));
  overflow: hidden;
  color: #111418;
  background: #f8fafc;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.modal-header,
.modal-body,
.modal-footer {
  padding: 16px;
}

.modal-header {
  border-bottom: 1px solid #dbe3ea;
}

.modal-footer {
  border-top: 1px solid #dbe3ea;
}

.modal-title {
  font-weight: 700;
}

.idle-countdown {
  margin-left: 4px;
}

.tooltip {
  position: relative;
}

.tooltip:hover::after {
  position: absolute;
  z-index: 3000;
  bottom: calc(100% + 8px);
  left: 50%;
  max-width: 240px;
  padding: 5px 8px;
  color: var(--text);
  white-space: nowrap;
  content: attr(data-tooltip);
  background: #05080a;
  border: 1px solid var(--line);
  border-radius: 6px;
  transform: translateX(-50%);
}

:root[data-theme="light"] .tooltip:hover::after {
  color: var(--text);
  background: var(--panel);
  border-color: var(--line);
  box-shadow: 0 8px 24px rgba(31, 45, 61, 0.16);
}

sl-tooltip {
  --sl-tooltip-background-color: #05080a;
  --sl-tooltip-color: var(--text);
  --sl-tooltip-border-radius: 6px;
  --max-width: min(420px, 70vw);
}

:root[data-theme="light"] sl-tooltip {
  --sl-tooltip-background-color: var(--panel);
  --sl-tooltip-color: var(--text);
}

:root[data-theme="light"] sl-tooltip::part(base) {
  border: 1px solid var(--line);
  box-shadow: 0 8px 24px rgba(31, 45, 61, 0.16);
}

.tooltip-right:hover::after {
  top: 50%;
  bottom: auto;
  left: calc(100% + 8px);
  transform: translateY(-50%);
}

.tooltip-left:hover::after {
  top: 50%;
  right: calc(100% + 8px);
  bottom: auto;
  left: auto;
  transform: translateY(-50%);
}

.tooltip-bottom:hover::after {
  top: calc(100% + 8px);
  bottom: auto;
  transform: translateX(-50%);
}

.app-header {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: var(--header-height);
  padding: 0 18px;
  background: color-mix(in srgb, var(--bg) 94%, transparent);
  border-bottom: 1px solid var(--line-soft);
  backdrop-filter: blur(12px);
}

.app-brand,
.app-brand a,
.app-actions,
.app-nav-link {
  display: flex;
  align-items: center;
}

.app-brand {
  gap: 10px;
  color: var(--text);
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.app-brand img {
  display: block;
  width: 34px;
  height: 34px;
  object-fit: contain;
}

.app-actions {
  gap: 8px;
}

.app-nav-divider {
  color: var(--line);
  font-weight: 700;
  user-select: none;
}

.app-nav-link {
  gap: 8px;
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: var(--radius);
  color: var(--muted);
  text-decoration: none;
}

.app-nav-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 16px;
  height: 16px;
  padding: 0 5px;
  color: #ffffff;
  background: color-mix(in srgb, var(--danger) 86%, #000000);
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1;
}

button.app-nav-link {
  font: inherit;
  cursor: pointer;
  background: transparent;
}

.app-nav-link:hover,
.app-nav-link:focus {
  background: var(--panel-2);
  border-color: var(--line);
  color: var(--text);
  text-decoration: none;
}

@media (min-width: 901px) {
  .mobile-nav-link {
    display: none;
  }
}

.app-main {
  min-height: calc(100vh - var(--header-height) - var(--footer-height));
}

.app-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: var(--footer-height);
  padding: 0 18px;
  color: var(--faint);
  background: var(--bg);
  border-top: 1px solid var(--line-soft);
  font-size: 0.78rem;
}

.netcmdr-guide .guide-container {
  width: min(620px, calc(100vw - 32px));
  color: var(--text);
  background: var(--panel);
  border: 1px solid var(--line);
}

.netcmdr-guide .guide-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom-color: var(--line-soft);
}

.guide-title {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--accent-strong);
  font-size: 1rem;
  font-weight: 700;
}

.guide-title i {
  width: 20px;
  text-align: center;
}

.guide-body {
  display: grid;
  gap: 18px;
}

.guide-body p {
  margin: 0;
  color: var(--text);
  font-size: 0.96rem;
  line-height: 1.55;
}

.guide-progress {
  display: flex;
  gap: 8px;
}

.guide-dot {
  width: 34px;
  height: 4px;
  border-radius: 999px;
  background: var(--line);
}

.guide-dot.done {
  background: var(--accent);
}

.guide-dot.active {
  background: var(--warning);
}

.netcmdr-guide .guide-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-top-color: var(--line-soft);
}

.guide-footer-actions {
  display: flex;
  gap: 8px;
}

.netcmdr-guide .button {
  min-height: 34px;
  padding: 0 14px;
  color: var(--text);
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: 6px;
  font-weight: 700;
}

.netcmdr-guide .button:hover:not(:disabled) {
  background: var(--panel-3);
  border-color: var(--accent);
  cursor: pointer;
}

.netcmdr-guide .button.primary {
  color: #071015;
  background: var(--accent);
  border-color: var(--accent);
}

.netcmdr-guide .button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.netcmdr-guide .btn-clear {
  color: var(--muted);
}

.netcmdr-guide .btn-clear:hover {
  color: var(--text);
}

/* Login and errors */

#login-wrapper {
  display: grid;
  min-height: 100vh;
  place-items: center;
  padding: 32px;
  background:
    radial-gradient(circle at 20% 20%, rgba(79, 183, 197, 0.14), transparent 34%),
    linear-gradient(135deg, #111418 0%, #1a2027 50%, #12161b 100%);
}

:root[data-theme="light"] #login-wrapper {
  background:
    radial-gradient(circle at 22% 18%, rgba(22, 141, 160, 0.12), transparent 34%),
    linear-gradient(135deg, #f4f7fb 0%, #ffffff 48%, #eef4fa 100%);
}

#login {
  width: min(420px, 100%);
}

#login-form {
  display: flex;
  flex-direction: column;
  gap: 18px;
  width: 100%;
  padding: 32px;
  background: rgba(23, 28, 34, 0.92);
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: var(--shadow);
}

:root[data-theme="light"] #login-form {
  background: rgba(255, 255, 255, 0.92);
}

.login-brand {
  display: flex;
  justify-content: center;
  margin-bottom: 8px;
}

.login-brand img {
  width: 220px;
  max-width: 80%;
  height: auto;
}

#login-form sl-button,
#login-form sl-input {
  width: 100%;
}

#login-form sl-input::part(form-control-label) {
  color: var(--muted);
}

:root[data-theme="light"] #login-form sl-input::part(base) {
  background: #ffffff;
}

.login-browser-note {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin-top: 6px;
  color: var(--muted);
}

.login-browser-note i {
  color: var(--accent-strong);
}

#login-wait {
  display: grid;
  min-height: 180px;
  place-items: center;
}

#login-wait sl-spinner {
  font-size: 2rem;
}

#login-about {
  margin-top: 22px;
  color: var(--muted);
  text-align: center;
}

.error,
.email_sent {
  color: var(--muted);
}

/* Manager shell */

.manager-shell {
  display: grid;
  grid-template-columns: minmax(280px, 340px) minmax(0, 1fr);
  gap: 12px;
  min-height: calc(100vh - var(--header-height) - var(--footer-height));
  padding: 12px;
}

.manager-shell.sidebar-collapsed {
  grid-template-columns: 42px minmax(0, 1fr);
}

.manager-sidebar,
.manager-empty,
#manager-support-stage,
.manager-support-stage,
#dashboard,
.tabs-wrapper {
  min-width: 0;
  background: var(--panel);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
}

.manager-sidebar {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  grid-column: 1;
  grid-row: 1;
}

#version,
#manager-support-stage,
.manager-support-stage,
#dashboard,
.tabs-wrapper {
  grid-column: 2;
  grid-row: 1;
}

.sidebar-toggle,
.sidebar-rail {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  color: var(--muted);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.sidebar-toggle {
  position: absolute;
  top: 10px;
  right: 8px;
  z-index: 4;
}

.sidebar-rail {
  display: none;
  align-self: start;
  justify-self: center;
  margin-top: 8px;
}

.sidebar-toggle:hover,
.sidebar-rail:hover {
  color: var(--accent);
  border-color: var(--line);
  background: var(--panel-3);
}

.manager-shell.sidebar-collapsed .manager-sidebar {
  display: none;
}

.manager-shell.sidebar-collapsed .sidebar-rail {
  display: inline-flex;
}

.tree-search {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  height: 28px;
  margin: 10px 44px 8px 10px;
}

.tree-search .form-input {
  width: 100%;
  height: 28px;
  min-width: 0;
  padding-left: 28px;
  padding-right: 26px;
}

.tree-search .form-input::-webkit-search-cancel-button {
  -webkit-appearance: none;
  appearance: none;
  display: none;
}

.tree-search .form-input::-ms-clear {
  display: none;
  width: 0;
  height: 0;
}

.tree-search .fa-search {
  position: absolute;
  left: 10px;
  z-index: 1;
  pointer-events: none;
}

.clear-tree-search {
  position: absolute;
  right: 10px;
  cursor: pointer;
}

.clear-tree-search:hover {
  color: var(--accent);
}

.tree-refresh-controls {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0 10px 8px;
  min-height: 26px;
}

.tree-refresh-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 26px;
  padding: 0;
  color: var(--muted);
  border: 1px solid var(--line-soft);
  border-radius: 4px;
  background: var(--panel-2);
}

.tree-refresh-button:hover:not(:disabled) {
  color: var(--accent);
  border-color: var(--line);
  background: var(--panel-3);
  cursor: pointer;
}

.tree-refresh-button:disabled {
  cursor: wait;
  opacity: 0.65;
}

.tree-refresh-controls small {
  min-width: 0;
  color: var(--muted);
  white-space: nowrap;
}

#users-list {
  height: 100%;
  overflow: auto;
  padding: 10px;
}

#users {
  min-height: 0;
  overflow: hidden;
}

.tree-filter-hidden {
  display: none !important;
}

.tree-node,
.computer-node {
  font-size: 0.82rem;
}

.tree-node {
  color: var(--text);
}

.computer-node {
  color: var(--muted);
}

.computer-tree-row,
.computer-tree-name {
  display: flex;
  align-items: center;
  gap: 6px;
}

.computer-tree-name {
  min-width: 0;
  flex: 1 1 auto;
}

.pc-heartbeat {
  flex: 0 0 auto;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.12);
}

.pc-heartbeat-fresh {
  background: var(--success);
  box-shadow: 0 0 8px rgba(84, 214, 136, 0.55);
}

.pc-heartbeat-stale {
  background: var(--warning);
  box-shadow: 0 0 8px rgba(251, 191, 36, 0.5);
}

.pc-heartbeat-degraded {
  background: #f59e0b;
  box-shadow: 0 0 8px rgba(245, 158, 11, 0.55);
}

.pc-heartbeat-old {
  background: var(--danger);
  box-shadow: 0 0 8px rgba(248, 113, 113, 0.45);
}

.pc-idle-badge {
  flex: 0 0 auto;
  padding: 1px 5px;
  border: 1px solid rgba(56, 189, 248, 0.4);
  border-radius: 4px;
  color: #7dd3fc;
  font-size: 9px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
}

.pc-degraded-badge {
  flex: 0 0 auto;
  padding: 1px 5px;
  border: 1px solid rgba(245, 158, 11, 0.35);
  border-radius: 4px;
  color: #fbbf24;
  font-size: 9px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
}

.pc-slow-badge {
  flex: 0 0 auto;
  padding: 1px 5px;
  border: 1px solid rgba(251, 146, 60, 0.35);
  border-radius: 4px;
  color: #fdba74;
  font-size: 9px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
}

.computer-tree-row {
  justify-content: space-between;
  width: 100%;
}

.computer-node::part(base),
.computer-node::part(item),
.computer-node::part(label) {
  width: 100%;
}

.computer-tree-status {
  display: flex;
  flex: 1 1 auto;
  justify-content: flex-end;
  padding-right: 8px;
}

.computer-node.busy {
  color: var(--warning);
  cursor: not-allowed;
}

.computer-node.busy span.computer-node {
  color: var(--warning);
}

.computer-node:hover,
.tree-node:hover {
  color: var(--accent-strong);
  cursor: pointer;
}

.computer-node.busy:hover {
  color: var(--warning);
  cursor: not-allowed;
}

.vessel-context-menu,
.pc-context-menu,
.tab-context-menu {
  position: fixed;
  z-index: 3000;
  width: min(320px, calc(100vw - 16px));
  max-height: calc(100vh - 16px);
  padding: 8px;
  overflow: auto;
  overscroll-behavior: contain;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 6px;
  box-shadow: var(--shadow);
}

.vessel-context-title {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 4px 6px 8px;
  border-bottom: 1px solid var(--line-soft);
  color: var(--text);
  font-weight: 700;
}

.vessel-context-title small {
  color: var(--muted);
  font-weight: 500;
}

.vessel-context-menu button,
.pc-context-menu button,
.tab-context-menu button {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  margin-top: 4px;
  padding: 7px 8px;
  background: transparent;
  border: 0;
  border-radius: 4px;
  color: var(--text);
  font: inherit;
  text-align: left;
}

.vessel-context-menu button:hover:not(:disabled),
.pc-context-menu button:hover:not(:disabled),
.tab-context-menu button:hover:not(:disabled) {
  background: var(--panel-2);
  color: var(--accent-strong);
  cursor: pointer;
}

.vessel-context-menu button:disabled,
.pc-context-menu button:disabled,
.tab-context-menu button:disabled {
  color: var(--muted);
  cursor: not-allowed;
  opacity: 0.55;
}

.vessel-context-divider {
  margin: 8px 0;
  border-top: 1px solid var(--line-soft);
}

.vessel-context-queue {
  display: grid;
  gap: 6px;
}

.vessel-context-queue small {
  color: var(--muted);
}

.vessel-context-message {
  display: block;
  padding: 6px;
  color: var(--muted);
}

.manager-empty {
  display: grid;
  min-height: 360px;
  place-items: center;
  color: var(--faint);
}

.tree-with-lines {
  --indent-guide-width: 1px;
  --indent-size: var(--sl-spacing-x-small);
}

#dashboard {
  display: none;
  height: calc(100vh - var(--header-height) - var(--footer-height) - 26px);
  overflow: auto;
}

.tabs-wrapper {
  display: none;
  flex-direction: column;
  height: calc(100vh - var(--header-height) - var(--footer-height) - 26px);
  overflow: hidden;
}

#sessions {
  flex: 1 1 auto;
  min-height: 0;
  background: var(--terminal);
  overflow: hidden;
}

.session {
  height: 100%;
  min-height: 0;
  overflow: hidden;
}

.session-body {
  height: 100%;
  min-height: 0;
}

.power-session-header {
  display: none;
}

.terminal-tab {
  display: flex;
  align-items: center;
  gap: 8px;
}

.terminal-tab::before {
  width: 8px;
  height: 8px;
  flex: 0 0 auto;
  background: var(--warning);
  border-radius: 50%;
  content: '';
}

.terminal-tab.terminal-ws-connected::before {
  background: var(--success);
}

.terminal-tab.terminal-ws-disconnected::before {
  background: var(--danger);
}

.terminal-tab.terminal-ws-expired::before {
  background: var(--danger);
  box-shadow: 0 0 0 3px rgba(239, 107, 115, 0.16);
}

.terminal-tab-close {
  margin-left: auto;
  margin-right: 8px;
}

.terminal-output {
  position: relative;
}

.panel-stack-switcher {
  position: absolute;
  top: 50%;
  right: 10px;
  z-index: 20;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 6px;
  background: color-mix(in srgb, var(--panel) 88%, transparent);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  transform: translateY(-50%);
}

.panel-stack-switcher sl-button::part(base) {
  width: 30px;
  min-width: 30px;
  height: 30px;
  padding: 0;
}

.panel-stack-switcher sl-button.active::part(base) {
  color: #081114;
  background: var(--accent);
  border-color: var(--accent);
}

.active-tab {
  background: var(--accent);
  color: #081114;
  cursor: pointer;
  font-weight: 700;
}

.active-tab a {
  color: #081114 !important;
  text-decoration: none;
}

.tab {
  display: flex;
  flex: 0 0 auto;
  align-items: flex-end;
  gap: 4px;
  min-height: 40px;
  margin: 0;
  padding: 8px 8px 0;
  overflow-x: auto;
  overflow-y: hidden;
  list-style: none;
  background: var(--panel-2);
  border-bottom: 1px solid var(--line-soft);
  color: var(--muted);
  cursor: pointer;
}

.tab.tab-block {
  width: 100%;
}

.tab .tab-item {
  position: relative;
  flex: 0 0 auto;
  min-width: 0;
  max-width: 280px;
  min-height: 32px;
  padding: 0 10px;
  background: var(--panel-3);
  border: 1px solid var(--line-soft);
  border-bottom: none;
  border-radius: var(--radius) var(--radius) 0 0;
}

.tab .tab-item a {
  display: block;
  max-width: 220px;
  overflow: hidden;
  color: inherit;
  line-height: 32px;
  text-decoration: none;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tab .tab-item:hover {
  color: var(--text);
  border-color: var(--line);
  background: #2a323d;
}

.tab .tab-item.active-tab {
  border-color: var(--accent);
  background: var(--accent);
}

:root[data-theme="light"] .tab .tab-item:hover {
  color: var(--text);
  border-color: #b9c7d6;
  background: #e8eef5;
}

:root[data-theme="light"] .tab .tab-item.active-tab {
  border-color: #168da0;
  background: #dff3f6;
  color: #10232b;
}

:root[data-theme="light"] .tab .tab-item.active-tab a {
  color: #10232b !important;
}

.tab .tab-item.power-mode-toggle {
  margin-right: 0;
}

.tab .tab-item.power-mode-toggle a,
.tab .tab-item.desktop-mode-toggle a,
.tab .tab-item.maintenance-mode-toggle a,
.tab .tab-item.report-mode-toggle a {
  display: flex;
  gap: 6px;
  align-items: center;
}

.tab .tab-item.desktop-mode-toggle {
  margin-right: 8px;
}

.tab .tab-item.maintenance-tab,
.maintenance-mode-active .tab .tab-item.maintenance-mode-toggle {
  border-color: #8ccf7e;
  background: rgba(140, 207, 126, 0.16);
  color: #a9e89e;
}

.maintenance-mode-active .tab .tab-item.terminal-tab {
  border-color: #8ccf7e;
  background: rgba(140, 207, 126, 0.16);
  color: #a9e89e;
}

.maintenance-mode-active .tab .tab-item.terminal-tab.active-tab {
  border-color: #8ccf7e;
  background: #8ccf7e;
  color: #071507;
}

.maintenance-mode-active .tab .tab-item.terminal-tab.active-tab a {
  color: #071507 !important;
}

.maintenance-mode-active .tab .tab-item.maintenance-mode-toggle {
  background: #8ccf7e;
  color: #071507;
}

.maintenance-mode-active .tab .tab-item.maintenance-mode-toggle a {
  color: #071507 !important;
}

.tab .tab-item.report-tab,
.report-mode-active .tab .tab-item.report-mode-toggle {
  border-color: #5bbcff;
  background: rgba(91, 188, 255, 0.16);
  color: #9dd7ff;
}

.report-mode-active .tab .tab-item.terminal-tab {
  border-color: #5bbcff;
  background: rgba(91, 188, 255, 0.16);
  color: #9dd7ff;
}

.report-mode-active .tab .tab-item.terminal-tab.active-tab {
  border-color: #5bbcff;
  background: #5bbcff;
  color: #06131c;
}

.report-mode-active .tab .tab-item.terminal-tab.active-tab a {
  color: #06131c !important;
}

.report-mode-active .tab .tab-item.report-mode-toggle {
  background: #5bbcff;
  color: #06131c;
}

.report-mode-active .tab .tab-item.report-mode-toggle a {
  color: #06131c !important;
}

.tab .tab-item.power-tab {
  border-color: var(--warning);
  background: var(--warning-soft);
  color: var(--warning);
}

.tab .tab-item.power-tab.active-tab {
  border-color: var(--warning);
  background: var(--warning);
  color: #151007;
}

.tab .tab-item.power-tab.active-tab a {
  color: #151007 !important;
}

.tab .tab-item.desktop-tab {
  border-color: #4fd6c8;
  background: rgba(79, 214, 200, 0.16);
  color: #7be8dd;
}

.tab .tab-item.desktop-tab.active-tab {
  border-color: #4fd6c8;
  background: #4fd6c8;
  color: #061716;
}

.tab .tab-item.desktop-tab.active-tab a {
  color: #061716 !important;
}

.desktop-mode-active .tab .tab-item.desktop-mode-toggle {
  border-color: #4fd6c8;
  background: #4fd6c8;
  color: #061716;
}

.desktop-mode-active .tab .tab-item.desktop-mode-toggle a {
  color: #061716 !important;
}

.desktop-mode-active .tab .tab-item.terminal-tab:not(.desktop-tab) {
  display: none;
}

:root[data-theme="light"] .tab .tab-item.power-tab,
:root[data-theme="light"] .tab .tab-item.power-tab.active-tab,
:root[data-theme="light"] .power-mode-active .tab .tab-item.power-mode-toggle {
  border-color: #d59a24;
  background: #fff0c2;
  color: #5d3d00;
}

:root[data-theme="light"] .tab .tab-item.desktop-tab,
:root[data-theme="light"] .tab .tab-item.desktop-tab.active-tab,
:root[data-theme="light"] .desktop-mode-active .tab .tab-item.desktop-mode-toggle {
  border-color: #46bfb5;
  background: #d8faf6;
  color: #075c58;
}

:root[data-theme="light"] .tab .tab-item.maintenance-tab,
:root[data-theme="light"] .tab .tab-item.maintenance-tab.active-tab,
:root[data-theme="light"] .maintenance-mode-active .tab .tab-item.maintenance-mode-toggle,
:root[data-theme="light"] .maintenance-mode-active .tab .tab-item.terminal-tab,
:root[data-theme="light"] .maintenance-mode-active .tab .tab-item.terminal-tab.active-tab {
  border-color: #7ec56d;
  background: #e1f5da;
  color: #1e5c29;
}

:root[data-theme="light"] .tab .tab-item.report-tab,
:root[data-theme="light"] .tab .tab-item.report-tab.active-tab,
:root[data-theme="light"] .report-mode-active .tab .tab-item.report-mode-toggle,
:root[data-theme="light"] .report-mode-active .tab .tab-item.terminal-tab,
:root[data-theme="light"] .report-mode-active .tab .tab-item.terminal-tab.active-tab {
  border-color: #55aee8;
  background: #e2f3ff;
  color: #12537d;
}

:root[data-theme="light"] .tab .tab-item.power-tab a,
:root[data-theme="light"] .tab .tab-item.desktop-tab a,
:root[data-theme="light"] .tab .tab-item.maintenance-tab a,
:root[data-theme="light"] .tab .tab-item.report-tab a,
:root[data-theme="light"] .power-mode-active .tab .tab-item.power-mode-toggle a,
:root[data-theme="light"] .desktop-mode-active .tab .tab-item.desktop-mode-toggle a,
:root[data-theme="light"] .maintenance-mode-active .tab .tab-item.maintenance-mode-toggle a,
:root[data-theme="light"] .report-mode-active .tab .tab-item.report-mode-toggle a {
  color: inherit !important;
}

.power-mode-bar {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  flex-wrap: nowrap;
  gap: 14px;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 8px;
  color: var(--warning);
  background: #201b12;
  border-bottom: 1px solid var(--warning);
}

.desktop-mode-bar {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: flex-start;
  gap: 14px;
  padding: 8px;
  color: #7be8dd;
  background: #102221;
  border-bottom: 1px solid #4fd6c8;
}

.desktop-mode-bar sl-button {
  margin-left: auto;
}

.desktop-mode-note {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--muted);
  font-size: 0.82rem;
}

.maintenance-mode-bar {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  flex-wrap: nowrap;
  gap: 12px;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 8px;
  color: #a9e89e;
  background: #101f12;
  border-bottom: 1px solid #8ccf7e;
}

.report-mode-bar {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  flex-wrap: nowrap;
  gap: 12px;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 8px;
  color: #9dd7ff;
  background: #101b24;
  border-bottom: 1px solid #5bbcff;
}

:root[data-theme="light"] .power-mode-bar {
  color: #7a5100;
  background: #fff7dd;
  border-bottom-color: #d79a24;
}

:root[data-theme="light"] .desktop-mode-bar {
  color: #096d68;
  background: #ecfbf8;
  border-bottom-color: #56c9bd;
}

:root[data-theme="light"] .maintenance-mode-bar {
  color: #216f34;
  background: #eff9ec;
  border-bottom-color: #8ccf7e;
}

:root[data-theme="light"] .report-mode-bar {
  color: #135f97;
  background: #eef7ff;
  border-bottom-color: #68b6ec;
}

:root[data-theme="light"] .power-mode-summary span,
:root[data-theme="light"] .desktop-mode-summary span,
:root[data-theme="light"] .maintenance-mode-summary span,
:root[data-theme="light"] .report-mode-summary span {
  color: #637285;
}

:root[data-theme="light"] .desktop-mode-note {
  color: #637285;
}

.power-mode-summary,
.desktop-mode-summary,
.maintenance-mode-summary,
.report-mode-summary {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  min-width: 180px;
  line-height: 1.2;
}

.power-mode-summary span,
.desktop-mode-summary span,
.maintenance-mode-summary span,
.report-mode-summary span {
  color: var(--muted);
  font-size: 0.78rem;
}

.maintenance-checks {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: nowrap;
  gap: 8px;
}

.maintenance-check {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 28px;
  padding: 2px 8px;
  border: 1px solid rgba(140, 207, 126, 0.35);
  border-radius: var(--radius);
  color: var(--text);
  background: var(--panel-2);
  font-size: 0.82rem;
}

.maintenance-status-filter {
  display: inline-flex;
  flex: 0 0 auto;
  overflow: hidden;
  gap: 0;
  border: 1px solid rgba(140, 207, 126, 0.35);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.maintenance-status-filter button {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 28px;
  padding: 4px 8px;
  border: 0;
  border-left: 1px solid var(--line);
  border-radius: 0;
  color: var(--muted);
  background: transparent;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 800;
  cursor: pointer;
}

.maintenance-status-filter button:first-child {
  border-left: 0;
}

.maintenance-status-filter button:hover,
.maintenance-status-filter button.active {
  color: var(--text);
}

.maintenance-status-filter button.active {
  background: rgba(140, 207, 126, 0.16);
}

.maintenance-results {
  flex: 0 0 auto;
  max-height: 42vh;
  overflow: auto;
  padding: 8px;
  background: var(--panel);
  border-bottom: 1px solid var(--line-soft);
}

.maintenance-history-panel {
  padding: 12px 10px;
  background: var(--panel);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line-soft);
}

.maintenance-history-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin-bottom: 8px;
}

.maintenance-history-summary span,
.maintenance-history-summary small {
  color: var(--muted);
}

.maintenance-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  text-transform: capitalize;
  font-weight: 700;
}

.maintenance-status-ok {
  color: var(--success);
}

.maintenance-status-warn,
.maintenance-status-warning {
  color: var(--warning);
}

.maintenance-status-error {
  color: var(--danger);
}

.maintenance-status-queued {
  color: var(--muted);
}

.maintenance-detail-row td {
  padding-top: 0;
  background: rgba(0, 0, 0, 0.14);
}

.maintenance-detail {
  margin: 0 0 8px;
  padding: 8px 10px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  color: var(--muted);
  background: var(--panel-2);
}

.maintenance-detail summary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--text);
  cursor: pointer;
  font-weight: 700;
}

.maintenance-detail ul {
  margin: 8px 0 0 18px;
  padding: 0;
}

.maintenance-detail pre {
  max-height: 220px;
  overflow: auto;
  margin: 8px 0 0;
  white-space: pre-wrap;
}

.maintenance-mode-active #sessions {
  display: none;
}

.report-mode-active #sessions {
  display: none;
}

.power-mode-form {
  display: grid;
  flex: 1 1 auto;
  grid-template-columns: minmax(220px, 1fr) auto;
  gap: 8px;
  align-items: center;
  min-width: 320px;
}

.power-command-form {
  display: grid;
  flex: 0 0 auto;
  grid-template-columns: 180px auto;
  gap: 8px;
  align-items: center;
}

.power-command-form .command-dropdown {
  width: 180px;
}

.power-script-form {
  display: grid;
  flex: 0 0 auto;
  grid-template-columns: minmax(220px, 320px) auto minmax(120px, auto);
  gap: 8px;
  align-items: center;
}

.power-script-form small {
  color: var(--muted);
}

.report-mode-form {
  display: grid;
  flex: 1 1 auto;
  grid-template-columns: minmax(240px, 420px) auto auto;
  gap: 8px;
  align-items: center;
  min-width: 460px;
}

.report-queue-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--muted);
  white-space: nowrap;
}

.report-mode-form sl-button::part(base),
.report-mode-bar sl-button::part(base) {
  gap: 10px;
}

.report-mode-form sl-button i,
.report-mode-bar sl-button i {
  margin-right: 8px;
}

.report-mode-bar small {
  color: var(--muted);
}

.report-results {
  flex: 0 0 auto;
  max-height: 48vh;
  overflow: auto;
  padding: 10px;
  background: var(--panel);
  border-bottom: 1px solid var(--line-soft);
}

.report-targets {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
}

.report-target-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: 280px;
  padding: 4px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  background: var(--panel-2);
  font-size: 0.78rem;
}

.report-target-status span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.report-target-status strong {
  flex: 0 0 auto;
}

.report-status-ok {
  border-color: rgba(98, 212, 137, 0.55);
  color: var(--success);
}

.report-status-warn {
  border-color: rgba(244, 199, 94, 0.55);
  color: var(--warning);
}

.report-status-waiting {
  color: var(--muted);
}

.report-table-wrap {
  overflow: auto;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
}

.report-table {
  min-width: 760px;
  margin: 0;
  font-size: 0.92rem;
}

.report-table th,
.report-table td {
  padding-top: 8px;
  padding-bottom: 8px;
}

.power-command-form sl-button::part(base),
.power-mode-form sl-button::part(base),
.power-script-form sl-button::part(base) {
  gap: 6px;
}

.power-command-form sl-button i,
.power-mode-form sl-button i,
.power-script-form sl-button i {
  margin-right: 6px;
}

.power-mode-active #sessions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(520px, 1fr));
  gap: 8px;
  padding: 8px;
  overflow: auto;
}

.power-mode-active .session {
  display: flex !important;
  flex-direction: column;
  min-height: 360px;
  border: 1px solid var(--warning);
  border-radius: var(--radius);
  overflow: hidden;
}

.power-mode-active .session-body {
  flex: 1 1 auto;
  height: auto;
  min-height: 0;
}

.power-mode-active .power-session-header {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  min-height: 28px;
  padding: 4px 10px;
  overflow: hidden;
  color: #151007;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
  background: var(--warning);
}

:root[data-theme="light"] .power-mode-active .session {
  border-color: #d79a24;
}

:root[data-theme="light"] .power-mode-active .power-session-header {
  color: #211705;
  background: #f5d890;
}

.power-mode-active .terminal-input {
  display: none;
}

.power-mode-active .commandbar-wrapper,
.power-mode-active .terminal-search-bar,
.power-mode-active #stdout #history,
.power-mode-active #stdout .favourites,
.power-mode-active #stdout .scriptEditor,
.power-mode-active #stdout .osquery,
.power-mode-active #stdout .services,
.power-mode-active #stdout .system-tools,
.power-mode-active #stdout .windows-update,
.power-mode-active #stdout .knowledge-base,
.power-mode-active #stdout .bits,
.power-mode-active #stdout .usbguard,
.power-mode-active #stdout #files,
.power-mode-active #stdout .explorer {
  display: none !important;
}

/* Terminal */

#terminal {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  background: var(--terminal);
}

.terminal {
  background: var(--terminal);
}

.tty {
  color: var(--text);
  font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
}

.commandbar-wrapper,
.terminal-output,
.terminal-input > .tty,
.toolbar {
  border-top: 1px solid var(--line-soft);
  background: var(--terminal);
}

.commandbar-wrapper {
  flex: 0 0 auto;
  padding: 10px;
}

.commandbar-layout,
.commandbar-primary,
.access-key-controls,
.upload-controls,
.toolbar,
.prompt-wrapper {
  display: flex;
  align-items: center;
}

.commandbar-layout {
  justify-content: space-between;
  gap: 12px;
}

.commandbar-primary,
.upload-controls,
.toolbar {
  gap: 8px;
}

.terminal-host-info {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: 220px;
  min-height: 28px;
  margin-right: auto;
  padding: 4px 9px;
  color: var(--muted);
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
  white-space: nowrap;
}

.terminal-host-info i {
  color: var(--accent);
}

.terminal-host-info span {
  overflow: hidden;
  text-overflow: ellipsis;
}

.support-avatar-trigger {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  padding: 4px 10px 4px 4px;
  border: 1px solid rgba(148, 163, 184, 0.18);
  border-radius: 999px;
  background: rgba(148, 163, 184, 0.06);
  color: #e5e7eb;
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
  transition: border-color 120ms ease, background 120ms ease, transform 120ms ease;
}

.support-avatar-trigger:hover,
.support-avatar-trigger.active {
  border-color: rgba(148, 163, 184, 0.28);
  background: rgba(148, 163, 184, 0.1);
}

.support-avatar-trigger:active {
  transform: translateY(1px);
}

.support-avatar-trigger img {
  display: block;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  object-fit: cover;
  border: 1px solid rgba(255, 255, 255, 0.18);
}

:root[data-theme="light"] .support-avatar-trigger {
  background: #f3f0ff;
  border-color: #c9b8ff;
  color: #6d4fd3;
}

.support-helper-panel {
  display: grid;
  gap: 12px;
  margin-top: 10px;
  padding: 12px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 12px;
}

.support-helper-header,
.support-helper-form,
.support-helper-suggestions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.support-helper-header {
  align-items: flex-start;
  justify-content: space-between;
}

.support-helper-header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
}

.support-helper-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 999px;
  background: rgba(167, 139, 250, 0.14);
  border: 1px solid rgba(167, 139, 250, 0.28);
  color: #c4b5fd;
  flex: 0 0 auto;
  overflow: hidden;
}

.support-helper-avatar img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.support-helper-copy {
  display: grid;
  gap: 3px;
  margin-right: auto;
}

.support-helper-copy strong {
  font-size: 0.92rem;
}

.support-helper-copy small,
.support-helper-summary span {
  color: var(--muted);
}

.support-helper-toggle {
  --sl-color-primary-600: var(--accent);
  --sl-color-primary-500: var(--accent);
  --width: 2.2rem;
  --height: 1.2rem;
  color: var(--muted);
  font-size: 0.8rem;
  white-space: nowrap;
}

.support-helper-form .form-input {
  flex: 0 1 860px;
  min-width: 260px;
  max-width: min(860px, 100%);
}

.support-mic-button.listening::part(base) {
  color: #091015;
  background: var(--accent);
  border-color: var(--accent);
}

.support-helper-error {
  color: var(--danger);
  font-size: 0.85rem;
}

.support-helper-summary {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.82rem;
}

.support-helper-preview {
  display: grid;
  gap: 8px;
  padding: 10px;
  background: var(--terminal);
  border: 1px solid var(--line);
  border-radius: 10px;
}

.support-helper-preview-label,
.support-helper-preview-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.support-helper-preview-label {
  justify-content: space-between;
}

.support-helper-preview-actions {
  flex-wrap: wrap;
  justify-content: flex-start;
}

.support-helper-preview-actions sl-button {
  flex: 0 0 auto;
}

.support-helper-preview-label span,
.support-helper-preview-label small {
  color: var(--muted);
}

.support-helper-preview-command {
  display: block;
  padding: 10px 12px;
  overflow-x: auto;
  color: var(--text);
  background: rgba(15, 23, 42, 0.45);
  border-radius: 8px;
  font-size: 0.82rem;
  line-height: 1.5;
  white-space: pre-wrap;
  word-break: break-word;
}

.support-helper-preview-note {
  margin: 0;
  color: var(--text);
  font-size: 0.82rem;
  line-height: 1.5;
}

.support-helper-suggestions {
  flex-wrap: wrap;
}

.support-helper-suggestions sl-button::part(base) {
  background: rgba(15, 23, 42, 0.78);
  border-color: rgba(71, 85, 105, 0.52);
  color: #dbe4f0;
}

.support-helper-suggestions sl-button:hover::part(base),
.support-helper-suggestions sl-button:focus-visible::part(base) {
  background: rgba(30, 41, 59, 0.96);
  border-color: rgba(96, 165, 250, 0.42);
  color: #f8fafc;
}

.support-helper-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(3, 8, 12, 0.72);
}

.support-helper-modal {
  display: grid;
  gap: 14px;
  width: min(820px, 92vw);
  max-height: min(78vh, 760px);
  padding: 16px;
  overflow: hidden;
  grid-template-rows: auto minmax(0, 1fr);
  border: 1px solid var(--line-soft);
  border-radius: 14px;
  background: var(--panel);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.38);
}

.support-helper-modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.support-helper-modal-header div {
  display: grid;
  gap: 2px;
}

.support-helper-modal-header strong,
.support-helper-example-head strong {
  color: var(--text);
}

.support-helper-modal-header small,
.support-helper-example-head small {
  color: var(--muted);
}

.support-helper-modal-body {
  display: grid;
  gap: 12px;
  min-height: 0;
  overflow: auto;
  padding-right: 6px;
}

.support-helper-filter {
  width: 100%;
}

.support-helper-empty-state {
  padding: 12px;
  border: 1px dashed var(--line-soft);
  border-radius: 10px;
  color: var(--muted);
  background: var(--panel-2);
  font-size: 0.84rem;
}

.manager-support-shell {
  display: grid;
  gap: 10px;
  margin: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--line-soft);
}

.manager-support-shell > .support-avatar-trigger {
  width: 100%;
  justify-content: flex-start;
  justify-self: stretch;
}

.manager-support-stage {
  display: grid;
  min-height: 320px;
  padding: 14px;
  align-items: start;
}

.manager-support-panel {
  display: grid;
  align-self: start;
  align-content: start;
  gap: 10px;
  height: auto;
  min-height: min(420px, calc(100vh - var(--header-height) - var(--footer-height) - 110px));
  margin-top: 0;
  padding: 10px;
}

.manager-support-panel .support-helper-form {
  display: grid;
  grid-template-columns: minmax(320px, 760px) auto;
  gap: 8px;
  align-items: center;
  justify-content: start;
}

.manager-support-panel .support-helper-form .form-input {
  min-width: 0;
  min-height: 38px;
  height: 38px;
  max-width: 760px;
}

.manager-support-panel .support-helper-form sl-button {
  flex: 0 0 auto;
  align-self: stretch;
}

.manager-support-panel .support-helper-suggestions {
  align-items: flex-start;
  flex-wrap: wrap;
}

.manager-support-panel .support-helper-preview {
  align-content: start;
  min-height: 96px;
  padding: 8px;
}

.support-helper-example-group {
  display: grid;
  gap: 8px;
  padding: 12px;
  border: 1px solid var(--line-soft);
  border-radius: 10px;
  background: var(--panel-2);
}

.support-helper-example-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}

.support-helper-example-group ul {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.support-helper-example-link {
  width: 100%;
  padding: 0;
  border: 0;
  color: var(--text);
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.support-helper-example-link:hover,
.support-helper-example-link:focus-visible {
  color: var(--accent);
  outline: none;
}

.toolbar-spacer {
  flex: 1 1 auto;
  min-width: 12px;
}

.command-dropdown {
  width: min(320px, 42vw);
}

.access-key-panel {
  display: inline-flex;
  align-items: center;
}

.access-key-entry {
  width: 300px;
}

.terminal-output {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0;
  overflow: hidden;
}

.terminal-input {
  flex: 0 0 auto;
}

.terminal-search-bar {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-top: 1px solid var(--line-soft);
  background: var(--panel);
}

.terminal-search-bar .form-input {
  width: min(360px, 42vw);
}

.terminal-search-bar small {
  min-width: 64px;
  text-align: right;
}

#stdout .display {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 100%;
  padding: 12px;
  resize: none;
  outline: none;
  border: none;
  background: var(--terminal);
  color: var(--terminal-text);
  font: inherit;
  font-size: var(--terminal-font-size, 14px);
}

#sections {
  display: flex;
  height: 100%;
  min-height: 0;
}

#stdout #history,
#stdout .favourites,
#stdout .scriptEditor,
#stdout .osquery,
#stdout .services,
#stdout .system-tools,
#stdout .windows-update,
#stdout .quick-restore,
#stdout .spacemap,
#stdout .knowledge-base,
#stdout .grep-panel,
#stdout .bits,
#stdout .usbguard,
#stdout #files,
#stdout .explorer {
  flex: 0 0 var(--terminal-panel-width, min(420px, 42vw));
  height: 100%;
  padding: 12px;
  overflow: auto;
  color: var(--text);
  background: var(--panel);
  border-left: 1px solid var(--line);
}

#stdout .osquery {
  flex-basis: var(--terminal-panel-width, min(720px, 58vw));
}

#stdout #files {
  flex-basis: var(--terminal-panel-width, min(640px, 56vw));
}

#stdout .services {
  flex-basis: var(--terminal-panel-width, min(860px, 68vw));
}

#stdout .system-tools {
  display: flex;
  flex-direction: column;
  flex-basis: var(--terminal-panel-width, min(860px, 68vw));
  overflow: hidden;
}

#stdout .windows-update {
  flex-basis: var(--terminal-panel-width, min(1040px, 78vw));
}

#stdout .quick-restore {
  flex-basis: var(--terminal-panel-width, min(1040px, 78vw));
}

#stdout .spacemap {
  flex-basis: var(--terminal-panel-width, min(1040px, 78vw));
}

#stdout .knowledge-base {
  flex-basis: var(--terminal-panel-width, min(900px, 72vw));
}

#stdout .grep-panel {
  flex-basis: var(--terminal-panel-width, min(900px, 72vw));
}

#stdout .bits {
  flex-basis: var(--terminal-panel-width, min(1040px, 78vw));
}

#stdout .usbguard {
  flex-basis: var(--terminal-panel-width, min(980px, 74vw));
}

#stdout .explorer {
  flex-basis: var(--terminal-panel-width, min(820px, 64vw));
}

#stdout .scriptEditor {
  flex-basis: var(--terminal-panel-width, min(760px, 64vw));
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.script-editor-header,
.script-editor-tools,
.script-editor-option {
  display: flex;
  align-items: center;
}

.script-editor-header {
  justify-content: space-between;
  gap: 12px;
}

.script-editor-tools {
  gap: 4px;
}

.script-editor-body {
  display: flex;
  flex: 1 1 auto;
  min-height: 0;
  flex-direction: column;
  gap: 10px;
}

.script-editor-option {
  gap: 8px;
  color: var(--muted);
}

.script-library {
  display: grid;
  gap: 6px;
}

.script-save {
  display: grid;
  gap: 6px;
  justify-items: start;
}

.script-save-fields {
  display: grid;
  gap: 6px;
  width: 100%;
  padding: 8px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.script-save-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 150px;
  gap: 8px;
}

.scriptEditor .editor {
  width: 100%;
  flex: 1 1 auto;
  min-height: 260px;
  padding: 10px;
  resize: none;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  outline: none;
  background: var(--terminal);
  color: var(--terminal-text);
  font: inherit;
}

.scriptEditor .editor:focus {
  border-color: var(--accent);
}

#stdout .explorer,
.explorer > .file-browser {
  color: var(--text);
  background: var(--panel);
}

.explorer > .file-browser {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 100%;
  margin: 0;
}

.explorer-controls {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-bottom: 10px;
  background: var(--panel);
  border-bottom: 1px solid var(--line);
}

.explorer-toolbar {
  display: grid;
  grid-template-columns: minmax(92px, 120px) minmax(0, 1fr) repeat(5, auto);
  gap: 8px;
  align-items: center;
}

.explorer-bookmark-panel {
  display: grid;
  gap: 6px;
}

.explorer-bookmark-head {
  display: flex;
  align-items: center;
}

.explorer-bookmark-head button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 24px;
  padding: 2px 7px;
  color: var(--muted);
  border: 1px solid var(--line-soft);
  border-radius: 4px;
  background: var(--panel-2);
  font: inherit;
  cursor: pointer;
}

.explorer-bookmark-head button:hover {
  color: var(--accent);
  border-color: var(--line);
  background: var(--panel-3);
}

.explorer-bookmark-head small {
  color: var(--accent);
}

.explorer-bookmarks {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.explorer-bookmark {
  display: inline-flex;
  max-width: 220px;
  align-items: center;
  gap: 6px;
  padding: 4px 7px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.explorer-bookmark button {
  display: grid;
  min-width: 0;
  overflow: hidden;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent);
  font: inherit;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: pointer;
}

.explorer-bookmark button span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.explorer-bookmark button small {
  color: var(--muted);
  font-size: 0.68rem;
  line-height: 1.1;
}

.explorer-bookmark i {
  flex: 0 0 auto;
  color: var(--muted);
  cursor: pointer;
}

.explorer-status {
  min-height: 18px;
}

.explorer-actions,
.explorer-editor-actions {
  display: flex;
  gap: 8px;
  align-items: center;
}

.explorer-editor {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 360px;
}

.explorer-editor-header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
}

.explorer-editor-header strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.explorer-editor-text {
  flex: 1;
  min-height: 300px;
  resize: vertical;
  font-family: Consolas, "Liberation Mono", monospace;
}

.terminal-input > .tty {
  padding: 10px;
}

.prompt-wrapper {
  gap: 8px;
}

.tty .prompt {
  width: 100%;
  font-size: var(--terminal-font-size, 14px);
}

.toolbar {
  flex-wrap: nowrap;
  justify-content: flex-start;
  gap: 6px;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 10px;
  scrollbar-width: thin;
}

.toolbar sl-tooltip,
.toolbar sl-dropdown {
  flex: 0 0 auto;
}

.toolbar-group-menu {
  min-width: 190px;
}

.toolbar-group-menu i[slot="prefix"] {
  width: 18px;
  text-align: center;
}

.tb-label {
  margin-left: 4px;
}

.toolbar-danger::part(base) {
  border-color: rgba(248, 113, 113, 0.5);
  color: var(--danger);
}

:root[data-theme="light"] .toolbar-danger::part(base) {
  background: #fff1f1;
  border-color: #f0aaa9;
}

.toolbar-nav::part(base) {
  border-color: rgba(148, 163, 184, 0.26);
}

:root[data-theme="light"] .toolbar-nav::part(base) {
  background: #f5f8fb;
  border-color: #cfd9e5;
}

.toolbar-explorer::part(base) {
  border-color: rgba(84, 214, 136, 0.45);
  color: var(--success);
}

:root[data-theme="light"] .toolbar-explorer::part(base) {
  background: #effaf2;
  border-color: #99d9aa;
}

.toolbar-saved::part(base) {
  border-color: rgba(244, 114, 182, 0.36);
  color: #f9a8d4;
}

:root[data-theme="light"] .toolbar-saved::part(base) {
  background: #fff1f8;
  border-color: #edb4d2;
  color: #b73577;
}

.toolbar-util::part(base) {
  border-color: rgba(35, 200, 255, 0.32);
  color: var(--accent);
}

:root[data-theme="light"] .toolbar-util::part(base) {
  background: #eef8fb;
  border-color: #abd9e3;
}

.toolbar-script::part(base) {
  border-color: rgba(35, 200, 255, 0.32);
  color: var(--accent);
}

:root[data-theme="light"] .toolbar-script::part(base) {
  background: #eef8fb;
  border-color: #abd9e3;
}

.toolbar-ops::part(base) {
  border-color: rgba(251, 191, 36, 0.38);
  color: var(--warning);
}

:root[data-theme="light"] .toolbar-ops::part(base) {
  background: #fff7df;
  border-color: #dfbf71;
}

.toolbar-end::part(base) {
  border-color: rgba(148, 163, 184, 0.3);
  color: var(--muted);
}

:root[data-theme="light"] .toolbar-end::part(base) {
  background: #f5f8fb;
  border-color: #cfd9e5;
}

.previous-command,
.previous-file {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding: 8px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  color: var(--text);
  background: var(--panel-2);
  white-space: normal;
}

.previous-file {
  white-space: nowrap;
}

.previous-file .section-item-body {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.previous-command:hover,
.previous-file:hover {
  background: var(--panel-3);
  cursor: pointer;
}

.section-action {
  width: 100%;
  margin: 6px 0;
  white-space: normal;
}

.section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.section-item-body {
  width: 100%;
}

.section-fill {
  width: 100%;
  flex-grow: 1;
}

.grep-panel {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.grep-controls {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto auto auto auto;
  gap: 8px;
  align-items: center;
}

.grep-toggle,
.grep-context {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 30px;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 700;
}

.grep-context .form-input {
  width: 72px;
}

.grep-summary {
  min-height: 18px;
}

.grep-results {
  display: grid;
  gap: 10px;
  min-height: 0;
}

.grep-block {
  overflow: hidden;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.grep-block-header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 6px 8px;
  color: var(--muted);
  background: var(--panel-3);
  border-bottom: 1px solid var(--line-soft);
  font-size: 0.78rem;
  font-weight: 800;
}

.grep-line {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 8px;
  padding: 2px 8px;
  border-top: 1px solid rgba(255, 255, 255, 0.03);
}

.grep-line:first-of-type {
  border-top: 0;
}

.grep-line-match {
  background: rgba(79, 183, 197, 0.16);
}

.grep-line-number {
  color: var(--muted);
  text-align: right;
  user-select: none;
}

.grep-line pre {
  margin: 0;
  overflow-x: auto;
  color: var(--terminal-text);
  white-space: pre-wrap;
  word-break: break-word;
}

.grep-empty {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--muted);
}

.osquery-panel {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 10px;
}

.osquery-actions {
  display: flex;
  gap: 8px;
}

.osquery-editor {
  min-height: 260px;
  resize: vertical;
  font-family: Consolas, "Liberation Mono", monospace;
}

.services-panel {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-height: 100%;
}

.services-toolbar {
  position: sticky;
  top: 0;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  padding-bottom: 4px;
  background: var(--panel);
}

.services-toolbar,
.services-controls,
.services-list,
.services-table,
.services-table thead,
.services-table thead tr,
.services-table thead th {
  border-top: 0 !important;
}

.services-toolbar,
.services-controls {
  border-bottom: 0 !important;
}

.services-status {
  margin-top: -2px;
}

.services-table {
  color: var(--muted);
  border: none;
}

.services-table thead th {
  padding-top: 6px;
}

.services-table tbody tr:hover {
  background: var(--panel-2);
}

.windows-update-panel {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 100%;
}

.quick-restore-panel {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 100%;
}

.usbguard-panel {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 100%;
}

.bits-panel {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 100%;
}

.windows-update-target {
  margin-left: 6px;
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 600;
}

.quick-restore-target {
  margin-left: 6px;
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 600;
}

.windows-update-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.windows-update-toolbar.secondary {
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line);
}

.quick-restore-toolbar,
.quick-restore-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.quick-restore-filter .form-input {
  width: min(420px, 100%);
}

.quick-restore-status {
  min-height: 18px;
}

.windows-update-seed {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
}

.windows-update-seed label {
  color: var(--muted);
}

.windows-update-status {
  min-height: 18px;
}

.windows-update-pause-state {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  padding: 9px 10px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.windows-update-pause-state strong {
  white-space: nowrap;
}

.windows-update-pause-state span {
  min-width: 0;
  overflow: hidden;
  color: var(--muted);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.windows-update-pause-state.wu-paused {
  border-color: rgba(84, 214, 136, 0.45);
}

.windows-update-pause-state.wu-paused strong {
  color: var(--success);
}

.windows-update-pause-state.wu-running {
  border-color: rgba(251, 191, 36, 0.48);
}

.windows-update-pause-state.wu-running strong {
  color: var(--warning);
}

.windows-update-pause-state.wu-open strong {
  color: var(--danger);
}

.windows-update-pause-state.wu-open {
  border-color: rgba(248, 113, 113, 0.5);
}

.windows-update-activity-strip {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, minmax(84px, 1fr));
  gap: 8px;
  padding: 10px;
  overflow: hidden;
  border: 1px solid rgba(35, 200, 255, 0.28);
  border-radius: var(--radius);
  background: #111a20;
}

.wu-pulse {
  position: absolute;
  inset: 0;
  width: 34%;
  background: linear-gradient(90deg, transparent, rgba(35, 200, 255, 0.18), transparent);
  animation: wu-sweep 1.8s linear infinite;
}

.wu-stage {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 32px;
  color: var(--muted);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: rgba(0, 0, 0, 0.18);
  font-size: 0.82rem;
}

.wu-stage i {
  color: var(--accent);
  animation: wu-glow 1.6s ease-in-out infinite;
}

:root[data-theme="light"] .windows-update-activity-strip {
  border-color: var(--line);
  background: var(--panel-2);
}

:root[data-theme="light"] .windows-update-activity-strip .wu-pulse {
  background: linear-gradient(90deg, transparent, rgba(22, 141, 160, 0.16), transparent);
}

:root[data-theme="light"] .wu-stage {
  color: var(--muted);
  border-color: var(--line);
  background: var(--panel);
}

.wu-stage:nth-child(3) i {
  animation-delay: 0.2s;
}

.wu-stage:nth-child(4) i {
  animation-delay: 0.4s;
}

.wu-stage:nth-child(5) i {
  animation-delay: 0.6s;
}

.wu-stage:nth-child(6) i {
  animation-delay: 0.8s;
}

@keyframes wu-sweep {
  0% {
    transform: translateX(-110%);
  }
  100% {
    transform: translateX(300%);
  }
}

@keyframes wu-glow {
  0%, 100% {
    opacity: 0.45;
  }
  50% {
    opacity: 1;
  }
}

.windows-update-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
}

.quick-restore-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 10px;
}

.usbguard-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
}

.usbguard-allow {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto;
  gap: 8px;
  align-items: center;
}

.usbguard-decision {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.usbguard-decision-icon {
  display: inline-grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border: 1px solid var(--line-soft);
  border-radius: 50%;
  background: var(--terminal);
}

.usbguard-decision-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.usbguard-decision-copy strong {
  color: var(--text);
  font-size: 1rem;
}

.usbguard-decision-copy small {
  color: var(--muted);
}

.usbguard-decision-success .usbguard-decision-icon {
  border-color: rgba(84, 214, 136, 0.45);
  color: var(--success);
}

.usbguard-decision-warning .usbguard-decision-icon {
  border-color: rgba(251, 191, 36, 0.5);
  color: var(--warning);
}

.usbguard-decision-danger .usbguard-decision-icon {
  border-color: rgba(248, 113, 113, 0.5);
  color: var(--danger);
}

.usbguard-simple-list {
  display: grid;
  gap: 6px;
}

.usbguard-simple-list h5 {
  margin: 0;
  color: var(--accent);
}

.usbguard-trusted-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.usbguard-trusted-chip {
  display: inline-grid;
  grid-template-columns: 20px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  min-width: min(280px, 100%);
  width: min(420px, 100%);
  max-width: 420px;
  padding: 8px 10px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.usbguard-reblock-chip {
  border-color: rgba(251, 191, 36, 0.5);
  background: rgba(251, 191, 36, 0.1);
}

.usbguard-trusted-chip > span,
.usbguard-device-line > span {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.usbguard-device-line {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 8px;
  align-items: start;
  min-width: 0;
}

.usbguard-device-line i,
.usbguard-trusted-chip i {
  margin-top: 2px;
  color: var(--accent);
}

.usbguard-trusted-chip strong,
.usbguard-trusted-chip small,
.usbguard-device-line strong,
.usbguard-device-line small {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.usbguard-trusted-chip strong {
  color: var(--text);
}

.usbguard-trusted-chip small {
  display: block;
  color: var(--muted);
}

.usbguard-trusted-chip sl-button {
  align-self: center;
}

.windows-update-card {
  padding: 10px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
  font-size: 0.9rem;
}

.quick-restore-card {
  padding: 10px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
  font-size: 0.9rem;
}

.windows-update-card h5 {
  margin: 0 0 8px;
  color: var(--accent);
}

.quick-restore-card h5,
.quick-restore-list h5 {
  margin: 0 0 8px;
  color: var(--accent);
}

.quick-restore-list h5 i {
  margin-right: 5px;
}

.quick-restore-card h5 i {
  margin-right: 5px;
}

.quick-restore-overview {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.quick-restore-overview-icon {
  display: inline-grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border: 1px solid rgba(35, 200, 255, 0.38);
  border-radius: 50%;
  background: var(--terminal);
  color: var(--accent);
}

.quick-restore-overview-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.quick-restore-overview-copy strong {
  color: var(--text);
  font-size: 1rem;
}

.quick-restore-overview-copy small {
  min-width: 0;
  overflow: hidden;
  color: var(--muted);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.quick-restore-watched {
  display: grid;
  gap: 6px;
}

.quick-restore-watched h5 {
  margin: 0;
  color: var(--accent);
}

.quick-restore-watched h5 i {
  margin-right: 5px;
}

.quick-restore-watch-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.quick-restore-watch-chip {
  display: inline-grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  min-width: 210px;
  max-width: 320px;
  padding: 8px 10px;
  color: var(--text);
  text-align: left;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
  cursor: pointer;
}

.quick-restore-watch-chip:hover {
  border-color: rgba(35, 200, 255, 0.38);
}

.quick-restore-watch-chip i {
  color: var(--accent);
}

.quick-restore-watch-chip span {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.quick-restore-watch-chip strong,
.quick-restore-watch-chip small {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.quick-restore-watch-chip small {
  color: var(--muted);
}

.quick-restore-watch-chip.quick-restore-missing {
  border-color: rgba(248, 113, 113, 0.5);
}

.quick-restore-watch-chip.quick-restore-missing small,
.quick-restore-watch-chip.quick-restore-missing i {
  color: var(--danger);
}

.quick-restore-file-line {
  display: inline-grid;
  grid-template-columns: 16px minmax(0, 1fr);
  gap: 7px;
  align-items: center;
  max-width: 100%;
  min-width: 0;
}

.quick-restore-file-line i {
  color: var(--accent);
}

.quick-restore-file-line span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.spacemap-search {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) repeat(4, auto) repeat(2, auto);
  gap: 8px;
  align-items: center;
}

.spacemap-overview {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.spacemap-overview-icon {
  display: inline-grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border: 1px solid rgba(35, 200, 255, 0.38);
  border-radius: 50%;
  background: var(--terminal);
  color: var(--accent);
}

.spacemap-overview-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.spacemap-overview-copy strong {
  color: var(--text);
  font-size: 1rem;
}

.spacemap-overview-copy small {
  min-width: 0;
  overflow: hidden;
  color: var(--muted);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.spacemap-watched {
  display: grid;
  gap: 6px;
}

.spacemap-watched h5 {
  margin: 0;
  color: var(--accent);
}

.spacemap-watched h5 i {
  margin-right: 5px;
}

.spacemap-root-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.spacemap-root-chip {
  display: inline-grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  min-width: 180px;
  max-width: 280px;
  padding: 8px 10px;
  color: var(--text);
  text-align: left;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
  cursor: pointer;
}

.spacemap-root-chip:hover {
  border-color: rgba(35, 200, 255, 0.38);
}

.spacemap-root-chip i {
  color: var(--accent);
}

.spacemap-root-chip span {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.spacemap-root-chip strong,
.spacemap-root-chip small {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.spacemap-root-chip small {
  color: var(--muted);
}

.windows-update-card dl,
.quick-restore-card dl {
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 5px 8px;
  margin: 0;
}

.quick-restore-card dl {
  grid-template-columns: 78px minmax(0, 1fr);
}

.windows-update-card dt,
.quick-restore-card dt {
  color: var(--muted);
}

.windows-update-card dd,
.quick-restore-card dd {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.windows-update-peer-command code {
  font-size: 0.88rem;
  white-space: nowrap;
}

.windows-update-peer-command {
  display: grid;
  gap: 4px;
}

.windows-update-history,
.quick-restore-list {
  display: grid;
  gap: 6px;
  overflow: auto;
}

.usbguard-events,
.usbguard-whitelist,
.usbguard-blocked-view {
  display: grid;
  gap: 6px;
}

details.usbguard-events > summary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
}

details.usbguard-events > summary::marker {
  color: var(--muted);
}

details.usbguard-events > summary small {
  color: var(--muted);
  font-size: 0.78rem;
}

.windows-update-history h5,
.usbguard-events h5,
.usbguard-whitelist h5,
.usbguard-blocked-view h5 {
  margin: 0;
  color: var(--accent);
}

.usbguard-blocked-view h5 {
  color: var(--danger);
}

.windows-update-history table,
.quick-restore-list table,
.usbguard-events table {
  color: var(--muted);
  border: none;
}

.quick-restore-list table {
  min-width: 920px;
}

.windows-update-history th,
.windows-update-history td,
.quick-restore-list th,
.quick-restore-list td,
.usbguard-events th,
.usbguard-events td {
  font-size: 0.86rem;
}

.windows-update-history td,
.quick-restore-list td,
.usbguard-events td {
  vertical-align: top;
}

.quick-restore-list td {
  max-width: 320px;
  overflow-wrap: anywhere;
}

.quick-restore-list tr {
  cursor: default;
}

.quick-restore-list tr.quick-restore-missing td {
  color: var(--danger);
}

.quick-restore-empty {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px;
  color: var(--muted);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.quick-restore-empty i {
  color: var(--accent);
}

.knowledge-base-panel {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  gap: 10px;
  min-height: 100%;
}

.knowledge-base-toolbar,
.knowledge-base-editor-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.knowledge-base-toolbar .form-input {
  width: min(420px, 100%);
}

.knowledge-base-status {
  min-height: 18px;
}

.knowledge-base-layout {
  display: grid;
  grid-template-columns: minmax(220px, 0.38fr) minmax(0, 1fr);
  gap: 10px;
  min-height: 0;
}

.knowledge-base-list,
.knowledge-base-detail,
.knowledge-base-editor {
  min-height: 0;
  overflow: auto;
}

.knowledge-base-list {
  display: grid;
  align-content: start;
  gap: 6px;
}

.knowledge-base-row {
  display: grid;
  gap: 2px;
  width: 100%;
  padding: 9px 10px;
  color: var(--text);
  text-align: left;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
  cursor: pointer;
}

.knowledge-base-row.active,
.knowledge-base-row:hover {
  border-color: rgba(35, 200, 255, 0.48);
}

.knowledge-base-row-title {
  overflow: hidden;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.knowledge-base-row-meta {
  color: var(--muted);
  font-size: 0.82rem;
}

.knowledge-base-empty {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px;
  color: var(--muted);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.knowledge-base-detail,
.knowledge-base-editor {
  display: grid;
  align-content: start;
  gap: 10px;
}

.knowledge-base-detail-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: start;
}

.knowledge-base-detail-head h5 {
  margin: 0 0 4px;
  color: var(--accent);
}

.knowledge-base-description {
  margin: 0;
  color: var(--muted);
  overflow-wrap: anywhere;
}

.knowledge-base-keywords {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.knowledge-base-keywords span {
  padding: 3px 7px;
  color: var(--muted);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
  font-size: 0.78rem;
}

.knowledge-base-commands {
  display: grid;
  gap: 8px;
}

.knowledge-base-command {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  padding: 9px 10px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.knowledge-base-command strong,
.knowledge-base-command code {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.knowledge-base-command code {
  color: var(--muted);
  font-size: 0.82rem;
}

.knowledge-base-command-actions {
  display: inline-flex;
  gap: 6px;
  align-items: center;
}

.knowledge-base-command-vars {
  display: block;
  margin-top: 3px;
  color: var(--accent);
  font-size: 0.78rem;
  overflow-wrap: anywhere;
}

.knowledge-base-editor-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(150px, 0.6fr) minmax(150px, 0.8fr);
  gap: 8px;
}

.knowledge-base-editor label {
  display: grid;
  gap: 4px;
}

.knowledge-base-editor label span {
  color: var(--muted);
  font-size: 0.82rem;
}

.knowledge-base-medic-toggle {
  align-self: end;
  justify-self: start;
  min-height: 34px;
}

.knowledge-base-medic-toggle input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.knowledge-base-medic-toggle span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  color: var(--muted);
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  cursor: pointer;
}

.knowledge-base-medic-toggle input:checked + span {
  color: var(--accent-strong);
  background: rgba(79, 183, 197, 0.14);
  border-color: rgba(79, 183, 197, 0.62);
}

.knowledge-base-medic-toggle input:focus-visible + span {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

@media (max-width: 900px) {
  .knowledge-base-layout,
  .knowledge-base-editor-grid {
    grid-template-columns: 1fr;
  }
}

.usbguard-event-list {
  display: grid;
  gap: 0;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  overflow: hidden;
}

.usbguard-event-head,
.usbguard-event-row summary {
  display: grid;
  grid-template-columns: 145px 112px 96px minmax(220px, 1fr);
  gap: 10px;
  align-items: start;
  padding: 8px 10px;
}

.usbguard-event-head {
  color: var(--muted);
  background: var(--panel-2);
  font-size: 0.82rem;
  font-weight: 700;
}

.usbguard-event-row {
  color: var(--muted);
  border-top: 1px solid var(--line-soft);
  font-size: 0.86rem;
}

.usbguard-event-row summary {
  cursor: pointer;
  list-style-position: outside;
}

.usbguard-event-row summary::marker {
  color: var(--muted);
}

.usbguard-event-row summary > span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.usbguard-events strong,
.usbguard-whitelist strong {
  display: block;
  color: var(--text);
  font-weight: 700;
}

.usbguard-events small {
  display: block;
  max-width: 260px;
  overflow: hidden;
  color: var(--muted);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.usbguard-event-badge {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 8px;
  border: 1px solid var(--line-soft);
  border-radius: 999px;
  background: var(--panel-2);
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
}

.usbguard-event-blocked {
  border-color: rgba(248, 113, 113, 0.5);
  color: var(--danger);
}

.usbguard-event-removed {
  border-color: rgba(251, 191, 36, 0.5);
  color: var(--warning);
}

.usbguard-event-allowed,
.usbguard-event-whitelist {
  border-color: rgba(84, 214, 136, 0.45);
  color: var(--success);
}

.usbguard-empty {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px;
  color: var(--muted);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.usbguard-empty i {
  color: var(--accent);
}

.bits-empty {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px;
  color: var(--muted);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.bits-empty i {
  color: var(--warning);
}

.bits-job-list {
  display: grid;
  gap: 6px;
}

.bits-job-list h5 {
  margin: 0;
  color: var(--accent);
}

.bits-job-table-wrap {
  max-width: 100%;
  overflow: auto;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
}

.bits-job-table {
  min-width: 920px;
  margin-bottom: 0;
  color: var(--muted);
  border: none;
}

.bits-job-table th,
.bits-job-table td {
  font-size: 0.84rem;
  vertical-align: top;
}

.bits-job-table strong,
.bits-job-table small {
  display: block;
}

.bits-job-table small {
  max-width: 190px;
  overflow: hidden;
  color: var(--muted);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bits-job-table code {
  display: block;
  max-width: 360px;
  overflow: hidden;
  color: var(--terminal-text);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bits-job-badge,
.bits-scope-badge {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 8px;
  border: 1px solid var(--line-soft);
  border-radius: 999px;
  background: var(--panel-2);
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 700;
}

.bits-scope-badge {
  margin-left: 5px;
  border-color: rgba(35, 200, 255, 0.32);
  color: var(--accent);
}

.bits-state-error {
  border-color: rgba(248, 113, 113, 0.5);
  color: var(--danger);
}

.bits-state-ready {
  border-color: rgba(84, 214, 136, 0.45);
  color: var(--success);
}

.bits-state-active {
  border-color: rgba(35, 200, 255, 0.38);
  color: var(--accent);
}

.bits-state-paused {
  border-color: rgba(251, 191, 36, 0.5);
  color: var(--warning);
}

.usbguard-event-detail {
  padding: 0 10px 10px 360px;
}

.usbguard-event-detail dl {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 6px 10px;
  margin: 0;
  padding: 10px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--terminal);
}

.usbguard-event-detail dt {
  color: var(--muted);
}

.usbguard-event-detail dd {
  min-width: 0;
  margin: 0;
  color: var(--terminal-text);
  overflow-wrap: anywhere;
}

@media (max-width: 720px) {
  .spacemap-search {
    grid-template-columns: 1fr;
  }

  .usbguard-allow {
    grid-template-columns: 1fr;
  }

  .usbguard-trusted-chip {
    grid-template-columns: 20px minmax(0, 1fr);
  }

  .usbguard-trusted-chip sl-button {
    grid-column: 2;
    justify-self: start;
  }

  .usbguard-event-head {
    display: none;
  }

  .usbguard-event-row summary {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .usbguard-event-detail {
    padding: 0 10px 10px;
  }

  .usbguard-event-detail dl {
    grid-template-columns: 1fr;
  }
}

.usbguard-whitelist-list {
  display: grid;
  gap: 8px;
}

.usbguard-blocked-list {
  display: grid;
  gap: 8px;
}

.usbguard-blocked-row,
.usbguard-whitelist-row {
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.usbguard-blocked-row {
  border-color: rgba(248, 113, 113, 0.45);
  background: rgba(127, 29, 29, 0.12);
}

.usbguard-blocked-row summary,
.usbguard-whitelist-row summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 10px;
  cursor: pointer;
}

.usbguard-blocked-row summary::marker,
.usbguard-whitelist-row summary::marker {
  color: var(--muted);
}

.usbguard-blocked-main,
.usbguard-whitelist-actions {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  gap: 8px;
}

.usbguard-blocked-main .usbguard-device-line,
.usbguard-whitelist-row summary > .usbguard-device-line {
  flex: 1 1 auto;
}

.usbguard-blocked-main strong {
  color: var(--text);
}

.usbguard-blocked-main small,
.usbguard-whitelist small {
  display: block;
  max-width: 260px;
  overflow: hidden;
  color: var(--muted);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.usbguard-blocked-drive {
  color: var(--danger);
  font-weight: 700;
}

.usbguard-blocked-detail {
  padding-left: 10px;
}

.usbguard-whitelist-row code {
  margin: 0 10px 10px;
}

.windows-update-history td:nth-child(1) {
  width: 150px;
  white-space: nowrap;
}

.windows-update-history td:nth-child(2) {
  width: 120px;
  white-space: nowrap;
}

.windows-update-peer-command code,
.usbguard-whitelist code,
.windows-update-json pre,
.quick-restore-json pre {
  display: block;
  max-width: 100%;
  padding: 8px;
  overflow: auto;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--terminal);
  color: var(--terminal-text);
}

.usbguard-whitelist code {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--muted);
  font-size: 0.78rem;
  white-space: normal;
  overflow-wrap: anywhere;
}

.group-software-view {
  display: grid;
  gap: 12px;
}

.group-software-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(120px, 1fr));
  gap: 10px;
}

.group-software-summary strong {
  font-size: 1.3rem;
}

.group-versions-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.group-versions-toolbar small {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--muted);
}

.group-heartbeats-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex: 1;
}

.inline-search {
  position: relative;
  min-width: 220px;
}

.inline-search i {
  position: absolute;
  left: 11px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted);
  pointer-events: none;
}

.inline-search .form-input {
  width: 100%;
  height: 34px;
  padding-left: 32px;
}

.group-heartbeats-search {
  width: min(320px, 38vw);
}

.group-versions-summary .windows-update-card small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  overflow-wrap: anywhere;
}

.group-software-table td {
  vertical-align: top;
}

.group-versions-table-panel {
  overflow-x: auto;
  overflow-y: visible;
  padding: 10px;
  background: rgba(29, 35, 43, 0.78);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
}

.group-versions-table {
  min-width: 860px;
  margin: 0;
}

.group-versions-table th,
.group-versions-table td {
  padding-right: 14px;
  padding-left: 14px;
}

.version-source {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-left: 8px;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 700;
}

.version-source-live {
  color: var(--accent);
}

.group-heartbeats-table {
  min-width: 1180px;
  margin: 0;
}

.heartbeat-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-transform: capitalize;
}

.group-heartbeat-detail {
  display: block;
  margin-top: 3px;
  max-width: 360px;
  color: var(--muted);
  white-space: normal;
}

.system-task-kill::part(base) {
  color: var(--danger);
  border-color: rgba(248, 113, 113, 0.45);
}

.system-task-kill::part(base):hover {
  background: rgba(248, 113, 113, 0.12);
}

.service-name {
  min-width: 260px;
}

.service-name strong,
.service-name small {
  display: block;
}

.service-pill {
  display: inline-flex;
  min-width: 72px;
  justify-content: center;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
}

.service-running {
  color: #08110c;
  background: var(--success);
}

.service-stopped {
  color: var(--text);
  background: var(--panel-3);
}

.service-actions {
  text-align: right;
  white-space: nowrap;
}

.service-actions sl-button {
  margin-left: 4px;
}

.system-tools-panel {
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1 1 auto;
  height: auto;
  min-height: 0;
  overflow: hidden;
}

.system-tools-target {
  margin-left: 6px;
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 600;
}

.system-tools-tabs,
.system-tools-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.system-tools-filter {
  position: sticky;
  top: 0;
  z-index: 2;
  padding-bottom: 6px;
  background: var(--panel);
}

.system-tools-filter input {
  min-width: 240px;
  flex: 1;
}

.system-tools-status {
  flex: 0 0 auto;
  min-height: 18px;
}

.system-tools-overview,
.system-tools-list {
  min-height: 0;
}

.system-tools-scroll {
  flex: 1 1 auto;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 4px;
  scrollbar-width: thin;
}

.system-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(150px, 1fr));
  gap: 10px;
}

.system-metric-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  padding: 10px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.metric-label {
  color: var(--accent);
  font-size: 0.82rem;
  font-weight: 700;
}

.metric-value {
  color: var(--text);
  font-weight: 700;
}

.system-sparkline {
  grid-column: 1 / -1;
  width: 100%;
  height: 42px;
  overflow: visible;
}

.system-sparkline polyline {
  fill: none;
  stroke: var(--warning);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.2;
}

.system-disk-list {
  margin-top: 10px;
}

.system-table {
  width: 100%;
  color: var(--muted);
  border: none;
  table-layout: fixed;
}

.system-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  overflow-y: visible;
  scrollbar-width: thin;
}

.system-table th,
.system-table td {
  overflow: hidden;
  text-overflow: ellipsis;
}

.system-table tbody tr:hover {
  background: var(--panel-2);
}

.snmp-device-body tr {
  border-bottom: 1px solid var(--line-soft);
}

.system-name {
  min-width: 0;
}

.system-name strong,
.system-name small {
  display: block;
}

.system-name small {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.system-device-groups {
  display: grid;
  gap: 10px;
  padding-bottom: 10px;
}

.system-device-group {
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
  overflow: hidden;
}

.system-device-group summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 10px;
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.system-device-group summary::-webkit-details-marker {
  display: none;
}

.system-device-group-title {
  color: var(--text);
  font-size: 0.84rem;
  font-weight: 700;
}

.system-device-group-count {
  display: inline-flex;
  min-width: 24px;
  justify-content: center;
  padding: 1px 6px;
  border-radius: 999px;
  background: var(--panel-3);
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 700;
}

.system-device-group .system-table {
  margin-bottom: 0;
  background: transparent;
}

.snmp-controls {
  display: grid;
  gap: 8px;
  padding-bottom: 8px;
}

.snmp-controls textarea {
  width: 100%;
  min-height: 76px;
  resize: vertical;
}

.snmp-single-target {
  max-width: 360px;
}

.snmp-help {
  color: var(--muted);
  font-size: 0.78rem;
}

.snmp-control-row {
  display: grid;
  grid-template-columns: minmax(170px, 1fr) 90px 110px 90px auto;
  gap: 8px;
  align-items: end;
}

.snmp-control-row label {
  display: grid;
  gap: 4px;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
}

.snmp-button-spinner {
  width: 0.9rem;
  height: 0.9rem;
  --indicator-color: currentColor;
  color: #fff;
}

.snmp-toggle {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  justify-self: end;
  width: max-content;
  color: var(--muted);
  font-size: 0.82rem;
  white-space: nowrap;
}

.system-tools-filter .snmp-toggle input[type="checkbox"] {
  flex: 0 0 auto;
  width: auto;
  min-width: 0;
}

.snmp-filter-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) max-content;
  gap: 10px;
}

.snmp-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  color: var(--muted);
  font-size: 0.82rem;
}

.snmp-summary span {
  padding: 3px 8px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.snmp-supplies {
  white-space: normal;
}

.synology-panel {
  display: grid;
  gap: 12px;
}

.synology-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(130px, 1fr));
  gap: 8px;
}

.synology-summary-card {
  display: grid;
  gap: 4px;
  padding: 10px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.synology-summary-card strong,
.synology-summary-card small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.synology-summary-card small {
  color: var(--muted);
}

.synology-section {
  display: grid;
  gap: 6px;
}

.synology-section h4 {
  margin: 0;
  color: var(--accent);
  font-size: 0.86rem;
}

.synology-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.synology-tags span {
  padding: 4px 8px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
  color: var(--muted);
  font-size: 0.8rem;
}

.snmp-detail-row td {
  background: var(--panel);
}

.snmp-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(180px, 1fr));
  gap: 10px 14px;
  padding: 10px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.snmp-detail-grid div {
  min-width: 0;
}

.snmp-detail-grid strong,
.snmp-detail-grid span {
  display: block;
}

.snmp-detail-grid strong {
  color: var(--muted);
  font-size: 0.76rem;
}

.snmp-detail-grid span {
  overflow-wrap: anywhere;
  color: var(--text);
}

@media (max-width: 900px) {
  .snmp-control-row {
    grid-template-columns: repeat(2, minmax(120px, 1fr));
  }

  .snmp-filter-row {
    grid-template-columns: 1fr;
  }

  .snmp-detail-grid {
    grid-template-columns: 1fr;
  }

  .synology-summary {
    grid-template-columns: repeat(2, minmax(120px, 1fr));
  }
}

.system-actions {
  width: 112px;
  text-align: right;
  white-space: nowrap;
}

.system-actions sl-tooltip {
  display: inline-block;
}

.system-actions sl-button {
  margin-left: 4px;
}

.mobile-operator {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  padding: 12px;
}

.mobile-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
  padding: 12px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.mobile-topbar h2 {
  margin: 0;
  font-size: 1.1rem;
}

.mobile-topbar small,
.mobile-group small,
.mobile-selection small {
  color: var(--muted);
}

.mobile-key {
  width: min(320px, 48vw);
}

.mobile-layout {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr) minmax(280px, 380px);
  gap: 12px;
}

.mobile-panel {
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.mobile-panel h3 {
  margin: 0 0 10px;
  color: var(--accent);
  font-size: 0.95rem;
}

.mobile-group {
  display: grid;
  gap: 6px;
  margin-bottom: 12px;
}

.mobile-ship,
.mobile-pc {
  width: 100%;
  min-height: 44px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel);
  color: var(--text);
  text-align: left;
}

.mobile-ship {
  display: grid;
  grid-template-columns: 12px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  padding: 8px;
}

.mobile-status {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--danger);
}

.mobile-status.online {
  background: var(--success);
}

.mobile-pc-grid,
.mobile-action-grid,
.mobile-metrics {
  display: grid;
  gap: 8px;
}

.mobile-pc-grid {
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
}

.mobile-pc {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px;
}

.mobile-ship.active,
.mobile-pc.active {
  border-color: var(--accent);
  background: var(--panel-3);
}

.mobile-actions {
  display: grid;
  gap: 12px;
  align-content: start;
}

.mobile-selection {
  display: grid;
  gap: 2px;
}

.mobile-action-grid {
  grid-template-columns: 1fr 1fr;
}

.mobile-result {
  display: grid;
  gap: 10px;
  min-height: 180px;
  padding-top: 8px;
  border-top: 1px solid var(--line-soft);
}

.mobile-result-status {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--muted);
}

.mobile-metrics {
  grid-template-columns: repeat(3, 1fr);
}

.mobile-metric {
  display: grid;
  gap: 4px;
  padding: 10px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel);
}

.mobile-metric strong {
  font-size: 1.3rem;
}

.mobile-services,
.mobile-scripts,
.mobile-reply {
  display: grid;
  gap: 8px;
}

.mobile-service-list {
  display: grid;
  gap: 6px;
  max-height: 360px;
  overflow: auto;
}

.mobile-service {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 8px;
  align-items: center;
  padding: 8px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel);
}

.mobile-service strong,
.mobile-service small {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mobile-service small {
  color: var(--muted);
}

.mobile-reply pre,
.mobile-raw pre {
  max-height: 240px;
  overflow: auto;
  padding: 8px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--terminal);
  color: var(--terminal-text);
  white-space: pre-wrap;
}

@media (max-width: 980px) {
  .mobile-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .mobile-operator {
    padding: 8px;
  }

  .mobile-topbar,
  .mobile-layout {
    display: grid;
    grid-template-columns: 1fr;
  }

  .mobile-key {
    width: 100%;
  }

  .mobile-panel {
    padding: 10px;
  }

  .mobile-action-grid {
    grid-template-columns: 1fr;
  }

  .mobile-metrics {
    grid-template-columns: 1fr;
  }
}

.shrink {
  flex: 0 0 72px !important;
  max-width: 72px !important;
}

.close-x,
.toggle-it {
  margin-right: 10px;
  color: var(--muted) !important;
}

.close-x:hover,
.toggle-it:hover {
  color: var(--text) !important;
  cursor: pointer;
}

.encrypted {
  color: var(--success);
}

.decrypted {
  color: var(--danger);
}

/* Shared components */

table,
.table {
  width: 100%;
  border-collapse: collapse;
  color: var(--text);
}

tr,
td {
  border-color: var(--line-soft) !important;
}

th,
td {
  padding: 8px;
  border-bottom: 1px solid var(--line-soft);
  text-align: left;
  vertical-align: middle;
}

thead th {
  color: var(--muted);
  font-weight: 700;
}

.table-striped tbody tr:nth-child(odd) {
  background: rgba(255, 255, 255, 0.025);
}

.audit-summary-head {
  min-height: 100px;
  background: var(--panel-3);
  color: var(--text);
}

.audit-summary-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 10px;
}

.audit-summary-actions small {
  color: var(--muted);
}

.audit-summary-overview {
  display: grid;
  grid-template-columns: minmax(260px, 1.25fr) repeat(3, minmax(150px, 1fr));
  gap: 10px;
  margin: 0 0 14px;
}

.audit-summary-card {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  min-height: 96px;
  padding: 14px;
  background: var(--panel-2);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
}

.audit-summary-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  background: var(--panel-3);
  border: 1px solid var(--line-soft);
  border-radius: 8px;
}

.audit-summary-icon i {
  color: var(--muted);
  font-size: 1.35rem;
}

.audit-summary-metric {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.audit-summary-metric strong {
  font-size: 2rem;
  line-height: 1;
}

.audit-summary-metric span {
  font-weight: 700;
}

.audit-summary-metric small {
  color: var(--muted);
}

.audit-summary-card.ok strong,
.audit-summary-card.ok .audit-summary-icon i {
  color: var(--success);
}

.audit-summary-card.warn strong,
.audit-summary-card.warn .audit-summary-icon i {
  color: var(--warning);
}

.audit-summary-card.bad strong,
.audit-summary-card.bad .audit-summary-icon i {
  color: var(--danger);
}

.audit-summary-chart-card {
  grid-template-columns: 86px 1fr;
  align-items: center;
}

.audit-pie {
  --slice-1: var(--accent);
  --slice-2: var(--success);
  --slice-3: var(--warning);
  --slice-4: #9b7cff;
  --slice-other: var(--muted);
  display: grid;
  place-items: center;
  width: 76px;
  height: 76px;
  border-radius: 50%;
  background: var(--panel-3);
  position: relative;
}

.audit-pie::after {
  content: '';
  position: absolute;
  inset: 18px;
  border-radius: 50%;
  background: var(--panel-2);
}

.audit-pie span {
  position: relative;
  z-index: 1;
  color: var(--text);
  font-weight: 800;
}

.audit-chart-details {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.audit-chart-legend {
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  color: var(--muted);
  font-size: 0.82rem;
}

.audit-chart-legend i {
  width: 9px;
  height: 9px;
  border-radius: 50%;
}

.audit-chart-legend .slice-1 {
  background: var(--accent);
}

.audit-chart-legend .slice-2 {
  background: var(--success);
}

.audit-chart-legend .slice-3 {
  background: var(--warning);
}

.audit-chart-legend .slice-4 {
  background: #9b7cff;
}

.audit-chart-legend .slice-other {
  background: var(--muted);
}

.audit-chart-legend span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.th-offset {
  margin-top: 50px;
}

.vertical {
  height: 120px;
  transform: rotate(45deg);
  transform-origin: left top 0;
}

.border {
  border-top: 2px solid var(--line) !important;
}

.border-right {
  border-right: 2px solid var(--line) !important;
}

.status-good {
  color: var(--success);
  padding-right: 5px;
}

.status-warn {
  color: var(--warning);
  padding-right: 5px;
}

.status-bad {
  color: var(--danger);
  padding-right: 5px;
}

.report-notes {
  color: var(--muted);
}

.audit-detections-panel {
  display: grid;
  gap: 12px;
  margin: 0 0 16px;
  padding: 14px;
  background: var(--panel-2);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
}

.audit-detections-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.audit-detections-header div {
  display: grid;
  gap: 4px;
}

.audit-detections-header small {
  color: var(--muted);
}

.audit-detections-threats {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.audit-detection-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(34, 211, 238, 0.08);
  border: 1px solid rgba(34, 211, 238, 0.2);
  color: var(--text);
  font-size: 0.8rem;
  font-weight: 700;
}

.audit-detection-chip b {
  color: var(--accent);
}

.audit-detections-empty {
  padding: 12px 14px;
  border: 1px dashed var(--line-soft);
  border-radius: var(--radius);
  color: var(--muted);
  background: rgba(255, 255, 255, 0.02);
}

.audit-detections-list {
  display: grid;
  gap: 10px;
}

.audit-detection-row {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) auto auto;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-3);
}

.audit-detection-main {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.audit-detection-main small {
  color: var(--muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.audit-detection-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.audit-detection-meta span {
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  border-radius: 999px;
  color: var(--muted);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--line-soft);
  font-size: 0.78rem;
  font-weight: 700;
}

.audit-detection-actions {
  display: inline-flex;
  gap: 8px;
}

.audit-form {
  padding: 20px;
  color: var(--text);
  white-space: normal;
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.audit-form label {
  margin-right: 10px;
  color: var(--muted);
}

.audit-form h5,
.audit-form h6 {
  color: var(--text);
}

.audit-form h6,
.hostname {
  font-weight: 600;
}

.audit-form h6 {
  font-size: 1rem;
}

.audit-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.audit-header h5,
.audit-header h6 {
  margin: 0;
}

.audit-header h6 {
  color: var(--muted);
  font-size: 0.95rem;
  font-weight: 600;
}

.audit-table {
  display: inline-table;
  margin-right: 20px;
}

.audit-small {
  font-size: 0.9rem;
}

.fixed {
  display: inline-block;
  min-width: 200px;
}

.wide {
  min-width: 300px;
}

.x-wide {
  min-width: 400px;
}

.xx-wide {
  min-width: 600px;
}

hr.dark,
hr.darker-dashed {
  margin: 20px 0;
  border-color: var(--line);
}

hr.darker-dashed {
  border-style: dashed;
}

.ascii-data {
  width: 100%;
  color: var(--text);
  font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  font-size: 0.9rem;
  border: 1px solid var(--line);
}

.red {
  border: 1px solid var(--danger) !important;
}

.orange {
  border: 1px solid var(--warning) !important;
}

.explorer-table {
  color: var(--muted);
  border: none;
}

.explorer-table tr {
  cursor: default;
}

.explorer-table tbody tr:hover {
  background: var(--panel-2);
}

.explorer-table tbody tr.explorer-selected {
  background: var(--panel-3);
}

.explorer-directory {
  cursor: pointer;
}

.file-directory {
  color: var(--success);
}

.file-regular {
  color: var(--muted);
}

#bgvid {
  position: fixed;
  right: 0;
  bottom: 0;
  z-index: -100;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.verify-error {
  margin-bottom: 0;
}

.verify-copy {
  margin: 0 0 0.35rem;
}

.small-btn {
  padding: 4px 10px;
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  color: var(--text);
}

.small-btn:hover {
  background: var(--panel-3);
  color: var(--text);
  cursor: pointer;
}

.hover-border {
  border-top: 2px solid var(--accent) !important;
  border-bottom: 2px solid var(--accent) !important;
  background: rgba(79, 183, 197, 0.18);
  color: var(--text);
  font-weight: 700;
}

#message-box,
#message-box .modal-title,
#message-box .close-button {
  color: #111418 !important;
}

#message-box .modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

#message-box .modal-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: #3b4652;
}

.overlay,
.modal-overlay {
  background: rgba(0, 0, 0, 0.82) !important;
}

input[type="file"] {
  max-width: 260px;
  height: 30px;
  color: var(--text);
}

.step .step-item a {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  text-decoration: none;
  color: var(--muted) !important;
}

.step {
  display: flex;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}

.step .step-item {
  position: relative;
  flex: 1 1 0;
  min-height: 38px;
  text-align: center;
}

.step .step-item:not(:first-child)::before {
  position: absolute;
  top: 11px;
  right: 50%;
  left: -50%;
  height: 2px;
  content: "";
  background: var(--accent) !important;
}

.step .step-item a::before {
  display: block;
  width: 14px;
  height: 14px;
  margin: 4px auto 6px;
  content: "";
  border-radius: 999px;
}

.step .step-item a::before {
  background: var(--accent) !important;
  border: 0.1rem solid var(--accent-strong) !important;
}

.step .step-item.active a::before {
  background: var(--text) !important;
}

.step .step-label {
  color: var(--text);
  font-weight: 700;
}

.step .step-hint {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 500;
}

.step .step-item.active .step-label {
  color: var(--accent);
}

.rollout-status-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 12px;
  color: var(--muted);
}

.rollout-refresh-icon {
  margin-right: 6px;
}

.rollout-details-toggle {
  display: inline-grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  color: var(--muted);
  background: var(--panel-2);
}

.rollout-details-toggle:hover {
  color: var(--text);
  background: var(--panel-3);
  cursor: pointer;
}

.rollout-details-row td {
  padding-top: 0;
  background: rgba(0, 0, 0, 0.14);
}

.rollout-details-panel {
  margin: 0 0 8px;
  padding: 10px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.rollout-details-panel .table {
  margin: 0;
}

.rollout-details-panel th,
.rollout-details-panel td {
  padding: 6px 8px;
}

.rollout-stage-badge {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--panel-2);
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
  white-space: nowrap;
}

.rollout-stage-ready {
  border-color: rgba(54, 211, 153, 0.55);
  color: var(--success);
}

.rollout-stage-partial {
  border-color: rgba(245, 196, 81, 0.55);
  color: var(--warning);
}

.rollout-stage-missing {
  border-color: rgba(255, 90, 95, 0.55);
  color: var(--danger);
}

.ship-rollout-store-panel {
  margin-top: 16px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.ship-rollout-store-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
  color: var(--muted);
}

.ship-rollout-store-heading h4 {
  margin: 0 0 4px;
  color: var(--text);
  font-size: 1rem;
}

.ship-rollout-store-table code {
  color: var(--muted);
  font-size: 0.82rem;
  white-space: nowrap;
}

.ship-offline-view,
.ship-rollout-store-view {
  margin-top: 16px;
}

.ship-offline-actions {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 10px;
}

.ship-offline-knowledge {
  display: grid;
  gap: 10px;
  margin-bottom: 12px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.ship-offline-knowledge-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: flex-start;
}

.ship-offline-knowledge-head strong {
  display: block;
  color: var(--text);
}

.ship-offline-knowledge-head small,
.ship-offline-knowledge-entry p {
  color: var(--muted);
}

.ship-offline-knowledge-controls {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(220px, 1.2fr) minmax(150px, 0.8fr);
  gap: 8px;
}

.ship-offline-knowledge-status {
  min-height: 18px;
}

.ship-offline-knowledge-entry,
.ship-offline-knowledge-command {
  display: grid;
  gap: 8px;
}

.ship-offline-knowledge-entry p {
  margin: 0;
}

.ship-offline-knowledge-command {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  padding: 9px 10px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel);
}

.ship-offline-knowledge-command strong,
.ship-offline-knowledge-command code {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ship-offline-knowledge-command code {
  color: var(--muted);
  font-size: 0.82rem;
}

@media (max-width: 900px) {
  .ship-offline-knowledge-controls,
  .ship-offline-knowledge-command {
    grid-template-columns: 1fr;
  }
}

.offline-task-view {
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.offline-task-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.offline-task-head strong {
  display: block;
  color: var(--text);
}

.offline-task-head small,
.offline-task-head span,
.offline-task-empty {
  color: var(--muted);
}

.offline-status {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
}

.offline-status-completed {
  border-color: rgba(54, 211, 153, 0.55);
  color: var(--success);
}

.offline-status-queued {
  border-color: rgba(245, 196, 81, 0.55);
  color: var(--warning);
}

.offline-status-delivered {
  border-color: rgba(47, 181, 235, 0.55);
  color: var(--accent);
}

.offline-task-actions {
  width: 1%;
  white-space: nowrap;
  text-align: right;
}

.offline-delete-button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border: 1px solid rgba(255, 92, 92, 0.35);
  border-radius: 6px;
  background: rgba(255, 92, 92, 0.08);
  color: #ff8d8d;
  font-size: 0.8rem;
}

.offline-delete-button:hover {
  border-color: rgba(255, 92, 92, 0.55);
  background: rgba(255, 92, 92, 0.14);
  color: #ffb0b0;
}

.offline-result-row pre {
  overflow: auto;
  max-height: 360px;
  margin: 10px 0 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--terminal-bg);
  color: var(--terminal-fg);
  white-space: pre-wrap;
}

.offline-run-command {
  display: grid;
  gap: 8px;
  padding: 10px 0;
  border-top: 1px solid var(--line-soft);
}

.offline-run-command:first-of-type {
  border-top: 0;
}

.offline-run-command-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.offline-run-command code {
  color: var(--muted);
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

.hidden {
  display: none !important;
}

.step-title {
  color: var(--text);
  font-size: 1rem;
  font-weight: 700;
}

#rollout-install-steps,
#rollout-download-steps {
  margin-bottom: 50px;
  white-space: normal;
}

.rollout-step {
  width: min(70vw, 980px);
  min-height: 200px;
  margin: 20px auto;
  padding: 20px;
  color: var(--text);
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.rollout-form {
  padding: 10px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
}

.rollout-buttons {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  width: min(70vw, 980px);
  margin: 0 auto;
}

#rollout-manage-steps {
  min-width: min(80vw, 1100px);
}

hr.ro {
  margin: 20px 0;
  border: none;
  border-top: 1px solid var(--line);
}

.rollout-manage-content {
  padding: 16px;
  background: var(--panel);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
}

.rollout-manage-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}

.rollout-manage-toolbar h4,
.rollout-package-form h5 {
  margin: 0;
}

.rollout-package-form {
  padding: 16px;
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.rollout-table-panel {
  overflow: auto;
  background: var(--panel-2);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
}

.rollout-table-panel .table {
  min-width: 980px;
}

.rollout-table-panel th {
  background: var(--panel-2);
}

.rollout-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
}

.upload-progress {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 14px;
  color: var(--muted);
}

.upload-progress progress {
  width: min(320px, 100%);
}

.table-actions {
  width: 250px;
  text-align: right;
  white-space: nowrap;
}

.rollout-package-name {
  display: inline-block;
  max-width: min(360px, 42vw);
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: bottom;
  white-space: nowrap;
}

.rollout-version-count {
  display: block;
  max-width: 190px;
  margin-top: 2px;
  overflow: hidden;
  color: var(--muted);
  font-size: 0.76rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.rollout-notes-modal {
  color: var(--text);
}

.rollout-notes-container {
  width: min(760px, calc(100vw - 32px));
  max-height: min(760px, calc(100vh - 48px));
  color: var(--text);
  background: var(--panel-2);
  border: 1px solid var(--line);
}

.rollout-notes-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  border-bottom-color: var(--line);
}

.rollout-notes-header small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-weight: 500;
}

.rollout-notes-container .modal-footer {
  border-top-color: var(--line);
}

.rollout-notes-body {
  max-height: min(560px, calc(100vh - 180px));
  overflow: auto;
}

.rollout-notes-section + .rollout-notes-section {
  margin-top: 18px;
}

.rollout-notes-section h5 {
  margin: 0 0 8px;
}

.rollout-notes-text {
  max-width: 100%;
  margin: 0;
  padding: 12px;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
  color: var(--text);
  background: var(--panel);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  font-family: inherit;
}

.form-row {
  margin-top: 20px;
}

.rollout-groups-field {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.rollout-groups-field .form-input {
  flex: 1 1 auto;
}

.form-hint {
  display: block;
  margin-top: 6px;
  color: var(--muted);
}

.checkbox-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--text);
  font-weight: 700;
}

.checkbox-label input {
  width: 15px;
  height: 15px;
  accent-color: var(--accent);
}

.checkbox-label span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.checkbox-label i {
  color: var(--accent);
}

.form-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 25px;
}

.form-actions i,
.finish i {
  margin-right: 10px;
}

.finish {
  display: flex;
  min-height: 200px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: var(--text);
}

/* Dashboards */

#dashboard-data,
#group-data,
#rollout-data {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

#dashboard-data > .container,
#group-data > .container,
#rollout-data > .container {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-height: 0;
  overflow: auto;
}

#dashboard-data > .container > .sections {
  display: grid;
  min-height: 100%;
  place-items: center;
  padding: 24px;
}

.audit-card {
  display: flex;
  flex-direction: column;
  gap: 14px;
  width: min(420px, 100%);
  padding: 26px;
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.audit-card h3,
.audit-card h4 {
  margin: 0;
}

.audit-card h3 {
  font-size: 1.2rem;
  font-weight: 700;
}

.audit-card h4 {
  color: var(--muted);
  font-size: 0.95rem;
  font-weight: 600;
}

.audit-buttons {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 4px;
}

.audit-note {
  color: var(--muted);
  font-size: 0.82rem;
}

.loader {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  min-height: 320px;
  color: var(--muted);
}

.loader sl-spinner {
  font-size: 3rem;
}

.audit-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 16px 16px 0;
  padding: 14px 16px;
  background: var(--panel-2);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
}

.audit-toolbar h3 {
  margin: 0;
  font-size: 1rem;
}

.group-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 16px 16px 0;
  padding: 14px 16px;
  background: var(--panel-2);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
}

.group-toolbar h3 {
  margin: 0;
  font-size: 1rem;
}

.group-toolbar small {
  color: var(--muted);
}

.audit-row-action,
.audit-open-terminal {
  color: var(--accent-strong);
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  margin-right: 4px;
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 0;
  font: inherit;
  cursor: pointer;
  text-decoration: none;
}

.audit-row-action:hover,
.audit-open-terminal:hover {
  color: var(--text);
}

.audit-toolbar small {
  color: var(--muted);
}

.audit-runner,
.audit-running {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 10px;
}

.audit-runner sl-input {
  width: 220px;
}

.audit-running {
  color: var(--muted);
}

.terminal-ws-banner {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  color: var(--text);
  background: var(--warning-soft);
  border-top: 1px solid var(--line-soft);
  border-bottom: 1px solid var(--line-soft);
}

.terminal-ws-banner.disconnected,
.terminal-ws-banner.expired {
  background: rgba(239, 107, 115, 0.14);
}

.terminal-ws-banner span {
  flex: 1 1 auto;
}

.terminal-continuation-banner {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  color: var(--text);
  background: rgba(250, 204, 21, 0.12);
  border-top: 1px solid var(--line-soft);
  border-bottom: 1px solid var(--line-soft);
}

.terminal-continuation-banner span {
  flex: 1 1 auto;
}

.ship-system-view {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 10px;
  padding: 14px 16px 0;
}

.ship-system-card {
  padding: 10px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.ship-system-head {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}

.ship-system-title {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}

.ship-system-head small {
  color: var(--muted);
}

.ship-warning-badge {
  flex: 0 0 auto;
  padding: 1px 5px;
  border: 1px solid rgba(248, 113, 113, 0.35);
  border-radius: 4px;
  color: #fca5a5;
  font-size: 9px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
}

.ship-system-metric {
  display: grid;
  grid-template-columns: 36px 54px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  min-height: 28px;
  color: var(--muted);
  font-size: 0.78rem;
}

.ship-system-metric b {
  color: var(--text);
}

.ship-system-metric-low b {
  color: var(--success);
}

.ship-system-metric-medium b {
  color: var(--warning);
}

.ship-system-metric-high b {
  color: var(--danger);
}

.ship-system-metric-unknown b {
  color: var(--muted);
}

.ship-sparkline {
  width: 100%;
  height: 26px;
}

.ship-update-view {
  display: grid;
  gap: 10px;
  padding: 14px 16px 0;
}

.ship-update-control {
  display: grid;
  gap: 8px;
  padding: 10px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.ship-update-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.ship-update-actions label,
.ship-update-status small {
  color: var(--muted);
}

.ship-update-actions .form-select {
  width: 180px;
}

.ship-update-actions .form-input {
  width: min(360px, 38vw);
}

.ship-update-actions .form-select,
.ship-update-actions .form-input {
  min-height: 36px;
  padding-top: 7px;
  padding-bottom: 7px;
}

.ship-update-status {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 20px;
}

.ship-update-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 10px;
}

.ship-update-card {
  display: grid;
  gap: 8px;
  padding: 10px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.ship-update-card.fleet-update-running {
  border-color: rgba(251, 191, 36, 0.5);
}

.ship-update-card.fleet-update-paused {
  border-color: rgba(84, 214, 136, 0.45);
}

.ship-update-card.fleet-update-error {
  border-color: rgba(248, 113, 113, 0.55);
}

.ship-update-card.fleet-update-open {
  border-color: rgba(248, 113, 113, 0.32);
}

.ship-update-card.fleet-update-unknown {
  border-color: var(--line-soft);
}

.ship-update-head,
.ship-update-state {
  display: flex;
  justify-content: space-between;
  gap: 8px;
}

.ship-update-head strong {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: 6px;
}

.ship-update-head strong span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ship-update-seed-icon {
  flex: 0 0 auto;
  color: var(--warning);
}

.ship-update-head small,
.ship-update-state span {
  min-width: 0;
  overflow: hidden;
  color: var(--muted);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ship-update-state b {
  color: var(--accent);
  white-space: nowrap;
}

.fleet-update-running .ship-update-state b {
  color: var(--warning);
}

.fleet-update-paused .ship-update-state b {
  color: var(--success);
}

.fleet-update-unknown .ship-update-state b {
  color: var(--muted);
}

.fleet-update-error .ship-update-state b,
.fleet-update-open .ship-update-state b {
  color: var(--danger);
}

.ship-update-metrics {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 4px 8px;
  margin: 0;
  font-size: 0.86rem;
}

.ship-update-metrics dt {
  color: var(--muted);
}

.ship-update-metrics dd {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ship-quick-restore-view {
  display: grid;
  gap: 10px;
  padding: 14px 16px 0;
}

.ship-quick-restore-control {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px;
  padding: 10px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.ship-quick-restore-actions,
.ship-quick-restore-status {
  display: flex;
  align-items: center;
  gap: 8px;
}

.ship-quick-restore-status small {
  color: var(--muted);
}

.ship-quick-restore-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 10px;
}

.ship-quick-restore-card {
  display: grid;
  gap: 8px;
  padding: 10px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  background: var(--panel-2);
}

.ship-quick-restore-card.quick-restore-ok {
  border-color: rgba(84, 214, 136, 0.45);
}

.ship-quick-restore-card.quick-restore-warning {
  border-color: rgba(251, 191, 36, 0.5);
}

.ship-quick-restore-card.quick-restore-error {
  border-color: rgba(248, 113, 113, 0.55);
}

.ship-quick-restore-head,
.ship-quick-restore-state {
  display: flex;
  justify-content: space-between;
  gap: 8px;
}

.ship-quick-restore-head strong,
.ship-quick-restore-state b {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ship-quick-restore-head small,
.ship-quick-restore-state span {
  min-width: 0;
  overflow: hidden;
  color: var(--muted);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.quick-restore-ok .ship-quick-restore-state b {
  color: var(--success);
}

.quick-restore-warning .ship-quick-restore-state b {
  color: var(--warning);
}

.quick-restore-error .ship-quick-restore-state b {
  color: var(--danger);
}

.ship-quick-restore-metrics {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 4px 8px;
  margin: 0;
  font-size: 0.86rem;
}

.ship-quick-restore-metrics dt {
  color: var(--muted);
}

.ship-quick-restore-metrics dd {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ship-quick-restore-deleted {
  display: grid;
  gap: 3px;
  padding-top: 6px;
  border-top: 1px solid var(--line-soft);
}

.ship-quick-restore-deleted small {
  display: flex;
  gap: 6px;
  min-width: 0;
  color: var(--muted);
}

.ship-quick-restore-deleted span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ship-sparkline polyline {
  fill: none;
  stroke: var(--muted);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}

.ship-system-metric-low .ship-sparkline polyline {
  stroke: var(--success);
}

.ship-system-metric-medium .ship-sparkline polyline {
  stroke: var(--warning);
}

.ship-system-metric-high .ship-sparkline polyline {
  stroke: var(--danger);
}

.computers {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 12px;
  width: 100%;
  padding: 16px;
}

.computer {
  display: flex;
  min-height: 126px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 16px;
  background: var(--panel-2);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
}

.computer:hover {
  border-color: var(--accent);
  background: var(--panel-3);
  cursor: pointer;
}

.computer.audit-selected {
  border-color: var(--accent-strong);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 28%, transparent);
}

.computer-icon {
  color: var(--success);
  font-size: 58px;
  line-height: 1;
}

.computer-icon.medium {
  color: var(--warning);
}

.computer-icon.low {
  color: var(--danger);
}

.hostname {
  color: var(--text);
  font-weight: 700;
}

.computer .hostname {
  max-width: 100%;
  overflow: hidden;
  font-size: 0.76rem;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.audit-data {
  flex: 1 1 auto;
  margin: 0 16px 16px;
  padding: 18px;
  overflow: auto;
  background: var(--panel-2);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
}

#group-tab-data {
  overflow: visible;
  padding: 12px;
}

#group-data > .container {
  overflow: visible;
}

.rollout-page {
  min-height: 100%;
  padding: 18px;
}

.page-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line-soft);
}

.page-title h4 {
  margin: 0;
  color: var(--text);
  font-size: 1rem;
  font-weight: 700;
}

.rollout-nav {
  display: block;
  width: 100%;
  max-width: 980px;
  margin: 0 auto;
}

#rollout-data > .container > .steps {
  display: flex;
  min-height: 420px;
  align-items: flex-start;
  justify-content: center;
  overflow: auto;
  padding: 18px 0;
}

@media (max-width: 900px) {
  .manager-shell {
    grid-template-columns: 1fr;
  }

  #users-list,
  #dashboard {
    height: auto;
    max-height: none;
  }

  .audit-toolbar,
  .audit-runner,
  .audit-running {
    align-items: stretch;
    flex-direction: column;
  }

  .audit-summary-overview {
    grid-template-columns: 1fr;
  }

  .audit-detections-header {
    flex-direction: column;
  }

  .audit-detections-threats {
    justify-content: flex-start;
  }

  .audit-detection-row {
    grid-template-columns: 1fr;
    align-items: flex-start;
  }

  .audit-detection-meta {
    justify-content: flex-start;
  }

  .audit-runner sl-input {
    width: 100%;
  }

  .rollout-form-grid {
    grid-template-columns: 1fr;
  }

  .commandbar-layout {
    align-items: stretch;
    flex-direction: column;
  }

  .commandbar-primary,
  .upload-controls {
    flex-wrap: wrap;
  }

  .support-helper-form {
    align-items: stretch;
    flex-direction: column;
  }

  .support-helper-form .form-input {
    min-width: 100%;
  }

  .support-helper-preview-label,
  .support-helper-preview-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .support-avatar-trigger {
    width: 100%;
    justify-content: center;
  }

  .command-dropdown,
  .access-key-entry {
    width: 100%;
  }

}
