:root{--bg:#0c0f0d;--panel:#171b18;--panel2:#202620;--text:#f5f7f5;--muted:#aeb6ae;--lime:#a6e22e;--red:#e74c3c;--orange:#f39c12;--border:#2b332c}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text)}a{color:inherit}.sidebar{width:255px;position:fixed;left:0;top:0;bottom:0;background:#101410;border-right:1px solid var(--border);padding:22px 16px}.brand{display:flex;align-items:center;gap:11px;margin-bottom:26px}.brand b,.brand small{display:block}.brand small{color:var(--muted);margin-top:3px}.logo{width:46px;height:46px;border-radius:14px;background:var(--lime);color:#101410;display:grid;place-items:center;font-weight:900}.logo.big{width:72px;height:72px;font-size:24px;margin:0 auto 15px}.sidebar nav{display:flex;flex-direction:column;gap:6px}.sidebar nav a{text-decoration:none;padding:11px 13px;border-radius:9px;color:#d8ddd8}.sidebar nav a:hover{background:var(--panel2);color:var(--lime)}.main{margin-left:255px;padding:30px;min-height:100vh}h1{margin-top:0}.head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.head h1{margin-bottom:5px}.head p,.muted{color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(6,minmax(145px,1fr));gap:14px;margin-bottom:22px}.cards.compact{grid-template-columns:repeat(3,minmax(160px,230px))}.card{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:18px;text-decoration:none}.card span{display:block;color:var(--muted);font-size:13px}.card b{display:block;font-size:28px;margin-top:8px}.red{color:var(--red)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:20px;margin-bottom:20px}.narrow{max-width:720px}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:9px;padding:9px 13px;text-decoration:none;cursor:pointer;background:var(--panel2);color:white;font-weight:700}.btn.primary{background:var(--lime);color:#101410}.btn.danger{background:var(--red)}.btn.warning{background:var(--orange);color:#121212}.btn.small{padding:6px 9px;font-size:12px}.form{display:flex;flex-direction:column;gap:10px}.form input,.form select,.search input,.row input,.row select{width:100%;background:#0f130f;color:#fff;border:1px solid var(--border);border-radius:9px;padding:11px}.search,.row{display:flex;gap:10px;align-items:center;margin-bottom:18px}.search input{max-width:460px}.row input,.row select{width:auto;min-width:210px}.scroll{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{padding:12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}th{color:var(--lime);font-size:13px}.badge{display:inline-block;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:800}.badge.ok{color:var(--lime);background:rgba(166,226,46,.14)}.badge.warn{color:var(--orange);background:rgba(243,156,18,.14)}.badge.bad{color:#ff766b;background:rgba(231,76,60,.15)}.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.slot{border-radius:14px;padding:14px;border:1px solid var(--border);display:flex;flex-direction:column;gap:6px}.slot.free{background:rgba(166,226,46,.1);border-color:rgba(166,226,46,.38)}.slot.full{background:rgba(231,76,60,.1);border-color:rgba(231,76,60,.38)}.slot strong{font-size:16px}.slot span{font-size:18px;font-weight:800}.slot small{color:var(--muted)}.slot em{font-size:11px;font-style:normal;font-weight:900;color:var(--lime)}.slot.full em{color:#ff766b}.inline{display:inline}.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top,#20291e,#0a0d0a 60%);padding:24px}.loginbox{width:min(420px,100%);background:rgba(20,24,20,.97);border:1px solid var(--border);border-radius:22px;padding:34px;text-align:center}.loginbox p{color:var(--muted)}.err{background:rgba(231,76,60,.14);color:#ff766b;padding:10px;border-radius:9px;margin-bottom:12px}@media(max-width:900px){.sidebar{position:relative;width:100%;height:auto}.sidebar nav{flex-direction:row;flex-wrap:wrap}.main{margin-left:0;padding:18px}.cards,.cards.compact{grid-template-columns:repeat(2,minmax(140px,1fr))}.head{align-items:flex-start;flex-direction:column}}@media(max-width:560px){.cards,.cards.compact{grid-template-columns:1fr}.search,.row{flex-direction:column;align-items:stretch}.row input,.row select{width:100%;min-width:0}}

.login-links{display:flex;flex-direction:column;gap:8px;margin-top:18px}.login-links a{color:var(--lime);text-decoration:none}.loginbox.wide{width:min(520px,100%)}.okmsg{background:rgba(166,226,46,.14);color:var(--lime);padding:10px;border-radius:9px;margin-bottom:12px}.approval-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--lime);letter-spacing:1px}.row-actions{display:flex;gap:6px;flex-wrap:wrap}.steps{color:var(--muted);line-height:1.7;padding-left:20px}

.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:16px 0}
.details-grid>div{background:var(--panel2);border:1px solid var(--border);border-radius:12px;padding:12px}
.details-grid span{display:block;color:var(--muted);font-size:12px;margin-bottom:5px}
.choice-card{border:1px solid var(--border);border-radius:14px;padding:16px;margin:12px 0;background:var(--panel2)}


