:root{ --bg:#0f0f10; --panel:#19191b; --gold:#d4af37; --text:#e0e0e0; --muted:#909090; } *{box-sizing:border-box} html,body{height:100%} body{ margin:0; background:var(--bg); color:var(--text); font-family:Inter,system-ui,ui-sans-serif,Segoe UI,Roboto,Helvetica,Arial,sans-serif; overflow:hidden; } #app{display:grid; grid-template-columns:320px 1fr; height:100%} .sidebar{ background:var(--panel); border-right:1px solid rgba(212,175,55,.35); overflow:auto; padding:.75rem 1rem; } h1{margin:.25rem 0 .5rem; color:var(--gold); font-size:1.35rem; letter-spacing:.3px} .controls{display:flex; flex-direction:column; gap:.5rem; font-size:.92rem} select,input.search{ background:#0a0a0a; color:var(--text); border:1px solid rgba(212,175,55,.5); border-radius:6px; padding:.35rem .5rem; } input.search::placeholder{color:#777} nav{margin-top:.75rem} .file,.dir{ display:block; padding:.25rem .35rem; border-radius:6px; text-decoration:none; color:var(--text); cursor:pointer; user-select:none; } .file:hover,.dir:hover{background:rgba(212,175,55,.12)} .file.active{background:rgba(212,175,55,.18); outline:1px solid rgba(212,175,55,.25)} .pin{color:var(--gold); font-weight:600; margin-right:.25rem} .dir .label{display:flex; align-items:center} .dir .label::before{content:"▶"; margin-right:.45rem; font-size:.85em; color:var(--gold)} .dir.open .label::before{content:"▼"} .children{display:none; margin-left:1rem} .dir.open .children{display:block} .content{overflow:auto} .viewer{max-width:780px; margin:0 auto; padding:1.25rem 1rem 2.5rem} #meta{color:var(--muted); font-size:.92rem; margin:0 0 .75rem} iframe,#mdView{width:100%; border:none; background:transparent; color:var(--text)} iframe{height:calc(100vh - 5.5rem); min-height:550px} .md pre,.md code{background:#111; color:#f1cf6b; padding:.5rem .6rem; border-radius:6px; overflow-x:auto} .md img{max-width:100%} .error{margin-top:1rem; color:#ff6b6b; background:#2a1313; border:1px solid #7a2f2f; padding:.75rem .9rem; border-radius:8px} /* Mobile drawer */ .nav-toggle{ display:none; position:fixed; top:10px; left:10px; z-index:2000; background:var(--panel); color:var(--gold); border:1px solid var(--gold); border-radius:8px; padding:6px 10px; font-size:20px } .overlay{display:none; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:1100} @media (max-width:900px){ #app{grid-template-columns:1fr} .nav-toggle{display:block} .sidebar{ position:fixed; inset:0 auto 0 0; width:min(82vw,340px); transform:translateX(-100%); transition:transform .25s ease; z-index:1200 } .sidebar.open{transform:translateX(0)} .sidebar.open ~ .overlay{display:block} .content{overflow:auto} }