/* Admin layout. Uses the same tokens as the public theme, so a client
   restyle of theme.css carries over without touching this file. */

.admin-main { padding: var(--rw-space-5) 0 120px; }
.admin-user { margin-left: auto; display: flex; align-items: center; gap: var(--rw-space-3); flex-wrap: wrap; }
.brand .badge { margin-left: var(--rw-space-1); }

.login { display: grid; place-items: center; min-height: 60vh; }
.login-card { width: 100%; max-width: 400px; padding: var(--rw-space-6) var(--rw-space-5); }
.login-card h1 { font-size: var(--rw-text-xl); }
.shake { animation: rw-shake .35s; }
@keyframes rw-shake { 25% { transform: translateX(-6px); } 75% { transform: translateX(6px); } }

.field { display: grid; gap: var(--rw-space-1); font-size: var(--rw-text-sm); font-weight: 600; margin-bottom: var(--rw-space-3); min-width: 0; }
.field input, .rename-in, .prize-in {
  width: 100%; min-width: 0; font: inherit; font-weight: 400; color: var(--rw-text);
  background: var(--rw-bg); border: 1px solid var(--rw-border); border-radius: var(--rw-radius-sm);
  padding: 9px 11px;
}
.field input:disabled { color: var(--rw-muted); background: var(--rw-surface-2); cursor: not-allowed; }
.field input:focus, .rename-in:focus, .prize-in:focus { outline: 2px solid var(--rw-accent); outline-offset: 0; border-color: transparent; }
.hint { font-weight: 400; color: var(--rw-muted); font-size: 0.8rem; }
.pass-wrap, .input-suffix { display: flex; gap: var(--rw-space-2); align-items: center; }
.input-suffix .cur { color: var(--rw-muted); font-size: var(--rw-text-sm); font-weight: 600; }
.form-error { color: var(--rw-danger); min-height: 1.2em; font-size: var(--rw-text-sm); }

.dash-head { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--rw-space-4); flex-wrap: wrap; }
.banners .notice { margin: var(--rw-space-2) 0; }

.stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--rw-space-3); margin: var(--rw-space-4) 0; }
.stat { padding: var(--rw-space-4); box-shadow: none; }
.stat span { display: block; color: var(--rw-muted); font-size: var(--rw-text-sm); }
.stat b { font-size: var(--rw-text-lg); overflow-wrap: anywhere; }

.admin-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--rw-space-4); }
.panel { padding: var(--rw-space-5); margin-bottom: var(--rw-space-4); box-shadow: none; min-width: 0; }
.panel h2 { font-size: var(--rw-text-lg); }
.panel h3 { font-size: var(--rw-text-base); margin-top: var(--rw-space-4); }
.panel-head { display: flex; justify-content: space-between; align-items: center; gap: var(--rw-space-3); margin-bottom: var(--rw-space-3); flex-wrap: wrap; }
.panel-head h2 { margin: 0; }
.form-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: var(--rw-space-3); }
.inline-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--rw-space-3); margin-bottom: var(--rw-space-3); }

.danger {
  display: flex; justify-content: space-between; align-items: center; gap: var(--rw-space-4);
  margin-top: var(--rw-space-4); padding: var(--rw-space-4); border-radius: var(--rw-radius);
  border: 1px solid color-mix(in srgb, var(--rw-danger) 35%, transparent); background: var(--rw-danger-soft);
}
.danger h3 { margin: 0 0 var(--rw-space-1); }
.danger p { margin: 0; font-size: var(--rw-text-sm); }

