/* Grafica del sito: pagina bianca, card #f3f7fc e titolo delle gare #e7eef7. */
@font-face{font-family:AICSManrope;src:url('/assets/fonts/manrope-latin-400-700.woff2') format('woff2');font-style:normal;font-weight:400 700;font-display:swap}
:root{--blue:#1f5fae;--blue-dark:#273746;--muted:#475569;--line:#d9e1e7;--paper:#fff;--radius:12px;--shadow:none;--race-border:#8095ac;--race-title-bg:#e7eef7;--race-body-bg:#f3f7fc}
body{background:#fff;font-family:AICSManrope,Arial,sans-serif;font-size:16px;line-height:1.55;color:#273746}
body.public-page{background:#fff}
.public-page :is(.contact-card,.contact-email,.document-card,.calendar-panel,.calendar-pdf,.sponsor,.empty-state,.province-form,.privacy-text,.auth-card){background:var(--race-body-bg)}
.top-strip{height:auto;min-height:40px;background:#fff;color:var(--blue);border-top:3px solid var(--blue);border-bottom:1px solid var(--line)}
.top-strip .shell{height:auto;min-height:40px;padding-block:8px;font-size:14px;letter-spacing:1px;gap:20px}
.top-strip .shell span:last-child{font-size:14px;color:var(--muted)}
.brand>span{font-size:14px}.brand>span>span{font-size:18px}
.site-header nav{gap:6px}
.site-header .nav-link,.site-header .admin-link{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:92px;min-height:67px;padding:8px 3px;background:#f3f7fc;border:1px solid #bfcee0;border-radius:9px;color:var(--blue);font-size:14px;line-height:1.4;font-weight:600}
.site-header .nav-link .icon,.site-header .admin-link .icon{width:20px;height:20px}
.site-header .nav-link.is-active{background:var(--blue);border-color:var(--blue);color:#fff}
.site-header .nav-link.is-active:after{display:none}
.site-header .nav-link:hover,.site-header .admin-link:hover{background:#e8f0fa;border-color:#8aa6c7;color:var(--blue)}
.site-header .nav-link.is-active:hover{background:var(--blue);color:#fff}
.public-page .page-intro h1{font-family:inherit;font-size:36px;font-weight:700;line-height:1.2}
.public-page .page-intro h1 em{font-style:normal;font-weight:700}
.public-page :is(.eyebrow,.intro-copy,.season-form label,.side-caption,.calendar-weekdays,.calendar-legend,.calendar-hint,.side-contact,.list-heading p,.count-chip,.badge,.past-label,.organizer-line,.race-heading>p,.race-date>small,.race-facts dt,.race-facts dd,.turn-detail p,.race-links a,.calendar-pdf,.calendar-pdf span,.province-form,.clear-filter,.back-link,.document-tabs a,.document-card .eyebrow,.document-card p,.pdf-icon,.contact-card .eyebrow,.privacy-text,.empty-state p,.footer-inner p,.footer-inner strong,.footer-links,.field>label,.field small,.auth-secondary){font-size:14px}
.public-page :is(.intro-copy,.side-caption,.calendar-weekdays,.calendar-legend,.calendar-hint,.side-contact,.list-heading p,.count-chip,.past-label,.organizer-line,.race-heading>p,.race-date>small,.turn-previews small,.turn-detail p,.race-facts dt,.footer-inner p,.footer-links){color:var(--muted);font-weight:500;line-height:1.6}
.public-page .eyebrow{letter-spacing:1.2px}
.public-page .season-form select,.public-page .province-form select{font-size:16px;min-height:44px}
.public-page .race-layout{grid-template-columns:280px minmax(0,1fr);gap:32px}
.public-page .calendar-panel{padding:21px 17px;border:1px solid #b9c6d3;box-shadow:none}
.public-page .side-section-title,.public-page .sponsors .side-section-title{font-size:16px}
.public-page .calendar-heading h2{font-size:16px;white-space:nowrap}
.public-page .calendar-heading button{width:44px;height:44px;min-width:44px;font-size:26px}
.public-page .calendar-heading{gap:6px}
.public-page .calendar-weekdays,.public-page .calendar-days{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}
.public-page .calendar-days>*{height:44px;font-size:14px;min-width:0}
.public-page .calendar-days button{background:#fff6d1;border:1px solid var(--blue);color:var(--blue)}
.public-page .calendar-days button:hover{background:#fff0b5;color:var(--blue)}
.public-page .calendar-days button.selected,.public-page .calendar-days button.selected:hover{background:var(--blue);color:#fff}
.public-page .calendar-days .quiet-day{color:var(--muted)}
.public-page .race-list{gap:24px}
.public-page .race-card{border:2px solid var(--race-border);background:var(--race-body-bg);border-radius:12px;box-shadow:none}
.public-page .race-card:hover{border-color:#526f90}
.public-page .race-top{background:var(--race-title-bg);border-bottom:1px solid #c4cfd9}
.public-page .race-heading h2{font-size:24px;line-height:1.35}
.public-page .race-heading h2 a{display:inline-block;min-height:44px;padding-block:5px}
.public-page .race-date>span{font-family:inherit;font-size:33px;font-weight:600}
.public-page .race-eyebrow{gap:8px}
.public-page .badge{background:#fff;border:1px solid var(--blue);max-width:100%;overflow-wrap:anywhere}
.public-page .badge-green{border-color:#33715e;color:#33715e}
.public-page .badge-red{border-color:#a54831;color:#a54831}
.public-page .round-link{width:44px;height:44px;flex-shrink:0}
.public-page .organizer-line{flex-wrap:wrap;gap:4px 12px;overflow-wrap:anywhere}
.public-page .organizer-line>strong{font-weight:500;color:var(--muted)}
.public-page .turn-previews{background:var(--race-body-bg);border-top-color:var(--line);gap:16px}
.public-page .turn-previews>div{min-width:0;flex-basis:210px;padding:0}
.public-page .turn-previews>div+div{padding-left:0;border-left:0}
.public-page .turn-previews>div>span,.public-page .turn-previews small{font-size:14px;color:var(--muted)}
.public-page .turn-previews strong{font-size:18px;overflow-wrap:anywhere}
.public-page .race-details>summary{font-size:14px;color:var(--blue);min-height:48px;padding-block:13px}
.public-page .detail-content{font-size:14px}
.public-page .turn-detail h3{font-size:16px}
.public-page .turn-time{font-size:14px!important}
.public-page .race-facts>div{grid-template-columns:110px minmax(0,1fr)}
.public-page .race-facts dt,.public-page .race-facts dd{overflow-wrap:anywhere}
.public-page .race-links{gap:8px 18px;padding-block:9px}
.public-page .race-links a{min-height:44px;padding-block:10px;line-height:1.5;overflow-wrap:anywhere;max-width:100%}
.public-page .province-form{border:1px solid var(--line)}
.public-page .calendar-pdf{border:1px solid #8aa2bd;min-height:48px;line-height:1.5}
.public-page .calendar-pdf span{font-weight:600}
.public-page .empty-state h3,.public-page .contact-email h2{font-family:inherit;font-weight:700}
.public-page .document-card h2{font-size:16px}
.public-page .button,.public-page .button.small{font-size:14px;min-height:44px}
.public-page .contact-email{border:1px solid #b9c6d3;color:var(--ink)}
.public-page .contact-email .eyebrow{color:var(--blue)}
.public-page .contact-email>a{color:var(--blue);overflow-wrap:anywhere;border-color:var(--line)}
.public-page .contact-email>p:last-child{color:var(--muted);font-size:14px}
.public-page .contact-card a{font-size:16px;min-height:44px;overflow-wrap:anywhere}
.site-footer{background:#fff}
.public-page .races-column{scroll-margin-top:16px;min-width:0}
.public-page .footer-links{flex-wrap:wrap;gap:12px 20px}
.public-page .footer-links a{display:inline-flex;align-items:center;min-height:44px}
@media(max-width:960px){
 .site-header{position:sticky;top:-68px;z-index:20;box-shadow:0 3px 9px #173c5a0c}
 .header-inner{height:auto;display:block;position:relative;padding-block:0}
 .brand{height:68px;justify-content:center}
 .site-header nav{display:grid;position:static;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;background:#fff;padding:10px 0;border-top:1px solid var(--line);border-bottom:0;box-shadow:none;gap:6px}
 .site-header nav.menu-open{display:grid}
 .site-header .nav-link,.site-header .admin-link{min-width:0;margin:0;white-space:nowrap}
 .public-page .races-column{scroll-margin-top:178px}
 .skip-link{z-index:30}
}
@media(max-width:900px){
 .public-page .race-layout{display:block}
 .public-page .calendar-column{display:block;margin-bottom:30px}
 .public-page .calendar-panel{max-width:420px;margin:0 auto}
 .public-page .sponsors{max-width:420px;margin:22px auto 0}
 .public-page .sponsor-grid{grid-template-columns:1fr 1fr}
 .public-page .sponsor img{max-width:100%;max-height:56px}
 .public-page .side-contact{max-width:420px;margin:20px auto 0}
}
@media(max-width:600px){
 .shell{padding-inline:16px}
 .top-strip .shell{font-size:14px;letter-spacing:.5px;min-height:40px}.top-strip .shell span:last-child{display:none}
 .public-page .site-main{padding-top:24px}
 .public-page .page-intro h1{font-size:30px;letter-spacing:-.8px;max-width:none}
 .public-page .intro-copy{font-size:14px}
 .public-page .season-form{min-width:0;gap:12px}
 .public-page .season-form select{min-width:0;width:170px}
 .public-page .calendar-panel{padding:18px 12px}
 .public-page .race-top,.public-page .detail-page .race-top{padding:17px 16px;gap:12px;align-items:flex-start}
 .public-page .race-heading h2,.public-page .detail-page .race-heading h2{font-size:22px}
 .public-page .round-link{display:none}
 .public-page .race-date,.public-page .detail-page .race-date{width:52px;min-width:52px;padding-right:10px}
 .public-page .race-date>span,.public-page .detail-page .race-date>span{font-size:33px}
 .public-page .organizer-line{padding-inline:16px}
 .public-page .turn-previews{padding:14px 16px;gap:15px}
 .public-page .turn-previews>div{flex-basis:100%;width:100%;min-width:0}
 .public-page .detail-content,.public-page .detail-page .detail-content{padding:8px 16px 20px}
 .public-page .race-details>summary{padding-inline:16px}
 .public-page .race-facts>div{grid-template-columns:1fr;gap:4px}
 .public-page .race-links{padding-inline:16px;gap:4px 16px}
 .public-page .province-form{flex-direction:column;align-items:stretch}
 .public-page .province-form select{width:100%}
 .public-page .calendar-pdf{align-items:flex-start;overflow-wrap:anywhere}
 .public-page .document-card{padding:18px 16px;gap:14px}
 .public-page .document-card>.button{margin-left:0;min-height:44px;font-size:14px}
 .public-page .contact-email{padding:24px 20px}
 .public-page .contact-email h2{font-size:30px}
 .public-page .contact-card{padding:20px}
 body .field input:not([type=checkbox]),body .field select,body .field textarea,body .quick-entry textarea{font-size:16px}
}

/* intestazione: logo grande, senza testo ripetuto; su telefono tutto centrato */
.brand{gap:0}
.brand img{width:250px;height:auto}
.header-inner{height:auto;min-height:103px;padding-block:10px}
.privacy-text{white-space:normal;font-size:15px;line-height:1.7}
.privacy-text h2{font-size:18px;line-height:1.3;margin:28px 0 8px}
.privacy-text h2:first-child{margin-top:0}
.privacy-text p{margin:0 0 12px}
.privacy-text ul{margin:0 0 14px;padding-left:22px}
.privacy-text li{margin-bottom:6px}
@media(max-width:760px){
.top-strip .shell{justify-content:center;text-align:center}
.site-header{top:-124px}
.header-inner{padding-block:0}
.brand{justify-content:center;width:100%;height:124px;padding:6px 0;box-sizing:border-box}
.brand img{width:230px}
}

/* pagina documenti: bottoni grandi (schede e azioni) */
.public-page .document-tabs{gap:12px;margin-bottom:32px}
.public-page .document-tabs a[href]{display:inline-flex;align-items:center;justify-content:center;font-size:17px;font-weight:600;padding:14px 26px;min-height:54px;border-radius:9px;border:1px solid #8ea3b9;box-shadow:inset 0 0 0 1px #d6e0ea}
.public-page .document-card{flex-wrap:wrap;align-items:flex-start;row-gap:18px}
.public-page .document-card>div:nth-child(2){flex:1 1 calc(100% - 90px)}
.public-page .document-actions{flex-basis:100%;display:flex;flex-wrap:wrap;gap:12px;padding-left:71px}
.public-page .document-actions .button{min-height:46px;font-size:15px;padding:10px 20px;border-radius:9px;gap:9px;border-width:1px}
.public-page .document-actions .icon{width:19px;height:19px}
@media(max-width:760px){
.public-page .document-tabs{display:grid;grid-template-columns:1fr 1fr}
.public-page .document-tabs a[href]{padding:14px 10px;text-align:center}
.public-page .document-tabs a[href]:first-child{grid-column:1/-1}
.public-page .document-actions{padding-left:0}
.public-page .document-actions .button{flex:1 1 100%}
}

/* contorno più marcato, come le card delle gare; scritta in alto più grande e in grassetto */
.public-page .document-actions .button-light{border:1px solid #8ea3b9;box-shadow:inset 0 0 0 1px #d6e0ea}
.public-page .document-actions .button:not(.button-light){border:1px solid var(--blue);box-shadow:none}
.public-page .document-tabs a[href].selected{border-color:var(--blue);box-shadow:none}
.public-page .document-card{border:1px solid #8ea3b9;box-shadow:inset 0 0 0 1px #d6e0ea;border-radius:12px}
.public-page .document-card:hover{border-color:#6f89a6}
.top-strip .shell span:first-child{font-size:17px;font-weight:700;letter-spacing:1px}
@media(max-width:760px){
.top-strip .shell span:first-child{font-size:16px;letter-spacing:.6px}
}

/* pannello: schede di navigazione uguali a quelle della pagina Documenti */
.admin-page .admin-tabs{gap:12px;margin-bottom:32px}
.admin-page .admin-tabs a[href]{display:inline-flex;align-items:center;justify-content:center;font-size:17px;font-weight:600;padding:14px 26px;min-height:54px;border-radius:9px;border:1px solid #8ea3b9;box-shadow:inset 0 0 0 1px #d6e0ea}
.admin-page .admin-tabs a[href].selected{border-color:var(--blue);box-shadow:none}
@media(max-width:760px){
.admin-page .admin-tabs{display:grid;grid-template-columns:1fr 1fr}
.admin-page .admin-tabs a[href]{padding:14px 10px;text-align:center}
.admin-page .admin-tabs a[href]:first-child{grid-column:1/-1}
}

/* inserimento gara: casella di incolla compatta */
body .quick-entry textarea{min-height:120px;resize:vertical}

/* leggibilità: nessun testo sotto i 14 px, nel pannello come nella vetrina */
.public-page .province-form label{font-size:14px}
.admin-page :is(.eyebrow,.intro-copy,.season-form label,.side-caption,.calendar-weekdays,.calendar-legend,.calendar-hint,.side-contact,.list-heading p,.count-chip,.badge,.past-label,.organizer-line,.race-heading>p,.race-date>small,.race-facts dt,.race-facts dd,.turn-detail p,.race-links a,.calendar-pdf,.calendar-pdf span,.province-form,.clear-filter,.back-link,.document-tabs a,.document-card .eyebrow,.document-card p,.pdf-icon,.contact-card .eyebrow,.privacy-text,.empty-state p,.footer-inner p,.footer-inner strong,.footer-links,.field>label,.field small,.auth-secondary){font-size:14px}
.admin-page .turn-previews>div>span,.admin-page .turn-previews small{font-size:14px;color:var(--muted)}
.admin-page .turn-previews strong{font-size:18px}
.admin-page .race-details>summary{font-size:15px;min-height:48px;padding-block:13px}
.admin-page .detail-content,.admin-page .turn-time{font-size:14px!important}
.admin-page .turn-detail h3{font-size:16px}
.admin-page .race-heading h2{font-size:22px}
.admin-page .race-date>span{font-size:30px}
.admin-page .text-link{font-size:14px}
body.admin-page .eyebrow{font-size:14px;letter-spacing:.08em}
body.admin-page .admin-user span{font-size:14px}
body.admin-page .admin-user .button{font-size:14px;min-height:40px}
body.admin-page .button{font-size:15px;min-height:44px}
body.admin-page .button.small{font-size:14px;min-height:40px}
body.admin-page .admin-stats span{font-size:15px}
body.admin-page .dashboard-callout p:not(.eyebrow){font-size:16px}
body.admin-page .admin-toolbar p{font-size:15px}
body.admin-page .table-wrap th{font-size:14px;letter-spacing:.04em}
body.admin-page .table-wrap td{font-size:15px}
body.admin-page .table-wrap td strong{font-size:16px}
body.admin-page .table-wrap td small{font-size:14px}
body.admin-page .status{font-size:14px}
body.admin-page :is(input,select,textarea):not([type=checkbox]):not([type=file]){font-size:16px;min-height:44px}
body.admin-page textarea{min-height:0}
body.admin-page .field>label,body.admin-page .field label{font-size:15px}
body.admin-page label.checkbox{font-size:15px}
body.admin-page .field small,body.admin-page .form-note,body.admin-page .publish-panel small{font-size:14px;line-height:1.6}
body.admin-page .quick-entry-copy{font-size:16px}
body.admin-page .quick-actions span{font-size:14px}
body.admin-page .manual-fields>summary{font-size:16px;font-weight:600}
body.admin-page .manual-fields>summary span{font-size:14px}
body.admin-page .form-section-heading span{font-size:15px}
body.admin-page .form-section-heading p{font-size:15px}
body.admin-page .repeater-top strong{font-size:16px}
body.admin-page .remove-row{font-size:14px;min-height:40px}
body.admin-page .back-link{font-size:15px}
body.admin-page .quick-preview-title span{font-size:14px}
body.admin-page .notice{font-size:15px}
body.admin-page code{font-size:14px}
body.admin-page .table-wrap{position:relative}
