/* HB-kalenteri – Harrasteblogi värit + moderni, responsiivinen UI */
.hbkal-wrap{
  --hbkal-primary:#d6111e;
  --hbkal-alt:#ddc76d;
  --hbkal-black:#000;
  --hbkal-white:#fff;
  --hbkal-border: rgba(0,0,0,.10);
  --hbkal-shadow: 0 14px 50px rgba(0,0,0,.18);
  --hbkal-radius: 16px;

  font-family: system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color: var(--hbkal-black);
  position: relative;
}

html.hbkal-no-scroll, html.hbkal-no-scroll body{ overflow:hidden; }

/* Yläpalkki */
.hbkal-toolbar{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
  margin: 0 0 12px 0;
}

.hbkal-filter label{
  display:block;
  font-size:12px;
  font-weight:900;
  letter-spacing:.2px;
  margin: 0 0 6px 2px;
  color: rgba(0,0,0,.75);
}

.hbkal-filter select{
  appearance:none;
  width: min(320px, 92vw);
  background: var(--hbkal-white);
  border:1px solid var(--hbkal-border);
  border-radius:999px;
  padding:10px 42px 10px 14px;
  font-weight:850;
  cursor:pointer;
  outline:none;
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
  transition: box-shadow .2s ease, transform .08s ease, border-color .2s ease;
  background-image:
    linear-gradient(45deg, transparent 50%, rgba(0,0,0,.70) 50%),
    linear-gradient(135deg, rgba(0,0,0,.70) 50%, transparent 50%);
  background-position: calc(100% - 18px) 55%, calc(100% - 12px) 55%;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
}

.hbkal-filter select:hover{ transform: translateY(-1px); }
.hbkal-filter select:focus{
  border-color: rgba(214,17,30,.55);
  box-shadow: 0 0 0 4px rgba(214,17,30,.14), 0 10px 22px rgba(0,0,0,.06);
}

/* Legend */
.hbkal-legend{ display:flex; gap:8px; flex-wrap:wrap; }
.hbkal-chip{
  --c: var(--hbkal-primary);
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  border-radius:999px;
  background: rgba(0,0,0,.04);
  border:1px solid var(--hbkal-border);
  font-size:12px;
  font-weight:900;
}
.hbkal-chip::before{
  content:'';
  width:10px;height:10px;border-radius:50%;
  background: var(--c);
  box-shadow: 0 0 0 3px rgba(0,0,0,.06);
}

/* Kalenteri korttina */
.hbkal-calendar{
  background: var(--hbkal-white);
  border:1px solid var(--hbkal-border);
  border-radius: var(--hbkal-radius);
  overflow:hidden;
  box-shadow: 0 12px 34px rgba(0,0,0,.08);
}

/* FullCalendar teema */
.hbkal-wrap .fc{
  --fc-border-color: rgba(0,0,0,.09);
  --fc-page-bg-color: transparent;
  --fc-today-bg-color: rgba(214,17,30,.08);
}
.hbkal-wrap .fc .fc-toolbar-title{
  font-size: 18px;
  font-weight: 1000;
  letter-spacing:.2px;
}
.hbkal-wrap .fc .fc-button{
  border-radius:999px;
  border:1px solid var(--hbkal-border);
  background: var(--hbkal-white);
  color: rgba(0,0,0,.86);
  font-weight: 950;
  padding: 8px 12px;
  box-shadow: 0 10px 20px rgba(0,0,0,.06);
  transition: transform .08s ease, box-shadow .2s ease, background .2s ease;
}
.hbkal-wrap .fc .fc-button:hover{
  transform: translateY(-1px);
  box-shadow: 0 14px 26px rgba(0,0,0,.10);
}
.hbkal-wrap .fc .fc-button-primary:not(:disabled).fc-button-active,
.hbkal-wrap .fc .fc-button-primary:not(:disabled):active{
  background: var(--hbkal-primary);
  border-color: rgba(0,0,0,.05);
  color: var(--hbkal-white);
}
.hbkal-wrap .fc .fc-button:focus{
  box-shadow: 0 0 0 4px rgba(214,17,30,.14), 0 10px 20px rgba(0,0,0,.06);
}
.hbkal-wrap .fc-daygrid-event{
  border-radius: 12px;
  padding: 2px 6px;
}
.hbkal-wrap .fc-daygrid-event .fc-event-title{ font-weight: 950; }

