/* ── File Explorer Modal ── */ .fe-overlay { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.6); display: flex; align-items: center; justify-content: center; z-index: 1000; } .fe-modal { background: var(--f2-bg); border: var(--border-width) solid var(--f2-border); border-radius: var(--border-radius); overflow: hidden; width: 90vw; max-width: 1100px; height: 80vh; display: flex; flex-direction: column; } .fe-header { display: flex; align-items: center; justify-content: space-between; padding: .5em; border-bottom: var(--border-width) solid var(--f1-border); background: var(--f1-bg); flex-shrink: 0; } .fe-nav { display: flex; align-items: center; gap: .5em; flex: 1; overflow: hidden; } .fe-path { opacity: var(--semi-transparent); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .fe-body { display: flex; flex: 1; overflow: hidden; } .fe-sidebar { width: 280px; min-width: 200px; border-right: var(--border-width) solid var(--f1-border); overflow-y: auto; background: var(--f1-bg); flex-shrink: 0; } .fe-sidebar-full { width: 100%; } .fe-main { flex: 1; overflow: hidden; display: flex; } .fe-item { padding: .5em 1em; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .fe-item:hover { background: var(--f2-bg); } .fe-item.active { background: var(--f3-bg); border-left: 2px solid var(--primary); } .fe-dir { color: var(--text); } .fe-file { color: var(--text); } .fe-loading, .fe-error, .fe-empty, .fe-placeholder { padding: 1em; text-align: center; opacity: var(--semi-transparent); align-self: center; margin: auto; } /* Preview */ .fe-preview { display: flex; flex: 1; overflow: hidden; } .fe-line-numbers { padding: .5em; background: var(--f1-bg); color: var(--text); opacity: var(--semi-transparent); text-align: right; overflow: hidden; user-select: none; border-right: var(--border-width) solid var(--f1-border); flex-shrink: 0; min-width: 3em; } .fe-line-numbers div { height: 1.5em; } .fe-textarea { flex: 1; border: none; background: var(--f2-bg); color: var(--text); line-height: 1.5; padding: .5em; outline: none; overflow-y: auto; white-space: pre; tab-size: 4; height: auto; min-height: unset; max-height: unset; } .fe-textarea:hover { border-color: transparent; } .fe-textarea::selection { background: rgba(180, 68, 17, 0.35); } /* Footer */ .fe-footer { display: flex; align-items: center; justify-content: space-between; padding: .5em .5em .5em 1em; border-top: var(--border-width) solid var(--f1-border); background: var(--f1-bg); flex-shrink: 0; gap: .5em; } .fe-info { opacity: var(--semi-transparent); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; }