/* =============================================================
   CSCTF 2026 — TOTAL WARFARE  |  core.css
   CTFd-specific component overrides
   ============================================================= */

/* ── Graphs ────────────────────────────────────────────────── */
#score-graph      { min-height: 400px; display: block; clear: both; }
#solves-graph     { display: block; height: 350px; }
#keys-pie-graph   { min-height: 400px; display: block; }
#categories-pie-graph { min-height: 400px; display: block; }

/* ── Scoreboard table ──────────────────────────────────────── */
#scoreboard table { margin-bottom: 0; }

#scoreboard tbody tr:first-child td,
#scoreboard tbody tr:first-child th {
  color: #c8a84b;
}
#scoreboard tbody tr:nth-child(2) td,
#scoreboard tbody tr:nth-child(2) th {
  color: #9aa6b0;
}
#scoreboard tbody tr:nth-child(3) td,
#scoreboard tbody tr:nth-child(3) th {
  color: #8e6a4a;
}

/* Place column */
#scoreboard .table th[scope="row"] {
  font-family: var(--tw-font-head);
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--tw-text-secondary);
  min-width: 48px;
}

/* ── Challenge modal ───────────────────────────────────────── */
.chal-desc {
  padding: 0 0.4rem;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--tw-text);
}
.chal-desc img   { max-width: 100%; height: auto; }
.chal-desc pre   { font-size: 0.82em; }
.chal-desc a     { color: var(--tw-text-link); }
.chal-desc a:hover { color: var(--tw-amber-bright); }

/* ── Notification items ────────────────────────────────────── */
.notification-item {
  border-bottom: 1px solid var(--tw-border-dim);
  padding: 1rem 0;
}
.notification-item:last-child { border-bottom: none; }

/* ── Setup page ────────────────────────────────────────────── */
.setup-card {
  border-top: 2px solid var(--tw-amber);
}
.setup-step-label {
  font-family: var(--tw-font-head);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--tw-amber);
  margin-bottom: 0.25rem;
}

/* ── User/Team profile header ──────────────────────────────── */
.jumbotron .stat-block {
  display: inline-block;
  text-align: center;
  padding: 0 1.5rem;
}
.jumbotron .stat-block .stat-value {
  font-family: var(--tw-font-head);
  font-size: 2rem;
  font-weight: 700;
  color: var(--tw-amber-bright);
  display: block;
}
.jumbotron .stat-block .stat-label {
  font-family: var(--tw-font-head);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--tw-text-secondary);
}

/* ── Config / Settings page ────────────────────────────────── */
.config-section-title {
  font-family: var(--tw-font-head);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--tw-amber);
  border-bottom: 1px solid var(--tw-border);
  padding-bottom: 0.4rem;
  margin-bottom: 1rem;
}

/* ── Solve time ────────────────────────────────────────────── */
.solve-time span {
  font-family: var(--tw-font-mono);
  font-size: 0.82rem;
  color: var(--tw-text-secondary);
}

/* ── Hints / awarded hints ─────────────────────────────────── */
.hint-content {
  background: var(--tw-bg-input);
  border: 1px solid var(--tw-amber-dim);
  padding: 0.8rem 1rem;
  font-family: var(--tw-font-mono);
  font-size: 0.86rem;
  color: var(--tw-amber-bright);
}

/* ── Registration / Login ──────────────────────────────────── */
.auth-panel {
  max-width: 440px;
  margin: 0 auto;
  padding: 0.5rem 0;
}

/* MLC OAuth button */
.btn-mlc {
  background-color: transparent;
  border: 1px solid var(--tw-steel);
  color: #5a9ec8;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-family: var(--tw-font-head);
  letter-spacing: 0.08em;
}
.btn-mlc:hover {
  background-color: var(--tw-steel);
  color: #b8d8f0;
  border-color: var(--tw-steel-bright);
}

/* ── Country flags ─────────────────────────────────────────── */
.flag-icon { display: inline-block; }

/* ── Award icons ───────────────────────────────────────────── */
.award-first  { color: #c8a84b; }
.award-second { color: #9aa6b0; }
.award-third  { color: #8e6a4a; }

/* ── Error pages ───────────────────────────────────────────── */
.tw-error-page {
  display: flex;
  align-items: center;
  min-height: 65vh;
  padding: 3rem 0;
  text-align: center;
}
.tw-error-code {
  font-family: var(--tw-font-head);
  font-size: clamp(5rem, 15vw, 10rem);
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--tw-amber-dim);
  line-height: 1;
  opacity: 0.5;
  margin-bottom: 0.5rem;
}
.tw-error-title {
  font-family: var(--tw-font-head);
  font-size: 1.6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--tw-text);
  margin-bottom: 0.8rem;
}
.tw-error-msg {
  color: var(--tw-text-secondary);
  font-size: 0.94rem;
  max-width: 420px;
  margin: 0 auto;
}

/* ── Challenge modal: attachment links ─────────────────────── */
.chal-files a {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  border: 1px solid var(--tw-border);
  padding: 3px 10px;
  font-family: var(--tw-font-mono);
  font-size: 0.82rem;
  color: var(--tw-text-link);
  margin: 2px;
  transition: border-color 0.18s, color 0.18s;
}
.chal-files a:hover { border-color: var(--tw-amber); color: var(--tw-amber-bright); }

/* ── Challenge modal: tags ─────────────────────────────────── */
.challenge-tags .badge {
  background: transparent !important;
  border: 1px solid var(--tw-border);
  color: var(--tw-text-secondary) !important;
}

/* ── Submission result alerts ──────────────────────────────── */
#submission-notifications .alert {
  border-radius: 0 !important;
  font-family: var(--tw-font-head);
  font-size: 0.88rem;
  letter-spacing: 0.04em;
}

/* ── Scoreboard top rows ───────────────────────────────────── */
.tw-top1 td, .tw-top1 th { border-left: 2px solid #c8a84b; }
.tw-top2 td, .tw-top2 th { border-left: 2px solid #9aa6b0; }
.tw-top3 td, .tw-top3 th { border-left: 2px solid #8e6a4a; }

/* ── Settings: vertical pill nav ──────────────────────────── */
.settings-nav .nav-link {
  border-left: 2px solid transparent;
  padding: 0.55rem 1rem;
}
.settings-nav .nav-link.active {
  border-left-color: var(--tw-amber);
  background-color: var(--tw-bg-card) !important;
  color: var(--tw-amber-bright) !important;
}
.settings-nav .nav-link:not(.active):hover {
  border-left-color: var(--tw-border);
  background-color: var(--tw-bg-card-hover);
}

/* ── Invite link input ─────────────────────────────────────── */
#team-invite-link {
  font-family: var(--tw-font-mono);
  font-size: 0.82rem;
  color: var(--tw-green-bright) !important;
}

/* ── Scrollbar ─────────────────────────────────────────────── */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--tw-bg-base); }
::-webkit-scrollbar-thumb { background: var(--tw-border); }
::-webkit-scrollbar-thumb:hover { background: var(--tw-amber-dim); }
