.vu-source-browser { display: flex; flex-direction: column; flex: 1; min-width: 0; min-height: 0; }
.vu-source-browser-overview-width { width: 100%; max-width: 80rem; margin-inline: auto; }
.vu-source-browser-toolbar { display: flex; align-items: center; gap: .75rem; min-width: 0; padding: .65rem 1.25rem; border-bottom: 1px solid var(--az-border); flex-shrink: 0; }
.vu-source-browser-toolbar > .vu-source-actions { margin-left: auto; }
.vu-source-browser-ref { display: flex; align-items: center; min-width: 0; flex-shrink: 0; gap: .4rem; }
.vu-source-browser-ref > span { max-width: 13rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: .8rem ui-monospace, SFMono-Regular, Consolas, monospace; }
.vu-source-browser-ref > .fi-icon { height: 1rem; width: 1rem; color: var(--vu-muted); flex-shrink: 0; }
.vu-source-browser-breadcrumbs { display: flex; align-items: center; gap: .45rem; min-width: 0; overflow-x: auto; white-space: nowrap; font-size: .85rem; padding-block: .4rem; }
.vu-source-browser-breadcrumbs > span { color: var(--vu-muted); }
.vu-source-browser-breadcrumbs a:hover, .vu-source-browser-latest a:hover, .vu-source-browser-file-row a:hover, .vu-source-browser-history-row a:hover { text-decoration: underline; }
.vu-source-browser-layout { flex: 1; min-width: 0; min-height: 0; position: relative; }
.vu-source-browser-overview { display: grid; grid-template-columns: minmax(0, 1fr) 14rem; grid-auto-rows: max-content; align-content: start; gap: 2rem; padding: 1.5rem 1.25rem; overflow: auto; }
.vu-source-browser-content { min-width: 0; min-height: 0; }
.vu-source-browser-workspace { display: grid; grid-template-columns: 15rem minmax(0, 1fr); }
.vu-source-browser-workspace > .vu-source-browser-content { padding: 1.25rem 1.5rem 2rem; overflow: auto; }
.vu-source-browser-about h2 { font-size: .95rem; font-weight: 650; margin: 0 0 .8rem; }
.vu-source-browser-about > div > p { font-size: .875rem; line-height: 1.6; overflow-wrap: anywhere; color: var(--vu-muted); }
.vu-source-browser-about > header { display: flex; align-items: center; justify-content: space-between; margin-bottom: .8rem; }
.vu-source-browser-about > header h2 { margin: 0; }
.vu-source-browser-about-toggle { display: none; }
.vu-source-browser-owner { margin-top: 1rem; min-width: 0; }
.vu-source-browser-owner .vu-source-identity { max-width: 100%; font-size: .85rem; }
.vu-source-browser-about dl { display: grid; gap: .75rem; padding-top: 1.25rem; margin-top: 1.25rem; border-top: 1px solid var(--az-border); }
.vu-source-browser-about dl > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; font-size: .8rem; }
.vu-source-browser-about dt { color: var(--vu-muted); }
.vu-source-browser-about dd { display: flex; align-items: center; gap: .4rem; max-width: 100%; overflow-wrap: anywhere; }
.vu-source-browser-about .fi-icon { width: 1rem; height: 1rem; }
.vu-source-browser-clone { padding: 1rem; }
.vu-source-browser-clone label { display: block; font-size: .85rem; font-weight: 600; margin-bottom: .65rem; }
.vu-source-browser-clone p { margin-top: .75rem; font-size: .95rem; line-height: 1.5; color: var(--vu-text); }
.vu-source-browser-setup { max-width: 42rem; margin: 1rem auto; }
.vu-source-browser-setup h2 { font-size: .95rem; font-weight: 650; margin-bottom: .75rem; }
.vu-source-browser-setup p { margin-top: .8rem; }
.vu-source-browser-ref-menu { width: 20rem; max-width: calc(100vw - 2rem); }
.vu-source-browser-find-menu { width: 28rem; max-width: calc(100vw - 2rem); }
.vu-source-browser-ref-search, .vu-source-browser-search { padding: .6rem; }
.vu-source-browser-ref-results { max-height: min(22rem, 55dvh); overflow: auto; }
.vu-source-browser-ref-empty { padding: .75rem; }
.vu-source-browser-search { position: relative; }
.vu-source-browser-search-loading { position: absolute; height: 1rem; width: 1rem; top: 1.45rem; right: 1.25rem; }
.vu-source-browser-search-results { max-height: min(24rem, 55dvh); overflow: auto; }
.vu-source-browser-search-results button { display: flex; align-items: flex-start; width: 100%; min-width: 0; gap: .7rem; padding: .7rem .5rem; text-align: left; border-radius: .3rem; }
.vu-source-browser-search-results button:hover, .vu-source-browser-search-results button:focus-visible { background: var(--az-hover); }
.vu-source-browser-search-results button > .fi-icon { width: 1rem; height: 1rem; flex-shrink: 0; margin-top: .2rem; color: var(--vu-muted); }
.vu-source-browser-search-results button > span { min-width: 0; }
.vu-source-browser-search-results strong { font-size: .85rem; font-weight: 550; display: block; overflow-wrap: anywhere; }
.vu-source-browser-search-results small { font-size: .75rem; display: block; color: var(--vu-muted); overflow-wrap: anywhere; margin-top: .2rem; }
.vu-source-browser-search-results p { padding: 1rem .5rem; color: var(--vu-text); font-size: .95rem; }
.vu-source-browser-tree { border-right: 1px solid var(--az-border); overflow: auto; min-width: 0; padding: .6rem .4rem 1rem; }
.vu-source-browser-tree-heading { display: flex; align-items: center; justify-content: space-between; padding: .4rem .7rem .8rem; }
.vu-source-browser-tree-heading h2 { font-size: .85rem; font-weight: 650; }
.vu-source-browser-tree-heading { padding-bottom: .25rem; }
.vu-source-browser-tree-ref { padding: 0 .5rem .6rem; border-bottom: 1px solid var(--az-border); margin-bottom: .5rem; }
.vu-source-browser-tree-ref .vu-source-browser-ref > span { flex: 1; max-width: calc(100% - 4rem); }
.vu-source-browser-tree-ref .vu-source-browser-ref { width: 100%; }
.vu-source-browser-content:focus { outline: none; }
.vu-source-browser-tree-row { display: flex; align-items: center; gap: .4rem; height: 2.2rem; cursor: pointer; min-width: 0; font-size: .8rem; padding-right: .5rem; border-radius: .25rem; }
.vu-source-browser-tree-row:hover, .vu-source-browser-tree-row[aria-selected="true"] { background: var(--az-hover); }
.vu-source-browser-tree-row:focus-visible { outline: 1px solid var(--vu-muted); outline-offset: -1px; }
.vu-source-browser-tree-row[aria-disabled="true"] { cursor: default; color: var(--vu-muted); }
.vu-source-browser-tree-row > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vu-source-browser-tree-row > .fi-icon { height: 1rem; width: 1rem; color: var(--vu-muted); flex-shrink: 0; }
.vu-source-browser-tree-disclosure, .vu-source-browser-tree-spacer { display: flex; width: 1.1rem; height: 1.6rem; align-items: center; justify-content: center; flex-shrink: 0; }
.vu-source-browser-tree-disclosure > .fi-icon, .vu-source-browser-tree-disclosure > .fi-loading-indicator { width: .75rem; height: .75rem; }
.vu-source-browser-tree-expanded { transform: rotate(90deg); }
.vu-source-browser-tree-toggle, .vu-source-browser-tree-close, .vu-source-browser-tree-shade { display: none; }
.vu-source-browser-latest { display: flex; align-items: center; gap: .65rem; min-width: 0; padding: .9rem 1rem; border: 1px solid var(--az-border); border-bottom: 0; background: var(--az-hover); font-size: .8rem; }
.vu-source-browser-latest > .fi-icon { width: 1rem; height: 1rem; flex-shrink: 0; color: var(--vu-muted); }
.vu-source-browser-latest-subject { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; font-weight: 550; }
.vu-source-browser-latest-author { max-width: 10rem; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.vu-source-browser-latest code, .vu-source-browser-latest time { color: var(--vu-muted); flex-shrink: 0; font-size: .75rem; }
.vu-source-browser-file-table { border: 1px solid var(--az-border); }
.vu-source-browser-file-table-heading, .vu-source-browser-file-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 5.5rem; gap: 1rem; padding: .65rem 1rem; align-items: center; }
.vu-source-browser-file-table-heading { font-size: .7rem; color: var(--vu-muted); border-bottom: 1px solid var(--az-border); }
.vu-source-browser-file-table-heading > :last-child { text-align: right; }
.vu-source-browser-file-row { min-height: 2.65rem; font-size: .85rem; border-bottom: 1px solid var(--az-border); }
.vu-source-browser-file-row:last-child { border-bottom: 0; }
.vu-source-browser-file-row:hover { background: var(--az-hover); }
.vu-source-browser-file-row > :first-child { display: flex; align-items: center; gap: .65rem; min-width: 0; }
.vu-source-browser-file-row > :first-child > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vu-source-browser-file-row .fi-icon { width: 1rem; height: 1rem; color: var(--vu-muted); flex-shrink: 0; }
.vu-source-browser-file-change { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: var(--vu-muted); font-size: .8rem; }
.vu-source-browser-file-row time, .vu-source-browser-file-date { text-align: right; color: var(--vu-muted); font-size: .75rem; white-space: nowrap; }
.vu-source-browser-parent > span { grid-column: 1 / -1; }
.vu-source-browser-readme { border: 1px solid var(--az-border); margin-top: 1.5rem; }
.vu-source-browser-readme > header { display: flex; align-items: center; gap: .6rem; padding: .85rem 1rem; border-bottom: 1px solid var(--az-border); font-size: .85rem; }
.vu-source-browser-readme > header .fi-icon { width: 1rem; height: 1rem; }
.vu-source-browser-readme > .fi-prose, .vu-source-browser-markdown { padding: 1.5rem 2rem; overflow-wrap: anywhere; }
.vu-source-browser-readme img, .vu-source-browser-markdown img { max-width: 100%; }
.vu-source-browser-file { border: 1px solid var(--az-border); }
.vu-source-browser-file-controls { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; border-bottom: 1px solid var(--az-border); padding: .35rem .65rem; min-width: 0; }
.vu-source-browser-file-controls > .vu-source-actions { margin-left: auto; }
.vu-source-browser-preview-toggle { display: flex; align-items: center; }
.vu-source-browser-preview-toggle [aria-pressed="true"] { color: var(--vu-text); background: var(--az-hover); }
.vu-source-code-block { display: flex; overflow: auto; background: var(--az-main); min-width: 0; }
.vu-source-code-block pre { margin: 0; padding: 1rem; font: .8rem/1.65 ui-monospace, SFMono-Regular, Consolas, monospace; tab-size: 4; }
.vu-source-code-block code { white-space: pre; font: inherit; }
.vu-source-code-block .vu-source-line-numbers { position: sticky; left: 0; background: var(--az-main); color: var(--vu-muted); text-align: right; border-right: 1px solid var(--az-border); user-select: none; padding-inline: .8rem; }
.vu-source-code-text { flex: 1; }
.vu-source-code-block .hljs-comment, .vu-source-code-block .hljs-quote { color: #6a737d; }
.vu-source-code-block .hljs-keyword, .vu-source-code-block .hljs-selector-tag, .vu-source-code-block .hljs-deletion { color: #b62333; }
.vu-source-code-block .hljs-string, .vu-source-code-block .hljs-addition, .vu-source-code-block .hljs-attr { color: #176944; }
.vu-source-code-block .hljs-title, .vu-source-code-block .hljs-section, .vu-source-code-block .hljs-number, .vu-source-code-block .hljs-literal { color: #6b42a0; }
.dark .vu-source-code-block .hljs-comment, .dark .vu-source-code-block .hljs-quote { color: #929ba7; }
.dark .vu-source-code-block .hljs-keyword, .dark .vu-source-code-block .hljs-selector-tag, .dark .vu-source-code-block .hljs-deletion { color: #ff939d; }
.dark .vu-source-code-block .hljs-string, .dark .vu-source-code-block .hljs-addition, .dark .vu-source-code-block .hljs-attr { color: #86dba8; }
.dark .vu-source-code-block .hljs-title, .dark .vu-source-code-block .hljs-section, .dark .vu-source-code-block .hljs-number, .dark .vu-source-code-block .hljs-literal { color: #c6a0f5; }
.vu-source-browser-image { display: flex; justify-content: center; padding: 1.5rem; }
.vu-source-browser-image img { display: block; max-width: 100%; max-height: 36rem; object-fit: contain; }
.vu-source-browser-view-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.vu-source-browser-view-heading > div:first-child { min-width: 0; }
.vu-source-browser-view-heading h2 { font-size: 1.25rem; font-weight: 650; line-height: 1.45; overflow-wrap: anywhere; }
.vu-source-browser-view-heading p { font-size: .85rem; color: var(--vu-muted); margin-top: .4rem; overflow-wrap: anywhere; }
.vu-source-browser-history-day { font-size: .8rem; color: var(--vu-muted); margin: 1.5rem 0 .65rem; }
.vu-source-browser-history-group { border: 1px solid var(--az-border); }
.vu-source-browser-history-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; border-bottom: 1px solid var(--az-border); }
.vu-source-browser-history-row:last-child { border-bottom: 0; }
.vu-source-browser-history-row > div:first-child { min-width: 0; }
.vu-source-browser-history-row a { font-size: .9rem; font-weight: 550; overflow-wrap: anywhere; }
.vu-source-browser-history-row p { font-size: .75rem; color: var(--vu-muted); margin-top: .3rem; }
.vu-source-browser-history-row code { color: var(--vu-muted); font-size: .75rem; }
.vu-source-browser-commit-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: -.75rem; margin-bottom: 1rem; }
.vu-source-browser-commit-meta > code { font-size: .8rem; overflow-wrap: anywhere; min-width: 0; color: var(--vu-muted); }
.vu-source-browser-diff-summary { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; font-size: .85rem; padding-block: 1rem; border-top: 1px solid var(--az-border); }
.vu-source-browser-added { color: #176944; }
.vu-source-browser-removed { color: #b62333; }
.dark .vu-source-browser-added { color: #86dba8; }
.dark .vu-source-browser-removed { color: #ff939d; }
.vu-source-browser-changed-files { max-height: 14rem; overflow: auto; margin-bottom: 1.5rem; border: 1px solid var(--az-border); padding: .4rem; }
.vu-source-browser-changed-files a { display: flex; align-items: center; gap: .6rem; padding: .5rem; font-size: .8rem; }
.vu-source-browser-changed-files a:hover { background: var(--az-hover); }
.vu-source-browser-changed-files .fi-icon { width: 1rem; height: 1rem; flex-shrink: 0; color: var(--vu-muted); }
.vu-source-browser-changed-files a > span { overflow-wrap: anywhere; min-width: 0; }
.vu-source-browser-changed-files small { margin-left: auto; color: var(--vu-muted); flex-shrink: 0; }
.vu-source-browser-diff-file { border: 1px solid var(--az-border); margin-bottom: 1.25rem; scroll-margin-top: 1rem; }
.vu-source-browser-diff-file > header { display: flex; align-items: center; gap: .5rem; padding: .25rem .65rem .25rem .25rem; background: var(--az-hover); min-width: 0; }
.vu-source-browser-diff-file h3 { font: .8rem/1.5 ui-monospace, SFMono-Regular, Consolas, monospace; min-width: 0; overflow-wrap: anywhere; flex: 1; }
.vu-source-browser-diff-file > header > span { flex-shrink: 0; }
.vu-source-browser-diff-collapsed { transform: rotate(-90deg); }
.vu-source-browser-diff-note { padding: 1.25rem; color: var(--vu-text); font-size: .95rem; }
.vu-source-browser-diff-lines { overflow: auto; }
.vu-source-browser-diff-lines table { border-collapse: collapse; width: 100%; }
.vu-source-browser-diff-lines td { font: .8rem/1.6 ui-monospace, SFMono-Regular, Consolas, monospace; padding: 0 .5rem; vertical-align: top; }
.vu-source-browser-diff-lines pre { font: inherit; white-space: pre; margin: 0; tab-size: 4; }
.vu-source-browser-diff-lines .vu-source-browser-diff-number { width: 3rem; min-width: 3rem; text-align: right; color: var(--vu-muted); user-select: none; border-right: 1px solid var(--az-border); }
.vu-source-browser-diff-added { background: rgba(30, 145, 75, .12); }
.vu-source-browser-diff-removed { background: rgba(210, 50, 65, .12); }
.vu-source-browser-diff-hunk { color: var(--vu-muted); background: var(--az-hover); }
@media (max-width: 1100px) {
    .vu-source-browser-overview { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
    .vu-source-browser-about { border-top: 1px solid var(--az-border); padding-top: 1.25rem; }
    .vu-source-browser-about-toggle { display: inline-flex; }
    .vu-source-browser-about dl { display: flex; flex-wrap: wrap; gap: 1.25rem; border-top: 0; padding-top: 0; }
    .vu-source-browser-about dl > div { gap: .5rem; }
    .vu-source-browser-latest-author { display: none; }
}
@media (max-width: 900px) {
    .vu-source-browser-workspace { display: flex; }
    .vu-source-browser-workspace > .vu-source-browser-content { flex: 1; padding: 1rem; }
    .vu-source-browser-tree { display: none; position: absolute; z-index: 25; inset: 0 auto 0 0; width: min(18rem, 85vw); background: var(--az-main); }
    .vu-source-browser-tree-open { display: block; }
    .vu-source-browser-tree-toggle, .vu-source-browser-tree-close { display: inline-flex; }
    .vu-source-browser-tree-shade { position: absolute; inset: 0; z-index: 24; background: rgba(0, 0, 0, .4); }
    .vu-source-browser-tree-shade:not([style*="display: none"]) { display: block; }
}
@media (max-width: 600px) {
    .vu-source-browser-toolbar { padding: .5rem .75rem; gap: .25rem; flex-wrap: wrap; }
    .vu-source-browser-ref > span { max-width: 7rem; }
    .vu-source-browser-breadcrumbs { width: 100%; order: 3; padding: .4rem .15rem .1rem; }
    .vu-source-browser-overview { padding: 1rem .75rem; }
    .vu-source-browser-workspace > .vu-source-browser-content { padding: 1rem .75rem; }
    .vu-source-browser-file-table-heading, .vu-source-browser-file-row { grid-template-columns: minmax(0, 1fr) 4rem; gap: .5rem; padding-inline: .75rem; }
    .vu-source-browser-file-change, .vu-source-browser-file-table-heading > span:nth-child(2) { display: none; }
    .vu-source-browser-latest { padding: .75rem; gap: .5rem; }
    .vu-source-browser-latest code { display: none; }
    .vu-source-browser-readme > .fi-prose, .vu-source-browser-markdown { padding: 1rem; }
    .vu-source-browser-file-controls { gap: .25rem; padding-inline: .35rem; }
    .vu-source-browser-file-controls > .vu-source-muted { font-size: .7rem; }
    .vu-source-browser-history-row { align-items: flex-start; flex-wrap: wrap; gap: .35rem; padding: .75rem; }
    .vu-source-browser-history-row > .vu-source-actions { margin-left: auto; }
    .vu-source-browser-view-heading h2 { font-size: 1.1rem; }
    .vu-source-browser-commit-meta > code { font-size: .7rem; max-width: calc(100% - 3rem); }
    .vu-source-browser-diff-lines .vu-source-browser-diff-number { width: 2.25rem; min-width: 2.25rem; padding-inline: .25rem; }
}
