/* Turni CSS RC5.2.1.25 — Restyling VISIVO PRODUZIONE integrato nell'app originale.
   Zero modifiche a logica, dati, RPC, push, SW, approvazioni e stampa.
   Sfondo: usa esclusivamente l'asset aziendale originale, invariato. */
@media screen {
  body.glass-ui {
    --glass-panel:rgba(255,255,255,.62);
    --glass-input:rgba(255,255,255,.89);
    --glass-border:rgba(255,255,255,.86);
    --glass-shadow:0 12px 32px rgba(18,53,85,.11);
    background:linear-gradient(123deg,#eef4f9 0%,#e8f1f9 42%,#eff6fa 100%);
  }
  body.glass-ui .main::before,body.glass-ui .auth-shell::before{opacity:.30;filter:blur(.45px) saturate(.97);background-size:min(95%,1120px) auto}
  body.glass-ui .header{background:rgba(11,39,70,.95);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);box-shadow:0 6px 26px rgba(7,33,59,.14)}
  body.glass-ui .header .brand strong{font-weight:850;letter-spacing:-.3px}
  body.glass-ui .panel,body.glass-ui .stat,body.glass-ui .auth-card,body.glass-ui .monthly-hours-mobile,body.glass-ui .grid-version-admin{
    background:var(--glass-panel);border-color:var(--glass-border);box-shadow:var(--glass-shadow);
    -webkit-backdrop-filter:blur(17px) saturate(1.2);backdrop-filter:blur(17px) saturate(1.2);
  }
  body.glass-ui .panel{border-radius:19px}
  body.glass-ui .panel.padded{padding:clamp(16px,2.3vw,25px)}
  body.glass-ui .panel-top{padding:16px 19px}
  body.glass-ui .monthly-hours-heading{margin-bottom:6px}
  body.glass-ui .monthly-hours-desktop{gap:10px}
  body.glass-ui .monthly-hours-desktop .stat{min-height:68px;padding:10px 16px;border-radius:15px}
  body.glass-ui .monthly-hours-desktop .stat small{font-size:11px}
  body.glass-ui .monthly-hours-desktop .stat strong{font-size:21px;line-height:1.08;margin-top:4px}
  body.glass-ui .monthly-hours-block{margin-bottom:14px}
  body.glass-ui .section-title h1{font-weight:850;letter-spacing:-.65px}
  body.glass-ui #calendarView .section-title p{display:none}
  body.glass-ui .btn{border-radius:11px;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease,transform .18s ease}
  body.glass-ui .btn:not(:disabled):active{transform:scale(.98)}
  body.glass-ui .btn.outline{background:rgba(255,255,255,.74);border-color:rgba(192,214,230,.84)}
  body.glass-ui .btn.outline:hover{background:rgba(255,255,255,.96);border-color:#88b4d7}
  body.glass-ui .btn.primary{background:linear-gradient(145deg,#237ab4,#12659f);box-shadow:0 5px 16px rgba(23,99,157,.12)}
  body.glass-ui .panel input,body.glass-ui .panel select,body.glass-ui .panel textarea,body.glass-ui .auth-card input{background:var(--glass-input);border-color:#cbdce9}
  body.glass-ui .roster th{background:rgba(231,241,250,.79);border-color:#dbe5ee}
  body.glass-ui .roster td{border-color:rgba(213,227,239,.84)}
  body.glass-ui .shift{border-radius:10px;min-width:0;max-width:100%;overflow-wrap:anywhere;padding:5px 4px}
  body.glass-ui .shift small{line-height:1.25;white-space:normal;font-weight:700}
  body.glass-ui .shift.pending{outline:0;border:1.5px solid #e4ac3e;background:#fff3dc;color:#815a20}
  body.glass-ui .shift.swapped{border-color:#83d7a7}
  body.glass-ui .roster td.focused-day,body.glass-ui .roster th.focused-day{border-left-color:#2680be!important;border-right-color:#2680be!important}
  body.glass-ui .view:not(.hide){animation:glassViewEnter .23s ease both}
  body.glass-ui .print-overlay:not(.hide){animation:glassFadeIn .2s ease both;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:rgba(11,32,55,.40)}
  body.glass-ui .print-modal{background:rgba(252,254,255,.91);border:1px solid rgba(255,255,255,.91);border-radius:22px;box-shadow:0 30px 90px rgba(13,42,69,.28);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}
  body.glass-ui .print-overlay:not(.hide)>.print-modal{animation:glassModalEnter .25s cubic-bezier(.2,.8,.2,1) both}
  body.glass-ui .calendar-primary-list .calendar-personal-row,body.glass-ui .calendar-all-row{background:rgba(255,255,255,.82)}
  body.glass-ui .calendar-all-group,body.glass-ui .calendar-personal-list{background:rgba(248,251,255,.55)}
  body.glass-ui #glassBottomNav{display:none}
  body.glass-ui #glassAvatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex:0 0 36px;background:rgba(221,240,250,.97);color:#0d496f;border:1px solid rgba(255,255,255,.86);font-size:12px;font-weight:850;letter-spacing:.02em;padding:0;box-shadow:0 4px 12px rgba(2,31,55,.1)}
  body.glass-ui #glassAvatar:focus-visible,body.glass-ui #glassSidebarToggle:focus-visible{outline:3px solid #91c9ed;outline-offset:3px}
  body.glass-ui #glassAvatar.hide,body.glass-ui #glassSidebarToggle.hide{display:none!important}
  body.glass-ui #glassAccountMenu{position:absolute;right:18px;top:calc(100% + 8px);z-index:5000;background:rgba(255,255,255,.96);border:1px solid #d8e4ed;border-radius:14px;box-shadow:0 15px 45px rgba(11,38,64,.24);padding:12px;min-width:220px;color:#174363;display:grid;gap:7px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
  body.glass-ui #glassAccountMenu.hide{display:none!important}
  body.glass-ui #glassAccountMenu .glass-account-name{font-size:12px;line-height:1.5;font-weight:800;padding:5px 6px}
  body.glass-ui #glassAccountMenu button{border:0;border-radius:9px;padding:10px 9px;text-align:left;font-weight:700;font-size:12px;background:#ecf5fb;color:#1d537c}
  body.glass-ui #glassSidebarToggle{display:none;border:1px solid rgba(255,255,255,.28);color:#fff;border-radius:10px;background:rgba(255,255,255,.13);padding:7px 11px;font-size:13px;font-weight:800;min-height:36px}
  body.glass-ui #glassSidebarToggle:hover{background:rgba(255,255,255,.22)}
  @keyframes glassViewEnter{from{opacity:.3;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
  @keyframes glassFadeIn{from{opacity:0}to{opacity:1}}
  @keyframes glassModalEnter{from{opacity:.45;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
}
@media screen and (min-width:1101px){
  body.glass-ui .layout{display:grid!important;grid-template-columns:218px minmax(0,1fr)!important;align-items:start;transition:grid-template-columns .25s ease}
  body.glass-ui #primaryNav.nav{display:flex!important;position:sticky!important;top:72px!important;left:auto!important;right:auto!important;width:218px!important;height:calc(100vh - 72px)!important;max-height:none!important;overflow-y:auto!important;overflow-x:hidden!important;flex-direction:column!important;gap:6px!important;padding:17px 12px!important;border:0!important;border-right:1px solid rgba(255,255,255,.12)!important;border-radius:0!important;background:linear-gradient(165deg,rgba(10,44,78,.94),rgba(13,63,103,.91))!important;box-shadow:none!important;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
  body.glass-ui #primaryNav .nav-item{display:flex!important;align-items:center!important;gap:10px!important;text-align:left!important;white-space:normal!important;min-height:43px!important;padding:11px 10px!important;font-size:12px!important;color:#d9eaf8!important;font-weight:750;border-radius:11px!important;transition:background .22s ease!important}
  body.glass-ui #primaryNav .nav-item.hide{display:none!important}
  body.glass-ui #primaryNav .nav-item.active,body.glass-ui #primaryNav .nav-item:hover{background:rgba(112,170,214,.28)!important;color:#fff!important}
  body.glass-ui #primaryNav .nav-item b{float:none!important;margin-left:auto!important;border-radius:9px!important}
  body.glass-ui .glass-nav-icon{width:20px;height:20px;flex:0 0 20px;display:grid;place-items:center;transition:transform .15s ease;transform-origin:center}
  body.glass-ui .glass-nav-icon svg{display:block;width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
  body.glass-ui .nav-item.glass-dock-hover .glass-nav-icon{transform:scale(1.2)}
  body.glass-ui .nav-item.glass-dock-near .glass-nav-icon{transform:scale(1.08)}
  body.glass-ui .main{max-width:none;width:100%;grid-column:2;min-width:0;padding:24px clamp(14px,2vw,32px) 65px;margin:0}
  body.glass-ui #glassSidebarToggle{display:inline-flex;align-items:center;justify-content:center}
  body.glass-ui .header #menuToggle{display:none!important}
  body.glass-ui .head-right #whoami{display:none!important}
  body.glass-ui.glass-sidebar-closed .layout{grid-template-columns:0 minmax(0,1fr)!important}
  body.glass-ui.glass-sidebar-closed #primaryNav.nav{display:none!important}
  body.glass-ui.glass-sidebar-closed .main{padding-inline:clamp(12px,1.7vw,26px)}
}
@media screen and (max-width:1100px){
  body.glass-ui .header{flex-direction:row;align-items:center;gap:8px;padding:10px 13px;min-height:64px;height:auto}
  body.glass-ui .brand span{display:none}
  body.glass-ui .brand strong{font-size:15px}
  body.glass-ui .head-right{flex:0 0 auto;justify-content:flex-end;margin-left:auto;gap:7px}
  body.glass-ui .head-right #modeBadge,body.glass-ui .head-right .app-release,body.glass-ui .head-right #whoami,body.glass-ui .head-right #logoutBtn{display:none!important}
  body.glass-ui .header #menuToggle{display:none!important}
  body.glass-ui #glassSidebarToggle{display:none!important}
  body.glass-ui .main{padding:15px 11px 104px!important}
  body.glass-ui .section-title{margin-bottom:12px}
  body.glass-ui .panel{border-radius:16px}
  body.glass-ui .monthly-hours-mobile{background:rgba(255,255,255,.68)}
  body.glass-ui #calendarView .monthly-hours-mobile{margin:0 0 6px}
  body.glass-ui .calendar-mobile-mode{background:rgba(231,241,249,.76)!important}
  body.glass-ui #glassBottomNav{display:grid;position:fixed;bottom:0;left:0;right:0;z-index:1500;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;padding:6px 6px max(8px,env(safe-area-inset-bottom));background:rgba(250,253,255,.88);border-top:1px solid rgba(255,255,255,.9);box-shadow:0 -8px 24px rgba(20,57,86,.13);-webkit-backdrop-filter:blur(19px);backdrop-filter:blur(19px)}
  body.glass-ui #glassBottomNav button{position:relative;min-width:0;border:0;background:transparent;padding:6px 2px 5px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#5d7790;font-weight:700;font-size:10px;min-height:53px;border-radius:12px}
  body.glass-ui #glassBottomNav button.active{background:rgba(221,239,251,.92);color:#0e6296}
  body.glass-ui #glassBottomNav svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
  body.glass-ui #glassBottomNav button.hide{display:none!important}
  body.glass-ui #glassRequestsBadge{position:absolute;top:0;right:15%;min-width:18px;height:18px;border-radius:10px;padding:2px 4px;background:#c83345;color:#fff;font-size:10px;font-weight:850;box-shadow:0 0 0 2px #fff;display:grid;place-items:center}
  body.glass-ui #glassRequestsBadge.hide{display:none!important}
  body.glass-ui #primaryNav.nav.menu-open{display:flex!important;position:fixed!important;top:70px!important;left:auto!important;right:12px!important;width:min(360px,calc(100vw - 24px))!important;max-height:calc(100dvh - 160px)!important;overflow:auto!important;z-index:1800!important;flex-direction:column!important;padding:12px!important;border-radius:18px!important;border:1px solid rgba(214,230,243,.95)!important;background:rgba(253,254,255,.97)!important;box-shadow:0 18px 60px rgba(11,38,65,.28)!important;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
  body.glass-ui #primaryNav.nav.menu-open .nav-item{color:#244e70!important;background:rgba(238,246,253,.8)!important}
  body.glass-ui #primaryNav.nav.menu-open .nav-item.active{background:#dceefb!important}
  body.glass-ui .print-overlay:not(.hide)>.print-modal{animation:glassModalEnter .24s cubic-bezier(.2,.8,.2,1) both}
}
@media screen and (max-width:450px){
  body.glass-ui .header{padding:9px 10px}
  body.glass-ui .brand img{width:31px;height:31px}
  body.glass-ui .brand strong{font-size:13px}
  body.glass-ui #glassAvatar{width:33px;height:33px;flex-basis:33px}
  body.glass-ui .monthly-hours-mobile summary{padding:10px 11px}
  body.glass-ui #glassBottomNav button{font-size:9px}
}
@media (prefers-reduced-motion:reduce){body.glass-ui *,body.glass-ui *:before,body.glass-ui *:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media print{body.glass-ui #glassBottomNav,body.glass-ui #glassSidebarToggle,body.glass-ui #glassAvatar,body.glass-ui #glassAccountMenu{display:none!important}}
/* L'account generico non ha un turno individuale: una sola vista mobile. */
@media screen and (max-width:1100px){
 body.glass-ui #calendarView .calendar-mobile-mode:has(.calendar-mode-button:first-child:disabled){grid-template-columns:minmax(0,1fr)}
 body.glass-ui #calendarView .calendar-mode-button:disabled{display:none!important}
}

/* Accessi: tabella di sola lettura, riservata al pannello amministrativo esistente. */
body.glass-ui .access-audit-panel{margin-bottom:18px}
body.glass-ui .access-audit-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap}
body.glass-ui .access-audit-head h2{margin-top:0;margin-bottom:5px}
body.glass-ui .access-audit-head .help{max-width:900px;margin:0 0 11px}
body.glass-ui .access-audit-table{max-height:320px;overflow:auto;border-radius:12px;border:1px solid rgba(170,195,215,.5)}
body.glass-ui .access-audit-grid{width:100%;border-collapse:collapse;min-width:390px;font-size:12px;color:#153d61}
body.glass-ui .access-audit-grid th{position:sticky;top:0;background:rgba(220,236,247,.96);text-align:left;padding:10px}
body.glass-ui .access-audit-grid td{padding:10px;border-top:1px solid rgba(185,207,225,.46)}
body.glass-ui .access-audit-grid tbody tr:nth-child(2n){background:rgba(242,249,254,.45)}

/* RC5.2.1.24 — Allineamento coerente di tutte le voci di menu.
   Larghezza fissa per le icone, testi sullo stesso asse, contatori a destra.
   Nessun cambiamento alla barra inferiore mobile o alla logica dei pulsanti. */
@media screen and (min-width:1101px){
  body.glass-ui #primaryNav.nav .nav-item{
    justify-content:flex-start!important;
    align-items:center!important;
    gap:11px!important;
    width:100%!important;
    text-align:left!important;
  }
  body.glass-ui #primaryNav .glass-nav-icon{width:22px;min-width:22px;flex:0 0 22px}
  body.glass-ui #primaryNav .glass-nav-label{
    display:block;flex:1 1 auto;min-width:0;text-align:left;
    line-height:1.3;white-space:normal;overflow-wrap:break-word;
  }
  body.glass-ui #primaryNav .nav-item b{
    flex:0 0 auto;margin-left:auto!important;text-align:center;
  }
}
@media screen and (max-width:1100px){
  body.glass-ui #primaryNav.nav.menu-open .nav-item{
    display:flex!important;justify-content:flex-start!important;
    align-items:center!important;gap:12px!important;
    width:100%!important;text-align:left!important;
  }
  body.glass-ui #primaryNav.nav.menu-open .glass-nav-icon{
    width:22px;min-width:22px;flex:0 0 22px;
    display:grid;place-items:center;
  }
  body.glass-ui #primaryNav.nav.menu-open .glass-nav-icon svg{
    width:20px;height:20px;display:block;fill:none;stroke:currentColor;
    stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;
  }
  body.glass-ui #primaryNav.nav.menu-open .glass-nav-label{
    display:block;flex:1 1 auto;min-width:0;text-align:left;
    line-height:1.3;white-space:normal;overflow-wrap:break-word;
  }
  body.glass-ui #primaryNav.nav.menu-open .nav-item b{
    flex:0 0 auto;margin-left:auto!important;text-align:center;
  }
}

/* RC5.2.1.25 — I permessi applicati da app.js prevalgono SEMPRE sul restyling.
   Corregge le voci Amministrazione / Modulo tecnico visibili su iPhone. */
body.glass-ui #primaryNav.nav .nav-item.hide,
body.glass-ui #primaryNav.nav.menu-open .nav-item.hide,
body.glass-ui #primaryNav.nav [data-view="test"],
body.glass-ui #primaryNav.nav [hidden]{display:none!important}
body.glass-ui .glass-mobile-logout{display:none!important}
body.glass-ui #glassAccountPageLogout{flex:0 0 auto;align-self:center}
@media screen and (max-width:1100px){
  body.glass-ui .header{position:sticky;top:0;z-index:2100;overflow:visible}
  body.glass-ui .header .brand{min-width:0;max-width:calc(100% - 52px);flex:0 1 auto}
  body.glass-ui .header .head-right{width:auto!important;flex:0 0 auto!important;flex-wrap:nowrap!important;min-width:36px!important;margin-left:auto!important;gap:6px!important;position:static!important;overflow:visible!important}
  body.glass-ui .head-right #pendingApprovalQuick{display:none!important}
  body.glass-ui #glassAvatar:not(.hide){display:grid!important;visibility:visible!important;opacity:1!important;position:relative;z-index:2201;flex:0 0 36px;min-width:36px;min-height:36px;touch-action:manipulation}
  body.glass-ui #glassAccountMenu:not(.hide){display:grid!important;position:fixed!important;top:calc(68px + env(safe-area-inset-top,0px))!important;right:10px!important;left:auto!important;width:min(310px,calc(100vw - 20px))!important;z-index:2202!important}
  body.glass-ui #primaryNav.nav.menu-open{z-index:2050!important;top:70px!important}
  body.glass-ui #primaryNav.nav.menu-open .glass-mobile-logout:not(.hide){display:flex!important;align-items:center;gap:12px;flex:0 0 auto;min-height:44px;width:100%;padding:11px 13px;border-radius:11px;border:1px solid rgba(188,211,228,.75);color:#244e70;background:rgba(240,248,253,.9);font-size:13px;font-weight:750;text-align:left}
  body.glass-ui .glass-mobile-logout .glass-nav-icon{flex:0 0 22px;display:grid;place-items:center}
  body.glass-ui .glass-mobile-logout .glass-nav-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
  body.glass-ui #glassAccountPageLogout{margin-top:10px;width:100%}
}
@media screen and (max-width:450px){
  body.glass-ui .header .brand strong{font-size:13px;white-space:nowrap}
  body.glass-ui .header .head-right{margin-right:0}
}

/* RC5.2.1.26 – editor FERIE/ROL */
.timeoff-editor {margin-top:12px;padding:12px 14px;border:1px solid rgba(66,116,167,.18);border-radius:13px;background:rgba(240,248,255,.24)}
.timeoff-editor .inline-times{margin-top:10px}
#officeTimeOffPanel{margin-bottom:14px}
#officeTimeOffPanel .help{line-height:1.55}
