.qc-arch-interactive-page__eyebrow {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #607d8b;
}

[data-theme="dark"] .qc-arch-interactive-page__eyebrow {
  color: #9aa0a6;
}

.qc-arch-interactive-page__toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-end;
}

.qc-arch-interactive-page__field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1 1 280px;
  font-size: 0.75rem;
  font-weight: 600;
  color: #546e7a;
}

[data-theme="dark"] .qc-arch-interactive-page__field {
  color: #9aa0a6;
}

.qc-arch-interactive-page__check {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.85rem;
  margin-bottom: 2px;
}

.qc-arch-diagram-host {
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 12px;
  background: #fff;
  padding: 12px;
  color: #263238;
}

.qc-arch-diagram-host[data-arch-theme="dark"],
[data-theme="dark"] .qc-arch-diagram-host {
  border-color: rgba(255, 255, 255, 0.12);
  background: color-mix(in srgb, #1a1d24 92%, #000);
  color: #e8eaed;
}

.qc-arch-diagram-toolbar {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}

.qc-arch-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  font-size: 0.75rem;
  color: #546e7a;
}

[data-theme="dark"] .qc-arch-legend,
.qc-arch-diagram-host[data-arch-theme="dark"] .qc-arch-legend {
  color: #9aa0a6;
}

.qc-arch-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.qc-arch-legend-item i {
  display: inline-block;
  width: 18px;
  border-top-width: 2px;
  border-top-style: solid;
}

.qc-arch-diagram-actions {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 4px;
}

.qc-arch-meta {
  font-size: 0.8rem;
  color: #546e7a;
}

.qc-arch-meta strong {
  color: #263238;
  margin-right: 8px;
}

