
/* Transparent Joomla module wrapper */
.trout-calendar-transparent-host,
.trout-calendar-transparent-host > .card-body,
.trout-calendar-transparent-host > .module-body,
.trout-calendar-transparent-host .card-body,
.trout-calendar-transparent-host .module-body {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 0 !important;
    box-shadow: none !important;
}

.card:has(> .card-body .trout-calendar-module),
.moduletable:has(.trout-calendar-module),
.module:has(.trout-calendar-module),
.module-card:has(.trout-calendar-module) {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 0 !important;
    box-shadow: none !important;
}
.trout-calendar-module{background:transparent!important;border:0!important;box-shadow:none!important}
.trout-calendar-module__carousel,.trout-calendar-module__viewport,.trout-calendar-module__track,.trout-calendar-module__slide,.trout-calendar-module__month,.trout-calendar-module__weekdays,.trout-calendar-module__days,.trout-calendar-module__day,.trout-calendar-module__day--empty{background:transparent!important;box-shadow:none}
.trout-calendar-module,.trout-calendar-module__month,.trout-calendar-module__day,.trout-calendar-module__day--empty{background:transparent}.trout-calendar-module__carousel{display:flex;align-items:center;gap:.6rem}.trout-calendar-module__viewport{width:100%;overflow:hidden}.trout-calendar-module__track{display:flex;transition:transform .45s ease}.trout-calendar-module__slide{flex:0 0 100%;display:grid;grid-template-columns:repeat(var(--trout-months-count,3),minmax(0,1fr));gap:1rem}.trout-calendar-module__arrow{width:2.4rem;height:2.4rem;flex:0 0 auto;border:0;border-radius:50%;background:#166534;color:#fff;font-size:2rem;line-height:1;cursor:pointer}.trout-calendar-module__arrow:hover{background:#15803d}.trout-calendar-module__month{border:0;border-radius:0;overflow:hidden;box-shadow:none}.trout-calendar-module__month h3{margin:0;padding:.75rem;background:transparent;color:inherit;font-size:1.05rem;text-align:center}.trout-calendar-module__weekdays,.trout-calendar-module__days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.trout-calendar-module__weekdays{padding:.5rem .25rem;border-bottom:0;color:inherit;font-size:.68rem;font-weight:700;text-align:center;opacity:.72}.trout-calendar-module__day{min-height:78px;padding:.25rem;border:0;font-size:.7rem;overflow:hidden}.trout-calendar-module__day:nth-child(7n){border-right:0}.trout-calendar-module__day-number{display:block;margin-bottom:.15rem;font-weight:700;color:inherit}.trout-calendar-module__day--event{background:transparent}.trout-calendar-module__day--today{background:#fef3c7;box-shadow:inset 0 0 0 2px #f59e0b}.trout-calendar-module__day--today .trout-calendar-module__day-number{color:#92400e}.trout-calendar-module__event{margin:.15rem 0;padding:.18rem;border-radius:3px;background:#dcfce7;line-height:1.2;color:#166534}.trout-calendar-module__event strong{display:block;font-size:.62rem}.trout-calendar-module__event a,.trout-calendar-module__event span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#166534;text-decoration:none}.trout-calendar-module__event a:hover{text-decoration:underline}@media(max-width:900px){.trout-calendar-module__slide{grid-template-columns:1fr}.trout-calendar-module__day{min-height:70px}.trout-calendar-module__carousel{align-items:flex-start}}

.trout-calendar-module__event--team{background:#dbeafe;color:#1d4ed8}.trout-calendar-module__event--team a,.trout-calendar-module__event--team span{color:#1d4ed8}.trout-calendar-module__event--individual{background:#dcfce7;color:#15803d}.trout-calendar-module__event--individual a,.trout-calendar-module__event--individual span{color:#15803d}.trout-calendar-module__event--children{background:#fef3c7;color:#a16207}.trout-calendar-module__event--children a,.trout-calendar-module__event--children span{color:#a16207}.trout-calendar-module__event--adults{background:#f1f5f9;color:#475569}.trout-calendar-module__event--adults a,.trout-calendar-module__event--adults span{color:#475569}

/* v1.8.24: the full coloured event card is clickable. */
.trout-calendar-module__event[role="link"] { cursor: pointer; }
.trout-calendar-module__event[role="link"]:hover .trout-calendar-module__event-title { text-decoration: underline; }
.trout-calendar-module__event[role="link"]:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

/* Larger and more readable calendar dates (v1.0.7) */
.trout-calendar-module__day {
    min-height: 88px;
    padding: .35rem;
}

.trout-calendar-module__day-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.9rem;
    min-height: 1.9rem;
    margin-bottom: .25rem;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1;
}

.trout-calendar-module__day--event .trout-calendar-module__day-number {
    font-size: 1.45rem;
    font-weight: 800;
}

.trout-calendar-module__day--today .trout-calendar-module__day-number {
    min-width: 2.15rem;
    min-height: 2.15rem;
    border-radius: 50%;
    font-size: 1.5rem;
    font-weight: 800;
    background: #f59e0b;
    color: #fff;
}

.trout-calendar-module__weekdays {
    font-size: .78rem;
}

.trout-calendar-module__month h3 {
    font-size: 1.18rem;
    font-weight: 700;
}

@media (max-width: 900px) {
    .trout-calendar-module__day {
        min-height: 76px;
        padding: .25rem;
    }

    .trout-calendar-module__day-number {
        min-width: 1.7rem;
        min-height: 1.7rem;
        font-size: 1.18rem;
    }

    .trout-calendar-module__day--event .trout-calendar-module__day-number {
        font-size: 1.25rem;
    }

    .trout-calendar-module__day--today .trout-calendar-module__day-number {
        min-width: 1.9rem;
        min-height: 1.9rem;
        font-size: 1.3rem;
    }
}

/* Month cards and configurable date size. */
.trout-calendar-module .trout-calendar-module__month {
    overflow: hidden;
    border: 1px solid rgba(100, 116, 139, .48) !important;
    outline: 1px solid rgba(255, 255, 255, .76) !important;
    outline-offset: -2px;
    border-radius: 16px !important;
    background: transparent !important;
    box-shadow: 0 10px 26px rgba(15, 23, 42, .07) !important;
}

.trout-calendar-module {
    position: relative;
    z-index: 1;
    isolation: isolate;
    margin-bottom: 3rem !important;
}

.trout-calendar-module__carousel {
    padding-bottom: 1.5rem;
}

.trout-calendar-module__legend {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem 1rem;
    align-items: center;
    margin: 0 0 .9rem;
    font-size: .82rem;
    font-weight: 700;
}

.trout-calendar-module__legend-item {
    display: inline-flex;
    align-items: center;
    gap: .38rem;
    white-space: nowrap;
}

.trout-calendar-module__legend-item i {
    display: block;
    width: .8rem;
    height: .8rem;
    border-radius: .22rem;
    border: 1px solid rgba(15, 23, 42, .12);
}

.trout-calendar-module__legend-item--team i { background: #dbeafe; }
.trout-calendar-module__legend-item--individual i { background: #dcfce7; }
.trout-calendar-module__legend-item--children i { background: #fef3c7; }

.trout-calendar-module__month h3 {
    padding: .85rem .75rem .7rem;
    border-bottom: 1px solid rgba(148, 163, 184, .24);
}

.trout-calendar-module__weekdays {
    padding-top: .65rem;
}

.trout-calendar-module__day-number,
.trout-calendar-module__day--event .trout-calendar-module__day-number {
    font-size: var(--trout-day-number-size, 22px);
}

.trout-calendar-module__day-number {
    opacity: .42;
    font-weight: 600;
}

.trout-calendar-module__day--event .trout-calendar-module__day-number {
    opacity: 1;
    font-weight: 800;
}

.trout-calendar-module__day--today .trout-calendar-module__day-number {
    font-size: calc(var(--trout-day-number-size, 22px) + 4px);
    opacity: 1;
}

.trout-calendar-module__event .trout-calendar-module__event-title {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: .25rem;
}

.trout-calendar-module__event .trout-calendar-module__event-title img {
    display: block !important;
    width: 13px !important;
    height: 13px !important;
    min-width: 13px !important;
    max-width: 13px !important;
    min-height: 13px !important;
    max-height: 13px !important;
    flex: 0 0 13px;
    object-fit: contain !important;
    opacity: .78;
}

.trout-calendar-module__event .trout-calendar-module__event-title a {
    min-width: 0;
    flex: 1 1 auto;
}

@media (max-width: 900px) {
    .trout-calendar-module .trout-calendar-module__month {
        border-radius: 12px;
    }
}

/* One shared legend under the visible month titles. */
.trout-calendar-module__slide {
    display: block;
}

/* Match the viewport to the active slide instead of the tallest month. */
.trout-calendar-module__track {
    align-items: flex-start;
}

.trout-calendar-module__viewport {
    transition: height .3s ease;
}

.trout-calendar-module__month-headings,
.trout-calendar-module__months {
    display: grid;
    grid-template-columns: repeat(var(--trout-months-count, 3), minmax(0, 1fr));
    gap: 1rem;
}

.trout-calendar-module__month-headings h3 {
    margin: 0;
    padding: .75rem;
    color: inherit;
    font-size: 1.18rem;
    font-weight: 700;
    text-align: center;
}

.trout-calendar-module__legend {
    justify-content: center;
    margin: 0 0 .9rem;
}

@media (max-width: 900px) {
    .trout-calendar-module__month-headings,
    .trout-calendar-module__months {
        grid-template-columns: 1fr;
    }
}

/* Compact empty weeks: event cards keep their readable height, while days
   without competitions no longer create large blank areas. */
.trout-calendar-module__day,
.trout-calendar-module__day--empty {
    min-height: 42px;
}

.trout-calendar-module__day--event {
    min-height: 76px;
}

.trout-calendar-module__event {
    margin: .1rem 0;
    padding: .22rem .28rem;
}

@media (max-width: 900px) {
    .trout-calendar-module__day,
    .trout-calendar-module__day--empty {
        min-height: 38px;
    }

    .trout-calendar-module__day--event {
        min-height: 70px;
    }
}

/* A competition card may use the width of the following empty day.
   The calendar grid itself stays aligned with weekdays. */
.trout-calendar-module__day--event:has(.trout-calendar-module__event--wide) {
    overflow: visible;
    position: relative;
    z-index: 2;
}

.trout-calendar-module__event--wide {
    width: calc(200% + .3rem);
    position: relative;
    z-index: 3;
}

/* Cancellation overlays the category colour without intercepting clicks. */
.trout-calendar-module__event--cancelled {
    position: relative;
    isolation: isolate;
}
.trout-calendar-module__event--cancelled::after {
    content: "";
    position: absolute;
    inset: 2px;
    z-index: 4;
    pointer-events: none;
    border-radius: inherit;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M0 100L100 0' fill='none' stroke='%23e51e26' stroke-width='2.5' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}

/* Organizer logos in the calendar header. */
.trout-calendar-module__partners {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .7rem;
    min-height: 42px;
    margin: 0 0 .35rem;
}

.trout-calendar-module__partners img {
    display: block;
    width: 58px;
    height: 38px;
    object-fit: contain;
    filter: drop-shadow(0 1px 1px rgba(15, 23, 42, .12));
}

@media (max-width: 900px) {
    .trout-calendar-module__event--wide {
        width: 100%;
    }

    .trout-calendar-module__partners {
        justify-content: center;
    }
}