.table-scroll { overflow-x: auto; max-width: 100%; }
.admin-table { width: 100%; border-collapse: collapse; font-size: var(--rw-text-sm); }
.admin-table th, .admin-table td { padding: var(--rw-space-2); border-bottom: 1px solid var(--rw-border); text-align: left; vertical-align: middle; }
.admin-table th { color: var(--rw-muted); font-weight: 600; }
.admin-table .prize-in { width: 7.5rem; padding: 6px 8px; }
.admin-table.nested { margin: var(--rw-space-2) 0; background: var(--rw-bg); border-radius: var(--rw-radius-sm); }
.rank-chip { font-weight: 700; }
.rank-chip[data-rank="1"] { color: var(--rw-gold); }
.rank-chip[data-rank="2"] { color: var(--rw-silver); }
.rank-chip[data-rank="3"] { color: var(--rw-bronze); }
.icon-btn {
  width: 28px; height: 28px; border-radius: var(--rw-radius-sm); border: 1px solid var(--rw-border);
  background: var(--rw-surface); color: var(--rw-muted); cursor: pointer; font-size: 1rem; line-height: 1;
}
.icon-btn:hover:not(:disabled) { color: var(--rw-danger); border-color: var(--rw-danger); }
.icon-btn:disabled { opacity: .4; cursor: not-allowed; }
.sum-line { font-size: var(--rw-text-sm); margin-top: var(--rw-space-3); }
.sum-line .ok { color: var(--rw-success); font-weight: 600; }
.sum-line .warn { color: var(--rw-warn); font-weight: 600; }
.row-actions { white-space: nowrap; text-align: right; }
.row-actions .btn + .btn { margin-left: var(--rw-space-1); }
.rename-form { display: flex; gap: var(--rw-space-1); align-items: center; }
.rename-in { padding: 4px 8px; }
.was { display: block; font-size: 0.75rem; }
.player .was { display: inline; margin-left: var(--rw-space-1); }
.mini { display: flex; align-items: center; gap: var(--rw-space-1); white-space: nowrap; }
.mini .player-name { max-width: 12ch; overflow: hidden; text-overflow: ellipsis; }
.drow > td { background: var(--rw-surface-2); }

.kv { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--rw-space-3); margin: 0; }
.kv dt { color: var(--rw-muted); font-size: var(--rw-text-sm); }
.kv dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.pill { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 0.75rem; vertical-align: middle; margin-left: var(--rw-space-2); }
.pill-ok { background: color-mix(in srgb, var(--rw-success) 15%, transparent); color: var(--rw-success); }
.pill-warn { background: var(--rw-warn-soft); color: var(--rw-warn); }

.save-bar {
  position: sticky; bottom: var(--rw-space-3); z-index: 10;
  display: flex; justify-content: space-between; align-items: center; gap: var(--rw-space-3); flex-wrap: wrap;
  margin: 0 0 var(--rw-space-4); padding: var(--rw-space-3) var(--rw-space-4);
  background: var(--rw-surface); border: 1px solid var(--rw-border); border-radius: var(--rw-radius);
  box-shadow: var(--rw-shadow);
}
.save-bar .unsaved { display: none; color: var(--rw-warn); font-weight: 600; }
.save-bar .saved { color: var(--rw-muted); }
.save-bar.dirty { border-color: var(--rw-warn); }
.save-bar.dirty .unsaved { display: inline; }
.save-bar.dirty .saved { display: none; }
.save-actions { display: flex; gap: var(--rw-space-2); }

.confirm { max-width: 460px; width: calc(100% - 32px); padding: var(--rw-space-5); color: var(--rw-text); }
.confirm::backdrop { background: rgba(10, 12, 16, .5); }
.confirm h2 { font-size: var(--rw-text-lg); }
.confirm-actions { display: flex; justify-content: flex-end; gap: var(--rw-space-2); margin-top: var(--rw-space-4); }

.toast {
  position: fixed; left: 50%; bottom: var(--rw-space-5); transform: translate(-50%, 200%);
  max-width: calc(100% - 32px); padding: var(--rw-space-3) var(--rw-space-4);
  background: var(--rw-text); color: var(--rw-bg); border-radius: var(--rw-radius);
  box-shadow: var(--rw-shadow); transition: transform .25s; z-index: 50; font-size: var(--rw-text-sm);
}
.toast:empty { display: none; }
.toast.show { transform: translate(-50%, 0); }
.toast-err { background: var(--rw-danger); color: #fff; }

@media (max-width: 860px) {
  .admin-grid { grid-template-columns: 1fr; }
  .stats { grid-template-columns: 1fr 1fr; }
  .kv { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) {
  .form-grid { grid-template-columns: 1fr; }
  .danger { flex-direction: column; align-items: stretch; }
  .hist th:nth-child(2), .hist td:nth-child(2) { display: none; }
}

/* Pointed at after a start_locked error. */
.inline-actions.flash { padding: var(--rw-space-2); border-radius: var(--rw-radius-sm); outline: 2px solid var(--rw-warn); }
