/* ============================================================
   SweetAlert2: evita scroll orizzontale e overflow nei modali
   (lista assenze / note / causali)
   ============================================================ */
.swal2-popup {
  box-sizing: border-box;
  max-width: min(520px, 92vw) !important;
}
.swal2-html-container {
  overflow-x: hidden !important;
}
.swal2-select,
.swal2-input,
.swal2-textarea {
  box-sizing: border-box !important;
  max-width: 100% !important;
}


/* IT datepicker bridge: native calendar without exposing ISO */
.it-date-input{
  position: relative;
  display: inline-block;
  /* Campo data compatto: non deve coprire i campi successivi nel form */
  /* più compatto: evita sovrapposizioni con label/select (desktop) */
  width: 90px;
  flex: 0 0 90px;
  max-width: 100%;
  margin-right: 6px;
}
.it-date-input > input[type="text"]{
  width: 100%;
  position: relative;
  z-index: 1;
}
.it-date-picker{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0.01;
  cursor: pointer;
  z-index: 2;
  pointer-events: none;
}

@media (max-width: 768px) {
  .it-date-input{ width: 100%; flex: 1 1 100%; }
}

/* Form Aggiungi Assenza: layout robusto (evita sovrapposizioni) */
#ferie-form{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
}
#ferie-form label{
  flex: 0 0 auto;
  margin-right: 4px;
}
#ferie-form select, #ferie-form input[type="text"]{
  max-width: 100%;
}
.turnix-inline-field{
  display: flex;
  align-items: center;
  gap: 6px;
}
.is-hidden{
  display: none !important;
}

/* Top bar mobile: titolo in una riga + azioni scrollabili */
.top-bar > div:first-child{
  flex: 1 1 100%;
  min-width: 0;
}
.top-bar > div:first-child strong{
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
@media (max-width: 768px){
  .top-bar{
    padding: 10px 12px;
    row-gap: 8px;
  }
  .top-bar > div:last-child{
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: 8px;
    width: 100%;
  }
  .top-bar a, .top-bar button{
    flex: 0 0 auto;
  }
}

/* ---------- BLOCCO 1: GLOBAL, TOP BAR, CONTAINERS ---------- */
body {
    background: url("/static/img/Sfondo TurniX 1080P.png") no-repeat center center fixed;
    background-size: cover;
    font-family: Arial, sans-serif;
    margin: 0;
    color: white;
    font-size: 0.9rem;
}

a {
    color: #00bfff;
}

.top-bar {
    background-color: rgba(0, 0, 0, 0.8);
    padding: 10px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
}
.top-bar a {
    color: white;
    text-decoration: none;
    margin-left: 15px;
    font-weight: bold;
}

.top-bar a:hover {
    text-decoration: underline;
}

.container, .calendar-container {
    max-width: 1200px;
    margin: auto;
    padding: 10px;
    width: 95%;
}

/* ---------- BLOCCO 2: FORM BOX, CALENDAR, TABLES ---------- */
.form-box {
    background-color: rgba(255,255,255,0.05);
    padding: 15px;
    border-radius: 8px;
    margin-top: 15px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

/* Compattazione campi form assenze (evita sovrapposizioni/sprechi spazio) */
#ferie-form .it-date-input{max-width: 140px;}
#ferie-form #data_inizio,
#ferie-form #data_fine{width: 120px;}
#ferie-form select{
  max-width: 180px;
}
#ferie-form .select2-container{max-width: 180px !important;}
#ferie-form #risorsa + .select2-container{max-width: 240px !important;}

.form-box label {
    margin-right: 5px;
}

input, select, button {
    padding: 8px;
    border-radius: 5px;
    border: none;
    font-size: 0.9rem;
}

select#risorsa {
    width: 220px;
    max-width: 100%;
}

/* Date inputs (assenze) */
.it-date-input {
    position: relative;
    width: 140px;
    max-width: 140px;
}
.it-date-input input[type="text"] {
    width: 100%;
}
.it-date-picker {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}
#tipo_assenza, #causale {
    width: 170px;
    max-width: 170px;
}
.select2-container {
    min-width: 170px;
}

button {
    background-color: #27ae60;
    color: white;
    cursor: pointer;
}

button:hover {
    background-color: #219150;
}

#calendar {
    background-color: white;
    color: black;
    border-radius: 8px;
    padding: 5px;
    font-size: 0.85rem;
}

