/*
 * AO Customer Portal additions.
 * The base visual system is the existing AO Fabric Control Center stylesheet.
 * This file contains only portal-specific, account-safe components and does not
 * redefine the FCC shell, cards, navigation, tables, modals, or color system.
 */

.portal-brand-panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 304px;
  padding: 18px 14px 20px;
  color: inherit;
  text-decoration: none;
  background: linear-gradient(180deg, #071421 0%, #040c15 100%);
}

.portal-sidebar-emblem {
  display: block;
  width: 218px;
  height: 218px;
  object-fit: cover;
  object-position: 50% 58%;
  border-radius: 22px;
  transform: translate(6px, -10px) scale(1.06);
  transform-origin: center;
  filter: drop-shadow(0 18px 28px rgba(0, 0, 0, 0.34));
}

.portal-sidebar-wordmark {
  color: var(--blue, #58b2ff);
  font-size: 2rem;
  font-weight: 900;
  font-style: italic;
  letter-spacing: 0.015em;
  line-height: 1;
}

.portal-inline-state {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.portal-access-notice {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 22px;
  padding: 13px 14px;
  border: 1px solid rgba(255, 207, 101, 0.24);
  border-radius: 12px;
  color: var(--muted);
  background: rgba(255, 207, 101, 0.07);
  font-size: 0.82rem;
  line-height: 1.45;
}

.portal-access-notice-danger {
  border-color: rgba(255, 106, 129, 0.28);
  background: rgba(255, 106, 129, 0.08);
}

.portal-access-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 9px;
  margin-top: 18px;
}

.portal-access-button {
  width: 100%;
  min-height: 48px;
  text-decoration: none;
}

.nav-item[hidden] {
  display: none !important;
}

/* Keep the customer navigation compact and scannable. Descriptive product
 * language belongs in page content, not as a second line under every link. */
.sidebar .nav-subtitle {
  display: none;
}

.sidebar .nav-item {
  min-height: 42px;
}

.sidebar .nav-item,
.sidebar .nav-item:hover,
.sidebar .nav-item:focus,
.sidebar .nav-item .nav-title {
  text-decoration: none !important;
}

.sidebar .nav-icon svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Product sub-navigation is a compact horizontal control, never a set of
 * full-height columns when the page body is waiting or empty. */
.main-content > .tabs,
.page-host > .tabs,
.page-stack > .tabs {
  align-self: start;
  min-height: 0;
}

.tabs .tab-button {
  align-self: center;
  min-height: 38px;
  height: auto;
}

.portal-page-note {
  margin: 0;
  color: var(--muted-2);
  font-size: 0.73rem;
  line-height: 1.45;
}

.portal-service-title {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.portal-service-symbol {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border: 1px solid rgba(124, 230, 196, 0.24);
  border-radius: 10px;
  color: var(--cyan);
  background: rgba(124, 230, 196, 0.07);
  font-size: 0.66rem;
  font-weight: 900;
}

.portal-table-form {
  margin: 0;
}

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

.portal-detail-item {
  min-width: 0;
  padding: 12px;
  border: 1px solid rgba(88, 178, 255, 0.12);
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.025);
}

.portal-detail-label {
  display: block;
  color: var(--muted-2);
  font-size: 0.67rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.portal-detail-value {
  display: block;
  margin-top: 6px;
  color: var(--ink);
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.portal-permission-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}

.portal-permission {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border: 1px solid rgba(88, 178, 255, 0.16);
  border-radius: 999px;
  color: var(--muted);
  background: rgba(88, 178, 255, 0.06);
  font-family: "Cascadia Code", "Consolas", monospace;
  font-size: 0.68rem;
}

.portal-modal-form {
  display: grid;
  gap: 16px;
}

.portal-modal-form label {
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 700;
}

.portal-modal-form textarea {
  width: 100%;
  min-height: 112px;
  resize: vertical;
  padding: 11px 12px;
  border: 1px solid rgba(88, 178, 255, 0.16);
  border-radius: 10px;
  color: var(--ink);
  background: rgba(4, 10, 18, 0.76);
  font: inherit;
  line-height: 1.5;
}

.portal-modal-form textarea:focus,
.portal-modal-form input:focus,
.portal-modal-form select:focus {
  outline: 2px solid rgba(88, 178, 255, 0.28);
  outline-offset: 1px;
  border-color: rgba(88, 178, 255, 0.44);
}

.portal-confirm-summary {
  display: grid;
  gap: 8px;
  padding: 14px;
  border: 1px solid rgba(88, 178, 255, 0.14);
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.025);
}

.portal-confirm-summary strong {
  color: var(--ink-strong);
}

.portal-confirm-summary span {
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.45;
}

.portal-command-reason {
  display: block;
  max-width: 440px;
  color: var(--muted-2);
  font-size: 0.72rem;
  line-height: 1.4;
}

.portal-state-line {
  display: flex;
  align-items: center;
  gap: 8px;
}

.portal-card-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

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

.portal-controller-card {
  display: grid;
  gap: 14px;
  min-width: 0;
  padding: 17px;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: linear-gradient(145deg, rgba(88, 178, 255, 0.055), transparent 58%), var(--panel);
  box-shadow: var(--shadow-small);
}

.portal-controller-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.portal-controller-card h3 {
  margin: 0;
  color: var(--ink-strong);
  font-size: 1rem;
}

.portal-controller-card p {
  margin: 5px 0 0;
  color: var(--muted-2);
  font-size: 0.72rem;
}

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

.portal-compact-fact {
  min-width: 0;
  padding: 10px;
  border: 1px solid rgba(88, 178, 255, 0.1);
  border-radius: 10px;
  background: rgba(3, 9, 17, 0.34);
}

.portal-compact-fact span,
.portal-compact-fact strong {
  display: block;
}

.portal-compact-fact span {
  color: var(--muted-2);
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.portal-compact-fact strong {
  overflow: hidden;
  margin-top: 5px;
  color: var(--ink);
  font-size: 0.78rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.portal-audit-detail {
  margin: 0;
  padding: 14px;
  overflow: auto;
  border: 1px solid rgba(88, 178, 255, 0.14);
  border-radius: var(--radius-md);
  color: var(--muted);
  background: rgba(3, 9, 17, 0.72);
  font-family: "Cascadia Code", "Consolas", monospace;
  font-size: 0.71rem;
  line-height: 1.55;
  white-space: pre-wrap;
  word-break: break-word;
}

.portal-empty-state {
  display: grid;
  justify-items: center;
  gap: 8px;
  padding: 42px 22px;
  color: var(--muted);
  text-align: center;
}

.portal-empty-state strong {
  color: var(--ink);
}

.portal-empty-state p {
  max-width: 600px;
  margin: 0;
  line-height: 1.5;
}

.portal-error-code {
  margin-top: 8px;
  color: var(--muted-2);
  font-family: "Cascadia Code", "Consolas", monospace;
  font-size: 0.68rem;
}

.portal-hidden {
  display: none !important;
}

.portal-action-busy {
  opacity: 0.66;
  cursor: progress !important;
}

.portal-account-email {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 1180px) {
  .portal-controller-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .portal-detail-grid,
  .portal-compact-facts {
    grid-template-columns: 1fr;
  }

  .portal-access-actions {
    grid-template-columns: 1fr;
  }

  .table-actions {
    justify-content: flex-start;
  }
}

.portal-auth-screen {
  min-height: 100vh;
}

.portal-auth-card {
  width: min(980px, calc(100vw - 32px));
}

.portal-auth-form {
  display: grid;
  gap: 16px;
  margin-top: 22px;
}

.portal-auth-form label {
  display: grid;
  gap: 8px;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
}

.portal-auth-form input {
  width: 100%;
  min-height: 48px;
  padding: 11px 13px;
  border: 1px solid rgba(88, 178, 255, 0.2);
  border-radius: 11px;
  color: var(--ink-strong);
  background: rgba(4, 10, 18, 0.84);
  font: inherit;
}

.portal-auth-form input:focus {
  outline: 2px solid rgba(88, 178, 255, 0.3);
  outline-offset: 1px;
  border-color: rgba(88, 178, 255, 0.5);
}

.portal-password-rules {
  margin: -4px 0 0;
  color: var(--muted-2);
  font-size: 0.72rem;
  line-height: 1.5;
}

.portal-inline-form {
  display: inline;
  margin: 0;
}

.portal-inline-form .text-button {
  border: 0;
  padding: 0;
  color: inherit;
  background: transparent;
  font: inherit;
  cursor: pointer;
}

.portal-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
  align-items: end;
}

.portal-form-grid label {
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
}

.dvm-wizard-steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.dvm-wizard-steps li {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 8px 10px;
  color: var(--muted);
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(6, 17, 31, 0.62);
  font-size: 0.76rem;
  font-weight: 700;
}

.dvm-wizard-steps li span {
  display: inline-grid;
  place-items: center;
  width: 21px;
  height: 21px;
  flex: 0 0 21px;
  border-radius: 999px;
  background: rgba(82, 163, 255, 0.15);
  color: var(--blue);
}

.dvm-wizard-steps li.is-current {
  color: var(--text);
  border-color: rgba(79, 209, 161, 0.5);
  background: rgba(79, 209, 161, 0.09);
}

.dvm-wizard-steps li.is-current span {
  background: var(--green);
  color: #04130e;
}

.portal-form-wide {
  grid-column: 1 / -1;
}

.dvm-workspace-nav {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding: 0 28px 14px;
  border-bottom: 1px solid rgba(88, 178, 255, 0.12);
  scrollbar-width: thin;
}

/* The FCC shell normally has two rows (topbar + page). AO-DVM adds its
 * workspace navigation as a third row, so declare that row explicitly. */
body[data-page^="dvm-"] .main-shell {
  grid-template-rows: auto auto minmax(0, 1fr);
}

.dvm-workspace-nav a {
  flex: 0 0 auto;
  padding: 8px 12px;
  border: 1px solid rgba(88, 178, 255, 0.14);
  border-radius: 999px;
  color: var(--muted);
  background: rgba(255, 255, 255, 0.025);
  font-size: 0.73rem;
  font-weight: 850;
  text-decoration: none;
}

.dvm-workspace-nav a:hover,
.dvm-workspace-nav a:focus-visible {
  color: var(--ink-strong);
  border-color: rgba(88, 178, 255, 0.42);
}

.dvm-workspace-nav a.is-active {
  color: var(--ink-strong);
  border-color: rgba(124, 230, 196, 0.42);
  background: rgba(124, 230, 196, 0.1);
  box-shadow: inset 0 0 0 1px rgba(124, 230, 196, 0.08);
}

.dvm-console-layout {
  display: grid;
  grid-template-columns: minmax(300px, 340px) minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

#dvmSelectionWorkspace {
  scroll-margin-top: 16px;
}

.dvm-object-workspace,
.dvm-object-workspace-empty {
  margin-bottom: 16px;
}

.dvm-object-workspace-empty {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 118px;
}

.dvm-object-workspace-empty > .dvm-tree-icon {
  width: 42px;
  height: 42px;
  flex-basis: 42px;
  transform: scale(1.45);
}

.dvm-object-workspace-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 20px;
}

.dvm-object-primary-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  max-width: min(100%, 780px);
}

