:root{
  --blood: #b10505;
  --blood-dark: #6d0202;
  --ink: #eaeaea;
  --muted: #a8b0bb;
  --panel: #141418;
  --stroke: rgba(255,255,255,.10);
  --stroke-2: rgba(255,255,255,.18);
  --bg: #0e0f12;
}

*{ box-sizing:border-box; }

.reg-body{
  margin:0;
  min-height:100svh;
  background:var(--bg);
  color:var(--ink);
  font-family:"Cinzel", ui-serif, Georgia, serif;
  display:grid;
  place-items:center;
}

.reg-wrapper{
  width:100%;
  max-width:720px;
  padding:24px 16px;
}

.reg-card{
  padding:28px 24px;
  border:1px solid var(--stroke);
  border-radius:16px;
  background:var(--panel);
  box-shadow:0 18px 48px rgba(0,0,0,.65);
}

.reg-title{
  text-align:center;
  font-family:"UnifrakturMaguntia","Cinzel",serif;
  font-size:clamp(28px,5vw,40px);
  margin:0 0 20px;
  color:#fff;
  text-shadow:0 0 8px rgba(177,5,5,.5);
}

.reg-form{ display:grid; gap:12px; }

.reg-form label{ font-size:14px; color:var(--muted); }
.reg-form input, .reg-form select{
  width:100%;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid var(--stroke-2);
  background:#1a1e24;
  color:var(--ink);
}
.reg-form input:focus, .reg-form select:focus{
  border-color:rgba(177,5,5,.55);
  box-shadow:0 0 0 4px rgba(177,5,5,.16);
  outline:none;
}

/* BLOCCO CARATTERISTICHE */
.stats-block{
  margin-top:14px;
  padding:14px;
  border:1px solid var(--stroke);
  border-radius:14px;
  background:#181b20;
}
.stats-block legend{
  font-size:1.1rem;
  color:#ffe7e7;
  font-family:"Cinzel",serif;
}
.stats-info{
  font-size:.9rem;
  color:var(--muted);
  margin:4px 0 10px;
}
.stats-grid{
  display:grid;
  grid-template-columns: repeat(auto-fill,minmax(130px,1fr));
  gap:10px;
}
.stats-grid label{
  display:flex;
  flex-direction:column;
  font-size:.85rem;
  color:var(--ink);
}
.stat-input{
  margin-top:4px;
  padding:6px 8px;
  border-radius:8px;
  border:1px solid var(--stroke-2);
  background:#1a1e24;
  color:var(--ink);
  text-align:center;
}

/* BUTTON */
.reg-btn{
  margin-top:12px;
  padding:12px;
  border-radius:12px;
  border:1px solid rgba(177,5,5,.65);
  background:linear-gradient(180deg,var(--blood) 0%,var(--blood-dark) 100%);
  color:#fff;
  font-weight:600;
  cursor:pointer;
  text-shadow:0 1px 0 rgba(0,0,0,.35);
}
.reg-btn:disabled{
  opacity:.6;
  cursor:not-allowed;
}
.reg-btn:hover:not(:disabled){
  filter:brightness(1.06);
  box-shadow:0 14px 34px rgba(177,5,5,.36);
}

.reg-switch{
  margin-top:16px;
  text-align:center;
  color:var(--muted);
}
.reg-switch a{ color:#e6c6c6; text-decoration:none; border-bottom:1px dashed rgba(177,5,5,.55); }
.reg-switch a:hover{ color:#ffe7e7; text-shadow:0 0 6px rgba(177,5,5,.55); }

/* ===================== STATS UI ENHANCEMENTS ===================== */
/* Badge con valore accanto a ogni caratteristica */
.stats-grid label{
  position: relative;
  padding-right: 64px; /* spazio per il badge a destra */
}

.stat-badge{
  position: absolute;
  top: 28px;                 /* allineato verticalmente all'input */
  right: 8px;
  padding: 2px 8px;
  font-size: 12px;
  line-height: 1;
  border-radius: 999px;
  border: 1px solid var(--stroke-2);
  background: #1d2230;
  color: #cfd6e1;
  box-shadow: 0 6px 18px rgba(0,0,0,.25);
  pointer-events: none;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}

/* Evidenziazione quando la stat è al massimo (10/10) */
.stat-badge.maxed{
  background: linear-gradient(180deg, var(--blood) 0%, var(--blood-dark) 100%);
  border-color: rgba(177,5,5,.65);
  color: #fff;
  text-shadow: 0 1px 0 rgba(0,0,0,.35);
}

.stat-input.maxed{
  border-color: rgba(177,5,5,.75);
  box-shadow:
    0 0 0 4px rgba(177,5,5,.18),
    inset 0 0 10px rgba(177,5,5,.22);
}

/* Chip “Punti rimasti” con stati */
.stats-info #points-left{
  display: inline-block;
  min-width: 2ch;
  padding: 2px 8px;
  border-radius: 999px;
  border: 1px solid var(--stroke-2);
  background: #1d2230;
  color: #eaeaea;
  text-align: center;
  font-weight: 700;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.stats-info #points-left.ok{
  background:#1f3325; color:#cfe8d6; border-color:#2f6a45;
}
.stats-info #points-left.warn{
  background:#3a2c15; color:#ffe7c7; border-color:#7a5a2a;
}
.stats-info #points-left.danger{
  background:#3b1a1a; color:#ffd6d6; border-color:#7a2a2a;
}

/* Mobile fine-tuning */
@media (max-width: 460px){
  .stats-grid label{ padding-right: 56px; }
  .stat-badge{ right: 6px; }
}

