/* ==========================================================================
   Genovaciclabile - tema grafico
   Caricato dopo Style.css / pushy.css / demo.css nelle master desktop e mobile.
   Colori dal marchio: Lanterna (inchiostro), onda (azzurro mare),
   fascio di luce (giallo). Prototipo di riferimento: /Prototipo (repository).
   ========================================================================== */

:root {
    --gc-ink: #13212e;
    --gc-ink-soft: #4a5a6a;
    --gc-sea: #1592d1;
    --gc-sea-dark: #0f6fa3;
    --gc-sea-light: #e6f4fb;
    --gc-light: #f6c744;
    --gc-bg: #f4f7fa;
    --gc-card: #ffffff;
    --gc-border: #dde5ec;
    --gc-radius: 14px;
    --gc-shadow: 0 2px 6px rgba(19, 33, 46, .06), 0 8px 24px rgba(19, 33, 46, .06);
    --gc-font: 'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --gc-font-title: 'Outfit', 'Roboto', system-ui, sans-serif;
}

/* ---------- Base ---------- */

body.gc-body {
    margin: 0;
    font-family: var(--gc-font);
    font-size: 17px;
    line-height: 1.55;
    color: var(--gc-ink);
    background: var(--gc-bg);
    -webkit-font-smoothing: antialiased;
}

.gc-body td { font-size: inherit; font-family: inherit; }
.gc-body a { color: var(--gc-sea-dark); }
.gc-body h1, .gc-body h2, .gc-body h3 { font-family: var(--gc-font-title); line-height: 1.2; color: var(--gc-ink); }

.gc-icon { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex: none; vertical-align: middle; }

/* ---------- Banner animato (su tutte le pagine) ---------- */

.gc-bannerband {
    background: #fff;             /* l'animazione ha lo sfondo bianco: la fascia si fonde */
    border-bottom: 1px solid var(--gc-border);
    text-align: center;
    overflow: hidden;
}
.gc-bannerband__frame { display: inline-block; width: 600px; height: 250px; overflow: hidden; vertical-align: top; }
.gc-bannerband iframe { display: block; width: 600px; height: 250px; border: 0; transform-origin: 0 0; }

/* ---------- Barra superiore: marchio + login ---------- */

.gc-topbar {
    position: sticky; top: 0; z-index: 50;
    background: rgba(255, 255, 255, .97);
    border-bottom: 1px solid var(--gc-border);
    box-shadow: 0 1px 0 rgba(19, 33, 46, .02);
}
.gc-topbar__inner { display: flex; align-items: center; gap: 16px; max-width: 1440px; margin: 0 auto; padding: 8px 24px; min-height: 60px; }

.gc-brand { display: inline-flex; align-items: center; gap: 10px; color: var(--gc-ink) !important; font-family: var(--gc-font-title); font-weight: 700; font-size: 22px; letter-spacing: -.01em; text-decoration: none !important; white-space: nowrap; }
.gc-brand img { height: 40px; width: auto; }
.gc-brand b { color: var(--gc-sea); font-weight: 700; }

/* Controllo ULogin (barra sempre visibile, ristilizzata) */
.gc-login { margin-left: auto; font-size: 15px; }
.gc-login > div { height: auto !important; }
.gc-login table { width: auto !important; height: auto !important; border-collapse: collapse; }
.gc-login table tr + tr { display: none; }              /* riga vuota di impaginazione */
.gc-login td { padding: 0 4px; white-space: nowrap; width: auto !important; color: var(--gc-ink-soft); }
.gc-topbar .gc-login input[type="text"],
.gc-topbar .gc-login input[type="password"],
.gc-topbar .gc-login input[type="email"] {
    width: 170px !important;
    padding: 7px 10px;
    border: 1px solid var(--gc-border) !important;
    border-radius: 8px;
    background: #fff !important;
    font: 15px var(--gc-font);
    color: var(--gc-ink);
}
.gc-topbar .gc-login input[type="text"]:focus,
.gc-topbar .gc-login input[type="password"]:focus { outline: 2px solid var(--gc-sea-light); border-color: var(--gc-sea) !important; }
.gc-login input[type="checkbox"] { accent-color: var(--gc-sea); }
.gc-login a { color: var(--gc-sea-dark); text-decoration: none; }
.gc-login a:hover { text-decoration: underline; }
.gc-login input[type="image"] { vertical-align: middle; }

/* Pulsanti */
.gc-btn,
input.gc-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 8px 18px; border-radius: 999px; border: 1px solid transparent;
    font: 500 15px var(--gc-font); line-height: 1.2; cursor: pointer; white-space: nowrap;
    text-decoration: none !important;
    -webkit-appearance: none; appearance: none;
}
.gc-btn--primary { background: var(--gc-sea); color: #fff !important; }
.gc-btn--primary:hover { background: var(--gc-sea-dark); }
.gc-btn--ghost { background: #fff; color: var(--gc-ink) !important; border-color: #b9c8d6; }
.gc-btn--ghost:hover { border-color: var(--gc-sea); color: var(--gc-sea-dark) !important; }
.gc-btn--light { background: var(--gc-light); color: var(--gc-ink) !important; }

/* Popup "credenziali errate" (ModalPopupExtender) */
.modalBackground { background: rgba(19, 33, 46, .55); }
.modalPopup { background: #fff; border-radius: var(--gc-radius); box-shadow: var(--gc-shadow); padding: 20px; max-width: 520px; }
.modalPopup .pp2 { background: #fff3f0 !important; color: #8a1f00; font-size: 17px !important; padding: 16px; border-radius: 10px; }

/* ---------- Layout desktop: menu a sinistra + contenuto ---------- */

.gc-layout {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 24px;
    max-width: 1440px;
    margin: 24px auto 0;
    padding: 0 24px;
    align-items: start;
}

.gc-content {
    background: var(--gc-card);
    border: 1px solid var(--gc-border);
    border-radius: var(--gc-radius);
    box-shadow: var(--gc-shadow);
    padding: 28px;
    min-height: 400px;
    overflow-x: auto;                 /* le tabelle larghe delle pagine non rompono il layout */
}
.gc-content img { max-width: 100%; height: auto; }
.gc-content iframe { max-width: 100%; }
/* In homepage le card stanno direttamente sullo sfondo (niente "card nella card") */
.gc-content:has(> .gc-home-grid),
.gc-content:has(> .gc-pagehead),
.gc-content:has(> .gc-card),
.gc-content:has(> .gc-chips) { background: none; border: 0; box-shadow: none; padding: 0; }

/* Menu verticale (MainMenu.ascx, markup #cssmenu invariato) */
.gc-sidebar { min-width: 0; }   /* il menu scorre con la pagina: niente barra di scorrimento interna */
.gc-sidebar #cssmenu {
    width: auto;
    background: var(--gc-card);
    border: 1px solid var(--gc-border);
    border-radius: var(--gc-radius);
    box-shadow: var(--gc-shadow);
    padding: 8px;
    font-family: var(--gc-font);
    color: var(--gc-ink);
}
.gc-sidebar #cssmenu > ul > li > a {
    display: flex; align-items: center; justify-content: space-between;
    padding: 10px 14px;
    border: 0 !important;
    border-radius: 10px;
    background: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    color: var(--gc-ink) !important;
    font-size: 15px; font-weight: 500;
    line-height: 1.3;
}
.gc-sidebar #cssmenu > ul > li > a:hover,
.gc-sidebar #cssmenu > ul > li.open > a { background: var(--gc-sea-light) !important; color: var(--gc-sea-dark) !important; }
.gc-sidebar #cssmenu > ul > li.has-sub > a::after {
    content: ''; width: 7px; height: 7px; flex: none; margin-left: 8px;
    border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
    transform: rotate(45deg); transition: transform .2s; opacity: .6;
}
.gc-sidebar #cssmenu > ul > li.has-sub.open > a::after { transform: rotate(-135deg); }
/* separatore tra le voci fisse e le sezioni dinamiche */
.gc-sidebar #cssmenu > ul > li.has-sub:first-of-type { margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--gc-border); }
.gc-sidebar #cssmenu ul ul { padding: 2px 0 6px 8px; }
.gc-sidebar #cssmenu ul ul li a {
    padding: 6px 14px;
    border: 0 !important;
    border-radius: 8px;
    background: none !important;
    color: var(--gc-ink-soft) !important;
    font-size: 14px; font-weight: 400; line-height: 1.35;
}
.gc-sidebar #cssmenu ul ul li a:hover { background: var(--gc-bg) !important; color: var(--gc-sea-dark) !important; }