.dvm-object-title {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}

.dvm-object-title > .dvm-tree-icon {
  width: 34px;
  height: 34px;
  flex-basis: 34px;
  transform: scale(1.35);
}

.dvm-object-title h2 {
  margin: 3px 0 5px;
  overflow-wrap: anywhere;
}

.dvm-object-state {
  display: flex;
}

.dvm-object-tabs {
  display: flex;
  gap: 4px;
  padding: 0 14px;
  overflow-x: auto;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: rgba(3, 12, 23, 0.38);
}

.dvm-object-tabs button {
  flex: 0 0 auto;
  min-height: 43px;
  padding: 0 12px;
  border: 0;
  border-bottom: 2px solid transparent;
  color: var(--muted);
  background: transparent;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 800;
}

.dvm-object-tabs button:hover,
.dvm-object-tabs button:focus-visible {
  color: var(--ink-strong);
  outline: none;
}

.dvm-object-tabs button.is-active {
  color: #a8efd8;
  border-bottom-color: #61d9b7;
}

.dvm-object-workspace-body {
  display: grid;
  grid-template-columns: minmax(190px, 0.8fr) minmax(0, 2.2fr);
  align-items: start;
  gap: 20px;
  padding: 20px;
}

.dvm-object-workspace-body h3 {
  margin: 4px 0 7px;
}

.dvm-object-workspace-content {
  display: grid;
  min-width: 0;
  gap: 16px;
}

