/* ============================================================
   MONEY FOR FLOWERS — Feuille de style partagée
   Utilisée par : index.html, goals.html, goals-admin.html, recap.html
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&family=DM+Sans:ital,wght@0,400;0,500;1,400&display=swap');

/* ── VARIABLES ──────────────────────────────────────────── */
:root {
  --coral:        #F26058;
  --yellow:       #F5D842;
  --black:        #0a0a0a;
  --surface:      #141414;
  --surface2:     #1e1e1e;
  --surface3:     #282828;
  --text:         #ffffff;
  --text-dim:     rgba(255,255,255,0.45);
  --text-mid:     rgba(255,255,255,0.7);
  --muted:        #555;
  --border:       rgba(255,255,255,0.07);
  --border-mid:   rgba(255,255,255,0.12);
  --border-accent:rgba(242,96,88,0.35);
  --danger:       #ff4f6a;
  --success:      #3dffa0;
  --bebas:        'Bebas Neue', 'Arial Black', sans-serif;
  --inter:        'Inter', system-ui, sans-serif;
  --mono:         'JetBrains Mono', 'Fira Code', monospace;
  --dm:           'DM Sans', system-ui, sans-serif;
}

/* ── RESET & BASE ───────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html  { background: var(--black); color: var(--text); font-family: var(--inter); font-size: 15px; min-height: 100vh; }
body  { min-height: 100vh; background: var(--black); }

/* ── LAYOUT ─────────────────────────────────────────────── */
/* Dashboard & Goals — max 1400px */
.shell         { max-width: 1400px; margin: 0 auto; padding: 2rem 2rem 4rem; }
/* Admin — max 840px */
.shell--narrow { max-width: 840px; margin: 0 auto; padding: 2rem 1.5rem 4rem; }
/* Récap — max 1100px */
.container     { max-width: 1100px; margin: 0 auto; }

/* ── HEADER & NAV ───────────────────────────────────────── */
.site-header  { display: flex; align-items: center; justify-content: space-between; margin-bottom: 2.5rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--border-mid); gap: 1rem; flex-wrap: wrap; }
.logo-text    { font-family: var(--bebas); font-size: 2rem; letter-spacing: .04em; line-height: 1; color: var(--text); }
.logo-text span { color: var(--coral); }
.admin-badge  { font-family: var(--mono); font-size: 10px; color: var(--text-dim); background: var(--surface2); border: 1px solid var(--border-mid); padding: 3px 10px; border-radius: 4px; letter-spacing: .08em; text-transform: uppercase; }

.nav          { display: flex; align-items: center; gap: .5rem; }
.nav a        { font-size: 12px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; padding: .45rem .9rem; border-radius: 6px; border: 1px solid var(--border-mid); color: var(--text-dim); transition: all .2s; }
.nav a:hover,
.nav a.active { border-color: var(--coral); color: var(--coral); }

