@a9n-shoji/rvw 0.4.2 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -0
- package/README.md +4 -1
- package/dist/cli.mjs +699 -3
- package/dist/cli.mjs.map +4 -4
- package/dist/web/assets/StructureViewer-RiN3cqvU.js +5 -0
- package/dist/web/assets/{index-B0xRoLW2.css → index-CUAdTtdU.css} +1 -1
- package/dist/web/assets/index-D0LsMDeu.js +11 -0
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/skills/rvw-structure/SKILL.md +27 -2
- package/skills/rvw-structure/references/structure-authoring.md +33 -4
- package/dist/web/assets/StructureViewer-u7de1S8C.js +0 -5
- package/dist/web/assets/index-DUZmOKYW.js +0 -11
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{c as t,i as n,l as r,t as i}from"./FileIcon-wDKKQgGv.js";import{a,c as o,d as s,f as c,h as l,i as u,l as d,m as f,n as p,o as m,p as h,r as g,s as _,t as v,u as y}from"./index-D0LsMDeu.js";var b=e(r(),1),x=210,S=136,C=64,w=11,T=2;function E(e,t){return e===t?0:e<t?-1:1}function D(e){let t=[...new Set(e)],n=new Map(t.map(e=>[e,e.split(`/`)]));return new Map(t.map(e=>{let r=n.get(e);for(let i=1;i<=r.length;i+=1){let a=r.slice(-i).join(`/`);if(t.every(t=>t===e||n.get(t).slice(-i).join(`/`)!==a))return[e,a]}return[e,e]}))}function O(e,t){let n=e.anchors.flatMap(e=>{let n=t.get(e.path);return n?[n]:[]}),r=[...new Set(n)].sort(E);return{anchorCount:e.anchors.length,changeKind:r.length>1?`mixed`:r.length===1?r[0]:null}}function k(e,t,n=0,r=!1){let i=t[e.from],a=t[e.to];if(!i||!a)return null;let o=i.x+114,s=i.y+56,c=a.x+114,l=a.y+56;if(e.from===e.to){let e=i.x+228,t=i.y,r=n*.3,a=88+Math.abs(n)*.35;return{path:`M ${e+8} ${t+34+r} C ${e+a} ${t-84+r}, ${e+a} ${t+112+84+r}, ${e+8} ${t+112-34+r}`,startX:e+8,startY:t+34+r,control1X:e+a,control1Y:t-84+r,control2X:e+a,control2Y:t+112+84+r,endX:e+8,endY:t+112-34+r,bounds:{left:e+8,top:t-84+r,right:e+a,bottom:t+112+84+r}}}let u=c-o,d=l-s,f=Math.max(1,Math.hypot(u,d)),p=u/f,m=d/f,h=-m,g=p,_=Math.min(114/Math.max(1e-4,Math.abs(p)),56/Math.max(1e-4,Math.abs(m)))+8,v=o+p*_+h*n,y=s+m*_+g*n,b=c-p*_+h*n,x=l-m*_+g*n,S=Math.min(r?168:96,Math.max(r?132:n===0?28:52,f*(r?.18:.1)))+n*.35,C=v+(b-v)*.36+h*S,w=y+(x-y)*.36+g*S,T=v+(b-v)*.64+h*S,E=y+(x-y)*.64+g*S;return{path:`M ${v} ${y} C ${C} ${w}, ${T} ${E}, ${b} ${x}`,startX:v,startY:y,control1X:C,control1Y:w,control2X:T,control2Y:E,endX:b,endY:x,bounds:{left:Math.min(v,C,T,b),top:Math.min(y,w,E,x),right:Math.max(v,C,T,b),bottom:Math.max(y,w,E,x)}}}function A(e){let t=new Set(e.filter(e=>e.directed&&e.from!==e.to).map(e=>JSON.stringify([e.from,e.to])));return new Set(e.filter(e=>e.directed&&e.from!==e.to&&t.has(JSON.stringify([e.to,e.from]))).map(e=>e.id))}function ee(e,t,n){let r=1-t,i=r**3*e.startX+3*r**2*t*e.control1X+3*r*t**2*e.control2X+t**3*e.endX,a=r**3*e.startY+3*r**2*t*e.control1Y+3*r*t**2*e.control2Y+t**3*e.endY,o=3*r**2*(e.control1X-e.startX)+6*r*t*(e.control2X-e.control1X)+3*t**2*(e.endX-e.control2X),s=3*r**2*(e.control1Y-e.startY)+6*r*t*(e.control2Y-e.control1Y)+3*t**2*(e.endY-e.control2Y),c=Math.max(1,Math.hypot(o,s));return{x:i+-s/c*n,y:a+o/c*n}}function j(e,t){return!(e.right<t.left||e.left>t.right||e.bottom<t.top||e.top>t.bottom)}function M(e,t,n,r,i=0){return{left:e-n/2-i,top:t-r/2-i,right:e+n/2+i,bottom:t+r/2+i}}function N(e){return e.length===0?null:{left:Math.min(...e.map(e=>e.left)),top:Math.min(...e.map(e=>e.top)),right:Math.max(...e.map(e=>e.right)),bottom:Math.max(...e.map(e=>e.bottom))}}function P(e){return[...e].reduce((e,t)=>e+(/\p{Script=Han}|\p{Script=Hiragana}|\p{Script=Katakana}/u.test(t)?1:.56),0)}function F(e,t){return/\s/u.test(e)||/[./_-]/u.test(e)||e===`:`&&t===`:`}function te(e,t){let n=[...e.trimEnd()];for(;n.length>0&&P(n.join(``)+`…`)>t;)n.pop();return`${n.join(``).trimEnd()}…`}function ne(e,t){let n=e.trim();if(!n)return[``];let r=[];for(;P(n)>t;){let e=[...n],i=0,a=0,o=0;for(let n=0;n<e.length;n+=1){let r=e[n],s=i+P(r);if(s>t&&a>0)break;if(i=s,a=n+1,F(r,e[n+1])){if(r===`:`&&e[n+1]===`:`){if(s+P(e[n+1])<=t)o=n+2;else if(n>0){o=n;break}}else o=n+1}if(i>t)break}let s=Math.min(e.length,o>0?o:Math.max(1,a));if(r.push(e.slice(0,s).join(``).trimEnd()),n=e.slice(s).join(``).trimStart(),!n)break}return n&&r.push(n),r}function I(e){let t=Math.max(.56,e.maxUnits),n=e.text.replaceAll(`\r
|
|
2
|
+
`,`
|
|
3
|
+
`).replaceAll(`\r`,`
|
|
4
|
+
`).split(`
|
|
5
|
+
`).flatMap(e=>ne(e,t)),r=e.maxLines??1/0;if(n.length<=r)return n;let i=n.slice(0,Math.max(1,r));return e.ellipsize!==!1&&(i[i.length-1]=te(i[i.length-1],t)),i}function L(e,t,n,r,i=x){let a=Math.ceil(P(e.label)*11.5),o=Math.min(i,Math.max(C,a+w+T)),s=Math.max(1,o-w),c=I(r===`viewer-clamped`?{text:e.label,maxUnits:s/11.5,maxLines:2,ellipsize:!0}:{text:e.label,maxUnits:s/11.5,ellipsize:!1}),l=Math.max(24,c.length*14+10),u=O(e,t),d=u.anchorCount>1?4:0,f=n===`source-actions`&&u.anchorCount>0?29+d:0,p=n===`source-actions`?Math.max(l,u.anchorCount>1?34:u.anchorCount===1?26:0):l;return{selectWidth:o,boxWidth:o+f,height:p,displayLines:c,source:u}}function re(e,t,n,r,i,a,o,s){let c=t.flatMap(e=>{let t=n[e.id];return t?[{left:t.x,top:t.y,right:t.x+228,bottom:t.y+112}]:[]}),l=new Map,u=e=>{let t=[],n=Math.floor(e.left/128),r=Math.floor(e.right/128),i=Math.floor(e.top/128),a=Math.floor(e.bottom/128);for(let e=n;e<=r;e+=1)for(let n=i;n<=a;n+=1)t.push(`${e}:${n}`);return t},d=e=>{let t=new Set;for(let n of u(e)){let r=l.get(n);if(r){if(r.saturated)return!0;for(let n of r.boxes)if(!t.has(n)&&(t.add(n),j(e,n)))return!0}}return!1},f=e=>{for(let t of u(e)){let n=l.get(t)??{boxes:[],saturated:!1};n.saturated||(n.boxes.push(e),n.boxes.length>=48&&(n.boxes=[],n.saturated=!0)),l.set(t,n)}},p=[],m=Array.from({length:22},(e,t)=>.08+t*.04).sort((e,t)=>Math.abs(e-.5)-Math.abs(t-.5)),h=[0,12,-12,24,-24,36,-36,48,-48].flatMap(e=>m.map(t=>[t,e])),g=[...e].sort((e,t)=>E(e.id,t.id));for(let[e,t]of g.entries()){let l=k(t,n,i.get(t.id)??0,a.has(t.id));if(!l)continue;let u=L(t,r,o,s),m=[u];if(s===`viewer-clamped`){let e=L(t,r,o,s,S);e.boxWidth<u.boxWidth&&m.push(e)}let g,_,v;for(let t of m){let n=h.map(([e,t])=>ee(l,e,t));v??=n[e%n.length];let r=n.filter(e=>{let n=M(e.x,e.y,t.boxWidth,t.height,4);return!c.some(e=>j(n,e))}),i=r.find(e=>{let n=M(e.x,e.y,t.boxWidth,t.height,5);return!d(n)});if(i){g={point:i,size:t};break}let a=r[e%r.length];a&&(_={point:a,size:t})}let y=g??_??{point:v,size:u};f(M(y.point.x,y.point.y,y.size.boxWidth,y.size.height,4)),p.push({edge:t,displayLines:y.size.displayLines,source:y.size.source,x:y.point.x,y:y.point.y,selectWidth:y.size.selectWidth,boxWidth:y.size.boxWidth,height:y.size.height,crowded:!g})}return p}function ie(e){let{structure:t,positions:n,sourceChangeKinds:r,selection:i,labelAccessory:a,edgeLabelMode:o}=e,c=D([...t.nodes.flatMap(e=>e.anchor?[e.anchor.path]:[]),...t.edges.flatMap(e=>e.anchors.map(e=>e.path))]),l=t.nodes.flatMap(e=>{if(!i.nodeIds.has(e.id))return[];let t=n[e.id];return t?[{node:e,point:t,sourceLabel:e.anchor?c.get(e.anchor.path)??e.anchor.path:null,changeKind:e.anchor?r.get(e.anchor.path)??null:null}]:[]}),u=new Set(l.map(({node:e})=>e.id)),d=t.edges.filter(e=>i.edgeIds.has(e.id)&&u.has(e.from)&&u.has(e.to)),f=s(t.edges),p=A(t.edges),m=d.flatMap(e=>{let t=k(e,n,f.get(e.id)??0,p.has(e.id));return t?[{edge:e,geometry:t,source:O(e,r)}]:[]}),h=new Set(m.map(({edge:e})=>e.id)),g=re(d.filter(e=>h.has(e.id)&&i.labelEdgeIds.has(e.id)),l.map(({node:e})=>e),n,r,f,p,a,o),_=l.map(({point:e})=>({left:e.x,top:e.y,right:e.x+228,bottom:e.y+112}));return _.push(...m.map(({geometry:e})=>e.bounds)),_.push(...g.map(e=>M(e.x,e.y,e.boxWidth,e.height,4))),{nodes:l,edges:m,labels:g,bounds:N(_)}}function ae(e){let{structure:t}=e;return ie({...e,selection:{nodeIds:new Set(t.nodes.map(e=>e.id)),edgeIds:new Set(t.edges.map(e=>e.id)),labelEdgeIds:new Set(t.edges.map(e=>e.id))},labelAccessory:`none`,edgeLabelMode:`export-complete`})}var R=class extends Error{code;constructor(e){super(e),this.code=e,this.name=`StructureExportError`}},z=48,B=2,V=16384,H=32e6,oe=.5,se=`ui-monospace, SFMono-Regular, Consolas, Liberation Mono, monospace`,U=`Arial, Helvetica Neue, sans-serif`,W=[`default`,`added`,`modified`,`deleted`,`renamed`,`type-changed`,`mixed`],G={background:`--bg`,panel:`--panel`,text:`--text`,muted:`--muted`,line:`--line`,lineStrong:`--line-strong`,accent:`--accent`,success:`--success`,attention:`--attention`,danger:`--danger`,done:`--done`,info:`--info`};function ce(e){let t=getComputedStyle(e);return Object.fromEntries(Object.entries(G).map(([e,n])=>{let r=t.getPropertyValue(n).trim();if(!r)throw new R(`INVALID_BOUNDS`);return[e,r]}))}function K(e){let t=``;for(let n of e){let e=n.codePointAt(0);(e===9||e===10||e===13||e>=32&&e<=55295||e>=57344&&e<=65533||e>=65536&&e<=1114111)&&(t+=n)}return t}function q(e){return K(e).replaceAll(`&`,`&`).replaceAll(`<`,`<`).replaceAll(`>`,`>`).replaceAll(`"`,`"`).replaceAll(`'`,`'`)}function J(e){if(!Number.isFinite(e))throw new R(`INVALID_BOUNDS`);return Number(e.toFixed(3)).toString()}function le(e,t,n){switch(e){case`added`:return t.success;case`modified`:case`mixed`:return t.attention;case`deleted`:return t.danger;case`renamed`:return t.done;case`type-changed`:return t.info;default:return n}}function Y(e){let t=e.anchor??`start`;return`<text x="${J(e.x)}" y="${J(e.firstY)}" fill="${q(e.fill)}" font-family="${q(e.fontFamily)}" font-size="${J(e.fontSize)}"${e.fontWeight?` font-weight="${e.fontWeight}"`:``} text-anchor="${t}">${e.lines.map((t,n)=>`<tspan x="${J(e.x)}" dy="${n===0?`0`:J(e.lineHeight)}">${q(t)}</tspan>`).join(``)}</text>`}function X(e){let{node:t,point:n}=e;switch(t.notation){case`database`:return{x:n.x+10,y:n.y+21,width:208,height:84};case`component`:return{x:n.x+22,y:n.y+6,width:198,height:100};case`external`:return{x:n.x+18,y:n.y+6,width:192,height:100};case`concept`:return{x:n.x+24,y:n.y+12,width:180,height:94};default:return{x:n.x+8,y:n.y+6,width:212,height:100}}}function ue(e,t,n){let{node:r,point:i}=e,a=i.x,o=i.y,s=`fill="${q(n.panel)}" stroke="${q(t)}" stroke-width="1.4"`;switch(r.notation){case`class`:case`interface`:return`<rect x="${J(a)}" y="${J(o)}" width="228" height="112" rx="2" ${s}${r.notation===`interface`?` stroke-dasharray="5 3"`:``}/>`;case`database`:{let e=a,n=a+228,r=o+10,i=o+112-10;return`<path d="M ${J(e)} ${J(r)} C ${J(e)} ${J(o-3)}, ${J(n)} ${J(o-3)}, ${J(n)} ${J(r)} L ${J(n)} ${J(i)} C ${J(n)} ${J(o+112+3)}, ${J(e)} ${J(o+112+3)}, ${J(e)} ${J(i)} Z" ${s}/><path d="M ${J(e)} ${J(r)} C ${J(e)} ${J(o+23)}, ${J(n)} ${J(o+23)}, ${J(n)} ${J(r)}" fill="none" stroke="${q(t)}" stroke-width="1.2"/>`}case`component`:return`<rect x="${J(a)}" y="${J(o)}" width="228" height="112" rx="3" ${s}/><rect x="${J(a+2)}" y="${J(o+36)}" width="13" height="8" ${s}/><rect x="${J(a+2)}" y="${J(o+52)}" width="13" height="8" ${s}/>`;case`external`:return`<polygon points="${J(a+20)},${J(o)} ${J(a+228-20)},${J(o)} ${J(a+228)},${J(o+56)} ${J(a+228-20)},${J(o+112)} ${J(a+20)},${J(o+112)} ${J(a)},${J(o+56)}" ${s}/>`;case`concept`:return`<rect x="${J(a)}" y="${J(o)}" width="228" height="112" rx="56" ${s}/>`;default:return`<rect x="${J(a)}" y="${J(o)}" width="228" height="112" rx="8" ${s}/>`}}function de(e,t,n){let{node:r,point:i}=e,a=le(e.changeKind,n,n.lineStrong),o=X(e),s=e.sourceLabel?I({text:e.sourceLabel,maxUnits:o.width/10,maxLines:1,ellipsize:!0}):[],c=s.length>0?17:0,l=s.length>0?3:4,u=I({text:r.label,maxUnits:o.width/11,maxLines:l,ellipsize:!0}),d=14.5,f=Math.max(1,u.length)*d,p=o.y+c+f+3,m=12.6,h=Math.max(0,Math.floor((o.y+o.height-p)/m)),g=h>0?I({text:r.description??`Producerによる説明なし`,maxUnits:o.width/9,maxLines:h,ellipsize:!0}):[],_=r.notation===`class`||r.notation===`interface`?`<line x1="${J(o.x)}" y1="${J(p-2)}" x2="${J(o.x+o.width)}" y2="${J(p-2)}" stroke="${q(a)}" stroke-width="1"/>`:``,v=(()=>{switch(r.notation){case`external`:return{x:i.x+22,top:i.y+16,bottom:i.y+112-16};case`concept`:return{x:i.x+20,top:i.y+24,bottom:i.y+112-24};case`database`:return{x:i.x+5,top:i.y+18,bottom:i.y+112-18};case`component`:return{x:i.x+18,top:i.y+10,bottom:i.y+112-10};default:return{x:i.x+4,top:i.y+10,bottom:i.y+112-10}}})(),y=r.id===t.originNodeId?`<line data-node-origin-mark="true" x1="${J(v.x)}" y1="${J(v.top)}" x2="${J(v.x)}" y2="${J(v.bottom)}" stroke="${q(n.accent)}" stroke-width="4" stroke-linecap="round"/>`:``,b=s.length>0?Y({lines:s,x:o.x,firstY:o.y+10,lineHeight:12,fontSize:10,fontFamily:se,fill:n.muted,fontWeight:600}):``,x=o.y+c+10,S=Y({lines:u,x:o.x,firstY:x,lineHeight:d,fontSize:11,fontFamily:se,fill:n.text,fontWeight:700}),C=g.length>0?Y({lines:g,x:o.x,firstY:p+9,lineHeight:m,fontSize:9,fontFamily:U,fill:n.muted}):``;return`<g data-node-id="${q(r.id)}" data-node-notation="${q(r.notation)}"${r.id===t.originNodeId?` data-origin-node="true"`:``}${e.changeKind?` data-source-change-kind="${q(e.changeKind)}"`:``}>${ue(e,a,n)}${y}<g data-node-content="true">${b}${S}${_}${C}</g><title>${q(r.label)}</title><desc>${q(r.description??``)}</desc></g>`}function fe(e,t){let n=e.nodes.length===t.nodes.length&&e.edges.length===t.edges.length&&e.labels.length===t.edges.length&&e.bounds!==null,r=e.bounds?[e.bounds.left,e.bounds.top,e.bounds.right,e.bounds.bottom].every(Number.isFinite):!1;if(!n||!r)throw new R(`INCOMPLETE_LAYOUT`)}function pe(e,t){let n=le(e.source.changeKind,t,t.accent),r=e.displayLines,i=-((r.length-1)*14)/2+3.5;return`<g data-edge-label-id="${q(e.edge.id)}" transform="translate(${J(e.x)} ${J(e.y)})"${e.crowded?` data-crowded="true"`:``}><rect x="${J(-e.selectWidth/2)}" y="${J(-e.height/2)}" width="${J(e.selectWidth)}" height="${J(e.height)}" rx="${J(e.height/2)}" fill="${q(t.panel)}" stroke="${q(n)}" stroke-width="1"${e.crowded?` stroke-dasharray="4 3"`:``}/>${Y({lines:r,x:0,firstY:i,lineHeight:14,fontSize:10,fontFamily:U,fill:n,anchor:`middle`})}<title>${q(e.edge.label)}</title></g>`}function Z(e){return e??`default`}function me(e){return`rvw-structure-arrow-${e}`}function he(e,t){return le(e==="default"?null:e,t,t.muted)}function ge(e){return W.map(t=>{let n=he(t,e);return`<marker id="${me(t)}" data-edge-marker-kind="${t}" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto" markerUnits="strokeWidth"><path d="M 0 0 L 10 5 L 0 10 z" fill="${q(n)}"/></marker>`}).join(``)}function _e(e){let{structure:t,model:n,palette:r}=e;fe(n,t);let i=n.bounds,a=Math.floor(i.left-z),o=Math.floor(i.top-z),s=Math.ceil(i.right+z),c=Math.ceil(i.bottom+z),l=s-a,u=c-o;if(![a,o,l,u].every(Number.isFinite)||l<=0||u<=0)throw new R(`INVALID_BOUNDS`);let d=n.edges.map(({edge:e,geometry:t,source:n})=>{let i=Z(n.changeKind),a=he(i,r);return`<path data-edge-id="${q(e.id)}" d="${q(t.path)}" fill="none" stroke="${q(a)}" stroke-width="1.4" opacity="${n.changeKind?`0.76`:`0.58`}"${e.directed?` marker-end="url(#${me(i)})"`:``}/>`}).join(``),f=n.labels.map(e=>pe(e,r)).join(``),p=n.nodes.map(e=>de(e,t,r)).join(``);return{source:`<?xml version="1.0" encoding="UTF-8"?>\n<svg xmlns="http://www.w3.org/2000/svg" width="${l}" height="${u}" viewBox="${a} ${o} ${l} ${u}" role="img" aria-labelledby="rvw-structure-title rvw-structure-description" data-rvw-structure-id="${q(t.id)}" data-rvw-source-oid="${q(t.sourceOid)}"><title id="rvw-structure-title">${q(t.title)}</title><desc id="rvw-structure-description">${q(t.scope)}</desc><defs>${ge(r)}</defs><rect x="${a}" y="${o}" width="${l}" height="${u}" fill="${q(r.background)}"/><g data-layer="edges">${d}</g><g data-layer="edge-labels">${f}</g><g data-layer="nodes">${p}</g></svg>`,width:l,height:u,viewBox:{x:a,y:o,width:l,height:u}}}function ve(e,t){if(!Number.isFinite(e)||!Number.isFinite(t)||e<=0||t<=0)throw new R(`INVALID_BOUNDS`);let n=Math.min(B,V/e,V/t,Math.sqrt(H/(e*t)));if(!Number.isFinite(n)||n<oe)throw new R(`PNG_TOO_LARGE`);return{scale:n,pixelWidth:Math.max(1,Math.floor(e*n)),pixelHeight:Math.max(1,Math.floor(t*n)),downscaled:n<B}}function Q(e,t){return e.source.replace(/(<svg\b[^>]*\bwidth=")[^"]*(")/u,`$1${t.pixelWidth}$2`).replace(/(<svg\b[^>]*\bheight=")[^"]*(")/u,`$1${t.pixelHeight}$2`)}async function ye(e,t){let n=new Blob([Q(e,t)],{type:`image/svg+xml;charset=utf-8`}),r=URL.createObjectURL(n);try{let e=new Image;e.decoding=`async`,await new Promise((t,n)=>{e.onload=()=>t(),e.onerror=()=>n(new R(`PNG_DECODE_FAILED`)),e.src=r});let n=window.document.createElement(`canvas`);n.width=t.pixelWidth,n.height=t.pixelHeight;let i=n.getContext(`2d`);if(!i)throw new R(`PNG_ENCODE_FAILED`);return i.drawImage(e,0,0,t.pixelWidth,t.pixelHeight),await new Promise((e,t)=>{n.toBlob(n=>n?e(n):t(new R(`PNG_ENCODE_FAILED`)),`image/png`)})}finally{URL.revokeObjectURL(r)}}function be(e,t){return`rvw-structure-${[...K(e.title).replace(/[<>:"\\|?*]+|\//gu,`-`).replace(/\s+/gu,`-`).replace(/-+/gu,`-`).replace(/^[.\s-]+|[.\s-]+$/gu,``)].slice(0,80).join(``)||`structure`}-${e.sourceOid.slice(0,8)}.${t}`}function xe(e,t){let n=URL.createObjectURL(e),r=window.document.createElement(`a`);r.href=n,r.download=t,r.style.display=`none`,window.document.body.append(r),r.click(),r.remove(),window.setTimeout(()=>URL.revokeObjectURL(n),0)}function Se(e){if(e instanceof R)switch(e.code){case`INCOMPLETE_LAYOUT`:return`Structure全体の配置を構築できませんでした。レイアウトを戻して再実行してください。`;case`PNG_TOO_LARGE`:return`図がPNGの安全なサイズを超えています。SVGを使用するか、Node配置を近づけてから再実行してください。`;case`PNG_DECODE_FAILED`:return`Structure SVGをPNGへ変換できませんでした。SVG形式で再実行してください。`;case`PNG_ENCODE_FAILED`:return`PNGファイルを生成できませんでした。SVG形式で再実行してください。`;case`INVALID_BOUNDS`:return`Structureの出力範囲を計算できませんでした。`}return e instanceof Error?e.message:`Structureをエクスポートできませんでした。`}var $=t();function Ce({disabled:e,exporting:t,onExport:n}){let r=(0,b.useRef)(null),i=e=>{r.current?.removeAttribute(`open`),n(e)};return(0,$.jsxs)(`details`,{className:`structure-export-menu`,ref:r,children:[(0,$.jsxs)(`summary`,{className:`structure-header-action`,"aria-label":`Structureをエクスポート`,"aria-disabled":e,onClick:t=>{e&&t.preventDefault()},children:[t?`${t.toUpperCase()}…`:`Export`,(0,$.jsx)(`span`,{"aria-hidden":`true`,children:`▾`})]}),(0,$.jsxs)(`div`,{className:`structure-export-popover`,children:[(0,$.jsxs)(`button`,{type:`button`,disabled:e,onClick:()=>i(`svg`),children:[(0,$.jsx)(`strong`,{children:`SVG`}),(0,$.jsx)(`span`,{children:`全体・ベクター`})]}),(0,$.jsxs)(`button`,{type:`button`,disabled:e,onClick:()=>i(`png`),children:[(0,$.jsx)(`strong`,{children:`PNG`}),(0,$.jsx)(`span`,{children:`全体・2×`})]}),(0,$.jsx)(`p`,{children:`現在の配置で、全Node・全Relation・全Edge labelを書き出します。`})]})]})}var we=2,Te=.005,Ee=.002;function De(e){return e.startLine===null?e.path:`${e.path}:${e.startLine}${e.endLine===e.startLine?``:`-${e.endLine}`}`}function Oe({anchor:e,compact:t=!1,onOpen:n}){let r=`${De(e)}を開く`;return(0,$.jsxs)(`button`,{type:`button`,className:`structure-source${t?` compact`:``}`,title:r,"aria-label":r,onPointerDown:e=>e.stopPropagation(),onClick:e=>{e.stopPropagation(),n(e.metaKey||e.ctrlKey)},children:[(0,$.jsx)(`span`,{"aria-hidden":`true`,children:`</>`}),!t&&(0,$.jsx)(`span`,{children:De(e)})]})}function ke({edge:e,onOpen:t}){return e.anchors.length===0?null:e.anchors.length===1?(0,$.jsx)(Oe,{compact:!0,anchor:e.anchors[0],onOpen:n=>t({kind:`edge`,edgeId:e.id,anchorIndex:0},e.anchors[0],n)}):(0,$.jsxs)(`details`,{className:`structure-edge-sources`,children:[(0,$.jsxs)(`summary`,{className:`structure-source compact`,"aria-label":`${e.label}のsource evidence ${e.anchors.length}件を表示`,title:`source evidence ${e.anchors.length}件`,children:[(0,$.jsx)(`span`,{"aria-hidden":`true`,children:`</>`}),(0,$.jsx)(`span`,{className:`structure-edge-source-count`,"aria-hidden":`true`,children:e.anchors.length})]}),(0,$.jsx)(`div`,{className:`structure-edge-source-menu`,children:e.anchors.map((n,r)=>(0,$.jsx)(Oe,{anchor:n,onOpen:i=>t({kind:`edge`,edgeId:e.id,anchorIndex:r},n,i)},`${e.id}:${r}`))})]})}function Ae({anchor:e,changeKind:t,sourceLabel:n}){return(0,$.jsxs)(`span`,{className:`structure-source-identity`,"data-source-path":e.path,"data-source-change-kind":t??void 0,title:e.path,children:[(0,$.jsx)(i,{path:e.path,kind:`file`}),t&&(0,$.jsx)(f,{kind:t}),(0,$.jsx)(`span`,{className:`structure-source-name`,children:n})]})}function je({label:e}){let t=e.split(/(::|[./_-])/u);return(0,$.jsx)($.Fragment,{children:t.map((e,t)=>(0,$.jsxs)(b.Fragment,{children:[e,(e===`::`||/^[./_-]$/u.test(e))&&(0,$.jsx)(`wbr`,{})]},`${t}-${e}`))})}function Me({structure:e,positions:t,focusedNodeId:n,viewport:r,viewportElement:i}){let a=c(e.nodes.map(e=>e.id),t);if(!a)return null;let o=Math.max(1,a.maxX-a.minX),s=Math.max(1,a.maxY-a.minY),l=Math.min(164/o,98/s),u=i?{x:-r.x/r.scale,y:-r.y/r.scale,width:i.clientWidth/r.scale,height:i.clientHeight/r.scale}:null,d=e=>(e-a.minX)*l,f=e=>(e-a.minY)*l;return(0,$.jsxs)(`svg`,{className:`structure-minimap`,viewBox:`0 0 164 98`,"aria-label":`Structure minimap`,children:[e.nodes.map(e=>{let r=t[e.id];return r?(0,$.jsx)(`circle`,{cx:d(r.x+114),cy:f(r.y+56),r:e.id===n?3.2:1.7,className:e.id===n?`focused`:``},e.id):null}),u&&(0,$.jsx)(`rect`,{className:`structure-minimap-viewport`,x:d(u.x),y:f(u.y),width:Math.max(2,u.width*l),height:Math.max(2,u.height*l)})]})}function Ne({paneId:e,pullRequestId:t,structure:r,changedFiles:i,navigationTarget:s=null,onNavigationApplied:c,onNavigationFailed:f,onOpenSource:x,onDeleted:S}){let C=`structure-${e}-${r.id}`,w=u(e,r.id),T=w??p(r),[E,D]=(0,b.useState)(T.focusId),[O,k]=(0,b.useState)(T.selectedEdgeId),[A,ee]=(0,b.useState)(T.depth),[j,M]=(0,b.useState)(T.positions),[N,P]=(0,b.useState)(T.viewport),[F,te]=(0,b.useState)({width:0,height:0}),[ne,I]=(0,b.useState)(null),[L,re]=(0,b.useState)(null),[R,z]=(0,b.useState)(!1),B=(0,b.useRef)(null),V=(0,b.useRef)(T.surfaceSize),H=(0,b.useRef)(E),oe=(0,b.useRef)(j),se=(0,b.useRef)({sourceOid:r.sourceOid,updatedAt:r.updatedAt}),U=(0,b.useRef)(w?null:`initial`),W=(0,b.useRef)(null),G=(0,b.useRef)(null),K=(0,b.useRef)(null);H.current=E,oe.current=j,(0,b.useLayoutEffect)(()=>{let e=B.current;if(!e)return;let t=()=>{let t={width:e.clientWidth,height:e.clientHeight};if(t.width===0||t.height===0)return;let n=V.current;V.current=t,te(t),n.width!==0&&n.height!==0&&P(e=>{let r={...e,x:e.x+(t.width-n.width)/2,y:e.y+(t.height-n.height)/2},i=H.current?oe.current[H.current]:void 0;if(!i)return r;let a=228*r.scale,o=112*r.scale,s=r.x+i.x*r.scale,c=r.y+i.y*r.scale;return a>t.width-24?r.x=t.width/2-(i.x+114)*r.scale:s<12?r.x+=12-s:s+a>t.width-12&&(r.x-=s+a-(t.width-12)),o>t.height-24?r.y=t.height/2-(i.y+56)*r.scale:c<12?r.y+=12-c:c+o>t.height-12&&(r.y-=c+o-(t.height-12)),r})};t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[]),(0,b.useEffect)(()=>{let e=B.current;if(!e)return;let t=t=>{let n=t.ctrlKey||t.metaKey;if(t.target instanceof Element){let e=t.target.closest(`.structure-node-focus`),r=Math.abs(t.deltaY)>=Math.abs(t.deltaX),i=e?t.deltaY<0?e.scrollTop>0:t.deltaY>0&&e.scrollTop+e.clientHeight<e.scrollHeight-1:!1;if(!n&&r&&i)return}t.preventDefault(),t.stopPropagation();let r=t.deltaMode===WheelEvent.DOM_DELTA_LINE?16:t.deltaMode===WheelEvent.DOM_DELTA_PAGE?Math.max(1,e.clientHeight):1;if(!n){P(e=>({...e,x:e.x-t.deltaX*r*we,y:e.y-t.deltaY*r*we}));return}let i=e.getBoundingClientRect(),a=t.clientX-i.left,o=t.clientY-i.top;P(e=>{let n=t.ctrlKey&&!t.metaKey?Te:Ee,i=m(e.scale,Math.exp(-t.deltaY*r*n)),s=(a-e.x)/e.scale,c=(o-e.y)/e.scale;return{scale:i,x:a-s*i,y:o-c*i}})};return e.addEventListener(`wheel`,t,{passive:!1}),()=>e.removeEventListener(`wheel`,t)},[]),(0,b.useEffect)(()=>{if(u(e,r.id)?.updatedAt===r.updatedAt)return;let t=se.current;t.updatedAt!==r.updatedAt&&I(t.sourceOid===r.sourceOid?`Structureが更新されました。閲覧状態を保ったまま最新のclaimへ反映しています。`:`Structureが更新されました。exact source ${t.sourceOid.slice(0,8)} → ${r.sourceOid.slice(0,8)}`),se.current={sourceOid:r.sourceOid,updatedAt:r.updatedAt},M(e=>y(r,e));let n=H.current&&r.nodes.some(e=>e.id===H.current)?H.current:null;D(n),n===null&&ee(`all`),k(e=>e&&r.edges.some(t=>t.id===e)?e:null)},[e,r,r.updatedAt]),(0,b.useEffect)(()=>{_(e,r.id,{focusId:E,selectedEdgeId:O,depth:A,positions:j,viewport:N,surfaceSize:V.current,updatedAt:r.updatedAt})},[A,E,j,e,O,r.updatedAt,N]);let q=(0,b.useMemo)(()=>h(r,E,A),[A,E,r]),J=(0,b.useMemo)(()=>new Map(r.nodes.map(e=>[e.id,e])),[r.nodes]),le=E?J.get(E)??null:null,Y=J.get(r.originNodeId),X=O?r.edges.find(e=>e.id===O)??null:null,ue=(0,b.useMemo)(()=>new Set(X?[X.from,X.to]:[]),[X]),de=(0,b.useMemo)(()=>E?o(r,E):[],[E,r]),fe=(0,b.useMemo)(()=>{let e=new Map;for(let t of i){let n=l(t);n&&e.set(n,t.kind),t.oldPath&&e.set(t.oldPath,t.kind),t.newPath&&e.set(t.newPath,t.kind)}return e},[i]),pe=(0,b.useMemo)(()=>new Set(r.edges.filter(e=>q.edgeIds.has(e.id)&&(!E||e.from===E||e.to===E||e.id===O)).map(e=>e.id)),[E,O,r.edges,q.edgeIds]),Z=(0,b.useMemo)(()=>ie({structure:r,positions:j,sourceChangeKinds:fe,selection:{nodeIds:q.nodeIds,edgeIds:q.edgeIds,labelEdgeIds:pe},labelAccessory:`source-actions`,edgeLabelMode:`viewer-clamped`}),[pe,j,fe,r,q.edgeIds,q.nodeIds]),me=Z.edges.map(({edge:e})=>e),he=Z.nodes.map(({node:e})=>e),ge=Z.labels,Q=Z.bounds,De=Math.max(1200,(Q?.right??1e3)+180),Ne=Math.max(800,(Q?.bottom??600)+180),Pe=()=>{if(!Q||F.width===0||F.height===0)return null;let e=Math.min(1.25,Math.max(v,Math.min((F.width-72)/Math.max(1,Q.right-Q.left),(F.height-72)/Math.max(1,Q.bottom-Q.top)))),t=(Q.right-Q.left)*e,n=(Q.bottom-Q.top)*e;return{scale:e,x:(F.width-t)/2-Q.left*e,y:(F.height-n)/2-Q.top*e}},Fe=()=>{let e=Pe();e&&P(e)};(0,b.useLayoutEffect)(()=>{!U.current||!Q||F.width===0||F.height===0||(U.current=null,P(a({structure:r,positions:j,surfaceSize:F})))},[Q,j,r,F]);let Ie=(0,b.useCallback)((e,t)=>{let n=j[e];n&&P(e=>({scale:t??e.scale,x:F.width/2-(n.x+114)*(t??e.scale),y:F.height/2-(n.y+56)*(t??e.scale)}))},[j,F.height,F.width]);(0,b.useLayoutEffect)(()=>{if(!s||s.structureId!==r.id||s.pane!==e||W.current===s.requestId||r.updatedAt<s.structureUpdatedAt)return;if(r.updatedAt>s.structureUpdatedAt){W.current=s.requestId,I(`Structureが更新されたため、ファイル参照を更新しました。もう一度選択してください。`),f(s.requestId);return}let t=r.nodes.find(e=>e.id===s.nodeId);if(!t){W.current=s.requestId,I(`移動先のNodeはStructureの更新により削除されています。ファイル参照を更新しました。`),f(s.requestId);return}!j[t.id]||F.width===0||F.height===0||(U.current=null,I(null),k(null),D(t.id),Ie(t.id),W.current=s.requestId,c(s.requestId))},[Ie,s,c,f,e,j,r.id,r.nodes,F.height,F.width]);let Le=()=>{E&&Ie(E)},Re=()=>{M(d(r))},ze=(e,t=!1)=>{k(null),D(e),t&&Ie(e)},Be=()=>{k(null),D(null),ee(`all`)},Ve=e=>{e!==A&&ee(e)},He=async()=>{try{await navigator.clipboard.writeText(r.ref),I(`Structure参照をコピーしました。`)}catch{I(`Structure参照をコピーできませんでした。`)}},Ue=async e=>{if(!L){re(e),I(null);try{let t=_e({structure:r,model:ae({structure:r,positions:j,sourceChangeKinds:fe}),palette:ce(document.documentElement)});if(e===`svg`){xe(new Blob([t.source],{type:`image/svg+xml;charset=utf-8`}),be(r,`svg`));return}let n=ve(t.width,t.height);xe(await ye(t,n),be(r,`png`)),n.downscaled&&I(`PNGを${Math.round(n.scale*100)}%で出力しました。より高い解像度にはSVGを使用してください。`)}catch(e){I(Se(e))}finally{re(null)}}},We=e=>{P(t=>{let n=m(t.scale,e),r=F.width/2,i=F.height/2,a=(r-t.x)/t.scale,o=(i-t.y)/t.scale;return{scale:n,x:r-a*n,y:i-o*n}})},Ge=async(e,t,n)=>{I(null);try{let t=await x(e,n);I(t)}catch(e){I(e instanceof Error?e.message:`参照先を開けません · ${t.path}`)}},Ke=async()=>{if(R)return;let e=r.nodes.filter(e=>e.anchor!==null).length+r.edges.reduce((e,t)=>e+t.anchors.length,0);if(window.confirm(`Structure「${r.title}」を削除します。\n\nNode ${r.nodes.length}\nEdge ${r.edges.length}\nSource anchor ${e}\n\nこの操作は元に戻せません。`)){z(!0),I(null);try{await n(`/api/pull-requests/${t}/structures/${r.id}`,{method:`DELETE`,headers:{"content-type":`application/json`},body:JSON.stringify({expectedUpdatedAt:r.updatedAt})}),g(r.id),S()}catch(e){I(e instanceof Error?e.message:`Structureを削除できませんでした。`)}finally{z(!1)}}},qe=e=>{let t=K.current;if(t?.pointerId===e.pointerId){let n=(e.clientX-t.x)/N.scale,r=(e.clientY-t.y)/N.scale;K.current={...t,x:e.clientX,y:e.clientY,distance:t.distance+Math.hypot(e.clientX-t.x,e.clientY-t.y)},M(e=>{let i=e[t.nodeId];return i?{...e,[t.nodeId]:{x:i.x+n,y:i.y+r}}:e});return}let n=G.current;if(n?.pointerId!==e.pointerId)return;let r=e.clientX-n.x,i=e.clientY-n.y;G.current={...n,x:e.clientX,y:e.clientY},P(e=>({...e,x:e.x+r,y:e.y+i}))},Je=e=>{if(G.current?.pointerId===e.pointerId&&(G.current=null),K.current?.pointerId===e.pointerId){let e=K.current;K.current=null,e.distance<4&&ze(e.nodeId)}e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId)};return(0,$.jsxs)(`article`,{className:`structure-viewer`,"data-structure-id":r.id,"data-visible-node-count":q.nodeIds.size,"data-total-node-count":r.nodes.length,"data-visible-edge-count":q.edgeIds.size,"data-total-edge-count":r.edges.length,"data-rendered-node-count":he.length,"data-rendered-edge-count":me.length,"data-viewport-scale":N.scale.toFixed(3),"data-selected-edge-id":O??void 0,children:[(0,$.jsxs)(`header`,{className:`structure-header`,children:[(0,$.jsxs)(`div`,{className:`structure-header-main`,children:[(0,$.jsx)(`span`,{className:`structure-kicker`,children:`Structure`}),(0,$.jsx)(`h2`,{title:r.title,children:r.title}),(0,$.jsx)(`span`,{className:`structure-source-oid`,title:`exact source ${r.sourceOid}`,children:r.sourceOid.slice(0,8)}),(0,$.jsxs)(`details`,{className:`structure-scope-details`,children:[(0,$.jsx)(`summary`,{"aria-label":`scopeを表示`,children:`scope`}),(0,$.jsx)(`p`,{children:r.scope})]})]}),(0,$.jsxs)(`div`,{className:`structure-header-side`,children:[(0,$.jsx)(`button`,{type:`button`,className:`structure-header-action`,"aria-label":`参照をコピー`,title:`Structure参照をコピー`,onClick:()=>void He(),children:`参照`}),(0,$.jsx)(Ce,{disabled:R||L!==null,exporting:L,onExport:e=>void Ue(e)}),(0,$.jsx)(`button`,{type:`button`,className:`danger structure-delete`,disabled:R,onClick:()=>void Ke(),children:R?`削除中…`:`削除`})]})]}),(0,$.jsxs)(`div`,{className:`structure-body`,children:[(0,$.jsxs)(`div`,{className:`structure-toolbar`,"aria-label":`Structure表示操作`,children:[(0,$.jsx)(`div`,{className:`structure-toolbar-group`,role:`group`,"aria-label":`近傍の深さ`,children:[1,2,`all`].map(e=>(0,$.jsx)(`button`,{type:`button`,className:A===e?`active`:``,"aria-pressed":A===e,disabled:!E&&e!==`all`,onClick:()=>Ve(e),children:e===`all`?`全体`:`${e}-hop`},e))}),(0,$.jsxs)(`div`,{className:`structure-toolbar-group`,children:[(0,$.jsx)(`button`,{type:`button`,onClick:()=>We(1/1.2),"aria-label":`縮小`,children:`−`}),(0,$.jsxs)(`span`,{children:[Math.round(N.scale*100),`%`]}),(0,$.jsx)(`button`,{type:`button`,onClick:()=>We(1.2),"aria-label":`拡大`,children:`+`}),(0,$.jsx)(`button`,{type:`button`,"aria-label":`表示中を収める`,title:`表示中を収める`,onClick:Fe,children:`Fit`}),(0,$.jsx)(`button`,{type:`button`,"aria-label":`focusを中央へ`,title:`focusを中央へ`,disabled:!E,onClick:Le,children:`中央`}),(0,$.jsx)(`button`,{type:`button`,"aria-label":`focusを解除`,title:`focusを解除`,disabled:!E,onClick:Be,children:`解除`}),(0,$.jsx)(`button`,{type:`button`,"aria-label":`レイアウトを戻す`,title:`レイアウトを戻す`,onClick:Re,children:`Reset`})]})]}),ne&&(0,$.jsx)(`div`,{className:`structure-status`,role:`status`,"aria-live":`polite`,children:ne}),(0,$.jsx)(`section`,{className:`structure-canvas-shell`,"aria-label":`${r.title} graph`,children:(0,$.jsxs)(`div`,{ref:B,className:`structure-canvas`,tabIndex:0,onKeyDown:e=>{e.key!==`Escape`||!O&&!E||(e.preventDefault(),O?k(null):Be())},onPointerDown:e=>{e.button!==0||e.target instanceof Element&&e.target.closest(`.structure-node, .structure-edge-label, button`)||(G.current={pointerId:e.pointerId,x:e.clientX,y:e.clientY},e.currentTarget.setPointerCapture(e.pointerId))},onPointerMove:qe,onPointerUp:Je,onPointerCancel:Je,onDoubleClick:e=>{e.target===e.currentTarget&&Fe()},children:[(0,$.jsxs)(`div`,{className:`structure-world`,style:{width:De,height:Ne,transform:`translate(${N.x}px, ${N.y}px) scale(${N.scale})`},children:[(0,$.jsxs)(`svg`,{className:`structure-edges`,width:De,height:Ne,"aria-hidden":`true`,children:[(0,$.jsx)(`defs`,{children:(0,$.jsx)(`marker`,{id:`${C}-arrow`,viewBox:`0 0 10 10`,refX:`9`,refY:`5`,markerWidth:`7`,markerHeight:`7`,orient:`auto`,children:(0,$.jsx)(`path`,{d:`M 0 0 L 10 5 L 0 10 z`})})}),Z.edges.map(({edge:e,geometry:t,source:n})=>{let r=e.from===E||e.to===E,i=e.id===O,a=O!==null&&!i,o=n.changeKind;return(0,$.jsx)(`path`,{className:`structure-edge${r?` focused`:``}${i?` selected`:``}${a?` muted`:``}`,"data-edge-id":e.id,"data-source-change-kind":o??void 0,"data-start-x":t.startX,"data-start-y":t.startY,"data-end-x":t.endX,"data-end-y":t.endY,d:t.path,markerEnd:e.directed?`url(#${C}-arrow)`:void 0},e.id)})]}),ge.map(({edge:e,displayLines:t,source:n,x:r,y:i,selectWidth:a,height:o,crowded:s})=>{let c=n.changeKind,l=J.get(e.from),u=J.get(e.to),d=e.directed?`${l?.label??e.from} から ${u?.label??e.to} へ: ${e.label}`:`${l?.label??e.from} と ${u?.label??e.to} の関係: ${e.label}`,f=e.id===O;return(0,$.jsxs)(`div`,{className:`structure-edge-label${s?` crowded`:``}${O!==null&&!f?` muted`:``}`,"data-edge-id":e.id,"data-source-anchor-count":n.anchorCount,"data-source-change-kind":c??void 0,style:{left:r,top:i,minHeight:o},children:[(0,$.jsx)(`button`,{type:`button`,className:`structure-edge-select${f?` selected`:``}`,title:e.label,"aria-label":d,"aria-pressed":f,style:{maxWidth:a},onClick:()=>k(t=>t===e.id?null:e.id),children:(0,$.jsx)(`span`,{className:`structure-edge-label-text`,"aria-hidden":`true`,children:t.map((t,n)=>(0,$.jsxs)(b.Fragment,{children:[n>0&&(0,$.jsx)(`br`,{}),t]},`${e.id}:line:${n}`))})}),(0,$.jsx)(ke,{edge:e,onOpen:(e,t,n)=>void Ge(e,t,n)})]},`label:${e.id}`)}),Z.nodes.map(({node:e,point:t,changeKind:n,sourceLabel:i})=>{let a=e.id===E,o=de.some(t=>t.from===e.id||t.to===e.id);return(0,$.jsxs)(`div`,{className:`structure-node notation-${e.notation}${e.id===r.originNodeId?` origin`:``}${a?` focused`:``}${o?` neighboring`:``}${ue.has(e.id)?` edge-endpoint`:``}`,"data-node-id":e.id,"data-node-notation":e.notation,"data-origin-node":e.id===r.originNodeId?`true`:void 0,"data-source-change-kind":n??void 0,style:{left:t.x,top:t.y},onPointerDown:t=>{t.button===0&&(t.stopPropagation(),K.current={pointerId:t.pointerId,nodeId:e.id,x:t.clientX,y:t.clientY,distance:0},B.current?.setPointerCapture(t.pointerId))},children:[(0,$.jsxs)(`button`,{type:`button`,className:`structure-node-focus`,"aria-pressed":a,onClick:t=>{t.detail===0&&ze(e.id)},children:[e.anchor&&(0,$.jsx)(Ae,{anchor:e.anchor,changeKind:n,sourceLabel:i??e.anchor.path}),(0,$.jsx)(`strong`,{className:`structure-node-title`,children:(0,$.jsx)(`span`,{className:`structure-node-title-text`,title:e.label,children:(0,$.jsx)(je,{label:e.label})})}),(0,$.jsx)(`span`,{className:`structure-node-description`,children:e.description??`Producerによる説明なし`})]}),e.anchor&&(0,$.jsx)(Oe,{compact:!0,anchor:e.anchor,onOpen:t=>void Ge({kind:`node`,nodeId:e.id},e.anchor,t)})]},e.id)})]}),(0,$.jsxs)(`div`,{className:`structure-canvas-status`,children:[(0,$.jsx)(`strong`,{children:le?.label??`focusなし`}),(0,$.jsxs)(`span`,{children:[`origin · `,Y.label]}),(0,$.jsxs)(`span`,{children:[q.nodeIds.size,`/`,r.nodes.length,` Node · `,q.edgeIds.size,`/`,r.edges.length,` Relation`]})]}),(0,$.jsx)(Me,{structure:r,positions:j,focusedNodeId:E,viewport:N,viewportElement:B.current})]})})]})]})}export{Ne as StructureViewer};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f8fa;--panel:#fff;--panel-2:#f3f4f6;--line:#d8dee4;--line-strong:#afb8c1;--text:#1f2328;--muted:#57606a;--accent:#0969da;--accent-emphasis:#1f6feb;--accent-soft:#ddf4ff;--accent-contrast:#fff;--tab-accent:#0969da;--focus:#218bff;--danger:#cf222e;--danger-soft:#ffebe9;--warning:#fff8c5;--warning-text:#633c01;--warning-line:#d4a72c;--search-match-bg:#ffdf5d;--search-match-text:#3b2f00;--success:#1a7f37;--attention:#9a6700;--done:#8250df;--info:#0969da;--file-tree-active-text:#0550ae;--header-bg:#24292f;--header-border:#1b1f23;--header-text:#f6f8fa;--header-muted:#b1bac4;--header-control-bg:#2f363d;--header-control-border:#57606a;--header-control-hover:#3a424a;--header-active-bg:#f0f6fc;--header-active-text:#24292f;--header-badge-bg:#1f6feb;--header-badge-text:#fff;--shadow-small:#1f232817;--shadow-medium:#1f232826;--shadow-large:#1f23283d;--mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--comment-body-size:13px;--comment-ui-size:12px;--comment-meta-size:11px;--comment-badge-size:10px;font-synthesis:none;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=system]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root[data-theme=system]{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d1117;--panel:#161b22;--panel-2:#21262d;--line:#30363d;--line-strong:#484f58;--text:#e6edf3;--muted:#8b949e;--accent:#58a6ff;--accent-emphasis:#1f6feb;--accent-soft:#1f2d3d;--accent-contrast:#fff;--tab-accent:#58a6ff;--focus:#58a6ff;--danger:#ff7b72;--danger-soft:#3c1e22;--warning:#332b00;--warning-text:#e3b341;--warning-line:#6e5a1c;--search-match-bg:#7c5c12;--search-match-text:#fff2bd;--success:#3fb950;--attention:#d29922;--done:#d2a8ff;--info:#58a6ff;--file-tree-active-text:#cae8ff;--header-bg:#010409;--header-border:#21262d;--header-text:#f0f6fc;--header-muted:#8b949e;--header-control-bg:#161b22;--header-control-border:#484f58;--header-control-hover:#21262d;--header-active-bg:#f0f6fc;--header-active-text:#1f2328;--header-badge-bg:#1f6feb;--header-badge-text:#fff;--shadow-small:#01040966;--shadow-medium:#01040980;--shadow-large:#010409a3}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);margin:0;overflow:hidden}button,input,select,textarea{font:inherit}button{border:1px solid var(--accent-emphasis);background:var(--accent-emphasis);color:var(--accent-contrast);cursor:pointer;border-radius:6px;padding:7px 11px}button:disabled{cursor:not-allowed;opacity:.48}input,select,textarea{border:1px solid var(--line-strong);background:var(--panel);width:100%;color:var(--text);border-radius:6px;padding:8px 9px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--focus);outline-offset:2px}textarea{resize:vertical}code{font-family:var(--mono);overflow-wrap:anywhere;font-size:11px}.app-shell{flex-direction:column;height:100dvh;min-height:0;max-height:100dvh;display:flex;overflow:hidden}.skip-link{z-index:1000;border:2px solid var(--focus);background:var(--panel);color:var(--text);border-radius:6px;padding:8px 12px;font-weight:700;text-decoration:none;position:fixed;inset:8px auto auto 8px;transform:translateY(calc(-100% - 16px))}.skip-link:focus{transform:none}.topbar{background:var(--header-bg);height:68px;color:var(--header-text);border-bottom:1px solid var(--header-border);flex:0 0 68px;align-items:center;gap:14px;padding:0 14px;display:flex}.brand{letter-spacing:.08em;flex:none;align-items:center;gap:9px;display:flex}.brand-button{color:inherit;background:0 0;border:0;border-radius:6px;padding:4px;text-decoration:none}.brand-button:hover{background:var(--header-control-hover)}.brand-mark{background:var(--header-active-bg);width:30px;height:30px;color:var(--header-active-text);font:800 20px/1 var(--mono);border-radius:8px 3px;place-items:center;display:grid}.pr-heading{flex:1 20 260px;min-width:150px}.pr-heading span{color:var(--header-muted);margin-bottom:2px;font-size:11px;display:block}.pr-heading h1{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:16px;overflow:hidden}.pr-heading h1 a{color:inherit;text-decoration:none}.pr-heading h1 a:hover,.pr-heading h1 a:focus-visible{text-underline-offset:3px;text-decoration:underline}.button--quiet{border-color:var(--line-strong);color:inherit;background:0 0}.button--danger-quiet{color:var(--danger);background:0 0;border-color:#0000}.review-scope-bar{background:0 0;border:0;flex:0 auto;align-items:center;gap:8px;min-width:0;padding:0;display:flex;overflow:visible}.review-scope-control{flex-direction:column;flex:none;gap:4px;display:flex}.review-scope-control>span{color:var(--header-muted);font-size:10px;font-weight:650}.commit-range-picker{z-index:30;position:relative}.commit-range-trigger{border-color:var(--header-control-border);background:var(--header-control-bg);width:min(430px,36vw);min-width:280px;height:32px;color:var(--header-text);text-align:left;border-radius:6px;align-items:center;gap:7px;padding:4px 7px 4px 9px;display:flex}.commit-range-trigger:hover,.commit-range-trigger[aria-expanded=true]{border-color:var(--header-muted);background:var(--header-control-hover)}.commit-range-summary{min-width:0;font:11px var(--mono);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.commit-range-count{color:var(--header-muted);white-space:nowrap;flex:none;font-size:10px}.commit-selection-badge,.commit-latest-badge{background:var(--header-badge-bg);min-height:18px;color:var(--header-badge-text);border-radius:999px;flex:none;align-items:center;padding:1px 6px;font-size:10px;font-weight:800;line-height:1;display:inline-flex}.commit-range-chevron{color:var(--header-muted);flex:none;font-size:10px}.commit-range-popover{border:1px solid var(--line-strong);background:var(--panel);width:min(440px,100vw - 24px);color:var(--text);box-shadow:0 14px 36px var(--shadow-large);border-radius:9px;padding:8px;position:absolute;top:calc(100% + 7px);left:0}.commit-range-shortcuts{gap:6px;display:flex}.commit-range-shortcuts button{border-color:var(--line-strong);background:var(--panel-2);color:var(--text);flex:1;padding:6px 8px;font-size:11px}.commit-range-shortcuts button:hover{border-color:var(--accent)}.commit-range-hint{color:var(--muted);margin:7px 2px 6px;font-size:10px}.commit-range-list{border:1px solid var(--line);background:var(--panel);-webkit-user-select:none;user-select:none;border-radius:7px;flex-direction:column;max-height:min(360px,100vh - 150px);display:flex;overflow-y:auto}.commit-range-option{border:0;border-bottom:1px solid var(--line);min-height:44px;color:var(--text);text-align:left;touch-action:none;background:0 0;border-radius:0;flex:none;align-items:center;gap:9px;padding:6px 9px;display:flex}.commit-range-option:last-child{border-bottom:0}.commit-range-option:hover{background:var(--panel-2)}.commit-range-option.selected{background:var(--accent-soft)}.commit-range-option-indicator{border:2px solid var(--line-strong);background:var(--panel);border-radius:50%;flex:0 0 12px;width:12px;height:12px}.commit-range-option.selected .commit-range-option-indicator{border-color:var(--accent);background:var(--accent);box-shadow:inset 0 0 0 2px var(--panel)}.commit-range-option--middle .commit-range-option-indicator{border-radius:2px}.commit-range-option-copy{flex:1;gap:2px;min-width:0;display:grid}.commit-range-option-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.commit-range-option-copy code{color:var(--muted)}.commit-range-option-meta{align-items:center;gap:8px;min-width:0;display:flex}.commit-range-option-meta time{color:var(--header-muted);font:500 9px var(--mono);white-space:nowrap}.commit-range-special{border-bottom:1px solid var(--line);color:var(--muted);font:11px var(--mono);padding:8px 10px}.review-scope-bar .segmented{border-color:var(--header-control-border);background:var(--header-control-bg);height:32px;padding:2px}.review-scope-bar .segmented button{min-width:56px;color:var(--header-muted);white-space:nowrap;padding:5px 8px}.review-scope-bar .segmented button.active{background:var(--header-active-bg);color:var(--header-active-text);box-shadow:none;font-weight:700}.review-scope-display .segmented button{min-width:62px}.diff-style-modes{width:128px}.review-scope-bar .diff-style-modes button{flex:1 1 0;min-width:0}.topbar-menu{z-index:20;flex:none;position:relative}.topbar-menu-toggle{border-color:var(--header-control-border);width:36px;height:36px;color:var(--header-text);background:0 0;place-items:center;padding:0;display:grid}.topbar-menu-toggle:hover,.topbar-menu-toggle[aria-expanded=true]{border-color:var(--header-control-border);background:var(--header-control-hover)}.topbar-menu-toggle svg{width:18px;height:18px}.topbar-menu-popover{border:1px solid var(--line-strong);background:var(--panel);width:210px;box-shadow:0 10px 28px var(--shadow-large);border-radius:8px;gap:2px;padding:5px;display:grid;position:absolute;top:calc(100% + 7px);right:0}.topbar-menu-popover button{width:100%;color:var(--text);text-align:left;background:0 0;border:0;padding:8px 9px;font-size:12px}.topbar-menu-popover button:hover{background:var(--panel-2)}.topbar-menu-popover .topbar-menu-command{justify-content:space-between;align-items:center;gap:12px;display:flex}.topbar-menu-command kbd{color:var(--muted);font:10px var(--mono)}.topbar-menu-section{border-top:1px solid var(--line);margin:3px 0;padding:5px 0 3px;display:grid}.topbar-menu-section-label{color:var(--muted);padding:2px 9px 5px;font-size:10px;font-weight:700}.topbar-menu-section button{justify-content:space-between;align-items:center;gap:12px;display:flex}.topbar-menu-check{color:var(--accent);font-weight:800}.topbar-menu-popover .topbar-menu-danger{border-top:1px solid var(--line);color:var(--danger)}.diff-whitespace-empty{border-top:1px solid var(--line);color:var(--muted);gap:6px;padding:22px 16px 24px;font-size:12px;display:grid}.diff-whitespace-empty strong{color:var(--text);font-size:13px}.button--wide{width:100%;margin-top:10px}.button--back{color:var(--accent);background:0 0;border:0;padding:3px 0 12px}.pending-banner{background:var(--warning);min-height:38px;color:var(--warning-text);border-bottom:1px solid var(--warning-line);align-items:center;gap:12px;padding:7px 20px;font-size:13px;display:flex}.quick-open-backdrop{z-index:100;background:#00000047;justify-content:center;align-items:flex-start;padding:clamp(44px,9vh,92px) 16px 16px;display:flex;position:fixed;inset:0}.quick-open-dialog{border:1px solid var(--line-strong);background:var(--panel);border-radius:9px;flex-direction:column;width:min(720px,100vw - 32px);max-height:min(650px,100vh - 92px);display:flex;overflow:hidden;box-shadow:0 18px 52px #0000005c}.quick-open-input-shell{border-bottom:1px solid var(--line);flex:none;align-items:center;padding:10px;display:flex;position:relative}.quick-open-input-shell>svg{z-index:1;width:17px;height:17px;color:var(--muted);pointer-events:none;position:absolute;left:22px}.quick-open-input-shell>input{border-color:var(--accent);height:42px;box-shadow:0 0 0 1px var(--accent-soft);border-radius:6px;padding:9px 42px 9px 40px;font-size:14px}.quick-open-input-shell>input:focus-visible{outline:1px solid var(--focus);outline-offset:0}.quick-open-clear{width:28px;height:28px;color:var(--muted);background:0 0;border:0;place-items:center;padding:0;font-size:20px;line-height:1;display:grid;position:absolute;right:17px}.quick-open-clear:hover{background:var(--panel-2);color:var(--text)}.quick-open-summary{border-bottom:1px solid var(--line);min-height:29px;color:var(--muted);flex:none;justify-content:space-between;align-items:center;gap:12px;padding:5px 14px;font-size:10px;display:flex}.quick-open-results{flex:auto;min-height:88px;padding:4px 0;overflow-y:auto}.quick-open-result{width:100%;min-height:42px;color:var(--text);text-align:left;background:0 0;border:0;border-radius:0;align-items:center;gap:10px;padding:6px 13px;display:flex}.quick-open-result:hover,.quick-open-result.selected{background:var(--accent-soft);color:var(--file-tree-active-text)}.quick-open-icon-group{flex:0 0 34px;align-items:center;gap:3px;width:34px;display:flex}.quick-open-copy{flex:1;align-items:baseline;gap:12px;min-width:0;display:flex}.quick-open-copy strong{min-width:0;font:650 13px/1.35 var(--mono);text-overflow:ellipsis;white-space:nowrap;flex:0 auto;overflow:hidden}.quick-open-copy>span{min-width:0;color:var(--muted);font:11px/1.35 var(--mono);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.quick-open-copy mark{color:var(--accent);background:0 0;border-radius:2px;font-weight:800}.quick-open-badge{background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent);border-radius:999px;flex:none;padding:2px 6px;font-size:9px;font-weight:750}.quick-open-open-dot{background:var(--accent);border-radius:50%;flex:0 0 7px;width:7px;height:7px}.quick-open-state{min-height:110px;color:var(--muted);text-align:center;place-content:center;gap:5px;padding:20px;font-size:12px;display:grid}.quick-open-state strong{color:var(--text)}.quick-open-footer{border-top:1px solid var(--line);background:var(--panel-2);min-height:32px;color:var(--muted);flex:none;justify-content:flex-end;align-items:center;gap:14px;padding:5px 12px;font-size:10px;display:flex}.quick-open-footer span{align-items:center;gap:4px;display:inline-flex}.quick-open-footer kbd{border:1px solid var(--line-strong);background:var(--panel);min-width:20px;color:var(--text);font:9px/1.2 var(--mono);text-align:center;border-bottom-width:2px;border-radius:4px;padding:2px 4px}.error-notice{border:1px solid color-mix(in srgb, var(--danger) 55%, var(--line));background:color-mix(in srgb, var(--danger) 9%, var(--panel));color:var(--danger);border-radius:7px;margin:10px 14px;padding:10px 12px;font-size:12px}.error-notice>div{justify-content:space-between;gap:10px;display:flex}.error-notice p{white-space:pre-wrap;margin:5px 0 0}.error-notice ul{margin:7px 0 0;padding-left:20px}.sync-feedback{border-bottom:1px solid color-mix(in srgb, var(--success) 45%, var(--line));background:color-mix(in srgb, var(--success) 10%, var(--panel));color:var(--text);text-align:right;padding:7px 14px;font-size:11px}.viewer-error{place-items:center;min-height:55vh;display:grid}.viewer-error .error-notice{width:min(620px,100% - 32px)}.workspace{grid-template-columns:var(--sidebar-width,330px) 6px minmax(0, 1fr);flex:1;min-height:0;display:grid;overflow:hidden}.workspace.is-resizing,.main-view.is-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.workspace.is-resizing.is-row-resizing{cursor:row-resize}.sidebar{background:var(--panel);flex-direction:column;min-height:0;display:flex;overflow:hidden}.horizontal-resize-handle{z-index:8;cursor:col-resize;touch-action:none;background:var(--panel);outline:none;min-width:6px;min-height:0;position:relative}.horizontal-resize-handle:after{background:var(--line-strong);content:"";transition:inset .1s,background .1s;position:absolute;inset:0 2px}.horizontal-resize-handle:hover:after,.horizontal-resize-handle:focus-visible:after,.horizontal-resize-handle.active:after{background:var(--accent);inset-inline:1px}.vertical-resize-handle{z-index:9;cursor:row-resize;touch-action:none;outline:none;height:6px;position:absolute;top:-3px;left:0;right:0}.vertical-resize-handle:after{background:var(--line-strong);content:"";transition:inset .1s,background .1s;position:absolute;inset:2px 0}.vertical-resize-handle:hover:after,.vertical-resize-handle:focus-visible:after,.vertical-resize-handle.active:after{background:var(--accent);inset-block:1px}.sidebar-stack{--sidebar-stack-min-height:102px;--sidebar-stack-compact-share:25%;border-bottom:1px solid var(--line);flex-direction:column;flex:none;min-height:37px;display:flex}.sidebar-stack--code{--sidebar-stack-min-height:260px;--sidebar-stack-compact-share:58%}.sidebar-stack--comments{--sidebar-stack-min-height:210px;--sidebar-stack-compact-share:28%;position:relative}.sidebar-stack.is-expanded{min-height:min(var(--sidebar-stack-min-height), var(--sidebar-stack-compact-share));flex:auto}.sidebar-stack-toggle{background:var(--panel-2);width:100%;color:var(--text);text-align:left;border:0;border-radius:0;flex:none;align-items:center;gap:8px;padding:10px 14px;font-size:12px;font-weight:650;display:flex}.sidebar-stack-toggle:hover{background:var(--accent-soft)}.sidebar-stack-header{background:var(--panel-2);flex:none;display:flex}.sidebar-stack-header .sidebar-stack-toggle{flex:1;min-width:0}.sidebar-stack-action{width:40px;color:var(--muted);background:0 0;border:0;border-radius:0;flex:0 0 40px;place-items:center;padding:0;display:grid;position:relative}.sidebar-stack-action:hover,.sidebar-stack-action.active{background:var(--accent-soft);color:var(--accent)}.sidebar-stack-action svg{width:16px;height:16px}.sidebar-stack-toggle>span:nth-child(2){flex:1;min-width:0}.sidebar-stack-chevron{width:16px;height:16px;color:var(--muted);flex:0 0 18px}.sidebar-stack-count{background:var(--accent-soft);min-width:19px;height:19px;color:var(--accent);border-radius:10px;place-items:center;font-size:10px;display:inline-grid}.sidebar-stack-icon{width:16px;height:16px;color:var(--muted);flex:0 0 16px}.sidebar-stack-body[hidden]{display:none}.sidebar-stack-body{overscroll-behavior:contain;flex:auto;min-height:0;overflow:hidden auto}.segmented{background:var(--panel-2);border:1px solid var(--line);border-radius:7px;gap:2px;padding:3px;display:flex}.segmented button{color:var(--muted);background:0 0;border:0;flex:1;padding:6px 7px;font-size:12px}.segmented button.active{background:var(--panel);color:var(--text);box-shadow:0 1px 3px var(--shadow-small)}.segmented.compact{margin-top:1px}.file-panel,.comment-sidebar-detail,.sidebar-stack-body>section{padding:12px 14px 18px}.file-panel{padding:10px 14px 16px}.file-panel>input{height:34px;margin-top:8px;font-size:12px}.file-scope-checkbox{min-height:31px;color:var(--muted);cursor:pointer;align-items:center;gap:8px;margin:3px 0;padding:4px 7px;font-size:11px;display:flex}.file-scope-checkbox:hover{color:var(--text)}.file-scope-checkbox>input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);flex:0 0 15px;margin:0;padding:0}.file-tree{flex-direction:column;margin:3px -4px 14px;display:flex;overflow:visible}.file-tree-summary{min-height:31px;color:var(--muted);align-items:center;gap:7px;padding:0 2px 0 8px;font-size:11px;display:flex}.file-tree-summary>span{flex:1;min-width:0}.file-tree-summary>button{width:26px;height:26px;color:var(--muted);background:0 0;border:0;flex:0 0 26px;place-items:center;padding:0;display:grid}.file-tree-summary>button:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.file-tree-summary>button svg{width:16px;height:16px}.file-tree>*{flex-shrink:0}.file-tree-virtualized{contain:layout style;width:100%;position:relative}.file-tree-virtualized>.file-tree-row{height:31px;position:absolute;left:0}.file-tree-row{width:100%;height:31px;color:var(--text);text-align:left;font:650 14px/1.35 var(--mono);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;align-items:center;gap:0;padding:6px 8px;display:flex;overflow:hidden}.file-tree-row:hover,.file-tree-row.active{background:var(--accent-soft);color:var(--file-tree-active-text)}.file-tree-label{text-overflow:ellipsis;min-width:0;overflow:hidden}.directory-chevron{color:var(--muted);text-align:center;flex:0 0 14px;margin-right:4px;font-size:10px}.file-tree-icon-group{flex:none;align-items:center;gap:2px;margin-right:8px;display:flex}.tree-entry-icon{width:16px;height:16px;color:var(--muted);flex:0 0 16px}.file-type-icon{color:var(--file-icon-light-fg);--file-icon-bg:var(--file-icon-light-bg);place-items:center;display:inline-grid}.file-type-icon>svg{width:100%;height:100%;display:block}.file-type-icon>svg .bg{fill:var(--file-icon-bg)}:root[data-theme=dark] .file-type-icon{color:var(--file-icon-dark-fg);--file-icon-bg:var(--file-icon-dark-bg)}@media (prefers-color-scheme:dark){:root[data-theme=system] .file-type-icon{color:var(--file-icon-dark-fg);--file-icon-bg:var(--file-icon-dark-bg)}}.file-change-icon{flex:0 0 14px;place-items:center;width:14px;height:14px;display:grid}.file-change-icon svg{width:14px;height:14px}.file-change-icon--added{color:var(--success)}.file-change-icon--deleted{color:var(--danger)}.file-change-icon--modified{color:var(--attention)}.file-change-icon--renamed{color:var(--done)}.file-change-icon--type-changed{color:var(--info)}.search-panel{padding:12px 12px 16px}.search-input-shell{position:relative}.search-input-shell>input{height:34px;padding-right:72px;font-size:12px}.search-options{gap:1px;display:flex;position:absolute;top:5px;right:5px}.search-options button{width:28px;height:24px;color:var(--muted);font:11px/1 var(--mono);background:0 0;border:0;border-radius:4px;place-items:center;padding:0;display:grid}.search-options button:hover{background:var(--panel-2);color:var(--text)}.search-options button.active{background:var(--accent-soft);color:var(--accent)}.search-options button:last-child>span{border-bottom:1px solid;padding-bottom:1px}.search-summary{min-height:33px;color:var(--muted);align-items:center;gap:7px;padding:7px 2px 4px 5px;font-size:11px;display:flex}.search-summary>span:first-child{flex:1;min-width:0}.search-refreshing{color:var(--accent);font-size:10px}.search-summary>button{width:26px;height:26px;color:var(--muted);background:0 0;border:0;flex:0 0 26px;place-items:center;padding:0;display:grid}.search-summary>button:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.search-summary>button svg{width:16px;height:16px}.search-panel>.error-notice{margin:8px 0 0}.search-results{margin:2px -5px 0}.search-result-group{border-bottom:1px solid var(--line)}.search-result-group:last-child{border-bottom:0}.search-result-file{width:100%;min-height:32px;color:var(--text);text-align:left;background:0 0;border:0;align-items:center;gap:6px;padding:5px 6px;display:flex}.search-result-file:hover{background:var(--panel-2)}.search-result-file-icon-group{flex:none;align-items:center;gap:2px;display:flex}.search-result-file-icon-group>.tree-entry-icon{flex-basis:14px;width:14px;height:14px}.search-result-chevron{width:14px;height:14px;color:var(--muted);flex:0 0 14px;place-items:center;display:grid}.search-result-chevron svg{width:14px;height:14px}.search-result-file-label{flex:1;align-items:baseline;gap:8px;min-width:0;display:flex;overflow:hidden}.search-result-file strong{min-width:0;max-width:68%;font:650 11px/1.3 var(--mono);text-overflow:ellipsis;white-space:nowrap;flex:0 auto;overflow:hidden}.search-result-directory{min-width:0;color:var(--muted);font:500 10px/1.3 var(--mono);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.search-result-count{background:var(--panel-2);min-width:21px;height:19px;color:var(--muted);border-radius:10px;place-items:center;padding:0 5px;font-size:10px;display:inline-grid}.search-result-lines{padding:0 0 4px 20px}.search-result-line{width:100%;color:var(--text);text-align:left;background:0 0;border:0;border-radius:4px;grid-template-columns:28px minmax(0,1fr);align-items:baseline;gap:5px;padding:5px 7px;display:grid}.search-result-line:hover{background:var(--accent-soft)}.search-result-line-number{color:var(--muted);font:10px/1.4 var(--mono);text-align:right}.search-result-line code{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.search-result-line mark{background:var(--search-match-bg);color:var(--search-match-text);border-radius:2px;font-weight:750}.search-empty{color:var(--muted);margin:8px 2px 0;font-size:11px}.truncated{border:1px solid var(--warning-line);background:var(--warning);color:var(--warning-text);border-radius:5px;margin:8px 0 0;padding:7px 8px;font-size:11px}.main-view{grid-template-columns:minmax(0,1fr);min-width:0;min-height:0;display:grid;position:relative;overflow:hidden auto}.main-view.two-pane{grid-template-columns:minmax(0,1fr) 6px minmax(0,1fr);overflow:auto hidden}.document-pane{background:var(--bg);min-width:0;min-height:0;position:relative;overflow:auto}.pane-resize-handle{background:var(--bg)}.document-pane-drop-target{border:1px dashed var(--line-strong);background:color-mix(in srgb, var(--accent) 4%, var(--panel));border-radius:10px;min-height:calc(100% - 72px);margin:16px}.document-tabs-shell{z-index:6;border-bottom:1px solid var(--line-strong);background:var(--panel-2);min-width:0;height:40px;display:flex;position:sticky;top:0}.pane-find-layer{z-index:7;pointer-events:none;justify-content:flex-end;height:0;padding-right:10px;display:flex;position:sticky;top:44px}.document-pane:has(.markdown-view-toolbar) .pane-find-layer{top:86px}.document-pane:has(.walkthrough-viewer) .pane-find-layer{top:118px}.pane-find-widget{border:1px solid var(--line-strong);background:var(--panel);width:min(430px,100% - 6px);height:35px;box-shadow:0 5px 18px var(--shadow-medium);pointer-events:auto;border-radius:3px;align-items:center;gap:2px;padding:4px;display:flex}.pane-find-input-shell{border:1px solid var(--line-strong);background:var(--bg);flex:auto;align-items:center;min-width:96px;height:25px;display:flex}.pane-find-input-shell:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.pane-find-input-shell.invalid,.pane-find-input-shell.invalid:focus-within{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger)}.pane-find-input-shell input{min-width:48px;height:23px;color:var(--text);font:12px var(--mono);background:0 0;border:0;outline:0;flex:auto;padding:3px 5px}.pane-find-input-shell>button,.pane-find-action{width:23px;height:23px;color:var(--muted);font:650 10px var(--mono);background:0 0;border:0;border-radius:3px;flex:0 0 23px;place-items:center;padding:0;display:grid}.pane-find-input-shell>button:hover,.pane-find-action:hover:not(:disabled){background:var(--accent-soft);color:var(--text)}.pane-find-input-shell>button.active{background:var(--accent-soft);color:var(--accent)}.pane-find-whole-word{border-bottom:1px solid;padding-bottom:1px}.pane-find-status{width:42px;color:var(--muted);font:10px var(--mono);text-align:center;text-overflow:ellipsis;white-space:nowrap;flex:0 0 42px;overflow:hidden}.pane-find-status.invalid{color:var(--danger)}.pane-find-action svg{width:15px;height:15px}.pane-find-action:disabled{opacity:.35}::highlight(rvw-pane-find-left-match){background-color:var(--lightningcss-light,#eab3086b)var(--lightningcss-dark,#facc1561)}::highlight(rvw-pane-find-right-match){background-color:var(--lightningcss-light,#eab3086b)var(--lightningcss-dark,#facc1561)}::highlight(rvw-pane-find-left-current){color:var(--lightningcss-light,#17120a)var(--lightningcss-dark,#fff);background-color:var(--lightningcss-light,#f58b0ad1)var(--lightningcss-dark,#f97316c7)}::highlight(rvw-pane-find-right-current){color:var(--lightningcss-light,#17120a)var(--lightningcss-dark,#fff);background-color:var(--lightningcss-light,#f58b0ad1)var(--lightningcss-dark,#f97316c7)}.document-tabs{scrollbar-width:thin;flex:1;min-width:0;display:flex;overflow-x:auto}.document-tab{border-right:1px solid var(--line);background:var(--panel-2);min-width:126px;max-width:210px;color:var(--muted);flex:0 180px;display:flex;position:relative}.document-tab[draggable=true]{cursor:grab}.document-tab[draggable=true]:active{cursor:grabbing}.document-tab.active{background:var(--panel);color:var(--text)}.document-tab.active:before{background:var(--line-strong);content:"";height:2px;position:absolute;inset:0 0 auto}.document-pane.active .document-tab.active:before{background:var(--tab-accent)}.document-tab-activate{min-width:0;color:inherit;text-align:left;background:0 0;border:0;border-radius:0;flex:1;align-items:center;gap:7px;padding:0 4px 0 10px;display:flex}.document-tab-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:600 11px var(--mono);overflow:hidden}.document-tab-icon-group{flex:none;align-items:center;gap:2px;display:flex}.document-tab-close,.document-tabs-menu-toggle{width:30px;color:var(--muted);background:0 0;border:0;border-radius:0;flex:0 0 30px;place-items:center;padding:0;display:grid}.document-tab-close:hover,.document-tabs-menu-toggle:hover{background:var(--accent-soft);color:var(--accent)}.document-tabs-menu{border-left:1px solid var(--line);flex:0 0 38px;display:flex;position:relative}.document-tabs-menu-toggle{flex-basis:38px;width:38px}.document-tabs-menu-popover{z-index:8;border:1px solid var(--line-strong);background:var(--panel);width:min(330px,100vw - 32px);max-height:320px;box-shadow:0 8px 28px var(--shadow-medium);border-radius:7px;padding:5px;position:absolute;top:calc(100% + 4px);right:4px;overflow:auto}.document-tabs-menu-popover>span{color:var(--muted);padding:9px;font-size:12px;display:block}.document-tabs-menu-popover button{width:100%;color:var(--text);text-align:left;font:500 11px var(--mono);background:0 0;border:0;align-items:center;gap:8px;padding:7px 8px;display:flex}.document-tabs-menu-popover button:hover,.document-tabs-menu-popover button.active{background:var(--accent-soft);color:var(--accent)}.document-tabs-menu-popover button:disabled{color:var(--muted);cursor:default;opacity:.55}.document-tabs-menu-separator{background:var(--line);height:1px;margin:4px -5px}.document-tabs-menu-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.empty-document-viewer{min-height:55vh;color:var(--muted);text-align:center;align-content:center;place-items:center;gap:6px;display:grid}.empty-document-viewer strong{color:var(--text);font-size:13px}.empty-document-viewer span{font-size:12px}.document-viewer{min-height:100%;padding-bottom:24px}.reference-fallback-banner{border:1px solid color-mix(in srgb, var(--warning-text) 24%, var(--line));background:var(--warning);color:var(--warning-text);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;margin:16px 16px 0;padding:10px 12px;display:flex}.reference-fallback-banner>div{gap:2px;min-width:0;display:grid}.reference-fallback-banner strong{font-size:12px}.reference-fallback-banner span{font-size:11px}.reference-fallback-banner button{border-color:color-mix(in srgb, var(--warning-text) 30%, var(--line));background:var(--panel);min-height:30px;color:var(--text);flex:none;font-size:11px;font-weight:700}.diff-style-modes button{min-width:54px}.diff-surface{border:1px solid var(--line);background:var(--panel);box-shadow:0 2px 14px var(--shadow-small);border-radius:9px;margin:16px;overflow:clip}.markdown-view-toolbar{z-index:5;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--panel) 94%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);justify-content:space-between;align-items:center;gap:12px;min-height:42px;padding:6px 16px;display:flex;position:sticky;top:40px}.markdown-view-toolbar>span{align-items:center;gap:7px;min-width:0;display:flex}.markdown-view-toolbar>span code{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.markdown-view-modes{flex:0 0 150px;width:150px}.markdown-preview>header{border-bottom:1px solid var(--line);background:var(--panel-2);min-height:39px;color:var(--muted);align-items:center;gap:10px;padding:6px 12px;font-size:10px;display:flex}.markdown-preview>header>span:first-child{color:var(--text);font-weight:700}.markdown-preview>header>span:nth-child(2){text-align:right;flex:1;min-width:0}.markdown-comment-surface{-webkit-user-select:text;user-select:text;min-width:0;position:relative}.markdown-preview>.markdown-comment-surface>article{width:min(900px,100%);margin:0 auto;padding:38px clamp(24px,5vw,64px) 80px;font-size:14px;line-height:1.7}.markdown-preview>.markdown-comment-surface>article>:first-child{margin-top:0}.markdown-selection-popover{z-index:18;position:absolute;transform:translate(-50%)}.markdown-selection-popover.is-composing{width:min(460px,100% - 24px)}.markdown-selection-popover .inline-comment-composer{box-shadow:0 12px 30px color-mix(in srgb, var(--text) 18%, transparent);margin:0}.markdown-selection-composer-slot{margin:12px 0;display:flow-root}.markdown-selection-composer-slot:empty{display:none}.markdown-selection-composer-slot .inline-comment-composer{width:min(680px,100% - 24px);box-shadow:0 8px 24px color-mix(in srgb, var(--text) 12%, transparent);margin:0 auto}.markdown-selection-comment-action{border-color:color-mix(in srgb, var(--accent) 55%, var(--line));background:var(--accent);min-height:32px;box-shadow:0 7px 22px color-mix(in srgb, var(--text) 18%, transparent);color:var(--accent-contrast);border-radius:999px;padding:5px 10px;font-size:11px;font-weight:700}.rvw-markdown-selected{background:color-mix(in srgb, var(--accent) 24%, transparent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 24%, transparent)}.rvw-markdown-commented{text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 68%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 68%, transparent);text-underline-offset:3px;text-decoration-thickness:2px}.markdown-inline-comments{gap:8px;margin:10px 0 18px;display:grid}.markdown-inline-comments>.comment-thread{border:1px solid color-mix(in srgb, var(--accent) 30%, var(--line));background:var(--panel);box-shadow:0 3px 12px var(--shadow-small);border-radius:8px}.markdown-preview h1,.markdown-preview h2,.markdown-preview h3{line-height:1.3}.markdown-preview h1{border-bottom:1px solid var(--line);margin-bottom:20px;padding-bottom:12px;font-size:28px}.markdown-preview h2{margin:34px 0 12px;font-size:20px}.markdown-preview h3{margin:24px 0 10px;font-size:16px}.markdown-preview p,.markdown-preview ul,.markdown-preview ol{margin:11px 0}.markdown-preview blockquote{border-left:3px solid var(--accent);background:var(--accent-soft);color:var(--muted);margin:18px 0;padding:8px 15px}.markdown-preview code{border:1px solid var(--line);background:var(--panel-2);font-size:inherit;border-radius:4px;padding:2px 5px}.markdown-preview pre{border:1px solid var(--line);background:var(--panel-2);border-radius:8px;padding:16px;overflow:auto}.markdown-preview pre code{border:0;padding:0}.markdown-mermaid-shell{border:1px solid var(--line-strong);background:var(--panel);box-shadow:0 3px 14px var(--shadow-small);border-radius:9px;margin:20px 0;overflow:hidden}.markdown-mermaid-shell.is-source-highlighted{border-color:color-mix(in srgb, var(--accent) 68%, var(--line));box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 24%, transparent), 0 3px 14px var(--shadow-small)}.markdown-mermaid-shell.is-source-selected{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--panel));box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 30%, transparent), 0 3px 14px var(--shadow-small)}.markdown-mermaid-toolbar{border-bottom:1px solid var(--line);background:var(--panel-2);min-height:32px;color:var(--muted);letter-spacing:.03em;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;font-size:10px;font-weight:700;display:flex}.markdown-mermaid{min-height:160px;padding:18px;overflow:auto}.markdown-mermaid svg{width:100%;min-width:480px;max-height:440px;margin:0 auto;display:block}.markdown-mermaid-error{background:var(--warning);color:var(--warning-text);padding:14px;font-size:12px}.markdown-preview img{max-width:100%;height:auto}.markdown-image-placeholder{overflow-wrap:anywhere;border:1px dashed var(--line-strong);background:var(--panel-2);max-width:100%;color:var(--muted);border-radius:6px;align-items:center;padding:4px 8px;font-size:12px;line-height:1.5;display:inline-flex}.markdown-preview details{margin:11px 0}.markdown-preview summary{cursor:pointer;font-weight:650}.markdown-preview details[open]>summary{margin-bottom:8px}.markdown-table-scroll{border:1px solid var(--line-strong);border-radius:7px;width:100%;margin:18px 0;overflow-x:auto}.markdown-table-scroll table{border-collapse:collapse;border-spacing:0;width:max-content;min-width:100%}.markdown-table-scroll th,.markdown-table-scroll td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);overflow-wrap:anywhere;text-align:left;vertical-align:top;white-space:normal;word-break:normal;-webkit-user-select:text;user-select:text;max-width:40ch;padding:8px 12px}.markdown-table-scroll th:last-child,.markdown-table-scroll td:last-child{border-right:0}.markdown-table-scroll tr:last-child td{border-bottom:0}.markdown-table-scroll th{background:var(--panel-2);font-weight:700}.markdown-table-scroll tbody tr:nth-child(2n){background:color-mix(in srgb, var(--panel-2) 55%, transparent)}.markdown-preview .contains-task-list,.walkthrough-markdown .contains-task-list{padding-left:0;list-style:none}.markdown-preview .task-list-item,.walkthrough-markdown .task-list-item{list-style:none}.markdown-preview .task-list-item>input[type=checkbox],.walkthrough-markdown .task-list-item>input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent-emphasis);vertical-align:-2px;border-radius:3px;margin:0 8px 0 0;padding:0}diffs-container>[slot=header-metadata]{align-items:center;gap:7px;display:flex}.diff-fallback-badge{border:1px solid var(--line-strong);background:var(--panel-2);min-height:24px;color:var(--muted);white-space:nowrap;border-radius:12px;align-items:center;padding:3px 8px;font-size:10px;display:inline-flex}.viewer-loading,.viewer-unavailable{min-height:55vh;color:var(--muted);place-items:center;display:grid}.viewer-unavailable{align-content:center;gap:10px}.viewer-unavailable>span{border:1px solid var(--line-strong);width:52px;height:52px;font:700 12px var(--mono);border-radius:8px;place-items:center;display:grid}.repository-image-viewer{width:100%;overflow-x:auto}.repository-image-grid{min-width:0;display:grid}.repository-image-viewer--split .repository-image-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-width:680px}.repository-image-pane{border-right:1px solid var(--line);min-width:0}.repository-image-pane:last-child{border-right:0}.repository-image-pane>header{border-bottom:1px solid var(--line);background:var(--panel-2);align-items:center;gap:9px;min-height:39px;padding:5px 10px 5px 12px;display:flex}.repository-image-pane>header strong{flex:none;font-size:11px}.repository-image-pane>header code{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:10px;overflow:hidden}.repository-image-asset{background-color:var(--panel);background-image:linear-gradient(45deg, color-mix(in srgb, var(--muted) 9%, transparent) 25%, transparent 25%), linear-gradient(-45deg, color-mix(in srgb, var(--muted) 9%, transparent) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, color-mix(in srgb, var(--muted) 9%, transparent) 75%), linear-gradient(-45deg, transparent 75%, color-mix(in srgb, var(--muted) 9%, transparent) 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px;place-items:center;min-height:55vh;padding:24px;display:grid;position:relative;overflow:hidden}.repository-image-asset img{object-fit:contain;max-width:100%;height:auto;display:block}.repository-image-status,.repository-image-empty{min-height:55vh;color:var(--muted);text-align:center;place-items:center;padding:24px;font-size:12px;display:grid}.repository-image-status{position:absolute;inset:0}.repository-image-status--error{color:var(--danger)}.repository-image-comments{border-top:1px solid var(--line);background:var(--panel);gap:8px;padding:10px;display:grid}.comment-icon-button{border-color:var(--line-strong);width:32px;height:32px;color:var(--muted);background:0 0;place-items:center;padding:0;display:grid}.comment-icon-button:hover,.comment-icon-button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.diff-header-file-actions{flex:none;align-items:center;gap:6px;display:inline-flex}.file-structure-references{flex:none;display:grid;position:relative}.file-structure-references-trigger[aria-expanded=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.file-structure-references-trigger[aria-disabled=true]{cursor:not-allowed;opacity:.48}.file-structure-references-trigger[aria-disabled=true]:hover{border-color:var(--line-strong);color:var(--muted);background:0 0}.file-structure-references-trigger.is-error{border-color:color-mix(in srgb, var(--danger) 55%, var(--line));color:var(--danger)}.file-structure-references-error-badge{border:1px solid var(--panel);background:var(--danger);color:#fff;pointer-events:none;border-radius:999px;place-items:center;width:13px;height:13px;font-size:9px;font-weight:800;line-height:1;display:grid;position:absolute;top:-4px;right:-4px}.file-structure-references-popover{z-index:1000;border:1px solid var(--line-strong);background:var(--panel);width:min(340px,100vw - 16px);max-height:min(420px,100vh - 24px);box-shadow:0 14px 36px var(--shadow-medium);border-radius:9px;padding:5px;display:grid;position:fixed;overflow:auto}.file-structure-references-popover>button{min-width:0;color:var(--text);text-align:left;background:0 0;border:0;border-radius:6px;justify-items:start;gap:3px;padding:9px 10px;display:grid}.file-structure-references-popover>button:hover,.file-structure-references-popover>button:focus-visible{background:var(--accent-soft);outline:none}.file-structure-references-popover strong,.file-structure-references-popover>button>span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.file-structure-references-popover strong{font-size:12px}.file-structure-references-popover>button>span{color:var(--muted);font-size:11px}.file-structure-references-additional{color:var(--accent);margin-left:6px;font-weight:750;display:inline-block}.inline-comment-composer{background:var(--panel);border:1px solid var(--line-strong);box-shadow:0 4px 16px var(--shadow-medium);border-radius:8px;gap:9px;padding:12px;display:grid}.inline-comment-composer--file{margin:16px 16px 0}.inline-comment-composer--line{width:min(680px,100% - 16px);margin:8px}.inline-comment-composer>strong{color:var(--muted);font-size:12px}.inline-comment-composer .error-notice{margin:0}.inline-comment-composer textarea{min-height:84px;font-size:13px}.inline-comment-actions{justify-content:flex-end;gap:7px;display:flex}.inline-comment-actions button{font-size:12px}.inline-comment-actions .button--quiet{color:var(--muted)}.form-error{color:var(--danger);margin:7px 0 0;font-size:11px}.review-tree-items{flex-direction:column;margin:0 -4px;display:flex}.review-tree-item.file-tree-row{flex:0 0 31px}.review-tree-count{background:var(--panel-2);min-width:18px;height:18px;color:var(--muted);border-radius:9px;flex:0 0 18px;place-items:center;margin-left:4px;font-size:10px;display:inline-grid}.review-tree-walkthrough-icon{color:var(--done)}.review-tree-walkthrough-icon svg{width:16px;height:16px}.review-tree-walkthrough-list{flex-direction:column;display:flex}.review-tree-walkthrough.file-tree-row{padding-left:22px}.walkthrough-viewer{background:radial-gradient(circle at 30% -5%, color-mix(in srgb, var(--accent) 8%, transparent), transparent 34rem), var(--bg);min-height:calc(100% - 40px)}.walkthrough-viewer-header{z-index:4;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--panel) 94%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:space-between;align-items:center;gap:18px;min-height:74px;padding:12px 20px;display:flex;position:sticky;top:40px}.walkthrough-viewer-title{flex:auto;align-items:center;gap:12px;min-width:0;display:flex;overflow:hidden}.walkthrough-viewer-heading-copy{min-width:0;overflow:hidden}.walkthrough-viewer-icon{border:1px solid color-mix(in srgb, var(--done) 42%, var(--line));background:color-mix(in srgb, var(--done) 12%, var(--panel));width:38px;height:38px;color:var(--done);border-radius:10px;flex:0 0 38px;place-items:center;display:grid}.walkthrough-viewer-icon svg{width:19px;height:19px}.walkthrough-kicker{color:var(--muted);letter-spacing:.08em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;margin-bottom:3px;font-size:10px;font-weight:750;display:block;overflow:hidden}.walkthrough-viewer-title h2{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:16px;overflow:hidden}.walkthrough-comment-button{flex:0 0 32px;position:relative}.walkthrough-viewer-actions{flex:none;align-items:center;gap:6px;display:flex}.code-reference-notice{border:1px solid color-mix(in srgb, var(--warning-text) 24%, var(--line));background:var(--warning);max-width:min(420px,100% - 40px);box-shadow:0 6px 18px color-mix(in srgb, var(--text) 12%, transparent);color:var(--warning-text);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:650;overflow:hidden}.walkthrough-reference-notice{position:absolute;top:calc(100% + 8px);right:20px}.comment-reference-notice{max-width:100%;margin-top:5px;display:inline-block}.walkthrough-delete-button{color:var(--muted)}.walkthrough-delete-button:hover:not(:disabled){border-color:color-mix(in srgb, var(--danger) 45%, var(--line));background:var(--danger-soft);color:var(--danger)}.walkthrough-comment-button>span{background:var(--accent);min-width:17px;height:17px;color:var(--accent-contrast);font:700 9px var(--mono);border-radius:999px;place-items:center;padding:0 4px;display:grid;position:absolute;top:-6px;right:-6px}.walkthrough-viewer>.error-notice{margin:10px 16px 0}.walkthrough-comment-area{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--panel) 76%, transparent);gap:10px;padding:0 16px 16px;display:grid}.walkthrough-comment-area>.inline-comment-composer--file{margin-inline:0}.walkthrough-comment-area>.comment-thread{border:1px solid var(--line);background:var(--panel);border-radius:8px}.walkthrough-markdown-surface{min-width:0}.walkthrough-markdown{width:min(940px,100%);min-width:0;margin:0 auto;padding:38px clamp(26px,4vw,58px) 100px;font-size:14px;line-height:1.7}.walkthrough-markdown>:first-child{margin-top:0}.walkthrough-markdown h1,.walkthrough-markdown h2,.walkthrough-markdown h3{color:var(--text);scroll-margin-top:130px;line-height:1.28}.walkthrough-markdown h1{border-bottom:1px solid var(--line);letter-spacing:-.025em;margin:0 0 18px;padding-bottom:12px;font-size:27px}.walkthrough-markdown h2{margin:38px 0 13px;padding-top:6px;font-size:20px}.walkthrough-markdown h3{margin:25px 0 10px;font-size:16px}.walkthrough-markdown p,.walkthrough-markdown ul,.walkthrough-markdown ol{margin:11px 0}.walkthrough-markdown li+li{margin-top:5px}.walkthrough-markdown blockquote{border-left:3px solid var(--done);background:color-mix(in srgb, var(--done) 7%, var(--panel));color:var(--muted);margin:18px 0;padding:8px 15px}.walkthrough-markdown code{border:1px solid var(--line);background:var(--panel-2);color:var(--text);font-size:inherit;border-radius:4px;padding:2px 5px}.walkthrough-markdown pre{border:1px solid var(--line);background:var(--panel-2);border-radius:9px;margin:18px 0;padding:16px;overflow:auto}.walkthrough-markdown pre code{background:0 0;border:0;padding:0}.code-inline-reference{border:1px solid color-mix(in srgb, var(--accent) 45%, var(--line));background:color-mix(in srgb, var(--accent) 8%, var(--panel));max-width:100%;color:var(--accent);-webkit-user-select:text;user-select:text;vertical-align:baseline;border-radius:5px;align-items:center;gap:5px;margin:0 2px;padding:2px 6px;line-height:1.35;display:inline-flex}.code-inline-reference:hover{border-color:var(--accent);background:var(--accent-soft)}.code-inline-reference svg{flex:none;width:13px;height:13px}.code-inline-reference>span{font:650 12px var(--mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.code-inline-reference small{color:var(--muted);font:9px var(--mono);white-space:nowrap}.main-view.two-pane .walkthrough-markdown{padding-inline:clamp(22px,4vw,44px)}.main-view.two-pane .walkthrough-diagram svg{min-width:520px}.walkthrough-diagram-shell{border:1px solid var(--line-strong);background:var(--panel);box-shadow:0 4px 18px var(--shadow-small);border-radius:10px;margin:22px 0 28px;overflow:hidden}.walkthrough-diagram-shell.has-comment{border-color:color-mix(in srgb, var(--accent) 55%, var(--line-strong));box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 12%, transparent)}.walkthrough-diagram-toolbar{border-bottom:1px solid var(--line);background:var(--panel-2);min-height:34px;color:var(--muted);letter-spacing:.03em;justify-content:space-between;align-items:center;gap:12px;padding:7px 10px;font-size:9px;font-weight:650;display:flex}.walkthrough-diagram-toolbar>span:nth-child(2){text-align:right;flex:1;min-width:0}.walkthrough-diagram-comment{min-height:27px;color:var(--accent);flex:none;align-items:center;gap:5px;padding:3px 8px;font-size:10px;display:inline-flex}.walkthrough-diagram-comment svg{width:13px;height:13px}.walkthrough-diagram{min-height:190px;padding:22px;overflow:auto}.walkthrough-diagram-comment-composer{border-top:1px solid var(--line);background:var(--panel-2);padding:0 10px 10px}.walkthrough-diagram-comment-composer .inline-comment-composer--line{width:100%;margin:10px 0 0}.walkthrough-diagram svg{width:100%;min-width:580px;max-height:480px;margin:0 auto;display:block}.walkthrough-diagram-node--linked{cursor:pointer;filter:drop-shadow(0 2px 3px var(--shadow-small));outline:none}.walkthrough-diagram-node--linked rect,.walkthrough-diagram-node--linked polygon,.walkthrough-diagram-node--linked circle,.walkthrough-diagram-node--linked path{transition:fill .1s,stroke-width .1s;fill:color-mix(in srgb, var(--accent) 7%, var(--panel))!important;stroke:var(--accent)!important;stroke-width:1.6px!important}.walkthrough-diagram-node--linked line{stroke:color-mix(in srgb, var(--accent) 72%, var(--line-strong))!important;stroke-width:1.2px!important}.walkthrough-diagram-node--linked:hover rect,.walkthrough-diagram-node--linked:focus-visible rect,.walkthrough-diagram-node--linked:hover polygon,.walkthrough-diagram-node--linked:focus-visible polygon,.walkthrough-diagram-node--linked:hover circle,.walkthrough-diagram-node--linked:focus-visible circle,.walkthrough-diagram-node--linked:hover path,.walkthrough-diagram-node--linked:focus-visible path{fill:color-mix(in srgb, var(--accent) 14%, var(--panel))!important;stroke-width:3px!important}.walkthrough-diagram-error{border:1px solid var(--warning-line);background:var(--warning);color:var(--warning-text);border-radius:8px;margin:18px 0;padding:12px;font-size:12px}.walkthrough-html-preview-shell{border:1px solid var(--line-strong);background:var(--panel);box-shadow:0 4px 18px var(--shadow-small);border-radius:10px;margin:22px 0 28px;overflow:visible}.walkthrough-html-preview-toolbar{border-bottom:1px solid var(--line);background:var(--panel-2);min-height:34px;color:var(--muted);letter-spacing:.03em;justify-content:space-between;align-items:center;gap:12px;padding:7px 10px;font-size:9px;font-weight:650;display:flex}.walkthrough-html-preview-toolbar>span:nth-child(2){text-align:right;flex:1;min-width:0}.walkthrough-html-preview-frame-shell{min-width:0;position:relative}.walkthrough-html-preview-frame-shell iframe{background:var(--panel);border:0;width:100%;min-height:240px;display:block}.walkthrough-html-overlay{z-index:4;pointer-events:none;position:absolute;inset:0;overflow:visible}.walkthrough-html-comment-action,.walkthrough-html-marker{pointer-events:auto;box-shadow:0 3px 10px var(--shadow-medium);position:absolute}.walkthrough-html-comment-action{border-color:var(--accent);background:var(--panel);min-height:28px;color:var(--accent);align-items:center;gap:5px;padding:4px 8px;font-size:10px;display:inline-flex;transform:translate(-50%)}.walkthrough-html-comment-action:hover{background:var(--accent-soft)}.walkthrough-html-comment-action svg{width:13px;height:13px}.walkthrough-html-marker{border:1px solid color-mix(in srgb, var(--accent) 70%, var(--line));background:var(--panel);width:25px;height:25px;color:var(--accent);border-radius:999px;place-items:center;padding:5px;display:grid;transform:translate(-75%,-25%)}.walkthrough-html-marker.is-active{background:var(--accent);color:var(--accent-contrast)}.walkthrough-html-marker svg{width:13px;height:13px}.walkthrough-html-comment-composer{z-index:2;border:1px solid var(--line-strong);background:var(--panel);width:min(420px,100% - 24px);box-shadow:0 8px 24px var(--shadow-medium);pointer-events:auto;border-radius:8px;padding:10px;position:absolute;transform:translate(-50%,8px)}.walkthrough-html-comment-composer .inline-comment-composer--line{width:100%;margin:0}.walkthrough-html-preview-error{border:1px solid var(--warning-line);background:var(--warning);color:var(--warning-text);border-radius:8px;margin:18px 0;padding:12px;font-size:12px}.comment-sidebar{font-size:var(--comment-body-size)}.comment-state-filter button{font-size:var(--comment-ui-size)}.comment-state-filter button span{color:var(--muted);font-size:var(--comment-meta-size);margin-left:3px}.comment-list-toolbar,.pr-comment-actions,.comment-reply-actions,.comment-edit-actions,.comment-actions{align-items:center;gap:7px;display:flex}.comment-list-toolbar{justify-content:space-between;margin-top:8px}.comment-list-toolbar button,.comment-actions button,.comment-reply-actions button,.comment-edit-actions button,.pr-comment-actions button{font-size:var(--comment-ui-size)}.comment-list-toolbar button{color:var(--muted);padding:5px 7px}.comment-select-all{color:var(--muted);cursor:pointer;font-size:var(--comment-ui-size);align-items:center;gap:6px;display:flex}.comment-pr-create{margin-left:auto}.comment-select-all input,.comment-select-toggle input{width:auto}.comment-list{flex-direction:column;gap:8px;margin-top:10px;display:flex}.comment-list-item{align-items:flex-start;min-width:0;display:flex;position:relative}.comment-select-toggle{cursor:pointer;flex:0 0 28px;justify-content:center;align-self:flex-start;height:40px;padding-top:11px;display:flex}.comment-select-toggle input{flex:none;width:16px;height:16px;margin:0}.comment-list-item-content>.comment-thread{cursor:pointer}.comment-list-item.is-selected>.comment-list-item-content>.comment-thread{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft)}.comment-list-item-content{flex:1;min-width:0}.comment-list-item-content>.comment-thread{min-width:0}.comment-list-item-content>.error-notice{margin:6px 0 0}.pr-comment-composer{border:1px solid var(--line);background:var(--panel-2);border-radius:7px;gap:7px;margin-top:8px;padding:10px;display:grid}.pr-comment-composer label{color:var(--muted);font-size:var(--comment-meta-size);font-weight:650}.pr-comment-composer textarea,.comment-reply-composer textarea{font-size:var(--comment-body-size);line-height:1.5}.pr-comment-actions,.comment-reply-actions{justify-content:flex-end}.comment-copy-selection{z-index:5;box-shadow:0 3px 10px var(--shadow-medium);font-size:var(--comment-ui-size);margin-top:10px;position:sticky;bottom:8px}.comment-thread{border:1px solid var(--line);background:var(--panel);color:var(--text);font-size:var(--comment-body-size);border-radius:7px;position:relative;overflow:visible}.comment-thread--inline{border-left:3px solid var(--accent);width:min(100% - 16px,736px);box-shadow:0 3px 12px var(--shadow-small);margin:5px 8px 10px}.comment-thread-header{align-items:flex-start;min-width:0;display:flex}.comment-thread-toggle,.comment-thread-summary{min-width:0;color:var(--text);text-align:left;background:0 0;border:0;border-radius:0;flex:1;align-items:flex-start;gap:7px;padding:10px;display:flex}.comment-thread-toggle:hover{background:var(--accent-soft)}.comment-thread-chevron{color:var(--muted);font:700 16px/1 var(--mono);flex:none}.comment-thread-summary-copy{flex:1;gap:4px;min-width:0;display:grid}.comment-thread.is-collapsed .comment-thread-summary-copy{align-self:center}.comment-thread.is-collapsed .comment-thread-excerpt,.comment-thread.is-collapsed .comment-thread-meta{display:none}.comment-thread-target,.comment-thread-excerpt,.comment-thread-meta{min-width:0;overflow:hidden}.comment-thread-target{color:var(--text);font:650 var(--comment-ui-size)/1.4 var(--mono);text-overflow:ellipsis;white-space:nowrap}.comment-thread-excerpt{font-size:var(--comment-body-size);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.45;display:-webkit-box}.comment-thread-meta,.comment-post-meta,.comment-post>small{color:var(--muted);font-size:var(--comment-meta-size);line-height:1.4}.comment-thread-header-actions,.comment-thread-badges{flex:none;align-items:center;display:flex}.comment-thread-header-actions{gap:4px;padding:7px 7px 0 0}.comment-thread-badges{flex-direction:column;align-items:flex-end;gap:4px}.comment-thread-content{border-top:1px solid var(--line);padding:0 10px 10px}.comment-thread.is-collapsed .comment-thread-header{align-items:center}.comment-thread.is-collapsed .comment-thread-header-actions{padding-top:5px;padding-bottom:5px}.comment-thread--inline .comment-thread-header{align-items:center;min-height:34px}.comment-thread--inline .comment-thread-toggle{align-items:center;gap:6px;padding:7px 8px}.comment-thread--inline .comment-thread-chevron{font-size:14px}.comment-thread--inline .comment-thread-summary-copy{display:block}.comment-thread--inline .comment-thread-header-actions,.comment-thread--inline.is-collapsed .comment-thread-header-actions{align-self:stretch;padding:3px 4px 3px 0}.comment-thread--inline .comment-thread-badges{flex-direction:row}.comment-outdated-note{background:var(--danger-soft);color:var(--danger);font-size:var(--comment-meta-size);border-radius:5px;margin:9px 0 0;padding:7px 8px;line-height:1.45}.comment-source-quote{border-left:3px solid var(--line-strong);background:var(--panel-2);margin-top:9px;padding:8px}.comment-source-quote small{color:var(--muted)}.comment-source-quote pre{white-space:pre-wrap;font:inherit;margin:5px 0 0;font-size:12px;overflow:auto}.comment-post{border-bottom:1px solid var(--line);padding:8px 0}.comment-post:last-child{border-bottom:0}.comment-post-meta{justify-content:space-between;align-items:center;gap:8px;display:flex}.comment-post-meta>span,.comment-post-meta-end{align-items:center;gap:6px;display:inline-flex}.comment-post-meta strong{color:var(--text);font-size:var(--comment-meta-size)}.comment-post-meta small{color:var(--muted);font-size:var(--comment-badge-size)}.comment-markdown{overflow-wrap:anywhere;font-size:var(--comment-body-size);margin:4px 0 0;line-height:1.5}.comment-markdown>:first-child{margin-top:0}.comment-markdown>:last-child{margin-bottom:0}.comment-markdown p,.comment-markdown ul,.comment-markdown ol,.comment-markdown blockquote,.comment-markdown pre,.comment-markdown details,.comment-markdown-table-scroll{margin:7px 0}.comment-markdown h1,.comment-markdown h2,.comment-markdown h3,.comment-markdown h4,.comment-markdown h5,.comment-markdown h6{color:var(--text);font-size:var(--comment-body-size);border:0;margin:10px 0 6px;padding:0;line-height:1.35}.comment-markdown h1,.comment-markdown h2{font-size:calc(var(--comment-body-size) + 2px)}.comment-markdown ul,.comment-markdown ol{padding-left:20px}.comment-markdown li+li{margin-top:2px}.comment-markdown blockquote{border-left:3px solid var(--accent);background:var(--accent-soft);color:var(--muted);padding:5px 8px}.comment-markdown a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.comment-markdown-unavailable-link{color:var(--muted);text-underline-offset:2px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.comment-markdown code{border:1px solid var(--line);background:var(--panel-2);font-size:inherit;border-radius:4px;padding:1px 4px}.comment-markdown pre{border:1px solid var(--line);background:var(--panel-2);white-space:pre;border-radius:6px;max-width:100%;padding:9px;overflow:auto}.comment-markdown pre code{background:0 0;border:0;padding:0}.comment-markdown img{border-radius:6px;max-width:100%;height:auto;margin:7px 0;display:block}.comment-markdown details>summary{cursor:pointer;font-weight:650}.comment-markdown-table-scroll{border:1px solid var(--line-strong);border-radius:6px;width:100%;overflow-x:auto}.comment-markdown-table-scroll table{border-collapse:collapse;border-spacing:0;width:max-content;min-width:100%}.comment-markdown-table-scroll th,.comment-markdown-table-scroll td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);overflow-wrap:anywhere;text-align:left;vertical-align:top;white-space:normal;max-width:28ch;padding:5px 7px}.comment-markdown-table-scroll th:last-child,.comment-markdown-table-scroll td:last-child{border-right:0}.comment-markdown-table-scroll tr:last-child td{border-bottom:0}.comment-markdown-table-scroll th{background:var(--panel-2);font-weight:700}.comment-markdown .contains-task-list{padding-left:0;list-style:none}.comment-markdown .task-list-item{list-style:none}.comment-markdown .task-list-item>input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent-emphasis);vertical-align:-2px;margin:0 6px 0 0;padding:0}.comment-mermaid-shell{border:1px solid var(--line-strong);background:var(--panel);border-radius:7px;margin:8px 0;overflow:hidden}.comment-mermaid-toolbar{border-bottom:1px solid var(--line);background:var(--panel-2);min-height:29px;color:var(--muted);font-size:var(--comment-badge-size);letter-spacing:.03em;justify-content:space-between;align-items:center;gap:7px;padding:5px 7px;font-weight:700;display:flex}.comment-mermaid{min-height:120px;padding:10px;overflow:auto}.comment-mermaid svg{width:100%;min-width:420px;max-height:360px;margin:0 auto;display:block}.comment-mermaid-placeholder,.comment-mermaid-error{color:var(--muted);font-size:var(--comment-meta-size);padding:12px}.comment-mermaid-error{background:var(--warning);color:var(--warning-text)}.mermaid-expand-button{width:26px;height:24px;color:var(--muted);background:0 0;border-color:#0000;flex:none;place-items:center;padding:4px;display:grid}.mermaid-expand-button:hover,.mermaid-expand-button:focus-visible{border-color:var(--line-strong);background:var(--panel);color:var(--text)}.mermaid-expand-button svg{width:15px;height:15px}.mermaid-expanded-backdrop{z-index:1000;background:#0000006b;place-items:center;padding:clamp(10px,2vw,24px);display:grid;position:fixed;inset:0}.mermaid-expanded-view{border:1px solid var(--line-strong);background:var(--panel);width:min(1680px,100vw - clamp(20px,4vw,48px));min-width:0;height:min(1040px,100vh - clamp(20px,4vw,48px));min-height:0;color:var(--text);border-radius:11px;grid-template-rows:auto minmax(0,1fr);display:grid;overflow:hidden;box-shadow:0 24px 72px #0000007a}.mermaid-expanded-toolbar{border-bottom:1px solid var(--line);background:var(--panel-2);justify-content:space-between;align-items:center;gap:16px;min-height:48px;padding:7px 8px 7px 16px;display:flex}.mermaid-expanded-toolbar>strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.mermaid-expanded-actions,.mermaid-zoom-controls{align-items:center;gap:5px;display:flex}.mermaid-zoom-controls{border-right:1px solid var(--line);padding-right:5px}.mermaid-expanded-actions button{border-color:var(--line-strong);min-height:31px;color:var(--muted);background:0 0;justify-content:center;align-items:center;gap:5px;padding:5px 9px;font-size:11px;display:inline-flex}.mermaid-expanded-actions button:hover:not(:disabled),.mermaid-expanded-actions button.active,.mermaid-expanded-actions button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.mermaid-expanded-actions button:disabled{opacity:.45;cursor:default}.mermaid-expanded-actions button svg{width:15px;height:15px}.mermaid-expanded-actions .mermaid-expanded-close{width:32px;padding:5px}.mermaid-comments-toggle>span{background:var(--panel);min-width:17px;height:17px;color:var(--muted);border-radius:9px;place-items:center;padding:0 4px;font-size:9px;display:inline-grid}.mermaid-expanded-workspace{grid-template-columns:minmax(0,1fr);min-width:0;min-height:0;display:grid}.mermaid-expanded-view.has-rail .mermaid-expanded-workspace{grid-template-columns:minmax(0, 1fr) 6px var(--mermaid-review-rail-width,380px)}.mermaid-expanded-workspace.is-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.mermaid-rail-resize-handle{background:var(--panel-2)}.mermaid-expanded-canvas{overscroll-behavior:contain;background:radial-gradient(circle, color-mix(in srgb, var(--line) 42%, transparent) .7px, transparent .8px) 0 0 / 18px 18px, var(--bg);min-width:0;min-height:0;overflow:auto}.mermaid-expanded-canvas:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.mermaid-expanded-stage{place-items:center;width:max-content;min-width:100%;min-height:100%;padding:24px;display:grid}.mermaid-expanded-diagram{flex:none}.mermaid-expanded-diagram svg{display:block;width:100%!important;max-width:none!important;height:100%!important;max-height:none!important}.mermaid-expanded-error{border:1px solid var(--warning-line);background:var(--warning);max-width:680px;color:var(--warning-text);border-radius:8px;padding:16px;font-size:12px}.mermaid-review-rail{border-left:1px solid var(--line);background:var(--panel);min-width:0;min-height:0;overflow:hidden}.mermaid-comments-mode,.mermaid-reference-peek{grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0;display:grid}.mermaid-comments-mode>header{border-bottom:1px solid var(--line);background:var(--panel-2);justify-content:space-between;align-items:center;gap:8px;min-height:42px;padding:8px 12px;font-size:12px;display:flex}.mermaid-comments-mode>header>span{border:1px solid var(--line);min-width:20px;height:20px;color:var(--muted);border-radius:10px;place-items:center;font-size:10px;display:inline-grid}.mermaid-comments-scroll{overscroll-behavior:contain;min-height:0;padding:10px;overflow:auto}.mermaid-diagram-comments{gap:10px;display:grid}.mermaid-diagram-comments>.comment-thread{border:1px solid var(--line);background:var(--panel);border-radius:8px}.mermaid-diagram-comments .inline-comment-composer--line{width:100%;margin:0}.mermaid-comments-empty{color:var(--muted);text-align:center;margin:20px 8px 8px;font-size:12px;line-height:1.5}.mermaid-comment-action{justify-content:center;justify-self:stretch;align-items:center;gap:6px;min-height:34px;font-size:12px;display:inline-flex}.mermaid-comment-action svg{width:14px;height:14px}.mermaid-reference-peek{grid-template-rows:auto minmax(0,1fr) auto}.mermaid-reference-peek>header{border-bottom:1px solid var(--line);background:var(--panel-2);padding:10px 12px}.mermaid-reference-peek .button--back{min-height:24px;margin-bottom:8px;padding:0;font-size:11px;display:block}.mermaid-reference-location{align-items:center;gap:8px;min-width:0;display:flex}.mermaid-reference-location>svg{flex:none;width:17px;height:17px}.mermaid-reference-location>span{gap:2px;min-width:0;display:grid}.mermaid-reference-location strong{font:650 11px var(--mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mermaid-reference-location small{color:var(--muted);font:10px var(--mono)}.mermaid-reference-source{background:var(--bg);min-height:0;overflow:auto}.mermaid-reference-source>p{color:var(--muted);margin:18px;font-size:12px;line-height:1.5}.mermaid-reference-source pre{min-width:max-content;font:11px/1.65 var(--mono);margin:0;padding:10px 0}.mermaid-reference-source pre>span{grid-template-columns:5ch minmax(max-content,1fr);display:grid}.mermaid-reference-source pre>span>span{color:var(--muted);text-align:right;-webkit-user-select:none;user-select:none;padding:0 10px 0 4px}.mermaid-reference-source pre code{border-left:1px solid var(--line);color:var(--text);white-space:pre;padding:0 14px 0 10px}.mermaid-reference-source pre>span.is-referenced{background:color-mix(in srgb, var(--accent) 13%, transparent)}.mermaid-reference-source pre>span.is-referenced code{border-left:2px solid var(--accent);padding-left:9px}.mermaid-reference-highlight .shiki{min-width:max-content}.mermaid-reference-highlight .shiki code{color:inherit;border:0;padding:0;display:block}.mermaid-reference-highlight .mermaid-reference-code-line{white-space:pre;min-width:100%;min-height:1.65em;padding-right:14px;display:inline-block}.mermaid-reference-highlight .mermaid-reference-code-line:before{border-right:1px solid var(--line);width:5ch;color:var(--muted);content:attr(data-line);text-align:right;-webkit-user-select:none;user-select:none;margin-right:10px;padding-right:10px;display:inline-block}.mermaid-reference-highlight .mermaid-reference-code-line.is-referenced{background:color-mix(in srgb, var(--accent) 13%, transparent)}.mermaid-reference-highlight .mermaid-reference-code-line.is-referenced:before{border-right:2px solid var(--accent);padding-right:9px}:root[data-theme=dark] .mermaid-reference-highlight .shiki,:root[data-theme=dark] .mermaid-reference-highlight .shiki span{background-color:var(--shiki-dark-bg)!important;color:var(--shiki-dark)!important}.mermaid-reference-peek>footer{border-top:1px solid var(--line);background:var(--panel-2);justify-content:flex-end;padding:10px 12px;display:flex}.mermaid-reference-peek>footer button{font-size:11px}@media (width<=820px){.mermaid-expanded-view.has-rail .mermaid-expanded-workspace{grid-template-columns:minmax(0,1fr);position:relative}.mermaid-rail-resize-handle{display:none}.mermaid-review-rail{z-index:2;width:min(var(--mermaid-review-rail-width,380px), 100%);box-shadow:-12px 0 28px var(--shadow-medium);position:absolute;inset:0 0 0 auto}.mermaid-expanded-toolbar{padding-left:10px}.mermaid-expanded-toolbar>strong{display:none}}@media (prefers-color-scheme:dark){:root[data-theme=system] .mermaid-reference-highlight .shiki,:root[data-theme=system] .mermaid-reference-highlight .shiki span{background-color:var(--shiki-dark-bg)!important;color:var(--shiki-dark)!important}}.comment-reply-composer{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:7px;margin-top:9px;display:grid}.comment-reply-composer textarea{resize:vertical;min-height:34px}.comment-edit-composer textarea{min-height:76px}.comment-edit-composer{gap:7px;margin-top:7px;display:grid}.comment-edit-actions{justify-content:flex-end}.comment-actions{border-top:1px solid var(--line);flex-wrap:wrap;margin-top:9px;padding-top:8px}.comment-actions button{padding:5px 7px}.comment-action-feedback{color:var(--accent);font-size:var(--comment-meta-size)}.comment-action-feedback--header{white-space:nowrap;align-self:center}.comment-more{flex:none;display:inline-flex;position:relative}.comment-more-trigger{width:28px;height:28px;color:var(--muted);font:700 18px/1 var(--mono);background:0 0;border-color:#0000;place-items:center;padding:0 0 7px;display:grid}.comment-more-trigger:hover,.comment-more-trigger[aria-expanded=true]{border-color:var(--line);background:var(--panel-2);color:var(--text)}.comment-more-menu{z-index:30;border:1px solid var(--line-strong);background:var(--panel);min-width:142px;box-shadow:0 7px 18px var(--shadow-large);border-radius:7px;margin:0;padding:4px;display:grid;position:fixed;inset:auto}.comment-more-menu button{color:var(--text);text-align:left;font-size:var(--comment-ui-size);background:0 0;border-color:#0000;justify-content:flex-start;padding:7px 9px}.comment-more-menu button:hover{background:var(--panel-2)}.comment-more-menu button.is-danger{color:var(--danger)}.badge{background:var(--accent-soft);color:var(--accent);font-size:var(--comment-badge-size);border-radius:10px;padding:2px 6px;display:inline-flex}.badge--resolved{background:var(--panel-2);color:var(--muted)}.badge--outdated,.badge--error{background:var(--danger-soft);color:var(--danger)}.empty-state{text-align:center;color:var(--muted);padding:28px 8px;font-size:12px}.fatal-state{align-content:center;place-items:center;min-height:100vh;display:grid}.fatal-state h1{font:800 42px var(--mono);margin:0}.pull-request-list-screen{flex-direction:column;height:100dvh;min-height:0;display:flex;overflow:hidden}.pull-request-list-header{border-bottom:1px solid var(--header-border);background:var(--header-bg);min-height:76px;color:var(--header-text);flex:none;align-items:center;gap:20px;padding:12px max(20px,50vw - 660px);display:flex}.pull-request-list-header h1{margin:0;font-size:18px;line-height:1.25}.pull-request-list-header p{color:var(--header-muted);margin:3px 0 0;font-size:12px}.pull-request-list-content{width:100%;max-width:1360px;min-height:0;margin:0 auto;padding:24px 20px 40px;overflow-y:auto}.pull-request-list-status{color:var(--muted);text-align:center;padding:72px 20px}.pull-request-list-filters{justify-content:flex-end;align-items:center;gap:14px;margin-bottom:10px;display:flex}.pull-request-status-refresh{min-height:30px;padding:4px 10px;font-size:12px}.pull-request-status-refresh-result{border:1px solid color-mix(in srgb, var(--success) 45%, var(--line));background:color-mix(in srgb, var(--success) 8%, var(--panel));color:var(--success);border-radius:6px;margin:0 0 10px;padding:9px 12px;font-size:12px}.pull-request-status-refresh-result--error{border-color:color-mix(in srgb, var(--danger) 45%, var(--line));background:color-mix(in srgb, var(--danger) 8%, var(--panel));color:var(--danger)}.pull-request-status-refresh-result details{margin-top:5px}.pull-request-status-refresh-result ul{margin:5px 0 0;padding-left:20px}.pull-request-list-filter{min-height:30px;color:var(--muted);cursor:pointer;align-items:center;gap:8px;font-size:12px;display:flex}.pull-request-list-filter:hover{color:var(--text)}.pull-request-list-filter>input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);flex:0 0 15px;margin:0;padding:0}.pull-request-list{border:1px solid var(--line);background:var(--panel);box-shadow:0 1px 2px var(--shadow-small);border-radius:10px;overflow:hidden}.pull-request-list-columns,.pull-request-row{grid-template-columns:minmax(180px,1fr) minmax(260px,2fr) minmax(290px,1.5fr) minmax(100px,.6fr) minmax(100px,.6fr);align-items:center;column-gap:18px;display:grid}.pull-request-list-columns{border-bottom:1px solid var(--line);background:var(--panel-2);min-height:34px;color:var(--muted);letter-spacing:.05em;text-transform:uppercase;padding:0 18px;font-size:10px;font-weight:700}.pull-request-row{min-height:76px;color:inherit;padding:12px 18px;text-decoration:none}.pull-request-row+.pull-request-row{border-top:1px solid var(--line)}.pull-request-row:hover{background:var(--accent-soft)}.pull-request-row__identity{align-items:baseline;gap:8px;min-width:0;font-size:12px;display:flex}.pull-request-row__repository{min-width:0;color:var(--muted);font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pull-request-row__number{color:var(--accent);font-family:var(--mono);flex:none;font-weight:700}.pull-request-status{border:1px solid var(--line);background:var(--panel-2);color:var(--muted);font:700 9px/1.4 var(--mono);letter-spacing:.02em;border-radius:999px;flex:none;padding:2px 7px}.pull-request-status--open{border-color:color-mix(in srgb, var(--success) 45%, var(--line));background:color-mix(in srgb, var(--success) 10%, var(--panel));color:var(--success)}.pull-request-status--closed{border-color:color-mix(in srgb, var(--danger) 45%, var(--line));background:color-mix(in srgb, var(--danger) 9%, var(--panel));color:var(--danger)}.pull-request-status--merged{border-color:color-mix(in srgb, var(--done) 45%, var(--line));background:color-mix(in srgb, var(--done) 10%, var(--panel));color:var(--done)}.pull-request-row__title{overflow-wrap:anywhere;white-space:normal;min-width:0;font-size:14px;line-height:1.35}.pull-request-row__counts{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pull-request-count{border:1px solid var(--line);background:var(--panel-2);min-width:76px;color:var(--muted);font:600 10px/1.4 var(--mono);text-align:center;white-space:nowrap;border-radius:999px;padding:3px 7px}.pull-request-count--unresolved{border-color:color-mix(in srgb, var(--attention) 45%, var(--line));background:color-mix(in srgb, var(--attention) 12%, var(--panel));color:var(--attention)}.pull-request-count--resolved{color:var(--success)}.pull-request-count--walkthrough{color:var(--done)}.pull-request-count--structure{color:var(--info)}.pull-request-row__date{color:var(--muted);gap:3px;font-size:11px;display:grid}.pull-request-row__date>span{display:none}.pull-request-row__date time{white-space:nowrap}.pull-request-row__date--updated time{color:var(--text);font-weight:600}.pull-request-list-empty{border:1px dashed var(--line-strong);background:var(--panel);text-align:center;border-radius:12px;justify-items:center;max-width:680px;margin:64px auto;padding:54px 32px;display:grid}.pull-request-list-empty h2{margin:18px 0 6px;font-size:18px}.pull-request-list-empty p{color:var(--muted);margin:0;font-size:13px}.pull-request-list-empty code{color:var(--text);font-size:inherit}.pull-request-pagination{color:var(--muted);justify-content:center;align-items:center;gap:16px;padding:18px 0 0;font-size:12px;display:flex}.pull-request-pagination .button--quiet{min-width:72px}@media (width<=1050px){.pull-request-list-columns{display:none}.pull-request-row{grid-template-columns:minmax(180px,.8fr) minmax(280px,1.5fr);row-gap:10px}.pull-request-row__counts{grid-column:1/-1}.pull-request-row__date{grid-area:3}.pull-request-row__date>span{display:inline}}@media (width<=640px){.pull-request-list-header{padding-inline:16px}.pull-request-list-content{padding:16px 12px 32px}.pull-request-list-filters{flex-direction:column-reverse;align-items:flex-end;gap:8px}.pull-request-row{grid-template-columns:1fr;padding:14px}.pull-request-row__title,.pull-request-row__counts,.pull-request-row__date{grid-area:auto/1}.pull-request-row__title{white-space:normal}.pull-request-row__counts{flex-wrap:wrap}}@media (prefers-color-scheme:dark){:root:not([data-theme]),:root[data-theme=system]{--bg:#0d1117;--panel:#161b22;--panel-2:#21262d;--line:#30363d;--line-strong:#484f58;--text:#e6edf3;--muted:#8b949e;--accent:#58a6ff;--accent-emphasis:#1f6feb;--accent-soft:#1f2d3d;--accent-contrast:#fff;--tab-accent:#58a6ff;--focus:#58a6ff;--danger:#ff7b72;--danger-soft:#3c1e22;--warning:#332b00;--warning-text:#e3b341;--warning-line:#6e5a1c;--search-match-bg:#7c5c12;--search-match-text:#fff2bd;--success:#3fb950;--attention:#d29922;--done:#d2a8ff;--info:#58a6ff;--file-tree-active-text:#cae8ff;--header-bg:#010409;--header-border:#21262d;--header-text:#f0f6fc;--header-muted:#8b949e;--header-control-bg:#161b22;--header-control-border:#484f58;--header-control-hover:#21262d;--header-active-bg:#f0f6fc;--header-active-text:#1f2328;--header-badge-bg:#1f6feb;--header-badge-text:#fff;--shadow-small:#01040966;--shadow-medium:#01040980;--shadow-large:#010409a3}}@media (width<=850px){.topbar{gap:10px;padding:0 10px}.pr-heading{flex-basis:150px;min-width:120px}.commit-range-trigger{width:34vw;min-width:240px}.workspace{grid-template-columns:min(var(--sidebar-width,280px), 280px) 6px minmax(0, 1fr);overflow:hidden}.walkthrough-markdown{padding-inline:28px}}@media (width<=800px){.pr-heading{display:none}.review-scope-bar{flex:auto}.review-scope-commits{flex:auto;min-width:0}.commit-range-picker{min-width:0}.commit-range-trigger{width:100%;min-width:0}}@media (width<=560px){.brand strong{display:none}.commit-range-trigger{width:100%;min-width:0}.diff-style-modes{width:96px}.workspace{grid-template-columns:min(var(--sidebar-width,280px), 280px) 6px minmax(500px, 1fr);overflow:auto hidden}.main-view.two-pane{min-width:566px;overflow-x:hidden}.review-scope-bar .segmented button,.review-scope-display .segmented button,.diff-style-modes button{min-width:44px;padding-inline:5px}}.review-tree-structure-list,.review-tree-walkthrough-list{display:grid}.review-tree-structure-list .review-tree-item,.review-tree-walkthrough-list .review-tree-item{padding-left:28px}.review-tree-structure-icon{color:var(--done)}.structure-viewer{min-width:0;height:calc(100% - 40px);min-height:0;color:var(--text);background:radial-gradient(circle at 14% 2%, color-mix(in srgb, var(--attention) 9%, transparent), transparent 32rem), var(--bg);flex-direction:column;display:flex;position:relative;overflow:hidden;container-type:inline-size}.structure-header{z-index:12;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--panel) 92%, transparent);flex:none;align-items:center;gap:8px;min-height:40px;padding:5px 8px 5px 12px;display:flex;position:relative}.structure-header-main{flex:auto;align-items:center;gap:7px;min-width:0;display:flex}.structure-header h2{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:15px;line-height:1.25;overflow:hidden}.structure-kicker{color:var(--muted);font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;flex:none;font-size:9px}.structure-source-oid{border:1px solid var(--line);color:var(--muted);background:var(--bg);font:8px/1.2 var(--mono);border-radius:4px;flex:none;padding:2px 5px}.structure-scope-details{flex:none;position:static}.structure-scope-details[open]{z-index:14}.structure-scope-details>summary{border:1px solid var(--line);color:var(--muted);background:var(--bg);font:9px/1.35 var(--mono);cursor:pointer;border-radius:999px;padding:2px 6px;list-style:none}.structure-scope-details>summary::-webkit-details-marker{display:none}.structure-scope-details[open]>summary,.structure-scope-details>summary:hover{border-color:var(--line-strong);color:var(--text)}.structure-scope-details>p{z-index:15;border:1px solid var(--line-strong);width:min(560px,100% - 24px);max-height:180px;color:var(--muted);background:var(--panel);box-shadow:0 10px 24px var(--shadow-large);white-space:pre-wrap;border-radius:8px;margin:0;padding:10px 11px;font-size:11px;line-height:1.45;position:absolute;top:calc(100% + 8px);right:12px;overflow:auto}.structure-header-side{flex:none;justify-content:flex-end;align-items:center;gap:4px;min-width:0;display:flex}.structure-delete,.structure-header-action,.structure-toolbar button,.structure-expand-relations{border:1px solid var(--line);min-height:26px;color:var(--text);background:var(--panel);cursor:pointer;border-radius:6px;font-size:11px}.structure-delete,.structure-header-action{white-space:nowrap;flex:none;padding:3px 7px}.structure-delete:hover,.structure-header-action:hover,.structure-toolbar button:hover,.structure-expand-relations:hover{border-color:var(--line-strong);background:var(--panel-2)}.structure-delete.danger{color:var(--danger)}.structure-delete:disabled{opacity:.6;cursor:wait}.structure-export-menu{flex:none;position:static}.structure-export-menu>summary{align-items:center;gap:4px;list-style:none;display:flex}.structure-export-menu>summary::-webkit-details-marker{display:none}.structure-export-menu>summary[aria-disabled=true]{opacity:.6;cursor:wait}.structure-export-menu[open]>summary{border-color:var(--accent);background:var(--accent-soft)}.structure-export-popover{z-index:16;border:1px solid var(--line-strong);background:var(--panel);width:min(272px,100% - 16px);box-shadow:0 10px 24px var(--shadow-large);border-radius:8px;gap:5px;padding:7px;display:grid;position:absolute;top:calc(100% + 6px);right:8px}.structure-export-popover>button{border-color:var(--line);color:var(--text);background:var(--panel);text-align:left;grid-template-columns:42px minmax(0,1fr);align-items:baseline;gap:6px;padding:7px 8px;display:grid}.structure-export-popover>button:hover{border-color:var(--accent);background:var(--accent-soft)}.structure-export-popover>button strong{font:700 11px/1.3 var(--mono)}.structure-export-popover>button span,.structure-export-popover>p{color:var(--muted);font-size:10px;line-height:1.4}.structure-export-popover>p{margin:2px 3px 1px}.structure-body{flex:auto;grid-template-columns:minmax(0,1fr);min-height:0;display:grid;position:relative;overflow:hidden}.structure-canvas-shell{border-right:1px solid var(--line);background-color:var(--bg);background-image:linear-gradient(color-mix(in srgb, var(--line) 36%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--line) 36%, transparent) 1px, transparent 1px);background-size:24px 24px;min-width:0;min-height:0;position:relative;overflow:hidden}.structure-toolbar{z-index:10;border:1px solid var(--line-strong);background:color-mix(in srgb, var(--panel-2) 94%, transparent);width:max-content;max-width:calc(100% - 16px);min-height:34px;box-shadow:0 5px 16px var(--shadow-medium);scrollbar-width:thin;border-radius:8px;align-items:center;gap:6px;padding:3px 4px;display:flex;position:absolute;top:8px;left:8px;overflow-x:auto}.structure-toolbar-group{flex:none;align-items:center;gap:3px;display:flex}.structure-toolbar-group>span{color:var(--muted);white-space:nowrap;padding:0 3px;font-size:10px}.structure-toolbar button{white-space:nowrap;min-height:26px;padding:3px 6px}.structure-toolbar button.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.structure-status{z-index:11;border:1px solid var(--warning-line);max-width:min(560px,100% - 20px);color:var(--warning-text);background:var(--warning);box-shadow:0 5px 16px var(--shadow-medium);border-radius:6px;padding:6px 9px;font-size:11px;position:absolute;bottom:10px;left:10px}.structure-canvas{overscroll-behavior:contain;cursor:grab;touch-action:none;width:100%;height:100%;min-height:360px;position:relative;overflow:hidden}.structure-canvas:active{cursor:grabbing}.structure-world{transform-origin:0 0;position:absolute;top:0;left:0}.structure-edges{pointer-events:none;position:absolute;inset:0;overflow:visible}.structure-edges marker path{fill:context-stroke}.structure-edge{--structure-edge-theme:color-mix(in srgb, var(--muted) 52%, var(--line));--structure-edge-active:var(--accent);fill:none;stroke:var(--structure-edge-theme);stroke-width:1.4px;opacity:.46;vector-effect:non-scaling-stroke}.structure-edge[data-source-change-kind=added]{--structure-edge-theme:var(--success);--structure-edge-active:var(--success);opacity:.7}.structure-edge[data-source-change-kind=modified]{--structure-edge-theme:var(--attention);--structure-edge-active:var(--attention);opacity:.7}.structure-edge[data-source-change-kind=deleted]{--structure-edge-theme:var(--danger);--structure-edge-active:var(--danger);opacity:.7}.structure-edge[data-source-change-kind=renamed]{--structure-edge-theme:var(--done);--structure-edge-active:var(--done);opacity:.7}.structure-edge[data-source-change-kind=type-changed]{--structure-edge-theme:var(--info);--structure-edge-active:var(--info);opacity:.7}.structure-edge[data-source-change-kind=mixed]{--structure-edge-theme:var(--attention);--structure-edge-active:var(--attention);opacity:.7}.structure-edge.focused{stroke:var(--structure-edge-active);stroke-width:2.4px;opacity:.88}.structure-edge.selected{stroke:var(--structure-edge-active);stroke-width:3.2px;opacity:1}.structure-edge.muted{opacity:.14}.structure-node{z-index:2;box-sizing:border-box;--structure-node-theme:var(--accent);--structure-node-outline:var(--line-strong);--structure-node-active-outline:var(--structure-node-theme);cursor:grab;-webkit-user-select:none;user-select:none;contain:layout paint style;border-radius:9px;width:228px;height:112px;position:absolute}.structure-node[data-source-change-kind=added]{--structure-node-theme:var(--success);--structure-node-outline:color-mix(in srgb, var(--success) 54%, var(--line-strong))}.structure-node[data-source-change-kind=modified]{--structure-node-theme:var(--attention);--structure-node-outline:color-mix(in srgb, var(--attention) 54%, var(--line-strong))}.structure-node[data-source-change-kind=deleted]{--structure-node-theme:var(--danger);--structure-node-outline:color-mix(in srgb, var(--danger) 54%, var(--line-strong))}.structure-node[data-source-change-kind=renamed]{--structure-node-theme:var(--done);--structure-node-outline:color-mix(in srgb, var(--done) 54%, var(--line-strong))}.structure-node[data-source-change-kind=type-changed]{--structure-node-theme:var(--info);--structure-node-outline:color-mix(in srgb, var(--info) 54%, var(--line-strong))}.structure-node-focus{overscroll-behavior:contain;border:1px solid var(--structure-node-outline);width:100%;height:100%;color:inherit;background:var(--panel);font:inherit;text-align:left;cursor:grab;box-shadow:0 5px 12px var(--shadow-small);touch-action:pan-y;scrollbar-width:thin;border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;padding:6px 8px;display:flex;overflow:auto}.structure-node-focus:focus-visible{outline:2px solid var(--focus);outline-offset:-3px}.structure-node:hover .structure-node-focus,.structure-node.neighboring .structure-node-focus{border-color:var(--structure-node-active-outline)}.structure-node.focused .structure-node-focus{border:2px solid var(--structure-node-active-outline);background:color-mix(in srgb, var(--structure-node-theme) 9%, var(--panel));box-shadow:0 0 0 3px color-mix(in srgb, var(--structure-node-theme) 14%, transparent)}.structure-node.edge-endpoint .structure-node-focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 20%, transparent)}.structure-node.notation-class .structure-node-focus,.structure-node.notation-interface .structure-node-focus{border-radius:2px}.structure-node.notation-class .structure-node-description,.structure-node.notation-interface .structure-node-description{border-top:1px solid var(--structure-node-outline);width:100%;padding-top:3px}.structure-node.notation-interface .structure-node-focus{border-style:dashed}.structure-node.notation-database .structure-node-focus{border-radius:50%/14%;padding:21px 10px 6px}.structure-node.notation-database>.structure-source.compact{top:8px;right:8px}.structure-node.notation-database .structure-node-focus>.structure-source-identity{min-height:14px}.structure-node.notation-database:before{z-index:3;border-bottom:1px solid var(--structure-node-outline);content:"";pointer-events:none;border-radius:50%;height:20px;position:absolute;top:1px;left:1px;right:1px}.structure-node.notation-database.focused:before,.structure-node.notation-database.neighboring:before{border-bottom-color:var(--structure-node-active-outline)}.structure-node.notation-component .structure-node-focus{box-shadow:inset 7px 0 color-mix(in srgb, var(--structure-node-theme) 18%, transparent), 0 5px 12px var(--shadow-small);border-radius:3px;padding-left:22px}.structure-node.notation-component:before,.structure-node.notation-component:after{z-index:3;border:1px solid var(--structure-node-outline);background:var(--panel);content:"";pointer-events:none;width:13px;height:8px;position:absolute;left:2px}.structure-node.notation-component:before{top:36px}.structure-node.notation-component:after{top:52px}.structure-node.notation-external{background:var(--structure-node-outline);clip-path:polygon(9% 0,91% 0,100% 50%,91% 100%,9% 100%,0 50%);padding:2px}.structure-node.notation-external .structure-node-focus{clip-path:polygon(9% 0,91% 0,100% 50%,91% 100%,9% 100%,0 50%);box-shadow:none;border:0;border-radius:0;padding:6px 18px}.structure-node.notation-external>.structure-source.compact{top:8px;right:18px}.structure-node.notation-external.focused,.structure-node.notation-external.neighboring{background:var(--structure-node-active-outline)}.structure-node.notation-concept,.structure-node.notation-concept .structure-node-focus{border-radius:56px}.structure-node.notation-concept .structure-node-focus{padding:12px 24px 6px}.structure-node.notation-concept>.structure-source.compact{top:12px;right:24px}.structure-node.origin .structure-node-focus{box-shadow:inset 4px 0 color-mix(in srgb, var(--accent) 72%, transparent), 0 5px 12px var(--shadow-small)}.structure-node.origin.focused .structure-node-focus{box-shadow:inset 4px 0 color-mix(in srgb, var(--accent) 84%, transparent), 0 0 0 3px color-mix(in srgb, var(--structure-node-theme) 14%, transparent)}.structure-node-title{width:100%;min-width:0;display:block}.structure-node-title-text{min-width:0;font-family:var(--mono);overflow-wrap:anywhere;word-break:break-word;font-size:11px;font-weight:700;line-height:1.32;display:block;overflow:visible}.structure-node-description{width:100%;min-width:0;color:var(--muted);text-align:left;white-space:pre-wrap;font-size:9px;line-height:1.42;display:block;overflow:visible}.structure-source{border:1px solid var(--line);max-width:100%;min-height:26px;color:var(--accent);background:var(--panel);font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-radius:5px;align-items:center;gap:5px;padding:3px 7px;font-size:9px;display:inline-flex;overflow:hidden}.structure-source:hover{border-color:var(--accent)}.structure-source.compact{z-index:3;border-radius:7px;place-items:center;width:28px;height:24px;min-height:0;padding:0;font-size:8px;display:grid;position:absolute;top:6px;right:6px}.structure-edge-label{z-index:1;--structure-edge-label-active-outline:var(--accent);align-items:center;gap:3px;display:flex;position:absolute;transform:translate(-50%,-50%)}.structure-edge-label:has(.structure-edge-sources[open]){z-index:8}.structure-edge-label[data-source-change-kind=added]{--structure-edge-label-active-outline:var(--success)}.structure-edge-label[data-source-change-kind=modified]{--structure-edge-label-active-outline:var(--attention)}.structure-edge-label[data-source-change-kind=deleted]{--structure-edge-label-active-outline:var(--danger)}.structure-edge-label[data-source-change-kind=renamed]{--structure-edge-label-active-outline:var(--done)}.structure-edge-label[data-source-change-kind=type-changed]{--structure-edge-label-active-outline:var(--info)}.structure-edge-label[data-source-change-kind=mixed]{--structure-edge-label-active-outline:var(--attention)}.structure-edge-select{border:1px solid var(--structure-edge-label-active-outline);color:var(--structure-edge-label-active-outline);background:color-mix(in srgb, var(--panel) 92%, transparent);box-shadow:0 2px 5px var(--shadow-small);overflow-wrap:anywhere;text-align:left;white-space:normal;border-radius:999px;flex:none;align-items:center;gap:3px;padding:3px 3px 3px 8px;font-size:10px;line-height:1.35;display:flex}.structure-edge-select.selected{background:color-mix(in srgb, var(--accent) 14%, var(--panel));box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent)}.structure-edge-label-text{flex:auto;min-width:0}.structure-edge-label.crowded .structure-edge-select{border-style:dashed}.structure-edge-label.muted{opacity:.28}.structure-edge-label .structure-source.compact{background:var(--panel);border-radius:50%;width:26px;height:26px;position:static}.structure-edge-sources{flex:none;position:relative}.structure-edge-sources[open]{z-index:6}.structure-edge-sources>summary{list-style:none;position:relative}.structure-edge-sources>summary::-webkit-details-marker{display:none}.structure-edge-source-count{border:1px solid var(--panel);min-width:13px;height:13px;color:var(--panel);background:var(--accent);font-family:var(--mono);border-radius:999px;place-items:center;padding:0 2px;font-size:7px;line-height:1;display:grid;position:absolute;bottom:-4px;right:-4px}.structure-edge-source-menu{z-index:7;border:1px solid var(--line-strong);background:var(--panel);width:min(300px,42vw);max-height:180px;box-shadow:0 10px 24px var(--shadow-large);border-radius:7px;gap:5px;padding:7px;display:grid;position:absolute;top:calc(100% + 5px);right:0;overflow:auto}.structure-edge-source-menu .structure-source{width:100%}.structure-source-identity{flex:none;align-items:center;gap:2px;display:inline-flex}.structure-source-identity>.tree-entry-icon{flex-basis:14px;width:14px;height:14px}.structure-source-name{max-width:116px;color:var(--muted);font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:600;line-height:1.2;display:block;overflow:hidden}.structure-node-focus>.structure-source-identity{align-items:flex-end;width:calc(100% - 30px);min-width:0;max-width:none;min-height:24px}.structure-node-focus>.structure-source-identity .structure-source-name{flex:auto;min-width:0;max-width:none}.structure-source-identity>.file-change-icon,.structure-source-identity>.file-change-icon svg{width:12px;height:12px}.structure-source-count,.structure-source-change-aggregate{min-width:17px;height:14px;color:var(--muted);background:var(--bg-subtle);font-family:var(--mono);border-radius:999px;place-items:center;padding:0 3px;font-size:8px;font-weight:700;line-height:1;display:inline-grid}.structure-source-change-aggregate{color:var(--attention)}.structure-canvas-status{z-index:4;border:1px solid color-mix(in srgb, var(--line) 72%, transparent);max-width:min(320px,100% - 220px);color:var(--muted);background:color-mix(in srgb, var(--panel) 88%, transparent);box-shadow:0 2px 7px var(--shadow-small);font-family:var(--mono);pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:7px;gap:2px;padding:6px 8px;font-size:9px;line-height:1.35;display:grid;position:absolute;top:50px;left:10px}.structure-canvas-status strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.structure-minimap{z-index:4;border:1px solid color-mix(in srgb, var(--line-strong) 74%, transparent);background:color-mix(in srgb, var(--panel) 88%, transparent);width:164px;height:98px;box-shadow:0 3px 9px var(--shadow-small);pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:7px;position:absolute;bottom:10px;right:10px;overflow:hidden}.structure-minimap circle{fill:color-mix(in srgb, var(--muted) 64%, var(--line))}.structure-minimap circle.focused{fill:var(--accent)}.structure-minimap-viewport{fill:color-mix(in srgb, var(--accent) 10%, transparent);stroke:color-mix(in srgb, var(--accent) 72%, transparent);stroke-width:1px;vector-effect:non-scaling-stroke}@container (width<=760px){.structure-canvas{min-height:0}}
|
|
1
|
+
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f8fa;--panel:#fff;--panel-2:#f3f4f6;--line:#d8dee4;--line-strong:#afb8c1;--text:#1f2328;--muted:#57606a;--accent:#0969da;--accent-emphasis:#1f6feb;--accent-soft:#ddf4ff;--accent-contrast:#fff;--tab-accent:#0969da;--focus:#218bff;--danger:#cf222e;--danger-soft:#ffebe9;--warning:#fff8c5;--warning-text:#633c01;--warning-line:#d4a72c;--search-match-bg:#ffdf5d;--search-match-text:#3b2f00;--success:#1a7f37;--attention:#9a6700;--done:#8250df;--info:#0969da;--file-tree-active-text:#0550ae;--header-bg:#24292f;--header-border:#1b1f23;--header-text:#f6f8fa;--header-muted:#b1bac4;--header-control-bg:#2f363d;--header-control-border:#57606a;--header-control-hover:#3a424a;--header-active-bg:#f0f6fc;--header-active-text:#24292f;--header-badge-bg:#1f6feb;--header-badge-text:#fff;--shadow-small:#1f232817;--shadow-medium:#1f232826;--shadow-large:#1f23283d;--mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--comment-body-size:13px;--comment-ui-size:12px;--comment-meta-size:11px;--comment-badge-size:10px;font-synthesis:none;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=system]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root[data-theme=system]{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d1117;--panel:#161b22;--panel-2:#21262d;--line:#30363d;--line-strong:#484f58;--text:#e6edf3;--muted:#8b949e;--accent:#58a6ff;--accent-emphasis:#1f6feb;--accent-soft:#1f2d3d;--accent-contrast:#fff;--tab-accent:#58a6ff;--focus:#58a6ff;--danger:#ff7b72;--danger-soft:#3c1e22;--warning:#332b00;--warning-text:#e3b341;--warning-line:#6e5a1c;--search-match-bg:#7c5c12;--search-match-text:#fff2bd;--success:#3fb950;--attention:#d29922;--done:#d2a8ff;--info:#58a6ff;--file-tree-active-text:#cae8ff;--header-bg:#010409;--header-border:#21262d;--header-text:#f0f6fc;--header-muted:#8b949e;--header-control-bg:#161b22;--header-control-border:#484f58;--header-control-hover:#21262d;--header-active-bg:#f0f6fc;--header-active-text:#1f2328;--header-badge-bg:#1f6feb;--header-badge-text:#fff;--shadow-small:#01040966;--shadow-medium:#01040980;--shadow-large:#010409a3}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);margin:0;overflow:hidden}button,input,select,textarea{font:inherit}button{border:1px solid var(--accent-emphasis);background:var(--accent-emphasis);color:var(--accent-contrast);cursor:pointer;border-radius:6px;padding:7px 11px}button:disabled{cursor:not-allowed;opacity:.48}input,select,textarea{border:1px solid var(--line-strong);background:var(--panel);width:100%;color:var(--text);border-radius:6px;padding:8px 9px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--focus);outline-offset:2px}textarea{resize:vertical}code{font-family:var(--mono);overflow-wrap:anywhere;font-size:11px}.app-shell{flex-direction:column;height:100dvh;min-height:0;max-height:100dvh;display:flex;overflow:hidden}.skip-link{z-index:1000;border:2px solid var(--focus);background:var(--panel);color:var(--text);border-radius:6px;padding:8px 12px;font-weight:700;text-decoration:none;position:fixed;inset:8px auto auto 8px;transform:translateY(calc(-100% - 16px))}.skip-link:focus{transform:none}.topbar{background:var(--header-bg);height:68px;color:var(--header-text);border-bottom:1px solid var(--header-border);flex:0 0 68px;align-items:center;gap:14px;padding:0 14px;display:flex}.brand{letter-spacing:.08em;flex:none;align-items:center;gap:9px;display:flex}.brand-button{color:inherit;background:0 0;border:0;border-radius:6px;padding:4px;text-decoration:none}.brand-button:hover{background:var(--header-control-hover)}.brand-mark{background:var(--header-active-bg);width:30px;height:30px;color:var(--header-active-text);font:800 20px/1 var(--mono);border-radius:8px 3px;place-items:center;display:grid}.pr-heading{flex:1 20 260px;min-width:150px}.pr-heading span{color:var(--header-muted);margin-bottom:2px;font-size:11px;display:block}.pr-heading h1{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:16px;overflow:hidden}.pr-heading h1 a{color:inherit;text-decoration:none}.pr-heading h1 a:hover,.pr-heading h1 a:focus-visible{text-underline-offset:3px;text-decoration:underline}.button--quiet{border-color:var(--line-strong);color:inherit;background:0 0}.button--danger-quiet{color:var(--danger);background:0 0;border-color:#0000}.review-scope-bar{background:0 0;border:0;flex:0 auto;align-items:center;gap:8px;min-width:0;padding:0;display:flex;overflow:visible}.review-scope-control{flex-direction:column;flex:none;gap:4px;display:flex}.review-scope-control>span{color:var(--header-muted);font-size:10px;font-weight:650}.commit-range-picker{z-index:30;position:relative}.commit-range-trigger{border-color:var(--header-control-border);background:var(--header-control-bg);width:min(430px,36vw);min-width:280px;height:32px;color:var(--header-text);text-align:left;border-radius:6px;align-items:center;gap:7px;padding:4px 7px 4px 9px;display:flex}.commit-range-trigger:hover,.commit-range-trigger[aria-expanded=true]{border-color:var(--header-muted);background:var(--header-control-hover)}.commit-range-summary{min-width:0;font:11px var(--mono);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.commit-range-count{color:var(--header-muted);white-space:nowrap;flex:none;font-size:10px}.commit-selection-badge,.commit-latest-badge{background:var(--header-badge-bg);min-height:18px;color:var(--header-badge-text);border-radius:999px;flex:none;align-items:center;padding:1px 6px;font-size:10px;font-weight:800;line-height:1;display:inline-flex}.commit-range-chevron{color:var(--header-muted);flex:none;font-size:10px}.commit-range-popover{border:1px solid var(--line-strong);background:var(--panel);width:min(440px,100vw - 24px);color:var(--text);box-shadow:0 14px 36px var(--shadow-large);border-radius:9px;padding:8px;position:absolute;top:calc(100% + 7px);left:0}.commit-range-shortcuts{gap:6px;display:flex}.commit-range-shortcuts button{border-color:var(--line-strong);background:var(--panel-2);color:var(--text);flex:1;padding:6px 8px;font-size:11px}.commit-range-shortcuts button:hover{border-color:var(--accent)}.commit-range-hint{color:var(--muted);margin:7px 2px 6px;font-size:10px}.commit-range-list{border:1px solid var(--line);background:var(--panel);-webkit-user-select:none;user-select:none;border-radius:7px;flex-direction:column;max-height:min(360px,100vh - 150px);display:flex;overflow-y:auto}.commit-range-option{border:0;border-bottom:1px solid var(--line);min-height:44px;color:var(--text);text-align:left;touch-action:none;background:0 0;border-radius:0;flex:none;align-items:center;gap:9px;padding:6px 9px;display:flex}.commit-range-option:last-child{border-bottom:0}.commit-range-option:hover{background:var(--panel-2)}.commit-range-option.selected{background:var(--accent-soft)}.commit-range-option-indicator{border:2px solid var(--line-strong);background:var(--panel);border-radius:50%;flex:0 0 12px;width:12px;height:12px}.commit-range-option.selected .commit-range-option-indicator{border-color:var(--accent);background:var(--accent);box-shadow:inset 0 0 0 2px var(--panel)}.commit-range-option--middle .commit-range-option-indicator{border-radius:2px}.commit-range-option-copy{flex:1;gap:2px;min-width:0;display:grid}.commit-range-option-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.commit-range-option-copy code{color:var(--muted)}.commit-range-option-meta{align-items:center;gap:8px;min-width:0;display:flex}.commit-range-option-meta time{color:var(--header-muted);font:500 9px var(--mono);white-space:nowrap}.commit-range-special{border-bottom:1px solid var(--line);color:var(--muted);font:11px var(--mono);padding:8px 10px}.review-scope-bar .segmented{border-color:var(--header-control-border);background:var(--header-control-bg);height:32px;padding:2px}.review-scope-bar .segmented button{min-width:56px;color:var(--header-muted);white-space:nowrap;padding:5px 8px}.review-scope-bar .segmented button.active{background:var(--header-active-bg);color:var(--header-active-text);box-shadow:none;font-weight:700}.review-scope-display .segmented button{min-width:62px}.diff-style-modes{width:128px}.review-scope-bar .diff-style-modes button{flex:1 1 0;min-width:0}.topbar-menu{z-index:20;flex:none;position:relative}.topbar-menu-toggle{border-color:var(--header-control-border);width:36px;height:36px;color:var(--header-text);background:0 0;place-items:center;padding:0;display:grid}.topbar-menu-toggle:hover,.topbar-menu-toggle[aria-expanded=true]{border-color:var(--header-control-border);background:var(--header-control-hover)}.topbar-menu-toggle svg{width:18px;height:18px}.topbar-menu-popover{border:1px solid var(--line-strong);background:var(--panel);width:210px;box-shadow:0 10px 28px var(--shadow-large);border-radius:8px;gap:2px;padding:5px;display:grid;position:absolute;top:calc(100% + 7px);right:0}.topbar-menu-popover button{width:100%;color:var(--text);text-align:left;background:0 0;border:0;padding:8px 9px;font-size:12px}.topbar-menu-popover button:hover{background:var(--panel-2)}.topbar-menu-popover .topbar-menu-command{justify-content:space-between;align-items:center;gap:12px;display:flex}.topbar-menu-command kbd{color:var(--muted);font:10px var(--mono)}.topbar-menu-section{border-top:1px solid var(--line);margin:3px 0;padding:5px 0 3px;display:grid}.topbar-menu-section-label{color:var(--muted);padding:2px 9px 5px;font-size:10px;font-weight:700}.topbar-menu-section button{justify-content:space-between;align-items:center;gap:12px;display:flex}.topbar-menu-check{color:var(--accent);font-weight:800}.topbar-menu-popover .topbar-menu-danger{border-top:1px solid var(--line);color:var(--danger)}.diff-whitespace-empty{border-top:1px solid var(--line);color:var(--muted);gap:6px;padding:22px 16px 24px;font-size:12px;display:grid}.diff-whitespace-empty strong{color:var(--text);font-size:13px}.button--wide{width:100%;margin-top:10px}.button--back{color:var(--accent);background:0 0;border:0;padding:3px 0 12px}.pending-banner{background:var(--warning);min-height:38px;color:var(--warning-text);border-bottom:1px solid var(--warning-line);align-items:center;gap:12px;padding:7px 20px;font-size:13px;display:flex}.quick-open-backdrop{z-index:100;background:#00000047;justify-content:center;align-items:flex-start;padding:clamp(44px,9vh,92px) 16px 16px;display:flex;position:fixed;inset:0}.quick-open-dialog{border:1px solid var(--line-strong);background:var(--panel);border-radius:9px;flex-direction:column;width:min(720px,100vw - 32px);max-height:min(650px,100vh - 92px);display:flex;overflow:hidden;box-shadow:0 18px 52px #0000005c}.quick-open-input-shell{border-bottom:1px solid var(--line);flex:none;align-items:center;padding:10px;display:flex;position:relative}.quick-open-input-shell>svg{z-index:1;width:17px;height:17px;color:var(--muted);pointer-events:none;position:absolute;left:22px}.quick-open-input-shell>input{border-color:var(--accent);height:42px;box-shadow:0 0 0 1px var(--accent-soft);border-radius:6px;padding:9px 42px 9px 40px;font-size:14px}.quick-open-input-shell>input:focus-visible{outline:1px solid var(--focus);outline-offset:0}.quick-open-clear{width:28px;height:28px;color:var(--muted);background:0 0;border:0;place-items:center;padding:0;font-size:20px;line-height:1;display:grid;position:absolute;right:17px}.quick-open-clear:hover{background:var(--panel-2);color:var(--text)}.quick-open-summary{border-bottom:1px solid var(--line);min-height:29px;color:var(--muted);flex:none;justify-content:space-between;align-items:center;gap:12px;padding:5px 14px;font-size:10px;display:flex}.quick-open-results{flex:auto;min-height:88px;padding:4px 0;overflow-y:auto}.quick-open-result{width:100%;min-height:42px;color:var(--text);text-align:left;background:0 0;border:0;border-radius:0;align-items:center;gap:10px;padding:6px 13px;display:flex}.quick-open-result:hover,.quick-open-result.selected{background:var(--accent-soft);color:var(--file-tree-active-text)}.quick-open-icon-group{flex:0 0 34px;align-items:center;gap:3px;width:34px;display:flex}.quick-open-copy{flex:1;align-items:baseline;gap:12px;min-width:0;display:flex}.quick-open-copy strong{min-width:0;font:650 13px/1.35 var(--mono);text-overflow:ellipsis;white-space:nowrap;flex:0 auto;overflow:hidden}.quick-open-copy>span{min-width:0;color:var(--muted);font:11px/1.35 var(--mono);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.quick-open-copy mark{color:var(--accent);background:0 0;border-radius:2px;font-weight:800}.quick-open-badge{background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent);border-radius:999px;flex:none;padding:2px 6px;font-size:9px;font-weight:750}.quick-open-open-dot{background:var(--accent);border-radius:50%;flex:0 0 7px;width:7px;height:7px}.quick-open-state{min-height:110px;color:var(--muted);text-align:center;place-content:center;gap:5px;padding:20px;font-size:12px;display:grid}.quick-open-state strong{color:var(--text)}.quick-open-footer{border-top:1px solid var(--line);background:var(--panel-2);min-height:32px;color:var(--muted);flex:none;justify-content:flex-end;align-items:center;gap:14px;padding:5px 12px;font-size:10px;display:flex}.quick-open-footer span{align-items:center;gap:4px;display:inline-flex}.quick-open-footer kbd{border:1px solid var(--line-strong);background:var(--panel);min-width:20px;color:var(--text);font:9px/1.2 var(--mono);text-align:center;border-bottom-width:2px;border-radius:4px;padding:2px 4px}.error-notice{border:1px solid color-mix(in srgb, var(--danger) 55%, var(--line));background:color-mix(in srgb, var(--danger) 9%, var(--panel));color:var(--danger);border-radius:7px;margin:10px 14px;padding:10px 12px;font-size:12px}.error-notice>div{justify-content:space-between;gap:10px;display:flex}.error-notice p{white-space:pre-wrap;margin:5px 0 0}.error-notice ul{margin:7px 0 0;padding-left:20px}.sync-feedback{border-bottom:1px solid color-mix(in srgb, var(--success) 45%, var(--line));background:color-mix(in srgb, var(--success) 10%, var(--panel));color:var(--text);text-align:right;padding:7px 14px;font-size:11px}.viewer-error{place-items:center;min-height:55vh;display:grid}.viewer-error .error-notice{width:min(620px,100% - 32px)}.workspace{grid-template-columns:var(--sidebar-width,330px) 6px minmax(0, 1fr);flex:1;min-height:0;display:grid;overflow:hidden}.workspace.is-resizing,.main-view.is-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.workspace.is-resizing.is-row-resizing{cursor:row-resize}.sidebar{background:var(--panel);flex-direction:column;min-height:0;display:flex;overflow:hidden}.horizontal-resize-handle{z-index:8;cursor:col-resize;touch-action:none;background:var(--panel);outline:none;min-width:6px;min-height:0;position:relative}.horizontal-resize-handle:after{background:var(--line-strong);content:"";transition:inset .1s,background .1s;position:absolute;inset:0 2px}.horizontal-resize-handle:hover:after,.horizontal-resize-handle:focus-visible:after,.horizontal-resize-handle.active:after{background:var(--accent);inset-inline:1px}.vertical-resize-handle{z-index:9;cursor:row-resize;touch-action:none;outline:none;height:6px;position:absolute;top:-3px;left:0;right:0}.vertical-resize-handle:after{background:var(--line-strong);content:"";transition:inset .1s,background .1s;position:absolute;inset:2px 0}.vertical-resize-handle:hover:after,.vertical-resize-handle:focus-visible:after,.vertical-resize-handle.active:after{background:var(--accent);inset-block:1px}.sidebar-stack{--sidebar-stack-min-height:102px;--sidebar-stack-compact-share:25%;border-bottom:1px solid var(--line);flex-direction:column;flex:none;min-height:37px;display:flex}.sidebar-stack--code{--sidebar-stack-min-height:260px;--sidebar-stack-compact-share:58%}.sidebar-stack--comments{--sidebar-stack-min-height:210px;--sidebar-stack-compact-share:28%;position:relative}.sidebar-stack.is-expanded{min-height:min(var(--sidebar-stack-min-height), var(--sidebar-stack-compact-share));flex:auto}.sidebar-stack-toggle{background:var(--panel-2);width:100%;color:var(--text);text-align:left;border:0;border-radius:0;flex:none;align-items:center;gap:8px;padding:10px 14px;font-size:12px;font-weight:650;display:flex}.sidebar-stack-toggle:hover{background:var(--accent-soft)}.sidebar-stack-header{background:var(--panel-2);flex:none;display:flex}.sidebar-stack-header .sidebar-stack-toggle{flex:1;min-width:0}.sidebar-stack-action{width:40px;color:var(--muted);background:0 0;border:0;border-radius:0;flex:0 0 40px;place-items:center;padding:0;display:grid;position:relative}.sidebar-stack-action:hover,.sidebar-stack-action.active{background:var(--accent-soft);color:var(--accent)}.sidebar-stack-action svg{width:16px;height:16px}.sidebar-stack-toggle>span:nth-child(2){flex:1;min-width:0}.sidebar-stack-chevron{width:16px;height:16px;color:var(--muted);flex:0 0 18px}.sidebar-stack-count{background:var(--accent-soft);min-width:19px;height:19px;color:var(--accent);border-radius:10px;place-items:center;font-size:10px;display:inline-grid}.sidebar-stack-icon{width:16px;height:16px;color:var(--muted);flex:0 0 16px}.sidebar-stack-body[hidden]{display:none}.sidebar-stack-body{overscroll-behavior:contain;flex:auto;min-height:0;overflow:hidden auto}.segmented{background:var(--panel-2);border:1px solid var(--line);border-radius:7px;gap:2px;padding:3px;display:flex}.segmented button{color:var(--muted);background:0 0;border:0;flex:1;padding:6px 7px;font-size:12px}.segmented button.active{background:var(--panel);color:var(--text);box-shadow:0 1px 3px var(--shadow-small)}.segmented.compact{margin-top:1px}.file-panel,.comment-sidebar-detail,.sidebar-stack-body>section{padding:12px 14px 18px}.file-panel{padding:10px 14px 16px}.file-panel>input{height:34px;margin-top:8px;font-size:12px}.file-scope-checkbox{min-height:31px;color:var(--muted);cursor:pointer;align-items:center;gap:8px;margin:3px 0;padding:4px 7px;font-size:11px;display:flex}.file-scope-checkbox:hover{color:var(--text)}.file-scope-checkbox>input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);flex:0 0 15px;margin:0;padding:0}.file-tree{flex-direction:column;margin:3px -4px 14px;display:flex;overflow:visible}.file-tree-summary{min-height:31px;color:var(--muted);align-items:center;gap:7px;padding:0 2px 0 8px;font-size:11px;display:flex}.file-tree-summary>span{flex:1;min-width:0}.file-tree-summary>button{width:26px;height:26px;color:var(--muted);background:0 0;border:0;flex:0 0 26px;place-items:center;padding:0;display:grid}.file-tree-summary>button:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.file-tree-summary>button svg{width:16px;height:16px}.file-tree>*{flex-shrink:0}.file-tree-virtualized{contain:layout style;width:100%;position:relative}.file-tree-virtualized>.file-tree-row{height:31px;position:absolute;left:0}.file-tree-row{width:100%;height:31px;color:var(--text);text-align:left;font:650 14px/1.35 var(--mono);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;align-items:center;gap:0;padding:6px 8px;display:flex;overflow:hidden}.file-tree-row:hover,.file-tree-row.active{background:var(--accent-soft);color:var(--file-tree-active-text)}.file-tree-label{text-overflow:ellipsis;min-width:0;overflow:hidden}.directory-chevron{color:var(--muted);text-align:center;flex:0 0 14px;margin-right:4px;font-size:10px}.file-tree-icon-group{flex:none;align-items:center;gap:2px;margin-right:8px;display:flex}.tree-entry-icon{width:16px;height:16px;color:var(--muted);flex:0 0 16px}.file-type-icon{color:var(--file-icon-light-fg);--file-icon-bg:var(--file-icon-light-bg);place-items:center;display:inline-grid}.file-type-icon>svg{width:100%;height:100%;display:block}.file-type-icon>svg .bg{fill:var(--file-icon-bg)}:root[data-theme=dark] .file-type-icon{color:var(--file-icon-dark-fg);--file-icon-bg:var(--file-icon-dark-bg)}@media (prefers-color-scheme:dark){:root[data-theme=system] .file-type-icon{color:var(--file-icon-dark-fg);--file-icon-bg:var(--file-icon-dark-bg)}}.file-change-icon{flex:0 0 14px;place-items:center;width:14px;height:14px;display:grid}.file-change-icon svg{width:14px;height:14px}.file-change-icon--added{color:var(--success)}.file-change-icon--deleted{color:var(--danger)}.file-change-icon--modified{color:var(--attention)}.file-change-icon--renamed{color:var(--done)}.file-change-icon--type-changed{color:var(--info)}.search-panel{padding:12px 12px 16px}.search-input-shell{position:relative}.search-input-shell>input{height:34px;padding-right:72px;font-size:12px}.search-options{gap:1px;display:flex;position:absolute;top:5px;right:5px}.search-options button{width:28px;height:24px;color:var(--muted);font:11px/1 var(--mono);background:0 0;border:0;border-radius:4px;place-items:center;padding:0;display:grid}.search-options button:hover{background:var(--panel-2);color:var(--text)}.search-options button.active{background:var(--accent-soft);color:var(--accent)}.search-options button:last-child>span{border-bottom:1px solid;padding-bottom:1px}.search-summary{min-height:33px;color:var(--muted);align-items:center;gap:7px;padding:7px 2px 4px 5px;font-size:11px;display:flex}.search-summary>span:first-child{flex:1;min-width:0}.search-refreshing{color:var(--accent);font-size:10px}.search-summary>button{width:26px;height:26px;color:var(--muted);background:0 0;border:0;flex:0 0 26px;place-items:center;padding:0;display:grid}.search-summary>button:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.search-summary>button svg{width:16px;height:16px}.search-panel>.error-notice{margin:8px 0 0}.search-results{margin:2px -5px 0}.search-result-group{border-bottom:1px solid var(--line)}.search-result-group:last-child{border-bottom:0}.search-result-file{width:100%;min-height:32px;color:var(--text);text-align:left;background:0 0;border:0;align-items:center;gap:6px;padding:5px 6px;display:flex}.search-result-file:hover{background:var(--panel-2)}.search-result-file-icon-group{flex:none;align-items:center;gap:2px;display:flex}.search-result-file-icon-group>.tree-entry-icon{flex-basis:14px;width:14px;height:14px}.search-result-chevron{width:14px;height:14px;color:var(--muted);flex:0 0 14px;place-items:center;display:grid}.search-result-chevron svg{width:14px;height:14px}.search-result-file-label{flex:1;align-items:baseline;gap:8px;min-width:0;display:flex;overflow:hidden}.search-result-file strong{min-width:0;max-width:68%;font:650 11px/1.3 var(--mono);text-overflow:ellipsis;white-space:nowrap;flex:0 auto;overflow:hidden}.search-result-directory{min-width:0;color:var(--muted);font:500 10px/1.3 var(--mono);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.search-result-count{background:var(--panel-2);min-width:21px;height:19px;color:var(--muted);border-radius:10px;place-items:center;padding:0 5px;font-size:10px;display:inline-grid}.search-result-lines{padding:0 0 4px 20px}.search-result-line{width:100%;color:var(--text);text-align:left;background:0 0;border:0;border-radius:4px;grid-template-columns:28px minmax(0,1fr);align-items:baseline;gap:5px;padding:5px 7px;display:grid}.search-result-line:hover{background:var(--accent-soft)}.search-result-line-number{color:var(--muted);font:10px/1.4 var(--mono);text-align:right}.search-result-line code{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.search-result-line mark{background:var(--search-match-bg);color:var(--search-match-text);border-radius:2px;font-weight:750}.search-empty{color:var(--muted);margin:8px 2px 0;font-size:11px}.truncated{border:1px solid var(--warning-line);background:var(--warning);color:var(--warning-text);border-radius:5px;margin:8px 0 0;padding:7px 8px;font-size:11px}.main-view{grid-template-columns:minmax(0,1fr);min-width:0;min-height:0;display:grid;position:relative;overflow:hidden auto}.main-view.two-pane{grid-template-columns:minmax(0,1fr) 6px minmax(0,1fr);overflow:auto hidden}.document-pane{background:var(--bg);min-width:0;min-height:0;position:relative;overflow:auto}.pane-resize-handle{background:var(--bg)}.document-pane-drop-target{border:1px dashed var(--line-strong);background:color-mix(in srgb, var(--accent) 4%, var(--panel));border-radius:10px;min-height:calc(100% - 72px);margin:16px}.document-tabs-shell{z-index:6;border-bottom:1px solid var(--line-strong);background:var(--panel-2);min-width:0;height:40px;display:flex;position:sticky;top:0}.pane-find-layer{z-index:7;pointer-events:none;justify-content:flex-end;height:0;padding-right:10px;display:flex;position:sticky;top:44px}.document-pane:has(.markdown-view-toolbar) .pane-find-layer{top:86px}.document-pane:has(.walkthrough-viewer) .pane-find-layer{top:118px}.pane-find-widget{border:1px solid var(--line-strong);background:var(--panel);width:min(430px,100% - 6px);height:35px;box-shadow:0 5px 18px var(--shadow-medium);pointer-events:auto;border-radius:3px;align-items:center;gap:2px;padding:4px;display:flex}.pane-find-input-shell{border:1px solid var(--line-strong);background:var(--bg);flex:auto;align-items:center;min-width:96px;height:25px;display:flex}.pane-find-input-shell:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.pane-find-input-shell.invalid,.pane-find-input-shell.invalid:focus-within{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger)}.pane-find-input-shell input{min-width:48px;height:23px;color:var(--text);font:12px var(--mono);background:0 0;border:0;outline:0;flex:auto;padding:3px 5px}.pane-find-input-shell>button,.pane-find-action{width:23px;height:23px;color:var(--muted);font:650 10px var(--mono);background:0 0;border:0;border-radius:3px;flex:0 0 23px;place-items:center;padding:0;display:grid}.pane-find-input-shell>button:hover,.pane-find-action:hover:not(:disabled){background:var(--accent-soft);color:var(--text)}.pane-find-input-shell>button.active{background:var(--accent-soft);color:var(--accent)}.pane-find-whole-word{border-bottom:1px solid;padding-bottom:1px}.pane-find-status{width:42px;color:var(--muted);font:10px var(--mono);text-align:center;text-overflow:ellipsis;white-space:nowrap;flex:0 0 42px;overflow:hidden}.pane-find-status.invalid{color:var(--danger)}.pane-find-action svg{width:15px;height:15px}.pane-find-action:disabled{opacity:.35}::highlight(rvw-pane-find-left-match){background-color:var(--lightningcss-light,#eab3086b)var(--lightningcss-dark,#facc1561)}::highlight(rvw-pane-find-right-match){background-color:var(--lightningcss-light,#eab3086b)var(--lightningcss-dark,#facc1561)}::highlight(rvw-pane-find-left-current){color:var(--lightningcss-light,#17120a)var(--lightningcss-dark,#fff);background-color:var(--lightningcss-light,#f58b0ad1)var(--lightningcss-dark,#f97316c7)}::highlight(rvw-pane-find-right-current){color:var(--lightningcss-light,#17120a)var(--lightningcss-dark,#fff);background-color:var(--lightningcss-light,#f58b0ad1)var(--lightningcss-dark,#f97316c7)}.document-tabs{scrollbar-width:thin;flex:1;min-width:0;display:flex;overflow-x:auto}.document-tab{border-right:1px solid var(--line);background:var(--panel-2);min-width:126px;max-width:210px;color:var(--muted);flex:0 180px;display:flex;position:relative}.document-tab[draggable=true]{cursor:grab}.document-tab[draggable=true]:active{cursor:grabbing}.document-tab.active{background:var(--panel);color:var(--text)}.document-tab.active:before{background:var(--line-strong);content:"";height:2px;position:absolute;inset:0 0 auto}.document-pane.active .document-tab.active:before{background:var(--tab-accent)}.document-tab-activate{min-width:0;color:inherit;text-align:left;background:0 0;border:0;border-radius:0;flex:1;align-items:center;gap:7px;padding:0 4px 0 10px;display:flex}.document-tab-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:600 11px var(--mono);overflow:hidden}.document-tab-icon-group{flex:none;align-items:center;gap:2px;display:flex}.document-tab-close,.document-tabs-menu-toggle{width:30px;color:var(--muted);background:0 0;border:0;border-radius:0;flex:0 0 30px;place-items:center;padding:0;display:grid}.document-tab-close:hover,.document-tabs-menu-toggle:hover{background:var(--accent-soft);color:var(--accent)}.document-tabs-menu{border-left:1px solid var(--line);flex:0 0 38px;display:flex;position:relative}.document-tabs-menu-toggle{flex-basis:38px;width:38px}.document-tabs-menu-popover{z-index:8;border:1px solid var(--line-strong);background:var(--panel);width:min(330px,100vw - 32px);max-height:320px;box-shadow:0 8px 28px var(--shadow-medium);border-radius:7px;padding:5px;position:absolute;top:calc(100% + 4px);right:4px;overflow:auto}.document-tabs-menu-popover>span{color:var(--muted);padding:9px;font-size:12px;display:block}.document-tabs-menu-popover button{width:100%;color:var(--text);text-align:left;font:500 11px var(--mono);background:0 0;border:0;align-items:center;gap:8px;padding:7px 8px;display:flex}.document-tabs-menu-popover button:hover,.document-tabs-menu-popover button.active{background:var(--accent-soft);color:var(--accent)}.document-tabs-menu-popover button:disabled{color:var(--muted);cursor:default;opacity:.55}.document-tabs-menu-separator{background:var(--line);height:1px;margin:4px -5px}.document-tabs-menu-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.empty-document-viewer{min-height:55vh;color:var(--muted);text-align:center;align-content:center;place-items:center;gap:6px;display:grid}.empty-document-viewer strong{color:var(--text);font-size:13px}.empty-document-viewer span{font-size:12px}.document-viewer{min-height:100%;padding-bottom:24px}.reference-fallback-banner{border:1px solid color-mix(in srgb, var(--warning-text) 24%, var(--line));background:var(--warning);color:var(--warning-text);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;margin:16px 16px 0;padding:10px 12px;display:flex}.reference-fallback-banner>div{gap:2px;min-width:0;display:grid}.reference-fallback-banner strong{font-size:12px}.reference-fallback-banner span{font-size:11px}.reference-fallback-banner button{border-color:color-mix(in srgb, var(--warning-text) 30%, var(--line));background:var(--panel);min-height:30px;color:var(--text);flex:none;font-size:11px;font-weight:700}.diff-style-modes button{min-width:54px}.diff-surface{border:1px solid var(--line);background:var(--panel);box-shadow:0 2px 14px var(--shadow-small);border-radius:9px;margin:16px;overflow:clip}.markdown-view-toolbar{z-index:5;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--panel) 94%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);justify-content:space-between;align-items:center;gap:12px;min-height:42px;padding:6px 16px;display:flex;position:sticky;top:40px}.markdown-view-toolbar>span{align-items:center;gap:7px;min-width:0;display:flex}.markdown-view-toolbar>span code{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.markdown-view-modes{flex:0 0 150px;width:150px}.markdown-preview>header{border-bottom:1px solid var(--line);background:var(--panel-2);min-height:39px;color:var(--muted);align-items:center;gap:10px;padding:6px 12px;font-size:10px;display:flex}.markdown-preview>header>span:first-child{color:var(--text);font-weight:700}.markdown-preview>header>span:nth-child(2){text-align:right;flex:1;min-width:0}.markdown-comment-surface{-webkit-user-select:text;user-select:text;min-width:0;position:relative}.markdown-preview>.markdown-comment-surface>article{width:min(900px,100%);margin:0 auto;padding:38px clamp(24px,5vw,64px) 80px;font-size:14px;line-height:1.7}.markdown-preview>.markdown-comment-surface>article>:first-child{margin-top:0}.markdown-selection-popover{z-index:18;position:absolute;transform:translate(-50%)}.markdown-selection-popover.is-composing{width:min(460px,100% - 24px)}.markdown-selection-popover .inline-comment-composer{box-shadow:0 12px 30px color-mix(in srgb, var(--text) 18%, transparent);margin:0}.markdown-selection-composer-slot{margin:12px 0;display:flow-root}.markdown-selection-composer-slot:empty{display:none}.markdown-selection-composer-slot .inline-comment-composer{width:min(680px,100% - 24px);box-shadow:0 8px 24px color-mix(in srgb, var(--text) 12%, transparent);margin:0 auto}.markdown-selection-comment-action{border-color:color-mix(in srgb, var(--accent) 55%, var(--line));background:var(--accent);min-height:32px;box-shadow:0 7px 22px color-mix(in srgb, var(--text) 18%, transparent);color:var(--accent-contrast);border-radius:999px;padding:5px 10px;font-size:11px;font-weight:700}.rvw-markdown-selected{background:color-mix(in srgb, var(--accent) 24%, transparent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 24%, transparent)}.rvw-markdown-commented{text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 68%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 68%, transparent);text-underline-offset:3px;text-decoration-thickness:2px}.markdown-inline-comments{gap:8px;margin:10px 0 18px;display:grid}.markdown-inline-comments>.comment-thread{border:1px solid color-mix(in srgb, var(--accent) 30%, var(--line));background:var(--panel);box-shadow:0 3px 12px var(--shadow-small);border-radius:8px}.markdown-preview h1,.markdown-preview h2,.markdown-preview h3{line-height:1.3}.markdown-preview h1{border-bottom:1px solid var(--line);margin-bottom:20px;padding-bottom:12px;font-size:28px}.markdown-preview h2{margin:34px 0 12px;font-size:20px}.markdown-preview h3{margin:24px 0 10px;font-size:16px}.markdown-preview p,.markdown-preview ul,.markdown-preview ol{margin:11px 0}.markdown-preview blockquote{border-left:3px solid var(--accent);background:var(--accent-soft);color:var(--muted);margin:18px 0;padding:8px 15px}.markdown-preview code{border:1px solid var(--line);background:var(--panel-2);font-size:inherit;border-radius:4px;padding:2px 5px}.markdown-preview pre{border:1px solid var(--line);background:var(--panel-2);border-radius:8px;padding:16px;overflow:auto}.markdown-preview pre code{border:0;padding:0}.markdown-mermaid-shell{border:1px solid var(--line-strong);background:var(--panel);box-shadow:0 3px 14px var(--shadow-small);border-radius:9px;margin:20px 0;overflow:hidden}.markdown-mermaid-shell.is-source-highlighted{border-color:color-mix(in srgb, var(--accent) 68%, var(--line));box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 24%, transparent), 0 3px 14px var(--shadow-small)}.markdown-mermaid-shell.is-source-selected{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--panel));box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 30%, transparent), 0 3px 14px var(--shadow-small)}.markdown-mermaid-toolbar{border-bottom:1px solid var(--line);background:var(--panel-2);min-height:32px;color:var(--muted);letter-spacing:.03em;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;font-size:10px;font-weight:700;display:flex}.markdown-mermaid{min-height:160px;padding:18px;overflow:auto}.markdown-mermaid svg{width:100%;min-width:480px;max-height:440px;margin:0 auto;display:block}.markdown-mermaid-error{background:var(--warning);color:var(--warning-text);padding:14px;font-size:12px}.markdown-preview img{max-width:100%;height:auto}.markdown-image-placeholder{overflow-wrap:anywhere;border:1px dashed var(--line-strong);background:var(--panel-2);max-width:100%;color:var(--muted);border-radius:6px;align-items:center;padding:4px 8px;font-size:12px;line-height:1.5;display:inline-flex}.markdown-preview details{margin:11px 0}.markdown-preview summary{cursor:pointer;font-weight:650}.markdown-preview details[open]>summary{margin-bottom:8px}.markdown-table-scroll{border:1px solid var(--line-strong);border-radius:7px;width:100%;margin:18px 0;overflow-x:auto}.markdown-table-scroll table{border-collapse:collapse;border-spacing:0;width:max-content;min-width:100%}.markdown-table-scroll th,.markdown-table-scroll td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);overflow-wrap:anywhere;text-align:left;vertical-align:top;white-space:normal;word-break:normal;-webkit-user-select:text;user-select:text;max-width:40ch;padding:8px 12px}.markdown-table-scroll th:last-child,.markdown-table-scroll td:last-child{border-right:0}.markdown-table-scroll tr:last-child td{border-bottom:0}.markdown-table-scroll th{background:var(--panel-2);font-weight:700}.markdown-table-scroll tbody tr:nth-child(2n){background:color-mix(in srgb, var(--panel-2) 55%, transparent)}.markdown-preview .contains-task-list,.walkthrough-markdown .contains-task-list{padding-left:0;list-style:none}.markdown-preview .task-list-item,.walkthrough-markdown .task-list-item{list-style:none}.markdown-preview .task-list-item>input[type=checkbox],.walkthrough-markdown .task-list-item>input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent-emphasis);vertical-align:-2px;border-radius:3px;margin:0 8px 0 0;padding:0}diffs-container>[slot=header-metadata]{align-items:center;gap:7px;display:flex}.diff-fallback-badge{border:1px solid var(--line-strong);background:var(--panel-2);min-height:24px;color:var(--muted);white-space:nowrap;border-radius:12px;align-items:center;padding:3px 8px;font-size:10px;display:inline-flex}.viewer-loading,.viewer-unavailable{min-height:55vh;color:var(--muted);place-items:center;display:grid}.viewer-unavailable{align-content:center;gap:10px}.viewer-unavailable>span{border:1px solid var(--line-strong);width:52px;height:52px;font:700 12px var(--mono);border-radius:8px;place-items:center;display:grid}.repository-image-viewer{width:100%;overflow-x:auto}.repository-image-grid{min-width:0;display:grid}.repository-image-viewer--split .repository-image-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-width:680px}.repository-image-pane{border-right:1px solid var(--line);min-width:0}.repository-image-pane:last-child{border-right:0}.repository-image-pane>header{border-bottom:1px solid var(--line);background:var(--panel-2);align-items:center;gap:9px;min-height:39px;padding:5px 10px 5px 12px;display:flex}.repository-image-pane>header strong{flex:none;font-size:11px}.repository-image-pane>header code{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:10px;overflow:hidden}.repository-image-asset{background-color:var(--panel);background-image:linear-gradient(45deg, color-mix(in srgb, var(--muted) 9%, transparent) 25%, transparent 25%), linear-gradient(-45deg, color-mix(in srgb, var(--muted) 9%, transparent) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, color-mix(in srgb, var(--muted) 9%, transparent) 75%), linear-gradient(-45deg, transparent 75%, color-mix(in srgb, var(--muted) 9%, transparent) 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px;place-items:center;min-height:55vh;padding:24px;display:grid;position:relative;overflow:hidden}.repository-image-asset img{object-fit:contain;max-width:100%;height:auto;display:block}.repository-image-status,.repository-image-empty{min-height:55vh;color:var(--muted);text-align:center;place-items:center;padding:24px;font-size:12px;display:grid}.repository-image-status{position:absolute;inset:0}.repository-image-status--error{color:var(--danger)}.repository-image-comments{border-top:1px solid var(--line);background:var(--panel);gap:8px;padding:10px;display:grid}.comment-icon-button{border-color:var(--line-strong);width:32px;height:32px;color:var(--muted);background:0 0;place-items:center;padding:0;display:grid}.comment-icon-button:hover,.comment-icon-button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.diff-header-file-actions{flex:none;align-items:center;gap:6px;display:inline-flex}.file-structure-references{flex:none;display:grid;position:relative}.file-structure-references-trigger[aria-expanded=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.file-structure-references-trigger[aria-disabled=true]{cursor:not-allowed;opacity:.48}.file-structure-references-trigger[aria-disabled=true]:hover{border-color:var(--line-strong);color:var(--muted);background:0 0}.file-structure-references-trigger.is-error{border-color:color-mix(in srgb, var(--danger) 55%, var(--line));color:var(--danger)}.file-structure-references-error-badge{border:1px solid var(--panel);background:var(--danger);color:#fff;pointer-events:none;border-radius:999px;place-items:center;width:13px;height:13px;font-size:9px;font-weight:800;line-height:1;display:grid;position:absolute;top:-4px;right:-4px}.file-structure-references-popover{z-index:1000;border:1px solid var(--line-strong);background:var(--panel);width:min(340px,100vw - 16px);max-height:min(420px,100vh - 24px);box-shadow:0 14px 36px var(--shadow-medium);border-radius:9px;padding:5px;display:grid;position:fixed;overflow:auto}.file-structure-references-popover>button{min-width:0;color:var(--text);text-align:left;background:0 0;border:0;border-radius:6px;justify-items:start;gap:3px;padding:9px 10px;display:grid}.file-structure-references-popover>button:hover,.file-structure-references-popover>button:focus-visible{background:var(--accent-soft);outline:none}.file-structure-references-popover strong,.file-structure-references-popover>button>span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.file-structure-references-popover strong{font-size:12px}.file-structure-references-popover>button>span{color:var(--muted);font-size:11px}.file-structure-references-additional{color:var(--accent);margin-left:6px;font-weight:750;display:inline-block}.inline-comment-composer{background:var(--panel);border:1px solid var(--line-strong);box-shadow:0 4px 16px var(--shadow-medium);border-radius:8px;gap:9px;padding:12px;display:grid}.inline-comment-composer--file{margin:16px 16px 0}.inline-comment-composer--line{width:min(680px,100% - 16px);margin:8px}.inline-comment-composer>strong{color:var(--muted);font-size:12px}.inline-comment-composer .error-notice{margin:0}.inline-comment-composer textarea{min-height:84px;font-size:13px}.inline-comment-actions{justify-content:flex-end;gap:7px;display:flex}.inline-comment-actions button{font-size:12px}.inline-comment-actions .button--quiet{color:var(--muted)}.form-error{color:var(--danger);margin:7px 0 0;font-size:11px}.review-tree-items{flex-direction:column;margin:0 -4px;display:flex}.review-tree-item.file-tree-row{flex:0 0 31px}.review-tree-count{background:var(--panel-2);min-width:18px;height:18px;color:var(--muted);border-radius:9px;flex:0 0 18px;place-items:center;margin-left:4px;font-size:10px;display:inline-grid}.review-tree-walkthrough-icon{color:var(--done)}.review-tree-walkthrough-icon svg{width:16px;height:16px}.review-tree-walkthrough-list{flex-direction:column;display:flex}.review-tree-walkthrough.file-tree-row{padding-left:22px}.walkthrough-viewer{background:radial-gradient(circle at 30% -5%, color-mix(in srgb, var(--accent) 8%, transparent), transparent 34rem), var(--bg);min-height:calc(100% - 40px)}.walkthrough-viewer-header{z-index:4;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--panel) 94%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:space-between;align-items:center;gap:18px;min-height:74px;padding:12px 20px;display:flex;position:sticky;top:40px}.walkthrough-viewer-title{flex:auto;align-items:center;gap:12px;min-width:0;display:flex;overflow:hidden}.walkthrough-viewer-heading-copy{min-width:0;overflow:hidden}.walkthrough-viewer-icon{border:1px solid color-mix(in srgb, var(--done) 42%, var(--line));background:color-mix(in srgb, var(--done) 12%, var(--panel));width:38px;height:38px;color:var(--done);border-radius:10px;flex:0 0 38px;place-items:center;display:grid}.walkthrough-viewer-icon svg{width:19px;height:19px}.walkthrough-kicker{color:var(--muted);letter-spacing:.08em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;margin-bottom:3px;font-size:10px;font-weight:750;display:block;overflow:hidden}.walkthrough-viewer-title h2{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:16px;overflow:hidden}.walkthrough-comment-button{flex:0 0 32px;position:relative}.walkthrough-viewer-actions{flex:none;align-items:center;gap:6px;display:flex}.code-reference-notice{border:1px solid color-mix(in srgb, var(--warning-text) 24%, var(--line));background:var(--warning);max-width:min(420px,100% - 40px);box-shadow:0 6px 18px color-mix(in srgb, var(--text) 12%, transparent);color:var(--warning-text);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:650;overflow:hidden}.walkthrough-reference-notice{position:absolute;top:calc(100% + 8px);right:20px}.comment-reference-notice{max-width:100%;margin-top:5px;display:inline-block}.walkthrough-delete-button{color:var(--muted)}.walkthrough-delete-button:hover:not(:disabled){border-color:color-mix(in srgb, var(--danger) 45%, var(--line));background:var(--danger-soft);color:var(--danger)}.walkthrough-comment-button>span{background:var(--accent);min-width:17px;height:17px;color:var(--accent-contrast);font:700 9px var(--mono);border-radius:999px;place-items:center;padding:0 4px;display:grid;position:absolute;top:-6px;right:-6px}.walkthrough-viewer>.error-notice{margin:10px 16px 0}.walkthrough-comment-area{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--panel) 76%, transparent);gap:10px;padding:0 16px 16px;display:grid}.walkthrough-comment-area>.inline-comment-composer--file{margin-inline:0}.walkthrough-comment-area>.comment-thread{border:1px solid var(--line);background:var(--panel);border-radius:8px}.walkthrough-markdown-surface{min-width:0}.walkthrough-markdown{width:min(940px,100%);min-width:0;margin:0 auto;padding:38px clamp(26px,4vw,58px) 100px;font-size:14px;line-height:1.7}.walkthrough-markdown>:first-child{margin-top:0}.walkthrough-markdown h1,.walkthrough-markdown h2,.walkthrough-markdown h3{color:var(--text);scroll-margin-top:130px;line-height:1.28}.walkthrough-markdown h1{border-bottom:1px solid var(--line);letter-spacing:-.025em;margin:0 0 18px;padding-bottom:12px;font-size:27px}.walkthrough-markdown h2{margin:38px 0 13px;padding-top:6px;font-size:20px}.walkthrough-markdown h3{margin:25px 0 10px;font-size:16px}.walkthrough-markdown p,.walkthrough-markdown ul,.walkthrough-markdown ol{margin:11px 0}.walkthrough-markdown li+li{margin-top:5px}.walkthrough-markdown blockquote{border-left:3px solid var(--done);background:color-mix(in srgb, var(--done) 7%, var(--panel));color:var(--muted);margin:18px 0;padding:8px 15px}.walkthrough-markdown code{border:1px solid var(--line);background:var(--panel-2);color:var(--text);font-size:inherit;border-radius:4px;padding:2px 5px}.walkthrough-markdown pre{border:1px solid var(--line);background:var(--panel-2);border-radius:9px;margin:18px 0;padding:16px;overflow:auto}.walkthrough-markdown pre code{background:0 0;border:0;padding:0}.code-inline-reference{border:1px solid color-mix(in srgb, var(--accent) 45%, var(--line));background:color-mix(in srgb, var(--accent) 8%, var(--panel));max-width:100%;color:var(--accent);-webkit-user-select:text;user-select:text;vertical-align:baseline;border-radius:5px;align-items:center;gap:5px;margin:0 2px;padding:2px 6px;line-height:1.35;display:inline-flex}.code-inline-reference:hover{border-color:var(--accent);background:var(--accent-soft)}.code-inline-reference svg{flex:none;width:13px;height:13px}.code-inline-reference>span{font:650 12px var(--mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.code-inline-reference small{color:var(--muted);font:9px var(--mono);white-space:nowrap}.main-view.two-pane .walkthrough-markdown{padding-inline:clamp(22px,4vw,44px)}.main-view.two-pane .walkthrough-diagram svg{min-width:520px}.walkthrough-diagram-shell{border:1px solid var(--line-strong);background:var(--panel);box-shadow:0 4px 18px var(--shadow-small);border-radius:10px;margin:22px 0 28px;overflow:hidden}.walkthrough-diagram-shell.has-comment{border-color:color-mix(in srgb, var(--accent) 55%, var(--line-strong));box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 12%, transparent)}.walkthrough-diagram-toolbar{border-bottom:1px solid var(--line);background:var(--panel-2);min-height:34px;color:var(--muted);letter-spacing:.03em;justify-content:space-between;align-items:center;gap:12px;padding:7px 10px;font-size:9px;font-weight:650;display:flex}.walkthrough-diagram-toolbar>span:nth-child(2){text-align:right;flex:1;min-width:0}.walkthrough-diagram-comment{min-height:27px;color:var(--accent);flex:none;align-items:center;gap:5px;padding:3px 8px;font-size:10px;display:inline-flex}.walkthrough-diagram-comment svg{width:13px;height:13px}.walkthrough-diagram{min-height:190px;padding:22px;overflow:auto}.walkthrough-diagram-comment-composer{border-top:1px solid var(--line);background:var(--panel-2);padding:0 10px 10px}.walkthrough-diagram-comment-composer .inline-comment-composer--line{width:100%;margin:10px 0 0}.walkthrough-diagram svg{width:100%;min-width:580px;max-height:480px;margin:0 auto;display:block}.walkthrough-diagram-node--linked{cursor:pointer;filter:drop-shadow(0 2px 3px var(--shadow-small));outline:none}.walkthrough-diagram-node--linked rect,.walkthrough-diagram-node--linked polygon,.walkthrough-diagram-node--linked circle,.walkthrough-diagram-node--linked path{transition:fill .1s,stroke-width .1s;fill:color-mix(in srgb, var(--accent) 7%, var(--panel))!important;stroke:var(--accent)!important;stroke-width:1.6px!important}.walkthrough-diagram-node--linked line{stroke:color-mix(in srgb, var(--accent) 72%, var(--line-strong))!important;stroke-width:1.2px!important}.walkthrough-diagram-node--linked:hover rect,.walkthrough-diagram-node--linked:focus-visible rect,.walkthrough-diagram-node--linked:hover polygon,.walkthrough-diagram-node--linked:focus-visible polygon,.walkthrough-diagram-node--linked:hover circle,.walkthrough-diagram-node--linked:focus-visible circle,.walkthrough-diagram-node--linked:hover path,.walkthrough-diagram-node--linked:focus-visible path{fill:color-mix(in srgb, var(--accent) 14%, var(--panel))!important;stroke-width:3px!important}.walkthrough-diagram-error{border:1px solid var(--warning-line);background:var(--warning);color:var(--warning-text);border-radius:8px;margin:18px 0;padding:12px;font-size:12px}.walkthrough-html-preview-shell{border:1px solid var(--line-strong);background:var(--panel);box-shadow:0 4px 18px var(--shadow-small);border-radius:10px;margin:22px 0 28px;overflow:visible}.walkthrough-html-preview-toolbar{border-bottom:1px solid var(--line);background:var(--panel-2);min-height:34px;color:var(--muted);letter-spacing:.03em;justify-content:space-between;align-items:center;gap:12px;padding:7px 10px;font-size:9px;font-weight:650;display:flex}.walkthrough-html-preview-toolbar>span:nth-child(2){text-align:right;flex:1;min-width:0}.walkthrough-html-preview-frame-shell{min-width:0;position:relative}.walkthrough-html-preview-frame-shell iframe{background:var(--panel);border:0;width:100%;min-height:240px;display:block}.walkthrough-html-overlay{z-index:4;pointer-events:none;position:absolute;inset:0;overflow:visible}.walkthrough-html-comment-action,.walkthrough-html-marker{pointer-events:auto;box-shadow:0 3px 10px var(--shadow-medium);position:absolute}.walkthrough-html-comment-action{border-color:var(--accent);background:var(--panel);min-height:28px;color:var(--accent);align-items:center;gap:5px;padding:4px 8px;font-size:10px;display:inline-flex;transform:translate(-50%)}.walkthrough-html-comment-action:hover{background:var(--accent-soft)}.walkthrough-html-comment-action svg{width:13px;height:13px}.walkthrough-html-marker{border:1px solid color-mix(in srgb, var(--accent) 70%, var(--line));background:var(--panel);width:25px;height:25px;color:var(--accent);border-radius:999px;place-items:center;padding:5px;display:grid;transform:translate(-75%,-25%)}.walkthrough-html-marker.is-active{background:var(--accent);color:var(--accent-contrast)}.walkthrough-html-marker svg{width:13px;height:13px}.walkthrough-html-comment-composer{z-index:2;border:1px solid var(--line-strong);background:var(--panel);width:min(420px,100% - 24px);box-shadow:0 8px 24px var(--shadow-medium);pointer-events:auto;border-radius:8px;padding:10px;position:absolute;transform:translate(-50%,8px)}.walkthrough-html-comment-composer .inline-comment-composer--line{width:100%;margin:0}.walkthrough-html-preview-error{border:1px solid var(--warning-line);background:var(--warning);color:var(--warning-text);border-radius:8px;margin:18px 0;padding:12px;font-size:12px}.comment-sidebar{font-size:var(--comment-body-size)}.comment-state-filter button{font-size:var(--comment-ui-size)}.comment-state-filter button span{color:var(--muted);font-size:var(--comment-meta-size);margin-left:3px}.comment-list-toolbar,.pr-comment-actions,.comment-reply-actions,.comment-edit-actions,.comment-actions{align-items:center;gap:7px;display:flex}.comment-list-toolbar{justify-content:space-between;margin-top:8px}.comment-list-toolbar button,.comment-actions button,.comment-reply-actions button,.comment-edit-actions button,.pr-comment-actions button{font-size:var(--comment-ui-size)}.comment-list-toolbar button{color:var(--muted);padding:5px 7px}.comment-select-all{color:var(--muted);cursor:pointer;font-size:var(--comment-ui-size);align-items:center;gap:6px;display:flex}.comment-pr-create{margin-left:auto}.comment-select-all input,.comment-select-toggle input{width:auto}.comment-list{flex-direction:column;gap:8px;margin-top:10px;display:flex}.comment-list-item{align-items:flex-start;min-width:0;display:flex;position:relative}.comment-select-toggle{cursor:pointer;flex:0 0 28px;justify-content:center;align-self:flex-start;height:40px;padding-top:11px;display:flex}.comment-select-toggle input{flex:none;width:16px;height:16px;margin:0}.comment-list-item-content>.comment-thread{cursor:pointer}.comment-list-item.is-selected>.comment-list-item-content>.comment-thread{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft)}.comment-list-item-content{flex:1;min-width:0}.comment-list-item-content>.comment-thread{min-width:0}.comment-list-item-content>.error-notice{margin:6px 0 0}.pr-comment-composer{border:1px solid var(--line);background:var(--panel-2);border-radius:7px;gap:7px;margin-top:8px;padding:10px;display:grid}.pr-comment-composer label{color:var(--muted);font-size:var(--comment-meta-size);font-weight:650}.pr-comment-composer textarea,.comment-reply-composer textarea{font-size:var(--comment-body-size);line-height:1.5}.pr-comment-actions,.comment-reply-actions{justify-content:flex-end}.comment-copy-selection{z-index:5;box-shadow:0 3px 10px var(--shadow-medium);font-size:var(--comment-ui-size);margin-top:10px;position:sticky;bottom:8px}.comment-thread{border:1px solid var(--line);background:var(--panel);color:var(--text);font-size:var(--comment-body-size);border-radius:7px;position:relative;overflow:visible}.comment-thread--inline{border-left:3px solid var(--accent);width:min(100% - 16px,736px);box-shadow:0 3px 12px var(--shadow-small);margin:5px 8px 10px}.comment-thread-header{align-items:flex-start;min-width:0;display:flex}.comment-thread-toggle,.comment-thread-summary{min-width:0;color:var(--text);text-align:left;background:0 0;border:0;border-radius:0;flex:1;align-items:flex-start;gap:7px;padding:10px;display:flex}.comment-thread-toggle:hover{background:var(--accent-soft)}.comment-thread-chevron{color:var(--muted);font:700 16px/1 var(--mono);flex:none}.comment-thread-summary-copy{flex:1;gap:4px;min-width:0;display:grid}.comment-thread.is-collapsed .comment-thread-summary-copy{align-self:center}.comment-thread.is-collapsed .comment-thread-excerpt,.comment-thread.is-collapsed .comment-thread-meta{display:none}.comment-thread-target,.comment-thread-excerpt,.comment-thread-meta{min-width:0;overflow:hidden}.comment-thread-target{color:var(--text);font:650 var(--comment-ui-size)/1.4 var(--mono);text-overflow:ellipsis;white-space:nowrap}.comment-thread-excerpt{font-size:var(--comment-body-size);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.45;display:-webkit-box}.comment-thread-meta,.comment-post-meta,.comment-post>small{color:var(--muted);font-size:var(--comment-meta-size);line-height:1.4}.comment-thread-header-actions,.comment-thread-badges{flex:none;align-items:center;display:flex}.comment-thread-header-actions{gap:4px;padding:7px 7px 0 0}.comment-thread-badges{flex-direction:column;align-items:flex-end;gap:4px}.comment-thread-content{border-top:1px solid var(--line);padding:0 10px 10px}.comment-thread.is-collapsed .comment-thread-header{align-items:center}.comment-thread.is-collapsed .comment-thread-header-actions{padding-top:5px;padding-bottom:5px}.comment-thread--inline .comment-thread-header{align-items:center;min-height:34px}.comment-thread--inline .comment-thread-toggle{align-items:center;gap:6px;padding:7px 8px}.comment-thread--inline .comment-thread-chevron{font-size:14px}.comment-thread--inline .comment-thread-summary-copy{display:block}.comment-thread--inline .comment-thread-header-actions,.comment-thread--inline.is-collapsed .comment-thread-header-actions{align-self:stretch;padding:3px 4px 3px 0}.comment-thread--inline .comment-thread-badges{flex-direction:row}.comment-outdated-note{background:var(--danger-soft);color:var(--danger);font-size:var(--comment-meta-size);border-radius:5px;margin:9px 0 0;padding:7px 8px;line-height:1.45}.comment-source-quote{border-left:3px solid var(--line-strong);background:var(--panel-2);margin-top:9px;padding:8px}.comment-source-quote small{color:var(--muted)}.comment-source-quote pre{white-space:pre-wrap;font:inherit;margin:5px 0 0;font-size:12px;overflow:auto}.comment-post{border-bottom:1px solid var(--line);padding:8px 0}.comment-post:last-child{border-bottom:0}.comment-post-meta{justify-content:space-between;align-items:center;gap:8px;display:flex}.comment-post-meta>span,.comment-post-meta-end{align-items:center;gap:6px;display:inline-flex}.comment-post-meta strong{color:var(--text);font-size:var(--comment-meta-size)}.comment-post-meta small{color:var(--muted);font-size:var(--comment-badge-size)}.comment-markdown{overflow-wrap:anywhere;font-size:var(--comment-body-size);margin:4px 0 0;line-height:1.5}.comment-markdown>:first-child{margin-top:0}.comment-markdown>:last-child{margin-bottom:0}.comment-markdown p,.comment-markdown ul,.comment-markdown ol,.comment-markdown blockquote,.comment-markdown pre,.comment-markdown details,.comment-markdown-table-scroll{margin:7px 0}.comment-markdown h1,.comment-markdown h2,.comment-markdown h3,.comment-markdown h4,.comment-markdown h5,.comment-markdown h6{color:var(--text);font-size:var(--comment-body-size);border:0;margin:10px 0 6px;padding:0;line-height:1.35}.comment-markdown h1,.comment-markdown h2{font-size:calc(var(--comment-body-size) + 2px)}.comment-markdown ul,.comment-markdown ol{padding-left:20px}.comment-markdown li+li{margin-top:2px}.comment-markdown blockquote{border-left:3px solid var(--accent);background:var(--accent-soft);color:var(--muted);padding:5px 8px}.comment-markdown a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.comment-markdown-unavailable-link{color:var(--muted);text-underline-offset:2px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.comment-markdown code{border:1px solid var(--line);background:var(--panel-2);font-size:inherit;border-radius:4px;padding:1px 4px}.comment-markdown pre{border:1px solid var(--line);background:var(--panel-2);white-space:pre;border-radius:6px;max-width:100%;padding:9px;overflow:auto}.comment-markdown pre code{background:0 0;border:0;padding:0}.comment-markdown img{border-radius:6px;max-width:100%;height:auto;margin:7px 0;display:block}.comment-markdown details>summary{cursor:pointer;font-weight:650}.comment-markdown-table-scroll{border:1px solid var(--line-strong);border-radius:6px;width:100%;overflow-x:auto}.comment-markdown-table-scroll table{border-collapse:collapse;border-spacing:0;width:max-content;min-width:100%}.comment-markdown-table-scroll th,.comment-markdown-table-scroll td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);overflow-wrap:anywhere;text-align:left;vertical-align:top;white-space:normal;max-width:28ch;padding:5px 7px}.comment-markdown-table-scroll th:last-child,.comment-markdown-table-scroll td:last-child{border-right:0}.comment-markdown-table-scroll tr:last-child td{border-bottom:0}.comment-markdown-table-scroll th{background:var(--panel-2);font-weight:700}.comment-markdown .contains-task-list{padding-left:0;list-style:none}.comment-markdown .task-list-item{list-style:none}.comment-markdown .task-list-item>input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent-emphasis);vertical-align:-2px;margin:0 6px 0 0;padding:0}.comment-mermaid-shell{border:1px solid var(--line-strong);background:var(--panel);border-radius:7px;margin:8px 0;overflow:hidden}.comment-mermaid-toolbar{border-bottom:1px solid var(--line);background:var(--panel-2);min-height:29px;color:var(--muted);font-size:var(--comment-badge-size);letter-spacing:.03em;justify-content:space-between;align-items:center;gap:7px;padding:5px 7px;font-weight:700;display:flex}.comment-mermaid{min-height:120px;padding:10px;overflow:auto}.comment-mermaid svg{width:100%;min-width:420px;max-height:360px;margin:0 auto;display:block}.comment-mermaid-placeholder,.comment-mermaid-error{color:var(--muted);font-size:var(--comment-meta-size);padding:12px}.comment-mermaid-error{background:var(--warning);color:var(--warning-text)}.mermaid-expand-button{width:26px;height:24px;color:var(--muted);background:0 0;border-color:#0000;flex:none;place-items:center;padding:4px;display:grid}.mermaid-expand-button:hover,.mermaid-expand-button:focus-visible{border-color:var(--line-strong);background:var(--panel);color:var(--text)}.mermaid-expand-button svg{width:15px;height:15px}.mermaid-expanded-backdrop{z-index:1000;background:#0000006b;place-items:center;padding:clamp(10px,2vw,24px);display:grid;position:fixed;inset:0}.mermaid-expanded-view{border:1px solid var(--line-strong);background:var(--panel);width:min(1680px,100vw - clamp(20px,4vw,48px));min-width:0;height:min(1040px,100vh - clamp(20px,4vw,48px));min-height:0;color:var(--text);border-radius:11px;grid-template-rows:auto minmax(0,1fr);display:grid;overflow:hidden;box-shadow:0 24px 72px #0000007a}.mermaid-expanded-toolbar{border-bottom:1px solid var(--line);background:var(--panel-2);justify-content:space-between;align-items:center;gap:16px;min-height:48px;padding:7px 8px 7px 16px;display:flex}.mermaid-expanded-toolbar>strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.mermaid-expanded-actions,.mermaid-zoom-controls{align-items:center;gap:5px;display:flex}.mermaid-zoom-controls{border-right:1px solid var(--line);padding-right:5px}.mermaid-expanded-actions button{border-color:var(--line-strong);min-height:31px;color:var(--muted);background:0 0;justify-content:center;align-items:center;gap:5px;padding:5px 9px;font-size:11px;display:inline-flex}.mermaid-expanded-actions button:hover:not(:disabled),.mermaid-expanded-actions button.active,.mermaid-expanded-actions button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.mermaid-expanded-actions button:disabled{opacity:.45;cursor:default}.mermaid-expanded-actions button svg{width:15px;height:15px}.mermaid-expanded-actions .mermaid-expanded-close{width:32px;padding:5px}.mermaid-comments-toggle>span{background:var(--panel);min-width:17px;height:17px;color:var(--muted);border-radius:9px;place-items:center;padding:0 4px;font-size:9px;display:inline-grid}.mermaid-expanded-workspace{grid-template-columns:minmax(0,1fr);min-width:0;min-height:0;display:grid}.mermaid-expanded-view.has-rail .mermaid-expanded-workspace{grid-template-columns:minmax(0, 1fr) 6px var(--mermaid-review-rail-width,380px)}.mermaid-expanded-workspace.is-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.mermaid-rail-resize-handle{background:var(--panel-2)}.mermaid-expanded-canvas{overscroll-behavior:contain;background:radial-gradient(circle, color-mix(in srgb, var(--line) 42%, transparent) .7px, transparent .8px) 0 0 / 18px 18px, var(--bg);min-width:0;min-height:0;overflow:auto}.mermaid-expanded-canvas:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.mermaid-expanded-stage{place-items:center;width:max-content;min-width:100%;min-height:100%;padding:24px;display:grid}.mermaid-expanded-diagram{flex:none}.mermaid-expanded-diagram svg{display:block;width:100%!important;max-width:none!important;height:100%!important;max-height:none!important}.mermaid-expanded-error{border:1px solid var(--warning-line);background:var(--warning);max-width:680px;color:var(--warning-text);border-radius:8px;padding:16px;font-size:12px}.mermaid-review-rail{border-left:1px solid var(--line);background:var(--panel);min-width:0;min-height:0;overflow:hidden}.mermaid-comments-mode,.mermaid-reference-peek{grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0;display:grid}.mermaid-comments-mode>header{border-bottom:1px solid var(--line);background:var(--panel-2);justify-content:space-between;align-items:center;gap:8px;min-height:42px;padding:8px 12px;font-size:12px;display:flex}.mermaid-comments-mode>header>span{border:1px solid var(--line);min-width:20px;height:20px;color:var(--muted);border-radius:10px;place-items:center;font-size:10px;display:inline-grid}.mermaid-comments-scroll{overscroll-behavior:contain;min-height:0;padding:10px;overflow:auto}.mermaid-diagram-comments{gap:10px;display:grid}.mermaid-diagram-comments>.comment-thread{border:1px solid var(--line);background:var(--panel);border-radius:8px}.mermaid-diagram-comments .inline-comment-composer--line{width:100%;margin:0}.mermaid-comments-empty{color:var(--muted);text-align:center;margin:20px 8px 8px;font-size:12px;line-height:1.5}.mermaid-comment-action{justify-content:center;justify-self:stretch;align-items:center;gap:6px;min-height:34px;font-size:12px;display:inline-flex}.mermaid-comment-action svg{width:14px;height:14px}.mermaid-reference-peek{grid-template-rows:auto minmax(0,1fr) auto}.mermaid-reference-peek>header{border-bottom:1px solid var(--line);background:var(--panel-2);padding:10px 12px}.mermaid-reference-peek .button--back{min-height:24px;margin-bottom:8px;padding:0;font-size:11px;display:block}.mermaid-reference-location{align-items:center;gap:8px;min-width:0;display:flex}.mermaid-reference-location>svg{flex:none;width:17px;height:17px}.mermaid-reference-location>span{gap:2px;min-width:0;display:grid}.mermaid-reference-location strong{font:650 11px var(--mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mermaid-reference-location small{color:var(--muted);font:10px var(--mono)}.mermaid-reference-source{background:var(--bg);min-height:0;overflow:auto}.mermaid-reference-source>p{color:var(--muted);margin:18px;font-size:12px;line-height:1.5}.mermaid-reference-source pre{min-width:max-content;font:11px/1.65 var(--mono);margin:0;padding:10px 0}.mermaid-reference-source pre>span{grid-template-columns:5ch minmax(max-content,1fr);display:grid}.mermaid-reference-source pre>span>span{color:var(--muted);text-align:right;-webkit-user-select:none;user-select:none;padding:0 10px 0 4px}.mermaid-reference-source pre code{border-left:1px solid var(--line);color:var(--text);white-space:pre;padding:0 14px 0 10px}.mermaid-reference-source pre>span.is-referenced{background:color-mix(in srgb, var(--accent) 13%, transparent)}.mermaid-reference-source pre>span.is-referenced code{border-left:2px solid var(--accent);padding-left:9px}.mermaid-reference-highlight .shiki{min-width:max-content}.mermaid-reference-highlight .shiki code{color:inherit;border:0;padding:0;display:block}.mermaid-reference-highlight .mermaid-reference-code-line{white-space:pre;min-width:100%;min-height:1.65em;padding-right:14px;display:inline-block}.mermaid-reference-highlight .mermaid-reference-code-line:before{border-right:1px solid var(--line);width:5ch;color:var(--muted);content:attr(data-line);text-align:right;-webkit-user-select:none;user-select:none;margin-right:10px;padding-right:10px;display:inline-block}.mermaid-reference-highlight .mermaid-reference-code-line.is-referenced{background:color-mix(in srgb, var(--accent) 13%, transparent)}.mermaid-reference-highlight .mermaid-reference-code-line.is-referenced:before{border-right:2px solid var(--accent);padding-right:9px}:root[data-theme=dark] .mermaid-reference-highlight .shiki,:root[data-theme=dark] .mermaid-reference-highlight .shiki span{background-color:var(--shiki-dark-bg)!important;color:var(--shiki-dark)!important}.mermaid-reference-peek>footer{border-top:1px solid var(--line);background:var(--panel-2);justify-content:flex-end;padding:10px 12px;display:flex}.mermaid-reference-peek>footer button{font-size:11px}@media (width<=820px){.mermaid-expanded-view.has-rail .mermaid-expanded-workspace{grid-template-columns:minmax(0,1fr);position:relative}.mermaid-rail-resize-handle{display:none}.mermaid-review-rail{z-index:2;width:min(var(--mermaid-review-rail-width,380px), 100%);box-shadow:-12px 0 28px var(--shadow-medium);position:absolute;inset:0 0 0 auto}.mermaid-expanded-toolbar{padding-left:10px}.mermaid-expanded-toolbar>strong{display:none}}@media (prefers-color-scheme:dark){:root[data-theme=system] .mermaid-reference-highlight .shiki,:root[data-theme=system] .mermaid-reference-highlight .shiki span{background-color:var(--shiki-dark-bg)!important;color:var(--shiki-dark)!important}}.comment-reply-composer{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:7px;margin-top:9px;display:grid}.comment-reply-composer textarea{resize:vertical;min-height:34px}.comment-edit-composer textarea{min-height:76px}.comment-edit-composer{gap:7px;margin-top:7px;display:grid}.comment-edit-actions{justify-content:flex-end}.comment-actions{border-top:1px solid var(--line);flex-wrap:wrap;margin-top:9px;padding-top:8px}.comment-actions button{padding:5px 7px}.comment-action-feedback{color:var(--accent);font-size:var(--comment-meta-size)}.comment-action-feedback--header{white-space:nowrap;align-self:center}.comment-more{flex:none;display:inline-flex;position:relative}.comment-more-trigger{width:28px;height:28px;color:var(--muted);font:700 18px/1 var(--mono);background:0 0;border-color:#0000;place-items:center;padding:0 0 7px;display:grid}.comment-more-trigger:hover,.comment-more-trigger[aria-expanded=true]{border-color:var(--line);background:var(--panel-2);color:var(--text)}.comment-more-menu{z-index:30;border:1px solid var(--line-strong);background:var(--panel);min-width:142px;box-shadow:0 7px 18px var(--shadow-large);border-radius:7px;margin:0;padding:4px;display:grid;position:fixed;inset:auto}.comment-more-menu button{color:var(--text);text-align:left;font-size:var(--comment-ui-size);background:0 0;border-color:#0000;justify-content:flex-start;padding:7px 9px}.comment-more-menu button:hover{background:var(--panel-2)}.comment-more-menu button.is-danger{color:var(--danger)}.badge{background:var(--accent-soft);color:var(--accent);font-size:var(--comment-badge-size);border-radius:10px;padding:2px 6px;display:inline-flex}.badge--resolved{background:var(--panel-2);color:var(--muted)}.badge--outdated,.badge--error{background:var(--danger-soft);color:var(--danger)}.empty-state{text-align:center;color:var(--muted);padding:28px 8px;font-size:12px}.fatal-state{align-content:center;place-items:center;min-height:100vh;display:grid}.fatal-state h1{font:800 42px var(--mono);margin:0}.pull-request-list-screen{flex-direction:column;height:100dvh;min-height:0;display:flex;overflow:hidden}.pull-request-list-header{border-bottom:1px solid var(--header-border);background:var(--header-bg);min-height:76px;color:var(--header-text);flex:none;align-items:center;gap:20px;padding:12px max(20px,50vw - 660px);display:flex}.pull-request-list-header h1{margin:0;font-size:18px;line-height:1.25}.pull-request-list-header p{color:var(--header-muted);margin:3px 0 0;font-size:12px}.pull-request-list-content{width:100%;max-width:1360px;min-height:0;margin:0 auto;padding:24px 20px 40px;overflow-y:auto}.pull-request-list-status{color:var(--muted);text-align:center;padding:72px 20px}.pull-request-list-filters{justify-content:flex-end;align-items:center;gap:14px;margin-bottom:10px;display:flex}.pull-request-status-refresh{min-height:30px;padding:4px 10px;font-size:12px}.pull-request-status-refresh-result{border:1px solid color-mix(in srgb, var(--success) 45%, var(--line));background:color-mix(in srgb, var(--success) 8%, var(--panel));color:var(--success);border-radius:6px;margin:0 0 10px;padding:9px 12px;font-size:12px}.pull-request-status-refresh-result--error{border-color:color-mix(in srgb, var(--danger) 45%, var(--line));background:color-mix(in srgb, var(--danger) 8%, var(--panel));color:var(--danger)}.pull-request-status-refresh-result details{margin-top:5px}.pull-request-status-refresh-result ul{margin:5px 0 0;padding-left:20px}.pull-request-list-filter{min-height:30px;color:var(--muted);cursor:pointer;align-items:center;gap:8px;font-size:12px;display:flex}.pull-request-list-filter:hover{color:var(--text)}.pull-request-list-filter>input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);flex:0 0 15px;margin:0;padding:0}.pull-request-list{border:1px solid var(--line);background:var(--panel);box-shadow:0 1px 2px var(--shadow-small);border-radius:10px;overflow:hidden}.pull-request-list-columns,.pull-request-row{grid-template-columns:minmax(180px,1fr) minmax(260px,2fr) minmax(290px,1.5fr) minmax(100px,.6fr) minmax(100px,.6fr);align-items:center;column-gap:18px;display:grid}.pull-request-list-columns{border-bottom:1px solid var(--line);background:var(--panel-2);min-height:34px;color:var(--muted);letter-spacing:.05em;text-transform:uppercase;padding:0 18px;font-size:10px;font-weight:700}.pull-request-row{min-height:76px;color:inherit;padding:12px 18px;text-decoration:none}.pull-request-row+.pull-request-row{border-top:1px solid var(--line)}.pull-request-row:hover{background:var(--accent-soft)}.pull-request-row__identity{align-items:baseline;gap:8px;min-width:0;font-size:12px;display:flex}.pull-request-row__repository{min-width:0;color:var(--muted);font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pull-request-row__number{color:var(--accent);font-family:var(--mono);flex:none;font-weight:700}.pull-request-status{border:1px solid var(--line);background:var(--panel-2);color:var(--muted);font:700 9px/1.4 var(--mono);letter-spacing:.02em;border-radius:999px;flex:none;padding:2px 7px}.pull-request-status--open{border-color:color-mix(in srgb, var(--success) 45%, var(--line));background:color-mix(in srgb, var(--success) 10%, var(--panel));color:var(--success)}.pull-request-status--closed{border-color:color-mix(in srgb, var(--danger) 45%, var(--line));background:color-mix(in srgb, var(--danger) 9%, var(--panel));color:var(--danger)}.pull-request-status--merged{border-color:color-mix(in srgb, var(--done) 45%, var(--line));background:color-mix(in srgb, var(--done) 10%, var(--panel));color:var(--done)}.pull-request-row__title{overflow-wrap:anywhere;white-space:normal;min-width:0;font-size:14px;line-height:1.35}.pull-request-row__counts{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pull-request-count{border:1px solid var(--line);background:var(--panel-2);min-width:76px;color:var(--muted);font:600 10px/1.4 var(--mono);text-align:center;white-space:nowrap;border-radius:999px;padding:3px 7px}.pull-request-count--unresolved{border-color:color-mix(in srgb, var(--attention) 45%, var(--line));background:color-mix(in srgb, var(--attention) 12%, var(--panel));color:var(--attention)}.pull-request-count--resolved{color:var(--success)}.pull-request-count--walkthrough{color:var(--done)}.pull-request-count--structure{color:var(--info)}.pull-request-row__date{color:var(--muted);gap:3px;font-size:11px;display:grid}.pull-request-row__date>span{display:none}.pull-request-row__date time{white-space:nowrap}.pull-request-row__date--updated time{color:var(--text);font-weight:600}.pull-request-list-empty{border:1px dashed var(--line-strong);background:var(--panel);text-align:center;border-radius:12px;justify-items:center;max-width:680px;margin:64px auto;padding:54px 32px;display:grid}.pull-request-list-empty h2{margin:18px 0 6px;font-size:18px}.pull-request-list-empty p{color:var(--muted);margin:0;font-size:13px}.pull-request-list-empty code{color:var(--text);font-size:inherit}.pull-request-pagination{color:var(--muted);justify-content:center;align-items:center;gap:16px;padding:18px 0 0;font-size:12px;display:flex}.pull-request-pagination .button--quiet{min-width:72px}@media (width<=1050px){.pull-request-list-columns{display:none}.pull-request-row{grid-template-columns:minmax(180px,.8fr) minmax(280px,1.5fr);row-gap:10px}.pull-request-row__counts{grid-column:1/-1}.pull-request-row__date{grid-area:3}.pull-request-row__date>span{display:inline}}@media (width<=640px){.pull-request-list-header{padding-inline:16px}.pull-request-list-content{padding:16px 12px 32px}.pull-request-list-filters{flex-direction:column-reverse;align-items:flex-end;gap:8px}.pull-request-row{grid-template-columns:1fr;padding:14px}.pull-request-row__title,.pull-request-row__counts,.pull-request-row__date{grid-area:auto/1}.pull-request-row__title{white-space:normal}.pull-request-row__counts{flex-wrap:wrap}}@media (prefers-color-scheme:dark){:root:not([data-theme]),:root[data-theme=system]{--bg:#0d1117;--panel:#161b22;--panel-2:#21262d;--line:#30363d;--line-strong:#484f58;--text:#e6edf3;--muted:#8b949e;--accent:#58a6ff;--accent-emphasis:#1f6feb;--accent-soft:#1f2d3d;--accent-contrast:#fff;--tab-accent:#58a6ff;--focus:#58a6ff;--danger:#ff7b72;--danger-soft:#3c1e22;--warning:#332b00;--warning-text:#e3b341;--warning-line:#6e5a1c;--search-match-bg:#7c5c12;--search-match-text:#fff2bd;--success:#3fb950;--attention:#d29922;--done:#d2a8ff;--info:#58a6ff;--file-tree-active-text:#cae8ff;--header-bg:#010409;--header-border:#21262d;--header-text:#f0f6fc;--header-muted:#8b949e;--header-control-bg:#161b22;--header-control-border:#484f58;--header-control-hover:#21262d;--header-active-bg:#f0f6fc;--header-active-text:#1f2328;--header-badge-bg:#1f6feb;--header-badge-text:#fff;--shadow-small:#01040966;--shadow-medium:#01040980;--shadow-large:#010409a3}}@media (width<=850px){.topbar{gap:10px;padding:0 10px}.pr-heading{flex-basis:150px;min-width:120px}.commit-range-trigger{width:34vw;min-width:240px}.workspace{grid-template-columns:min(var(--sidebar-width,280px), 280px) 6px minmax(0, 1fr);overflow:hidden}.walkthrough-markdown{padding-inline:28px}}@media (width<=800px){.pr-heading{display:none}.review-scope-bar{flex:auto}.review-scope-commits{flex:auto;min-width:0}.commit-range-picker{min-width:0}.commit-range-trigger{width:100%;min-width:0}}@media (width<=560px){.brand strong{display:none}.commit-range-trigger{width:100%;min-width:0}.diff-style-modes{width:96px}.workspace{grid-template-columns:min(var(--sidebar-width,280px), 280px) 6px minmax(500px, 1fr);overflow:auto hidden}.main-view.two-pane{min-width:566px;overflow-x:hidden}.review-scope-bar .segmented button,.review-scope-display .segmented button,.diff-style-modes button{min-width:44px;padding-inline:5px}}.review-tree-structure-list,.review-tree-walkthrough-list{display:grid}.review-tree-structure-list .review-tree-item,.review-tree-walkthrough-list .review-tree-item{padding-left:28px}.review-tree-structure-icon{color:var(--done)}.structure-viewer{min-width:0;height:calc(100% - 40px);min-height:0;color:var(--text);background:radial-gradient(circle at 14% 2%, color-mix(in srgb, var(--attention) 9%, transparent), transparent 32rem), var(--bg);flex-direction:column;display:flex;position:relative;overflow:hidden;container-type:inline-size}.structure-header{z-index:12;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--panel) 92%, transparent);flex:none;align-items:center;gap:8px;min-height:40px;padding:5px 8px 5px 12px;display:flex;position:relative}.structure-header-main{flex:auto;align-items:center;gap:7px;min-width:0;display:flex}.structure-header h2{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:15px;line-height:1.25;overflow:hidden}.structure-kicker{color:var(--muted);font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;flex:none;font-size:9px}.structure-source-oid{border:1px solid var(--line);color:var(--muted);background:var(--bg);font:8px/1.2 var(--mono);border-radius:4px;flex:none;padding:2px 5px}.structure-scope-details{flex:none;position:static}.structure-scope-details[open]{z-index:14}.structure-scope-details>summary{border:1px solid var(--line);color:var(--muted);background:var(--bg);font:9px/1.35 var(--mono);cursor:pointer;border-radius:999px;padding:2px 6px;list-style:none}.structure-scope-details>summary::-webkit-details-marker{display:none}.structure-scope-details[open]>summary,.structure-scope-details>summary:hover{border-color:var(--line-strong);color:var(--text)}.structure-scope-details>p{z-index:15;border:1px solid var(--line-strong);width:min(560px,100% - 24px);max-height:180px;color:var(--muted);background:var(--panel);box-shadow:0 10px 24px var(--shadow-large);white-space:pre-wrap;border-radius:8px;margin:0;padding:10px 11px;font-size:11px;line-height:1.45;position:absolute;top:calc(100% + 8px);right:12px;overflow:auto}.structure-header-side{flex:none;justify-content:flex-end;align-items:center;gap:4px;min-width:0;display:flex}.structure-delete,.structure-header-action,.structure-toolbar button,.structure-expand-relations{border:1px solid var(--line);min-height:26px;color:var(--text);background:var(--panel);cursor:pointer;border-radius:6px;font-size:11px}.structure-delete,.structure-header-action{white-space:nowrap;flex:none;padding:3px 7px}.structure-delete:hover,.structure-header-action:hover,.structure-toolbar button:hover,.structure-expand-relations:hover{border-color:var(--line-strong);background:var(--panel-2)}.structure-delete.danger{color:var(--danger)}.structure-delete:disabled{opacity:.6;cursor:wait}.structure-export-menu{flex:none;position:static}.structure-export-menu>summary{align-items:center;gap:4px;list-style:none;display:flex}.structure-export-menu>summary::-webkit-details-marker{display:none}.structure-export-menu>summary[aria-disabled=true]{opacity:.6;cursor:wait}.structure-export-menu[open]>summary{border-color:var(--accent);background:var(--accent-soft)}.structure-export-popover{z-index:16;border:1px solid var(--line-strong);background:var(--panel);width:min(272px,100% - 16px);box-shadow:0 10px 24px var(--shadow-large);border-radius:8px;gap:5px;padding:7px;display:grid;position:absolute;top:calc(100% + 6px);right:8px}.structure-export-popover>button{border-color:var(--line);color:var(--text);background:var(--panel);text-align:left;grid-template-columns:42px minmax(0,1fr);align-items:baseline;gap:6px;padding:7px 8px;display:grid}.structure-export-popover>button:hover{border-color:var(--accent);background:var(--accent-soft)}.structure-export-popover>button strong{font:700 11px/1.3 var(--mono)}.structure-export-popover>button span,.structure-export-popover>p{color:var(--muted);font-size:10px;line-height:1.4}.structure-export-popover>p{margin:2px 3px 1px}.structure-body{flex:auto;grid-template-columns:minmax(0,1fr);min-height:0;display:grid;position:relative;overflow:hidden}.structure-canvas-shell{border-right:1px solid var(--line);background-color:var(--bg);background-image:linear-gradient(color-mix(in srgb, var(--line) 36%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--line) 36%, transparent) 1px, transparent 1px);background-size:24px 24px;min-width:0;min-height:0;position:relative;overflow:hidden}.structure-toolbar{z-index:10;border:1px solid var(--line-strong);background:color-mix(in srgb, var(--panel-2) 94%, transparent);width:max-content;max-width:calc(100% - 16px);min-height:34px;box-shadow:0 5px 16px var(--shadow-medium);scrollbar-width:thin;border-radius:8px;align-items:center;gap:6px;padding:3px 4px;display:flex;position:absolute;top:8px;left:8px;overflow-x:auto}.structure-toolbar-group{flex:none;align-items:center;gap:3px;display:flex}.structure-toolbar-group>span{color:var(--muted);white-space:nowrap;padding:0 3px;font-size:10px}.structure-toolbar button{white-space:nowrap;min-height:26px;padding:3px 6px}.structure-toolbar button.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.structure-status{z-index:11;border:1px solid var(--warning-line);max-width:min(560px,100% - 20px);color:var(--warning-text);background:var(--warning);box-shadow:0 5px 16px var(--shadow-medium);border-radius:6px;padding:6px 9px;font-size:11px;position:absolute;bottom:10px;left:10px}.structure-canvas{overscroll-behavior:contain;cursor:grab;touch-action:none;width:100%;height:100%;min-height:360px;position:relative;overflow:hidden}.structure-canvas:active{cursor:grabbing}.structure-world{transform-origin:0 0;position:absolute;top:0;left:0}.structure-edges{pointer-events:none;position:absolute;inset:0;overflow:visible}.structure-edges marker path{fill:context-stroke}.structure-edge{--structure-edge-theme:color-mix(in srgb, var(--muted) 52%, var(--line));--structure-edge-active:var(--accent);fill:none;stroke:var(--structure-edge-theme);stroke-width:1.4px;opacity:.46;vector-effect:non-scaling-stroke}.structure-edge[data-source-change-kind=added]{--structure-edge-theme:var(--success);--structure-edge-active:var(--success);opacity:.7}.structure-edge[data-source-change-kind=modified]{--structure-edge-theme:var(--attention);--structure-edge-active:var(--attention);opacity:.7}.structure-edge[data-source-change-kind=deleted]{--structure-edge-theme:var(--danger);--structure-edge-active:var(--danger);opacity:.7}.structure-edge[data-source-change-kind=renamed]{--structure-edge-theme:var(--done);--structure-edge-active:var(--done);opacity:.7}.structure-edge[data-source-change-kind=type-changed]{--structure-edge-theme:var(--info);--structure-edge-active:var(--info);opacity:.7}.structure-edge[data-source-change-kind=mixed]{--structure-edge-theme:var(--attention);--structure-edge-active:var(--attention);opacity:.7}.structure-edge.focused{stroke:var(--structure-edge-active);stroke-width:2.4px;opacity:.88}.structure-edge.selected{stroke:var(--structure-edge-active);stroke-width:3.2px;opacity:1}.structure-edge.muted{opacity:.14}.structure-node{z-index:2;box-sizing:border-box;--structure-node-theme:var(--accent);--structure-node-outline:var(--line-strong);--structure-node-active-outline:var(--structure-node-theme);cursor:grab;-webkit-user-select:none;user-select:none;contain:layout paint style;border-radius:9px;width:228px;height:112px;position:absolute}.structure-node[data-source-change-kind=added]{--structure-node-theme:var(--success);--structure-node-outline:color-mix(in srgb, var(--success) 54%, var(--line-strong))}.structure-node[data-source-change-kind=modified]{--structure-node-theme:var(--attention);--structure-node-outline:color-mix(in srgb, var(--attention) 54%, var(--line-strong))}.structure-node[data-source-change-kind=deleted]{--structure-node-theme:var(--danger);--structure-node-outline:color-mix(in srgb, var(--danger) 54%, var(--line-strong))}.structure-node[data-source-change-kind=renamed]{--structure-node-theme:var(--done);--structure-node-outline:color-mix(in srgb, var(--done) 54%, var(--line-strong))}.structure-node[data-source-change-kind=type-changed]{--structure-node-theme:var(--info);--structure-node-outline:color-mix(in srgb, var(--info) 54%, var(--line-strong))}.structure-node-focus{overscroll-behavior:contain;border:1px solid var(--structure-node-outline);width:100%;height:100%;color:inherit;background:var(--panel);font:inherit;text-align:left;cursor:grab;box-shadow:0 5px 12px var(--shadow-small);touch-action:pan-y;scrollbar-width:thin;border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;padding:6px 8px;display:flex;overflow:auto}.structure-node-focus:focus-visible{outline:2px solid var(--focus);outline-offset:-3px}.structure-node:hover .structure-node-focus,.structure-node.neighboring .structure-node-focus{border-color:var(--structure-node-active-outline)}.structure-node.focused .structure-node-focus{border:2px solid var(--structure-node-active-outline);background:color-mix(in srgb, var(--structure-node-theme) 9%, var(--panel));box-shadow:0 0 0 3px color-mix(in srgb, var(--structure-node-theme) 14%, transparent)}.structure-node.edge-endpoint .structure-node-focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 20%, transparent)}.structure-node.notation-class .structure-node-focus,.structure-node.notation-interface .structure-node-focus{border-radius:2px}.structure-node.notation-class .structure-node-description,.structure-node.notation-interface .structure-node-description{border-top:1px solid var(--structure-node-outline);width:100%;padding-top:3px}.structure-node.notation-interface .structure-node-focus{border-style:dashed}.structure-node.notation-database .structure-node-focus{border-radius:50%/14%;padding:21px 10px 6px}.structure-node.notation-database>.structure-source.compact{top:8px;right:8px}.structure-node.notation-database .structure-node-focus>.structure-source-identity{min-height:14px}.structure-node.notation-database:before{z-index:3;border-bottom:1px solid var(--structure-node-outline);content:"";pointer-events:none;border-radius:50%;height:20px;position:absolute;top:1px;left:1px;right:1px}.structure-node.notation-database.focused:before,.structure-node.notation-database.neighboring:before{border-bottom-color:var(--structure-node-active-outline)}.structure-node.notation-component .structure-node-focus{box-shadow:inset 7px 0 color-mix(in srgb, var(--structure-node-theme) 18%, transparent), 0 5px 12px var(--shadow-small);border-radius:3px;padding-left:22px}.structure-node.notation-component:before,.structure-node.notation-component:after{z-index:3;border:1px solid var(--structure-node-outline);background:var(--panel);content:"";pointer-events:none;width:13px;height:8px;position:absolute;left:2px}.structure-node.notation-component:before{top:36px}.structure-node.notation-component:after{top:52px}.structure-node.notation-external{background:var(--structure-node-outline);clip-path:polygon(9% 0,91% 0,100% 50%,91% 100%,9% 100%,0 50%);padding:2px}.structure-node.notation-external .structure-node-focus{clip-path:polygon(9% 0,91% 0,100% 50%,91% 100%,9% 100%,0 50%);box-shadow:none;border:0;border-radius:0;padding:6px 18px}.structure-node.notation-external>.structure-source.compact{top:8px;right:18px}.structure-node.notation-external.focused,.structure-node.notation-external.neighboring{background:var(--structure-node-active-outline)}.structure-node.notation-concept,.structure-node.notation-concept .structure-node-focus{border-radius:56px}.structure-node.notation-concept .structure-node-focus{padding:12px 24px 6px}.structure-node.notation-concept>.structure-source.compact{top:12px;right:24px}.structure-node.origin .structure-node-focus{box-shadow:inset 4px 0 color-mix(in srgb, var(--accent) 72%, transparent), 0 5px 12px var(--shadow-small)}.structure-node.origin.focused .structure-node-focus{box-shadow:inset 4px 0 color-mix(in srgb, var(--accent) 84%, transparent), 0 0 0 3px color-mix(in srgb, var(--structure-node-theme) 14%, transparent)}.structure-node-title{width:100%;min-width:0;display:block}.structure-node-title-text{min-width:0;font-family:var(--mono);overflow-wrap:anywhere;word-break:break-word;font-size:11px;font-weight:700;line-height:1.32;display:block;overflow:visible}.structure-node-description{width:100%;min-width:0;color:var(--muted);text-align:left;white-space:pre-wrap;font-size:9px;line-height:1.42;display:block;overflow:visible}.structure-source{border:1px solid var(--line);max-width:100%;min-height:26px;color:var(--accent);background:var(--panel);font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-radius:5px;align-items:center;gap:5px;padding:3px 7px;font-size:9px;display:inline-flex;overflow:hidden}.structure-source:hover{border-color:var(--accent)}.structure-source.compact{z-index:3;border-radius:7px;place-items:center;width:28px;height:24px;min-height:0;padding:0;font-size:8px;display:grid;position:absolute;top:6px;right:6px}.structure-edge-label{z-index:1;--structure-edge-label-active-outline:var(--accent);align-items:center;gap:3px;display:flex;position:absolute;transform:translate(-50%,-50%)}.structure-edge-label:has(.structure-edge-sources[open]){z-index:8}.structure-edge-label[data-source-change-kind=added]{--structure-edge-label-active-outline:var(--success)}.structure-edge-label[data-source-change-kind=modified]{--structure-edge-label-active-outline:var(--attention)}.structure-edge-label[data-source-change-kind=deleted]{--structure-edge-label-active-outline:var(--danger)}.structure-edge-label[data-source-change-kind=renamed]{--structure-edge-label-active-outline:var(--done)}.structure-edge-label[data-source-change-kind=type-changed]{--structure-edge-label-active-outline:var(--info)}.structure-edge-label[data-source-change-kind=mixed]{--structure-edge-label-active-outline:var(--attention)}.structure-edge-select{border:1px solid var(--structure-edge-label-active-outline);color:var(--structure-edge-label-active-outline);background:color-mix(in srgb, var(--panel) 92%, transparent);box-shadow:0 2px 5px var(--shadow-small);overflow-wrap:anywhere;text-align:left;white-space:normal;border-radius:999px;flex:none;align-items:center;gap:3px;padding:3px 3px 3px 8px;font-size:10px;line-height:1.35;display:flex}.structure-edge-select.selected{background:color-mix(in srgb, var(--accent) 14%, var(--panel));box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent)}.structure-edge-label-text{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;flex:auto;min-width:0;display:-webkit-box;overflow:hidden}.structure-edge-label.crowded .structure-edge-select{border-style:dashed}.structure-edge-label.muted{opacity:.28}.structure-edge-label .structure-source.compact{background:var(--panel);border-radius:50%;width:26px;height:26px;position:static}.structure-edge-sources{flex:none;position:relative}.structure-edge-sources[open]{z-index:6}.structure-edge-sources>summary{list-style:none;position:relative}.structure-edge-sources>summary::-webkit-details-marker{display:none}.structure-edge-source-count{border:1px solid var(--panel);min-width:13px;height:13px;color:var(--panel);background:var(--accent);font-family:var(--mono);border-radius:999px;place-items:center;padding:0 2px;font-size:7px;line-height:1;display:grid;position:absolute;bottom:-4px;right:-4px}.structure-edge-source-menu{z-index:7;border:1px solid var(--line-strong);background:var(--panel);width:min(300px,42vw);max-height:180px;box-shadow:0 10px 24px var(--shadow-large);border-radius:7px;gap:5px;padding:7px;display:grid;position:absolute;top:calc(100% + 5px);right:0;overflow:auto}.structure-edge-source-menu .structure-source{width:100%}.structure-source-identity{flex:none;align-items:center;gap:2px;display:inline-flex}.structure-source-identity>.tree-entry-icon{flex-basis:14px;width:14px;height:14px}.structure-source-name{max-width:116px;color:var(--muted);font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:600;line-height:1.2;display:block;overflow:hidden}.structure-node-focus>.structure-source-identity{align-items:flex-end;width:calc(100% - 30px);min-width:0;max-width:none;min-height:24px}.structure-node-focus>.structure-source-identity .structure-source-name{flex:auto;min-width:0;max-width:none}.structure-source-identity>.file-change-icon,.structure-source-identity>.file-change-icon svg{width:12px;height:12px}.structure-source-count,.structure-source-change-aggregate{min-width:17px;height:14px;color:var(--muted);background:var(--bg-subtle);font-family:var(--mono);border-radius:999px;place-items:center;padding:0 3px;font-size:8px;font-weight:700;line-height:1;display:inline-grid}.structure-source-change-aggregate{color:var(--attention)}.structure-canvas-status{z-index:4;border:1px solid color-mix(in srgb, var(--line) 72%, transparent);max-width:min(320px,100% - 220px);color:var(--muted);background:color-mix(in srgb, var(--panel) 88%, transparent);box-shadow:0 2px 7px var(--shadow-small);font-family:var(--mono);pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:7px;gap:2px;padding:6px 8px;font-size:9px;line-height:1.35;display:grid;position:absolute;top:50px;left:10px}.structure-canvas-status strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.structure-minimap{z-index:4;border:1px solid color-mix(in srgb, var(--line-strong) 74%, transparent);background:color-mix(in srgb, var(--panel) 88%, transparent);width:164px;height:98px;box-shadow:0 3px 9px var(--shadow-small);pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:7px;position:absolute;bottom:10px;right:10px;overflow:hidden}.structure-minimap circle{fill:color-mix(in srgb, var(--muted) 64%, var(--line))}.structure-minimap circle.focused{fill:var(--accent)}.structure-minimap-viewport{fill:color-mix(in srgb, var(--accent) 10%, transparent);stroke:color-mix(in srgb, var(--accent) 72%, transparent);stroke-width:1px;vector-effect:non-scaling-stroke}@container (width<=760px){.structure-canvas{min-height:0}}
|