/* CSLIB Icon Tabs v0.2.5 */
.cslib-icon-tabs { --gap: 16px; }
.cslib-icon-tabs__grid { display:grid; gap: var(--gap); }
.cslib-icon-tabs__grid.columns-3{ grid-template-columns: repeat(3,1fr); }
.cslib-icon-tabs__grid.columns-4{ grid-template-columns: repeat(4,1fr); }
.cslib-icon-tabs__grid.columns-5{ grid-template-columns: repeat(5,1fr); }
.cslib-icon-tabs__grid.columns-6{ grid-template-columns: repeat(6,1fr); }
@media (max-width: 1024px){ .cslib-icon-tabs__grid{ grid-template-columns: repeat(3,1fr); } }
@media (max-width: 640px){ .cslib-icon-tabs__grid{ grid-template-columns: repeat(1,1fr); } }

.cslib-tile{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:18px 12px; gap:10px;
  border: 2px solid #00044A;
  border-radius: 12px;
  background:#fff;
  box-shadow: 0 2px 8px rgba(0,0,0,.08);
  cursor:pointer;
  text-align:center;
  min-height: 140px;

  /* hover/focus transitions */
  --tile-hover-border: #FFBF1C;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease;
  will-change: transform;
}
.cslib-tile__icon img{ width:64px; height:64px; object-fit:contain; display:block; transition: transform .20s ease; }
.cslib-tile__label{ font-weight:600; color: #00044A; font-size: 14px; line-height:1.3; }

/* Hover & focus effects */
.cslib-tile:is(:hover,.is-hover){
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(0,0,0,.10);
  border-color: var(--tile-hover-border);
  background: #fff;
}
.cslib-tile:is(:hover,.is-hover) .cslib-tile__icon img{ transform: scale(1.06); }
.cslib-tile:is(:hover,.is-hover) .cslib-tile__label{ color:#000080; }

.cslib-tile:focus-visible{
  outline: 3px solid #FFBF1C;
  outline-offset: 3px;
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(0,0,0,.12);
  border-color: var(--tile-hover-border);
}
.cslib-tile:active{ transform: translateY(0) scale(.98); box-shadow: 0 2px 8px rgba(0,0,0,.08); }

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  .cslib-tile, .cslib-tile__icon img{ transition: none !important; }
}

.cslib-panels{ margin-top: 20px; }
.cslib-panel[hidden]{ display:none; }
.cslib-panel__inner{ padding: clamp(16px, 2vw, 28px); border:1px solid #E1E3EA; border-radius: 12px; background:#fff; box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.cslib-panel__inner img, .cslib-panel__inner iframe, .cslib-panel__inner video{ max-width:100%; height:auto; }

.cslib-modal{ padding:0; border:none; border-radius: 14px; width:min(900px, 92vw); max-height: 90vh; }
.cslib-modal::backdrop{ background: rgba(0,0,0,.5); }
.cslib-modal__chrome{ display:flex; flex-direction:column; height:100%; }
.cslib-modal__header{ padding: 14px 18px; border-bottom:1px solid #E1E3EA; background: #fff; position:sticky; top:0; z-index:2; }
.cslib-modal__title{ margin:0; font-size:18px; color: #00044A; }
.cslib-modal__close{ position:absolute; right:12px; top:10px; border:none; background:transparent; font-size:24px; line-height:1; cursor:pointer; }
.cslib-modal__body{ padding: clamp(16px, 2vw, 28px); overflow:auto; background:#fff; }

/* PDF embed */
.cslib-pdf{ margin: 12px 0; }
.cslib-pdf__caption{ margin-top:8px; font-size:14px; }

/* Fallback overlay + modal (Safari/legacy) with very high z-index */
.cslib-backdrop{ position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: 2147483645; }
.cslib-no-dialog .cslib-modal[open]{ 
  position: fixed; top: 50%; left: 50%; transform: translate(-50%,-50%);
  width: min(900px, 92vw); max-height: 90vh; overflow: hidden; display:block;
  border: 0; border-radius: 14px; background: #fff; box-shadow: 0 20px 60px rgba(0,0,0,.2);
  z-index: 2147483646;
}
.cslib-no-dialog .cslib-modal__body{ overflow: auto; max-height: calc(90vh - 56px); }
@media (max-width: 640px){
  .cslib-no-dialog .cslib-modal[open]{ width:100vw; height:100vh; top:0; left:0; transform:none; border-radius:0; }
  .cslib-no-dialog .cslib-modal__body{ max-height: none; height: calc(100vh - 56px); }
}
