/* Sports Calendar — front end. Everything is scoped under .aqcal so theme table styles can't leak in. */
.aqcal {
	--aq-title-bg: #00b0f0;
	--aq-title-color: #0b0b0b;
	--aq-head-bg: #bfbfbf;
	--aq-head-color: #111;
	--aq-empty: #808080;
	--aq-border: #1f1f1f;
	--aq-weekend: #e00000;
	--aq-notes-bg: #b8cce4;
	--aq-revised-bg: #d8e4bc;
	--aq-revised-color: #e00000;
	--aq-month-bg: #ffffff;
	--aq-accent: #00b0f0;
	--aq-font: inherit;
	--aq-cell: #fff;
	--aq-ink: #111;
	position: relative;
	font-family: var(--aq-font);
	color: var(--aq-ink);
	font-size: 13px;
	line-height: 1.35;
	margin: 0 0 2em;
	max-width: 100%;
	box-sizing: border-box;
}
.aqcal *, .aqcal *::before, .aqcal *::after { box-sizing: border-box; }
.aqcal[data-aqcal]:empty, .aqcal.is-loading:not([data-aqcal-ready]) { min-height: 320px; background: linear-gradient(90deg, #f3f5f7 25%, #e9edf1 37%, #f3f5f7 63%) 0 0 / 400% 100%; animation: aqcal-shimmer 1.4s ease infinite; border-radius: 6px; }
@keyframes aqcal-shimmer { 0% { background-position: 100% 0; } 100% { background-position: 0 0; } }

.aqcal.is-loading .aqcal__body, .aqcal-mini.is-loading .aqcal-mini__grid { opacity: .45; transition: opacity .15s; pointer-events: none; }

/* --- header ---------------------------------------------------------- */
.aqcal__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: .6rem; flex-wrap: wrap; }
.aqcal__org { display: flex; align-items: center; gap: .6rem; }
.aqcal__org strong { display: block; font-size: 1.05em; letter-spacing: .02em; }
.aqcal__org small { display: block; font-size: .78em; opacity: .75; letter-spacing: .03em; }
.aqcal__logo { width: 44px; height: 44px; object-fit: contain; }
.aqcal__revised { background: var(--aq-revised-bg); color: var(--aq-revised-color); font-style: italic; font-weight: 700; padding: .25em 1em; border: 1px solid var(--aq-border); }

.aqcal__titlebar { position: relative; background: var(--aq-title-bg); color: var(--aq-title-color); display: flex; align-items: center; justify-content: center; gap: .75rem; padding: .35rem 7.5rem; min-height: 2.4rem; flex-wrap: wrap; }
.aqcal .aqcal__title { margin: 0; padding: 0; font: 700 1.45em/1.2 var(--aq-font); color: inherit; letter-spacing: .02em; text-align: center; text-transform: none; border: 0; }
.aqcal__years { position: absolute; right: .4rem; top: 50%; transform: translateY(-50%); display: flex; gap: 2px; background: rgba(255,255,255,.28); border-radius: 999px; padding: 2px; }
.aqcal .aqcal__year { all: unset; cursor: pointer; font: 600 .85em/1 var(--aq-font); padding: .45em .8em; border-radius: 999px; color: inherit; transition: background .15s, color .15s; }
.aqcal .aqcal__year:hover { background: rgba(255,255,255,.45); }
.aqcal .aqcal__year:focus-visible { outline: 2px solid currentColor; outline-offset: 1px; }
.aqcal .aqcal__year.is-active { background: #fff; color: #0b3b4f; box-shadow: 0 1px 2px rgba(0,0,0,.15); }

/* year dropdown inside the title */
.aqcal__ypick { position: relative; display: inline-block; }
.aqcal .aqcal__ybtn { all: unset; cursor: pointer; display: inline-flex; align-items: center; gap: .25em; padding: .05em .3em .05em .35em; margin: 0 -.05em; border-radius: 6px; font: inherit; color: inherit; letter-spacing: inherit; background: rgba(255,255,255,.22); box-shadow: inset 0 0 0 1px rgba(0,0,0,.12); transition: background .15s; }
.aqcal .aqcal__ybtn:hover, .aqcal.is-menu-open .aqcal__ybtn { background: rgba(255,255,255,.5); }
.aqcal .aqcal__ybtn:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.aqcal__ybtn svg { width: .6em; height: .6em; transition: transform .15s; }
.aqcal.is-menu-open .aqcal__ybtn svg { transform: rotate(180deg); }
.aqcal .aqcal__ymenu { position: absolute; z-index: 30; top: calc(100% + 6px); left: 50%; transform: translateX(-50%); min-width: 7.5em; max-height: 16.5em; overflow-y: auto; margin: 0; padding: 4px; list-style: none; background: #fff; color: #1d2327; border-radius: 10px; box-shadow: 0 10px 30px rgba(0,0,0,.18), 0 0 0 1px rgba(0,0,0,.06); font: 600 .62em/1 var(--aq-font); letter-spacing: 0; text-align: center; animation: aqcal-pop .12s ease; }
.aqcal .aqcal__ymenu[hidden] { display: none; }
.aqcal .aqcal__ymenu li { margin: 0; padding: .7em 1em; border-radius: 7px; cursor: pointer; outline: none; }
.aqcal .aqcal__ymenu li:hover, .aqcal .aqcal__ymenu li:focus { background: #eef6fb; }
.aqcal .aqcal__ymenu li.is-active { background: var(--aq-title-bg); color: var(--aq-title-color); }
@keyframes aqcal-pop { from { opacity: 0; transform: translate(-50%, -4px); } to { opacity: 1; transform: translate(-50%, 0); } }
.aqcal__titlebar { overflow: visible; }

.aqcal__toolbar { display: flex; justify-content: flex-end; gap: .5rem; margin: .45rem 0; }
.aqcal__seg { display: inline-flex; border: 1px solid #c9ced3; border-radius: 6px; overflow: hidden; }
.aqcal .aqcal__seg button, .aqcal .aqcal__print { all: unset; cursor: pointer; font: 500 .82em/1 var(--aq-font); padding: .5em .85em; color: #333; background: #fff; }
.aqcal .aqcal__seg button + button { border-left: 1px solid #c9ced3; }
.aqcal .aqcal__seg button.is-active { background: #263238; color: #fff; }
.aqcal .aqcal__print { border: 1px solid #c9ced3; border-radius: 6px; }
.aqcal .aqcal__seg button:focus-visible, .aqcal .aqcal__print:focus-visible { outline: 2px solid var(--aq-accent); outline-offset: -2px; }

/* --- table ------------------------------------------------------------ */
.aqcal__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--aq-border); }
.aqcal table.aqcal__table { width: 100%; min-width: 860px; border-collapse: collapse; table-layout: fixed; margin: 0; background: var(--aq-cell); font-size: inherit; border: 0; }
.aqcal__c-month { width: 46px; }
.aqcal__c-day { width: 27px; }
.aqcal__c-local { width: 33%; }
.aqcal__c-intl { width: 25%; }
.aqcal__c-holiday { width: 19%; }
.aqcal__table th, .aqcal__table td { border: 1px solid var(--aq-border); padding: 0; margin: 0; vertical-align: middle; text-align: center; background: transparent; color: inherit; font-size: inherit; line-height: 1.3; }
.aqcal__table thead th { background: var(--aq-head-bg); color: var(--aq-head-color); font-weight: 700; padding: .45em .3em; font-size: .9em; text-transform: none; position: sticky; top: 0; z-index: 2; }
.aqcal__table thead th.is-weekend { color: var(--aq-head-color); }
.aqcal__table thead .aqcal__h-month { font-size: .72em; letter-spacing: .02em; }

.aqcal__month { background: var(--aq-month-bg); font-weight: 700; padding: .3em 0 !important; }
.aqcal__month span { writing-mode: vertical-rl; transform: rotate(180deg); display: inline-block; white-space: nowrap; font-size: .95em; letter-spacing: .02em; }
.aqcal__row.is-month-start > * { border-top-width: 2px; }

.aqcal__day { height: 2em; font-variant-numeric: tabular-nums; font-size: .92em; }
.aqcal__day.is-weekend { color: var(--aq-weekend); font-weight: 700; }
.aqcal__day.is-empty { background: var(--aq-empty); }
.aqcal__day.is-hot { box-shadow: inset 0 0 0 2px #111; position: relative; z-index: 1; }

.aqcal__ev { padding: 0 !important; font-size: .9em; }
.aqcal__ev.is-block { font-weight: 700; }
.aqcal__item { padding: .3em .55em; }
.aqcal__item + .aqcal__item { border-top: 1px dashed rgba(0,0,0,.25); }
.aqcal__ev.is-block .aqcal__item:not(.is-title) { font-weight: 400; font-size: .92em; }
.aqcal__item a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; }
.aqcal__item:hover { filter: brightness(.96); cursor: default; }

.aqcal__row.is-flash > td, .aqcal__row.is-flash > th, .aqcal__lmonth.is-flash { animation: aqcal-flash 2.4s ease; }
@keyframes aqcal-flash { 0%, 40% { box-shadow: inset 0 0 0 999px rgba(0,176,240,.28); } 100% { box-shadow: inset 0 0 0 999px rgba(0,176,240,0); } }

/* --- list view (narrow screens) ---------------------------------------- */
.aqcal__lmonth { border: 1px solid #d5dade; border-radius: 8px; margin-bottom: .6rem; overflow: hidden; scroll-margin-top: 80px; }
.aqcal .aqcal__lmonth h3 { margin: 0; padding: .55em .8em; font: 700 1em/1.2 var(--aq-font); background: var(--aq-head-bg); color: var(--aq-head-color); }
.aqcal__lmonth ul { list-style: none; margin: 0; padding: 0; }
.aqcal__lmonth li { display: flex; gap: .55em; align-items: baseline; padding: .55em .8em; border-top: 1px solid #eceff1; margin: 0; }
.aqcal__lmonth li:first-child { border-top: 0; }
.aqcal__ltext { flex: 1; }
.aqcal__ltag { font-size: .72em; opacity: .65; text-align: end; max-width: 38%; }
.aqcal__lempty { margin: 0; padding: .6em .8em; opacity: .6; }
.aqcal__chip { flex: none; display: inline-block; width: .7em; height: .7em; border-radius: 3px; border: 1px solid rgba(0,0,0,.25); transform: translateY(.05em); }

/* --- notes --------------------------------------------------------------- */
.aqcal__notes { border: 1px solid var(--aq-border); border-top: 0; background: var(--aq-notes-bg); }
.aqcal.is-list .aqcal__notes { border-top: 1px solid var(--aq-border); border-radius: 8px; overflow: hidden; }
.aqcal__note { padding: .5em .9em; font-size: 1.02em; line-height: 1.75; }
.aqcal__note + .aqcal__note { border-top: 1px solid rgba(0,0,0,.15); }
.aqcal__note[dir="rtl"] { text-align: right; }
.aqcal__note p { margin: 0; }

/* --- responsive ---------------------------------------------------------- */
@media (max-width: 720px) {
	.aqcal__titlebar { padding: .5rem; flex-direction: column; }
	.aqcal__years { position: static; transform: none; flex-wrap: wrap; justify-content: center; }
	.aqcal .aqcal__title { font-size: 1.15em; }
	.aqcal__month { position: sticky; left: 0; z-index: 1; }
}

/* --- print --------------------------------------------------------------- */
@media print {
	@page { size: A3 portrait; margin: 8mm; }
	body.aqcal-printing * { visibility: hidden !important; }
	body.aqcal-printing .aqcal.is-printing, body.aqcal-printing .aqcal.is-printing * { visibility: visible !important; }
	body.aqcal-printing .aqcal.is-printing { position: absolute; left: 0; top: 0; width: 100%; }
	.aqcal__toolbar, .aqcal__years, .aqcal__ymenu { display: none !important; }
	.aqcal .aqcal__ybtn { background: none; box-shadow: none; }
	.aqcal__ybtn svg { display: none; }
	.aqcal__scroll { overflow: visible; }
	.aqcal table.aqcal__table { min-width: 0; font-size: 9px; }
	.aqcal__table thead th { position: static; }
	.aqcal * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* =========================================================================
   Mini month (sidebar / widget)
   ========================================================================= */
.aqcal-mini { font-size: 14px; max-width: 360px; }
.aqcal-mini__head { display: flex; align-items: center; justify-content: space-between; gap: .4rem; background: var(--aq-title-bg); color: var(--aq-title-color); border-radius: 8px 8px 0 0; padding: .3rem; }
.aqcal .aqcal-mini__head button { all: unset; cursor: pointer; width: 2em; height: 2em; display: grid; place-items: center; border-radius: 6px; font-size: 1.15em; line-height: 1; }
.aqcal .aqcal-mini__head button:hover:not(:disabled) { background: rgba(255,255,255,.35); }
.aqcal .aqcal-mini__head button:disabled { opacity: .35; cursor: default; }
.aqcal .aqcal-mini__head button:focus-visible { outline: 2px solid currentColor; }
.aqcal .aqcal-mini__title { font-weight: 700; color: inherit; text-decoration: none; }
.aqcal a.aqcal-mini__title:hover { text-decoration: underline; }
.aqcal table.aqcal-mini__grid { width: 100%; border-collapse: collapse; table-layout: fixed; margin: 0; border: 1px solid #d5dade; border-top: 0; }
.aqcal-mini__grid th, .aqcal-mini__grid td { border: 1px solid #e3e7ea; text-align: center; padding: 0; height: 2.1em; font-size: .88em; background: transparent; color: inherit; }
.aqcal-mini__grid th { background: var(--aq-head-bg); color: var(--aq-head-color); font-weight: 700; height: 1.9em; }
.aqcal-mini__grid td.is-empty { background: #f1f3f4; }
.aqcal-mini__grid td.is-weekend { color: var(--aq-weekend); font-weight: 700; }
.aqcal-mini__grid td a, .aqcal-mini__grid td span { display: grid; place-items: center; width: 100%; height: 100%; color: inherit; text-decoration: none; }
.aqcal-mini__grid td.has-ev a { position: relative; }
.aqcal-mini__grid td.has-ev a::after { content: ""; position: absolute; bottom: 3px; left: 50%; width: 4px; height: 4px; margin-left: -2px; border-radius: 50%; background: currentColor; opacity: .7; }
.aqcal-mini__grid td a:hover { box-shadow: inset 0 0 0 2px #263238; }
.aqcal-mini__grid td.is-today { box-shadow: inset 0 0 0 2px var(--aq-accent); font-weight: 700; }
.aqcal-mini__list { list-style: none; margin: .6em 0 0; padding: 0; font-size: .86em; }
.aqcal-mini__list li { display: flex; gap: .5em; align-items: baseline; padding: .35em 0; border-bottom: 1px solid #eceff1; margin: 0; }
.aqcal-mini__list li.is-empty, .aqcal-mini__list li.is-more { opacity: .65; }
.aqcal-mini__list a { color: inherit; text-decoration: none; }
.aqcal-mini__list a:hover { text-decoration: underline; }
.aqcal .aqcal-mini__cta { display: inline-block; margin-top: .6em; font-weight: 600; font-size: .9em; color: inherit; text-decoration: none; border-bottom: 2px solid var(--aq-accent); }
