/* AstaLab 2.0 — stile condiviso (stessa palette/token della 1.3.0-beta.6, per
   continuità visiva fra le due linee), sia nel deploy reale sia nell'Artifact. */
:root{
  color-scheme: light;
  --bg:#f4f6f2; --surface:#ffffff; --surface-2:#eef1ea; --border:#dfe4de;
  --text:#1a2124; --text-dim:#5b6560; --text-faint:#8b9590;
  --accent:#2f8f57; --accent-ink:#ffffff; --amber:#b57a12; --red:#c23f52; --blue:#3568b0;
  --radius:10px; --shadow:0 1px 2px rgba(20,30,25,.06), 0 4px 16px rgba(20,30,25,.05);
  --sans:-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono: ui-monospace, "SF Mono", Consolas, "Cascadia Mono", monospace;
}
@media (prefers-color-scheme: dark){
  :root{
    color-scheme: dark;
    --bg:#12171a; --surface:#1a2124; --surface-2:#1f272b; --border:#26313a;
    --text:#e7ece8; --text-dim:#a8b3ac; --text-faint:#6d7a74;
    --accent:#3fae6a; --accent-ink:#08150d; --amber:#e0a530; --red:#e2596b; --blue:#5c8fd6;
    --shadow:0 1px 2px rgba(0,0,0,.3), 0 4px 20px rgba(0,0,0,.35);
  }
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{background:var(--bg); color:var(--text); font-family:var(--sans); font-size:14px; line-height:1.45;}
#root{min-height:100vh;}
h1{font-size:22px; margin:0 0 12px;}
h3{font-size:13px; margin:0 0 8px; text-transform:uppercase; letter-spacing:.04em; color:var(--text-dim);}
a{color:var(--blue);}
.hint{font-size:12px; color:var(--text-faint);}
.errtext{font-size:12.5px; color:var(--red); font-weight:600;}
.okmsg{font-size:12.5px; color:var(--accent); font-weight:600;}
.notice{font-size:12px; color:var(--amber); font-weight:600; background:color-mix(in srgb, var(--amber) 12%, transparent); padding:6px 10px; border-radius:8px;}
.mono{font-family:var(--mono);}
.card{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:14px 16px; box-shadow:var(--shadow); margin-bottom:16px;}
.btn{border:1px solid var(--border); background:var(--surface-2); color:var(--text); border-radius:8px; padding:7px 12px; font-size:13px; font-weight:600; cursor:pointer;}
.btn.primary{background:var(--accent); color:var(--accent-ink); border-color:transparent;}
.btn.ghost{background:transparent;}
.btn.sm{padding:4px 8px; font-size:12px;}
.badge{display:inline-flex; padding:2px 8px; border-radius:99px; font-size:11px; font-weight:700;}
.badge.ok{background:color-mix(in srgb, var(--accent) 20%, transparent); color:var(--accent);}
.badge.neutral{background:var(--surface-2); color:var(--text-dim); border:1px solid var(--border);}
.badge.warn{background:color-mix(in srgb, var(--amber) 20%, transparent); color:var(--amber);}
select{background:var(--surface); border:1px solid var(--border); color:var(--text); border-radius:7px; padding:7px 9px; font-size:13px;}
.catalog{max-width:1080px; margin:0 auto; padding:20px;}
table{width:100%; border-collapse:collapse; font-size:13px;}
th{text-align:left; font-size:11px; text-transform:uppercase; color:var(--text-faint); padding:8px 10px; border-bottom:1px solid var(--border);}
td{padding:7px 10px; border-bottom:1px solid var(--border);}
.table-wrap{overflow-x:auto; border:1px solid var(--border); border-radius:var(--radius);}
.table-wrap table{margin:0;}
/* round alpha.5-r1: stessa resa visiva di .table-wrap, ma un nome di classe DIVERSO — la tabella
   "Squadre" (seat) deve restare distinguibile per selettore dalla tabella "Partecipanti" (lobby,
   alpha.4), che alcuni test la identificano tramite `.table-wrap` da sola (un solo `.table-wrap` per
   pagina era l'assunzione valida fino a questo round). */
.seats-table-wrap{overflow-x:auto; border:1px solid var(--border); border-radius:var(--radius);}
.seats-table-wrap table{margin:0;}
tr.mine{background:color-mix(in srgb, var(--accent) 8%, transparent);}
.flex{display:flex; align-items:center;}
.flex.between{justify-content:space-between;}
.flex.gap8{gap:8px;}
.wrap{flex-wrap:wrap;}
input[type=text],input[type=email],input[type=password],input[type=file],input[type=number]{
  background:var(--surface); border:1px solid var(--border); color:var(--text); border-radius:7px; padding:7px 9px; font-size:13px;
}
label.field{display:flex; flex-direction:column; gap:4px; font-size:12.5px; font-weight:600; color:var(--text-dim); margin-bottom:10px;}
label.field input{font-weight:500; color:var(--text); margin-top:2px;}
#initAuctionForm{display:grid; grid-template-columns:1fr 1fr; gap:12px 16px; margin-top:4px;}
#initAuctionForm label.field:nth-of-type(1),
#initAuctionForm label.field:nth-of-type(2){grid-column:span 1; margin-bottom:0;}
#initAuctionForm label.field:nth-of-type(3){grid-column:1 / -1; margin-bottom:0;}
#initAuctionForm input[type=number],
#initAuctionForm select{height:36px;}
#initAuctionForm input[type=number]:focus,
#initAuctionForm select:focus{outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent);}
#initAuctionForm button[type=submit]{grid-column:1 / -1; justify-self:start; margin-top:6px; padding:9px 18px;}
@media (max-width:480px){
  #initAuctionForm{grid-template-columns:1fr;}
}
.auth-card{max-width:380px; margin:60px auto; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:24px; box-shadow:var(--shadow);}
.dashboard{max-width:960px; margin:0 auto; padding:20px;}
.auction-detail{max-width:800px; margin:0 auto; padding:20px;}
.topbar-2{display:flex; align-items:center; gap:8px; padding:12px 20px; border-bottom:1px solid var(--border); background:var(--surface);}
.version-tag{font-family:var(--mono); font-size:11px; color:var(--text-faint); background:var(--surface-2); padding:2px 6px; border-radius:5px;}
.demo-banner{background:color-mix(in srgb, var(--amber) 15%, transparent); border-bottom:1px solid var(--amber); color:var(--text); padding:10px 20px; font-size:13px;}
