:root{
  --bg:#F4F1E9; --ink:#262420; --muted:#857E6E; --line:#D9D2C0;
  --blue1:#1C9AD6; --blue2:#0C6FA6;
  --recupero2:#B6492F; --recupero1:#D98A55; --diretti1:#222B33;
  --diretti2:#3DA163; --quarti:#A9C9AE; --semifinali:#3E9C5C; --finale:#27B14A;
  --g1:#3FA56B; --g2:#C1503A; --g3:#D9B23F; --g4:#D98C30;
  --gold:#C9A84C;
}
*{box-sizing:border-box;}
body{ margin:0; background:var(--bg); color:var(--ink); font-family:'Inter',sans-serif; }
.app{ max-width:100%; padding:18px 16px 70px; }

.topbar{
  background:linear-gradient(135deg,var(--blue1),var(--blue2));
  color:#fff; border-radius:8px; padding:14px 20px; margin-bottom:14px;
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px;
}
.topbar h1{
  font-family:'Barlow Condensed',sans-serif; font-weight:800; font-size:21px;
  margin:0; letter-spacing:.01em; outline:none; border-bottom:1.5px dashed transparent;
}
.topbar h1:hover, .topbar h1:focus{ border-color:rgba(255,255,255,.6); }
.topbar .sub{ font-size:11.5px; opacity:.9; font-family:'Source Code Pro',monospace; }
.topbar .right{ display:flex; gap:8px; }
button.tool{
  font-family:'Source Code Pro',monospace; font-size:11.5px; background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.5); color:#fff; padding:7px 12px; border-radius:5px; cursor:pointer;
}
button.tool:hover{ background:rgba(255,255,255,.25); }
button.tool.danger{ border-color:#ffb4a3; }
button.tool.danger:hover{ background:#A6432F; }

.infopanel{
  display:flex; flex-wrap:wrap; gap:18px; background:#fff; border:1px solid var(--line);
  border-radius:8px; padding:12px 18px; margin-bottom:18px; align-items:center;
}
.field{ display:flex; flex-direction:column; gap:2px; }
.field label{ font-family:'Source Code Pro',monospace; font-size:9.5px; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; }
.field input{
  border:none; border-bottom:1.5px solid var(--line); font-family:'Inter',sans-serif;
  font-weight:600; font-size:13.5px; padding:2px 2px; outline:none; background:transparent; width:110px;
}
.field input.num{ width:48px; font-family:'Source Code Pro',monospace; }
.field input:focus{ border-color:var(--gold); }
.field input:disabled{ color:var(--ink); opacity:1; }

.col-headers{ display:flex; min-width:max-content; margin-bottom:5px; }
.col-headers .h{
  width:150px; padding:5px 6px; text-align:center; border-radius:4px; margin:0 26px 0 0;
  font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:11px; letter-spacing:.01em;
  text-transform:uppercase; color:#fff;
}
.h.diretti1{ background:var(--diretti1); }
.h.diretti2{ background:var(--diretti2); }
.h.recupero1{ background:var(--recupero1); }
.h.recupero2{ background:var(--recupero2); }
.h.quarti{ background:var(--quarti); color:#1c2b1f; }
.h.semifinali{ background:var(--semifinali); }
.h.finale{ background:var(--finale); font-size:13px; }

.scroll{ overflow-x:auto; padding-bottom:14px; }
.bracket-wrap{ position:relative; min-width:max-content; }
.board{ display:flex; min-width:max-content; align-items:stretch; position:relative; z-index:1; }
.col{ position:relative; width:150px; margin:0 26px 0 0; }

.match{
  background:#fff; border:1px solid var(--line); border-radius:5px; overflow:hidden;
  box-shadow:0 1px 2px rgba(38,36,32,.06); position:absolute; left:0; width:150px;
}
.match.final-card{ border:2px solid var(--gold); }
.match-top{ display:flex; align-items:center; gap:4px; padding:3px 6px 0; }
.dot{ width:6px; height:6px; border-radius:50%; flex-shrink:0; }
.match-id{ font-family:'Source Code Pro',monospace; font-size:8px; color:var(--muted); letter-spacing:.02em; }
.slot{ display:flex; align-items:center; gap:4px; padding:3px 6px; border-top:1px solid var(--line); }
.slot:first-of-type{ border-top:none; margin-top:2px; }
.slot input.name{
  flex:1; border:none; outline:none; background:transparent; font-family:'Inter',sans-serif;
  font-size:11px; font-weight:500; color:var(--ink); padding:0; min-width:0;
}
.slot input.name::placeholder{ color:#c4bca4; font-style:italic; }
.slot .name-ro{ flex:1; font-size:11px; font-weight:500; color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.slot .name-ro.empty{ color:#bbb; font-style:italic; font-weight:400; }
.slot input.score{
  width:22px; border:1px solid var(--line); border-radius:3px; text-align:center;
  font-family:'Source Code Pro',monospace; font-size:10.5px; padding:2px 0; outline:none; color:var(--ink);
  -moz-appearance:textfield;
}
.slot input.score::-webkit-outer-spin-button,
.slot input.score::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.slot input.score:focus{ border-color:var(--gold); }
.slot.winner{ background:linear-gradient(90deg,#F1E3BC,#fff 85%); }
.slot.winner .name-ro, .slot.winner input.name{ font-weight:700; }
.slot.winner::before{ content:"●"; color:var(--gold); font-size:7px; }
.slot.loser .name-ro, .slot.loser input.name{ opacity:.42; text-decoration:line-through; }
.clear-row{ display:flex; justify-content:flex-end; padding:0 6px 4px; min-height:14px; }
.clear-btn{ border:none; background:none; color:#cabfa0; font-size:10.5px; cursor:pointer; }
.clear-btn:hover{ color:var(--recupero2); }

.champion-banner{
  display:none; margin-top:26px; padding:18px 22px; border-radius:9px;
  background:linear-gradient(135deg,var(--diretti1),#1B4332); color:#F4F1E9; align-items:center; gap:12px;
}
.champion-banner.show{ display:flex; }
.champion-banner .trophy{ font-size:26px; }
.champion-banner .label{ font-family:'Source Code Pro',monospace; font-size:10px; letter-spacing:.1em; color:var(--gold); text-transform:uppercase; }
.champion-banner .name{ font-family:'Barlow Condensed',sans-serif; font-weight:800; font-size:26px; }

.torneo-tabs{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.ttab{
  display:flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--line);
  border-radius:6px; padding:7px 12px; cursor:pointer; font-family:'Inter',sans-serif; font-size:12px;
}
.ttab.active{ border-color:var(--gold); box-shadow:0 0 0 2px rgba(201,168,76,.25); }
.ttab-date{ font-family:'Source Code Pro',monospace; color:var(--muted); }
.ttab-new{ border-style:dashed; color:var(--muted); }
.ttab-new:hover{ border-color:var(--gold); color:var(--ink); }
.ttab-empty{ font-size:12.5px; color:var(--muted); font-style:italic; }
.badge{
  font-family:'Source Code Pro',monospace; font-size:9.5px; text-transform:uppercase; letter-spacing:.04em;
  padding:2px 7px; border-radius:10px;
}
.badge-live{ background:#E2F1E7; color:#1B4332; }
.badge-done{ background:#EFEAE0; color:var(--muted); }

.locked-banner{
  display:none; align-items:center; gap:10px; background:#F1E3BC; border:1px solid var(--gold);
  border-radius:7px; padding:10px 14px; margin-bottom:14px; font-size:12.5px; color:#5c4a1a;
}

.empty-state{
  display:none; background:#fff; border:1px dashed var(--line); border-radius:8px;
  padding:34px 20px; text-align:center; color:var(--muted); font-size:13.5px;
}
.empty-state button{
  margin-top:12px; font-family:'Source Code Pro',monospace; font-size:12px; background:var(--ink);
  color:#fff; border:none; padding:9px 18px; border-radius:5px; cursor:pointer;
}
