/* ===== OLYMPIA CALENDAR V9 STABLE OVERRIDES ===== */

body{
  overflow:hidden;
}

.calendar-empty-banner{
  position:absolute;
  inset:auto 24px 24px 24px;
  padding:18px 22px;
  background:rgba(23,23,36,.96);
  border:1px solid rgba(226,47,68,.45);
  border-radius:16px;
  display:flex;
  flex-direction:column;
  gap:8px;
  box-shadow:0 12px 40px rgba(0,0,0,.55);
  z-index:10;
}
.calendar-empty-banner h3{
  margin:0;
  font-size:.95rem;
  font-weight:500;
  color:rgba(255,255,255,.92);
  letter-spacing:.02em;
}
.calendar-empty-banner p{
  margin:0;
  font-size:.8rem;
  font-weight:300;
  color:rgba(255,255,255,.72);
  letter-spacing:.02em;
  line-height:1.4;
}
.calendar-empty-banner .btn{
  align-self:flex-start;
  margin-top:4px;
}

/* Pila tipográfica moderna específica del calendario.
   Inter se carga desde Google Fonts en index.html (pesos 300, 400, 500, 600)
   para garantizar disponibilidad y que el peso Light renderice como Light real,
   no como un Regular adelgazado por el navegador. */
.calendar-v8,
.calendar-v8 *{
  font-family:"Inter","Segoe UI Variable","Segoe UI",system-ui,-apple-system,"Roboto","Helvetica Neue",Arial,sans-serif !important;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  font-synthesis:none;
}

.calendar-v8{
  grid-template-columns:300px minmax(0,1fr) !important;
  gap:8px !important;
}

@media (min-width:901px){
  .calendar-v8{
    height:calc(100vh - 92px) !important;
    min-height:0 !important;
    overflow:hidden !important;
  }

  .calendar-v8 .calendar-main{
    height:calc(100vh - 92px) !important;
    display:grid !important;
    grid-template-rows:38px 28px minmax(0,1fr) !important;
    gap:5px !important;
    overflow:hidden !important;
  }

  .calendar-v8 .calendar-sidebar{
    max-height:calc(100vh - 92px) !important;
    overflow:auto !important;
    padding:10px !important;
  }

  .calendar-v8 .calendar-topbar{
    min-height:38px !important;
    padding:5px 8px !important;
  }

  .calendar-v8 .calendar-topbar p{
    display:none !important;
  }

  .calendar-v8 .calendar-view-tabs{
    height:28px !important;
    padding:2px !important;
  }

  .calendar-v8 .calendar-view-tabs button{
    height:22px !important;
    min-height:22px !important;
    padding:2px 7px !important;
    font-size:.62rem !important;
  }

  .calendar-v8 .calendar-render,
  .calendar-v8 .calendar-month-view,
  .calendar-v8 .calendar-grid{
    height:100% !important;
    min-height:0 !important;
    overflow:hidden !important;
  }

  .calendar-v8 .calendar-month-view{
    display:grid !important;
    grid-template-rows:22px minmax(0,1fr) !important;
  }

  .calendar-v8 .calendar-days{
    height:100% !important;
    display:grid !important;
    grid-template-columns:repeat(7,1fr) !important;
    grid-template-rows:repeat(6,1fr) !important;
  }

  .calendar-v8 .calendar-month-view .calendar-day{
    min-height:0 !important;
    height:auto !important;
    padding:3px !important;
    overflow:hidden !important;
  }

  .calendar-v8 .calendar-event{
    min-height:12px !important;
    height:12px !important;
    margin-bottom:2px !important;
    padding:1px 4px !important;
  }
}

.calendar-mini-select{
  height:22px !important;
  min-height:22px !important;
  max-width:92px !important;
  padding:2px 6px !important;
  border-radius:7px !important;
  font-size:.62rem !important;
  background:rgba(7,7,12,.9) !important;
  color:var(--text) !important;
  border:1px solid rgba(255,255,255,.09) !important;
}



/* ===== OLYMPIA CALENDAR V9.2 ENTERPRISE UI PREMIUM ===== */

.calendar-v8{
  transition:grid-template-columns .18s ease;
}

.calendar-v8 .calendar-days{
  grid-template-rows:repeat(var(--calendar-month-weeks, 5), 1fr) !important;
}

