/* ============================================================
   RADIO RUGE 14 — Calendario mensual (fechas reales)
   Hoja independiente: la usan el sitio y el panel por igual.
   ============================================================ */
.cal{
  --cal-ink:#121212;  --cal-red:#C8102E;  --cal-cyan:#00B8C9; --cal-cyan-d:#00929f;
  --cal-yellow:#FFC400;
  --cal-paper:#fff;   --cal-g1:#F6F8F8;   --cal-g2:#DBE3E3;
  --cal-g3:#B4C2C4;   --cal-g4:#6B7C80;   --cal-g5:#42504F;
  --cal-hundido:#E9EEEE;  --cal-r:12px;
  --cal-sombra:0 1px 2px rgba(20,25,27,.05), 0 8px 24px -14px rgba(20,25,27,.20);
  --cal-pad:clamp(14px,2vw,26px);
  --cal-maxw:1400px;
  --cal-head:'Archivo','Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --cal-ease:cubic-bezier(.4,0,.2,1);
  background:var(--cal-paper);
  border-radius:var(--cal-r);
  box-shadow:var(--cal-sombra);
  /* el borde ocupa todo el ancho; el calendario se centra a 1400px */
  overflow:hidden;
}
.cal *{box-sizing:border-box;}

.cal-top{display:flex;align-items:center;gap:14px;padding:14px var(--cal-pad);
  border-bottom:1px solid var(--cal-g2);background:var(--cal-paper);
  border-radius:var(--cal-r) var(--cal-r) 0 0;}
.cal-mes{font-family:var(--cal-head);font-weight:800;letter-spacing:-.01em;
  font-size:clamp(16px,1.6vw,21px);text-transform:capitalize;flex:1;margin:0;color:var(--cal-ink);}
.cal-nav{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--cal-g2);
  border-radius:50%;font-size:16px;font-weight:600;background:var(--cal-paper);flex:none;color:var(--cal-ink);
  text-decoration:none;transition:background .14s var(--cal-ease),color .14s var(--cal-ease),border-color .14s var(--cal-ease);}
.cal-nav:hover{background:var(--cal-hundido);border-color:var(--cal-g3);}
.cal-hoy{font-size:13.5px;font-weight:600;color:var(--cal-cyan-d);white-space:nowrap;text-decoration:none;}
.cal-hoy:hover{text-decoration:underline;}

.cal-rejilla{display:grid;grid-template-columns:repeat(7,1fr);border-left:1px solid var(--cal-g2);}
.cal-dow{font-size:12px;font-weight:600;letter-spacing:.04em;
  color:var(--cal-g5);background:var(--cal-hundido);padding:10px 8px;text-align:center;
  border-right:1px solid var(--cal-g2);border-bottom:1px solid var(--cal-g2);}
.cal-dia{min-height:100px;padding:6px;border-right:1px solid var(--cal-g2);
  border-bottom:1px solid var(--cal-g2);display:flex;flex-direction:column;gap:3px;background:var(--cal-paper);}
.cal-dia.finde{background:#fafafa;}
.cal-dia.vacio{background:var(--cal-g1);}
.cal-dia.hoy{background:#FFFBEC;box-shadow:inset 0 0 0 2px var(--cal-yellow);}
.cal-num{display:flex;align-items:center;justify-content:space-between;
  font-family:var(--cal-head);font-size:12.5px;font-weight:700;color:var(--cal-g4);margin-bottom:2px;}
.cal-dia.hoy .cal-num span{background:var(--cal-red);color:#fff;width:22px;height:22px;
  border-radius:50%;display:grid;place-items:center;font-size:11.5px;}
.cal-mas{width:20px;height:20px;display:grid;place-items:center;color:var(--cal-g3);font-size:15px;
  line-height:1;border:1px dashed var(--cal-g2);border-radius:5px;opacity:0;text-decoration:none;
  transition:opacity .14s var(--cal-ease);}
.cal-dia:hover .cal-mas{opacity:1;}
.cal-mas:hover{background:var(--cal-red);color:#fff;border-color:var(--cal-red);}

.cal-item{display:block;font-size:11px;line-height:1.35;padding:4px 6px;border-radius:5px;text-decoration:none;
  color:var(--cal-ink);border-left:3px solid var(--c,var(--cal-red));background:var(--cal-g1);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
@supports (background:color-mix(in srgb,#000 9%,#fff)){
  .cal-item{background:color-mix(in srgb, var(--c,#C8102E) 9%, #fff);}
  a.cal-item:hover{background:color-mix(in srgb, var(--c,#C8102E) 20%, #fff);}
}
.cal-item b{font-weight:700;color:var(--c,var(--cal-red));}
.cal-item.cancelado{opacity:.5;text-decoration:line-through;border-left-style:dotted;}
.cal-item.especial{border-left-color:var(--cal-cyan);background:#e6f8fa;
  box-shadow:inset 0 0 0 1px var(--cal-cyan);}
.cal-item.especial b{color:var(--cal-cyan-d);}
.cal-item.aviso{border-left:3px solid var(--cal-g4);background:var(--cal-g1);color:var(--cal-g5);
  font-style:italic;white-space:normal;text-decoration:none;opacity:1;}

.cal-leyenda{display:flex;gap:18px;flex-wrap:wrap;padding:12px var(--cal-pad);
  font-size:12px;color:var(--cal-g5);border-top:1px solid var(--cal-g2);}
.cal-leyenda span{display:inline-flex;align-items:center;gap:7px;}
.cal-leyenda .pt{width:11px;height:11px;flex:none;display:block;}
.cal-leyenda .pt.normal{background:var(--cal-red);}
.cal-leyenda .pt.especial{background:var(--cal-cyan);}
.cal-leyenda .pt.cancelado{background:var(--cal-g3);}
.cal-leyenda .pt.hoy{background:var(--cal-yellow);}

.cal-scroll{overflow-x:auto;padding:0 var(--pad,24px) clamp(28px,3vw,44px);}
@media (max-width:860px){
  .cal-rejilla{min-width:660px;}
  .cal-dia{min-height:84px;}
}
