/* styles.css (shared with the main chart page) sets html,body to
   height:100%/overflow:hidden — right for the chart's fixed single-screen
   canvas, wrong here where content genuinely grows taller than the
   viewport as more admin sections get added. */
html, body { height:auto; min-height:100%; overflow:visible; }
body { background:var(--bg); color:var(--text); font-family:'JetBrains Mono', monospace; }

#adminTopbar {
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding: 12px 20px;
  background: var(--bg-raised);
  border-bottom: 1px solid var(--border);
}
#adminTopbar .brand { font-weight:700; font-size:15px; color:var(--accent); letter-spacing:0.5px; }
#adminTopbar .brand span { color:var(--text-dim); font-weight:400; }
#backLink { color:var(--text-dim); font-size:12.5px; text-decoration:none; }
#backLink:hover { color:var(--text); }

#adminBody { max-width:900px; margin:0 auto; padding:28px 20px; }

#adminLoading, #adminDenied { color:var(--text-dim); font-size:13px; }
#adminDenied h2 { color:var(--down); font-size:18px; margin-bottom:10px; }

.stat-cards { display:flex; gap:14px; margin-bottom:28px; }
.stat-card {
  flex:1; background:var(--bg-raised); border:1px solid var(--border); border-radius:8px;
  padding:16px 18px;
}
.stat-label { font-size:11px; text-transform:uppercase; letter-spacing:0.6px; color:var(--text-faint); margin-bottom:8px; }
.stat-value { font-size:28px; font-weight:700; color:var(--accent); }

.admin-section { margin-bottom:28px; }
.admin-section h3 {
  font-size:12.5px; text-transform:uppercase; letter-spacing:0.6px; color:var(--text-dim);
  margin-bottom:10px; font-weight:600;
}

table { width:100%; border-collapse:collapse; background:var(--bg-raised); border:1px solid var(--border); border-radius:8px; overflow:hidden; }
th, td { text-align:left; padding:9px 14px; font-size:12.5px; border-bottom:1px solid var(--border); }
th { color:var(--text-faint); font-weight:600; text-transform:uppercase; font-size:10.5px; letter-spacing:0.5px; }
tbody tr:last-child td { border-bottom:none; }
tbody tr:hover { background:var(--bg-hover); }
td.bar-cell { position:relative; }
.bar-track { position:relative; height:6px; background:var(--bg-sunken); border-radius:3px; overflow:hidden; margin-top:6px; }
.bar-fill { position:absolute; inset:0 auto 0 0; background:var(--accent); border-radius:3px; }

.hidden { display:none; }

.admin-hint { font-size:10.5px; color:var(--text-faint); text-transform:none; letter-spacing:0; font-weight:400; }
.mono { color:var(--text-dim); font-size:11.5px; }
.visitor-row { cursor:pointer; }

.qm-form:not(.hidden) { display:flex; flex-wrap:wrap; align-items:end; gap:14px; margin-bottom:12px; }
.qm-form label {
  display:flex; flex-direction:column; gap:5px;
  font-size:10.5px; text-transform:uppercase; letter-spacing:0.5px; color:var(--text-faint);
}
.qm-form input, .qm-form select {
  font-family:inherit; font-size:12.5px; padding:7px 9px; border-radius:6px;
  background:var(--bg-raised); border:1px solid var(--border); color:var(--text);
}
.qm-form input[type="number"] { width:90px; }
.qm-advanced-toggle { align-self:end; }
.qm-advanced { padding:12px 14px; background:var(--bg-raised); border:1px solid var(--border); border-radius:8px; }
#qmStatus { margin:6px 0 14px; min-height:14px; }
#qmSummary { margin-bottom:10px; }
.qm-dir-long { color:var(--up); font-weight:600; }
.qm-dir-short { color:var(--down); font-weight:600; }
.qm-result-win { color:var(--up); font-weight:600; }
.qm-result-loss { color:var(--down); font-weight:600; }
.qm-result-open { color:var(--accent); font-weight:600; }

.visitor-modal-panel { max-width:560px; width:92vw; }
.visitor-timeline { display:flex; flex-direction:column; gap:2px; max-height:60vh; overflow-y:auto; }
.timeline-row {
  display:grid; grid-template-columns:150px 130px 1fr; gap:10px; align-items:baseline;
  padding:7px 4px; border-bottom:1px solid var(--border); font-size:11.5px;
}
.timeline-row:last-child { border-bottom:none; }
.timeline-time { color:var(--text-faint); font-size:10.5px; white-space:nowrap; }
.timeline-type { color:var(--accent); font-weight:600; }
.timeline-detail { color:var(--text-dim); overflow-wrap:anywhere; }
