:root{
  --bg:#080B0A;
  --bg-elev:#0C110F;
  --surface:#111917;
  --surface-alt:#18211E;
  --ink:#ECF2EE;
  --ink-secondary:#A6B4AC;
  --ink-muted:#78877F;
  --border:rgba(255,255,255,.09);
  --border-strong:rgba(255,255,255,.16);
  --accent:#2FBF71;
  --accent-strong:#63DD9B;
  --accent-soft:rgba(47,191,113,.14);
  --highlight:#F2C14E;
  --highlight-ink:#241A02;
  --highlight-text:#F2C14E;
  --tint:rgba(255,255,255,.08);
  --topbar-bg:rgba(12,17,15,.86);
  --rl-legge-ink:#8CC8F7;
  --rl-quando-ink:#F58A8E;
  --rl-protegge-ink:#6FE0A2;
  --highlight-soft:rgba(242,193,78,.10);
  --highlight-line:rgba(242,193,78,.25);
  --arw-pressione:#F2555A;
  --arw-copertura:#5AB0F2;
  --arw-scivolamento:#3FD07F;
  --status-good:#2FBF71;
  --status-good-soft:rgba(47,191,113,.15);
  --status-warn:#F2A93B;
  --status-warn-soft:rgba(242,169,59,.15);
  --status-critical:#F2555A;
  --status-critical-soft:rgba(242,85,90,.15);
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 10px 30px rgba(0,0,0,.35);
  --pitch-a:#123326;
  --pitch-b:#0F2C21;
  --pitch-lines:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2068%20100%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22rgba%28255%2C255%2C255%2C.4%29%22%20stroke-width%3D%220.5%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%2262%22%20height%3D%2294%22%20rx%3D%220.8%22/%3E%3Cline%20x1%3D%223%22%20y1%3D%2250%22%20x2%3D%2265%22%20y2%3D%2250%22/%3E%3Ccircle%20cx%3D%2234%22%20cy%3D%2250%22%20r%3D%229.15%22/%3E%3Crect%20x%3D%2224.84%22%20y%3D%223%22%20width%3D%2218.32%22%20height%3D%225.5%22/%3E%3Crect%20x%3D%2213.84%22%20y%3D%223%22%20width%3D%2240.32%22%20height%3D%2216.5%22/%3E%3Cpath%20d%3D%22M%2041.26%2019.57%20L%2040.47%2020.47%20L%2039.57%2021.26%20L%2038.58%2021.92%20L%2037.50%2022.45%20L%2036.37%2022.84%20L%2035.19%2023.07%20L%2034.00%2023.15%20L%2032.81%2023.07%20L%2031.63%2022.84%20L%2030.50%2022.45%20L%2029.43%2021.92%20L%2028.43%2021.26%20L%2027.53%2020.47%20L%2026.74%2019.57%22/%3E%3Crect%20x%3D%2224.84%22%20y%3D%2291.5%22%20width%3D%2218.32%22%20height%3D%225.5%22/%3E%3Crect%20x%3D%2213.84%22%20y%3D%2280.5%22%20width%3D%2240.32%22%20height%3D%2216.5%22/%3E%3Cpath%20d%3D%22M%2041.26%2080.43%20L%2040.47%2079.53%20L%2039.57%2078.74%20L%2038.58%2078.08%20L%2037.50%2077.55%20L%2036.37%2077.16%20L%2035.19%2076.93%20L%2034.00%2076.85%20L%2032.81%2076.93%20L%2031.63%2077.16%20L%2030.50%2077.55%20L%2029.43%2078.08%20L%2028.43%2078.74%20L%2027.53%2079.53%20L%2026.74%2080.43%22/%3E%3Crect%20x%3D%2230.34%22%20y%3D%220.6%22%20width%3D%227.32%22%20height%3D%222.4%22%20stroke-width%3D%220.7%22/%3E%3Crect%20x%3D%2230.34%22%20y%3D%2297%22%20width%3D%227.32%22%20height%3D%222.4%22%20stroke-width%3D%220.7%22/%3E%3Cpath%20d%3D%22M%205.60%203.00%20L%205.58%203.34%20L%205.51%203.67%20L%205.40%203.99%20L%205.25%204.30%20L%205.06%204.58%20L%204.84%204.84%20L%204.58%205.06%20L%204.30%205.25%20L%203.99%205.40%20L%203.67%205.51%20L%203.34%205.58%20L%203.00%205.60%22/%3E%3Cpath%20d%3D%22M%2065.00%205.60%20L%2064.66%205.58%20L%2064.33%205.51%20L%2064.01%205.40%20L%2063.70%205.25%20L%2063.42%205.06%20L%2063.16%204.84%20L%2062.94%204.58%20L%2062.75%204.30%20L%2062.60%203.99%20L%2062.49%203.67%20L%2062.42%203.34%20L%2062.40%203.00%22/%3E%3Cpath%20d%3D%22M%2062.40%2097.00%20L%2062.42%2096.66%20L%2062.49%2096.33%20L%2062.60%2096.01%20L%2062.75%2095.70%20L%2062.94%2095.42%20L%2063.16%2095.16%20L%2063.42%2094.94%20L%2063.70%2094.75%20L%2064.01%2094.60%20L%2064.33%2094.49%20L%2064.66%2094.42%20L%2065.00%2094.40%22/%3E%3Cpath%20d%3D%22M%203.00%2094.40%20L%203.34%2094.42%20L%203.67%2094.49%20L%203.99%2094.60%20L%204.30%2094.75%20L%204.58%2094.94%20L%204.84%2095.16%20L%205.06%2095.42%20L%205.25%2095.70%20L%205.40%2096.01%20L%205.51%2096.33%20L%205.58%2096.66%20L%205.60%2097.00%22/%3E%3C/g%3E%3Cg%20fill%3D%22rgba%28255%2C255%2C255%2C.55%29%22%20stroke%3D%22none%22%3E%3Ccircle%20cx%3D%2234%22%20cy%3D%2250%22%20r%3D%220.55%22/%3E%3Ccircle%20cx%3D%2234%22%20cy%3D%2214%22%20r%3D%220.55%22/%3E%3Ccircle%20cx%3D%2234%22%20cy%3D%2286%22%20r%3D%220.55%22/%3E%3C/g%3E%3C/svg%3E");
  --radius:16px;
  color-scheme: dark;
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
}
h1,h2,h3,h4{
  font-family:"Barlow Condensed","Arial Narrow",sans-serif;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.02em;
  text-wrap:balance;
  margin:0;
  color:var(--ink);
}
button{font-family:inherit}
input,select,textarea{font-family:inherit;color:inherit}
a{color:var(--accent)}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
::selection{background:var(--highlight);color:var(--highlight-ink)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ---------- topbar ---------- */
.topbar{
  position:sticky; top:0; z-index:20;
  background:var(--topbar-bg);
  backdrop-filter:saturate(160%) blur(14px);
  -webkit-backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid var(--border);
}
.topbar-inner{
  max-width:1320px; margin:0 auto;
  padding:14px 26px 13px;
  display:flex; align-items:flex-end; gap:20px; flex-wrap:wrap;
}
.page-head{display:flex; flex-direction:column; gap:3px; flex:1 1 260px; min-width:200px}
.breadcrumb{
  font-size:11.5px; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  color:var(--accent);
}
.page-title{font-size:clamp(21px,3vw,28px); line-height:1.1}
.brand{display:flex; flex-direction:column; gap:2px; flex:1 1 260px; min-width:200px}
.brand-eyebrow{
  font-family:"Barlow Condensed",sans-serif;
  font-size:12px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--accent);
}
.formation-picker{display:flex; flex-direction:column; gap:3px}
.formation-picker label{
  font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-muted);
}
select{
  background:var(--surface-alt); border:1px solid var(--border); color:var(--ink);
  border-radius:8px; padding:7px 10px; font-size:14px; font-weight:600;
  min-width:140px;
}
.data-actions{display:flex; align-items:center; gap:6px; padding-bottom:4px}
.save-status{
  font-size:12px; color:var(--ink-muted); display:flex; align-items:center; gap:6px;
  padding-bottom:4px; white-space:nowrap;
}
.save-status .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);transition:background .2s}
.save-status.saving .dot{background:var(--highlight)}
.save-status.error .dot{background:var(--status-critical)}

.tabs{
  max-width:1180px; margin:0 auto; padding:0 20px;
  display:flex; gap:4px; overflow-x:auto;
}
.tab-btn{
  appearance:none; border:none; background:transparent; cursor:pointer;
  padding:10px 14px 12px; font-family:"Barlow Condensed",sans-serif;
  font-size:15px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  color:var(--ink-muted); border-bottom:3px solid transparent; white-space:nowrap;
}
.tab-btn:hover{color:var(--ink)}
.tab-btn.active{color:var(--accent); border-bottom-color:var(--accent)}

main{max-width:1320px; margin:0 auto; padding:26px 26px 90px; width:100%}
.tab-panel[hidden]{display:none}

