*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:#f3f6f8;color:#17212b}header{background:#123b52;color:#fff;padding:16px max(18px,calc((100% - 1180px)/2));display:flex;justify-content:space-between;align-items:center;gap:15px}header strong{font-size:20px}header span{display:block;font-size:12px;opacity:.8;margin-top:3px}.user{display:flex;align-items:center;gap:16px}.user span{font-size:13px}.user a{color:#fff;text-decoration:none;border:1px solid #ffffff55;padding:7px 11px;border-radius:8px}.wrap{max-width:1180px;margin:25px auto;padding:0 14px}.day-title{display:flex;justify-content:space-between;align-items:center}.day-title h1{margin:0;font-size:30px}.day-title p{margin:5px 0 18px;color:#687681}.live{font-size:12px;color:#198754}.schedule{background:#fff;border-radius:14px;box-shadow:0 4px 20px #1d344212;overflow:hidden}.table-head,.duty{display:grid;grid-template-columns:170px 1fr 1fr 1fr 44px}.table-head{background:#e9eff3;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.table-head div{padding:12px}.period{display:grid;grid-template-columns:170px 1fr;border-top:1px solid #e3e8ec}.period-time{padding:18px;background:#f8fafb;display:flex;flex-direction:column;gap:4px}.period-time span{font-size:13px;color:#60717d}.period-content{padding:10px}.duty{grid-template-columns:1fr 1fr 1fr 44px;background:#f7fafb;border-radius:8px;margin-bottom:7px;align-items:center}.duty>div{padding:11px}.duty.mine{background:#e8f6ee;border:1px solid #b8e0c8}.empty{color:#8a969e;font-size:13px;padding:8px 4px}.break{text-align:center;padding:11px;background:#fff4cf;border-top:1px solid #ead99a;border-bottom:1px solid #ead99a;font-size:12px;font-weight:800;color:#7a6422}.add-duty{display:grid;grid-template-columns:1fr 1fr 1fr 105px;gap:7px;margin-top:8px}.add-duty select{width:100%;padding:10px;border:1px solid #cad5dc;border-radius:8px;background:white}.add,.login-card button{border:0;background:#167b68;color:#fff;border-radius:8px;font-weight:700;cursor:pointer}.delete{border:0;background:#f2d7d9;color:#a3262f;border-radius:7px;font-size:20px;width:32px;height:32px;cursor:pointer}.login-bg{min-height:100vh;display:grid;place-items:center;background:#edf2f5}.login-card{width:min(420px,92vw);background:#fff;padding:34px;border-radius:18px;box-shadow:0 10px 40px #1b334520}.brand{font-size:12px;font-weight:800;color:#167b68;letter-spacing:.08em}.login-card h1{margin-bottom:7px}.login-card p{color:#66757f}.login-card input{width:100%;padding:13px;border:1px solid #cbd5dc;border-radius:9px;margin:10px 0}.login-card button{width:100%;padding:13px}.login-card small{display:block;margin-top:16px;color:#8a969e;text-align:center}.error{background:#ffe6e7;color:#9c2730;padding:10px;border-radius:8px;font-size:13px}@media(max-width:760px){header{align-items:flex-start}.user{flex-direction:column;align-items:flex-end;gap:5px}.live{display:none}.table-head{display:none}.period{grid-template-columns:95px 1fr}.period-time{padding:13px 8px}.period-content{padding:8px}.duty{grid-template-columns:1fr;position:relative;border-left:4px solid #aab7bf}.duty>div{padding:5px 10px}.duty>div:nth-child(1):before{content:'Ausente: ';font-size:11px;color:#75838c}.duty>div:nth-child(2):before{content:'Guardia: ';font-size:11px;color:#75838c}.duty>div:nth-child(3):before{content:'Grupo: ';font-size:11px;color:#75838c}.duty>div:last-child{position:absolute;right:4px;top:4px}.add-duty{grid-template-columns:1fr}.add{padding:10px}.day-title h1{font-size:25px}}
.login-tabs{display:flex;gap:8px;margin:18px 0}.login-tabs .tab{flex:1;background:#e8eef2;color:#17324a}.login-tabs .tab.active{background:#168775;color:#fff}.login-card label{display:block;font-size:13px;font-weight:700;margin:10px 0 5px}.success{padding:12px 14px;background:#e6f7ef;border-radius:8px;margin:15px 0;color:#126b58}.settings{max-width:1050px}.email-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}.email-grid label{display:grid;grid-template-columns:220px 1fr;align-items:center;gap:10px;padding:8px;background:#fff;border-radius:8px}.email-grid input{padding:10px;border:1px solid #cbd7df;border-radius:7px}.save{margin-top:18px;padding:12px 22px;background:#168775;color:#fff;border:0;border-radius:8px;font-weight:700}.your-duty{display:inline-block;margin-left:8px;padding:3px 7px;border-radius:10px;background:#168775;color:#fff;font-size:10px;font-weight:800}.duty.mine{outline:2px solid #168775;background:#edf9f6}@media(max-width:700px){.email-grid{grid-template-columns:1fr}.email-grid label{grid-template-columns:1fr}.day-title{align-items:flex-start;gap:8px}.live{font-size:12px}}

/* V3 - Navegacion por calendario lectivo */
.calendar-title{gap:18px}
.date-nav{display:flex;align-items:center;gap:18px}
.date-nav>div{text-align:center;min-width:170px}
.day-arrow{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:#243b6b;color:#fff;text-decoration:none;font-size:27px;font-weight:700;line-height:1}
.day-arrow:hover{transform:translateY(-1px);filter:brightness(1.08)}
.day-arrow.disabled{opacity:.25;cursor:not-allowed}
.calendar-info{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.calendar-info small{color:#667085}
@media(max-width:700px){
 .calendar-title{align-items:stretch}
 .date-nav{justify-content:space-between}
 .date-nav>div{min-width:0}
 .calendar-info{align-items:center;text-align:center}
 .day-arrow{width:40px;height:40px}
}

/* V4 - confirmaciones, trazabilidad y resumen */
.duty.acknowledged{background:#e8f7ec!important;border-left:5px solid #2e8b57}
.ack-admin{display:inline-block;margin-left:8px;padding:3px 7px;border-radius:999px;font-size:11px;font-weight:800}
.ack-admin.ok{background:#d9f2df;color:#176b38}
.ack-admin.pending{background:#fff0d7;color:#8a5a00}
.ack-form{display:inline-block;margin-left:10px}
.ack-check{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border:1px solid #9aa8bc;border-radius:7px;background:white;font-weight:800;cursor:pointer}
.ack-check input{width:18px;height:18px}
.stats-note{padding:12px 14px;background:#f2f5f9;border-radius:10px;margin-bottom:15px;color:#445}
.stats-table{background:white;border:1px solid #d9dee7;border-radius:12px;overflow:hidden}
.stats-head,.stats-row{display:grid;grid-template-columns:2fr .7fr .8fr .8fr;align-items:center}
.stats-head{background:#243b6b;color:white;font-weight:800}
.stats-head>div,.stats-row>div{padding:12px 14px;border-bottom:1px solid #e5e8ee}
.stats-row:nth-child(odd){background:#f8f9fb}
@media(max-width:700px){
 .stats-head,.stats-row{grid-template-columns:1.5fr .7fr .7fr .7fr;font-size:12px}
 .stats-head>div,.stats-row>div{padding:9px 6px}
 .ack-admin{display:block;margin:5px 0 0;width:max-content}
}

/* V5 - OK muy visible para administrador y resumen simplificado */
.ack-admin.ok{
  background:#ff1493!important;
  color:#fff!important;
  border:2px solid #c7006f;
  box-shadow:0 0 0 2px rgba(255,20,147,.12);
  font-size:12px;
  padding:4px 9px;
}
.stats-table.compact{max-width:720px;margin:0 auto}
.stats-table.compact .stats-head,
.stats-table.compact .stats-row{
  grid-template-columns:minmax(240px,1fr) 130px;
}
.stats-table.compact .stats-row>div:last-child,
.stats-table.compact .stats-head>div:last-child{text-align:center}
.guard-count{font-size:18px;font-weight:800}
@media(max-width:700px){
 .stats-table.compact .stats-head,
 .stats-table.compact .stats-row{grid-template-columns:1fr 90px;font-size:14px}
}

/* V6 - Confirmación OK claramente visible para profesor y administrador */

/* Toda la guardia confirmada queda resaltada para ambos perfiles */
.duty.acknowledged{
  background:#ff4fa3!important;
  border:3px solid #c60062!important;
  border-left:8px solid #a80050!important;
  box-shadow:0 3px 12px rgba(198,0,98,.25)!important;
}
.duty.acknowledged > div{
  color:#351024!important;
}
.duty.acknowledged b{
  color:#351024!important;
}

/* Indicador que ve el administrador */
.duty.acknowledged .ack-admin.ok{
  background:#8b0045!important;
  color:#ffffff!important;
  border:2px solid #ffffff!important;
  box-shadow:0 2px 7px rgba(0,0,0,.20)!important;
  font-size:13px!important;
  font-weight:900!important;
  padding:6px 11px!important;
}

/* Check que ve el profesor */
.duty.acknowledged .ack-check{
  background:#8b0045!important;
  color:#ffffff!important;
  border:2px solid #ffffff!important;
  box-shadow:0 2px 7px rgba(0,0,0,.20)!important;
  padding:6px 11px!important;
}
.duty.acknowledged .ack-check span{
  color:#ffffff!important;
  font-weight:900!important;
}
.duty.acknowledged .ack-check input{
  accent-color:#ffffff;
}

/* La etiqueta TU GUARDIA sigue siendo muy visible sobre el rosa */
.duty.acknowledged .your-duty{
  background:#ffffff!important;
  color:#9c004c!important;
  border:1px solid #9c004c!important;
}

/* V7 - cabecera centro y estado OK inequívoco */
header{position:relative;min-height:112px;padding-top:18px}
.school-brand{position:absolute;left:50%;top:10px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:4px;z-index:1;pointer-events:none}
.school-brand img{width:66px;height:46px;object-fit:contain;border-radius:8px;background:#fff;padding:2px}
.school-brand strong{font-size:11px!important;line-height:1.1;white-space:nowrap;color:#fff;letter-spacing:.02em}
header>div:not(.school-brand){position:relative;z-index:2}
.login-school{display:flex;flex-direction:column;align-items:center;gap:7px;margin-bottom:20px;text-align:center}
.login-school img{width:110px;height:76px;object-fit:contain;border-radius:12px}
.login-school strong{font-size:14px;letter-spacing:.03em}
.guard-teacher .guard-name{display:inline}
.guard-teacher .ack-admin{display:block!important;width:max-content!important;margin:7px 0 0 0!important;clear:both!important}
/* Estado pendiente separado del nombre */
.guard-teacher .ack-admin.pending{background:#fff0d7!important;color:#8a5a00!important;border:1px solid #e3b657!important;padding:5px 9px!important}
/* Estado confirmado: forzado incluso si otras reglas CSS anteriores compiten */
.guard-teacher .ack-admin.ok{display:block!important;background:#ff1493!important;color:#fff!important;border:3px solid #9b004e!important;border-radius:10px!important;padding:7px 13px!important;font-size:14px!important;font-weight:900!important;line-height:1.1!important;box-shadow:0 2px 8px rgba(155,0,78,.35)!important}
.duty.acknowledged{background:#ffb5d8!important;border-left:8px solid #ff1493!important;outline:2px solid #ff1493!important}
.duty.acknowledged .ack-check{background:#ff1493!important;color:#fff!important;border:3px solid #9b004e!important}
@media(max-width:760px){
 header{min-height:198px;padding-top:112px}
 .school-brand{top:10px}
 .school-brand img{width:94px;height:66px}
 .school-brand strong{font-size:12px!important}
 .guard-teacher{padding-right:58px!important}
 .guard-teacher .ack-admin{margin-top:8px!important}
}

/* V8 — Confirmación OK: resaltar SOLO el botón/indicador, nunca la fila completa */
.duty.acknowledged{
  background:inherit!important;
  border:0!important;
  border-left:0!important;
  box-shadow:none!important;
}
.duty.acknowledged > div{
  color:inherit!important;
}
.duty.acknowledged b{
  color:inherit!important;
}

/* Profesor: checkbox OK confirmado */
.duty.acknowledged .ack-check{
  background:#ff1493!important;
  color:#ffffff!important;
  border:3px solid #a80050!important;
  box-shadow:0 2px 8px rgba(168,0,80,.35)!important;
  padding:6px 12px!important;
  border-radius:8px!important;
}
.duty.acknowledged .ack-check span{
  color:#ffffff!important;
  font-weight:900!important;
}

/* Administrador: indicador ✓ OK confirmado */
.duty .ack-admin.ok,
.duty.acknowledged .ack-admin.ok{
  display:block!important;
  width:max-content!important;
  margin:7px 0 0 0!important;
  background:#ff1493!important;
  color:#ffffff!important;
  border:3px solid #a80050!important;
  box-shadow:0 2px 8px rgba(168,0,80,.35)!important;
  padding:6px 12px!important;
  border-radius:8px!important;
  font-size:13px!important;
  font-weight:900!important;
}

/* Pendiente queda en su propia línea, sin fondo llamativo */
.duty .ack-admin.pending{
  display:block!important;
  width:max-content!important;
  margin:7px 0 0 0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  padding:0!important;
}

/* V9 — Logo responsive y más pequeño */
.center-logo img,
.school-logo img,
.logo-centro,
header img[src*="logo"]{
  width:auto!important;
  height:auto!important;
  max-width:72px!important;
  max-height:54px!important;
  object-fit:contain!important;
}
@media(max-width:900px){
  .center-logo img,
  .school-logo img,
  .logo-centro,
  header img[src*="logo"]{
    max-width:58px!important;
    max-height:44px!important;
  }
}
@media(max-width:600px){
  .center-logo img,
  .school-logo img,
  .logo-centro,
  header img[src*="logo"]{
    max-width:48px!important;
    max-height:36px!important;
  }
  .center-logo,
  .school-logo{
    max-width:160px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
}

/* V10 — Optimización máxima responsive: cabecera, calendario y cuadrante */
html{-webkit-text-size-adjust:100%}
body{overflow-x:hidden}

/* Cabecera compacta */
header{min-height:auto!important;padding-top:10px!important;padding-bottom:10px!important}
header>div:first-child{line-height:1.15}
header strong{line-height:1.05}
header .user{gap:8px!important}
header .user a{white-space:nowrap}

/* Logo ultracompacto y adaptable */
.center-logo img,.school-logo img,.logo-centro,header img[src*="logo"]{
 width:auto!important;height:auto!important;max-width:60px!important;max-height:44px!important;object-fit:contain!important
}
.center-logo,.school-logo{text-align:center!important}
.center-logo span,.school-logo span{line-height:1.05!important}

/* Zona de fecha más compacta */
.calendar-title{padding-top:16px!important;padding-bottom:12px!important;margin-bottom:8px!important}
.date-nav{gap:10px!important}
.day-arrow{flex:0 0 auto}
.calendar-info{gap:2px!important}

/* Cuadrante: mejor aprovechamiento horizontal */
.duty{box-sizing:border-box}
.duty>div{min-width:0}
.duty select{max-width:100%}
.ack-admin.ok,.ack-check{white-space:nowrap!important}

/* Tablet */
@media(max-width:900px){
 header{padding:8px 14px!important}
 header strong{font-size:18px!important}
 .center-logo img,.school-logo img,.logo-centro,header img[src*="logo"]{max-width:48px!important;max-height:35px!important}
 .calendar-title{padding-top:12px!important}
 .day-arrow{width:36px!important;height:36px!important;font-size:22px!important}
}

/* Móvil: cabecera en tres bloques compactos y botones pequeños */
@media(max-width:600px){
 header{
   display:grid!important;
   grid-template-columns:1fr auto!important;
   grid-template-areas:"brand logo" "user user"!important;
   gap:7px 10px!important;
   align-items:center!important;
   padding:7px 10px!important;
 }
 header>div:first-child{grid-area:brand!important}
 header .center-logo,header .school-logo{grid-area:logo!important;margin:0!important;max-width:115px!important}
 header .user{
   grid-area:user!important;
   display:flex!important;
   flex-wrap:wrap!important;
   justify-content:flex-end!important;
   align-items:center!important;
   gap:5px!important;
   font-size:12px!important;
 }
 header strong{font-size:16px!important}
 header>div:first-child span{font-size:11px!important}
 .center-logo img,.school-logo img,.logo-centro,header img[src*="logo"]{
   max-width:40px!important;max-height:30px!important
 }
 .center-logo span,.school-logo span{font-size:8px!important;display:block!important;margin-top:2px!important}
 header .user a{padding:6px 9px!important;font-size:12px!important;border-radius:7px!important}

 .wrap{padding-left:8px!important;padding-right:8px!important}
 .calendar-title{
   padding:9px 0 7px!important;
   display:block!important;
 }
 .date-nav{justify-content:center!important;gap:9px!important}
 .date-nav>div{min-width:130px!important}
 .date-nav h1{font-size:25px!important;line-height:1!important;margin-bottom:4px!important}
 .date-nav p{font-size:13px!important;line-height:1.2!important}
 .day-arrow{width:34px!important;height:34px!important;font-size:21px!important}
 .calendar-info{
   align-items:center!important;text-align:center!important;
   margin-top:6px!important;font-size:11px!important
 }
 .calendar-info small{font-size:10px!important;line-height:1.2!important}

 /* Menos espacios verticales en las tarjetas */
 .duty{margin-top:5px!important;margin-bottom:5px!important;padding-top:9px!important;padding-bottom:9px!important}
 .your-duty{font-size:10px!important;padding:3px 6px!important}
 .ack-admin.ok,.ack-check{font-size:12px!important;padding:5px 9px!important}
 .ack-admin.pending{font-size:11px!important;margin-top:4px!important}

 select,button,input{font-size:16px} /* evita zoom automático de formularios en móviles */
}

/* Pantallas muy estrechas */
@media(max-width:380px){
 header{grid-template-columns:1fr auto!important}
 header strong{font-size:14px!important}
 .center-logo img,.school-logo img,.logo-centro,header img[src*="logo"]{max-width:34px!important;max-height:26px!important}
 .center-logo span,.school-logo span{font-size:7px!important}
 .date-nav>div{min-width:112px!important}
 .date-nav h1{font-size:22px!important}
 .day-arrow{width:31px!important;height:31px!important}
}

/* V12 - navegación superior por pestañas */
header{padding-bottom:52px!important}
.user-profile{margin-left:auto!important}
.top-tabs{
 position:absolute;left:0;right:0;bottom:0;
 display:flex;justify-content:center;align-items:stretch;gap:2px;
 background:rgba(0,0,0,.12);padding:0 10px;z-index:5
}
.top-tabs a{
 color:#fff;text-decoration:none;padding:10px 18px;border:0!important;border-radius:8px 8px 0 0!important;
 font-size:13px;font-weight:700;white-space:nowrap
}
.top-tabs a:hover,.top-tabs a.active{background:#fff;color:#123b52}
.top-tabs .pdf-tab{background:#167b68;color:#fff}
.top-tabs .pdf-tab:hover{background:#fff;color:#167b68}
@media(max-width:600px){
 header{
   display:grid!important;grid-template-columns:1fr auto!important;
   grid-template-areas:"brand logo" "profile profile"!important;
   padding:7px 10px 48px!important;gap:5px 8px!important
 }
 header>div:nth-of-type(2){grid-area:brand!important}
 header .school-brand{grid-area:logo!important}
 .user-profile{grid-area:profile!important;justify-content:center!important;margin:0!important;width:100%!important}
 .user-profile span{text-align:center!important;font-size:11px!important}
 .top-tabs{
   overflow-x:auto!important;justify-content:flex-start!important;
   -webkit-overflow-scrolling:touch;padding:0 4px!important;scrollbar-width:none
 }
 .top-tabs::-webkit-scrollbar{display:none}
 .top-tabs a{flex:0 0 auto;padding:9px 12px!important;font-size:12px!important}
}

/* V14 — Barra de pestañas clara y estable, especialmente en móvil */
header{
  position:relative!important;
  padding-bottom:58px!important;
}
.top-tabs{
  position:absolute!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  height:46px!important;
  display:flex!important;
  flex-wrap:nowrap!important;
  justify-content:center!important;
  align-items:stretch!important;
  gap:0!important;
  padding:0!important;
  margin:0!important;
  background:#0d3447!important;
  border-top:1px solid rgba(255,255,255,.25)!important;
  overflow:hidden!important;
}
.top-tabs a{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 1 150px!important;
  min-width:0!important;
  height:46px!important;
  margin:0!important;
  padding:0 14px!important;
  border:0!important;
  border-right:1px solid rgba(255,255,255,.30)!important;
  border-radius:0!important;
  background:transparent!important;
  color:#fff!important;
  text-decoration:none!important;
  font-size:13px!important;
  font-weight:700!important;
  line-height:1!important;
  white-space:nowrap!important;
  box-sizing:border-box!important;
}
.top-tabs a:first-child{border-left:1px solid rgba(255,255,255,.30)!important}
.top-tabs a.active{
  background:#ffffff!important;
  color:#123f54!important;
  box-shadow:inset 0 -4px 0 #ef1689!important;
}
.top-tabs .pdf-tab{
  background:#177e6b!important;
  color:#fff!important;
}
.top-tabs .pdf-tab:hover{background:#116957!important;color:#fff!important}

@media(max-width:600px){
  header{
    display:grid!important;
    grid-template-columns:1fr auto!important;
    grid-template-areas:"brand logo" "profile profile"!important;
    align-items:center!important;
    gap:5px 8px!important;
    padding:8px 10px 55px!important;
  }
  header>div:first-child{grid-area:brand!important}
  header .school-brand,
  header .center-logo,
  header .school-logo{grid-area:logo!important}
  .user-profile{
    grid-area:profile!important;
    width:100%!important;
    margin:0!important;
    display:flex!important;
    justify-content:center!important;
    min-height:18px!important;
  }
  .user-profile span{
    display:block!important;
    font-size:11px!important;
    line-height:1.15!important;
    text-align:center!important;
  }

  .top-tabs{
    height:44px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    justify-content:flex-start!important;
    scroll-snap-type:x proximity;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .top-tabs::-webkit-scrollbar{display:none!important}
  .top-tabs a{
    flex:0 0 auto!important;
    min-width:92px!important;
    height:44px!important;
    padding:0 10px!important;
    font-size:11.5px!important;
    scroll-snap-align:start;
  }
  .top-tabs .pdf-tab{min-width:105px!important}
}

@media(max-width:380px){
  .top-tabs a{min-width:86px!important;font-size:11px!important;padding:0 8px!important}
  .top-tabs .pdf-tab{min-width:100px!important}
}

/* V15 - Observaciones libres por guardia */
.observation-input{width:100%;box-sizing:border-box;resize:vertical;min-height:58px;padding:11px 13px;border:1px solid #cbd5df;border-radius:10px;font:inherit;background:#fff;color:#18212b}
.observation-input:focus{outline:2px solid #168b75;outline-offset:1px}
.duty-observation{margin-top:8px;padding:8px 10px;background:#fff8df;border-left:4px solid #e1ad27;border-radius:6px;font-size:13px;line-height:1.35;font-weight:400}
.duty-observation span{font-weight:800}
@media(max-width:600px){.observation-input{min-height:54px;font-size:16px}.duty-observation{font-size:12px;margin-top:7px}}

/* V16 - campo Observaciones visible en el formulario */
.add-duty .observation-input{
 display:block!important;
 width:100%!important;
 min-height:64px!important;
 margin-top:8px!important;
 padding:12px 14px!important;
 border:1px solid #b9c6d2!important;
 border-radius:10px!important;
 background:#fff!important;
 color:#18212b!important;
 font-size:15px!important;
 box-sizing:border-box!important;
 grid-column:1 / -1!important;
}
@media(max-width:600px){
 .add-duty .observation-input{min-height:62px!important;font-size:16px!important}
}

/* V19 - profesorado de guardia fijo semanal */
.fixed-guards{margin:7px 0 10px;padding:8px 10px;border-radius:8px;background:#eef8f5;border-left:4px solid #198b76;font-size:13px;line-height:1.45}
.fixed-guards strong{display:block;margin-bottom:3px;color:#126b5d}
.fixed-guards span{display:inline-block;margin:2px 7px 2px 0;padding:3px 7px;border-radius:999px;background:#fff;border:1px solid #c9e4dc}
@media(max-width:600px){.fixed-guards span{display:block;margin:4px 0}.fixed-guards{font-size:12px}}

/* V20 - cada profesor de guardia fija ocupa su propia línea de introducción */
.fixed-guards{display:none!important}
.fixed-duty-form{margin-bottom:9px!important;padding-bottom:9px!important;border-bottom:1px dashed #cbd8df}
.fixed-duty-form .fixed-teacher-select{font-weight:700;background:#eef8f5;border-color:#6bb7a7}
@media(max-width:600px){
 .fixed-duty-form{margin-bottom:12px!important;padding-bottom:12px!important}
}

/* V21 - filas independientes para cada guardia fija */
.fixed-guards{display:none!important}
.fixed-duty-form{
 display:grid!important;
 grid-template-columns:1fr 1fr 1fr!important;
 gap:9px!important;
 margin:8px 0!important;
 padding:10px!important;
 background:#f4faf8!important;
 border:1px solid #d3e9e3!important;
 border-left:4px solid #198b76!important;
 border-radius:9px!important;
}
.fixed-duty-form .fixed-teacher-name{
 min-height:46px;box-sizing:border-box;padding:6px 12px;border:1px solid #86bfb3;
 border-radius:9px;background:#fff;display:flex;flex-direction:column;justify-content:center;
}
.fixed-duty-form .fixed-teacher-name span{font-size:11px;color:#60717b;line-height:1.1}
.fixed-duty-form .fixed-teacher-name strong{font-size:15px;color:#0f695b;line-height:1.25;margin-top:2px}
.fixed-duty-form .observation-input{grid-column:1 / -1!important;margin-top:0!important}
.fixed-duty-form button{grid-column:1 / 2!important}
.extra-duty-label{font-size:12px;font-weight:700;color:#71808a;margin:13px 0 5px}
@media(max-width:700px){
 .fixed-duty-form{grid-template-columns:1fr!important}
 .fixed-duty-form .observation-input,.fixed-duty-form button{grid-column:1!important}
}

/* V22 */
.fixed-guards{display:none!important}
.fixed-duty-form,.add-duty{
 display:grid!important;
 grid-template-columns:minmax(210px,1.2fr) minmax(230px,1.25fr) minmax(190px,1fr) minmax(145px,.65fr) 120px!important;
 gap:9px!important;align-items:center!important;margin:7px 0!important;padding:0!important;
 border:0!important;background:transparent!important;
}
.fixed-duty-form .observation-input,.add-duty .observation-input{
 grid-column:auto!important;margin:0!important;min-height:44px!important;height:44px!important;
 padding:7px 10px!important;resize:none!important
}
.fixed-duty-form button,.add-duty button{
 grid-column:auto!important;width:120px!important;height:38px!important;margin:0!important
}
.fixed-duty-form .fixed-teacher-select{font-weight:700!important;background:#eef8f5!important;border-color:#83bfb2!important}
.extra-duty-label{margin:10px 0 5px;padding:5px 9px;border-left:4px solid #2d69bf;background:#f3f7fd;font-size:12px;font-weight:700;color:#24538f}
@media(max-width:900px){
 .fixed-duty-form,.add-duty{grid-template-columns:1fr 1fr!important}
 .fixed-duty-form .observation-input,.add-duty .observation-input{grid-column:1 / -1!important}
}
@media(max-width:600px){
 .fixed-duty-form,.add-duty{grid-template-columns:1fr!important}
 .fixed-duty-form .observation-input,.add-duty .observation-input,.fixed-duty-form button,.add-duty button{grid-column:1!important;width:100%!important}
}

/* V24 - Curso y Clase separados */
.fixed-duty-form,.add-duty{grid-template-columns:minmax(180px,1.1fr) minmax(190px,1.15fr) minmax(115px,.62fr) minmax(115px,.62fr) minmax(125px,.65fr) 105px!important}
.fixed-duty-form button,.add-duty button{width:105px!important}
.assigned-classroom{font-size:12px;color:#64748b;margin-top:3px}
@media(max-width:1100px){.fixed-duty-form,.add-duty{grid-template-columns:1fr 1fr 1fr!important}}
@media(max-width:700px){.fixed-duty-form,.add-duty{grid-template-columns:1fr 1fr!important}}
@media(max-width:600px){.fixed-duty-form,.add-duty{grid-template-columns:1fr!important}}

/* V38 · profesores de guardia fija todavía sin sustitución asignada */
.free-fixed-guards{margin:7px 0 2px;padding:7px 10px;border-top:1px solid #d9e1e5}
.free-fixed-name{font-size:.92rem;font-weight:600;line-height:1.45}

/* V39 · mensaje de los viernes */
.friday-message{margin:14px 0 4px;padding:10px 14px;border-radius:10px;text-align:center;font-weight:800;letter-spacing:.04em;font-size:1.05rem}
