:root{--bg:#f4f5f7;--card:#fff;--testo:#111827;--tenue:#6b7280;--bordo:#e5e7eb;--primario:#0f766e;--primario-testo:#fff;--ok-bg:#ecfdf5;--ok:#065f46;--err-bg:#fef2f2;--err:#991b1b;--barra:#0f172a;color:var(--testo);background:var(--bg);-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0}h1,h2{margin:0 0 12px}h2{font-size:1.2rem}.centro{place-items:center;min-height:100vh;padding:16px;display:grid}.barra{z-index:10;padding:10px 16px;padding-top:max(10px, env(safe-area-inset-top));background:var(--barra);color:#fff;align-items:center;gap:12px;display:flex;position:sticky;top:0}.barra nav{flex:1;gap:4px;display:flex}.logo{margin-right:8px}.tab{white-space:nowrap;color:#cbd5e1;background:0 0;border:none;border-radius:8px;padding:8px 12px}.tab.attiva{color:#fff;background:#1e293b}.barra .link{color:#cbd5e1;margin-left:auto}.contenuto{max-width:1100px;margin:0 auto;padding:16px}.card{background:var(--card);border:1px solid var(--bordo);border-radius:12px;margin-bottom:12px;padding:14px}.login{gap:12px;width:100%;max-width:360px;display:grid}label{color:var(--tenue);gap:4px;font-size:.9rem;display:grid}label.riga{align-items:center;gap:10px;margin-bottom:10px;display:flex}input,textarea{font:inherit;color:var(--testo);border:1px solid var(--bordo);background:#fff;border-radius:8px;width:100%;padding:9px 10px;font-size:16px}label.riga input{width:auto}textarea{resize:vertical;font-family:ui-monospace,Consolas,monospace}button{font:inherit;cursor:pointer;border:1px solid var(--bordo);color:var(--testo);background:#fff;border-radius:8px;padding:10px 14px}button:disabled{opacity:.5;cursor:default}button.primario{background:var(--primario);color:var(--primario-testo);border-color:var(--primario)}button.link{color:var(--primario);background:0 0;border:none;padding:0;text-decoration:underline}.azioni{flex-wrap:wrap;gap:8px;margin:10px 0;display:flex}.riepilogo{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.kpi{background:var(--card);border:1px solid var(--bordo);color:var(--tenue);border-radius:10px;min-width:90px;padding:8px 12px;font-size:.85rem}.kpi span{color:var(--testo);font-size:1.3rem;font-weight:600;display:block}.kpi.ok span{color:var(--ok)}.avviso{border-radius:8px;margin:10px 0;padding:10px 12px}.avviso.ok{background:var(--ok-bg);color:var(--ok)}.avviso.errore{background:var(--err-bg);color:var(--err)}.avviso.attesa{color:var(--tenue);background:#f3f4f6}.scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.88rem}th,td{border-bottom:1px solid var(--bordo);text-align:left;white-space:nowrap;padding:7px 8px}th{color:var(--tenue);font-size:.8rem;font-weight:500}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.tenue{color:var(--tenue)}.solo-mobile{display:none}.schede{gap:8px;margin:0 0 12px;padding:0;list-style:none}.scheda{background:var(--card);border:1px solid var(--bordo);border-radius:12px;min-width:0;padding:10px 12px}.scheda-comp{color:var(--tenue);margin-bottom:6px;font-size:.75rem}.scheda-riga{justify-content:space-between;gap:12px;display:flex}.squadre{gap:2px;min-width:0;display:grid}.punteggio{text-align:right;font-variant-numeric:tabular-nums;gap:2px;font-weight:700;display:grid}.squadre span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.indicatori{border-top:1px solid var(--bordo);font-variant-numeric:tabular-nums;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px;padding-top:8px;font-size:.95rem;font-weight:600;display:grid}.indicatori small{color:var(--tenue);font-size:.7rem;font-weight:400;display:block}.motivo{color:var(--err);margin-top:4px;font-size:.8rem}@media (width<=700px){.solo-desktop{display:none}.solo-mobile{display:grid}.contenuto{padding:12px 12px calc(76px + env(safe-area-inset-bottom))}.barra nav{z-index:20;background:var(--barra);padding:6px 8px calc(6px + env(safe-area-inset-bottom));border-top:1px solid #1e293b;gap:0;position:fixed;bottom:0;left:0;right:0}.tab{flex:1;padding:12px 8px;font-size:.95rem}label.riga{flex-wrap:wrap}label.riga span{width:100%}label.riga input{flex:1}.riepilogo{grid-template-columns:1fr 1fr;display:grid}.azioni button.primario{flex:1;padding:12px}}
