/* Source-audited diagrams: large canvases, distinct BPMN symbols and provenance. */
.node-top{padding:8px 11px 10px}
.node-meta{margin-bottom:3px}
.node-title{gap:7px;margin-bottom:5px;min-height:53px;align-items:center}
.node-title>strong{white-space:normal;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;max-height:59px;overflow:hidden;font-size:12px;line-height:1.6;letter-spacing:0}
.node-role>span{overflow:hidden;text-overflow:ellipsis}
.subprocess-mark{display:inline-grid;place-items:center;width:15px;height:15px;border:1px solid currentColor;font-size:15px;line-height:1}
.source-lane{position:absolute;box-sizing:border-box;border-left:1px dashed #c4d7c9;transform:translateZ(-19px);pointer-events:none;background:linear-gradient(90deg,#e8f1e522,transparent)}
.source-lane>strong{display:block;text-align:center;direction:rtl;font-size:17px;color:#718d77;line-height:1.8;padding:8px 12px;border-bottom:1px solid #d5e2d4;background:#f3f8ed55}
.gateway-object{position:absolute;width:var(--node-w);height:var(--node-h);transform-style:preserve-3d;color:#a1874a;pointer-events:none}
.gateway-base,.gateway-top{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:none;color:inherit}
.gateway-base{transform:translateZ(7px);filter:drop-shadow(0 9px 6px #586c4035)}
.gateway-base svg{fill:#ddcfab;opacity:.75}
.gateway-top{transform:translateZ(27px);pointer-events:auto;backface-visibility:hidden}
.gateway-top svg,.gateway-base svg{display:block;width:100%;height:100%}
.gateway-top:hover{filter:drop-shadow(0 0 4px #b39455aa)}
.gateway-object.selected{color:#866716}
.gateway-object.selected .gateway-top{filter:drop-shadow(0 0 6px #be9f48)}
.element-label{position:absolute;top:calc(var(--node-h) + 9px);left:50%;transform:translateX(-50%) translateZ(12px);font-size:10px;line-height:1.6;width:176px;max-height:48px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;text-align:center;direction:rtl;color:#967c48}
.source-event.event-object{width:var(--node-w);height:var(--node-h);pointer-events:none}
.source-event .event-top{pointer-events:auto;border:0;outline:0;padding:0;background:none!important;box-shadow:none!important;color:#4e785d;width:100%;height:100%}
.source-event .event-top>svg{width:100%;height:100%;display:block}
.source-event.is-end .event-top{color:#4f6e50}
.source-event .event-label{top:calc(var(--node-h) + 8px);font-size:9px;color:#759178;max-width:165px;text-align:center}
.source-event .event-label b{font:8px ui-monospace,monospace;display:block;opacity:.8;margin-top:1px}
.source-event.selected .event-top{filter:drop-shadow(0 0 5px #529776)}
.scene-world.is-flat .gateway-top{transform:none}
.scene-world.is-flat .gateway-base{display:none}
.edge-group.is-connected .edge-path{stroke:#185f49;stroke-width:3.6}
.edge-group.is-connected .edge-label>rect{fill:#e1f0df;stroke:#8dae81}
.edge-group.is-connected .edge-label>text{fill:#264d37;font-weight:600}
.scene-jump{position:absolute;top:50px;right:20px;z-index:4;display:flex;align-items:center;gap:7px;max-width:min(340px,calc(100% - 40px));padding:6px 10px;background:#ffffffeb;border:1px solid #dfe9dd;border-radius:9px;box-shadow:0 3px 8px #42663605;color:#668168;direction:rtl;pointer-events:auto}
.scene-jump>.icon{width:14px;height:14px;flex:none}
.scene-jump select{font:11px Vazirmatn,Tahoma,sans-serif;background:transparent;border:0;outline:none;width:100%;max-width:280px;color:#54715d;direction:rtl}
.ed-node-title{min-height:54px}
.ed-node-title>strong{white-space:normal;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.65;font-size:11px;max-height:55px}
.ed-node-meta{margin-bottom:2px}
.ed-gateway{border:0;background:none!important;color:#a0884b;padding:0;box-shadow:none!important}
.ed-gateway>svg,.ed-event>svg{display:block;width:100%;height:100%}
.ed-gateway>span{position:absolute;top:calc(100% + 7px);left:50%;transform:translateX(-50%);width:170px;font-size:10px;line-height:1.6;white-space:normal;color:#8f774c}
.ed-event{padding:0;border:0;background:none!important;box-shadow:none!important;color:#57755c}
.ed-event>span{top:calc(100% + 7px);font-size:9px;line-height:1.4;max-width:170px}
.ed-event.is-end{color:#406346}
.ed-gateway.selected,.ed-event.selected{filter:drop-shadow(0 0 5px #7aab7a)}
.ed-add-group{flex-wrap:wrap}
.ed-toolbar{min-height:56px;height:auto}
.catalog-banner{display:flex;align-items:center;gap:13px;background:#eff5df;border:1px solid #dce7c6;padding:14px 18px;border-radius:13px;margin:0 0 22px;color:#577049}
.catalog-banner>span{align-self:flex-start;padding-top:3px}
.catalog-banner>div{flex:1;min-width:0}
.catalog-banner strong{font-size:13px;color:#3e5c32}
.catalog-banner p{font-size:11px;line-height:1.9;margin:4px 0 0}
.catalog-banner button{display:flex;align-items:center;gap:7px;font-size:11px;background:#fff7;border:1px solid #d4dfc6;border-radius:7px;padding:6px 9px;white-space:nowrap}
.catalog-banner button:last-child{border:0;background:transparent;padding:4px}
.audit-view{padding:26px 28px 20px;background:#fff}
.audit-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}
.audit-intro h3{font-size:18px;color:#365842;margin:6px 0}
.audit-intro p{font-size:11px;line-height:2;color:#8c9e8a;max-width:660px;margin:0}
.audit-intro>a{font-size:11px;white-space:nowrap;flex-shrink:0}
.audit-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:22px}
.audit-metrics>div{padding:14px 18px;border:1px solid #e8edde;background:#f8faf3;border-radius:10px;display:flex;align-items:baseline;gap:9px}
.audit-metrics strong{font-size:25px;color:#496841;font-weight:650}
.audit-metrics span{font-size:11px;color:#84937a}
.audit-toolbar{display:flex;align-items:center;gap:13px;margin-bottom:13px;flex-wrap:wrap}
.audit-toolbar .inline-search{flex:1;min-width:200px;max-width:440px}
.audit-toolbar select{border:1px solid #e1e8db;background:#fff;border-radius:7px;font:11px Vazirmatn,Tahoma,sans-serif;color:#6f8165;padding:9px;max-width:220px}
#audit-count{margin-right:auto;color:#9aa88e;font-size:11px}
.audit-rows{border:1px solid #e7edde;border-radius:10px;max-height:660px;overflow:auto;overscroll-behavior:contain}
.audit-row{display:flex;align-items:center;gap:13px;padding:15px 16px;border-bottom:1px solid #edf1e7;background:#fff}
.audit-row:last-child{border-bottom:0}
.audit-row:nth-child(even){background:#fcfdf9}
.audit-row-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:4px}
.audit-row-copy code{font:9px ui-monospace,monospace;color:#9aa78f;direction:ltr;text-align:right;unicode-bidi:isolate;overflow-wrap:anywhere}
.audit-row-copy strong{font-size:12px;line-height:1.9;font-weight:550;color:#526447;overflow-wrap:anywhere}
.audit-row-copy small{font-size:10px;color:#909b85;line-height:1.8}
.audit-type-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;background:#f2f5e9;color:#8d9c74;flex-shrink:0}
.audit-type-icon .icon{width:16px;height:16px}
.audit-type-icon.gateway{color:#b29554;background:#fbf6e7}
.audit-type-icon.stage{color:#669886;background:#edf6ee}
.audit-row-actions{display:flex;align-items:center;gap:8px}
.audit-row-actions button{font-size:10px;color:#758861;display:flex;align-items:center;gap:3px;padding:5px;border:0;background:none;white-space:nowrap}
.audit-row-actions .icon{height:14px;width:14px}
.audit-caveat{font-size:11px;line-height:2.1;color:#928668;padding:14px 0 0;display:block}
.audit-caveat>.icon{height:14px;vertical-align:middle;margin-left:5px}
.source-element-dialog{width:min(620px,calc(100vw - 30px));max-height:88vh}
.source-element-body{padding:22px 25px}
.proof-card{border:1px solid #e0e8d8;background:#fbfcf7;border-radius:10px;padding:16px;margin-top:22px}
.proof-heading{display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:#658156}
.proof-heading>strong{font-size:12px}
.proof-heading>.icon{width:16px;height:16px}
.proof-heading>code{margin-right:auto;direction:ltr;font:10px ui-monospace,monospace;color:#8b9b7d}
.proof-card dl{font-size:11px;margin:14px 0;line-height:2}
.proof-card dl>div{display:flex;gap:14px;margin-bottom:9px;align-items:flex-start}
.proof-card dt{min-width:70px;color:#9aa38d}
.proof-card dd{margin:0;flex:1;color:#596b4e;overflow-wrap:anywhere}
.proof-card dd button{border:0;background:none;color:#608a53;font-size:11px}
.proof-warning{font-size:11px;line-height:2;background:#faf4e3;border-radius:7px;padding:9px 11px;color:#a28b53}
.proof-warning>.icon{width:14px;height:14px;vertical-align:middle;margin-left:4px}
.proof-image summary{font-size:10px;color:#8fa07c;cursor:pointer;margin-bottom:12px}
.proof-image img{display:block;max-width:100%;max-height:340px;object-fit:contain;margin:0 auto 10px;background:#fff;border-radius:5px;border:1px solid #e8edde}
.proof-image small{display:block;text-align:center;font-size:9px;color:#a0aa95;line-height:1.9}
.proof-pages{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}
.proof-pages button{background:#f0f5e8;border:1px solid #dfe8d4;border-radius:6px;padding:7px 10px;display:flex;align-items:center;gap:6px;color:#6c8655;font-size:10px}
.proof-pages .icon{width:12px;height:12px}
.source-connections{margin-top:23px}
.source-connections h3{display:flex;gap:7px;align-items:center;font-size:13px;color:#637a53;margin-bottom:16px}
.source-connections h3>.icon{width:16px;height:16px}
.source-connections h4{font-size:11px;font-weight:500;color:#9ba58d;margin:14px 0 7px}
.source-connections>p{font-size:10px;color:#9a9f8a;line-height:1.9}
.source-connection{padding:9px 10px;background:#f8faf3;border:1px solid #e9eddf;border-radius:7px;margin-bottom:7px;display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:11px}
.source-connection>span{color:#aaa991}
.source-connection>button{border:0;background:none;font-size:11px;color:#567649;text-align:right;line-height:1.9;flex:1}
.source-connection>small{font-size:10px;color:#ae945d;flex-basis:100%;padding-right:22px}
.source-connection>.source-edge-id{font-size:9px;color:#a5ad98;flex-basis:100%;text-align:left;line-height:1.4}
.source-edge-id code{font:8px ui-monospace,monospace}
.source-paper{position:relative}
.source-highlight{position:absolute;box-sizing:border-box;border:2px solid #25a37b;box-shadow:0 0 0 3px #25a37b33;background:#52cf9840;pointer-events:none;min-width:7px;min-height:7px}
.edge-detail{padding:16px 12px;background:#f7faf1;border:1px solid #e2ead7;border-radius:10px}
.edge-detail h3{font-size:13px;color:#5f754f;line-height:1.9;margin:7px 0}
.edge-detail>span{color:#a58c55;display:flex;align-items:center;gap:8px;font-size:11px;line-height:2;margin:10px 0}
.edge-detail>p{font-size:10px;color:#9da58f;line-height:1.9;margin-top:17px}
.edge-detail>div{display:flex;gap:12px;margin-top:15px}
.edge-detail button{font-size:11px;color:#6d8454;background:#edf3e3;border:1px solid #d9e3c9;border-radius:6px;padding:6px 13px}
.archive-dialog{width:min(660px,calc(100vw - 30px));max-height:88vh}
.archive-body{padding:20px 25px}
.archive-body>h3{font-size:13px;color:#617750;margin:24px 0 12px}
.archive-body>p{font-size:11px;color:#909b80;line-height:2.1}
.archive-body>.button{margin-top:20px}
.archive-edit{display:flex;align-items:center;gap:15px;justify-content:space-between;border:1px solid #e5ebdc;padding:12px;border-radius:8px;margin-bottom:10px}
.archive-edit strong{font-size:12px;color:#60724e;display:block}
.archive-edit small{font-size:10px;color:#96a285;display:block;margin-top:4px}
.archive-edit .button{font-size:10px}
.archive-note{border:1px solid #e4e8db;background:#fcfcf8;border-radius:7px;margin-bottom:8px}
.archive-note summary{cursor:pointer;font-size:11px;line-height:1.9;padding:11px;color:#75855f;overflow-wrap:anywhere}
.archive-note code{display:inline-block;direction:ltr;font:9px ui-monospace,monospace;color:#aaa}
.archive-note p{white-space:pre-wrap;overflow-wrap:anywhere;padding:12px;font-size:12px;line-height:2.1;color:#6e765e;border-top:1px solid #eee;margin:0}
.source-simulation-warning{font-size:11px;line-height:2.1;margin-bottom:16px;border-right:3px solid #c6a454;white-space:normal}
.source-simulation-warning>.icon{width:15px;vertical-align:middle;margin-left:6px}
.presentation-dots{max-width:38%;overflow-x:auto;padding:8px 3px;scrollbar-width:thin;justify-content:flex-start}
.presentation-dots>button{flex-shrink:0}
@media(max-width:900px){.audit-view{padding:20px}.audit-intro{align-items:flex-start;flex-direction:column;gap:13px}.audit-metrics>div{flex-direction:column;gap:0;padding:12px}.audit-metrics strong{font-size:23px}.catalog-banner{flex-wrap:wrap}.catalog-banner>div{min-width:75%}.catalog-banner>button:nth-last-child(2){margin-right:32px}}
@media(max-width:600px){.audit-view{padding:14px 12px}.audit-intro h3{font-size:15px}.audit-intro p{font-size:10px}.audit-metrics{gap:6px;grid-template-columns:repeat(2,1fr);margin-bottom:17px}.audit-metrics>div{flex-direction:row;gap:7px;align-items:baseline;padding:10px}.audit-metrics span{font-size:10px}.audit-toolbar{gap:8px}.audit-toolbar .inline-search{min-width:100%;max-width:none}.audit-toolbar select{max-width:calc(100% - 65px);font-size:10px}.audit-row{gap:8px;padding:12px 9px}.audit-row-copy strong{font-size:11px}.audit-row-copy small{font-size:9px}.audit-type-icon{height:25px;width:25px}.audit-row-actions{flex-direction:column;gap:3px}.audit-row-actions>button{font-size:9px}.source-element-body,.archive-body{padding:17px}.proof-card{padding:12px}.proof-card dl>div{display:block}.proof-card dt{font-size:9px}.proof-card dd{margin-top:3px}.proof-heading>code{font-size:9px}.scene-jump{right:12px;top:42px;padding:6px 8px;max-width:calc(100% - 24px)}.scene-jump select{font-size:10px;max-width:230px}.catalog-banner{padding:12px;font-size:10px;gap:8px}.catalog-banner strong{font-size:11px}.catalog-banner p{font-size:10px}.catalog-banner>span>.icon{width:17px}.catalog-banner>button{font-size:10px}.presentation-dots{max-width:100%;justify-content:flex-start}.ed-add-group>button{padding:6px;font-size:10px}.archive-edit{flex-direction:column;align-items:flex-start}.workspace-tabs{overflow-x:auto;white-space:nowrap}.workspace-tabs>button{flex-shrink:0}}

/* World textures are uniformly normalized below 1800px; zoom is reported in
   source-card units. This avoids giant SVG/GPU allocations on dense documents. */
.scene-links{transform:translateZ(calc(5px * var(--drawing-unit,1)))}
.links-shadow{transform:translateZ(calc(-17px * var(--drawing-unit,1)))}
.world-floor{transform:translateZ(calc(-22px * var(--drawing-unit,1)))}
.floor-front{transform:translateZ(calc(-22px * var(--drawing-unit,1))) rotateX(-90deg)}
.floor-side{transform:translateZ(calc(-22px * var(--drawing-unit,1))) rotateY(90deg)}
.scene-world.is-flat .scene-links{transform:translateZ(calc(-1px * var(--drawing-unit,1)))}

.source-lane>strong{font-size:calc(17px * var(--drawing-unit,1));padding:calc(8px * var(--drawing-unit,1)) calc(12px * var(--drawing-unit,1))}
.source-lane{border-left-width:calc(1px * var(--drawing-unit,1))}

.scene-links{overflow:hidden}
.scene-reading{position:absolute;left:50%;bottom:42px;transform:translateX(-50%);z-index:4;display:flex;align-items:center;gap:10px;max-width:calc(100% - 30px);border:1px solid #dce6d4;background:#ffffffeb;box-shadow:0 4px 12px #43643908;border-radius:9px;padding:8px 12px;font-size:10px;color:#899875;direction:rtl;pointer-events:auto}
.scene-reading span{white-space:nowrap}
.scene-reading button{display:flex;gap:5px;align-items:center;background:#f0f6e7;border:1px solid #dae5cc;color:#6b8156;border-radius:6px;padding:4px 8px;white-space:nowrap;font-size:10px}
.scene-reading .icon{width:13px;height:13px}
@media(max-width:600px){.scene-reading{bottom:44px;gap:7px;padding:7px 9px;font-size:9px}.scene-reading span{white-space:normal;max-width:140px}.scene-reading button{font-size:9px}}

.scene-reading[hidden]{display:none!important}
.legend-event{height:7px;width:7px;border:1px solid #96b485;border-radius:50%;display:inline-block}

.audit-annotation{padding:13px 16px;border:1px solid #e9dfbd;background:#fcf8eb;border-radius:9px;margin:0 0 18px;color:#9a8757}.audit-annotation strong{font-size:11px}.audit-annotation p{font-size:10px;line-height:1.9;margin:5px 0}.audit-annotation button{display:flex;align-items:center;gap:6px;background:none;border:0;color:#8a8154;font-size:10px;padding:5px 0}.audit-annotation .icon{width:13px;height:13px}
