/* ================================================================
   V35 — ANNUAL CALENDAR FINAL UI
   Purpose: clean editorial calendar layout, brand palette, responsive.
   Rule: every control/button/link uses square corners (0px).
   ================================================================ */

.ubgc-content .calendar-toolbar{
  display:grid!important;
  grid-template-columns:minmax(0,2.2fr) repeat(3,minmax(150px,1fr))!important;
  gap:12px!important;
  width:100%!important;
  margin:34px 0 28px!important;
  align-items:stretch!important;
}
.ubgc-content .calendar-toolbar .calendar-control{
  min-width:0!important;
  width:100%!important;
}
.ubgc-content .calendar-toolbar input,
.ubgc-content .calendar-toolbar select{
  display:block!important;
  width:100%!important;
  height:54px!important;
  min-height:54px!important;
  margin:0!important;
  padding:0 16px!important;
  box-sizing:border-box!important;
  border:1px solid #c8d3ce!important;
  border-radius:0!important;
  background:#fff!important;
  color:#173c31!important;
  font-family:inherit!important;
  font-size:15px!important;
  line-height:54px!important;
  box-shadow:none!important;
}
.ubgc-content .calendar-toolbar input::placeholder{
  color:#61766e!important;
  opacity:1!important;
}
.ubgc-content .calendar-toolbar input:focus,
.ubgc-content .calendar-toolbar select:focus{
  border-color:#173c31!important;
  outline:2px solid rgba(167,214,195,.42)!important;
  outline-offset:-2px!important;
  box-shadow:none!important;
}
.ubgc-content .calendar-toolbar select{
  cursor:pointer!important;
}
.ubgc-content .calendar-filter-reset{
  min-height:44px!important;
  height:44px!important;
  align-self:start!important;
  justify-self:start!important;
  padding:0 16px!important;
  border:1px solid #a7d6c3!important;
  border-radius:0!important;
  background:#fff!important;
  color:#a7d6c3!important;
  font:700 12px/44px inherit!important;
  letter-spacing:.04em!important;
  cursor:pointer!important;
}
.ubgc-content .calendar-filter-reset:hover,
.ubgc-content .calendar-filter-reset:focus-visible{
  border-color:#173c31!important;
  background:#173c31!important;
  color:#a7d6c3!important;
  outline:none!important;
}

/* Compact reset sits below the filter grid without stretching a column. */
.ubgc-content .calendar-toolbar .calendar-control:last-child{
  grid-column:1/-1!important;
  width:auto!important;
}

/* Result count */
.ubgc-content .ubgc-calendar-count{
  margin:0!important;
  padding:0 0 12px!important;
  border-bottom:1px solid #173c31!important;
  color:#173c31!important;
  font-size:13px!important;
  line-height:1.3!important;
  letter-spacing:.03em!important;
}

