/* Source-specific CSS 3D architecture scenes. No raster or external runtime. */
[data-project-diagram]:not(.is-flat) > .diagram-board{display:none}
[data-project-diagram].is-flat > .p3-scene{display:none}
.p3-flat-toolbar{display:none}
[data-project-diagram].is-flat > .p3-flat-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 22px;border-bottom:1px solid #dce4db;color:#65766b;font-size:12px;font-weight:500;line-height:1.4}
.p3-scene{position:relative;isolation:isolate;overflow:hidden;background:#eef1e9;border-block:1px solid #dce4d9;color:#173b30}
.p3-scene-top{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px 4px}
.p3-scene-top>div:first-child{display:flex;flex-direction:column;gap:6px;min-width:0}
.p3-eyebrow{display:flex;align-items:center;gap:7px;color:#62816f;font-size:9px;font-weight:750;letter-spacing:.16em}
.p3-eyebrow i{width:5px;height:5px;border-radius:50%;background:#8aa78e;box-shadow:0 0 0 3px #91ad901a}
.p3-project-name{font-size:13px;font-weight:650;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:360px}
.p3-mini-stack{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px;max-width:50%}
.p3-mini-stack span{padding:5px 8px;border:1px solid #173b3017;border-radius:20px;font-size:9px;line-height:1;background:#ffffff59;color:#607565;white-space:nowrap}
.p3-viewport{position:relative;height:500px;overflow:hidden;perspective:1350px;perspective-origin:50% 48%;outline:none;cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.p3-viewport:focus-visible{outline:2px solid #527d67;outline-offset:-5px;border-radius:12px}
.p3-scene.is-dragging .p3-viewport{cursor:grabbing}
.p3-atmosphere{position:absolute;inset:4% 0 7%;pointer-events:none;background:radial-gradient(ellipse at 50% 65%,#87a78a26 0%,#a8bca514 35%,transparent 70%)}
.p3-world{position:absolute;left:50%;top:46%;width:1000px;height:480px;transform-style:preserve-3d;transform:translate(-50%,-50%) scale(var(--p3-scale,.72)) rotateX(var(--p3-rx,14deg)) rotateY(var(--p3-ry,-9deg));transform-origin:center center;backface-visibility:visible}
.p3-scene[data-animating="true"] .p3-world{will-change:transform}
.p3-floor{position:absolute;inset:0;transform:translateZ(-7px);border:1px solid #a7bba75c;border-radius:22px;background:linear-gradient(#759b7e0c 1px,transparent 1px),linear-gradient(90deg,#759b7e0c 1px,transparent 1px),linear-gradient(145deg,#ffffff72,#c6d4bf28);background-size:32px 32px,32px 32px,auto;box-shadow:0 30px 70px -40px #2448325c,inset 0 0 60px #ffffff45}
.p3-floor::after{content:"";position:absolute;inset:12px;border:1px solid #9bb59b26;border-radius:14px}
.p3-floor-label{position:absolute;left:28px;bottom:15px;max-width:90%;font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:#718d74;white-space:nowrap}
.p3-wires{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;transform:translateZ(0);filter:drop-shadow(0 1px 0 #ffffffa6)}
.p3-wire{fill:none;stroke:#86a991;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;opacity:.84}
.p3-wires-compact{display:none}
.p3-anchor{position:absolute;left:var(--p3-x);top:var(--p3-y);width:0;height:0;transform-style:preserve-3d;--p3-accent:#6f987c}
.p3-tier-1{--p3-accent:#728f9b}.p3-tier-2{--p3-accent:#a28c62}.p3-tier-3{--p3-accent:#8a829b}
.p3-foot{position:absolute;left:0;top:0;width:202px;height:112px;border:1px solid color-mix(in srgb,var(--p3-accent) 24%,transparent);border-radius:13px;transform:translate(-50%,-50%) translateZ(1px);background:color-mix(in srgb,var(--p3-accent) 5%,transparent);pointer-events:none}
.p3-foot::before{content:"";position:absolute;left:50%;top:50%;width:5px;height:5px;border-radius:50%;transform:translate(-50%,-50%);background:#86a991;box-shadow:0 0 0 4px #86a99113}
.p3-stem{position:absolute;left:0;top:0;width:1px;height:var(--p3-depth);transform-origin:center top;transform:rotateX(90deg);background:linear-gradient(180deg,#86a9918c,#86a99135);pointer-events:none}
.p3-node{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:7px;width:190px;height:108px;box-sizing:border-box;padding:12px 14px 10px;border:1px solid #d1ddcd;border-top:2px solid var(--p3-accent);border-radius:11px;color:#234739;background:linear-gradient(130deg,#fffffff5,#f4f7eff5);box-shadow:0 5px 0 -1px #dce5d7,0 6px 0 #b8ccb257,0 12px 22px -12px #2e523751;transform:translate(-50%,-50%) translateZ(var(--p3-depth));transform-style:preserve-3d;text-align:left;font:inherit;cursor:pointer;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.p3-node-meta{display:flex;align-items:center;justify-content:space-between;width:100%;font-size:9px;line-height:1;color:#80917c;font-weight:550;text-transform:uppercase;letter-spacing:.09em}
.p3-node-meta>span:first-child{color:var(--p3-accent);font-weight:800}
.p3-node strong{display:block;min-width:0;max-width:100%;font-size:15px;line-height:1.17;letter-spacing:-.025em;font-weight:650;overflow-wrap:normal;word-break:normal}
.p3-node-action{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;margin-top:auto;color:#7d937e;font-size:9px;line-height:1}
.p3-node-action b{font-size:13px;font-weight:400}
.p3-node:hover,.p3-node:focus-visible{outline:none;border-color:#7ea589;background:linear-gradient(130deg,#ffffff,#eef7e9);transform:translate(-50%,-50%) translateZ(calc(var(--p3-depth) + 9px));box-shadow:0 5px 0 -1px #d5e1ce,0 6px 0 #a8c59d88,0 15px 30px -12px #214d3761}
.p3-node:focus-visible{outline:3px solid #649678;outline-offset:4px}
.p3-node[aria-pressed="true"]{border-color:#4d805f;background:linear-gradient(140deg,#f9fff6,#dbeed1);box-shadow:0 5px 0 -1px #c2d6b6,0 6px 0 #7b9e68a6,0 12px 28px -12px #245c3e6b}
.p3-help{position:absolute;bottom:13px;left:24px;right:24px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#7d8d77;font-size:10px;line-height:1.5;pointer-events:none}
.p3-help b{padding:0 5px;font-weight:400;color:#a6b49b}.p3-help-compact{display:none}
.p3-controls{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 22px;border-top:1px solid #dce4d6;background:#f5f6efbd}
.p3-controls>div{display:flex;align-items:center;gap:6px}
.p3-controls button,.p3-flat-toolbar button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:35px;padding:8px 10px;border:1px solid transparent;border-radius:7px;background:transparent;color:#52705b;font:inherit;font-size:11px;line-height:1.2;cursor:pointer;transition:background .15s,border-color .15s}
.p3-controls button span,.p3-flat-toolbar button span{font-size:15px;color:#8a9e80}
.p3-controls button:hover,.p3-flat-toolbar button:hover{background:#e5ecdf;border-color:#d1dec9}
.p3-controls button:focus-visible,.p3-flat-toolbar button:focus-visible{outline:2px solid #5c866b;outline-offset:2px}
.p3-controls button:disabled{opacity:.55;cursor:default}
.p3-controls [data-p3-flat],.p3-flat-toolbar button{border-color:#cbdac3;background:#f9fbf5}
.p3-motion-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.p3-scene[data-layout="compact"] .p3-viewport{height:485px;perspective:1200px}
.p3-scene[data-layout="compact"] .p3-world{width:720px;height:720px;top:46%}
.p3-scene[data-layout="compact"] .p3-anchor{left:var(--p3-cx);top:var(--p3-cy)}
.p3-scene[data-layout="compact"] .p3-wires-wide{display:none}
.p3-scene[data-layout="compact"] .p3-wires-compact{display:block}
.p3-scene[data-layout="compact"] .p3-node{width:300px;height:116px;padding:13px 18px 11px;border-radius:13px;gap:7px}
.p3-scene[data-layout="compact"] .p3-node strong{font-size:24px;line-height:1.06}
.p3-scene[data-layout="compact"] .p3-node-meta{font-size:13px}
.p3-scene[data-layout="compact"] .p3-node-action{font-size:12px}
.p3-scene[data-layout="compact"] .p3-node-action b{font-size:18px}
.p3-scene[data-layout="compact"] .p3-foot{width:312px;height:126px;border-radius:15px}
.p3-scene[data-layout="compact"] .p3-floor{background-size:36px 36px,36px 36px,auto}
.p3-scene[data-layout="compact"] .p3-floor-label{font-size:13px}
.p3-scene[data-layout="compact"] .p3-wire{stroke-width:2.3}
.p3-scene[data-layout="compact"] .p3-help-desktop{display:none}
.p3-scene[data-layout="compact"] .p3-help-compact{display:inline}
.p3-scene[data-layout="compact"] .p3-help{left:16px;right:16px;font-size:9px}
@media(max-width:640px){.p3-scene-top{padding:16px 16px 3px;gap:12px}.p3-project-name{max-width:190px;font-size:12px}.p3-mini-stack{max-width:40%;gap:4px}.p3-mini-stack span{padding:4px 6px;font-size:8px}.p3-mini-stack span:nth-child(n+3){display:none}.p3-controls{padding:10px 12px;gap:4px}.p3-controls>div{gap:0}.p3-controls button{font-size:10px;padding:9px 7px;min-height:40px}.p3-controls button span{font-size:14px}.p3-scene[data-layout="compact"] .p3-viewport{height:440px}.p3-help>span:last-child{font-size:8px}[data-project-diagram].is-flat>.p3-flat-toolbar{padding:12px 16px}.p3-flat-toolbar button{min-height:40px}}
@media(prefers-reduced-motion:reduce){.p3-node,.p3-controls button,.p3-flat-toolbar button{transition:none}}
@media print{.p3-scene,.p3-flat-toolbar{display:none!important}[data-project-diagram]>.diagram-board{display:block!important}}

.p3-scene[data-motion-paused="true"] .p3-node:hover,.p3-scene[data-motion-paused="true"] .p3-node:focus-visible{transform:translate(-50%,-50%) translateZ(var(--p3-depth))}

/* Preserve complete source labels, including detailed utility workflows. */
.p3-node{height:auto;min-height:108px}.p3-node strong,.p3-node-meta,.p3-node-action{flex-shrink:0}.p3-scene[data-layout="compact"] .p3-node{height:auto;min-height:116px}

.p3-scene[data-layout="compact"] .p3-node{min-height:130px}.p3-scene[data-layout="compact"] .p3-node strong{font-size:26px;line-height:1.1}
