.admin-shell{display:flex;min-height:100vh}.admin-sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--pitch-900);color:var(--chalk-100);display:flex;flex-direction:column;padding:20px 14px;position:sticky;top:0;height:100vh}.admin-sidebar__brand{display:flex;align-items:center;gap:10px;padding:6px 10px 22px;border-bottom:1px solid rgba(243,246,250,.12);margin-bottom:16px}.admin-sidebar__crest{font-size:22px}.admin-sidebar__brand strong{font-family:var(--font-display);font-size:15px;display:block;color:var(--chalk-000)}.admin-sidebar__sub{font-size:11px;color:#a9c2df}.admin-sidebar__nav{display:flex;flex-direction:column;gap:2px;flex:1}.admin-sidebar__link{padding:10px 12px;border-radius:var(--radius-sm);color:#dbe7f5;font-size:14px;font-weight:500;transition:background-color .12s ease,color .12s ease}.admin-sidebar__link:hover{background:var(--pitch-700);color:var(--chalk-000);text-decoration:none}.admin-sidebar__link.is-active{background:var(--gold-500);color:var(--pitch-900);font-weight:700}.admin-sidebar__footer{border-top:1px solid rgba(243,246,250,.12);padding-top:14px;display:flex;align-items:center;justify-content:space-between}.admin-sidebar__user{font-size:13px;color:#d3e2f3}.admin-sidebar__logout{background:none;border:none;color:#a9c2df;font-size:13px;cursor:pointer}.admin-sidebar__logout:hover{color:var(--chalk-000);text-decoration:underline}.admin-content{flex:1;min-width:0}.admin-sidebar__ruolo{font-size:11px;font-weight:400;opacity:.7;text-transform:uppercase;letter-spacing:.04em}.admin-topbar,.admin-backdrop{display:none}@media(max-width:860px){.admin-shell{display:block}.admin-topbar{display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:40;height:56px;padding:0 8px 0 4px;padding-top:env(safe-area-inset-top);background:var(--pitch-900);color:var(--chalk-000)}.admin-topbar__menu{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;background:none;border:0;color:inherit;font-size:24px;cursor:pointer}.admin-topbar__title{flex:1;min-width:0;font-family:var(--font-display);font-size:16px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-topbar__back{flex-shrink:0;min-height:40px;padding:0 12px;background:#ffffff24;border:0;border-radius:var(--radius-md);color:inherit;font:inherit;font-size:14px;font-weight:600;cursor:pointer}.admin-sidebar{position:fixed;top:0;left:0;bottom:0;z-index:60;width:min(84vw,300px);height:100%;padding:calc(20px + env(safe-area-inset-top)) 14px calc(16px + env(safe-area-inset-bottom));transform:translate(-100%);transition:transform .22s ease;overflow-y:auto}.admin-shell.is-menu-open .admin-sidebar{transform:translate(0);box-shadow:8px 0 24px #0000004d}.admin-backdrop{display:block;position:fixed;inset:0;z-index:50;background:#03448780;opacity:0;pointer-events:none;transition:opacity .22s ease}.admin-shell.is-menu-open .admin-backdrop{opacity:1;pointer-events:auto}.admin-sidebar__link{padding:13px 12px;font-size:16px}.admin-sidebar__logout{min-height:44px;padding:0 8px;font-size:15px}}@media(prefers-reduced-motion:reduce){.admin-sidebar,.admin-backdrop{transition:none}}.public-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--pitch-900);background-image:repeating-linear-gradient(0deg,rgba(243,246,250,.04) 0px,rgba(243,246,250,.04) 1px,transparent 1px,transparent 64px);padding:24px}.public-shell__panel{width:100%;max-width:380px;background:var(--chalk-000);border-radius:var(--radius-md);padding:32px 28px;box-shadow:0 16px 40px #00000047}@media(max-width:600px){.public-shell{padding:16px;align-items:flex-start;padding-top:12vh}.public-shell__panel{padding:24px 20px}}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.field__label{font-size:13px;font-weight:600;color:var(--pitch-900)}.field__control{padding:8px 10px;border:1px solid var(--line-200);border-radius:var(--radius-sm);background:var(--chalk-000);color:var(--ink-900)}.field__control:focus{border-color:var(--pitch-500)}.field__hint{font-size:12px;color:var(--ink-500)}.field__error{font-size:12px;color:var(--card-red)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.checkbox{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--ink-900);margin-bottom:14px;cursor:pointer}@media(max-width:600px){.form-row{grid-template-columns:1fr}.field__control{min-height:44px;padding:10px 12px}}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:var(--radius-sm);border:1px solid transparent;font-weight:600;font-size:14px;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,transform .06s ease;line-height:1.2}.btn:active{transform:translateY(1px)}.btn:disabled{cursor:not-allowed;opacity:.55;transform:none}.btn--primary{background:var(--pitch-900);color:var(--chalk-000)}.btn--primary:hover:not(:disabled){background:var(--pitch-700)}.btn--secondary{background:var(--chalk-000);color:var(--pitch-900);border-color:var(--line-200)}.btn--secondary:hover:not(:disabled){border-color:var(--pitch-500)}.btn--ghost{background:transparent;color:var(--pitch-700)}.btn--ghost:hover:not(:disabled){background:var(--chalk-100)}.btn--danger{background:var(--chalk-000);color:var(--card-red);border-color:#f1d4d2}.btn--danger:hover:not(:disabled){background:#fdecea}.btn__spinner{width:13px;height:13px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:btn-spin .6s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}@media(max-width:600px){.btn{min-height:44px;padding:10px 16px}}.login-page__crest{font-size:30px;margin-bottom:6px}.login-page h1{font-size:22px;margin-bottom:4px}.login-page p{margin-bottom:22px}.login-page__error{color:var(--card-red);font-size:13px;margin:-4px 0 14px}.login-page__submit{width:100%;justify-content:center}.dash-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}.stat-card{background:var(--chalk-000);border:1px solid var(--line-200);border-radius:var(--radius-md);padding:16px}.stat-card__value{font-family:var(--font-display);font-size:28px;color:var(--pitch-900)}.stat-card__label{font-size:12px;color:var(--ink-500);margin-top:2px}.dash-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}.dash-panel{background:var(--chalk-000);border:1px solid var(--line-200);border-radius:var(--radius-md);padding:16px}.dash-panel__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.dash-panel__header h2{margin:0}.dash-panel__header a{font-size:13px}.dash-list{list-style:none;margin:0;padding:0}.dash-list__item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px 4px;border-bottom:1px solid var(--line-200);font-size:13.5px}.dash-list__item:last-child{border-bottom:none}.dash-list__teams{color:var(--ink-900)}.dash-list__date{color:var(--ink-500);font-size:12px;white-space:nowrap}@media(max-width:900px){.dash-stats{grid-template-columns:repeat(2,1fr)}.dash-grid{grid-template-columns:1fr}}@media(max-width:600px){.dash-stats{gap:10px}.stat-card{padding:12px}.stat-card__value{font-size:22px}.dash-list__item{grid-template-columns:auto 1fr;row-gap:4px}.dash-list__date{grid-column:2}}.table-wrap{background:var(--chalk-000);border:1px solid var(--line-200);border-radius:var(--radius-md);overflow:hidden}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;font-family:var(--font-score);font-size:12px;font-weight:500;color:var(--ink-500);padding:10px 16px;border-bottom:1px solid var(--line-200);background:var(--chalk-100)}.data-table td{padding:12px 16px;border-bottom:1px solid var(--line-200);font-size:14px;color:var(--ink-900)}.data-table tr:last-child td{border-bottom:none}.data-table tr.is-clickable{cursor:pointer}.data-table tr.is-clickable:hover td{background:var(--chalk-100)}.table-skeleton{padding:8px 16px}.table-skeleton__row{height:14px;border-radius:3px;margin:12px 0;background:linear-gradient(90deg,var(--line-200) 25%,#edf1f7 37%,var(--line-200) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width:600px){.data-table th{padding:9px 10px}.data-table td{padding:11px 10px;font-size:14px}.data-table th,.data-table td{white-space:nowrap}}@media(max-width:600px){.data-table--cards thead{display:none}.data-table--cards,.data-table--cards tbody,.data-table--cards tr,.data-table--cards td{display:block;width:100%}.data-table--cards tr{padding:10px 14px;border-bottom:1px solid var(--line-200)}.data-table--cards tr:last-child{border-bottom:none}.data-table--cards td,.data-table--cards tr:last-child td{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 0;border:0;white-space:normal;text-align:right!important}.data-table--cards td:before{content:attr(data-label);flex-shrink:0;font-family:var(--font-score);font-size:12px;color:var(--ink-500);text-align:left}.data-table--cards td[data-label=""]:before{display:none}.data-table--cards td[data-label=""]{justify-content:flex-start}.data-table--cards tr.is-clickable:hover td{background:none}.data-table--cards tr.is-clickable:active{background:var(--chalk-100)}}.modal-overlay{position:fixed;inset:0;background:#03448773;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.modal{background:var(--chalk-000);border-radius:var(--radius-md);max-width:100%;max-height:88vh;display:flex;flex-direction:column;box-shadow:0 12px 32px #03448738}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 14px;border-bottom:1px solid var(--line-200)}.modal__header h3{margin:0}.modal__close{background:none;border:none;font-size:22px;line-height:1;color:var(--ink-500);cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm)}.modal__close:hover{background:var(--chalk-100);color:var(--ink-900)}.modal__body{padding:18px 20px;overflow-y:auto}.modal__footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--line-200)}@media(max-width:600px){.modal-overlay{align-items:flex-end;padding:0}.modal{width:100%!important;max-height:92vh;max-height:92dvh;border-radius:14px 14px 0 0}.modal__header{padding:14px 16px 12px}.modal__close{font-size:26px;min-width:44px;min-height:44px}.modal__body{padding:16px 16px calc(16px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.team-swatch{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;color:#fff;font-family:var(--font-score);font-size:10px;font-weight:700}.squadra-card{margin-bottom:20px;background:#fff;border:1px solid var(--line-200);border-radius:var(--radius-sm);overflow:hidden}.squadra-card__header{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line-200)}.squadra-card__header h2{margin:0;font-size:18px;color:var(--pitch-900)}.squadra-card__count{margin-left:auto;font-size:13px;color:var(--ink-500)}.squadra-card__empty{padding:12px 16px;font-size:14px;color:var(--ink-500)}.squadra-card__rosa{list-style:none;margin:0;padding:0}.squadra-card__giocatore{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:10px;padding:8px 16px;font-size:14px}.squadra-card__rosa li+li{border-top:1px solid var(--line-200)}.squadra-card__giocatore{text-decoration:none;color:inherit}.squadra-card__giocatore:hover{background:var(--chalk-100)}.squadra-card__header h2 a{color:inherit;text-decoration:none}.squadra-card__header h2 a:hover{text-decoration:underline}.squadra-card__apri{font-size:13px;color:var(--pitch-500);text-decoration:none}.squadra-card__apri:hover{text-decoration:underline}.squadra-card__nome{color:var(--ink-900)}.squadra-card__ruolo{font-size:12px;color:var(--ink-500)}@media(max-width:600px){.squadra-card__header{flex-wrap:wrap;padding:12px}.squadra-card__header h2{flex:1;min-width:0;font-size:17px}.squadra-card__count{margin-left:0}.squadra-card__apri{width:100%;padding:6px 0 0}.squadra-card__giocatore{padding:10px 12px;min-height:44px}}.player-avatar{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--chalk-100);border:1px solid var(--line-200);color:var(--pitch-900);font-family:var(--font-score);font-size:11px;font-weight:700}.dettaglio-back{display:inline-block;margin-bottom:12px;font-size:14px;color:var(--pitch-500);text-decoration:none}.dettaglio-back:hover{text-decoration:underline}.dettaglio-header{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:20px}.dettaglio-header h1{margin:0}.dettaglio-sub{margin-top:4px;font-size:14px;color:var(--ink-500)}.dettaglio-sub a{color:var(--pitch-500)}.dettaglio-azioni{display:flex;gap:12px;align-items:center;margin-left:auto}.dettaglio-azioni select{min-width:180px}.dettaglio-swatch{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;color:#fff;font-family:var(--font-score);font-size:15px;font-weight:700}.player-avatar.player-avatar--grande{width:56px;height:56px;font-size:18px}.dettaglio-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}.dettaglio-stats--7{grid-template-columns:repeat(7,1fr)}@media(max-width:900px){.dettaglio-stats,.dettaglio-stats--7{grid-template-columns:repeat(2,1fr)}}.dettaglio-stats .stat-card{background:var(--chalk-000);border:1px solid var(--line-200);border-radius:var(--radius-md);padding:14px}.dettaglio-stats .stat-card__value{font-family:var(--font-display);font-size:26px;color:var(--pitch-900)}.dettaglio-stats .stat-card__label{font-size:12px;color:var(--ink-500);margin-top:2px}.dettaglio-titolo{margin:24px 0 10px;font-size:18px;color:var(--pitch-900)}.dettaglio-nome{display:inline-flex;align-items:center;gap:10px}.dettaglio-storico{list-style:none;margin:0;padding:0;border:1px solid var(--line-200);border-radius:var(--radius-sm)}.dettaglio-storico li{display:flex;justify-content:space-between;padding:8px 14px;font-size:14px}.dettaglio-storico li+li{border-top:1px solid var(--line-200)}.dettaglio-storico span{color:var(--ink-500)}@media(max-width:600px){.dettaglio-header{gap:12px}.dettaglio-header>div{flex:1;min-width:0}.dettaglio-header h1{font-size:22px;overflow-wrap:anywhere}.dettaglio-azioni,.btn.dettaglio-azioni{margin-left:0;width:100%}.dettaglio-header .dettaglio-azioni{flex:1 1 100%;flex-direction:column;align-items:stretch}.dettaglio-azioni select{min-width:0;width:100%}.btn.dettaglio-azioni{justify-content:center}.dettaglio-stats{gap:10px}.dettaglio-stats .stat-card{padding:12px}.dettaglio-stats .stat-card__value{font-size:22px}.dettaglio-storico li{flex-direction:column;gap:2px}}@media(max-width:600px){.dettaglio-azioni .btn{justify-content:center}}.partite-filtro{min-width:220px}.partite-filtro select{width:100%}.risultato-editor{display:grid;grid-template-columns:1fr 50px auto 50px 1fr;align-items:center;gap:10px;padding:8px 0 18px}.risultato-editor__team{font-weight:600;color:var(--pitch-900);text-align:center}.risultato-editor__score{width:50px;padding:8px;text-align:center;font-family:var(--font-score);font-size:18px;border:1px solid var(--line-200);border-radius:var(--radius-sm)}.risultato-editor__sep{font-family:var(--font-score);font-size:18px;color:var(--ink-500)}.partite-azioni{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.titolari-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:8px 0 12px}@media(max-width:720px){.titolari-grid{grid-template-columns:1fr}}.titolari{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--line-200);border-radius:var(--radius-sm)}.titolari__header{display:flex;justify-content:space-between;align-items:center}.titolari__header h4{margin:0;color:var(--pitch-900)}.titolari__count{font-family:var(--font-score);font-weight:700;color:var(--ink-500)}.titolari__count--ok{color:var(--pitch-500)}.titolari__empty{font-size:13px;color:var(--ink-500)}.titolari__list{list-style:none;margin:0;padding:0;max-height:300px;overflow-y:auto}.titolari__item{display:grid;grid-template-columns:auto 36px 1fr auto;align-items:center;gap:8px;padding:6px 4px;border-radius:var(--radius-sm);cursor:pointer;font-size:14px}.titolari__item--on{background:var(--chalk-100)}.titolari__nome{color:var(--ink-900)}.titolari__ruolo{font-size:12px;color:var(--ink-500)}@media(max-width:600px){.partite-azioni{width:100%;flex-direction:column;align-items:stretch}.partite-filtro{min-width:0}.partite-azioni .btn{justify-content:center}.risultato-editor{grid-template-columns:1fr auto 1fr;grid-template-areas:"casa . trasferta" "gc sep gt";row-gap:10px}.risultato-editor__team:first-child{grid-area:casa}.risultato-editor__team:last-child{grid-area:trasferta}.risultato-editor__score:nth-of-type(1){grid-area:gc;justify-self:center}.risultato-editor__sep{grid-area:sep}.risultato-editor__score:nth-of-type(2){grid-area:gt;justify-self:center}.risultato-editor__score{width:64px;height:52px;font-size:22px}.titolari__list{max-height:260px}.titolari__item{min-height:44px}}.classifiche-filtri{display:flex;gap:10px}.classifiche-filtri select{min-width:200px}.classifiche-note{margin-top:14px;font-size:12.5px;color:var(--ink-500)}@media(max-width:600px){.classifiche-filtri{flex-direction:column;width:100%}.classifiche-filtri select{min-width:0;width:100%}}.page--wide{max-width:100%;overflow-x:auto}.tabelloni-filtro{min-width:220px}.tabelloni-filtro select{width:100%}.bracket{display:flex;gap:36px;padding:8px 4px 24px;min-width:max-content}.bracket__round{display:flex;flex-direction:column;min-width:220px}.bracket__round-title{font-family:var(--font-score);font-size:12px;color:var(--pitch-500);text-transform:uppercase;letter-spacing:.04em;margin-bottom:12px}.bracket__matches{display:flex;flex-direction:column;justify-content:space-around;gap:24px;flex:1}.bracket-match{background:var(--chalk-000);border:1px solid var(--line-200);border-radius:var(--radius-sm);overflow:hidden}.bracket-match__team{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;font-size:13.5px;border-bottom:1px solid var(--line-200)}.bracket-match__team:last-of-type{border-bottom:none}.bracket-match__team .score{font-size:13px;color:var(--pitch-900);font-weight:600}.bracket-match__meta{padding:4px 10px 6px;font-size:11px;color:var(--ink-500);background:var(--chalk-100)}@media(max-width:600px){.tabelloni-filtro{min-width:0;width:100%}.bracket{gap:20px}.bracket__round{min-width:190px}}