/* Editorial five-column record: date / title / time / institution / action */
.ubgc-content .calendar-list{
  width:100%!important;
  margin:0!important;
  border-top:0!important;
}
.ubgc-content .ubgc-live-cal-row{
  display:grid!important;
  grid-template-columns:120px minmax(0,2.5fr) minmax(155px,.85fr) minmax(155px,.9fr) 110px!important;
  gap:34px!important;
  align-items:center!important;
  min-height:154px!important;
  padding:26px 0!important;
  box-sizing:border-box!important;
  border-bottom:1px solid #d3dcd7!important;
  background:transparent!important;
}
.ubgc-content .ubgc-live-cal-row:hover{
  background:#f4f8f6!important;
}
.ubgc-content .ubgc-live-cal-row .cal-date{
  align-self:center!important;
}
.ubgc-content .ubgc-live-cal-row .cal-date strong{
  display:block!important;
  margin:0!important;
  color:#061713!important;
  font-size:48px!important;
  font-weight:400!important;
  line-height:.95!important;
  letter-spacing:-.03em!important;
}
.ubgc-content .ubgc-live-cal-row .cal-date span{
  display:block!important;
  margin-top:9px!important;
  color:#4d7065!important;
  font-size:9px!important;
  font-weight:800!important;
  line-height:1!important;
  letter-spacing:.14em!important;
}
.ubgc-content .ubgc-live-cal-row .cal-main{
  min-width:0!important;
}
.ubgc-content .ubgc-live-cal-row .cal-main b{
  display:block!important;
  margin:0!important;
  color:#397263!important;
  font-size:10px!important;
  font-weight:800!important;
  line-height:1.2!important;
  letter-spacing:.12em!important;
  text-transform:uppercase!important;
}
.ubgc-content .ubgc-live-cal-row .cal-main strong{
  display:block!important;
  margin:7px 0 0!important;
  color:#061713!important;
  font-family:Georgia,"Times New Roman",serif!important;
  font-size:27px!important;
  font-weight:400!important;
  line-height:1.08!important;
  letter-spacing:-.015em!important;
}
.ubgc-content .ubgc-live-cal-row .cal-main span{
  display:block!important;
  margin-top:8px!important;
  color:#385b50!important;
  font-size:13px!important;
  line-height:1.38!important;
}
.ubgc-content .ubgc-live-cal-row .cal-meta{
  align-self:center!important;
  margin:0!important;
  color:#5b746b!important;
  font-size:12px!important;
  line-height:1.55!important;
}
.ubgc-content .ubgc-live-cal-row .cal-access{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-end!important;
  justify-content:center!important;
  gap:7px!important;
  text-align:right!important;
}
.ubgc-content .ubgc-live-cal-row .cal-access span{
  color:#5b746b!important;
  font-size:9px!important;
  font-weight:800!important;
  line-height:1.2!important;
  letter-spacing:.09em!important;
}
.ubgc-content .ubgc-live-cal-row .cal-access a{
  display:inline-block!important;
  min-height:auto!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#061713!important;
  font-size:11px!important;
  font-weight:800!important;
  line-height:1.4!important;
  letter-spacing:.08em!important;
  text-decoration:none!important;
  white-space:nowrap!important;
}
.ubgc-content .ubgc-live-cal-row .cal-access a:hover,
.ubgc-content .ubgc-live-cal-row .cal-access a:focus-visible{
  border:0!important;
  background:transparent!important;
  color:#a7d6c3!important;
  text-decoration:none!important;
  outline:none!important;
}

/* Pagination */
.ubgc-content .ubgc-calendar-pager{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:20px!important;
  margin:0!important;
  padding:18px 0 36px!important;
  border-top:1px solid #173c31!important;
  color:#173c31!important;
  font-size:13px!important;
}
.ubgc-content .ubgc-calendar-pager>div{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
}
.ubgc-content .ubgc-calendar-pager button{
  height:40px!important;
  min-height:40px!important;
  padding:0 15px!important;
  border:1px solid #a7d6c3!important;
  border-radius:0!important;
  background:#fff!important;
  color:#a7d6c3!important;
  font:700 12px/40px inherit!important;
  cursor:pointer!important;
}
.ubgc-content .ubgc-calendar-pager button:hover:not(:disabled),
.ubgc-content .ubgc-calendar-pager button:focus-visible{
  border-color:#173c31!important;
  background:#173c31!important;
  color:#a7d6c3!important;
  outline:none!important;
}
.ubgc-content .ubgc-calendar-pager button:disabled{
  opacity:.35!important;
  cursor:not-allowed!important;
}