.header-right  { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.last-update   { font-size: 11px; color: var(--text-dim); letter-spacing: .04em; }
.refresh-btn   { background: transparent; border: 1px solid var(--border-mid); color: var(--text-dim); font-family: var(--inter); font-size: 11px; padding: .4rem .8rem; border-radius: 6px; cursor: pointer; letter-spacing: .06em; text-transform: uppercase; transition: all .2s; }
.refresh-btn:hover { border-color: var(--coral); color: var(--coral); }

/* ── LIVE INDICATOR ─────────────────────────────────────── */
.live-indicator { display: flex; align-items: center; gap: .5rem; font-size: 12px; font-weight: 500; color: var(--text-dim); letter-spacing: .06em; text-transform: uppercase; }
.live-dot       { width: 7px; height: 7px; border-radius: 50%; background: var(--coral); animation: pulse 2s ease-in-out infinite; flex-shrink: 0; }
.live-dot.offline { background: #2a2a2a; animation: none; }
@keyframes pulse { 0%,100%{ opacity:1; transform:scale(1); } 50%{ opacity:.5; transform:scale(.8); } }

/* ── LOADING / SPINNER ──────────────────────────────────── */
.loading  { display: flex; align-items: center; justify-content: center; padding: 2rem; color: var(--text-dim); font-size: 13px; gap: .5rem; }
.spinner  { width: 16px; height: 16px; border: 2px solid var(--border-mid); border-top-color: var(--coral); border-radius: 50%; animation: spin .8s linear infinite; flex-shrink: 0; }
.state    { text-align: center; padding: 3rem 2rem; color: #333; font-size: 12px; letter-spacing: 2px; text-transform: uppercase; }
.state .spinner { width: 28px; height: 28px; border-width: 1.5px; margin: 0 auto 1rem; }
@keyframes spin { to{ transform:rotate(360deg); } }

/* ── CARDS ──────────────────────────────────────────────── */
.card     { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 1.5rem; }
.card-sm  { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 1.25rem; }
.card-label { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--text-dim); font-weight: 600; margin-bottom: .5rem; }
.card-value { font-family: var(--bebas); font-size: 2.4rem; line-height: 1; color: var(--text); }
.card-value.coral  { color: var(--coral); }
.card-value.yellow { color: var(--yellow); }

/* ── SECTION TITLE ──────────────────────────────────────── */
.section-title { font-family: var(--bebas); font-size: 1.3rem; letter-spacing: .08em; margin-bottom: 1rem; display: flex; align-items: center; gap: .75rem; }
.section-title::after { content: ''; flex: 1; height: 1px; background: var(--border-mid); }
.section-label { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--text-dim); font-family: var(--mono); margin-bottom: .75rem; font-weight: 600; }

/* ── GRIDS ──────────────────────────────────────────────── */
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-bottom: 1.5rem; }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 1.5rem; }

