/* Listenly admin styling — same design language as the public landing,
   scoped to .ll-admin so it never bleeds into the rest of the app. */
.ll-admin {
  --ll-ink: #0d0d0f;
  --ll-paper: #f5f3ee;
  --ll-cream: #ede9e0;
  --ll-line: rgba(13,13,15,0.1);
  --ll-lime: #c8f55a;
  --ll-muted: #7a7870;
  --ll-danger: #e84040;
  --ll-head: 'Bebas Neue', Impact, sans-serif;
}
.ll-admin h1, .ll-admin h2, .ll-admin h3 { font-family: var(--ll-head); letter-spacing: 1px; }

.ll-counters { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 8px; margin: 24px 0; }
.ll-counter { background: var(--ll-cream); border: 1px solid var(--ll-line); padding: 14px 16px; }
.ll-counter-num { font-family: var(--ll-head); font-size: 32px; line-height: 1; letter-spacing: 1px; }
.ll-counter-label { font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ll-muted); margin-top: 4px; }

.ll-table-wrap { background: var(--ll-paper); border: 1px solid var(--ll-line); }
.ll-table { width: 100%; border-collapse: collapse; }
.ll-table th, .ll-table td { padding: 12px 14px; text-align: left; font-size: 13px; border-bottom: 1px solid var(--ll-line); }
.ll-table th { background: var(--ll-cream); font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ll-muted); }
.ll-table tr:last-child td { border-bottom: none; }
.ll-table tr:hover td { background: rgba(13,13,15,0.02); }

.ll-status { display: inline-block; padding: 3px 10px; font-size: 11px; font-weight: 700; letter-spacing: 0.05em; background: rgba(13,13,15,0.08); color: var(--ll-muted); }
.ll-status--paid { background: rgba(200,245,90,0.25); color: #4a6a00; }
.ll-status--query_generated { background: rgba(13,13,15,0.85); color: var(--ll-lime); }
.ll-status--in_execution { background: rgba(13,13,15,0.85); color: var(--ll-lime); }
.ll-status--results_received { background: rgba(46,204,113,0.15); color: #1d7c43; }
.ll-status--in_review { background: rgba(255,180,0,0.15); color: #8a5a00; }
.ll-status--delivered { background: var(--ll-lime); color: var(--ll-ink); }
.ll-status--cancelled { background: rgba(232,64,64,0.12); color: var(--ll-danger); }

.ll-btn { display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; font-size: 12px; font-weight: 600; cursor: pointer; border: none; letter-spacing: 0.04em; text-decoration: none; transition: all 0.15s; }
.ll-btn-dark { background: var(--ll-ink); color: var(--ll-lime); }
.ll-btn-dark:hover { background: #1a1a2e; color: var(--ll-lime); }
.ll-btn-lime { background: var(--ll-lime); color: var(--ll-ink); }
.ll-btn-lime:hover { background: #b5e040; }
.ll-btn-outline { background: transparent; color: var(--ll-ink); border: 1px solid var(--ll-line); }
.ll-btn-outline:hover { border-color: var(--ll-ink); }
.ll-btn-danger { background: transparent; color: var(--ll-danger); border: 1px solid rgba(232,64,64,0.3); }
.ll-btn:disabled { opacity: 0.4; cursor: not-allowed; }

.ll-detail-grid { display: grid; grid-template-columns: 1fr 320px; gap: 24px; margin-top: 24px; }
@media (max-width: 960px) { .ll-detail-grid { grid-template-columns: 1fr; } }

.ll-card { background: var(--ll-paper); border: 1px solid var(--ll-line); padding: 24px; margin-bottom: 16px; }
.ll-card-dark { background: var(--ll-ink); color: var(--ll-paper); border-color: var(--ll-ink); }
.ll-card-cream { background: var(--ll-cream); }

.ll-card h2 { font-size: 22px; margin-bottom: 6px; }
.ll-card h3 { font-size: 16px; letter-spacing: 0.5px; margin-bottom: 12px; }
.ll-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 24px; font-size: 13px; }
.ll-meta-item label { display: block; font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ll-muted); margin-bottom: 2px; }
.ll-meta-item span, .ll-meta-item strong { font-size: 13px; }

.ll-query-box { background: var(--ll-paper); border: 1px solid var(--ll-line); padding: 14px 16px; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 13px; word-break: break-all; line-height: 1.7; max-height: 240px; overflow-y: auto; }
.ll-card-dark .ll-query-box { background: rgba(255,255,255,0.05); color: rgba(255,255,255,0.9); border-color: rgba(255,255,255,0.1); }

.ll-upload-zone { border: 2px dashed var(--ll-line); padding: 40px; text-align: center; background: var(--ll-cream); cursor: pointer; }
.ll-upload-zone:hover { border-color: var(--ll-ink); }

.ll-editor { width: 100%; min-height: 320px; background: var(--ll-paper); border: 1px solid var(--ll-line); padding: 16px; font-family: inherit; font-size: 14px; line-height: 1.7; resize: vertical; }
.ll-editor:focus { border-color: var(--ll-ink); outline: none; }

.ll-ai-bar { display: flex; gap: 8px; flex-wrap: wrap; margin: 12px 0; }

.ll-progress { display: flex; flex-direction: column; gap: 12px; margin-top: 8px; }
.ll-progress-step { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; }
.ll-progress-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--ll-line); margin-top: 6px; flex-shrink: 0; }
.ll-progress-step.done .ll-progress-dot { background: var(--ll-lime); }
.ll-progress-step.current .ll-progress-dot { background: var(--ll-ink); box-shadow: 0 0 0 4px rgba(13,13,15,0.1); }
.ll-progress-step.muted { color: var(--ll-muted); }

.ll-files-list { list-style: none; padding: 0; margin: 0; }
.ll-files-list li { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid var(--ll-line); font-size: 13px; }
.ll-files-list li:last-child { border-bottom: none; }
