/* Photographer calendar: one surface for availability and session progress. */
.calendar-heading { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:1.3rem; }
.calendar-heading h1 { margin-bottom:.35rem; }
.calendar-heading p { margin:0; }
.calendar-heading .riga-azioni { margin:0; align-items:center; }
.calendar-legend { display:flex; flex-wrap:wrap; gap:.55rem 1.25rem; margin:1rem 0; font-size:.84rem; font-weight:600; color:#335768; }
.calendar-legend span { display:inline-flex; align-items:center; gap:.4rem; }
.calendar-legend i { width:13px; height:13px; border-radius:4px; display:inline-block; }
.calendar-scroll { overflow-x:auto; border-radius:12px; }
.calendario__mese,.calendario__settimana { min-width:650px; }
.calendario__giorno { min-height:108px; padding:.4rem; gap:.3rem; min-width:0; }
.calendario__giorno--fuori { background:#f2f6f8; }
.calendario__giorno--fuori .calendario__evento { opacity:.7; }
.calendario__giorno--oggi { background:#f8fcff; }
.calendario__numero { display:flex; align-items:center; justify-content:space-between; gap:.3rem; width:100%; padding:.2rem .3rem; border:0; border-radius:5px; background:transparent; font:inherit; font-size:.8rem; font-weight:700; color:#365c6f; cursor:pointer; text-align:left; }
.calendario__numero span { font-size:1rem; color:#7b9bab; }
.calendario__numero:enabled:hover { background:#dcecf4; }
.calendario__numero:disabled { cursor:default; }
.calendario__evento { border:1px solid transparent; padding:.38rem .42rem; line-height:1.35; font-size:.73rem; border-radius:7px; min-width:0; overflow-wrap:anywhere; }
.calendario__evento strong,.calendario__evento span { display:block; }
.calendario__evento span { font-size:.68rem; margin-top:.1rem; }
.calendario__evento:disabled { cursor:default; opacity:.7; }
.calendario__evento--disponibile { background:#e3f4e9; color:#215f42; border-color:#b6ddc5; }
.calendario__evento--confermato { background:#f7fafc; color:#124c6e; border-color:#7099b2; }
.calendario__evento--attesa { background:#fff1b6; color:#705316; border-color:#e8d283; }
.calendario__evento--consegnato { background:#0b5980; color:white; border-color:#0b5980; }
.calendario__evento--annullato { background:#f5e7e7; color:#845252; border-color:#e4c8c8; }
.calendario__evento:enabled:hover { filter:brightness(.96); }
.calendario__evento:focus-visible,.calendario__numero:focus-visible { outline:3px solid #0890bc; outline-offset:1px; }
.calendario__colonna { display:flex; flex-direction:column; gap:.35rem; min-width:0; }
.calendario__weekday { font-size:.75rem; color:#557386; text-transform:uppercase; }
.calendar-help { margin:.8rem 0 0; font-size:.8rem; max-width:85ch; }
.calendar-agenda { list-style:none; padding:0; margin:0; }
.calendar-agenda li { display:grid; grid-template-columns:150px 1fr; gap:1rem; padding:1rem 0; border-bottom:1px solid #deeaef; }
.calendar-agenda h3 { margin:0; font-size:.95rem; }
.calendar-agenda__events { display:flex; flex-wrap:wrap; gap:.5rem; }
.calendar-agenda__events .calendario__evento { width:auto; min-width:130px; }
.calendar-agenda__events .calendario__numero { display:none; }
.calendar-editor { box-sizing:border-box; border:1px solid #cee0e8; border-radius:22px; padding:1.6rem; width:calc(100% - 2rem); max-width:620px; max-height:90dvh; overflow:auto; color:#124c6a; background:#fff; box-shadow:0 20px 90px #063b5350; }
.calendar-editor::backdrop { background:rgb(4 35 54 / .48); backdrop-filter:blur(3px); }
.calendar-editor header { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; margin-bottom:1.2rem; }
.calendar-editor h2 { font-size:1.45rem; margin:0; line-height:1.25; }
.calendar-editor__eyebrow { text-transform:uppercase; letter-spacing:.1em; font-size:.68rem; font-weight:700; color:#44829a; margin:0 0 .4rem; }
.calendar-editor__close { background:#eef6f9; border:0; color:#124c6a; width:36px; height:36px; flex-shrink:0; border-radius:50%; font-size:1.6rem; line-height:1; cursor:pointer; }
.calendar-editor label,.calendar-editor legend { display:block; font-weight:650; font-size:.88rem; margin:.65rem 0 .35rem; }
.calendar-editor input:not([type=checkbox]):not([type=hidden]) { box-sizing:border-box; min-width:0; width:100%; border:1px solid #b9d2de; border-radius:10px; padding:.65rem .75rem; font:inherit; font-size:1rem; color:#124c6a; background:white; }
.calendar-editor input[readonly] { background:#f5f9fb!important; }
.calendar-editor input:focus-visible,.calendar-editor button:focus-visible { outline:3px solid #72bfdc; outline-offset:2px; }
.calendar-editor__hours { border:0; padding:0; margin:1.2rem 0; min-width:0; }
.calendar-editor__hours legend { margin-bottom:.6rem; }
.calendar-editor__presets { display:grid; grid-template-columns:repeat(3,1fr); gap:.6rem; margin-bottom:.75rem; }
.calendar-editor__presets button,.calendar-choices button { border:1px solid #b9d2de; background:white; border-radius:12px; padding:.7rem .3rem; color:#124c6a; font:inherit; font-size:.88rem; cursor:pointer; }
.calendar-editor__presets small { display:block; margin-top:.25rem; color:#627f8e; font-size:.72rem; }
.calendar-editor__presets [aria-pressed=true],.calendar-choices [aria-pressed=true] { color:white; background:#0b5980; border-color:#0b5980; }
.calendar-editor__presets [aria-pressed=true] small { color:#def2fb; }
.calendar-editor__range { display:grid; grid-template-columns:minmax(0,1fr) 12px minmax(0,1fr) 30px; align-items:end; gap:.55rem; padding:.3rem 0; }
.calendar-editor__range > span { align-self:center; margin-top:1.5rem; }
.calendar-editor__range label { margin:0; font-weight:500; color:#527184; }
.calendar-editor__range input { margin-top:.35rem; }
.calendar-editor__range small { grid-column:1/-1; color:#557386; font-size:.72rem; }
.calendar-editor__range button { padding:.6rem 0; margin-bottom:.15rem; font-size:1.4rem; }
.calendar-editor__text { color:#0b5980; background:none; border:0; font:inherit; font-size:.85rem; cursor:pointer; padding:.6rem .2rem; text-decoration:underline; text-underline-offset:3px; }
.calendar-editor .area__nota { font-size:.8rem; line-height:1.5; margin:.6rem 0; }
.calendar-editor__repeat { display:flex!important; align-items:center; gap:.6rem; background:#f0f7fa; padding:.8rem; border-radius:10px; }
.calendar-editor__repeat input { accent-color:#0b5980; width:18px; height:18px; flex-shrink:0; }
.calendar-editor__empty { color:#69808a; background:#f5f8fa; border-radius:10px; padding:.8rem; font-size:.88rem; }
.calendar-editor__error { color:#9a3027; font-size:.88rem; line-height:1.5; }
.calendar-editor__error:empty { display:none; }
.calendar-editor footer { margin-top:1rem; border-top:1px solid #e1ebf0; padding-top:1rem; }
.calendar-editor footer .riga-azioni { justify-content:flex-end; gap:.65rem; }
.calendar-editor__remove { color:#963d31; }
.calendar-editor button:disabled { opacity:.5; cursor:wait; }
.calendar-editor--settings { max-width:730px; }
.calendar-editor--settings .scheda { box-shadow:none; padding:1rem 0; border:0; border-radius:0; }
.calendar-editor--settings .scheda + .scheda { border-top:1px solid #deeaef; }
.calendar-editor--settings .elenco--righe li { flex-wrap:wrap; font-size:.88rem; }
.calendar-choices { display:flex; flex-wrap:wrap; gap:.4rem; }
.calendar-choices button { padding:.45rem .7rem; }
@media (max-width:650px) {
 .calendar-heading .riga-azioni { width:100%; }
 .calendar-heading h1 { font-size:1.8rem; }
 .calendario__barra .riga-azioni { gap:.3rem; }
 .calendario__barra strong { font-size:.9rem; }
 .calendario__barra [data-cal] { padding:.45rem .6rem; }
 .calendar-editor { padding:1.1rem; border-radius:18px; }
 .calendar-editor h2 { font-size:1.25rem; }
 .calendar-editor footer .bottone { font-size:.85rem; padding:.7rem 1rem; }
 .calendar-agenda li { grid-template-columns:1fr; gap:.5rem; }
}
.calendar-editor:not(.calendar-editor--settings) { overflow:hidden; }
.calendar-editor > form { display:grid; grid-template-rows:auto minmax(0,1fr) auto; max-height:calc(90dvh - 3.2rem); }
.calendar-editor__body { overflow-y:auto; padding:0 .25rem 0 0; }
.calendar-editor footer .riga-azioni { margin:.35rem 0 0; }
.calendar-editor footer { margin-top:.7rem; padding-top:.6rem; }
@media (max-width:650px) { .calendar-editor > form { max-height:calc(90dvh - 2.2rem); } }
.calendar-legend .calendario__evento--confermato { border:1px solid #7099b2; }
.calendar-mobile-hint { display:none; }
@media (max-width:650px) { .calendar-mobile-hint:not([hidden]) { display:block; font-size:.76rem; color:#527184; } }