/* ── HERO (index.html) ──────────────────────────────────── */
.hero         { background: var(--coral); border-radius: 16px; padding: 2.5rem 3rem; margin-bottom: 1.5rem; display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; position: relative; overflow: hidden; }
.hero::before { content: '❋'; position: absolute; right: -1rem; top: -2rem; font-size: 12rem; opacity: .12; color: #fff; line-height: 1; pointer-events: none; }
.hero-label    { font-family: var(--bebas); font-size: 1.1rem; letter-spacing: .12em; color: rgba(255,255,255,.75); margin-bottom: .25rem; }
.hero-amount   { font-family: var(--bebas); font-size: clamp(3rem,8vw,6rem); line-height: .95; color: #fff; letter-spacing: .02em; }
.hero-right    { text-align: right; flex-shrink: 0; }
.hero-stat     { margin-bottom: .5rem; }
.hero-stat-val   { font-family: var(--bebas); font-size: 2rem; color: #fff; line-height: 1; }
.hero-stat-label { font-size: 11px; color: rgba(255,255,255,.65); letter-spacing: .08em; text-transform: uppercase; font-weight: 500; }

/* ── CHART (index.html) ─────────────────────────────────── */
.chart-card   { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 1.5rem; margin-bottom: 1.5rem; }
.chart-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; }
.chart-header h2 { font-family: var(--bebas); font-size: 1.4rem; letter-spacing: .06em; }
.chart-wrap   { position: relative; height: 200px; }

/* ── RANK LIST (index.html) ─────────────────────────────── */
.rank-list   { display: flex; flex-direction: column; }
.rank-item   { display: grid; grid-template-columns: 28px 1fr auto; align-items: center; gap: .75rem; padding: .75rem 0; border-bottom: 1px solid var(--border); }
.rank-item:last-child { border-bottom: none; }
.rank-pos    { font-family: var(--bebas); font-size: 1.1rem; color: var(--text-dim); text-align: center; }
.rank-pos.gold   { color: var(--yellow); }
.rank-pos.silver { color: #c0c0c0; }
.rank-pos.bronze { color: #cd7f32; }
.rank-name   { font-size: 13px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rank-sub    { font-size: 11px; color: var(--text-dim); margin-top: 1px; }
.rank-amount { font-family: var(--bebas); font-size: 1.2rem; color: var(--coral); white-space: nowrap; }
.rank-amount.yellow { color: var(--yellow); }

/* ── DONATION STREAM (index.html) ───────────────────────── */
.donation-stream        { display: flex; flex-direction: column; gap: .5rem; max-height: 320px; overflow: hidden; position: relative; }
.donation-stream::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 60px; background: linear-gradient(transparent, var(--surface)); pointer-events: none; }
.don-item    { display: flex; align-items: center; justify-content: space-between; padding: .6rem .9rem; background: var(--surface2); border-radius: 8px; border-left: 3px solid var(--coral); }
.don-item.big { border-left-color: var(--yellow); }
.don-name    { font-size: 13px; font-weight: 600; }
.don-to      { font-size: 11px; color: var(--text-dim); }
.don-msg     { font-size: 11px; color: var(--text-mid); font-style: italic; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 200px; }
.don-right   { text-align: right; flex-shrink: 0; }
.don-amount  { font-family: var(--bebas); font-size: 1.2rem; color: var(--coral); }
.don-amount.big { color: var(--yellow); }
.don-time    { font-size: 10px; color: var(--text-dim); margin-top: 1px; }

/* ── FILTER BAR (goals.html) ────────────────────────────── */
.filter-bar   { display: flex; align-items: center; gap: .75rem; margin-bottom: 2rem; flex-wrap: wrap; }
.filter-label { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-dim); font-weight: 600; }
.filter-btn   { background: transparent; border: 1px solid var(--border-mid); color: var(--text-dim); font-family: var(--inter); font-size: 12px; font-weight: 500; padding: .35rem .85rem; border-radius: 20px; cursor: pointer; transition: all .2s; }
.filter-btn:hover  { color: var(--text-mid); }
.filter-btn.active { background: var(--coral); border-color: var(--coral); color: #fff; }
.search-input { background: var(--surface); border: 1px solid var(--border-mid); color: var(--text); font-family: var(--inter); font-size: 13px; padding: .4rem .9rem; border-radius: 20px; outline: none; width: 200px; transition: border-color .2s; }
.search-input::placeholder { color: var(--text-dim); }
.search-input:focus { border-color: rgba(242,96,88,.4); }

/* ── SUMMARY BAR (goals.html) ───────────────────────────── */
.summary-bar  { display: flex; gap: 1.5rem; margin-bottom: 2rem; flex-wrap: wrap; }
.summary-stat { display: flex; flex-direction: column; gap: .2rem; }
.summary-val  { font-family: var(--bebas); font-size: 1.8rem; line-height: 1; color: var(--text); }
.summary-val.coral  { color: var(--coral); }
.summary-val.yellow { color: var(--yellow); }
.summary-lbl  { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-dim); font-weight: 500; }

/* ── STREAMER CARDS (goals.html) ────────────────────────── */
.streamers-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); gap: 1.25rem; }

.streamer-card          { background: var(--surface); border: 1px solid var(--border); border-radius: 14px; overflow: hidden; transition: border-color .2s; display: flex; flex-direction: column; }
.streamer-card:hover    { border-color: var(--border-mid); }
.streamer-card.all-done { border-color: rgba(245,216,66,.25); }

.card-head         { padding: 1.1rem 1.1rem .9rem; display: flex; align-items: center; gap: .85rem; }
.avatar            { width: 46px; height: 46px; border-radius: 50%; flex-shrink: 0; overflow: hidden; background: var(--surface2); display: flex; align-items: center; justify-content: center; font-family: var(--bebas); font-size: 1.2rem; color: var(--text-dim); border: 2px solid var(--border-mid); }
.avatar img        { width: 100%; height: 100%; object-fit: cover; }
.card-head-info    { flex: 1; min-width: 0; }
.streamer-name     { font-family: var(--bebas); font-size: 1.3rem; letter-spacing: .06em; color: var(--text); line-height: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.streamer-goals-meta  { font-size: 11px; color: var(--text-dim); margin-top: 2px; }
.streamer-total-badge { font-family: var(--bebas); font-size: 1.3rem; color: var(--coral); flex-shrink: 0; }

.card-next         { padding: .85rem 1.1rem; background: rgba(242,96,88,.06); border-top: 1px solid rgba(242,96,88,.12); border-bottom: 1px solid rgba(242,96,88,.12); }
.card-next-top     { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: .5rem; gap: .5rem; }
.card-next-label   { font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--coral); font-weight: 600; }
.card-next-amount  { font-family: var(--bebas); font-size: 1.1rem; color: var(--coral); flex-shrink: 0; }
.card-next-name    { font-size: 12px; color: var(--text-mid); margin-bottom: .6rem; line-height: 1.35; }
.next-bar-track    { height: 5px; background: rgba(242,96,88,.15); border-radius: 3px; overflow: hidden; margin-bottom: .45rem; }
.next-bar-fill     { height: 100%; background: var(--coral); border-radius: 3px; transition: width .6s ease; }
.next-bar-meta     { display: flex; justify-content: space-between; font-size: 11px; color: var(--text-dim); }

.card-all-done { padding: .75rem 1.1rem; background: rgba(245,216,66,.06); border-top: 1px solid rgba(245,216,66,.15); border-bottom: 1px solid rgba(245,216,66,.15); font-size: 12px; color: var(--yellow); font-weight: 600; text-align: center; letter-spacing: .04em; }
.card-body     { padding: .75rem 1.1rem 1rem; flex: 1; }

.goals-list        { display: flex; flex-direction: column; gap: .4rem; }
.goal-item         { display: flex; align-items: center; gap: .65rem; padding: .5rem .65rem; border-radius: 7px; background: var(--surface2); }
.goal-item.reached { background: rgba(245,216,66,.06); border: 1px solid rgba(245,216,66,.12); }
.goal-item.is-next { background: rgba(242,96,88,.05); border: 1px solid rgba(242,96,88,.18); }
.goal-check        { width: 17px; height: 17px; border-radius: 50%; border: 1.5px solid var(--border-mid); flex-shrink: 0; display: flex; align-items: center; justify-content: center; font-size: 9px; }
.goal-check.done   { background: var(--yellow); border-color: var(--yellow); color: #000; font-weight: 700; }
.goal-check.active { border-color: var(--coral); }
.goal-label-text   { flex: 1; font-size: 11px; font-weight: 500; color: var(--text-mid); line-height: 1.3; }
.goal-item.reached .goal-label-text { color: var(--text); }
.goal-amount-tag   { font-family: var(--bebas); font-size: .95rem; color: var(--text-dim); white-space: nowrap; flex-shrink: 0; }
.goal-item.reached .goal-amount-tag { color: var(--yellow); }
.goal-item.is-next .goal-amount-tag { color: var(--coral); }

/* ── ADMIN GATE (goals-admin.html) ──────────────────────── */
#gate      { display: flex; align-items: center; justify-content: center; min-height: 60vh; }
.gate-box  { width: 100%; max-width: 420px; background: var(--surface); border: 1px solid var(--border-mid); border-radius: 12px; padding: 2rem; }
.gate-box h2 { font-family: var(--bebas); font-size: 1.5rem; letter-spacing: .06em; margin-bottom: .4rem; }
.gate-box p  { font-size: 13px; color: var(--text-dim); margin-bottom: 1.5rem; line-height: 1.6; }
.gate-box input { width: 100%; background: var(--black); border: 1px solid var(--border-mid); color: var(--text); font-family: var(--mono); font-size: 12px; padding: .7rem 1rem; border-radius: 6px; outline: none; margin-bottom: .75rem; transition: border-color .2s; }
.gate-box input:focus { border-color: var(--border-accent); }
.gate-error { font-size: 12px; color: var(--danger); margin-bottom: .75rem; display: none; }
#app { display: none; }

/* ── BUTTONS (goals-admin.html) ─────────────────────────── */
.btn          { display: inline-flex; align-items: center; gap: 6px; font-family: var(--inter); font-size: 13px; font-weight: 600; padding: .55rem 1.1rem; border-radius: 6px; border: none; cursor: pointer; transition: all .18s; letter-spacing: .02em; }
.btn-primary  { background: var(--coral); color: #fff; }
.btn-primary:hover    { opacity: .85; }
.btn-primary:disabled { opacity: .4; cursor: default; }
.btn-ghost    { background: transparent; color: var(--text-mid); border: 1px solid var(--border-mid); }
.btn-ghost:hover { border-color: var(--border-accent); color: var(--text); }
.btn-danger   { background: transparent; color: var(--danger); border: 1px solid rgba(255,79,106,0.25); }
.btn-danger:hover { background: rgba(255,79,106,0.08); }
.btn-sm   { padding: .35rem .7rem; font-size: 12px; }
.btn-full { width: 100%; justify-content: center; }

/* ── ADMIN PANELS (goals-admin.html) ────────────────────── */
.streamer-selector { background: var(--surface); border: 1px solid var(--border-mid); border-radius: 12px; padding: 1.5rem; margin-bottom: 1.5rem; }
.selector-row { display: flex; gap: .75rem; align-items: flex-end; }
select        { flex: 1; background: var(--black); border: 1px solid var(--border-mid); color: var(--text); font-family: var(--inter); font-size: 14px; padding: .6rem .9rem; border-radius: 6px; outline: none; cursor: pointer; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236e6e9a' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .9rem center; transition: border-color .2s; }
select:focus  { border-color: var(--border-accent); }
select option { background: var(--surface2); }
.streamer-total { font-family: var(--mono); font-size: 12px; color: var(--text-mid); margin-top: .6rem; }
.streamer-total span { color: var(--coral); font-weight: 500; }
.status-line  { font-size: 12px; color: var(--text-dim); font-family: var(--mono); margin-top: .3rem; }

.goals-panel          { background: var(--surface); border: 1px solid var(--border-mid); border-radius: 12px; margin-bottom: 1.5rem; overflow: hidden; }
.goals-panel-header   { padding: 1rem 1.5rem; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; }
.goals-panel-header h3 { font-family: var(--bebas); font-size: 1.2rem; letter-spacing: .06em; }
.goals-empty  { padding: 2rem; text-align: center; color: var(--text-dim); font-size: 13px; }
.goal-row     { display: grid; grid-template-columns: 32px 1fr auto auto; align-items: center; gap: .75rem; padding: .8rem 1.5rem; border-bottom: 1px solid var(--border); transition: background .15s; }
.goal-row:last-child { border-bottom: none; }
.goal-row:hover      { background: rgba(242,96,88,.05); }
.goal-pos     { font-family: var(--mono); font-size: 11px; color: var(--text-dim); width: 24px; height: 24px; background: var(--surface2); border-radius: 4px; display: flex; align-items: center; justify-content: center; }
.goal-label   { font-size: 14px; font-weight: 500; }
.goal-amount  { font-family: var(--mono); font-size: 13px; color: var(--coral); white-space: nowrap; }
.goal-tag     { font-family: var(--mono); font-size: 10px; padding: 2px 8px; border-radius: 3px; letter-spacing: .06em; text-transform: uppercase; font-weight: 500; }
.goal-tag.yes { background: rgba(61,255,160,.1); color: #3dffa0; }
.goal-tag.no  { background: var(--surface3); color: var(--text-dim); }

.add-panel      { background: var(--surface); border: 1px solid rgba(242,96,88,.3); border-radius: 12px; padding: 1.5rem; }
.add-panel h3   { font-family: var(--bebas); font-size: 1.2rem; letter-spacing: .06em; margin-bottom: 1.25rem; }
.form-row       { display: flex; gap: .75rem; margin-bottom: .75rem; align-items: flex-end; }
.field          { display: flex; flex-direction: column; gap: .4rem; flex: 1; }
.field label    { font-size: 11px; color: var(--text-dim); font-family: var(--mono); letter-spacing: .06em; font-weight: 500; }
.field input    { background: var(--black); border: 1px solid var(--border-mid); color: var(--text); font-family: var(--inter); font-size: 14px; padding: .6rem .9rem; border-radius: 6px; outline: none; transition: border-color .2s; }
.field input:focus        { border-color: var(--border-accent); }
.field input[type=number] { font-family: var(--mono); }
.pending-list   { margin-bottom: .75rem; }
.pending-item   { display: flex; align-items: center; justify-content: space-between; padding: .6rem .9rem; background: rgba(242,96,88,.07); border: 1px solid rgba(242,96,88,.2); border-radius: 6px; margin-bottom: .5rem; }
.pending-label  { font-size: 13px; font-weight: 500; }
.pending-pos    { font-size: 11px; color: var(--text-dim); margin-left: .4rem; }
.pending-amount { font-family: var(--mono); font-size: 13px; color: var(--coral); }
.pending-remove { background: none; border: none; color: var(--text-dim); cursor: pointer; font-size: 16px; padding: 0 4px; line-height: 1; transition: color .15s; }
.pending-remove:hover { color: var(--danger); }
.form-actions   { display: flex; gap: .75rem; justify-content: flex-end; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--border); }

/* TOAST */
#toast          { position: fixed; bottom: 2rem; right: 2rem; padding: .75rem 1.25rem; border-radius: 8px; font-size: 13px; font-weight: 500; opacity: 0; transform: translateY(8px); transition: all .3s; pointer-events: none; z-index: 100; }
#toast.show     { opacity: 1; transform: translateY(0); }
#toast.success  { background: #1a3328; border: 1px solid rgba(61,255,160,.3); color: var(--success); }
#toast.error    { background: #2e1520; border: 1px solid rgba(255,79,106,.3); color: var(--danger); }

/* ── RECAP (recap.html) ─────────────────────────────────── */
/* La page récap utilise DM Sans comme police de corps */
.recap-page body { font-family: var(--dm); }

.divider      { border: none; border-top: 1px solid #161616; margin: 2.5rem 0; }
.sec-title    { font-size: 10px; letter-spacing: 4px; text-transform: uppercase; color: #333; margin-bottom: 1rem; }

/* Hero récap (différent du hero index) */
.recap-hero   { text-align: center; padding: 4rem 0 3rem; max-width: 700px; margin: 0 auto; }
.hero-logo    { font-family: var(--bebas); font-size: clamp(52px,9vw,88px); color: var(--coral); letter-spacing: 4px; line-height: 1; }
.hero-sub     { font-size: 11px; letter-spacing: 4px; text-transform: uppercase; color: #444; margin-top: 8px; }
.hero-total   { font-family: var(--bebas); font-size: clamp(44px,8vw,72px); color: var(--yellow); line-height: 1; margin-top: 2rem; }
.hero-total-label { font-size: 11px; letter-spacing: 3px; text-transform: uppercase; color: #555; margin-top: 6px; }

/* Stats recap */
.stats-grid   { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px,1fr)); gap: 10px; margin-bottom: 1.5rem; }
.stat         { background: var(--surface); border: 1px solid var(--surface2); border-radius: 10px; padding: 1.1rem 1.25rem; }
.stat-val     { font-family: var(--bebas); font-size: 34px; color: #fff; line-height: 1; margin-bottom: 4px; }
.stat-val.yellow { color: var(--yellow); }
.stat-val.coral  { color: var(--coral); }
.stat-label   { font-size: 10px; letter-spacing: 2px; text-transform: uppercase; color: var(--muted); }
.stat-sub     { font-size: 11px; color: #333; margin-top: 3px; font-style: italic; }

/* Peak box recap */
.peak-box     { background: var(--surface); border: 1px solid var(--surface2); border-radius: 10px; padding: 1.25rem 1.5rem; display: flex; align-items: center; gap: 2rem; flex-wrap: wrap; }
.peak-num     { font-family: var(--bebas); font-size: 52px; color: var(--yellow); line-height: 1; flex-shrink: 0; }
.peak-info    { flex: 1; min-width: 160px; }
.peak-info-label { font-size: 10px; letter-spacing: 3px; text-transform: uppercase; color: #444; margin-bottom: 6px; }
.peak-info-when  { font-size: 14px; color: #888; line-height: 1.5; }
.peak-info-when strong { color: #ccc; font-weight: 500; }

/* Live header recap */
.live-header  { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.live-label   { font-size: 10px; letter-spacing: 3px; text-transform: uppercase; color: #444; }

/* Streamer cards recap */
.streamers-grid-recap { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px,1fr)); gap: 8px; }
.s-card       { background: var(--surface); border: 1px solid var(--surface2); border-radius: 10px; padding: .9rem 1rem; display: flex; flex-direction: column; gap: 4px; }
.s-card.live  { border-color: #2a1a1a; }
.s-name       { font-family: var(--bebas); font-size: 20px; color: #fff; line-height: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.s-card.offline .s-name { color: #2e2e2e; }
.s-game       { font-size: 11px; color: var(--coral); letter-spacing: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.s-title      { font-size: 11px; color: #444; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-style: italic; }
.s-row        { display: flex; justify-content: space-between; align-items: center; margin-top: 5px; }
.s-row-label  { font-size: 11px; color: var(--muted); }
.s-row-val    { font-size: 13px; font-weight: 600; color: #ddd; }
.s-row-val.yellow { color: var(--yellow); }

/* Badges recap */
.badge        { display: inline-flex; align-items: center; gap: 4px; border-radius: 4px; padding: 2px 7px; font-size: 9px; letter-spacing: 2px; text-transform: uppercase; width: fit-content; margin-bottom: 3px; }
.badge-live   { background: #1e0a0a; border: 1px solid #3a1515; color: var(--coral); }
.badge-offline{ background: transparent; border: 1px solid #1e1e1e; color: #2e2e2e; }
.badge-dot    { width: 5px; height: 5px; border-radius: 50%; flex-shrink: 0; }

.footer { text-align: center; margin-top: 4rem; font-size: 10px; color: #1e1e1e; letter-spacing: 3px; text-transform: uppercase; }

/* ── RESPONSIVE ─────────────────────────────────────────── */
@media(max-width:900px) {
  .grid-2        { grid-template-columns: 1fr; }
  .grid-4        { grid-template-columns: repeat(2,1fr); }
  .hero          { flex-direction: column; align-items: flex-start; }
  .hero-right    { text-align: left; display: flex; gap: 2rem; }
  .hero::before  { font-size: 7rem; right: 1rem; top: auto; bottom: -1rem; }
}
@media(max-width:700px) {
  .streamers-grid { grid-template-columns: 1fr; }
}
@media(max-width:600px) {
  .shell         { padding: 1rem 1rem 3rem; }
  .shell--narrow { padding: 1rem 1rem 3rem; }
  .hero          { padding: 1.5rem; }
  .hero-amount   { font-size: 3.5rem; }
  .nav a         { font-size: 10px; padding: .35rem .6rem; }
  .grid-4        { grid-template-columns: repeat(2,1fr); }
}
