/* Geometry and semantic palette generated by Archify 2.16 (MIT). */
.archify-panel{
      --bg: #f8fafc;
      --grid: #e2e8f0;
      --text: #0f172a;
      --text-muted: #475569;
      --text-dim: #475569;
      --text-faint: #64748b;

      --panel: #ffffff;
      --panel-border: #e2e8f0;
      --lane-fill: rgba(248, 250, 252, 0.65);
      --lane-stroke: #cbd5e1;

      --arrow: #94a3b8;
      --arrow-emphasis: #059669;

      --mask: #ffffff;

      --frontend-fill:    rgba(34, 211, 238, 0.15);
      --frontend-stroke:  #0891b2;
      --backend-fill:     rgba(52, 211, 153, 0.18);
      --backend-stroke:   #059669;
      --database-fill:    rgba(167, 139, 250, 0.2);
      --database-stroke:  #7c3aed;
      --cloud-fill:       rgba(251, 191, 36, 0.18);
      --cloud-stroke:     #d97706;
      --security-fill:    rgba(251, 113, 133, 0.15);
      --security-stroke:  #e11d48;
      --messagebus-fill:  rgba(251, 146, 60, 0.15);
      --messagebus-stroke:#ea580c;
      --external-fill:    rgba(148, 163, 184, 0.18);
      --external-stroke:  #64748b;

      --toolbar-bg:       rgba(255, 255, 255, 0.92);
      --toolbar-border:   #cbd5e1;
      --toolbar-text:     #334155;
      --toolbar-hover:    #ffffff;
      --toolbar-menu-bg:  #ffffff;
    }
.archify-canvas .c-grid{ stroke: var(--grid); fill: none; }
.archify-canvas .c-mask{ fill: var(--mask); stroke: none; }
.archify-canvas .c-frontend{ fill: var(--frontend-fill);   stroke: var(--frontend-stroke); }
.archify-canvas .c-backend{ fill: var(--backend-fill);    stroke: var(--backend-stroke); }
.archify-canvas .c-database{ fill: var(--database-fill);   stroke: var(--database-stroke); }
.archify-canvas .c-cloud{ fill: var(--cloud-fill);      stroke: var(--cloud-stroke); }
.archify-canvas .c-security{ fill: var(--security-fill);   stroke: var(--security-stroke); }
.archify-canvas .c-messagebus{ fill: var(--messagebus-fill); stroke: var(--messagebus-stroke); }
.archify-canvas .c-external{ fill: var(--external-fill);   stroke: var(--external-stroke); }
.archify-canvas .t-primary{ fill: var(--text); }
.archify-canvas .t-muted{ fill: var(--text-muted); }
.archify-canvas .t-dim{ fill: var(--text-dim); }
.archify-canvas .t-frontend{ fill: var(--frontend-stroke); }
.archify-canvas .t-backend{ fill: var(--backend-stroke); }
.archify-canvas .t-database{ fill: var(--database-stroke); }
.archify-canvas .t-cloud{ fill: var(--cloud-stroke); }
.archify-canvas .t-security{ fill: var(--security-stroke); }
.archify-canvas .t-messagebus{ fill: var(--messagebus-stroke); }
.archify-canvas .t-external{ fill: var(--external-stroke); }
.archify-canvas .semantic-sigil{
      fill: none;
      stroke: currentColor;
      stroke-width: 1.35;
      stroke-linecap: round;
      stroke-linejoin: round;
      opacity: 0.76;
      pointer-events: none;
    }
