/**
 * TE Events – frontend stílusok
 * @copyright Copyright (C) 2026 László Blahó. All rights reserved.
 * @license   GNU General Public License version 2 or later
 */

.teevents-calendar {
   --te-cell-min-h: 96px;
   margin-block: 1rem;
}

.teevents-cal-title {
   text-transform: none;
}

.teevents-cal-nav {
   display: inline-flex;
   gap: .25rem;
}

/*
 * Gombcsoportok (nézetváltó, lapozó) — szándékosan Bootstrap nélkül.
 * Sok Joomla sablon letiltja a Bootstrap CSS-t a frontenden, ezért a
 * .btn/.btn-group/.d-flex osztályok nélkül, saját, önálló osztályokkal
 * épül fel a teljes eszköztár.
 */
.teevents-btn-group,
.teevents-btn {
   box-sizing: border-box;
}

.teevents-btn-group {
   display: inline-flex;
   flex-wrap: wrap;
}

.teevents-btn {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: .3rem;
   margin: 0 -1px 0 0;
   padding: .32rem .7rem;
   font-size: .85rem;
   line-height: 1.4;
   font-family: inherit;
   text-decoration: none;
   white-space: nowrap;
   color: var(--te-btn-color, #495057);
   background: var(--te-btn-bg, #fff);
   border: 1px solid var(--border-color, #ced4da);
   cursor: pointer;
   transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}

.teevents-btn:first-child {
   border-top-left-radius: .3rem;
   border-bottom-left-radius: .3rem;
}

.teevents-btn:last-child {
   margin-right: 0;
   border-top-right-radius: .3rem;
   border-bottom-right-radius: .3rem;
}

.teevents-btn:hover {
   color: var(--link-color, #2a69b8);
   background: var(--gray-100, #f8f9fa);
   text-decoration: none;
   position: relative;
   z-index: 1;
}

.teevents-btn:focus-visible {
   position: relative;
   z-index: 2;
   outline: 2px solid var(--link-color, #2a69b8);
   outline-offset: 1px;
}

.teevents-btn.is-active {
   color: #fff;
   background: var(--te-btn-active-bg, var(--link-color, #2a69b8));
   border-color: var(--te-btn-active-bg, var(--link-color, #2a69b8));
}

.teevents-btn-icon {
   padding-inline: .5rem;
   font-size: 1rem;
   line-height: 1;
}

/* Rács */
.teevents-cal-grid {
   width: 100%;
   border-collapse: collapse;
   table-layout: fixed;
}

.teevents-cal-grid th {
   text-align: center;
   padding: .5rem .25rem;
   font-size: .8rem;
   text-transform: uppercase;
   letter-spacing: .03em;
   color: var(--gray-600, #6c757d);
   border-bottom: 2px solid var(--border-color, #dee2e6);
}

.teevents-cal-cell {
   vertical-align: top;
   height: var(--te-cell-min-h);
   width: calc(100% / 7);
   border: 1px solid var(--border-color, #e2e6ea);
   padding: .25rem;
   background: var(--white, #fff);
}

.teevents-cal-cell.is-othermonth {
   background: var(--gray-100, #f8f9fa);
   color: var(--gray-500, #adb5bd);
}

.teevents-cal-cell.is-today {
   box-shadow: inset 0 0 0 2px var(--link-color, #2a69b8);
}

.teevents-cal-daynum {
   font-weight: 600;
   font-size: .85rem;
   text-align: right;
   padding: .1rem .2rem;
}

.teevents-cal-events {
   display: flex;
   flex-direction: column;
   gap: 2px;
}

/* Esemény pötty a naptárban */
.teevents-cal-event {
   --te-color: #3b82f6;
   display: flex;
   align-items: center;
   gap: 4px;
   padding: 2px 6px;
   font-size: .78rem;
   line-height: 1.25;
   text-decoration: none;
   color: inherit;
   border-radius: 4px;
   border-left: 3px solid var(--te-color);
   background: color-mix(in srgb, var(--te-color) 12%, transparent);
   overflow: hidden;
   white-space: nowrap;
   text-overflow: ellipsis;
}

.teevents-cal-event:hover {
   background: color-mix(in srgb, var(--te-color) 24%, transparent);
}

.teevents-cal-dot {
   flex: 0 0 auto;
   width: 8px;
   height: 8px;
   border-radius: 50%;
   background: var(--te-color);
}

.teevents-cal-time {
   font-variant-numeric: tabular-nums;
   font-weight: 600;
   color: var(--te-color);
}

.teevents-cal-name {
   overflow: hidden;
   text-overflow: ellipsis;
}

/* ---------- Eseménydetail ---------- */
.teevents-event {
   --te-color: #3b82f6;
   margin-inline: auto;
}

.teevents-event-cat {
   display: inline-block;
   padding: .15rem .6rem;
   border-radius: 999px;
   color: #fff;
   font-size: .78rem;
   font-weight: 600;
   text-transform: uppercase;
   letter-spacing: .03em;
}

.teevents-event-title {
   margin-top: .5rem;
   border-bottom: 3px solid var(--te-color);
   padding-bottom: .4rem;
}

.teevents-event-image img {
   width: 100%;
   height: auto;
   border-radius: 8px;
   margin-block: 1rem;
}

.teevents-event-meta {
   display: grid;
   gap: .5rem;
   margin: 1rem 0;
   padding: 1rem 1.25rem;
   background: var(--gray-100, #f8f9fa);
   border-radius: 8px;
   border-left: 4px solid var(--te-color);
}

.teevents-meta-row {
   display: grid;
   grid-template-columns: 160px 1fr;
   gap: .5rem;
   margin: 0;
}

.teevents-meta-row dt {
   font-weight: 600;
   color: var(--gray-700, #495057);
}

.teevents-meta-row dd {
   margin: 0;
}

.teevents-address {
   color: var(--gray-600, #6c757d);
   font-size: .92em;
}

.teevents-address-country {
   letter-spacing: .03em;
}

.teevents-event-description {
   margin: 1.25rem 0;
   line-height: 1.7;
}

.teevents-event-map {
   width: 100%;
   border-radius: 8px;
   overflow: hidden;
   margin: 1.25rem 0;
   z-index: 0;
}

.teevents-event-back {
   margin-top: 1.5rem;
}

@media (max-width: 640px) {
   .teevents-meta-row {
      grid-template-columns: 1fr;
      gap: .1rem;
   }

   .teevents-cal-name {
      display: none;
   }

   .teevents-calendar {
      --te-cell-min-h: 64px;
   }
}

/* ---------- Közelgő események modul ---------- */
.teevents-upcoming {
   display: flex;
   flex-direction: column;
   gap: .75rem;
}

.teevents-upcoming-card {
   --te-color: #3b82f6;
   display: flex;
   gap: .75rem;
   text-decoration: none;
   color: inherit;
   background: var(--white, #fff);
   border: 1px solid var(--border-color, #e2e6ea);
   border-left: 4px solid var(--te-color);
   border-radius: 8px;
   padding: .6rem .75rem;
   transition: box-shadow .15s ease, transform .15s ease;
}

.teevents-upcoming-card:hover {
   box-shadow: 0 4px 14px rgba(0, 0, 0, .08);
   transform: translateY(-1px);
}

.teevents-upcoming-thumb {
   flex: 0 0 72px;
}

.teevents-upcoming-thumb img {
   width: 72px;
   height: 72px;
   object-fit: cover;
   border-radius: 6px;
}

.teevents-upcoming-body {
   display: flex;
   flex-direction: column;
   gap: .15rem;
   min-width: 0;
}

.teevents-upcoming-cat {
   font-size: .72rem;
   font-weight: 600;
   text-transform: uppercase;
   letter-spacing: .03em;
   color: var(--te-color);
}

.teevents-upcoming-title {
   font-weight: 600;
   line-height: 1.3;
}

.teevents-upcoming-date,
.teevents-upcoming-loc {
   font-size: .82rem;
   color: var(--gray-600, #6c757d);
}

.teevents-upcoming-empty,
.teevents-upcoming-none {
   color: var(--gray-600, #6c757d);
   font-style: italic;
}

.teevents-location-image img {
   max-width: 220px;
   height: auto;
   border-radius: .25rem;
}

.teevents-cal-legend {
   display: flex;
   flex-wrap: wrap;
   gap: .4rem 1.1rem;
   margin-top: 1rem;
   padding-top: .75rem;
   border-top: 1px solid rgba(0, 0, 0, .1);
}

.teevents-cal-legend-item {
   display: inline-flex;
   align-items: center;
   gap: .4rem;
   font-size: .875rem;
}

.teevents-cal-legend-swatch {
   width: 1rem;
   height: 1rem;
   border-radius: .2rem;
   background: var(--te-color, #3b82f6);
   flex: 0 0 auto;
}

/* Nézetváltó eszköztár */
.teevents-cal-toolbar {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   justify-content: space-between;
   gap: .5rem;
   margin-block-end: 1rem;
}

/* Heti/napi lista-nézet */
.teevents-list-day {
   padding: .5rem 0;
   border-bottom: 1px solid rgba(0, 0, 0, .08);
}

.teevents-list-day.is-today .teevents-list-daytitle {
   color: var(--te-color, #3b82f6);
   font-weight: 700;
}

.teevents-list-daytitle {
   margin: 0 0 .35rem;
   text-transform: capitalize;
}

.teevents-list-events {
   margin: 0;
}

.teevents-list-event {
   display: flex;
   align-items: baseline;
   gap: .5rem;
   padding: .2rem 0 .2rem .5rem;
   border-left: 3px solid var(--te-color, #3b82f6);
   margin-bottom: .25rem;
}

.teevents-list-time {
   font-variant-numeric: tabular-nums;
   min-width: 3.5rem;
   color: #555;
}

.teevents-list-event .teevents-cal-dot {
   background: var(--te-color, #3b82f6);
}

.teevents-list-empty {
   margin: .25rem 0 .5rem;
}

/* ---------------------------------------------------------------
   Egyéni mezők és címkék az esemény részletek nézetben (1.1.0)
   --------------------------------------------------------------- */

.teevents-event-fields {
   margin: 1rem 0 0;
}

.teevents-event-fields .teevents-meta-row dt {
   font-weight: 600;
}

.teevents-event-tags {
   display: flex;
   align-items: center;
   flex-wrap: wrap;
   gap: .5rem;
   margin: 1rem 0 0;
}

.teevents-event-tags .teevents-tags-label {
   font-weight: 600;
}

.teevents-event-tags ul.tags {
   margin: 0;
   padding: 0;
   list-style: none;
   display: flex;
   flex-wrap: wrap;
   gap: .25rem;
}

/* Sorozat további alkalmai az esemény részletek nézetben (1.2.0) */
.teevents-other-dates {
   margin: .35rem 0 0;
   padding: 0 0 0 1rem;
   list-style: disc;
}

.teevents-other-dates li.is-current {
   list-style-type: square;
}

/* Naptárba mentés és iCal feliratkozás (1.3.0) */
.teevents-event-actions {
   display: flex;
   flex-wrap: wrap;
   gap: .5rem;
   margin: 1.25rem 0 0;
}

.teevents-cal-feed {
   margin: 1rem 0 0;
   font-size: .9rem;
}

/* Agenda / lista nézet (1.5.0) */
.teevents-agenda-filter {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: .5rem;
   margin: 0 0 1rem;
}

.teevents-agenda-filter-dates {
   display: flex;
   gap: .35rem;
}

.teevents-agenda-list .teevents-list-daytitle {
   margin-top: 1.25rem;
}

.teevents-agenda-item {
   display: flex;
   gap: .75rem;
   padding: .6rem 0 .6rem .75rem;
   border-left: 3px solid var(--te-color, #3b82f6);
   border-bottom: 1px solid rgba(0, 0, 0, .07);
}

.teevents-agenda-thumb img {
   width: 96px;
   height: 72px;
   object-fit: cover;
   border-radius: .25rem;
}

.teevents-agenda-body {
   min-width: 0;
}

.teevents-agenda-meta {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: .4rem;
   font-size: .85rem;
   color: #6c757d;
}

.teevents-agenda-cat {
   padding: .05rem .4rem;
   border-radius: .75rem;
   background: var(--te-color, #3b82f6);
   color: #fff;
   font-size: .75rem;
}

.teevents-agenda-title {
   display: inline-block;
   margin: .15rem 0;
   font-weight: 600;
}

.teevents-agenda-intro {
   margin: .25rem 0 0;
   font-size: .9rem;
}

.teevents-agenda-pagination {
   margin-top: 1rem;
}

@media (max-width: 575.98px) {
   .teevents-agenda-thumb img {
      width: 64px;
      height: 48px;
   }

   .teevents-agenda-filter .form-select,
   .teevents-agenda-filter .form-control {
      width: 100%;
   }

   .teevents-agenda-filter-field {
      flex: 1 1 100%;
   }
}

/* Kategóriaszűrő a jelmagyarázatban (1.6.0) */
.teevents-cal-legend-wrap {
   margin-top: 1rem;
}

.teevents-cal-legend {
   display: flex;
   flex-wrap: wrap;
   gap: .4rem;
   margin: 0;
}

.teevents-cal-legend-btn {
   display: inline-flex;
   align-items: center;
   gap: .35rem;
   padding: .2rem .6rem;
   border: 1px solid rgba(0, 0, 0, .15);
   border-radius: 1rem;
   background: #fff;
   color: inherit;
   font-size: .85rem;
   text-decoration: none;
   cursor: pointer;
   transition: opacity .15s ease, border-color .15s ease, background-color .15s ease;
}

.teevents-cal-legend-btn.is-static {
   cursor: default;
}

.teevents-cal-legend-btn:hover:not(.is-static) {
   border-color: var(--te-color, #3b82f6);
   text-decoration: none;
}

.teevents-cal-legend-btn.is-active {
   border-color: var(--te-color, #3b82f6);
   background: var(--te-color, #3b82f6);
   color: #fff;
}

.teevents-cal-legend-btn.is-active .teevents-cal-legend-swatch {
   box-shadow: 0 0 0 1px #fff;
}

/* A ki nem választott kategóriák elhalványulnak, de olvashatók maradnak */
.teevents-cal-legend-btn.is-dimmed {
   opacity: .4;
}

.teevents-cal-legend-btn.is-reset {
   border-style: dashed;
}

.teevents-cal-legend-swatch {
   width: .7rem;
   height: .7rem;
   border-radius: 50%;
   background: var(--te-color, #3b82f6);
   flex: 0 0 auto;
}

.teevents-cal-legend-empty {
   margin: .6rem 0 0;
   color: #6c757d;
   font-size: .9rem;
}

/* A szűrő által elrejtett elemek */
.teevents-calendar .is-hidden,
.teevents-cal-legend-wrap .is-hidden {
   display: none !important;
}

@media (prefers-reduced-motion: reduce) {
   .teevents-cal-legend-btn {
      transition: none;
   }
}

/* ==========================================================================
   Tól-ig mini-naptár választó (1.8.0)
   A szűrő két natív dátummezőjét váltja ki (minimap.js). A natív mezők a
   .is-enhanced állapotban vizuálisan rejtve maradnak, de beküldhetők.
   ========================================================================== */
.teevents-minimap-picker {
   --te-accent: #a4165f;
   flex: 1 1 100%;
}

.teevents-minimap-picker.is-enhanced .teevents-minimap-native {
   position: absolute;
   width: 1px;
   height: 1px;
   padding: 0;
   margin: -1px;
   overflow: hidden;
   clip: rect(0, 0, 0, 0);
   white-space: nowrap;
   border: 0;
}

.teevents-minimap-cals {
   display: flex;
   flex-wrap: wrap;
   gap: 1rem;
}

.teevents-minimap-cal {
   flex: 1 1 240px;
   max-width: 320px;
   padding: .6rem .7rem .75rem;
   border: 2px solid var(--te-accent);
   border-radius: .6rem;
   background: var(--te-minimap-bg, #fff);
}

.teevents-minimap-head {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: .25rem;
   margin-bottom: .4rem;
}

.teevents-minimap-title {
   font-weight: 600;
   text-transform: uppercase;
   letter-spacing: .02em;
   color: var(--te-minimap-title, #495057);
}

.teevents-minimap-navbtn {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: 1.9rem;
   height: 1.9rem;
   padding: 0;
   font-size: .7rem;
   line-height: 1;
   color: var(--te-accent);
   background: transparent;
   border: 0;
   border-radius: .3rem;
   cursor: pointer;
}

.teevents-minimap-navbtn:hover,
.teevents-minimap-navbtn:focus-visible {
   background: color-mix(in srgb, var(--te-accent) 12%, transparent);
   outline: none;
}

.teevents-minimap-caption {
   margin-bottom: .35rem;
   font-size: .8rem;
   font-weight: 600;
   color: var(--gray-600, #6c757d);
}

.teevents-minimap-grid {
   display: grid;
   grid-template-columns: repeat(7, 1fr);
   gap: 2px;
}

.teevents-minimap-dow {
   padding: .2rem 0;
   text-align: center;
   font-size: .78rem;
   font-weight: 600;
   color: var(--gray-600, #6c757d);
}

.teevents-minimap-cell {
   position: relative;
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: flex-start;
   min-height: 2.4rem;
   padding: .28rem 0 .18rem;
   font-size: .9rem;
   line-height: 1;
   color: var(--te-minimap-fg, #212529);
   background: transparent;
   border: 1px solid transparent;
   border-radius: .35rem;
   cursor: pointer;
}

.teevents-minimap-cell:hover {
   background: color-mix(in srgb, var(--te-accent) 8%, transparent);
}

.teevents-minimap-cell:focus-visible {
   outline: 2px solid var(--te-accent);
   outline-offset: -2px;
}

.teevents-minimap-cell.is-othermonth {
   color: var(--gray-500, #adb5bd);
}

.teevents-minimap-cell.is-today {
   font-weight: 700;
   box-shadow: inset 0 0 0 1px var(--te-accent);
}

.teevents-minimap-cell.in-range {
   background: var(--te-range, color-mix(in srgb, var(--te-accent) 12%, transparent));
   border-radius: 0;
}

.teevents-minimap-cell.is-selected {
   color: #fff;
   background: var(--te-accent);
   font-weight: 700;
   border-radius: .35rem;
}

.teevents-minimap-cell.is-selected .teevents-minimap-dot {
   box-shadow: 0 0 0 1px #fff;
}

/* Pöttyök a nap alatt */
.teevents-minimap-dots {
   display: flex;
   align-items: center;
   gap: 2px;
   margin-top: .18rem;
   min-height: .5rem;
}

.teevents-minimap-dot {
   width: .38rem;
   height: .38rem;
   border-radius: 50%;
   background: var(--te-color, #3b82f6);
}

.teevents-minimap-more {
   font-size: .6rem;
   line-height: 1;
   color: var(--gray-600, #6c757d);
}

.teevents-minimap-cell.is-selected .teevents-minimap-more {
   color: #fff;
}

/* Előnézeti lista (a több esemény „toolbar”-ja) — hover/fókusz nyitja */
.teevents-minimap-pop {
   position: absolute;
   z-index: 20;
   top: 100%;
   left: 50%;
   transform: translateX(-50%);
   min-width: 11rem;
   max-width: 16rem;
   margin-top: .25rem;
   padding: .4rem .5rem;
   text-align: left;
   background: #fff;
   border: 1px solid var(--border-color, #ced4da);
   border-radius: .4rem;
   box-shadow: 0 6px 20px rgba(0, 0, 0, .16);
   opacity: 0;
   visibility: hidden;
   pointer-events: none;
   transition: opacity .12s ease;
}

.teevents-minimap-cell:hover .teevents-minimap-pop,
.teevents-minimap-cell:focus-visible .teevents-minimap-pop {
   opacity: 1;
   visibility: visible;
}

.teevents-minimap-pop-row {
   display: flex;
   align-items: baseline;
   gap: .35rem;
   padding: .12rem 0;
   font-size: .8rem;
   line-height: 1.25;
   color: #212529;
   white-space: normal;
}

.teevents-minimap-pop-swatch {
   flex: 0 0 auto;
   width: .55rem;
   height: .55rem;
   border-radius: 50%;
   background: var(--te-color, #3b82f6);
   transform: translateY(1px);
}

.teevents-minimap-pop-time {
   flex: 0 0 auto;
   font-variant-numeric: tabular-nums;
   color: var(--gray-600, #6c757d);
}

.teevents-minimap-pop-title {
   flex: 1 1 auto;
   font-weight: 600;
}

@media (max-width: 575.98px) {
   .teevents-minimap-cal {
      max-width: none;
   }
}
