/* The public Kernum repository layout, painted with the existing KVORIN terminal palette. */
.source-layout{display:grid;grid-template-columns:minmax(420px,56%) minmax(0,1fr);gap:14px;width:100%;height:calc(100dvh - var(--system-shell-offset,164px));min-height:540px;color:var(--vell-text,#fff);font-family:'Roboto Mono',monospace;font-size:12px;box-sizing:border-box}
.source-layout *{box-sizing:border-box}.source-layout button,.source-layout a{font:inherit}.source-layout a{color:inherit;text-decoration:none}.source-layout button{cursor:pointer}.source-layout button:disabled{opacity:.5;cursor:default}.source-layout button:focus-visible,.source-layout a:focus-visible,.source-code-scroll:focus-visible{outline:2px dashed var(--vell-accent,#0ff);outline-offset:-4px}.source-layout ::selection{background:var(--vell-accent,#0ff);color:var(--vell-bg,#110aff)}
.source-left{display:grid;grid-template-rows:minmax(310px,53%) minmax(0,1fr);gap:14px;min-width:0;min-height:0}.source-focused .source-left{display:block}.source-explorer{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;min-width:0;min-height:0;height:100%;overflow:hidden;border:1px solid var(--vell-border,#fff);background:var(--vell-panel,#080477)}
.source-repo-head{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:13px 14px 12px;border-bottom:1px solid var(--vell-border,#fff)}.source-mark{display:grid;width:36px;height:36px;place-items:center;border:2px solid var(--vell-border,#fff);font-size:27px;color:var(--vell-accent,#0ff)}.source-title{min-width:0}.source-title small{display:block;font-size:8px;letter-spacing:.08em;color:var(--vell-muted,#bcb9ff)}.source-title h1{margin:3px 0 0;font-size:16px;font-weight:600;letter-spacing:-.03em}.source-repo-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px}.source-repo-actions a,.source-public{display:inline-block;padding:5px 7px;border:1px solid var(--vell-border,#fff);font-size:8px;letter-spacing:.04em;white-space:nowrap}.source-public{color:var(--vell-muted,#bcb9ff)}.source-repo-actions a:hover{color:var(--vell-bg,#110aff);background:var(--vell-accent,#0ff)}.source-repo-actions .source-open-system{color:var(--vell-bg,#110aff);background:var(--vell-text,#fff)}.source-repo-actions .source-open-system:hover{background:var(--vell-accent,#0ff)}.source-repo-meta{display:flex;align-items:center;gap:16px;padding:8px 14px;border-bottom:1px solid var(--vell-border,#fff);font-size:9px;color:var(--vell-muted,#bcb9ff);background:var(--vell-bg,#110aff)}.source-repo-meta span:first-child{color:var(--vell-accent,#0ff)}.source-repo-meta a{margin-left:auto;color:var(--vell-accent,#0ff)}.source-repo-meta a:hover{text-decoration:underline}
.source-tree{overflow:auto;overscroll-behavior:contain;padding:8px 7px 12px;scrollbar-width:thin;scrollbar-color:var(--vell-accent,#0ff) var(--vell-panel,#080477)}.source-tree-row{display:flex;width:100%;min-height:29px;align-items:center;gap:7px;padding:4px 8px;color:var(--vell-text,#fff);background:transparent;border:0;text-align:left}.source-tree-row:hover{background:var(--vell-hover,#211aff)}.source-tree-row.is-active{background:var(--vell-accent,#0ff);color:var(--vell-bg,#110aff)}.source-chevron{flex:0 0 9px;font-size:9px;color:var(--vell-muted,#bcb9ff);transition:transform .15s}.source-tree-row.is-open .source-chevron{transform:rotate(90deg)}.source-file-icon{flex:0 0 14px;font-size:10px;color:var(--vell-muted,#bcb9ff)}.source-file-name{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.source-file-kind{margin-left:auto;font-size:8px;color:var(--vell-muted,#bcb9ff)}.source-tree-row.is-active .source-file-kind,.source-tree-row.is-active .source-file-icon{color:var(--vell-bg,#110aff)}.source-repo-foot{display:flex;gap:12px;padding:8px 13px;border-top:1px solid var(--vell-border,#fff);font-size:8px;letter-spacing:.04em;color:var(--vell-muted,#bcb9ff)}.source-repo-foot span:nth-child(2){color:var(--vell-accent,#0ff)}.source-repo-foot span:last-child{margin-left:auto;text-align:right}
.source-dev-note{min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;padding:17px 19px 20px;border:1px solid var(--vell-border,#fff);background:var(--vell-bg,#110aff);scrollbar-width:thin;scrollbar-color:var(--vell-muted,#bcb9ff) var(--vell-bg,#110aff)}.source-dev-note .label{display:flex;align-items:center;gap:10px;font-size:9px;letter-spacing:.13em;color:var(--vell-accent,#0ff)}.source-dev-note .label:after{content:'';height:1px;flex:1;background:var(--vell-divider,#ffffff40)}.source-dev-note .label span{color:var(--vell-muted,#bcb9ff)}.source-dev-note p{margin:10px 0 0;font:12px/1.6 Arial,sans-serif;color:var(--vell-text-secondary,#d8d6ff)}.source-dev-note .lead{color:var(--vell-text,#fff);font:600 14px/1.4 Arial,sans-serif;letter-spacing:-.01em}.source-dev-note .project{margin-top:22px}.source-dev-note h2{margin:12px 0 0;font:600 15px/1.4 Arial,sans-serif;letter-spacing:-.01em;color:var(--vell-text,#fff)}.source-dev-note h3{margin:21px 0 0;font-size:9px;font-weight:500;letter-spacing:.1em;color:var(--vell-accent,#0ff)}.source-dev-note ol{margin:10px 0 0;padding:0;list-style:none;counter-reset:flow}.source-dev-note li{position:relative;margin:7px 0;padding-left:27px;color:var(--vell-text-secondary,#d8d6ff);font:12px/1.6 Arial,sans-serif;counter-increment:flow}.source-dev-note li:before{content:counter(flow,decimal-leading-zero);position:absolute;left:0;font:9px/1.8 monospace;color:var(--vell-muted,#bcb9ff)}.source-dev-note li b{font-weight:600}.source-dev-note .tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.source-dev-note .tags span{padding:4px 6px;border:1px solid var(--vell-border,#fff);font-size:8px;letter-spacing:.04em;color:var(--vell-text-secondary,#d8d6ff)}.source-dev-note .signature{margin-top:22px;padding-top:12px;border-top:1px solid var(--vell-border,#fff);font:9px/1.6 monospace;letter-spacing:.04em;color:var(--vell-muted,#bcb9ff)}
.source-workspace{display:grid;grid-template-rows:45px 32px minmax(0,1fr) 26px 24px;min-width:0;min-height:0;overflow:hidden;border:1px solid var(--vell-border,#fff);background:var(--vell-code-bg,var(--vell-panel,#080477))}.source-work-head{display:grid;grid-template-columns:55px minmax(0,1fr) 76px;align-items:center;border-bottom:1px solid var(--vell-border,#fff);background:var(--vell-bg,#110aff)}.source-lights{display:flex;gap:6px;padding-left:15px}.source-lights i{width:6px;height:6px;background:var(--vell-muted,#bcb9ff)}.source-lights i:first-child{background:var(--vell-accent,#0ff)}.source-current-path{overflow:hidden;text-align:center;font-size:11px;text-overflow:ellipsis;white-space:nowrap;color:var(--vell-text,#fff)}.source-copy{justify-self:end;margin-right:12px;padding:5px 9px;border:1px solid var(--vell-border,#fff);font-size:8px!important;letter-spacing:.08em;color:var(--vell-text,#fff);background:transparent}.source-copy:hover,.source-copy.is-copied{background:var(--vell-accent,#0ff);color:var(--vell-bg,#110aff)}.source-toolbar{display:flex;align-items:center;gap:15px;padding:0 14px;border-bottom:1px solid var(--vell-border,#fff);font-size:8px;letter-spacing:.08em;color:var(--vell-muted,#bcb9ff);background:var(--vell-bg,#110aff)}.source-toolbar span:first-child{color:var(--vell-text,#fff)}.source-toolbar span:nth-child(2){margin-left:auto}.source-code-scroll{min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--vell-muted,#bcb9ff) var(--vell-panel,#080477)}.source-code{min-width:max-content;margin:0;padding:16px 0 80px;font:12px/1.75 'Roboto Mono',Consolas,monospace;tab-size:2;color:var(--vell-code-text,var(--vell-text,#fff))}.source-code-line{display:block;min-height:21px;padding-right:28px}.source-code-line:hover{background:var(--vell-hover,#211aff)}.source-code-line code{font:inherit}.source-line-number{display:inline-block;width:48px;margin-right:16px;padding-right:12px;border-right:1px solid var(--vell-divider,#ffffff40);text-align:right;user-select:none;color:var(--vell-muted,#bcb9ff)}.source-comment{color:var(--vell-code-comment,#bcb9ff);font-style:italic}.source-string{color:var(--vell-code-string,#0ff)}.source-reader-state{padding:24px;font-size:11px;color:var(--vell-muted,#bcb9ff)}.source-reader-state button{padding:8px 12px;margin-top:10px;color:var(--vell-bg,#110aff);background:var(--vell-text,#fff);border:1px solid var(--vell-border,#fff)}.source-work-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 12px;border-top:1px solid var(--vell-border,#fff);font-size:8px;letter-spacing:.05em;color:var(--vell-muted,#bcb9ff);background:var(--vell-bg,#110aff)}.source-fingerprint{display:flex;align-items:center;gap:12px;min-width:0;padding:0 12px;border-top:1px solid var(--vell-divider,#ffffff40);font-size:8px;color:var(--vell-muted,#bcb9ff)}.source-fingerprint code{overflow:hidden;font:inherit;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:1200px) and (min-width:821px){.source-repo-head{grid-template-columns:36px minmax(0,1fr)}.source-repo-actions{grid-column:1/-1}.source-layout{grid-template-columns:minmax(350px,52%) minmax(0,1fr)}}
@media(max-width:820px){.source-layout{grid-template-columns:minmax(0,1fr);height:auto;min-height:0;gap:12px}.source-left{grid-template-rows:440px auto;gap:12px}.source-focused .source-left{height:440px}.source-dev-note{max-height:620px}.source-workspace{height:72dvh;min-height:460px}.source-repo-head{grid-template-columns:36px minmax(0,1fr)}.source-repo-actions{grid-column:1/-1}.source-repo-meta{gap:12px}}
@media(max-width:480px){.source-layout{gap:9px}.source-left{gap:9px;grid-template-rows:420px auto}.source-focused .source-left{height:420px}.source-repo-head{padding:10px}.source-repo-actions{gap:5px;flex-wrap:wrap}.source-repo-meta span:nth-child(3){display:none}.source-repo-foot{gap:8px;font-size:7px}.source-dev-note{padding:17px 15px}.source-line-number{width:38px;margin-right:12px}.source-work-head{grid-template-columns:40px minmax(0,1fr) 70px}.source-lights{gap:4px;padding-left:9px}.source-toolbar{gap:10px;padding-inline:10px}.source-work-foot{padding-inline:8px;font-size:7px}.source-code{font-size:11px}}
@media(prefers-reduced-motion:reduce){.source-chevron{transition:none}}
/* White computer window surfaces retain the desktop's blue labels and grey secondary text. */
.source-explorer{background:var(--vell-panel,#fff);color:var(--vell-text-on-light,#110aff);border-color:var(--vell-border-strong,#fff)}
.source-repo-head,.source-repo-foot{border-color:var(--vell-border-on-light,#110aff40)}
.source-mark{color:var(--vell-text-on-light,#110aff);border-color:var(--vell-text-on-light,#110aff)}
.source-title small{color:var(--vell-text-secondary-on-light,#475467)}
.source-repo-actions a,.source-public{border-color:var(--vell-border-on-light,#110aff40)}
.source-public,.source-repo-foot{color:var(--vell-text-muted-on-light,#667085)}
.source-repo-actions .source-download{background:var(--vell-blue,#110aff);color:var(--vell-white,#fff)}
.source-repo-actions .source-open-system{color:var(--vell-text-on-light,#110aff);background:var(--vell-panel,#fff)}
.source-repo-actions a:hover{background:var(--vell-focus,#0ff);color:var(--vell-text-on-light,#110aff)}
.source-repo-meta{background:var(--vell-bg-secondary,#e8e7ff);color:var(--vell-text-on-light,#110aff);border-color:var(--vell-border-on-light,#110aff40)}
.source-repo-meta span:first-child,.source-repo-meta a,.source-repo-foot span:nth-child(2){color:var(--vell-text-on-light,#110aff)}
.source-tree-row{color:var(--vell-text-on-light,#110aff)}
.source-tree-row:hover{background:var(--vell-accent-hover,#e5e4ff)}
.source-tree-row.is-active{background:var(--vell-selected-bg,#110aff);color:var(--vell-selected-text,#fff)}
.source-chevron,.source-file-icon{color:var(--vell-text-secondary-on-light,#475467)}
.source-file-kind{color:var(--vell-text-muted-on-light,#667085)}
.source-tree-row.is-active .source-file-kind,.source-tree-row.is-active .source-file-icon{color:var(--vell-selected-text,#fff)}
.source-dev-note .label,.source-dev-note h3{color:var(--vell-accent-on-blue,#fff)}
.source-layout button:focus-visible,.source-layout a:focus-visible,.source-code-scroll:focus-visible{outline-color:var(--vell-focus,#0ff)}
.source-lights i:first-child{background:var(--vell-success,#abe06d)}
.source-copy:hover,.source-copy.is-copied{color:var(--vell-button-text,#110aff);background:var(--vell-button-bg,#fff)}
.source-code-line:hover{background:var(--vell-accent-soft,#ffffff1a)}
.source-reader-state button{background:var(--vell-button-bg,#fff);color:var(--vell-button-text,#110aff)}
/* At the end of the note on mobile, continue the existing page scroll toward its code viewer. */
@media(max-width:820px){.source-dev-note{overscroll-behavior-y:auto}}
