/* ===== Reserva de Espacios Educativos · rediseño v2 ===== */
@font-face{font-family:"Inter";src:url(fonts/inter-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Inter";src:url(fonts/inter-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Inter";src:url(fonts/inter-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Inter";src:url(fonts/inter-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
:root{--bg:#f6f4ef;--ink:#1f2a2e;--muted:#5b6b70;--line:#e5e1d8;--navy:#173f73;
  --g-cab:58px;--g-blq:66px;--g-rec:16px;--g-alm:30px;--g-col0:72px}
body{font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg)}
h1,h2.tit,.panel h2,.cal-tit h1{font-family:"Fraunces",Georgia,serif;color:var(--navy);letter-spacing:0}
.card{border-radius:14px;border-color:var(--line)}
.btn{border-radius:10px}
.pag-calendario .wrap{max-width:1360px}
.pag-calendario .top-in,.pag-calendario .nav{max-width:1360px}

/* --- Cabecera --- */
.top{border-bottom:3px solid var(--rojo)}
.top-in{gap:1rem}
.usuario{display:flex;align-items:center;gap:.7rem;color:#fff;margin-left:auto}
.usuario-txt{display:flex;flex-direction:column;align-items:flex-end;font-weight:600;font-size:.92rem;line-height:1.2;text-shadow:0 1px 3px rgba(0,0,0,.5)}
.usuario-txt small{color:#dce8f7!important;font-weight:500;font-size:.78rem}
.usuario-txt a{color:#fff;font-weight:700}
.avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#fff;color:var(--navy);font-weight:700;font-size:.85rem;flex:none;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.btn-ingresar{margin-left:auto;background:#fff;color:var(--navy);font-weight:700;text-decoration:none;padding:.5rem 1rem;border-radius:999px;font-size:.92rem}
.btn-ingresar:hover{background:#e4eefa}
.nav{gap:.3rem}
.nav a,.nav-admin summary{border-radius:999px!important;padding:.4rem .9rem!important;font-size:.9rem}
.nav-admin{position:relative}
.nav-admin summary{list-style:none;cursor:pointer;color:#fff;font-weight:600;text-shadow:0 1px 3px rgba(0,0,0,.6);display:flex;align-items:center;gap:.35rem}
.nav-admin summary::-webkit-details-marker{display:none}
.nav-admin summary::after{content:"";width:6px;height:6px;border:solid currentColor;border-width:0 2px 2px 0;transform:rotate(45deg) translateY(-2px)}
.nav-admin summary:hover{background:rgba(255,255,255,.18)}
.nav-admin.on summary{background:#fff;color:var(--navy);text-shadow:none}
.nav-admin-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:230px;background:#fff;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.18);padding:.35rem;z-index:40;display:flex;flex-direction:column}
.nav-admin-menu a{color:var(--ink)!important;text-shadow:none!important;font-weight:500!important;border-radius:8px!important;padding:.5rem .7rem!important}
.nav-admin-menu a:hover{background:#e4eefa!important}
.nav-admin-menu a[aria-current]{background:#e4eefa;font-weight:700!important;color:var(--navy)!important}
.nav-salir,.nav-adm-m{display:none!important}
@media (max-width:820px){
  .usuario-txt{display:none}
  .nav-admin{display:none}
  .nav-adm-m{display:block!important}
  .nav-salir{display:block!important}
}

/* --- Barra inferior (celular) --- */
.barra-movil{display:none}
@media (max-width:760px){
  .con-sesion{padding-bottom:70px}
  .barra-movil{display:flex;position:fixed;left:0;right:0;bottom:0;height:64px;background:#fff;border-top:1px solid var(--line);justify-content:space-around;align-items:center;z-index:30;padding-bottom:env(safe-area-inset-bottom)}
  .barra-movil a{display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;color:var(--muted);font-size:.72rem;font-weight:600;padding:.3rem .8rem;border-radius:10px}
  .barra-movil a .ico{width:22px;height:22px}
  .barra-movil a.on{color:var(--navy)}
  .barra-movil a.on .ico{stroke-width:2.3}
}

/* --- Botones genéricos --- */
.btn-grande{display:flex;align-items:center;justify-content:center;gap:.5rem;background:#1f5fa8;color:#fff;text-decoration:none;font-weight:700;font-size:1rem;padding:.85rem 1rem;border-radius:12px;box-shadow:0 6px 16px rgba(31,95,168,.28)}
.btn-grande:hover{background:var(--navy);color:#fff}
.btn-grande .ico{width:18px;height:18px;stroke-width:2.4}
.btn-sec2{display:inline-flex;align-items:center;gap:.45rem;background:#fff;border:1px solid var(--line);color:var(--ink);text-decoration:none;font-weight:600;font-size:.88rem;padding:.5rem .85rem;border-radius:10px}
.btn-sec2:hover{border-color:#1f5fa8;color:#1f5fa8}

/* --- Diseño del calendario --- */
.cal-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:1.2rem;align-items:start}
.cal-lado{display:flex;flex-direction:column;gap:1rem;position:sticky;top:1rem}
.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:.9rem 1rem}
.panel-cab{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.6rem}
.panel-cab h2{margin:0;font-size:1.05rem}
.panel-cab>span{font-size:.75rem;color:var(--muted);text-align:right}
.panel-cab>a{font-size:.8rem;font-weight:600}
ul.ahora{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}
ul.ahora li{display:flex;align-items:center;gap:.6rem}
.ahora-ico{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:color-mix(in srgb,var(--c) 16%,#fff);color:color-mix(in srgb,var(--c) 80%,#000);flex:none}
.ahora-ico .ico{width:17px;height:17px}
.ahora-txt{flex:1;min-width:0;font-weight:600;font-size:.86rem;line-height:1.2}
.ahora-txt small{display:block;font-weight:400;font-size:.75rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.estado{font-size:.7rem;font-weight:700;padding:.15rem .5rem;border-radius:999px;flex:none}
.estado-libre{background:#e3f4ea;color:#1e6b3a}
.estado-ocupado{background:#fbe5e5;color:#9b2c2c}
.mm-nav{display:flex;gap:.2rem}
.mm-nav a{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;color:var(--muted)}
.mm-nav a:hover{background:#e4eefa;color:#1f5fa8}
.mm{display:grid;grid-template-columns:repeat(5,1fr);gap:3px;text-align:center}
.mm-d{font-size:.7rem;font-weight:700;color:var(--muted);padding-bottom:2px}
.mm a{position:relative;display:block;padding:.32rem 0;border-radius:8px;text-decoration:none;color:var(--ink);font-size:.82rem;font-variant-numeric:tabular-nums}
.mm a:hover{background:#f1eee7}
.mm a.fuera{color:#b9b4aa}
.mm a.sel{background:#e4eefa;color:var(--navy);font-weight:600}
.mm a.hoy{background:#1f5fa8;color:#fff;font-weight:700}
.mm a.con::after{content:"";position:absolute;left:50%;bottom:2px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:#1f5fa8}
.mm a.hoy.con::after{background:#fff}
.filtro-esp{display:flex;flex-direction:column;gap:.15rem}
.filtro-esp label{display:flex;align-items:center;gap:.5rem;font-weight:500;font-size:.88rem;margin:0;padding:.35rem .4rem;border-radius:8px;cursor:pointer}
.filtro-esp label:hover{background:#f6f4ef}
.filtro-esp input{accent-color:var(--c);width:16px;height:16px;margin:0}
.filtro-esp .esp-ico{color:color-mix(in srgb,var(--c) 80%,#000);margin:0}

.cal-cab{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.8rem;margin-bottom:.9rem}
.cal-tit h1{margin:0;font-size:1.75rem;line-height:1.15}
.cal-tit p{margin:.2rem 0 0;color:var(--muted);font-size:.9rem}
.cal-ctrl{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.seg{display:inline-flex;background:#ebe7de;border-radius:999px;padding:3px}
.seg a{padding:.38rem .95rem;border-radius:999px;text-decoration:none;color:var(--muted);font-weight:600;font-size:.88rem}
.seg a.on{background:#fff;color:var(--navy);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.nav-fechas{display:inline-flex;align-items:center;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.nav-fechas a{display:grid;place-items:center;height:36px;min-width:36px;color:var(--ink);text-decoration:none;font-weight:600;font-size:.88rem}
.nav-fechas a.txt{padding:0 .8rem;border-left:1px solid var(--line);border-right:1px solid var(--line)}
.nav-fechas a:hover{background:#e4eefa;color:#1f5fa8}

/* --- Grilla de semana / día --- */
.grilla-caja{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:auto;-webkit-overflow-scrolling:touch}
.grilla{display:grid;position:relative}
.g-cab{position:sticky;top:0;z-index:4;background:#fff;border-bottom:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;color:var(--ink)}
.g-cab span{font-size:.72rem;font-weight:700;letter-spacing:.06em;color:var(--muted)}
.g-cab b{font-size:1.2rem;line-height:1.1}
.g-cab.hoy b{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#1f5fa8;color:#fff;font-size:1rem}
.g-cab.hoy span{color:#1f5fa8}
a.g-cab:hover{background:#f6f9fd}
.g-cab-esp{flex-direction:row;gap:.45rem;padding:0 .5rem;font-weight:700;font-size:.86rem;border-top:4px solid var(--c);text-align:center}
.g-cab-esp span{font-size:.86rem;letter-spacing:0;color:var(--ink);line-height:1.15}
.g-cab-esp .esp-ico{margin:0;color:color-mix(in srgb,var(--c) 80%,#000)}
.g-esq{left:0;z-index:5}
.g-hoy{background:#f3f7fd;z-index:0}
.g-blq{position:sticky;left:0;z-index:3;background:#fff;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;padding:0 .7rem;line-height:1.15}
.g-blq b{font-size:.92rem}
.g-blq span{font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums}
.g-linea{border-bottom:1px solid #efece5;z-index:0}
.g-sep{display:flex;align-items:center;justify-content:center;font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:#9a958b;background:#faf8f4;border-bottom:1px solid #efece5;z-index:1}
.g-sep.alm{background:repeating-linear-gradient(135deg,#f7f4ee,#f7f4ee 6px,#f0ece4 6px,#f0ece4 12px);font-weight:600}
.g-libre{z-index:1;margin:3px;border-radius:10px;display:grid;place-items:center;text-decoration:none;color:transparent;font-size:1.2rem;font-weight:600}
.g-libre:hover,.g-libre:focus-visible{color:#1f5fa8;background:#e4eefa;outline:1.5px dashed #1f5fa8;outline-offset:-1.5px}
@media (hover:none){.g-libre span{color:#cfd8e3;font-size:.9rem}}

.tarjeta{z-index:2;justify-self:start;align-self:stretch;margin:3px 0 3px calc(100% / var(--k) * var(--l) + 3px);width:calc(100% / var(--k) - 6px);min-width:0;
  background:color-mix(in srgb,var(--c) 14%,#fff);border-radius:10px;padding:.4rem .55rem;display:flex;flex-direction:column;gap:1px;overflow:hidden;
  text-decoration:none;color:var(--ink);font-size:.78rem;line-height:1.25;border-left:3px solid var(--c);transition:box-shadow .15s,transform .15s}
a.tarjeta:hover{box-shadow:0 4px 14px rgba(0,0,0,.12);transform:translateY(-1px);color:var(--ink)}
.t-esp{display:flex;align-items:center;font-size:.66rem;font-weight:700;letter-spacing:.03em;color:color-mix(in srgb,var(--c) 72%,#000);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.t-tit{font-weight:700;font-size:.84rem;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.t-sub{color:var(--muted);font-size:.74rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.t-ahora{margin-top:auto;align-self:flex-start;font-size:.65rem;font-weight:700;color:#fff;background:color-mix(in srgb,var(--c) 85%,#000);padding:.05rem .45rem;border-radius:999px}
.tarjeta.en-curso{box-shadow:inset 0 0 0 2px var(--c)}
.g-ahora{z-index:3;align-self:start;height:2px;background:var(--rojo);margin-top:calc(var(--p) * var(--g-blq));position:relative;pointer-events:none}
.g-ahora::before{content:"";position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--rojo)}
.cal-ayuda{font-size:.8rem;color:var(--muted);margin:.6rem 0 0}

/* --- Mes --- */
.mes2{min-width:720px;border:0}
.mes2 thead th{background:#fff;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-left:0}
.mes2 td{border-left:1px solid #efece5;border-bottom:1px solid #efece5;height:8rem}
.mes2 td:first-child{border-left:0}
.mes2 td.hoy{background:#f3f7fd}
.mes2 .chip{border-radius:7px;border-left-width:3px}
.mes2 td.hoy .mes-dia a:first-child{background:#1f5fa8}

/* --- Celular --- */
.solo-movil{display:none}
@media (max-width:760px){
  .cal-layout{display:block}
  .cal-lado,.grilla-caja,.cal-ayuda,.cal-ctrl .btn-sec2{display:none!important}
  .solo-movil{display:flex}
  .wrap{padding:.9rem .9rem 2rem}
  .cal-cab{align-items:center;margin-bottom:.7rem}
  .cal-tit h1{font-size:1.35rem}
  .cal-ctrl{width:100%;justify-content:space-between}
  .tira-dias{gap:6px;margin-bottom:.7rem}
  .tira-dias a{flex:1;display:flex;flex-direction:column;align-items:center;padding:.4rem 0;border-radius:10px;border:1px solid var(--line);background:#fff;text-decoration:none;color:var(--ink)}
  .tira-dias a span{font-size:.66rem;font-weight:700;color:var(--muted)}
  .tira-dias a b{font-size:1.05rem}
  .tira-dias a.hoy{border-color:#1f5fa8}
  .tira-dias a.on{background:var(--navy);border-color:var(--navy);color:#fff}
  .tira-dias a.on span{color:#c3d6ef}
  .chips-esp{gap:6px;overflow-x:auto;margin:0 -.9rem .8rem;padding:0 .9rem;scrollbar-width:none}
  .chips-esp a{flex:none;display:inline-flex;align-items:center;padding:.4rem .8rem;border-radius:999px;background:#fff;border:1px solid var(--line);text-decoration:none;color:var(--ink);font-size:.8rem;font-weight:600;white-space:nowrap}
  .chips-esp a .esp-ico{margin-right:.3rem}
  .chips-esp a.on{background:var(--navy);border-color:var(--navy);color:#fff}
  .agenda{flex-direction:column}
  .fab{position:fixed;right:16px;bottom:80px;z-index:25;display:flex;align-items:center;gap:.45rem;background:#1f5fa8;color:#fff;text-decoration:none;font-weight:700;font-size:.95rem;padding:.85rem 1.1rem;border-radius:999px;box-shadow:0 8px 20px rgba(31,95,168,.35)}
  .fab .ico{width:18px;height:18px;stroke-width:2.4}
}
.ag-dia{font-family:"Fraunces",Georgia,serif;font-size:1.05rem;color:var(--navy);margin:1rem 0 .5rem}
.ag-dia:first-child{margin-top:0}
.ag-dia.hoy{color:#1f5fa8}
ol.ag-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}
.ag-item{display:flex;gap:.7rem}
.ag-hora{width:50px;flex:none;text-align:right;font-size:.72rem;color:var(--muted);padding-top:.3rem;line-height:1.25}
.ag-hora b{display:block;font-size:.88rem;color:var(--ink)}
.ag-tarj{flex:1;min-width:0;display:flex;gap:.6rem;align-items:center;background:color-mix(in srgb,var(--c) 14%,#fff);border-radius:12px;padding:.7rem;text-decoration:none;color:var(--ink)}
.ag-tarj.en-curso{box-shadow:inset 0 0 0 2px var(--c)}
.ag-tarj.en-curso strong{color:color-mix(in srgb,var(--c) 72%,#000)}
.ag-ico{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--c);color:#fff;flex:none}
.ag-ico .ico{width:20px;height:20px}
.ag-txt{min-width:0;font-size:.82rem;line-height:1.3}
.ag-txt b{display:block;font-size:.92rem}
.ag-txt small{display:block;color:var(--muted);font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ag-ahora{display:flex;align-items:center;gap:.7rem}
.ag-ahora span{width:50px;text-align:right;font-size:.72rem;font-weight:700;color:var(--rojo)}
.ag-ahora i{flex:1;height:2px;background:var(--rojo);position:relative}
.ag-ahora i::before{content:"";position:absolute;left:-4px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--rojo)}
.ag-vacio{border:1.5px dashed #c9c3b8;border-radius:12px;padding:.8rem;font-size:.85rem;color:var(--muted);margin-left:calc(50px + .7rem)}
p.ag-vacio{margin-left:0}

/* --- Impresión de la grilla --- */
.modo-imp .cal-layout{display:block}
.modo-imp .grilla-caja{border:0;border-radius:0;overflow:visible}
.modo-imp .grilla{min-width:0!important;--g-blq:46px;--g-cab:40px;--g-rec:10px;--g-alm:18px}
.modo-imp .g-cab,.modo-imp .g-blq{position:static}
.modo-imp .grilla{border:1px solid var(--line)}
@media print{
  .barra-movil,.fab,.solo-movil,.cal-lado{display:none!important}
  .con-sesion{padding-bottom:0}
  .grilla-caja{display:block!important;border:0;overflow:visible!important}
  .grilla{min-width:0!important;--g-blq:44px;--g-cab:34px;--g-rec:9px;--g-alm:16px;--g-col0:56px;border:1px solid #ddd}
  .g-cab,.g-blq{position:static}
  .g-cab b{font-size:11px}.g-cab span{font-size:8px}
  .g-cab.hoy b{width:auto;height:auto;background:none;color:inherit}
  .g-blq{padding:0 4px}.g-blq b{font-size:10px}.g-blq span{font-size:8px}
  .g-sep{font-size:7px}
  .g-hoy{display:none}
  .tarjeta{font-size:8px;padding:2px 4px;border-radius:4px;margin-top:1px;margin-bottom:1px;box-shadow:none!important}
  .t-esp{font-size:7px}.t-tit{font-size:8.5px;-webkit-line-clamp:3}.t-sub{font-size:7.5px}.t-ahora{display:none}
  .tarjeta,.g-sep,.g-cab-esp,.ag-ico{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .mes2 td{height:auto}
}
@media (max-width:760px){
  .marca-ico{display:none}
  .marca strong{font-size:1.05rem}
  .top{position:static}
}

/* --- Formulario de reserva en pasos --- */
.pag-nueva .wrap,.pag-calendario .wrap:has(.rf){max-width:1240px}
.rf-cab{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:.8rem}
.rf-cab h1{margin:.2rem 0 0;font-size:1.8rem}
.rf-volver{display:inline-flex;align-items:center;gap:.3rem;font-size:.85rem;font-weight:600;text-decoration:none}
.rf-meta{color:var(--muted);font-size:.88rem;margin:-.2rem 0 1rem}
.rf{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1.2rem;align-items:start}
.rf-pasos{display:flex;flex-direction:column;gap:1rem;min-width:0}
.rf-paso{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1rem 1.2rem 1.2rem;margin:0;min-width:0}
.rf-paso legend{float:left;width:100%;display:flex;align-items:center;gap:.6rem;font-family:"Fraunces",Georgia,serif;font-weight:700;font-size:1.15rem;color:var(--navy);padding:0;margin:0 0 .9rem}
.rf-paso legend+*{clear:both}
.rf-paso-cab{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.5rem}
.rf-paso-cab legend{width:auto;float:none}
.paso{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--navy);color:#fff;font:700 .85rem Inter,sans-serif;flex:none}
.rf-esp{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}
.rf-esp input,.rf-bloques input{position:absolute;opacity:0;pointer-events:none}
.rf-esp label{margin:0;display:flex;flex-direction:column;gap:.15rem;padding:.8rem;border:1.5px solid var(--line);border-radius:12px;cursor:pointer;background:#fff;font-weight:500;transition:border-color .15s,background .15s}
.rf-esp label:hover{border-color:var(--c)}
.rf-esp-ico{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:color-mix(in srgb,var(--c) 16%,#fff);color:color-mix(in srgb,var(--c) 80%,#000);margin-bottom:.35rem}
.rf-esp-ico .ico{width:19px;height:19px}
.rf-esp label b{font-size:.92rem;line-height:1.2}
.rf-esp-est{font-size:.76rem;color:#1e6b3a}
.rf-esp-est.con{color:#8a5a00}
.rf-esp input:checked+label{border-color:var(--c);background:color-mix(in srgb,var(--c) 9%,#fff);box-shadow:0 0 0 1px var(--c)}
.rf-esp input:checked+label .rf-esp-ico{background:var(--c);color:#fff}
.rf-esp input:focus-visible+label{outline:2px solid #1f5fa8;outline-offset:2px}
.rf-dias{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.rf-tira{display:flex;gap:.4rem}
.rf-dia{font:inherit;display:flex;flex-direction:column;align-items:center;width:58px;padding:.4rem 0;border-radius:10px;border:1.5px solid var(--line);background:#fff;cursor:pointer;color:var(--ink)}
.rf-dia span{font-size:.66rem;font-weight:700;color:var(--muted)}
.rf-dia b{font-size:1.1rem}
.rf-dia.hoy{border-color:#9fbde3}
.rf-dia:hover{border-color:#1f5fa8}
.rf-dia.on{background:var(--navy);border-color:var(--navy);color:#fff}
.rf-dia.on span{color:#c3d6ef}
.rf-sem{font:inherit;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer;color:var(--muted)}
.rf-sem:hover{color:#1f5fa8;border-color:#1f5fa8}
.rf-otra{margin:0 0 0 auto;display:flex;flex-direction:column;font-size:.78rem;color:var(--muted);font-weight:600}
.rf-otra input{width:auto;margin-top:.15rem}
.rf-leyenda{display:flex;gap:.8rem;font-size:.76rem;color:var(--muted)}
.rf-leyenda span{display:flex;align-items:center;gap:.3rem}
.rf-leyenda i{width:12px;height:12px;border-radius:4px;border:1.5px solid #d7d0c4;background:#fff}
.rf-leyenda i.sel{background:#1f5fa8;border-color:#1f5fa8}
.rf-leyenda i.oc{background:#f1eee8;border:1.5px dashed #c9c3b8}
.chip-btn{font:inherit;font-size:.8rem;font-weight:600;padding:.3rem .75rem;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer}
.chip-btn:hover{border-color:#1f5fa8;color:#1f5fa8}
.rf-bloques{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:.45rem}
.rf-bloques label{border-radius:10px;padding:.5rem .3rem;border-color:var(--line)}
.rf-bloques label b{font-size:1rem}
.rf-bloques label em{color:#1e6b3a;font-size:.68rem}
.rf-bloques input:checked+label{background:#1f5fa8;border-color:#1f5fa8}
.rf-bloques input:checked+label em{color:#dce8f7}
.rf-bloques input:checked+label em::before{content:"✓ "}
.rf-bloques label.ocupado{background:#f1eee8;border:1.5px dashed #c9c3b8;color:#8f897e}
.rf-bloques label.ocupado em{color:#8f897e}
.rf-bloques input:checked+label.ocupado{background:var(--l1);border-color:var(--l1);color:#fff}
.rf-bloques input:checked+label.ocupado em::before{content:"⚠ "}
.rf-ayuda{color:var(--muted);font-size:.85rem;margin:.6rem 0 0}
.rf-campos{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}
.rf-campos .f{margin-bottom:.8rem}
.rf-ancho{grid-column:1/-1}
.rf-campos select,.rf-campos input,.rf-campos textarea{border-radius:10px;border-color:#d6d0c4}
.rf-resumen{position:sticky;top:1rem;background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.1rem 1.2rem;display:flex;flex-direction:column;gap:.8rem;box-shadow:0 6px 24px rgba(23,63,115,.07)}
.rf-resumen h2{font-family:"Fraunces",Georgia,serif;color:var(--navy);margin:0;font-size:1.15rem}
.rf-r-esp{display:flex;align-items:center;gap:.7rem}
.rf-r-esp b{display:block;font-size:1rem}
.rf-r-esp span:not(.rf-r-ico){font-size:.85rem;color:var(--muted)}
.rf-r-ico{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--c,#e5e1d8);color:#fff;flex:none}
.rf-r-ico .ico{width:22px;height:22px}
.rf-resumen dl{display:grid;grid-template-columns:max-content 1fr;gap:.4rem .9rem;margin:0;font-size:.88rem;border-top:1px solid var(--line);padding-top:.8rem}
.rf-resumen dt{color:var(--muted)}
.rf-resumen dd{margin:0;font-weight:600}
.rf-aviso{display:flex;gap:.5rem;align-items:flex-start;background:#e4eefa;color:var(--navy);border-radius:10px;padding:.6rem .7rem;font-size:.82rem;margin:0}
.rf-aviso .ico{margin-top:2px}
.rf-resumen .btn-grande{border:0;font:inherit;font-weight:700;cursor:pointer;width:100%}
.rf-cancelar{text-align:center;font-size:.88rem;font-weight:600;color:var(--muted);text-decoration:none}
.rf-cancelar:hover{color:var(--ink)}
.rf fieldset[disabled]{opacity:.9}
.eliminar.panel,.hist-card.panel{margin-top:1.2rem;max-width:calc(100% - 340px)}
@media (max-width:980px){
  .rf{grid-template-columns:1fr}
  .rf-resumen{position:static}
  .eliminar.panel,.hist-card.panel{max-width:none}
}
@media (max-width:600px){
  .rf-campos{grid-template-columns:1fr}
  .rf-dia{width:auto;flex:1}
  .rf-tira{flex:1}
  .rf-otra{margin:0;width:100%}
  .rf-paso{padding:.9rem}
  .rf-esp{grid-template-columns:1fr 1fr}
}
.pag-mias .wrap{max-width:860px}
.ag-hora span{display:block}
.vacio.panel{text-align:center;color:var(--muted);padding:2rem}
.pag-nueva .top-in,.pag-nueva .nav{max-width:1240px}
@media print{body{background:#fff!important}}