.dvm-object-telemetry {
  display: grid;
  gap: 10px;
  padding-top: 2px;
}

.dvm-object-telemetry-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}

.dvm-object-telemetry-heading strong {
  color: #7ce6c4;
  font-size: 0.72rem;
}

.dvm-object-telemetry-empty {
  display: grid;
  gap: 5px;
  padding: 13px 14px;
  border: 1px dashed rgba(105, 179, 235, 0.25);
  border-radius: 10px;
  background: rgba(5, 18, 32, 0.34);
}

.dvm-object-telemetry-empty strong {
  color: var(--ink-strong);
  font-size: 0.78rem;
}

.dvm-object-telemetry-empty span {
  color: var(--muted-2);
  font-size: 0.7rem;
  line-height: 1.45;
}

.dvm-object-session-panel {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 18px;
  border: 1px solid rgba(124, 230, 196, 0.24);
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(39, 119, 105, 0.13), rgba(5, 18, 32, 0.44));
}

.dvm-object-session-panel > .dvm-tree-icon {
  width: 28px;
  height: 28px;
  flex-basis: 28px;
  transform: scale(1.15);
}

.dvm-object-session-panel strong {
  color: var(--ink-strong);
}

.dvm-object-session-panel p {
  max-width: 720px;
  margin: 6px 0 13px;
  color: var(--muted);
  font-size: 0.74rem;
  line-height: 1.55;
}

.dvm-deployment-studio {
  display: grid;
  gap: 16px;
  padding: 18px;
  border: 1px solid rgba(105, 179, 235, 0.24);
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(31, 93, 142, 0.13), rgba(5, 18, 32, 0.46));
}

.dvm-deployment-studio h3 {
  margin: 4px 0 7px;
}

.dvm-deployment-studio p {
  max-width: 760px;
  margin: 0;
  color: var(--muted);
  font-size: 0.74rem;
  line-height: 1.55;
}

.dvm-deployment-studio-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.dvm-inventory-tree {
  position: sticky;
  top: 16px;
  display: flex;
  flex-direction: column;
  height: calc(100vh - 32px);
  min-height: 760px;
  max-height: none;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--panel);
  box-shadow: var(--shadow-soft);
}

.dvm-tree-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  padding: 16px;
  border-bottom: 1px solid var(--line);
}

.dvm-tree-heading h3 {
  margin: 4px 0 0;
}

.dvm-tree-heading-actions {
  display: flex;
  align-items: center;
  gap: 7px;
}

.dvm-tree-add {
  display: grid;
  place-items: center;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  border: 1px solid rgba(88, 178, 255, 0.36);
  border-radius: 8px;
  color: #8fd6ff;
  background: rgba(88, 178, 255, 0.1);
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
}

.dvm-tree-add:hover,
.dvm-tree-add:focus-visible {
  border-color: rgba(124, 230, 196, 0.56);
  color: #7ce6c4;
  background: rgba(124, 230, 196, 0.1);
  outline: none;
}

.dvm-tree-scroll {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color: rgba(88, 178, 255, 0.38) transparent;
}

.dvm-fcc-inventory-tree,
.dvm-fcc-inventory-tree ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.dvm-fcc-inventory-tree {
  padding: 8px 8px 14px;
}

.dvm-fcc-inventory-tree ul {
  position: relative;
  margin-left: 17px;
  padding-left: 13px;
  border-left: 1px solid rgba(88, 178, 255, 0.24);
}

.dvm-inventory-item {
  position: relative;
}

.dvm-fcc-inventory-tree ul > .dvm-inventory-item::before,
.dvm-fcc-inventory-tree ul > .dvm-inventory-empty::before {
  position: absolute;
  top: 17px;
  left: -13px;
  width: 11px;
  border-top: 1px solid rgba(88, 178, 255, 0.24);
  content: "";
}

.dvm-inventory-branch > summary::-webkit-details-marker {
  display: none;
}

