/* ============================================================
 * File: public/assets/css/prez.css
 * Funzione: stile unico centralizzato Prez / Lavinot
 * ============================================================ */

:root{
  --prez-bg:#181818;
  --prez-panel:#1e1e1e;
  --prez-row:#222222;
  --prez-border:rgba(255,255,255,.10);
  --prez-text:#dddddd;
  --prez-muted:#969da4;
  --prez-gold:#ffd400;
  --prez-blue:#7b9bb5;
  --prez-red:#b22222;
  --prez-green:#00c853;
}

*,*::before,*::after{box-sizing:border-box;}
html,body{margin:0;padding:0;width:100%;height:100%;}
body{
  background:var(--prez-bg);
  color:var(--prez-text);
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
a{color:inherit;text-decoration:none;}

.app-header{
  flex:0 0 auto;
  height:56px;
  padding:0 10px;
  background:#141414;
  border-bottom:1px solid rgba(255,255,255,.08);
  display:flex;
  align-items:center;
}
.app-header-left,.app-header-center,.app-header-right{display:flex;align-items:center;}
.app-header-left{flex:0 0 auto;justify-content:flex-start;}
.app-header-center{
  flex:1 1 auto;
  justify-content:center;
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  color:var(--prez-gold);
  font-size:.9rem;
  font-weight:800;
}
.app-header-right{flex:0 0 auto;justify-content:flex-end;}
.header-logo-link{display:flex;align-items:center;height:100%;}
.header-logo{display:block;max-height:48px;width:auto;}
.header-link{font-size:.78rem;font-weight:900;color:#ffffff;padding:4px 6px;}

.app-main{flex:1 1 auto;min-height:0;overflow:hidden;display:flex;flex-direction:column;}
.app-container{
  flex:1 1 auto;
  min-height:0;
  width:94%;
  max-width:720px;
  margin:0 auto;
  padding:8px 12px 16px;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
}
.app-footer{
  flex:0 0 auto;
  padding:6px 0;
  text-align:center;
  background:#141414;
  border-top:1px solid rgba(255,255,255,.08);
  color:#888888;
  font-size:.72rem;
}

.dash-title{
  text-align:center;
  font-weight:800;
  margin:2px 0 8px;
  color:var(--prez-muted);
  font-size:.88rem;
  letter-spacing:.4px;
}
.card{
  width:100%;
  background:var(--prez-panel);
  border:1px solid var(--prez-border);
  border-radius:12px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 4px 10px rgba(0,0,0,.85);
  padding:12px;
  margin:0 0 10px;
}
.card-title{color:var(--prez-gold);font-weight:900;font-size:.92rem;margin:0 0 8px;text-align:center;}
.muted{color:var(--prez-muted);font-size:.8rem;line-height:1.35;}

.floating-back{
  position:sticky;
  top:8px;
  z-index:999;
  display:flex;
  align-items:center;
  justify-content:center;
  width:54px;
  height:54px;
  margin:0 0 -54px 0;
  border-radius:50%;
  background:rgba(0,0,0,.18);
  color:#ffffff;
  font-size:2.7rem;
  font-weight:900;
  line-height:1;
  text-decoration:none;
  border:2px solid rgba(255,255,255,.35);
  opacity:.75;
}
.floating-back:hover,.floating-back:active{background:rgba(0,0,0,.30);opacity:.9;}

.nav-grid{display:grid;grid-template-columns:1fr;gap:8px;}
.nav-tile{
  display:flex;
  justify-content:space-between;
  align-items:center;
  background:var(--prez-row);
  border:1px solid rgba(255,255,255,.10);
  border-radius:9px;
  padding:10px 12px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 2px 6px rgba(0,0,0,.7);
}
.nav-tile strong{color:#e6e6e6;font-size:.92rem;}
.nav-tile span{color:var(--prez-muted);font-size:.75rem;}
.date-tile{justify-content:flex-start;text-align:left;}
.date-tile strong{font-size:.94rem;}

.date-accordion{
  border:1px solid rgba(255,255,255,.10);
  border-radius:10px;
  margin:0 0 8px;
  background:rgba(255,255,255,.025);
  overflow:hidden;
}
.date-accordion summary{
  cursor:pointer;
  padding:10px 12px;
  font-weight:900;
  list-style:none;
}
.date-accordion summary::-webkit-details-marker{display:none;}
.date-accordion:nth-of-type(odd) summary{color:#ffffff;}
.date-accordion:nth-of-type(even) summary{color:var(--prez-gold);}
.date-accordion .nav-grid{padding:8px;}
.nav-grid .week-separator{
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  height:22px;
  margin:8px 0;
}
.nav-grid .week-separator span{
  display:block;
  width:100%;
  height:0;
  border-top:4px solid var(--prez-green);
  box-shadow:0 0 8px rgba(0,200,83,.65);
}

.action-row{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap;margin:8px 0;}
.action-btn,button.action-btn,input.action-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:30px;
  padding:5px 10px;
  font-size:.82rem!important;
  font-weight:900!important;
  background:#1b1b1b;
  color:#e6e6e6;
  border:1px solid rgba(255,255,255,.25);
  border-radius:.4rem;
  cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 2px 4px rgba(0,0,0,.6);
}
.btn-back{color:var(--prez-blue)!important;}
.btn-edit{color:var(--prez-gold)!important;}
.btn-save{color:#e6e6e6!important;}
.btn-danger{color:var(--prez-red)!important;}
.btn-green{color:#a8e0bd!important;}

.admin-list-header{
  display:grid;
  grid-template-columns:70px 1fr 96px;
  align-items:center;
  gap:6px;
  margin:0 0 12px;
  width:100%;
}
.admin-list-title{margin:0;text-align:center;}
.admin-new-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:30px;
  border-radius:8px;
  background:var(--prez-gold);
  color:#111111;
  font-size:.68rem;
  font-weight:900;
  line-height:1;
  text-decoration:none;
  white-space:nowrap;
  box-shadow:0 2px 8px rgba(0,0,0,.45);
}

.data-table{width:100%;border-collapse:separate;border-spacing:0 6px;font-size:.84rem;}
.data-table tr{background:var(--prez-row);box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 2px 6px rgba(0,0,0,.7);}
.data-table th,.data-table td{padding:7px 8px;text-align:left;vertical-align:middle;}
.data-table th{color:var(--prez-muted);font-size:.75rem;font-weight:900;}
.data-table td:first-child,.data-table th:first-child{border-radius:7px 0 0 7px;}
.data-table td:last-child,.data-table th:last-child{border-radius:0 7px 7px 0;}

.form-table{width:100%;border-collapse:separate;border-spacing:0 7px;font-size:.84rem;}
.form-table td{padding:6px 8px;background:var(--prez-row);}
.form-table .field-label{width:86px;color:var(--prez-muted);font-weight:900;font-size:.76rem;border-radius:7px 0 0 7px;}
.form-table .field-input{border-radius:0 7px 7px 0;}
input,select,textarea{font-size:16px!important;}
input[type="text"],input[type="date"],select,textarea{
  width:100%;
  background:rgba(255,255,255,.06);
  color:#e9e9e9;
  border:1px solid rgba(255,255,255,.16);
  border-radius:6px;
  padding:8px;
}
input:focus,select:focus,textarea:focus{outline:none;border-color:rgba(255,212,0,.55);box-shadow:0 0 0 2px rgba(255,212,0,.18);}

.student-row{
  display:grid;
  grid-template-columns:1fr 42px 74px !important;
  align-items:center;
  gap:8px;
  background:var(--prez-row);
  border:1px solid rgba(255,255,255,.08);
  border-radius:9px;
  padding:8px;
  margin-bottom:7px;
  box-shadow:0 2px 6px rgba(0,0,0,.65);
}
.student-name{font-size:1rem;font-weight:900;color:#eeeeee;}
.flag-box{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:8px;
  background:#1b1b1b;
  color:var(--prez-muted);
  font-weight:900;
}
.flag-box input{display:none;}
.flag-box:has(input:checked){background:var(--prez-red);border-color:#e03a3a;color:#ffffff;}

.state-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:78px;
  min-height:34px;
  padding:0 10px;
  border-radius:9px;
  border:0;
  font-size:.82rem;
  font-weight:900;
  cursor:pointer;
  color:#ffffff;
}
.state-toggle.state-on{background:var(--prez-green);}
.state-toggle.state-off{background:var(--prez-red);}

.notice{padding:8px 10px;border-radius:8px;background:rgba(123,155,181,.12);border:1px solid rgba(123,155,181,.28);font-size:.82rem;color:#dce8f2;margin:8px 0;}
.error{background:rgba(178,34,34,.14);border-color:rgba(178,34,34,.45);color:#ffd0d0;}
.success{background:rgba(44,154,88,.14);border-color:rgba(44,154,88,.45);color:#d2ffe2;}

@media (min-width:640px){
  .nav-grid{grid-template-columns:1fr 1fr;}
  .student-row{grid-template-columns:1fr 90px;}
}

/* toggle visivo esonero educazione fisica */
.student-row{
  grid-template-columns:1fr 74px 42px !important;
}

.visual-exempt-toggle{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  min-width:42px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:8px;
  background:#1b1b1b;
  color:transparent;
  font-size:1.15rem;
  font-weight:900;
  cursor:pointer;
}

.visual-exempt-toggle.is-active{
  background:#b22222;
  border-color:#e03a3a;
  color:#ffffff;
}

.student-row.is-exempt .student-name{
  color:#ff5c5c;
  font-weight:900;
}

/* override finale riga studenti: nome | esonero | assenza */
.student-row{
  display:grid !important;
  grid-template-columns:1fr 42px 58px !important;
  align-items:center !important;
  gap:8px !important;
}

.visual-exempt-toggle{
  width:42px !important;
  min-width:42px !important;
  max-width:42px !important;
  height:42px !important;
  min-height:42px !important;
  max-height:42px !important;

  display:flex !important;
  align-items:center !important;
  justify-content:center !important;

  padding:0 !important;
  margin:0 !important;

  border:1px solid rgba(255,255,255,.22) !important;
  border-radius:8px !important;
  background:#1b1b1b !important;
  color:transparent !important;

  font-size:1.15rem !important;
  font-weight:900 !important;
  line-height:1 !important;
  cursor:pointer !important;
}

.visual-exempt-toggle.is-active{
  background:#b22222 !important;
  border-color:#e03a3a !important;
  color:#ffffff !important;
}

.student-row.is-exempt .student-name{
  color:#ff5c5c !important;
  font-weight:900 !important;
}

.flag-box{
  width:58px !important;
  min-width:58px !important;
  max-width:58px !important;
}

/* override finale riga studenti: nome | esonero | assenza */
.student-row{
  display:grid !important;
  grid-template-columns:1fr 42px 58px !important;
  align-items:center !important;
  gap:8px !important;
}

.student-name{
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}

.visual-exempt-toggle{
  width:42px !important;
  min-width:42px !important;
  max-width:42px !important;
  height:42px !important;
  min-height:42px !important;
  max-height:42px !important;

  display:flex !important;
  align-items:center !important;
  justify-content:center !important;

  padding:0 !important;
  margin:0 !important;

  border:1px solid rgba(255,255,255,.22) !important;
  border-radius:8px !important;
  background:#1b1b1b !important;
  color:transparent !important;

  font-size:1.15rem !important;
  font-weight:900 !important;
  line-height:1 !important;
  cursor:pointer !important;
}

.visual-exempt-toggle.is-active{
  background:#b22222 !important;
  border-color:#e03a3a !important;
  color:#ffffff !important;
}

.student-row.is-exempt .student-name{
  color:#ff5c5c !important;
  font-weight:900 !important;
}

.flag-box{
  width:58px !important;
  min-width:58px !important;
  max-width:58px !important;
  height:42px !important;
  min-height:42px !important;
  max-height:42px !important;

  display:flex !important;
  align-items:center !important;
  justify-content:center !important;

  padding:0 !important;
  margin:0 !important;
}

/* regolazione fine: quadratino esonero più piccolo e più staccato da Abs. */
.student-row{
  grid-template-columns:1fr 34px 58px !important;
  gap:12px !important;
}

.visual-exempt-toggle{
  width:28px !important;
  min-width:28px !important;
  max-width:28px !important;

  height:28px !important;
  min-height:28px !important;
  max-height:28px !important;

  border-radius:7px !important;
  font-size:1rem !important;
}

.flag-box{
  width:58px !important;
  min-width:58px !important;
  max-width:58px !important;

  height:38px !important;
  min-height:38px !important;
  max-height:38px !important;
}


/* ============================================================
 * PATCH FINALE - S esonero placeholder più tenue
 * ============================================================ */

.visual-exempt-toggle{
  background:#1b1b1b !important;
  color:rgba(255,255,255,.18) !important;
}

.visual-exempt-toggle.is-active{
  background:#b22222 !important;
  border-color:#e03a3a !important;
  color:#ffffff !important;
}

/* centratura freccia back senza sostituire il contenuto */
.floating-back{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;

  width:54px !important;
  height:54px !important;
  padding:0 !important;

  font-size:2.35rem !important;
  font-weight:900 !important;
  line-height:54px !important;

  text-align:center !important;
}

/* centratura ottica freccia back */
.floating-back{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;

  width:54px !important;
  height:54px !important;
  padding:0 !important;

  font-size:0 !important;
  line-height:1 !important;
}

.floating-back::after{
  content:"←";
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;

  width:54px !important;
  height:54px !important;

  font-size:2.35rem !important;
  font-weight:900 !important;
  line-height:1 !important;

  transform:translateY(-7px);
}


/* ============================================================
 * PATCH - select admin studenti leggibile
 * ============================================================ */

.form-table select{
  background:#242424 !important;
  color:#ffffff !important;
  border:1px solid rgba(255,212,0,.55) !important;
  border-radius:7px !important;
  padding:8px !important;
  font-weight:800 !important;
}

.form-table select option{
  background:#242424 !important;
  color:#ffffff !important;
  font-weight:800 !important;
}

.form-table select option:checked{
  background:#ffd400 !important;
  color:#111111 !important;
}

.form-table select option:hover{
  background:#333333 !important;
  color:#ffffff !important;
}

/* header: Reports/Admin come bottoni evidenti */
.app-header-right{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:6px !important;
}

.app-header-right .header-link{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;

  min-height:30px !important;
  padding:0 8px !important;

  border-radius:8px !important;
  border:1px solid rgba(255,255,255,.25) !important;

  font-size:.72rem !important;
  font-weight:900 !important;
  line-height:1 !important;
  text-decoration:none !important;

  box-shadow:0 2px 6px rgba(0,0,0,.45) !important;
}

/* Reports verde */
.app-header-right .header-link[href*="reports"]{
  background:#00c853 !important;
  color:#111111 !important;
  border-color:#00c853 !important;
}

/* Admin giallo */
.app-header-right .header-link[href*="admin"]{
  background:#ffd400 !important;
  color:#111111 !important;
  border-color:#ffd400 !important;
}


/* lista reports: clone visuale lista studenti */
.report-row{
  display:grid !important;
  grid-template-columns:1fr 82px !important;
  align-items:center !important;
  gap:8px !important;

  background:var(--prez-row) !important;
  border:1px solid rgba(255,255,255,.08) !important;
  border-radius:9px !important;
  padding:8px !important;
  margin-bottom:7px !important;

  box-shadow:0 2px 6px rgba(0,0,0,.65) !important;
}

.report-day{
  font-size:1rem !important;
  font-weight:900 !important;
  color:#eeeeee !important;

  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}

.report-open-btn{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;

  width:82px !important;
  min-width:82px !important;
  max-width:82px !important;

  height:38px !important;
  min-height:38px !important;
  max-height:38px !important;

  border:1px solid rgba(255,255,255,.18) !important;
  border-radius:8px !important;
  background:#00c853 !important;
  color:#111111 !important;

  font-size:.75rem !important;
  font-weight:900 !important;
  text-decoration:none !important;
}

/* report giornaliero: wrapper semplici per classe */
.report-class-box{
  background:transparent !important;
  border:1px solid rgba(255,255,255,.18) !important;
  border-radius:10px !important;
  padding:9px !important;
  margin-bottom:10px !important;
  box-shadow:none !important;
}

.report-class-title{
  background:transparent !important;
  color:#eeeeee !important;
  border:0 !important;
  border-bottom:1px solid rgba(255,255,255,.14) !important;
  border-radius:0 !important;
  padding:0 0 7px 0 !important;
  margin:0 0 7px 0 !important;
  font-size:1rem !important;
  font-weight:900 !important;
}

.report-student-row{
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  padding:5px 0 !important;
  margin:0 !important;
  color:#eeeeee !important;
  font-size:.95rem !important;
  font-weight:400 !important;
}

/* report giornaliero: data principale evidente */
.report-main-date{
  text-align:center !important;
  font-size:1rem !important;
  font-weight:900 !important;
  color:#ffffff !important;
  padding:10px 8px !important;
  margin:8px 0 12px 0 !important;
  border:1px solid rgba(255,255,255,.18) !important;
  border-radius:10px !important;
  background:rgba(255,255,255,.04) !important;
}

/* login: campi più comodi e titolo più arioso */
body:has(form input[name="username"]){
  justify-content:flex-start !important;
}

body:has(form input[name="username"]) .app-container{
  padding-top:26px !important;
}

body:has(form input[name="username"]) .card{
  margin-top:14px !important;
}

body:has(form input[name="username"]) .card-title{
  padding-top:10px !important;
  padding-bottom:14px !important;
  margin-bottom:12px !important;
  text-align:center !important;
  font-size:1.05rem !important;
  font-weight:900 !important;
}

body:has(form input[name="username"]) .form-table td{
  padding-top:8px !important;
  padding-bottom:8px !important;
}

body:has(form input[name="username"]) .form-table input[type="text"],
body:has(form input[name="username"]) .form-table input[type="password"]{
  min-height:42px !important;
  height:42px !important;
  padding:8px 10px !important;
  font-size:1rem !important;
  font-weight:800 !important;
}

body:has(form input[name="username"]) .action-row{
  margin-top:14px !important;
}

/* login: campi form scuri coerenti */
body:has(form input[name="username"]) .form-table input[type="text"],
body:has(form input[name="username"]) .form-table input[type="password"]{
  background:#242424 !important;
  color:#ffffff !important;
  border:1px solid rgba(255,212,0,.55) !important;
  border-radius:8px !important;
  min-height:42px !important;
  height:42px !important;
  padding:8px 10px !important;
  font-size:1rem !important;
  font-weight:800 !important;
  outline:none !important;
}

body:has(form input[name="username"]) .form-table input[type="text"]:focus,
body:has(form input[name="username"]) .form-table input[type="password"]:focus{
  background:#2b2b2b !important;
  color:#ffffff !important;
  border-color:#ffd400 !important;
  box-shadow:0 0 0 2px rgba(255,212,0,.22) !important;
}

body:has(form input[name="username"]) .form-table input::placeholder{
  color:rgba(255,255,255,.45) !important;
}

/* login: bottone submit forzato giallo grande */
body:has(input[name="username"]) form button[type="submit"]{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;

  width:100% !important;
  height:52px !important;
  min-height:52px !important;
  padding:0 16px !important;
  margin:0 !important;

  background:#ffd400 !important;
  background-color:#ffd400 !important;
  color:#111111 !important;

  border:1px solid #ffd400 !important;
  border-radius:10px !important;

  font-size:1.1rem !important;
  font-weight:900 !important;
  line-height:1 !important;
  text-align:center !important;
  text-decoration:none !important;

  box-shadow:0 2px 7px rgba(0,0,0,.65) !important;
}

/* login: riga bottone più larga */
body:has(input[name="username"]) .action-row{
  width:140px !important;
  display:flex !important;
  justify-content:center !important;
  margin-top:18px !important;
}

/* login: layout centrato e larghezze coerenti */
body:has(input[name="username"]) .app-container{
  max-width:430px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:14px !important;
  padding-right:14px !important;
}

body:has(input[name="username"]) .card{
  max-width:430px !important;
  width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

body:has(input[name="username"]) .form-table{
  width:100% !important;
  table-layout:fixed !important;
}

body:has(input[name="username"]) .form-table .field-label{
  width:90px !important;
  min-width:90px !important;
  max-width:90px !important;
}

body:has(input[name="username"]) .form-table .field-input{
  width:auto !important;
}

body:has(input[name="username"]) .form-table input[type="text"],
body:has(input[name="username"]) .form-table input[type="password"]{
  width:100% !important;
  box-sizing:border-box !important;
}

body:has(input[name="username"]) .action-row{
  width:100% !important;
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  margin-top:18px !important;
}

body:has(input[name="username"]) form button[type="submit"]{
  width:140px !important;
  height:52px !important;
  min-height:52px !important;
  margin:0 auto !important;
}

/* header: Logout rosso/fucsia */
.app-header-right .header-link[href*="logout"]{
	background:#d81b60 !important;
	border-color:#d81b60 !important; 
	color:#ffffff !important; 
	box-shadow:0 2px 6px rgba(0,0,0,.45) !important;
}

/* admin classi: delete */
.btn-delete{
  background:#ff2d55 !important;
  color:#ffffff !important;
  border:1px solid #ff2d55 !important;
  border-radius:10px !important;
  font-weight:900 !important;
}

/* admin studenti: toggle scutit / activ */
.toggle-form-row .field-input{
  display:flex !important;
  justify-content:flex-end !important;
  align-items:center !important;
}

.admin-toggle{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  cursor:pointer !important;
}

.admin-toggle input{
  position:absolute !important;
  opacity:0 !important;
  pointer-events:none !important;
}

.admin-toggle-face{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;

  width:62px !important;
  height:34px !important;

  background:#242424 !important;
  color:rgba(255,255,255,.55) !important;
  border:1px solid rgba(255,255,255,.18) !important;
  border-radius:9px !important;

  font-size:.82rem !important;
  font-weight:900 !important;
  line-height:1 !important;
  box-shadow:0 2px 6px rgba(0,0,0,.55) !important;
}

.admin-toggle-face::before{
  content:"NU";
}

.admin-toggle-red input:checked + .admin-toggle-face{
  background:#b22222 !important;
  border-color:#e03a3a !important;
  color:#ffffff !important;
}

.admin-toggle-green input:checked + .admin-toggle-face{
  background:#00c853 !important;
  border-color:#00c853 !important;
  color:#111111 !important;
}

.admin-toggle input:checked + .admin-toggle-face::before{
  content:"DA";
}

/* admin studenti: righe toggle più compatte */
.toggle-form-row .field-label{
  white-space:nowrap !important;
  width:150px !important;
  min-width:150px !important;
  max-width:150px !important;
  font-size:.82rem !important;
  line-height:1.1 !important;
}

.toggle-form-row .field-input{
  display:flex !important;
  justify-content:flex-end !important;
  align-items:center !important;
  padding-top:4px !important;
  padding-bottom:4px !important;
}

/* admin studenti: compatta solo righe toggle, non i campi nome/prenume */
.toggle-form-row td{
  padding-top:4px !important;
  padding-bottom:4px !important;
}

.toggle-form-row .field-label{
  white-space:nowrap !important;
  width:150px !important;
  min-width:150px !important;
  max-width:150px !important;
  font-size:.82rem !important;
  line-height:1.1 !important;
}

.toggle-form-row .field-input{
  display:flex !important;
  justify-content:flex-end !important;
  align-items:center !important;
  padding-top:4px !important;
  padding-bottom:4px !important;
}

.admin-toggle-face{
  width:58px !important;
  height:30px !important;
  min-height:30px !important;
  border-radius:8px !important;
  font-size:.78rem !important;
}

/* testo label su una riga */
.toggle-form-row:first-of-type .field-label{
  white-space:nowrap !important;
}

/* bottoni toggle più bassi */
.admin-toggle-face{
  width:58px !important;
  height:30px !important;
  min-height:30px !important;
  border-radius:8px !important;
  font-size:.78rem !important;
}

/* compatta un po' tutta la form studenti */
.form-table td{
  padding-top:6px !important;
  padding-bottom:6px !important;
}

/* admin studenti: toggle fuori dalle colonne tabella */
.student-toggle-line td{
  padding-top:5px !important;
  padding-bottom:5px !important;
}

.student-toggle-wrap{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  width:100% !important;
}

.student-toggle-label{
  display:block !important;
  min-width:0 !important;
  white-space:nowrap !important;
  color:#bfc3c7 !important;
  font-size:.84rem !important;
  font-weight:800 !important;
  line-height:1.1 !important;
}

.admin-toggle-face{
  width:58px !important;
  height:30px !important;
  min-height:30px !important;
  border-radius:8px !important;
  font-size:.78rem !important;
}

/* lista pulita elevi separata per classi */
.students-class-box{
  background:transparent !important;
  border:1px solid rgba(255,255,255,.18) !important;
  border-radius:10px !important;
  padding:9px !important;
  margin-bottom:10px !important;
  box-shadow:none !important;
}

.students-class-title{
  background:transparent !important;
  color:#eeeeee !important;
  border:0 !important;
  border-bottom:1px solid rgba(255,255,255,.14) !important;
  border-radius:0 !important;
  padding:0 0 7px 0 !important;
  margin:0 0 7px 0 !important;
  font-size:1rem !important;
  font-weight:900 !important;
}

.students-clean-list{
  margin:0 !important;
  padding-left:24px !important;
  color:#eeeeee !important;
}

.students-clean-list li{
  padding:4px 0 !important;
  font-size:.95rem !important;
  font-weight:400 !important;
  line-height:1.25 !important;
}

.students-empty-class{
  color:rgba(255,255,255,.55) !important;
  font-size:.9rem !important;
  padding:4px 0 !important;
}
