/* Wspólne dla /ladder, /rank i admin.html: okno terminala w stylu RouterOS print + tabele monospace. */

.back-btn-plain { display:flex; align-items:center; gap:10px; text-decoration:none; -webkit-tap-highlight-color:transparent; }

.term-win { border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; background:var(--bg2); margin-bottom:auto; }
.term-bar { display:flex; align-items:center; gap:7px; padding:9px 12px; background:var(--bg3); border-bottom:1px solid var(--border); }
.term-dot { width:clamp(8px,1.4vw,10px); height:clamp(8px,1.4vw,10px); border-radius:50%; flex-shrink:0; opacity:0.7; }
.term-dot.r { background:var(--wrong-t); } .term-dot.y { background:var(--warn-t); } .term-dot.g { background:var(--correct-t); }
.term-bar-title { font-family:var(--mono); font-size:11px; color:var(--muted); margin-left:8px; }

.term-body { padding:clamp(12px,2.5vw,20px); font-family:var(--mono); overflow-x:auto; }
.term-line { font-size:clamp(11px,1.4vw,13px); color:var(--text); white-space:nowrap; margin-bottom:6px; }
.term-prompt { color:var(--accent); font-weight:700; }
.term-flags { color:var(--muted); margin-bottom:14px; }
.term-flags b { color:var(--text); }

/* generyczna, płaska tabela monospace — liczba/szerokość kolumn ustawia modyfikator
   (np. .score-table) przez grid-template-columns na .rt2-row */
.rt2-table { display:flex; flex-direction:column; font-family:var(--mono); font-size:clamp(11px,1.6vw,13px); min-width:min-content; }
.rt2-row { display:grid; gap:clamp(6px,1.5vw,14px); padding:clamp(7px,1.4vh,10px) 0; border-bottom:1px solid var(--border); align-items:center; }
.rt2-row:last-child { border-bottom:none; }
.rt2-head { font-size:10px; font-weight:700; color:var(--muted); letter-spacing:1px; padding-bottom:8px; }

.score-table .rt2-row { grid-template-columns: 0.5fr 2fr 1fr 0.8fr 1.6fr; }
.score-row .score-rank { color:var(--muted); }
.score-row.me { background:var(--bg3); }
.score-row .score-you { color:var(--accent); font-weight:700; margin-left:6px; }
.score-empty { color:var(--muted); font-size:12px; padding:16px 0; text-align:center; }

/* ── Top-3 /ladder — wyróżniony nick + plakietka "null0" (patrz js/ladder.js row()). ── */
.score-row.top1 .score-rank, .score-row.top1 .score-user {
  color:var(--accent); text-shadow:0 0 8px color-mix(in srgb, var(--accent) 55%, transparent); font-weight:800;
}
.score-row.top2 .score-rank, .score-row.top2 .score-user {
  color:var(--multi-t); text-shadow:0 0 8px color-mix(in srgb, var(--multi-t) 50%, transparent); font-weight:700;
}
.score-row.top3 .score-rank, .score-row.top3 .score-user {
  color:var(--warn-t); text-shadow:0 0 8px color-mix(in srgb, var(--warn-t) 50%, transparent); font-weight:700;
}
.null0-badge {
  margin-left:6px; font-size:9px; font-weight:800; letter-spacing:1px; text-transform:uppercase;
  padding:1px 5px; border-radius:3px; border:1px solid currentColor; vertical-align:middle;
}

/* ── admin.html: lista zgłoszeń błędów ── */
.bugs-table .rt2-row { grid-template-columns: 1fr 0.9fr 3fr 1fr 0.8fr 1.4fr; align-items:start; }
.bug-row .bug-msg { white-space:pre-wrap; word-break:break-word; }
.bug-row .bug-page, .bug-row .bug-user { color:var(--muted); }
.bug-status { font-weight:700; }
.bug-status.open { color:var(--warn-t); }
.bug-status.resolved { color:var(--correct-t); }
.bug-row-actions { display:flex; gap:6px; flex-wrap:wrap; }
.bug-row-actions .mode-btn { padding:4px 8px; font-size:11px; }

/* ── admin.html: lista kont (do testów/moderacji) ── */
.users-table .rt2-row { grid-template-columns: 1.4fr 1.4fr 0.7fr 0.7fr 1fr 2.2fr; align-items:center; }
.user-row .user-created { color:var(--muted); font-size:10px; }
.user-row-actions { display:flex; gap:6px; flex-wrap:wrap; align-items:center; }
.user-row-actions .mode-btn { padding:4px 8px; font-size:11px; }
.user-rank-select {
  background:var(--bg2); border:1px solid var(--border); border-radius:4px; color:var(--text);
  font-family:var(--mono); font-size:11px; padding:4px 6px;
}

/* ── /rank (ETAP 2) ── */
.rank-guest { font-family:var(--mono); font-size:12px; color:var(--muted); margin-bottom:8px; line-height:1.6; }
.rank-next { margin-top:10px; }
.rank-bar-track { position:relative; height:10px; border-radius:4px; background:var(--bg3); border:1px solid var(--border); margin:10px 0 14px; overflow:visible; }
.rank-bar-fill { height:100%; border-radius:4px; background:var(--accent); transition:width 0.2s ease; }
.rank-bar-tick { position:absolute; top:-3px; width:2px; height:16px; background:var(--border); transform:translateX(-1px); }
.rank-log { margin-top:6px; display:flex; flex-direction:column; gap:4px; max-height:260px; overflow-y:auto; }
.rank-log-row { font-family:var(--mono); font-size:11px; color:var(--muted); padding:4px 0; border-bottom:1px solid var(--border); }
.rank-log-row:last-child { border-bottom:none; }
.rank-log-empty { font-family:var(--mono); font-size:11px; color:var(--muted); padding:4px 0; }

/* Paski "odkryte" (porty/OSI) — dawniej osobne strony /ports i /osi, patrz js/rank.js renderDiscovery(). */
.rank-discovery-row { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.rank-discovery-track { height:6px; margin:4px 0 12px; }
.rank-discovery-reset { font-family:var(--mono); font-size:10px; color:var(--wrong-t); text-decoration:none; -webkit-tap-highlight-color:transparent; }
@media (hover:hover) { .rank-discovery-reset:hover { text-decoration:underline; } }
