.hidden{display:none !important}
.visually-hidden{position:absolute!important;clip:rect(1px,1px,1px,1px);padding:0!important;border:0!important;height:1px!important;width:1px!important;overflow:hidden!important;white-space:nowrap!important}

/* Namespaced calendar styles to avoid conflicts */
.cal-2025 { --bg:#f4f6f8; --card:#ffffff; --muted:#d0d7de; --text:#20262e; --sub:#5f6b76; --accent:#4ba3ff; --accent2:#7ef0c1; color:var(--text); }
.cal-2025 .cal-container{max-width:1000px;margin:0 auto;padding:20px;background:transparent}
.cal-2025 .cal-header{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;margin-bottom:14px}
.cal-2025 .cal-title{display:flex;gap:12px;align-items:center}
.cal-2025 .cal-title h1{font-size:1.4rem;margin:0}
.cal-2025 .badge{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#081018;padding:4px 10px;border-radius:999px;font-weight:700;font-size:.8rem}
.cal-2025 .toolbar{display:flex;flex-wrap:wrap;gap:8px}
.cal-2025 button, .cal-2025 select, .cal-2025 input[type="search"]{background:var(--card);color:var(--text);border:1px solid var(--muted);padding:10px 12px;border-radius:14px}
.cal-2025 button{cursor:pointer}
.cal-2025 button.primary{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#081018;border:0;font-weight:700}
.cal-2025 button.ghost{background:transparent;border-color:var(--muted)}
.cal-2025 button:focus, .cal-2025 select:focus, .cal-2025 input:focus{outline:2px solid var(--accent)}
.cal-2025 .filters{display:grid;grid-template-columns:1fr 1fr 2fr 1fr;gap:10px;margin:12px 0}
@media (max-width:800px){ .cal-2025 .filters{grid-template-columns:1fr 1fr}.cal-2025 .toolbar{width:100%}}

.cal-2025 .accordion{border:1px solid var(--muted);border-radius:16px;overflow:hidden;background:transparent}
.cal-2025 details{background:var(--card);border-top:1px solid var(--muted)}
.cal-2025 details:first-of-type{border-top:0}
.cal-2025 summary{list-style:none;display:flex;gap:12px;align-items:center;padding:14px 16px;cursor:pointer;user-select:none}
.cal-2025 summary::-webkit-details-marker{display:none}
.cal-2025 .month-title{font-weight:700}
.cal-2025 .count{margin-left:auto;color:var(--sub);font-size:.9rem}
.cal-2025 .chev{transition:transform .2s ease}
.cal-2025 details[open] .chev{transform:rotate(90deg)}

.cal-2025 .events{padding:8px 16px 16px;display:grid;gap:10px}
.cal-2025 .event{border:1px solid var(--muted);border-radius:14px;padding:12px;display:grid;gap:6px;background:#fdfdfd}
.cal-2025 .event-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cal-2025 .datepill{background:#eef2f6;border:1px solid var(--muted);padding:6px 10px;border-radius:999px;color:var(--sub);font-size:.9rem}
.cal-2025 .org{color:var(--sub)}
.cal-2025 .title2{font-weight:700}
.cal-2025 .meta{color:var(--sub);font-size:.95rem}
.cal-2025 .actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}

.cal-2025 .note{color:var(--sub);font-size:.95rem;margin:8px 0 0}
.cal-2025 .footer{margin:22px 0 60px;color:var(--sub)}

.cal-2025 .info-empty{padding:16px;color:var(--sub)}


/* Share panel (fallback) */
.share-panel{
  position: absolute;
  z-index: 20;
  margin-top: 6px;
  padding: 10px;
  border: 1px solid var(--muted);
  border-radius: 12px;
  background: var(--card);
  box-shadow: 0 8px 24px rgba(0,0,0,.12);
  display: grid;
  gap: 8px;
}
.toolbar{ position: relative; } /* so the panel anchors under the toolbar */
.share-link{
  text-decoration: none;
  display: block;
  padding: 8px 10px;
  border: 1px solid var(--muted);
  border-radius: 10px;
}
.share-link:hover{ border-color: var(--accent); }


/* --- Responsive fixes for filter row --- */
.cal-2025 .filters > *{ min-width: 0; } /* allow shrinking inside grid */
@media (max-width: 800px){
  .cal-2025 .filters{ grid-template-columns: 1fr; }
  .cal-2025 .filters select,
  .cal-2025 .filters input[type="search"],
  .cal-2025 .filters button{ width: 100%; }
}
/* ensure toolbar can wrap without overflow */
.cal-2025 .toolbar{ flex-wrap: wrap; gap: 8px; }
.cal-2025 .toolbar > *{ min-width: 0; }
