.loras-page { overflow: hidden; height: 100vh; display: flex; flex-direction: column; }
.loras-page header { flex-shrink: 0; }
.loras-page header .back { color: var(--blue); text-decoration: none; margin-right: 8px; }
.loras-page header nav { margin-left: auto; display: flex; gap: 6px; flex-wrap: wrap; }
.loras-page header button.primary { border-color: #00F5FF; color: #00F5FF; }
#loras-toolbar {
  flex-shrink: 0; display: flex; flex-wrap: wrap; gap: 12px; align-items: center;
  padding: 10px 16px; border-bottom: 1px solid var(--border); background: var(--card);
}
#loras-toolbar label { font-size: 12px; color: var(--muted); display: flex; align-items: center; gap: 8px; }
#loras-toolbar select { background: #0d1117; color: var(--fg); border: 1px solid var(--border); border-radius: 6px; padding: 6px 8px; }
#stats { margin: 0; }
#progress-wrap {
  flex-shrink: 0; padding: 8px 16px 10px; border-bottom: 1px solid var(--border); background: var(--card);
}
#progress-bar {
  height: 10px; border-radius: 6px; background: #21262d; overflow: hidden;
}
#progress-fill {
  display: block; height: 100%; width: 0; background: #00F5FF; transition: width 0.3s ease;
}
#progress-label { margin: 6px 0 0; font-size: 12px; color: var(--muted); }
#folder-panel {
  flex-shrink: 0; border-bottom: 1px solid var(--border); background: #10151c;
  padding: 10px 16px 12px; max-height: 34vh; overflow: auto;
}
#folder-panel.folded { max-height: none; }
#folder-panel.folded .folder-tree { display: none; }
.folder-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px; margin-bottom: 8px; }
.folder-head h2 { margin: 0; font-size: 14px; color: #00F5FF; }
#btn-fold-panel { font-size: 12px; padding: 4px 8px; }
.folder-tree { display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: flex-start; }
.folder-group {
  min-width: 180px; background: var(--card); border: 1px solid var(--border);
  border-radius: 10px; padding: 8px 10px;
  display: flex; flex-wrap: wrap; align-items: center; gap: 4px;
}
.folder-group .subs { width: 100%; }
.folder-group .root-lab {
  display: flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; cursor: pointer;
}
.folder-group .fold-sub {
  margin-left: auto; font-size: 11px; padding: 2px 6px; color: var(--muted);
}
.folder-group.folded .subs { display: none; }
.folder-group .subs { margin: 6px 0 0 18px; display: flex; flex-direction: column; gap: 4px; }
.folder-group .subs label {
  display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--fg); cursor: pointer;
}
.folder-group .subs label.off { color: var(--muted); }
#loras-main { flex: 1; display: flex; min-height: 0; }
#loras-log-wrap {
  width: 320px; flex-shrink: 0; border-right: 1px solid var(--border);
  display: flex; flex-direction: column; background: var(--card);
}
#loras-log-wrap .head { padding: 10px 12px 6px; font-size: 12px; color: var(--muted); }
#log {
  flex: 1; margin: 0; padding: 8px 12px; overflow: auto; font-size: 11px;
  white-space: pre-wrap; color: #9aa4b2; background: #0d1117;
}
#loras-list-wrap { flex: 1; min-width: 0; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.table-scroll { flex: 1; min-height: 0; overflow: auto; }
.list-bar { display: flex; gap: 8px; padding: 10px 12px; border-bottom: 1px solid var(--border); }
.list-bar input, .list-bar select {
  background: #0d1117; color: var(--fg); border: 1px solid var(--border);
  border-radius: 6px; padding: 6px 8px; font: inherit; font-size: 13px;
}
.list-bar input { flex: 1; }
#loras-list-wrap table { width: 100%; border-collapse: collapse; font-size: 13px; }
#loras-list-wrap th, #loras-list-wrap td {
  text-align: left; padding: 6px 10px; border-bottom: 1px solid #21262d; vertical-align: top;
}
#loras-list-wrap th { color: var(--muted); font-weight: 600; font-size: 11px; letter-spacing: 0.04em; position: sticky; top: 0; background: var(--card); z-index: 1; }
.status-done { color: #3fb950; }
.status-pending { color: #d29922; }
.status-thin { color: #8b949e; }
.status-error { color: #f85149; }
.hint { font-size: 12px; color: var(--muted); }
#loras-list-wrap tbody tr { cursor: pointer; }
#loras-list-wrap tbody tr:hover { background: #1c2128; }
#loras-list-wrap tbody tr.on { background: #13261c; }
#detail {
  flex-shrink: 0; max-height: 38%; overflow: auto;
  border-top: 1px solid var(--border); padding: 10px 14px; background: #10151c;
}
#detail h3 { margin: 0 0 4px; font-size: 15px; }
#detail h4 { margin: 10px 0 4px; font-size: 11px; color: #00F5FF; letter-spacing: 0.04em; text-transform: uppercase; }
.detail-body { margin: 0; white-space: pre-wrap; font-size: 12px; color: var(--fg); }