/* Tooltip: fixed ettei leikkaudu builderin containereihin */
.hbkal-tooltip{
  position: fixed;
  z-index: 999999;
  max-width: 290px;
  background: rgba(0,0,0,.92);
  color: var(--hbkal-white);
  padding: 10px 12px;
  border-radius: 14px;
  box-shadow: var(--hbkal-shadow);
  font-size: 13px;
  line-height: 1.25;
  display:none;
  pointer-events:none;
}
.hbkal-tooltip strong{ display:block; font-size:14px; margin-bottom:4px; }

/* Modaali */
.hbkal-modal{
  display:none;
  position:fixed;
  inset:0;
  background: rgba(0,0,0,.72);
  z-index: 999998;
  padding:16px;
}
.hbkal-modal[aria-hidden="false"]{
  display:flex;
  align-items:center;
  justify-content:center;
}
.hbkal-modal__panel{
  width: min(560px, 100%);
  max-height: 84vh;
  overflow:auto;
  background: var(--hbkal-white);
  border-radius: 20px;
  box-shadow: var(--hbkal-shadow);
  border: 1px solid rgba(255,255,255,.12);
  padding: 18px 18px 14px 18px;
  position:relative;
}
.hbkal-modal__close{
  position:absolute;
  top: 10px; right: 12px;
  width: 40px; height: 40px;
  border-radius:999px;
  border:1px solid var(--hbkal-border);
  background: var(--hbkal-white);
  font-size: 22px;
  line-height:1;
  cursor:pointer;
  box-shadow: 0 10px 20px rgba(0,0,0,.08);
}
.hbkal-modal__close:hover{ transform: translateY(-1px); }
.hbkal-loading{ font-weight: 900; color: rgba(0,0,0,.70); padding: 10px 4px; }
.hbkal-empty{ font-weight: 800; color: rgba(0,0,0,.65); margin: 8px 0; }

/* Päivän listaus */
.hbkal-day-item{
  display:grid;
  grid-template-columns: 96px 1fr;
  gap: 12px;
  padding: 12px;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 16px;
  margin-bottom: 10px;
  background: rgba(0,0,0,.02);
}
.hbkal-day-thumb{
  width: 96px;
  height: 74px;
  object-fit: cover;
  border-radius: 14px;
  background: rgba(0,0,0,.08);
}
.hbkal-day-thumb--empty{
  background: linear-gradient(135deg, rgba(214,17,30,.12), rgba(221,199,109,.18));
}
.hbkal-day-title{
  font-weight: 1000;
  margin: 0 0 4px 0;
  word-break: break-word;
}
.hbkal-day-meta{
  font-size: 12px;
  color: rgba(0,0,0,.62);
  margin: 0 0 8px 0;
}
.hbkal-day-link a{
  display:inline-flex;
  align-items:center;
  gap:8px;
  text-decoration:none;
  font-weight: 1000;
  color: var(--hbkal-primary);
}
.hbkal-day-link a:hover{ text-decoration: underline; }

@media (max-width: 520px){
  .hbkal-wrap .fc .fc-toolbar{
    flex-direction:column;
    align-items:stretch;
    gap:10px;
  }
  .hbkal-wrap .fc .fc-toolbar-title{ text-align:center; }
  .hbkal-day-item{ grid-template-columns: 1fr; }
  .hbkal-day-thumb{ width: 100%; height: 150px; }
}
