.file-reader{display:flex;flex-direction:column;min-width:0;height:100%;overflow:hidden;color:var(--text);background:var(--canvas)}
.file-toolbar{display:flex;flex-wrap:wrap;gap:4px;align-items:center;padding:8px;border-bottom:1px solid var(--line);flex-shrink:0}.file-toolbar input{width:160px;min-width:100px}.file-toolbar a{padding:6px;text-decoration:none}.file-status{font-size:12px;color:var(--muted);overflow-wrap:anywhere;padding:6px 12px;margin:0}.file-status.error{color:var(--danger)}
.file-reader-body{flex:1;min-height:0;overflow:auto;padding:16px;scrollbar-gutter:stable}.file-markdown{max-width:808px;margin:0 auto}.file-markdown img{max-width:100%}.file-markdown pre{position:relative}.file-markdown pre>button{float:right}.file-outline{display:flex;flex-direction:column;font-size:12px;padding:8px 0 16px;gap:5px;border-bottom:1px solid var(--line);margin-bottom:20px}.file-outline a{color:var(--muted)}
.file-source{counter-reset:file-line;font-family:var(--font-code);font-size:13px;line-height:1.6;white-space:pre;margin:0}.file-source-line{display:block;min-height:1.6em;counter-increment:file-line}.file-source-line:before{content:counter(file-line);display:inline-block;width:4.5em;padding-right:1em;color:var(--quiet);text-align:right;user-select:none}.file-source-line.selected{background:var(--accent-soft)}.file-source mark{background:var(--warning-soft);color:var(--text)}
.file-split{display:grid;grid-template-columns:1fr 1fr;gap:20px}.file-split>*{min-width:0;overflow:auto}.file-image,.file-media{max-width:100%;display:block;margin:auto}.file-pdf{width:100%;height:100%;min-height:500px;border:0}
.files-page{height:100dvh;overflow:hidden;display:flex;flex-direction:column;margin:0}.files-head{display:flex;align-items:center;gap:16px;padding:12px;border-bottom:1px solid var(--line);min-height:48px}.files-head strong{flex:1;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.files-head a{white-space:nowrap}.files-head button{display:none}#filePageStatus{font-size:12px;padding:4px 12px;margin:0;color:var(--muted)}#fileWorkspace{flex:1;min-height:0}#siteControls{padding:12px;background:var(--surface);flex-shrink:0}#siteControls[hidden]{display:none}#siteControls label{display:inline-block;width:min(40%,500px);margin-right:8px}#siteControls input{width:100%}
.file-workspace{display:grid;grid-template-columns:260px minmax(0,1fr);height:100%;min-height:0}.file-tree{border-right:1px solid var(--line);overflow:auto;padding:8px;font-size:12px;background:var(--surface)}.file-tree-row summary{cursor:pointer;padding:5px;white-space:nowrap}.file-tree-row button{text-align:left;width:100%;border-radius:0;font-size:12px;white-space:nowrap}.file-tree-children{padding-left:14px;border-left:1px solid var(--line)}.file-tabs-area{min-height:0;display:flex;flex-direction:column;min-width:0}.file-tabbar{display:flex;overflow-x:auto;border-bottom:1px solid var(--line);flex-shrink:0;min-height:38px}.file-tab{display:flex;border-right:1px solid var(--line);white-space:nowrap}.file-tab.selected{background:var(--accent-soft);box-shadow:inset 0 2px var(--accent)}.file-tab-panes{flex:1;min-height:0;position:relative}.file-tab-pane{height:100%}.file-tab-pane[hidden]{display:none}
#nodeFileDialog.file-dock{position:fixed;inset:var(--header-height) 0 0 auto;width:min(48vw,800px);height:calc(100dvh - var(--header-height));max-width:none;max-height:none;margin:0;border:0;border-left:1px solid var(--line);border-radius:0;box-shadow:var(--shadow-float);padding:0;z-index:50}#nodeFileDialog.file-dock .node-file-dialog-shell{height:100%;display:flex;flex-direction:column}#nodeFileDialog.file-dock .node-file-dialog-head{flex-shrink:0;padding:12px}#nodeFileReader{flex:1;min-height:0}body.file-reader-open .conversation-card{margin-right:min(48vw,800px)}
@media(max-width:1000px){#nodeFileDialog.file-dock{inset:0;width:100%;height:100dvh;max-height:100dvh}body.file-reader-open .conversation-card{margin-right:0}.file-workspace{grid-template-columns:minmax(0,1fr)}.file-tree{display:none}.file-tree-visible .file-workspace{grid-template-columns:180px minmax(0,1fr)}.file-tree-visible .file-tree{display:block}.files-head button{display:block}.file-split{display:block}.file-split>*{margin-bottom:24px}}
@media(forced-colors:active){.file-tab.selected,.file-source-line.selected{outline:1px solid Highlight}}

.file-reader[hidden], #nodeFileReader[hidden]{display:none}#nodeFileDialog.file-dock .node-file-dialog-shell{max-height:none}
.syntax-keyword{color:var(--accent)}.syntax-string{color:var(--good)}.syntax-comment{color:var(--quiet)}
