.event-calendar{margin:1.3rem 0 2rem;padding:clamp(.85rem,2.5vw,1.6rem);border:1px solid #49395e;border-radius:22px;background:radial-gradient(ellipse at top left,#42286650,transparent 65%),#15121e;scroll-margin-top:90px}.calendar-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.calendar-heading h2{font-size:clamp(1.15rem,2.8vw,1.55rem);margin:.35rem 0}.calendar-controls{display:flex;align-items:center;gap:.4rem}.calendar-controls button,.calendar-controls input{font:600 .9rem 'Instrument Sans',sans-serif;background:#282032;border:1px solid #5c496e;color:#f5eaff;min-height:42px;border-radius:10px}.calendar-controls button{min-width:42px;cursor:pointer;padding:.45rem .6rem}.calendar-controls input{width:175px;padding:.45rem .6rem;color-scheme:dark}.calendar-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.calendar-help{font-size:.9rem;color:#bfb1cf;margin:.7rem 0}.calendar-types{display:flex;flex-wrap:wrap;gap:.4rem;margin:1rem 0 1.25rem}.calendar-types button{border:1px solid #4d3c60;background:#241c30;color:#d9cbe8;padding:.5rem .7rem;border-radius:10px;font:600 .82rem 'Instrument Sans',sans-serif;cursor:pointer;min-height:40px}.calendar-types button[aria-pressed=true]{background:#c3a3ff;color:#20102e;border-color:#c3a3ff}.calendar-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(250px,.85fr);gap:1.3rem;align-items:start}.calendar-month-panel{min-width:0}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-weekdays{padding:.55rem 0;color:#b9a8cc;text-align:center;font-size:.8rem}.calendar-weekdays abbr{text-decoration:none;border:0}.calendar-day{position:relative;display:flex;align-items:center;flex-direction:column;justify-content:flex-start;gap:.35rem;min-width:0;min-height:73px;padding:.6rem .15rem .35rem;border:1px solid #3c304d;border-radius:9px;background:#201928;color:#e6ddef;font:inherit;cursor:pointer}.calendar-day:hover{background:#372648;border-color:#ad83db}.calendar-day.outside{color:#9a8bb0;background:#15111d;border-color:transparent}.calendar-day-number{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;font-size:.88rem;font-weight:600}.calendar-day[aria-current=date] .calendar-day-number{background:#d6ff94;color:#203510}.calendar-day.is-selected{outline:2px solid #d6ff94;outline-offset:-2px}.calendar-day.in-range{background:#39274c;border-color:#75528f}.calendar-day.range-start,.calendar-day.range-end{background:#523768;border-color:#cda0f5;color:#fff}.calendar-range-label{font-size:.61rem;font-weight:700;color:#f0cfff;white-space:nowrap}.calendar-range-line{width:65%;height:4px;border-radius:4px;background:#be8bea;margin-top:.45rem}.calendar-day-markers{display:flex;align-items:center;justify-content:center;gap:3px;min-height:14px}.calendar-dot{display:block;width:5px;height:5px;border-radius:50%;background:var(--event-color,#ab96c1)}.type-progression{--event-color:#bf9aff}.type-missions{--event-color:#7edddb}.type-double{--event-color:#f7cb6b}.type-season-pass{--event-color:#ef9bc3}.type-mirror{--event-color:#b4e38b}.calendar-day-count{font-size:.62rem;color:#b8a6c9;margin-left:2px}.calendar-key{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;color:#ad9dbd;font-size:.75rem;margin:.75rem 0 0}.calendar-key span{display:flex;align-items:center;gap:.3rem}.calendar-key .key-today{width:7px;height:7px;background:#d6ff94;border-radius:50%}#calendar-summary{font-size:.8rem;line-height:1.5;color:#d5c4e7;min-height:2.4em;margin:.8rem 0 0}.calendar-agenda-heading{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.4rem 0 .7rem;border-bottom:1px solid #42324f;margin-bottom:.6rem}.calendar-agenda-heading h3{font-size:1rem;margin:0}.calendar-agenda-heading span{font-size:.74rem;color:#b6a4c9;white-space:nowrap}#calendar-agenda{display:grid;gap:.5rem}.calendar-agenda-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.65rem;border:1px solid #42334e;border-left:3px solid var(--event-color,#ab96c1);border-radius:12px;background:#221a2d;color:#eee4f9;text-align:left;cursor:pointer;font:inherit;transition:background .15s,border-color .15s}.calendar-agenda-item:hover,.calendar-agenda-item[aria-pressed=true]{background:#342344;border-color:#b893df}.calendar-agenda-image{width:58px;height:70px;object-fit:cover;border-radius:7px;flex-shrink:0}.calendar-agenda-copy{display:grid;gap:.2rem;min-width:0}.calendar-agenda-meta{font-size:.63rem;text-transform:uppercase;letter-spacing:.06em;color:var(--event-color,#c0abd6)}.calendar-agenda-copy strong{font-size:.9rem;line-height:1.35;overflow-wrap:anywhere}.calendar-agenda-range{font-size:.78rem;color:#cdbddd}.calendar-badge{font-size:.69rem;color:#bea9d1;line-height:1.5}.calendar-badge.live{color:#beed99}.calendar-badge.soon{color:#f3cd81}.calendar-agenda-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.65rem}.calendar-agenda-actions button{border:1px solid #584168;background:transparent;color:#dac3ee;font:600 .8rem 'Instrument Sans',sans-serif;padding:.55rem .7rem;border-radius:9px;cursor:pointer;min-height:40px}.calendar-empty{display:grid;justify-items:center;text-align:center;border:1px dashed #5d456f;border-radius:12px;padding:1.2rem;color:#beabce;font-size:.85rem}.calendar-empty>span{font-size:1.6rem;color:#c4a0ee}.calendar-empty p{margin:.45rem 0}.calendar-empty a{color:#d6ff94;text-decoration:none;margin-top:.3rem}#calendar-detail{position:relative;display:grid;grid-template-columns:150px minmax(0,1fr);gap:1.2rem;border:1px solid #745389;border-radius:16px;background:#281d33;padding:1rem;margin-top:1.2rem;scroll-margin-top:100px}#calendar-detail[hidden],[data-cal-reset][hidden],[data-cal-more][hidden]{display:none}.calendar-detail-image{width:150px;height:150px;object-fit:cover;border-radius:10px}.calendar-detail-copy{padding-right:1.3rem}.calendar-detail-copy h3{font-size:1.2rem;line-height:1.4;margin:.35rem 0}.calendar-detail-copy p{color:#cfbddc;font-size:.9rem;margin:.5rem 0}.calendar-detail-close{position:absolute;top:.5rem;right:.5rem;border:0;background:#3e2b4d;color:#ead5fc;border-radius:50%;width:32px;height:32px;font-size:1.4rem;cursor:pointer}.calendar-facts{display:flex;flex-wrap:wrap;gap:1.3rem;margin:1rem 0}.calendar-facts dt{font-size:.7rem;color:#b8a1ca;margin-bottom:.2rem}.calendar-facts dd{margin:0;color:#eee0fc;font-size:.9rem;font-weight:600}.calendar-detail-copy .calendar-date-note{font-size:.78rem;color:#bfa5d1}.calendar-detail-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.9rem}.calendar-detail-actions a{font-size:.8rem}.event-calendar :is(button,input,a):focus-visible{outline:3px solid #d6ff94;outline-offset:3px}@media(max-width:820px){.calendar-layout{grid-template-columns:minmax(0,1fr)}#calendar-agenda{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-empty{grid-column:1/-1}.calendar-day{min-height:66px}}@media(max-width:520px){.calendar-controls{width:100%;justify-content:space-between;gap:.25rem}.calendar-controls input{width:160px;min-width:0}.calendar-controls button{min-width:36px}.calendar-heading{gap:.55rem}.calendar-types{gap:.3rem}.calendar-types button{font-size:.74rem;padding:.45rem .55rem}.calendar-day{min-height:62px;border-radius:7px}.calendar-days,.calendar-weekdays{gap:3px}.calendar-day-number{font-size:.82rem}.calendar-range-label{font-size:.56rem}#calendar-agenda{grid-template-columns:minmax(0,1fr)}.calendar-agenda-image{width:56px;height:56px}.calendar-agenda-item{gap:.8rem}.calendar-agenda-copy{grid-template-columns:1fr auto;width:100%;column-gap:.5rem}.calendar-agenda-copy strong,.calendar-agenda-meta{grid-column:1/-1}.calendar-agenda-range{grid-column:1}.calendar-agenda-copy .calendar-badge{grid-column:2}#calendar-detail{grid-template-columns:minmax(0,1fr)}.calendar-detail-image{width:100%;height:140px}.calendar-detail-copy{padding-right:0}.calendar-facts{gap:.8rem}.calendar-facts dd{font-size:.8rem}}@media(prefers-reduced-motion:reduce){.calendar-agenda-item{transition:none}}

.calendar-controls label{display:block;min-width:0}.calendar-controls input{max-width:100%}@media(max-width:520px){.calendar-controls label{flex:1}.calendar-controls input{width:100%}}

/* Each week shows named event intervals aligned with their calendar days. */
.calendar-layout{grid-template-columns:minmax(0,1fr)}
.calendar-week{border:1px solid #3d304b;border-radius:12px;overflow:hidden;margin-bottom:7px;background:#1c1625}
.calendar-week .calendar-days{gap:0;border-bottom:1px solid #3d304b}
.calendar-week .calendar-day{min-height:37px;padding:5px 0;border:0;border-right:1px solid #3d304b;border-radius:0;background:transparent}
.calendar-week .calendar-day.outside{opacity:.7}
.calendar-week .calendar-day.in-range{background:#4a315c}
.calendar-tracks{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px 3px;padding:5px 3px;min-height:27px;background:repeating-linear-gradient(to right,transparent 0,transparent calc(100% / 7 - 1px),#ffffff05 calc(100% / 7 - 1px),#ffffff05 calc(100% / 7))}
.calendar-segment{font:inherit;min-width:0;text-align:left;padding:7px 9px;border:1px solid color-mix(in srgb,var(--event-color),transparent 62%);border-left:3px solid var(--event-color);border-radius:8px;color:#f5edff;background:color-mix(in srgb,var(--event-color) 13%,#1e1728);cursor:pointer}
.calendar-segment:hover,.calendar-segment.selected{background:color-mix(in srgb,var(--event-color) 24%,#1e1728);outline:1px solid var(--event-color)}
.calendar-segment-name{display:block;font-size:.78rem;line-height:1.35;overflow-wrap:anywhere}
.calendar-segment-dates{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 6px;margin-top:4px;font-size:.66rem;line-height:1.35;color:var(--event-color)}
.calendar-week-empty{grid-column:1/-1;text-align:center;font-size:.66rem;color:#9987aa;padding:2px}
.calendar-agenda-panel{border-top:1px solid #49365b;padding-top:.55rem}
#calendar-agenda{grid-template-columns:repeat(3,minmax(0,1fr))}
.calendar-agenda-image,.calendar-detail-image{object-fit:contain;background:#17121f}
.calendar-agenda-item{align-items:flex-start}
.calendar-agenda-copy{width:auto;display:grid;grid-template-columns:1fr}
.type-tournament{--event-color:#ffc876}
@media(max-width:820px){#calendar-agenda{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.calendar-segment{padding:5px 4px}.calendar-segment-name{font-size:.65rem}.calendar-segment-dates{font-size:.59rem;gap:2px}.calendar-tracks{gap:4px 2px;padding:4px 2px}.calendar-week .calendar-day{min-height:35px}#calendar-agenda{grid-template-columns:1fr}.calendar-agenda-copy .calendar-badge,.calendar-agenda-copy .calendar-agenda-range{grid-column:1}.calendar-agenda-image{width:52px;height:60px}.calendar-week-empty{font-size:.61rem}}

.calendar-segment-name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.calendar-segment-dates>span{min-width:0;overflow-wrap:anywhere}

.calendar-tracks{align-items:start}.calendar-segment.short-segment{min-height:48px}.short-segment .calendar-segment-name{display:block;white-space:normal;font-size:.65rem}.calendar-boundaries{padding:2px 7px 7px}.calendar-boundaries p{font-size:.7rem;line-height:1.4;margin:.2rem 0;color:#d3c5e1}.calendar-badge.uncertain{color:#ffda92;background:#392b20}.calendar-segment-dates{min-height:14px}

.event-category-panel{margin:1rem 0 1.5rem;padding:1.2rem;border:1px solid #4b3b63;border-radius:18px;background:linear-gradient(120deg,#281d3c,#151321)}.event-category-panel h2{font-size:clamp(1.05rem,3vw,1.4rem);margin:0 0 .5rem}.event-category-panel p{font-size:.9rem;line-height:1.5;color:#c3b9d5;margin:0 0 1rem}.event-category-panel .calendar-types{margin-bottom:0}
