/**
 * cards.css
 *
 * Panels ("Bracket Panels") und Stat-Cards, wie sie im Spieler-, Clan- und
 * Schiffe-Tab verwendet werden.
 *
 * Signatur-Element des Frontends: Zielerfassungsecken (HUD-Klammern) an den
 * Panel-Ecken — motivisch angelehnt an ein Ziel-/Sensor-Overlay auf der
 * Gefechtsbrücke, passend zum Thema "Stats zu einem Ziel/Spieler abrufen".
 */

.bracket-panel {
  position: relative;
  background: var(--color-bg-panel);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-5);
}

.bracket-panel::before,
.bracket-panel::after,
.bracket-panel__corner--tr,
.bracket-panel__corner--bl {
  content: "";
  position: absolute;
  width: var(--bracket-size);
  height: var(--bracket-size);
  border-color: var(--color-brass);
  pointer-events: none;
}

.bracket-panel::before {
  top: -1px;
  left: -1px;
  border-top: var(--bracket-thickness) solid var(--color-brass);
  border-left: var(--bracket-thickness) solid var(--color-brass);
}

.bracket-panel::after {
  bottom: -1px;
  right: -1px;
  border-bottom: var(--bracket-thickness) solid var(--color-brass);
  border-right: var(--bracket-thickness) solid var(--color-brass);
}

.bracket-panel__corner--tr {
  top: -1px;
  right: -1px;
  border-top: var(--bracket-thickness) solid var(--color-brass);
  border-right: var(--bracket-thickness) solid var(--color-brass);
}

.bracket-panel__corner--bl {
  bottom: -1px;
  left: -1px;
  border-bottom: var(--bracket-thickness) solid var(--color-brass);
  border-left: var(--bracket-thickness) solid var(--color-brass);
}

/* --- Hero-Panel (Spieler/Clan-Kopfbereich) --- */

.hero-panel {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-4);
  margin-bottom: var(--space-5);
}

.hero-panel__name {
  font-size: 30px;
}

.hero-panel__name .tag {
  color: var(--color-brass-bright);
  margin-right: var(--space-2);
}

.clan-emblem {
  width: 48px;
  height: 48px;
  object-fit: contain;
  flex-shrink: 0;
  filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.4));
}

.hero-panel__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  font-size: 12px;
  color: var(--color-text-faint);
}

.hero-panel__meta dt {
  display: inline;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-right: var(--space-1);
}

.hero-panel__meta dd {
  display: inline;
  margin: 0;
  color: var(--color-text-dim);
  font-family: var(--font-mono);
}

/* --- Mode-Umschalter (Random / Ranked / Co-op) --- */

.mode-switch {
  display: inline-flex;
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-md);
  overflow: hidden;
  margin-bottom: var(--space-5);
}

.mode-switch__btn {
  appearance: none;
  border: none;
  background: var(--color-bg-panel);
  color: var(--color-text-dim);
  font-family: var(--font-display);
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: var(--space-2) var(--space-4);
  cursor: pointer;
  border-right: 1px solid var(--color-border-strong);
}

.mode-switch__btn:last-child {
  border-right: none;
}

.mode-switch__btn[aria-pressed="true"] {
  background: rgba(201, 151, 79, 0.14);
  color: var(--color-brass-bright);
}

/* --- Stat-Card-Grid --- */

.stat-section {
  margin-bottom: var(--space-6);
}

.stat-section__header {
  display: flex;
  align-items: baseline;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}

.stat-section__title {
  font-family: var(--font-display);
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-brass-bright);
}

.stat-section__rule {
  flex: 1;
  height: 1px;
  background: var(--color-border);
}

.stat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: var(--space-3);
}

.stat-grid--compact {
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
}

.stat-grid--compact .stat-card__value {
  font-size: 20px;
}

/* --- Verlaufscharts (siehe assets/js/chart.js) --- */

.chart-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-4);
}

.chart-panel {
  background: var(--color-bg-panel-raised);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-5);
}

.chart-panel__label {
  font-family: var(--font-display);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-faint);
  margin-bottom: var(--space-2);
}

.progress-chart {
  width: 100%;
  height: auto;
  display: block;
}

.stat-card {
  background: var(--color-bg-panel-raised);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-4);
}

.stat-card__label {
  font-family: var(--font-display);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-faint);
  margin-bottom: var(--space-1);
}

.stat-card__value {
  font-family: var(--font-mono);
  font-size: 26px;
  color: var(--color-text);
  line-height: 1.2;
}

.stat-card__value.text-win { color: var(--color-win); }
.stat-card__value.text-loss { color: var(--color-loss); }

.stat-card__sub {
  font-size: 11px;
  color: var(--color-text-faint);
  margin-top: var(--space-1);
}

/* --- Leerer / Fehler-/Ladezustand --- */

.state-message {
  text-align: center;
  padding: var(--space-7) var(--space-4);
  color: var(--color-text-faint);
}

.state-message__icon {
  width: 40px;
  height: 40px;
  margin: 0 auto var(--space-3);
  color: var(--color-border-strong);
}

.state-message__title {
  font-family: var(--font-display);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--color-text-dim);
  font-size: 15px;
  margin-bottom: var(--space-1);
}

.state-message__hint {
  font-size: 13px;
  max-width: 360px;
  margin: 0 auto;
}

.state-message.is-error .state-message__title {
  color: var(--color-loss);
}

/* --- Interaktive Charts (ix-chart) --- */
.ix-chart { width:100%; height:auto; display:block; cursor:default; }
.ix-reset-btn { position:absolute; top:12px; right:12px; background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.15); color:#aaa; font-size:16px; padding:2px 7px; border-radius:4px; cursor:pointer; line-height:1; transition:all 0.15s; font-family:var(--font-mono,monospace); }
.ix-reset-btn:hover { background:rgba(255,255,255,0.14); color:#ddd; border-color:rgba(255,255,255,0.3); }
/* Tooltip */
.ix-tooltip { position:absolute; background:var(--color-bg-panel-raised,#1a1a1a); border:1px solid var(--color-border,rgba(255,255,255,0.12)); border-radius:6px; padding:8px 11px; font-size:12px; color:var(--color-text,#ddd); pointer-events:none; z-index:100; white-space:nowrap; box-shadow:0 4px 16px rgba(0,0,0,0.5); min-width:130px; transition:opacity 0.1s ease; }
.ix-tip-date { font-size:10px; color:var(--color-text-faint,#888); margin-bottom:4px; letter-spacing:0.04em; }
.ix-tip-val { font-family:var(--font-mono,monospace); font-size:16px; font-weight:600; color:var(--color-text,#eee); margin-bottom:2px; }
.ix-tip-row { display:flex; justify-content:space-between; gap:12px; font-size:11px; color:var(--color-text-faint,#888); margin-top:2px; }
.ix-tip-row span:last-child { color:var(--color-text,#ccc); font-family:var(--font-mono,monospace); }
/* Chart panel: contain the reset button */
.chart-panel { position:relative; }
.chart-panel__chart { width:100%; }
.chart-panel__chart .state-message__hint { padding:8px 0; font-size:12px; color:var(--color-text-faint,#888); }