.calendar-v8 .calendar-month-view .calendar-day{
  padding:5px !important;
}

.calendar-v8 .calendar-day-number{
  font-size:.82rem !important;
  font-weight:400 !important;
  margin-bottom:4px !important;
  letter-spacing:.02em !important;
  color:rgba(255,255,255,.82) !important;
  font-synthesis:none !important;
}

.calendar-v8 .calendar-event{
  border:0 !important;
  width:100% !important;
  display:grid !important;
  grid-template-columns:40px minmax(0,1fr) !important;
  align-items:center !important;
  text-align:left !important;
  min-height:19px !important;
  height:19px !important;
  padding:2px 6px !important;
  margin-bottom:3px !important;
  border-radius:7px !important;
  cursor:pointer !important;
  color:white !important;
  overflow:hidden !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.12) !important;
}

.calendar-v8 .calendar-event b{
  font-size:.72rem !important;
  line-height:1.25 !important;
  color:rgba(255,255,255,.92) !important;
  font-weight:400 !important;
  letter-spacing:.035em !important;
  font-synthesis:none !important;
}

.calendar-v8 .calendar-event span{
  font-size:.74rem !important;
  line-height:1.25 !important;
  font-weight:300 !important;
  color:rgba(255,255,255,.92) !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  letter-spacing:.035em !important;
  font-synthesis:none !important;
}

.calendar-v8 .calendar-event:hover{
  filter:brightness(1.13);
  transform:translateY(-1px);
}

.calendar-v8 .calendar-more{
  font-size:.7rem !important;
  font-weight:400 !important;
  min-height:18px !important;
  color:rgba(255,255,255,.88) !important;
  letter-spacing:.035em !important;
  font-synthesis:none !important;
  background:rgba(226,47,68,.32) !important;
}

.calendar-more-event-full{
  border:0 !important;
  width:100% !important;
  color:#fff !important;
  text-align:left !important;
  cursor:pointer !important;
  border-radius:12px !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.18) !important;
}

.calendar-more-event-full b,
.calendar-more-event-full span,
.calendar-more-event-full small{
  color:rgba(255,255,255,.92) !important;
  letter-spacing:.035em !important;
  font-synthesis:none !important;
}

.calendar-more-event-full b{
  font-weight:400 !important;
}

.calendar-more-event-full span{
  font-weight:300 !important;
}

.calendar-more-event-full small{
  font-weight:300 !important;
  color:rgba(255,255,255,.7) !important;
}

.calendar-more-event-full:hover{
  filter:brightness(1.12);
}

.calendar-v8 .calendar-topbar{
  grid-template-columns:minmax(180px,1fr) auto !important;
}

.calendar-v8 .calendar-actions-compact{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  flex-wrap:nowrap !important;
  gap:4px !important;
}

.calendar-v8 .calendar-actions-compact .btn,
.calendar-v8 .calendar-mini-select{
  height:24px !important;
  min-height:24px !important;
}

.calendar-inner-toggle{
  width:30px !important;
  font-size:.9rem !important;
}

.calendar-v8.calendar-sidebar-collapsed{
  grid-template-columns:66px minmax(0,1fr) !important;
}

.calendar-v8.calendar-sidebar-collapsed .calendar-sidebar{
  padding:8px 6px !important;
  overflow:hidden !important;
}

.calendar-v8.calendar-sidebar-collapsed .calendar-mini-profile div:last-child,
.calendar-v8.calendar-sidebar-collapsed .google-sync-box,
.calendar-v8.calendar-sidebar-collapsed .calendar-calendarios{
  display:none !important;
}

.calendar-v8.calendar-sidebar-collapsed .calendar-sidebar .btn.full{
  width:46px !important;
  min-width:46px !important;
  height:38px !important;
  padding:0 !important;
  overflow:hidden !important;
  font-size:0 !important;
}

.calendar-v8.calendar-sidebar-collapsed .calendar-sidebar .btn.full::before{
  content:"+";
  font-size:1.25rem;
}

.calendar-v8 .cal-group summary{
  min-height:40px !important;
}

.calendar-v8 .cal-arrow{
  font-size:1.1rem !important;
  width:24px !important;
  height:24px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}

