.bv{--bv-accent:#db4d2e;--bv-ink:#162523;--bv-line:#dae1dd;font:16px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--bv-ink);max-width:1000px;margin:32px auto;padding:28px;background:#fff;border-radius:16px;box-sizing:border-box}.bv *,.bv-admin *{box-sizing:border-box}.bv h2{font-size:clamp(25px,4vw,40px);line-height:1.15;margin:10px 0}.bv h3{margin-top:28px}.bv-tag{letter-spacing:.15em;font-size:12px;font-weight:800;color:var(--bv-accent)}.bv-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.bv label,.bv-admin label{display:block;font-size:14px;font-weight:600}.bv input,.bv select,.bv textarea{display:block;width:100%;padding:12px;border:1px solid var(--bv-line);border-radius:7px;font:inherit;background:#fff;margin:5px 0 14px}.bv input[type=checkbox]{display:inline;width:auto;margin:0 8px 0 0}.bv button,.bv-button{display:inline-block;background:#173d34;color:#fff;padding:13px 22px;border:0;border-radius:7px;font:600 16px system-ui;cursor:pointer;text-decoration:none}.bv button:disabled{opacity:.55;cursor:wait}.bv .bv-honey{position:absolute;left:-9999px;max-height:1px;overflow:hidden}.bv-note{font-size:14px;color:#54635d;padding:16px;background:#f4f6f3;border-radius:8px}.bv-check{margin:18px 0}.bv-result{font-weight:600;min-height:24px}.bv-card{background:#fff;border:1px solid #dce2de;border-radius:10px;padding:20px;margin:22px 0}.bv-page{max-width:900px}body:has(.bv-page){background:#f1f4ef;margin:0}.bv-admin{max-width:1300px}.bv-admin .bv-grid{max-width:1000px}.bv-admin .bv-grid input{width:100%}.bv-admin .nav-tab-wrapper{margin-bottom:24px}.bv-admin table{margin:18px 0}.bv-admin th,.bv-admin td{vertical-align:top}.bv-admin select{max-width:100%}.bv-error{color:#a72218}.bv input:focus,.bv select:focus,.bv textarea:focus{outline:2px solid #377a62;outline-offset:2px}@media(max-width:640px){.bv-grid{grid-template-columns:1fr}.bv{padding:18px;margin:12px}.bv-admin table{display:block;overflow-x:auto}.bv-admin .bv-grid{grid-template-columns:1fr}}
/* Prenotazioni: elenco integrato con lo stile pubblico Pugilato Bovisa. */
.bv-booking{--bv-accent:#f59e0b;--bv-ink:#202027;--bv-line:#e4e4e7;font-family:Arial,Helvetica,sans-serif;max-width:1160px;margin:40px auto;padding:0;background:transparent;border-radius:0}
.bv-booking>header{padding:36px;border-radius:14px;background:#0b0b0d;border-bottom:6px solid #f59e0b;color:#fff}
.bv-booking>header .bv-tag{color:#f59e0b}.bv-booking>header h2{color:#fff;font-size:clamp(30px,5vw,48px);line-height:1.08;letter-spacing:-1px;text-transform:uppercase;margin:18px 0}.bv-booking>header p{color:#eee;margin:0}
.bv-booking .bv-note{background:#f4f4f5;color:#52525c;border-radius:9px}.bv-booking>.bv-note{border-left:4px solid #f59e0b;margin:22px 0}
.bv-toolbar,.bv-monthnav{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:26px 0}.bv-toolbar h3{margin:0;font-size:24px;color:#0b0b0d}.bv-toolbar label{min-width:230px}.bv-toolbar select{margin-bottom:0}.bv-monthnav{padding:16px 0;border-block:1px solid #e4e4e7}.bv-monthnav h3{margin:0;text-transform:capitalize;font-size:22px;color:#0b0b0d}
.bv-booking button{background:#f59e0b;color:#111;border:2px solid #f59e0b;border-radius:9px;font-family:Arial,Helvetica,sans-serif;font-weight:800;min-height:48px;transition:background .15s ease}
.bv-booking button:hover:not(:disabled){background:#ffb625;border-color:#ffb625}.bv-booking .bv-monthnav button{padding:8px 16px;background:#fff;color:#111;border-color:#e4e4e7}.bv-booking button:disabled{cursor:default}.bv-booking button:focus-visible{outline:3px solid #a55f00;outline-offset:3px}
.bv-booking [hidden]{display:none!important}.bv-list-day{margin-bottom:30px}.bv-list-day h4{text-transform:capitalize;color:#0b0b0d;font-size:18px;padding:0 0 0 12px;border-left:4px solid #f59e0b;margin:24px 0 14px}.bv-list-items{display:grid;gap:10px}
.bv-event{display:grid;grid-template-columns:85px minmax(130px,1fr) minmax(150px,auto) 120px;align-items:center;gap:18px;border:1px solid #e4e4e7;border-radius:12px;background:#fff;padding:18px 22px;color:#202027;line-height:1.4;min-width:0}
.bv-event-time{font-size:18px;font-weight:800;color:#0b0b0d}.bv-event-title{font-size:17px;font-weight:800;overflow-wrap:anywhere}.bv-availability{font-size:14px;color:#52525c}.bv-booking .bv-reserve{font-size:14px;padding:10px 14px;width:100%}.bv-booking .bv-reserve:disabled{background:#f4f4f5;border-color:#e4e4e7;color:#686872;opacity:1}.bv-empty{padding:28px;background:#f4f4f5;border-radius:12px;color:#52525c}
.bv-dialog{border:0;border-radius:14px;padding:28px;color:#202027;background:#fff;width:min(760px,calc(100% - 24px));max-height:90vh;overflow:auto;font:inherit;box-shadow:0 20px 80px #0003}.bv-dialog::backdrop{background:#0b0b0dcc}.bv-dialog h3{color:#0b0b0d;font-size:26px;margin:20px 0 10px}.bv-booking .bv-close{display:block;margin-left:auto;background:#f4f4f5;color:#111;border-color:#e4e4e7;padding:8px 12px}.bv-selection{background:#f4f4f5;border-left:4px solid #f59e0b;padding:14px;font-weight:700}.bv-dialog .bv-result{overflow-wrap:anywhere}.bv-booking input:focus,.bv-booking select:focus{outline-color:#a55f00}.bv-booking input[type=hidden]{display:none}
@media(max-width:680px){.bv-booking{margin:20px 0}.bv-booking>header{padding:25px 20px}.bv-toolbar{align-items:stretch}.bv-toolbar label{width:100%}.bv-monthnav{gap:8px}.bv-monthnav h3{font-size:20px}.bv-event{grid-template-columns:65px 1fr;gap:10px 14px;padding:16px}.bv-event-time{grid-column:1;grid-row:1}.bv-event-title{grid-column:2;grid-row:1}.bv-availability{grid-column:2;grid-row:2}.bv-booking .bv-reserve{grid-column:1/-1;grid-row:3}.bv-dialog{padding:18px}}

/* Box approvati: data laterale, dettagli e prenotazione. */
.bv-booking .bv-box-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:18px}
.bv-booking .bv-event{display:flex;align-items:stretch;gap:0;overflow:hidden;padding:0;min-height:286px;border:1px solid #e4e4e7;border-radius:22px;background:#fff;box-shadow:0 8px 25px #0b0b0d06}
.bv-booking .bv-box-date{flex:0 0 52px;display:flex;align-items:center;flex-direction:column;background:#fff5e3;padding:27px 6px;color:#111}
.bv-booking .bv-box-day{font-size:31px;font-weight:400;line-height:1.2}
.bv-booking .bv-box-month{font-size:12px;font-weight:700;margin-top:9px;letter-spacing:.06em}
.bv-booking .bv-box-content{flex:1;min-width:0;padding:23px 20px;display:flex;flex-direction:column;align-items:flex-start}
.bv-booking .bv-box-tag{display:inline-block;background:#fff0d1;color:#805000;border-radius:30px;padding:6px 10px;font-size:11px;font-weight:800;letter-spacing:.035em;margin-bottom:12px}
.bv-booking .bv-event-title{margin:0 0 12px;color:#0b0b0d;font-size:21px;font-weight:800;line-height:1.18;text-transform:uppercase;letter-spacing:-.4px}
.bv-booking .bv-box-when,.bv-booking .bv-box-gym,.bv-booking .bv-box-location{font-size:14px;line-height:1.5;color:#686872;margin:0 0 8px}
.bv-booking .bv-box-location{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.bv-booking .bv-location-icon{flex:0 0 auto;color:#a55f00}
.bv-booking .bv-box-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin-top:auto;padding-top:26px}
.bv-booking .bv-availability{font-size:13px;line-height:1.35;font-weight:700;color:#805000;min-width:0}
.bv-booking .bv-reserve{width:auto;flex:0 0 auto;border-radius:50px;padding:10px 15px;font-size:14px;min-height:44px;color:#111;background:#f59e0b;border-color:#f59e0b}
.bv-booking .bv-reserve:disabled{color:#686872;background:#f4f4f5;border-color:#e4e4e7}

@media(max-width:620px){.bv-booking .bv-box-grid{grid-template-columns:1fr}.bv-booking .bv-event{min-height:268px}.bv-booking .bv-box-content{padding:22px 20px}}
@media(max-width:350px){.bv-booking .bv-box-content{padding:20px 14px}.bv-booking .bv-box-date{flex-basis:44px}.bv-booking .bv-box-footer{gap:7px}.bv-booking .bv-reserve{padding:10px 12px}}

.bv-booking .bv-box-subtitle{font-size:13px;line-height:1.4;color:#686872;margin:-4px 0 12px}

/* Struttura della domanda associativa condivisa con il modello Novate. */
.bv-admin .bv-overview{max-width:1440px}.bv-admin .bv-overview-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin:24px 0}.bv-admin .bv-overview-card{display:flex;flex-direction:column;gap:12px;padding:22px;border:1px solid #dcdcde;border-top:4px solid #f59e0b;border-radius:12px;background:#fff;text-decoration:none;color:#111;box-shadow:0 2px 5px #00000008}.bv-admin .bv-overview-card strong{font-size:38px;line-height:1}.bv-admin .bv-overview-card span:first-child{font-weight:600}.bv-admin .bv-overview-card span:last-child{font-size:12px;color:#50575e}.bv-admin .bv-overview-card:hover,.bv-admin .bv-overview-card:focus-visible{border-color:#b56c00;outline:2px solid #f59e0b;outline-offset:2px}.bv-admin .bv-admin-filters{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin:20px 0}.bv-admin .bv-admin-filters label{display:flex;flex-direction:column;gap:5px}.bv-admin .bv-table-scroll{overflow-x:auto}.bv-admin .bv-overview>h3{margin-top:28px}
.bv-application{max-width:900px;color:#183244}.bv-application>header{padding:28px;background:#173749;color:#fff;border-radius:16px}.bv-application>header h2{color:#fff;font-size:30px}.bv-application .bv-tag{color:#fff}.bv-application-section{margin:22px 0;padding:24px;border:1px solid #dce4e9;border-radius:14px;background:#fff}.bv-application h3{color:#173749;margin:0 0 18px;font-size:21px}.bv-application input,.bv-application select{color:#183244;border-color:#aebdc7;min-height:46px}.bv-application input[readonly]{background:#f2f5f7}.bv-application .bv-choice{margin:18px 0;padding:18px;border:1px solid #dce4e9;border-radius:10px;min-width:0}.bv-application .bv-choice legend{font-weight:700;font-size:15px;max-width:100%}.bv-application .bv-choice p{font-size:14px;margin:0 0 16px}.bv-application .bv-check{display:flex;align-items:flex-start;gap:8px}.bv-application input[type=checkbox]{width:19px;height:19px;min-height:19px;flex:0 0 19px;accent-color:#173749;margin:3px 0 0}.bv-application .bv-application-links{display:flex;flex-wrap:wrap;gap:10px}.bv-application-links a{padding:10px 14px;background:#edf3f6;border-radius:8px;color:#173749;font-weight:600;font-size:14px}.bv-application button{background:#173749}.bv-application .bv-note{background:#edf3f6;color:#516779}@media(max-width:600px){.bv-application-section,.bv-application>header{padding:18px}.bv-application>header h2{font-size:26px}}
