/* Calendar-only presentation layer */
:root[data-page="calendar"]{--page-accent:#42638C;--page-tint:#EAF1FB;--page-border:#C9D8EB}
:root[data-theme="dark"][data-page="calendar"]{--page-accent:#A8C3E5;--page-tint:#2A3545;--page-border:#465B74}
.calendar-only{background:var(--canvas)}
.calendar-shell{min-height:100vh}
.calendar-header{position:sticky;z-index:50;top:0;width:100%;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(18px)}
.calendar-header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;width:min(100%,1400px);min-height:72px;margin:0 auto;padding:10px clamp(16px,3vw,40px)}
.calendar-header .brand-mark{background:#E7EEF7;color:#42638C}
:root[data-theme="dark"] .calendar-header .brand-mark{background:#2A3545;color:#A8C3E5}
.calendar-header-actions{display:flex;align-items:center;gap:14px}
.calendar-local-note{color:var(--muted);font-size:14px;white-space:nowrap}
.calendar-local-note span{color:var(--success)}
.calendar-main{width:min(100%,1400px);min-height:calc(100vh - 120px);margin:0 auto;padding:34px clamp(16px,3vw,40px) 48px}
.calendar-page-intro{margin:3px 0 24px}
.calendar-page-intro .page-description{max-width:780px}
.calendar-workspace{overflow:hidden;padding:21px}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:17px}
.calendar-period-controls{display:flex;align-items:center;gap:7px;min-width:0}
.calendar-period-controls h2{margin:0 0 0 9px;color:var(--ink-strong);font-size:21px}
.calendar-arrow,.calendar-today{display:inline-flex;align-items:center;justify-content:center;min-width:39px;min-height:38px;padding:0 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font-size:17px;font-weight:650}
.calendar-arrow{font-size:22px;line-height:1}
.calendar-today{color:var(--page-accent)}
.calendar-arrow:hover,.calendar-today:hover{border-color:var(--page-border);background:var(--page-tint)}
.calendar-view-switch{display:flex;gap:3px;padding:4px;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft)}
.calendar-view-switch button{min-width:58px;min-height:34px;padding:4px 11px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:15px;font-weight:650}
.calendar-view-switch button.is-active{background:var(--surface);color:var(--page-accent);box-shadow:0 1px 4px rgba(25,35,27,.08)}
.calendar-filters{display:grid;grid-template-columns:minmax(190px,1.5fr) repeat(4,minmax(125px,1fr));gap:9px;margin:0 0 14px}
.filter-search,.filter-select{display:flex;min-width:0;min-height:43px;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.filter-search>span{color:var(--muted);font-size:19px}
.filter-search input,.filter-select select{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font-size:14px}
.filter-select{flex-direction:column;align-items:stretch;gap:0}
.filter-select>span{color:var(--muted);font-size:12px;line-height:1.2}
.filter-select select{padding:2px 0 0}
.calendar-results-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 13px;color:var(--muted);font-size:14px}
.calendar-source-hint{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:13px}
.calendar-source-hint i{width:7px;height:7px;border-radius:50%;background:var(--success)}
.calendar-view-container{min-width:0}
.calendar-month-grid{overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.calendar-weekdays{background:var(--surface-soft)}
.calendar-weekday{padding:9px 4px;border-right:1px solid var(--line);color:var(--muted);font-size:13px;font-weight:700;text-align:center}
.calendar-weekday:last-child{border-right:0}
.calendar-day{min-width:0;min-height:112px;padding:6px;border-top:1px solid var(--line);border-right:1px solid var(--line);background:var(--surface)}
.calendar-day:nth-child(7n){border-right:0}
.calendar-day.is-outside{background:var(--surface-soft)}
.calendar-day.is-today{background:var(--page-tint)}
.calendar-day-number{display:grid;width:27px;height:27px;place-items:center;margin:0 0 4px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--ink);font-size:14px}
.calendar-day.is-today .calendar-day-number{background:var(--page-accent);color:#fff;font-weight:750}
.calendar-day-events{display:flex;flex-direction:column;gap:3px}
.calendar-event-chip{display:flex;width:100%;min-width:0;align-items:center;gap:5px;padding:3px 5px;overflow:hidden;border:0;border-radius:5px;background:var(--event-admit-bg);color:var(--event-admit);font-size:11px;line-height:1.35;text-align:left}
.calendar-event-chip:hover{filter:brightness(.97)}
.calendar-event-dot{width:5px;height:5px;flex:0 0 5px;border-radius:50%;background:currentColor}
.calendar-event-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calendar-event-chip[data-kind="application_open"],.calendar-type-tag[data-kind="application_open"]{background:var(--event-open-bg);color:var(--event-open)}
.calendar-event-chip[data-kind="application_deadline"],.calendar-type-tag[data-kind="application_deadline"]{background:var(--event-deadline-bg);color:var(--event-deadline)}
.calendar-event-chip[data-kind="admit_card_open"],.calendar-event-chip[data-kind="admit_card_deadline"],.calendar-type-tag[data-kind="admit_card_open"],.calendar-type-tag[data-kind="admit_card_deadline"]{background:var(--event-admit-bg);color:var(--event-admit)}
.calendar-event-chip[data-kind="admission_test"],.calendar-type-tag[data-kind="admission_test"]{background:var(--event-exam-bg);color:var(--event-exam)}
.calendar-event-chip[data-kind="result_publication"],.calendar-type-tag[data-kind="result_publication"]{background:var(--event-result-bg);color:var(--event-result)}
.calendar-more-events{align-self:flex-start;padding:1px 4px;border:0;border-radius:4px;background:transparent;color:var(--page-accent);font-size:11px}
.calendar-empty-state{display:grid;justify-items:center;gap:7px;padding:44px 18px;border:1px dashed var(--line-strong);border-radius:12px;text-align:center}
.calendar-empty-mark{color:var(--page-accent);font-size:25px}
.calendar-empty-state strong{color:var(--ink-strong);font-size:17px}
.calendar-empty-state p{max-width:440px;margin:0;color:var(--muted);font-size:14px}
.week-view-grid{display:grid;grid-template-columns:repeat(7,minmax(118px,1fr));gap:8px;min-width:0}
.week-day-column{min-width:0;min-height:180px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.week-day-column.is-today{border-color:var(--page-border);background:var(--page-tint)}
.week-day-heading{display:flex;align-items:baseline;gap:7px;margin-bottom:10px;padding-bottom:7px;border-bottom:1px solid var(--line)}
.week-day-heading strong{color:var(--ink-strong);font-size:19px}
.week-day-heading span{color:var(--muted);font-size:13px}
.week-day-events{display:grid;gap:5px}
.week-no-event{color:var(--muted)}
.calendar-list-groups{display:grid;gap:17px}
.calendar-date-group h3{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 8px;color:var(--ink-strong);font-size:16px}
.calendar-date-group h3 span{color:var(--muted);font-size:13px;font-weight:500}
.calendar-list-card{display:grid;grid-template-columns:minmax(115px,.34fr) minmax(0,1fr) auto;align-items:center;gap:14px;margin-top:7px;padding:13px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.calendar-list-date{display:grid;gap:3px}
.calendar-list-date strong{color:var(--ink-strong);font-size:14px}
.calendar-list-date small{color:var(--muted);font-size:12px}
.calendar-list-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px}
.calendar-type-tag,.calendar-status-tag,.calendar-detail-status{display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;background:var(--surface-soft);color:var(--muted);font-size:12px;font-weight:650}
.calendar-list-main h3{margin:0 0 2px;font-size:15px}
.calendar-list-main p{margin:0;color:var(--muted);font-size:13px}
.calendar-list-open{border:0;background:transparent;color:var(--page-accent);font-size:13px;font-weight:700;white-space:nowrap}
.calendar-legend{display:flex;flex-wrap:wrap;gap:10px 18px;margin:14px 3px 0;color:var(--muted);font-size:13px}
.calendar-legend>span{display:inline-flex;align-items:center;gap:7px}
.calendar-legend i{width:8px;height:8px;border-radius:50%;background:var(--muted-soft)}
.calendar-legend .legend-open{background:var(--event-open)}
.calendar-legend .legend-deadline{background:var(--event-deadline)}
.calendar-legend .legend-admit{background:var(--event-admit)}
.calendar-legend .legend-exam{background:var(--event-exam)}
.calendar-legend .legend-result{background:var(--event-result)}
.calendar-footnote{margin:18px 3px 0;color:var(--muted);font-size:13px}
.calendar-footer{display:flex;justify-content:space-between;gap:12px;width:min(100%,1400px);margin:0 auto;padding:16px clamp(16px,3vw,40px) 24px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}
.calendar-event-detail{display:grid;gap:10px}
.calendar-detail-status{justify-self:start;background:var(--page-tint);color:var(--page-accent)}
.calendar-detail-row{display:flex;justify-content:space-between;gap:15px;padding:7px 0;border-bottom:1px solid var(--line);font-size:14px}
.calendar-detail-row span{color:var(--muted)}
.calendar-detail-row strong{color:var(--ink-strong);text-align:right}
.calendar-detail-note,.calendar-no-source{margin:4px 0;color:var(--muted);font-size:13px}
.calendar-event-detail h3{margin:7px 0 0;font-size:16px}
.calendar-source-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.calendar-source-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px;border:1px solid var(--line);border-radius:9px}
.calendar-source-list li div{display:grid;gap:2px}
.calendar-source-list strong{color:var(--ink-strong);font-size:13px}
.calendar-source-list small,.calendar-source-list a{font-size:12px}
@media (max-width:900px){.calendar-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-day{min-height:94px}}
@media (max-width:640px){
 .calendar-header-inner{min-height:62px;padding:7px 12px}
 .calendar-header .brand-mark{width:37px;height:37px;flex-basis:37px}
 .calendar-header .brand-copy strong{font-size:15px}
 .calendar-header .brand-copy small{font-size:11px}
 .calendar-local-note{display:none}
 .calendar-main{padding:23px 10px 30px}
 .calendar-page-intro{margin-bottom:18px}
 .calendar-page-intro h1{font-size:29px}
 .calendar-page-intro .page-description{font-size:14px}
 .calendar-workspace{padding:12px;border-radius:13px}
 .calendar-toolbar{flex-wrap:wrap;gap:10px}
 .calendar-period-controls{flex:1 1 100%;gap:5px}
 .calendar-period-controls h2{margin-left:4px;font-size:17px}
 .calendar-arrow,.calendar-today{min-width:34px;min-height:35px;padding:0 8px;font-size:14px}
 .calendar-view-switch{width:100%}
 .calendar-view-switch button{flex:1 1 0}
 .calendar-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
 .filter-search{grid-column:1 / -1}
 .filter-select{min-height:42px;padding:6px 8px}
 .filter-select select{font-size:12px}
 .calendar-results-bar{align-items:flex-start;flex-direction:column;gap:3px}
 .calendar-day{min-height:76px;padding:3px 2px}
 .calendar-weekday{padding:7px 1px;font-size:11px}
 .calendar-day-number{width:23px;height:23px;margin:0 auto 3px;font-size:12px}
 .calendar-day-events{align-items:stretch;gap:2px}
 .calendar-event-chip{justify-content:center;padding:2px 1px}
 .calendar-event-name{display:none}
 .calendar-event-dot{width:6px;height:6px;flex-basis:6px}
 .calendar-more-events{align-self:center;font-size:9px}
 .week-view-grid{grid-template-columns:repeat(7,minmax(96px,1fr));overflow-x:auto}
 .calendar-list-card{grid-template-columns:1fr;gap:7px;padding:10px}
 .calendar-list-open{justify-self:start;padding:3px 0}
 .calendar-legend{gap:8px 12px;font-size:11px}
 .calendar-footer{flex-direction:column;gap:3px;padding:13px 12px 18px}
 .calendar-source-list li{align-items:flex-start;flex-direction:column;gap:5px}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}


/* Cool, vivid multi-colour identity — replaces the old brown accent. */
:root[data-page="calendar"]{
  --page-accent:#2563EB;
  --page-tint:#EFF6FF;
  --page-border:#BFDBFE;
  --calendar-accent-strong:#1D4ED8;
  --calendar-accent-wash:rgba(37,99,235,.12);
  --calendar-surface-shadow:0 18px 48px rgba(37,76,140,.075);
}
:root[data-theme="dark"][data-page="calendar"]{
  --page-accent:#93C5FD;
  --page-tint:#1E3A5F;
  --page-border:#365D8A;
  --calendar-accent-strong:#BFDBFE;
  --calendar-accent-wash:rgba(147,197,253,.15);
  --calendar-surface-shadow:0 18px 48px rgba(0,0,0,.22);
}
.calendar-header{
  box-shadow:0 5px 24px rgba(37,54,85,.06);
}
:root[data-theme="dark"] .calendar-header{
  box-shadow:0 5px 24px rgba(0,0,0,.15);
}
.calendar-header .brand-mark{
  background:var(--page-tint);
  color:var(--page-accent);
  border:1px solid var(--page-border);
  border-radius:14px;
}
:root[data-theme="dark"] .calendar-header .brand-mark{
  background:var(--page-tint);
  color:var(--page-accent);
}
.calendar-header .brand-mark svg{
  stroke:currentColor;
}
.calendar-header .brand-copy strong{
  letter-spacing:-.035em;
}
.calendar-header .brand-copy strong span{
  color:var(--page-accent);
}
.calendar-main{
  width:min(100%,1320px);
  padding-top:clamp(28px,4vw,48px);
}
.calendar-page-intro{
  margin:4px 0 27px;
}
.calendar-page-intro .eyebrow{
  color:var(--page-accent);
  font-size:12px;
  font-weight:800;
  letter-spacing:.14em;
}
.calendar-page-intro .eyebrow-line{
  width:25px;
  height:2px;
  border-radius:3px;
  background:var(--page-accent);
}
.calendar-page-intro h1{
  margin-top:2px;
  color:var(--ink-strong);
  font-size:clamp(30px,4vw,43px);
  line-height:1.27;
  letter-spacing:-.045em;
}
.calendar-page-intro h1 span{
  color:var(--page-accent);
}
.calendar-page-intro .page-description{
  max-width:760px;
  margin-top:9px;
  color:var(--muted);
  font-size:15px;
  line-height:1.8;
}
.calendar-workspace{
  padding:clamp(16px,2.2vw,25px);
  border:1px solid var(--line);
  border-radius:21px;
  background:var(--surface);
  box-shadow:var(--calendar-surface-shadow);
}
.calendar-toolbar{
  margin-bottom:20px;
}
.calendar-period-controls h2{
  margin-left:11px;
  font-size:clamp(19px,2.2vw,23px);
  font-weight:750;
  letter-spacing:-.035em;
}
.calendar-arrow,.calendar-today{
  min-width:40px;
  min-height:40px;
  border-color:var(--line);
  border-radius:12px;
  transition:background-color .18s ease,border-color .18s ease,transform .18s ease;
}
.calendar-arrow:hover,.calendar-today:hover{
  border-color:var(--page-border);
  background:var(--page-tint);
  color:var(--calendar-accent-strong);
}
.calendar-arrow:active,.calendar-today:active{
  transform:translateY(1px);
}
.calendar-today{
  padding-inline:14px;
  color:var(--page-accent);
  font-size:14px;
  font-weight:750;
}
.calendar-view-switch{
  gap:4px;
  padding:4px;
  border-color:var(--line);
  border-radius:13px;
  background:var(--surface-soft);
}
.calendar-view-switch button{
  min-height:36px;
  border-radius:9px;
  transition:background-color .18s ease,color .18s ease,box-shadow .18s ease;
}
.calendar-view-switch button.is-active{
  background:var(--surface-raised);
  color:var(--calendar-accent-strong);
  box-shadow:0 2px 8px rgba(48,43,34,.09);
}
.calendar-filters{
  gap:10px;
  margin-bottom:16px;
}
.filter-search,.filter-select{
  min-height:47px;
  border-color:var(--line);
  border-radius:12px;
  background:var(--surface-raised);
  transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease;
}
.filter-search:focus-within,.filter-select:focus-within{
  border-color:var(--page-border);
  box-shadow:0 0 0 3px var(--calendar-accent-wash);
}
.filter-search input,.filter-select select{
  font-size:13px;
}
.filter-select>span{
  font-size:11px;
  font-weight:650;
  letter-spacing:.015em;
}
.calendar-results-bar{
  margin-bottom:14px;
  font-size:13px;
}
.calendar-source-hint{
  font-size:12px;
}
.calendar-source-hint i{
  width:7px;
  height:7px;
  box-shadow:0 0 0 3px var(--success-bg);
}
.calendar-month-grid{
  border-color:var(--line-strong);
  border-radius:15px;
  background:var(--surface);
}
.calendar-weekdays{
  background:var(--surface-soft);
}
.calendar-weekday{
  padding:11px 4px;
  border-color:var(--line);
  color:var(--muted);
  font-size:12px;
  font-weight:750;
  letter-spacing:.015em;
}
.calendar-weekday:nth-child(6),.calendar-weekday:nth-child(7){
  color:var(--page-accent);
}
.calendar-day{
  min-height:116px;
  padding:8px 7px;
  border-color:var(--line);
  transition:background-color .16s ease;
}
.calendar-day:nth-child(7n + 5),.calendar-day:nth-child(7n + 6){
  background:color-mix(in srgb,var(--surface-soft) 30%,var(--surface));
}
.calendar-day.is-outside{
  background:var(--surface-soft);
}
.calendar-day.is-today{
  background:var(--page-tint);
  box-shadow:inset 0 0 0 1px var(--page-border);
}
.calendar-day-number{
  width:28px;
  height:28px;
  margin-bottom:6px;
  border-radius:9px;
  font-size:13px;
  font-weight:650;
  transition:background-color .16s ease,color .16s ease;
}
.calendar-day-number:hover{
  background:var(--calendar-accent-wash);
  color:var(--page-accent);
}
.calendar-day.is-today .calendar-day-number{
  border-radius:9px;
  background:var(--page-accent);
  color:#fff;
  box-shadow:0 3px 8px var(--calendar-accent-wash);
}
.calendar-day-events{
  gap:4px;
}
.calendar-event-chip{
  min-height:22px;
  padding:4px 6px;
  border:1px solid transparent;
  border-radius:7px;
  font-size:11px;
  font-weight:650;
  line-height:1.35;
  transition:filter .16s ease,transform .16s ease,border-color .16s ease;
}
.calendar-event-chip:hover{
  filter:saturate(1.08);
  transform:translateY(-1px);
  border-color:currentColor;
}
.calendar-event-dot{
  width:6px;
  height:6px;
  flex-basis:6px;
}
.calendar-event-chip[data-kind="application_open"]{
  border-color:color-mix(in srgb,var(--event-open) 18%,transparent);
}
.calendar-event-chip[data-kind="application_deadline"]{
  border-color:color-mix(in srgb,var(--event-deadline) 18%,transparent);
}
.calendar-event-chip[data-kind="admit_card_open"],.calendar-event-chip[data-kind="admit_card_deadline"]{
  border-color:color-mix(in srgb,var(--event-admit) 18%,transparent);
}
.calendar-event-chip[data-kind="admission_test"]{
  border-color:color-mix(in srgb,var(--event-exam) 18%,transparent);
}
.calendar-event-chip[data-kind="result_publication"]{
  border-color:color-mix(in srgb,var(--event-result) 22%,transparent);
}
.calendar-more-events{
  margin-top:1px;
  padding:3px 5px;
  border-radius:6px;
  font-size:11px;
  font-weight:700;
}
.calendar-more-events:hover{
  background:var(--page-tint);
}
.calendar-empty-state{
  border-radius:15px;
  background:var(--surface-soft);
}
.week-view-grid{
  gap:10px;
}
.week-day-column{
  padding:12px;
  border-color:var(--line);
  border-radius:13px;
  box-shadow:0 3px 12px rgba(45,42,35,.025);
}
.week-day-column.is-today{
  border-color:var(--page-border);
  box-shadow:inset 0 0 0 1px var(--page-border);
}
.week-day-heading{
  padding-bottom:9px;
}
.week-day-heading strong{
  font-size:20px;
}
.calendar-date-group h3{
  font-size:15px;
}
.calendar-list-card{
  padding:15px;
  border-color:var(--line);
  border-radius:13px;
  background:var(--surface);
  box-shadow:0 3px 14px rgba(45,42,35,.025);
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.calendar-list-card:hover{
  border-color:var(--page-border);
  box-shadow:0 9px 24px rgba(45,42,35,.07);
  transform:translateY(-1px);
}
.calendar-list-date strong{
  color:var(--page-accent);
}
.calendar-type-tag,.calendar-status-tag,.calendar-detail-status{
  padding:3px 9px;
  border-radius:999px;
  font-size:11px;
}
.calendar-list-open{
  padding:7px 9px;
  border-radius:8px;
  transition:background-color .18s ease;
}
.calendar-list-open:hover{
  background:var(--page-tint);
}
.calendar-legend{
  gap:9px 11px;
  margin:17px 3px 0;
  font-size:12px;
}
.calendar-legend>span{
  padding:6px 9px;
  border:1px solid var(--line);
  border-radius:999px;
  background:var(--surface);
}
.calendar-legend i{
  width:7px;
  height:7px;
}
.calendar-footnote{
  max-width:900px;
  margin-top:15px;
  font-size:12px;
  line-height:1.75;
}
.calendar-footer{
  width:min(100%,1320px);
  font-size:11px;
}
.calendar-source-list li{
  border-radius:11px;
  transition:border-color .18s ease,background-color .18s ease;
}
.calendar-source-list li:hover{
  border-color:var(--page-border);
  background:var(--surface-soft);
}
.calendar-event-detail h3{
  color:var(--calendar-accent-strong);
}
@media(max-width:900px){
  .calendar-day{min-height:100px}
  .calendar-workspace{padding:17px}
}
@media(max-width:640px){
  .calendar-header{backdrop-filter:blur(14px)}
  .calendar-header-inner{min-height:64px}
  .calendar-main{padding:24px 12px 30px}
  .calendar-page-intro{margin-bottom:18px}
  .calendar-page-intro .eyebrow{font-size:10px}
  .calendar-page-intro h1{font-size:29px;line-height:1.35}
  .calendar-page-intro .page-description{font-size:13px;line-height:1.75}
  .calendar-workspace{padding:13px;border-radius:17px}
  .calendar-toolbar{gap:11px}
  .calendar-period-controls h2{font-size:17px}
  .calendar-view-switch{padding:4px}
  .calendar-view-switch button{min-height:36px;font-size:13px}
  .calendar-day{min-height:78px;padding:4px 2px}
  .calendar-day.is-today{box-shadow:inset 0 0 0 1px var(--page-border)}
  .calendar-day-number{width:24px;height:24px;margin-bottom:4px;font-size:12px}
  .calendar-event-chip{min-height:17px;padding:3px 1px;border-radius:5px}
  .calendar-legend{gap:6px 7px;font-size:10px}
  .calendar-legend>span{padding:5px 7px}
  .calendar-footer{padding-top:13px}
}
@media(prefers-reduced-motion:reduce){
  .calendar-arrow,.calendar-today,.calendar-view-switch button,.filter-search,.filter-select,
  .calendar-day-number,.calendar-event-chip,.calendar-list-card,.calendar-list-open,
  .calendar-source-list li{transition:none!important}
}


/* Bright, high-contrast calendar palette — light is the default. */
:root[data-page="calendar"]{
  --page-accent:#2563EB;
  --page-tint:#EFF6FF;
  --page-border:#BFDBFE;
  --calendar-accent-strong:#1D4ED8;
  --calendar-accent-wash:rgba(37,99,235,.13);
  --calendar-surface-shadow:0 18px 48px rgba(37,76,140,.09);
  --event-open:#067647;
  --event-open-bg:#D1FAE5;
  --event-deadline:#B42318;
  --event-deadline-bg:#FEE4E2;
  --event-admit:#175CD3;
  --event-admit-bg:#D1E9FF;
  --event-exam:#6941C6;
  --event-exam-bg:#E9D7FE;
  --event-result:#B54708;
  --event-result-bg:#FEF0C7;
  --success:#067647;
  --success-bg:#D1FAE5;
  --caution:#B54708;
  --caution-bg:#FEF0C7;
  --info:#175CD3;
  --info-bg:#D1E9FF;
  --danger:#B42318;
  --danger-bg:#FEE4E2;
}
:root[data-theme="dark"][data-page="calendar"]{
  --page-accent:#93C5FD;
  --page-tint:#1E3A5F;
  --page-border:#365D8A;
  --calendar-accent-strong:#BFDBFE;
  --calendar-accent-wash:rgba(147,197,253,.16);
  --calendar-surface-shadow:0 18px 48px rgba(0,0,0,.24);
  --event-open:#86EFAC;
  --event-open-bg:#163D2A;
  --event-deadline:#FDA4AF;
  --event-deadline-bg:#4A202B;
  --event-admit:#93C5FD;
  --event-admit-bg:#1E3552;
  --event-exam:#C4B5FD;
  --event-exam-bg:#37285B;
  --event-result:#FCD34D;
  --event-result-bg:#493611;
  --success:#86EFAC;
  --success-bg:#163D2A;
  --caution:#FCD34D;
  --caution-bg:#493611;
  --info:#93C5FD;
  --info-bg:#1E3552;
  --danger:#FDA4AF;
  --danger-bg:#4A202B;
}
.calendar-event-chip,.calendar-type-tag{
  font-weight:700;
}
.calendar-legend i{
  box-shadow:0 0 0 3px color-mix(in srgb,currentColor 12%,transparent);
}
.calendar-day.is-today .calendar-day-number{
  box-shadow:0 2px 7px color-mix(in srgb,var(--page-accent) 28%,transparent);
}


/* Sage palette only — preserve the existing calendar layout and component styling */
:root[data-page="calendar"]{
  --page-accent:#2F6E5C;
  --page-tint:#DCEBE3;
  --page-border:#B9D2C3;
  --calendar-accent-strong:#255C4C;
  --calendar-accent-wash:rgba(47,110,92,.12);
  --event-open:#2F6E5C;
  --event-open-bg:#E8F1EB;
  --event-deadline:#B24A2F;
  --event-deadline-bg:#F8E9E3;
  --event-admit:#5E6D63;
  --event-admit-bg:#EDF0EC;
  --event-exam:#2F6E5C;
  --event-exam-bg:#E8F1EB;
  --event-result:#8A6A1F;
  --event-result-bg:#F6EBC8;
  --success:#2F6E5C;
  --success-bg:#E8F1EB;
  --caution:#8A6A1F;
  --caution-bg:#F6EBC8;
  --info:#5E6D63;
  --info-bg:#EDF0EC;
  --danger:#B24A2F;
  --danger-bg:#F8E9E3;
  --highlight-gradient:linear-gradient(115deg,#2F6E5C 0%,#5C8F75 52%,#A5CDB7 100%);
  --highlight-gradient-soft:linear-gradient(115deg,#E8F1EB 0%,#DCEBE3 52%,#C8DFD1 100%);
}
:root[data-theme="dark"][data-page="calendar"]{
  --page-accent:#A5CDB7;
  --page-tint:#253C32;
  --page-border:#496758;
  --calendar-accent-strong:#C2DEC9;
  --calendar-accent-wash:rgba(165,205,183,.16);
  --event-open:#A5CDB7;
  --event-open-bg:#2A4337;
  --event-deadline:#E39A80;
  --event-deadline-bg:#482F28;
  --event-admit:#B1BDB4;
  --event-admit-bg:#333D37;
  --event-exam:#A5CDB7;
  --event-exam-bg:#2A4337;
  --event-result:#D9BD72;
  --event-result-bg:#453B26;
  --success:#A5CDB7;
  --success-bg:#2A4337;
  --caution:#D9BD72;
  --caution-bg:#453B26;
  --info:#B1BDB4;
  --info-bg:#333D37;
  --danger:#E39A80;
  --danger-bg:#482F28;
  --highlight-gradient:linear-gradient(115deg,#376B55 0%,#5E9275 52%,#A5CDB7 100%);
  --highlight-gradient-soft:linear-gradient(115deg,#253C32 0%,#304E40 52%,#3B5B4A 100%);
}
.calendar-view-switch button.is-active{
  border-color:#B9D2C3;
  color:#255C4C;
}
:root[data-theme="dark"] .calendar-view-switch button.is-active{
  border-color:#496758;
  color:#D3E8DA;
}
.calendar-today{
  border-color:#B9D2C3;
  color:#255C4C;
}
:root[data-theme="dark"] .calendar-today{
  border-color:#496758;
  color:#D3E8DA;
}