.calendar-v8 .cal-group[open] .cal-arrow{
  transform:rotate(90deg);
}

.calendar-event-modal{
  max-width:720px !important;
}

.calendar-event-modal-head{
  border-left:5px solid #4285f4;
  padding-left:12px;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  margin-bottom:14px;
}

.calendar-event-modal-head h2{
  margin:0;
}

.calendar-event-modal-head p{
  margin:3px 0 0;
  color:var(--muted);
  font-size:.78rem;
}

.calendar-event-modal-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.btn.danger{
  background:rgba(226,47,68,.24) !important;
  color:#fff !important;
  border:1px solid rgba(226,47,68,.35) !important;
}


/* V9.2.1 usa estilos forzados desde calendar.js para evitar conflictos de cascada CSS. */


/* ===== V9.2.2 NAVIGATION EVENTS ===== */

section.calendar-enterprise.calendar-v8 .calendar-month-view .calendar-day{
  background:rgba(255,255,255,.02) !important;
  border-radius:10px !important;
}

section.calendar-enterprise.calendar-v8 .calendar-day.active{
  box-shadow:inset 0 0 0 2px rgba(226,47,68,.45) !important;
}

section.calendar-enterprise.calendar-v8 .calendar-event{
  min-height:21px !important;
  height:21px !important;
  border-radius:8px !important;
}

section.calendar-enterprise.calendar-v8 .calendar-event span{
  font-size:.72rem !important;
}

section.calendar-enterprise.calendar-v8 .calendar-more{
  background:linear-gradient(135deg, rgba(226,47,68,.55), rgba(226,47,68,.25)) !important;
}

