/* Ledger & Ink presentation for the FY 2025-26 calendar page. */
.calendar-page {
  --cal-paper: #f7f5ef;
  --cal-surface: #fffefa;
  --cal-ink: #172338;
  --cal-muted: #586579;
  --cal-line: #d8d8d0;
  --cal-teal: #176d70;
  --cal-teal-strong: #0f5559;
  --cal-accent: #c77743;
  background: var(--cal-paper) !important;
  color: var(--cal-ink) !important;
  overflow-x: clip;
  font-family: "IBM Plex Sans", "Noto Sans", Arial, sans-serif;
}

.calendar-page *, .calendar-page *::before, .calendar-page *::after { box-sizing: border-box; }
.calendar-page :focus-visible { outline: 3px solid #d18b48 !important; outline-offset: 3px; }
.calendar-page a { overflow-wrap: anywhere; }
.calendar-page .container { width: min(1180px, calc(100% - 40px)); }
.calendar-page .skip-link { z-index: 200; }

.calendar-page .tricolor { background: linear-gradient(90deg, #176d70 0 34%, #d9b469 34% 67%, #a75b43 67%); height: 3px; }
.calendar-page .utility-bar { background: #172338; color: #e9edf1; border-bottom: 1px solid #344258; }
.calendar-page .utility-bar a { color: #e9edf1; min-height: 44px; display: inline-flex; align-items: center; }
.calendar-page .site-header { background: #172338; color: #f8f6ef; border-bottom: 1px solid #344258; }
.calendar-page .header-inner { min-height: 82px; gap: 20px; }
.calendar-page .brand { display: inline-flex; align-items: center; min-height: 52px; }
.calendar-page .brand-mark { display: none !important; }
.calendar-page .brand-text .b-name { color: #f8f6ef !important; font-family: Georgia, "Times New Roman", serif; font-size: 31px; font-weight: 600; letter-spacing: -.045em; line-height: 1; }
.calendar-page .brand-text .b-name::after { content: "."; color: #64b8b4; }
.calendar-page .brand-text .b-sub { color: #b9c6d0 !important; letter-spacing: .08em; }
.calendar-page .header-cta { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 10px; }
.calendar-page .primary-nav { background: #172338; border-bottom: 1px solid #344258; }
.calendar-page nav.cm-breadcrumb { background: var(--cal-paper) !important; color: var(--cal-muted) !important; border-bottom: 1px solid var(--cal-line); }
.calendar-page .cm-breadcrumb-inner ol { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0; padding: 10px 0; list-style: none; }
.calendar-page .cm-breadcrumb-inner li { margin: 0; padding: 0; }
.calendar-page .cm-breadcrumb-inner li::marker, .calendar-page .cm-breadcrumb-inner li::before { content: none !important; display: none !important; }
.calendar-page .cm-breadcrumb a { color: var(--cal-teal-strong) !important; text-decoration: underline; text-underline-offset: 3px; }
.calendar-page .cm-breadcrumb [aria-current="page"] { color: var(--cal-muted); }
.calendar-page .nav-inner { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; padding-block: 8px; }
.calendar-page .nav-inner a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 11px; border-radius: 5px; color: #d8e0e8; }
.calendar-page .nav-inner a:hover, .calendar-page .nav-inner a.active { background: #26374e; color: #fff; }
.calendar-page .nav-inner .cta-nav { color: #89d3cb; }

.calendar-page .hero { background: #172338 !important; color: #f7f5ef; padding: clamp(38px, 6vw, 76px) 0; border-bottom: 1px solid #344258; }
.calendar-page .hero::before { background: linear-gradient(135deg, transparent 60%, rgba(73, 149, 147, .12)); }
.calendar-page .hero > .container { gap: clamp(24px, 5vw, 64px); }
.calendar-page .hero .eyebrow { color: #9bd1c8; border: 1px solid #45666a; background: #20364a; border-radius: 3px; letter-spacing: .1em; }
.calendar-page .hero h1 { max-width: 760px; font: 600 clamp(34px, 5vw, 58px)/1.08 Georgia, "Times New Roman", serif; letter-spacing: -.035em; }
.calendar-page .hero h1 .accent { color: #85c9bf; }
.calendar-page .hero p { color: #d5dce2; line-height: 1.75; max-width: 670px; }
.calendar-page .hero-cta { gap: 10px; }
.calendar-page .hero-cta .btn, .calendar-page .cta-btns .btn { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; text-align: center; border-radius: 4px; padding: 12px 17px; }
.calendar-page .btn-primary { background: #176d70 !important; border-color: #176d70 !important; color: #fff !important; }
.calendar-page .btn-primary:hover { background: #0f5559 !important; }
.calendar-page .hero-cta .btn-outline { color: #f8f6ef; border-color: #657589; }
.calendar-page .hero-cta .btn-outline:hover { background: #f8f6ef; color: #172338; }
.calendar-page .hero-card { background: #fffefa; color: #172338; border: 1px solid #d8d8d0; border-radius: 5px; box-shadow: 0 18px 50px rgba(0,0,0,.22); }
.calendar-page .hero-card-head { background: #e9eee9; color: #172338; border-bottom: 1px solid #d8d8d0; }
.calendar-page .hero-card-head span:last-child { color: #176d70 !important; }
.calendar-page .hero-card-body .row .v { color: #172338; text-align: right; }
.calendar-page .hero-card-foot { color: #46576a; background: #f1f2ec; line-height: 1.5; }

.calendar-page .legend-strip, .calendar-page .calendar-section, .calendar-page .penalty-section { background: var(--cal-paper); }
.calendar-page .legend-inner { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.calendar-page .legend-inner .label { color: var(--cal-muted); margin-right: 6px; }
.calendar-page .section-heading h2, .calendar-page .calendar-section h2, .calendar-page .penalty-section h2 { color: var(--cal-ink); font-family: Georgia, "Times New Roman", serif; letter-spacing: -.025em; }
.calendar-page .months { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.calendar-page .month, .calendar-page .rec-card { min-width: 0; background: var(--cal-surface); border: 1px solid var(--cal-line); border-top: 3px solid var(--cal-teal); border-radius: 4px; box-shadow: 0 8px 24px rgba(23,35,56,.05); }
.calendar-page .month-head { background: #e9eee9; color: var(--cal-ink); border-bottom: 1px solid var(--cal-line); }
.calendar-page .month-head .m-name { color: var(--cal-ink); }
.calendar-page .month-head .m-year { color: var(--cal-muted); }
.calendar-page .deadline { grid-template-columns: 48px minmax(0, 1fr) auto; gap: 8px; }
.calendar-page .deadline .date { color: var(--cal-teal-strong); }
.calendar-page .deadline .info .title { color: var(--cal-ink); overflow-wrap: anywhere; }
.calendar-page .deadline .info .desc { color: var(--cal-muted); overflow-wrap: anywhere; }
.calendar-page .recurring { background: #eeeee8; }
.calendar-page .rec-card h3, .calendar-page .rec-card td:first-child { color: var(--cal-ink); }
.calendar-page .rec-card td:last-child, .calendar-page .rec-card .sub { color: var(--cal-muted); }
.calendar-page .penalties { background: var(--cal-paper); }
.calendar-page .pill { white-space: normal; }
.calendar-page table { max-width: 100%; }
.calendar-page .penalty-table { background: var(--cal-surface); border-color: var(--cal-line); }
.calendar-page .penalty-table th { background: #20364a; color: #fff; }
.calendar-page .penalty-table td { color: #344257; overflow-wrap: anywhere; }
.calendar-page .penalty-table td:first-child { color: #172338; }
.calendar-page .penalty-table .amount { color: #8b4234; }
.calendar-page .cta-band { background: #e8eee9; border-block: 1px solid var(--cal-line); color: var(--cal-ink); }
.calendar-page .cta-band h2 { color: var(--cal-ink); font-family: Georgia, "Times New Roman", serif; }
.calendar-page .cta-band .accent { color: var(--cal-teal-strong); }
.calendar-page .cta-btns { display: flex; flex-wrap: wrap; gap: 10px; }
.calendar-page footer { background: #172338; color: #e1e7ea; }
.calendar-page footer a { color: #9bd1c8; }
.calendar-page .print-footer { color: #111; }
.calendar-page .wa-fab { position: static !important; display: inline-flex; min-height: 48px; width: fit-content; max-width: calc(100% - 28px); margin: 18px auto 24px; border-radius: 4px; box-shadow: 0 8px 24px rgba(10,40,40,.18); }

@media (prefers-color-scheme: dark) {
  .calendar-page:not([data-theme="light"]) { --cal-paper: #111a27; --cal-surface: #1b2838; --cal-ink: #edf0ed; --cal-muted: #bec8d2; --cal-line: #3c4b5d; --cal-teal: #83c9c2; --cal-teal-strong: #9ad8cf; --cal-accent: #d79a70; }
  .calendar-page:not([data-theme="light"]) .legend-strip,
  .calendar-page:not([data-theme="light"]) .calendar-section,
  .calendar-page:not([data-theme="light"]) .penalty-section { background: var(--cal-paper); }
  .calendar-page:not([data-theme="light"]) .calendar h2,
  .calendar-page:not([data-theme="light"]) .recurring h2,
  .calendar-page:not([data-theme="light"]) .penalties h2,
  .calendar-page:not([data-theme="light"]) .month-head .m-name,
  .calendar-page:not([data-theme="light"]) .rec-card h3,
  .calendar-page:not([data-theme="light"]) .rec-card td:first-child { color: var(--cal-ink); }
  .calendar-page:not([data-theme="light"]) .penalty-table td,
  .calendar-page:not([data-theme="light"]) .penalty-table td:first-child { color: #e0e7e8; }
  .calendar-page:not([data-theme="light"]) .cta-band { background: #1a2b37; color: var(--cal-ink); }
  .calendar-page:not([data-theme="light"]) .cta-band h2 { color: var(--cal-ink); }
  .calendar-page:not([data-theme="light"]) .hero-card { background: #1b2838; color: #edf0ed; border-color: #465568; }
  .calendar-page:not([data-theme="light"]) .hero-card-head { background: #26384a; color: #edf0ed; border-color: #465568; }
  .calendar-page:not([data-theme="light"]) .hero-card-body .row .v { color: #edf0ed; }
  .calendar-page:not([data-theme="light"]) .hero-card-foot { background: #223346; color: #d6dfe2; }
  .calendar-page:not([data-theme="light"]) .month-head { background: #26384a; }
  .calendar-page:not([data-theme="light"]) .month-head .m-year { color: #c4ced5; }
  .calendar-page:not([data-theme="light"]) .recurring { background: #172536; }
  .calendar-page:not([data-theme="light"]) .rec-card td:last-child,
  .calendar-page:not([data-theme="light"]) .rec-card .sub,
  .calendar-page:not([data-theme="light"]) .deadline .info .desc { color: #c2cbd3; }
  .calendar-page:not([data-theme="light"]) .deadline .info .title { color: #edf0ed; }
  .calendar-page:not([data-theme="light"]) .penalties { background: var(--cal-paper); }
}
.calendar-page[data-theme="dark"] { --cal-paper: #111a27; --cal-surface: #1b2838; --cal-ink: #edf0ed; --cal-muted: #bec8d2; --cal-line: #3c4b5d; --cal-teal: #83c9c2; --cal-teal-strong: #9ad8cf; }
.calendar-page[data-theme="dark"] .legend-strip,
.calendar-page[data-theme="dark"] .calendar-section,
.calendar-page[data-theme="dark"] .penalty-section { background: var(--cal-paper); }
.calendar-page[data-theme="dark"] .calendar h2,
.calendar-page[data-theme="dark"] .recurring h2,
.calendar-page[data-theme="dark"] .penalties h2,
.calendar-page[data-theme="dark"] .month-head .m-name,
.calendar-page[data-theme="dark"] .rec-card h3,
.calendar-page[data-theme="dark"] .rec-card td:first-child { color: var(--cal-ink); }
.calendar-page[data-theme="dark"] .penalty-table td, .calendar-page[data-theme="dark"] .penalty-table td:first-child { color: #e0e7e8; }
.calendar-page[data-theme="dark"] .cta-band { background: #1a2b37; color: var(--cal-ink); }
.calendar-page[data-theme="dark"] .cta-band h2 { color: var(--cal-ink); }
.calendar-page[data-theme="dark"] .hero-card { background: #1b2838; color: #edf0ed; border-color: #465568; }
.calendar-page[data-theme="dark"] .hero-card-head { background: #26384a; color: #edf0ed; border-color: #465568; }
.calendar-page[data-theme="dark"] .hero-card-body .row .v { color: #edf0ed; }
.calendar-page[data-theme="dark"] .hero-card-foot { background: #223346; color: #d6dfe2; }
.calendar-page[data-theme="dark"] nav.cm-breadcrumb { border-color: var(--cal-line); }
.calendar-page[data-theme="dark"] .month-head { background: #26384a; }
.calendar-page[data-theme="dark"] .month-head .m-year { color: #c4ced5; }
.calendar-page[data-theme="dark"] .recurring { background: #172536; }
.calendar-page[data-theme="dark"] .rec-card td:last-child,
.calendar-page[data-theme="dark"] .rec-card .sub,
.calendar-page[data-theme="dark"] .deadline .info .desc { color: #c2cbd3; }
.calendar-page[data-theme="dark"] .deadline .info .title { color: #edf0ed; }
.calendar-page[data-theme="dark"] .penalties { background: var(--cal-paper); }

@media (max-width: 760px) {
  .calendar-page .container { width: min(100% - 28px, 620px); }
  .calendar-page .header-inner { align-items: center; flex-wrap: wrap; padding-block: 12px; }
  .calendar-page .header-cta { justify-content: flex-start; }
  .calendar-page .nav-inner { gap: 2px; }
  .calendar-page .nav-inner a { padding-inline: 8px; }
  .calendar-page .hero > .container { grid-template-columns: 1fr; }
  .calendar-page .hero-card { min-width: 0; }
  .calendar-page .hero-cta, .calendar-page .cta-btns { align-items: stretch; }
  .calendar-page .hero-cta .btn, .calendar-page .cta-btns .btn { width: 100%; }
  .calendar-page .months { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .calendar-page .wa-fab { margin: 18px 14px 24px; }
}
@media (max-width: 420px) {
  .calendar-page .container { width: calc(100% - 24px); }
  .calendar-page .months { grid-template-columns: minmax(0, 1fr); }
  .calendar-page .hero-card-body .row { gap: 8px; }
  .calendar-page .hero-card-body .row .k, .calendar-page .hero-card-body .row .v { overflow-wrap: anywhere; }
  .calendar-page .penalty-table td[data-label]::before { content: attr(data-label) ": "; display: inline; font-weight: 700; color: var(--cal-muted); }
}

@media print {
  .calendar-page { --cal-paper: #fff; --cal-surface: #fff; --cal-ink: #111; --cal-muted: #333; --cal-line: #aaa; background: #fff !important; color: #111 !important; }
  .calendar-page .hero { background: #fff !important; color: #111 !important; }
  .calendar-page .hero h1, .calendar-page .hero h1 .accent, .calendar-page .hero p { color: #111 !important; }
  .calendar-page .month-card, .calendar-page .calendar-card, .calendar-page .month-block, .calendar-page .penalty-table { background: #fff !important; box-shadow: none !important; break-inside: avoid; }
  .calendar-page .penalty-table th { background: #111 !important; color: #fff !important; print-color-adjust: exact; }
  .calendar-page .print-footer { display: block !important; }
  .calendar-page .wa-fab { display: none !important; }
}
