/* TopMoment premiere calendar: date selection, mini-posters and day sidebar */
.tm-calendar-main-layout {
    display:grid;
    grid-template-columns:minmax(0, 1.93fr) minmax(310px, .98fr);
    align-items:start;
    gap:16px;
    margin-bottom:18px;
}
.tm-calendar-main-layout .tm-calendar-panel {
    min-width:0;
    margin:0;
    padding:21px 19px 16px;
    background:linear-gradient(150deg,#111c30,#101723 70%);
}
.tm-calendar-main-layout .tm-calendar-toolbar {
    align-items:center;
    margin:0 0 13px;
    gap:10px;
}
.tm-calendar-main-layout .tm-calendar-toolbar h2 {
    margin:4px 0;
    font-size:clamp(25px,2.55vw,35px);
}
.tm-calendar-main-layout .tm-calendar-controls {gap:6px}
.tm-calendar-main-layout .tm-calendar-jump input {width:150px}
.tm-calendar-main-layout .tm-calendar-jump button {padding:0 10px}
.tm-calendar-help {
    margin:0 0 13px!important;
    font-size:12px!important;
    color:#99acc6!important;
}
.tm-calendar-main-layout .tm-calendar-grid {min-width:650px}
.tm-calendar-main-layout .tm-calendar-cell {
    position:relative;
    isolation:isolate;
    min-height:112px;
    padding:7px;
    transition:background .2s ease,box-shadow .2s ease;
}
.tm-calendar-main-layout .tm-calendar-cell--events {background:rgba(75,55,124,.1)}
.tm-calendar-main-layout .tm-calendar-cell--events:not(.tm-calendar-cell--today):hover {background:rgba(113,77,172,.20)}
.tm-calendar-main-layout .tm-calendar-cell.tm-calendar-cell--selected:not(.tm-calendar-cell--today) {
    box-shadow:inset 0 0 0 2px #a886f1;
    background:rgba(108,72,182,.18);
    z-index:2;
}
.tm-calendar-main-layout .tm-calendar-cell.tm-calendar-cell--today {
    box-shadow:inset 0 0 0 2px #e9b94c,0 0 16px rgba(234,184,69,.12);
    background:rgba(233,187,78,.10);
    z-index:3;
}
.tm-calendar-main-layout .tm-calendar-day {
    position:relative;
    z-index:3;
    width:26px;
    height:26px;
    font-size:12px;
}
.tm-calendar-day-button {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    display:block;
    padding:0;
    background:none;
    border:0;
    cursor:pointer;
    color:inherit;
    font:inherit;
    text-align:left;
}
.tm-calendar-day-button:focus-visible {
    outline:2px solid #d0b1ff;
    outline-offset:-4px;
    border-radius:3px;
}
.tm-calendar-day-button>.tm-calendar-day {position:absolute;left:8px;top:6px;z-index:6}
.tm-calendar-posters {
    position:absolute;
    inset:33px 5px 5px;
    display:block;
    overflow:hidden;
    border-radius:6px;
    background:linear-gradient(135deg,#25254b,#111d34);
    pointer-events:none;
}
.tm-calendar-poster {
    position:absolute;
    inset:0;
    opacity:0;
    visibility:hidden;
    transition:opacity .6s ease,visibility .6s ease;
}
.tm-calendar-poster.is-active {opacity:1;visibility:visible}
.tm-calendar-poster>img {display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.tm-calendar-poster::after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(to top,rgba(3,5,14,.87),rgba(7,9,24,.06) 70%);
}
.tm-calendar-poster-fallback {
    display:grid;
    place-items:center;
    width:100%;
    height:100%;
    padding:8px;
    font-size:10px;
    font-weight:800;
    text-align:center;
    line-height:1.3;
    color:#e3ddf7;
}
.tm-calendar-single-title,.tm-calendar-count {
    position:absolute;
    z-index:7;
    bottom:10px;
    left:10px;
    right:10px;
    font-size:10px;
    font-weight:850;
    line-height:1.25;
    color:#fff;
    text-shadow:0 1px 5px #060610;
    pointer-events:none;
}
.tm-calendar-single-title {
    overflow:hidden;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
}
.tm-calendar-count {
    right:auto;
    display:inline-block;
    width:max-content;
    max-width:calc(100% - 20px);
    border:1px solid rgba(194,162,242,.65);
    background:rgba(30,22,56,.9);
    border-radius:7px;
    padding:4px 6px;
    color:#f3ddff;
    white-space:nowrap;
}
.tm-calendar-main-layout .tm-calendar-note {margin:12px 0 0;font-size:11px}
.tm-calendar-spotlight {
    min-width:0;
    border:1px solid #303d54;
    border-radius:18px;
    background:radial-gradient(ellipse at 85% 0%,rgba(103,76,171,.10),transparent 60%),#131b2a;
    padding:19px;
    position:sticky;
    top:18px;
}
.tm-calendar-spotlight-heading {
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    align-items:baseline;
    column-gap:12px;
    row-gap:6px;
    border-bottom:1px solid #29394d;
    padding-bottom:14px;
    margin-bottom:14px;
}
.tm-calendar-spotlight-heading .tm-calendar-kicker {
    flex-basis:100%;
    color:#bba0ef;
}
.tm-calendar-spotlight-heading h2 {
    font-size:clamp(20px,2vw,24px);
    margin:0;
    line-height:1.2;
}
.tm-calendar-spotlight-count {
    font-size:11px;
    font-weight:800;
    color:#e8c57e;
    border:1px solid rgba(232,186,81,.25);
    background:rgba(232,186,81,.08);
    border-radius:999px;
    padding:4px 8px;
}
.tm-calendar-selected-list {
    max-height:540px;
    overflow-y:auto;
    scrollbar-width:thin;
    scrollbar-color:#54627c transparent;
}
.tm-calendar-selected-list [hidden],.tm-calendar-spotlight-empty[hidden]{display:none!important}
.tm-calendar-spotlight-card {
    display:grid;
    grid-template-columns:108px minmax(0,1fr);
    gap:12px;
    width:100%;
    border:1px solid #30374e;
    border-radius:13px;
    padding:9px;
    background:rgba(20,25,42,.89);
    margin-bottom:10px;
    transition:border-color .18s ease,background .18s ease;
}
.tm-calendar-spotlight-card:hover,.tm-calendar-spotlight-card:focus-visible {
    border-color:#aa88e6;
    background:rgba(43,36,75,.88);
}
.tm-calendar-spotlight-image {
    display:grid;
    place-items:center;
    height:120px;
    overflow:hidden;
    border-radius:8px;
    background:#202843;
    color:#c7afff;
    font-size:38px;
}
.tm-calendar-spotlight-image img {display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.tm-calendar-spotlight-body {display:flex;flex-direction:column;gap:7px;min-width:0}
.tm-calendar-spotlight-body small {font-size:10px;color:#b9a6e6;font-weight:800;line-height:1.3}
.tm-calendar-spotlight-body strong {font-size:14px;color:#fff;line-height:1.32;overflow-wrap:anywhere}
.tm-calendar-spotlight-excerpt {
    font-size:11px;
    line-height:1.45;
    color:#bac4d2;
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
}
.tm-calendar-spotlight-more {font-size:11px;color:#9fc7ff;font-weight:800;margin-top:auto}
.tm-calendar-spotlight-empty {
    text-align:center;
    padding:26px 8px 18px;
    color:#b0bdd0;
    font-size:13px;
    line-height:1.5;
}
.tm-calendar-spotlight-empty-icon{display:block;color:#bd9bed;font-size:32px;line-height:1.2}
.tm-calendar-spotlight-empty a{font-size:13px;font-weight:800;color:#a8c8ff}
.tm-calendar-spotlight-all {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    padding:13px 4px 0;
    font-size:12px;
    font-weight:800;
    color:#bca7f7;
    border-top:1px solid #2d3b52;
}
.tm-calendar-spotlight-all:hover {color:#e3cbff}
@media(max-width:1180px){
    .tm-calendar-main-layout {grid-template-columns:minmax(0,1fr) 300px;gap:12px}
    .tm-calendar-spotlight {padding:13px}
    .tm-calendar-spotlight-card{grid-template-columns:82px minmax(0,1fr);gap:9px}
    .tm-calendar-spotlight-image{height:104px}
}
@media(max-width:900px){
    .tm-calendar-main-layout {grid-template-columns:minmax(0,1fr)}
    .tm-calendar-main-layout .tm-calendar-grid{min-width:650px}
    .tm-calendar-spotlight {position:static}
    .tm-calendar-selected-list{max-height:none}
    .tm-calendar-spotlight-card {grid-template-columns:100px minmax(0,1fr)}
    .tm-calendar-spotlight-image{height:108px}
}
@media(max-width:590px){
    .tm-calendar-main-layout .tm-calendar-panel{padding:12px}
    .tm-calendar-main-layout .tm-calendar-grid{min-width:630px}
    .tm-calendar-spotlight-card {grid-template-columns:90px minmax(0,1fr)}
    .tm-calendar-spotlight-heading h2{font-size:21px}
    .tm-calendar-spotlight-body strong{font-size:13px}
    .tm-calendar-spotlight-count{font-size:10px}
}
@media(prefers-reduced-motion:reduce){
    .tm-calendar-poster,.tm-calendar-spotlight-card{transition:none}
}