.fc-daygrid-day:not(.fc-day-other) {
    background-color: #1a2a3a;
    color: white;
}

.fc-day-other {
    background-color: #0f1b2a !important;
    color: #aaa !important;
}

.fc-day-today {
    background-color: #004080 !important;
    color: white !important;
}

.fc .fc-list-event-title,
.fc .fc-list-event-time {
    color: black !important;
    background-color: white;
    padding: 4px;
}

.fc .fc-list-day-cushion {
    background: #003d66 !important;
    color: white;
    font-weight: bold;
}

.fc .fc-list-event-dot {
    background-color: #27ae60 !important;
}

/* ---------- BLOCCO 3: SELECT2, HOMEPAGE, LOGIN PAGE ---------- */
.select2-container--default .select2-selection--single {
    background-color: white;
    color: black;
    border-radius: 4px;
    height: 34px;
    font-size: 0.9rem;
}

.select2-container--default .select2-results__option {
    color: black;
    font-size: 0.9rem;
}

.select2-container--default .select2-results__option--highlighted {
    background-color: #2980b9;
    color: white;
}

body.homepage {
    background-color: #0f1b2a;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    position: relative;
    overflow: hidden;
}

.welcome-box {
    background-color: rgba(0, 0, 0, 0.8);
    padding: 30px;
    border-radius: 12px;
    text-align: center;
    max-width: 400px;
    width: 90%;
    z-index: 1;
}

.welcome-box img {
    max-width: 220px;
    margin-bottom: 20px;
}

.watermark {
    position: absolute;
    font-size: 3rem;
    color: rgba(255, 255, 255, 0.04);
    font-weight: bold;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(-15deg);
    z-index: 0;
    user-select: none;
}

.login-btn {
    padding: 10px 20px;
    font-size: 1rem;
    background-color: #27ae60;
    color: white;
    border: none;
    border-radius: 6px;
    cursor: pointer;
}

.login-btn:hover {
    background-color: #219150;
}

body.login-page {
    background-color: #0f1b2a;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
}

/* ---------- BLOCCO 4: RISORSE LIST ---------- */
.login-box {
    background-color: rgba(0, 0, 0, 0.6);
    padding: 30px;
    border-radius: 12px;
    width: 350px;
    text-align: center;
}

.login-box input[type="text"],
.login-box input[type="password"] {
    width: 80%;
    padding: 10px;
    margin: 8px 0;
    border: none;
    border-radius: 6px;
    font-size: 1rem;
}

.login-box .error {
    color: #e74c3c;
    margin-top: 10px;
}

ul.risorse-list {
    list-style: none;
    padding: 0;
    margin: 0;
    width: 100%;
}

ul.risorse-list li {
    background-color: rgba(255, 255, 255, 0.08);
    border-radius: 6px;
    padding: 10px;
    margin-bottom: 10px;
}

.risorsa-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
}

.nome-risorsa {
    font-weight: bold;
    font-size: 0.95rem;
    color: white;
    flex: 1;
    word-break: break-word;
}

.risorsa-info form {
    margin-left: auto;
}
.risorsa-info button {
    width: 100%;
}

textarea#note {
    width: 100%;
    padding: 8px;
    border-radius: 5px;
    font-size: 0.9rem;
    box-sizing: border-box;
    resize: vertical;
    margin-top: 6px;
}


/* ✅ NUOVO BLOCCO: TABELLONE STORICO */
.tabella-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    width: 100%;
}

.tabella-scroll table {
    min-width: 600px;
}


#tipo_assenza {
    min-width: 180px;
}

.select2-container--default .select2-selection--single {
    min-width: 180px !important;
}

/* ---------- BLOCCO 5: RESPONSIVE DESIGN COMPLETO ---------- */

@media (max-width: 480px) {
    .tabella-scroll {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .tabella-scroll table {
        min-width: 650px;
        width: max-content;
    }

    table, th, td {
        font-size: 0.7rem;
        padding: 6px 4px;
        word-break: break-word;
        white-space: normal;
    }

    .top-bar .btn-link {
        font-size: 0.8rem;
        padding: 6px 10px;
    }
}



@media (min-width: 1024px) {
    #calendar {
        font-size: 0.9rem;
    }

    .calendar-container {
        max-width: 1400px;
        width: 95%;
    }
}
/* Toolbar FullCalendar: rendila scura così il titolo risalta */
#calendar .fc-header-toolbar {
    background: #0f1b2a;
    border-radius: 8px;
    padding: 10px 12px;
    margin: 8px 8px 12px 8px;
}