.dvm-inventory-node {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 34px;
  gap: 10px;
  padding: 5px 8px 5px 22px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: var(--ink-strong);
  font-size: 0.74rem;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.dvm-inventory-branch > summary::before {
  position: absolute;
  left: 7px;
  content: "›";
  color: var(--muted-2);
  font-size: 1rem;
  line-height: 1;
  transform: rotate(0deg);
}

.dvm-inventory-branch[open] > summary::before {
  transform: rotate(90deg);
}

.dvm-inventory-node:hover,
.dvm-inventory-node:focus-visible {
  border-color: rgba(88, 178, 255, 0.22);
  color: var(--ink-strong);
  background: rgba(88, 178, 255, 0.08);
  outline: none;
}

.dvm-inventory-root > .dvm-inventory-branch > summary {
  color: var(--ink-strong);
  font-size: 0.76rem;
}

.dvm-datacenter-node > .dvm-inventory-branch > summary {
  color: #8fd6ff;
}

.dvm-inventory-leaf {
  padding-left: 8px;
  color: var(--muted);
  font-weight: 720;
}

.dvm-inventory-node b {
  flex: 0 0 auto;
  color: var(--muted-2);
  font-size: 0.68rem;
  font-weight: 800;
}

.dvm-inventory-node-end {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.dvm-tree-menu {
  display: grid;
  place-items: center;
  width: 25px;
  height: 25px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 6px;
  color: var(--muted-2);
  background: transparent;
  font: inherit;
  font-size: 0.7rem;
  letter-spacing: -0.08em;
  cursor: pointer;
}

.dvm-tree-menu:hover,
.dvm-tree-menu:focus-visible {
  border-color: rgba(88, 178, 255, 0.28);
  color: var(--ink-strong);
  background: rgba(88, 178, 255, 0.1);
  outline: none;
}

.dvm-context-menu {
  position: fixed;
  z-index: 1400;
  width: min(270px, calc(100vw - 16px));
  max-height: calc(100vh - 16px);
  overflow-y: auto;
  padding: 7px;
  border: 1px solid rgba(105, 179, 235, 0.3);
  border-radius: 9px;
  background: #071321;
  box-shadow: 0 18px 46px rgba(0, 0, 0, 0.52);
}

.dvm-context-title {
  padding: 7px 10px 8px;
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.dvm-context-item {
  display: block;
  width: 100%;
  padding: 8px 10px;
  border: 0;
  border-radius: 6px;
  color: var(--ink-strong);
  background: transparent;
  text-align: left;
  font: inherit;
  font-size: 0.77rem;
  cursor: pointer;
}

.dvm-context-item:hover:not(:disabled),
.dvm-context-item:focus-visible {
  background: rgba(67, 160, 224, 0.15);
  outline: none;
}
.dvm-context-item.danger{color:#ffb4bd}.dvm-context-item.danger:hover:not(:disabled),.dvm-context-item.danger:focus-visible{border-color:rgba(255,95,116,.52);background:rgba(255,95,116,.12);color:#ffd8dd}

.dvm-context-item:disabled {
  color: rgba(157, 176, 198, 0.46);
  cursor: not-allowed;
}

.dvm-context-separator {
  height: 1px;
  margin: 6px 4px;
  background: rgba(105, 179, 235, 0.16);
}

.dvm-context-note {
  margin: 6px 4px 2px;
  padding: 7px 8px;
  border-radius: 6px;
  color: var(--muted);
  background: rgba(255, 188, 71, 0.07);
  font-size: 0.65rem;
  line-height: 1.4;
}

.dvm-deployment-catalog {
  display: grid;
  gap: 16px;
}

.dvm-deployment-catalog-intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.dvm-deployment-catalog-intro p {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

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

.dvm-deployment-choice {
  position: relative;
  display: block;
  min-width: 0;
  cursor: pointer;
}

.dvm-deployment-choice input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.dvm-deployment-choice > span {
  display: grid;
  gap: 6px;
  min-height: 92px;
  padding: 14px;
  border: 1px solid rgba(105, 179, 235, 0.2);
  border-radius: 10px;
  background: rgba(5, 18, 32, 0.48);
  transition: border-color 120ms ease, background 120ms ease, box-shadow 120ms ease;
}

.dvm-deployment-choice strong {
  color: var(--ink-strong);
  font-size: 0.86rem;
}

.dvm-deployment-choice small {
  color: var(--muted);
  font-size: 0.72rem;
  line-height: 1.45;
}

.dvm-deployment-choice input:checked + span {
  border-color: rgba(88, 178, 255, 0.72);
  background: rgba(30, 117, 177, 0.16);
  box-shadow: inset 3px 0 0 #58b2ff;
}

.dvm-deployment-choice input:focus-visible + span {
  outline: 2px solid rgba(124, 230, 196, 0.78);
  outline-offset: 2px;
}

.form-help {
  color: var(--muted-2);
  font-size: 0.7rem;
  line-height: 1.45;
}

@media (max-width: 720px) {
  .dvm-deployment-choice-grid {
    grid-template-columns: 1fr;
  }

  .dvm-deployment-catalog-intro {
    align-items: flex-start;
    flex-direction: column;
  }
}

.dvm-wizard-leaf span:last-child,
.dvm-catalog-leaf span:last-child {
  color: #8fd6ff;
}

.dvm-catalog-leaf span:last-child {
  color: #7ce6c4;
}

.dvm-summary-charts {
  overflow: hidden;
}

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

.dvm-util-card {
  padding: 14px;
  border: 1px solid rgba(105, 179, 235, 0.16);
  border-radius: 10px;
  background: rgba(5, 18, 32, 0.44);
}

.dvm-util-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.dvm-util-heading strong {
  color: var(--ink-strong);
  font-size: 0.76rem;
  text-align: right;
}

.dvm-util-bar {
  height: 11px;
  margin: 11px 0 8px;
  overflow: hidden;
  border: 1px solid rgba(105, 179, 235, 0.22);
  border-radius: 999px;
  background: rgba(3, 12, 22, 0.82);
}

.dvm-util-bar span {
  display: block;
  min-width: 0;
  height: 100%;
  border-radius: inherit;
}

.dvm-util-bar .cyan { background: #49c9e8; }
.dvm-util-bar .violet { background: #9b7cf4; }
.dvm-util-bar .green { background: #58d19b; }
.dvm-util-bar .gold { background: #e5bd56; }

.dvm-util-card p {
  margin: 0;
  color: var(--muted-2);
  font-size: 0.68rem;
}

.dvm-inventory-empty {
  position: relative;
  min-height: 32px;
  padding: 8px 8px;
  color: var(--muted-2);
  font-size: 0.68rem;
  font-style: italic;
}

.dvm-datacenter-required {
  display: grid;
  justify-items: start;
  gap: 8px;
  margin: 4px;
  padding: 14px 12px;
  border: 1px dashed rgba(88, 178, 255, 0.25);
  border-radius: 10px;
  color: var(--muted);
  font-size: 0.7rem;
  line-height: 1.5;
}

.dvm-datacenter-required strong {
  color: var(--ink-strong);
  font-size: 0.76rem;
}

.dvm-datacenter-required .button {
  margin-top: 3px;
}

.dvm-tree-node-copy {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  gap: 9px;
}

.dvm-tree-node-copy > span:last-child {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dvm-tree-icon {
  position: relative;
  display: inline-block;
  flex: 0 0 17px;
  width: 17px;
  height: 17px;
  border: 1px solid color-mix(in srgb,currentColor 48%,transparent);
  border-radius: 3px;
  color: #78bff0;
  background: color-mix(in srgb,currentColor 8%,#07131f);
  box-shadow: none;
}

.dvm-tree-icon::before,.dvm-tree-icon::after{content:"";position:absolute;pointer-events:none}
.dvm-tree-icon-datacenter{color:#69b9e8}.dvm-tree-icon-datacenter::before{inset:3px 4px;border:1px solid currentColor;border-radius:1px;background:repeating-linear-gradient(to bottom,transparent 0 2px,currentColor 2px 3px)}.dvm-tree-icon-datacenter::after{right:5px;top:5px;width:1px;height:1px;background:#96e5c3;box-shadow:0 3px #96e5c3,0 6px #96e5c3}
.dvm-tree-icon-cluster{color:#9e9bea}.dvm-tree-icon-cluster::before{inset:3px;background:radial-gradient(circle at 50% 8%,currentColor 0 1.2px,transparent 1.5px),radial-gradient(circle at 10% 88%,currentColor 0 1.2px,transparent 1.5px),radial-gradient(circle at 90% 88%,currentColor 0 1.2px,transparent 1.5px)}.dvm-tree-icon-cluster::after{left:5px;top:6px;width:6px;height:5px;border-left:1px solid currentColor;border-right:1px solid currentColor}
.dvm-tree-icon-host{color:#70cdb1}.dvm-tree-icon-host::before{inset:3px;border:1px solid currentColor;border-radius:1px;background:repeating-linear-gradient(to bottom,transparent 0 2px,currentColor 2px 3px)}.dvm-tree-icon-host::after{right:4px;bottom:4px;width:1px;height:1px;background:#a6d98b}
.dvm-tree-icon-vm{color:#70b8ee}.dvm-tree-icon-vm::before{left:3px;top:3px;width:9px;height:6px;border:1px solid currentColor;border-radius:1px}.dvm-tree-icon-vm::after{left:6px;bottom:3px;width:5px;height:1px;background:currentColor;box-shadow:1px -2px 0 -0.2px currentColor}
.dvm-tree-icon-workstation{color:#6fc7b3}.dvm-tree-icon-workstation::before{left:3px;top:3px;width:9px;height:6px;border:1px solid currentColor;border-radius:1px;background:radial-gradient(circle at 50% 40%,currentColor 0 1px,transparent 1.2px)}.dvm-tree-icon-workstation::after{left:6px;bottom:3px;width:5px;height:1px;background:currentColor}
.dvm-tree-icon-store{color:#d6b76c;border-radius:4px}.dvm-tree-icon-store::before{inset:3px 4px;border:1px solid currentColor;border-radius:50%/20%}.dvm-tree-icon-store::after{left:5px;right:5px;top:7px;height:1px;background:currentColor;box-shadow:0 3px currentColor}
.dvm-tree-icon-snapshot{color:#cfae68;border-radius:50%}.dvm-tree-icon-snapshot::before{inset:3px;border:1px solid currentColor;border-radius:50%}.dvm-tree-icon-snapshot::after{left:8px;top:4px;width:1px;height:5px;background:currentColor;transform-origin:bottom;transform:rotate(-35deg)}
.dvm-tree-icon-image{color:#c7a967}.dvm-tree-icon-image::before{left:3px;right:3px;top:4px;height:6px;border:1px solid currentColor;border-radius:1px}.dvm-tree-icon-image::after{left:5px;right:2px;top:7px;height:6px;border:1px solid currentColor;border-radius:1px}
.dvm-tree-icon-network{color:#69b4e5;border-radius:50%}.dvm-tree-icon-network::before{inset:3px;background:radial-gradient(circle at 50% 8%,currentColor 0 1.2px,transparent 1.5px),radial-gradient(circle at 10% 88%,currentColor 0 1.2px,transparent 1.5px),radial-gradient(circle at 90% 88%,currentColor 0 1.2px,transparent 1.5px)}.dvm-tree-icon-network::after{left:5px;top:6px;width:6px;height:5px;border-left:1px solid currentColor;border-right:1px solid currentColor}
.dvm-tree-icon-container{color:#a990df}.dvm-tree-icon-container::before{inset:3px;border:1px solid currentColor;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}.dvm-tree-icon-container::after{left:8px;top:4px;width:1px;height:9px;background:currentColor;transform:rotate(30deg);opacity:.75}
.dvm-tree-icon-docker{color:#66b8df}.dvm-tree-icon-docker::before{left:3px;top:5px;width:2px;height:2px;background:currentColor;box-shadow:3px 0 currentColor,6px 0 currentColor,3px -3px currentColor,6px -3px currentColor}.dvm-tree-icon-docker::after{left:3px;bottom:3px;width:10px;height:3px;border:1px solid currentColor;border-radius:1px 1px 4px 4px}
.dvm-tree-icon-swarm{color:#6cc5bb;border-radius:50%}.dvm-tree-icon-swarm::before{inset:2px;background:radial-gradient(circle at 50% 50%,currentColor 0 1.5px,transparent 1.8px),radial-gradient(circle at 14% 22%,currentColor 0 1px,transparent 1.3px),radial-gradient(circle at 86% 22%,currentColor 0 1px,transparent 1.3px),radial-gradient(circle at 18% 84%,currentColor 0 1px,transparent 1.3px),radial-gradient(circle at 82% 84%,currentColor 0 1px,transparent 1.3px)}.dvm-tree-icon-swarm::after{inset:5px;border:1px solid currentColor;transform:rotate(45deg)}
.dvm-tree-icon-kubernetes{color:#829fe5;border-radius:50%}.dvm-tree-icon-kubernetes::before{inset:3px;border:1px solid currentColor;border-radius:50%}.dvm-tree-icon-kubernetes::after{left:8px;top:3px;width:1px;height:10px;background:currentColor;transform:rotate(45deg);opacity:.85}
.dvm-tree-icon-conversion{color:#be92e8}.dvm-tree-icon-conversion::before{left:3px;top:4px;width:7px;height:5px;border:1px solid currentColor;border-radius:1px}.dvm-tree-icon-conversion::after{right:2px;bottom:3px;width:7px;height:5px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:skew(-18deg)}
.dvm-tree-icon-task{color:#74c7d9}.dvm-tree-icon-task::before{left:4px;top:3px;width:8px;height:10px;border:1px solid currentColor;border-radius:1px;background:linear-gradient(currentColor,currentColor) 2px 3px/4px 1px no-repeat,linear-gradient(currentColor,currentColor) 2px 6px/4px 1px no-repeat}.dvm-tree-icon-task::after{left:6px;top:1px;width:4px;height:3px;border:1px solid currentColor;border-radius:2px}
.dvm-tree-icon-event{color:#e0a85e;border-radius:50%}.dvm-tree-icon-event::before{inset:3px;border:1px solid currentColor;border-radius:50%}.dvm-tree-icon-event::after{left:7px;top:4px;width:2px;height:6px;background:currentColor;box-shadow:0 8px 0 -0.3px currentColor}
.dvm-tree-icon-workstation-pool{color:#6fc7b3}.dvm-tree-icon-workstation-pool::before{left:3px;top:3px;width:7px;height:5px;border:1px solid currentColor;border-radius:1px;box-shadow:3px 3px 0 -1px #07131f,3px 3px 0 0 currentColor}.dvm-tree-icon-workstation-pool::after{left:5px;bottom:2px;width:7px;height:1px;background:currentColor}
.dvm-tree-icon-template{color:#d0ad69}.dvm-tree-icon-template::before{left:4px;top:3px;width:7px;height:10px;border:1px solid currentColor;border-radius:1px;background:linear-gradient(135deg,transparent 0 4px,currentColor 4px 5px,transparent 5px)}.dvm-tree-icon-template::after{left:6px;top:8px;width:4px;height:1px;background:currentColor;box-shadow:0 2px currentColor}
.dvm-tree-icon-docker-node{color:#65b9df}.dvm-tree-icon-docker-node::before{left:3px;right:3px;top:3px;height:4px;border:1px solid currentColor;border-radius:1px;box-shadow:0 6px 0 -1px #07131f,0 6px 0 0 currentColor}.dvm-tree-icon-docker-node::after{right:5px;top:5px;width:1px;height:1px;background:#96e5c3;box-shadow:0 6px #96e5c3}
.dvm-tree-icon-docker-service{color:#68c4d9}.dvm-tree-icon-docker-service::before{left:3px;top:4px;width:4px;height:4px;border:1px solid currentColor;box-shadow:6px 0 0 -1px #07131f,6px 0 0 0 currentColor,3px 6px 0 -1px #07131f,3px 6px 0 0 currentColor}.dvm-tree-icon-docker-service::after{left:7px;top:7px;width:3px;height:3px;border-left:1px solid currentColor;border-top:1px solid currentColor;transform:rotate(45deg)}
.dvm-tree-icon-kubernetes-node{color:#839fe6}.dvm-tree-icon-kubernetes-node::before{inset:3px;border:1px solid currentColor;transform:rotate(45deg);border-radius:2px}.dvm-tree-icon-kubernetes-node::after{left:7px;top:7px;width:2px;height:2px;background:#a9c4ff;border-radius:50%}
.dvm-tree-icon-kubernetes-namespace{color:#8eaceb}.dvm-tree-icon-kubernetes-namespace::before{left:3px;right:3px;top:4px;height:8px;border:1px solid currentColor;border-radius:2px}.dvm-tree-icon-kubernetes-namespace::after{left:6px;top:2px;width:5px;height:3px;border:1px solid currentColor;border-bottom:0;border-radius:2px 2px 0 0}
.dvm-tree-icon-kubernetes-workload{color:#9b91e6}.dvm-tree-icon-kubernetes-workload::before{inset:3px;border:1px solid currentColor;clip-path:polygon(50% 0,94% 25%,94% 75%,50% 100%,6% 75%,6% 25%)}.dvm-tree-icon-kubernetes-workload::after{left:6px;top:6px;width:4px;height:4px;border:1px solid currentColor;border-radius:50%}

.dvm-console-content {
  display: grid;
  gap: 16px;
  min-width: 0;
}

.dvm-cell-layers {
  display: grid;
  grid-template-columns: repeat(5, minmax(120px, 1fr));
  gap: 8px;
}

.dvm-cell-layers span {
  display: grid;
  place-items: center;
  min-height: 58px;
  padding: 10px;
  border: 1px solid rgba(124, 230, 196, 0.18);
  border-radius: 12px;
  color: var(--ink-strong);
  background: linear-gradient(145deg, rgba(124, 230, 196, 0.08), rgba(88, 178, 255, 0.035));
  font-size: 0.72rem;
  font-weight: 850;
  text-align: center;
}

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

.dvm-orchestration-grid article {
  padding: 16px;
  border: 1px solid rgba(88, 178, 255, 0.16);
  border-radius: 12px;
  background: rgba(88, 178, 255, 0.035);
}

.dvm-orchestration-grid h4 {
  margin: 0 0 7px;
  color: var(--ink-strong);
}

.dvm-orchestration-grid p {
  margin: 0;
  color: var(--muted);
  font-size: 0.74rem;
  line-height: 1.6;
}

.dvm-orchestration-grid dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
  margin: 14px 0 0;
}

.dvm-orchestration-grid dl div {
  padding: 8px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.025);
}

.dvm-orchestration-grid dt {
  color: var(--muted-2);
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.dvm-orchestration-grid dd {
  margin: 4px 0 0;
  color: var(--ink-strong);
  font-size: 1rem;
  font-weight: 900;
}

@media (max-width: 1080px) {
  .dvm-console-layout {
    grid-template-columns: 1fr;
  }

  .dvm-inventory-tree {
    position: static;
    height: auto;
    min-height: 0;
  }

  .dvm-object-workspace-header,
  .dvm-object-workspace-body {
    grid-template-columns: 1fr;
  }

  .dvm-object-workspace-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .dvm-object-primary-actions {
    justify-content: flex-start;
    max-width: 100%;
  }

  .dvm-cell-layers {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dvm-util-grid {
    grid-template-columns: 1fr;
  }

  .dvm-orchestration-grid {
    grid-template-columns: 1fr;
  }
}

.product-line-cell {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.product-line-mark {
  display: inline-grid;
  place-items: center;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  border: 1px solid currentColor;
  border-radius: 10px;
  color: var(--blue);
  background: rgba(88, 178, 255, 0.09);
  box-shadow: inset 0 0 18px rgba(88, 178, 255, 0.08);
  font-size: 0.66rem;
  font-weight: 950;
  letter-spacing: 0.05em;
}

.product-line-svram { color: #b69aff; background: rgba(182, 154, 255, 0.1); }
.product-line-dvm { color: #7ce6c4; background: rgba(124, 230, 196, 0.1); }
.product-line-dns { color: #ff8fb8; background: rgba(255, 143, 184, 0.1); }
.product-line-ssl { color: #88f0ff; background: rgba(136, 240, 255, 0.1); }
.product-line-cdstore { color: #9fc5ff; background: rgba(159, 197, 255, 0.1); }
.product-line-mesh { color: #ffd36f; background: rgba(255, 211, 111, 0.1); }
.product-line-ram { color: #69cfff; background: rgba(105, 207, 255, 0.1); }
.product-line-net { color: #ff9b77; background: rgba(255, 155, 119, 0.1); }

.portal-checkbox-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  align-items: center;
}

.portal-checkbox {
  display: inline-flex !important;
  grid-template-columns: auto !important;
  align-items: center;
  gap: 8px !important;
  color: var(--ink-strong) !important;
  padding: 9px 11px;
  border: 1px solid rgba(88, 178, 255, 0.16);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.035);
}

.portal-checkbox input {
  width: auto;
  min-height: auto;
}

.dvm-profile-action-catalog {
  display: grid;
  gap: 10px;
}

.dvm-profile-action-search {
  display: grid;
  gap: 6px;
  color: var(--ink-muted);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.dvm-profile-action-group {
  border: 1px solid rgba(88, 178, 255, 0.16);
  border-radius: 12px;
  background: rgba(4, 14, 25, 0.46);
  overflow: hidden;
}

.dvm-profile-action-group[hidden] {
  display: none;
}

.dvm-profile-action-group summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 13px;
  color: var(--ink-strong);
  font-weight: 900;
  cursor: pointer;
}

.dvm-profile-action-group summary small {
  color: var(--ink-muted);
  font-weight: 700;
}

.dvm-profile-action-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 8px;
  padding: 0 11px 11px;
}

.dvm-profile-action {
  border-radius: 10px;
  align-items: flex-start;
}

.dvm-profile-action[hidden] {
  display: none !important;
}

.dvm-profile-action span {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.dvm-profile-action small {
  color: var(--ink-muted);
  overflow-wrap: anywhere;
}

/* 1.3.44: customer-facing login/recovery polish. Keep the FCC dark shell, remove
   internal architecture language, and make the unauthenticated experience look
   like a finished product instead of a recovery/developer screen. */
.portal-auth-card-polished {
  grid-template-columns: minmax(300px, 0.92fr) minmax(360px, 1.08fr);
  width: min(1040px, calc(100vw - 36px));
  border-color: rgba(124, 230, 196, 0.22);
  background:
    linear-gradient(145deg, rgba(10, 23, 38, 0.98), rgba(4, 10, 18, 0.98)),
    var(--panel-2);
}

.portal-auth-brand {
  align-content: center;
  justify-items: center;
  gap: 24px;
  min-height: 560px;
  padding: 54px 46px;
  background:
    radial-gradient(circle at 30% 20%, rgba(124, 230, 196, 0.11), transparent 30%),
    radial-gradient(circle at 80% 85%, rgba(88, 178, 255, 0.11), transparent 32%),
    linear-gradient(155deg, rgba(4, 15, 27, 0.99), rgba(2, 6, 13, 0.99));
}

.portal-auth-brand-mark {
  display: grid;
  place-items: center;
  width: min(280px, 82%);
  aspect-ratio: 1;
  overflow: hidden;
  border: 1px solid rgba(124, 230, 196, 0.34);
  border-radius: 38px;
  color: var(--cyan);
  background: rgba(124, 230, 196, 0.08);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.28), inset 0 0 28px rgba(88, 178, 255, 0.08);
  font-size: 1.4rem;
  font-weight: 950;
  letter-spacing: -0.08em;
}

.portal-auth-brand-mark img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 52%;
  transform: translate(8px, -40px) scale(1.22, 1.3);
  transform-origin: center;
  border-radius: inherit;
}

.portal-auth-brand-kicker {
  margin: 0;
  color: var(--blue);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 950;
  font-style: italic;
  letter-spacing: 0.015em;
  line-height: 1;
}

.portal-auth-brand h2 {
  margin: 0;
  color: var(--ink-strong);
  font-size: clamp(2.1rem, 4vw, 3.4rem);
  line-height: 0.98;
  letter-spacing: -0.05em;
}

.portal-auth-brand p:not(.portal-auth-brand-kicker) {
  max-width: 340px;
  margin: 0;
  color: var(--muted);
  font-size: 0.95rem;
  line-height: 1.62;
}

.portal-auth-brand-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 10px;
}

.portal-auth-brand-pills span {
  padding: 8px 10px;
  border: 1px solid rgba(88, 178, 255, 0.18);
  border-radius: 999px;
  color: var(--muted);
  background: rgba(88, 178, 255, 0.06);
  font-size: 0.68rem;
  font-weight: 800;
}

.portal-auth-content {
  padding: 60px 58px;
}

.portal-auth-content h1,
.customer-access-content h1#customerAccessTitle {
  font-size: clamp(2.25rem, 5vw, 3.8rem);
}

.portal-access-note {
  margin-top: 18px;
  color: var(--muted-2);
  font-size: 0.78rem;
  line-height: 1.55;
}

.portal-access-note span {
  display: block;
}

.portal-auth-label-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
}

.portal-auth-label-row a,
.portal-auth-secondary-link {
  color: var(--blue);
  font-size: 0.78rem;
  font-weight: 800;
  text-decoration: none;
}

.portal-auth-label-row a:hover,
.portal-auth-secondary-link:hover {
  color: var(--cyan);
  text-decoration: underline;
}

.portal-signup-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid rgba(122, 168, 208, 0.16);
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 750;
}

.portal-signup-row .button[disabled] {
  cursor: not-allowed;
  opacity: 0.58;
}

.customer-access-card:not(.portal-auth-card-polished) {
  border-color: rgba(124, 230, 196, 0.22);
}

.customer-access-card:not(.portal-auth-card-polished) .customer-access-copy,
.portal-auth-content .customer-access-copy {
  margin-bottom: 22px;
}

@media (max-width: 760px) {
  .portal-auth-card-polished {
    grid-template-columns: 1fr;
  }
  .portal-auth-brand {
    min-height: 230px;
    padding: 30px 28px;
  }
  .portal-auth-brand-mark {
    width: min(210px, 72vw);
  }
  .portal-auth-brand h2 {
    font-size: 2.2rem;
  }
  .portal-auth-content {
    padding: 36px 28px 40px;
  }
}
.marketing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}.marketing-card{overflow:hidden;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,rgba(19,42,63,.94),rgba(8,22,35,.98));box-shadow:0 16px 40px rgba(0,0,0,.2)}.marketing-media{aspect-ratio:16/8.5;background:#050d16;overflow:hidden}.marketing-media img,.marketing-media video{display:block;width:100%;height:100%;object-fit:cover}.marketing-card-body{padding:22px}.marketing-card-body h3{margin:4px 0 10px;font-size:1.25rem}.marketing-card-body p:not(.eyebrow){color:var(--muted);line-height:1.6}.marketing-actions{margin-top:18px}.marketing-empty{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px;border:1px solid rgba(79,195,247,.22);border-radius:16px;background:linear-gradient(120deg,rgba(45,120,174,.13),rgba(102,74,180,.09))}.marketing-empty h3{margin:4px 0 8px;font-size:1.35rem}.marketing-empty p:not(.eyebrow){margin:0;color:var(--muted)}.download-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.download-card{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:14px;padding:18px;border:1px solid var(--line);border-radius:15px;background:rgba(6,18,29,.55)}.download-card h3{margin:0 0 4px}.download-card p{margin:0 0 5px;color:var(--muted)}.download-meta{font-size:.78rem;color:var(--muted)}.platform-mark{width:46px;height:46px;border-radius:13px;background:linear-gradient(145deg,#2e91d8,#64d8c2);position:relative;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}.platform-mark:after{position:absolute;inset:0;display:grid;place-items:center;color:#04101b;font-weight:900;font-size:.75rem}.platform-windows:after{content:"WIN"}.platform-linux:after{content:"LNX"}.platform-android:after{content:"AND"}.platform-ios:after{content:"iOS"}.download-state{display:inline-flex;padding:7px 10px;border-radius:999px;border:1px solid rgba(148,163,184,.25);color:var(--muted);font-size:.78rem;white-space:nowrap}.download-state.coming-soon{border-color:rgba(247,196,91,.32);color:#f7c45b}.customer-quick-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.customer-quick-links a{display:flex;flex-direction:column;gap:5px;padding:18px;border:1px solid var(--line);border-radius:14px;background:rgba(8,22,35,.72);text-decoration:none;color:var(--text)}.customer-quick-links a:hover{border-color:rgba(79,195,247,.5);transform:translateY(-1px)}.customer-quick-links span{font-size:.82rem;color:var(--muted)}@media(max-width:900px){.download-grid,.customer-quick-links{grid-template-columns:1fr}.marketing-empty{align-items:flex-start;flex-direction:column}.download-card{grid-template-columns:48px 1fr}.download-action{grid-column:1/-1}}

.dvm-network-builder{min-height:760px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:rgba(3,10,19,.96)}
.dvm-network-builder-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line);background:rgba(7,18,31,.98)}
.dvm-network-builder-toolbar>div,.dvm-network-builder-toolbar label{display:flex;align-items:center;gap:10px}.dvm-network-builder-toolbar label span{color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.dvm-network-builder-grid{display:grid;grid-template-columns:220px minmax(520px,1fr) 310px;min-height:710px}.dvm-network-palette,.dvm-network-inspector{padding:16px;background:rgba(4,12,22,.98);overflow:auto}.dvm-network-palette{border-right:1px solid var(--line)}.dvm-network-inspector{border-left:1px solid var(--line)}
.dvm-network-palette h3,.dvm-network-inspector h3{margin:5px 0 14px}.dvm-network-palette button{width:100%;display:flex;align-items:center;gap:9px;margin:7px 0;padding:10px;border:1px solid rgba(88,178,255,.3);border-radius:10px;background:rgba(88,178,255,.08);color:var(--text);text-align:left;cursor:pointer}.dvm-network-palette button:hover{border-color:var(--blue);background:rgba(88,178,255,.15)}.dvm-network-palette button:disabled{opacity:.55;cursor:default;border-color:var(--line);background:rgba(255,255,255,.025)}.dvm-network-palette p{color:var(--muted);font-size:.72rem;line-height:1.5}
.dvm-network-canvas{position:relative;min-height:710px;min-width:700px;overflow:auto;background:#06101c}.dvm-network-canvas>svg{display:block;width:1200px;height:720px;touch-action:none}.dvm-builder-node{position:relative;z-index:2;display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 9px;align-items:center;width:100%;height:100%;padding:12px;border:1px solid rgba(88,178,255,.38);border-radius:13px;background:rgba(9,25,41,.98);color:var(--text);text-align:left;box-shadow:0 14px 32px rgba(0,0,0,.35);cursor:grab;user-select:none}.dvm-builder-node.is-dragging{cursor:grabbing;box-shadow:0 18px 40px rgba(0,0,0,.48),0 0 0 2px rgba(88,178,255,.2)}.dvm-builder-node strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dvm-builder-node small{grid-column:2;color:var(--muted);font-size:.67rem}.dvm-builder-node:hover,.dvm-builder-node.is-selected{border-color:var(--blue);box-shadow:0 14px 32px rgba(0,0,0,.35),0 0 0 2px rgba(88,178,255,.13)}.dvm-builder-node.is-connect-source{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(124,230,196,.17),0 14px 32px rgba(0,0,0,.35)}.dvm-builder-link-hit{stroke:transparent;stroke-width:18;cursor:pointer}.dvm-builder-link{stroke:var(--cyan);stroke-width:3;stroke-linecap:round;filter:drop-shadow(0 0 4px rgba(124,230,196,.5));pointer-events:none}.dvm-builder-link-label{fill:var(--muted);font-size:12px;text-anchor:middle;paint-order:stroke;stroke:#06101c;stroke-width:4px;stroke-linejoin:round;pointer-events:none}.dvm-builder-link-group:hover .dvm-builder-link,.dvm-builder-link-group:focus .dvm-builder-link,.dvm-builder-link-group.is-selected .dvm-builder-link{stroke:var(--blue);stroke-width:5}.dvm-builder-link-group:focus{outline:none}.dvm-network-builder-toolbar .is-active{border-color:var(--cyan);color:var(--cyan)}
.dvm-network-inspector dl{display:grid;gap:8px}.dvm-network-inspector dl div{padding:10px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.025)}.dvm-network-inspector dt{color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em}.dvm-network-inspector dd{margin:5px 0 0;overflow-wrap:anywhere}
@media(max-width:1200px){.dvm-network-builder-grid{grid-template-columns:180px minmax(420px,1fr)}.dvm-network-inspector{grid-column:1/-1;border-left:0;border-top:1px solid var(--line)}}
.dvm-catalog-search {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: end;
  margin: 18px 0;
}

.dvm-catalog-results {
  display: grid;
  gap: 14px;
}

.dvm-catalog-summary {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  color: var(--muted);
}

.dvm-catalog-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 12px;
  max-height: min(58vh, 680px);
  overflow: auto;
  padding-right: 4px;
}

.dvm-catalog-card {
  display: grid;
  align-content: start;
  gap: 10px;
  min-height: 210px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(7, 19, 34, .72);
}

.dvm-catalog-card-heading {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}

.dvm-catalog-card h4,
.dvm-catalog-card p {
  margin: 0;
}

.dvm-catalog-card p {
  color: var(--muted);
  line-height: 1.5;
}

.dvm-catalog-card small {
  color: var(--muted);
}

.dvm-catalog-card-actions {
  margin-top: auto;
  padding-top: 4px;
}

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