:root{--b0:#f7f8fa;--b1:#fff;--b2:#fafbfc;--b3:#f0f2f6;--b4:#e6e9f0;--line:#e1e5ec;--line2:#c6cdd9;--t1:#252a34;--t2:#5d6676;--t3:#89919e;--acc:#2455e6;--accbg:#edf2ff;--agent:#455e93;--agentbg:#edf1f8;--alert:#b34151;--alertbg:#fcf0f2;--person:#333e53;--outside:#8b95a7;--system:#64738d}
html,body{font-family:Archivo,sans-serif}#ws{grid-template-columns:minmax(0,1fr);grid-template-rows:62px 1fr!important}#top{grid-row:1;grid-column:1/-1;padding:0 22px;gap:12px}#top .logo{color:var(--t1)}#top .name{max-width:420px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:14px}#top .meter{display:none}.gutter{display:none!important}#ol{display:none}#tl{grid-column:1;grid-row:2!important;border-right:0}#stage{display:none;grid-column:2;grid-row:2!important;border-left:1px solid var(--line);overflow:hidden}body.has-selection #ws{grid-template-columns:minmax(0,1fr) 380px}body.has-selection #stage{display:flex}#stage .sh{padding:18px 20px;display:block;max-height:230px;overflow:auto}#stage h2{font-size:19px;line-height:1.3}#stage .sub{font-size:12px;line-height:1.5}#stage .right{align-items:flex-start;margin-top:10px}#stage .body{padding:18px 20px}.acct{flex-wrap:wrap;gap:14px}.ted{grid-template-columns:1fr;gap:16px}#stage .ph{height:46px}#stage .body label{font-size:11px}#ask{width:100%;background:#fff}.ph{height:46px;background:#fff;font-size:12px;font-weight:500;padding:0 16px}.ib{width:32px;height:32px}.ib.on{background:var(--accbg);color:var(--acc)}.seg{background:#f2f4f7}.bt.acc{color:#fff;background:var(--acc)}button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--acc);outline-offset:2px}.track{height:66px!important}.track .h{background:#fff;padding-left:18px}.track .h .mm{display:none}.track .h .n{font-size:12px;font-weight:500}.track .h>svg{width:18px;height:18px}.track .lane{background-image:radial-gradient(#dce1e9 .7px,transparent .7px);background-size:16px 16px}.clip{height:36px;top:15px;background:#fff;border:1px solid #c9d0dd;border-left:3px solid var(--c);border-radius:6px;box-shadow:0 1px 2px #1a294008}.clip .t{font-weight:500}.clip.draft{background:#fff;color:var(--t1)}.clip.draft .t{font-style:normal}.clip.sel{background:#f5f8ff;box-shadow:0 0 0 2px var(--acc);border-color:var(--acc)}.clip .port,.clip .port-in{opacity:.7!important;background:#fff}.track-add{flex:none;width:24px;height:24px;color:var(--acc);border:1px solid var(--line);border-radius:5px;display:grid;place-items:center}.track-add svg{width:13px;height:13px}.track-edit{width:22px;height:24px;flex:none;color:var(--t3)}.track-edit svg{width:13px;height:13px}#mm{background:#fff;box-shadow:0 3px 12px #1c304011}#mm .v{background:#2455e60c}#tls{background:#fff}#selbar{background:#fff;box-shadow:0 5px 25px #1c304018}.peek{background:white;box-shadow:0 8px 30px #1c30401c}.sheet{background:#fff;box-shadow:0 20px 70px #15234030}.sheet .sh{font-size:17px;font-weight:550}.sheet .hint{font-size:11px}.sheet input,.sheet textarea{background:#fff!important;border-color:var(--line2)}.pop{background:white;box-shadow:0 12px 35px #15234025}.pop .item:hover{background:var(--accbg)}#toast{background:#252a34;color:#fff}#editor-tools{position:fixed;top:64px;right:14px;width:330px;max-height:calc(100vh - 85px);overflow:auto;border:1px solid var(--line);border-radius:9px;background:#fff;box-shadow:0 15px 50px #25365325;padding:10px;z-index:60;display:none}#editor-tools.show{display:block}#editor-tools>button,#editor-tools>.seg,#editor-tools>span{display:flex;width:100%;height:auto;min-height:36px;align-items:center;gap:10px;text-align:left;padding:7px;border-radius:5px}#editor-tools .tool-label{font-size:11px;line-height:1.4}#editor-tools .seg .ib{width:35px}.editor-button{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:6px;height:34px;padding:0 11px;font-size:12px;white-space:nowrap}.editor-button[hidden]{display:none}
.editor-button svg{width:16px;height:16px}.editor-button.primary{background:var(--acc);border-color:var(--acc);color:white}.editor-hint{font-size:10px;color:var(--t3);font-weight:400;margin-left:12px}.editor-toolbar{display:flex;align-items:center;gap:6px}.editor-empty{height:100%;display:grid;place-items:center;color:var(--t3)}#ol.open{display:flex;position:fixed;top:62px;left:0;bottom:0;width:270px;z-index:25;border-right:1px solid var(--line);box-shadow:5px 0 25px #15234015}body.present #ws,#ws.full{grid-template-rows:62px 1fr!important;grid-template-columns:1fr!important}body.present #tl,#ws.full #tl{grid-row:2!important}body.present .clip .pin,body.present .clip .qm,body.present .clip .port,body.present .clip .port-in{display:none!important}body.present .track .h .mm{display:none!important}#rv .wrap{max-width:1100px}#rv .mini{overflow:auto}#iv .bar{background:#fff}#iv .form{background:#fff}#help .k{background:white;box-shadow:0 20px 60px #15234020}
@media(max-width:1000px){body.has-selection #ws{grid-template-columns:minmax(0,1fr) 330px}#top .name{max-width:240px}.editor-hint{display:none}}@media(max-width:700px){#top{padding:0 10px;gap:6px}#top .name{max-width:130px}body.has-selection #ws{grid-template-columns:1fr}body.has-selection #stage{position:fixed;right:0;top:108px;bottom:0;width:min(360px,92vw);z-index:20;box-shadow:-10px 0 40px #15234020}.track .h{padding-left:8px}.editor-button{padding:0 8px}.editor-hint{display:none}}
.collection-preview{display:grid;grid-template-columns:1fr 24px 1fr;align-items:center;gap:20px;padding:20px 0}.collection-task{padding:10px;border:1px solid var(--line);border-radius:6px;margin:7px 0;font-size:12px;display:flex;gap:9px;align-items:center}.collection-agent{min-height:120px;border:2px dashed var(--acc);border-radius:10px;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:18px;gap:12px}.collection-agent>svg{width:28px;height:28px;color:var(--acc)}.collection-agent b{font-size:14px}.collection-agent small{color:var(--t3)}#review-runs,#review-gaps,#review-proposals{display:grid;gap:8px;margin-bottom:20px}#review-gaps button{white-space:normal;text-align:left;height:auto;padding:10px;font-size:12px}#review-proposals button,#review-runs button{justify-content:flex-start;height:auto;min-height:36px;white-space:normal;text-align:left}.sheet h4{font-size:12px;font-weight:550;margin:14px 0 10px}

body.outline-open #ws{grid-template-columns:230px minmax(0,1fr)}body.outline-open.has-selection #ws{grid-template-columns:230px minmax(0,1fr) 350px}body.outline-open #ol{display:flex;position:static;grid-row:2;grid-column:1;border-right:1px solid var(--line)}body.outline-open #tl{grid-column:2}body.outline-open #stage{grid-column:3}.editor-toolbar{overflow-x:auto;min-width:0}.editor-toolbar .editor-button{flex-shrink:0}.editor-hint{display:none}
.transfer-sheet{width:min(740px,calc(100vw - 40px));max-height:calc(100vh - 48px);display:flex;flex-direction:column;padding:0!important;overflow:hidden}.transfer-header{display:flex;align-items:center;justify-content:space-between;padding:24px 28px;border-bottom:1px solid var(--line)}.transfer-header small{font-size:10px;letter-spacing:1.2px;color:var(--t2)}.transfer-header h2{font-size:23px;line-height:1.2;margin:8px 0 0}.transfer-body{padding:24px 28px;overflow:auto}.transfer-route{display:grid;grid-template-columns:1fr 24px 1fr;gap:16px;align-items:center;margin-bottom:24px}.transfer-route>div{display:flex;gap:12px;align-items:center;border:1px solid var(--line);padding:16px;border-radius:8px;min-width:0}.transfer-route .destination{border:1px dashed var(--acc);background:var(--accbg)}.transfer-route svg{width:25px;height:25px;flex-shrink:0}.transfer-route small{display:block;font-size:10px;color:var(--t2);margin-bottom:5px}.transfer-route b{font-size:13px}.transfer-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.transfer-fact{border:1px solid var(--line);border-radius:8px;padding:15px;margin-bottom:16px}.transfer-fact h3{display:flex;align-items:center;gap:8px;font-size:12px;margin:0 0 12px}.transfer-fact h3 span{margin-left:auto;color:var(--t2);font-weight:400}.transfer-fact li{font-size:12px;line-height:1.6;margin:6px 0}.transfer-fact ul{padding-left:17px;margin:0}.transfer-fact.blocked{border-color:#e1b4bb;background:#fdf7f8}.transfer-details{border-top:1px solid var(--line);padding:14px 0}.transfer-details summary{font-size:12px;cursor:pointer;font-weight:500}.transfer-details summary span{float:right;color:var(--t2)}.transfer-details p{font-size:12px;line-height:1.6;margin:10px 0 0;color:var(--t2)}.transfer-footer{border-top:1px solid var(--line);padding:16px 28px;display:flex;align-items:center;gap:8px}.transfer-footer>span{font-size:10px;color:var(--t2);margin-right:auto}.transfer-footer button:disabled{opacity:.4;cursor:not-allowed}.transfer-error{font-size:12px;color:var(--alert);line-height:1.5}#transfer-discussion{border-top:1px solid var(--line);padding-top:16px}#transfer-discussion label{font-size:12px;display:block;margin-bottom:8px}#transfer-question{width:100%;padding:10px;border:1px solid var(--line2);border-radius:6px;font:inherit;font-size:13px}.transfer-thread{border-left:2px solid var(--line2);padding:8px 12px;font-size:12px;margin-top:12px}.transfer-thread b{font-size:10px;text-transform:uppercase}

/* The canvas keeps its compact boxes and interaction geometry. Work type uses
   shape; role uses the existing palette; findings and selection keep their colors. */
#tracks .clip[data-node-kind]{background:var(--node-role-tint,var(--type-tint,var(--b1)));border-color:color-mix(in srgb,var(--node-role-color,var(--type-color,var(--line2))) 35%,var(--b1));border-left:3px solid var(--node-role-color,var(--type-color,var(--line2)));}
/* Whose account this card is, drawn rather than counted. The role tint above sets `background`
   wholesale, which wipes any background-image, so the hatch has to be laid on afterwards and as
   an image only — that way a guess still reads as belonging to its track, and the two facts do
   not have to fight over one property. Hatching means staves made this up and the person has not
   agreed to it; an empty card is a blank and keeps .draft's dashed outline instead. */
#tracks .clip.guess[data-node-kind],#tracks .clip.guess{
  background-image:repeating-linear-gradient(135deg,transparent 0 5px,
    color-mix(in srgb,var(--node-role-color,var(--type-color,#8a6433)) 20%,transparent) 5px 10px)}
#tracks .clip.guess:hover{background-image:repeating-linear-gradient(135deg,transparent 0 5px,
    color-mix(in srgb,var(--node-role-color,var(--type-color,#8a6433)) 30%,transparent) 5px 10px)}
#tracks .clip>.by{width:12px;height:12px;flex:none;border-radius:3px;cursor:pointer;
  border:1px solid color-mix(in srgb,var(--node-role-color,var(--type-color,#8a6433)) 45%,var(--b1));
  background:repeating-linear-gradient(135deg,transparent 0 3px,
    color-mix(in srgb,var(--node-role-color,var(--type-color,#8a6433)) 45%,transparent) 3px 6px)}
#tracks .clip>.by:hover{box-shadow:0 0 0 2px var(--acc)}
#tracks .clip[data-node-kind="decision"]{border-radius:2px 12px 2px 12px;border-left-width:5px}
#tracks .clip[data-node-kind="wait"]{border-radius:4px 22px 22px 4px}
#tracks .clip[data-node-kind="document"]{border-radius:2px 10px 2px 2px;border-bottom:3px double var(--node-role-color,var(--type-color,var(--line2)))}
#tracks .clip[data-node-kind].draft{border-style:dashed}
#tracks .node-symbol{display:inline-flex;flex:0 0 15px;width:15px;height:17px;align-items:center;justify-content:center;color:var(--node-role-color,var(--type-color,var(--t2)));pointer-events:none}
#tracks .node-symbol svg{width:15px;height:15px;fill:var(--b1);stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
#tracks .clip[data-node-kind].sel{background:var(--accbg);border-color:var(--acc);box-shadow:0 0 0 2px var(--acc)}
#tracks .canvas-task[data-node-kind]{display:inline-flex;align-items:center;gap:4px;background:var(--node-role-tint,var(--type-tint,var(--b1)));border-color:color-mix(in srgb,var(--node-role-color,var(--line2)) 35%,var(--b1));border-left:2px solid var(--node-role-color,var(--line2))}
#tracks .canvas-task[data-node-kind="decision"]{border-radius:2px 7px 2px 7px}
#tracks .canvas-task[data-node-kind="wait"]{border-radius:3px 12px 12px 3px}
#tracks .canvas-task[data-node-kind="document"]{border-radius:2px 6px 2px 2px;border-bottom:3px double var(--node-role-color,var(--line2))}
#tracks .canvas-task .node-symbol{flex-basis:12px;width:12px;height:12px}
#tracks .canvas-task .node-symbol svg{width:12px;height:12px}
body[data-detail="outcomes"] #tracks .clip>.node-symbol{position:absolute;top:-6px;left:7px;width:11px;height:11px}
body[data-detail="outcomes"] #tracks .clip>.node-symbol svg{width:11px;height:11px}
body[data-detail="outcomes"] #tracks .clip[data-node-kind="decision"]{border-radius:2px 7px 2px 7px}
body[data-detail="tasks"] #tracks .clip>.node-symbol{margin-top:1px}

#tracks .node-task-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

#tracks .node-repeat{display:inline-flex;align-items:center;flex:0 0 12px;width:12px;height:17px;color:var(--node-role-color,var(--type-color,var(--t2)));pointer-events:none}
#tracks .node-repeat svg{width:12px;height:12px}
body[data-detail="outcomes"] #tracks .clip>.node-repeat{display:none}

/* A card that has just changed, lit long enough to be seen and short enough not to nag. */
@keyframes clip-changed{0%{box-shadow:0 0 0 0 #3157d500}18%{box-shadow:0 0 0 3px #3157d5,0 0 0 9px #3157d524}100%{box-shadow:0 0 0 0 #3157d500}}
#tracks .clip.just-changed{animation:clip-changed 2.1s cubic-bezier(.2,.7,.3,1) both}
@media(prefers-reduced-motion:reduce){#tracks .clip.just-changed{animation:none;box-shadow:0 0 0 3px #3157d5}}
