:root{--bg:#0d1117;--bg-secondary:#161b22;--bg-hover:#1f2428;--text:#c9d1d9;--text-muted:#8b949e;--accent:#58a6ff;--accent-hover:#79b8ff;--red:#f85149;--border:#30363d;--mono:'JetBrains Mono','Fira Code','SF Mono',Consolas,monospace;}body[data-theme="light"]{--bg:#f2eee8;--bg-secondary:#e9e4dd;--bg-hover:#e0dbd7;--text:#191616;--text-muted:#4c4a46;--accent:#0064bc;--accent-hover:#0b516e;--red:#f85149;--border:#cfc9c2;}*{box-sizing:border-box;margin:0;padding:0;}body{font-family:var(--mono),serif;font-size:14px;background:var(--bg);color:var(--text);line-height:1.5;min-height:100vh;display:flex;flex-direction:column;}a{color:var(--accent);text-decoration:none;}a:hover{color:var(--accent-hover);text-decoration:underline;}header{border-bottom:1px solid var(--border);padding:1rem 0;}footer{border-top:1px solid var(--border);padding:1rem;margin-top:auto;display:flex;align-content:center;}footer p{padding:0 0.5rem;}nav{max-width:900px;margin:0 auto;padding:0 1.5rem;display:flex;justify-content:space-between;align-items:center;}.logo{font-weight:600;font-size:1rem;color:var(--text);text-decoration:none;}.logo:hover{color:var(--accent);text-decoration:none;}.nav-links{display:flex;gap:1.5rem;}.nav-links a{color:var(--text-muted);font-size:0.85rem;}.nav-links a:hover,.nav-links a.active{color:var(--accent);text-decoration:none;}main{max-width:900px;margin:0 auto;padding:2rem 1.5rem;width:100%;}h1{font-size:1rem;font-weight:600;margin-bottom:1.5rem;color:var(--text-muted);}.breadcrumb{font-size:0.85rem;color:var(--text-muted);margin-bottom:1rem;padding:0.75rem 0;border-bottom:1px solid var(--border);}.breadcrumb a{color:var(--accent);}.breadcrumb span{color:var(--text-muted);}.file-list{display:flex;flex-direction:column;}.file-item{display:flex;align-items:center;gap:0.75rem;padding:0.5rem 0;color:var(--text);text-decoration:none;border-bottom:1px solid var(--border);}.file-item:last-child{border-bottom:none;}.file-item:hover{background:var(--bg-hover);margin:0 -0.5rem;padding:0.5rem;border-radius:4px;border-color:transparent;}.file-item .icon{opacity:0.7;width:18px;height:18px;flex-shrink:0;}.file-item .icon svg{width:100%;height:100%;}.file-item .name{flex:1;color:var(--accent);}.file-item:hover .name{text-decoration:underline;}.file-item.directory .name{color:var(--text);}.file-item .size{color:var(--text-muted);font-size:0.8rem;min-width:70px;text-align:right;}.file-item .date{color:var(--text-muted);font-size:0.8rem;min-width:120px;text-align:right;}.preview-container{max-width:100%;}.preview-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border);flex-wrap:wrap;}.preview-header h1{font-size:1rem;font-weight:600;color:var(--text);margin:0;word-break:break-all;}.preview-actions{display:flex;gap:0.5rem;}.preview-info{display:flex;gap:1.5rem;font-size:0.8rem;color:var(--text-muted);margin-bottom:1.5rem;}.preview-content{background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;overflow:hidden;}.preview-content img{max-width:100%;max-height:80vh;display:block;margin:0 auto;}.preview-content video{width:100%;max-height:80vh;display:block;}.preview-content audio{width:100%;padding:2rem;}.preview-content iframe{width:100%;height:80vh;border:none;}.preview-content .text-preview{padding:1rem;margin:0;overflow-x:auto;font-size:0.85rem;line-height:1.6;color:var(--text);max-height:70vh;overflow-y:auto;white-space:pre-wrap;word-wrap:break-word;}.preview-content .no-preview{padding:4rem 2rem;text-align:center;color:var(--text-muted);}.preview-content .no-preview p{margin-bottom:1.5rem;}.btn{display:inline-flex;align-items:center;gap:0.5rem;padding:0.4rem 0.8rem;background:transparent;color:var(--text-muted);border:1px solid var(--border);border-radius:4px;cursor:pointer;font-family:var(--mono),"serif";font-size:0.8rem;text-decoration:none;transition:all 0.15s;}.btn.primary{background:var(--accent);color:var(--bg);border-color:var(--accent);}.btn:hover{color:var(--text);border-color:var(--text-muted);text-decoration:none;}.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--bg);}.error{text-align:center;padding:4rem 1rem;}.error h1{font-size:3rem;color:var(--text-muted);margin-bottom:0.5rem;}.error p{color:var(--text-muted);margin-bottom:2rem;}.btn svg{width:14px;height:14px;}@media(max-width:600px){.file-item .date{display:none;}.preview-header{flex-direction:column;align-items:flex-start;}}