/* ---------- Footer ---------- */

.gc-footer { background: var(--gc-ink); color: #c4d0db; margin-top: 48px; padding: 40px 0 20px; font-size: 15px; }
.gc-footer a { color: #fff !important; text-decoration: none; }
.gc-footer a:hover { text-decoration: underline; }
.gc-footer__inner { max-width: 1440px; margin: 0 auto; padding: 0 24px; }
.gc-footer__cols { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 32px; }
.gc-footer h4 { color: #fff; margin: 0 0 10px; font-size: 14px; text-transform: uppercase; letter-spacing: .06em; font-family: var(--gc-font); }
.gc-footer ul { list-style: none; margin: 0; padding: 0; }
.gc-footer li { padding: 3px 0; }
.gc-footer .gc-brand { color: #fff !important; }
.gc-social { display: flex; gap: 10px; margin-top: 14px; }
.gc-social a { display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; border-radius: 10px; background: rgba(255, 255, 255, .08); }
.gc-social a:hover { background: var(--gc-sea); text-decoration: none; }
.gc-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .12); margin-top: 28px; padding-top: 14px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 14px; }

/* ---------- Homepage (Index.aspx) ---------- */

.gc-home-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.gc-card {
    display: flex; flex-direction: column;
    background: var(--gc-card); border: 1px solid var(--gc-border); border-radius: var(--gc-radius);
    box-shadow: var(--gc-shadow); padding: 22px;
}
.gc-card__head { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.gc-card__icon { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 12px; background: var(--gc-sea-light); color: var(--gc-sea-dark); flex: none; }
.gc-card h2 { font-size: 19px; margin: 0; }
.gc-home-grid .gc-card ul { list-style: none; margin: 0 0 14px; padding: 0; flex: 1; }
.gc-home-grid .gc-card li { padding: 9px 0; border-top: 1px solid var(--gc-border); font-size: 15px; line-height: 1.4; }
.gc-home-grid .gc-card li:first-child { border-top: 0; }
.gc-home-grid .gc-card li a { color: var(--gc-ink) !important; text-decoration: none; }
.gc-home-grid .gc-card li a:hover { color: var(--gc-sea-dark) !important; text-decoration: underline; }
.gc-home-grid .gc-card li.is-past a { color: var(--gc-ink-soft) !important; }
.gc-more { display: inline-flex; align-items: center; gap: 6px; font-weight: 500; font-size: 15px; text-decoration: none !important; }

.gc-home-feature { margin-top: 28px; }
.gc-home-feature > h2 { font-size: 26px; margin: 0 0 14px; }
.gc-home-feature .gc-card { padding: 28px; overflow-x: auto; }
.gc-home-feature .gc-card img { max-width: 100%; height: auto; border-radius: 8px; }

/* Contenuto dinamico da CMS (Home.html): tipografia leggibile */
.gc-richtext { max-width: 75ch; }
.gc-richtext h1 { font-size: 28px; margin: 28px 0 12px; }
.gc-richtext h1:first-child { margin-top: 0; }
.gc-richtext h2 { font-size: 23px; margin: 24px 0 10px; }
.gc-richtext p { margin: 0 0 14px; }

/* ==========================================================================
   Componenti per le pagine interne (Giro di Zena, itinerari, eventi...)
   ========================================================================== */

/* Intestazione di pagina: titolo, testo, pulsanti, immagine facoltativa */
.gc-pagehead {
    display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 24px;
    padding: 28px; margin-bottom: 28px;
    border-radius: var(--gc-radius);
    background: linear-gradient(135deg, #e6f4fb 0%, #f7fbfe 60%, #fff 100%);
    border: 1px solid var(--gc-border);
}
.gc-pagehead__eyebrow { display: inline-block; margin-bottom: 8px; padding: 3px 10px; border-radius: 999px; background: #fff; border: 1px solid var(--gc-border); color: var(--gc-sea-dark); font-size: 13px; font-weight: 500; }
.gc-body .gc-pagehead h1 { font-size: clamp(28px, 4vw, 40px); margin: 0 0 8px; letter-spacing: -.01em; }
.gc-pagehead p { margin: 0 0 18px; color: var(--gc-ink-soft); max-width: 62ch; }
.gc-pagehead__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.gc-pagehead__media img { display: block; max-width: 220px; max-height: 180px; width: auto; height: auto; }

/* Blocchi con titolo */
.gc-block { margin-bottom: 32px; }
.gc-body .gc-block > h2 { font-size: 22px; margin: 0 0 14px; text-align: left; }

/* Tessere cliccabili (illustrazione + titolo + descrizione) */
.gc-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 16px; list-style: none; margin: 0; padding: 0; }
.gc-tile {
    display: flex; align-items: flex-start; gap: 14px;
    padding: 16px;
    background: var(--gc-card); border: 1px solid var(--gc-border); border-radius: var(--gc-radius);
    box-shadow: var(--gc-shadow);
    color: var(--gc-ink) !important; text-decoration: none !important;
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.gc-tile:hover { transform: translateY(-2px); border-color: var(--gc-sea); box-shadow: 0 10px 28px rgba(19, 33, 46, .12); }
.gc-tile img { width: 56px; height: 56px; object-fit: contain; flex: none; margin: 0 !important; }
.gc-tile__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.gc-tile__body strong { font-family: var(--gc-font-title); font-size: 17px; font-weight: 700; line-height: 1.25; }
.gc-tile__body span { font-size: 14px; line-height: 1.45; color: var(--gc-ink-soft); }
.gc-tile--accent { border-color: var(--gc-sea); background: linear-gradient(135deg, #fff 0%, #f0f8fd 100%); }

/* Domande frequenti a fisarmonica (li.q / li.a, gestite da jQuery nella pagina) */
.gc-faq { list-style: none; margin: 0; padding: 0; }
.gc-faq li { list-style: none; }
.gc-faq li.q {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 14px 4px; border-top: 1px solid var(--gc-border);
    font-weight: 500; font-size: 16px; cursor: pointer; background: none !important;
}
.gc-faq li.q:first-child { border-top: 0; }
.gc-faq li.q::after { content: ''; width: 8px; height: 8px; flex: none; border-right: 2px solid var(--gc-ink-soft); border-bottom: 2px solid var(--gc-ink-soft); transform: rotate(45deg); }
.gc-faq li.q:hover { color: var(--gc-sea-dark); }
.gc-faq li.a { display: none; padding: 0 4px 16px; color: var(--gc-ink-soft); font-weight: 400; line-height: 1.6; }

/* Messaggio di stato evidenziato */
.gc-notice { display: block; padding: 12px 16px; border-radius: 10px; background: #fff4d6; color: #7a5600; font-weight: 500; }
.gc-notice:empty { display: none; }

/* Barra di collegamenti rapidi (pillole con icona) */
.gc-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: -12px 0 24px; }
.gc-chips a {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 6px 14px 6px 8px; border-radius: 999px;
    background: #fff; border: 1px solid var(--gc-border);
    color: var(--gc-ink) !important; font-size: 14px; font-weight: 500; text-decoration: none !important;
}
.gc-chips a:hover { border-color: var(--gc-sea); color: var(--gc-sea-dark) !important; }
.gc-chips img { width: 26px; height: 26px; object-fit: contain; margin: 0 !important; }

/* Indicatori numerici */
.gc-kpis { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; }
.gc-kpi {
    display: flex; align-items: center; gap: 14px;
    padding: 16px 18px; background: var(--gc-card); border: 1px solid var(--gc-border); border-radius: var(--gc-radius);
    box-shadow: var(--gc-shadow); font-size: 15px; line-height: 1.4;
}
.gc-kpi img { width: 48px; height: 48px; object-fit: contain; flex: none; margin: 0 !important; }
.gc-kpi--wide img { width: 72px; height: auto; }

/* Giro di Zena: selettore del giro, legenda, griglia */
.gdz-select { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; color: var(--gc-ink-soft); }
.gdz-select select { width: auto !important; min-width: 220px; max-width: 100%; }
.gdz-select > div, .gdz-select > span { display: inline-block; }
.gdz-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; list-style: none; margin: 0 0 14px; padding: 0; font-size: 13px; color: var(--gc-ink-soft); }
.gdz-legend li { display: inline-flex; align-items: center; gap: 6px; }
.gdz-swatch { display: inline-flex !important; width: 30px; height: 22px !important; padding: 0 !important; border: 1px solid var(--gc-border) !important; border-radius: 5px; font-size: 12px; justify-content: center; align-items: center; }
.gdz-grid-card { padding: 18px; }
.gdz-grid > br { display: none; }
.gdz-meta { margin: 8px 0 0; font-size: 12px; color: #9aa7b4; display: flex; gap: 12px; }
/* Tabelle generate dal code-behind (elenco tappe da compilare, ecc.) */
.gdz-table { padding: 0; overflow-x: auto; }
.gdz-table table { width: 100%; border-collapse: collapse; font-size: 15px; }
.gdz-table td, .gdz-table th { padding: 10px 12px; border: 0 !important; border-bottom: 1px solid var(--gc-border) !important; vertical-align: middle; }
.gdz-table tr:first-child td { font-weight: 500; font-size: 14px; }
.gdz-table tr:last-child td { border-bottom: 0 !important; }
.gdz-table img { vertical-align: middle; max-height: 32px; width: auto; margin: 0 2px !important; }
.gdz-table a { font-weight: 500; }
/* Modulo di compilazione tappa (GdzModifyItemMulti): righe a fasce con i colori di sezione */
.gdz-formcard { padding: 10px; overflow-x: auto; }
.gdz-form { width: 100%; border-collapse: separate; border-spacing: 0 6px; }
.gdz-form > tbody > tr > td { padding: 10px 14px; vertical-align: middle; }
.gdz-form > tbody > tr > td:first-child { width: 170px; font-weight: 500; border-radius: 10px 0 0 10px; }
.gdz-form > tbody > tr > td:last-child { border-radius: 0 10px 10px 0; }
.gdz-form table { border-collapse: collapse; }
.gdz-form table td { padding: 4px 6px; }
.gdz-form input[type="image"] { max-height: 60px; width: auto; vertical-align: middle; }.gdz-demo { text-align: center; }
.gdz-demo img { max-width: 100%; height: auto; border-radius: 8px; }
.gc-kpi strong { font-family: var(--gc-font-title); font-size: 22px; color: var(--gc-ink); }
/* Moduli */
.gc-form { padding: 24px; }
.gc-form__row { display: flex; flex-direction: column; gap: 6px; margin-bottom: 18px; }
.gc-form__row > label { font-weight: 500; }
.gc-form__row small, .gc-form__row label small { color: var(--gc-ink-soft); font-weight: 400; font-size: 13px; }
.gc-form__row input[type="text"], .gc-form__row textarea, .gc-form__row select { width: 100%; max-width: 560px; }
.gc-form__checks { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; }
.gc-check { display: inline-flex; align-items: center; gap: 6px; }
.gc-check label { margin-left: 4px; }
.gc-form__img { height: 44px; width: auto; }
.gc-form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 6px 0 12px; }

/* Tabelle di dati scritte nel markup (Repeater) */
.gc-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.gc-table th { background: var(--gc-sea-light); color: var(--gc-ink); font-weight: 500; text-align: left; padding: 10px 12px; }
.gc-table td { padding: 10px 12px; border-bottom: 1px solid var(--gc-border); vertical-align: middle; }
.gc-table tr:last-child td { border-bottom: 0; }
.gc-table img { max-width: 100%; height: auto; border-radius: 6px; }

/* Impaginazioni a tabella ereditate: senza larghezze fisse */
.gdz-legacy { width: 100%; border-collapse: collapse; }
.gdz-legacy > tbody > tr > td { padding: 6px 4px; }

/* Radio e istruzioni del Giro di Zena */
.gdz-radio { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 18px; align-items: start; }
.gdz-radio iframe { display: block; width: 100%; min-height: 360px; border: 0; }
.gdz-radio__side { display: flex; flex-direction: column; gap: 8px; font-size: 14px; }
.gdz-radio__side img { width: 100%; height: auto; border-radius: 10px; margin-bottom: 4px; }
.gdz-guide { line-height: 1.65; }
.gdz-guide h4 { font-family: var(--gc-font-title); font-size: 20px; margin: 22px 0 8px; text-decoration: none !important; }
.gdz-guide h4 em { font-style: normal; }
.gdz-guide img { display: block; margin: 12px 0; border: 1px solid var(--gc-border); border-radius: 8px; }
.gdz-guide hr { border: 0; border-top: 1px solid var(--gc-border); margin: 22px 0; }
/* Elenco tracce caricate nella tappa (UGDZ_TrackList / UGDZ_TrackItem) */
.gdz-tracks { font-size: 14px; table-layout: fixed; border-color: var(--gc-border) !important; }
.gdz-tracks td { padding: 4px 8px; text-align: center; overflow: hidden; }
/* Intestazione e righe sono tabelle separate: stesse proporzioni per allineare le colonne */
.gdz-tracks td:nth-child(1) { width: 16% !important; }
.gdz-tracks td:nth-child(2) { width: 28% !important; }
.gdz-tracks td:nth-child(3) { width: 26% !important; }
.gdz-tracks td:nth-child(4), .gdz-tracks td:nth-child(5) { width: 15% !important; }
.gdz-tracks--head td { font-size: 12px; font-weight: 500; color: var(--gc-ink-soft); }
.gdz-tracks input[type="image"] { max-height: 26px; width: auto; vertical-align: middle; }
.gdz-tracklist { margin-top: 6px; }
/* Compila tappa: attesa mentre l'utente lavora nella finestra di Strava (ViewStrava) */
.gdz-strava-wait { display: block; max-width: 620px; margin: 0 auto; text-align: center; border-top: 4px solid #fc4c02; }
.gdz-strava-wait__tag { display: inline-block; padding: 3px 12px; border-radius: 999px; background: #fff1ea; color: #d94000; font-size: 13px; font-weight: 500; }
.gdz-strava-wait__tag:empty { display: none; }
.gc-body .gdz-strava-wait h2 { margin: 10px 0 14px; font-size: 24px; }
.gdz-strava-steps { list-style: none; counter-reset: gdz-step; max-width: 460px; margin: 0 auto 18px; padding: 0; text-align: left; }
.gdz-strava-steps li { counter-increment: gdz-step; position: relative; padding: 8px 0 8px 44px; font-size: 16px; line-height: 1.45; }
.gdz-strava-steps li::before {
    content: counter(gdz-step);
    position: absolute; left: 0; top: 6px;
    display: flex; align-items: center; justify-content: center;
    width: 30px; height: 30px; border-radius: 50%;
    background: var(--gc-sea-light); color: var(--gc-sea-dark); font-size: 15px; font-weight: 700;
}
.gdz-strava-wait__status { display: inline-flex; align-items: center; gap: 10px; padding: 8px 16px; border-radius: 999px; background: var(--gc-bg); font-weight: 500; }
.gdz-strava-spinner { width: 18px; height: 18px; border: 3px solid #ffd9c7; border-top-color: #fc4c02; border-radius: 50%; animation: gdz-spin .8s linear infinite; }
@keyframes gdz-spin { to { transform: rotate(360deg); } }
.gdz-strava-wait__hint { margin: 18px 0 10px; font-size: 14px; color: var(--gc-ink-soft); }
.gdz-strava-wait__actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.gdz-btn-strava { background: #fc4c02; color: #fff !important; }
.gdz-btn-strava:hover { background: #d94000; }
.gdz-strava-wait input.gc-btn--ghost { border: 1px solid #b9c8d6; background: #fff; }
/* Heatmap: legenda sotto la mappa */
.gdz-heatlegend { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 12px 28px; margin-top: 16px; padding: 16px 20px; }
.gdz-heatlegend__count { display: flex; align-items: baseline; gap: 8px; }
.gdz-heatlegend__count strong { font-family: var(--gc-font-title); font-size: 28px; line-height: 1; color: var(--gc-sea-dark); }
.gdz-heatlegend__count > span { color: var(--gc-ink-soft); font-size: 15px; }
.gdz-heatlegend__keys { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 15px; }
.gdz-heatlegend__keys > span { display: inline-flex; align-items: center; gap: 8px; }
.gdz-heatlegend__keys i { display: inline-block; width: 26px; height: 5px; border-radius: 3px; }
.gdz-heatlegend__scale small { color: var(--gc-ink-soft); font-size: 13px; }
.gdz-heatlegend__scale i { width: 120px; height: 10px; border-radius: 5px; background: linear-gradient(90deg, #2e9d3a, #f5d000, #e53935); }
.gdz-heatlegend__credit { margin-left: auto; color: var(--gc-ink-soft); font-size: 12px; }
/* Sbulacchi: elenco a schede e descrizione */
.gdz-sbul-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 16px; }
.gc-card.gdz-sbul { padding: 0; overflow: hidden; color: var(--gc-ink); text-decoration: none; transition: transform .15s, box-shadow .15s; }
.gc-card.gdz-sbul:hover { transform: translateY(-2px); box-shadow: 0 4px 10px rgba(19, 33, 46, .08), 0 12px 28px rgba(19, 33, 46, .08); }
.gdz-sbul__img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; background: var(--gc-sea-light); }
.gdz-sbul__body { display: flex; flex-direction: column; gap: 6px; padding: 12px 16px 16px; }
.gdz-sbul__body strong { font-family: var(--gc-font-title); font-size: 17px; line-height: 1.25; }
.gdz-sbul__stats { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 14px; color: var(--gc-ink-soft); }
.gdz-sbul__stats b { color: var(--gc-ink); }
.gdz-sbul__status { align-self: flex-start; padding: 3px 12px; border-radius: 999px; background: #fff4d6; color: #7a5600; font-size: 13px; font-weight: 500; }
.gdz-sbul__status.is-done { background: #e6f6ec; color: #1a7a45; }
.gdz-sbul-info p { margin: 0 0 12px; }
.gdz-sbul-info blockquote { margin: 0 0 14px; padding: 10px 16px; border-left: 4px solid var(--gc-sea); border-radius: 0 10px 10px 0; background: var(--gc-sea-light); font-style: italic; }
.gdz-sbul-info .gc-notice { margin: 4px 0 0; font-weight: 400; font-size: 15px; }
/* Pagine dinamiche (Dynamic/DynamicPageViewer): il contenuto dell'editor non deve superare la card */
.gc-dynpage { display: block; overflow-wrap: break-word; }
.gc-dynpage__eyebrow { margin: 0 0 14px; padding-bottom: 10px; border-bottom: 1px solid var(--gc-border); color: var(--gc-ink-soft); font-size: 14px; font-weight: 500; }
.gc-dynpage__body img, .gc-dynpage__body video, .gc-dynpage__body iframe { max-width: 100%; height: auto; }
.gc-dynpage__body iframe { aspect-ratio: 16 / 9; }
.gc-dynpage__body table { max-width: 100%; }
.gc-dynpage__body pre { white-space: pre-wrap; }
/* Icona grande nell'intestazione delle sezioni senza illustrazione */
.gc-pagehead__icon { display: inline-flex; align-items: center; justify-content: center; width: 128px; height: 128px; border-radius: 32px; background: #fff; color: var(--gc-sea); box-shadow: var(--gc-shadow); }
.gc-pagehead__icon .gc-icon { width: 64px; height: 64px; }
/* Riga di crediti in fondo alle pagine */
.gc-credit { margin: 24px 0 0; color: var(--gc-ink-soft); font-size: 14px; text-align: center; }

/* Itinerari: scheda del singolo itinerario (Tracks/UTRK_ViewTrip) */
.gc-card.trk-view { display: block; }
.trk-trip h2 { margin: 26px 0 10px; font-size: 20px; }
.gc-body .trk-title { margin: 0 0 16px; font-size: clamp(24px, 3.4vw, 32px); }
.trk-facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; margin: 0; }
.trk-facts > div { padding: 10px 14px; border: 1px solid var(--gc-border); border-radius: 12px; background: var(--gc-bg); }
.trk-facts dt { color: var(--gc-ink-soft); font-size: 13px; }
.trk-facts dd { margin: 2px 0 0; font-weight: 500; }
.trk-facts .ratingStar { margin: 4px 0 0; }
.trk-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.trk-actions img { width: 22px; height: 22px; }
.trk-edit:not(:has(span)) { display: none; }
.trk-map { display: block; width: 100%; height: 500px; border: 1px solid var(--gc-border); border-radius: 12px; }
.trk-slides { margin: 0 auto; max-width: 620px; }
.trk-graph { margin-top: 20px; overflow-x: auto; }
.trk-share, .trk-interest { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 18px; }
.trk-share textarea { flex: 1 1 260px; min-width: 0; padding: 7px 10px; border: 1px solid var(--gc-border); border-radius: 8px; font: 14px var(--gc-font); resize: none; }
.trk-interest > span { font-weight: 500; }
.trk-disclaimer { display: flex; gap: 12px; align-items: flex-start; margin-top: 22px; font-weight: 400; font-size: 14px; }
.trk-disclaimer img { flex: none; width: 40px; height: auto; }
/* Eventi: elenco a schede (Calendar/EVN_View) e dettaglio (EVN_ViewSingle) */
.evn-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.gc-card.evn-card { padding: 0; overflow: hidden; color: var(--gc-ink); text-decoration: none; transition: transform .15s, box-shadow .15s; }
.gc-card.evn-card:hover { transform: translateY(-2px); box-shadow: 0 4px 10px rgba(19, 33, 46, .08), 0 12px 28px rgba(19, 33, 46, .08); }
.evn-card__img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: var(--gc-sea-light); }
.evn-card__body { display: flex; flex-direction: column; gap: 6px; padding: 12px 16px 16px; }
.evn-card__date { color: var(--gc-sea-dark); font-size: 13px; font-weight: 500; }
.evn-card__date::first-letter { text-transform: uppercase; }
.evn-card__body strong { font-family: var(--gc-font-title); font-size: 18px; line-height: 1.25; }
.evn-card__text { color: var(--gc-ink-soft); font-size: 14px; line-height: 1.45; }
.evn-card__badge { align-self: flex-start; padding: 2px 10px; border-radius: 999px; background: #eef1f4; color: var(--gc-ink-soft); font-size: 12px; font-weight: 500; }
.evn-card--past .evn-card__img { filter: grayscale(.6); opacity: .85; }
.gc-body .evn-single__title { margin: 0 0 14px; font-size: clamp(24px, 3.4vw, 32px); }
.evn-single__when { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 16px; }
.evn-single__when > div { padding: 8px 14px; border: 1px solid var(--gc-border); border-radius: 12px; background: var(--gc-bg); }
.evn-single__when dt { color: var(--gc-ink-soft); font-size: 13px; }
.evn-single__when dd { margin: 2px 0 0; font-weight: 500; }
.evn-single__img { display: block; max-width: 100%; height: auto; margin: 0 0 16px; border-radius: 12px; }
/* Cicloposteggi (Ciclabili/CPR_MainView) */
.cpr-kpis { margin-top: 16px; grid-template-columns: repeat(2, minmax(0, 160px)); }
.cpr-kpis .gc-kpi { padding: 10px 14px; box-shadow: none; }
.cpr-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr); gap: 16px; margin-top: 18px; }
.gc-card.cpr-mapcard { padding: 8px; }
.cpr-map { width: 100%; height: 540px; border-radius: 10px; }
.cpr-listcard { padding: 16px; }
.cpr-listcard h2 { margin: 0 0 10px; font-size: 18px; }
.cpr-list { max-height: 470px; overflow-y: auto; margin: 0 -6px; }
.cpr-item { display: flex; align-items: center; gap: 10px; padding: 6px; border-radius: 8px; }
.cpr-item:hover { background: var(--gc-bg); }
.cpr-item__icon { flex: none; width: 24px; height: auto; }
.cpr-item__name { flex: 1; min-width: 0; font-size: 14px; color: var(--gc-ink); text-decoration: none; }
.cpr-item__name:hover { color: var(--gc-sea-dark); text-decoration: underline; }
.cpr-item__map { width: 28px; height: auto; }
.cpr-layout + .gc-block { margin-top: 28px; }
.cpr-help__ways { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; margin: 6px 0 12px; }
.cpr-help__ways > div { padding: 12px 16px; border-radius: 12px; background: var(--gc-bg); }
.cpr-help__ways ol { margin: 6px 0 0; padding-left: 20px; }
@media (max-width: 900px) {
    .cpr-layout { grid-template-columns: minmax(0, 1fr); }
    .cpr-map { height: 380px; }
    .cpr-list { max-height: 320px; }
}
/* Mappe ciclabili (Ciclabili/MainView) */
.gc-card.map-subway { display: block; position: relative; overflow-x: auto; margin-bottom: 16px; }
.map-subway .subway-map { position: relative; }   /* le etichette del plugin sono posizionate in modo assoluto */
.map-layout { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(0, 2fr); gap: 16px; align-items: start; }
.map-list h2, .map-detail h2 { margin: 0 0 10px; font-size: 18px; }
.map-detail h3 { margin: 16px 0 8px; font-size: 16px; }
.map-list__item { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 6px; border-bottom: 1px solid var(--gc-border); color: var(--gc-ink); text-decoration: none; font-size: 15px; }
.map-list__item:last-child { border-bottom: 0; }
.map-list__item:hover { color: var(--gc-sea-dark); background: var(--gc-bg); }
.map-list__item img { width: 26px; height: auto; flex: none; }
.map-detail { display: block; }
.map-detail__map { width: 100%; height: 420px; border-radius: 10px; }
.map-detail__empty { margin: 0; color: var(--gc-ink-soft); }
@media (max-width: 900px) {
    .map-layout { grid-template-columns: minmax(0, 1fr); }
    .map-detail__map { height: 340px; }
}
/* Contenuti: elenco delle pagine per sezione (Dynamic/DynamicPagesSectionViewer) */
.dyn-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.gc-card.dyn-card { gap: 4px; padding: 14px 16px; color: var(--gc-ink); text-decoration: none; transition: border-color .15s, transform .15s; }
.gc-card.dyn-card:hover { border-color: var(--gc-sea); transform: translateY(-1px); }
.dyn-card strong { font-family: var(--gc-font-title); font-size: 17px; line-height: 1.25; }
.dyn-card span { color: var(--gc-ink-soft); font-size: 14px; line-height: 1.4; }
.dyn-card small { color: var(--gc-ink-soft); font-size: 11px; word-break: break-all; }
/* Barra di ricerca (Search/USearchBar) */
.gc-search { display: flex; align-items: center; gap: 10px; max-width: 520px; margin-top: 16px; }
.gc-content .gc-search input[type="text"] { flex: 1; min-width: 0; width: auto; padding: 10px 14px; border-radius: 999px; font-size: 16px; }
.gc-search__btn { flex: none; width: 40px; height: 40px; }
/* Moduli semplici (accesso, registrazione, recupero password) */
.gc-card.gc-formcard { display: block; max-width: 560px; }
.gc-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.gc-field > label, .gc-field > .gc-field__label { font-weight: 500; }
.gc-field__hint { color: var(--gc-ink-soft); font-size: 13px; }
.gc-field__error { color: #c63b1d; font-size: 14px; }
.gc-field__error:empty { display: none; }
.gc-field__captcha { display: block; width: 200px; height: 100px; border: 1px solid var(--gc-border); border-radius: 8px; }
.gc-field--check { flex-direction: row; align-items: center; gap: 8px; }
.gc-formcard__actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 6px 0 12px; }
/* Registrazione (Login/NewUser) */
.reg-layout { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; align-items: start; }
.reg-layout h2 { margin: 0 0 10px; font-size: 20px; }
.gc-card.reg-google, .gc-card.reg-form { display: block; max-width: none; }
.reg-google__g { width: 17px; height: 19px; vertical-align: middle; }
.reg-google__btn { display: block; height: 45px; width: auto; margin: 12px 0 16px; }
.reg-privacy textarea { width: 100% !important; box-sizing: border-box; }
.reg-privacy { padding: 12px 14px; border: 1px solid #e6d8a7; border-radius: 10px; background: #fffbe6; font-size: 14px; }
/* Risultati della ricerca (Search/Search, USearchResItem) */
.gc-card.srch-results { display: block; }
.gc-body .srch-results h1 { margin: 0 0 12px; font-size: 26px; }
.srch-status { display: block; margin-bottom: 12px; color: var(--gc-ink-soft); font-weight: 500; }
.srch-status:empty { display: none; }
.srch-item { display: flex; flex-direction: column; gap: 2px; padding: 12px 0; border-bottom: 1px solid var(--gc-border); }
.srch-item:last-child { border-bottom: 0; }
.srch-item__title { font-family: var(--gc-font-title); font-size: 18px; font-weight: 600; }
.srch-item__url { color: #1a7a45; font-size: 13px; word-break: break-all; }
.srch-item__section { color: var(--gc-ink-soft); font-size: 14px; }
/* Analisi attivita' (GPXAnalysis): titoli, esempi, attivita' degli utenti, visualizzatore, condivisione */
.gc-body .ana-title { margin: 0 0 10px; font-size: clamp(22px, 3vw, 28px); }
.ana-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; margin-top: 14px; }
.gc-card.ana-card { padding: 0; overflow: hidden; color: var(--gc-ink); text-decoration: none; transition: transform .15s, box-shadow .15s; }
.gc-card.ana-card:hover { transform: translateY(-2px); box-shadow: 0 4px 10px rgba(19, 33, 46, .08), 0 12px 28px rgba(19, 33, 46, .08); }
.ana-card__img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: var(--gc-sea-light); }
.ana-card strong { padding: 12px 16px 14px; font-family: var(--gc-font-title); font-size: 17px; }
.ana-list { display: grid; gap: 10px; margin-top: 14px; }
.gc-card.ana-row { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 18px; padding: 14px 18px; color: var(--gc-ink); text-decoration: none; }
.gc-card.ana-row:hover { border-color: var(--gc-sea); }
.ana-row__main { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 260px; }
.ana-row__main strong { font-family: var(--gc-font-title); font-size: 17px; overflow-wrap: anywhere; }
.ana-row__note { color: var(--gc-ink-soft); font-size: 14px; }
.ana-row__note:empty { display: none; }
.ana-row__stats { display: flex; flex-wrap: wrap; gap: 4px 16px; color: var(--gc-ink-soft); font-size: 14px; }
.ana-row__stats b { color: var(--gc-ink); }
.gc-card.ana-viewer, .gc-card.ana-details, .gc-card.ana-sharebox, .gc-card.ana-msg, .gc-card.ana-share { display: block; margin-bottom: 16px; }
.ana-viewer__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.ana-viewer__bar .ana-title { margin: 0; }
.ana-switch { display: inline-flex; padding: 3px; border-radius: 999px; background: var(--gc-bg); border: 1px solid var(--gc-border); }
.ana-switch input { position: absolute; opacity: 0; pointer-events: none; }
.ana-switch label { padding: 6px 16px; border-radius: 999px; font-size: 14px; font-weight: 500; cursor: pointer; }
.ana-switch input:checked + label { background: #fff; color: var(--gc-sea-dark); box-shadow: 0 1px 3px rgba(19, 33, 46, .15); }
.ana-viewer__opts { margin: 4px 0 10px; font-size: 15px; }
.ana-viewer__opts input { margin-right: 6px; }
.ana-map { width: 100%; height: 460px; border-radius: 10px; }
.ana-map3d { display: block; width: 100%; height: 600px; border: 0; border-radius: 10px; }
.ana-hint { margin: 8px 0 0; color: var(--gc-ink-soft); font-size: 13px; }
.ana-viewer__3d a { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; }
.ana-viewer__3d img { width: 32px; height: auto; }
.ana-details { overflow-x: auto; }
.ana-sharectl h2 { margin: 0 0 6px; font-size: 20px; }
.ana-sharectl__row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 10px 0; }
.ana-sharectl__row input[type="image"] { width: 34px; height: auto; }
.ana-sharectl__label { min-width: 70px; font-weight: 500; }
.gc-content .ana-sharectl__row input[type="text"] { flex: 1 1 240px; min-width: 0; width: auto; }
.ana-share { max-width: 640px; text-align: center; margin: 0 auto 16px; }
.ana-share__img { display: block; max-width: 100%; height: auto; margin: 12px auto; border-radius: 12px; }
.ana-share__actions { justify-content: center; }
@media (max-width: 700px) {
    .ana-map { height: 360px; }
    .ana-map3d { height: 420px; }
    .ana-map--mobile { width: 100% !important; }
}
/* Video incorporati a tutta larghezza (16:9) */
.gc-video { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; background: #000; }
.gc-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.trk-card span { color: var(--gc-ink-soft); }
/* Itinerari: ricerca (TRK_SimpleSearch, TRK_Search) */
.trk-search { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 1fr); gap: 16px; align-items: start; }
.gc-card.trk-search__filters, .gc-card.trk-search__results, .gc-card.trk-search__preview { display: block; }
.trk-search__filters { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 0 16px; }
.trk-search__filters .gc-formcard__actions { grid-column: 1 / -1; }
.trk-search__results h2, .trk-search__preview h2 { margin: 0 0 8px; font-size: 18px; }
.trk-search__preview { margin-top: 16px; }
.trk-radio { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 15px; }
.trk-radio input { margin-right: 4px; }
.trk-results { list-style: none; margin: 0; padding: 0; max-height: 520px; overflow-y: auto; }
.trk-res { display: flex; align-items: center; gap: 8px; padding: 6px 4px; border-bottom: 1px solid var(--gc-border); }
.trk-res:last-child { border-bottom: 0; }
.trk-res.is-selected { background: var(--gc-sea-light); }
.trk-res__title { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--gc-ink); text-decoration: none; font-size: 15px; }
.trk-res__title:hover { color: var(--gc-sea-dark); text-decoration: underline; }
.trk-res__color { flex: none; width: 15px; height: 15px; border-radius: 4px; }
.trk-imagemap { overflow-x: auto; }
.trk-imagemap img { max-width: none; }   /* le aree cliccabili seguono le dimensioni originali dell'immagine */
.gc-card.trk-details { position: relative; }
.trk-details__close { position: absolute; top: 14px; right: 14px; width: 32px; height: auto; }
.trk-res__prev { flex: none; padding: 2px; border: 0; background: none; cursor: pointer; }
.trk-res__prev img { width: 24px; height: auto; }
.trk-preview { width: 100% !important; height: 520px !important; }
.trk-preview iframe { width: 100%; height: 100%; border: 1px solid var(--gc-border); border-radius: 10px; }
@media (max-width: 900px) {
    .trk-search { grid-template-columns: minmax(0, 1fr); }
    .trk-preview { height: 380px !important; }
}
/* Itinerari: proposta di un nuovo itinerario (TRK_Create) */
.gc-card.gc-formcard.trk-form { max-width: 900px; }
.trk-form .gc-content input[type="text"], .trk-form input[type="text"] { width: 100%; max-width: 100%; }
.trk-form .ratingStar { margin: 2px 0; }
.trk-upload { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.trk-form__delete { color: #c63b1d !important; }
.gc-card.trk-media { display: block; margin-top: 16px; }
/* Cicloposteggio singolo (Ciclabili/CPR_ViewSingle) */
.gc-card.cpr-single { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 20px; align-items: start; }
.cpr-single__photo img { display: block; width: 100%; height: auto; border-radius: 12px; background: var(--gc-sea-light); }
.cpr-single__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 0 14px; }
.cpr-single__gmap img { width: 22px; height: 22px; border-radius: 4px; }
.cpr-single a.aspNetDisabled { display: none; }
.gc-content .cpr-single input[disabled], .gc-content .cpr-single textarea[disabled], .gc-content .cpr-single select[disabled] { background: var(--gc-bg); color: var(--gc-ink); opacity: 1; }
@media (max-width: 800px) { .gc-card.cpr-single { grid-template-columns: minmax(0, 1fr); } }
/* Pagine di gestione con il markup originale (contenitore .gc-legacy): tabelle a tutta larghezza,
   niente colonne laterali vuote 20%/60%/20%, campi che non sforano, distanziatori nascosti */
.gc-card.gc-legacy { display: block; overflow-x: auto; }
.gc-body .gc-legacy__title { margin: 0 0 14px; font-size: clamp(22px, 3vw, 28px); }
.gc-legacy table { width: 100%; border-collapse: collapse; }
.gc-legacy td, .gc-legacy th { padding: 6px; vertical-align: middle; }
.gc-legacy th { text-align: left; font-weight: 500; color: var(--gc-ink-soft); font-size: 14px; border-bottom: 1px solid var(--gc-border); }
.gc-legacy td[style*="width: 20%"], .gc-legacy td[style*="width: 10%"], .gc-legacy td[style*="width: 16%"] { width: 1% !important; padding: 0; }
.gc-legacy td[style*="width: 60%"], .gc-legacy td[style*="width: 80%"] { width: auto !important; }
.gc-legacy input[type="text"], .gc-legacy input[type="password"], .gc-legacy input[type="email"], .gc-legacy textarea, .gc-legacy select { max-width: 100%; }
.gc-legacy input[type="image"] { vertical-align: middle; max-height: 44px; width: auto; }
.gc-legacy input[type="submit"], .gc-legacy input[type="button"] { padding: 7px 16px; border: 1px solid #b9c8d6; border-radius: 999px; background: #fff; color: var(--gc-ink); font: 500 14px var(--gc-font); cursor: pointer; }
.gc-legacy input[type="submit"]:hover, .gc-legacy input[type="button"]:hover { border-color: var(--gc-sea); color: var(--gc-sea-dark); }
.gc-legacy hr { border: 0; border-top: 1px solid var(--gc-border); margin: 16px 0; }
.gc-legacy img[src*="images_home/200.png"], .gc-legacy img[src*="images_home/400.png"],
.gc-legacy img[src*="images_home/500.png"], .gc-legacy img[src*="images_home/600.png"] { display: none; }
.gc-legacy #map { max-width: 100%; }
@media (max-width: 700px) {
    .gc-legacy table, .gc-legacy tbody, .gc-legacy tr, .gc-legacy td { display: block; width: auto !important; }
    .gc-legacy thead { display: none; }
    .gc-legacy td { padding: 4px 0; text-align: left !important; }
    .gc-legacy input[type="text"], .gc-legacy textarea, .gc-legacy select { width: 100% !important; }
    .gc-legacy #map { width: 100% !important; }
}
/* Pagina d'errore e mappa Zona 30 */
.gc-card.err-card { display: block; max-width: 820px; margin: 0 auto; }
.err-card__img { display: block; width: 220px; max-width: 60%; height: auto; margin: 0 auto 12px; }
.err-card h2 { margin: 20px 0 8px; font-size: 18px; }
.err-card__msg { font-weight: 500; overflow-wrap: anywhere; }
.err-card__stack { max-height: 320px; overflow: auto; padding: 12px; border-radius: 10px; background: var(--gc-bg); font-size: 12px; white-space: pre-wrap; overflow-wrap: anywhere; }
.gc-card.zona30-map { display: block; padding: 8px; }
.zona30-map iframe { display: block; width: 100%; height: 560px; border: 0; border-radius: 10px; }
.zona30-map .ana-hint { margin: 8px 6px 4px; }
@media (max-width: 700px) { .zona30-map iframe { height: 420px; } }
/* Analisi attivita': dettagli sotto la mappa (UTrackDetails, UClimbGraphAnal, UClimbGraphChart) */
.gc-body .ana-sec__title { margin: 24px 0 12px; font-size: 21px; }
.ana-details > .ana-sec__title:first-child, .ana-details > h2:first-child { margin-top: 0; }
.ana-sec { margin-top: 8px; }
.ana-sec__grid { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(0, 2.4fr); gap: 16px; align-items: start; }
.ana-panel { padding: 14px; border: 1px solid var(--gc-border); border-radius: 12px; background: #fff; min-width: 0; }
.ana-panel h3 { margin: 0 0 10px; font-size: 16px; }
.ana-panel .chart-container-percsal { margin: 0 auto; }
.ana-telemetry-ctl { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; font-size: 14px; color: var(--gc-ink-soft); }
.ana-telemetry-ctl input[type="range"] { flex: 1 1 160px; }
.ana-sec__img { display: block; max-width: 100%; height: auto; margin: 0 auto 12px; }
.ana-stats { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px; margin: 8px 0 16px; }
.ana-stats > div { padding: 8px 12px; border: 1px solid var(--gc-border); border-radius: 10px; background: var(--gc-bg); }
.ana-stats dt { color: var(--gc-ink-soft); font-size: 12px; line-height: 1.3; }
.ana-stats dd { margin: 2px 0 0; font-weight: 500; font-size: 15px; }
.ana-sec__note { margin: 0 0 12px; font-weight: 400; font-size: 14px; }
.ana-desc { margin-bottom: 10px; }
.ana-desc:empty { display: none; }
.ana-tablewrap { overflow-x: auto; }
.ana-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.ana-table th { padding: 8px; text-align: left; font-weight: 500; color: var(--gc-ink-soft); border-bottom: 2px solid var(--gc-border); white-space: nowrap; }
.ana-table td { padding: 8px; border-bottom: 1px solid var(--gc-border); width: auto !important; text-align: left !important; }
.ana-table tr:first-child td { font-weight: 500; color: var(--gc-ink-soft); }
.ana-tablewrap .ana-table tr:first-child td { font-weight: 400; color: inherit; }
.ana-table--narrow { max-width: 560px; margin: 8px auto 16px; }
.ana-table img { max-height: 28px; width: auto; }
.ana-climb { text-align: center; }
.ana-climb__img { max-width: 100%; height: auto; }
.ana-climb__sel:empty { display: none; }
.ana-roulette { text-align: center; margin-bottom: 8px; }
.ana-roulette div.roulette { max-width: 100%; }
.ana-roulette div.roulette img { max-width: 100%; height: auto; }
@media (max-width: 900px) { .ana-sec__grid { grid-template-columns: minmax(0, 1fr); } }
/* ---------- Stile di base del contenuto di tutte le pagine ---------- */

.gc-content input[type="text"],
.gc-content input[type="password"],
.gc-content input[type="email"],
.gc-content input[type="number"],
.gc-content input[type="date"],
.gc-content input[type="datetime-local"],
.gc-content input[type="search"],
.gc-content select,
.gc-content textarea {
    max-width: 100%;
    padding: 8px 10px;
    border: 1px solid #c9d6e2; border-radius: 8px;
    background-color: #fff;
    font: 16px var(--gc-font); color: var(--gc-ink);
}
.gc-content input[type="text"]:focus,
.gc-content input[type="password"]:focus,
.gc-content input[type="email"]:focus,
.gc-content input[type="number"]:focus,
.gc-content select:focus,
.gc-content textarea:focus { outline: 2px solid var(--gc-sea-light); border-color: var(--gc-sea); }
.gc-content input[type="submit"]:not(.gc-btn),
.gc-content input[type="button"]:not(.gc-btn) {
    padding: 8px 16px; border: 1px solid var(--gc-sea); border-radius: 999px;
    background-color: var(--gc-sea); color: #fff;
    font: 500 15px var(--gc-font); cursor: pointer;
}
.gc-content input[type="submit"]:not(.gc-btn):hover,
.gc-content input[type="button"]:not(.gc-btn):hover { background-color: var(--gc-sea-dark); }
.gc-content input[type="checkbox"], .gc-content input[type="radio"] { accent-color: var(--gc-sea); }

/* Griglie dati (asp:GridView genera table[rules="all"]) */
.gc-content table[rules="all"] { border-collapse: collapse; border: 1px solid var(--gc-border) !important; border-radius: 10px; overflow: hidden; font-size: 15px; }
.gc-content table[rules="all"] th { background: var(--gc-sea-light); color: var(--gc-ink); font-weight: 500; text-align: left; padding: 10px 12px; border-color: var(--gc-border) !important; }
.gc-content table[rules="all"] td { padding: 8px 12px; border-color: var(--gc-border) !important; }
.gc-content table[rules="all"] tr:nth-child(even) td { background: #fafcfe; }
/* ---------- Desktop stretto (finestre < 900 px con la master desktop) ---------- */

@media (max-width: 900px) {
    .gc-layout { grid-template-columns: 1fr; }
    .gc-sidebar { position: static; max-height: none; }
    .gc-topbar__inner { flex-wrap: wrap; }
    .gc-login { margin-left: 0; width: 100%; }
    .gc-login table tr:first-child { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }   /* niente voci nascoste: vanno a capo */
}

/* ==========================================================================
   Master mobile
   ========================================================================== */

.gc-mobile .gc-mheader {
    position: sticky; top: 0; z-index: 1001;
    display: flex; align-items: center; gap: 8px;
    height: 58px; padding: 0 12px;
    background: rgba(255, 255, 255, .97);
    border-bottom: 1px solid var(--gc-border);
}
.gc-mobile .gc-mheader .gc-brand { font-size: 19px; margin: 0 auto; }
.gc-mobile .gc-mheader .gc-brand img { height: 34px; }
.gc-mobile .menu-btn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 42px; height: 42px; margin: 0; padding: 0;
    border: 0; border-radius: 10px; background: none; color: var(--gc-ink); cursor: pointer;
}
.gc-mobile .menu-btn:hover { background: var(--gc-sea-light); opacity: 1; }
.gc-mobile .gc-mheader__spacer { width: 42px; flex: none; }

.gc-mobile .site-header { padding: 0; text-align: center; z-index: 10; }
.gc-mobile .gc-loginbar { background: #fff; border-bottom: 1px solid var(--gc-border); padding: 14px 16px; }
.gc-mobile .gc-login { margin: 0; }

/* Modulo di login mobile (UloginW.ascx) */
.gc-mlogin { max-width: 480px; margin: 0 auto; text-align: left; font-size: 15px; }
.gc-mlogin__fields { display: grid; gap: 8px; margin-bottom: 10px; }
.gc-mlogin input[type="text"],
.gc-mlogin input[type="password"],
.gc-mlogin input[type="email"] {
    width: 100%; box-sizing: border-box;
    padding: 11px 14px;
    border: 1px solid #c9d6e2; border-radius: 10px; background: #fff;
    font: 16px var(--gc-font);              /* 16px: evita lo zoom automatico di iOS */
    color: var(--gc-ink);
}
.gc-mlogin input[type="text"]:focus,
.gc-mlogin input[type="password"]:focus { outline: 2px solid var(--gc-sea-light); border-color: var(--gc-sea); }
.gc-mlogin__row { display: flex; align-items: center; gap: 10px; margin-top: 8px; }
.gc-mlogin__row .gc-btn { flex: 1; padding-top: 10px; padding-bottom: 10px; }
.gc-mlogin__remember { display: inline-flex; align-items: center; gap: 6px; color: var(--gc-ink-soft); white-space: nowrap; }
.gc-mlogin__remember input { width: 18px; height: 18px; accent-color: var(--gc-sea); }
.gc-mlogin__error { display: block; margin-top: 6px; color: #b42318; }
.gc-mlogin__error:empty { display: none; }
.gc-mlogin__user { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--gc-ink-soft); }
.gc-mlogin__user strong { color: var(--gc-ink); }
.gc-mobile #container { padding: 16px 12px 0; }
.gc-mobile .gc-content { padding: 18px; }

/* Menu a scomparsa (pushy) */
.gc-mobile .pushy { width: min(86vw, 320px); background: #fff; font-family: var(--gc-font); }
.gc-mobile .pushy-left { transform: translate3d(-100%, 0, 0); }
.gc-mobile.pushy-open-left .pushy-left { transform: translate3d(0, 0, 0); box-shadow: 0 0 40px rgba(19, 33, 46, .25); }
.gc-mobile.pushy-open-left #container,
.gc-mobile.pushy-open-left .push { transform: none; }        /* il contenuto resta fermo sotto l'overlay */
.gc-mobile .pushy ul:first-child { margin-top: 0; }
.gc-mobile .pushy-content > ul { padding: 8px 0 24px; }
.gc-mobile .pushy a,
.gc-mobile .pushy-submenu > button {
    display: block; width: 100%;
    padding: 12px 20px;
    color: var(--gc-ink) !important;
    font: 400 16px var(--gc-font);
    text-align: left; text-decoration: none;
}
.gc-mobile .pushy a:hover,
.gc-mobile .pushy-submenu > button:hover { background: var(--gc-sea-light); color: var(--gc-sea-dark) !important; }
.gc-mobile .pushy-submenu > button { font-weight: 500; }
.gc-mobile .pushy-submenu:first-of-type { border-top: 1px solid var(--gc-border); margin-top: 6px; padding-top: 6px; }
.gc-mobile .pushy-submenu > ul a { padding-left: 32px; font-size: 15px; color: var(--gc-ink-soft) !important; }
.gc-mobile .site-overlay { background-color: rgba(19, 33, 46, .45) !important; }

@media (max-width: 700px) {
    .gc-pagehead { grid-template-columns: 1fr; padding: 20px; }
    .gc-pagehead__media { order: -1; }
    .gc-pagehead__media img { max-width: 160px; max-height: 120px; }
    .gc-pagehead__media:has(.gc-pagehead__icon) { display: none; }
    .gc-tiles { grid-template-columns: 1fr; }
    .gdz-radio { grid-template-columns: 1fr; }
    .gdz-grid-card { padding: 8px; }
    .gdz-legend { font-size: 12px; gap: 4px 10px; margin-bottom: 10px; }
    .gdz-swatch { width: 24px; height: 18px !important; font-size: 10px; }
    .gc-chips { gap: 6px; }
    .gc-chips a { font-size: 13px; padding: 4px 10px 4px 6px; }
    .gc-chips img { width: 22px; height: 22px; }
    .gc-home-grid { grid-template-columns: 1fr; }
    .gc-footer__cols { grid-template-columns: 1fr 1fr; }
    .gc-home-feature .gc-card { padding: 18px; }
    .gc-home-feature > h2 { font-size: 22px; }
}

@media (max-width: 460px) {
    .gc-footer__cols { grid-template-columns: 1fr; }
}

/* ---------- Smartphone: tabelle impilabili e modulo tappa ---------- */
@media (max-width: 700px) {
    /* .gc-stack: ogni riga diventa una scheda; etichette da data-label (impostate da theme.js) */
    .gc-stack { padding: 0; }
    .gc-stack .gc-stack__table,
    .gc-stack .gc-stack__table > tbody,
    .gc-stack .gc-stack__table > tbody > tr,
    .gc-stack .gc-stack__table > tbody > tr > td { display: block; width: auto !important; }
    .gc-stack .gc-stack__table > tbody > tr.gc-stack__head { display: none; }
    .gc-stack .gc-stack__table > tbody > tr {
        display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px;
        padding: 14px 16px; border-bottom: 1px solid var(--gc-border);
    }
    .gc-stack .gc-stack__table > tbody > tr:last-child { border-bottom: 0; }
    .gc-stack .gc-stack__table > tbody > tr > td { padding: 0 !important; border: 0 !important; font-size: 14px; min-width: 0; overflow-wrap: anywhere; }
    .gc-stack .gc-stack__table > tbody > tr > td::before {
        content: attr(data-label); display: block; margin-bottom: 1px;
        font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: .03em; color: var(--gc-ink-soft);
    }
    .gc-stack .gc-stack__table > tbody > tr > td:first-child { grid-column: 1 / -1; font-family: var(--gc-font-title); font-size: 17px; font-weight: 700; }
    .gc-stack .gc-stack__table > tbody > tr > td:first-child::before { display: none; }
    .gc-stack .gc-stack__table > tbody > tr > td:last-child { grid-column: 1 / -1; }
    .gc-stack .gc-stack__table > tbody > tr > td[data-label=""]::before { display: none; }

    /* Modulo di compilazione tappa: righe e tabelle interne in verticale */
    .gdz-formcard { padding: 6px; }
    .gdz-form,
    .gdz-form > tbody,
    .gdz-form > tbody > tr,
    .gdz-form > tbody > tr > td,
    .gdz-form table:not(.gdz-keep),
    .gdz-form table:not(.gdz-keep) > tbody,
    .gdz-form table:not(.gdz-keep) > tbody > tr,
    .gdz-form table:not(.gdz-keep) > tbody > tr > td { display: block; width: auto !important; height: auto !important; }
    .gdz-form > tbody > tr { margin-bottom: 6px; padding: 8px 0; border-radius: 10px; }
    .gdz-form > tbody > tr > td { padding: 4px 12px !important; border-radius: 0 !important; }
    .gdz-form > tbody > tr > td:first-child { width: auto !important; }
    .gdz-form input[type="text"] { width: 100% !important; max-width: 100%; }
    .gdz-form input[type="file"] { max-width: 100%; font-size: 13px; }
    .gdz-form .gdz-keep:not(.gdz-tracks) td { width: 50% !important; text-align: center; vertical-align: top; }
    .gc-content #map, .gc-content #elevation-div { width: 100% !important; }
    .gc-dynpage { padding: 16px; }
    .trk-map { height: 360px; }
    .trk-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .trk-facts > div { padding: 8px 10px; }
    .gc-dynpage__body table { display: block; overflow-x: auto; width: auto !important; }
    .gc-dynpage__body [style*="width"] { max-width: 100%; }
    /* Immagini distanziatrici (images_home/200.png, 400.png) di molte pagine vecchie: su smartphone allargherebbero la pagina */
    img[src$="images_home/200.png"], img[src$="images_home/400.png"] { display: none; }
    .gdz-form * { max-width: 100%; }
    .gdz-form .gdz-tracks td { display: table-cell !important; padding: 4px 4px; }
    .gdz-form .gdz-tracks input[type="image"] { max-width: none; }   /* con max-width:100% le icone in celle auto si riducono a 0 */
    /* Elenco tappe: griglia a 4 colonne (nome | km+data | sport+mobilita' | modalita'+recupero | traccia, foto, stato, modifica) */
    .gc-stack--tappe .gc-stack__table > tbody > tr { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .gc-stack--tappe .gc-stack__table > tbody > tr > td { grid-column: span 2; }
    .gc-stack--tappe .gc-stack__table > tbody > tr > td:nth-child(1) { grid-column: 1 / -1; }
    .gc-stack--tappe .gc-stack__table > tbody > tr > td:nth-child(n+8) { grid-column: span 1; text-align: center; }
    .gc-stack--tappe .gc-stack__table > tbody > tr > td:nth-child(4),
    .gc-stack--tappe .gc-stack__table > tbody > tr > td:nth-child(5) { padding: 4px 8px !important; border-radius: 8px; }
    .gc-stack--tappe img { max-height: 30px; }

    /* Vecchie tabelle di impaginazione del Giro di Zena: in verticale (filtri, pulsanti e mappe a tutta larghezza) */
    .gdz-legacy, .gdz-legacy > tbody, .gdz-legacy > tbody > tr, .gdz-legacy > tbody > tr > td { display: block; width: auto !important; height: auto !important; }
    .gdz-legacy > tbody > tr > td { padding: 4px 0; text-align: left !important; }
    .gdz-legacy select { width: 100% !important; }
}