/* Public review atlas: graphite, chalk, lavender gates; a traceable document path. */
.cw{--cw-bg:#111218;--cw-ink:#edeef5;--cw-muted:#a7a8bb;--cw-accent:#b5b2dd;--cw-rule:#343541;--cw-warn:#d4bda3;color:var(--cw-ink);font-family:Arial,"PingFang SC","Microsoft YaHei",sans-serif}
#flow-dialog.case-dialog[data-case-kind=contract]{max-width:96vw;width:1600px;background:#111218;border-radius:8px;padding:28px;scrollbar-color:#626176 #111218}
#flow-dialog[data-case-kind=contract] #flow-title{font-size:clamp(20px,2vw,30px);margin-bottom:12px}
#flow-dialog[data-case-kind=contract] .case-tabs{margin-bottom:24px}
.cw-heading{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:26px}.cw-kicker{font:10px/1.6 Consolas,monospace;letter-spacing:.11em;color:var(--cw-muted)}.cw-heading h3{font-size:clamp(25px,3vw,43px);font-weight:500;letter-spacing:-.04em;margin:7px 0 9px;line-height:1.2}.cw-heading>div>p:last-child{font-size:12px;color:var(--cw-muted)}.cw-edition{font:9px/2 Consolas,monospace;letter-spacing:.1em;text-align:right;flex-shrink:0;color:var(--cw-muted);border-left:1px solid var(--cw-rule);padding-left:20px}.cw-edition b{font-weight:400;color:var(--cw-accent)}
.cw-controls{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-block:12px;border-block:1px solid var(--cw-rule)}.cw button{min-height:40px}.cw button:focus-visible{outline:2px solid var(--cw-accent);outline-offset:3px}.cw-scenarios{display:flex;flex-wrap:wrap;gap:6px}.cw-scenarios button{padding:8px 14px;font-size:12px;border:1px solid transparent;border-radius:24px;color:var(--cw-muted)}.cw-scenarios button[aria-pressed=true]{background:#b5b2dd12;border-color:#b5b2dd66;color:var(--cw-accent)}.cw-zoom{display:flex;align-items:center;gap:3px;white-space:nowrap}.cw-zoom button{padding:0 12px;border:1px solid var(--cw-rule);border-radius:3px;font-size:13px}.cw-zoom output{font:11px Consolas,monospace;min-width:44px;text-align:center;color:var(--cw-muted)}.cw-stage-nav{display:flex;justify-content:space-between;gap:12px;padding:10px 0}.cw-stage-nav button{font-size:11px;color:var(--cw-muted);text-align:left}.cw-stage-nav b{font:11px Consolas,monospace;color:#8a839e;margin-right:9px}.cw-stage-nav [aria-pressed=true]{color:var(--cw-accent)}
.cw-viewport{width:100%;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#737087 #1a1b23;border:1px solid var(--cw-rule);background-color:var(--cw-bg);background-image:linear-gradient(#bfc0d807 1px,transparent 1px),linear-gradient(90deg,#bfc0d807 1px,transparent 1px);background-size:26px 26px}.cw-canvas{position:relative;width:1180px;aspect-ratio:1440/490;container-type:inline-size;background:radial-gradient(ellipse at 54% 53%,#b5b2dd05,transparent 62%)}.cw-connections{position:absolute;inset:0;width:100%;height:100%;overflow:visible;color:#737286}.cw-edge{fill:none;stroke:#454654;stroke-width:1;vector-effect:non-scaling-stroke}.cw-edge-branch,.cw-edge-return,.cw-edge-loop{stroke-dasharray:3 5;stroke:#606073}.cw-edge.on-route{stroke:#a19fbd;stroke-width:1.2}.cw-edge.is-past{stroke:var(--cw-accent);stroke-width:1.7;color:var(--cw-accent)}.cw-phase-label{fill:var(--cw-muted);font:13px Arial,"Microsoft YaHei",sans-serif}.cw-phase-label path{fill:none;stroke:#67667b;stroke-width:.7}.cw-phase-label .cw-phase-number{font:44px Consolas,monospace;fill:transparent;stroke:#72718a;stroke-width:.7}.cw-loop-label{fill:#9390ac;font:10px Arial,"Microsoft YaHei",sans-serif;letter-spacing:1px}
.cw .cw-node{position:absolute;width:6.05cqw;height:3.4cqw;min-height:0;padding:0;transform:translate(-50%,-50%);display:grid;place-items:center;z-index:1;border-radius:50%;color:var(--cw-muted)}.cw-node-title{position:absolute;bottom:calc(100% + .9cqw);left:50%;transform:translateX(-50%);width:8cqw;display:grid;text-align:center;gap:.45cqw;pointer-events:none}.cw-node-title small{font: .72cqw Consolas,monospace;color:#9b98ae}.cw-node-title strong{font-size:.97cqw;font-weight:500;white-space:nowrap;line-height:1.5}.cw-orbit{display:grid;place-items:center;width:2.7cqw;aspect-ratio:1;border:1px solid #9393aa;border-radius:50%;background:var(--cw-bg);box-shadow:0 0 0 4px #b3b0d210;position:relative}.cw-orbit:after{content:'';position:absolute;inset:3px;border:1px solid #b9b6d25c;border-radius:50%}.cw-orbit i{font-style:normal;font-size:1.4cqw;line-height:1;display:grid;place-items:center;width:.7cqw;height:.7cqw;border-radius:50%;background:#d8d9e6}.cw-ai .cw-orbit{border-style:dashed}.cw-ai .cw-orbit i{background:transparent;width:1.3cqw;height:1.3cqw}.cw-human .cw-orbit{border-color:var(--cw-accent);color:var(--cw-accent)}.cw-human .cw-orbit i{background:var(--cw-accent);color:#201e30;font-size:1cqw;width:1.3cqw;height:1.3cqw}.cw-tool .cw-orbit{border-radius:8px}.cw-tool .cw-orbit i{background:none}.cw-node-kind{position:absolute;top:calc(100% + .7cqw);font:.58cqw/1.4 Consolas,monospace;letter-spacing:.02em;width:9cqw;white-space:nowrap;text-align:center;color:#9996b0;pointer-events:none}.cw-node[aria-pressed=true]{z-index:2;color:var(--cw-accent)}.cw-node[aria-pressed=true] .cw-orbit{border-color:var(--cw-accent);box-shadow:0 0 0 7px #b5b2dd14,0 0 35px #b5b2dd30}.cw-node[aria-pressed=true] .cw-orbit i{color:var(--cw-accent)}.cw-human[aria-pressed=true] .cw-orbit i{color:#201e30}.cw-node.is-past .cw-orbit{border-color:#b5b2dd8c}.cw-branch .cw-orbit{width:2.25cqw;box-shadow:none}.cw-branch .cw-node-title{gap:.2cqw;bottom:calc(100% + .25cqw)}.cw-branch .cw-node-title strong{font-size:.87cqw}.cw-branch .cw-node-kind{top:calc(100% + .25cqw)}.cw-lower .cw-node-title{top:calc(100% + .15cqw);bottom:auto}.cw-lower .cw-node-title small{display:none}.cw-lower .cw-node-kind{top:calc(100% + 1.8cqw)}
.cw-map-footer{display:flex;gap:20px;justify-content:space-between;padding:12px 0;color:var(--cw-muted);font-size:10px}.cw-legend{display:flex;flex-wrap:wrap;gap:15px}.cw-legend>span{display:flex;align-items:center;gap:6px}.cw-legend i{display:inline-block;width:10px;height:10px;border:1px solid #a7a8bb;border-radius:50%}.cw-legend .cw-key-ai{border-style:dashed}.cw-legend .cw-key-human{border-color:var(--cw-accent);background:#b5b2dd30}.cw-legend .cw-key-tool{border-radius:2px}.cw-dash-key{color:#9996ab}
.cw-playbar{display:flex;gap:20px;align-items:center;border-block:1px solid var(--cw-rule);padding:14px 0}.cw-play-actions{display:flex;gap:6px;flex-shrink:0}.cw-play-actions button{border:1px solid var(--cw-rule);border-radius:4px;padding:7px 13px;font-size:12px}.cw-play-actions button:first-child{background:var(--cw-accent);color:#242130;border-color:var(--cw-accent);min-width:135px}.cw-play-actions button:disabled{opacity:.3}.cw-play-copy p{font-size:12px;color:var(--cw-ink)}.cw-play-copy small{display:block;color:var(--cw-muted);font-size:10px;margin-top:3px;line-height:1.65}.cw-progress{font:12px Consolas,monospace;margin-left:auto;white-space:nowrap;color:var(--cw-accent)}
.cw-inspector{display:grid;grid-template-columns:1.65fr 1fr;gap:32px;padding:28px 0}.cw-detail-heading{display:flex;align-items:center;gap:16px;margin-bottom:20px}.cw-detail-number{font:42px/1 Consolas,monospace;color:#8985a7}.cw-detail-heading h4{font-size:24px;font-weight:500;letter-spacing:-.025em;line-height:1.4}.cw-basis{margin-left:auto;flex-shrink:0;font-size:10px;padding:4px 8px;border:1px solid #9490ab4d;color:var(--cw-muted)}.cw-basis.design{color:var(--cw-warn);border-color:#d4bda340}.cw-io{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;padding:16px 18px;border-left:2px solid #b5b2dd66;background:#b5b2dd06}.cw-io span{display:block;font:9px Consolas,monospace;letter-spacing:.08em;color:#aba6c3;margin-bottom:7px}.cw-io p{font-size:12px;line-height:1.7;color:#c9c7d8}.cw-io>b{align-self:center;color:#8985a7;font-weight:400}.cw-logic{font-size:13px;line-height:1.9;margin:16px 0;color:#d7d5e3}.cw-boundary{font-size:11px;line-height:1.9;color:var(--cw-muted)}.cw-boundary b{font-weight:400;color:var(--cw-warn);margin-right:12px}.cw-related{display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px;margin-top:14px;color:var(--cw-muted);font-size:10px}.cw-related button{color:var(--cw-accent);font-size:11px;padding:0 3px}.cw-example{border-left:1px solid var(--cw-rule);padding-left:30px;display:flex;flex-direction:column}.cw-example blockquote{font-size:17px;line-height:1.85;font-weight:400;margin:18px 0;color:#e7e5ee}.cw-example>p:not(.cw-kicker){font-size:12px;line-height:1.85;color:var(--cw-muted)}.cw-example>span{display:block;font:10px/1.7 Arial,sans-serif;margin-top:auto;padding-top:20px;color:#9d97b2}
.cw-preview{display:block;width:100%;text-align:left;padding:24px 20px;border:1px solid #b5b2dd30;background-color:#111218;background-image:linear-gradient(#bfc0d807 1px,transparent 1px),linear-gradient(90deg,#bfc0d807 1px,transparent 1px);background-size:22px 22px;color:#dcd9e9;overflow:hidden}.cw-preview-head{display:flex;justify-content:space-between;font:9px Consolas,monospace;letter-spacing:.13em;color:#b4aec9}.cw-preview-head b{font-size:18px}.cw-preview>strong{display:block;font-size:clamp(17px,1.65vw,25px);font-weight:500;margin:16px 0 28px}.cw-preview-phases{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.cw-preview-phases>span{font-size:10px;border-bottom:1px solid #b5b2dd55;padding-bottom:10px}.cw-preview-phases small{display:block;font:24px/1.4 Consolas,monospace;color:#9991b5}.cw-preview-line{position:relative;display:flex;align-items:center;justify-content:space-between;margin:26px 0}.cw-preview-line:before{position:absolute;inset:50% 0 auto;content:'';height:1px;background:#9089a6}.cw-preview-line i{z-index:1;width:11px;height:11px;border-radius:50%;background:#111218;border:1px solid #c4bdd7;box-shadow:0 0 0 3px #b9b0d510}.cw-preview-line .human{background:#b5b2dd;border-color:#b5b2dd;box-shadow:0 0 15px #b5b2dd70}.cw-preview-branches{display:flex;justify-content:space-between;font-size:9px;color:#b0a7c3}.cw-preview-bottom{display:flex;justify-content:space-between;gap:12px;font-size:10px;color:#a99fbf;border-top:1px solid #b5b2dd20;margin-top:25px;padding-top:16px}.cw-preview-bottom b{color:#b5b2dd;font-weight:400}.contract-case:has(.cw-preview){padding:22px;background:#17171f;border-color:#b5b2dd28}.contract-case:has(.cw-preview) h3{display:none}.contract-case .cw-preview{margin-top:18px}.contract-case:has(.cw-preview) .case-open{color:#b5b2dd}
@media(hover:hover) and (pointer:fine){.cw-node:hover .cw-orbit{border-color:var(--cw-accent)}.cw-related button:hover{text-decoration:underline}.cw-scenarios button:hover{color:var(--cw-ink)}.cw-preview:hover{border-color:#b5b2dd80}}
@media(max-width:900px){.cw-edition{display:none}.cw-controls{flex-wrap:wrap}.cw-zoom{margin-left:auto}.cw-inspector{grid-template-columns:1fr;gap:24px}.cw-example{border-left:0;border-top:1px solid var(--cw-rule);padding:20px 0 0}.cw-example blockquote{font-size:16px}.cw-playbar{flex-wrap:wrap;gap:12px}.cw-play-copy{order:3;flex-basis:100%}.cw-map-footer{flex-wrap:wrap;gap:8px}}
@media(max-width:600px){#flow-dialog.case-dialog[data-case-kind=contract]{padding:18px 14px;width:calc(100% - 16px);max-width:calc(100% - 16px)}#flow-dialog[data-case-kind=contract] #flow-title{font-size:19px}.cw-heading{margin-bottom:18px}.cw-heading h3{font-size:28px}.cw-heading>div>p:last-child{line-height:1.8}.cw-scenarios{width:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:3px}.cw-scenarios button{font-size:11px;padding:8px 5px;min-height:44px}.cw-stage-nav{gap:5px}.cw-stage-nav button{font-size:10px;line-height:1.8}.cw-stage-nav b{display:block}.cw-legend{gap:10px;font-size:9px}.cw-play-actions{gap:4px}.cw-play-actions button{padding:7px 10px;min-height:44px}.cw-play-actions button:first-child{min-width:128px}.cw-detail-heading{gap:12px;flex-wrap:wrap}.cw-detail-heading h4{font-size:23px}.cw-basis{font-size:9px}.cw-io{grid-template-columns:1fr;padding:14px;gap:12px}.cw-io>b{display:none}.cw-detail-number{font-size:34px}.cw-preview{padding:20px 14px}.cw-preview-bottom{flex-direction:column}.cw-preview-phases{gap:7px}.cw-preview-branches{font-size:8px}.cw button:focus-visible{outline-offset:1px}}
.cw-node-title strong{font-size:clamp(11px,.97cqw,15px)}.cw-branch .cw-node-title strong{font-size:clamp(10px,.87cqw,13px)}.cw-node-title small{font-size:clamp(8px,.72cqw,11px)}
#flow-dialog.case-dialog[data-case-kind=contract]{max-height:96dvh;padding:22px}.cw-heading{margin-bottom:18px}.cw-controls{padding-block:8px}.cw-stage-nav{padding:5px 0}
@media(max-width:600px){#flow-dialog.case-dialog[data-case-kind=contract]{padding:18px 14px}.cw-playbar{gap:10px}.cw-progress{font-size:10px}.cw-stage-nav button{padding-inline:0}}
@media(prefers-reduced-motion:reduce){.cw *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