section.calendar-enterprise.calendar-v8 .calendar-view-tabs button.active{
  background:linear-gradient(135deg,#e22f44,#ff6b81) !important;
  color:#fff !important;
}


/* ===== OLYMPIA CALENDAR V9.2.3 ENTERPRISE SUITE ===== */

/* sidebar global app: varios nombres posibles */
body.olympia-global-sidebar-collapsed .sidebar,
body.olympia-global-sidebar-collapsed aside.sidebar,
body.olympia-global-sidebar-collapsed .app-sidebar,
body.olympia-global-sidebar-collapsed #sidebar,
body.olympia-global-sidebar-collapsed nav.sidebar{
  width:72px !important;
  min-width:72px !important;
  max-width:72px !important;
}

body.olympia-global-sidebar-collapsed .sidebar span,
body.olympia-global-sidebar-collapsed aside.sidebar span,
body.olympia-global-sidebar-collapsed .app-sidebar span,
body.olympia-global-sidebar-collapsed #sidebar span,
body.olympia-global-sidebar-collapsed nav.sidebar span,
body.olympia-global-sidebar-collapsed .sidebar b,
body.olympia-global-sidebar-collapsed aside.sidebar b,
body.olympia-global-sidebar-collapsed .app-sidebar b,
body.olympia-global-sidebar-collapsed #sidebar b,
body.olympia-global-sidebar-collapsed nav.sidebar b,
body.olympia-global-sidebar-collapsed .sidebar p,
body.olympia-global-sidebar-collapsed aside.sidebar p,
body.olympia-global-sidebar-collapsed .app-sidebar p,
body.olympia-global-sidebar-collapsed #sidebar p,
body.olympia-global-sidebar-collapsed nav.sidebar p{
  display:none !important;
}

/* búsqueda */
.calendar-search-modal{
  max-width:760px !important;
}

.calendar-search-list{
  max-height:65vh;
  overflow:auto;
  display:grid;
  gap:7px;
}

.calendar-search-row{
  border:0;
  width:100%;
  text-align:left;
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  gap:8px;
  align-items:center;
  border-radius:10px;
  padding:9px 11px;
  background:rgba(255,255,255,.055);
  color:#fff;
  cursor:pointer;
}

.calendar-search-row:hover{
  background:rgba(226,47,68,.18);
}

.calendar-search-row b{
  font-size:.72rem;
}

.calendar-search-row span{
  font-size:.82rem;
  font-weight:800;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.calendar-search-row small{
  grid-column:2;
  color:var(--muted);
}

/* semana profesional */
.calendar-week-pro{
  height:100%;
  min-height:0;
  overflow:auto;
  display:grid;
  grid-template-columns:58px repeat(7,minmax(120px,1fr));
  grid-auto-rows:minmax(44px,auto);
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;
  background:rgba(255,255,255,.025);
}

.week-time-head,
.week-day-head{
  position:sticky;
  top:0;
  z-index:2;
  background:rgba(15,15,24,.96);
  border-bottom:1px solid rgba(255,255,255,.08);
}

.week-day-head{
  padding:7px;
  text-align:center;
  cursor:pointer;
}

.week-day-head b{
  display:block;
  font-size:.7rem;
  text-transform:uppercase;
  color:var(--muted);
}

.week-day-head span{
  display:inline-flex;
  width:24px;
  height:24px;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:rgba(226,47,68,.18);
  font-weight:900;
}

.week-time-cell{
  border-right:1px solid rgba(255,255,255,.08);
  border-bottom:1px solid rgba(255,255,255,.055);
  color:var(--muted);
  font-size:.68rem;
  padding:6px;
}

.week-slot{
  min-height:44px;
  border-right:1px solid rgba(255,255,255,.055);
  border-bottom:1px solid rgba(255,255,255,.055);
  padding:4px;
}

/* día profesional */
.calendar-day-pro{
  height:100%;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  gap:8px;
  overflow:hidden;
}

.calendar-day-pro-title{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:8px 10px;
  background:rgba(255,255,255,.04);
  border-radius:12px;
}

.calendar-day-pro-title h3{
  margin:0;
  font-size:1rem;
  text-transform:capitalize;
}

.calendar-day-pro-grid{
  overflow:auto;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.08);
}

.day-hour-row{
  display:grid;
  grid-template-columns:72px minmax(0,1fr);
  min-height:48px;
  border-bottom:1px solid rgba(255,255,255,.06);
}

.day-hour-label{
  padding:8px;
  color:var(--muted);
  font-size:.7rem;
  border-right:1px solid rgba(255,255,255,.06);
}

.day-hour-events{
  padding:5px;
}

/* mejora modal evento */
.calendar-event-modal textarea{
  min-height:110px;
}

.calendar-event-modal .grid.cols2{
  grid-template-columns:repeat(2,minmax(0,1fr));
}

@media(max-width:900px){
  .calendar-week-pro{
    grid-template-columns:48px repeat(7,160px);
  }

  .calendar-event-modal .grid.cols2{
    grid-template-columns:1fr;
  }
}


/* ===== OLYMPIA CALENDAR V9.2.4 VISUAL COMPACT PRESENCE ===== */

/* Header global más fino para subir calendario */
.topbar,.header,.app-header,.main-header{
  min-height:42px !important;
  height:42px !important;
  padding-top:4px !important;
  padding-bottom:4px !important;
}
.topbar .badge,.header .badge,.app-header .badge,.main-header .badge,
.topbar small,.header small,.app-header small,.main-header small{
  display:none !important;
}
.topbar h1,.header h1,.app-header h1,.main-header h1{
  font-size:.95rem !important;
  line-height:1 !important;
}

/* Calendario más alto y menos pegado abajo */
section.calendar-enterprise.calendar-v8{
  height:calc(100vh - 74px) !important;
  padding-bottom:8px !important;
}
section.calendar-enterprise.calendar-v8 .calendar-main{
  height:calc(100vh - 74px) !important;
  padding-bottom:8px !important;
}
section.calendar-enterprise.calendar-v8 .calendar-sidebar{
  max-height:calc(100vh - 74px) !important;
}

/* Eventos más suaves y legibles */
section.calendar-enterprise.calendar-v8 .calendar-event{
  min-height:20px !important;
  height:20px !important;
  border-radius:7px !important;
  opacity:.92 !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.10), 0 1px 2px rgba(0,0,0,.12) !important;
}
section.calendar-enterprise.calendar-v8 .calendar-event b{
  font-size:.62rem !important;
  font-weight:600 !important;
  opacity:.92 !important;
}
section.calendar-enterprise.calendar-v8 .calendar-event span{
  font-size:.67rem !important;
  font-weight:600 !important;
  letter-spacing:.01em !important;
  opacity:.96 !important;
  text-shadow:none !important;
}

