@a9n-shoji/rvw 0.7.0 → 0.8.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 +20 -0
- package/README.md +10 -3
- package/dist/cli-THIRD_PARTY_NOTICES.txt +1 -1
- package/dist/cli.mjs +325 -223
- package/dist/cli.mjs.map +4 -4
- package/dist/web/assets/DocumentViewer-CLt6W3yV.js +1420 -0
- package/dist/web/assets/{StructureViewer-CXtsUfYG.js → StructureViewer-H6GjgwjT.js} +1 -1
- package/dist/web/assets/{WalkthroughViewer-y-grnBAx.js → WalkthroughViewer-JkLyJ0Rz.js} +1 -1
- package/dist/web/assets/index--jtTJT6K.js +11 -0
- package/dist/web/assets/index-D2onU0ZK.css +1 -0
- package/dist/web/index.html +2 -2
- package/migrations/021_walkthrough_updated_at.sql +5 -0
- package/migrations/022_pull_request_approval_count.sql +2 -0
- package/package.json +3 -3
- package/skills/rvw-review-compose/SKILL.md +23 -15
- package/skills/rvw-review-compose/references/review-composition.md +19 -18
- package/skills/rvw-walkthrough/SKILL.md +24 -2
- package/dist/web/assets/DocumentViewer-D_PY7MU3.js +0 -1420
- package/dist/web/assets/index-CbUV8NfH.css +0 -1
- package/dist/web/assets/index-zyXQjX9Z.js +0 -11
|
@@ -0,0 +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;--reference-context:#386b73;--reference-context-soft:#e9f1f2;--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;--reference-context:#78b6bd;--reference-context-soft:#1c3034;--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-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.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}.document-tabs-shell.reference-display-active{border-bottom-color:color-mix(in srgb, var(--reference-context) 52%, var(--line-strong))}.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}.reference-display-control{border-left:1px solid var(--line);flex:none;align-items:center;padding:0 6px;display:flex;position:relative}.reference-display-chip{border:1px solid color-mix(in srgb, var(--reference-context) 42%, var(--line));background:var(--reference-context-soft);min-height:24px;color:var(--reference-context);white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:750}.reference-display-chip:hover,.reference-display-chip:focus-visible,.reference-display-chip[aria-expanded=true]{border-color:color-mix(in srgb, var(--reference-context) 68%, var(--line));background:color-mix(in srgb, var(--reference-context) 15%, var(--panel));outline:none}.reference-display-chip:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--focus) 38%, transparent)}.reference-display-tooltip{z-index:9;border:1px solid var(--line-strong);background:var(--text);width:max-content;max-width:min(270px,100vw - 24px);box-shadow:0 5px 16px var(--shadow-medium);color:var(--panel);border-radius:5px;padding:5px 7px;font-size:10px;line-height:1.4;display:none;position:absolute;top:calc(100% + 5px);right:2px}.reference-display-control:hover .reference-display-tooltip,.reference-display-control:focus-within .reference-display-tooltip{display:block}.reference-display-popover{z-index:10;border:1px solid color-mix(in srgb, var(--reference-context) 38%, var(--line-strong));background:var(--panel);width:auto;max-width:370px;max-height:min(460px,100vh - 128px);box-shadow:0 10px 30px var(--shadow-medium);color:var(--text);border-radius:8px;outline:none;gap:10px;margin-left:auto;padding:11px;display:grid;position:absolute;top:calc(100% + 5px);left:6px;right:6px;overflow:auto}.reference-display-popover:focus-visible{border-color:color-mix(in srgb, var(--focus) 62%, var(--line))}.reference-display-popover-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.reference-display-popover-heading>strong{font-size:12px}.reference-display-popover-heading>button{width:24px;height:24px;color:var(--muted);background:0 0;border:0;place-items:center;padding:0;font-size:18px;line-height:1;display:grid}.reference-display-popover-heading>button:hover,.reference-display-popover-heading>button:focus-visible{background:var(--panel-2);color:var(--text)}.reference-display-popover dl{gap:8px;margin:0;display:grid}.reference-display-popover dl>div{border:1px solid var(--line);background:color-mix(in srgb, var(--reference-context) 4%, var(--panel));border-radius:6px;gap:4px;padding:8px;display:grid}.reference-display-popover dt{color:var(--muted);font-size:10px;font-weight:750}.reference-display-popover dd{gap:3px;margin:0;font-size:11px;line-height:1.4;display:grid}.reference-display-popover code{overflow-wrap:anywhere;color:var(--muted);font-size:9px}.reference-display-target-status{color:var(--muted);margin:0;font-size:10px;line-height:1.4}.reference-display-return-action{border-color:color-mix(in srgb, var(--reference-context) 55%, var(--line));background:var(--reference-context-soft);min-height:30px;color:var(--reference-context);justify-self:start;font-size:11px;font-weight:750}.reference-display-return-action:hover:not(:disabled),.reference-display-return-action:focus-visible:not(:disabled){border-color:var(--reference-context);background:color-mix(in srgb, var(--reference-context) 16%, var(--panel))}.reference-display-return-action:disabled{color:var(--muted);cursor:default;opacity:.66}.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}.reference-display-header-action{min-height:25px;color:var(--reference-context);white-space:nowrap;background:0 0;border:0;padding:3px 7px;font-size:10px;font-weight:750}.reference-display-header-action:hover:not(:disabled),.reference-display-header-action:focus-visible:not(:disabled){background:var(--reference-context-soft);color:var(--reference-context)}.reference-display-header-action:disabled{color:var(--muted);cursor:default;opacity:.65}.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-content:center;gap:5px;min-width:0;font-size:12px;display:grid}.pull-request-row__reference,.pull-request-row__badges{align-items:baseline;gap:8px;min-width:0;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,.pull-request-approval{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,.pull-request-approval{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-presentation-overview{border-bottom:1px solid var(--line);min-width:0;color:var(--text);background:color-mix(in srgb, var(--accent) 4%, var(--panel));font-family:var(--sans);flex:none;font-size:10px;line-height:1.35;display:grid}.structure-presentation-guide-header{align-items:center;gap:7px;min-width:0;min-height:36px;padding:4px 8px;display:flex}.structure-presentation-guide-header>strong{color:var(--accent);font:700 9px/1.4 var(--mono);letter-spacing:.05em;text-transform:uppercase;flex:none}.structure-presentation-guide-controls{overscroll-behavior-x:contain;scrollbar-width:thin;flex:auto;justify-content:flex-end;gap:3px;min-width:0;display:flex;overflow-x:auto}.structure-presentation-guide-toggle{border:1px solid var(--line);min-height:24px;color:var(--muted);background:var(--panel);font:700 8px/1.2 var(--mono);letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;cursor:pointer;border-radius:999px;flex:none;align-items:center;gap:3px;padding:2px 6px;display:inline-flex}.structure-presentation-guide-toggle:hover,.structure-presentation-guide-toggle[aria-expanded=true]{border-color:color-mix(in srgb, var(--accent) 55%, var(--line));color:var(--accent);background:var(--accent-soft)}.structure-presentation-guide-toggle:focus-visible,.structure-presentation-overview-node:focus-visible,.structure-region-map-card:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.structure-presentation-guide-section{border-top:1px solid color-mix(in srgb, var(--line) 72%, transparent);grid-template-columns:108px minmax(0,1fr);align-items:center;gap:8px;min-width:0;padding:5px 12px;display:grid}.structure-presentation-guide-section>strong{color:var(--accent);font:700 8px/1.5 var(--mono);letter-spacing:.04em;text-transform:uppercase}.structure-presentation-overview-thesis>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.structure-presentation-overview-node{border:1px solid var(--line-strong);width:max-content;min-width:0;max-width:190px;min-height:30px;color:var(--text);background:var(--panel);font:700 9px/1.3 var(--mono);overflow-wrap:anywhere;text-align:left;cursor:pointer;border-radius:6px;flex:none;align-items:center;gap:5px;padding:4px 7px;display:inline-flex}.structure-presentation-overview-node.compact{text-overflow:ellipsis;white-space:nowrap;max-width:min(230px,34%);min-height:24px;padding:2px 6px;overflow:hidden}.structure-presentation-overview-node:hover{border-color:var(--accent);background:var(--accent-soft)}.structure-presentation-overview-node[data-focused=true]{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--panel));box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 13%, transparent)}.structure-presentation-overview-start{color:var(--panel);background:var(--accent);letter-spacing:.035em;text-transform:uppercase;border-radius:999px;flex:none;padding:1px 4px;font-size:7px;line-height:1.4}.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-regions-canvas{width:100%;height:100%;min-height:360px;color:var(--text);grid-template-rows:auto minmax(0,1fr);display:grid;position:relative;overflow:hidden}.structure-regions-canvas-intro{z-index:3;border:1px solid color-mix(in srgb, var(--attention) 36%, var(--line));background:color-mix(in srgb, var(--panel) 94%, transparent);min-width:0;box-shadow:0 4px 14px var(--shadow-medium);border-radius:9px;justify-content:space-between;align-items:center;gap:18px;margin:54px 12px 6px;padding:9px 12px;display:flex;position:relative}.structure-regions-canvas-intro>div{gap:2px;min-width:0;display:grid}.structure-regions-canvas-intro strong{color:var(--attention);font:700 10px/1.35 var(--mono);letter-spacing:.035em;text-transform:uppercase}.structure-regions-canvas-intro span{color:var(--text);font:700 9px/1.35 var(--mono)}.structure-regions-canvas-intro p{max-width:420px;color:var(--muted);text-align:right;margin:0;font-size:10px;line-height:1.4}.structure-regions-canvas-scroll{overscroll-behavior:contain;cursor:grab;touch-action:none;min-width:0;min-height:0;position:relative;overflow:hidden}.structure-regions-canvas-scroll:active{cursor:grabbing}.structure-regions-canvas-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.structure-region-map{transform-origin:0 0;will-change:transform;min-width:min-content;margin:0;position:relative}.structure-region-map-relations{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:visible}.structure-region-map-relation>.structure-region-map-relation-line{fill:none;stroke:color-mix(in srgb, var(--muted) 68%, var(--line-strong));stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.structure-region-map-relation.context-boundary>.structure-region-map-relation-line{stroke-dasharray:4 4}.structure-region-map-relation.core>.structure-region-map-relation-line{stroke:color-mix(in srgb, var(--done) 82%, var(--line-strong));stroke-width:2.4px}.structure-region-map-relation[data-direction=mixed]>.structure-region-map-relation-line{stroke-dasharray:8 3 2 3}.structure-region-map-label-leader{fill:none;stroke:color-mix(in srgb, var(--muted) 62%, transparent);stroke-width:1px;stroke-dasharray:2 4;vector-effect:non-scaling-stroke}.structure-region-map-arrowhead{fill:color-mix(in srgb, var(--muted) 68%, var(--line-strong))}.structure-region-map-arrowhead.core{fill:color-mix(in srgb, var(--done) 82%, var(--line-strong))}.structure-region-map-relation-action{z-index:2;border:1px solid color-mix(in srgb, var(--line-strong) 88%, transparent);color:var(--text);background:color-mix(in srgb, var(--panel) 96%, transparent);box-shadow:0 3px 10px var(--shadow-medium);cursor:pointer;border-radius:11px;padding:7px 10px;display:grid;position:absolute}.structure-region-map-relation-action:hover,.structure-region-map-relation-action[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 9%, var(--panel))}.structure-region-map-relation-action:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.structure-region-map-relation-action.core{border-color:color-mix(in srgb, var(--done) 68%, var(--line))}.structure-region-map-relation-label{font:700 10px/1.3 var(--mono);text-align:center;gap:2px;display:grid}.structure-region-map-relation-action.core .structure-region-map-relation-label{color:color-mix(in srgb, var(--done) 84%, var(--text))}.structure-region-map-card,.structure-region-context-card{z-index:1;border:1px dashed color-mix(in srgb, var(--attention) 58%, var(--line));color:var(--text);background:color-mix(in srgb, var(--attention) 7%, var(--panel));box-shadow:0 5px 16px color-mix(in srgb, var(--text) 7%, transparent);font:10px/1.35 var(--sans);text-align:left;border-radius:10px;grid-template-rows:auto minmax(0,1fr) auto;align-content:stretch;gap:8px;padding:11px 12px 10px;display:grid;position:absolute;overflow:hidden}.structure-region-map-card{cursor:pointer}.structure-region-map-card:hover{border-color:var(--attention);background:color-mix(in srgb, var(--attention) 14%, var(--panel));box-shadow:0 7px 20px color-mix(in srgb, var(--attention) 15%, transparent)}.structure-region-map-card[data-framed-region=true]{border-style:solid;border-color:var(--attention);background:color-mix(in srgb, var(--attention) 15%, var(--panel))}.structure-region-map-card-heading,.structure-region-context-card-heading{align-items:center;gap:6px;min-width:0;display:flex}.structure-region-context-card-heading>strong{min-width:0;font:700 11px/1.3 var(--mono);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.structure-region-map-card-heading{flex-wrap:wrap;align-content:flex-start;align-items:flex-start;row-gap:4px}.structure-region-map-card-heading>strong{width:100%;min-width:0;font:700 11px/1.35 var(--mono);overflow-wrap:anywhere;white-space:normal;flex:1 0 100%;overflow:visible}.structure-region-map-card-start,.structure-region-map-card-core,.structure-region-context-card-start,.structure-region-context-card-core{color:var(--panel);background:var(--accent);font:700 7px/1.35 var(--mono);letter-spacing:.03em;text-transform:uppercase;border-radius:999px;flex:none;padding:2px 5px}.structure-region-map-card-core{color:color-mix(in srgb, var(--done) 88%, var(--text));background:color-mix(in srgb, var(--done) 14%, var(--panel))}.structure-region-map-card-summary{min-width:0;color:var(--text);white-space:normal;line-height:1.45;overflow:auto}.structure-region-map-card-count,.structure-region-context-card-count{color:var(--muted);font:8px/1.25 var(--mono)}.structure-region-context-card{border-style:dotted;border-color:color-mix(in srgb, var(--muted) 68%, var(--line));background:color-mix(in srgb, var(--muted) 5%, var(--panel));cursor:pointer}.structure-region-context-card:hover{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--panel))}.structure-region-context-card[data-core-context=true]{border-color:color-mix(in srgb, var(--done) 65%, var(--line))}.structure-region-context-card-heading>strong{color:var(--muted);letter-spacing:.04em;text-transform:uppercase}.structure-region-context-card-core{color:color-mix(in srgb, var(--done) 88%, var(--text));background:color-mix(in srgb, var(--done) 14%, var(--panel))}.structure-region-context-card-label{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;min-width:0;line-height:1.4;display:-webkit-box;overflow:hidden}.structure-region-relation-inspector{z-index:20;border:1px solid color-mix(in srgb, var(--accent) 52%, var(--line));background:color-mix(in srgb, var(--panel) 97%, transparent);width:min(430px,100% - 24px);max-height:calc(100% - 124px);box-shadow:0 12px 34px var(--shadow-strong);border-radius:10px;display:grid;position:absolute;top:112px;right:12px;overflow:hidden}.structure-region-relation-inspector>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;display:flex}.structure-region-relation-inspector>header>div{align-items:baseline;gap:8px;display:flex}.structure-region-relation-inspector>header strong{font:700 11px/1.35 var(--mono)}.structure-region-relation-inspector>header span,.structure-region-relation-no-source{color:var(--muted);font:8px/1.35 var(--mono)}.structure-region-relation-inspector>header>button{width:26px;height:26px;padding:0}.structure-region-relation-inspector>ul{gap:0;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.structure-region-relation-inspector-orientation{border-bottom:1px solid color-mix(in srgb, var(--line) 72%, transparent);color:var(--muted);font:700 9px/1.4 var(--mono);overflow-wrap:anywhere;margin:0;padding:7px 10px;overflow:hidden}.structure-region-relation-inspector li{border-bottom:1px solid color-mix(in srgb, var(--line) 74%, transparent);grid-template-columns:minmax(0,1fr);gap:5px;padding:8px 10px;display:grid}.structure-region-relation-inspector li:last-child{border-bottom:0}.structure-region-relation-edge-id{min-width:0;color:var(--muted);font:700 8px/1.35 var(--mono);overflow-wrap:anywhere;white-space:normal;overflow:hidden}.structure-region-relation-edge{min-width:0;color:var(--text);font:600 10px/1.4 var(--sans);text-align:left;overflow-wrap:anywhere;white-space:normal;background:0 0;border:0;padding:5px 7px;overflow:hidden}.structure-region-relation-edge:hover,.structure-region-relation-edge:focus-visible{color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent)}.structure-region-relation-sources{gap:4px;display:grid}.structure-region-relation-source{border-color:color-mix(in srgb, var(--accent) 30%, var(--line));width:100%;min-width:0;min-height:27px;color:var(--accent);background:color-mix(in srgb, var(--accent) 5%, transparent);font:700 8px/1 var(--mono);text-align:left;grid-template-columns:auto minmax(0,1fr);padding:4px 6px;display:grid}.structure-region-relation-source>span:last-child{overflow-wrap:anywhere;white-space:normal;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[hidden]{display:none}.structure-view-mode{border-right:1px solid var(--line);padding-right:5px}.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-toolbar button:disabled{opacity:.48;cursor:default}.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-region-lens{z-index:6;overscroll-behavior:contain;border:1px solid color-mix(in srgb, var(--attention) 72%, var(--line-strong));width:min(600px,100% - 20px);max-height:min(180px,100% - 112px);color:var(--text);background:color-mix(in srgb, var(--panel) 94%, var(--attention) 6%);box-shadow:0 5px 16px var(--shadow-medium);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);scrollbar-width:thin;border-radius:8px;gap:2px;padding:6px 9px 7px;display:grid;position:absolute;top:45px;left:10px;overflow:auto}.structure-region-lens:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.structure-region-lens-kicker{color:var(--attention);font:700 8px/1.25 var(--mono);letter-spacing:.06em;text-transform:uppercase;flex:none}.structure-region-lens-heading{align-items:baseline;gap:7px;min-width:0;display:flex}.structure-region-lens-heading>strong{min-width:0;font:700 12px/1.35 var(--mono);overflow-wrap:anywhere;flex:auto}.structure-region-lens>p{color:var(--muted);margin:0;font-size:10px;line-height:1.4}.structure-region-lens-count{color:color-mix(in srgb, var(--attention) 82%, var(--text));font:700 8px/1.35 var(--mono);white-space:nowrap;flex:none}.structure-region-lens-context{color:var(--muted);font:8px/1.3 var(--mono);overflow-wrap:anywhere}.structure-world{transform-origin:0 0;position:absolute;top:0;left:0}.structure-world.camera-transition{transition:transform .22s cubic-bezier(.2,.75,.25,1)}.structure-world.layout-transition .structure-node,.structure-world.layout-transition .structure-edge-label{transition:left .22s cubic-bezier(.2,.75,.25,1),top .22s cubic-bezier(.2,.75,.25,1)}.structure-world.layout-transition .structure-edges{opacity:0}.structure-edges{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:visible}.structure-edges marker path{fill:context-stroke}:is(.structure-edge,.structure-edge-arrow-carrier){--structure-edge-theme:color-mix(in srgb, var(--muted) 52%, var(--line));--structure-edge-active:var(--accent);fill:none;stroke:var(--structure-edge-theme);opacity:.46;vector-effect:non-scaling-stroke}.structure-edge{stroke-width:1.4px}.structure-edge-arrow-carrier{pointer-events:none;stroke-width:0!important;stroke-dasharray:none!important}:is(.structure-edge,.structure-edge-arrow-carrier)[data-source-change-kind=added]{--structure-edge-theme:var(--success);--structure-edge-active:var(--success);opacity:.7}:is(.structure-edge,.structure-edge-arrow-carrier)[data-source-change-kind=modified]{--structure-edge-theme:var(--attention);--structure-edge-active:var(--attention);opacity:.7}:is(.structure-edge,.structure-edge-arrow-carrier)[data-source-change-kind=deleted]{--structure-edge-theme:var(--danger);--structure-edge-active:var(--danger);opacity:.7}:is(.structure-edge,.structure-edge-arrow-carrier)[data-source-change-kind=renamed]{--structure-edge-theme:var(--done);--structure-edge-active:var(--done);opacity:.7}:is(.structure-edge,.structure-edge-arrow-carrier)[data-source-change-kind=type-changed]{--structure-edge-theme:var(--info);--structure-edge-active:var(--info);opacity:.7}:is(.structure-edge,.structure-edge-arrow-carrier)[data-source-change-kind=mixed]{--structure-edge-theme:var(--attention);--structure-edge-active:var(--attention);opacity:.7}:is(.structure-edge,.structure-edge-arrow-carrier).primary-backbone{stroke:color-mix(in srgb, var(--done) 78%, var(--structure-edge-theme));opacity:.88}.structure-edge.primary-backbone{stroke-width:2.1px;stroke-dasharray:6 3}:is(.structure-edge,.structure-edge-arrow-carrier).focused{stroke:var(--structure-edge-active);opacity:.88}.structure-edge.focused{stroke-width:2.4px}:is(.structure-edge,.structure-edge-arrow-carrier).selected{stroke:var(--structure-edge-active)}.structure-edge.selected{stroke-width:3.2px}:is(.structure-edge,.structure-edge-arrow-carrier).context-distant{opacity:.2}:is(.structure-edge,.structure-edge-arrow-carrier).muted{opacity:.14}:is(.structure-edge,.structure-edge-arrow-carrier).framed-region-relation:not(.selected){stroke:color-mix(in srgb, var(--attention) 88%, var(--structure-edge-theme));opacity:.96}.structure-edge.framed-region-relation:not(.selected){stroke-width:2.5px}:is(.structure-edge,.structure-edge-arrow-carrier).region-frame-context:not(.selected){opacity:.1}:is(.structure-edge,.structure-edge-arrow-carrier).selected{opacity:1}.structure-edge-label-emphasis{--structure-edge-label-emphasis-color:var(--accent);pointer-events:none}.structure-edge-label-emphasis-halo,.structure-edge-label-emphasis-line{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.structure-edge-label-emphasis-halo{stroke:color-mix(in srgb, var(--panel) 92%, transparent);stroke-width:6px}.structure-edge-label-emphasis-line{stroke:var(--structure-edge-label-emphasis-color);stroke-width:2.6px}.structure-edge-label-emphasis[data-source-change-kind=added]{--structure-edge-label-emphasis-color:var(--success)}.structure-edge-label-emphasis[data-source-change-kind=modified]{--structure-edge-label-emphasis-color:var(--attention)}.structure-edge-label-emphasis[data-source-change-kind=deleted]{--structure-edge-label-emphasis-color:var(--danger)}.structure-edge-label-emphasis[data-source-change-kind=renamed]{--structure-edge-label-emphasis-color:var(--done)}.structure-edge-label-emphasis[data-source-change-kind=type-changed]{--structure-edge-label-emphasis-color:var(--info)}.structure-edge-label-emphasis[data-source-change-kind=mixed]{--structure-edge-label-emphasis-color:var(--attention)}.structure-edge-label-leader{--structure-edge-label-leader-anchor:var(--accent);pointer-events:none}path.structure-edge-label-leader,.structure-edge-label-leader-line,.structure-edge-label-leader-halo{fill:none;vector-effect:non-scaling-stroke}.structure-edge-label-leader-halo{stroke:var(--panel);stroke-width:4px;stroke-linecap:round;opacity:.94}path.structure-edge-label-leader,.structure-edge-label-leader-line{stroke:color-mix(in srgb, var(--muted) 82%, var(--line-strong));stroke-width:1.1px;stroke-linecap:round;stroke-dasharray:1 4;opacity:.68}.structure-edge-label-leader-anchor{fill:var(--structure-edge-label-leader-anchor);stroke:var(--panel);stroke-width:1px;vector-effect:non-scaling-stroke}.structure-edge-label-leader[data-source-change-kind=added]{--structure-edge-label-leader-anchor:var(--success)}.structure-edge-label-leader[data-source-change-kind=modified]{--structure-edge-label-leader-anchor:var(--attention)}.structure-edge-label-leader[data-source-change-kind=deleted]{--structure-edge-label-leader-anchor:var(--danger)}.structure-edge-label-leader[data-source-change-kind=renamed]{--structure-edge-label-leader-anchor:var(--done)}.structure-edge-label-leader[data-source-change-kind=type-changed]{--structure-edge-label-leader-anchor:var(--info)}.structure-edge-label-leader[data-source-change-kind=mixed]{--structure-edge-label-leader-anchor:var(--attention)}path.structure-edge-label-leader.focus-incident,path.structure-edge-label-leader.selected,.structure-edge-label-leader.focus-incident .structure-edge-label-leader-line,.structure-edge-label-leader.selected .structure-edge-label-leader-line{stroke:var(--accent);opacity:.9}.structure-edge-label-leader.context-distant{opacity:.2}.structure-edge-label-leader.muted{opacity:.1}.structure-edge-label-leader.framed-region-relation:not(.selected){--structure-edge-label-leader-anchor:var(--attention);opacity:.95}.structure-edge-label-leader.region-frame-context:not(.selected){opacity:.08}.structure-edge-label-leader.selected{opacity:1}.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-local-center-marker{z-index:4;box-sizing:border-box;border:2px dashed color-mix(in srgb, var(--done) 78%, var(--accent));pointer-events:none;border-radius:6px;position:absolute;inset:3px}.structure-node-neighborhood{z-index:5;border:1px solid color-mix(in srgb, var(--done) 64%, var(--line));width:25px;height:22px;color:color-mix(in srgb, var(--done) 80%, var(--text));background:color-mix(in srgb, var(--panel) 92%, transparent);font:700 11px/1 var(--mono);cursor:pointer;border-radius:7px;place-items:center;padding:0;display:grid;position:absolute;bottom:6px;right:6px}@media (hover:hover) and (pointer:fine){.structure-node-neighborhood{opacity:0;pointer-events:none;transition:opacity .12s}.structure-node:hover .structure-node-neighborhood,.structure-node:focus-within .structure-node-neighborhood{opacity:1;pointer-events:auto}}.structure-node-neighborhood:hover,.structure-node-neighborhood:focus-visible{border-color:var(--done);outline:2px solid var(--focus);outline-offset:1px}.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.primary-backbone .structure-node-focus{background-image:linear-gradient(90deg, color-mix(in srgb, var(--done) 74%, transparent), color-mix(in srgb, var(--done) 22%, transparent));background-repeat:no-repeat;background-size:100% 3px}.structure-node.framed-region-member .structure-node-focus{border:3px solid var(--attention);background-color:color-mix(in srgb, var(--attention) 13%, var(--panel));box-shadow:inset 5px 0 color-mix(in srgb, var(--attention) 72%, transparent), inset 0 0 0 2px color-mix(in srgb, var(--attention) 12%, transparent)}.structure-node.context-distant{opacity:.5}.structure-node.region-frame-context:not(.focused){opacity:.24}.structure-node.region-frame-context.focused{opacity:.76}.structure-node.context-distant.edge-endpoint{opacity:1}.structure-node-presentation-start{z-index:4;border:2px solid var(--panel);background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 70%, var(--line));pointer-events:none;border-radius:50%;position:absolute;top:7px;right:40px}.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{box-sizing:border-box;border:1px solid var(--structure-edge-label-active-outline);color:var(--structure-edge-label-active-outline);background:var(--panel);height:100%;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:14px;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;line-height:14px;display:block}.structure-edge-label.crowded .structure-edge-select{border-style:dashed}.structure-edge-label.framed-region-relation:not(.selected) .structure-edge-select{border-color:var(--attention);color:color-mix(in srgb, var(--attention) 86%, var(--text));background:color-mix(in srgb, var(--attention) 10%, var(--panel));border-width:2px}.structure-edge-label.primary-backbone .structure-edge-select{border-color:color-mix(in srgb, var(--done) 74%, var(--line));color:var(--done);background:color-mix(in srgb, var(--done) 7%, var(--panel));border-width:1.5px}.structure-edge-label.context-distant{opacity:.48}.structure-edge-label.muted{opacity:.28}.structure-edge-label.region-frame-context:not(.selected){opacity:.16}.structure-edge-label.selected{opacity:1}.structure-viewer[data-semantic-zoom=overview] .structure-edge-label:not(.primary-backbone,.focus-incident,.framed-region-relation,.selected) .structure-edge-label-text,.structure-viewer[data-semantic-zoom=overview] .structure-edge-label.primary-backbone.context-distant:not(.focus-incident,.framed-region-relation,.selected) .structure-edge-label-text{visibility:hidden}.structure-viewer[data-semantic-zoom=overview] .structure-edge-label-leader:not(.primary-backbone,.focus-incident,.framed-region-relation,.selected),.structure-viewer[data-semantic-zoom=overview] .structure-edge-label-leader.primary-backbone.context-distant:not(.focus-incident,.framed-region-relation,.selected){opacity:.12}.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-label[data-source-menu-placement=above-left] .structure-edge-source-menu{inset:auto 0 calc(100% + 5px) auto}.structure-edge-label[data-source-menu-placement=below-right] .structure-edge-source-menu{left:0;right:auto}.structure-edge-label[data-source-menu-placement=above-right] .structure-edge-source-menu{inset:auto auto calc(100% + 5px) 0}.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-primary-backbone{fill:none;stroke:color-mix(in srgb, var(--done) 76%, var(--line));stroke-width:1.6px;stroke-dasharray:4 2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.structure-minimap circle.primary-backbone{fill:color-mix(in srgb, var(--done) 78%, var(--muted))}.structure-minimap circle.region-member{stroke:var(--attention);stroke-width:1px;vector-effect:non-scaling-stroke}.structure-minimap circle.framed-region-member{fill:color-mix(in srgb, var(--attention) 70%, var(--muted));stroke-width:2px}.structure-minimap circle.focused{fill:var(--accent)}.structure-minimap circle.local-center{stroke:var(--done);stroke-width:2.4px;vector-effect:non-scaling-stroke}.structure-minimap-presentation-start{fill:none;stroke:var(--accent);stroke-width:1.5px;vector-effect:non-scaling-stroke}.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-presentation-guide-section{grid-template-columns:72px minmax(0,1fr);gap:6px;padding-left:8px;padding-right:8px}.structure-presentation-overview-thesis>span{white-space:normal;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.structure-canvas{min-height:0}.structure-canvas-status{max-width:calc(100% - 20px)}.structure-region-lens{width:min(340px,100% - 16px);max-height:min(180px,100% - 104px);left:8px}.structure-region-lens-heading{flex-wrap:wrap;align-items:flex-start;row-gap:2px}.structure-region-lens-heading>strong{flex:1 0 100%;order:2}.structure-region-lens-count{margin-left:auto}}@media (prefers-reduced-motion:reduce){.structure-world.camera-transition,.structure-world.layout-transition .structure-node,.structure-world.layout-transition .structure-edge-label{transition:none}.structure-world.layout-transition .structure-edges{opacity:1;animation:none}}
|
package/dist/web/index.html
CHANGED
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<meta name="color-scheme" content="light dark" />
|
|
7
7
|
<title>rvw</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index
|
|
8
|
+
<script type="module" crossorigin src="/assets/index--jtTJT6K.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-hePW80VL.js">
|
|
10
10
|
<link rel="modulepreload" crossorigin href="/assets/FileIcon-wDKKQgGv.js">
|
|
11
11
|
<link rel="modulepreload" crossorigin href="/assets/preload-helper-Czpn1I53.js">
|
|
12
12
|
<link rel="modulepreload" crossorigin href="/assets/MermaidSurface-CKiZv7R8.js">
|
|
13
13
|
<link rel="modulepreload" crossorigin href="/assets/ccount-DFmD81E1.js">
|
|
14
14
|
<link rel="modulepreload" crossorigin href="/assets/WalkthroughPanel-DvyIFY5z.js">
|
|
15
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
15
|
+
<link rel="stylesheet" crossorigin href="/assets/index-D2onU0ZK.css">
|
|
16
16
|
</head>
|
|
17
17
|
<body>
|
|
18
18
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@a9n-shoji/rvw",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Human-centered repository viewer for understanding and refining GitHub pull request changes",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"code-review",
|
|
@@ -57,10 +57,10 @@
|
|
|
57
57
|
"eslint": "^10.8.1",
|
|
58
58
|
"fuzzysort": "^3.1.0",
|
|
59
59
|
"globals": "^17.9.0",
|
|
60
|
-
"hono": "^4.13.1",
|
|
61
60
|
"hast-util-from-html": "^2.0.3",
|
|
62
61
|
"hast-util-sanitize": "^5.0.2",
|
|
63
62
|
"hast-util-to-html": "^9.0.5",
|
|
63
|
+
"hono": "^4.13.7",
|
|
64
64
|
"mdast-util-from-markdown": "^2.0.3",
|
|
65
65
|
"mermaid": "^11.16.1",
|
|
66
66
|
"npm": "11.19.0",
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"typescript": "^6.0.3",
|
|
78
78
|
"typescript-eslint": "^8.66.0",
|
|
79
79
|
"vite": "^8.2.1",
|
|
80
|
-
"vitest": "^4.1.
|
|
80
|
+
"vitest": "^4.1.11",
|
|
81
81
|
"zod": "^4.4.3"
|
|
82
82
|
},
|
|
83
83
|
"scripts": {
|
|
@@ -33,7 +33,8 @@ For every composition task, read
|
|
|
33
33
|
## Preflight
|
|
34
34
|
|
|
35
35
|
1. Run `rvw protocol --json` and parse stdout as JSON. Require `protocolVersion` 5 and
|
|
36
|
-
`agent.transport`, and record the available Walkthrough and Structure capabilities
|
|
36
|
+
`agent.transport`, and record the available Walkthrough and Structure capabilities, including
|
|
37
|
+
`walkthrough.list` for Walkthrough discovery. Immediately
|
|
37
38
|
before every producer invocation, including contextual discovery or a current-value read, require
|
|
38
39
|
only the capabilities that invocation actually uses. The producer Skills perform their complete
|
|
39
40
|
operation-specific checks. A contextual read may happen before the composition is selected; creation
|
|
@@ -53,8 +54,9 @@ First classify the requested composition outcome, then choose only the Artifact
|
|
|
53
54
|
A request to assess, recommend, plan, audit, or explain a composition is read-only, meaning that it
|
|
54
55
|
permits no Artifact mutation: return proposed surfaces and internal briefs without creating, publishing,
|
|
55
56
|
or updating. When transport is available, the matching producer may still perform its normal read
|
|
56
|
-
operation for an explicitly supplied existing URI
|
|
57
|
-
|
|
57
|
+
operation for an explicitly supplied existing URI. When existing Walkthroughs affect composition,
|
|
58
|
+
`rvw-walkthrough` may use `walkthrough list` and read plausible candidates; for a required PR-wide file
|
|
59
|
+
map, `rvw-structure` may use `structure list` and read a plausible candidate. Invoke a producer for
|
|
58
60
|
Artifact creation or update only when the user explicitly asks to create, publish, produce, or update
|
|
59
61
|
Artifacts. Supplying an existing URI or discovering a candidate authorizes contextual reading, not an
|
|
60
62
|
update.
|
|
@@ -187,18 +189,24 @@ order. Invoke it first only when its verified answer genuinely constrains the re
|
|
|
187
189
|
## Existing Artifacts
|
|
188
190
|
|
|
189
191
|
When the user or caller supplies an existing Artifact URI and transport is available, have the matching
|
|
190
|
-
producer read its current value
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
192
|
+
producer read its current value and skip an unnecessary list. When no Walkthrough URI is supplied and
|
|
193
|
+
existing work affects composition, have `rvw-walkthrough` page through `walkthrough list`; follow
|
|
194
|
+
`hasMore` / `nextOffset` whenever an exhaustive no-match decision is needed, then read every plausible
|
|
195
|
+
candidate with `walkthrough get`. A title alone is not evidence of the Artifact's subject, boundary, or
|
|
196
|
+
current contents. Prefer an authorized in-place update for the verified same subject over a duplicate
|
|
197
|
+
publication; use a new Walkthrough for a different bounded subject. Do not publish a duplicate
|
|
198
|
+
"revision" by default.
|
|
199
|
+
|
|
200
|
+
For a PR-wide file map, have `rvw-structure` use `structure list` to inspect candidate summaries and
|
|
201
|
+
read a plausible current map before publishing another one. Prefer a still-valid same-subject map at
|
|
202
|
+
the selected source, then an authorized in-place update, over a duplicate publication. In an authorized
|
|
203
|
+
production run, publish a new one only when no verified candidate fits or the subject is genuinely
|
|
204
|
+
different. List and get are separate reads rather than a
|
|
205
|
+
fixed snapshot, and neither read grants update or delete authority. If transport is unavailable, the
|
|
206
|
+
preflight diagnostic wins and the read cannot occur. Never rewrite an Artifact into a different subject
|
|
207
|
+
or delete one merely because the new composition omits it; normal preview and explicit deletion
|
|
208
|
+
authorization still apply. Use only these CLI discovery operations—never SQLite, internal file paths,
|
|
209
|
+
remembered URIs, or invented identity.
|
|
202
210
|
|
|
203
211
|
## Finish as a composition
|
|
204
212
|
|
|
@@ -97,9 +97,11 @@ describes the absence of side effects; it does not prohibit an authorized contex
|
|
|
97
97
|
|
|
98
98
|
- A request to assess, recommend, plan, audit, or explain a composition is read-only. Return proposed
|
|
99
99
|
surfaces, unproduced briefs, and direct-code entrypoints without publishing or updating Artifacts. A
|
|
100
|
-
matching producer may perform the normal read operation for an explicitly supplied existing URI.
|
|
101
|
-
|
|
102
|
-
|
|
100
|
+
matching producer may perform the normal read operation for an explicitly supplied existing URI.
|
|
101
|
+
When existing Walkthroughs affect the decision, `rvw-walkthrough` may page through `walkthrough list`
|
|
102
|
+
and read plausible candidates. For the required PR-wide file map, `rvw-structure` may use the existing
|
|
103
|
+
`structure list` discovery contract and read a plausible candidate before deciding whether it already
|
|
104
|
+
satisfies the role.
|
|
103
105
|
- A request to create, publish, produce, or update the selected Artifacts authorizes the corresponding
|
|
104
106
|
producer handoffs, subject to each producer's full preview, identity, and mutation contract.
|
|
105
107
|
- An explicitly supplied Artifact URI authorizes reading it as composition context, not updating it.
|
|
@@ -428,21 +430,20 @@ Artifact's central question; otherwise name an exact direct-code check in the fi
|
|
|
428
430
|
## Existing-Artifact boundary
|
|
429
431
|
|
|
430
432
|
When an existing URI is explicitly supplied and transport is available, read its current value through
|
|
431
|
-
the matching producer and
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
exists beyond what the available discovery and current-value reads establish.
|
|
433
|
+
the matching producer and skip an unnecessary list. When no Walkthrough URI is supplied and existing
|
|
434
|
+
work affects the decision, have `rvw-walkthrough` page through `walkthrough list`, following `hasMore`
|
|
435
|
+
and `nextOffset` for exhaustive discovery, and read each plausible candidate with `walkthrough get`.
|
|
436
|
+
Never choose a same-subject update by title alone. For the required file map, use `structure list` to
|
|
437
|
+
inspect candidate summaries, then have `rvw-structure` read a plausible map and independently verify its
|
|
438
|
+
subject, source coordinate, file responsibilities, relations, and boundary before treating it as
|
|
439
|
+
satisfying the current composition. Reuse a valid current Artifact. In an authorized production run,
|
|
440
|
+
update a stale same-subject Artifact in place; publish a new one only when no verified candidate fits or
|
|
441
|
+
the subject is genuinely different. List and get are separate reads rather than a fixed snapshot, and
|
|
442
|
+
neither grants mutation authority. If transport is unavailable, the main Skill's preflight diagnostic
|
|
443
|
+
wins and the read cannot occur. Never rewrite an Artifact into a different subject or delete one merely
|
|
444
|
+
because the new composition omits it; normal preview and explicit deletion authorization still apply.
|
|
445
|
+
Use only public list/get commands, never SQLite, internal file paths, remembered URIs, or invented
|
|
446
|
+
identity.
|
|
446
447
|
|
|
447
448
|
## Completion response
|
|
448
449
|
|
|
@@ -57,7 +57,8 @@ Use only the `rvw` CLI protocol. Never access the SQLite database directly or co
|
|
|
57
57
|
|
|
58
58
|
1. Run `rvw protocol --json` and parse stdout as JSON.
|
|
59
59
|
2. Require `protocolVersion` 5 and `agent.transport`. Require only the operation capabilities the
|
|
60
|
-
task uses: `walkthrough.read` for `get` or another current-value
|
|
60
|
+
task uses: `walkthrough.list` for discovery, `walkthrough.read` for `get` or another current-value
|
|
61
|
+
read, and the corresponding
|
|
61
62
|
`walkthrough.publish`, `walkthrough.update`, or `walkthrough.delete` capability for each requested
|
|
62
63
|
mutation. An update or delete also needs `walkthrough.read` because the current Artifact must be
|
|
63
64
|
read first; a new publication does not.
|
|
@@ -68,7 +69,28 @@ Use only the `rvw` CLI protocol. Never access the SQLite database directly or co
|
|
|
68
69
|
access is required. `RVW_DATABASE_PATH` selects an explicitly managed database; the CLI uses a
|
|
69
70
|
running viewer only when it reports that same database.
|
|
70
71
|
|
|
71
|
-
##
|
|
72
|
+
## Discover and read the current artifact
|
|
73
|
+
|
|
74
|
+
When the user asks to inspect or improve an existing Walkthrough but does not supply its URI, discover
|
|
75
|
+
the candidates for the registered Pull Request:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
rvw walkthrough list <PULL_REQUEST> --json
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
The list is discovery metadata, not the Artifact body. If the decision requires knowing whether any
|
|
82
|
+
existing Walkthrough fits, continue with `--offset <nextOffset>` while `page.hasMore` is true; never
|
|
83
|
+
conclude that none exists from only the first page. Do not identify a subject or choose an update from
|
|
84
|
+
the title alone. Run `walkthrough get` for every plausible candidate and compare its complete body,
|
|
85
|
+
scope in practice, references, and `sourceOid` with the user's request and committed source. Improve the
|
|
86
|
+
existing URI when it is the same explanation subject and an update is authorized; publish a new
|
|
87
|
+
Walkthrough only for a genuinely different bounded subject or when no verified candidate fits.
|
|
88
|
+
|
|
89
|
+
Skip list when the user already supplied the exact URI and no broader discovery is needed. Never use
|
|
90
|
+
SQLite queries, internal paths, guessed storage, or remembered URIs as the normal discovery route.
|
|
91
|
+
List and get are separate reads: an item can change or disappear between them, so follow the get result
|
|
92
|
+
or its current error rather than treating the list as a fixed snapshot. Neither successful read
|
|
93
|
+
authorizes update or deletion; preserve the user's requested operation and the deletion preview flow.
|
|
72
94
|
|
|
73
95
|
For an existing `rvw://walkthrough/<uuid>` reference, run:
|
|
74
96
|
|