.event-calendar{background:#f8fafb;color:#102d47;border-radius:1.25rem;overflow:hidden;margin:2.5rem 0 3.5rem;border:1px solid #c8d6df;box-shadow:0 14px 40px #0002}
.calendar-toolbar{display:flex;align-items:center;gap:.75rem 1rem;flex-wrap:wrap;padding:1.4rem}
.calendar-month-nav{display:flex;align-items:center;gap:.7rem;flex:1}
.calendar-month-nav h3{font-size:1.5rem;margin:0;min-width:12rem;text-align:center}
.calendar-month-nav h3::first-letter,.calendar-agenda-heading h4::first-letter{text-transform:uppercase}
.event-calendar button,.event-calendar select,.event-calendar input{font:inherit;color:inherit}
.calendar-toolbar button,.calendar-toolbar input,.calendar-toolbar select{min-height:44px;border:1px solid #bbcdd9;background:white;border-radius:.5rem;padding:.5rem .75rem}
.calendar-month-nav button{min-width:44px;font-size:1.6rem;cursor:pointer}
.calendar-toolbar button:disabled{opacity:.4;cursor:default}
.calendar-today{font-weight:700;cursor:pointer}
.calendar-filter,.calendar-jump{display:grid;gap:.25rem;font-size:.76rem;font-weight:700}
.calendar-jump{max-width:11rem}
.calendar-legend{display:flex;flex-wrap:wrap;gap:.4rem;padding:0 1.4rem 1.2rem;font-size:.72rem}
.calendar-legend>span{padding:.3rem .55rem;border-radius:.3rem;border-left:3px solid var(--sport-line,#758799);background:var(--sport-bg,#e6edf2)}
.sport-blue{--sport-bg:#dceeff;--sport-line:#2278bb}.sport-yellow{--sport-bg:#fff0bd;--sport-line:#947000}.sport-green{--sport-bg:#d9f1e4;--sport-line:#27834f}.sport-coral{--sport-bg:#ffe1da;--sport-line:#b84e34}.sport-navy{--sport-bg:#d7e1f0;--sport-line:#274870}.sport-lilac{--sport-bg:#ece0f8;--sport-line:#8855ae}.sport-orange{--sport-bg:#ffe4c7;--sport-line:#ba671a}.sport-teal{--sport-bg:#d5f1ef;--sport-line:#167e79}.sport-slate{--sport-bg:#e5eaf0;--sport-line:#677787}
.calendar-legend .calendar-today-key{background:#ffda56;border-color:#8d6a00;margin-left:auto}
.calendar-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.85rem}
.calendar-table th{padding:.7rem .2rem;background:#102d47;color:#fff;text-align:center;font-weight:700}
.calendar-table td{border:1px solid #d5dfe6;vertical-align:top;height:7.5rem;padding:.3rem;overflow-wrap:anywhere;background:#fff}
.calendar-table td.is-outside{background:#edf1f4;color:#8697a5}
.calendar-table td.is-today{background:#fff7d7;box-shadow:inset 0 0 0 2px #ffda56}
.calendar-table td.is-selected{box-shadow:inset 0 0 0 2px #102d47}
.calendar-day-number{border:0;background:transparent;font-weight:700;display:grid;place-items:center;min-width:34px;min-height:34px;max-width:100%;border-radius:50%;margin-bottom:.2rem;padding:0}
button.calendar-day-number{cursor:pointer}.is-today .calendar-day-number{background:#ffda56;color:#102d47}
.calendar-entry{display:flex;flex-direction:column;gap:.12rem;background:var(--sport-bg);border-left:3px solid var(--sport-line);color:#102d47;text-decoration:none;border-radius:.3rem;margin:.25rem 0;padding:.3rem;min-height:48px;font-size:.74rem;line-height:1.25}
.calendar-entry img{width:100%;height:48px;object-fit:cover;border-radius:.15rem}
.calendar-entry strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-weight:700}
.calendar-entry-time{font-size:.68rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-more{border:0;background:transparent;text-decoration:underline;font-weight:700;font-size:.73rem!important;min-height:44px;padding:.1rem;cursor:pointer}
.calendar-agenda{padding:1.4rem;border-top:1px solid #d5dfe6}
.calendar-agenda-heading{display:flex;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.calendar-agenda-heading h4{font-size:1.2rem;margin:0}
.calendar-agenda-heading button{border:0;background:none;text-decoration:underline;min-height:44px;cursor:pointer}
.calendar-status{font-size:.86rem;color:#526c80;margin:.7rem 0}
.calendar-agenda-list{display:grid;gap:.6rem;grid-template-columns:repeat(2,minmax(0,1fr))}
.calendar-agenda-event{display:flex;align-items:center;gap:.8rem;padding:.85rem;background:var(--sport-bg);border-left:4px solid var(--sport-line);border-radius:.4rem;color:#102d47;text-decoration:none}
.calendar-agenda-event>span:first-of-type{flex:1;min-width:0}.calendar-agenda-event>span:last-child{flex:0}
.calendar-agenda-event img{width:64px;height:64px;object-fit:cover;border-radius:.25rem;flex-shrink:0}
.calendar-agenda-event strong,.calendar-agenda-event small,.calendar-agenda-event span>span{display:block;overflow-wrap:anywhere}
.calendar-agenda-event small{font-size:.73rem;line-height:1.5}.calendar-agenda-event strong{font-size:1rem;line-height:1.35;margin:.25rem 0}.calendar-agenda-event span>span{font-size:.8rem}
.event-calendar :is(a,button,input,select):focus-visible,.event-card:focus-visible{outline:3px solid #b66800;outline-offset:2px;position:relative;z-index:1}
.calendar-entry:hover,.calendar-agenda-event:hover{filter:brightness(.96)}
a.event-card{color:inherit;text-decoration:none;transition:background .15s}a.event-card:hover{background:#ffffff29}a.event-card-featured:hover{background:#ffe480}
.event-introductions-title{font-size:1.4rem;margin:0 0 1.2rem}.event-location{font-weight:700;color:#102d47;padding:1rem;background:#edf3f6;border-radius:.5rem}
.event-calendar-note{color:#526c80;font-size:.8rem}.calendar-deep-error{color:#ffdf70}
@media(max-width:760px){.calendar-toolbar{padding:1rem;gap:.75rem}.calendar-month-nav{flex-basis:calc(100% - 90px)}.calendar-month-nav h3{min-width:0;flex:1;font-size:1.25rem}.calendar-filter{flex:1;min-width:0}.calendar-jump{max-width:48%}.calendar-legend{padding:0 1rem 1rem}.calendar-legend .calendar-today-key{margin-left:0}.calendar-agenda-list{grid-template-columns:1fr}.calendar-agenda{padding:1rem}.calendar-table td{height:5.5rem;padding:.12rem}.calendar-entry{padding:.18rem;border-left-width:2px;font-size:.65rem}.calendar-entry img{height:28px}.calendar-entry-time{font-size:.59rem}.calendar-day-number{min-width:28px;min-height:36px;font-size:.8rem!important}.calendar-agenda-heading h4{font-size:1.05rem}.event-calendar{border-radius:.75rem}.calendar-more{font-size:.65rem!important}}
@media(prefers-reduced-motion:reduce){a.event-card{transition:none}}
