/* GSA Pallavolo – stile condiviso. Nessun JavaScript, nessun font esterno. */
@font-face { font-family: 'Barlow'; font-weight: 400; font-style: normal; font-display: swap; src: url('/fonts/barlow-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Barlow'; font-weight: 600; font-style: normal; font-display: swap; src: url('/fonts/barlow-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'Barlow'; font-weight: 700; font-style: normal; font-display: swap; src: url('/fonts/barlow-latin-700-normal.woff2') format('woff2'); }
@font-face { font-family: 'Barlow Condensed'; font-weight: 700; font-style: normal; font-display: swap; src: url('/fonts/barlow-condensed-latin-700-normal.woff2') format('woff2'); }
@font-face { font-family: 'Barlow Condensed'; font-weight: 700; font-style: italic; font-display: swap; src: url('/fonts/barlow-condensed-latin-700-italic.woff2') format('woff2'); }
@font-face { font-family: 'Barlow Condensed'; font-weight: 800; font-style: italic; font-display: swap; src: url('/fonts/barlow-condensed-latin-800-italic.woff2') format('woff2'); }

:root {
  --forest: #0e4d33; --green: #17a455; --gold: #f6b81c; --ground: #f4f6f3; --paper: #ffffff;
  --ink: #0b1410; --muted: #3f5247; --hairline: #c9d6ce; --control: #7e9186;
  --red: #8a1c16; --red-bg: #fde8e6; --green-bg: #e3f3ea; --gold-bg: #fff4d1;
  --radius: 4px;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--ground); color: var(--ink); font: 400 17px/1.45 'Barlow', system-ui, sans-serif; }
h1, h2, h3 { margin: 0; line-height: 1.1; }
h1, .display { font-family: 'Barlow Condensed', 'Barlow', sans-serif; font-weight: 800; font-style: italic; text-transform: uppercase; letter-spacing: .01em; }
h1 { font-size: 34px; }
h2 { font-family: 'Barlow Condensed', 'Barlow', sans-serif; font-weight: 700; font-size: 24px; text-transform: uppercase; letter-spacing: .02em; }
h3 { font-size: 18px; font-weight: 700; }
p { margin: 0 0 .8em; }
a { color: var(--forest); text-underline-offset: 3px; }
/* focus da tastiera: inchiostro sui fondi chiari, bianco sui fondi scuri (regole più sotto) */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid var(--ink); outline-offset: 2px; }
.muted { color: var(--muted); }
.small { font-size: 14px; }
.skip { position: absolute; left: -999px; } .skip:focus { left: 8px; top: 8px; background: var(--gold); padding: 8px 12px; z-index: 10; }

/* ---- Guscio segreteria: menu laterale ---- */
.eyebrow { font-size: 13px; line-height: 16px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.adm { display: flex; flex-wrap: wrap; min-height: 100vh; }
.adm-side { flex: 0 0 248px; background: var(--forest); color: #fff; padding: 24px 0; display: flex; flex-direction: column; gap: 24px; }
.adm-brand { display: flex; align-items: center; gap: 12px; padding: 0 24px; color: #fff; text-decoration: none; }
.adm-brand b { display: block; font: 800 italic 32px/32px 'Barlow Condensed', sans-serif; text-transform: uppercase; }
.adm-brand small { display: block; font-size: 13px; line-height: 16px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.adm-side nav { display: flex; flex-direction: column; gap: 4px; }
.adm-side nav a { display: block; padding: 12px 24px; color: #fff; text-decoration: none; font-size: 13px; line-height: 16px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.adm-side nav a.sub { padding-left: 40px; }
.adm-side nav a.gap { margin-top: 8px; }
.adm-side nav a:hover { background: rgba(255,255,255,.1); }
.adm-side nav a[aria-current="page"] { background: var(--gold); color: var(--ink); }
.adm-head { padding: 16px 24px 4px; font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--gold); }
.adm-out { margin: auto 0 0; padding: 0 24px; display: flex; flex-direction: column; gap: 2px; font-size: 14px; }
.adm-out .who { opacity: .85; overflow-wrap: anywhere; }
.adm-side a:focus-visible, .adm-side button:focus-visible { outline-color: #fff; }
.adm-main { flex: 999 1 560px; min-width: 0; padding: 32px 40px 64px; display: flex; flex-direction: column; gap: 24px; }
.adm-main > * { margin-top: 0; margin-bottom: 0; }
.adm-main .card, .adm-main .kpis, .adm-main fieldset, .adm-main .notice { margin-bottom: 0; }
.adm-main h1 { font-size: 52px; line-height: 50px; }
.linklike { background: none; border: 0; color: #fff; font: inherit; font-weight: 600; padding: 0; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; text-align: left; }
.pagehead { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.pagehead p { margin: 6px 0 0; max-width: 700px; }
.pagehead .eyebrow { display: block; margin-bottom: 6px; }

/* ---- Guscio app (famiglie e atleti): intestazione, striscia, barra in basso ---- */
.app { min-height: 100vh; display: flex; flex-direction: column; }
.app-head { background: var(--forest); color: #fff; }
.app-bar { display: flex; align-items: center; gap: 12px; padding: 10px 16px; max-width: 640px; margin: 0 auto; }
.app-brand { display: flex; align-items: center; gap: 12px; flex: 1; color: #fff; text-decoration: none; }
.app-brand span { font: 800 italic 26px/28px 'Barlow Condensed', sans-serif; text-transform: uppercase; }
.app-right { font-size: 13px; line-height: 16px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; text-align: right; }
.stripe { height: 8px; background: repeating-linear-gradient(135deg, var(--gold) 0 12px, var(--forest) 12px 24px); }
.app-main { flex: 1; width: 100%; max-width: 640px; margin: 0 auto; padding: 16px 16px 100px; display: flex; flex-direction: column; gap: 24px; }
.app-main h1 { font-weight: 700; font-size: 36px; line-height: 38px; }
.app-nav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 5; display: flex; background: #fff; border-top: 1px solid var(--hairline); padding-bottom: env(safe-area-inset-bottom); }
.app-nav a { flex: 1 1 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-height: 68px; padding: 8px 2px; text-decoration: none; color: var(--muted); border-top: 4px solid transparent; margin-top: -1px; font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.app-nav a[aria-current="page"] { background: var(--forest); color: #fff; border-top-color: var(--gold); }
.app-nav a[aria-current="page"] svg { color: var(--gold); }
.app-nav a:focus-visible { outline-color: var(--ink); outline-offset: -4px; }
.count { background: var(--red); color: #fff; border-radius: 10px; padding: 0 7px; font-size: 12px; margin-left: 4px; letter-spacing: 0; }
.pub-min { background: var(--forest); padding: 10px 16px; }
.pub-min .app-brand { max-width: 640px; margin: 0 auto; }
main.plain { max-width: 640px; margin: 0 auto; padding: 20px 16px 64px; }

/* Schede e liste */
.card { background: var(--paper); border: 1px solid var(--hairline); border-radius: var(--radius); padding: 16px; margin-bottom: 14px; }
.card.tight { padding: 0; }
.card h2 { margin-bottom: 8px; }
.stack > * + * { margin-top: 12px; }
.row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.row.between { justify-content: space-between; }
.grow { flex: 1 1 auto; }
.grid2 { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }

/* Messaggi */
.flash { border-radius: var(--radius); padding: 12px 14px; margin: 0 0 16px; border: 1px solid; font-weight: 600; }
.flash.ok { background: var(--green-bg); border-color: #9fd3b4; color: var(--forest); }
.flash.err { background: var(--red-bg); border-color: #e7a9a4; color: var(--red); }
.flash.warn { background: var(--gold-bg); border-color: #e8c566; color: #5c4300; }
.notice { background: var(--gold-bg); border-left: 5px solid var(--gold); padding: 10px 14px; border-radius: 2px; margin-bottom: 14px; }

/* Etichette */
.badge { display: inline-block; font-size: 13px; font-weight: 700; padding: 2px 8px; border-radius: 2px; background: var(--green-bg); color: var(--forest); white-space: nowrap; }
.badge.gold { background: var(--gold-bg); color: #5c4300; }
.badge.red { background: var(--red-bg); color: var(--red); }
.badge.grey { background: #e9eeea; color: var(--muted); }

/* Form */
label { display: block; font-weight: 700; margin-bottom: 4px; }
.field { margin-bottom: 14px; }
.hint { font-size: 14px; color: var(--muted); margin-top: 4px; }
input[type=text], input[type=email], input[type=password], input[type=file], select, textarea {
  width: 100%; font: inherit; color: var(--ink); background: #fff; border: 2px solid var(--control); border-radius: 2px; padding: 9px 12px; min-height: 46px;
}
textarea { min-height: 150px; resize: vertical; }
input[type=file] { padding: 8px; }
fieldset { border: 1px solid var(--hairline); border-radius: var(--radius); padding: 10px 14px 4px; margin: 0 0 14px; background: #fff; }
legend { font-weight: 700; padding: 0 6px; }
.check { display: flex; align-items: flex-start; gap: 10px; font-weight: 600; margin: 0 0 8px; padding: 4px 0; }
.check input { width: 22px; height: 22px; margin: 2px 0 0; flex: none; accent-color: var(--forest); }
.checks { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); column-gap: 14px; }
.btn { display: inline-block; font: 700 17px/1 'Barlow', sans-serif; background: var(--forest); color: #fff; border: 2px solid var(--forest); border-radius: 2px; padding: 13px 20px; min-height: 46px; cursor: pointer; text-decoration: none; text-align: center; }
.btn:hover { background: #0a3b27; }
.btn.secondary { background: #fff; color: var(--forest); border-color: var(--control); }
.btn.secondary:hover { background: var(--green-bg); }
.btn.danger { background: var(--red-bg); color: var(--red); border-color: #e7a9a4; }
.btn.small { padding: 9px 14px; min-height: 38px; font-size: 15px; }
.btn.block { display: block; width: 100%; }

/* Tabelle */
.tablewrap { overflow-x: auto; }
table { border-collapse: collapse; width: 100%; font-size: 16px; }
th, td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--hairline); vertical-align: top; }
th { font-size: 13px; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); background: #fafbfa; white-space: nowrap; }
tr:last-child td { border-bottom: 0; }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }

/* Accesso */
.login { max-width: 420px; margin: 40px auto 0; }
.login .logo { display: block; width: 92px; margin: 0 auto 8px; }
.login h1 { text-align: center; font-size: 30px; }
.login .motto { text-align: center; color: var(--muted); font-weight: 600; margin-bottom: 20px; }

.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin-bottom: 14px; }
.kpi { background: #fff; border: 1px solid var(--hairline); border-radius: var(--radius); padding: 12px 14px; }
.kpi b { display: block; font: 800 italic 34px/1 'Barlow Condensed', sans-serif; }
.kpi span { color: var(--muted); font-size: 14px; }
code, .mono { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 14px; word-break: break-all; }
.linkbox { background: #fafbfa; border: 1px dashed var(--control); padding: 10px 12px; border-radius: 2px; }
details > summary { cursor: pointer; font-weight: 700; padding: 6px 0; }
ul.clean { margin: 0; padding-left: 20px; } ul.clean li { margin-bottom: 4px; }

@media (min-width: 760px) { body { font-size: 18px; } }
@media (max-width: 820px) {
  .adm-side { flex-basis: auto; width: 100%; padding: 14px 0; gap: 12px; }
  .adm-side nav { flex-direction: row; flex-wrap: wrap; gap: 0; padding: 0 12px; }
  .adm-side nav a, .adm-side nav a.sub { padding: 10px 12px; }
  .adm-side nav a.gap { margin-top: 0; }
  .adm-head { display: none; }
  .adm-out { flex-direction: row; gap: 12px; align-items: center; margin: 0; }
  .adm-main { padding: 20px 16px 48px; }
  .adm-main h1 { font-size: 40px; line-height: 40px; }
}
@media print { .adm-side, .app-nav, .app-head, .pub-head, .btn, form { display: none !important; } body { background: #fff; } }

/* ================= Componenti condivisi ================= */
.gold-text { color: var(--gold); }
.tag { display: inline-block; font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 2px 8px; border-radius: 2px; background: var(--green-bg); color: var(--forest); white-space: nowrap; }
.tag.gold { background: var(--gold); color: var(--ink); }
.tag.red { background: var(--red-bg); color: var(--red); }
.tag.grey { background: var(--hairline); color: var(--ink); }
.tag.line { background: #fff; color: var(--ink); border: 1px solid var(--ink); }
.tag.inv { background: rgba(255,255,255,.18); color: #fff; }
.row .tag { align-self: center; }
.cardhead { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.cardhead.pad { padding: 12px 16px 0; margin-bottom: 0; }
.pad { padding: 0 16px 12px; }
.total { font: 800 italic 34px/1 'Barlow Condensed', sans-serif; }
ul.plain { list-style: none; margin: 0; padding: 0; }
ul.plain > li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--hairline); }
ul.plain > li:last-child { border-bottom: 0; }
.card.tight ul.plain > li { padding: 12px 16px; }
.btn.gold { background: var(--gold); border-color: var(--gold); color: var(--ink); }
.btn.gold:hover { background: #e3a70f; }
.btn.ghost { background: transparent; border-color: #fff; color: #fff; }
.btn.ghost:hover { background: rgba(255,255,255,.14); }
.btn.dark { background: var(--ink); border-color: var(--ink); color: #fff; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chips a { padding: 9px 14px; min-height: 44px; display: inline-flex; align-items: center; border: 2px solid var(--control); border-radius: 2px; background: #fff; color: var(--ink); text-decoration: none; font-weight: 700; font-size: 15px; }
.chips a[aria-current="true"] { background: var(--forest); border-color: var(--forest); color: #fff; }
.seg { display: flex; }
.seg a { flex: 1; text-align: center; padding: 12px 8px; min-height: 48px; border: 2px solid var(--forest); color: var(--forest); background: #fff; text-decoration: none; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: 14px; }
.seg a + a { border-left: 0; }
.seg a[aria-current="true"] { background: var(--forest); color: #fff; }
.datebox { flex: 0 0 52px; height: 64px; display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 2px; background: var(--hairline); color: var(--ink); }
.datebox.gold { background: var(--gold); }
.datebox.past { background: var(--hairline); opacity: .8; }
.datebox span { font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.datebox b { font: 800 italic 28px/28px 'Barlow Condensed', sans-serif; }
.evlist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ev { display: flex; gap: 12px; padding: 12px; background: #fff; border: 1px solid var(--hairline); border-radius: var(--radius); }
.ev.is-past { background: #fafbfa; color: var(--muted); }
.ev-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.ev-title { font: 700 22px/24px 'Barlow Condensed', sans-serif; }
.ev .game { margin-top: 4px; }
.ev-status { margin-top: 4px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
h3.month { margin: 20px 0 8px; font: 700 20px 'Barlow Condensed', sans-serif; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
.hero-card { background: var(--forest); color: #fff; border-radius: var(--radius); padding: 16px; display: flex; flex-direction: column; gap: 10px; }
.hero-card .eyebrow { color: var(--gold); }
.hero-card a { color: #fff; }
.hero-time { font: 800 italic 44px/44px 'Barlow Condensed', sans-serif; }
.hero-time.none { font-size: 32px; line-height: 34px; opacity: .9; }
.hero-title { font: 800 italic 30px/32px 'Barlow Condensed', sans-serif; text-transform: uppercase; }
.hero-title span { font-weight: 700; opacity: .7; font-size: 22px; }
.hero-when { font-size: 20px; font-weight: 700; }
.kids { display: flex; gap: 8px; }
.kids a { flex: 1 1 0; display: flex; flex-direction: column; gap: 2px; min-height: 56px; padding: 8px 12px; border: 2px solid var(--forest); border-radius: 2px; background: #fff; color: var(--ink); text-decoration: none; }
.kids a b { font: 700 22px/24px 'Barlow Condensed', sans-serif; text-transform: uppercase; }
.kids a span { font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.kids a[aria-current="true"] { background: var(--forest); color: #fff; }
.todo { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.todo a { display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 12px 16px; background: #fff; border: 1px solid var(--hairline); border-radius: var(--radius); color: var(--ink); text-decoration: none; }
.todo .ic { flex: none; display: grid; place-items: center; width: 40px; height: 40px; background: var(--forest); color: #fff; border-radius: 2px; }
.todo .ic.gold { background: var(--gold); color: var(--ink); }
.todo .grow b { display: block; font: 700 22px/24px 'Barlow Condensed', sans-serif; }
.todo .grow .small { display: block; }
.app-main section > h2 { font-weight: 800; font-style: italic; font-size: 28px; line-height: 30px; margin-bottom: 8px; }
.weeknav { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; }
.weeknav .mid { flex: 1; text-align: center; }
.weeknav .mid b { display: block; font: 800 italic 22px/1 'Barlow Condensed', sans-serif; text-transform: uppercase; }
.weeknav a.nav, .weeknav span.nav { width: 46px; height: 46px; display: grid; place-items: center; border: 2px solid var(--control); border-radius: 2px; background: #fff; text-decoration: none; font-weight: 700; font-size: 22px; color: var(--ink); }
.weeknav span.nav { opacity: .35; }
.app-foot { margin-top: 24px; display: flex; gap: 16px; align-items: center; flex-wrap: wrap; font-size: 14px; color: var(--muted); }
.app-foot form { margin: 0; }
.linklike.dark { color: var(--forest); }
.notices { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.kpis.two { grid-template-columns: 1fr 1fr; }
.bigpos { display: flex; align-items: baseline; gap: 12px; } .bigpos b { font: 800 italic 64px/1 'Barlow Condensed', sans-serif; } .bigpos span { color: var(--muted); }
table.standing th[scope=row] { font-weight: 600; text-transform: none; letter-spacing: 0; font-size: 15px; color: var(--ink); background: none; white-space: normal; }
table.standing tr.me > * { background: var(--gold-bg); font-weight: 700; }
.steps { list-style: none; display: flex; gap: 8px; margin: 12px 0 8px; padding: 0; }
.steps li { flex: 1; display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 14px; color: var(--muted); }
.steps li span { width: 26px; height: 26px; border-radius: 50%; border: 2px solid var(--control); display: grid; place-items: center; font-size: 13px; flex: none; }
.steps li.done { color: var(--forest); } .steps li.done span { background: var(--forest); border-color: var(--forest); color: #fff; }
dl.bank { display: grid; grid-template-columns: auto 1fr; gap: 6px 14px; margin: 8px 0 14px; } dl.bank dt { color: var(--muted); font-weight: 600; } dl.bank dd { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.reqrow { display: flex; align-items: center; gap: 8px; padding: 8px 0; border-top: 1px solid var(--hairline); flex-wrap: wrap; } .reqrow > span { flex: 1 1 140px; font-weight: 600; } .reqrow select { width: auto; min-height: 44px; }

/* ================= Sito pubblico (progetto "Landing" e "LandingMobile") ================= */
body.is-public { background: var(--ground); }
.pub-in { max-width: 1200px; margin: 0 auto; padding: 0 32px; }
.gold-text { color: var(--gold) !important; }
.only-m { display: none !important; }
.btn.big { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 52px; padding: 0 24px; font: 700 14px/16px 'Barlow', sans-serif; letter-spacing: .06em; text-transform: uppercase; }
.btn.dark.big { min-height: 56px; padding: 0 28px; }
.btn.dark:hover { background: #26362d; }

/* intestazione */
.pub-head { background: var(--forest); color: #fff; }
.pub-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 32px; padding-top: 16px; padding-bottom: 16px; }
.pub-brand { display: flex; align-items: center; gap: 12px; color: #fff; text-decoration: none; }
.pub-brand img { display: block; width: 64px; height: 64px; }
.pub-brand b { display: block; font: 800 italic 30px/30px 'Barlow Condensed', sans-serif; text-transform: uppercase; }
.pub-brand small { display: block; font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.pub-head nav { flex: 1 1 auto; display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 4px 4px; }
.pub-head nav a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 9px; color: #fff; text-decoration: none; font-size: 13px; line-height: 16px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.pub-head nav a:hover { background: rgba(255,255,255,.12); }
.pub-head nav a.cta { padding: 0 16px; background: var(--gold); color: var(--ink); border-radius: 2px; font-weight: 700; }
.pub-head nav a.cta:hover { background: #e3a70f; }
.pub-head a:focus-visible, .pub-head button:focus-visible, .pub-foot a:focus-visible, .hero a:focus-visible, .app-sec a:focus-visible,
.app-head a:focus-visible, .app-head button:focus-visible, .pub-min a:focus-visible, .hero-card a:focus-visible, .hero-card button:focus-visible,
.pubbar :focus-visible, .sendbar :focus-visible, .app-nav a[aria-current="page"]:focus-visible { outline-color: #fff; }
.next-home a:focus-visible { outline-color: var(--ink); } /* scheda bianca dentro l'hero verde */
.menu-btn { display: none; align-items: center; justify-content: center; width: 44px; height: 44px; border: 2px solid #fff; border-radius: 2px; background: transparent; color: #fff; cursor: pointer; }
.stripe.thin { height: 6px; background: repeating-linear-gradient(135deg, var(--gold) 0 10px, var(--forest) 10px 20px); }

/* hero */
.hero { background: var(--forest); color: #fff; padding: 72px 0 80px; }
.hero-in { display: flex; flex-wrap: wrap; gap: 48px; align-items: center; }
.hero-text { flex: 1 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 24px; }
.hero h1 { font-size: clamp(64px, 8.2vw, 116px); line-height: .92; letter-spacing: 0; }
.hero h1 em { display: block; color: var(--gold); font-style: italic; }
.hero p { font-size: 20px; line-height: 30px; max-width: 540px; margin: 0; }
.hero .row { display: flex; flex-wrap: wrap; gap: 12px; }
.next-home { flex: 0 1 420px; min-width: 280px; background: #fff; color: var(--ink); border-radius: var(--radius); overflow: hidden; display: flex; flex-direction: column; }
.nh-in { padding: 24px; display: flex; flex-direction: column; gap: 16px; }
.nh-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.nh-top h2 { font: 600 13px/16px 'Barlow', sans-serif; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.nh-title { font: 800 italic 44px/42px 'Barlow Condensed', sans-serif; text-transform: uppercase; color: var(--forest); }
.nh-title span { display: block; margin-top: 4px; font-size: 26px; line-height: 30px; font-weight: 700; color: var(--ink); }
.nh-info { display: flex; flex-direction: column; gap: 6px; font-size: 16px; line-height: 24px; }
.nh-info span { display: flex; align-items: center; gap: 10px; }
.nh-info svg { flex: none; }
.nh-m { display: none; }
.nh-link { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; min-height: 44px; color: var(--forest); font-size: 13px; line-height: 16px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; text-underline-offset: 4px; }

/* numeri */
.stats { background: #fff; border-bottom: 1px solid var(--hairline); color: var(--ink); }
.stats .pub-in { display: flex; flex-wrap: wrap; }
.stats .pub-in > div { flex: 1 1 240px; padding: 28px 0; display: flex; align-items: baseline; gap: 12px; }
.stats b { font: 800 italic 64px/60px 'Barlow Condensed', sans-serif; color: var(--forest); }
.stats span { font-size: 13px; line-height: 16px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }

/* sezioni */
.sec { padding: 80px 0; }
.sec-head { display: flex; flex-direction: column; gap: 8px; margin-bottom: 32px; }
.sec-head h2 { font-size: 56px; line-height: 52px; font-weight: 800; font-style: italic; text-transform: uppercase; letter-spacing: 0; }
.sec-head p { max-width: 640px; margin: 0; color: var(--muted); font-size: 18px; line-height: 28px; }
#squadre { padding-bottom: 24px; }
.teamgrid { display: flex; flex-wrap: wrap; gap: 32px; }
.teamgrid > div { flex: 1 1 480px; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
.teamgrid h3 { display: flex; align-items: center; gap: 12px; font: 700 italic 32px/34px 'Barlow Condensed', sans-serif; text-transform: uppercase; }
.sq { width: 16px; height: 16px; background: var(--forest); } .sq.f { background: var(--green); }
.teamlist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px; }
.teamlist a { box-sizing: border-box; min-height: 64px; padding: 10px 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; background: #fff; border: 1px solid var(--hairline); border-radius: var(--radius); color: var(--ink); text-decoration: none; }
.teamlist a:hover { border-color: var(--forest); }
.teamlist a.gold { background: var(--gold); border-color: var(--gold); }
.teamlist a b { display: block; font: 700 24px/26px 'Barlow Condensed', sans-serif; }
.teamlist a small { display: block; font-size: 13px; line-height: 16px; color: var(--muted); }
.teamlist a.gold small { color: var(--ink); }
.teamlist svg { flex: none; color: var(--forest); }
#calendario { padding: 56px 0 80px; }
.cal-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 24px; }
.cal-head .sec-head { margin: 0; }
.cal .chips { gap: 8px; }
.cal .chips a { min-height: 44px; padding: 0 16px; border: 2px solid var(--forest); border-radius: 2px; background: #fff; color: var(--forest); font-size: 13px; line-height: 16px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.cal .chips a[aria-current="true"] { background: var(--forest); color: #fff; }
ul.wk { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
ul.wk li { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; padding: 12px 16px; background: #fff; border: 1px solid var(--hairline); border-radius: var(--radius); }
ul.wk .datebox { flex: 0 0 64px; }
.datebox.d-ven { background: #c9d6ce; } .datebox.d-sab { background: #f4f6f3; } .datebox.d-dom { background: #e6ede8; }
.wk-time { flex: 0 0 88px; font: 800 italic 32px/32px 'Barlow Condensed', sans-serif; color: var(--forest); }
.wk-body { flex: 1 1 320px; min-width: 0; }
.wk-match { font: 700 24px/28px 'Barlow Condensed', sans-serif; }
.wk-tm { display: none; }
.narrowcol .wk-time { display: none; }

/* l'app */
.app-sec { background: var(--forest); color: #fff; }
.app-in { display: flex; flex-wrap: wrap; align-items: center; gap: 56px; padding-top: 80px; padding-bottom: 80px; }
.app-copy { flex: 1 1 460px; min-width: 0; display: flex; flex-direction: column; gap: 28px; }
.app-copy .sec-head { margin: 0; }
.app-sec h2 { color: #fff; }
.app-sec a { color: inherit; }
.app-sec a.btn.gold { color: var(--ink); align-self: flex-start; }
.feat { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 20px; }
.feat li { display: flex; gap: 16px; }
.feat .ico { flex: 0 0 48px; height: 48px; display: flex; align-items: center; justify-content: center; background: var(--gold); color: var(--ink); border-radius: 2px; }
.feat b { display: block; font: 700 26px/28px 'Barlow Condensed', sans-serif; }
.feat li > span:last-child > span { display: block; font-size: 16px; line-height: 24px; }
.phone-wrap { flex: 1 1 320px; display: flex; justify-content: center; }
.phone { width: 300px; border: 10px solid var(--ink); border-radius: 4px; background: var(--ground); color: var(--ink); overflow: hidden; }
.ph-head { background: var(--forest); color: #fff; }
.ph-bar { display: flex; align-items: center; gap: 8px; padding: 10px 12px; }
.ph-bar img { width: 44px; height: 44px; display: block; }
.ph-bar b { flex: 1; font: 800 italic 20px/22px 'Barlow Condensed', sans-serif; text-transform: uppercase; }
.ph-tag { padding: 2px 6px; background: var(--gold); color: var(--ink); border-radius: 2px; font-size: 10px; line-height: 14px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.ph-body { padding: 14px; display: flex; flex-direction: column; gap: 14px; }
.ph-hello { font: 700 italic 28px/30px 'Barlow Condensed', sans-serif; text-transform: uppercase; }
.ph-next { background: var(--forest); color: #fff; border-radius: 4px; padding: 12px; display: flex; flex-direction: column; gap: 6px; }
.ph-eye { font-size: 11px; line-height: 14px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--gold); }
.ph-title { font: 800 italic 32px/32px 'Barlow Condensed', sans-serif; text-transform: uppercase; }
.ph-title span { display: block; font-size: 20px; line-height: 22px; font-weight: 700; }
.ph-title.none { font-size: 20px; line-height: 22px; font-weight: 700; }
.ph-when { font-size: 13px; line-height: 18px; font-weight: 700; }
.ph-week { display: flex; gap: 3px; }
.ph-week > div { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 6px 0; border: 2px solid var(--forest); border-radius: 2px; background: #fff; }
.ph-week span { font-size: 9px; line-height: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.ph-week b { font: 800 italic 18px/18px 'Barlow Condensed', sans-serif; }
.ph-week i { width: 6px; height: 6px; background: transparent; } .ph-week i.on { background: var(--forest); }
.ph-week .today { background: var(--gold); }
.ph-week .game { background: var(--forest); color: #fff; } .ph-week .game i { background: var(--gold); }
.ph-card { padding: 10px 12px; background: #fff; border: 1px solid var(--hairline); border-radius: 4px; }
.ph-card .ph-eye { color: var(--muted); }
.ph-time { font: 800 italic 26px/28px 'Barlow Condensed', sans-serif; }
.ph-place { font-size: 12px; line-height: 16px; color: var(--muted); }

/* notizie, invito */
.newsgrid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.news { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--hairline); border-radius: 4px; overflow: hidden; }
.news-top { height: 120px; }
.nt-0 { background: repeating-linear-gradient(135deg, var(--gold) 0 14px, var(--forest) 14px 28px); } .nt-1 { background: var(--green); } .nt-2 { background: var(--forest); }
.news-body { padding: 20px; display: flex; flex-direction: column; gap: 8px; }
.news-body h3 { font: 700 28px/30px 'Barlow Condensed', sans-serif; }
.news-body p { margin: 0; font-size: 16px; line-height: 24px; color: var(--muted); }
.cta-band { background: var(--gold); color: var(--ink); }
.cta-in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 48px; padding-top: 64px; padding-bottom: 64px; }
.cta-in > div { flex: 1 1 480px; display: flex; flex-direction: column; gap: 12px; }
.cta-band h2 { font: 800 italic 56px/52px 'Barlow Condensed', sans-serif; text-transform: uppercase; letter-spacing: 0; }
.cta-band p { max-width: 600px; margin: 0; font-size: 20px; line-height: 30px; }
.cta-band a:focus-visible { outline-color: var(--ink); }

/* piè di pagina */
.pub-foot { background: var(--forest); color: #fff; }
.pub-foot a { color: #fff; }
.foot-grid { display: flex; flex-wrap: wrap; gap: 32px 64px; padding-top: 48px; padding-bottom: 32px; }
.foot-grid > div { flex: 1 1 200px; display: flex; flex-direction: column; gap: 4px; }
.foot-grid > .foot-brand { flex-basis: 280px; gap: 12px; }
.foot-logo { display: flex; align-items: center; gap: 12px; }
.foot-logo img { width: 72px; height: 72px; display: block; }
.foot-logo span { font: 800 italic 28px/28px 'Barlow Condensed', sans-serif; text-transform: uppercase; }
.foot-grid p { margin: 0; font-size: 14px; line-height: 20px; }
.foot-gyms { line-height: 24px !important; }
.foot-title { font-size: 13px; line-height: 16px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--gold); margin-bottom: 4px; }
.foot-link { display: inline-flex; align-items: center; min-height: 36px; font-size: 14px; }
.foot-legal { padding-top: 16px; padding-bottom: 16px; font-size: 13px; line-height: 18px; }

/* pagine interne del sito (squadra, privacy) */
.narrowcol { max-width: 800px; }
h1.pagetitle { font-size: clamp(44px, 6vw, 72px); line-height: 1; margin: 6px 0 20px; }
.narrowcol h2 { margin: 32px 0 10px; font-size: 28px; }
.narrowcol .back { font-weight: 700; }
.prose p, .prose li { max-width: 680px; font-size: 17px; line-height: 26px; }

@media (max-width: 640px) {
  .pub-in { padding: 0 16px; }
  .only-d { display: none !important; }
  .only-m { display: block !important; }
  .btn.only-m { display: flex !important; }
  .pub-bar { flex-wrap: wrap; gap: 0 12px; padding: 10px 16px 0; }
  .pub-brand { flex: 1 1 auto; padding-bottom: 10px; }
  .pub-brand img { width: 60px; height: 60px; }
  .pub-brand b { font-size: 26px; line-height: 28px; }
  .pub-brand small { display: none; }
  .js .menu-btn { display: flex; margin-bottom: 10px; }
  .js .pub-head nav { display: none; flex: 1 0 100%; flex-direction: column; align-items: stretch; padding-bottom: 12px; }
  .js .pub-head.open nav { display: flex; }
  .pub-head nav a { justify-content: flex-start; }
  .pub-head nav a.cta { justify-content: center; margin-top: 4px; }
  .pub-main { display: flex; flex-direction: column; }
  .o-1 { order: 1; } .o-2 { order: 2; } .o-3 { order: 3; } .o-4 { order: 4; } .o-5 { order: 5; } .o-6 { order: 6; } .o-7 { order: 7; }
  .hero { padding: 32px 0 28px; }
  .hero-in { gap: 16px; }
  .hero-text { gap: 16px; flex-basis: 100%; }
  .hero h1 { font-size: 76px; line-height: 70px; }
  .hero p { font-size: 17px; line-height: 26px; }
  .hero .row { flex-direction: column; gap: 10px; }
  .hero .btn.big { width: 100%; }
  .hero .btn.gold svg { display: none; }
  .next-home.in-hero { display: none; }
  .nh-m { display: block; margin: -1px 16px 0; background: #fff; border: 1px solid var(--hairline); border-radius: 4px; overflow: hidden; }
  .nhm-in { padding: 16px; display: flex; flex-direction: column; gap: 8px; }
  .nhm-team { font: 800 italic 38px/38px 'Barlow Condensed', sans-serif; text-transform: uppercase; color: var(--forest); }
  .nhm-match { font: 700 21px/24px 'Barlow Condensed', sans-serif; }
  .nhm-info { font-size: 14px; line-height: 20px; color: var(--muted); }
  .stats { margin-top: 24px; }
  .stats { border-top: 1px solid var(--hairline); }
  .stats .pub-in { flex-wrap: nowrap; padding: 0; }
  .stats .pub-in > div { flex: 1 1 0; flex-direction: column; align-items: center; gap: 0; padding: 16px 8px; text-align: center; border-right: 1px solid var(--hairline); }
  .stats .pub-in > div:last-child { border-right: 0; }
  .stats .st-sec { display: none !important; }
  .stats b { font-size: 44px; line-height: 42px; }
  .stats span { font-size: 11px; line-height: 14px; }
  .sec { padding: 32px 0 8px; }
  #calendario { padding: 32px 0 8px; }
  #squadre { padding-bottom: 8px; }
  .sec-head { gap: 4px; margin-bottom: 14px; }
  .sec-head h2 { font-size: 40px; line-height: 40px; }
  #squadre .eyebrow, #squadre .sec-head p { display: none; }
  .cal-head { margin-bottom: 14px; gap: 14px; }
  .cal .chips { width: 100%; flex-wrap: nowrap; gap: 6px; }
  .cal .chips a { flex: 1 1 0; min-width: 0; justify-content: center; padding: 0 4px; font-size: 12px; line-height: 14px; letter-spacing: .04em; text-align: center; }
  ul.wk li { flex-wrap: nowrap; gap: 12px; padding: 10px 12px; }
  ul.wk .datebox { flex: 0 0 52px; height: 52px; }
  .datebox b { font-size: 22px; line-height: 22px; }
  .wk-time { display: none; }
  .wk-tm { display: inline; }
  .wk-body { flex: 1 1 auto; }
  .wk-match { font-size: 19px; line-height: 22px; }
  ul.wk .tag.gold { display: none; }
  .teamgrid { gap: 14px; }
  .teamgrid > div { flex-basis: 100%; gap: 8px; }
  .teamgrid h3 { font-size: 24px; line-height: 26px; gap: 10px; }
  .sq { width: 14px; height: 14px; }
  .teamlist { display: flex; flex-wrap: wrap; gap: 6px; }
  .teamlist a { min-height: 44px; padding: 0 14px; border-color: var(--control); border-radius: 2px; }
  .teamlist a b { font-size: 19px; line-height: 22px; }
  .teamlist a small, .teamlist a svg { display: none; }
  .app-sec { margin-top: 24px; }
  .app-in { padding-top: 32px; padding-bottom: 32px; gap: 20px; }
  .app-copy { gap: 20px; flex-basis: 100%; }
  .phone-wrap { display: none; }
  .feat { gap: 16px; }
  .feat li { gap: 14px; }
  .feat .ico { flex-basis: 44px; height: 44px; }
  .feat b { font-size: 23px; line-height: 26px; }
  .feat li > span:last-child > span { font-size: 15px; line-height: 22px; }
  .app-sec a.btn.gold { align-self: stretch; }
  #notizie { padding-bottom: 24px; }
  .cta-in { padding-top: 32px; padding-bottom: 32px; gap: 12px; }
  .cta-in > div { flex-basis: 100%; gap: 12px; }
  .cta-band h2 { font-size: 44px; line-height: 42px; }
  .cta-band p { font-size: 17px; line-height: 26px; }
  .cta-in .btn { width: 100%; }
  .foot-grid { padding-top: 28px; padding-bottom: 20px; gap: 12px; }
  .foot-grid > div { flex-basis: 100%; }
  .foot-grid > div:last-child { display: none; }
  .foot-logo img { width: 60px; height: 60px; }
  .foot-logo span { font-size: 24px; line-height: 24px; }
  .foot-title { display: none; }
  .foot-legal { padding-top: 12px; padding-bottom: 12px; }
}

/* ---- tabelle di inserimento e righe evidenziate ---- */
tr.hl > td { background: var(--gold-bg); }
table.inputs input { min-height: 40px; width: 72px; text-align: right; padding: 4px 8px; }
table.inputs th[scope=row] { font-weight: 600; text-transform: none; letter-spacing: 0; font-size: 15px; color: var(--ink); background: none; white-space: normal; }
.adm-main .chips a { min-height: 40px; padding: 6px 12px; }
.adm-main .stack > * + * { margin-top: 0; } .adm-main .stack { display: flex; flex-direction: column; gap: 16px; }

/* ---- Magazzino ---- */
.seg.wide { max-width: 520px; }
.legend { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.qty-chip { padding: 2px 10px; border-radius: 2px; font-weight: 700; font-size: 13px; }
.qty-chip.ok, .qty.ok { background: var(--green-bg); color: var(--forest); }
.qty-chip.low, .qty.low { background: var(--gold-bg); color: #5c4300; }
.qty-chip.out, .qty.out { background: var(--red-bg); color: var(--red); }
.sizes { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.sz { display: flex; flex-direction: column; gap: 4px; } .sz > span { font-weight: 700; }
.qty { display: flex; align-items: center; justify-content: space-between; gap: 4px; padding: 4px; border-radius: 2px; border: 1px solid var(--hairline); }
.qty form { margin: 0; } .qty b { min-width: 34px; text-align: center; font: 800 italic 22px 'Barlow Condensed', sans-serif; }
.qty button { width: 40px; height: 40px; border: 2px solid var(--control); background: #fff; border-radius: 2px; font-size: 22px; font-weight: 700; cursor: pointer; color: var(--ink); }
.qty button:hover { background: var(--green-bg); }
.tablewrap form { margin: 0; }
.w-sm { width: 120px; } .w-auto { width: auto; }

/* ---- Atleti e famiglie: due parti ---- */
.tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.tile { display: flex; flex-direction: column; gap: 2px; padding: 12px 16px; background: #fff; border: 2px solid var(--hairline); border-radius: var(--radius); color: var(--ink); text-decoration: none; }
.tile b { font: 800 italic 36px/1 'Barlow Condensed', sans-serif; } .tile span { font-size: 14px; font-weight: 600; color: var(--muted); }
.tile[aria-current="true"] { background: var(--forest); border-color: var(--forest); color: #fff; } .tile[aria-current="true"] span { color: #fff; }
.split { display: grid; grid-template-columns: minmax(280px, 380px) 1fr; gap: 24px; align-items: start; }
.split-list { background: #fff; border: 1px solid var(--hairline); border-radius: var(--radius); padding: 16px; position: sticky; top: 16px; max-height: calc(100vh - 32px); display: flex; flex-direction: column; min-height: 0; }
.split-detail > * + * { margin-top: 16px; } .split-detail .card { margin-bottom: 0; }
.filters .field { margin-bottom: 8px; }
.alist { list-style: none; margin: 0 -16px -16px; padding: 0; overflow-y: auto; border-top: 1px solid var(--hairline); }
.alist li a { display: grid; grid-template-columns: 1fr auto; gap: 0 8px; padding: 10px 16px; border-bottom: 1px solid var(--hairline); color: var(--ink); text-decoration: none; }
.alist li a > span:last-child { grid-column: 1 / -1; } .alist li a:hover { background: #fafbfa; }
.alist li a[aria-current="true"] { background: var(--gold-bg); box-shadow: inset 5px 0 0 var(--gold); }
.pad2 { padding: 16px; } h4 { margin: 8px 0 4px; font-size: 16px; }
@media (max-width: 980px) { .split { grid-template-columns: 1fr; } .split-list { position: static; max-height: 420px; } }

/* ================= App famiglie e atleti: rifiniture secondo il progetto ================= */
.pill { display: inline-block; padding: 4px 10px; background: var(--gold); color: var(--ink); border-radius: 2px; font-size: 13px; line-height: 16px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.app-main section.hero-card > h2.eyebrow, .hero-card .hc-top h2.eyebrow { font: 600 13px/16px 'Barlow', sans-serif; font-style: normal; letter-spacing: .06em; text-transform: uppercase; margin: 0; color: var(--gold); }
.hero-card { gap: 8px; padding: 16px; }
.hc-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.hc-top .row { display: flex; gap: 6px; }
.hc-title { font: 800 italic 44px/42px 'Barlow Condensed', sans-serif; text-transform: uppercase; overflow-wrap: anywhere; }
.hc-title.two { font-size: 40px; line-height: 38px; }
.hc-title.two span { display: block; font-size: 28px; line-height: 30px; font-weight: 700; }
.hc-line { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 17px; line-height: 24px; }
.hc-line span, .hc-line b { display: inline-flex; align-items: center; gap: 8px; }
.hc-note { font-size: 14px; line-height: 20px; font-weight: 700; margin: 0; }
.hc-btn { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; margin-top: 4px; border: 2px solid #fff; border-radius: 2px; color: #fff; text-decoration: none; font: 700 14px/16px 'Barlow', sans-serif; letter-spacing: .06em; text-transform: uppercase; }
.hc-btn:hover { background: rgba(255,255,255,.12); }
.hc-link { align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 13px; line-height: 16px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; text-underline-offset: 4px; }
.hero-time { font-size: 44px; line-height: 44px; }
.app-main h1 { font-size: 36px; line-height: 38px; }
.app-main .sub { margin: 4px 0 0; font-size: 15px; line-height: 22px; color: var(--muted); }

/* striscia dei giorni (atleta) e in sintesi */
.daystrip { display: flex; gap: 3px; }
.daystrip a { flex: 1 1 0; min-width: 0; min-height: 64px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; padding: 6px 0; border: 2px solid var(--forest); border-radius: 2px; background: #fff; color: var(--ink); text-decoration: none; }
.daystrip a span { font-size: 11px; line-height: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.daystrip a b { font: 800 italic 22px/22px 'Barlow Condensed', sans-serif; }
.daystrip a i { width: 7px; height: 7px; background: transparent; }
.daystrip a i.on { background: var(--forest); } .daystrip a i.g { background: var(--ink); }
.daystrip a[aria-current="true"] { background: var(--forest); color: #fff; }
.daystrip a[aria-current="true"] i.on, .daystrip a[aria-current="true"] i.g { background: var(--gold); }
.daycard { display: flex; flex-direction: column; gap: 8px; }
.day-ev { background: #fff; border: 1px solid var(--hairline); border-radius: var(--radius); padding: 16px; display: flex; flex-direction: column; gap: 6px; }
.day-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.day-time { font: 800 italic 44px/44px 'Barlow Condensed', sans-serif; }
.day-place { font: 700 22px/24px 'Barlow Condensed', sans-serif; }
.brief { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.brief a { display: flex; align-items: center; gap: 12px; padding: 10px 12px; background: #fff; border: 1px solid var(--hairline); border-radius: var(--radius); color: var(--ink); text-decoration: none; }
.brief .datebox { flex: 0 0 52px; height: 52px; }
.brief .datebox b { font-size: 24px; line-height: 24px; }
.brief .t { display: block; font: 700 22px/24px 'Barlow Condensed', sans-serif; }
.brief .s { display: block; font-size: 14px; line-height: 20px; color: var(--muted); }
.ev-title { font-size: 26px; line-height: 28px; }

/* avvisi */
.notices { gap: 8px; }
.notice { background: #fff; border: 1px solid var(--hairline); border-left: 6px solid var(--hairline); border-radius: var(--radius); padding: 16px; display: flex; flex-direction: column; gap: 8px; }
.notice.unread { border-left-color: var(--forest); }
.notice-top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.notice-top .when { margin-left: auto; font-size: 14px; color: var(--muted); }
.kindtag { padding: 2px 8px; border: 1px solid var(--ink); border-radius: 2px; background: #fff; font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.kindtag.imp { background: var(--gold); border-color: var(--gold); }
.newflag { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--forest); }
.newflag::before { content: ''; width: 10px; height: 10px; background: var(--forest); }
.notice h2 { font: 700 28px/30px 'Barlow Condensed', sans-serif; text-transform: none; letter-spacing: 0; margin: 0; }
.notice h2 a { color: var(--ink); text-decoration: none; }
.notice .aud { font-size: 13px; line-height: 16px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.notice .nbody p { margin: 0 0 .6em; }
.notice form { margin: 4px 0 0; }
.notice .btn { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; }

/* La stagione */
.chips.eq a { flex: 1 1 0; min-width: 0; justify-content: center; padding: 0 4px; text-align: center; border-color: var(--forest); color: var(--forest); font-size: 13px; letter-spacing: .06em; text-transform: uppercase; }
.chips.eq a[aria-current="true"] { background: var(--forest); color: #fff; }
.app-main h3.month { margin: 18px 0 8px; font: 800 italic 24px/26px 'Barlow Condensed', sans-serif; text-transform: uppercase; letter-spacing: 0; color: var(--forest); }
.fx { display: flex; align-items: center; gap: 12px; padding: 12px; background: #fff; border: 1px solid var(--hairline); border-left: 6px solid var(--forest); border-radius: var(--radius); }
.fx.next { border-left-color: var(--gold); }
.fx.is-past { border-left-color: var(--hairline); background: #fafbfa; color: var(--muted); }
.fx .datebox { flex: 0 0 56px; height: 64px; background: #e6ede8; }
.fx.next .datebox { background: var(--gold); }
.fx.is-past .datebox { background: var(--hairline); }
.fx-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.fx-title { font: 700 22px/24px 'Barlow Condensed', sans-serif; color: var(--ink); }
.fx-tag { align-self: flex-start; }
.tag.home { background: var(--forest); color: #fff; }
.tag.away { background: #fff; color: var(--forest); border: 1px solid var(--forest); }

/* Segreteria (famiglie) */
.paysum { background: #fff; border: 1px solid var(--hairline); border-left: 6px solid var(--gold); border-radius: var(--radius); padding: 14px 16px; display: flex; flex-direction: column; gap: 8px; }
.paysum-top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.paysum-top h2 { font: 600 13px/16px 'Barlow', sans-serif; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.paysum-top b { font: 800 italic 44px/44px 'Barlow Condensed', sans-serif; color: var(--forest); }
.paysum ul { list-style: none; margin: 0; padding: 0; }
.paysum li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px solid var(--hairline); }
.paysum li b { display: block; font: 700 20px/22px 'Barlow Condensed', sans-serif; }
.paysum li .small { display: block; }
.paysum .zero { color: var(--muted); }
.mini { display: inline-block; padding: 3px 9px; border: 1px solid var(--ink); border-radius: 2px; background: #fff; font-size: 13px; line-height: 18px; font-weight: 700; white-space: nowrap; }
.mini.fill { background: var(--forest); border-color: var(--forest); color: #fff; }
.mini.gold { background: var(--gold); border-color: var(--gold); }
.mini.red { background: var(--red-bg); border-color: var(--red); color: var(--red); }
.steps { margin: 14px 0 8px; gap: 8px; }
.steps li { flex-direction: column; justify-content: flex-start; gap: 6px; text-align: center; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; }
.steps li span { width: 40px; height: 40px; border-radius: 2px; background: #fff; color: var(--ink); font: 700 20px/1 'Barlow Condensed', sans-serif; }
.steps li.done span { background: var(--forest); border-color: var(--forest); color: #fff; }
.steps li.cur span { background: var(--gold); border-color: var(--ink); }
.steps li.cur { color: var(--ink); }
.famtotal { background: var(--forest); color: #fff; border-radius: var(--radius); padding: 16px; display: flex; flex-direction: column; gap: 8px; }
.famtotal .ft-top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.famtotal b { font: 800 italic 44px/44px 'Barlow Condensed', sans-serif; }
.famtotal .eyebrow { color: var(--gold); }
.famtotal p { margin: 0; font-size: 14px; }
.progress { height: 14px; background: #fff; border-radius: 2px; overflow: hidden; }
.progress i { display: block; height: 100%; background: var(--green); }
.ratecard { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; background: #fff; border: 1px solid var(--hairline); border-radius: var(--radius); }
.ratecard b { display: block; font: 700 22px/24px 'Barlow Condensed', sans-serif; }
.who-line { margin: 12px 0 -4px; font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.paybox { background: #fff; border: 2px solid var(--ink); border-radius: var(--radius); padding: 16px; }
.paybox h3 { font: 700 22px/24px 'Barlow Condensed', sans-serif; text-transform: uppercase; margin-bottom: 8px; }
.paybox dl.bank { margin: 8px 0 12px; }
.paybox .btn { display: block; width: 100%; }
.mtiles { display: flex; gap: 8px; }
.mtiles > div { flex: 1 1 0; background: #fff; border: 1px solid var(--hairline); border-radius: var(--radius); padding: 10px; font-size: 13px; line-height: 16px; font-weight: 600; display: flex; flex-direction: column; gap: 8px; }
.mtiles span { width: 26px; height: 26px; display: grid; place-items: center; background: var(--forest); color: #fff; border-radius: 2px; font: 700 16px/1 'Barlow Condensed', sans-serif; }
.mtiles > div:last-child span { background: var(--gold); color: var(--ink); }
.minilabel { margin: 4px 0 -8px; font-size: 13px; line-height: 16px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.reqlist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.reqlist li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; background: #fff; border: 1px solid var(--hairline); border-radius: var(--radius); }
.reqlist b { display: block; font: 700 22px/24px 'Barlow Condensed', sans-serif; }
.prod { background: #fff; border: 1px solid var(--hairline); border-radius: var(--radius); overflow: hidden; }
.prod .stripe { height: 8px; }
.prod form { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 12px; margin: 0; }
.prod-top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.prod-top b { font: 700 28px/28px 'Barlow Condensed', sans-serif; }
.prod-top .price { font: 800 italic 30px/30px 'Barlow Condensed', sans-serif; color: var(--forest); }
.sizes { display: flex; flex-wrap: wrap; gap: 8px; border: 0; margin: 0; padding: 0; }
.sizes legend { position: absolute; left: -999px; }
.sizes label { position: relative; }
.sizes input { position: absolute; opacity: 0; inset: 0; }
.sizes span { display: inline-flex; align-items: center; justify-content: center; min-width: 48px; min-height: 46px; padding: 0 12px; border: 2px solid var(--forest); border-radius: 2px; background: #fff; font: 700 18px/1 'Barlow Condensed', sans-serif; color: var(--forest); }
.sizes input:checked + span { background: var(--forest); color: #fff; }
.sizes input:focus-visible + span { outline: 3px solid var(--ink); outline-offset: 2px; }
.prod .btn { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; background: #fff; color: var(--forest); border-color: var(--forest); }
.prod .btn:hover { background: var(--green-bg); }
progress.bar { appearance: none; -webkit-appearance: none; width: 100%; height: 14px; border: 0; border-radius: 2px; background: #fff; overflow: hidden; }
progress.bar::-webkit-progress-bar { background: #fff; }
progress.bar::-webkit-progress-value { background: var(--green); }
progress.bar::-moz-progress-bar { background: var(--green); }
.fx-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.notice .btn { font: 700 14px/16px 'Barlow', sans-serif; letter-spacing: .06em; text-transform: uppercase; min-height: 48px; }
.app-main section.stk { display: flex; flex-direction: column; gap: 12px; }
.app-main section.stk > h2 { margin-bottom: 0; }
.app-main section.stk > .weeknav { margin-bottom: 0; }
.minilabel { margin: 6px 0 -2px; }
.reqlist .mini { font-size: 12px; line-height: 16px; letter-spacing: .06em; text-transform: uppercase; }
.prod .btn { font: 700 14px/16px 'Barlow', sans-serif; letter-spacing: .06em; text-transform: uppercase; min-height: 48px; }
.app-main section.stk > .minilabel { margin-bottom: -6px; }

/* ---- Gare e classifica (atleta) ---- */
.app-main .seg { margin: 0; }
ul.gl { gap: 12px; }
ul.gl .fx { border-left: 1px solid var(--hairline); }
.datebox.with-month { gap: 0; }
.datebox.with-month b { font-size: 26px; line-height: 26px; }
.datebox.with-month .mo { font-size: 11px; line-height: 14px; }
.fx .datebox.with-month { background: #c9d6ce; }
.fx.hot { background: var(--forest); border-color: var(--forest); color: #fff; }
.fx.hot .datebox { background: var(--gold); color: var(--ink); }
.fx.hot .eyebrow, .fx.hot .fx-title, .fx.hot .small { color: #fff; }
.fx.hot .eyebrow { opacity: .9; }
.duo { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: stretch; }
.duo .card { margin: 0; }
.tile-pos { background: var(--forest); color: #fff; border-radius: var(--radius); padding: 16px; display: flex; flex-direction: column; justify-content: flex-end; gap: 4px; min-height: 88px; }
.tile-pos b { font: 800 italic 48px/44px 'Barlow Condensed', sans-serif; }
.tile-pos span { color: var(--gold); font-size: 13px; line-height: 16px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.duo .card h2.eyebrow, .app-main section.card > h2.eyebrow { font: 600 13px/16px 'Barlow', sans-serif; font-style: normal; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin: 0 0 8px; }
.lastres { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: 14px; line-height: 18px; }
.lastres b { font-weight: 700; margin-right: 4px; } .lastres b.w { color: var(--forest); } .lastres b.l { color: var(--red); }
.opp { font: 700 24px/28px 'Barlow Condensed', sans-serif; text-transform: none; margin: 0 0 2px; }
table.standing tr.me > * { background: var(--forest); color: #fff; font-weight: 700; }
table.standing tr.me > td.num:last-child b { color: var(--gold); }
table.standing thead th { background: #fff; border-bottom: 2px solid var(--ink); }
table.standing th.num, table.standing td.num { width: 34px; padding-left: 6px; padding-right: 6px; text-align: center; }
table.standing td.num:first-child, table.standing th.num:first-child { width: 28px; }
table.standing tbody th[scope=row] { padding-left: 4px; }
.app-main .cardhead { margin-bottom: 8px; }
.app-main section > .cardhead > h2 { font-weight: 800; font-style: italic; font-size: 28px; line-height: 30px; margin: 0; }

/* ================= Segreteria: pagine come nel progetto ================= */
.adm-main .notice { display: block; background: var(--gold-bg); border: 0; border-left: 5px solid var(--gold); padding: 12px 16px; }
.adm-main .pagehead .eyebrow { display: block; margin-bottom: 8px; }
.adm-main .pagehead h1 { text-transform: uppercase; }
.adm-main .pagehead p { font-size: 16px; line-height: 24px; max-width: 540px; }
.cond { font-family: 'Barlow Condensed', 'Barlow', sans-serif; font-weight: 700; font-size: 20px; line-height: 22px; }
.btn.upper, .adm-main .btn.small.upper { text-transform: uppercase; letter-spacing: .06em; font-size: 13px; }
.asec { display: flex; flex-direction: column; gap: 12px; }
.sechead { display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap; }
.adm-main .sechead h2 { font-weight: 800; font-style: italic; font-size: 34px; line-height: 36px; letter-spacing: .01em; }
.adm-main .card h2 { font-size: 22px; line-height: 24px; }

/* passaggi */
.pstepper { list-style: none; display: flex; align-items: center; gap: 12px; margin: 0; padding: 0; }
.pstepper li { display: flex; align-items: center; gap: 10px; font-size: 13px; line-height: 16px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.pstepper li span { width: 32px; height: 32px; display: grid; place-items: center; background: #fff; border: 2px solid var(--control); border-radius: 2px; font: 800 18px/1 'Barlow Condensed', sans-serif; color: var(--ink); }
.pstepper li.done, .pstepper li.cur { color: var(--ink); }
.pstepper li.done span { background: var(--forest); border-color: var(--forest); color: #fff; }
.pstepper li.cur span { background: var(--gold); border-color: var(--gold); color: var(--ink); }
.pstepper li.ln { flex: 0 0 44px; height: 2px; background: var(--control); opacity: .6; }

/* scheda del file */
.filecard { display: flex; align-items: center; gap: 16px; padding: 16px 24px; color: var(--forest); }
.filecard svg { flex: none; }
.fc-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; color: var(--ink); }
.fc-main .cond { font-size: 24px; line-height: 26px; text-transform: uppercase; overflow-wrap: anywhere; }
.fc-ok { display: inline-flex; align-items: center; gap: 8px; min-height: 38px; padding: 0 14px; background: var(--forest); color: #fff; border-radius: 2px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.fc-ok.warn { background: var(--gold); color: var(--ink); }

/* riquadri grandi */
.kpis.k3 { grid-template-columns: repeat(3, 1fr); gap: 24px; }
.kpi.big { display: flex; flex-direction: column; gap: 4px; padding: 16px 24px 18px; }
.kpi.big .eyebrow { font-size: 12px; }
.kpi.big b { display: block; font: 800 italic 56px/52px 'Barlow Condensed', sans-serif; color: var(--ink); }
.goldcard { background: var(--gold); color: var(--ink); border-radius: var(--radius); padding: 16px 24px 20px; display: flex; flex-direction: column; gap: 8px; }
.goldcard .eyebrow { color: var(--ink); font-size: 12px; }
.goldcard p { margin: 0; font-size: 14px; line-height: 20px; }
.gold-num { font: 800 italic 48px/48px 'Barlow Condensed', sans-serif; }
.goldcard details summary { cursor: pointer; font-weight: 700; }

/* tabelle di controllo */
table.pt thead th { background: #fff; border-bottom: 2px solid var(--ink); color: var(--muted); font-size: 12px; padding: 12px 16px 10px; }
table.pt td, table.pt th { padding: 10px 16px; vertical-align: middle; }
table.pt td { font-size: 15px; }
table.pt td .cond { font-size: 20px; }
table.pt tbody tr:last-child td { border-bottom: 0; }
.daysel { margin-bottom: -4px; }
.daysel a { min-height: 36px; padding: 4px 12px; font-size: 14px; }

/* barra di pubblicazione */
.pubbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; background: var(--forest); color: #fff; border-radius: var(--radius); padding: 20px 24px; }
.pubbar > div:first-child { display: flex; flex-direction: column; gap: 2px; }
.pubbar b { font: 800 italic 28px/30px 'Barlow Condensed', sans-serif; text-transform: uppercase; }
.pubbar span { font-size: 14px; }
.pb-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.pb-actions form { margin: 0; }
.pb-actions .btn { text-transform: uppercase; letter-spacing: .06em; font-size: 14px; }
.pb-actions .btn[disabled] { opacity: .5; cursor: not-allowed; }

/* carica il file */
.upload .upload-in { display: flex; gap: 16px; align-items: flex-start; margin-bottom: 14px; color: var(--forest); }
.upload h2 { color: var(--ink); text-transform: none; margin-bottom: 4px; }
.upload p { margin: 0; }
.upload input[type=file] { width: 100%; padding: 14px; border: 2px dashed var(--control); border-radius: 2px; background: #fafbfa; font: inherit; }
@media (max-width: 900px) { .kpis.k3 { grid-template-columns: 1fr; gap: 12px; } .filecard { flex-wrap: wrap; } }

table.pt th.num, table.pt td.num { text-align: left; }

/* ---- Calendari campionato ---- */
.head-actions { display: flex; gap: 16px; align-items: flex-start; flex-wrap: wrap; position: relative; }
.btn.gold-line { background: var(--gold); border-color: var(--ink); color: var(--ink); display: inline-flex; align-items: center; gap: 10px; list-style: none; font-size: 13px; letter-spacing: .06em; min-height: 46px; padding: 0 20px; }
.btn.gold-line:hover { background: #e3a70f; }
.btn.gold-line::-webkit-details-marker { display: none; }
.head-actions .btn.upper { display: inline-flex; align-items: center; gap: 10px; min-height: 46px; padding: 0 20px; border-color: var(--forest); color: var(--ink); font-size: 13px; }
.impbox > summary { cursor: pointer; }
.impbox[open] > form { position: absolute; right: 0; top: calc(100% + 8px); width: min(520px, 90vw); z-index: 5; box-shadow: 0 12px 32px rgba(0,0,0,.18); }
.kpis.k4 { grid-template-columns: repeat(4, 1fr); gap: 24px; }
.kpi.big b small { font: 700 italic 24px/1 'Barlow Condensed', sans-serif; color: var(--muted); }
.kpi.big progress { width: 100%; height: 8px; border: 0; border-radius: 4px; background: var(--hairline); accent-color: var(--forest); appearance: none; margin-top: 8px; }
.kpi.big progress::-webkit-progress-bar { background: var(--hairline); border-radius: 4px; }
.kpi.big progress::-webkit-progress-value { background: var(--forest); border-radius: 4px; }
.kpi.big progress::-moz-progress-bar { background: var(--forest); border-radius: 4px; }
.kpi.big.gold { background: var(--gold); border-color: var(--gold); }
.kpi.big.gold .eyebrow { color: var(--ink); }
.sechead.spread { justify-content: space-between; align-items: center; }
.chips.caps a { min-height: 44px; padding: 0 18px; border-color: var(--forest); color: var(--forest); font-size: 13px; letter-spacing: .06em; text-transform: uppercase; }
.chips.caps a[aria-current="true"] { background: var(--forest); color: #fff; }
table.cal td { vertical-align: middle; padding-top: 14px; padding-bottom: 14px; }
table.cal tr.imported > td { background: #eef3ef; }
.teamlink { font: 700 24px/26px 'Barlow Condensed', sans-serif; color: var(--forest); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; }
table.cal .tag.state { font-size: 12px; letter-spacing: 0; text-transform: none; font-weight: 600; padding: 3px 8px; }
table.cal .num b.cond { font-size: 24px; }
table.cal td.act { text-align: right; white-space: nowrap; }
table.cal td.act .btn { text-transform: uppercase; letter-spacing: .06em; font-size: 13px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.foot { max-width: 900px; line-height: 20px; }
@media (max-width: 1100px) { .kpis.k4 { grid-template-columns: repeat(2, 1fr); } }

/* ---- Calendario di una squadra ---- */
.crumbs { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.crumbs .btn.back { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0 14px; border-color: var(--forest); color: var(--forest); }
.tagrow { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.tagrow .tag { font-size: 12px; letter-spacing: 0; text-transform: none; font-weight: 600; padding: 3px 8px; }
.adm-main h2.plain-h2 { font-weight: 800; font-style: normal; font-size: 34px; line-height: 36px; text-transform: uppercase; }
table.gares td { vertical-align: middle; }
table.gares .cond.big { font-size: 26px; font-style: italic; }
table.gares td.act { text-align: right; white-space: nowrap; }
table.pt.gares .tag.state { font-size: 11px; padding: 1px 6px; letter-spacing: .06em; text-transform: uppercase; }
.bottom-actions { display: flex; gap: 12px; flex-wrap: wrap; align-items: flex-start; position: relative; }
.bottom-actions .btn.upper, .bottom-actions summary.btn { display: inline-flex; align-items: center; gap: 10px; min-height: 46px; padding: 0 18px; border-color: var(--forest); color: var(--forest); font-size: 13px; }
.bottom-actions summary { list-style: none; cursor: pointer; }
.bottom-actions summary::-webkit-details-marker { display: none; }
.impbox.up[open] > form { top: auto; bottom: calc(100% + 8px); right: auto; left: 0; }
.impbox.up { position: relative; }
table.gares td:nth-child(2), table.gares td:nth-child(3) { white-space: nowrap; }
table.gares tr.editing td { background: var(--gold-bg); }
.varbox { margin-top: 16px; background: #fff; border: 3px solid var(--forest); border-radius: var(--radius); padding: 24px; display: flex; flex-direction: column; gap: 18px; scroll-margin-top: 16px; }
.varbox h3 { font: 700 28px/30px 'Barlow Condensed', sans-serif; text-transform: none; letter-spacing: 0; margin-top: 4px; }
.stepgrid { display: flex; gap: 40px; flex-wrap: wrap; }
.stepper { display: flex; align-items: center; gap: 22px; margin-top: 6px; }
.stepper b { font: 800 italic 30px/32px 'Barlow Condensed', sans-serif; min-width: 96px; text-align: center; }
.sbtn { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border: 2px solid var(--forest); border-radius: var(--radius); background: #fff; color: var(--forest); font: 700 26px/1 'Barlow', sans-serif; text-decoration: none; }
.sbtn:hover { background: var(--green-bg); }
.varact { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.varact .btn { min-height: 48px; }

/* ---- Comunicazioni: pagina unica ---- */
.js-only { display: none; } .js .js-only { display: inline-flex; }
.comm-grid { display: grid; grid-template-columns: minmax(0, 620px) minmax(300px, 380px); gap: 32px; align-items: start; }
.comm-form { padding: 24px; display: flex; flex-direction: column; gap: 20px; }
.disp, .adm-main h2.disp { font: 800 italic 34px/36px 'Barlow Condensed', sans-serif; text-transform: uppercase; letter-spacing: .01em; }
.comm-form .lbl, .lbl { display: block; font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
.cf-sec { display: flex; flex-direction: column; }
.lblrow { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.lblrow .lbl { margin-bottom: 8px; }
.quick { gap: 22px; margin-bottom: 8px; }
.linkbtn { background: none; border: 0; padding: 0; font: 700 12px/16px 'Barlow', sans-serif; letter-spacing: .06em; text-transform: uppercase; color: var(--forest); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; cursor: pointer; }
.chipset { display: flex; flex-wrap: wrap; gap: 8px; }
.cchip { position: relative; display: inline-flex; margin: 0; cursor: pointer; }
.cchip input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.cchip > span, a.cchip { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 0 16px; background: #fff; border: 2px solid var(--forest); border-radius: 2px; color: var(--forest); font: 700 13px/16px 'Barlow', sans-serif; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; white-space: nowrap; }
.cchip input:checked + span, a.cchip.on { background: var(--forest); color: #fff; }
.cchip.gold > span { border-color: var(--ink); color: var(--ink); }
.cchip.gold input:checked + span { background: var(--gold); color: var(--ink); }
.cchip input:focus-visible + span { outline: 3px solid var(--ink); outline-offset: 2px; }
.cchip.sm > span { min-height: 36px; padding: 0 12px; font: 700 15px/16px 'Barlow Condensed', sans-serif; letter-spacing: 0; text-transform: none; }
.listbox { background: #eff3ef; border: 1px solid var(--hairline); border-radius: var(--radius); padding: 14px 14px 16px; margin-bottom: 16px; }
.listbox .cchip > span { border-color: var(--ink); color: var(--ink); background: #fff; }
.listbox .cchip input:checked + span { background: var(--ink); color: #fff; }
.teamcols { display: grid; grid-template-columns: 1.15fr 1fr; gap: 24px; }
.tgroup { border: 0; padding: 0; margin: 0; min-width: 0; }
.tgroup legend { display: flex; align-items: center; gap: 8px; padding: 0; margin-bottom: 10px; font: 800 italic 22px/24px 'Barlow Condensed', sans-serif; text-transform: uppercase; float: none; }
.tgroup legend::before { content: ''; width: 12px; height: 12px; background: var(--ink); }
.tgroup legend.f::before { background: var(--green); }
.tgroup legend.m::before { background: var(--forest); }
.segr { display: inline-flex; border: 2px solid var(--forest); border-radius: 2px; align-self: flex-start; }
.segr label { position: relative; margin: 0; display: block; cursor: pointer; }
.segr label + label { border-left: 2px solid var(--forest); }
.segr input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.segr span { display: block; padding: 14px 22px; font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--forest); background: #fff; }
.segr input:checked + span { background: var(--forest); color: #fff; }
.segr input:focus-visible + span { outline: 3px solid var(--ink); outline-offset: -3px; }
.segr input:checked:focus-visible + span { outline-color: #fff; }
.comm-form .hint { margin: 8px 0 0; }
.comm-form .field { margin: 0; }
.comm-form input[type=text], .comm-form textarea { font-weight: 600; }
.cf-checks { gap: 28px; }
.sendbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; background: var(--forest); color: #fff; border-radius: var(--radius); padding: 18px 20px; }
.sendbar > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.sendbar b { font: 800 italic 28px/30px 'Barlow Condensed', sans-serif; text-transform: uppercase; }
.sendbar span { font-size: 13px; line-height: 18px; }
.sendbar .btn { text-transform: uppercase; letter-spacing: .06em; font-size: 14px; }
.comm-prev { position: sticky; top: 24px; display: flex; flex-direction: column; gap: 14px; }
.phone { border: 12px solid var(--ink); border-radius: 4px; background: #f3f5f2; overflow: hidden; }
.ph-head { background: var(--forest); color: #fff; display: flex; align-items: center; gap: 10px; padding: 10px 14px; }
.ph-head b { font: 800 italic 22px/24px 'Barlow Condensed', sans-serif; text-transform: uppercase; }
.ph-body { padding: 14px; display: flex; flex-direction: column; gap: 10px; }
.pv { background: #fff; border: 1px solid var(--hairline); border-radius: var(--radius); padding: 14px; display: flex; flex-direction: column; gap: 8px; }
.pv-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.pv-top .when { font-size: 12px; color: var(--muted); }
.pv h3 { font: 700 26px/28px 'Barlow Condensed', sans-serif; overflow-wrap: anywhere; }
.pv p { margin: 0; font-size: 14px; line-height: 20px; color: var(--muted); white-space: pre-line; overflow-wrap: anywhere; max-height: 9.5em; overflow: hidden; }
.pv-btn { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; background: var(--forest); color: #fff; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; border-radius: 2px; }
.pv-btn[hidden] { display: none; }
.center { text-align: center; margin: 0; }
.kindtag.imp { background: var(--gold); border-color: var(--ink); }
.readbar { display: flex; align-items: center; gap: 12px; }
.readbar span { font: 700 14px/16px 'Barlow', sans-serif; white-space: nowrap; }
progress.bar.mini { width: 100%; max-width: 280px; height: 10px; border-radius: 5px; background: var(--hairline); }
progress.bar.mini::-webkit-progress-bar { background: var(--hairline); border-radius: 5px; }
progress.bar.mini::-webkit-progress-value { background: var(--forest); border-radius: 5px; }
progress.bar.mini::-moz-progress-bar { background: var(--forest); border-radius: 5px; }
table.pt a.cond { color: var(--ink); text-decoration: none; font-size: 20px; }
table.pt a.cond:hover { text-decoration: underline; }
@media (max-width: 1100px) { .comm-grid { grid-template-columns: 1fr; } .comm-prev { position: static; } }
@media (max-width: 600px) { .teamcols { grid-template-columns: 1fr; } }
.cf-checks { display: flex; flex-wrap: wrap; gap: 12px 28px; align-items: center; }
.cf-checks .check { margin: 0; width: auto; display: inline-flex; align-items: center; gap: 10px; }
.pv-top { flex-wrap: nowrap; } .pv-top .when { font-size: 11px; white-space: nowrap; }

/* ---- Visite e quote ---- */
.tag.red-line { background: #fff; color: var(--red); border: 1px solid var(--red); }
table.pt .tag.state, .legend .tag { font-size: 12px; line-height: 16px; letter-spacing: 0; text-transform: none; font-weight: 600; padding: 3px 8px; }
.filterbar { display: flex; gap: 16px; align-items: flex-end; flex-wrap: wrap; padding: 16px 20px; }
.filterbar .field { margin: 0; }
.filterbar select { min-width: 220px; }
.chips.caps a b.n { font: 800 italic 20px/16px 'Barlow Condensed', sans-serif; margin-left: 8px; letter-spacing: 0; }
.legend { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.legend .eyebrow { margin-right: 6px; font-size: 12px; }
.kpi.big.red { background: var(--red-bg); border-color: #e7a9a4; }
.kpi.big.red b { color: var(--red); }
.kpi.big.red .eyebrow { color: var(--red); }
table.pt td.act { text-align: right; vertical-align: top; }
table.pt td.act form { margin: 0; display: inline-block; }
.rowdet { margin-top: 6px; text-align: left; }
.rowdet > summary { cursor: pointer; font-size: 13px; font-weight: 600; color: var(--forest); text-decoration: underline; text-underline-offset: 3px; list-style: none; display: inline-block; }
.rowdet > summary.btn { text-decoration: none; }
.rowdet > summary::-webkit-details-marker { display: none; }
.rowdet-body { display: flex; flex-direction: column; gap: 10px; margin-top: 8px; padding: 12px; background: #fafbfa; border: 1px solid var(--hairline); border-radius: var(--radius); min-width: 280px; }
.rowdet-body.wide { min-width: 420px; }
.rowdet-body p { margin: 0; }
.ath-rates + .ath-rates { border-top: 1px solid var(--hairline); padding-top: 10px; }
.ath-rates ul.plain { margin: 6px 0; }
.ath-rates ul.plain li { display: flex; gap: 12px; align-items: center; justify-content: space-between; flex-wrap: wrap; padding: 4px 0; }
.ath-rates form { margin: 0; }

/* ---- Segreteria: Materiale ---- */
.kpi.big .sub { display: block; font-size: 14px; line-height: 20px; margin-top: 2px; }
.kpi.big.gold .sub { color: var(--ink); }
.kpi.big.forest { background: var(--forest); border-color: var(--forest); color: #fff; }
.kpi.big.forest .eyebrow, .kpi.big.forest .sub { color: #fff; }
.kpi.big.forest b { color: #fff; }
.ordbox { background: #fff; border: 1px solid var(--hairline); border-radius: var(--radius); padding: 20px 24px; display: flex; flex-direction: column; gap: 16px; }
.ordtop { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.ordtop a { color: var(--forest); font-weight: 700; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; }
.ordgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.ord { display: flex; align-items: center; gap: 12px; border: 1px solid var(--hairline); border-radius: var(--radius); padding: 10px 12px; min-width: 0; }
.ord .q { flex: none; width: 40px; height: 40px; display: grid; place-items: center; background: var(--forest); color: #fff; border-radius: 2px; font: 800 italic 24px/1 'Barlow Condensed', sans-serif; }
.ord.need .q { background: var(--gold); color: var(--ink); }
.ord .cond { display: block; font-size: 20px; line-height: 22px; }
.ord .meta { font-size: 12px; line-height: 16px; letter-spacing: .06em; text-transform: uppercase; font-weight: 600; color: var(--muted); }
.ord .st { font-size: 13px; line-height: 16px; color: var(--forest); }
.ord .st.bad { color: var(--red); }
.ordfoot { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
table.pt td .acts { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
table.pt td .acts form, table.pt td > form { margin: 0; }
.closed { display: inline-flex; align-items: center; gap: 6px; color: var(--forest); font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.linklike.small { font-size: 13px; }
.catgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; align-items: stretch; }
.mcard .mbody { flex: 1; }
.mcard .mfoot { margin-top: auto; padding-top: 6px; }
.mcard { background: #fff; border: 1px solid var(--hairline); border-radius: var(--radius); overflow: hidden; display: flex; flex-direction: column; }
.mcard.off { opacity: .8; }
.mcard .stripes { height: 76px; background: repeating-linear-gradient(135deg, var(--forest) 0 14px, var(--gold) 14px 28px); }
.mcard.off .stripes { background: repeating-linear-gradient(135deg, var(--control) 0 14px, var(--hairline) 14px 28px); }
.mbody { padding: 16px 16px 14px; display: flex; flex-direction: column; gap: 6px; }
.mbody h3 { margin: 0; font-size: 26px; line-height: 28px; }
.mbody p { margin: 0; font-size: 14px; line-height: 20px; color: var(--muted); }
.mfoot { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; }
.mfoot .price { font: 800 italic 34px/34px 'Barlow Condensed', sans-serif; color: var(--forest); }
.mfoot .price.none { font: 600 14px/20px 'Barlow', sans-serif; color: var(--muted); font-style: normal; }
.mfoot .sizes-r { font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.medit { margin-top: 4px; border-top: 1px solid var(--hairline); padding-top: 4px; }
.medit > summary { font-size: 13px; font-weight: 600; color: var(--forest); text-decoration: underline; text-underline-offset: 3px; list-style: none; }
.medit > summary::-webkit-details-marker { display: none; }
.medit form { padding-top: 10px; }
.mcard.add { border-style: dashed; border-color: var(--control); background: transparent; }
.mcard.add > summary { list-style: none; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-height: 160px; padding: 16px; color: var(--forest); font: 700 22px/24px 'Barlow Condensed', sans-serif; text-transform: uppercase; }
.mcard.add > summary::-webkit-details-marker { display: none; }
.mcard.add .plus { display: grid; place-items: center; width: 40px; height: 40px; border: 2px solid var(--forest); border-radius: 2px; font: 700 28px/1 'Barlow', sans-serif; }
.mcard.add[open] { background: #fff; border-style: solid; }
.mcard.add[open] > summary { min-height: 0; flex-direction: row; justify-content: flex-start; background: var(--green-bg); }
@media (max-width: 1100px) { .ordgrid { grid-template-columns: repeat(2, 1fr); } .catgrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 700px) { .ordgrid, .catgrid { grid-template-columns: 1fr; } }

/* ---- Segreteria: Atleti e famiglie (elenco a sinistra, scheda a destra) ---- */
.adm-main h2.stephead { margin: 0; font: 700 13px/16px 'Barlow', sans-serif; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.ftiles { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.ftile { display: flex; flex-direction: column; justify-content: space-between; gap: 8px; min-height: 92px; padding: 14px 16px; background: #fff; border: 2px solid var(--forest); border-radius: var(--radius); color: var(--forest); text-decoration: none; }
.ftile b { font: 800 italic 44px/40px 'Barlow Condensed', sans-serif; }
.ftile span { font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.ftile:hover { background: var(--green-bg); }
.ftile[aria-current="true"] { background: var(--forest); color: #fff; }
.asplit { display: grid; grid-template-columns: minmax(340px, 5fr) 6fr; gap: 24px; align-items: start; }
.asplit-list { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.asearch label { margin-bottom: 6px; }
.searchrow { display: flex; gap: 8px; }
.searchbox { position: relative; flex: 1; min-width: 0; }
.searchbox svg { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--muted); pointer-events: none; }
.searchbox input { width: 100%; min-height: 48px; padding-left: 42px; }
.chips.sm a { min-height: 34px; padding: 0 12px; font-size: 12px; }
.acards { list-style: none; margin: 0; padding: 0; background: #fff; border: 1px solid var(--hairline); border-radius: var(--radius); overflow: hidden; }
.acard { display: flex; flex-direction: column; gap: 4px; padding: 12px 16px; border-bottom: 1px solid var(--hairline); color: var(--ink); text-decoration: none; }
.acards li:last-child .acard { border-bottom: 0; }
.acard:hover { background: #fafbfa; }
.acard[aria-current="true"] { background: var(--gold-bg); box-shadow: inset 5px 0 0 var(--gold); }
.acard .an { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.acard .an .cond { font-size: 22px; line-height: 24px; }
.acard .an .at { font: 700 16px/20px 'Barlow Condensed', sans-serif; color: var(--forest); text-align: right; }
.acard .tagrow { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 2px; }
.asplit-detail { position: sticky; top: 16px; max-height: calc(100vh - 32px); overflow-y: auto; }
.scheda { background: #fff; border: 2px solid var(--ink); border-radius: var(--radius); padding: 20px 24px 24px; display: flex; flex-direction: column; gap: 16px; }
.scheda.empty p { margin: 0; color: var(--muted); }
.sch-head { border-bottom: 2px solid var(--ink); padding-bottom: 10px; display: flex; flex-direction: column; gap: 4px; }
.sch-head .eyebrow, .ssec .eyebrow { margin: 0; font-size: 12px; }
.sch-name { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.sch-name h2 { margin: 0; font: 800 italic 42px/44px 'Barlow Condensed', sans-serif; text-transform: uppercase; overflow-wrap: anywhere; }
.sch-name .cond { font-size: 22px; line-height: 24px; color: var(--forest); }
.ssec { display: flex; flex-direction: column; gap: 10px; }
.ssec + .ssec { border-top: 1px solid var(--hairline); padding-top: 14px; }
.ssec p { margin: 0; }
.kv { display: grid; grid-template-columns: 150px 1fr; gap: 6px 16px; margin: 0; }
.kv dt { color: var(--muted); }
.kv dd { margin: 0; font-weight: 700; }
.srows { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.srows li { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.srows li > div:first-child { flex: 1 1 240px; min-width: 0; }
.srows .rt { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.srows .rt .rowdet-body { min-width: 0; width: min(300px, 80vw); }
.ssec > .rowdet { margin-top: 0; }
@media (max-width: 1200px) { .ftiles { grid-template-columns: repeat(3, 1fr); } .asplit { grid-template-columns: 1fr; } .asplit-detail { position: static; max-height: none; } }
@media (max-width: 700px) { .ftiles { grid-template-columns: repeat(2, 1fr); } }

/* ---- Segreteria: Magazzino ---- */
.mtabs { display: flex; flex-wrap: wrap; gap: 4px; border-bottom: 2px solid var(--ink); }
.mtabs a { display: inline-flex; align-items: center; gap: 12px; min-height: 52px; padding: 0 24px; border: 2px solid var(--ink); border-bottom: 0; border-radius: 2px 2px 0 0; background: #fff; color: var(--ink); text-decoration: none; font-size: 14px; line-height: 16px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.mtabs a b { font: 800 italic 22px/22px 'Barlow Condensed', sans-serif; letter-spacing: 0; }
.mtabs a[aria-current="page"] { background: var(--forest); border-color: var(--forest); color: #fff; }
.legrow { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; }
.legend .sw { display: inline-block; width: 16px; height: 16px; border-radius: 2px; vertical-align: -3px; margin-right: 8px; }
.legend .sw.low { background: var(--gold); border: 1px solid var(--gold); }
.legend .sw.out { background: var(--red-bg); border: 1px solid var(--red); }
.legend span { display: inline-flex; align-items: center; }
.legend { gap: 8px 20px; }
.addbox { background: #fff; border: 2px solid var(--forest); border-radius: var(--radius); padding: 16px 24px; display: flex; flex-wrap: wrap; align-items: flex-end; gap: 16px; }
.addbox .field { margin: 0; flex: 1 1 280px; }
.addbox .kindset { border: 0; margin: 0; padding: 0; display: flex; gap: 18px; align-items: center; min-height: 48px; }
.addbox .acts-row { display: flex; gap: 8px; }
div.stk { display: inline-flex; align-items: stretch; border: 1px solid var(--control); border-radius: 2px; background: #fff; }
div.stk form { margin: 0; display: flex; }
div.stk button { width: 32px; min-height: 36px; padding: 0; border: 0; background: #fff; color: var(--forest); font-size: 20px; line-height: 20px; font-weight: 700; cursor: pointer; }
div.stk button:hover:not(:disabled) { background: var(--green-bg); }
div.stk button:disabled { color: var(--control); cursor: default; }
div.stk b { min-width: 44px; display: flex; align-items: center; justify-content: center; font: 700 22px/24px 'Barlow Condensed', sans-serif; }
div.stk.low { border-color: var(--gold); }
div.stk.low b { background: var(--gold); color: var(--ink); }
div.stk.out { border-color: var(--red); }
div.stk.out b { background: var(--red-bg); color: var(--red); }
div.stk.zero b { background: #e6ede8; color: var(--control); }
table.stock th.c, table.stock td.c { text-align: center; }
table.stock th.r, table.stock td.r { text-align: right; }
table.stock td { padding-top: 8px; padding-bottom: 8px; }
table.stock .tot { font: 800 italic 28px/28px 'Barlow Condensed', sans-serif; color: var(--forest); }
table.stock td.c .cond { font-size: 22px; line-height: 24px; }
table.stock tfoot td, table.stock tfoot th { background: #e6ede8; padding: 12px 16px; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ink); text-align: left; border-bottom: 0; }
table.stock tfoot td.c { text-align: center; } table.stock tfoot td.r { text-align: right; }
.gymgrid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; align-items: start; }
.gymcard { background: #fff; border: 1px solid var(--hairline); border-radius: var(--radius); overflow: hidden; display: flex; flex-direction: column; }
.stripes.thin { height: 8px; background: repeating-linear-gradient(135deg, var(--gold) 0 14px, var(--forest) 14px 28px); }
.gymhead { padding: 16px 20px 8px; display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.gymhead h3 { margin: 0; font-size: 30px; line-height: 32px; text-transform: uppercase; }
.gymhead .up { font-size: 13px; line-height: 16px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; text-align: right; }
.gymrows { list-style: none; margin: 0; padding: 0 20px 16px; }
.gymrows li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 6px 0; border-top: 1px solid #e6ede8; }
.gymrows li.zero > span { color: var(--control); }
table.stock th, table.stock td { padding-left: 6px; padding-right: 6px; }
table.stock th:first-child, table.stock td:first-child { padding-left: 16px; min-width: 210px; }
table.stock th:last-child, table.stock td:last-child { padding-right: 16px; }
table.stock div.stk b { min-width: 38px; }

/* ---- Segreteria: Pannello ---- */
.card.dofirst { border-left: 6px solid var(--gold); display: flex; flex-direction: column; gap: 12px; }
.card.dofirst.ok { border-left-color: var(--forest); }
.card.dofirst h2 { margin: 0; }
.todolist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.todolist li { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 0; border-top: 1px solid var(--hairline); }
.todolist li:first-child { border-top: 0; }

/* ---------- Foto del certificato medico ---------- */
.block { display: block; }
.certup { margin-top: 14px; }
.certup > summary { cursor: pointer; font-weight: 700; color: var(--forest); padding: 8px 0; }
.certup[open] > summary { margin-bottom: 8px; }
.certform { display: flex; flex-direction: column; gap: 12px; }
.certform .check { font-weight: 500; font-size: 14px; line-height: 1.4; margin: 0; }
.certform .check a { color: var(--forest); font-weight: 700; }
.certform .check span { min-width: 0; }
.certform .small { margin: 0; }
.certform .camerabtn { display: flex; width: 100%; cursor: pointer; }
.certform .camerabtn span { min-width: 0; overflow-wrap: anywhere; }
.certform .filepick { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; pointer-events: none; }
.js .certform .sendbtn { display: none; }
.js .certform .sendbtn.show { display: block; }
.certlist { margin-top: 14px; }
.certlist ul.plain > li { align-items: center; padding: 10px 0; }
.certlist ul.plain > li > span { display: flex; flex-direction: column; gap: 2px; }
.certlist ul.plain > li > form { margin: 0; }
.certfiles { display: flex; flex-direction: column; gap: 8px; padding-bottom: 6px; border-bottom: 1px solid var(--hairline); }
.certfiles ul.plain > li { padding: 6px 0; border-bottom: 0; }
.certfiles ul.plain > li > span { display: flex; flex-direction: column; gap: 2px; }
.certfiles p { margin: 0; }

/* l'attributo hidden vince sempre sugli stili dei componenti */
[hidden] { display: none !important; }

/* Invito a installare l'app (telefono) */
.installbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 14px; border: 2px solid var(--forest); border-radius: var(--radius); background: var(--green-bg); }
.installbar p { flex: 1 1 100%; margin: 0; }
.installbar span { color: var(--muted); }
.narrowcol h3 { margin: 22px 0 6px; font-size: 20px; }

/* ---- famiglie: calendario con un tocco, pulsante negli avvisi, risultato delle gare, carrello del materiale ---- */
.hero-card form { margin: 0; }
button.hc-btn { width: 100%; background: transparent; cursor: pointer; }
.hc-cal { margin: 0; font-size: 13px; line-height: 18px; }
.nlink { align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--forest); font-size: 13px; line-height: 16px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; text-underline-offset: 4px; }
.fx-res { display: flex; align-items: center; gap: 10px; }
.fx-res b { font: 800 italic 36px/36px 'Barlow Condensed', sans-serif; }
.fx-res .tag { border: 1px solid var(--ink); }
.cart { display: flex; flex-direction: column; gap: 12px; margin: 0; }
.prod-in { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 12px; }
.pqty { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.pqty select { width: auto; min-width: 96px; font-weight: 700; }
.cartbar { position: sticky; bottom: calc(68px + env(safe-area-inset-bottom)); z-index: 4; display: flex; flex-direction: column; gap: 10px; padding: 12px 16px; background: var(--forest); color: #fff; border-top: 4px solid var(--gold); border-radius: var(--radius); }
.cartbar p { margin: 0; }
.cartbar .btn { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; text-align: left; min-height: 52px; background: var(--gold); border-color: var(--gold); color: var(--ink); font: 700 14px/16px 'Barlow', sans-serif; letter-spacing: .06em; text-transform: uppercase; }
.cartbar .btn:hover { background: #e3a70f; }
.cartbar [data-cart-total] { white-space: nowrap; font: 800 italic 24px/24px 'Barlow Condensed', sans-serif; }

/* ---- atleti: nome di battesimo, messaggio dentro la scheda, ritorno alla scheda ---- */
.acard .fn, .sch-name .fn { font-weight: 600; color: var(--muted); }
.sch-name h2 .fn { font-size: 32px; }
.scheda > .flash { margin: 0; }
#scheda { scroll-margin-top: 16px; }
#sch-t:focus { outline: none; }
#sch-t:focus-visible { outline: 3px solid var(--ink); outline-offset: 2px; }

/* ---- segreteria: elenco pronto spiegato, pulsante in fondo agli avvisi, promemoria della visita inviato ---- */
.listnote { margin-top: 12px; display: flex; flex-direction: column; gap: 8px; }
.listnote .hint { margin: 0; }
.listnote .check { margin: 0; }
.cf-link { border: 0; padding: 0; margin: 0; min-width: 0; }
.cf-link legend { padding: 0; float: none; }
.cf-linkrow { display: grid; grid-template-columns: 1fr 1.4fr; gap: 12px; }
@media (max-width: 600px) { .cf-linkrow { grid-template-columns: 1fr; } }
.pv-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin: 0; color: var(--forest); font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; text-decoration: underline; text-underline-offset: 4px; overflow-wrap: anywhere; }
.pv-link svg { flex: none; }
.sentbtn { display: inline-flex; align-items: center; gap: 8px; min-height: 38px; padding: 0 14px; background: var(--forest); color: #fff; border-radius: 2px; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }

/* ---- calendari: anteprima dell'importazione e squadra in attesa del PDF ---- */
table.calimp td { vertical-align: middle; }
table.calimp td.file { font-weight: 600; overflow-wrap: anywhere; min-width: 220px; }
table.calimp td.file svg { vertical-align: -6px; margin-right: 8px; color: var(--forest); }
table.calimp .tag.state { font-size: 13px; letter-spacing: 0; text-transform: none; font-weight: 600; padding: 4px 10px; }
table.calimp tr.has-sub > td { border-bottom: 0; }
table.calimp tr.sub > td { padding-top: 0; padding-left: 46px; }
table.calimp tr.sub li { margin-bottom: 2px; }
table.calimp td.act { text-align: right; white-space: nowrap; }
table.calimp td.act form { margin: 0; }
.waitbox { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; padding: 20px 24px; border-left: 6px solid var(--gold); }
.waitbox > div { flex: 1 1 380px; }
.adm-main .waitbox h2 { font: 700 italic 26px/28px 'Barlow Condensed', sans-serif; text-transform: uppercase; margin: 0 0 4px; }
.waitbox p { margin: 0; font-size: 15px; line-height: 22px; }
.waitbox form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; margin: 0; }
.waitbox .field { margin: 0; }

/* ---- calendari: anteprima dell'importazione a larghezza telefono ---- */
@media (max-width: 600px) {
  table.calimp td.file { min-width: 130px; }
  table.calimp tr.sub > td { padding-left: 16px; }
  table.calimp tr.sub ul { position: sticky; left: 16px; max-width: calc(100vw - 64px); }
}
/* ---- famiglie: contorno di focus leggibile sulla barra verde del carrello ---- */
.cartbar :focus-visible { outline-color: #fff; }

/* ---- Pagine di testo del sito (Chi siamo, Vieni a giocare, Dove siamo, Sponsor, Contatti) ---- */
.prose h2 { font-size: 30px; line-height: 32px; margin: 36px 0 10px; }
.prose ul:not([class]) { padding-left: 22px; margin: 0 0 1em; }
.prose li { margin-bottom: 6px; }
.prose .row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.previewbar { background: var(--gold); color: var(--ink); padding: 10px 16px; text-align: center; font-size: 15px; line-height: 22px; }
.previewbar a { color: var(--ink); font-weight: 700; }
.gymlist { list-style: none; margin: 24px 0 0; padding: 0; display: grid; gap: 8px; }
.gymlist li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; padding: 14px 16px; background: #fff; border: 1px solid var(--hairline); border-radius: var(--radius); }
.gymlist b { display: block; font: 700 24px/26px 'Barlow Condensed', sans-serif; text-transform: uppercase; letter-spacing: .02em; }
.gymlist span { display: block; color: var(--muted); font-size: 16px; line-height: 22px; }
.gymlist .btn { display: inline-flex; align-items: center; gap: 8px; }
.contactbox { margin: 24px 0 0; padding: 4px 18px; background: #fff; border: 1px solid var(--hairline); border-radius: var(--radius); }
.contactbox > div { padding: 14px 0; border-bottom: 1px solid var(--hairline); }
.contactbox > div:last-child { border-bottom: 0; }
.contactbox dt { font-size: 13px; line-height: 16px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin-bottom: 4px; }
.contactbox dd { margin: 0; font-size: 19px; line-height: 26px; }
.spgrid { list-style: none; margin: 28px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.spgrid li, .splogos li { margin: 0; }
.spgrid a, .spgrid .sp-static { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; height: 100%; min-height: 150px; padding: 16px; background: #fff; border: 1px solid var(--hairline); border-radius: var(--radius); color: var(--ink); text-decoration: none; text-align: center; }
.spgrid a:hover { border-color: var(--forest); }
.spgrid img { display: block; max-width: 100%; max-height: 80px; object-fit: contain; }
.sp-name { font-size: 15px; line-height: 20px; font-weight: 600; }
.sp-text { font: 700 24px/26px 'Barlow Condensed', sans-serif; text-transform: uppercase; }
.sponsors-band { background: #fff; border-top: 1px solid var(--hairline); padding: 40px 0; }
.sponsors-band .eyebrow { margin: 0 0 16px; }
.splogos { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; }
.splogos a, .splogos .sp-static { display: flex; align-items: center; justify-content: center; min-width: 96px; min-height: 56px; color: var(--ink); text-decoration: none; }
.splogos img { display: block; max-height: 56px; max-width: 160px; object-fit: contain; }
.sp-admin > li { align-items: flex-start; flex-wrap: wrap; }
.sp-thumb { flex: 0 0 120px; height: 80px; display: flex; align-items: center; justify-content: center; background: #fff; border: 1px solid var(--hairline); border-radius: var(--radius); }
.sp-thumb img { max-width: 108px; max-height: 68px; object-fit: contain; }
.sp-edit { flex: 1 1 360px; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.sp-edit .row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; }
.sp-edit .field { margin: 0; }
.sp-edit .row form { margin: 0; }
@media (max-width: 640px) {
  .prose h2 { font-size: 26px; line-height: 28px; }
  .contactbox dd { font-size: 18px; }
  .sponsors-band { padding: 28px 0; }
  .gymlist .btn { width: 100%; justify-content: center; }
}