/* ---------- shell & sidebar ---------- */
.shell{display:flex; min-height:100vh; align-items:stretch}
.sidebar{
  width:248px; flex-shrink:0; background:var(--bg-elev); border-right:1px solid var(--border);
  display:flex; flex-direction:column; padding:18px 12px 14px;
  position:sticky; top:0; height:100vh; overflow-y:auto;
  scrollbar-width:thin;
}
.nav-group{display:flex; flex-direction:column; gap:1px; margin-bottom:10px}
.nav-group-label{
  font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-muted); padding:10px 10px 5px;
}
.sidebar-brand{display:flex; align-items:center; gap:10px; padding:2px 6px 18px}
.crest{
  width:34px; height:34px; border-radius:9px; flex-shrink:0;
  background:linear-gradient(155deg, var(--accent), var(--accent-strong));
  color:#fff; font-family:"Barlow Condensed",sans-serif; font-weight:800; font-size:13px;
  display:flex; align-items:center; justify-content:center; letter-spacing:.02em;
  box-shadow:0 2px 8px rgba(0,0,0,.25);
}
.sidebar-brand-text{display:flex; flex-direction:column; gap:1px; min-width:0}
.sidebar-club{font-family:"Barlow Condensed",sans-serif; font-weight:800; font-size:14px; text-transform:uppercase; letter-spacing:.02em; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.sidebar-sub{font-size:10.5px; color:var(--ink-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.sidebar-nav{display:flex; flex-direction:column; gap:1px; margin-top:2px}
.sidebar-foot{margin-top:auto; padding-top:12px; border-top:1px solid var(--border); display:flex; flex-direction:column; gap:1px}
.tab-btn.sidebar-link{
  display:flex; align-items:center; gap:10px; width:100%;
  padding:8px 10px; border-radius:9px; border-bottom:none;
  font-family:"Inter",sans-serif; font-size:13.2px; font-weight:600; letter-spacing:0; text-transform:none;
  color:var(--ink-secondary); text-align:left; white-space:normal; line-height:1.2;
}
.tab-btn.sidebar-link:hover{color:var(--ink); background:var(--surface-alt)}
.tab-btn.sidebar-link.active{
  color:var(--ink); background:var(--surface-alt);
  box-shadow:inset 2px 0 0 var(--accent);
}
.tab-btn.sidebar-link.active .ic{color:var(--accent)}
.tab-btn.sidebar-link .ic{width:17px; height:17px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round}
.sidebar-link-ai{background:linear-gradient(135deg, var(--accent-soft), transparent)}
.sidebar-link-ai .ic{stroke:var(--highlight); fill:var(--highlight)}
.main-col{flex:1; min-width:0; display:flex; flex-direction:column}

.menu-toggle,.bottom-nav,.nav-backdrop{display:none}
body.nav-open{overflow:hidden}
.conn-status{
  font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:var(--accent); padding:3px 8px; border-radius:999px; background:var(--accent-soft);
  white-space:nowrap; align-self:center;
}
.conn-status.is-offline{color:var(--status-critical); background:var(--status-critical-soft)}

@media (max-width:900px){
  .shell{flex-direction:column}
  .menu-toggle{
    display:flex; flex-direction:column; justify-content:center; gap:4px;
    width:42px; height:42px; padding:10px; margin:0 0 2px;
    border:1px solid var(--border); border-radius:10px; background:var(--surface-alt); color:var(--ink);
  }
  .menu-toggle span{display:block; height:2px; background:currentColor; border-radius:2px}
  .nav-backdrop{
    display:block; position:fixed; inset:0; z-index:40; background:rgba(0,0,0,.45);
  }
  .nav-backdrop[hidden]{display:none}
  .sidebar{
    position:fixed; top:0; left:0; bottom:0; z-index:50;
    width:min(86vw,320px); height:100dvh; max-height:100dvh;
    border-right:1px solid var(--border); border-bottom:none;
    padding:18px 14px calc(18px + env(safe-area-inset-bottom));
    transform:translateX(-105%); transition:transform .22s ease;
    box-shadow:none;
  }
  body.nav-open .sidebar{transform:translateX(0); box-shadow:16px 0 40px rgba(0,0,0,.35)}
  .sidebar-nav,.nav-group{flex-direction:column}
  .nav-group-label{display:block}
  .sidebar-foot{flex-direction:column}
  .tab-btn.sidebar-link{width:100%; padding:11px 12px; font-size:15px}
  .tab-btn.sidebar-link span{display:inline}
  .tab-btn.sidebar-link.active{box-shadow:inset 2px 0 0 var(--accent)}
  .topbar-inner{padding:10px 12px 10px; align-items:center; gap:10px}
  .page-head{flex:1 1 auto; min-width:0}
  .page-title{font-size:20px}
  .formation-picker,.data-actions{display:none}
  main{padding:16px 14px calc(88px + env(safe-area-inset-bottom))}
  .bottom-nav{
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:30;
    background:var(--bg-elev); border-top:1px solid var(--border);
    padding:6px 4px calc(6px + env(safe-area-inset-bottom));
    justify-content:space-around; gap:2px;
  }
  .bottom-nav .tab-btn,
  .bottom-nav-btn{
    appearance:none; border:none; background:transparent; color:var(--ink-muted);
    flex:1; min-width:0; display:flex; flex-direction:column; align-items:center; gap:3px;
    padding:6px 4px; font-size:10px; font-weight:700; letter-spacing:.02em; text-transform:uppercase;
    font-family:inherit; cursor:pointer; border-bottom:none;
  }
  .bottom-nav-btn .ic{width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-join:round}
  .bottom-nav-btn.active,.bottom-nav-btn[aria-expanded="true"]{color:var(--accent)}
}

@media (min-width:901px){
  .bottom-nav{display:none !important}
  .menu-toggle{display:none !important}
}

/* ---------- generic layout ---------- */
.grid{display:grid; gap:16px}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.card{
  background:var(--surface); border:1px solid var(--border); border-radius:14px;
  padding:18px 20px; box-shadow:var(--shadow);
}
.card > h2{font-size:20px; margin-bottom:4px}
.card > h3{font-size:16px}
.card-sub{color:var(--ink-secondary); font-size:13px; margin:0 0 14px}
.section-title{
  font-size:13px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-muted); margin:26px 0 10px;
}
.section-title:first-child{margin-top:0}

.btn{
  appearance:none; cursor:pointer; border-radius:9px; border:1px solid var(--border);
  background:var(--surface-alt); color:var(--ink); font-weight:600; font-size:13.5px;
  padding:9px 14px; display:inline-flex; align-items:center; gap:6px;
}
.btn:hover{border-color:var(--accent)}
.btn-primary{background:var(--accent); border-color:var(--accent); color:#fff}
.btn-primary:hover{background:var(--accent-strong); border-color:var(--accent-strong)}
.btn-ghost{background:transparent; border-color:transparent}
.btn-ghost:hover{background:var(--surface-alt)}
.btn-danger{color:var(--status-critical)}
.btn-sm{padding:5px 10px; font-size:12.5px; border-radius:7px}
.btn[disabled]{opacity:.5; cursor:not-allowed}

label.field-label{display:block; font-size:12.5px; font-weight:600; color:var(--ink-secondary); margin-bottom:5px}
.field.asp-field{border-left:3px solid transparent; padding-left:8px; margin-left:-11px}
.field.asp-field.active{border-left-color:var(--highlight); background:var(--surface-alt); border-radius:0 8px 8px 0; padding-top:6px; padding-bottom:6px}
label.field-label.asp-label{cursor:pointer; display:flex; align-items:center; gap:6px; flex-wrap:wrap}
label.field-label.asp-label:hover{color:var(--ink)}
.asp-field.active label.field-label.asp-label{color:var(--accent-strong)}
label.field-label.asp-label .asp-eye{font-size:11px; color:var(--ink-muted)}
.asp-field.active label.field-label.asp-label .asp-eye{color:var(--accent-strong)}
.asp-quando{display:flex; align-items:baseline; gap:7px; margin:2px 0 8px; font-size:12.5px; color:var(--ink-secondary); line-height:1.4}
.asp-quando-tag{flex-shrink:0; font-family:"Barlow Condensed",sans-serif; font-weight:700; font-size:10.5px; letter-spacing:.06em; color:var(--highlight-text); background:var(--tint); border-radius:4px; padding:1px 6px}
.mv-legend{display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin:8px 0 0; font-size:11px; color:var(--ink-muted)}
.mv-legend-item{display:flex; align-items:center; gap:5px}
.mv-legend-dot{display:inline-block; font-size:13px; line-height:1}
.mv-legend-dot.ball-trigger{color:var(--highlight-text)}
.mv-legend-dot.mv-legend-active{color:var(--highlight-text)}
.mv-legend-dot.mv-legend-line{color:var(--ink-secondary); font-size:10px; letter-spacing:1px}
input[type=text], input[type=number], textarea{
  width:100%; background:var(--bg); border:1px solid var(--border); color:var(--ink);
  border-radius:8px; padding:9px 11px; font-size:14px;
}
textarea{resize:vertical; min-height:60px}
input[type=text]:focus, textarea:focus, select:focus{border-color:var(--accent)}
.field{margin-bottom:12px}
.field-row{display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px}

input[type=range]{
  width:100%; accent-color:var(--accent); height:20px; background:transparent;
}
.slider-row{display:flex; align-items:center; gap:10px}
.slider-row input[type=range]{flex:1}
.slider-val{
  font-family:"Barlow Condensed",sans-serif; font-weight:800; font-size:20px;
  min-width:34px; height:34px; padding:0 8px; border-radius:9px;
  display:inline-flex; align-items:center; justify-content:center;
  color:var(--accent-strong); background:var(--accent-soft);
  border:1px solid rgba(47,191,113,.32); font-variant-numeric:tabular-nums;
}

.chip{
  display:inline-flex; align-items:center; gap:5px; padding:4px 10px;
  border-radius:99px; font-size:12px; font-weight:600; border:1px solid var(--border);
  background:var(--surface-alt); color:var(--ink-secondary);
}
.chip-accent{background:var(--accent-soft); color:var(--accent-strong); border-color:transparent}
.chip-highlight{background:var(--highlight); color:var(--highlight-ink); border-color:transparent}
.role-checks{display:flex; flex-wrap:wrap; gap:6px}
.role-check{
  display:inline-flex; align-items:center; gap:5px; padding:5px 10px; border-radius:8px;
  border:1px solid var(--border); background:var(--surface-alt); font-size:12.5px; cursor:pointer;
}
.role-check input{accent-color:var(--accent)}

.photo-field-row{display:flex; align-items:center; gap:12px; flex-wrap:wrap}
.player-photo-preview{
  width:64px; height:64px; border-radius:50%; object-fit:cover;
  border:2px solid var(--border); background:var(--surface-alt);
}
.player-avatar{
  width:36px; height:36px; border-radius:50%; object-fit:cover; display:block; flex-shrink:0;
}
.player-avatar-placeholder{
  display:flex; align-items:center; justify-content:center;
  background:var(--accent-soft); color:var(--accent-strong);
  font-size:12px; font-weight:700; border:1px solid var(--border);
}

.training-ex-list{display:flex; flex-direction:column; gap:8px; margin-top:8px}
.training-ex-item{
  border:1px solid var(--border); border-radius:10px; padding:10px 12px; background:var(--surface-alt);
}
.training-ex-item .btn{margin-top:6px}

table{width:100%; border-collapse:collapse; font-size:13.5px}
th{
  text-align:left; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-muted); padding:8px 10px; border-bottom:1px solid var(--border);
}
td{padding:9px 10px; border-bottom:1px solid var(--border); vertical-align:middle}
tr:last-child td{border-bottom:none}
.table-wrap{overflow-x:auto}
.attr-mini{display:flex; gap:5px; align-items:center; flex-wrap:wrap}
.attr-mini .attr-score{
  min-width:36px; height:38px; padding:3px 5px; border-radius:7px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  color:var(--ink-secondary); background:var(--surface-alt); border:1px solid var(--border);
  font-variant-numeric:tabular-nums; line-height:1;
}
.attr-score small{font-size:8px; font-weight:700; letter-spacing:.05em; color:var(--ink-muted)}
.attr-score strong{margin-top:3px; font-size:15px; font-weight:800; color:var(--ink)}
.attr-mini .attr-score-1,.attr-mini .attr-score-2{background:var(--status-critical-soft); border-color:rgba(242,85,90,.28)}
.attr-mini .attr-score-1 strong,.attr-mini .attr-score-2 strong{color:var(--status-critical)}
.attr-mini .attr-score-3{background:var(--status-warn-soft); border-color:rgba(242,169,59,.26)}
.attr-mini .attr-score-3 strong{color:var(--status-warn)}
.attr-mini .attr-score-4,.attr-mini .attr-score-5{background:var(--status-good-soft); border-color:rgba(47,191,113,.28)}
.attr-mini .attr-score-4 strong,.attr-mini .attr-score-5 strong{color:var(--status-good)}
.attr-mini .attr-total{min-width:42px; background:rgba(99,221,155,.12); border-color:rgba(99,221,155,.4)}
.attr-mini .attr-total strong{color:var(--accent-strong)}
.attr-mini .attr-gk-total{min-width:42px; background:rgba(84,154,255,.14); border-color:rgba(84,154,255,.38)}
.attr-mini .attr-gk-total strong{color:#74adff}
.stat-num small{font-size:.46em; font-weight:600; color:var(--ink-muted)}
.video-heatmap{
  display:grid; gap:2px; width:100%; aspect-ratio:3/2; padding:8px;
  border:1px solid var(--border-strong); border-radius:12px;
  background:
    linear-gradient(90deg,transparent 49.7%,rgba(255,255,255,.24) 49.8%,rgba(255,255,255,.24) 50.2%,transparent 50.3%),
    linear-gradient(0deg,var(--pitch-a),var(--pitch-b));
}
.video-heat-cell{display:block; border-radius:2px; min-width:0}
.video-stage{
  position:relative; width:100%; max-width:1100px; margin:12px auto;
  background:#000; border:1px solid var(--border-strong); border-radius:14px; overflow:hidden;
}
.video-stage video{display:block; width:100%; max-height:66vh; background:#000}
#video-draw-canvas{
  position:absolute; inset:0; width:100%; height:calc(100% - 42px);
  pointer-events:none; touch-action:none;
}
#video-draw-canvas.drawing{pointer-events:auto; cursor:crosshair}
.video-editor-tools{display:flex; align-items:center; flex-wrap:wrap; gap:8px}
.video-editor-tools input[type=color]{width:38px; height:34px; padding:2px; border-radius:8px; border:1px solid var(--border); background:var(--surface-alt)}
.video-editor-tools select,.video-calibration-bar select{height:34px;padding:0 30px 0 10px;border:1px solid var(--border);border-radius:8px;color:var(--ink);background:var(--surface-alt)}
.video-calibration-bar{
  display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin:10px 0;
  padding:10px 12px;border:1px solid rgba(242,193,78,.28);border-radius:10px;background:rgba(242,193,78,.07)
}
.video-calibration-bar label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--ink-secondary)}
.video-calibration-bar .soon-note{flex:1;min-width:280px;margin:0}
.video-tool-group{display:inline-flex;overflow:hidden;border:1px solid var(--border);border-radius:9px}
.video-tool{
  width:36px;height:34px;border:0;border-right:1px solid var(--border);color:var(--ink-secondary);
  background:var(--surface-alt);font-size:18px;font-weight:800;cursor:pointer
}
.video-tool:last-child{border-right:0}
.video-tool:hover,.video-tool.active{color:var(--bg);background:var(--highlight)}
.video-color-palette{display:inline-flex;gap:5px}
.video-color-palette button{width:24px;height:24px;padding:0;border:2px solid var(--border-strong);border-radius:50%;background:var(--swatch);cursor:pointer}
.video-color-palette button:hover{transform:scale(1.12);border-color:var(--ink)}
.video-job-status{
  margin-top:12px; padding:12px 14px; border-radius:10px;
  color:var(--highlight-text); background:var(--highlight-soft); border:1px solid var(--highlight-line);
  font-weight:700;
}
.video-progress{height:8px; margin-top:9px; overflow:hidden; border-radius:99px; background:var(--tint)}
.video-progress span{display:block; width:0; height:100%; border-radius:inherit; background:var(--highlight); transition:width .35s ease}
.team-color-config{
  display:flex; align-items:center; flex-wrap:wrap; gap:10px 18px; margin:10px 0;
  padding:10px 12px; border:1px solid var(--border); border-radius:10px; background:var(--surface-alt);
}
.team-color-config>div{display:flex; align-items:center; gap:7px}
.team-color-config input[type=color]{width:32px;height:28px;padding:2px;border:1px solid var(--border);border-radius:7px;background:var(--bg)}
.video-clip-ready{
  margin:10px 0 0; padding:10px 12px; border-radius:10px;
  color:var(--accent-strong); background:var(--accent-soft); border:1px solid rgba(47,191,113,.28);
}
.positioning-card>video{display:block;width:100%;max-height:62vh;margin:12px 0;border-radius:12px;background:#000}
.position-timeline{display:flex;gap:8px;overflow-x:auto;padding:4px 0 8px}
.position-event{
  display:flex;flex:0 0 170px;flex-direction:column;gap:4px;padding:9px 11px;text-align:left;
  color:var(--ink-secondary);background:var(--surface-alt);border:1px solid var(--border);border-radius:9px;cursor:pointer
}
.position-event strong{color:var(--highlight-text);font-variant-numeric:tabular-nums}
.position-event span{font-size:11px;line-height:1.35}
.position-event:hover{border-color:var(--highlight)}
.position-event.critical{border-color:rgba(242,85,90,.4);background:var(--status-critical-soft)}
.position-event.critical strong{color:var(--status-critical)}
.empty-state{
  text-align:center; padding:40px 20px; color:var(--ink-muted);
  border:1px dashed var(--border); border-radius:12px; font-size:14px;
}

/* ---------- dashboard ---------- */
.stat-tile{background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:16px 18px; box-shadow:var(--shadow)}
.stat-tile .stat-num{font-family:"Barlow Condensed",sans-serif; font-size:34px; font-weight:800; line-height:1; font-variant-numeric:tabular-nums}
.stat-tile .stat-label{font-size:12px; color:var(--ink-muted); margin-top:4px}
.status-pill{
  display:inline-flex; align-items:center; gap:5px; padding:3px 9px; border-radius:99px;
  font-size:11.5px; font-weight:700;
}
.status-pill.good{background:var(--status-good-soft); color:var(--status-good)}
.status-pill.warn{background:var(--status-warn-soft); color:var(--status-warn)}
.status-pill.critical{background:var(--status-critical-soft); color:var(--status-critical)}
.status-pill .sw{width:7px; height:7px; border-radius:50%; background:currentColor}

.phase-bar-row{display:flex; align-items:center; gap:12px; margin-bottom:14px}
.phase-bar-label{width:110px; font-size:13px; font-weight:600; flex-shrink:0}
.phase-bar-track{flex:1; height:10px; border-radius:6px; background:var(--surface-alt); overflow:hidden}
.phase-bar-fill{height:100%; border-radius:6px}
.phase-bar-val{width:34px; text-align:right; font-variant-numeric:tabular-nums; font-weight:700; font-size:13px}

.weak-item{display:flex; justify-content:space-between; align-items:flex-start; gap:10px; padding:10px 0; border-bottom:1px solid var(--border)}
.weak-item:last-child{border-bottom:none}
.weak-item-name{font-weight:600; font-size:13.5px}
.weak-item-phase{font-size:11.5px; color:var(--ink-muted)}

.dash-hero{
  display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:14px;
  margin-bottom:20px; padding-bottom:18px; border-bottom:1px solid var(--border);
}
.dash-hero-id{display:flex; align-items:center; gap:14px}
.dash-hero-crest{width:52px; height:52px; border-radius:13px; font-size:18px}
.dash-hero-title{font-size:clamp(22px,3vw,30px); margin-bottom:2px}
.dash-hero-sub{font-size:13px; color:var(--ink-secondary)}
.dash-hero-status{display:flex; gap:8px; flex-wrap:wrap}

.dash-stats{display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; margin-bottom:20px}
.dash-stats .stat-tile{display:flex; flex-direction:column; gap:2px}

.match-meta-row{display:flex; justify-content:space-between; align-items:center; gap:10px; padding:7px 0; border-bottom:1px solid var(--border); font-size:13px}
.match-meta-row:last-child{border-bottom:none}
.match-meta-label{color:var(--ink-muted); flex-shrink:0}
.match-meta-value{font-weight:600; color:var(--ink); text-align:right; min-width:0; flex:1}
.inline-edit{
  border:none; background:transparent; font:inherit; color:inherit; width:100%;
  padding:2px 4px; text-align:right; border-radius:6px;
}
.inline-edit:hover, .inline-edit:focus{background:var(--surface-alt)}
.match-summary-edit{
  border:1px solid transparent; background:transparent; font:inherit; color:var(--ink-secondary);
  width:100%; resize:vertical; min-height:44px; padding:6px 7px; border-radius:7px; margin-top:6px;
}
.match-summary-edit:hover, .match-summary-edit:focus{background:var(--surface-alt); border-color:var(--border)}

.focus-row{display:flex; gap:11px; align-items:flex-start; padding:10px 0; border-bottom:1px solid var(--border)}
.focus-row:last-child{border-bottom:none}
.focus-icon{
  width:26px; height:26px; border-radius:8px; flex-shrink:0; margin-top:1px;
  display:flex; align-items:center; justify-content:center; font-size:10.5px; font-weight:800;
}
.focus-icon.off{background:var(--accent-soft); color:var(--accent-strong)}
.focus-icon.dif{background:var(--status-good-soft); color:var(--status-good)}
.focus-icon.prin{background:var(--highlight); color:var(--highlight-ink)}
.focus-row-label{font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-muted); margin-bottom:2px}
.focus-row-edit{
  border:none; background:transparent; font:inherit; font-size:13.5px; color:var(--ink); width:100%;
  padding:1px 4px; border-radius:6px;
}
.focus-row-edit:hover, .focus-row-edit:focus{background:var(--surface-alt)}

.mini-pitch-wrap{max-width:210px; margin:4px auto 0}
.mini-pitch-wrap .pitch{aspect-ratio:68/92}
.mini-pitch-wrap .mv-dot{width:24px; height:24px; font-size:8.5px}

/* ---------- formazione / pitch ---------- */
.pitch-wrap{display:flex; gap:22px; flex-wrap:wrap; align-items:flex-start}
.pitch{
  position:relative; width:min(100%,420px); aspect-ratio:68/100;
  border-radius:14px; flex-shrink:0;
  background:
    var(--pitch-lines),
    repeating-linear-gradient(to bottom, var(--pitch-a) 0 10%, var(--pitch-b) 10% 20%);
  background-size:100% 100%, auto;
  background-repeat:no-repeat, repeat;
  background-clip:padding-box;
  border:2px solid rgba(255,255,255,.25); box-shadow:var(--shadow);
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
}
.pitch-field-svg{
  position:absolute; inset:0; width:100%; height:100%;
  pointer-events:none; z-index:0;
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
}
.pitch-slot{
  position:absolute; transform:translate(-50%,-50%);
}
.pitch-side{flex:1 1 260px; min-width:240px; display:flex; flex-direction:column; gap:14px}
.bench-list{display:flex; flex-wrap:wrap; gap:7px}
.slot-select{
  min-width:0; width:88px; font-size:10px; font-weight:700; padding:5px 3px; text-align:center;
  border-radius:8px; border:1.5px solid rgba(255,255,255,.7); background:rgba(255,255,255,.94);
  color:#14241C; box-shadow:0 2px 6px rgba(0,0,0,.25);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.slot-select.is-empty{background:rgba(255,255,255,.55); border-style:dashed; font-weight:600; color:#1c2e24}

/* ---------- radar chart ---------- */
.radar-legend{display:flex; flex-wrap:wrap; gap:10px 16px; margin-top:10px; font-size:12px; color:var(--ink-secondary)}
.radar-legend b{color:var(--ink); font-variant-numeric:tabular-nums}

/* ---------- exercises ---------- */
.filter-row{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px}
.filter-btn{
  appearance:none; cursor:pointer; border-radius:99px; border:1px solid var(--border);
  background:var(--surface); color:var(--ink-secondary); font-size:12.5px; font-weight:600; padding:6px 13px;
}
.filter-btn.active{background:var(--accent); border-color:var(--accent); color:#fff}
.exercise-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:14px}
.exercise-card{background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:15px 16px; box-shadow:var(--shadow); position:relative}
.exercise-card.recommended{border-color:var(--highlight)}
.exercise-head{display:flex; justify-content:space-between; align-items:flex-start; gap:8px; margin-bottom:6px}
.exercise-title{font-family:"Barlow Condensed",sans-serif; font-weight:700; font-size:17px; text-transform:none; letter-spacing:0}
.exercise-meta{display:flex; gap:6px; flex-wrap:wrap; font-size:11px; color:var(--ink-muted); margin-bottom:8px}
.exercise-desc{font-size:13px; color:var(--ink-secondary); margin-bottom:8px}
.exercise-tags{display:flex; flex-wrap:wrap; gap:5px}
.exercise-tag{font-size:10.5px; padding:2px 7px; border-radius:99px; background:var(--surface-alt); color:var(--ink-muted)}
.exercise-del{position:absolute; top:10px; right:10px}

details.add-panel{
  background:var(--surface-alt); border:1px solid var(--border); border-radius:12px; padding:4px 16px 16px; margin-bottom:18px;
}
details.add-panel > summary{
  cursor:pointer; padding:12px 0; font-weight:700; font-family:"Barlow Condensed",sans-serif;
  font-size:15px; letter-spacing:.03em; text-transform:uppercase; color:var(--accent-strong); list-style:none;
  display:flex; align-items:center; gap:6px;
}
details.add-panel > summary::-webkit-details-marker{display:none}
details.add-panel > summary::before{content:"+"; font-size:18px; line-height:1}
details.add-panel[open] > summary::before{content:"–"}

.toast{
  position:fixed; bottom:20px; left:50%; transform:translateX(-50%); z-index:60;
  background:var(--ink); color:var(--bg); padding:10px 18px; border-radius:99px; font-size:13px;
  box-shadow:var(--shadow); max-width:90vw; text-align:center;
}

.empty-players-note{font-size:12.5px; color:var(--ink-muted); margin-top:8px}

/* ---------- movimenti (diagrammi tattici) ---------- */
.movements-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:16px}
.mv-pitch-wrap{margin:12px 0 0; display:flex; justify-content:center}
.mv-pitch{width:100%; max-width:300px; margin:0}
.mv-dot{
  position:absolute; transform:translate(-50%,-50%);
  width:28px; height:28px; border-radius:50%;
  background:rgba(255,255,255,.32); border:1.5px solid rgba(255,255,255,.55);
  color:#fff; font-size:9.5px; font-weight:700;
  display:flex; align-items:center; justify-content:center;
  transition:left .9s cubic-bezier(.4,0,.2,1), top .9s cubic-bezier(.4,0,.2,1);
  pointer-events:none;
}
.mv-dot-active{background:var(--highlight); border-color:var(--highlight); color:var(--highlight-ink); box-shadow:0 2px 8px rgba(0,0,0,.35); z-index:2}
.mv-x{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-size:19px; color:var(--status-critical); opacity:0; transition:opacity .35s;
  text-shadow:0 1px 3px rgba(0,0,0,.5);
}
.mv-pitch[data-state="after"] .mv-dot[data-beaten] .mv-x{opacity:1}
.mv-arrows{position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:1}
.exercise-card.flash{animation:mv-flash 1.6s ease}
@keyframes mv-flash{
  0%{box-shadow:0 0 0 3px var(--highlight)}
  100%{box-shadow:var(--shadow)}
}
.mv-dot-opp{
  width:22px; height:22px; font-size:8.5px; border-radius:5px;
  background:rgba(169,58,58,.55); border-color:rgba(169,58,58,.85); color:#fff; z-index:1;
}
.mv-demo{margin-top:10px; margin-bottom:0}
.mv-demo > summary{font-size:13px}
.matchup-legend{display:flex; gap:14px; flex-wrap:wrap; font-size:11.5px; color:var(--ink-muted); margin-top:8px}
.matchup-legend .sw{display:inline-block; width:10px; height:10px; border-radius:3px; margin-right:4px; vertical-align:middle}
.matchup-legend .sw-us{background:var(--highlight)}
.matchup-legend .sw-opp{background:rgba(169,58,58,.7)}
.matchup-select-row{max-width:520px; display:flex; flex-wrap:wrap; align-items:flex-end; gap:10px}

/* ---------- dashboard: azioni rapide, disponibilità, carico ---------- */
.quick-actions{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:20px}
.qa-btn{
  appearance:none; cursor:pointer; display:inline-flex; align-items:center; gap:9px;
  background:var(--surface); border:1px solid var(--border); color:var(--ink);
  border-radius:12px; padding:12px 18px; font-size:13.5px; font-weight:600;
  box-shadow:var(--shadow); transition:border-color .15s ease, transform .12s ease;
}
.qa-btn:hover{border-color:var(--accent); transform:translateY(-1px)}
.qa-ic{
  width:24px; height:24px; border-radius:8px; display:inline-flex; align-items:center; justify-content:center;
  background:var(--accent-soft); color:var(--accent); font-size:13px; line-height:1;
}
.stat-num-sm{font-size:19px !important; line-height:1.25}
.no-data{color:var(--ink-muted); font-weight:600; font-size:15px}

.avail-head{display:flex; gap:26px; margin:2px 0 12px}
.avail-big{display:flex; flex-direction:column; gap:1px}
.avail-num{font-family:"Barlow Condensed",sans-serif; font-size:32px; font-weight:800; line-height:1}
.avail-num.good{color:var(--status-good)}
.avail-num.critical{color:var(--status-critical)}
.avail-cap{font-size:11.5px; color:var(--ink-muted)}
.avail-list{display:flex; flex-direction:column; gap:2px}
.avail-row{
  display:flex; justify-content:space-between; align-items:center; gap:10px;
  padding:8px 0; border-bottom:1px solid var(--border); font-size:13.5px;
}
.avail-row:last-child{border-bottom:none}

.load-total{font-family:"Barlow Condensed",sans-serif; font-size:34px; font-weight:800; line-height:1; margin-bottom:12px}
.load-total span{font-family:"Inter",sans-serif; font-size:13px; font-weight:500; color:var(--ink-muted)}
.load-days{display:flex; flex-direction:column; gap:10px}
.load-day-head{display:flex; justify-content:space-between; font-size:12.5px; margin-bottom:4px; color:var(--ink-secondary)}

.soon-note{font-size:12px; color:var(--ink-muted); margin:12px 0 0; line-height:1.45}
.soon-card{
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius);
  padding:34px 30px; box-shadow:var(--shadow); max-width:640px;
}
.soon-badge{
  display:inline-block; margin-bottom:12px; padding:4px 11px; border-radius:99px;
  background:var(--accent-soft); color:var(--accent);
  font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
}
.soon-card h2{font-size:22px; margin-bottom:6px}