/* ===== Calendario mensile v9 ===== */
.calendar-panel{overflow:hidden}
.calendar-toolbar{
    display:flex;align-items:flex-start;justify-content:space-between;
    gap:20px;margin-bottom:16px
}
.calendar-toolbar h2{margin:0 0 5px}
.calendar-controls{
    display:flex;align-items:center;gap:8px;flex-wrap:wrap
}
.calendar-selectors{display:flex;gap:8px}
.calendar-selectors select{
    background:#0f130f;color:#fff;border:1px solid var(--border);
    border-radius:9px;padding:9px 11px
}
.calendar-arrow{
    width:38px;height:38px;border-radius:9px;display:grid;
    place-items:center;text-decoration:none;background:var(--panel2);
    font-size:27px;font-weight:800
}
.calendar-arrow:hover{color:var(--lime)}
.calendar-arrow.disabled{opacity:.3;cursor:not-allowed}
.calendar-title{
    text-align:center;font-size:23px;font-weight:800;
    margin:14px 0 16px;color:var(--text)
}
.month-calendar{
    display:grid;
    grid-template-columns:repeat(7,minmax(120px,1fr));
    border-left:1px solid var(--border);
    border-top:1px solid var(--border);
    min-width:900px
}
.weekday{
    padding:10px;text-align:center;color:var(--lime);
    font-size:12px;font-weight:800;
    border-right:1px solid var(--border);
    border-bottom:1px solid var(--border);
    background:#111511
}
.calendar-day{
    min-height:150px;padding:9px;
    border-right:1px solid var(--border);
    border-bottom:1px solid var(--border);
    background:#151915
}
.calendar-day.outside{background:#0f120f;opacity:.35}
.calendar-day.today{box-shadow:inset 0 0 0 2px var(--lime)}
.day-number{
    display:flex;align-items:center;justify-content:space-between;
    margin-bottom:7px
}
.day-number>span{font-size:17px;font-weight:800}
.day-number small{
    color:var(--lime);font-size:10px;text-transform:uppercase
}
.day-slots{display:flex;flex-direction:column;gap:6px}
.calendar-slot{
    display:grid;grid-template-columns:1fr auto;
    gap:2px 8px;padding:7px 8px;border-radius:8px;
    text-decoration:none;border:1px solid transparent
}
.calendar-slot strong{font-size:12px}
.calendar-slot span{font-size:11px;font-weight:800}
.calendar-slot em{
    grid-column:1 / -1;font-size:9px;font-style:normal;font-weight:900
}
.calendar-slot.free{
    background:rgba(166,226,46,.11);
    border-color:rgba(166,226,46,.38)
}
.calendar-slot.free em{color:var(--lime)}
.calendar-slot.full{
    background:rgba(231,76,60,.13);
    border-color:rgba(231,76,60,.45)
}
.calendar-slot.full em{color:#ff766b}
.calendar-slot:hover{filter:brightness(1.18)}
@media(max-width:1100px){
    .calendar-panel{overflow-x:auto}
    .calendar-toolbar{min-width:900px}
}
@media(max-width:700px){
    .calendar-toolbar{flex-direction:column}
}


/* ===== v10: fasce fisse 08-20 + richieste/gruppi ===== */
.calendar-day{min-height:560px}
.day-slots{max-height:520px;overflow-y:auto;padding-right:3px}
.calendar-slot small{grid-column:1/-1;color:var(--muted);font-size:9px}
.request-card small{display:block;color:var(--orange);margin-top:5px;font-weight:800}
.request-preferences{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin:14px 0}
.preference-box{background:var(--panel2);border:1px solid var(--border);border-radius:12px;padding:14px}
.preference-box>strong{display:block;margin-bottom:10px}
.preference-box label{display:block;color:var(--muted);font-size:12px;margin:8px 0 5px}
.preference-box select{width:100%;background:#0f130f;color:#fff;border:1px solid var(--border);border-radius:9px;padding:10px}
.compatible-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.no-compatible{padding:10px;border-radius:8px;background:rgba(231,76,60,.12);color:#ff8b82}
.no-compatible a{color:var(--lime)}
.approval-form input,.approval-form select{width:100%;background:#0f130f;color:#fff;border:1px solid var(--border);border-radius:9px;padding:10px}


/* ===== v11: attivazione tramite email ===== */
.approval-summary{
    display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));
    gap:10px;margin:16px 0
}
.approval-summary>div{
    background:var(--panel2);border:1px solid var(--border);
    border-radius:10px;padding:12px;text-align:left
}
.approval-summary span{
    display:block;color:var(--muted);font-size:12px;margin-bottom:4px
}
code{
    background:#0f130f;border:1px solid var(--border);
    border-radius:5px;padding:2px 5px;color:var(--lime)
}
@media(max-width:560px){
    .approval-summary{grid-template-columns:1fr}
}

.calendar-slot.mine{border-color:#94d82d;background:rgba(148,216,45,.12)}
.calendar-slot.recovery{border-color:#e9b949;background:rgba(233,185,73,.13)}
.calendar-slot details{margin-top:7px}
.calendar-slot summary{cursor:pointer;color:var(--lime);font-weight:700}
.mini-move-form{display:grid;gap:6px;margin-top:8px}
.mini-move-form input,.mini-move-form select{width:100%}

.client-form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(220px,1fr));
    gap:14px;
    margin-bottom:22px
}
.client-form-grid>div{display:flex;flex-direction:column;gap:6px}
.client-form-grid label{color:var(--muted);font-size:12px}
.client-form-grid input,.client-form-grid select{width:100%}
@media(max-width:700px){.client-form-grid{grid-template-columns:1fr}}


/* ===== v13 area cliente ===== */
.client-summary{
    grid-template-columns:repeat(4,minmax(180px,1fr));
}
.client-summary .card{
    min-width:0;
}
.limit-card b{
    font-size:25px !important;
    line-height:1.05;
    white-space:nowrap;
}
.limit-card small{
    display:block;
    margin-top:6px;
    color:var(--muted);
    font-size:13px;
}
.calendar-slot.mine{
    border:1px solid var(--lime);
    background:rgba(166,226,46,.18);
    box-shadow:inset 0 0 0 1px rgba(166,226,46,.15);
}
.calendar-slot.mine em{color:var(--lime)}
.calendar-slot.recovery{
    border:1px solid #e7b84b;
    background:rgba(231,184,75,.14);
}
.calendar-slot.recovery em{color:#e7b84b}
.move-target{
    grid-column:1/-1;
    margin-top:6px;
}
.move-target summary{
    cursor:pointer;
    color:var(--lime);
    font-size:10px;
    font-weight:800;
}
.mini-move-form{
    display:grid;
    gap:6px;
    margin-top:8px;
}
.mini-move-form label{
    color:var(--muted);
    font-size:10px;
}
.mini-move-form select{
    width:100%;
    background:#0f130f;
    color:#fff;
    border:1px solid var(--border);
    border-radius:7px;
    padding:7px;
    font-size:11px;
}
@media(max-width:1050px){
    .client-summary{
        grid-template-columns:repeat(2,minmax(180px,1fr));
    }
}
@media(max-width:600px){
    .client-summary{
        grid-template-columns:1fr;
    }
    .limit-card b{
        white-space:normal;
    }
}


/* ===== v14 colori calendario e Prenota/Cambia ===== */
.calendar-slot.no-group{
    background:#171a17 !important;
    border-color:#303630 !important;
    opacity:.72;
}
.calendar-slot.no-group em{
    color:#8b938b !important;
}
.calendar-slot.full{
    background:rgba(231,76,60,.15) !important;
    border-color:rgba(231,76,60,.55) !important;
}
.calendar-slot.full em{color:#ff766b !important}

.booking-legend{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px 18px;
    color:var(--muted);
}
.legend-dot{
    width:12px;height:12px;border-radius:50%;display:inline-block;
}
.legend-dot.green{background:#6faa24}
.legend-dot.red{background:#e74c3c}
.legend-dot.lime{background:var(--lime)}
.legend-dot.gold{background:#e7b84b}
.table-sub{
    display:block;color:var(--muted);font-size:11px;margin-top:3px;
}
.booking-move summary{
    list-style:none;
    cursor:pointer;
    display:inline-block;
}
.booking-move summary::-webkit-details-marker{display:none}
.booking-move-form{
    min-width:300px;
    display:grid;
    gap:7px;
    margin-top:10px;
    padding:10px;
    background:#111511;
    border:1px solid var(--border);
    border-radius:9px;
}
.booking-move-form label{
    color:var(--muted);
    font-size:11px;
}
.booking-move-form select{
    width:100%;
    background:#0f130f;
    color:#fff;
    border:1px solid var(--border);
    border-radius:7px;
    padding:8px;
}


/* ===== v15 logo ufficiale e dashboard settimanale ===== */
.brand-logo{
    display:block !important;
    padding:12px 6px 22px !important;
    text-decoration:none !important;
}
.brand-logo img{
    display:block;
    width:100%;
    max-width:255px;
    height:auto;
    object-fit:contain;
}
.auth-logo{
    width:min(280px,90%);
    height:auto;
    display:block;
    margin:0 auto 20px;
}
.registration-logo-wrap{
    display:flex;
    justify-content:center;
    margin-bottom:20px;
}
.registration-logo{
    width:min(320px,90%);
    height:auto;
}
.field-help{
    display:block;
    color:var(--muted);
    font-size:11px;
    margin-top:4px;
}

.dashboard-head{
    align-items:center;
}
.today-chip{
    border:1px solid var(--border);
    background:var(--panel2);
    border-radius:12px;
    padding:12px 16px;
    white-space:nowrap;
}
.dashboard-cards{
    grid-template-columns:repeat(5,minmax(150px,1fr));
}
.timetable-panel{
    overflow-x:auto;
}
.week-controls{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}
.week-controls input[type=date]{
    background:#0f130f;
    color:#fff;
    border:1px solid var(--border);
    border-radius:9px;
    padding:10px;
}
.week-grid{
    display:grid;
    grid-template-columns:64px repeat(7,minmax(125px,1fr));
    min-width:1000px;
    border:1px solid var(--border);
    border-radius:12px;
    overflow:hidden;
    margin-top:18px;
}
.week-corner,.week-day-head,.week-time,.week-cell{
    border-right:1px solid var(--border);
    border-bottom:1px solid var(--border);
}
.week-day-head{
    padding:10px 8px;
    text-align:center;
    background:#111511;
}
.week-day-head strong{
    display:block;
    color:var(--lime);
}
.week-day-head span{
    display:block;
    font-size:11px;
    color:var(--muted);
    margin-top:3px;
}
.week-day-head.today{
    background:rgba(166,226,46,.12);
}
.week-time{
    padding:12px 8px;
    color:var(--muted);
    font-size:12px;
    background:#0e110e;
}
.week-cell{
    min-height:72px;
    padding:6px;
    background:#101410;
}
.week-cell.today-col{
    background:rgba(166,226,46,.035);
}
.week-event{
    display:block;
    text-decoration:none;
    border-radius:8px;
    padding:8px;
    margin-bottom:5px;
    border:1px solid;
}
.week-event strong{
    display:block;
    color:#fff;
    font-size:12px;
}
.week-event span{
    display:block;
    margin-top:4px;
    font-size:11px;
    color:#fff;
}
.week-event.event-free{
    background:rgba(80,150,50,.18);
    border-color:rgba(118,194,65,.55);
}
.week-event.event-full{
    background:rgba(190,52,52,.22);
    border-color:rgba(231,76,60,.65);
}
.old-payment-tools{
    margin-bottom:18px;
}
.old-payment-tools input[type=date]{
    background:#0f130f;
    color:#fff;
    border:1px solid var(--border);
    border-radius:9px;
    padding:10px;
}

@media(max-width:1250px){
    .dashboard-cards{grid-template-columns:repeat(3,minmax(150px,1fr))}
}
@media(max-width:760px){
    .dashboard-cards{grid-template-columns:1fr 1fr}
    .dashboard-head{align-items:flex-start}
    .today-chip{white-space:normal}
}


/* ===== v16 notifiche e certificati ===== */
.client-alert{
    display:flex;
    flex-direction:column;
    gap:5px;
    text-decoration:none;
    border-color:rgba(231,184,75,.55);
    background:rgba(231,184,75,.08);
}
.client-alert strong{color:#e7b84b}
.client-alert span{color:var(--muted)}
.notification-item.unread{
    border-color:rgba(166,226,46,.55);
}
.notifications-list{
    display:grid;
    gap:12px;
}
.certificate-form{
    display:flex;
    gap:8px;
    align-items:center;
}
.certificate-form input[type=date]{
    min-width:150px;
}


/* ===== v17 calendario cliente uguale admin + spostamenti ===== */
.week-event.event-mine{
    background:rgba(166,226,46,.22);
    border-color:var(--lime);
}
.week-event.event-recovery{
    background:rgba(231,184,75,.18);
    border-color:#e7b84b;
}
.week-event em{
    display:block;
    margin-top:5px;
    font-size:9px;
    font-style:normal;
    font-weight:800;
}
.event-mine em{color:var(--lime)}
.event-recovery em{color:#e7b84b}
.client-week-move{
    margin-top:6px;
}
.client-week-move summary{
    cursor:pointer;
    color:var(--lime);
    font-size:10px;
    font-weight:800;
}
.week-move-form{
    display:grid;
    gap:6px;
    margin-top:7px;
}
.week-move-form label{
    font-size:9px;
    color:var(--muted);
}
.week-move-form select{
    width:100%;
    min-width:0;
    background:#0f130f;
    color:#fff;
    border:1px solid var(--border);
    border-radius:6px;
    padding:6px;
    font-size:10px;
}

/* v18.3 - campi dinamici e controlli visibili */
.info-grid, .request-grid { grid-template-columns: repeat(auto-fit,minmax(210px,1fr)) !important; }
.info-grid > *, .request-grid > *, .request-card .field, .request-card .info { min-width:0; }
.info-grid b, .request-grid b, .request-card strong, .request-card .value {
  display:block; min-width:0; overflow-wrap:anywhere; word-break:break-word; white-space:normal;
}
.yesno-group { display:flex; gap:12px; margin:8px 0 18px; }
.yesno-option { cursor:pointer; }
.yesno-option input { position:absolute; opacity:0; pointer-events:none; }
.yesno-option span {
  display:inline-flex; min-width:72px; justify-content:center; align-items:center;
  padding:10px 18px; border:1px solid #394239; border-radius:9px; background:#101510;
  font-weight:800;
}
.yesno-option input:checked + span { background:#9be51f; color:#071007; border-color:#9be51f; }

/* v18.4 - richieste registrazione: nessun testo deve uscire dal riquadro */
.request-card { overflow:hidden; }
.request-card .info-grid,
.request-card .request-grid {
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr)) !important;
  gap:12px !important;
  width:100%;
}
.request-card .info-grid > div,
.request-card .request-grid > div,
.request-card .field,
.request-card .info {
  box-sizing:border-box;
  min-width:0 !important;
  width:100%;
  max-width:100%;
  overflow:hidden;
}
.request-card .info-grid b,
.request-card .request-grid b,
.request-card strong,
.request-card .value {
  display:block;
  max-width:100%;
  white-space:normal !important;
  overflow-wrap:anywhere !important;
  word-break:break-word !important;
  text-overflow:clip !important;
}
@media (max-width:1100px) {
  .request-card .info-grid,.request-card .request-grid {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media (max-width:700px) {
  .request-card .info-grid,.request-card .request-grid {
    grid-template-columns:1fr !important;
  }
}

/* v18.5 - fix definitivo overflow dati nelle richieste */
.request-card * { box-sizing:border-box; }
.request-card [class*="grid"] > * { min-width:0 !important; }
.request-card .request-data-box { min-width:0 !important; overflow:hidden !important; }
.request-card .request-long-value,
.request-card [class*="grid"] strong,
.request-card [class*="grid"] b {
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  white-space:normal !important;
  overflow:visible !important;
  text-overflow:clip !important;
  overflow-wrap:anywhere !important;
  word-break:break-word !important;
  line-height:1.25 !important;
}

/* v18.6 - flusso spostamento in 2 passaggi */
.move-wizard{display:flex;align-items:stretch;gap:12px;margin:0 0 16px}
.move-step{flex:1;display:flex;gap:12px;align-items:center;padding:14px 16px;border:1px solid #303830;border-radius:12px;background:#151a15;opacity:.58}
.move-step.active{opacity:1;border-color:#8bd719}
.move-step>span{display:flex;width:32px;height:32px;flex:0 0 32px;border-radius:50%;align-items:center;justify-content:center;background:#2a3326;font-weight:900}
.move-step.active>span{background:#9be51f;color:#071007}
.move-step small{display:block;color:#aeb6ae;margin-top:3px}
.move-arrow{display:flex;align-items:center;font-size:24px;color:#8bd719}
.source-lesson-chooser{padding:15px 18px;margin-bottom:18px;border-radius:12px;background:#1b211b;border:1px solid #394339}
.source-lesson-chooser label{display:block;margin-bottom:8px}
.source-lesson-chooser select{width:100%;max-width:620px;padding:11px;border-radius:9px}
.hidden-source-select{display:none!important}
body:not(.source-selected) form button[type="submit"]{opacity:.45}
body.source-selected form button[type="submit"]{opacity:1}
@media(max-width:760px){.move-wizard{flex-direction:column}.move-arrow{display:none}}

/* v18.7 - navigazione calendario compatta e allineata */
.calendar-toolbar, .calendar-nav, .week-nav, .calendar-controls {
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:8px !important;
  flex-wrap:nowrap !important;
}
.calendar-toolbar form, .calendar-nav form, .week-nav form, .calendar-controls form {
  margin:0 !important;
  display:flex !important;
  align-items:center !important;
}
.calendar-toolbar input[type="date"], .calendar-nav input[type="date"],
.week-nav input[type="date"], .calendar-controls input[type="date"] {
  width:150px !important;
  min-width:150px !important;
  height:38px !important;
  margin:0 !important;
}
.calendar-toolbar a, .calendar-nav a, .week-nav a, .calendar-controls a,
.calendar-toolbar button, .calendar-nav button, .week-nav button, .calendar-controls button {
  width:38px !important;
  min-width:38px !important;
  height:38px !important;
  padding:0 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin:0 !important;
}
@media(max-width:760px){
  .calendar-toolbar,.calendar-nav,.week-nav,.calendar-controls{
    justify-content:flex-start !important; flex-wrap:wrap !important;
  }
}

/* v18.8 - calendario cliente interattivo */
.client-clickable-slot { cursor:pointer !important; transition:transform .12s ease, box-shadow .12s ease; }
.client-clickable-slot:hover { transform:translateY(-1px); box-shadow:0 0 0 2px rgba(155,229,31,.35); }

/* v19.0 - gestione amministratore dal calendario */
.admin-calendar-action{cursor:pointer!important}
.admin-calendar-action:hover{filter:brightness(1.12)}
.admin-move-panel{border-color:#43533b}

/* v19.1 - calendario cliente: cambio giorno realmente operativo */
.calendar-toolbar{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:18px!important}
.calendar-toolbar .week-controls{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-end!important;gap:8px!important;flex-wrap:nowrap!important;white-space:nowrap!important}
.calendar-toolbar .week-controls form{display:block!important;margin:0!important;width:auto!important}
.calendar-toolbar .week-controls input[type=date]{display:block!important;width:145px!important;min-width:145px!important;height:38px!important;margin:0!important;padding:6px 8px!important}
.calendar-toolbar .week-controls .calendar-arrow{display:flex!important;align-items:center!important;justify-content:center!important;width:38px!important;min-width:38px!important;height:38px!important;margin:0!important;padding:0!important}
.calendar-move-chooser{margin:14px 0 4px;padding:14px 16px;border:1px solid #3a4637;border-radius:11px;background:#121712}
.calendar-move-chooser label,.calendar-move-chooser small{display:block}
.calendar-move-chooser select{margin:9px 0 7px;width:min(100%,650px);padding:10px;border-radius:8px;background:#0f130f;color:#fff;border:1px solid #3a4637}
.calendar-direct-move{margin-top:7px}
.calendar-move-button{width:100%;border:1px solid #6ea927;border-radius:7px;padding:6px 5px;background:#203018;color:#c9f58b;font-weight:800;cursor:pointer;opacity:.55}
.calendar-direct-move.ready .calendar-move-button{background:#9be51f;color:#071007;opacity:1}
@media(max-width:760px){.calendar-toolbar{flex-direction:column!important}.calendar-toolbar .week-controls{justify-content:flex-start!important}}

/* v19.2 - spostamento cliente evidenziato */
.week-event.event-recovery,
.week-event.event-recovery.event-free,
.event-recovery{
    background:rgba(231,184,75,.28)!important;
    border-color:#e7b84b!important;
    box-shadow:0 0 0 1px rgba(231,184,75,.18) inset;
}
.week-event.event-recovery strong,
.week-event.event-recovery span,
.week-event.event-recovery em{
    color:#ffe49a!important;
}
.week-event.event-recovery em{
    display:block;
    margin-top:5px;
    font-style:normal;
    font-weight:900;
}

.admin-notifications-panel{margin-bottom:18px}
.admin-notification-row{display:flex;justify-content:space-between;gap:18px;padding:11px 0;border-bottom:1px solid var(--border)}
.admin-notification-row:last-child{border-bottom:0}
.admin-notification-row strong,.admin-notification-row span{display:block}
.admin-notification-row span{margin-top:3px;color:var(--muted)}
.admin-notification-row small{white-space:nowrap;color:var(--lime)}

/* v19.3 - annullamento spostamento visibile nel riquadro giallo */
.cancel-move-form{margin-top:7px!important}
.cancel-move-button{
  width:100%!important;
  padding:6px 7px!important;
  border-radius:7px!important;
  border:1px solid #e7b84b!important;
  background:#2a2415!important;
  color:#ffe49a!important;
  font-size:11px!important;
  font-weight:900!important;
  cursor:pointer!important;
}
.cancel-move-button:hover{background:#e7b84b!important;color:#171105!important}

/* v19.4 - campi richieste registrazione: niente testo tagliato */
.request-card, .request-card *, .registration-card, .registration-card *{box-sizing:border-box}
.request-card .info-grid, .registration-card .info-grid{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr))!important;
  gap:12px!important;
}
.request-card .info-box, .registration-card .info-box,
.request-card .field, .registration-card .field{
  min-width:0!important;
  width:100%!important;
}
.request-card .info-box strong, .registration-card .info-box strong,
.request-card .field strong, .registration-card .field strong,
.request-card .info-box div, .registration-card .info-box div{
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
}

/* Dashboard controls: prevent overlap and clipped buttons */
.timetable-panel .panel-head, .calendar-head, .calendar-toolbar{
  display:flex!important; flex-wrap:wrap!important; align-items:center!important; gap:10px!important;
}
.timetable-panel .panel-head > *, .calendar-toolbar > *{min-width:0}
.timetable-panel input[type="date"], .calendar-toolbar input[type="date"]{max-width:180px!important}
.timetable-panel button, .calendar-toolbar button, .timetable-panel .btn{white-space:nowrap!important}

/* Admin notifications */
.notification-title-row,.notification-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.small-link{color:var(--lime);font-weight:800;text-decoration:none}
.notification-item{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:16px 0;border-bottom:1px solid var(--border)}
.notification-item:last-child{border-bottom:0}
.notification-copy{min-width:0}
.notification-copy strong,.notification-copy span,.notification-copy small{display:block}
.notification-copy span{margin:5px 0;color:var(--muted);overflow-wrap:anywhere}
.notification-copy small{color:var(--lime)}
.notification-delete,.btn-danger{border:0;border-radius:8px;padding:9px 13px;background:#ef5147;color:white;font-weight:800;cursor:pointer}
@media(max-width:900px){
 .notification-item,.notification-head{align-items:stretch;flex-direction:column}
}

/* v19.5 - pulsanti eliminazione notifiche ben visibili */
.notification-delete,
.btn-danger{
    background:#ff3b30!important;
    color:#ffffff!important;
    border:1px solid #ff6259!important;
    opacity:1!important;
    box-shadow:0 2px 8px rgba(255,59,48,.25)!important;
}
.notification-delete:hover,
.btn-danger:hover{
    background:#ff1f14!important;
    border-color:#ff1f14!important;
    color:#ffffff!important;
}
.notification-delete:active,
.btn-danger:active{
    transform:translateY(1px);
}

/* v19.6 - fix reale Richieste registrazione (.details-grid) */
.details-grid{
    display:grid!important;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr))!important;
    gap:12px!important;
    align-items:stretch!important;
}
.details-grid > div{
    min-width:0!important;
    width:100%!important;
    height:auto!important;
    min-height:64px!important;
    overflow:visible!important;
}
.details-grid > div > span{
    display:block!important;
}
.details-grid .request-long-value{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    margin-top:4px!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    overflow-wrap:anywhere!important;
    word-break:break-word!important;
    line-height:1.25!important;
}
@media (min-width:1200px){
    .details-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
}

/* v19.7 - voce Notifiche admin resa esplicita */
.sidebar .admin-notifications-link{font-weight:800!important}
.sidebar .admin-notifications-link:hover{color:#a8ef2b!important}

/* v19.8 - FIX MIRATO toolbar calendario amministratore
   Sovrascrive la vecchia regola generica che forzava TUTTI i link a 38px. */
.timetable-panel .calendar-toolbar{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:18px!important;
    flex-wrap:wrap!important;
}
.timetable-panel .calendar-toolbar > div:first-child{
    flex:1 1 420px!important;
    min-width:260px!important;
}
.timetable-panel .calendar-toolbar .week-controls{
    flex:0 0 auto!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:8px!important;
    flex-wrap:nowrap!important;
    white-space:nowrap!important;
}
.timetable-panel .calendar-toolbar .week-controls form{
    margin:0!important;
    width:auto!important;
    flex:0 0 auto!important;
}
.timetable-panel .calendar-toolbar .week-controls input[type="date"]{
    width:145px!important;
    min-width:145px!important;
    max-width:145px!important;
    height:38px!important;
    padding:6px 9px!important;
}
.timetable-panel .calendar-toolbar .week-controls .calendar-arrow{
    width:38px!important;
    min-width:38px!important;
    max-width:38px!important;
    height:38px!important;
    padding:0!important;
    flex:0 0 38px!important;
}
.timetable-panel .calendar-toolbar .week-controls .btn.primary{
    width:auto!important;
    min-width:max-content!important;
    max-width:none!important;
    height:38px!important;
    padding:0 14px!important;
    flex:0 0 auto!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:visible!important;
    white-space:nowrap!important;
}
@media(max-width:900px){
    .timetable-panel .calendar-toolbar{
        align-items:flex-start!important;
        flex-direction:column!important;
    }
    .timetable-panel .calendar-toolbar .week-controls{
        width:100%!important;
        justify-content:flex-start!important;
        flex-wrap:wrap!important;
    }
}

/* v19.9 - gestione cancellazione registro spostamenti */
.movement-head{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.movement-head h1{margin-bottom:4px}
.movement-head p{margin:0;color:var(--muted)}
@media(max-width:800px){.movement-head{align-items:stretch;flex-direction:column}}

/* ===== v20 PRE-PRODUZIONE: UI moderna, responsive, sidebar colorata ===== */
:root{--blue:#39a9ff;--cyan:#23d5e6;--violet:#a66cff;--pink:#ff5d8f;--yellow:#ffbd2e;--green:#69e36d;--slate:#a7b0bd}
body{background:radial-gradient(circle at 78% -10%,rgba(38,150,95,.10),transparent 35%),#070c09}
.app-shell{min-height:100vh;margin-left:230px}.main{margin-left:0;max-width:1700px}
.sidebar{background:linear-gradient(180deg,#07110d,#07100d 65%,#050a08);box-shadow:18px 0 55px rgba(0,0,0,.25)}
.sidebar nav a{display:flex;align-items:center;gap:11px;border-radius:10px;margin:2px 8px;padding:9px 10px;transition:.18s ease}
.sidebar nav a:hover{background:rgba(117,255,105,.08);transform:translateX(2px)}
.nav-icon{font-style:normal;width:24px;min-width:24px;text-align:center;font-size:18px;font-weight:900;filter:drop-shadow(0 0 8px currentColor)}
.c-blue{color:var(--blue)}.c-orange{color:#ff9f2d}.c-violet{color:var(--violet)}.c-green{color:var(--green)}
.c-cyan{color:var(--cyan)}.c-pink{color:var(--pink)}.c-yellow{color:var(--yellow)}.c-red{color:#ff5b66}.c-slate{color:var(--slate)}
.nav-badge{margin-left:auto;background:#ff5662;color:white;border-radius:999px;padding:2px 7px;font-size:11px}
.topbar{height:70px;display:flex;align-items:center;gap:20px;padding:0 28px;border-bottom:1px solid var(--border);background:rgba(7,15,11,.88);backdrop-filter:blur(16px);position:sticky;top:0;z-index:20}
.global-search{width:min(560px,55vw);margin:0 auto;display:flex;align-items:center;gap:10px;background:#0b1510;border:1px solid #2b4035;border-radius:12px;padding:0 14px}
.global-search input{border:0;background:transparent;color:white;outline:none;width:100%;padding:12px 0;font-size:14px}
.topbar-user{display:flex;align-items:center;gap:9px}.topbar-user small{display:block;color:var(--muted);font-size:11px}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#4be76d,#a6e22e);color:#07100a;font-weight:900}
.mobile-brand{display:none;font-weight:900}.mobile-brand span{color:var(--lime)}
.panel,.card{background:linear-gradient(145deg,rgba(23,31,26,.96),rgba(14,22,17,.96));box-shadow:0 14px 38px rgba(0,0,0,.16)}
.card{transition:.2s ease}.card:hover{transform:translateY(-2px);border-color:rgba(166,226,46,.38);box-shadow:0 18px 42px rgba(0,0,0,.25)}
.profile-hero{display:flex;align-items:center;gap:18px;padding:22px;border:1px solid var(--border);border-radius:20px;background:linear-gradient(110deg,rgba(36,83,49,.28),rgba(14,22,17,.96));margin-bottom:18px}
.profile-avatar{width:72px;height:72px;border-radius:20px;display:grid;place-items:center;background:linear-gradient(135deg,#a6e22e,#35c76f);color:#07100a;font-size:25px;font-weight:900;box-shadow:0 0 28px rgba(166,226,46,.18)}
.profile-title{flex:1}.profile-title h1{margin:2px 0 7px}.profile-title small{color:var(--lime);font-weight:800}.profile-tags{display:flex;gap:10px;align-items:center;color:var(--muted)}
.profile-actions{display:flex;gap:8px}.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.profile-wide{grid-column:1/-1}
.info-list{display:grid;gap:8px}.info-list>div,.mini-row{display:flex;justify-content:space-between;gap:15px;padding:10px 0;border-bottom:1px solid var(--border)}
.info-list span,.mini-row span{color:var(--muted)}.break{overflow-wrap:anywhere;text-align:right}.big-stat{font-size:27px;font-weight:900;margin:10px 0;color:var(--lime)}
.accent-panel{border-color:rgba(166,226,46,.28);background:linear-gradient(145deg,rgba(36,72,42,.35),rgba(14,22,17,.96))}
.section-head{display:flex;align-items:center;justify-content:space-between}.section-head a{color:var(--lime);text-decoration:none}
.compact-table>div{display:grid;grid-template-columns:1fr .6fr 1fr 1fr;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);align-items:center}
.empty-state{padding:22px;border:1px dashed var(--border);border-radius:12px;color:var(--muted);text-align:center}
@media(max-width:900px){
  .app-shell{margin-left:0}.sidebar{position:relative;width:100%;height:auto;padding-bottom:8px}.sidebar nav{display:flex;overflow-x:auto;flex-wrap:nowrap;padding:0 8px}
  .sidebar nav a{min-width:max-content}.brand-logo{max-width:220px}.topbar{position:relative;padding:10px 16px;height:auto}.topbar-user{display:none}.global-search{width:100%;max-width:none}.mobile-brand{display:block}
  .profile-grid{grid-template-columns:1fr}.profile-wide{grid-column:auto}.profile-hero{align-items:flex-start;flex-wrap:wrap}.profile-actions{width:100%}
}
@media(max-width:600px){
  .main{padding:14px}.topbar{flex-direction:column;align-items:stretch;gap:8px}.mobile-brand{text-align:center}
  .profile-avatar{width:58px;height:58px}.profile-actions .btn{flex:1;text-align:center}.compact-table>div{grid-template-columns:1fr 1fr}
  table{min-width:720px}.week-grid{min-width:950px}.timetable-panel{overflow-x:auto}
}

/* v20.1 - sidebar verticale scorrevole */
.sidebar{
 position:fixed !important;left:0;top:0;bottom:0;
 height:100vh !important;height:100dvh !important;
 overflow-y:auto !important;overflow-x:hidden !important;
 -webkit-overflow-scrolling:touch;overscroll-behavior:contain;
 scrollbar-width:thin;scrollbar-color:rgba(166,226,46,.65) rgba(255,255,255,.04);
}
.sidebar::-webkit-scrollbar{width:7px}
.sidebar::-webkit-scrollbar-track{background:rgba(255,255,255,.03)}
.sidebar::-webkit-scrollbar-thumb{background:rgba(166,226,46,.6);border-radius:10px}
.sidebar .brand-logo{
 position:sticky;top:0;z-index:4;
 background:linear-gradient(180deg,#07110d 82%,rgba(7,17,13,.94));
 padding-top:14px;padding-bottom:12px;
}
.sidebar nav{padding-bottom:32px !important}
@media(max-width:900px){
 .sidebar{position:relative !important;height:auto !important;overflow-y:visible !important;overflow-x:auto !important}
 .sidebar .brand-logo{position:relative;top:auto}
}

/* v20.3 - spostamento rapido admin */
.quick-move-panel{border-color:rgba(35,213,230,.25);background:linear-gradient(145deg,rgba(15,45,39,.7),rgba(12,20,16,.98));margin-bottom:18px}
.quick-client-form select,.quick-move-client select{min-width:260px;background:#0b1510;color:#eef7f0;border:1px solid #355044;border-radius:10px;padding:11px}
.quick-move-client{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:14px 0;border-top:1px solid var(--border)}
.quick-client-name{display:flex;align-items:center;gap:10px;margin-right:auto}.quick-client-name small{display:block;color:var(--muted);margin-top:3px}
.profile-avatar.mini{width:44px;height:44px;border-radius:13px;font-size:15px}
.quick-destinations h3{margin:8px 0 12px}.quick-days{display:grid;grid-template-columns:repeat(7,minmax(125px,1fr));gap:9px;overflow-x:auto;padding-bottom:5px}
.quick-day{background:rgba(5,12,8,.5);border:1px solid var(--border);border-radius:12px;padding:9px;min-width:125px}
.quick-day-title{display:flex;justify-content:space-between;margin-bottom:8px;color:var(--muted)}
.admin-direct-move{margin:6px 0}.quick-slot{width:100%;text-align:left;border:1px solid rgba(105,227,109,.25);background:rgba(42,112,59,.14);color:#eff8f0;border-radius:10px;padding:9px;cursor:pointer;transition:.18s}
.quick-slot strong,.quick-slot span,.quick-slot small{display:block}.quick-slot strong{color:var(--green);font-size:15px}.quick-slot small{color:var(--muted);margin-top:2px}
.admin-direct-move:not(.ready) .quick-slot{opacity:.42;cursor:not-allowed}.admin-direct-move.ready .quick-slot:hover{transform:translateY(-2px);border-color:var(--green);box-shadow:0 8px 24px rgba(105,227,109,.12)}
@media(max-width:900px){.quick-days{grid-template-columns:repeat(7,150px)}.quick-client-form select,.quick-move-client select{min-width:100%;width:100%}}

/* v20.4 - pulizia storico pagamenti */
.payment-cleanup{display:flex;justify-content:space-between;align-items:end;gap:22px;margin-bottom:18px;border-color:rgba(255,91,102,.22)}
.payment-cleanup form{display:flex;align-items:end;gap:10px;flex-wrap:wrap}
.payment-cleanup label{display:block;color:var(--muted);font-size:12px;width:100%}
.payment-cleanup input[type=date]{background:#0b1510;color:#eef7f0;border:1px solid #355044;border-radius:10px;padding:10px}
.btn.danger{background:#b82f3a!important;border-color:#e45460!important;color:white!important}
.btn.danger:hover{background:#d63c49!important}
@media(max-width:800px){.payment-cleanup{align-items:stretch;flex-direction:column}.payment-cleanup form>*{width:100%}}

/* v20.6 - destinazioni admin chiaramente cliccabili */
.quick-book-label{display:block;margin-top:7px;font-size:10px;letter-spacing:.7px;color:#9cf43d}
.admin-direct-move.ready .quick-slot{background:rgba(64,150,70,.24);border-color:rgba(156,244,61,.55)}
.admin-direct-move.ready .quick-slot:hover{background:rgba(83,184,83,.34);box-shadow:0 0 0 2px rgba(156,244,61,.12),0 8px 24px rgba(105,227,109,.16)}

/* v20.8 - settimana utile automatica per gli spostamenti */
.auto-week-note{margin:10px 0 14px;padding:11px 13px;border:1px solid rgba(69,196,255,.28);background:rgba(34,126,170,.12);border-radius:10px;color:#ccefff;font-size:13px}

/* v20.9 - selezione esplicita della lezione di destinazione */
.admin-destination{margin:6px 0}
.admin-destination:disabled{opacity:.38;cursor:not-allowed}
.admin-destination:not(:disabled){background:rgba(64,150,70,.24);border-color:rgba(156,244,61,.55);cursor:pointer}
.admin-destination:not(:disabled):hover{transform:translateY(-2px);border-color:#9cf43d}
.admin-destination.selected{background:rgba(156,244,61,.22)!important;border:2px solid #9cf43d!important;box-shadow:0 0 0 3px rgba(156,244,61,.10)}
.move-confirm-panel{margin-top:16px;padding:13px 15px;border:1px solid rgba(156,244,61,.28);border-radius:12px;background:rgba(7,17,13,.78);display:flex;align-items:center;justify-content:space-between;gap:15px}
.move-confirm-panel small,.move-confirm-panel strong{display:block}.move-confirm-panel small{color:var(--muted);margin-bottom:3px}
.move-confirm-panel button:disabled{opacity:.4;cursor:not-allowed}
@media(max-width:700px){.move-confirm-panel{align-items:stretch;flex-direction:column}.move-confirm-panel button{width:100%}}

/* v21.1 - spostamenti attivi arancioni in entrambi i calendari */
.week-event.event-recovery,
.week-event.event-recovery.event-free,
.event-recovery{
    background:rgba(255,145,35,.24)!important;
    border-color:#ff9123!important;
    box-shadow:inset 0 0 0 1px rgba(255,145,35,.24)!important;
}
.week-event.event-recovery strong,
.week-event.event-recovery span,
.week-event.event-recovery em,
.event-recovery strong,
.event-recovery span,
.event-recovery em{color:#ffb35f!important}
.week-event.event-recovery em,.event-recovery em{font-weight:800}
.moved-name{display:block!important;color:#ffd0a0!important;font-size:10px!important;margin-top:2px}

/* v21.2 - conferma separata dopo richiesta registrazione */
.registration-success-card{max-width:650px;margin:9vh auto;padding:46px 38px;text-align:center;border:1px solid rgba(156,244,61,.25);border-radius:20px;background:linear-gradient(145deg,rgba(18,31,23,.98),rgba(7,15,11,.98));box-shadow:0 24px 70px rgba(0,0,0,.35)}
.success-check{width:76px;height:76px;margin:0 auto 20px;border-radius:50%;display:grid;place-items:center;background:#8fe52c;color:#07110d;font-size:44px;font-weight:900;box-shadow:0 0 30px rgba(143,229,44,.22)}
.registration-success-card h1{font-size:34px;margin:8px 0 12px}
.registration-success-card p{font-size:16px;line-height:1.5}
.request-number{display:inline-block;margin:15px 0;padding:9px 15px;border-radius:999px;background:rgba(143,229,44,.12);border:1px solid rgba(143,229,44,.25);color:#a7f04e;font-weight:800}
.success-login{display:inline-block;margin-top:20px;text-decoration:none}

/* v21.3 - pulsante invio registrazione chiaramente attivo */
.registration-submit{
  background:#98e92f!important;
  border:1px solid #b7ff55!important;
  color:#07110d!important;
  opacity:1!important;
  filter:none!important;
  box-shadow:0 0 0 1px rgba(152,233,47,.16),0 8px 22px rgba(110,210,35,.18)!important;
  cursor:pointer!important;
  font-weight:800!important;
}
.registration-submit:hover{
  background:#adf33f!important;
  transform:translateY(-1px);
  box-shadow:0 0 0 2px rgba(152,233,47,.18),0 10px 26px rgba(110,210,35,.24)!important;
}
.registration-submit:active{transform:translateY(0)}

/* ===== v21.8 - responsive smartphone/tablet ===== */
html,body{width:100%;max-width:100%;overflow-x:hidden}
img,svg,video{max-width:100%;height:auto}
.app-shell,.main,.panel,.card{min-width:0;max-width:100%}
.panel{overflow-wrap:anywhere}
.scroll,.timetable-panel,.calendar-panel{max-width:100%;-webkit-overflow-scrolling:touch}

@media(max-width:900px){
  .sidebar{width:100%!important;max-width:100%!important;padding:10px 8px 8px!important;border-right:0!important;border-bottom:1px solid var(--border)}
  .sidebar .brand-logo{width:150px!important;max-width:42vw!important;margin:0 auto 8px!important;padding:4px 0!important}
  .sidebar .brand-logo img{width:100%!important;height:auto!important}
  .sidebar nav{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:5px!important;overflow-x:auto!important;overflow-y:hidden!important;padding:2px 4px 8px!important;scrollbar-width:none}
  .sidebar nav::-webkit-scrollbar{display:none}
  .sidebar nav a{flex:0 0 auto!important;min-width:max-content!important;margin:0!important;padding:8px 10px!important;font-size:13px!important}
  .nav-icon{font-size:16px!important;width:20px!important;min-width:20px!important}
  .app-shell{margin-left:0!important;width:100%!important;max-width:100%!important}
  .main{width:100%!important;max-width:100%!important;margin:0!important;padding:16px!important;overflow:hidden}
  .topbar{width:100%!important;max-width:100%!important;position:relative!important}
  .cards,.cards.compact,.dashboard-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .card{min-width:0!important}
  .head,.dashboard-head,.calendar-toolbar{max-width:100%!important}
  .panel>.scroll,.panel>.timetable-panel{width:100%;overflow-x:auto}
  table{display:table;max-width:none}
}

@media(max-width:600px){
  body{font-size:14px}
  .main{padding:10px!important}
  h1{font-size:25px;line-height:1.12}
  h2{font-size:20px}
  .panel{padding:14px!important;border-radius:13px!important}
  .cards,.cards.compact,.dashboard-cards{grid-template-columns:1fr!important;gap:9px!important}
  .card{padding:14px!important}
  .card b{font-size:24px!important}
  .topbar{padding:9px 10px!important}
  .mobile-brand{text-align:left!important}
  .global-search{width:100%!important;margin:0!important}
  .global-search input{min-width:0!important}
  .head,.dashboard-head,.movement-head,.section-head{flex-direction:column!important;align-items:stretch!important;gap:10px!important}
  .row,.search,.profile-actions,.week-controls{width:100%;max-width:100%}
  .row>* ,.search>*{max-width:100%}
  .btn{max-width:100%}
  .profile-hero{padding:14px!important}
  .info-list>div,.mini-row{flex-direction:column;gap:4px}
  .break{text-align:left}

  /* I calendari restano leggibili con scorrimento solo dentro il riquadro,
     senza allargare l'intera pagina del telefono. */
  .timetable-panel,.calendar-panel{width:100%!important;max-width:100%!important;overflow-x:auto!important;overscroll-behavior-x:contain}
  .week-grid{min-width:760px!important;grid-template-columns:52px repeat(7,minmax(100px,1fr))!important}
  .month-calendar{min-width:760px!important;grid-template-columns:repeat(7,minmax(105px,1fr))!important}
  .calendar-toolbar{min-width:0!important;width:100%!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:10px!important}
  .calendar-toolbar .week-controls,.calendar-controls,.calendar-nav,.week-nav{width:100%!important;max-width:100%!important;display:flex!important;flex-wrap:wrap!important;justify-content:flex-start!important;white-space:normal!important}
  .calendar-toolbar .week-controls input[type=date],.calendar-toolbar input[type=date],.calendar-controls input[type=date]{width:min(155px,55vw)!important;min-width:0!important}
  .calendar-move-chooser select{width:100%!important;max-width:100%!important}

  /* Tabelle: scroll locale, non zoom/ridimensionamento dell'intera pagina. */
  .scroll{width:100%!important;max-width:100%!important;overflow-x:auto!important}
  table{min-width:640px!important;font-size:13px}
  th,td{padding:9px!important}

  .quick-client-form select,.quick-move-client select{width:100%!important;min-width:0!important}
  .quick-move-client{align-items:stretch!important}
  .quick-days{grid-template-columns:repeat(7,112px)!important;width:100%!important;max-width:100%!important;overflow-x:auto!important}
  .request-preferences,.details-grid,.client-form-grid{grid-template-columns:1fr!important}
}

@media(max-width:380px){
  .main{padding:8px!important}
  .panel{padding:12px!important}
  .sidebar nav a{padding:7px 8px!important;font-size:12px!important}
  h1{font-size:22px}
}