/* Grupos más compactos */
section.calendar-enterprise.calendar-v8 .calendar-group-block{
  padding:7px !important;
  margin-bottom:7px !important;
}
section.calendar-enterprise.calendar-v8 .cal-group summary{
  min-height:28px !important;
  padding:4px 6px !important;
  gap:5px !important;
}
section.calendar-enterprise.calendar-v8 .cal-group summary b{
  font-size:.68rem !important;
  line-height:1 !important;
}
section.calendar-enterprise.calendar-v8 .cal-subgroups{
  padding:3px 0 4px 18px !important;
}
section.calendar-enterprise.calendar-v8 .cal-subgroup{
  min-height:23px !important;
  padding:2px 4px !important;
}
section.calendar-enterprise.calendar-v8 .cal-subgroup span{
  font-size:.65rem !important;
  line-height:1.05 !important;
}
section.calendar-enterprise.calendar-v8 .cal-arrow{
  width:18px !important;
  height:18px !important;
  font-size:.9rem !important;
}

/* Perfil foto editable y usuarios */
.calendar-mini-profile-v924{
  display:grid !important;
  grid-template-columns:38px minmax(0,1fr) 26px !important;
  align-items:center !important;
  gap:8px !important;
}
.calendar-avatar-edit{
  position:relative !important;
  border:0 !important;
  cursor:pointer !important;
  overflow:hidden !important;
}
.calendar-avatar-edit img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  border-radius:50% !important;
}
.calendar-avatar-edit small{
  position:absolute !important;
  right:-1px !important;
  bottom:-1px !important;
  width:15px !important;
  height:15px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:50% !important;
  background:#e22f44 !important;
  color:#fff !important;
  font-size:.55rem !important;
}
.calendar-users-button{
  height:24px !important;
  width:24px !important;
  border:1px solid rgba(255,255,255,.10) !important;
  border-radius:8px !important;
  background:rgba(255,255,255,.05) !important;
  color:#fff !important;
  cursor:pointer !important;
}
.calendar-users-modal{
  max-width:520px !important;
}
.calendar-users-list{
  display:grid !important;
  gap:8px !important;
  max-height:60vh !important;
  overflow:auto !important;
}
.calendar-user-row{
  display:grid !important;
  grid-template-columns:38px minmax(0,1fr) !important;
  gap:9px !important;
  align-items:center !important;
  padding:8px !important;
  border-radius:12px !important;
  background:rgba(255,255,255,.05) !important;
}
.calendar-user-avatar{
  width:38px !important;
  height:38px !important;
  border-radius:50% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:linear-gradient(135deg,#e22f44,#9333ea) !important;
  color:#fff !important;
  font-weight:900 !important;
  overflow:hidden !important;
}
.calendar-user-avatar img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
}
.calendar-user-row b{
  display:block !important;
  color:#fff !important;
  font-size:.82rem !important;
}
.calendar-user-row span,.calendar-user-row small{
  display:block !important;
  color:var(--muted) !important;
  font-size:.68rem !important;
}


/* ===== OLYMPIA CALENDAR V9.2.5 COMPACT READABILITY ===== */

/* Cabecera global: una sola hilera */
.topbar,.header,.app-header,.main-header{
  height:34px !important;
  min-height:34px !important;
  max-height:34px !important;
  padding:2px 10px !important;
  display:flex !important;
  align-items:center !important;
  overflow:hidden !important;
}

.topbar h1,.header h1,.app-header h1,.main-header h1{
  font-size:.82rem !important;
  line-height:1 !important;
  margin:0 !important;
  white-space:nowrap !important;
}

.topbar p,.header p,.app-header p,.main-header p,
.topbar small,.header small,.app-header small,.main-header small,
.topbar .subtitle,.header .subtitle,.app-header .subtitle,.main-header .subtitle,
.topbar .badge,.header .badge,.app-header .badge,.main-header .badge{
  display:none !important;
}

/* Más altura útil para calendario */
section.calendar-enterprise.calendar-v8{
  height:calc(100vh - 62px) !important;
  padding-bottom:10px !important;
}

section.calendar-enterprise.calendar-v8 .calendar-main{
  height:calc(100vh - 62px) !important;
  grid-template-rows:34px 26px minmax(0,1fr) !important;
  padding-bottom:10px !important;
}