/* ---------- componenti condivisi fasi 2-11 ---------- */
.sec-head{display:flex; justify-content:space-between; align-items:flex-start; gap:12px; flex-wrap:wrap; margin-bottom:4px}
.sec-actions{display:flex; gap:8px; flex-wrap:wrap}
.chip-row{display:flex; flex-wrap:wrap; gap:8px}
.chip-x{appearance:none; border:none; background:none; color:inherit; cursor:pointer; font-weight:700; margin-left:2px}
.chip-over{background:var(--status-critical-soft); color:var(--status-critical)}
.mini-input{width:100%; background:var(--surface-alt); border:1px solid transparent; color:var(--ink); border-radius:9px; padding:8px 10px; font-size:14px}
.mini-input:focus{border-color:var(--accent); outline:none}
.mini-input-sm{max-width:80px}
.seg-row{display:flex; flex-wrap:wrap; gap:4px}
.seg{appearance:none; cursor:pointer; border:1px solid var(--border); background:var(--surface); color:var(--ink-secondary); border-radius:99px; padding:6px 13px; font-size:13px; font-weight:600}
.seg.active{background:var(--accent); border-color:var(--accent); color:#fff}
.field-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:10px}
.role-ol{margin:0; padding-left:18px; color:var(--ink-secondary); font-size:13.5px; line-height:1.9}