/* Titolo mese/anno: leggibile + maiuscolo */
#calendar .fc-header-toolbar .fc-toolbar-title {
    color: #ffffff !important;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 1px;
}







/* =========================
   TurniX - Mobile UX fixes
   ========================= */

/* SweetAlert2 - mobile safe */
.small-swal.swal2-popup {
  max-width: 520px;
  width: min(92vw, 520px);
}

@media (max-width: 480px) {
  .small-swal.swal2-popup {
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100vh !important;
    max-height: 100vh !important;
    margin: 0 !important;
    border-radius: 0 !important;
  }
  .swal2-container {
    padding: 0 !important;
  }
  .swal2-html-container {
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    max-height: calc(100vh - 220px);
  }
}

/* Navbar/top-bar: niente wrap rotto su mobile, scroll orizzontale */
@media (max-width: 768px) {
  .top-bar {
    flex-wrap: nowrap !important;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: 10px;
  }
  .top-bar a,
  .top-bar .btn-link {
    flex: 0 0 auto;
    white-space: nowrap;
  }
}

/* Tabelle/layout: evita compressione illeggibile su mobile */
.table-responsive,
.calendar-container,
.container {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

table {
  min-width: 720px;
}
@media (max-width: 480px) {
  table { min-width: 640px; }
}

/* Checkbox/tap targets */
.turnix-select-checkbox {
  width: 22px;
  height: 22px;
}

/* --- Mobile navbar: single row scroll (professional) --- */
@media (max-width: 768px) {
  .top-bar {
    flex-direction: row !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    gap: 10px;
    padding: 10px 12px;
  }

  .top-bar > div {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 10px;
    align-items: center;
    width: max-content !important;
  }

  .top-bar a, .top-bar .btn-link, .top-bar button {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
    max-width: none !important;
  }
}



/* --- TurniX: Calendar actions row (ESPORTA + selezione) --- */
.calendar-actions-row{
  display:flex;
  align-items:center;
  gap:12px;
  margin: 15px 0;
  flex-wrap: nowrap;
}
.selection-toolbar{
  display:flex;
  align-items:center;
  gap:10px;
}
.selection-toolbar.is-hidden{
  visibility:hidden;
  pointer-events:none;
}
.selection-toolbar #selection-counter{
  font-weight:600;
}
@media (max-width: 768px){
  .calendar-actions-row{
    overflow-x:auto;
    -webkit-overflow-scrolling: touch;
  }
/* --- TurniX: Search bar near ESPORTA --- */
.calendar-search-wrap{
  position: relative;
  display: inline-flex;
  align-items: center;
}
.calendar-search-input{
  height: 40px;
  line-height: 40px;
  padding: 0 34px 0 12px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(0,0,0,0.20);
  color: #fff;
  outline: none;
  min-width: 220px;
}
.calendar-search-input::placeholder{
  color: rgba(255,255,255,0.55);
}
.calendar-search-clear{
  position: absolute;
  right: 8px;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  border: 0;
  background: rgba(255,255,255,0.10);
  color: rgba(255,255,255,0.9);
  display: none;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 5;
}
#calendar-search-wrap.has-value .calendar-search-clear{
  display: inline-flex;
}
.calendar-actions-row .btn-esporta{
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 14px;
}

.turnix-filter-hidden{
  display: none !important;
}

}

/* --- TurniX: Italian date inputs sizing (calendar form) --- */
#ferie-form .it-date-input input[type="text"]{
  width: 120px;
  max-width: 120px;
}
@media (max-width: 768px){
  #ferie-form .it-date-input input[type="text"]{
    width: 100%;
    max-width: 100%;
  }
}


