:root{
  --bg:#0f1115; --panel:#171a21; --muted:#a9b0bf; --text:#e6e8ef; --accent:#4f8cff; --warn:#ffcc66; --danger:#ff6b6b; --border:#2a2f3a;
}
*{box-sizing:border-box}
html,body,#app{height:100%}
body{margin:0;font:14px/1.4 system-ui, -apple-system, Segoe UI, Roboto; color:var(--text); background:var(--bg)}
.topbar,.bottombar{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--panel);border-bottom:1px solid var(--border)}
.bottombar{justify-content:space-between;border-top:1px solid var(--border);border-bottom:none}
.main{height:calc(100% - 100px);padding:14px}
.explorer{height:100%;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:8px;background:#12151c}
.explorer.drop{outline:2px dashed var(--accent); outline-offset:-6px}
.explorer-toolbar{display:flex;gap:8px;padding:10px;border-bottom:1px solid var(--border);align-items:center}
.spacer{flex:1}
.btn{background:#222735;color:var(--text);border:1px solid var(--border);padding:8px 12px;border-radius:6px;cursor:pointer}
.btn.small{padding:4px 8px;font-size:12px}
.btn.primary{background:var(--accent);border-color:transparent;color:#fff}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn.block{display:block;width:100%}
.status{color:var(--muted)}
.search{flex:0 0 320px;background:#0f1320;border:1px solid var(--border);border-radius:6px;color:var(--text);padding:8px}
.warning{color:#000;background:var(--warn);padding:8px 12px}
.hidden{display:none}

.tree{flex:1;overflow:auto}
.tree.placeholder{display:flex;align-items:center;justify-content:center;color:var(--muted)}
.placeholder-content{text-align:center}
.placeholder-content .icon{font-size:48px;margin-bottom:6px}
/* Vertical list view */
.vlist{padding:6px 10px}
.vrow{display:flex;align-items:flex-start;gap:8px;padding:6px;border-radius:6px}
.vrow:hover{background:#181c26}
.vrow .toggle{cursor:pointer;color:#7280a7;width:20px;text-align:center;flex:0 0 20px;font-size:20px;line-height:1}
.vrow .checkbox{flex:0 0 auto;margin-top:2px}
.vrow .drag{cursor:grab;color:#7280a7;flex:0 0 auto}
.vrow .vname{font-weight:600; flex:1 1 auto; min-width:0; white-space:normal; overflow-wrap:anywhere}
.vfile .vname{font-weight:400}
.vrow .vpath{white-space:normal;overflow-wrap:anywhere}
.vrow .meta{color:var(--muted);font-size:12px;margin-left:auto}
.vrow .spacer{width:20px; flex:0 0 20px}
.vrow{padding-left: calc(var(--depth, 0) * 10px)}
.vchildren{border-left:2px solid #202838;margin-left:8px}
.vchildren > .vfolder, .vchildren > .vrow{margin-left:0}
.vfolder{margin:2px 0}
.dragover{outline:1px dashed var(--accent)}

.modal{background:#0f1320;border:1px solid var(--border);border-radius:8px;color:var(--text);padding:0;width:min(520px, 92vw)}
.modal::backdrop{background:rgba(0,0,0,.5)}
.modal h3{margin:0;padding:14px;border-bottom:1px solid var(--border)}
.modal .modal-body{padding:14px;display:flex;flex-direction:column;gap:10px}
.modal .modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:10px;border-top:1px solid var(--border)}
.modal .field{display:flex;flex-direction:column;gap:6px}
.modal .field input{background:#0b0f19;border:1px solid var(--border);border-radius:6px;color:var(--text);padding:8px}
.modal .hint{color:var(--muted);font-size:12px}

.progress{flex:0 0 160px;height:8px;background:#22263a;border-radius:999px;overflow:hidden}
.progress .bar{height:100%;width:0;background:var(--accent)}

/* Downloads panel */
.downloads{position:fixed;bottom:16px;right:16px;width:min(420px, 92vw);background:#0b0f19;border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.35);overflow:hidden;z-index:1000}
.downloads-header{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border)}
.downloads-header .title{font-weight:600}
.downloads-list{list-style:none;margin:0;padding:6px 8px;max-height:40vh;overflow:auto}
.downloads-list li{display:flex;align-items:center;gap:8px;padding:6px 6px;border-radius:6px}
.downloads-list li:hover{background:#121724}
.downloads-list .name{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.downloads-list .actions{display:flex;gap:6px}

/* Floating action button when minimized */
.fab{position:fixed;bottom:16px;right:16px;width:52px;height:52px;border-radius:50%;border:1px solid var(--border);background:#0b0f19;color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(0,0,0,.35);z-index:1000}
.fab:hover{background:#121724}

/* Donation tip */
.donation-tip{position:fixed;top:12px;right:14px;z-index:900;background:#0b0f19;border:1px solid var(--border);border-radius:8px;box-shadow:0 6px 18px rgba(0,0,0,.3);padding:8px 28px 8px 10px;max-width:min(360px, 92vw)}
.donation-toggle{appearance:none;background:transparent;border:none;color:var(--text);cursor:pointer;font-size:13px;text-align:left;padding:0}
.donation-toggle:hover{text-decoration:underline}
.donation-details{margin-top:8px;padding:8px;border:1px dashed var(--border);border-radius:6px;background:#0f1320}
.donation-row{display:flex;align-items:center;gap:8px;margin:4px 0}
.donation-row .coin{font-weight:600;flex:0 0 auto}
.donation-row .addr{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;word-break:break-all}
.donation-close{position:absolute;top:6px;right:6px;appearance:none;background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:16px;line-height:1}
.donation-close:hover{color:#fff}

/* Responsive tweaks */
@media (max-width: 700px){
  .search{flex:1 1 auto;min-width:0}
  .explorer-toolbar{flex-wrap:wrap}
}
