/* Unified Spaces: the skins of the graph's objects (drawn by /console/blocks.js on every surface) and the Space views (/console/space.js: overview, board,
 * graph, table, timeline, rules, metrics, execution, chat of one graph). Palette from /console/ios.css; everything else follows the shared appearance values. */
.sp-pill{display:inline-block;font:500 11px/1 var(--ui,-apple-system,system-ui,sans-serif);padding:4px 8px;border-radius:999px;background:var(--ios-fill,rgba(120,120,128,.14));color:var(--ios-2,#6b6b70);white-space:nowrap}
.sp-pill.ok{background:rgba(52,199,89,.16);color:#1d7a3a}.sp-pill.warn{background:rgba(255,149,0,.16);color:#a15c00}.sp-pill.bad{background:rgba(255,59,48,.14);color:#b3261e}
:root[data-mode="dark"] .sp-pill.ok{color:#5fd27f}:root[data-mode="dark"] .sp-pill.warn{color:#ffb340}:root[data-mode="dark"] .sp-pill.bad{color:#ff6b61}
.sp-ref{color:var(--ios-blue,#007aff);text-decoration:none;font-size:13px;overflow-wrap:anywhere}.sp-ref:hover{text-decoration:underline}
.sp-line{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin:8px 0 0;font-size:13px}.sp-k{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ios-3,#8e8e93)}
.sp-kv{display:flex;gap:8px;align-items:center;margin:4px 0;font-size:13px;color:var(--ios-ink,#111)}.sp-chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 2px}
.sp-note{font-size:12px;color:var(--ios-2,#6b6b70);margin-top:6px;line-height:1.4}.sp-warn{font-size:12px;color:#a15c00;margin-top:6px}.sp-src{font-size:11px;color:var(--ios-3,#8e8e93);margin-top:8px;line-height:1.35}
.sp-mono{font:11px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ios-2,#6b6b70);overflow-wrap:anywhere;margin-top:6px}.sp-pre{font:11px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--ios-fill,rgba(120,120,128,.1));padding:8px;border-radius:8px;max-height:260px;overflow:auto;margin:6px 0 0}
.sp-ev{margin-top:8px;font-size:12px;color:var(--ios-2,#6b6b70)}.sp-ev summary{cursor:pointer;color:var(--ios-ink,#111)}.sp-quote{font-size:12px;color:var(--ios-2,#6b6b70);padding:4px 0;border-left:2px solid var(--ios-sep,rgba(60,60,67,.2));padding-left:8px;margin-top:4px}
.sp-mini{font:500 12px var(--ui,-apple-system,system-ui,sans-serif);border:1px solid var(--ios-sep,rgba(60,60,67,.25));background:var(--ios-card,#fff);color:var(--ios-ink,#111);border-radius:999px;padding:4px 10px;cursor:pointer}.sp-mini:hover{background:var(--ios-fill,rgba(120,120,128,.12))}.sp-mini:disabled{opacity:.5}.sp-mini.ok{border-color:rgba(52,199,89,.5);color:#1d7a3a}.sp-mini.bad{border-color:rgba(255,59,48,.45);color:#b3261e}
.sp-form{margin-top:10px}.sp-fact-act{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.sp-ad .sp-ad-text{font-size:14px;line-height:1.4;color:var(--ios-ink,#111);margin:6px 0 10px;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.sp-ad .sp-ad-img{display:block;width:calc(100% + 32px);margin:0 -16px;max-height:220px;object-fit:cover;background:var(--ios-fill,rgba(120,120,128,.1))}
.sp-ad .sp-ad-foot{display:flex;align-items:center;gap:10px;background:var(--ios-fill,rgba(120,120,128,.1));margin:0 -16px;padding:10px 16px}.sp-ad .sp-ad-ft{flex:1;min-width:0}.sp-ad .sp-ad-host{font-size:11px;letter-spacing:.04em;color:var(--ios-3,#8e8e93)}.sp-ad .sp-ad-head{font-weight:600;font-size:14px;line-height:1.3;color:var(--ios-ink,#111)}
.sp-ad .sp-ad-cta{flex:none;font:600 13px var(--ui,-apple-system,system-ui,sans-serif);background:var(--ios-card,#fff);border:1px solid var(--ios-sep,rgba(60,60,67,.25));border-radius:6px;padding:7px 12px;color:var(--ios-ink,#111);text-decoration:none}
.sp-asset-img,.sp-var-img{display:block;width:100%;max-height:260px;object-fit:contain;background:var(--ios-fill,rgba(120,120,128,.1));border-radius:10px;margin:6px 0}.sp-url{display:block;font-size:12px;margin-top:4px}
.sp-var-ph{border:1px dashed var(--ios-sep,rgba(60,60,67,.3));border-radius:10px;padding:14px;margin:6px 0;background:var(--ios-fill,rgba(120,120,128,.06))}.sp-var-ph-t{font:600 12px var(--ui,-apple-system,system-ui,sans-serif);color:var(--ios-3,#8e8e93);text-transform:uppercase;letter-spacing:.05em}.sp-var-ph-p{font-size:12px;color:var(--ios-2,#6b6b70);margin-top:4px;line-height:1.4}
.sp-var-head{font-weight:600;font-size:15px;line-height:1.3;color:var(--ios-ink,#111);margin-top:6px}
.sp-facts{margin-top:6px}.sp-fact{padding:8px 0;border-top:1px solid var(--ios-sep,rgba(60,60,67,.15))}.sp-fact-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.sp-fact-l{font:600 12px var(--ui,-apple-system,system-ui,sans-serif);color:var(--ios-2,#6b6b70);text-transform:uppercase;letter-spacing:.04em}
.sp-fact-v{font-size:14px;line-height:1.4;color:var(--ios-ink,#111);margin-top:4px;overflow-wrap:anywhere}.sp-fact-rejected .sp-fact-v{text-decoration:line-through;color:var(--ios-3,#8e8e93)}.sp-open{color:var(--ios-3,#8e8e93);font-style:italic;font-size:13px}
.sp-fact-m{font-size:11px;color:var(--ios-3,#8e8e93);margin-top:4px}.sp-ul{margin:2px 0 0;padding-left:18px}.sp-ul li{margin:2px 0}
.sp-correct{display:flex;gap:6px;margin-top:6px}.sp-correct[hidden]{display:none}.sp-correct .ios-in{flex:1}
.sp-claimtext{margin:6px 0;font-size:15px;line-height:1.4;color:var(--ios-ink,#111);border-left:3px solid #34c759;padding-left:10px}.sp-hyptext{font-size:14px;line-height:1.45;color:var(--ios-ink,#111);margin-top:6px}
.sp-rule-text{font-size:14px;line-height:1.45;color:var(--ios-ink,#111);margin:6px 0 8px;font-style:italic}.sp-rules{width:100%;border-collapse:collapse;font-size:12px}.sp-rules th{text-align:left;font:600 11px var(--ui,-apple-system,system-ui,sans-serif);text-transform:uppercase;letter-spacing:.04em;color:var(--ios-3,#8e8e93);padding:5px 8px 5px 0;vertical-align:top;width:60px}.sp-rules td{padding:4px 0;color:var(--ios-ink,#111)}.sp-rules td .sp-pill{margin:2px 4px 2px 0}
.sp-obs-sum{font-size:14px;color:var(--ios-ink,#111);margin:6px 0;line-height:1.4}.sp-res{padding:6px 0;border-top:1px solid var(--ios-sep,rgba(60,60,67,.15))}
/* metric, projection, need cards */
.sp-metric-v{font:600 28px/1.1 var(--ui,-apple-system,system-ui,sans-serif);color:var(--ios-ink,#111);margin:4px 0 2px;letter-spacing:-.02em}.sp-metric-u{font-size:13px;color:var(--ios-2,#6b6b70)}
.sp-proj{width:100%;border-collapse:collapse;font-size:12px;margin-top:6px}.sp-proj th{text-align:left;font:600 11px var(--ui,-apple-system,system-ui,sans-serif);text-transform:uppercase;letter-spacing:.04em;color:var(--ios-3,#8e8e93);padding:5px 6px;border-bottom:1px solid var(--ios-sep,rgba(60,60,67,.15))}.sp-proj td{padding:5px 6px;border-bottom:1px solid var(--ios-sep,rgba(60,60,67,.1));color:var(--ios-ink,#111);white-space:nowrap}.sp-proj td.n{text-align:right;font-variant-numeric:tabular-nums}.sp-proj td.up{color:#1d7a3a}.sp-proj td.down{color:#b3261e}.sp-proj td.from{color:var(--ios-3,#8e8e93);white-space:normal;font-size:11px;max-width:220px}.sp-proj tr.g td:first-child{padding-left:12px}
/* ── the Space views ── */
.ms-space{--spb:var(--t-border,rgba(11,11,11,.1));--sps:var(--t-surface,#fff);--spr:var(--t-raised,#f3f2ef);--spi:var(--t-text,#0b0b0b);--spm:var(--t-text-muted,#898781);font:400 14px/1.45 var(--t-font,-apple-system,system-ui,sans-serif);color:var(--spi);border:1px solid var(--spb);border-radius:16px;background:var(--sps);overflow:hidden;margin:16px 0}
.ms-space-page{margin:0;background:var(--t-surface,#fff)}.ms-space-main{max-width:1600px;margin:0 auto;padding:16px}.ms-space-main .ms-space{margin:0;min-height:calc(100vh - 32px)}
.sp-fallback,.ms-space-fallback{padding:12px 16px;color:var(--spm)}
.sp-top{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--spb);background:var(--sps)}
.sp-title{font-weight:700;font-size:17px;letter-spacing:-.01em;display:flex;align-items:center;gap:8px}.sp-title small{font-weight:400;color:var(--spm);font-size:12px}.sp-live{display:inline-flex;align-items:center;gap:5px;font:500 11px var(--t-font,-apple-system,system-ui,sans-serif);color:#1d7a3a;background:rgba(52,199,89,.14);border-radius:999px;padding:3px 8px}.sp-live::before{content:"";width:6px;height:6px;border-radius:50%;background:#34c759}
.sp-views{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto}.sp-views button{font:500 13px var(--t-font,-apple-system,system-ui,sans-serif);border:0;background:transparent;color:var(--spm);border-radius:999px;padding:6px 12px;cursor:pointer}.sp-views button.on{background:var(--spi);color:var(--sps)}.sp-views button:not(.on):hover{background:var(--spr);color:var(--spi)}
.sp-me{font-size:12px;color:var(--spm)}.sp-counts{font-size:12px;color:var(--spm)}
.sp-ingest[hidden]{display:none}.sp-ingest{display:flex;gap:8px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--spb);background:var(--spr)}.sp-ingest input[type=url]{flex:1;min-width:160px;font:inherit;font-size:13px;border:1px solid var(--spb);border-radius:10px;padding:8px 12px;background:var(--sps);color:var(--spi)}
.sp-ingest button,.sp-btn{font:500 13px var(--t-font,-apple-system,system-ui,sans-serif);border:1px solid var(--spb);background:var(--sps);color:var(--spi);border-radius:999px;padding:7px 14px;cursor:pointer}.sp-ingest button.primary,.sp-btn.primary{background:var(--spi);color:var(--sps);border-color:var(--spi)}.sp-ingest button:disabled,.sp-btn:disabled{opacity:.5}
.sp-ingest label{font-size:12px;color:var(--spm);cursor:pointer}.sp-ingest input[type=file]{display:none}.sp-drop{outline:2px dashed var(--ios-blue,#007aff);outline-offset:-6px}
.sp-body{display:grid;grid-template-columns:minmax(0,1fr) 0;transition:grid-template-columns .18s ease}.sp-body.has-panel{grid-template-columns:minmax(0,1fr) min(440px,46%)}
.sp-main{min-width:0;position:relative}.sp-panel{min-width:0;border-left:1px solid var(--spb);background:var(--sps);overflow:auto;max-height:var(--sp-h,560px)}.sp-body:not(.has-panel) .sp-panel{display:none}
.sp-panel-in{padding:12px 14px}.sp-panel-h{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.sp-panel-h .sp-k{font-size:11px}.sp-x{border:0;background:transparent;color:var(--spm);font-size:18px;cursor:pointer;line-height:1}
.sp-panel .ios-widget{max-width:none}.sp-panel h4,.sp-ov h4{margin:14px 0 6px;font:600 12px var(--t-font,-apple-system,system-ui,sans-serif);text-transform:uppercase;letter-spacing:.04em;color:var(--spm)}
.sp-edge-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:4px 0;border-top:1px solid var(--spb);font-size:12px}.sp-edge-row button{font:12px var(--t-font,-apple-system,system-ui,sans-serif);border:0;background:transparent;color:var(--ios-blue,#007aff);cursor:pointer;padding:0}
.sp-ev-row{padding:6px 0;border-top:1px solid var(--spb);font-size:12px;color:var(--spm)}.sp-ev-row b{color:var(--spi);font-weight:600}.sp-ev-row .sp-pill{margin-right:6px}
.sp-toast{position:absolute;left:12px;bottom:12px;max-width:min(520px,calc(100% - 24px));background:var(--spi);color:var(--sps);font-size:13px;padding:10px 14px;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.18);z-index:5;white-space:pre-wrap}
/* overview: numbered panels of the one graph */
.sp-ov{height:var(--sp-h,560px);overflow:auto;padding:14px;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;align-content:start;background:var(--spr)}
.sp-pn{background:var(--sps);border:1px solid var(--spb);border-radius:14px;padding:12px 14px;min-width:0;display:flex;flex-direction:column}.sp-pn.wide{grid-column:span 2}.sp-pn.tall{grid-row:span 2}@media (max-width:700px){.sp-pn.wide{grid-column:span 1}}
.sp-pn-h{display:flex;align-items:center;gap:8px;margin-bottom:8px}.sp-pn-n{width:20px;height:20px;border-radius:50%;background:rgba(10,132,255,.14);color:#0a62c7;font:600 11px var(--t-font,-apple-system,system-ui,sans-serif);display:inline-flex;align-items:center;justify-content:center;flex:none}.sp-pn-t{font:600 14px var(--t-font,-apple-system,system-ui,sans-serif);flex:1}.sp-pn-h .sp-mini{margin-left:auto}.sp-pn .ios-widget{max-width:none;margin:0;box-shadow:none;border:1px solid var(--spb)}
.sp-pn-body{flex:1;min-width:0}.sp-pn .ms-card{margin:0;padding:0;border:0}
.sp-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.sp-gal{border:1px solid var(--spb);border-radius:10px;overflow:hidden;cursor:pointer;background:var(--sps)}.sp-gal img,.sp-gal .ph{display:block;width:100%;aspect-ratio:1;object-fit:cover;background:var(--spr)}.sp-gal .ph{display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--spm);padding:8px;text-align:center}.sp-gal .t{font-size:12px;font-weight:600;padding:6px 8px 2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sp-gal .s{font-size:11px;color:var(--spm);padding:0 8px 6px}
.sp-tbl{width:100%;border-collapse:collapse;font-size:12px}.sp-tbl th{text-align:left;font:600 11px var(--t-font,-apple-system,system-ui,sans-serif);text-transform:uppercase;letter-spacing:.04em;color:var(--spm);padding:5px 6px;border-bottom:1px solid var(--spb)}.sp-tbl td{padding:6px;border-bottom:1px solid var(--spb);vertical-align:top;overflow-wrap:anywhere}.sp-tbl td.u{color:var(--spm);font-style:italic}
.sp-need{display:flex;align-items:center;gap:8px;padding:7px 0;border-top:1px solid var(--spb);font-size:13px}.sp-need .w{flex:1;min-width:0}.sp-need .w small{display:block;color:var(--spm);font-size:11px}.sp-need .sp-mini{flex:none}
.sp-toggle{display:flex;align-items:center;gap:10px;padding:7px 0;border-top:1px solid var(--spb);font-size:13px}.sp-toggle .w{flex:1;min-width:0}.sp-toggle .w small{display:block;color:var(--spm);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sp-sw{width:40px;height:24px;border-radius:12px;background:var(--spb);position:relative;border:0;cursor:pointer;flex:none}.sp-sw::after{content:"";position:absolute;left:2px;top:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:left .15s}.sp-sw.on{background:#34c759}.sp-sw.on::after{left:18px}.sp-sw:disabled{opacity:.5;cursor:default}
.sp-member{display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px solid var(--spb);font-size:13px}.sp-av{width:26px;height:26px;border-radius:50%;background:#5856d6;color:#fff;font:600 11px var(--t-font,-apple-system,system-ui,sans-serif);display:inline-flex;align-items:center;justify-content:center;flex:none}.sp-av.agent{background:#0a84ff}.sp-member .w{flex:1}.sp-member small{display:block;color:var(--spm);font-size:11px}
.sp-apps{display:flex;flex-wrap:wrap;gap:6px}.sp-app{font-size:12px;border:1px solid var(--spb);border-radius:999px;padding:4px 10px;color:var(--spi)}.sp-app small{color:var(--spm)}
/* board */
.sp-boardwrap{display:grid;grid-template-columns:minmax(0,1fr) 290px;height:var(--sp-h,560px)}.sp-boardwrap.norail{grid-template-columns:minmax(0,1fr)}@media (max-width:900px){.sp-boardwrap{grid-template-columns:minmax(0,1fr)}.sp-rail{display:none}}
.sp-board{position:relative;height:100%;overflow:auto;background:radial-gradient(circle at 1px 1px,var(--spb) 1px,transparent 0) 0 0/22px 22px,var(--sps)}
.sp-rail{border-left:1px solid var(--spb);overflow:auto;padding:10px 12px;background:var(--sps);font-size:12px}.sp-rail h4{margin:10px 0 4px;font:600 11px var(--t-font,-apple-system,system-ui,sans-serif);text-transform:uppercase;letter-spacing:.04em;color:var(--spm);display:flex;justify-content:space-between}.sp-rail .r{display:flex;gap:8px;align-items:flex-start;padding:5px 0;border-top:1px solid var(--spb);cursor:pointer}.sp-rail .r:hover{background:var(--spr)}.sp-rail .r .d{width:8px;height:8px;border-radius:50%;margin-top:5px;flex:none;background:var(--nc,#8e8e93)}.sp-rail .r .w{flex:1;min-width:0}.sp-rail .r .w small{display:block;color:var(--spm);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-canvas{position:relative;min-width:100%;min-height:100%}.sp-edges{position:absolute;left:0;top:0;pointer-events:none;overflow:visible}.sp-edges path{fill:none;stroke:var(--spm);stroke-width:1.4;opacity:.65;pointer-events:stroke;cursor:pointer}.sp-edges path.on{stroke:var(--ios-blue,#007aff);opacity:1;stroke-width:2}.sp-edges text{font:600 10px var(--t-font,-apple-system,system-ui,sans-serif);fill:var(--spm);letter-spacing:.03em;text-transform:uppercase;pointer-events:all;cursor:pointer}.sp-edges text.on{fill:var(--ios-blue,#007aff)}
.sp-node{position:absolute;width:216px;background:var(--sps);border:1px solid var(--spb);border-radius:12px;box-shadow:0 1px 2px rgba(0,0,0,.06),0 6px 18px rgba(0,0,0,.06);padding:9px 11px 9px 14px;cursor:grab;user-select:none;touch-action:none}.sp-node:active{cursor:grabbing}.sp-node.on{border-color:var(--ios-blue,#007aff);box-shadow:0 0 0 2px rgba(0,122,255,.25),0 8px 22px rgba(0,0,0,.1)}.sp-node.dim{opacity:.45}
.sp-node::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:4px;border-radius:2px;background:var(--nc,#8e8e93)}
.sp-node-t{display:flex;justify-content:space-between;gap:6px;align-items:center}.sp-node-type{font:600 10px var(--t-font,-apple-system,system-ui,sans-serif);text-transform:uppercase;letter-spacing:.05em;color:var(--nc,#8e8e93)}.sp-node-id{font:10px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--spm)}
.sp-node-title{font-weight:600;font-size:13px;line-height:1.3;margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sp-node-sub{font-size:11px;color:var(--spm);margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sp-node-img{width:100%;height:70px;object-fit:cover;border-radius:8px;margin-top:6px;background:var(--spr)}.sp-node-chips{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}.sp-node-chips .sp-pill{font-size:10px;padding:3px 6px}
.sp-node-v{font:10px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--spm);margin-top:5px;display:flex;justify-content:space-between}
/* graph */
.sp-graph{position:relative;height:var(--sp-h,560px);overflow:auto;background:var(--sps)}.sp-graph .sp-node{width:150px;padding:7px 9px 7px 12px}.sp-graph .sp-node-title{font-size:12px}
.sp-legend{position:absolute;right:12px;top:12px;z-index:4;background:var(--sps);border:1px solid var(--spb);border-radius:12px;padding:8px 10px;font-size:11px;color:var(--spm);max-width:220px}.sp-legend label{display:flex;gap:6px;align-items:center;padding:2px 0;cursor:pointer;color:var(--spi)}.sp-legend input{accent-color:var(--ios-blue,#007aff)}
/* table */
.sp-table{height:var(--sp-h,560px);overflow:auto}.sp-table table{width:100%;border-collapse:collapse;font-size:13px}.sp-table th{position:sticky;top:0;background:var(--spr);text-align:left;font:600 11px var(--t-font,-apple-system,system-ui,sans-serif);text-transform:uppercase;letter-spacing:.04em;color:var(--spm);padding:8px 12px;border-bottom:1px solid var(--spb);cursor:pointer}.sp-table td{padding:8px 12px;border-bottom:1px solid var(--spb);vertical-align:top}.sp-table tr{cursor:pointer}.sp-table tr:hover td{background:var(--spr)}.sp-table tr.on td{background:rgba(0,122,255,.08)}.sp-table .sp-mono{margin:0}
/* timeline */
.sp-timeline{height:var(--sp-h,560px);overflow:auto;padding:8px 16px}.sp-tl{display:grid;grid-template-columns:150px 1fr;gap:4px 14px;padding:8px 0;border-bottom:1px solid var(--spb);font-size:13px}.sp-tl time{color:var(--spm);font-size:12px}.sp-tl .who{color:var(--spm);font-size:12px}.sp-tl details{font-size:12px;color:var(--spm)}.sp-tl summary{cursor:pointer}.sp-tl .sp-ref{font-size:13px}
.sp-pill.k-proposed,.sp-pill.k-dry_run,.sp-pill.k-revised,.sp-pill.k-projected,.sp-pill.k-measured{background:rgba(0,122,255,.12);color:#0a62c7}.sp-pill.k-approved,.sp-pill.k-executed,.sp-pill.k-activated,.sp-pill.k-resolved,.sp-pill.k-interpreted,.sp-pill.k-ingested,.sp-pill.k-expanded{background:rgba(52,199,89,.16);color:#1d7a3a}.sp-pill.k-rejected,.sp-pill.k-failed,.sp-pill.k-denied{background:rgba(255,59,48,.14);color:#b3261e}.sp-pill.k-corrected,.sp-pill.k-observed,.sp-pill.k-held,.sp-pill.k-needed{background:rgba(255,149,0,.16);color:#a15c00}
/* rules */
.sp-rulesv{height:var(--sp-h,560px);overflow:auto;padding:12px 16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px;align-content:start}.sp-rulesv .ios-widget{max-width:none;margin:0}
.sp-newrule{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start;padding:12px;border:1px dashed var(--spb);border-radius:12px}.sp-newrule textarea{flex:1;min-width:240px;font:inherit;font-size:13px;border:1px solid var(--spb);border-radius:10px;padding:8px 12px;background:var(--sps);color:var(--spi);min-height:60px}.sp-newrule select,.sp-newrule input{font:inherit;font-size:13px;border:1px solid var(--spb);border-radius:10px;padding:8px;background:var(--sps);color:var(--spi)}
/* metrics and projections */
.sp-metrics{height:var(--sp-h,560px);overflow:auto;padding:12px 16px;display:grid;grid-template-columns:minmax(280px,1fr) minmax(320px,1.3fr);gap:14px;align-content:start}@media (max-width:860px){.sp-metrics{grid-template-columns:1fr}}
.sp-mgroups{display:flex;gap:4px;margin:0 0 8px;flex-wrap:wrap}.sp-mgroups button{font:500 12px var(--t-font,-apple-system,system-ui,sans-serif);border:1px solid var(--spb);background:var(--sps);color:var(--spm);border-radius:999px;padding:4px 10px;cursor:pointer}.sp-mgroups button.on{background:var(--spi);color:var(--sps);border-color:var(--spi)}
.sp-mrow{display:grid;grid-template-columns:130px 1fr auto;gap:8px;align-items:center;padding:6px 0;border-top:1px solid var(--spb);font-size:12px}.sp-mrow .l{font-weight:600}.sp-mrow .l small{display:block;color:var(--spm);font-weight:400;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp-mrow .bar{height:8px;border-radius:4px;background:var(--spb);position:relative;overflow:hidden}.sp-mrow .bar i{position:absolute;left:0;top:0;bottom:0;background:#0a84ff;border-radius:4px}.sp-mrow .v{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.sp-mform{display:flex;flex-direction:column;gap:6px;margin-top:10px;padding:10px;border:1px dashed var(--spb);border-radius:12px}.sp-mform input,.sp-mform textarea{font:inherit;font-size:13px;border:1px solid var(--spb);border-radius:10px;padding:8px 10px;background:var(--sps);color:var(--spi)}.sp-mform .row{display:flex;gap:6px;flex-wrap:wrap}.sp-mform .row input{flex:1;min-width:120px}
.sp-projcard{border:1px solid var(--spb);border-radius:14px;padding:12px;margin:0 0 12px;background:var(--sps)}.sp-projcard h3{margin:0 0 4px;font:600 14px var(--t-font,-apple-system,system-ui,sans-serif)}.sp-projcard .sp-note{margin-top:2px}.sp-projcard .acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
/* execution */
.sp-exec{height:var(--sp-h,560px);overflow:auto;padding:12px 16px}.sp-kanban{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px;min-width:900px}.sp-col{background:var(--spr);border-radius:14px;padding:10px;min-height:200px}.sp-col-h{display:flex;align-items:center;gap:8px;font:600 13px var(--t-font,-apple-system,system-ui,sans-serif);margin-bottom:8px}.sp-col-h .n{margin-left:auto;font:500 11px var(--t-font,-apple-system,system-ui,sans-serif);background:var(--sps);border-radius:999px;padding:2px 8px;color:var(--spm)}
.sp-issue{background:var(--sps);border:1px solid var(--spb);border-radius:12px;padding:10px 12px;margin:0 0 8px;cursor:pointer}.sp-issue:hover{border-color:var(--ios-blue,#007aff)}.sp-issue .t{font-weight:600;font-size:13px;line-height:1.3}.sp-issue .m{font:11px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--spm);margin-top:4px;display:flex;justify-content:space-between;gap:6px}.sp-issue .chips{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}
.sp-newissue{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start;padding:12px;border:1px dashed var(--spb);border-radius:12px;margin-bottom:12px}.sp-newissue input,.sp-newissue textarea,.sp-newissue select{font:inherit;font-size:13px;border:1px solid var(--spb);border-radius:10px;padding:8px 10px;background:var(--sps);color:var(--spi)}.sp-newissue input{flex:1;min-width:200px}.sp-newissue textarea{flex:2;min-width:240px;min-height:44px}
/* chat */
.sp-chat{height:var(--sp-h,560px);display:flex;flex-direction:column}.sp-chat-log{flex:1;overflow:auto;padding:14px 16px}.sp-msg{margin:0 0 14px;max-width:720px}.sp-msg.me{margin-left:auto;background:var(--t-user-bubble,rgba(11,11,11,.06));border-radius:14px;padding:8px 14px;width:fit-content;max-width:85%}.sp-msg.agent .sp-msg-t{font-size:13px;line-height:1.45;white-space:pre-wrap;margin-bottom:8px}.sp-msg .ios-widget{margin:6px 0}
.sp-msg-who{font-size:11px;color:var(--spm);margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}
.sp-chat-in{display:flex;gap:8px;align-items:center;padding:10px 16px;border-top:1px solid var(--spb);background:var(--spr)}.sp-chat-in .sp-to{font-size:12px;color:var(--spm);white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}.sp-chat-in input{flex:1;font:inherit;font-size:14px;border:1px solid var(--spb);border-radius:999px;padding:9px 14px;background:var(--sps);color:var(--spi)}
.sp-empty{padding:32px 16px;color:var(--spm);text-align:center}
/* views from a sentence: the arrange bar, groups, levers, opened rows, chart, apps, views, canvas */
.sp-arr{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid var(--spb);background:var(--spr);min-height:46px}.sp-arr input{flex:1;min-width:220px;font:inherit;font-size:13px;border:1px solid var(--spb);border-radius:999px;padding:7px 12px;background:var(--sps);color:var(--spi)}.sp-arr-on{display:inline-flex;align-items:center;gap:6px;font-size:12px;background:rgba(10,132,255,.12);color:#0a62c7;border-radius:999px;padding:4px 6px 4px 10px}.sp-arr-on .sp-x{font-size:15px;color:#0a62c7}
.sp-under{height:calc(var(--sp-h,560px) - 46px)!important}.sp-grp td{background:var(--spr);font:600 11px var(--t-font,-apple-system,system-ui,sans-serif);text-transform:uppercase;letter-spacing:.04em;color:var(--spm)}.sp-grp-h{position:absolute;font:600 11px var(--t-font,-apple-system,system-ui,sans-serif);text-transform:uppercase;letter-spacing:.05em;color:var(--spm);background:var(--spr);border:1px solid var(--spb);border-radius:999px;padding:3px 10px;white-space:nowrap;max-width:216px;overflow:hidden;text-overflow:ellipsis}.sp-table td.u{color:var(--spm);font-style:italic}
.sp-levers{margin:10px 0 6px;padding:10px 12px;border:1px solid var(--spb);border-radius:12px;background:var(--spr)}.sp-lever{display:grid;grid-template-columns:150px 1fr 150px;gap:10px;align-items:center;padding:4px 0;font-size:12px}.sp-lever .l{font-weight:600}.sp-lever input[type=range]{width:100%;accent-color:var(--ios-blue,#007aff)}.sp-lever .v{font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp-lever .v.u{color:var(--spm);font-style:italic}@media (max-width:600px){.sp-lever{grid-template-columns:1fr}}
.sp-proj tr.sp-sub td:first-child{padding-left:calc(12px + var(--d,1) * 18px);color:var(--spm)}.sp-proj tr.sp-sub td{background:rgba(120,120,128,.04)}.sp-tg{border:0;background:transparent;color:var(--ios-blue,#007aff);cursor:pointer;font-size:12px;padding:0 6px 0 0;line-height:1}.sp-src{display:inline-block;font:600 9px var(--t-font,-apple-system,system-ui,sans-serif);text-transform:uppercase;letter-spacing:.05em;border-radius:4px;padding:2px 5px;margin-right:2px}.sp-src-measured{background:rgba(52,199,89,.16);color:#1d7a3a}.sp-src-assumed{background:rgba(10,132,255,.14);color:#0a62c7}.sp-src-derived{background:rgba(120,120,128,.14);color:var(--spm)}.sp-src-missing{background:rgba(255,149,0,.16);color:#a15c00}
.sp-metrics.one{grid-template-columns:1fr}
.sp-chart{height:var(--sp-h,560px);overflow:auto;padding:12px 16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:14px;align-content:start}.sp-chartcard{border:1px solid var(--spb);border-radius:14px;padding:12px;background:var(--sps)}.sp-chartcard h3{margin:0 0 6px;font:600 13px var(--t-font,-apple-system,system-ui,sans-serif)}.sp-svg{width:100%;height:auto;display:block}.sp-svg .grid{stroke:var(--spb);stroke-width:1}.sp-svg .ax,.sp-svg .lab,.sp-svg .srcl,.sp-svg .val,.sp-svg .unk{font:10px var(--t-font,-apple-system,system-ui,sans-serif);fill:var(--spm)}.sp-svg .val{fill:var(--spi);font-weight:600}.sp-svg .unk{font-style:italic}.sp-svg .srcl{font-size:8.5px}.sp-svg .bar{fill:#0a84ff;cursor:pointer}.sp-svg .bar.base{fill:#8e8e93}.sp-svg .bar.after{fill:#af52de}.sp-svg .line{fill:none;stroke:#0a84ff;stroke-width:2}.sp-svg .dot{fill:#0a84ff}
.sp-appsv{height:var(--sp-h,560px);overflow:auto;padding:12px 16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px;align-content:start}.sp-appsec{min-width:0}.sp-appsec-h{display:flex;align-items:baseline;gap:8px;margin:0 0 6px;font:600 13px var(--t-font,-apple-system,system-ui,sans-serif)}.sp-appsec-h small{color:var(--spm);font-weight:400;font-size:11px}.sp-appsec-b .ios-widget{max-width:none;margin:0 0 10px}.sp-appsec-b .ms-card{margin:0 0 10px;padding:0;border:0}
.sp-viewsv{height:var(--sp-h,560px);overflow:auto;padding:12px 16px}.sp-viewform{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:10px 12px;border:1px dashed var(--spb);border-radius:12px;margin:10px 0}.sp-viewform select,.sp-viewform input{font:inherit;font-size:12px;border:1px solid var(--spb);border-radius:10px;padding:6px 8px;background:var(--sps);color:var(--spi)}.sp-viewform input{flex:1;min-width:160px}.sp-viewgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-top:12px}.sp-viewcard{border:1px solid var(--spb);border-left:4px solid var(--nc,#64d2ff);border-radius:12px;padding:10px 12px;background:var(--sps)}.sp-viewcard h3{margin:2px 0 4px;font:600 14px var(--t-font,-apple-system,system-ui,sans-serif)}.sp-viewcard .acts{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:8px}
.sp-viewhead{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid var(--spb);background:var(--spr);min-height:46px;font-size:13px}.sp-viewhead .sp-rule-text{margin:0;font-size:12px}.sp-viewhead small{color:var(--spm);font-size:11px}.sp-viewhead input{flex:1;min-width:200px;font:inherit;font-size:12px;border:1px solid var(--spb);border-radius:999px;padding:6px 10px;background:var(--sps);color:var(--spi)}
.sp-compare,.sp-needsv{height:var(--sp-h,560px);overflow:auto;padding:12px 16px}.sp-compare .ios-widget{max-width:none;margin:12px 0 0}
.sp-canvasv{height:var(--sp-h,560px);display:flex;flex-direction:column}.sp-canvasbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid var(--spb);background:var(--spr)}.sp-canvasbar select{font:inherit;font-size:12px;border:1px solid var(--spb);border-radius:10px;padding:6px 8px;background:var(--sps);color:var(--spi)}.sp-canvasrow{flex:1;min-height:0;display:flex;gap:10px;padding:10px;overflow:auto}.sp-pane{min-width:240px;display:flex;flex-direction:column;border:1px solid var(--spb);border-radius:14px;background:var(--sps);overflow:hidden;--sp-h:calc(100% - 38px)}.sp-pane.over{outline:2px dashed var(--ios-blue,#007aff);outline-offset:-4px}.sp-pane.dragging{opacity:.5}.sp-pane-h{display:flex;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid var(--spb);background:var(--spr);cursor:grab;font-size:12px}.sp-pane-h .sp-k{flex:1}.sp-pane-h input{width:54px;font:inherit;font-size:11px;border:1px solid var(--spb);border-radius:8px;padding:2px 4px;background:var(--sps);color:var(--spi)}.sp-pane-b{flex:1;min-height:0;overflow:auto;position:relative}.sp-pane-b>.sp-boardwrap,.sp-pane-b>.sp-table,.sp-pane-b>.sp-chart,.sp-pane-b>.sp-appsv,.sp-pane-b>.sp-metrics,.sp-pane-b>.sp-graph,.sp-pane-b>.sp-timeline,.sp-pane-b>.sp-rulesv,.sp-pane-b>.sp-exec,.sp-pane-b>.sp-ov,.sp-pane-b>.sp-compare,.sp-pane-b>.sp-needsv{height:100%}
@media (max-width:760px){.sp-body.has-panel{grid-template-columns:minmax(0,1fr)}.sp-panel{position:absolute;inset:0;z-index:6;max-height:none}.sp-tl{grid-template-columns:1fr}.sp-canvasrow{flex-direction:column}.sp-pane{flex:0 0 auto!important;min-height:360px}}

/* a card's links, said under it: count, access, and how many are not shown to this viewer (T-0310) */
.sp-disclose{font:12px/1.4 var(--ui,-apple-system,system-ui,sans-serif);color:var(--ios-2,#7a7a80);margin:-8px 4px 14px;max-width:400px}

/* free canvas (web/console/space.js free()): any object at x/y, pan, zoom, pinch, drop on, wire, sentence, presence */
.fc-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--spb)}
.fc-say{display:flex;gap:6px;flex:1 1 420px;min-width:0}.fc-say input{flex:1;min-width:0;font:inherit;font-size:13px;border:1px solid var(--spb);border-radius:999px;padding:8px 14px;background:var(--sps);color:var(--spi)}
.fc-zoom{display:inline-flex;border:1px solid var(--spb);border-radius:999px;overflow:hidden}.fc-zoom button{font:inherit;font-size:13px;border:0;background:var(--sps);color:var(--spi);padding:6px 12px;cursor:pointer;min-width:36px}.fc-zoom button+button{border-left:1px solid var(--spb)}
.fc-here{font-size:12px;color:#0ca678;font-weight:600}.fc-hint{font-size:12px;color:var(--spm);flex-basis:100%}
.fc-stage{position:relative;height:var(--sp-h,640px);overflow:hidden;touch-action:none;background:radial-gradient(circle at 1px 1px,var(--spb) 1px,transparent 0) 0 0/24px 24px,var(--sps);cursor:grab}
.fc-world{position:absolute;left:0;top:0;transform-origin:0 0;min-width:800px;min-height:600px}
.fc-wires{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}
.fc-wires path{fill:none;stroke-width:1.5}.fc-wires path.rel{stroke:var(--spm);opacity:.45}.fc-wires path.wire{stroke:#e8590c;stroke-width:2.4;color:#e8590c}.fc-wires path.live{stroke-dasharray:6 5}
.fc-wires text.wire-t{font:600 11px -apple-system,system-ui,sans-serif;fill:#e8590c;pointer-events:auto;cursor:pointer;paint-order:stroke;stroke:var(--sps);stroke-width:4px}
.fc-card{position:absolute;width:236px;background:var(--sps);border:1px solid var(--spb);border-radius:14px;box-shadow:0 1px 2px rgba(0,0,0,.06),0 8px 22px rgba(0,0,0,.08);touch-action:none}
.fc-card.app{width:420px}.fc-card.on{outline:2px solid #0a84ff}.fc-card.drag{box-shadow:0 18px 40px rgba(0,0,0,.22);z-index:5;cursor:grabbing}.fc-card.drop{outline:3px dashed #e8590c;outline-offset:3px}.fc-card.remote{outline:2px solid #7048e8}
.fc-h{display:flex;align-items:center;gap:8px;padding:7px 10px;border-bottom:1px solid var(--spb);cursor:grab;font:600 11px -apple-system,system-ui,sans-serif;color:var(--spm);text-transform:uppercase;letter-spacing:.03em}
.fc-t{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fc-port{flex:none;width:16px;height:16px;border-radius:50%;border:2px solid #e8590c;background:var(--sps);cursor:crosshair;padding:0;touch-action:none}.fc-port:hover{background:#e8590c}
.fc-b{padding:8px}.fc-b .sp-node{position:static;width:auto;box-shadow:none;border:0;padding:0}.fc-b .ios-widget{margin:0;max-width:none}
.fc-cursors{position:absolute;inset:0;pointer-events:none}.fc-cur{position:absolute;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:14px solid var(--cc);transform:rotate(-30deg)}.fc-cur span{position:absolute;left:10px;top:12px;white-space:nowrap;background:var(--cc);color:#fff;font:600 11px -apple-system,sans-serif;padding:2px 7px;border-radius:7px;transform:rotate(30deg)}
.fc-ask,.fc-pick{position:absolute;z-index:10;background:var(--sps);border:1px solid var(--spb);border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.2);padding:12px;width:320px;max-width:calc(100% - 16px);display:grid;gap:8px}
.fc-ask .q{font-size:13px;font-weight:600}.fc-ask input,.fc-pick input{font:inherit;font-size:13px;border:1px solid var(--spb);border-radius:8px;padding:8px 10px;background:var(--sps);color:var(--spi)}.fc-ask .r{display:flex;justify-content:flex-end;gap:6px}
.fc-pick{left:50%;top:16px;transform:translateX(-50%);width:420px}.fc-pick .l{max-height:340px;overflow:auto;display:grid;gap:4px}.fc-pick .l button{text-align:left;font:inherit;font-size:13px;border:1px solid var(--spb);background:var(--sps);color:var(--spi);border-radius:8px;padding:7px 10px;cursor:pointer;display:grid}.fc-pick .l small{color:var(--spm)}.fc-pick .sp-x{position:absolute;right:8px;top:6px}
@media (max-width:640px){.fc-card.app{width:330px}.fc-hint{display:none}.fc-say{flex-basis:100%}}

/* the workspace (web/console/space.js): Table, Board and Canvas first; the find bar; the status board; source badges; the detail panel; canvas cards */
.sp-views .pri{font-weight:600}.sp-views-sep{width:1px;align-self:stretch;background:var(--spb);margin:4px 6px;flex:none}
@media (max-width:760px){.sp-views{flex-wrap:nowrap;overflow-x:auto;margin-left:0;width:100%;scrollbar-width:none}.sp-views::-webkit-scrollbar{display:none}.sp-views button{flex:none}}
.sp-work{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--spb)}
.sp-work input[type=search]{flex:1 1 220px;min-width:0;font:inherit;font-size:13px;border:1px solid var(--spb);border-radius:999px;padding:7px 14px;background:var(--sps);color:var(--spi)}
.sp-work select,.sp-cellsel,.sp-dform select{font:inherit;font-size:13px;border:1px solid var(--spb);border-radius:8px;padding:5px 8px;background:var(--sps);color:var(--spi);max-width:100%}
.sp-work .sp-mini{margin-left:0}.sp-work-n{font-size:12px;color:var(--spm)}
.sp-pv{display:inline-flex;align-items:center;font:600 10px/1 var(--t-font,-apple-system,system-ui,sans-serif);letter-spacing:.04em;text-transform:uppercase;padding:3px 6px;border-radius:5px;white-space:nowrap;border:1px solid transparent;flex:none}
.sp-pv.pv-connected{background:rgba(52,199,89,.15);color:#1d7a3a}
.sp-pv.pv-typed{background:rgba(120,120,128,.15);color:#55555a}
.sp-pv.pv-sample{background:repeating-linear-gradient(135deg,rgba(255,149,0,.2) 0 6px,rgba(255,149,0,.06) 6px 12px);color:#a15c00;border-color:rgba(255,149,0,.5)}
.sp-pv.pv-computed{background:rgba(175,82,222,.15);color:#8e3dbb}
.sp-pv.pv-derived{background:rgba(10,132,255,.12);color:#0a60c2}
.sp-pri{font:600 10px/1 var(--t-font,-apple-system,system-ui,sans-serif);padding:3px 6px;border-radius:5px;text-transform:uppercase;letter-spacing:.04em}.sp-pri.high{background:rgba(255,59,48,.14);color:#b3261e}.sp-pri.low{background:var(--spr);color:var(--spm)}
.sp-kb{display:flex;gap:12px;padding:12px;overflow-x:auto;height:var(--sp-h,560px);align-items:stretch;box-sizing:border-box}
.sp-kb-col{flex:0 0 280px;display:flex;flex-direction:column;min-height:0;background:var(--spr);border-radius:14px;border:2px solid transparent}
.sp-kb-col.over{border-color:var(--ios-blue,#007aff);background:rgba(0,122,255,.07)}
.sp-kb-h{display:flex;justify-content:space-between;align-items:center;margin:0;padding:10px 12px 6px;font:600 13px var(--t-font,-apple-system,system-ui,sans-serif)}.sp-kb-h .n{font-weight:500;color:var(--spm);font-size:12px}
.sp-kb-list{flex:1;overflow-y:auto;padding:4px 8px 10px;display:flex;flex-direction:column;gap:8px}
.sp-kb-card{position:relative;background:var(--sps);border:1px solid var(--spb);border-radius:12px;padding:9px 10px 8px 13px;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.05);flex:none}
.sp-kb-card::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:2px;background:var(--nc)}
.sp-kb-card.movable{cursor:grab;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.sp-kb-card.lift{box-shadow:0 10px 26px rgba(0,0,0,.18);transform:scale(1.02)}.sp-kb-ghost{position:fixed;z-index:1000;pointer-events:none;transform:rotate(2deg);box-shadow:0 18px 40px rgba(0,0,0,.25);opacity:.95}.sp-kb-card.on{outline:2px solid var(--ios-blue,#007aff)}.sp-kb-card.drag{opacity:.45}.sp-kb-card.saving,.sp-table tr.saving{opacity:.65}
.sp-kb-card:focus-visible,.fc-card:focus-visible,.sp-table tr:focus-visible,.sp-table th:focus-visible{outline:2px solid var(--ios-blue,#007aff);outline-offset:2px}
.sp-kb-top{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.sp-kb-top .sp-pill{margin:0;font-size:10px;padding:3px 6px}
.sp-kb-t{font-weight:600;font-size:13px;line-height:1.3;margin-top:6px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.sp-kb-s{font-size:12px;color:var(--spm);margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.sp-kb-note{font-size:12px;margin-top:6px;padding:5px 7px;background:rgba(255,204,0,.16);border-radius:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sp-kb-f{display:flex;gap:8px;justify-content:space-between;font-size:11px;color:var(--spm);margin-top:6px}
.sp-kb-more{font:inherit;font-size:12px;border:1px dashed var(--spb);background:transparent;color:var(--spm);border-radius:10px;padding:8px;cursor:pointer;flex:none}.sp-table-more{display:block;margin:10px auto}
.sp-kb-empty{font-size:12px;color:var(--spm);text-align:center;padding:18px 8px;border:1px dashed var(--spb);border-radius:10px}
@media (max-width:760px){.sp-kb{scroll-snap-type:x mandatory;padding:10px}.sp-kb-col{flex-basis:86%;scroll-snap-align:start}}
.sp-table tr[tabindex]{cursor:pointer}.sp-table td.nw{white-space:nowrap}.sp-table td{vertical-align:middle}.sp-renamed{margin-left:6px;font-size:10px;color:var(--spm);border:1px solid var(--spb);border-radius:4px;padding:1px 4px;white-space:nowrap}
.sp-dt{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.sp-dt .sp-pill{margin:0}
.sp-d-title{font:700 18px/1.3 var(--t-font,-apple-system,system-ui,sans-serif);margin:8px 0 4px;overflow-wrap:anywhere}
.sp-seg{display:flex;flex-wrap:wrap;gap:4px}.sp-seg button{font:inherit;font-size:12px;border:1px solid var(--spb);background:var(--sps);color:var(--spi);border-radius:999px;padding:6px 12px;cursor:pointer}.sp-seg button.on{background:var(--spi);color:var(--sps);border-color:var(--spi)}.sp-seg button:disabled{cursor:default;opacity:.55}.sp-seg button.on:disabled{opacity:.85}
.sp-dform{display:grid;gap:8px;margin-top:10px}.sp-dform label{display:grid;gap:3px;font-size:11px;color:var(--spm);font-weight:600;text-transform:uppercase;letter-spacing:.03em}
.sp-dform input,.sp-dform textarea{font:inherit;font-size:13px;text-transform:none;letter-spacing:0;font-weight:400;color:var(--spi);border:1px solid var(--spb);border-radius:8px;padding:7px 9px;background:var(--sps)}.sp-dform textarea{min-height:56px;resize:vertical}.sp-dform .row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.sp-dform .row .sp-note{margin:0}
.sp-src-box{display:grid;gap:5px;padding:9px 11px;border-radius:10px;border:1px solid var(--spb);background:var(--spr);font-size:13px;overflow-wrap:anywhere}.sp-src-box small{color:var(--spm)}.sp-src-box blockquote{margin:2px 0 0;padding-left:8px;border-left:3px solid var(--spb);color:var(--spm);font-size:12px}
.sp-kv2{display:grid;grid-template-columns:96px 1fr;gap:3px 10px;font-size:13px;margin:8px 0 0}.sp-kv2 dt{color:var(--spm)}.sp-kv2 dd{margin:0;overflow-wrap:anywhere}
.sp-ftab .sp-proj{font-size:12px}.sp-linkbtn{font:inherit;border:0;background:none;color:var(--ios-blue,#007aff);padding:0;cursor:pointer;text-align:left}
.sp-acts{display:flex;flex-wrap:wrap;gap:4px}.sp-ev-d{font-size:12px;color:var(--spm);margin:2px 0 4px;overflow-wrap:anywhere}
.sp-live{margin-top:12px}.sp-live summary{font-size:12px;color:var(--spm);cursor:pointer;margin-bottom:6px}
@media (max-width:760px){.sp-body.has-panel .sp-panel{position:fixed;inset:auto 0 0 0;max-height:80vh;border-left:0;border-top:1px solid var(--spb);border-radius:18px 18px 0 0;box-shadow:0 -12px 40px rgba(0,0,0,.2);z-index:40}}
.fc-card{box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;border-top:3px solid var(--nc,#8e8e93);cursor:pointer}
.fc-card .fc-h .sp-pv{margin-left:auto}.fc-card .fc-h .sp-pv+.fc-port{margin-left:0}
.fc-card:not(.app) .fc-b{flex:1;min-height:0;display:flex;flex-direction:column;gap:4px;padding:8px 11px 9px}
.fc-card.app .fc-b{flex:1;overflow:auto}
.fc-title{font-weight:600;font-size:13px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;color:var(--spi)}
.fc-sub{font-size:11.5px;line-height:1.35;color:var(--spm);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.fc-f{margin-top:auto;display:flex;gap:6px;align-items:center;font-size:11px;color:var(--spm)}
.fc-st{font-weight:600;padding:2px 6px;border-radius:5px;background:var(--spr);color:var(--spi)}.fc-st.st-doing{background:rgba(10,132,255,.14);color:#0a60c2}.fc-st.st-review{background:rgba(255,149,0,.16);color:#a15c00}.fc-st.st-done{background:rgba(52,199,89,.16);color:#1d7a3a}.fc-st.st-dropped{opacity:.6;text-decoration:line-through}
.fc-card.nb{outline:2px solid rgba(10,132,255,.35)}.fc-card.saving{opacity:.65}
.fc-head{position:absolute;font:700 12px var(--t-font,-apple-system,system-ui,sans-serif);text-transform:uppercase;letter-spacing:.06em;color:var(--nc);white-space:nowrap}
.fc-world.lod .fc-h,.fc-world.lod .fc-sub,.fc-world.lod .fc-f{display:none}.fc-world.lod .fc-title{font-size:24px;-webkit-line-clamp:4}.fc-world.lod .fc-head{font-size:28px}
.fc-wires path.on{stroke:var(--ios-blue,#007aff);opacity:.9;stroke-width:2}.fc-wires text.rel-t{font:600 11px -apple-system,system-ui,sans-serif;fill:#0a60c2;paint-order:stroke;stroke:var(--sps);stroke-width:4px}
@media (max-width:760px){.ms-space-main{padding:8px}.sp-top{padding:10px 12px}.sp-title{min-width:0;max-width:100%;flex-wrap:wrap}.sp-title small{flex-basis:100%}.sp-title small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.sp-ingest:not([hidden]){display:flex;flex-wrap:wrap;padding:8px 10px}.sp-ingest-in{min-width:0}.sp-ingest-in input[type=text]{min-width:0!important;flex-basis:100%!important}.fc-say{display:flex;flex-basis:100%}.fc-bar{padding:8px 10px;gap:6px}.sp-work{padding:8px 10px}}
.fc-stage:focus-visible{outline:2px solid var(--ios-blue,#007aff);outline-offset:-2px}.fc-count{font-size:12px;color:var(--spm)}.fc-empty{position:absolute;inset:40px 20px auto}
/* wire chips (web/console/space.js wires()): above the cards, never on one; colour = the wire's newest state */
.fc-wlabels{position:absolute;left:0;top:0;width:0;height:0;z-index:5;pointer-events:none}
.fc-wl{position:absolute;box-sizing:border-box;pointer-events:auto;background:var(--sps,#fff);border:1px solid #e8590c;border-left-width:4px;border-radius:8px;padding:4px 8px;font:500 11px/1.35 -apple-system,system-ui,sans-serif;color:var(--spi,#1d1d1f);box-shadow:0 2px 8px rgba(0,0,0,.12);cursor:default}
.fc-wl .wl1{display:flex;align-items:center;gap:2px;white-space:nowrap;overflow:hidden}
.fc-wl .wl-dot{width:8px;height:8px;border-radius:50%;background:currentColor;margin-right:4px;flex:none}
.fc-wl .wl-op,.fc-wl .wl-at{color:var(--spm,#6e6e73);overflow:hidden;text-overflow:ellipsis}
.fc-wl .wl-x{margin-left:auto;border:0;background:none;color:var(--spm,#6e6e73);font-size:14px;line-height:1;cursor:pointer;padding:0 2px}
.fc-wl .wl2{margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--spi,#1d1d1f)}.fc-wl .wl2.err{color:#c92a2a}
.fc-wl.ws-pending{border-color:#868e96;color:#868e96}.fc-wl.ws-running{border-color:#1971c2;color:#1971c2}.fc-wl.ws-succeeded{border-color:#2b8a3e;color:#2b8a3e}
.fc-wl.ws-failed,.fc-wl.ws-refused,.fc-wl.ws-invalid,.fc-wl.ws-not_found,.fc-wl.ws-unavailable{border-color:#c92a2a;color:#c92a2a}.fc-wl.ws-uncertain,.fc-wl.ws-stale{border-color:#e67700;color:#e67700}
.fc-wl .wl-st{color:inherit}
.fc-wl.ws-skipped{border-color:#868e96;color:#868e96}.fc-wl.ws-off{opacity:.6;border-style:dashed}.fc-wires path.wire.ws-skipped{stroke:#868e96;color:#868e96}
.fc-wires path.wire.ws-pending{stroke:#868e96;color:#868e96;stroke-dasharray:4 4}.fc-wires path.wire.ws-running{stroke:#1971c2;color:#1971c2}.fc-wires path.wire.ws-succeeded{stroke:#2b8a3e;color:#2b8a3e}
.fc-wires path.wire.ws-failed,.fc-wires path.wire.ws-refused,.fc-wires path.wire.ws-invalid,.fc-wires path.wire.ws-not_found,.fc-wires path.wire.ws-unavailable{stroke:#c92a2a;color:#c92a2a}
@media (prefers-color-scheme:dark){.fc-wl{box-shadow:0 2px 8px rgba(0,0,0,.5)}}
/* canvas and graph at hundreds of objects (round-next 05): the whole-canvas map, go-to-group, graph nodes placed by links */
.fc-mini{position:absolute;right:10px;bottom:10px;width:168px;height:112px;z-index:6;background:var(--sps);border:1px solid var(--spb);border-radius:10px;box-shadow:0 4px 14px rgba(0,0,0,.12);cursor:pointer;touch-action:none}
.fc-go{font:inherit;font-size:13px;border:1px solid var(--spb);border-radius:999px;padding:6px 10px;background:var(--sps);color:var(--spi);max-width:240px;min-width:0}
.sp-graph-o{position:relative}.sp-graph-o .sp-legend summary{cursor:pointer;list-style:none}.sp-graph-o .sp-legend summary::-webkit-details-marker{display:none}.sp-graph-o .sp-legend[open] summary{margin-bottom:4px}
.sp-graph .sp-node{height:62px;box-sizing:border-box;overflow:hidden}.sp-graph .sp-node-v{display:none}.sp-graph .sp-node-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;line-height:1.25}
.sp-gr-head{position:absolute;font:700 11px var(--t-font,-apple-system,system-ui,sans-serif);text-transform:uppercase;letter-spacing:.05em;color:var(--nc,#8e8e93);white-space:nowrap}
.sp-edges path title{pointer-events:none}
@media (max-width:640px){.fc-mini{width:112px;height:76px;right:8px;bottom:8px}.fc-go{max-width:100%;flex:1 1 140px}.fc-bar{gap:6px;padding:8px}.fc-count{flex-basis:100%}}
@media (max-width:640px){.fc-zoom button{padding:6px 9px}.fc-bar .sp-btn{padding:6px 11px}.fc-go{flex:1 1 96px}}
.fc-head{overflow:hidden;text-overflow:ellipsis}.fc-world.lod .fc-head{font-size:calc(12px * var(--inv,2.3))}
.fc-card.light{cursor:pointer;box-shadow:none;border-top-width:6px}.fc-card.light .fc-title{font-size:26px;-webkit-line-clamp:2;padding:6px 10px;line-height:1.15}
@media (max-width:640px){.fc-mini{top:8px;bottom:auto}}
.fc-world.lod .fc-head{transform:translateY(calc(28px - 100%))}