/* === TurniX v36: Navbar unificata (1 riga, no wrap) === */
.top-bar{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:nowrap;
  overflow:hidden;
}
.top-bar .top-bar-title{
  flex: 0 1 auto;
  min-width: 160px;
  max-width: 42vw;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.top-bar .top-bar-actions{
  display:flex;
  align-items:center;
  flex: 1 1 auto;
  min-width: 0;
  gap:10px;
  overflow:hidden;
}
.top-bar .top-bar-actions-left{
  display:flex;
  align-items:center;
  gap:8px;
  flex: 1 1 auto;
  min-width: 0;
  overflow-x:auto;
  overflow-y:hidden;
  white-space:nowrap;
  -webkit-overflow-scrolling: touch;
}
.top-bar .top-bar-actions-right{
  display:flex;
  align-items:center;
  gap:8px;
  flex: 0 0 auto;
  margin-left:auto;
  white-space:nowrap;
}

/* bottoni navbar uniformi */
.btn-link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding: 8px 12px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.15);
  background: rgba(18,28,40,0.65);
  color: #fff;
  text-decoration:none;
  cursor:pointer;
  font-weight: 600;
}
.btn-link:hover{
  border-color: rgba(255,255,255,0.28);
}
.top-bar a.btn-link, .top-bar button.btn-link{
  /* eredita da .btn-link */
}
.top-bar a.btn-link:hover, .top-bar button.btn-link:hover{
  border-color: rgba(255,255,255,0.28);
}

.btn-link.btn-link-big{
  font-size: 1.05rem;
  padding: 16px 22px;
  min-width: 260px;
  justify-content: center;
}

.top-bar a.btn-danger, .top-bar button.btn-danger{
  background: #d94848 !important;
  border-color: rgba(0,0,0,0.15) !important;
  color:#fff !important;
}
.top-bar a.btn-danger:hover, .top-bar button.btn-danger:hover{
  filter: brightness(0.95);
}

/* tooltip semplice */
[data-tip]{
  position:relative;
}
[data-tip]:hover::after{
  content: attr(data-tip);
  position:absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  background: rgba(0,0,0,0.85);
  color:#fff;
  padding: 6px 8px;
  border-radius: 8px;
  font-size: 12px;
  white-space: nowrap;
  z-index: 9999;
  pointer-events:none;
}

/* === TurniX v36: form aggiungi assenza layout === */
#ferie-form{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:16px;
}
#ferie-form label{
  flex: 0 0 auto;
  white-space: nowrap;
}
#ferie-form .it-date-input{
  flex: 0 0 100px; /* ridotto ~1/3 */
  max-width: 100px;
}
#ferie-form select, #ferie-form input[type="text"]{
  max-width: 100%;
}
#tipo_assenza{
  min-width: 150px;
}

/* conflitto pulse 5s rosso intenso */
.turnix-conflict-pulse{
  animation: turnixConflictPulse 5s ease-in-out;
}
@keyframes turnixConflictPulse{
  0%{ box-shadow: 0 0 0 0 rgba(255,0,0,0.0); background-color: inherit; }
  10%{ box-shadow: 0 0 0 6px rgba(255,0,0,0.65); background-color: rgba(255,0,0,0.30); }
  50%{ box-shadow: 0 0 0 10px rgba(255,0,0,0.75); background-color: rgba(255,0,0,0.38); }
  100%{ box-shadow: 0 0 0 0 rgba(255,0,0,0.0); background-color: inherit; }
}


/* TurniX - versione sempre in basso a destra (tutti i template) */
.signature{
  position: fixed;
  right: 12px;
  bottom: 8px;
  left: auto;
  font-size: 0.85rem;
  opacity: 0.75;
  z-index: 9999;
  pointer-events: none;
  user-select: none;
}

/* SweetAlert2 compact selects (evita modali troppo alti/lunghi) */
.swal2-select.tx-swal-compact{
  width: auto !important;
  min-width: 180px;
  max-width: 100%;
  height: 40px;
  padding: 6px 10px;
}

/* Storico: filtri più coerenti */
.storico-filters .grid{
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}
.storico-filters input[type="date"],
.storico-filters input[type="text"],
.storico-filters input[type="number"],
.storico-filters select{
  width: 100%;
}


/* TurniX navbar logo */
.turnix-nav-logo{height:28px; width:auto; margin-right:10px; vertical-align:middle; filter: drop-shadow(0 0 6px rgba(0,255,255,0.25));}
.top-bar-title{display:flex; align-items:center; gap:10px;}


/* Ferie form compact */
#ferie-form .select2-container{width:160px !important;}
#ferie-form .it-date-input{width:150px;}
#ferie-form input[type="text"]{width:150px;}
#ferie-form button[type="submit"]{min-width:44px; padding:8px 12px; font-size:18px; line-height:1;}