.archify-canvas .s-frontend{ color: var(--frontend-stroke); }
.archify-canvas .s-backend{ color: var(--backend-stroke); }
.archify-canvas .s-database{ color: var(--database-stroke); }
.archify-canvas .s-cloud{ color: var(--cloud-stroke); }
.archify-canvas .s-security{ color: var(--security-stroke); }
.archify-canvas .s-messagebus{ color: var(--messagebus-stroke); }
.archify-canvas .s-external{ color: var(--external-stroke); }
.archify-canvas .a-default{ stroke: var(--arrow); fill: none; }
.archify-canvas .a-emphasis{ stroke: var(--arrow-emphasis); fill: none; }
.archify-canvas .a-security{ stroke: var(--security-stroke); fill: none; stroke-dasharray: 5,5; }
.archify-canvas .a-dashed{ stroke: var(--database-stroke); fill: none; stroke-dasharray: 4,4; }
.archify-canvas .m-default{ fill: var(--arrow); }
.archify-canvas .m-emphasis{ fill: var(--arrow-emphasis); }
.archify-canvas .m-security{ fill: var(--security-stroke); }
.archify-canvas .m-dashed{ fill: var(--database-stroke); }
.archify-canvas .c-security-group{ fill: transparent; stroke: var(--security-stroke); stroke-dasharray: 4,4; }
.archify-canvas .c-region{ fill: rgba(251, 191, 36, 0.05); stroke: var(--cloud-stroke); stroke-dasharray: 8,4; }
.archify-canvas .c-lane{ fill: var(--lane-fill); stroke: var(--lane-stroke); stroke-dasharray: 6,6; }
.workspace{display:block}.workspace>.details{position:static;margin-top:28px}.workspace>.details dl{max-width:650px}.archify-panel{border:1px solid var(--panel-border);border-radius:18px;background:var(--bg);color:var(--text);box-shadow:0 16px 48px #02061712;overflow:hidden}.archify-header{padding:28px 34px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--panel-border);background:var(--panel)}.archify-header h3{font:500 28px/1.2 Georgia,serif;letter-spacing:-.5px;margin:7px 0 8px}.archify-header p{font-size:12px;color:var(--text-muted);margin:0}.archify-header .archify-kicker,.archify-kicker{font:10px/1.5 ui-monospace,monospace;letter-spacing:1.4px;color:var(--text-muted)}.archify-controls{display:flex;gap:16px;align-items:center}.archify-status{font:10px ui-monospace,monospace;letter-spacing:1px;color:#166534}.archify-canvas{padding:22px 14px 4px;overflow-x:auto}.archify-canvas svg{display:block;width:100%;min-width:1100px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.archify-canvas .semantic-sigil{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.archify-canvas .live-node{cursor:pointer;outline:none;transition:opacity .25s,filter .25s}.archify-canvas .live-node.pending>rect:not(.c-mask){fill:#f1f5f9;stroke:#94a3b8}.archify-canvas .live-node.active{filter:drop-shadow(0 0 9px #38bdf877)}.archify-canvas .live-node.active>rect:not(.c-mask){stroke:#38bdf8;stroke-width:2.5;animation:archify-breathe 1.6s ease-in-out infinite}.archify-canvas .live-node.failed>rect:not(.c-mask){stroke:#fb7185;fill:var(--security-fill)}.archify-canvas .live-node.waiting>rect:not(.c-mask){stroke:#fbbf24;fill:var(--cloud-fill)}.archify-canvas .live-node.protected>rect:not(.c-mask){stroke:#c4b5fd;filter:drop-shadow(0 0 6px #8b5cf650)}.archify-canvas .live-node.live-selected>rect:not(.c-mask),.archify-canvas .live-node:focus>rect:not(.c-mask){stroke-width:2.8;filter:drop-shadow(0 0 5px #34d39955)}.archify-canvas .live-pending path{opacity:.55}.archify-canvas .live-flowing{stroke:#38bdf8;stroke-width:2.2;stroke-dasharray:7 5;animation:flow-travel 1s linear infinite}.archify-proof{display:grid;grid-template-columns:260px 1fr;gap:28px;border-top:1px solid var(--panel-border);padding:24px 34px;background:var(--panel)}.archify-proof h4{font-size:17px;margin:8px 0}.archify-proof p{color:var(--text-muted);font-size:12px}.archify-proof pre{margin:0;max-height:180px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font:11px/1.65 ui-monospace,monospace;color:var(--text-muted)}.carrier:focus-visible{outline:3px solid #708974;outline-offset:3px}@keyframes archify-breathe{50%{stroke-opacity:.5}}@media(prefers-reduced-motion:reduce){.archify-canvas .live-flowing,.archify-canvas .live-node.active>rect{animation:none!important}}@media(max-width:760px){.archify-header{padding:20px;align-items:start}.archify-header h3{font-size:24px}.archify-controls{flex-direction:column;align-items:end;gap:10px}.archify-proof{grid-template-columns:1fr;gap:8px;padding:20px}.archify-canvas::after{content:'Swipe to follow the flow →';display:block;padding:10px;color:var(--text-muted);font-size:11px}}

/* Keep labels readable before a step runs, as well as after it completes. */
.archify-header p,.archify-proof p{font-size:14px;line-height:1.6}
.archify-header .archify-kicker,.archify-kicker,.archify-status{font-size:12px;letter-spacing:.7px}
.archify-proof pre{font-size:13px;line-height:1.75;color:#334155;max-height:260px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:16px;min-width:0}
.archify-proof h4{font-size:19px}
.archify-links{display:flex;flex-wrap:wrap;gap:12px 24px;padding:15px 34px;background:#fff;border-bottom:1px solid var(--panel-border)}
.archify-links a,.archify-evidence-link{color:#075985;font-size:14px;font-weight:600;text-decoration:underline;text-underline-offset:4px}
.archify-links a:hover,.archify-evidence-link:hover{color:#0c4a6e}
.archify-links a:focus-visible,.archify-evidence-link:focus-visible{outline:2px solid #0284c7;outline-offset:5px;border-radius:2px}
.archify-canvas text{font-size:11px}
.archify-canvas text[data-node-label]{font-size:14px;font-weight:650}
.archify-canvas .live-node text[data-detail]{font-size:11px}
.archify-canvas .live-node.active>rect:not(.c-mask){stroke:#0284c7}
.archify-canvas .live-node.failed>rect:not(.c-mask){stroke:#be123c}
.archify-canvas .live-node.waiting>rect:not(.c-mask){stroke:#b45309}
.archify-canvas .live-node.protected>rect:not(.c-mask){stroke:#7c3aed}
.archify-canvas .live-node:focus-visible>rect:not(.c-mask){stroke:#0f172a;stroke-width:3}
@media(max-width:760px){.archify-links{padding:16px 20px;gap:12px 20px}}
.archify-canvas .t-backend{fill:#047857}.archify-canvas .t-cloud{fill:#92400e}.archify-canvas .t-security{fill:#be123c}.archify-canvas .t-database{fill:#6d28d9}.archify-canvas .t-messagebus{fill:#9a3412}.archify-canvas .t-frontend{fill:#0e7490}
.archify-canvas path.live-pending{opacity:.55}
