/* DAISY virtual workstation: the same window chrome, one file volume and two TUI faces. */
.window-github { width:min(970px,calc(100% - 22px)); height:min(695px,calc(100% - 14px));min-height:0; }
.github-explorer {display:flex;flex-direction:column;min-height:0;flex:1;background:#101a38;color:#dbe9ff;font:11px/1.45 'IBM Plex Mono',monospace;overflow:hidden}
.github-head,.github-address {display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:9px 11px;background:#122554;border-bottom:1px solid #4566aa}
.github-head button,.github-head a,.github-actions button,.github-address button {font:700 10px 'IBM Plex Mono',monospace;cursor:pointer;border:1px solid #6c85c3;background:#14265b;color:#ddebff;padding:8px 10px;text-decoration:none;min-width:0}
.github-head button[aria-pressed=true],.github-head button:hover,.github-actions button:not(:disabled):hover {background:#f6e965;color:#12234b;border-color:#fff6a4}
.github-repos{display:flex;gap:5px;flex-wrap:wrap}
.github-head a:hover{color:#ffea61;border-color:#ffea61}
.github-address {justify-content:flex-start;background:#0c193d;color:#8ecbea;padding:6px 10px}
#gh-location{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#gh-branch{color:#ffe85e}
.github-layout {display:grid;grid-template-columns:minmax(160px,32%) minmax(0,1fr);flex:1;min-height:0;overflow:hidden}
.github-tree{border-right:1px solid #4c6492;display:flex;flex-direction:column;min-height:0;overflow:hidden;background:#09152e}
.github-tree>.gh-pane-title{flex:0 0 auto}
.gh-pane-title {font:700 10px 'IBM Plex Mono',monospace;padding:11px;color:#ffe86a;letter-spacing:.06em;border-bottom:1px solid #344b7b}
.github-file-list {flex:1 1 auto;min-height:0;padding:8px 6px;display:flex;flex-direction:column;gap:3px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#6580b8 #09152e}
.gh-file{display:block;flex:0 0 auto;box-sizing:border-box;width:100%;min-height:34px;font:11px/1.55 'IBM Plex Mono',monospace;letter-spacing:0;text-align:left;border:1px solid transparent;background:transparent;color:#e2edff;padding:7px 8px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;appearance:none;-webkit-appearance:none}
.gh-file.is-directory,.gh-file.gh-up{color:#ffe997}
.gh-file:focus-visible{outline:1px solid #ffe997;outline-offset:-2px}
.gh-file:hover,.gh-file:focus-visible{background:#263d76;border-color:#7a9cea;outline:none}
.github-view{min-height:0;display:flex;flex-direction:column;min-width:0}
.github-content{flex:1;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;color:#bcebe9;background:linear-gradient(155deg,#101d3e,#080f26);padding:16px;font:11px/1.68 'IBM Plex Mono',monospace;margin:0;tab-size:2}
.github-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px;background:#0c183a;border-top:1px solid #4566aa}
.github-actions button:not(:disabled){border-color:#e4d97f;color:#fff1a0}
.github-actions button:disabled{opacity:.45;cursor:not-allowed}
#gh-message{font-size:10px;color:#9cb8de;min-width:0;overflow-wrap:anywhere}
.terminal-stage{position:relative;display:flex;min-height:0;flex:1;overflow:hidden;background:#0b1028}
.terminal-stage .kitty-terminal{flex:1;min-height:0;width:100%;height:100%}
.terminal-stage .kitty-terminal.is-virtual-background{visibility:hidden;pointer-events:none}
.virtual-apps{position:absolute;inset:0;background:#080f24;color:#e2e8ff;display:flex;flex-direction:column;min-height:0;z-index:2;overflow:hidden;font:11px/1.5 'IBM Plex Mono',monospace}
.virtual-apps[hidden],.virtual-edit-area[hidden],.virtual-list-area[hidden] {display:none!important}
.virtual-head{display:flex;align-items:center;justify-content:space-between;gap:9px;flex-wrap:wrap;padding:7px 9px;background:#17234b;border-bottom:1px solid #6278a1}
.virtual-path{color:#fff17b;font-size:10px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.virtual-path span{color:#bcd2f3;margin-left:6px}
.virtual-head-actions{display:flex;gap:5px;flex-wrap:wrap}
.virtual-head button,.virtual-file-tools button{font:700 10px 'IBM Plex Mono',monospace;border:1px solid #627eb9;color:#e6f1fa;background:#15244b;padding:6px 9px;cursor:pointer}
.virtual-head button:hover,.virtual-file-tools button:hover{background:#fae978;color:#142045}
.virtual-workspace{min-height:0;flex:1;display:grid;grid-template-columns:minmax(118px,25%) minmax(0,1fr)}
.virtual-sidebar{background:#0a1630;border-right:1px solid #40598a;min-height:0;overflow:auto;padding:6px}
.virtual-section-name{font-size:9px;font-weight:700;color:#ffed83;padding:9px 5px;border-bottom:1px solid #3c507e;margin-bottom:8px}
#vf-tree{display:flex;flex-direction:column;gap:2px}
.virtual-item{border:1px solid transparent;background:transparent;color:#d5e4f9;font:11px/1.4 'IBM Plex Mono',monospace;text-align:left;padding:8px 6px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.virtual-item:hover,.virtual-item:focus-visible{background:#2a3765;border-color:#8baff9;outline:none}.virtual-item.is-current{background:#ffee79;color:#13204a}
.virtual-main{min-height:0;min-width:0;display:flex;flex-direction:column}
.virtual-tab-strip{display:flex;justify-content:space-between;background:#1a2754;padding:8px 12px;color:#f9e970;font-size:10px;border-bottom:1px solid #3c5793}
#vf-state{color:#9eefd0}
.virtual-edit-area{display:flex;flex:1;min-height:0;overflow:hidden;background:#0a1022}
.virtual-lines{min-width:37px;padding:15px 7px;text-align:right;overflow:hidden;color:#52709f;white-space:pre;font:12px/1.7 monospace;user-select:none;border-right:1px solid #1c3052}
#vf-editor{flex:1;min-width:0;min-height:0;resize:none;border:0;outline:none;background:transparent;color:#e2ecff;padding:15px;font:12px/1.7 'IBM Plex Mono',monospace;white-space:pre;tab-size:2}
#vf-editor:focus-visible{box-shadow:inset 0 0 0 1px #f9ed7b}
.virtual-list-area{display:flex;flex:1;min-height:0;flex-direction:column;overflow:hidden}
.virtual-file-tools{display:flex;gap:4px;flex-wrap:wrap;padding:7px;background:#0d1938;border-bottom:1px solid #395389}
.virtual-list{display:flex;flex-direction:column;gap:1px;overflow:auto;min-height:70px;max-height:42%;padding:5px}
.virtual-list .virtual-item{border-bottom:1px solid #243357}
.virtual-preview{flex:1;overflow:auto;background:#070e22;color:#c5ddd9;padding:12px;margin:0;font:11px/1.65 monospace;white-space:pre-wrap;overflow-wrap:anywhere;border-top:1px solid #3b568a}
.virtual-status{display:flex;justify-content:space-between;gap:8px;padding:7px 9px;background:#15234b;border-top:1px solid #536da0;color:#99c9dd;font-size:9px}
.virtual-status span:first-child{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
@media(max-width:760px){
 .window-github{height:100%;width:100%;min-height:0}
 .github-head{padding:6px;gap:5px}.github-head button,.github-head a{font-size:9px;padding:6px}
 .github-layout{grid-template-columns:38% minmax(0,1fr)}.github-content{font-size:10px;padding:8px}.gh-file{font-size:10px;min-height:32px;padding:6px 5px}
 .github-actions{padding:6px}.github-actions button{padding:7px;font-size:9px}.github-address{font-size:9px}
 .virtual-workspace{grid-template-columns:105px minmax(0,1fr)}.virtual-head{padding:5px}.virtual-head button{padding:5px;font-size:9px}
 .virtual-path{font-size:9px;max-width:95%}.virtual-item{font-size:9px;padding:7px 3px}
 #vf-editor{font-size:11px;padding:8px}.virtual-lines{font-size:11px;padding:8px 4px;min-width:29px}
 .virtual-file-tools{padding:4px}.virtual-file-tools button{font-size:9px;padding:6px}
 .virtual-status{font-size:8px}
}

/* DAISY GITHUB VIEWER // rich Markdown & simulated TypeScript highlighting */
.gh-view-header{display:flex;align-items:center;justify-content:space-between;min-width:0;min-height:36px;background:#09172f;border-bottom:1px solid #344b7b;gap:8px}
.gh-view-header .gh-pane-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:0;flex:1}
.gh-view-modes{display:flex;flex:0 0 auto;gap:4px;padding:3px 8px}
.gh-view-modes[hidden]{display:none}
.gh-view-modes button{border:1px solid #465b91;background:#132a58;color:#c2dafa;font:700 9px/1.3 'IBM Plex Mono',monospace;padding:6px 8px;cursor:pointer;white-space:nowrap}
.gh-view-modes button[aria-pressed=true],.gh-view-modes button:hover{background:#ffe86a;color:#111e43;border-color:#fff2a0}
.github-content{white-space:normal;line-height:1.65;overflow-x:hidden}
.github-content .gh-plain-source,.github-content .gh-code-view{margin:0;white-space:pre;overflow-x:auto;overflow-y:visible;max-width:100%;tab-size:2;font:11px/1.65 'IBM Plex Mono',monospace;color:#d4eff3}
.github-content .gh-plain-source{white-space:pre-wrap;overflow-wrap:anywhere}
.github-content .gh-code-highlight{font:inherit}
.gh-syn-keyword{color:#ff84b3;font-weight:600}
.gh-syn-string{color:#ffe089}
.gh-syn-number,.gh-syn-decorator{color:#f5b57d}
.gh-syn-type{color:#78ddeb}
.gh-syn-comment{color:#7790aa;font-style:italic}
.gh-syn-punctuation{color:#b9c8ee}
.gh-markdown{color:#d9e6fc;font:12px/1.72 'IBM Plex Mono',monospace;overflow-wrap:anywhere;max-width:100%}
.gh-markdown > :first-child{margin-top:0}
.gh-markdown h1,.gh-markdown h2,.gh-markdown h3,.gh-markdown h4,.gh-markdown h5,.gh-markdown h6{color:#fff189;font-weight:700;line-height:1.28;letter-spacing:-.02em;margin:1.5em 0 .6em}
.gh-markdown h1{font-size:clamp(21px,2.4vw,30px);border-bottom:1px solid #5067a6;padding-bottom:12px}
.gh-markdown h2{font-size:clamp(16px,1.8vw,21px);border-bottom:1px solid #2d4679;padding-bottom:7px}
.gh-markdown h3{font-size:15px;color:#90eeec}
.gh-markdown h4,.gh-markdown h5,.gh-markdown h6{font-size:12px}
.gh-markdown p{margin:.4em 0 1.15em;line-height:1.82}
.gh-markdown strong{color:#fff4b4}.gh-markdown em{color:#f3abc2}.gh-markdown del{opacity:.65}
.gh-markdown a{color:#8ae8fa;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#75d5ee88;overflow-wrap:anywhere}
.gh-markdown a:hover{color:#ffea67}
.gh-markdown ul,.gh-markdown ol{padding-left:23px;margin:.45em 0 1.1em}
.gh-markdown li{padding:2px 0;line-height:1.7}.gh-markdown li::marker{color:#ffe76c}
.gh-markdown input[type=checkbox]{accent-color:#ffe76c;margin:0 7px 0 0;vertical-align:middle}
.gh-markdown .gh-md-inline-code{padding:2px 5px;background:#253964;color:#ffe591;border:1px solid #3d527e;border-radius:3px;font:11px 'IBM Plex Mono',monospace}
.gh-markdown .gh-md-pre{padding:14px 16px;margin:12px 0 19px;background:#050d22;border:1px solid #384d80;border-left:3px solid #fbe873;overflow-x:auto;white-space:pre;tab-size:2}
.gh-markdown .gh-md-pre code{white-space:pre;font:11px/1.6 'IBM Plex Mono',monospace}
.gh-markdown .gh-md-quote{border-left:3px solid #c96b97;background:#20345c;padding:10px 13px;margin:1em 0;color:#c0d6ef}
.gh-markdown .gh-md-quote p{margin:0}
.gh-markdown .gh-md-hr{border:0;border-top:1px dashed #536d9f;margin:20px 0}
.gh-markdown .gh-md-image{display:block;max-width:100%;height:auto;margin:10px 0;border:1px solid #415992;background:#081529}
.gh-markdown .gh-md-table{border-collapse:collapse;display:block;width:max-content;max-width:100%;overflow:auto;margin:12px 0 19px;font-size:11px}
.gh-markdown th,.gh-markdown td{padding:9px 12px;border:1px solid #526ca0;vertical-align:top;min-width:75px}
.gh-markdown th{background:#29427a;color:#fff2a4;font-weight:700}
.gh-markdown tbody tr:nth-child(odd){background:#18274b}
.gh-markdown tbody tr:nth-child(even){background:#0d1c3c}
@media(max-width:760px){.gh-markdown{font-size:11px}.gh-markdown h1{font-size:20px}.gh-markdown h2{font-size:16px}.gh-markdown .gh-md-pre,.github-content .gh-code-view{font-size:10px}.gh-view-modes button{font-size:8px;padding:5px}}
@media(prefers-reduced-motion:reduce){.gh-markdown *{scroll-behavior:auto!important}}
/* Safe HTML badges and header art from public Markdown files. */
.gh-markdown .gh-md-html{margin:8px 0 14px;max-width:100%;overflow-wrap:anywhere}
.gh-markdown .gh-md-centered{text-align:center}
.gh-markdown .gh-md-html img{display:inline-block;max-width:100%;max-height:290px;object-fit:contain;margin:3px 4px;vertical-align:middle}
.gh-markdown .gh-md-html p{margin:.5em 0}
.gh-markdown .gh-md-html a{display:inline-block}
.gh-markdown .gh-md-html a img{max-height:72px}
.gh-markdown .gh-md-html details{padding:10px;border:1px solid #4c638d;background:#112147}
.gh-markdown .gh-md-html summary{color:#ffe36c;cursor:pointer}