/* TurniX - Migliorie form assenze (DAL/AL + spaziatura) */
.turnix-date-label{ font-weight:700; letter-spacing:0.5px; }
#ferie-form label{ margin-right:6px; }
#ferie-form .it-date-input{ margin-right:4px; }


/* TurniX V47 - assenze form labels */
.turnix-date-label{display:inline-block;min-width:28px;margin:0 10px 0 14px;font-weight:700;letter-spacing:0.5px;opacity:.95;}
form#ferie-form{display:flex;flex-wrap:wrap;align-items:center;gap:14px;}
form#ferie-form .it-date-input{display:inline-flex;align-items:center;}
form#ferie-form .it-date-input input[type="text"]{width:115px;}
form#ferie-form .it-date-input input[type="date"]{width:115px;}
form#ferie-form label{margin-right:6px;}


/* TurniX V48 - date labels fix */
form#ferie-form .turnix-date-label{color:var(--text,#fff);display:inline-flex;align-items:center;justify-content:center;min-width:34px;margin:0 12px;white-space:nowrap;}
form#ferie-form .it-date-input{margin-right:8px;}
@media (max-width: 1200px){form#ferie-form .turnix-date-label{margin:0 8px;}}


/* TurniX V49 - ferie form readability */
form#ferie-form{display:flex;flex-wrap:wrap;align-items:center;gap:18px;}
form#ferie-form .turnix-inline-label{color:#ffffff;font-weight:800;letter-spacing:.6px;display:inline-flex;align-items:center;justify-content:center;min-width:38px;padding:2px 6px;border-radius:8px;background:rgba(255,255,255,.08);line-height:1;}
form#ferie-form .it-date-input{display:inline-flex;align-items:center;gap:8px;}
form#ferie-form .it-date-input input[type="text"],
form#ferie-form .it-date-input input[type="date"]{width:130px;}
form#ferie-form label{color:#ffffff;opacity:.95;font-weight:700;}
form#ferie-form select, form#ferie-form input{max-width:320px;}
@media (max-width: 1100px){form#ferie-form{gap:14px;} form#ferie-form .turnix-inline-label{min-width:34px;}}


/* TurniX V50 - inline labels alignment */
form#ferie-form .turnix-inline-label{min-width:70px;}
@media (max-width: 1100px){form#ferie-form .turnix-inline-label{min-width:62px;}}


/* V51 spacing fix: uniform margins between labels and date inputs */
form#ferie-form .turnix-inline-label{margin-left:12px;margin-right:12px;}
form#ferie-form .it-date-input input[type='text']{margin-left:4px;margin-right:4px;}
form#ferie-form .it-date-input{margin-right:10px;}


/* V52 label-input spacing: keep breathing room between pills and inputs */
form#ferie-form .turnix-inline-label{margin:0 10px;}
form#ferie-form .turnix-inline-label + .it-date-input{margin-left:10px;}
form#ferie-form .it-date-input + .turnix-inline-label{margin-left:10px;}
form#ferie-form .it-date-input{margin-right:10px;}


/* === TurniX v56 hotfixes === */
.turnix-nav-logo{height:100%;max-height:100%;width:auto;object-fit:contain;display:block;}
.top-bar-title{display:flex;align-items:center;gap:10px;height:100%;}
.swal2-popup, .swal2-popup *{box-sizing:border-box !important;}
.swal2-html-container{margin:0 !important;padding:0 !important;text-align:left !important;width:100% !important;}
.swal2-html-container label{display:block !important;margin:0 0 6px 0 !important;}
.swal2-select,.swal2-input,.swal2-textarea{width:100% !important;max-width:100% !important;box-sizing:border-box !important;}


/* === TurniX V.57 - Navbar constraint + SweetAlert2 modal refinement (non-breaking) === */

/* Navbar: keep a fixed, professional height. Logo must adapt to navbar, not vice versa. */
.top-bar{
  height: 60px;
  max-height: 60px;
  align-items: center;
}
.top-bar-title{
  height: 100%;
  display: flex;
  align-items: center;
}

/* Logo scales within navbar leaving a little vertical "air". */
.turnix-nav-logo{
  height: 80%;
  max-height: 80%;
  width: auto;
  object-fit: contain;
  margin-right: 10px;
  display: block;
}

/* SweetAlert2: enforce border-box and symmetric gutters; avoid any "bleeding" */
.swal2-popup{
  overflow: hidden; /* keep inner elements from touching/breaking popup borders */
}
.swal2-popup .swal2-html-container{
  box-sizing: border-box;
  padding: 16px 20px !important;
  margin: 0 !important;
}
.swal2-popup .swal2-html-container *{
  box-sizing: border-box;
  max-width: 100%;
}
/* SweetAlert2: keep the modals clean and predictable.
   Do NOT force ALL labels to display, otherwise default SweetAlert2 elements (e.g. checkbox)
   can become visible and pollute the UI. */
.swal2-popup .turnix-swal-label{
  display: block !important;
  font-size: 14px !important;
  font-weight: 600;
  margin: 0 0 8px 0 !important;
  text-align: left !important;
}

/* Hide SweetAlert2 optional checkbox UI (not used in TurniX flows). */
.swal2-popup label.swal2-checkbox,
.swal2-popup input.swal2-checkbox,
.swal2-popup .swal2-checkbox{
  display: none !important;
}
.swal2-popup select,
.swal2-popup select.swal2-select,
.swal2-popup input,
.swal2-popup input.swal2-input,
.swal2-popup textarea,
.swal2-popup textarea.swal2-textarea{
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  margin: 0 !important;
}


/* =========================
   NAVBAR (V.58) – hard constraints
   The navbar height is the constraint. The logo must fit inside it.
   ========================= */
.top-bar{
  height: 70px !important;
  max-height: 70px !important;
  align-items: center !important;
}

.top-bar-title{
  height: 100% !important;
  align-items: center !important;
}

.turnix-nav-logo{
  height: 80% !important;
  max-height: 80% !important;
  width: auto !important;
  object-fit: contain !important;
  flex: 0 0 auto !important;
}


/* TurniX build/version tag (chirurgico, non invasivo) */
.turnix-version{
  position: fixed;
  right: 14px;
  bottom: 14px;
  font-size: 12px;
  opacity: 0.75;
  z-index: 9999;
  pointer-events: none;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(0,0,0,.35);
  backdrop-filter: blur(6px);
  box-shadow: 0 6px 18px rgba(0,0,0,.25);
}

/* La versione viene esposta tramite .turnix-version: nascondi l'eventuale signature legacy per evitare sovrapposizioni */
.signature{display:none !important;}

/* === TurniX V.64 - Barra "Aggiungi Assenza" (UI moderna, allineata, non invasiva) === */
.form-box{gap:12px;}
form#ferie-form{
  display:flex !important;
  flex-wrap:wrap;
  align-items:center;
  gap:12px !important;
  width:100%;
}
form#ferie-form .turnix-inline-label{
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .8px;
  text-transform: uppercase;
  padding: 6px 10px;
  border-radius: 999px;
  margin: 0 !important;
  min-width: unset !important;
  background: rgba(255,255,255,.08);
  box-shadow: 0 6px 16px rgba(0,0,0,.25);
}
form#ferie-form select,
form#ferie-form input[type='text'],
form#ferie-form input[type='date']{
  border-radius: 10px;
  background: rgba(255,255,255,.92);
  color: #0f172a;
  box-shadow: 0 10px 24px rgba(0,0,0,.22);
  border: 1px solid rgba(255,255,255,.22);
}
form#ferie-form .select2-container--default .select2-selection--single{
  border-radius: 10px;
  height: 38px;
  border: 1px solid rgba(255,255,255,.22);
  box-shadow: 0 10px 24px rgba(0,0,0,.22);
}
form#ferie-form .select2-container--default .select2-selection--single .select2-selection__rendered{
  line-height: 38px;
  color: #0f172a;
}
form#ferie-form .select2-container--default .select2-selection--single .select2-selection__arrow{
  height: 38px;
}