section.calendar-enterprise.calendar-v8 .calendar-sidebar{
  max-height:calc(100vh - 62px) !important;
}

/* Bloque perfil y Google más compacto */
.calendar-mini-profile-v924{
  grid-template-columns:32px minmax(0,1fr) 22px !important;
  gap:6px !important;
  margin-bottom:6px !important;
}

.calendar-mini-profile-v924 .calendar-mini-avatar{
  width:32px !important;
  height:32px !important;
  min-width:32px !important;
}

.calendar-mini-profile-v924 b{
  font-size:.72rem !important;
  line-height:1 !important;
}

.calendar-mini-profile-v924 span{
  font-size:.62rem !important;
  line-height:1 !important;
}

.calendar-users-button{
  width:22px !important;
  height:22px !important;
}

.calendar-google-actions{
  display:grid !important;
  grid-template-columns:repeat(3,1fr) !important;
  gap:4px !important;
  margin:4px 0 !important;
}

.calendar-google-actions .btn{
  width:100% !important;
  min-width:0 !important;
  height:24px !important;
  min-height:24px !important;
  padding:0 !important;
  font-size:.68rem !important;
  border-radius:7px !important;
}

.google-sync-box{
  padding:6px !important;
}

.google-sync-box .calendar-block-head{
  margin-bottom:4px !important;
}

.google-sync-box .calendar-block-head h4{
  font-size:.64rem !important;
}

.google-sync-box .google-sync-state{
  font-size:.58rem !important;
}

.google-sync-box .calendar-sync-status,
.google-sync-box p.small{
  font-size:.58rem !important;
  line-height:1.18 !important;
  margin-top:4px !important;
}

/* Categorías: todo en una misma fila */
section.calendar-enterprise.calendar-v8 .calendar-group-block{
  padding:5px !important;
  margin-bottom:5px !important;
}

section.calendar-enterprise.calendar-v8 .calendar-block-head{
  min-height:20px !important;
  margin-bottom:4px !important;
}

section.calendar-enterprise.calendar-v8 .calendar-block-head h4{
  font-size:.62rem !important;
}

section.calendar-enterprise.calendar-v8 .cal-group summary{
  min-height:24px !important;
  height:24px !important;
  padding:2px 4px !important;
  display:grid !important;
  grid-template-columns:16px 10px minmax(0,1fr) 16px auto !important;
  gap:4px !important;
  align-items:center !important;
}

section.calendar-enterprise.calendar-v8 .cal-arrow{
  width:16px !important;
  height:16px !important;
  font-size:.78rem !important;
}

section.calendar-enterprise.calendar-v8 .cal-color{
  width:8px !important;
  height:8px !important;
}

section.calendar-enterprise.calendar-v8 .cal-group summary b{
  font-size:.62rem !important;
  font-weight:700 !important;
  line-height:1 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

section.calendar-enterprise.calendar-v8 .cal-group summary input[type="checkbox"]{
  width:13px !important;
  height:13px !important;
  margin:0 !important;
}

section.calendar-enterprise.calendar-v8 .calendar-group-tools{
  display:flex !important;
  gap:2px !important;
  align-items:center !important;
}

section.calendar-enterprise.calendar-v8 .calendar-group-tools button,
section.calendar-enterprise.calendar-v8 .mini-admin-btn{
  width:18px !important;
  height:18px !important;
  min-width:18px !important;
  padding:0 !important;
  font-size:.6rem !important;
  border-radius:5px !important;
}

section.calendar-enterprise.calendar-v8 .cal-subgroups{
  padding:2px 0 3px 14px !important;
}

section.calendar-enterprise.calendar-v8 .cal-subgroup{
  min-height:20px !important;
  height:20px !important;
  padding:1px 3px !important;
}

section.calendar-enterprise.calendar-v8 .cal-subgroup label{
  gap:4px !important;
}

section.calendar-enterprise.calendar-v8 .cal-subgroup input[type="checkbox"]{
  width:12px !important;
  height:12px !important;
  margin:0 !important;
}

section.calendar-enterprise.calendar-v8 .cal-subgroup span{
  font-size:.59rem !important;
  line-height:1 !important;
  font-weight:500 !important;
}

section.calendar-enterprise.calendar-v8 .cal-subgroup button{
  width:16px !important;
  height:16px !important;
  min-width:16px !important;
  font-size:.55rem !important;
}

/* Eventos: tonos suaves, texto más fino y legible */
section.calendar-enterprise.calendar-v8 .calendar-event{
  min-height:19px !important;
  height:19px !important;
  border-radius:6px !important;
  opacity:.96 !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08) !important;
}

