.architecture-figure { margin: 26px 0 0; min-width: 0; }
.architecture-caption { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 8px 18px; margin-bottom: 12px; font-size: 14px; }
.architecture-caption strong { font-size: 16px; }
.architecture-viewer { border: 1px solid var(--line); min-width: 0; }
.diagram-toolbar { display: flex; flex: 0 0 auto; flex-wrap: wrap; align-items: center; gap: 8px; padding: 10px; background: var(--soft); border-bottom: 1px solid var(--line); }
.diagram-button { min-height: 44px; min-width: 44px; padding: 8px 12px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font: 14px var(--body-font); cursor: pointer; }
.diagram-button:hover { border-color: var(--ink); }
.diagram-button:disabled { opacity: 0.45; cursor: default; }
.diagram-button[data-zoom="out"], .diagram-button[data-zoom="in"] { font-size: 20px; }
.zoom-readout { font-size: 14px; min-width: 48px; text-align: center; color: var(--muted); }
.diagram-expand { margin-left: auto; }
.diagram-viewport { height: clamp(240px, 40vw, 420px); width: 100%; position: relative; overflow: auto; background: #fff; overscroll-behavior: contain; }
.diagram-viewport.is-fit { overflow: hidden; }
.diagram-viewport.can-pan { cursor: grab; }
.diagram-viewport.is-panning { cursor: grabbing; user-select: none; }
.diagram-stage { position: relative; min-width: 100%; min-height: 100%; }
.diagram-image { display: block; position: absolute; max-width: none; margin: 0; user-select: none; }
.diagram-help { color: var(--muted); font-size: 14px; margin: 10px 0 0 !important; }
.project-status { display: inline-block; font: 400 12px/1.7 var(--body-font); border: 1px solid var(--ground); padding: 2px 8px; vertical-align: middle; margin-left: 10px; white-space: nowrap; }
.document-link { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; padding: 8px 14px; margin-top: 18px; border: 1px solid var(--line); color: var(--ink); text-decoration: none; font-size: 14px; }
.document-link:hover { border-color: var(--ink); background: var(--soft); }
.architecture-dialog { width: min(1440px, calc(100vw - 32px)); height: min(900px, 92dvh); max-width: none; max-height: 94dvh; padding: 20px; border: 1px solid var(--ground); color: var(--ink); background: var(--surface); }
.architecture-dialog[open] { display: flex; flex-direction: column; gap: 16px; }
.architecture-dialog::backdrop { background: rgb(0 0 0 / 72%); }
.architecture-dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.architecture-dialog-heading h2 { margin: 0; font: 400 14px/1.8 var(--pixel-font); }
.architecture-dialog .architecture-viewer { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.architecture-dialog .diagram-viewport { flex: 1; height: auto; min-height: 0; }
@media (max-width: 600px) {
  .architecture-dialog { padding: 12px; width: calc(100vw - 16px); }
  .architecture-dialog-heading h2 { font-size: 12px; }
  .project-status { display: table; margin: 8px 0 0; }
  .diagram-toolbar { gap: 6px; padding: 8px; }
}