/* Bottone submit: + Assenza */
form#ferie-form .btn-add-assenza{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding: 10px 16px;
  font-size: 16px;
  font-weight: 800;
  border-radius: 12px;
  box-shadow: 0 14px 28px rgba(0,0,0,.28);
  white-space: nowrap;
}
form#ferie-form .btn-add-assenza:hover{filter: brightness(1.05); transform: translateY(-1px);}

/* FullCalendar: giorni completi e in maiuscolo */
.fc .fc-col-header-cell-cushion{ text-transform: uppercase; letter-spacing: .6px; }

/* FullCalendar: titolo mese/anno moderno con pulse leggero */
@keyframes turnixPulseTitle{
  0%{ transform: scale(1); }
  50%{ transform: scale(1.02); }
  100%{ transform: scale(1); }
}
.fc .fc-toolbar-title{
  text-transform: capitalize;
  letter-spacing: 1px;
  text-shadow: 0 10px 28px rgba(0,0,0,.35);
  animation: turnixPulseTitle 2.8s ease-in-out infinite;
}

/* === TurniX V.66 - Hotfix: labels "DAL/AL/TIPO" sempre visibili (no overlap) === */
#ferie-form .turnix-inline-label{
  position: relative;
  z-index: 5;
  flex: 0 0 auto;
}
#ferie-form .it-date-input{
  position: relative;
  z-index: 1;
  margin: 0;
}
#ferie-form .it-date-input > input[type="text"]{
  position: relative;
  z-index: 1;
}
#ferie-form .it-date-picker{
  z-index: 2;
}
/* Garantisce spazio tra pill e campi, evitando sovrapposizioni in wrap */
#ferie-form{row-gap: 14px; column-gap: 14px;}

