.calendar-page{max-width:1380px;min-height:calc(100vh - 70px);margin:0 auto;padding:42px 28px 60px;color:#f5eff8}
.calendar-page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:26px}
.calendar-page-heading .eyebrow{font-size:11px;letter-spacing:.14em;color:#bd79e9}
.calendar-page-heading h1{margin:9px 0 7px;color:#f5eff8;font:600 36px var(--serif)}
.calendar-page-heading h1 em{color:#cb98ef;font-style:normal}
.calendar-page-heading p{margin:0;color:#b5adbb;font-size:15px;line-height:1.6}
.calendar-controls{display:flex;align-items:center;gap:8px;flex:none}
.calendar-controls button{min-height:42px;padding:0 15px;border:1px solid #403248;border-radius:8px;background:#141019;color:#e5dbe9;font-size:14px;font-weight:600}
.calendar-controls button:hover{border-color:#a15bc6;background:#21172a}
.calendar-controls button:first-child,.calendar-controls button:last-child{width:44px;padding:0;font-size:20px}
.calendar-panel,.calendar-day-panel{padding:22px;border:1px solid #34263f;border-radius:14px;background:linear-gradient(145deg,#15111b,#0d0b11 74%);box-shadow:0 14px 40px #0004}
.calendar-month-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.calendar-month-heading h2{margin:0;color:#f5eff8;font:600 25px var(--serif);text-transform:capitalize}
.calendar-month-heading>span{color:#8d8294;font-size:10px;font-weight:700;letter-spacing:.12em}
.calendar-feedback{min-height:21px;margin:13px 0;color:#b4a8ba;font-size:13px;line-height:1.5}
.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(78px,1fr));gap:7px;min-width:590px}
.calendar-panel{overflow-x:auto;scrollbar-color:#4b3858 #130f18}
.calendar-weekdays{margin-bottom:7px}
.calendar-weekdays span{padding:8px 4px;color:#93889b;font-size:11px;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:.08em}
.calendar-day-cell{position:relative;display:flex;min-width:0;aspect-ratio:1/1;flex-direction:column;align-items:stretch;gap:4px;overflow:hidden;padding:8px;border:1px solid #302638;border-radius:9px;background:#0e0c12;color:#ded6e3;text-align:left;transition:border-color .15s,background .15s,box-shadow .15s}
.calendar-day-cell:hover:not(:disabled){border-color:#8752a4;background:#17111e}
.calendar-day-cell.is-outside{visibility:hidden}
.calendar-day-cell.is-today .calendar-day-number{color:#e5b7ff}
.calendar-day-cell.is-selected{border-color:#a354d0;background:linear-gradient(145deg,#291637,#130e18);box-shadow:inset 0 0 0 1px #9b51c45c}
.calendar-day-number{align-self:flex-start;display:grid;width:25px;height:25px;place-items:center;border-radius:50%;color:#cfc4d5;font-size:12px;font-weight:700}
.calendar-day-cell.is-today .calendar-day-number{background:#4a2560;color:#fff}
.calendar-cell-movie{display:flex;min-width:0;align-items:center;gap:5px;color:#c9bdcf;font-size:10px;line-height:1.25}
.calendar-cell-movie img,.calendar-cell-poster-placeholder{display:grid;flex:none;width:19px;height:27px;place-items:center;border-radius:3px;background:#24192d;color:#bc8bd6;object-fit:cover}
.calendar-cell-movie>span:last-child{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.calendar-cell-more{padding-left:24px;color:#c895e5;font-size:9px;font-weight:700}
.calendar-attribution{margin:15px 0 0;color:#8e8593;font-size:11px;line-height:1.55}
.calendar-attribution a,.calendar-movie-card a{color:#cb91ed}
.calendar-attribution a:hover,.calendar-movie-card a:hover{text-decoration:underline}
.calendar-day-panel{margin-top:20px}
.calendar-day-heading .eyebrow{font-size:10px;letter-spacing:.13em;color:#bd79e9}
.calendar-day-heading h2{margin:6px 0 14px;color:#f5eff8;font:600 23px var(--serif);text-transform:capitalize}
.calendar-day-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.calendar-movie-card{display:flex;min-width:0;gap:14px;padding:12px;border:1px solid #302638;border-radius:10px;background:#0f0d13}
.calendar-movie-card>img,.calendar-movie-placeholder{display:grid;flex:none;width:76px;height:112px;place-items:center;border-radius:6px;background:#24192d;color:#bc8bd6;object-fit:cover}
.calendar-movie-card>div:last-child{align-self:center;min-width:0}
.calendar-movie-kind{color:#ba84d8;font-size:9px;font-weight:700;letter-spacing:.1em}
.calendar-movie-card h3{margin:6px 0;color:#eee7f1;font:600 16px/1.35 var(--serif)}
.calendar-movie-card p{margin:0 0 8px;color:#a99fb0;font-size:12px;text-transform:capitalize}
.calendar-movie-card a{font-size:12px;font-weight:600}
.calendar-empty-day{grid-column:1/-1;margin:0;padding:20px;border:1px dashed #3a2b45;border-radius:9px;color:#a99fb0;font-size:13px;text-align:center}
@media(max-width:760px){.calendar-page{min-height:0;padding:28px 15px 40px}.calendar-page-heading{align-items:flex-start;flex-direction:column;margin-bottom:20px}.calendar-page-heading h1{font-size:30px}.calendar-page-heading p{font-size:14px}.calendar-controls{width:100%}.calendar-controls button:nth-child(2){flex:1}.calendar-panel,.calendar-day-panel{padding:15px}.calendar-month-heading h2{font-size:22px}.calendar-day-list{grid-template-columns:1fr}}
@media(max-width:520px){.calendar-page{padding:22px 10px 32px}.calendar-controls button{min-height:40px}.calendar-panel,.calendar-day-panel{padding:12px}.calendar-weekdays,.calendar-grid{grid-template-columns:repeat(7,minmax(70px,1fr));gap:5px;min-width:520px}.calendar-day-cell{padding:6px}.calendar-day-number{width:23px;height:23px;font-size:11px}.calendar-cell-movie{font-size:9px}.calendar-month-heading>span{font-size:8px}.calendar-feedback{font-size:12px}}
.calendar-movie-card{width:100%;text-align:left;cursor:pointer;font:inherit;color:inherit;transition:border-color .18s,transform .18s}
.calendar-movie-card:hover{border-color:#a15bc6;transform:translateY(-1px)}
.calendar-movie-copy{display:grid;align-content:center;gap:6px;min-width:0}
.calendar-movie-copy strong{color:#eee7f1;font:600 16px/1.35 var(--serif)}
.calendar-movie-date{color:#a99fb0;font-size:12px;text-transform:capitalize}
.calendar-movie-open{color:#cb91ed;font-size:12px;font-weight:600}
