/* RCM_APP_28.8.3 (Luis) -- the Event list card, three rows. One rule per selector; the layered
   overrides from V27.5.74.41 through 28.8.0 were folded in here and removed.
     1. the title (bigger), VIP Edit / Delete, the date tile at the upper right -- the whole row opens the event
     2. the slider: the venue, then every performer, full names, slide sideways -- a name opens its
        venue / band, anywhere else on the row opens the event
     3. the time, the status (STARTS SOON / ONGOING / OVER) and the bell -- the row (not the bell) opens the event
   A title too long to fit slides (the shared marquee, card_marquee.css) while the event is live or
   still to come; an event that is over (greyed) shows "..." instead (.rcm-marquee-still). */
.calendar-event{
    position:relative!important;
    margin:4px 0!important;
    padding:5px 6px!important;
    border:2px solid #334155!important;
    border-radius:10px!important;
    background:#020305!important;
    color:inherit!important;
}
.calendar-event:hover,.calendar-event:active{background:#070b11!important;border-color:#64748b!important}
.calendar-event.has-reminder{outline:3px solid #f97316!important;outline-offset:1px!important}
.calendar-event-main{display:flex!important;flex-direction:column!important;gap:4px!important;min-width:0!important;background:#020305!important}

/* Row 1 */
.rcm-ev-head{display:flex!important;align-items:center!important;gap:6px!important;min-width:0!important;cursor:pointer!important}
.rcm-ev-title{
    flex:1 1 auto!important;
    min-width:0!important;
    display:block!important;
    color:#f59e0b!important;
    font-size:21px!important;
    font-weight:900!important;
    line-height:1.12!important;
    text-decoration:none!important;
}
.rcm-ev-date{
    flex:0 0 auto!important;
    width:42px!important;
    height:38px!important;      /* 28.8.20.20: only as tall as the bell row + the start time beside it */
    min-width:42px!important;
    padding:2px!important;
    border-width:2px!important;
    border-radius:9px!important;
    aspect-ratio:auto!important;
}
.rcm-ev-date .calendar-event-link-month{font-size:9px!important;line-height:.95!important}
/* RCM_APP_28.8.19 (Luis, Oct-6): the poster thumbnail beside the date tile, the tile's size. */
.rcm-ev-thumb{display:block;width:84px;height:84px;overflow:hidden;border:2px solid #334155;border-radius:10px;background:#000}
/* RCM_APP_28.8.20.2 (Luis, Oct-6): title + (date, start, bell) on the left, a bigger poster across both on the right. */
.rcm-ev-top{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;align-items:stretch}
.rcm-ev-top.has-poster{grid-template-columns:minmax(0,1fr) auto}
.rcm-ev-left{display:flex;flex-direction:column;justify-content:space-between;gap:4px;min-width:0}
.rcm-ev-poster{cursor:pointer;background:linear-gradient(135deg,#4b5563,#6b7280)} /* 28.8.20.14: waits grey, never black */
.rcm-ev-head{position:relative}
.rcm-ev-title-text{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.rcm-ev-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.rcm-ev-date .calendar-event-link-day{margin-top:1px!important;font-size:19px!important;line-height:.88!important}

/* Rows 2 and 3 share the textured lower face (textured_surfaces.css .calendar-event-bottom). */
.rcm-ev-body{display:flex!important;flex-direction:column!important;gap:4px!important;min-width:0!important;padding:4px!important;border-radius:7px!important}

/* Row 2: the slider */
.rcm-ev-slider{
    width:100%!important;
    min-width:0!important;
    display:flex!important;
    align-items:stretch!important;
    gap:5px!important;
    padding:0!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scrollbar-width:none!important;
    overscroll-behavior-x:contain!important;
    touch-action:pan-x pan-y!important;
    cursor:pointer!important;
}
.rcm-ev-slider::-webkit-scrollbar{display:none!important}
.calendar-performer-link,.calendar-venue-link{
    flex:0 0 auto!important;
    width:auto!important;
    max-width:none!important;
    min-height:32px!important;
    box-sizing:border-box!important;
    display:inline-flex!important;
    align-items:center!important;
    gap:4px!important;
    margin:0!important;
    padding:3px 10px!important;
    border:2px solid #60a5fa!important;
    border-radius:8px!important;
    background:#17376a!important;
    color:#dbeafe!important;
    font-size:13px!important;
    font-weight:950!important;
    line-height:1.05!important;
    text-decoration:none!important;
    white-space:nowrap!important;
    overflow:visible!important;
    cursor:pointer!important;
    touch-action:pan-x pan-y!important;
}
.calendar-performer-link:hover,.calendar-performer-link:active{background:#1d4ed8!important;border-color:#bfdbfe!important;color:#fff!important}
.calendar-venue-link{border-color:#2dd4bf!important;background:#0f3b3a!important;color:#ccfbf1!important}
.calendar-venue-link::before{content:"\1F4CD";flex:0 0 auto;font-size:11px}
.calendar-venue-link:hover,.calendar-venue-link:active{background:#115e59!important;border-color:#99f6e4!important;color:#fff!important}
.calendar-venue-link.is-static{cursor:inherit!important}
/* 28.8.24.14.7.4 (Luis, Oct-19): on the small card the venue chip keeps its pin but is smaller and no wider than about half the row; a long name ends in an ellipsis */
.rcm-ev-slider .calendar-venue-link{max-width:50%!important;font-size:11px!important;min-height:28px!important}
.rcm-ev-slider .calendar-venue-link .calendar-venue-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Row 3 */
.rcm-ev-meta{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:8px!important;min-width:0!important;cursor:pointer!important}
.calendar-event-alert-stack{
    flex:0 0 auto!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-start!important;   /* 28.8.20.20: bell first, then the status, left to right */
    gap:4px!important;
}
.calendar-event-alert-stack .rcm-event-temporal-status{min-width:0!important;padding:2px 4px!important;font-size:8px!important}
.calendar-event-time{
    min-width:max-content!important;      /* 28.8.20.4: the start time is never cut */
    flex:1 1 auto!important;
    margin:0!important;
    font-size:12px!important;
    line-height:1!important;
    text-align:left!important;
    color:#d8e1ee!important;
    font-weight:800!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
}
.calendar-event-reminder{
    position:static!important;
    flex:0 0 auto!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:2px!important;
    min-width:30px!important;
    min-height:24px!important;
    padding:2px 5px!important;
    border:1px solid #64748b!important;
    border-radius:8px!important;
    background:#1e293b!important;
    color:#cbd5e1!important;
    font-size:10px!important;
    font-weight:900!important;
    line-height:1!important;
    cursor:pointer!important;
}
.calendar-event-reminder.is-active{border-color:#facc15!important;background:#713f12!important;color:#fde68a!important}
.calendar-event-reminder:disabled{opacity:.65!important;cursor:wait!important}

@media(max-width:420px){
    .calendar-event{margin:3px 0!important;padding:4px 5px!important}
    .rcm-ev-title{font-size:19px!important}
    .rcm-ev-date{width:40px!important;height:36px!important;min-width:40px!important}
    .rcm-ev-thumb{width:78px;height:78px}
    .rcm-ev-date .calendar-event-link-month{font-size:8px!important}
    .rcm-ev-date .calendar-event-link-day{font-size:18px!important}
    .calendar-performer-link,.calendar-venue-link{min-height:30px!important;padding:2px 8px!important;font-size:12px!important}
    .calendar-event-time{font-size:11px!important}
    .calendar-event-reminder{min-width:27px!important;min-height:22px!important;padding:1px 4px!important;font-size:9px!important}
}

/* Compact-card temporal shell; shared badge animation lives in event_temporal.css. */
.calendar-event.is-event-starting-soon{
    border-color:#eab308!important;
    animation:rcm-event-card-soon .72s steps(2,end) infinite;
}
.calendar-event.is-event-ongoing{
    border-color:#22c55e!important;
    animation:rcm-event-card-live-blink 1s steps(2,end) infinite;
}
.calendar-event.is-event-over{
    border-color:#475569!important;
    background:#14171c!important;
    filter:saturate(.28)!important;
    opacity:.58!important;
}
.calendar-event.is-event-over .calendar-event-main{
    background:#14171c!important;
}
.calendar-event.is-event-over:hover,
.calendar-event.is-event-over:active{
    opacity:.74!important;
    background:#1a1d22!important;
}
@keyframes rcm-event-card-soon{
    0%,49%{box-shadow:0 0 0 1px rgba(250,204,21,.65)}
    50%,100%{box-shadow:0 0 12px 2px rgba(250,204,21,.22)}
}
@keyframes rcm-event-card-live-blink{
    0%,49%{box-shadow:0 0 13px 2px rgba(34,197,94,.38)}
    50%,100%{box-shadow:0 0 2px 1px rgba(34,197,94,.08)}
}

/* VIP-only synthetic temporal test Event. It never enters the database. */
.calendar-event.is-vip-temporal-test{
    outline:1px dashed #a855f7!important;
    outline-offset:-4px!important;
}
.calendar-vip-temporal-test-controls{
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    gap:4px!important;
    margin:2px 0 3px!important;
    padding:4px 5px!important;
    border:1px solid #6b21a8!important;
    border-radius:7px!important;
    background:#1c1027!important;
    font-size:9px!important;
    line-height:1!important;
}
.calendar-vip-test-label{
    padding:3px 5px!important;
    border-radius:5px!important;
    background:#6b21a8!important;
    color:#f3e8ff!important;
    font-weight:950!important;
    letter-spacing:.4px!important;
}
.calendar-vip-temporal-test-controls label{
    display:inline-flex!important;
    align-items:center!important;
    gap:3px!important;
    color:#e9d5ff!important;
    font-weight:850!important;
}
.calendar-vip-temporal-test-controls input[type="time"]{
    width:92px!important;
    min-width:92px!important;
    padding:2px 3px!important;
    border:1px solid #7e22ce!important;
    border-radius:5px!important;
    background:#09050d!important;
    color:#f5d0fe!important;
    font-size:9px!important;
    font-weight:800!important;
}
.calendar-vip-temporal-test-controls button{
    min-height:22px!important;
    padding:2px 6px!important;
    border:1px solid #7e22ce!important;
    border-radius:5px!important;
    background:#3b0764!important;
    color:#f3e8ff!important;
    font-size:8px!important;
    font-weight:900!important;
    cursor:pointer!important;
}
.calendar-vip-temporal-test-controls button:hover,
.calendar-vip-temporal-test-controls button:active{background:#581c87!important}

.calendar-vip-temporal-test-controls .calendar-vip-temporal-hold{
    min-width:70px!important;
    user-select:none!important;
    -webkit-user-select:none!important;
    touch-action:none!important;
    border-color:#c084fc!important;
    background:#581c87!important;
}
.calendar-vip-temporal-test-controls .calendar-vip-temporal-hold.is-held{
    border-color:#f0abfc!important;
    background:#86198f!important;
    color:#fff!important;
    box-shadow:0 0 10px rgba(217,70,239,.55)!important;
}

@media(max-width:420px){
    .calendar-vip-temporal-test-controls{gap:3px!important;padding:4px!important}
    .calendar-vip-temporal-test-controls input[type="time"]{width:84px!important;min-width:84px!important;font-size:8px!important}
}

@media(prefers-reduced-motion:reduce){
    .calendar-event.is-event-starting-soon,
    .calendar-event.is-event-ongoing{animation:none!important}
}

/* RCM_APP_28.1.3.32 — one-shot next-day reminder preview for VIP temporal testing. */
.calendar-vip-temporal-test-controls .calendar-vip-temporal-alert-test{
    border-color:#38bdf8!important;
    background:#0c4a6e!important;
    color:#e0f2fe!important;
    min-width:104px!important;
}
.calendar-vip-temporal-test-controls .calendar-vip-temporal-alert-test:hover,
.calendar-vip-temporal-test-controls .calendar-vip-temporal-alert-test:active{background:#075985!important}

/* RCM_APP_28.8.20.20 (Luis, Oct-8): bell + status over the start time, beside the date tile; the special notice line. */
.rcm-ev-when{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;min-width:0;flex:1 1 auto}
.rcm-ev-special{min-width:0;overflow:hidden;color:#fde047;font-size:12px;font-weight:900;line-height:1.15;cursor:pointer}
.rcm-ev-special .rcm-card-marquee{display:block}
.rcm-ev-special .rcm-card-marquee-copy::after{content:"\2022";margin-left:14px}   /* 28.8.22.21: a special notice always rolls (even a short one), a dot between the repeats so it is never a blank strip */
.rcm-ev-when .calendar-event-time{flex:none!important;align-self:flex-start!important;margin:0!important;text-align:left!important;position:static!important}
#calendar-today-button.has-today-alerts{border-color:#facc15!important;box-shadow:0 0 0 2px #facc15,0 0 10px rgba(250,204,21,.55)!important}   /* 28.8.21.3: you have alerts today */