/* =============================
   TurniX V.67 – Fix definitivo overlap label/date
   (scoped SOLO al form assenze #ferie-form)
   ============================= */
form#ferie-form{display:flex;flex-wrap:wrap;align-items:center;gap:16px;}
form#ferie-form .turnix-field{display:flex;align-items:center;gap:10px;flex:0 0 auto;}
form#ferie-form .turnix-field-date .turnix-inline-label{min-width:44px;}
form#ferie-form .turnix-inline-label{
  margin:0 !important;
  white-space:nowrap;
  flex:0 0 auto;
}
form#ferie-form .it-date-input{position:relative;display:inline-flex;align-items:center;flex:0 0 auto;}
/* il date overlay resta nel suo contenitore e non invade i vicini */
form#ferie-form .it-date-input input.it-date-picker,
form#ferie-form .it-date-input input[type="date"].it-date-picker{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  opacity:0;
  z-index:2;
}
form#ferie-form .it-date-input input[type="text"]{position:relative;z-index:1;}

/* in wrap, ogni campo va a capo pulito senza sovrapporsi */
@media (max-width: 980px){
  form#ferie-form{gap:12px;}
  form#ferie-form .turnix-field{flex-wrap:nowrap;}
}


/* =============================
   TurniX V.68 – Hotfix leggibilità label-pill su campi chiari (date/select)
   (scoped SOLO al form assenze #ferie-form)
   ============================= */
#ferie-form .turnix-inline-label{
  background: rgba(0,0,0,.55) !important;
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 6px 16px rgba(0,0,0,.35);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  text-shadow: 0 2px 8px rgba(0,0,0,.55);
  mix-blend-mode: normal;
}




/* =============================
   TurniX V.69 – Fix definitivo sovrapposizione label/date (DAL/AL)
   Causa: regole duplicate su .it-date-input che forzavano due input in flow (gap/width),
          facendo "sforare" il blocco e inglobare i label adiacenti.
   Fix: reset scoped su #ferie-form + layout rigido per i campi data.
   ============================= */
#ferie-form .turnix-field-date{
  display: grid;
  grid-template-columns: auto 160px;
  align-items: center;
  column-gap: 10px;
}
#ferie-form .turnix-field-date .turnix-inline-label{min-width:44px;}
#ferie-form .it-date-input{
  position: relative !important;
  display: block !important;
  width: 160px !important;
  flex: 0 0 160px !important;
  max-width: 160px !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
  overflow: hidden; /* impedisce "sforamenti" visivi */
}
#ferie-form .it-date-input > input[type="text"]{
  width: 100% !important;
  display: block !important;
  position: relative !important;
  z-index: 1 !important;
}
#ferie-form .it-date-input > input[type="date"].it-date-picker,
#ferie-form .it-date-input > input.it-date-picker{
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  opacity: 0 !important;
  z-index: 2 !important;
}
/* Su schermi stretti, i date field possono scendere a capo senza collisioni */
@media (max-width: 520px){
  #ferie-form .turnix-field-date{grid-template-columns: auto 1fr;}
  #ferie-form .it-date-input{width: 100% !important; max-width: 100% !important; flex-basis: 100% !important;}
}

