/* V27.5.74.41 - canonical compact two-row event-card layout. */
.calendar-event{
    position:relative!important;
    margin:6px 0!important;
    padding:7px 8px!important;
    border:2px solid #334155!important;
    border-radius:11px!important;
    background:#020305!important;
    color:inherit!important;
}
.calendar-event:hover,.calendar-event:active{background:#070b11!important;border-color:#64748b!important}
.calendar-event-main{display:flex!important;flex-direction:column!important;gap:3px!important;background:#020305!important}
.calendar-event-title-line{font-size:18px!important;line-height:1.02!important;margin:0!important;color:#f59e0b!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.calendar-venue-link{margin-top:1px!important;padding:2px 7px!important;border-radius:6px!important;font-size:13px!important;line-height:1.02!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}

/* Date on the left. Right side is exactly two rows:
   performer/band, then time + reminder. */
.calendar-event-bottom{
    min-width:0!important;
    display:grid!important;
    grid-template-columns:50px minmax(0,1fr)!important;
    gap:6px!important;
    align-items:stretch!important;
    padding:4px 5px!important;
    border-radius:7px!important;
}
.calendar-event-links{
    width:50px!important;
    min-width:50px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
}
.calendar-event-link,.calendar-event-link-placeholder{
    width:48px!important;
    height:48px!important;
    min-width:48px!important;
    min-height:48px!important;
    max-width:48px!important;
    max-height:48px!important;
    aspect-ratio:auto!important;
}
.calendar-event-link{padding:2px!important;border-width:2px!important;border-radius:9px!important}
.calendar-event-link-month{font-size:10px!important;line-height:.95!important}
.calendar-event-link-day{margin-top:1px!important;font-size:21px!important;line-height:.88!important}

.calendar-event-details{
    min-width:0!important;
    display:grid!important;
    grid-template-rows:minmax(20px,auto) minmax(24px,auto)!important;
    gap:3px!important;
    align-content:center!important;
}
.calendar-event-performer-row{
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    overflow:hidden!important;
}
.calendar-band-list{
    width:100%!important;
    min-width:0!important;
    display:flex!important;
    gap:3px!important;
    padding:0!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scrollbar-width:none!important;
}
.calendar-band-list::-webkit-scrollbar{display:none!important}
.calendar-band-placeholder{display:block!important;min-height:20px!important}
.calendar-performer-link{
    width:auto!important;
    max-width:100%!important;
    flex:0 0 auto!important;
    padding:2px 5px!important;
    border-radius:6px!important;
    font-size:12px!important;
    line-height:1!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
}

.calendar-event-meta-row{
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:8px!important;
}
.calendar-event-alert-stack{
    flex:0 0 auto!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:3px!important;
}
.calendar-event-time{
    min-width:0!important;
    flex:1 1 auto!important;
    margin:0!important;
    font-size:11px!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;
    right:auto!important;
    bottom:auto!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{padding:6px 7px!important;margin:5px 0!important}
    .calendar-event-title-line{font-size:17px!important}
    .calendar-venue-link{font-size:12px!important;padding:2px 6px!important}
    .calendar-event-bottom{grid-template-columns:46px minmax(0,1fr)!important;gap:5px!important;padding:3px 4px!important}
    .calendar-event-links{width:46px!important;min-width:46px!important}
    .calendar-event-link,.calendar-event-link-placeholder{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;max-width:44px!important;max-height:44px!important}
    .calendar-event-link-month{font-size:9px!important}
    .calendar-event-link-day{font-size:20px!important}
    .calendar-event-details{grid-template-rows:minmax(18px,auto) minmax(22px,auto)!important;gap:2px!important}
    .calendar-performer-link{font-size:11px!important;padding:2px 4px!important}
    .calendar-event-time{font-size:10px!important}
    .calendar-event-reminder{min-width:27px!important;min-height:22px!important;padding:1px 4px!important;font-size:9px!important}
}

/* V27.7.10.1 VIP card controls */
.calendar-event-title-admin-row{display:flex!important;align-items:center!important;gap:6px!important;min-width:0!important}
.calendar-event-title-admin-row .calendar-event-title-line{flex:1 1 auto!important;min-width:0!important}
.calendar-vip-card-tools{display:flex!important;align-items:center!important;gap:4px!important;flex:0 0 auto!important}
.calendar-vip-card-tools form{margin:0!important}
.calendar-vip-card-edit,.calendar-vip-card-delete{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:24px!important;padding:3px 6px!important;border:1px solid #475569!important;border-radius:6px!important;background:#172033!important;color:#93c5fd!important;font-size:9px!important;font-weight:900!important;line-height:1!important;text-decoration:none!important;cursor:pointer!important}
.calendar-vip-card-delete{color:#fca5a5!important;border-color:#7f1d1d!important;background:#2a1116!important}
@media(max-width:600px){.calendar-vip-card-tools{gap:3px!important}.calendar-vip-card-edit,.calendar-vip-card-delete{min-height:22px!important;padding:2px 5px!important;font-size:8px!important}}

/* RCM_APP_28.1.3.28 — chronological event lifecycle decoration. */
.calendar-event-status{
    flex:0 0 auto!important;
    min-width:72px!important;
    padding:3px 7px!important;
    border:1px solid #64748b!important;
    border-radius:999px!important;
    background:#111827!important;
    color:#e2e8f0!important;
    font-size:9px!important;
    font-weight:950!important;
    line-height:1!important;
    text-align:center!important;
    letter-spacing:.55px!important;
    white-space:nowrap!important;
}
.calendar-event-status[hidden]{display:none!important}
.calendar-event-status[data-status="starting-soon"]{
    border-color:#facc15!important;
    background:#422006!important;
    color:#fde047!important;
    box-shadow:0 0 8px rgba(250,204,21,.72)!important;
    animation:rcm-event-soon-blink .72s steps(2,end) infinite;
}
.calendar-event-status[data-status="ongoing"]{
    border-color:#22c55e!important;
    background:#052e16!important;
    color:#86efac!important;
    box-shadow:0 0 9px rgba(34,197,94,.62)!important;
    animation:rcm-event-live-red-green 2s steps(1,end) infinite;
}
.calendar-event-status[data-status="over"]{
    border-color:#64748b!important;
    background:#1f2937!important;
    color:#94a3b8!important;
    box-shadow:none!important;
}
.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;
    box-shadow:0 0 12px 2px rgba(34,197,94,.22)!important;
}
.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-soon-blink{
    0%,49%{opacity:1}
    50%,100%{opacity:.30}
}
@keyframes rcm-event-live-red-green{
    0%,49.999%{border-color:#22c55e;background:#052e16;color:#86efac;box-shadow:0 0 11px rgba(34,197,94,.78)}
    50%,100%{border-color:#ef4444;background:#450a0a;color:#fecaca;box-shadow:0 0 12px rgba(239,68,68,.78)}
}
@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)}
}

/* 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-event-status{min-width:64px!important;padding:2px 5px!important;font-size:8px!important}
    .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,
    .calendar-event-status[data-status="starting-soon"],
    .calendar-event-status[data-status="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}