section.calendar-enterprise.calendar-v8 .calendar-event b{
  font-size:.58rem !important;
  font-weight:500 !important;
  opacity:.86 !important;
}

section.calendar-enterprise.calendar-v8 .calendar-event span{
  font-size:.64rem !important;
  font-weight:500 !important;
  letter-spacing:0 !important;
  opacity:.96 !important;
  text-shadow:0 1px 1px rgba(0,0,0,.28) !important;
}

section.calendar-enterprise.calendar-v8 .calendar-more{
  min-height:17px !important;
  font-size:.6rem !important;
  font-weight:650 !important;
  background:rgba(226,47,68,.22) !important;
}

/* compactar toolbar superior del calendario */
section.calendar-enterprise.calendar-v8 .calendar-topbar{
  min-height:34px !important;
  height:34px !important;
  padding:4px 7px !important;
}

section.calendar-enterprise.calendar-v8 .calendar-topbar h2{
  font-size:.84rem !important;
}

section.calendar-enterprise.calendar-v8 .calendar-actions-compact .btn,
section.calendar-enterprise.calendar-v8 .calendar-mini-select{
  height:22px !important;
  min-height:22px !important;
  padding:1px 6px !important;
  font-size:.6rem !important;
}

/* si aparecen demasiadas categorías, reducir scroll visual */
section.calendar-enterprise.calendar-v8 .calendar-group-list{
  display:grid !important;
  gap:2px !important;
}

/* ===== OLYMPIA CALENDAR V9.3 — SEMANA "ALL-DAY" Y AGENDA PRO ===== */

/* --- Vista Semana: fila "Todo el día" arriba --- */
.calendar-v8 .calendar-week-pro{
  display:grid !important;
  grid-template-columns:60px repeat(7, minmax(0, 1fr)) !important;
  grid-auto-rows:auto !important;
  gap:2px !important;
  height:100% !important;
  overflow:auto !important;
}

.calendar-v8 .week-allday-label{
  grid-column:1;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  justify-content:center;
  gap:2px;
  padding:4px 6px;
  font-size:.6rem;
  font-weight:400;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:rgba(255,255,255,.55);
  background:rgba(11,11,16,.6);
  border-radius:6px;
  text-align:right;
  line-height:1.2;
}

.calendar-v8 .week-allday-label small{
  font-size:.55rem;
  font-weight:300;
  color:rgba(255,255,255,.4);
  text-transform:none;
  letter-spacing:.02em;
}


.calendar-v8 .week-allday-cell{
  background:rgba(23,23,36,.7) !important;
  border:1px solid rgba(255,255,255,.04) !important;
  border-radius:8px !important;
  padding:3px !important;
  display:block !important;
  min-height:22px !important;
  overflow:visible !important;
}

.calendar-v8 .week-allday-cell::-webkit-scrollbar{
  width:5px;
}
.calendar-v8 .week-allday-cell::-webkit-scrollbar-thumb{
  background:rgba(255,255,255,.18);
  border-radius:3px;
}

.calendar-v8 .week-allday-cell .calendar-event{
  display:grid !important;
  grid-template-columns:34px minmax(0,1fr) !important;
  align-items:center !important;
  width:100% !important;
  min-height:20px !important;
  height:20px !important;
  padding:0 6px !important;
  margin:0 0 3px 0 !important;
  border-radius:5px !important;
  box-sizing:border-box !important;
}

.calendar-v8 .week-allday-cell .calendar-event:last-child{
  margin-bottom:0 !important;
}

.calendar-v8 .week-allday-cell .calendar-event b{
  font-size:.66rem !important;
  line-height:1.1 !important;
  font-weight:400 !important;
  letter-spacing:.02em !important;
}

