:root{--ink:#17232d;--muted:#6b7882;--line:#dfe6e8;--paper:#fff;--bg:#f3f6f5;--green:#176b55;--green2:#dcefe8;--nav:#102b2a}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}.topbar{min-height:68px;background:var(--nav);color:#fff;display:flex;align-items:center;padding:0 max(24px,calc((100% - 1240px)/2));gap:34px}.brand{font-weight:760;font-size:19px;color:#fff;text-decoration:none;white-space:nowrap}.brand span{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#59ba94;margin-right:10px}.topbar nav{display:flex;gap:22px;flex:1}.topbar nav a,.logout button{color:#d9e7e3;text-decoration:none;background:none;border:0;font:inherit;cursor:pointer}.container{max-width:1240px;margin:0 auto;padding:42px 24px 70px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:28px}h1{font-size:32px;line-height:1.15;margin:3px 0}h2{margin:0;font-size:20px}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:12px;font-weight:750;color:var(--green);margin:0}.muted{color:var(--muted);margin:6px 0}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:25px}.stats article,.panel,.login-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:0 5px 22px #1c3f3510}.stats article{padding:25px}.stats strong{font-size:35px;display:block;color:var(--green)}.stats span{color:var(--muted)}.panel{padding:22px;margin-bottom:22px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%}th{text-align:left;text-transform:uppercase;letter-spacing:.07em;font-size:11px;color:var(--muted)}th,td{padding:13px 11px;border-bottom:1px solid var(--line);white-space:nowrap}tbody tr:last-child td{border-bottom:0}a{color:var(--green)}.button,button{display:inline-block;border:1px solid #b9c7c4;border-radius:8px;padding:9px 14px;background:#fff;color:var(--ink);text-decoration:none;font-weight:650;cursor:pointer}.primary{background:var(--green);border-color:var(--green);color:#fff}.actions{display:flex;gap:10px;justify-content:flex-end}.message{background:var(--green2);color:#12523f;border-radius:8px;padding:12px 15px;margin-bottom:20px}.search{display:flex;gap:9px;margin:0 0 18px}.search input{max-width:450px}.pagination{display:flex;justify-content:center;gap:25px;padding-top:20px;color:var(--muted)}.form-panel{max-width:980px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:24px}.visit-grid{grid-template-columns:repeat(3,minmax(0,1fr))}label{display:flex;flex-direction:column;gap:6px;font-weight:650}input,select{width:100%;border:1px solid #c8d2d0;border-radius:8px;padding:10px 11px;background:#fff;font:inherit;color:var(--ink)}input[readonly]{background:#edf4f1;color:#195c49;font-weight:750}.checkbox-field{align-items:flex-start;justify-content:flex-start}.checkbox-field input[type=checkbox]{width:20px;height:20px;margin:3px 0 0;padding:0;accent-color:var(--green)}.errorlist{color:#a42f2f;margin:0;padding-left:18px;font-weight:400}.split{display:grid;grid-template-columns:2fr 1fr;gap:20px}.login-card{max-width:430px;margin:65px auto;padding:32px}.login-card form{display:grid;gap:16px;margin-top:25px}.login-card button{margin-top:8px}.visit-form-panel{max-width:1040px}.visit-form-panel fieldset{border:0;border-top:1px solid var(--line);padding:22px 0 3px;margin:0 0 20px}.visit-form-panel legend{padding:0 12px 0 0;font-size:19px;font-weight:750}.visit-context{grid-template-columns:repeat(3,minmax(0,1fr))}.anatomical{background:linear-gradient(90deg,#f5faf8 0 49.9%,#fff 50.1%);border-radius:12px;padding:22px!important}.side-head,.paired-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 34px}.side-head{margin:5px 0 16px;color:var(--green);font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:12px}.side-head span:nth-child(2){text-align:left}.paired-grid label{padding-bottom:12px;border-bottom:1px solid #e2e9e6}.calculated{background:var(--green2);border-radius:12px;padding:22px!important}.formula-note{margin:-6px 0 18px}@media(max-width:760px){.topbar{align-items:flex-start;flex-wrap:wrap;padding:15px 20px}.topbar nav{order:3;overflow:auto;width:100%;padding-bottom:4px}.container{padding:28px 15px}.stats,.split{grid-template-columns:1fr}.form-grid,.visit-grid,.visit-context{grid-template-columns:1fr}.page-head{align-items:flex-start;flex-direction:column}.actions{justify-content:flex-start}.anatomical{padding:16px!important}.side-head,.paired-grid{gap:12px}.paired-grid label{font-size:13px}}

/* Storico atleta trasposto: parametri fissi a sinistra, visite in colonne. */
.visit-history{padding-right:0}
.visit-history .panel-head{padding-right:22px}
.visit-history__hint{font-size:13px;margin-bottom:0}
.trend-legend{display:flex;flex-wrap:wrap;gap:10px 20px;padding:0 22px 15px 0;color:var(--muted);font-size:13px}
.trend-legend span{display:inline-flex;align-items:center;gap:7px}
.trend-dot{width:9px;height:9px;border-radius:50%;background:var(--ink)}
.trend-dot--better{background:#1769c2}
.trend-dot--worse{background:#c43131}
.visit-matrix-wrap{border:1px solid var(--line);border-right:0;border-radius:10px 0 0 10px;max-width:100%;overscroll-behavior-inline:contain}
.visit-matrix{width:max-content;min-width:100%}
.visit-matrix th,.visit-matrix td{height:45px;padding:10px 14px;border-right:1px solid var(--line);text-align:center}
.visit-matrix th[scope=row]{position:sticky;left:0;z-index:2;min-width:190px;max-width:190px;background:#edf5f2;color:#205a49;text-align:left;box-shadow:5px 0 10px #102b2a0d}
.visit-matrix td{min-width:150px;max-width:190px;overflow:hidden;text-overflow:ellipsis}
.visit-matrix__date-row th,.visit-matrix__date-row td{position:sticky;top:0;z-index:1;background:#f7faf9}
.visit-matrix__date-row th{z-index:3}
.visit-matrix-wrap.is-scroll-enhanced .visit-matrix__date-row td{position:relative;top:auto;will-change:transform}
.visit-matrix-wrap.is-scroll-enhanced .visit-matrix__date-row th{top:auto;will-change:transform}
.visit-matrix__group-start th,.visit-matrix__group-start td{border-top:7px solid var(--bg)}
.trend{font-weight:700}
.trend--better{color:#1769c2}
.trend--worse{color:#c43131}
.trend--equal,.trend--base{color:var(--ink)}
.visit-matrix-wrap:focus{outline:3px solid #176b5540;outline-offset:2px}
@media(max-width:760px){.visit-history{padding-left:14px}.visit-history .panel-head{padding-right:14px}.visit-matrix th[scope=row]{min-width:155px;max-width:155px}.visit-matrix td{min-width:135px}.trend-legend{padding-right:14px}}

/* Navigazione responsive e rifiniture per tablet e smartphone. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.nav-menu{display:flex;align-items:center;gap:34px;min-width:0;flex:1}
.nav-menu nav{min-width:0}
.nav-toggle{display:none;margin-left:auto;width:46px;height:44px;padding:0;border-color:#ffffff42;background:#ffffff0d;color:#fff}
.nav-toggle:focus-visible,.topbar a:focus-visible,.logout button:focus-visible{outline:3px solid #7bd6b2;outline-offset:3px}
.nav-toggle__lines{display:grid;gap:5px;width:22px;margin:auto}
.nav-toggle__lines i{display:block;width:100%;height:2px;border-radius:2px;background:currentColor;transition:transform .2s ease,opacity .2s ease}

@media(max-width:860px){
  .topbar{position:relative;min-height:64px;align-items:center;flex-wrap:wrap;padding:10px 18px;gap:0}
  .brand span{width:32px;height:32px;margin-right:8px}
  .nav-toggle{display:block}
  .nav-toggle[aria-expanded=true] .nav-toggle__lines i:first-child{transform:translateY(7px) rotate(45deg)}
  .nav-toggle[aria-expanded=true] .nav-toggle__lines i:nth-child(2){opacity:0}
  .nav-toggle[aria-expanded=true] .nav-toggle__lines i:last-child{transform:translateY(-7px) rotate(-45deg)}
  .nav-menu{display:none;position:absolute;z-index:20;top:100%;left:0;right:0;align-items:stretch;flex-direction:column;gap:0;padding:8px 18px 16px;background:var(--nav);border-top:1px solid #ffffff1f;box-shadow:0 14px 25px #071b1a35}
  .nav-menu.is-open{display:flex}
  .topbar .nav-menu nav{display:grid;order:initial;width:100%;padding:0;overflow:visible;gap:0}
  .topbar .nav-menu nav a,.logout button{display:flex;align-items:center;min-height:46px;width:100%;padding:10px 8px;border-bottom:1px solid #ffffff17;text-align:left}
  .logout{margin:0}
  .logout button{border:0;border-radius:0;color:#fff}
}

@media(max-width:760px){
  h1{font-size:clamp(26px,8vw,32px);overflow-wrap:anywhere}
  .container{padding:26px 14px 54px}
  .page-head{gap:14px;margin-bottom:22px}
  .page-head>.button,.page-head>.actions{width:100%}
  .page-head>.button{text-align:center}
  .actions{flex-wrap:wrap}
  .actions .button,.actions button{flex:1 1 auto;text-align:center}
  .stats{gap:12px}
  .stats article{padding:19px 20px}
  .stats strong{font-size:30px}
  .panel{padding:17px 14px;border-radius:12px}
  .panel-head{align-items:flex-start;gap:12px}
  .table-wrap{width:calc(100% + 28px);margin-left:-14px;padding:0 14px;scrollbar-width:thin}
  .table-wrap::after{content:"";display:block;width:1px;height:1px}
  th,td{padding:11px 9px}
  .search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
  .search input{max-width:none}
  .search a{grid-column:1/-1;justify-self:start;padding:4px 0}
  .pagination{flex-wrap:wrap;gap:10px 20px;text-align:center}
  .pagination span{order:-1;flex-basis:100%}
  .login-card{margin:22px auto;padding:24px 20px}
  .anatomical{background:linear-gradient(90deg,#f5faf8 0 49.9%,#fff 50.1%)}
}

@media(max-width:420px){
  .topbar{padding-inline:14px}
  .brand{font-size:17px}
  .form-grid{gap:14px}
  .side-head,.paired-grid{gap:10px}
  .paired-grid label{min-width:0;font-size:12px;overflow-wrap:anywhere}
  .paired-grid input{padding-inline:8px}
}

@media(prefers-reduced-motion:reduce){.nav-toggle__lines i{transition:none}}