/* modale */
#modal-root{position:fixed; inset:0; z-index:80; display:none}
#modal-root.open{display:block}
.modal-overlay{position:absolute; inset:0; background:rgba(0,0,0,.55); display:flex; align-items:flex-start; justify-content:center; padding:40px 16px; overflow-y:auto; backdrop-filter:blur(3px)}
.modal{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); width:min(720px,100%); box-shadow:var(--shadow-hover); max-height:none}
.modal-wide{width:min(980px,100%)}
.modal-head{display:flex; justify-content:space-between; align-items:center; padding:16px 20px; border-bottom:1px solid var(--border)}
.modal-head h3{font-size:18px}
.modal-x{appearance:none; border:none; background:none; color:var(--ink-muted); font-size:26px; line-height:1; cursor:pointer}
.modal-body{padding:18px 20px}
.modal-foot{display:flex; align-items:center; gap:8px; margin-top:16px; flex-wrap:wrap}

/* calendario */
.cal-toolbar{display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:10px}
.cal-nav{display:flex; align-items:center; gap:6px}
.cal-title{font-size:19px; margin-left:6px; text-transform:capitalize}
.cal-views{display:flex; gap:6px; align-items:center}
.cal-legend{display:flex; gap:14px; flex-wrap:wrap; font-size:12px; color:var(--ink-muted); margin-bottom:12px}
.cal-legend-item{display:inline-flex; align-items:center; gap:5px}
.cal-dot{width:9px; height:9px; border-radius:3px; display:inline-block}
.ev-train, .cal-dot.ev-train{background:var(--accent)}
.ev-match, .cal-dot.ev-match{background:var(--highlight)}
.ev-rest, .cal-dot.ev-rest{background:var(--ink-muted)}
.ev-other, .cal-dot.ev-other{background:var(--status-good)}
.cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:6px}
.cal-grid-head{margin-bottom:6px}
.cal-dow{font-size:11px; font-weight:700; color:var(--ink-muted); text-align:center; text-transform:uppercase; letter-spacing:.06em}
.cal-cell{min-height:92px; background:var(--surface-alt); border:1px solid var(--border); border-radius:10px; padding:6px; cursor:pointer; display:flex; flex-direction:column; gap:4px; transition:border-color .15s}
.cal-cell:hover{border-color:var(--accent)}
.cal-cell.out{opacity:.4}
.cal-cell.today{border-color:var(--accent); box-shadow:inset 0 0 0 1px var(--accent)}
.cal-num{font-size:12px; font-weight:700; color:var(--ink-secondary)}
.cal-cell-evs{display:flex; flex-direction:column; gap:3px}
.cal-ev{font-size:10.5px; font-weight:600; color:#08110d; border-radius:5px; padding:2px 5px; cursor:pointer; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.cal-ev.ev-rest, .cal-ev.ev-other{color:#fff}
.cal-week{display:flex; flex-direction:column; gap:6px}
.cal-week-row{display:flex; gap:12px; background:var(--surface-alt); border:1px solid var(--border); border-radius:10px; padding:10px 12px}
.cal-week-row.today{border-color:var(--accent)}
.cal-week-day{width:80px; flex-shrink:0; display:flex; flex-direction:column}
.cal-week-day span{font-size:12px; color:var(--ink-muted)}
.cal-week-evs{display:flex; flex-wrap:wrap; gap:6px; align-items:center}
.cal-add-inline{appearance:none; border:1px dashed var(--border); background:none; color:var(--ink-muted); border-radius:6px; padding:4px 10px; cursor:pointer; font-size:12px}
.day-ev{display:flex; justify-content:space-between; align-items:center; gap:10px; padding:8px 10px; border-radius:8px; margin-bottom:6px; color:#08110d; font-weight:600}
.day-ev.ev-rest, .day-ev.ev-other{color:#fff}

/* template & settimana */
.tpl-day{background:var(--surface-alt); border:1px solid var(--border); border-radius:12px; padding:12px; margin-bottom:10px}
.tpl-day-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:8px}
.tpl-block{display:flex; align-items:center; gap:10px; padding:6px 0; border-bottom:1px solid var(--border)}
.tpl-block:last-child{border-bottom:none}
.tpl-block-dur{font-weight:700; font-variant-numeric:tabular-nums; min-width:36px}
.tpl-block-main{flex:1; display:flex; flex-direction:column}
.tpl-block-cat{font-size:11.5px; color:var(--ink-muted)}
.wk-block{display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid var(--border)}
.wk-block:last-child{border-bottom:none}
.wk-block-dur{font-weight:700; min-width:36px}
.wk-block-obj{font-size:12px; color:var(--ink-muted)}

/* sedute / blocchi */
.session-blocks-mini{display:flex; flex-wrap:wrap; gap:5px; margin-top:8px}
.time-bar{background:var(--surface-alt); border:1px solid var(--border); border-radius:10px; padding:10px 12px; font-size:13.5px; margin:12px 0}
.time-bar.over{background:var(--status-critical-soft); border-color:var(--status-critical)}
.time-over{color:var(--status-critical); font-weight:700}
.blk-list{display:flex; flex-direction:column; gap:12px}
.blk-edit{background:var(--surface-alt); border:1px solid var(--border); border-radius:12px; padding:12px}
.blk-edit-head{display:flex; gap:8px; align-items:center}
.blk-edit-head .blk-titolo{flex:1}

/* staff */
.staff-card{display:flex; align-items:center; gap:14px}
.staff-avatar{width:44px; height:44px; border-radius:12px; background:var(--accent-soft); color:var(--accent); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:18px; flex-shrink:0}
.staff-note{font-size:12.5px; color:var(--ink-muted); margin-top:4px}

/* disponibilità */
.avail-opts{display:flex; flex-wrap:wrap; gap:4px}
.avail-opt{appearance:none; cursor:pointer; border:1px solid var(--border); background:var(--surface); color:var(--ink-secondary); border-radius:99px; padding:4px 11px; font-size:12px; font-weight:600}
.avail-opt.active.good{background:var(--status-good); border-color:var(--status-good); color:#fff}
.avail-opt.active.warn{background:var(--status-warn); border-color:var(--status-warn); color:#08110d}
.avail-opt.active.critical{background:var(--status-critical); border-color:var(--status-critical); color:#fff}

/* sistemi */
.sys-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:14px; margin-top:6px}
.sys-mini{display:flex; flex-direction:column; align-items:center; gap:6px; font-size:12.5px; font-weight:600; color:var(--ink-secondary)}
.sys-mini.active{color:var(--accent)}
.sys-mini-pitch{width:100%; max-width:150px}
.sys-mini-pitch .pitch{aspect-ratio:68/90}
.sys-mini-pitch .mv-dot{width:20px; height:20px; font-size:8px}

/* lavagna */
.board-layout{display:grid; grid-template-columns:260px 1fr; gap:16px; align-items:start}
.board-side .scene-list{display:flex; flex-direction:column; gap:6px; margin-top:10px}
.scene-item{appearance:none; text-align:left; cursor:pointer; border:1px solid var(--border); background:var(--surface-alt); border-radius:10px; padding:10px; display:flex; flex-direction:column; gap:2px; color:var(--ink)}
.scene-item.active{border-color:var(--accent); box-shadow:inset 2px 0 0 var(--accent)}
.scene-item span{font-size:11.5px; color:var(--ink-muted)}
.board-toolbar{display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:12px}
.board-toolbar .mini-input{width:auto; min-width:120px}
.board-pitch{position:relative; width:100%; max-width:520px; aspect-ratio:68/100; margin:0 auto; border-radius:16px; overflow:hidden;
  background:
    var(--pitch-lines),
    repeating-linear-gradient(to bottom, var(--pitch-a) 0 10%, var(--pitch-b) 10% 20%);
  background-size:100% 100%, auto;
  background-repeat:no-repeat, repeat;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.18); touch-action:none;
  -webkit-print-color-adjust:exact; print-color-adjust:exact}
.board-dot{position:absolute; transform:translate(-50%,-50%); width:32px; height:32px; border-radius:50%; background:var(--accent); color:#fff; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; cursor:grab; box-shadow:0 2px 8px rgba(0,0,0,.35); user-select:none; touch-action:none}
.board-dot-opp{background:var(--status-critical)}
.board-ball{position:absolute; transform:translate(-50%,-50%); font-size:22px; cursor:grab; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,.5); user-select:none; touch-action:none}
.board-ball.ball-trigger{cursor:default; color:var(--highlight); font-size:16px; z-index:3; transition:left .9s cubic-bezier(.4,0,.2,1), top .9s cubic-bezier(.4,0,.2,1)}
.ball-ping{position:absolute; inset:-9px; border-radius:50%; border:2px solid var(--highlight); animation:ball-ping 1.6s cubic-bezier(0,0,.2,1) infinite}
@keyframes ball-ping{
  0%{transform:scale(.6); opacity:.9}
  75%,100%{transform:scale(1.9); opacity:0}
}

/* situazioni / palle inattive / analisi */
.sit-card{background:var(--surface-alt); border:1px solid var(--border); border-radius:12px; padding:12px; margin-bottom:10px}
.sit-card:last-child{margin-bottom:0}
.sit-desc{font-size:13px; color:var(--ink-secondary); margin:4px 0}
.crit-list{display:flex; flex-direction:column; gap:10px}
.crit-card{background:var(--surface-alt); border:1px solid var(--border); border-left:3px solid var(--ink-muted); border-radius:10px; padding:12px}
.crit-card.sev-alta{border-left-color:var(--status-critical)}
.crit-card.sev-media{border-left-color:var(--status-warn)}
.crit-card.sev-bassa{border-left-color:var(--status-good)}
.crit-princ, .crit-meta{font-size:12px; color:var(--ink-muted); margin:4px 0}
.sol-item{padding:10px 0; border-bottom:1px solid var(--border)}
.sol-item:last-child{border-bottom:none}
.ex-search-list{display:flex; flex-direction:column; gap:8px; max-height:50vh; overflow-y:auto}
.ex-search-row{display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px; background:var(--surface-alt); border-radius:10px}
.analysis-head{display:flex; justify-content:space-between; align-items:flex-start; gap:12px; flex-wrap:wrap}

@media (max-width:820px){
  .board-layout{grid-template-columns:1fr}
}

/* ---------- scheda partita stampabile ---------- */
.match-sheet{background:#fff; color:#111; border-radius:14px; padding:22px; box-shadow:var(--shadow)}
.sheet-head{display:flex; justify-content:space-between; align-items:flex-start; gap:12px; border-bottom:2px solid #111; padding-bottom:10px; margin-bottom:14px}
.sheet-title{font-size:22px; font-weight:800; color:#111}
.sheet-sub{font-size:13px; color:#555}
.sheet-module{font-size:15px; font-weight:800; color:#0a6b3d}
.sheet-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:14px}
.sheet-card{border:1px solid #ccc; border-radius:10px; padding:12px; break-inside:avoid}
.sheet-card h4{font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:#0a6b3d; margin:0 0 6px; border-bottom:1px solid #eee; padding-bottom:4px}
.sheet-line{font-size:13px; color:#222; margin:3px 0}
.sheet-line strong{color:#111}
.sheet-players{display:flex; flex-wrap:wrap; gap:5px; margin-top:4px}
.sheet-tag{font-size:11.5px; background:#eef4ef; color:#0a6b3d; border-radius:6px; padding:2px 7px; font-weight:600}
.sheet-note{font-size:12.5px; color:#333; white-space:pre-wrap}
.match-tabs{display:flex; gap:6px; flex-wrap:wrap; margin:8px 0 14px}

@media print{
  body{background:#fff}
  .topbar, .tabs, .sidebar, .bottom-nav, .nav-backdrop, .menu-toggle, details.add-panel, .btn, .qa-btn, .filter-row, .sec-actions, .cal-toolbar, #modal-root{display:none !important}
  .shell{display:block}
  main{padding:0; max-width:none}
  .tab-panel[hidden]{display:none}
  .print-only-sheet .card:not(.match-sheet){display:none}
  .match-sheet{box-shadow:none; border:none; padding:0}
  .sheet-grid{grid-template-columns:repeat(2,1fr)}
  .no-print{display:none !important}
}

/* ---------- inquadrature parziali del campo (metà / terzo per i calci piazzati) ---------- */
.pitch.pitch-zoom{overflow:hidden}
.pitch.pitch-att, .pitch.pitch-dif{ aspect-ratio:68/50;  background-size:100% 200%,   auto }
.pitch.pitch-att3,.pitch.pitch-dif3{ aspect-ratio:68/34; background-size:100% 294.1%, auto }
.pitch.pitch-att,  .pitch.pitch-att3{ background-position:0 100%, 0 0 }
.pitch.pitch-dif,  .pitch.pitch-dif3{ background-position:0 0,    0 0 }
.pitch.pitch-att .pitch-field-svg, .pitch.pitch-att3 .pitch-field-svg{ top:auto; bottom:0; height:200%; inset:auto 0 0 0 }
.pitch.pitch-att3 .pitch-field-svg{ height:294.1% }
.pitch.pitch-dif .pitch-field-svg, .pitch.pitch-dif3 .pitch-field-svg{ top:0; height:200%; inset:0 0 auto 0 }
.pitch.pitch-dif3 .pitch-field-svg{ height:294.1% }
/* le nostre pedine restano sempre leggibili sopra quelle avversarie */
.mv-dot, .board-dot{z-index:2}
.mv-dot-opp, .board-dot-opp{z-index:1}
.pitch.pitch-zoom .mv-dot{width:21px; height:21px; font-size:8px}
.pitch.pitch-zoom .board-dot{width:25px; height:25px; font-size:10px}
.pitch.pitch-zoom .board-ball{font-size:17px}

/* ---------- frecce sulle situazioni ---------- */
.scene-arrows{position:absolute; inset:0; width:100%; height:100%; pointer-events:none; overflow:visible}
.scene-arrows .arw{filter:drop-shadow(0 1px 2px rgba(0,0,0,.65)); opacity:.95}
.arw-legend{display:flex; flex-wrap:wrap; gap:6px 14px; justify-content:center; margin-top:8px;
  font-size:11px; color:var(--ink-muted)}
.arw-leg-item{display:inline-flex; align-items:center; gap:5px}
.arw-leg-ic{width:30px; height:8px; color:var(--ink-secondary); flex-shrink:0}

/* maniglie di modifica delle frecce sulla lavagna */
.arw-h{position:absolute; transform:translate(-50%,-50%); width:14px; height:14px; border-radius:50%;
  background:var(--highlight); border:2px solid rgba(0,0,0,.45); cursor:grab; touch-action:none; z-index:4}
.arw-h-to{border-radius:2px}
.arw-del{position:absolute; transform:translate(-50%,-50%); width:18px; height:18px; padding:0; line-height:1;
  border-radius:50%; border:none; cursor:pointer; z-index:5;
  background:rgba(10,14,12,.82); color:#fff; font-size:12px; font-weight:700;
  display:flex; align-items:center; justify-content:center}
.arw-del:hover{background:var(--status-critical)}
.btn-arw{font-variant-numeric:tabular-nums}
.tool-sep{width:1px; align-self:stretch; background:var(--border-strong); margin:0 2px}

/* ---------- libreria proposte AI ---------- */
.lib-tabs{flex-wrap:wrap; gap:6px; margin-bottom:6px}
.lib-tabs .seg{font-size:12px}
.seg-n{opacity:.6; font-variant-numeric:tabular-nums}
.lib-note{margin:0 0 12px}
.lib-list{max-height:none}
.lib-card{border-left-color:var(--accent)}
.lib-card.active{background:var(--surface); box-shadow:inset 2px 0 0 var(--accent)}
.lib-card-head{display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:4px}
.lib-obj{color:var(--ink); font-weight:600}
.lib-coach{font-size:12.5px; color:var(--ink-muted); margin:6px 0 8px;
  border-left:2px solid var(--highlight); padding-left:8px}

/* ---------- scheda stampabile (lavagna tattica) ---------- */
#print-sheet{display:none}
body.printing-board > #app, body.printing-board > #toast{display:none !important}
body.printing-board > #print-sheet{display:block}
@media print{
  body.printing-board > *:not(#print-sheet){display:none !important}
  body.printing-board{background:#fff}
  @page{size:A4; margin:10mm}
  #print-sheet{display:block !important; margin:0 auto; color:#14241C; font-family:"Inter",sans-serif;
    -webkit-print-color-adjust:exact; print-color-adjust:exact; color-scheme:light}
  #print-sheet .print-page{max-width:none; margin:0 auto; padding:0 4mm 8mm; break-inside:avoid; page-break-inside:avoid}
  #print-sheet .print-page + .print-page{break-before:page; page-break-before:always}
  #print-sheet .print-head{display:flex; justify-content:space-between; font-size:12px; color:#4a5a51; border-bottom:1px solid #ccc; padding-bottom:8px; margin-bottom:10px}
  #print-sheet .print-title{font-family:"Barlow Condensed",sans-serif; font-size:24px; margin:0 0 2px; text-transform:uppercase; letter-spacing:.02em; color:#14241C}
  #print-sheet .print-sub{font-size:13px; color:#4a5a51; margin-bottom:10px}
  #print-sheet .print-pitch-wrap{max-width:118mm; width:100%; margin:0 auto}
  #print-sheet .print-pitch-wide{max-width:128mm}
  #print-sheet .print-pitch-wrap .pitch,
  #print-sheet .print-pitch-wrap .mv-pitch{
    width:100%; max-width:none; height:auto; box-shadow:none; border-color:#1a3d2a; margin:0 auto;
    -webkit-print-color-adjust:exact; print-color-adjust:exact}
  #print-sheet .print-pitch-wrap .mv-pitch-wrap{margin:0}
  #print-sheet .pitch-field-svg{-webkit-print-color-adjust:exact; print-color-adjust:exact}
  #print-sheet .pitch-zoom .mv-dot{width:24px; height:24px; font-size:9.5px}
  #print-sheet .arw-legend{color:#4a5a51; margin-top:10px}
  #print-sheet .arw-leg-ic{color:#4a5a51}
  #print-sheet .print-desc{font-size:13px; line-height:1.45; margin-top:10px; white-space:pre-wrap}
  #print-sheet .print-coach{font-size:12px; line-height:1.45; margin-top:8px; padding-left:10px;
    border-left:2px solid #C8A43C; color:#33443c}
  #print-sheet .print-legend{display:flex; gap:18px; justify-content:center; margin-top:8px; font-size:12px; color:#4a5a51}
  #print-sheet .print-legend .sw{display:inline-block; width:10px; height:10px; border-radius:3px; margin-right:4px; vertical-align:middle}
  #print-sheet .print-legend .sw-us{background:#C8A43C}
  #print-sheet .print-legend .sw-opp{background:#a33a3a}
  #print-sheet .print-qs{display:grid; grid-template-columns:1fr 1fr; gap:6px 14px; margin-top:10px}
  #print-sheet .print-q strong{display:block; font-size:10.5px; text-transform:uppercase; letter-spacing:.04em; color:#4a5a51}
  #print-sheet .print-q p{margin:2px 0 0; font-size:12.5px; line-height:1.35}
  #print-sheet .ball-ping{display:none !important}
  #print-sheet .mv-legend{color:#4a5a51; justify-content:center}
  #print-sheet .def-side span{color:#fff; text-shadow:0 1px 2px rgba(0,0,0,.6)}
}

/* mini campo palle inattive */
.sp-pitch{position:relative; width:100%; aspect-ratio:3/2; margin:8px 0 10px;
  background:linear-gradient(0deg,var(--pitch-a),var(--pitch-b));
  border:1px solid var(--border-strong); border-radius:12px; overflow:hidden}
.sp-pitch::before{content:""; position:absolute; left:50%; top:6%; width:26%; height:34%; transform:translateX(-50%);
  border:1px solid rgba(255,255,255,.28); border-top:none}
.sp-dot{position:absolute; width:22px; height:22px; margin:-11px 0 0 -11px; border-radius:50%;
  background:var(--accent); color:#04120b; font-size:10px; font-weight:700;
  display:flex; align-items:center; justify-content:center; box-shadow:0 1px 3px rgba(0,0,0,.5)}
.sp-dot-opp{background:var(--status-critical); color:#fff}
.sp-ball{position:absolute; margin:-8px 0 0 -8px; font-size:14px; color:#fff; text-shadow:0 1px 2px rgba(0,0,0,.7)}

/* ---------- matrice decisionale difensiva ---------- */
.mtx-badge{font-size:9.5px; padding:1px 6px; text-transform:uppercase; letter-spacing:.04em}
.mtx-panel{margin-top:14px}
.mtx-block{margin-bottom:10px}
.mtx-label{font-family:"Barlow Condensed",sans-serif; text-transform:uppercase; letter-spacing:.05em; font-size:12px; color:var(--ink-muted); margin:0 0 3px}
.mtx-block p:last-child{margin:0; font-size:14px; color:var(--ink-secondary)}
.mtx-roles{width:100%; border-collapse:collapse}
.mtx-roles td{padding:7px 10px; border-bottom:1px solid var(--border); font-size:13.5px; color:var(--ink-secondary); vertical-align:top}
.mtx-roles tr:last-child td{border-bottom:none}
.mtx-role{font-family:"Barlow Condensed",sans-serif; font-weight:700; color:var(--accent-strong); width:52px; letter-spacing:.03em; cursor:help}
.mtx-alt{margin-top:14px; padding:12px 14px; background:var(--surface-alt); border:1px solid var(--border); border-radius:10px}
.mtx-alt p{margin:0 0 6px; font-size:13.5px}
.mtx-alt p:last-child{margin-bottom:0}
.mtx-alt-row{display:flex; gap:7px; align-items:baseline}
.tag-good,.tag-risk{flex-shrink:0; font-family:"Barlow Condensed",sans-serif; font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; padding:1px 7px; border-radius:5px}
.tag-good{color:var(--status-good); background:var(--status-good-soft)}
.tag-risk{color:var(--status-warn); background:var(--status-warn-soft)}
.mtx-errori{margin:0; padding-left:20px}
.mtx-errori li{font-size:13.5px; color:var(--ink-secondary); margin-bottom:5px}
.mtx-branch{border:1px solid var(--border); border-radius:8px; padding:8px 12px; margin-bottom:6px; background:var(--surface)}
.mtx-branch summary{cursor:pointer; font-size:13.5px; font-weight:600; color:var(--ink)}
.mtx-branch summary:hover{color:var(--accent-strong)}
.mtx-branch p{margin:8px 0 0; font-size:13.5px; color:var(--ink-secondary)}

/* ---------- matrice decisionale difensiva ---------- */
.def-azioni{display:flex; flex-wrap:wrap; gap:8px}
.def-azione{
  appearance:none; cursor:pointer; text-align:left; min-width:190px; flex:1 1 190px;
  border:1px solid var(--border); background:var(--surface-alt); color:var(--ink);
  border-radius:10px; padding:9px 12px; display:flex; flex-direction:column; gap:2px;
}
.def-azione:hover{border-color:var(--border-strong)}
.def-azione.active{border-color:var(--accent); background:var(--accent-soft)}
.def-azione strong{font-size:13px; font-weight:600; line-height:1.3}
.def-azione span{font-size:11px; color:var(--ink-muted)}

.def-head{display:flex; align-items:center; gap:6px; flex-wrap:wrap}
.def-vs{font-size:11px; color:var(--ink-muted)}

.def-branches{display:flex; flex-direction:column; gap:6px; margin-top:6px}
.def-branch{
  appearance:none; cursor:pointer; text-align:left; width:100%;
  border:1px solid var(--border); background:var(--surface-alt); color:var(--ink);
  border-radius:9px; padding:8px 11px; font-size:12.5px; line-height:1.35;
}
.def-branch:hover{border-color:var(--border-strong)}
.def-branch.active{border-color:var(--highlight); background:var(--highlight-soft)}
.def-branch-se{font-size:10px; font-weight:800; letter-spacing:.08em; color:var(--highlight-text); margin-right:5px}
.def-branch-out{
  margin-top:8px; padding:10px 12px; border-radius:9px; font-size:12.5px; line-height:1.45;
  background:var(--accent-soft); border-left:3px solid var(--accent);
}
.def-branch-allora{font-size:10px; font-weight:800; letter-spacing:.08em; color:var(--accent-strong); margin-right:5px}

/* lato forte / lato debole sul campo */
.def-side{position:absolute; top:0; bottom:0; width:26%; pointer-events:none; display:flex; align-items:flex-start; justify-content:center; padding-top:5px}
.def-side span{font-size:8.5px; letter-spacing:.06em; text-transform:uppercase; opacity:.75; color:#fff}
.def-side-strong{background:linear-gradient(to bottom, rgba(47,191,113,.16), rgba(47,191,113,0))}
.def-side-weak{background:linear-gradient(to bottom, rgba(255,255,255,.07), rgba(255,255,255,0))}

.def-leg-line{display:inline-block; width:16px; height:2px; border-radius:2px; margin-right:4px; vertical-align:middle}
.def-leg-x{color:var(--status-critical); font-weight:700; margin-right:4px}
.mtx-role-changed td{background:rgba(242,193,78,.09)}

/* elenco "chi si muove e perché": una riga per ogni freccia sul campo */
.def-mv-list{list-style:none; margin:6px 0 0; padding:0; display:flex; flex-direction:column; gap:7px}
.def-mv-row{display:flex; gap:9px; align-items:flex-start}
.def-mv-badge{
  flex-shrink:0; min-width:30px; text-align:center; padding:2px 5px; border-radius:6px;
  border:1.5px solid var(--border-strong); background:var(--surface-alt);
  font-size:10.5px; font-weight:800; letter-spacing:.02em; line-height:1.5;
}
.def-mv-body{display:flex; flex-direction:column; gap:1px; min-width:0}
.def-mv-role{font-size:11.5px; font-weight:700; color:var(--ink)}
.def-mv-kind{font-weight:600; font-size:10.5px; text-transform:uppercase; letter-spacing:.04em}
.def-mv-txt{font-size:12.5px; line-height:1.4; color:var(--ink-secondary)}
.def-mv-fermi{margin:8px 0 0; font-size:11.5px; color:var(--ink-muted)}

/* ruolo con ragionamento: cosa legge / quando si muove / cosa protegge */
.rl-cell{display:flex; flex-direction:column; gap:3px}
.rl-line{display:block; line-height:1.4}
.rl-tag{
  display:inline-block; min-width:60px; margin-right:6px; padding:0 5px; border-radius:5px;
  font-size:9.5px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; text-align:center;
}
.rl-legge{background:rgba(90,176,242,.16); color:var(--rl-legge-ink)}
.rl-quando{background:rgba(242,85,90,.16); color:var(--rl-quando-ink)}
.rl-protegge{background:rgba(63,208,127,.16); color:var(--rl-protegge-ink)}
.def-trg-list{margin:6px 0 0; padding-left:18px; font-size:12.5px; line-height:1.5; color:var(--ink-secondary)}
.def-trg-list li{margin-bottom:3px}

/* spostamento del pallone avversario */
.def-ball-dest{opacity:.55; font-size:15px; color:#F2C14E; text-shadow:0 1px 3px rgba(0,0,0,.6)}
.def-ball-path{filter:drop-shadow(0 1px 2px rgba(0,0,0,.7))}
/* selettore di fase difensiva */
.def-fasi{display:flex; flex-wrap:wrap; gap:6px}
.def-step{font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
  color:var(--accent-strong); background:var(--accent-soft); border-radius:5px; padding:2px 7px}
.def-da{font-size:11.5px; color:var(--ink-muted)}

/* ---- giro palla (fase difensiva) ---- */
.def-giro-n{ opacity:.6; font-size:11px; margin-left:4px }
.def-giro-bar{ display:flex; align-items:center; gap:8px; flex-wrap:wrap }
.def-giro-pos{ font-size:12px; color:var(--ink-muted); letter-spacing:.02em }
.def-giro-steps{ list-style:none; margin:10px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:6px }
.def-giro-steps li{ margin:0 }
.def-giro-step{ display:inline-flex; align-items:center; gap:7px; background:transparent;
  border:1px solid var(--border); border-radius:999px; color:var(--ink-secondary);
  font:inherit; font-size:12px; padding:5px 12px 5px 5px; cursor:pointer; transition:.15s }
.def-giro-step:hover{ border-color:var(--accent); color:var(--ink) }
.def-giro-step.active{ border-color:var(--accent); background:var(--accent-soft); color:var(--ink) }
.def-giro-num{ display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px;
  border-radius:50%; background:var(--surface-alt); font-size:11px; font-weight:600 }
.def-giro-step.active .def-giro-num{ background:var(--accent); color:#06210F }

.rosa-filters{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:14px}
.rosa-filters label{display:flex; flex-direction:column; gap:4px; font-size:11px; font-weight:600; color:var(--ink-muted)}
.rosa-filters select{min-width:140px}
.prof-tabs{flex-wrap:wrap; margin:12px 0}
.prof-complete{margin:8px 0 0; font-size:13px; font-weight:600; color:var(--accent-strong)}
.prof-sliders{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:10px}
.prof-presets{display:flex; gap:8px; margin-bottom:10px}
.prof-attr .field-label{display:flex; justify-content:space-between; gap:8px}
.prof-attr.is-empty input[type="range"]{opacity:.35}
.prof-attr.is-empty .slider-val{color:var(--ink-muted); font-weight:600}
.bipolar{margin-bottom:12px}
.bipolar-lab{display:flex; justify-content:space-between; font-size:12px; font-weight:600; margin-bottom:4px}
.prof-hist{margin:6px 0 0; padding-left:18px; font-size:12px; color:var(--ink-secondary)}
@media (max-width:700px){
  .modal-wide{width:100%}
  .prof-sliders{grid-template-columns:1fr}
}

/* ---- fase difensiva: campo grande e comandi accanto, senza scroll ---- */
.def-stage-card .pitch-wrap{gap:18px; align-items:flex-start}
.def-stage{flex:0 0 auto; max-width:100%}
.def-stage .mv-pitch-wrap{margin:0}
.def-stage .mv-pitch{width:auto; max-width:100%; height:min(72vh,700px)}
.def-ctrl{flex:1 1 300px; min-width:270px; align-self:stretch}
.def-ctrl .def-azione{flex:1 1 100%; min-width:0}
.def-ctrl .def-giro-steps{gap:5px}
.def-read h3{margin-top:0}
@media (max-width:900px){
  .def-stage{width:100%}
  .def-stage .mv-pitch{height:auto; width:min(100%,360px); margin:0 auto}
}
.def-topline{display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:0 0 12px}
.def-topline p{flex:1 1 240px}

/* ================== TEMA CHIARO ==================
   Stesse regole, altra tavolozza. Il campo resta verde scuro in entrambi i temi:
   le pedine e le frecce sono leggibili solo su un fondo scuro. */
:root[data-theme="light"]{
  --bg:#F1F5F2;
  --bg-elev:#FFFFFF;
  --surface:#FFFFFF;
  --surface-alt:#EAF1EC;
  --ink:#132018;
  --ink-secondary:#41544A;
  --ink-muted:#69796F;
  --border:rgba(19,32,24,.14);
  --border-strong:rgba(19,32,24,.26);
  --accent:#1B9A57;
  --accent-strong:#0E7742;
  --accent-soft:rgba(27,154,87,.13);
  --highlight:#F2C14E;
  --highlight-ink:#241A02;
  --highlight-text:#8A6205;
  --highlight-soft:rgba(242,193,78,.22);
  --highlight-line:rgba(138,98,5,.35);
  --tint:rgba(19,32,24,.06);
  --topbar-bg:rgba(255,255,255,.88);
  --rl-legge-ink:#1A5F97;
  --rl-quando-ink:#A82A2F;
  --rl-protegge-ink:#0C6B3C;
  --status-good:#177F48;
  --status-good-soft:rgba(23,127,72,.14);
  --status-warn:#9A6110;
  --status-warn-soft:rgba(154,97,16,.14);
  --status-critical:#B5282E;
  --status-critical-soft:rgba(181,40,46,.12);
  --arw-pressione:#C0272D;
  --arw-copertura:#1F6FB2;
  --arw-scivolamento:#0E7742;
  --shadow:0 1px 2px rgba(19,32,24,.07), 0 8px 26px rgba(19,32,24,.09);
  color-scheme: light;
}

/* etichette dei movimenti: colore dal tema, non inline, così restano leggibili */
.def-mv-kind.k-pressione,   .def-mv-badge.k-pressione{ color:var(--arw-pressione) }
.def-mv-kind.k-copertura,   .def-mv-badge.k-copertura{ color:var(--arw-copertura) }
.def-mv-kind.k-scivolamento,.def-mv-badge.k-scivolamento{ color:var(--arw-scivolamento) }
.def-mv-badge.k-pressione{ border-color:var(--arw-pressione) }
.def-mv-badge.k-copertura{ border-color:var(--arw-copertura) }
.def-mv-badge.k-scivolamento{ border-color:var(--arw-scivolamento) }
.def-leg-line.k-pressione{ background:var(--arw-pressione) }
.def-leg-line.k-copertura{ background:var(--arw-copertura) }
.def-leg-line.k-scivolamento{ background:var(--arw-scivolamento) }