/* Corner chrome — liquid glass (meta / legend / tools); never reflows the diagram */
.qc-arch-meta--corner,
.qc-arch-legend--corner,
.qc-arch-diagram-actions--corner {
  position: absolute;
  z-index: 5;
  margin: 0;
  border: 0;
  border-radius: var(--qc-glass-radius-item, 13px);
  color: var(--qc-text-muted, #546e7a);
  background: var(--qc-toast-bg, var(--qc-glass-fill, color-mix(in srgb, var(--qc-surface-modal, #fff) 22%, transparent)));
  backdrop-filter: var(--qc-toast-blur, var(--qc-glass-blur, blur(18px) saturate(1.35)));
  -webkit-backdrop-filter: var(--qc-toast-blur, var(--qc-glass-blur, blur(18px) saturate(1.35)));
  box-shadow: var(--qc-toast-shadow, var(--qc-glass-inset));
}

.qc-arch-meta--corner {
  top: 12px;
  left: 12px;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 10px;
  max-width: min(360px, calc(100% - 24px));
  padding: 10px 12px;
  pointer-events: none;
}

.qc-arch-meta--corner[hidden] {
  display: none !important;
}

.qc-arch-meta--corner strong {
  color: var(--qc-text-primary, #263238);
}

.qc-arch-legend--corner {
  left: 12px;
  bottom: 12px;
  max-width: min(420px, calc(100% - 24px));
  padding: 10px 12px;
  pointer-events: none;
}

.qc-arch-diagram-actions--corner {
  top: 12px;
  right: 12px;
  display: inline-flex;
  flex-wrap: wrap;
  gap: 2px;
  padding: 4px;
  pointer-events: auto;
}

.qc-arch-tool-btn {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--qc-text-primary, #263238);
  border-radius: calc(var(--qc-glass-radius-item, 13px) - 2px);
  width: 32px;
  height: 32px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  line-height: 1;
  cursor: pointer;
}

.qc-arch-tool-btn:hover,
.qc-arch-tool-btn:focus-visible {
  background: var(--qc-glass-hover, color-mix(in srgb, var(--qc-text-primary) 8%, transparent));
  outline: none;
}

.qc-arch-viewport {
  position: relative;
  height: min(70vh, 720px);
  min-height: 420px;
  overflow: hidden;
  border-radius: 10px;
  background: #f7f9fc;
  border: 1px solid rgba(46, 89, 217, 0.12);
  cursor: grab;
  touch-action: none;
}

[data-theme="dark"] .qc-arch-viewport,
.qc-arch-diagram-host[data-arch-theme="dark"] .qc-arch-viewport {
  background: #12151c;
  border-color: rgba(138, 180, 248, 0.16);
}

.qc-arch-viewport.is-dragging {
  cursor: grabbing;
}

.qc-arch-canvas {
  transform-origin: 0 0;
  will-change: transform;
}

.qc-arch-canvas svg {
  display: block;
  overflow: visible;
}

.qc-arch-node {
  cursor: pointer;
}

.qc-arch-node rect {
  stroke-width: 1.5;
  transition: opacity 0.15s ease;
}

.qc-arch-node .qc-arch-actor-hit {
  fill: transparent !important;
  stroke: none !important;
  stroke-width: 0 !important;
  pointer-events: all;
  filter: none !important;
}

.qc-arch-node text {
  font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  font-size: 11px;
  font-weight: 600;
  pointer-events: none;
}

.qc-arch-node svg {
  pointer-events: none;
}

.qc-arch-edge {
  cursor: pointer;
  fill: none !important;
  stroke-width: 1.5;
  transition: opacity 0.15s ease;
}

.qc-arch-edge.is-dimmed,
.qc-arch-node.is-dimmed,
.qc-arch-package.is-dimmed {
  opacity: 0.14;
  pointer-events: none;
}

.qc-arch-edge.is-active {
  stroke-width: 2.6;
  opacity: 1;
}

.qc-arch-node.is-active {
  opacity: 1;
}

.qc-arch-node.is-active rect:not(.qc-arch-actor-hit) {
  stroke-width: 2.5;
  filter: drop-shadow(0 0 2px rgba(46, 89, 217, 0.45));
}

.qc-arch-node.is-selected rect:not(.qc-arch-actor-hit) {
  stroke-width: 3;
  filter: drop-shadow(0 0 4px rgba(46, 89, 217, 0.65));
}

/* Frameless actors — glow on icon + label when selected / linked */
.qc-arch-node[data-type='actor'].is-active svg,
.qc-arch-node[data-type='actor'].is-active text {
  filter: drop-shadow(0 0 3px rgba(84, 110, 122, 0.55));
}

.qc-arch-node[data-type='actor'].is-selected svg,
.qc-arch-node[data-type='actor'].is-selected text {
  filter: drop-shadow(0 0 5px rgba(84, 110, 122, 0.75));
}

.qc-arch-package.is-active {
  opacity: 1;
}

.qc-arch-package.is-module-unit {
  cursor: pointer;
}

.qc-arch-package.is-selected {
  opacity: 1;
}

[data-theme="dark"] .qc-arch-node.is-active rect:not(.qc-arch-actor-hit),
.qc-arch-diagram-host[data-arch-theme="dark"] .qc-arch-node.is-active rect:not(.qc-arch-actor-hit) {
  filter: drop-shadow(0 0 3px rgba(138, 180, 248, 0.55));
}

[data-theme="dark"] .qc-arch-node.is-selected rect:not(.qc-arch-actor-hit),
.qc-arch-diagram-host[data-arch-theme="dark"] .qc-arch-node.is-selected rect:not(.qc-arch-actor-hit) {
  filter: drop-shadow(0 0 5px rgba(138, 180, 248, 0.75));
}

[data-theme="dark"] .qc-arch-node[data-type='actor'].is-active svg,
[data-theme="dark"] .qc-arch-node[data-type='actor'].is-active text,
.qc-arch-diagram-host[data-arch-theme="dark"] .qc-arch-node[data-type='actor'].is-active svg,
.qc-arch-diagram-host[data-arch-theme="dark"] .qc-arch-node[data-type='actor'].is-active text {
  filter: drop-shadow(0 0 4px rgba(154, 160, 166, 0.7));
}

[data-theme="dark"] .qc-arch-node[data-type='actor'].is-selected svg,
[data-theme="dark"] .qc-arch-node[data-type='actor'].is-selected text,
.qc-arch-diagram-host[data-arch-theme="dark"] .qc-arch-node[data-type='actor'].is-selected svg,
.qc-arch-diagram-host[data-arch-theme="dark"] .qc-arch-node[data-type='actor'].is-selected text {
  filter: drop-shadow(0 0 6px rgba(232, 234, 237, 0.85));
}

.qc-arch-help {
  font-size: 0.75rem;
}

.qc-arch-loading {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(247, 249, 252, 0.85);
  font-size: 0.85rem;
  color: #607d8b;
  z-index: 2;
}

[data-theme="dark"] .qc-arch-loading,
.qc-arch-diagram-host[data-arch-theme="dark"] .qc-arch-loading {
  background: rgba(18, 21, 28, 0.88);
  color: #9aa0a6;
}

.qc-architecture-figure--interactive {
  display: block;
  width: 100%;
}

/* Home preview — diagram only; click opens modal */
.qc-arch-home-preview {
  position: relative;
  display: block;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  text-align: left;
}

.qc-arch-home-preview:focus-visible {
  outline: 2px solid #8ab4f8;
  outline-offset: 3px;
}

.qc-arch-diagram-host--preview,
[data-theme="dark"] .qc-arch-diagram-host--preview {
  margin: 0;
  padding: 0;
  border: 0 !important;
  background: transparent !important;
  pointer-events: none;
}

.qc-arch-viewport--home,
[data-theme="dark"] .qc-arch-viewport--home,
.qc-arch-diagram-host[data-arch-theme="dark"] .qc-arch-viewport--home {
  height: min(68vh, 640px);
  min-height: 420px;
  border: 0 !important;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none;
}

.qc-arch-home-preview__hint {
  position: absolute;
  left: 12px;
  bottom: 12px;
  transform: none;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border: 0;
  border-radius: var(--qc-glass-radius-item, 13px);
  font-size: 12px;
  font-weight: 600;
  color: var(--qc-text-primary, #263238);
  background: var(--qc-toast-bg, var(--qc-glass-fill));
  backdrop-filter: var(--qc-toast-blur, blur(18px) saturate(1.35));
  -webkit-backdrop-filter: var(--qc-toast-blur, blur(18px) saturate(1.35));
  box-shadow: var(--qc-toast-shadow, var(--qc-glass-inset));
  pointer-events: none;
}

/* Fullscreen modal — Studio QcSheet glass recipe */
body.qc-arch-modal-open {
  overflow: hidden;
}

.qc-arch-modal[hidden] {
  display: none !important;
}

.qc-arch-modal {
  position: fixed;
  inset: 0;
  z-index: 1055;
  display: flex;
  align-items: stretch;
  justify-content: center;
  /* Scrim blur must live on sibling backdrop, not this node */
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.qc-arch-modal__backdrop {
  position: absolute;
  inset: 0;
  background: var(--qc-modal-scrim, rgba(11, 18, 32, 0.62));
  backdrop-filter: var(--qc-modal-scrim-blur, blur(28px) saturate(1.45));
  -webkit-backdrop-filter: var(--qc-modal-scrim-blur, blur(28px) saturate(1.45));
}

[data-theme="dark"] .qc-arch-modal__backdrop {
  background: var(--qc-modal-scrim-dark, rgba(2, 6, 23, 0.74));
}

.qc-arch-modal__sheet {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: 100vw;
  height: 100vh;
  max-width: 100vw;
  max-height: 100vh;
  margin: 0;
  border-radius: 0;
  overflow: hidden;
  isolation: isolate;
  color: var(--qc-text-primary, #263238);
  background: color-mix(in srgb, var(--qc-surface-modal, #fafbfc) 88%, transparent);
  border: 0;
  box-shadow:
    inset 0 1px 0 color-mix(in srgb, #fff 12%, transparent),
    inset 0 0 0 1px color-mix(in srgb, var(--qc-text-primary, #263238) 8%, transparent);
}

.qc-arch-modal__sheet::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: var(--qc-glass-sheen, linear-gradient(180deg, color-mix(in srgb, #fff 14%, transparent), transparent 28%));
}

.qc-arch-modal__sheet > * {
  position: relative;
  z-index: 1;
}

[data-theme="dark"] .qc-arch-modal__sheet {
  background: color-mix(in srgb, var(--qc-surface-modal, #2d2e30) 86%, transparent);
  color: var(--qc-text-primary, #e8eaed);
  box-shadow:
    inset 0 1px 0 color-mix(in srgb, #fff 8%, transparent),
    inset 0 0 0 1px color-mix(in srgb, #fff 6%, transparent);
}

.qc-arch-modal__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px 10px;
  flex-shrink: 0;
  border-bottom: 0;
  background: var(--qc-toast-bg, var(--qc-glass-fill));
  backdrop-filter: var(--qc-toast-blur, blur(18px) saturate(1.35));
  -webkit-backdrop-filter: var(--qc-toast-blur, blur(18px) saturate(1.35));
  box-shadow: var(--qc-glass-inset);
}

.qc-arch-modal__title-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
}

.qc-arch-modal__mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: color-mix(in srgb, currentColor 10%, transparent);
  flex-shrink: 0;
}

.qc-arch-modal__title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: inherit;
}

.qc-arch-modal__subtitle {
  margin: 2px 0 0;
  font-size: 0.8rem;
  color: #607d8b;
}

[data-theme="dark"] .qc-arch-modal__subtitle {
  color: #9aa0a6;
}

.qc-arch-modal__close {
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  width: 36px;
  height: 36px;
  border-radius: var(--qc-glass-radius-item, 13px);
  cursor: pointer;
  flex-shrink: 0;
}

.qc-arch-modal__close:hover,
.qc-arch-modal__close:focus-visible {
  background: var(--qc-glass-hover, color-mix(in srgb, currentColor 10%, transparent));
  outline: none;
}

.qc-arch-diagram-host--modal {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  border-radius: 0;
}

.qc-arch-viewport--modal {
  flex: 1 1 auto;
  height: auto;
  min-height: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

@media (prefers-reduced-transparency: reduce) {
  .qc-arch-meta--corner,
  .qc-arch-legend--corner,
  .qc-arch-diagram-actions--corner,
  .qc-arch-home-preview__hint,
  .qc-arch-modal__header {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: color-mix(in srgb, var(--qc-surface-modal, #fff) 92%, transparent);
  }

  .qc-arch-modal__backdrop {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .qc-arch-modal__sheet {
    background: var(--qc-surface-modal, #fff);
  }
}
