.hc{--hc-blue:#315d82;--hc-red:#a62d42;--hc-red-bg:#fff0f1;--hc-short:#815b00;--hc-short-bg:#fff2c6;--hc-weekend:#eaf0f5;--hc-observance:#24633f;--hc-observance-bg:#e7f4e9;min-width:0}
html[data-mode="dark"] .hc{--hc-blue:#aecde8;--hc-red:#ffb3be;--hc-red-bg:#49232f;--hc-short:#ffe08a;--hc-short-bg:#493b17;--hc-weekend:#263541;--hc-observance:#a5deb7;--hc-observance-bg:#203d2a}
.hc-heading{margin-bottom:22px}.hc-eyebrow{color:var(--primary);font-weight:650;font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin:0 0 12px}.hc-controls,.hc-actions,.hc-years,.hc-display-controls,.hc-view-switch{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.hc-controls,.hc-display-controls{justify-content:space-between}.hc-years a{display:grid;place-items:center;min-width:66px;min-height:46px;padding:8px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font-weight:650;text-decoration:none;font-variant-numeric:tabular-nums}.hc-years a[aria-current]{background:var(--accent);color:var(--accent-ink,#fff);border-color:var(--accent);box-shadow:0 3px 0 var(--card-rim)}.hc-actions button{min-height:44px;padding:8px 14px;font-size:13px}.hc-hint{color:var(--muted);font-size:13px;line-height:1.6;margin:12px 0 18px}.hc-overview{display:grid;grid-template-columns:1fr 1.5fr;gap:20px;margin:24px 0}.hc-next{padding:22px 24px;background:var(--tint);border:1px solid var(--tint-line);border-radius:18px}.hc-next>span{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.07em}.hc-next>strong{display:block;font-size:23px;margin:9px 0;line-height:1.25}.hc-next p{font-size:13px;color:var(--muted);margin:0}.hc-countdown{margin-top:14px;font-size:13px;color:var(--muted)}.hc-countdown b{font-size:25px;color:var(--ink);margin-right:6px}.hc-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;height:100%}.hc-stats>div{padding:15px 18px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.hc-stats strong{display:block;font-size:29px;font-variant-numeric:tabular-nums;line-height:1.15}.hc-stats span{display:block;margin-top:6px;font-size:12px;line-height:1.4;color:var(--muted)}.hc-view-switch{padding:4px;background:var(--surface-soft);border:1px solid var(--line);border-radius:12px;gap:4px}.hc-view-switch button{min-height:42px;padding:8px 20px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);font-weight:600}.hc-view-switch button[aria-pressed="true"]{background:var(--surface);color:var(--ink);border-color:var(--line);box-shadow:0 2px 4px #0000000d}.hc-toggle{min-height:46px;max-width:100%;padding:10px 16px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface);color:var(--ink);font-size:13px;font-weight:600;line-height:1.5;box-shadow:0 3px 0 var(--card-rim),0 4px 8px #0000000a;cursor:pointer}.hc-toggle:hover{background:var(--surface-soft)}.hc-toggle[aria-pressed="true"]{background:var(--hc-observance-bg);color:var(--hc-observance);border-color:var(--hc-observance);box-shadow:inset 0 2px 3px #00000014}.hc-toggle:disabled{opacity:.5;cursor:default}.hc-legend{display:flex;flex-wrap:wrap;gap:10px 18px;margin:20px 0;font-size:12px;color:var(--muted)}.hc-legend>span{display:inline-flex;align-items:center;gap:7px}.hc-legend>span[hidden]{display:none}.hc-legend i{display:inline-block;width:14px;height:14px;flex:none;border-radius:4px}.hc-legend-regular{border:1px solid var(--hc-blue)}.hc-legend-weekend{background:var(--hc-weekend);border:1px solid var(--line-strong)}.hc-legend-short{background:var(--hc-short-bg);border:1px solid var(--hc-short)}.hc-legend-holiday{background:var(--hc-red-bg);border:1px solid var(--hc-red)}.hc-legend-observance{background:var(--hc-observance-bg);border:1px solid var(--hc-observance)}.hc-legend-today{border:2px solid var(--primary);border-radius:50%!important}.hc-selection{position:sticky;top:8px;z-index:3;box-shadow:0 2px 8px #0000000b;border-left:3px solid var(--accent);background:var(--surface-soft);padding:12px 16px;min-height:86px;border-radius:0 10px 10px 0}.hc-selection>strong{display:block;font-size:14px}.hc-selection>span{font-size:12px;color:var(--muted)}.hc-selection p{margin:5px 0 0;font-size:13px}.hc-year-title{font-size:20px;margin:24px 0 16px}.hc-calendar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.hc-calendar[hidden],[data-holiday-list][hidden]{display:none}.hc-month{padding:17px 15px 12px;border:1px solid var(--line);background:var(--surface);border-radius:16px;min-width:0}.hc-month table{width:100%;border-collapse:separate;border-spacing:3px;table-layout:fixed}.hc-month caption{text-align:left;text-transform:capitalize;color:var(--ink);font-weight:650;font-size:16px;padding:0 0 12px}.hc-month th{font-weight:500;color:var(--muted);font-size:10px;text-align:center;height:23px}.hc-month td{padding:0;border-radius:7px;height:32px}.hc-weekend-cell{background:var(--hc-weekend)}.hc-day{position:relative;display:grid;place-items:center;width:100%;min-height:32px;padding:4px 0;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--hc-blue);font-size:12px;font-weight:550;font-variant-numeric:tabular-nums;cursor:pointer}.hc-day.is-weekend{color:var(--muted)}.hc-day.is-holiday{color:var(--hc-red);background:var(--hc-red-bg);font-weight:750}.hc-day.is-shortened{color:var(--hc-short);background:var(--hc-short-bg);font-weight:750}.hc-day.is-today{border:2px solid var(--primary)}.hc-day.is-selected{box-shadow:inset 0 0 0 1px var(--ink)}.hc-day:hover{outline:1px solid var(--line-strong)}.hc-month-foot{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;font-size:11px;color:var(--muted);margin:10px 0 0;padding-top:10px;border-top:1px solid var(--line)}.hc-month-foot strong{color:var(--ink)}.hc-table-scroll{overflow-x:auto}.hc-events,.hc-month-totals{width:100%;border-collapse:collapse;text-align:left}.hc-events{background:var(--surface);border:1px solid var(--line)}.hc-events th,.hc-events td{padding:14px 18px;border-bottom:1px solid var(--line)}.hc-events thead,.hc-month-totals thead{background:var(--surface-soft);font-size:12px;color:var(--muted)}.hc-events td:first-child{width:180px;white-space:nowrap}.hc-events time{font-variant-numeric:tabular-nums;font-weight:600;font-size:14px}.hc-events small,.hc-event-kind{display:block;font-size:12px;color:var(--muted);margin-top:4px}.hc-events td>strong{font-size:14px}.hc-section{margin-top:30px}.hc-section h2{font-size:20px}.hc-breaks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.hc-breaks article{background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:16px}.hc-breaks strong{font-size:25px}.hc-breaks strong span{font-size:12px;font-weight:500;color:var(--muted)}.hc-breaks p{font-size:12px;color:var(--muted);line-height:1.6;margin:7px 0 0}.hc-monthly{margin-top:24px;border:1px solid var(--line);border-radius:13px;background:var(--surface);padding:16px}.hc-monthly summary{cursor:pointer;font-weight:650;min-height:28px}.hc-month-totals caption{text-align:left;font-weight:650;margin:16px 0}.hc-month-totals td,.hc-month-totals th{padding:10px;border-bottom:1px solid var(--line);font-size:12px}.hc-month-totals td{text-align:left;font-variant-numeric:tabular-nums}.hc-month-totals tbody th{text-transform:capitalize;font-weight:500}.hc-month-totals tfoot{font-weight:700}.hc-related a{display:inline-block;margin:6px 22px 6px 0;min-height:36px;font-size:14px}.hc-error{color:var(--hc-red);padding:12px;border:1px solid var(--hc-red);border-radius:8px}.hc :is(button,a,input):focus-visible{outline:3px solid var(--focus);outline-offset:3px}
@media(min-width:1550px){.hc-calendar{grid-template-columns:repeat(4,minmax(0,1fr))}}
.hc-events .hc-event-kind{display:block;width:fit-content;max-width:100%;margin-top:8px;padding:4px 8px;border-radius:6px;font-size:12px;font-weight:500;line-height:1.45}
.hc-event-public .hc-event-kind,.hc-event-national .hc-event-kind{color:var(--hc-red);background:var(--hc-red-bg)}
.hc-event-shortened .hc-event-kind{color:var(--hc-short);background:var(--hc-short-bg)}
.hc-event-observance .hc-event-kind{color:var(--hc-observance);background:var(--hc-observance-bg)}
.hc-intro-row{display:flex;align-items:center;justify-content:space-between;gap:24px}
.hc-intro-row .lede{margin:0;max-width:72ch;flex:1;min-width:0}
.hc-intro-row .hc-actions{flex:none;flex-wrap:nowrap}
.hc-year-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin:16px 0 0}
.hc-display-controls[hidden]{display:none}
.hc-overview{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr) minmax(0,1fr)}
.hc-selection{position:static;min-height:0;padding:22px 24px;box-shadow:none;border:1px solid var(--line);border-radius:18px;background:var(--surface)}
.hc-selection>strong{font-size:18px;line-height:1.4;margin-bottom:9px}
.hc-selection>span{font-size:13px;line-height:1.5}
.hc-selection p{font-size:13px;line-height:1.6;margin-top:12px;color:var(--muted)}
.hc-selection>.hc-selection-label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:10px}
.hc-selected-date{width:fit-content;max-width:100%;font-variant-numeric:tabular-nums}.hc-selected-date.is-current-day{padding:9px 12px;border-radius:9px;background:var(--hc-observance-bg);color:var(--hc-observance)}.hc-selected-date small{display:block;font-size:13px;font-weight:500;margin-top:3px}.hc-selected-date time{white-space:nowrap}
.hc-month{display:flex;flex-direction:column}
.hc-month table{margin-bottom:10px}
.hc-month-foot{margin-top:auto}
.hc-day.is-observance{background:var(--hc-observance-bg);color:var(--hc-observance);font-weight:650}
.hc-day.is-observance.is-holiday{background:linear-gradient(135deg,var(--hc-red-bg) 50%,var(--hc-observance-bg) 50%);color:var(--hc-red)}
.hc-day.is-observance.is-shortened{background:linear-gradient(135deg,var(--hc-short-bg) 50%,var(--hc-observance-bg) 50%);color:var(--hc-short)}
@media(max-width:1100px){.hc-intro-row{align-items:flex-start;gap:16px}.hc-intro-row .hc-actions{max-width:42%;flex-wrap:wrap}.hc-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.hc-overview>[data-holiday-stats]{grid-column:auto}.hc-overview>.hc-next{grid-column:1/-1}.hc-overview .hc-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.hc-intro-row{flex-direction:column}.hc-intro-row .hc-actions{max-width:none;width:100%}.hc-overview>[data-holiday-stats]{grid-column:auto}.hc-overview>.hc-next{grid-column:auto}.hc-overview .hc-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.hc-selection{padding:18px}}

@media print{.print-report .hc-events .hc-event-kind{display:inline-block;padding:1mm 2mm;margin-top:1mm;border:1px solid #ccc;font-size:8pt}}
@media(max-width:1100px){.hc-calendar{grid-template-columns:repeat(2,minmax(0,1fr))}.hc-breaks{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.hc-overview{grid-template-columns:1fr;gap:12px}.hc-controls{gap:14px}.hc-years{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.hc-years a{min-width:0}.hc-actions{width:100%}.hc-actions button{flex:1}.hc-calendar{grid-template-columns:1fr}.hc-month{padding:18px}.hc-month th{font-size:12px}.hc-day{min-height:40px;font-size:14px}.hc-display-controls{align-items:flex-start;gap:12px}.hc-selection{min-height:100px}.hc-events th,.hc-events td{padding:12px 10px}.hc-events td:first-child{width:115px}.hc-breaks{grid-template-columns:1fr}.hc-legend{gap:10px 14px}.hc-events time{font-size:12px}.hc-stats span{font-size:12px}}
@media print{html .print-report .hc{--hc-blue:#264c6c;--hc-red:#9a1f32;--hc-red-bg:#fff0f1;--hc-short:#815b00;--hc-short-bg:#fff2c6;--hc-weekend:#eee;--hc-observance:#24633f;--hc-observance-bg:#e7f4e9;--ink:#111;--muted:#444;--line:#ccc;--line-strong:#888;--surface:#fff;--surface-soft:#f6f6f6;--accent:#1c6246;print-color-adjust:exact;-webkit-print-color-adjust:exact}.print-report .hc-calendar{grid-template-columns:repeat(3,minmax(0,1fr));gap:4mm}.print-report .hc-month{break-inside:avoid;padding:3mm;border-radius:2mm}.print-report .hc-month table{border-spacing:1px}.print-report .hc-day{min-height:6mm;font-size:9pt;padding:0}.print-report .hc-month td{height:6mm}.print-report .hc-month caption{font-size:11pt;padding-bottom:2mm}.print-report .hc-month-foot{font-size:7pt}.print-report .hc-stats{grid-template-columns:repeat(4,1fr);margin:4mm 0}.print-report .hc-stats>div{padding:3mm}.print-report .hc-stats strong{font-size:18pt}.print-report .hc-events tr{break-inside:avoid}.print-report .hc-events th,.print-report .hc-events td{padding:2mm}.print-report .hc-events td>strong,.print-report .hc-events time{font-size:10pt}.print-report .hc-events small,.print-report .hc-event-kind{font-size:8pt}.print-report .hc-legend{font-size:8pt;gap:2mm 4mm}.print-report .hc-hint{font-size:8pt}}


html[data-mode=dark] .hc-toggle{background:var(--surface);color:var(--hc-observance);border-color:color-mix(in srgb,var(--hc-observance) 35%,var(--line))}
html[data-mode=dark] .hc-toggle[aria-pressed=true]{background:var(--surface-soft);border-color:color-mix(in srgb,var(--hc-observance) 55%,var(--line));box-shadow:inset 3px 0 0 var(--hc-observance),inset -3px 0 0 var(--hc-observance)}
html[data-mode=dark] .hc-selected-date.is-current-day{background:var(--surface-soft);color:var(--ink);border-inline:3px solid var(--hc-observance)}
html[data-mode=dark] .hc-selected-date.is-current-day small{color:var(--muted)}