.calendar-v8 .week-allday-cell .calendar-event span{
  font-size:.7rem !important;
  line-height:1.1 !important;
  font-weight:300 !important;
  letter-spacing:.02em !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

/* --- Modo Agenda profesional --- */
.calendar-v8 .calendar-agenda-pro{
  height:100% !important;
  overflow:auto !important;
  padding:6px 12px 24px !important;
  display:flex !important;
  flex-direction:column !important;
  gap:14px !important;
  font-family:"Inter","Segoe UI Variable","Segoe UI",system-ui,sans-serif;
  font-synthesis:none;
}

.calendar-v8 .calendar-agenda-empty{
  padding:40px 20px;
  text-align:center;
  color:rgba(255,255,255,.55);
  font-weight:300;
  font-size:.9rem;
  letter-spacing:.02em;
}

.calendar-v8 .agenda-day{
  background:rgba(23,23,36,.78);
  border:1px solid rgba(255,255,255,.05);
  border-radius:14px;
  padding:14px 18px 12px;
  display:grid;
  grid-template-columns:120px 1fr;
  gap:18px;
  align-items:flex-start;
}

.calendar-v8 .agenda-day-today{
  border-color:rgba(226,47,68,.55);
  box-shadow:inset 0 0 0 1px rgba(226,47,68,.18);
}

.calendar-v8 .agenda-day-past{
  opacity:.78;
}

.calendar-v8 .agenda-day-head{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.calendar-v8 .agenda-day-date{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  line-height:1.05;
}

.calendar-v8 .agenda-day-date b{
  font-size:2.2rem;
  font-weight:300;
  color:rgba(255,255,255,.95);
  letter-spacing:-.02em;
  line-height:1;
}

.calendar-v8 .agenda-day-today .agenda-day-date b{
  color:#ef4458;
  font-weight:400;
}

.calendar-v8 .agenda-day-date span{
  font-size:.82rem;
  font-weight:400;
  text-transform:capitalize;
  letter-spacing:.02em;
  color:rgba(255,255,255,.82);
  margin-top:3px;
}

.calendar-v8 .agenda-day-date small{
  font-size:.72rem;
  font-weight:300;
  text-transform:capitalize;
  letter-spacing:.02em;
  color:rgba(255,255,255,.55);
  margin-top:2px;
}

.calendar-v8 .agenda-day-count{
  font-size:.66rem;
  font-weight:400;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:rgba(255,255,255,.55);
  padding:3px 8px;
  border-radius:99px;
  background:rgba(255,255,255,.05);
  align-self:flex-start;
}

.calendar-v8 .agenda-day-list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:6px;
}

.calendar-v8 .agenda-item{
  display:grid;
  grid-template-columns:80px 1fr auto;
  align-items:center;
  gap:14px;
  padding:9px 12px;
  background:rgba(255,255,255,.035);
  border-left:3px solid rgba(255,255,255,.2);
  border-radius:8px;
  cursor:pointer;
  transition:background .12s ease;
}

.calendar-v8 .agenda-item:hover{
  background:rgba(255,255,255,.075);
}

.calendar-v8 .agenda-item-time{
  font-size:.78rem;
  font-weight:400;
  letter-spacing:.02em;
  color:rgba(255,255,255,.82);
  font-feature-settings:"tnum" 1;
  font-variant-numeric:tabular-nums;
}

.calendar-v8 .agenda-item-main{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}

.calendar-v8 .agenda-item-main b{
  font-size:.86rem;
  font-weight:400;
  letter-spacing:.015em;
  color:rgba(255,255,255,.95);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.calendar-v8 .agenda-item-main span{
  font-size:.7rem;
  font-weight:300;
  letter-spacing:.03em;
  text-transform:uppercase;
  color:rgba(255,255,255,.55);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.calendar-v8 .agenda-item-loc{
  font-size:.7rem;
  font-weight:300;
  letter-spacing:.02em;
  color:rgba(255,255,255,.6);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:160px;
}

@media (max-width:900px){
  .calendar-v8 .agenda-day{
    grid-template-columns:1fr;
    gap:8px;
  }
  .calendar-v8 .agenda-day-head{
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
  }
  .calendar-v8 .agenda-item{
    grid-template-columns:64px 1fr;
  }
  .calendar-v8 .agenda-item-loc{
    display:none;
  }
}
