/* Keep Growing — global styles */
:root {
  --gold: #F6C23E; --gold-dim: rgba(246,194,62,0.35);
  --gold-glow: 0 0 20px rgba(246,194,62,0.45), 0 0 40px rgba(246,194,62,0.2);
  --blue: #2B6CB0; --blue-deep: #0D1B4B;
  --bg-page: #030A18;
  --glass: rgba(15,30,80,0.45); --glass-lt: rgba(255,255,255,0.05); --glass-bd: rgba(255,255,255,0.1);
  --blur: blur(22px); --shadow: 0 24px 64px rgba(0,0,0,0.6);
  --r-lg: 24px; --r-md: 16px; --r-sm: 10px;
  --green: #38A169; --orange: #ED8936; --red: #E53E3E;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  min-height: 100vh; background: var(--bg-page); color: #fff;
  font-family: 'Outfit', system-ui, sans-serif;
  display: flex; flex-direction: column; align-items: center;
  overflow-x: hidden; padding-bottom: 40px;
}

a { color: inherit; text-decoration: none; }
a.link { color: var(--gold); }
a.link:hover { text-decoration: underline; }

/* Backgrounds */
.bg-scene { position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.bg-blob { position: absolute; border-radius: 50%; filter: blur(80px); opacity: 0.5; }
.bg-blob-1 { width: 70vw; height: 70vw; top: -15%; left: -10%;
  background: radial-gradient(ellipse, rgba(43,108,176,0.55), transparent 70%); }
.bg-blob-2 { width: 55vw; height: 55vw; bottom: -10%; right: -5%;
  background: radial-gradient(ellipse, rgba(13,27,75,0.75), transparent 70%); }
body > *:not(.bg-scene) { position: relative; z-index: 1; }

/* Glass */
.glass-panel {
  background: var(--glass); backdrop-filter: var(--blur); -webkit-backdrop-filter: var(--blur);
  border: 1px solid var(--glass-bd); border-radius: var(--r-lg);
  padding: 24px; box-shadow: var(--shadow); width: 100%;
  margin-bottom: 18px;
}

/* Top bar */
.top-bar {
  width: 100%; padding: 14px 24px; display: flex; align-items: center;
  gap: 16px; background: rgba(3,10,24,0.8); border-bottom: 1px solid var(--glass-bd);
  position: sticky; top: 0; z-index: 200; backdrop-filter: var(--blur);
}
.brand {
  font-family: 'Bebas Neue', sans-serif; font-size: 1.3rem; letter-spacing: 3px;
  background: linear-gradient(135deg, #F6C23E, #C9962D);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.sep { color: rgba(255,255,255,0.25); }
.top-nav { margin-left: auto; display: flex; gap: 16px; align-items: center; }
.top-nav a { color: rgba(255,255,255,0.7); font-size: 0.9rem; font-weight: 500; }
.top-nav a:hover { color: #fff; }

/* Page */
.page { width: 100%; max-width: 1100px; padding: 24px 20px; }
.page.narrow { max-width: 560px; }
.page-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.page-head h1 { font-size: 1.8rem; font-weight: 700; }
.page-head h1 small { font-size: 1rem; font-weight: 400; }

/* Buttons */
.btn-gold {
  display: inline-block; padding: 12px 22px; border: none;
  border-radius: var(--r-md); background: linear-gradient(135deg, #F6C23E, #C9962D);
  color: #030A18; font-weight: 800; letter-spacing: 0.5px; cursor: pointer;
  font-family: inherit; transition: all 0.2s;
}
.btn-gold:hover { transform: translateY(-2px); box-shadow: var(--gold-glow); }
.btn-gold.sm { padding: 8px 14px; font-size: 0.85rem; }
.btn-ghost {
  display: inline-block; padding: 10px 16px; border-radius: var(--r-md);
  background: rgba(255,255,255,0.06); border: 1px solid var(--glass-bd);
  color: rgba(255,255,255,0.75); font-weight: 600; cursor: pointer; transition: all 0.2s;
}
.btn-ghost:hover { background: rgba(255,255,255,0.12); color: #fff; }
.btn-esci { margin-left: auto; padding: 6px 14px; border-radius: 8px;
  background: rgba(255,255,255,0.04); border: 1px solid var(--glass-bd);
  color: rgba(255,255,255,0.5); font-size: 0.75rem; font-weight: 600;
  font-family: inherit; }

/* Forms */
.form-stack { display: flex; flex-direction: column; gap: 14px; }
.form-stack label { display: flex; flex-direction: column; gap: 6px;
  font-size: 0.85rem; color: rgba(255,255,255,0.65); font-weight: 600; }
.form-stack input, .form-stack select, .form-stack textarea {
  padding: 12px 14px; background: rgba(255,255,255,0.04);
  border: 1px solid var(--glass-bd); border-radius: var(--r-md);
  color: #fff; font-family: inherit; font-size: 1rem; outline: none;
  transition: border-color 0.2s;
}
.form-stack input:focus, .form-stack select:focus, .form-stack textarea:focus { border-color: var(--gold-dim); }
.row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 600px) { .row { grid-template-columns: 1fr; } }

/* Auth */
.auth-wrap { display: flex; align-items: center; justify-content: center;
  min-height: 100vh; padding: 24px; width: 100%; }
.auth-form { max-width: 380px; display: flex; flex-direction: column; gap: 16px; padding: 36px; }
.auth-form h2 { font-size: 1.6rem; text-align: center; }
.auth-form .hint { font-size: 0.85rem; color: rgba(255,255,255,0.5); text-align: center; }
.auth-form .brand-mini { text-align: center; font-size: 0.7rem; letter-spacing: 3px;
  color: rgba(255,255,255,0.45); text-transform: uppercase; }
.auth-form input { padding: 14px 18px; background: rgba(255,255,255,0.05);
  border: 1px solid var(--glass-bd); border-radius: var(--r-md); color: #fff;
  font-family: inherit; font-size: 1rem; outline: none; }
.auth-form button { margin-top: 8px; }

/* Landing */
.landing { padding: 80px 24px; max-width: 720px; text-align: center; }
.landing-badge { display: inline-block; font-family: 'Bebas Neue', sans-serif;
  font-size: 2rem; letter-spacing: 6px;
  background: linear-gradient(135deg, #F6C23E, #C9962D);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.landing h1 { font-size: 2.6rem; line-height: 1.15; margin: 20px 0; }
.landing .lead { font-size: 1.1rem; color: rgba(255,255,255,0.7); margin-bottom: 28px; }
.landing .hint { color: rgba(255,255,255,0.4); font-size: 0.85rem; margin-top: 24px; }

/* Cards / lists */
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 800px) { .grid-2 { grid-template-columns: 1fr; } }

.card { background: var(--glass); border: 1px solid var(--glass-bd);
  border-radius: var(--r-md); padding: 16px; }
.card-hd { display: flex; justify-content: space-between; margin-bottom: 8px; }
.card-bd code { font-size: 0.8rem; color: rgba(255,255,255,0.5); }
.card-ft { display: flex; gap: 12px; margin-top: 12px; font-size: 0.85rem; }
.tag { display: inline-block; padding: 2px 10px; border-radius: 999px;
  background: rgba(255,255,255,0.08); font-size: 0.7rem; letter-spacing: 1px;
  text-transform: uppercase; color: rgba(255,255,255,0.6); }
.tag.allenamento { background: rgba(43,108,176,0.25); color: #80b5e0; }
.tag.partita { background: rgba(246,194,62,0.18); color: #F6C23E; }
.tag.raduno { background: rgba(56,161,105,0.2); color: #6fcf97; }

.section-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
.section-head h2 { font-size: 1.1rem; font-weight: 700; letter-spacing: 0.5px; }
.section-head h3 { font-size: 0.95rem; font-weight: 700; margin-top: 16px; margin-bottom: 8px;
  color: rgba(255,255,255,0.8); }

.list { list-style: none; display: flex; flex-direction: column; gap: 8px; }
.list li { padding: 10px 12px; background: rgba(255,255,255,0.03);
  border-radius: var(--r-sm); display: flex; gap: 10px; align-items: center; }
.list li:hover { background: rgba(255,255,255,0.06); }
.list .num { font-family: 'Bebas Neue', sans-serif; color: var(--gold);
  font-size: 1.3rem; min-width: 32px; }
.list .name { flex: 1; }
.muted { color: rgba(255,255,255,0.45); font-size: 0.85rem; }
.empty { padding: 20px; text-align: center; color: rgba(255,255,255,0.4); }

/* Tables */
.data-table { width: 100%; border-collapse: collapse; }
.data-table th, .data-table td { text-align: left; padding: 12px 10px;
  border-bottom: 1px solid var(--glass-bd); font-size: 0.9rem; }
.data-table th { color: rgba(255,255,255,0.4); font-weight: 600;
  font-size: 0.75rem; text-transform: uppercase; letter-spacing: 1px; }
.data-table tr:hover td { background: rgba(255,255,255,0.03); }

.dims-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
@media (max-width: 700px) { .dims-grid { grid-template-columns: 1fr; } }

.link-box { display: block; padding: 12px; background: rgba(255,255,255,0.05);
  border-radius: var(--r-sm); font-size: 0.85rem; word-break: break-all; }

/* Flash */
.flash-wrap { position: fixed; top: 84px; left: 50%; transform: translateX(-50%);
  z-index: 9999; display: flex; flex-direction: column; gap: 10px;
  max-width: 90vw; width: max-content; pointer-events: none; }
.flash { padding: 14px 28px; border-radius: 999px; font-size: 0.95rem;
  font-weight: 600; letter-spacing: 0.3px;
  background: rgba(56,161,105,0.95); color: #fff;
  box-shadow: 0 12px 36px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.1);
  animation: flashIn 0.3s cubic-bezier(0.2, 0.9, 0.3, 1.2);
  pointer-events: auto;
  display: flex; align-items: center; gap: 10px;
}
.flash::before { content: '✓'; font-size: 1.2rem; }
.flash.error { background: rgba(229,62,62,0.95); }
.flash.error::before { content: '⚠'; }
.flash.ok { background: rgba(56,161,105,0.95); }
.flash.fade-out { animation: flashOut 0.4s ease forwards; }
@keyframes flashIn {
  from { opacity: 0; transform: translateY(-20px) scale(0.95); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes flashOut {
  to { opacity: 0; transform: translateY(-20px) scale(0.95); }
}

/* Tessera atleta */
.athlete-bg { background: var(--bg-page); }
.page-header {
  width: 100%; padding: 16px 20px; display: flex; gap: 10px; align-items: center;
  background: rgba(3,10,24,0.7); backdrop-filter: var(--blur);
  border-bottom: 1px solid var(--glass-bd); position: sticky; top: 0; z-index: 200;
}
.hdr-badge { font-family: 'Bebas Neue', sans-serif; font-size: 1.6rem; letter-spacing: 4px;
  background: linear-gradient(135deg, #F6C23E, #C9962D);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.hdr-sep { color: rgba(255,255,255,0.2); }
.hdr-club { font-size: 0.7rem; font-weight: 600; letter-spacing: 2px;
  color: rgba(255,255,255,0.5); text-transform: uppercase; }

.tessera-wrap { width: 100%; max-width: 480px; padding: 24px 16px;
  display: flex; flex-direction: column; gap: 14px; }
.hero { padding: 20px; }
.hero-row { display: flex; gap: 16px; align-items: center; }
.hero-pic { width: 80px; height: 80px; border-radius: 50%; overflow: hidden;
  background: rgba(255,255,255,0.08); display: flex; align-items: center; justify-content: center;
  border: 2px solid var(--gold-dim); flex-shrink: 0; position: relative;
  transition: all 0.2s; }
.hero-pic:hover { border-color: var(--gold); transform: scale(1.04); }
.hero-pic:hover .foto-edit-badge { opacity: 1; transform: scale(1); }
.hero-pic img { width: 100%; height: 100%; object-fit: cover; }
.hero-pic .initials { font-family: 'Bebas Neue', sans-serif; font-size: 1.8rem; color: var(--gold); }
.foto-edit-badge {
  position: absolute; bottom: -2px; right: -2px;
  background: var(--gold); color: #030A18;
  width: 26px; height: 26px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 0.85rem; font-weight: 700;
  border: 2px solid var(--bg-page);
  opacity: 0.85; transform: scale(0.9); transition: all 0.2s;
}
.hero-info h1 { font-size: 1.4rem; margin-bottom: 4px; }
.level { display: flex; gap: 12px; margin-top: 6px; }
.lvl { padding: 4px 12px; border-radius: 999px; background: var(--gold);
  color: #030A18; font-weight: 800; font-size: 0.8rem; letter-spacing: 1px; }
.xp { padding: 4px 12px; border-radius: 999px;
  border: 1px solid var(--glass-bd); font-size: 0.8rem; color: rgba(255,255,255,0.7); }

.feedback { padding: 14px 16px; border-radius: var(--r-md); margin-bottom: 10px;
  background: rgba(255,255,255,0.04); border-left: 3px solid rgba(255,255,255,0.2); }
.feedback h3 { font-size: 0.7rem; letter-spacing: 1.5px; text-transform: uppercase;
  color: rgba(255,255,255,0.55); margin-bottom: 6px; }
.feedback p { font-size: 0.95rem; line-height: 1.4; }
.feedback.ok { border-left-color: var(--green); }
.feedback.warn { border-left-color: var(--orange); }
.feedback.action { border-left-color: var(--gold); background: rgba(246,194,62,0.05); }
.feedback.note { border-left-color: var(--blue); }

.agenda { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.agenda li { display: flex; gap: 12px; padding: 10px 12px;
  background: rgba(255,255,255,0.03); border-radius: var(--r-sm); align-items: center; }
.agenda strong { display: block; font-size: 0.95rem; }
.agenda small { display: block; }

/* ═══════════════════════════════════════════════════
   ATHLETE HEADER
═══════════════════════════════════════════════════ */
.athlete-header { gap: 12px; padding: 12px 20px; }
.athlete-header .hdr-logo { height: 36px; width: 36px; object-fit: contain; border-radius: 6px;
  background: rgba(255,255,255,0.04); padding: 2px; }
.athlete-header .hdr-text { display: flex; flex-direction: column; gap: 2px; }
.athlete-header .hdr-badge { font-size: 1.4rem; letter-spacing: 3px; line-height: 1; }
.athlete-header .hdr-club { font-size: 0.65rem; }

/* ═══════════════════════════════════════════════════
   CARD RENDER — tessera "stadio"
═══════════════════════════════════════════════════ */
.card-render {
  padding: 0; overflow: hidden;
  background: linear-gradient(160deg, #0D1B4B 0%, #0A1432 50%, #050C24 100%);
  border: 1.5px solid var(--gold-dim);
  position: relative;
  box-shadow: 0 24px 64px rgba(0,0,0,0.7), 0 0 0 1px rgba(246,194,62,0.1),
              inset 0 1px 0 rgba(255,255,255,0.08);
}
.card-render::before {
  content: ''; position: absolute; inset: 0;
  background-image: repeating-linear-gradient(135deg,
    transparent 0px, transparent 24px,
    rgba(246,194,62,0.025) 24px, rgba(246,194,62,0.025) 25px);
  pointer-events: none; z-index: 0;
}
.card-render > * { position: relative; z-index: 1; }

.cr-stripe {
  height: 6px; background: linear-gradient(90deg,
    transparent 0%, var(--gold) 25%, #fff5d0 50%, var(--gold) 75%, transparent 100%);
  box-shadow: 0 2px 16px rgba(246,194,62,0.5);
}

.cr-header {
  display: flex; justify-content: space-between; align-items: center;
  padding: 16px 20px 8px; gap: 14px;
}
.cr-society { display: flex; gap: 10px; align-items: center; min-width: 0; }
.cr-logo-wrap { position: relative; width: 42px; height: 42px; flex-shrink: 0; }
.cr-logo { position: absolute; inset: 0; z-index: 2;
  width: 100%; height: 100%; object-fit: contain;
  background: rgba(255,255,255,0.94); border-radius: 8px; padding: 3px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3); }
.cr-logo-fallback { position: absolute; inset: 0; z-index: 1;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, rgba(246,194,62,0.18), rgba(246,194,62,0.06));
  border: 1.5px solid var(--gold-dim); border-radius: 8px;
  color: var(--gold); font-family: 'Bebas Neue', sans-serif;
  font-size: 1.1rem; letter-spacing: 2px; }
.cr-society-name { font-size: 0.7rem; font-weight: 700; letter-spacing: 1.5px;
  color: #fff; text-transform: uppercase; line-height: 1.1; }
.cr-stagione { font-size: 0.65rem; color: rgba(255,255,255,0.45);
  text-transform: uppercase; letter-spacing: 1px; margin-top: 2px; }
.cr-badge {
  font-family: 'Bebas Neue', sans-serif;
  padding: 8px 16px; border-radius: 10px;
  background: rgba(246,194,62,0.12);
  border: 1.5px solid var(--gold);
  color: var(--gold); font-size: 1.4rem; letter-spacing: 3px;
  text-shadow: 0 0 12px rgba(246,194,62,0.5);
  flex-shrink: 0;
}

.cr-hero { padding: 24px 20px 16px; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.cr-photo-wrap { position: relative; display: inline-block; }
.cr-photo {
  width: 144px; height: 144px; border-radius: 50%; overflow: hidden;
  background: radial-gradient(circle at 30% 30%, #2B6CB0 0%, #0D1B4B 100%);
  border: 3px solid var(--gold);
  box-shadow: 0 0 28px rgba(246,194,62,0.4), inset 0 0 24px rgba(0,0,0,0.5);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; padding: 0; position: relative;
  transition: all 0.25s;
}
.cr-photo:hover { transform: scale(1.03); box-shadow: 0 0 40px rgba(246,194,62,0.6); }
.cr-photo img { width: 100%; height: 100%; object-fit: cover; }
.cr-initials { font-family: 'Bebas Neue', sans-serif; font-size: 3.6rem;
  color: var(--gold); letter-spacing: 4px; text-shadow: 0 0 16px rgba(246,194,62,0.5); }
.cr-jersey {
  position: absolute; top: 6px; left: 6px;
  width: 36px; height: 36px; border-radius: 50%;
  background: var(--gold); color: #030A18;
  font-family: 'Bebas Neue', sans-serif; font-size: 1.4rem;
  display: flex; align-items: center; justify-content: center;
  border: 2px solid #030A18; box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.cr-photo-edit {
  position: absolute; bottom: 4px; right: 4px;
  width: 30px; height: 30px; border-radius: 50%;
  background: var(--gold); color: #030A18;
  display: flex; align-items: center; justify-content: center;
  font-size: 0.9rem; font-weight: 700;
  border: 2px solid #030A18; opacity: 0.92;
}

.cr-name {
  font-family: 'Bebas Neue', sans-serif; font-size: 2.6rem;
  letter-spacing: 4px; line-height: 1; text-align: center;
  color: #fff; text-shadow: 0 2px 16px rgba(0,0,0,0.6);
  margin-top: 4px;
}
.cr-role {
  display: flex; gap: 10px; align-items: center; justify-content: center;
  font-size: 0.85rem; font-weight: 600; letter-spacing: 2px;
  color: rgba(43,108,176,0.95); text-transform: uppercase;
}
.cr-role .dot { color: var(--gold); }

.cr-indice {
  margin: 12px 20px 16px; padding: 14px 16px;
  background: rgba(0,0,0,0.25); border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.06);
  display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center;
}
.cr-indice-label { font-size: 0.65rem; letter-spacing: 1.5px;
  color: rgba(255,255,255,0.55); text-transform: uppercase; line-height: 1.1; font-weight: 700; }
.cr-indice-tag { color: var(--gold); font-weight: 800; }
.cr-indice-bar { height: 10px; background: rgba(255,255,255,0.08); border-radius: 999px; overflow: hidden; }
.cr-indice-fill { height: 100%; border-radius: 999px;
  transition: width 0.8s ease;
  box-shadow: 0 0 12px currentColor; }
.cr-indice-val { font-family: 'Bebas Neue', sans-serif; font-size: 2.6rem;
  line-height: 1; letter-spacing: 1px; }

.cr-radar-wrap { padding: 0 20px; height: 220px; position: relative; }

.cr-team-badge {
  display: inline-block; margin: 14px auto;
  padding: 6px 22px; border-radius: 999px;
  background: rgba(43,108,176,0.2); border: 1.5px solid rgba(43,108,176,0.6);
  color: #80b5e0; font-weight: 700; letter-spacing: 2px;
  font-size: 0.85rem; text-transform: uppercase;
  display: block; width: max-content; max-width: calc(100% - 40px);
  margin-left: auto; margin-right: auto;
}

.cr-block { margin: 10px 20px; padding: 14px 16px;
  background: rgba(0,0,0,0.25); border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.05); }
.cr-block-label { font-size: 0.65rem; letter-spacing: 1.5px;
  color: rgba(255,255,255,0.5); text-transform: uppercase; font-weight: 700; margin-bottom: 6px; }
.cr-block-content { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.cr-match { font-size: 0.95rem; }
.cr-result { padding: 4px 12px; border-radius: 6px; font-size: 0.75rem;
  font-weight: 800; letter-spacing: 1.5px; flex-shrink: 0; }
.cr-result-vittoria { background: rgba(56,161,105,0.25); color: #6fcf97; border: 1px solid rgba(56,161,105,0.5); }
.cr-result-pareggio { background: rgba(237,137,54,0.2); color: #f4a460; border: 1px solid rgba(237,137,54,0.5); }
.cr-result-sconfitta { background: rgba(229,62,62,0.2); color: #fc8181; border: 1px solid rgba(229,62,62,0.5); }
.cr-block-quote { font-style: italic; line-height: 1.4; color: rgba(255,255,255,0.85); }

.cr-footer {
  margin-top: 16px; padding: 14px 20px;
  border-top: 1px solid rgba(255,255,255,0.06);
  font-size: 0.7rem; color: rgba(255,255,255,0.45);
  display: flex; flex-direction: column; gap: 4px;
  text-align: center;
}
.cr-claim { font-family: 'Bebas Neue', sans-serif; font-size: 0.95rem;
  letter-spacing: 3px; color: var(--gold); margin-top: 8px; }

/* ═══════════════════════════════════════════════════
   LEVEL / XP CARD
═══════════════════════════════════════════════════ */
.lvl-card { padding: 18px 20px; }
.lvl-row { display: flex; align-items: center; gap: 14px; margin-bottom: 12px; }
.lvl-ring {
  width: 72px; height: 72px; border-radius: 50%;
  background: radial-gradient(circle, rgba(246,194,62,0.18) 0%, rgba(246,194,62,0) 70%);
  border: 2px solid var(--gold);
  box-shadow: 0 0 20px rgba(246,194,62,0.45), inset 0 0 12px rgba(246,194,62,0.15);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.lvl-num { font-family: 'Bebas Neue', sans-serif; font-size: 1.8rem; line-height: 1; color: #fff; }
.lvl-suffix { font-size: 0.6rem; letter-spacing: 2px; color: var(--gold); }
.lvl-info { flex: 1; min-width: 0; }
.lvl-label { font-family: 'Bebas Neue', sans-serif; font-size: 1.3rem;
  letter-spacing: 3px; color: #fff; }
.lvl-next { font-size: 0.78rem; color: rgba(255,255,255,0.55); margin-top: 2px; }
.lvl-next strong { color: var(--gold); }
.lvl-xp { font-family: 'Bebas Neue', sans-serif; font-size: 1.2rem;
  letter-spacing: 2px; color: var(--gold); flex-shrink: 0; }
.lvl-bar-track { height: 8px; background: rgba(255,255,255,0.06);
  border-radius: 999px; overflow: hidden; }
.lvl-bar-fill { height: 100%; background: linear-gradient(90deg, #2B6CB0, var(--gold));
  border-radius: 999px; transition: width 0.8s ease;
  box-shadow: 0 0 10px rgba(246,194,62,0.5); }

/* ═══════════════════════════════════════════════════
   VALORI GRID
═══════════════════════════════════════════════════ */
.valori-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.valore-card { padding: 12px 14px; background: rgba(0,0,0,0.18);
  border-radius: 12px; border: 1px solid rgba(255,255,255,0.06); }
.valore-head { font-size: 0.65rem; letter-spacing: 1.5px;
  color: rgba(255,255,255,0.55); text-transform: uppercase;
  font-weight: 700; margin-bottom: 6px; }
.valore-body { display: flex; align-items: center; gap: 10px; }
.valore-num { font-family: 'Bebas Neue', sans-serif; font-size: 2rem; line-height: 1; }
.valore-bar { flex: 1; height: 6px; background: rgba(255,255,255,0.08);
  border-radius: 999px; overflow: hidden; }
.valore-bar-fill { height: 100%; border-radius: 999px; transition: width 0.8s ease; }
.valore-delta { font-size: 0.75rem; font-weight: 700;
  text-align: right; margin-top: 4px; }
.delta-up { color: #6fcf97; }
.delta-down { color: #fc8181; }
.delta-flat { color: rgba(255,255,255,0.4); }
.delta-new { color: var(--gold); font-size: 0.65rem; letter-spacing: 1.5px; }

/* ═══════════════════════════════════════════════════
   FOCUS / FEEDBACK
═══════════════════════════════════════════════════ */
.focus-card {
  padding: 16px 18px; border-radius: 12px;
  background: linear-gradient(135deg, rgba(246,194,62,0.12), rgba(246,194,62,0.04));
  border: 1px solid rgba(246,194,62,0.3);
}
.focus-head { font-size: 0.7rem; letter-spacing: 2px; color: var(--gold);
  font-weight: 800; text-transform: uppercase; margin-bottom: 8px; }
.focus-body { font-size: 1rem; font-weight: 600; line-height: 1.4; color: #fff; }

.fb-card { padding: 14px 16px; border-radius: 12px;
  background: rgba(0,0,0,0.2); margin-bottom: 10px;
  border-left: 3px solid rgba(255,255,255,0.2); }
.fb-card.fb-good { border-left-color: #38A169; background: rgba(56,161,105,0.06); }
.fb-card.fb-warn { border-left-color: #ED8936; background: rgba(237,137,54,0.06); }
.fb-head { font-size: 0.7rem; letter-spacing: 1.5px; font-weight: 800;
  text-transform: uppercase; margin-bottom: 6px; }
.fb-good .fb-head { color: #6fcf97; }
.fb-warn .fb-head { color: #f4a460; }
.fb-body { font-size: 0.95rem; line-height: 1.45; }

/* ═══════════════════════════════════════════════════
   BACHECA
═══════════════════════════════════════════════════ */
.bacheca-list { display: flex; flex-direction: column; gap: 10px; }
.bacheca-item {
  display: grid; grid-template-columns: 56px 1fr auto; gap: 12px;
  padding: 12px 14px; background: rgba(0,0,0,0.18);
  border-radius: 12px; border: 1px solid rgba(255,255,255,0.05);
  align-items: center;
}
.bacheca-date { text-align: center; padding: 4px 0;
  background: rgba(255,255,255,0.04); border-radius: 8px; }
.b-day { font-family: 'Bebas Neue', sans-serif; font-size: 1.4rem; line-height: 1; color: #fff; }
.b-month { font-size: 0.6rem; letter-spacing: 1.5px; color: rgba(255,255,255,0.5); font-weight: 700; }
.bacheca-body { min-width: 0; }
.b-title { font-weight: 700; font-size: 0.95rem; }
.b-meta { font-size: 0.72rem; color: rgba(255,255,255,0.45);
  text-transform: uppercase; letter-spacing: 1px; margin-top: 2px; }
.bacheca-result { text-align: right; }
.b-result { font-family: 'Bebas Neue', sans-serif; font-size: 1.2rem;
  letter-spacing: 2px; display: block; line-height: 1; }
.b-result-vittoria { color: #6fcf97; }
.b-result-pareggio { color: #f4a460; }
.b-result-sconfitta { color: #fc8181; }
.b-score { font-size: 0.75rem; color: rgba(255,255,255,0.55); margin-top: 4px; display: block; }
.b-upcoming { display: inline-block; padding: 4px 12px;
  border-radius: 999px; background: rgba(246,194,62,0.15);
  border: 1px solid var(--gold-dim);
  color: var(--gold); font-size: 0.7rem; font-weight: 800; letter-spacing: 1.5px; }

/* ═══════════════════════════════════════════════════
   AZIONI FINALI
═══════════════════════════════════════════════════ */
.action-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 4px; }
.action-card {
  padding: 18px 14px; border-radius: var(--r-md);
  background: var(--glass); border: 1px solid var(--glass-bd);
  color: #fff; font-family: inherit; cursor: pointer;
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  transition: all 0.2s; backdrop-filter: var(--blur);
}
.action-card:hover { transform: translateY(-2px); border-color: var(--gold-dim);
  box-shadow: 0 12px 30px rgba(0,0,0,0.4); }
.action-icon { font-size: 1.6rem; margin-bottom: 4px; }
.action-title { font-size: 0.95rem; font-weight: 700; }
.action-sub { font-size: 0.75rem; color: rgba(255,255,255,0.5); }

.updated-at { text-align: center; font-size: 0.75rem;
  color: rgba(255,255,255,0.35); margin-top: 8px; letter-spacing: 1px; }

/* ═══════════════════════════════════════════════════
   APP FOOTER (AI+Tempo)
═══════════════════════════════════════════════════ */
.app-footer {
  width: 100%; padding: 24px 20px 32px;
  margin-top: 32px;
  display: flex; flex-direction: column; align-items: center; gap: 16px;
  border-top: 1px solid var(--glass-bd);
  background: rgba(0,0,0,0.2);
}
.footer-claim { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.footer-claim-text { font-family: 'Bebas Neue', sans-serif;
  font-size: 1.1rem; letter-spacing: 3px;
  background: linear-gradient(135deg, #F6C23E, #C9962D);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; }
.footer-claim-society { font-size: 0.65rem; color: rgba(255,255,255,0.4);
  letter-spacing: 1.5px; text-transform: uppercase; font-weight: 600; }
.footer-powered { display: flex; align-items: center; gap: 10px;
  font-size: 0.7rem; color: rgba(255,255,255,0.4); }
.footer-powered-by { letter-spacing: 1px; text-transform: uppercase; font-weight: 600; }
.footer-aipiutempo { display: inline-flex; align-items: center; gap: 6px;
  color: #80b5e0; text-decoration: none; transition: opacity 0.2s; }
.footer-aipiutempo:hover { opacity: 0.8; }
.footer-logo { height: 36px; width: auto; max-width: 140px; object-fit: contain;
  background: rgba(255,255,255,0.96); border-radius: 6px; padding: 4px 8px; }
.footer-aipiutempo-text { font-family: 'Bebas Neue', sans-serif;
  font-size: 1rem; letter-spacing: 2px; color: #80b5e0; }