/* Tablet */
@media (max-width:1100px){
  .ubgc-content .calendar-toolbar{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .ubgc-content .calendar-toolbar .calendar-control:last-child{
    grid-column:1/-1!important;
  }
  .ubgc-content .ubgc-live-cal-row{
    grid-template-columns:90px minmax(0,2fr) minmax(130px,.9fr) 105px!important;
    gap:22px!important;
  }
  .ubgc-content .ubgc-live-cal-row .cal-meta:nth-of-type(2){
    display:none!important;
  }
}

/* Mobile */
@media (max-width:700px){
  .ubgc-content .calendar-toolbar{
    grid-template-columns:1fr!important;
    gap:9px!important;
    margin:24px 0 22px!important;
  }
  .ubgc-content .calendar-toolbar .calendar-control:last-child{
    grid-column:auto!important;
  }
  .ubgc-content .calendar-toolbar input,
  .ubgc-content .calendar-toolbar select{
    height:50px!important;
    min-height:50px!important;
    line-height:50px!important;
    font-size:14px!important;
  }
  .ubgc-content .calendar-filter-reset{
    width:auto!important;
    height:42px!important;
    min-height:42px!important;
    line-height:42px!important;
  }
  .ubgc-content .ubgc-live-cal-row{
    grid-template-columns:72px minmax(0,1fr)!important;
    gap:10px 16px!important;
    min-height:0!important;
    padding:22px 0!important;
  }
  .ubgc-content .ubgc-live-cal-row .cal-date strong{
    font-size:38px!important;
  }
  .ubgc-content .ubgc-live-cal-row .cal-main strong{
    font-size:21px!important;
  }
  .ubgc-content .ubgc-live-cal-row .cal-main span{
    font-size:12px!important;
  }
  .ubgc-content .ubgc-live-cal-row .cal-meta{
    display:none!important;
  }
  .ubgc-content .ubgc-live-cal-row .cal-access{
    grid-column:2!important;
    align-items:flex-start!important;
    text-align:left!important;
    justify-self:start!important;
  }
  .ubgc-content .ubgc-live-cal-row .cal-access span{
    display:none!important;
  }
  .ubgc-content .ubgc-calendar-pager{
    flex-direction:column!important;
    align-items:flex-start!important;
  }
}

/* Absolute square-corner guarantee for this component. */
.ubgc-content .calendar-toolbar *,
.ubgc-content .ubgc-live-cal-row *,
.ubgc-content .ubgc-calendar-pager *,
.ubgc-content .ubgc-calendar-empty{
  border-radius:0!important;
}



/* ================================================================
   V37 — ANNUAL CALENDAR FILTER + PAGINATION FINAL
   ================================================================ */

/* One clean row on desktop */
.ubgc-content .calendar-toolbar{
  display:grid!important;
  grid-template-columns:minmax(360px,2.5fr) repeat(7,minmax(125px,1fr))!important;
  gap:10px!important;
  width:100%!important;
  margin:30px 0 26px!important;
  align-items:stretch!important;
}

/* Every filter occupies the same row and has identical height */
.ubgc-content .calendar-toolbar .calendar-control{
  grid-column:auto!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
}
.ubgc-content .calendar-toolbar .calendar-control:last-child{
  grid-column:auto!important;
  width:100%!important;
}
.ubgc-content .calendar-toolbar input,
.ubgc-content .calendar-toolbar select{
  width:100%!important;
  height:52px!important;
  min-height:52px!important;
  margin:0!important;
  padding:0 14px!important;
  border:1px solid #9fbab0!important;
  border-radius:0!important;
  background:#fdfdfb!important;
  color:#06271f!important;
  box-shadow:none!important;
  font-size:14px!important;
  line-height:52px!important;
}
.ubgc-content .calendar-toolbar input:hover,
.ubgc-content .calendar-toolbar select:hover{
  border-color:#1f5949!important;
}
.ubgc-content .calendar-toolbar input:focus,
.ubgc-content .calendar-toolbar select:focus{
  border:1px solid #1f5949!important;
  outline:2px solid rgba(167,214,195,.35)!important;
  outline-offset:-2px!important;
  box-shadow:none!important;
}

/* Reset is a compact brand action, not another oversized form field */
.ubgc-content .calendar-filter-reset{
  width:100%!important;
  height:52px!important;
  min-height:52px!important;
  padding:0 14px!important;
  border:1px solid #a7d6c3!important;
  border-radius:0!important;
  background:#a7d6c3!important;
  color:#fff!important;
  font:700 12px/52px inherit!important;
  letter-spacing:.08em!important;
  cursor:pointer!important;
  text-align:center!important;
}
.ubgc-content .calendar-filter-reset:hover,
.ubgc-content .calendar-filter-reset:focus-visible{
  border-color:#06271f!important;
  background:#06271f!important;
  color:#a7d6c3!important;
  outline:none!important;
}

/* Result count */
.ubgc-content .ubgc-calendar-count{
  margin:0!important;
  padding:0 0 11px!important;
  border-bottom:1px solid #173c31!important;
  color:#173c31!important;
}

/* Pagination: clean horizontal controls */
.ubgc-content .ubgc-calendar-pager{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:14px!important;
  margin:0!important;
  padding:18px 0 36px!important;
  border-top:1px solid #173c31!important;
}
.ubgc-content .ubgc-calendar-pager>div{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  flex-wrap:wrap!important;
}
.ubgc-content .ubgc-calendar-pager button{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  height:42px!important;
  min-height:42px!important;
  min-width:92px!important;
  padding:0 16px!important;
  border:1px solid #a7d6c3!important;
  border-radius:0!important;
  background:#fff!important;
  color:#a7d6c3!important;
  font:700 12px/1 inherit!important;
  letter-spacing:.04em!important;
  cursor:pointer!important;
}
.ubgc-content .ubgc-calendar-pager button:hover:not(:disabled),
.ubgc-content .ubgc-calendar-pager button:focus-visible{
  border-color:#06271f!important;
  background:#06271f!important;
  color:#a7d6c3!important;
  outline:none!important;
}
.ubgc-content .ubgc-calendar-pager button:disabled{
  border-color:#cbd6d1!important;
  background:#f5f7f5!important;
  color:#82948d!important;
  opacity:1!important;
}
.ubgc-content .ubgc-calendar-pager .current,
.ubgc-content .ubgc-calendar-pager strong{
  color:#06271f!important;
  font-weight:800!important;
}

/* No rounded controls anywhere in this component */
.ubgc-content .calendar-toolbar *,
.ubgc-content .ubgc-calendar-pager *,
.ubgc-content .ubgc-live-cal-row *,
.ubgc-content .ubgc-calendar-empty{
  border-radius:0!important;
}

/* Tablet: two rows so controls remain usable */
@media (max-width:1250px){
  .ubgc-content .calendar-toolbar{
    grid-template-columns:minmax(260px,2fr) repeat(3,minmax(150px,1fr))!important;
  }
  .ubgc-content .calendar-toolbar .calendar-control:nth-child(n+5){
    grid-column:auto!important;
  }
}

/* Mobile: one field per row */
@media (max-width:700px){
  .ubgc-content .calendar-toolbar{
    grid-template-columns:1fr!important;
    gap:9px!important;
    margin:22px 0!important;
  }
  .ubgc-content .calendar-toolbar .calendar-control,
  .ubgc-content .calendar-toolbar .calendar-control:last-child{
    grid-column:auto!important;
  }
  .ubgc-content .calendar-toolbar input,
  .ubgc-content .calendar-toolbar select,
  .ubgc-content .calendar-filter-reset{
    height:50px!important;
    min-height:50px!important;
    line-height:50px!important;
  }
  .ubgc-content .ubgc-calendar-pager{
    justify-content:flex-start!important;
    align-items:flex-start!important;
  }
}

/* ================================================================
   V39 — BRAND BUTTON SYSTEM
   Primary public-site button treatment:
   - Deep green background
   - Mint border
   - White label
   - Square corners everywhere
   ================================================================ */
.ubgc-content .calendar-filter-reset{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  min-width:110px!important;
  height:42px!important;
  min-height:42px!important;
  margin:0!important;
  padding:0 18px!important;
  border:1px solid #a7d6c3!important;
  border-radius:0!important;
  background:#173c31!important;
  color:#fff!important;
  font:700 12px/1 inherit!important;
  letter-spacing:.08em!important;
  cursor:pointer!important;
  box-shadow:none!important;
  transition:background .16s ease,color .16s ease,border-color .16s ease!important;
}
.ubgc-content .calendar-filter-reset:hover,
.ubgc-content .calendar-filter-reset:focus-visible{
  border-color:#173c31!important;
  background:#a7d6c3!important;
  color:#173c31!important;
  outline:none!important;
}

/* Primary controls throughout the public plugin UI. */
.ubgc-content button,
.ubgc-content input[type="submit"],
.ubgc-content input[type="button"],
.ubgc-content .ubgc-button,
.ubgc-content .ubgc-primary-button{
  border-radius:0!important;
}

.ubgc-content button:not(.calendar-filter-reset),
.ubgc-content input[type="submit"],
.ubgc-content input[type="button"],
.ubgc-content .ubgc-button,
.ubgc-content .ubgc-primary-button{
  border-color:#a7d6c3!important;
  background:#173c31!important;
  color:#fff!important;
  box-shadow:none!important;
}

.ubgc-content button:not(.calendar-filter-reset):hover,
.ubgc-content button:not(.calendar-filter-reset):focus-visible,
.ubgc-content input[type="submit"]:hover,
.ubgc-content input[type="submit"]:focus-visible,
.ubgc-content input[type="button"]:hover,
.ubgc-content input[type="button"]:focus-visible,
.ubgc-content .ubgc-button:hover,
.ubgc-content .ubgc-button:focus-visible,
.ubgc-content .ubgc-primary-button:hover,
.ubgc-content .ubgc-primary-button:focus-visible{
  border-color:#173c31!important;
  background:#a7d6c3!important;
  color:#173c31!important;
  outline:none!important;
}

/* Calendar pagination follows the same brand system. */
.ubgc-content .ubgc-calendar-pager button{
  border:1px solid #a7d6c3!important;
  border-radius:0!important;
  background:#173c31!important;
  color:#fff!important;
}
.ubgc-content .ubgc-calendar-pager button:hover:not(:disabled),
.ubgc-content .ubgc-calendar-pager button:focus-visible{
  border-color:#173c31!important;
  background:#a7d6c3!important;
  color:#173c31!important;
}
.ubgc-content .ubgc-calendar-pager button:disabled{
  border-color:#cbd6d1!important;
  background:#f5f7f5!important;
  color:#82948d!important;
}
