.cpa-calendar,.cpa-calendar-shell{color:var(--cpa-navy,#0e3a5a);font-family:inherit;max-width:1280px;margin:auto;padding:1.5rem;line-height:1.5}
.cpa-calendar *,.cpa-calendar-shell *{box-sizing:border-box}.cpa-calendar a,.cpa-calendar-shell a{color:var(--cpa-teal,#2b5c65);text-decoration:underline;text-underline-offset:.18em}
.cpa-calendar-breadcrumb{display:flex;gap:.55rem;flex-wrap:wrap;font-size:.875rem;margin-bottom:1rem}
.cpa-calendar-lead{font-size:1.125rem;max-width:65ch}.cpa-calendar-intro-actions{display:flex;gap:1.25rem;align-items:center;flex-wrap:wrap;margin:1.25rem 0 2rem}
.cpa-calendar-toolbar{display:flex;gap:1rem 1.5rem;align-items:center;flex-wrap:wrap;padding:1rem;background:var(--cpa-panel,#edf2f3);border-radius:var(--cpa-radius,4px)}
.cpa-calendar-toolbar h2{font-size:1.5rem;line-height:1.2;margin:0;min-width:11rem;flex:1}.cpa-calendar-controls,.cpa-calendar-filters,.cpa-calendar-jump{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.cpa-calendar-filters{margin:1.25rem 0;gap:1rem}.cpa-calendar-jump{margin:0}
.cpa-calendar button,.cpa-calendar select,.cpa-calendar input{font:inherit;border:1px solid var(--cpa-border,#789099);border-radius:var(--cpa-radius,4px);padding:.6rem .75rem;min-height:44px;background:var(--cpa-white,#fff);color:inherit}.cpa-calendar button{cursor:pointer}.cpa-calendar button:hover,.cpa-calendar button:focus{background:var(--cpa-panel,#edf2f3);color:var(--cpa-navy,#0e3a5a)}.cpa-calendar button[aria-pressed=true]{background:var(--cpa-navy,#0e3a5a);color:var(--cpa-white,#fff)}
.cpa-calendar label{display:flex;gap:.4rem;align-items:center}.cpa-calendar [data-year]{width:6.5rem}.cpa-calendar :is(a,button,input,select,summary):focus-visible,.cpa-calendar-shell :is(a,button,input,select,summary):focus-visible{outline:3px solid var(--cpa-rust,#8f361d);outline-offset:3px}
.cpa-calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.cpa-calendar-grid{min-width:770px;border:1px solid var(--cpa-border,#b9c9ce);border-radius:var(--cpa-radius,4px);overflow:hidden}.cpa-calendar-day{min-height:145px;border-top:1px solid var(--cpa-border,#b9c9ce);border-right:1px solid var(--cpa-border,#b9c9ce);padding:.65rem;min-width:0}.cpa-calendar-day:last-child{border-right:0}.cpa-calendar-dayname{font-size:.875rem;font-weight:700;padding:.65rem;background:var(--cpa-panel,#edf2f3)}.cpa-calendar-day>time{display:inline-flex;align-items:center;justify-content:center;min-width:1.8rem;min-height:1.8rem;font-size:.875rem}.cpa-calendar-outside{background:var(--cpa-panel,#edf2f3)}.cpa-calendar-outside>time{color:var(--cpa-teal,#2b5c65)}
.cpa-calendar-event{border-left:3px solid var(--cpa-teal,#2b5c65);padding:1.25rem;background:var(--cpa-panel,#edf2f3);overflow-wrap:anywhere}.cpa-calendar-event[data-type=deadline]{border-left-color:var(--cpa-rust,#8f361d)}.cpa-calendar-kind{display:block;font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:.35rem}.cpa-calendar-event :is(h3,h4){font-size:1.3rem;line-height:1.3;margin:.35rem 0 .75rem}.cpa-calendar-event p{margin:.6rem 0}.cpa-calendar-event-date{font-weight:600}.cpa-calendar-event-organizer{font-size:.95rem}.cpa-calendar-event-actions{display:flex;align-items:center;gap:.75rem 1.5rem;flex-wrap:wrap;margin-top:1rem}.cpa-calendar-status{display:block;color:var(--cpa-rust,#8f361d);margin:.75rem 0}.cpa-calendar-note{font-size:.875rem}
.cpa-calendar-compact{padding:.45rem .4rem;margin:.5rem 0;border-left-width:3px}.cpa-calendar-compact .cpa-calendar-kind{font-size:.65rem;letter-spacing:.02em;margin-bottom:.2rem}.cpa-calendar button.cpa-calendar-event-title{display:block;text-align:left;white-space:normal;width:100%;min-height:44px;font-size:.875rem;font-weight:700;line-height:1.35;padding:.15rem 0;border:0;border-radius:0;background:transparent;text-decoration:underline;text-underline-offset:.16em}.cpa-calendar-event-time{display:block;font-size:.75rem;line-height:1.35;margin-top:.25rem}.cpa-calendar-list{display:grid;gap:1.5rem}.cpa-calendar [aria-current=date]{font-weight:bold;background:var(--cpa-navy,#0e3a5a);color:var(--cpa-white,#fff);border-radius:50%}
.cpa-calendar-output{overflow-x:auto;margin-top:1rem}.cpa-calendar-mobile-note{display:none}.cpa-calendar-subscribe{margin-block:2rem;padding:1.25rem;border:1px solid var(--cpa-border,#b9c9ce);border-radius:var(--cpa-radius,4px)}.cpa-calendar-subscribe summary{font-weight:700;cursor:pointer}.cpa-calendar-subscribe input{display:block;width:100%;max-width:100%;margin:.5rem 0}.cpa-calendar-download{font-size:.875rem}
.cpa-calendar-dialog{color:inherit;width:min(640px,calc(100% - 2rem));max-height:calc(100vh - 2rem);padding:1.25rem;border:1px solid var(--cpa-border,#789099);border-radius:var(--cpa-radius,4px);background:var(--cpa-white,#fff)}.cpa-calendar-dialog::backdrop{background:rgba(14,58,90,.55)}.cpa-calendar-dialog-close{display:block;margin:0 0 1rem auto}.cpa-calendar-dialog .cpa-calendar-event{margin:0}
@media(max-width:700px){.cpa-calendar,.cpa-calendar-shell{padding:.75rem}.cpa-calendar-toolbar{padding:.75rem;gap:.75rem}.cpa-calendar-toolbar h2{flex-basis:100%}.cpa-calendar-controls{gap:.4rem}.cpa-calendar-controls button{padding:.55rem .65rem}.cpa-calendar-jump{width:100%}.cpa-calendar label{flex-wrap:wrap}.cpa-calendar-filters{align-items:flex-end;gap:.75rem}.cpa-calendar-filters label{display:block;flex:1;min-width:8rem}.cpa-calendar-filters select{display:block;width:100%;margin-top:.25rem}.cpa-calendar-mobile-note{display:block;font-size:.875rem}.cpa-calendar-list{min-width:0}.cpa-calendar-dialog{padding:.75rem}.cpa-calendar-event:where(:not(.cpa-calendar-compact)){padding:1rem}.cpa-calendar-intro-actions{gap:.75rem;margin-bottom:1.5rem}}
@media(prefers-reduced-motion:reduce){.cpa-calendar,.cpa-calendar-shell{scroll-behavior:auto}}

.cpa-calendar-view,.cpa-calendar-navigation{display:flex;align-items:center;gap:0;flex-wrap:nowrap}.cpa-calendar-view{border:1px solid var(--cpa-border,#789099);border-radius:var(--cpa-radius,4px);overflow:hidden}.cpa-calendar-view button{border:0;border-radius:0}.cpa-calendar-navigation{gap:.5rem}.cpa-calendar-controls{gap:.75rem}.cpa-calendar-jump{font-size:.875rem}.cpa-calendar [data-clear]{border:0;background:transparent;text-decoration:underline;text-underline-offset:.18em;padding:.5rem}.cpa-calendar-intro-actions [data-subscribe-open]{border:0;background:transparent;text-decoration:underline;text-underline-offset:.18em;padding:.4rem 0}.cpa-calendar-note{color:var(--cpa-teal,#2b5c65)}
.cpa-calendar-date-picker{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--cpa-border,#b9c9ce);border-radius:var(--cpa-radius,4px);padding:.25rem}.cpa-calendar-date-heading{text-align:center;font-size:.75rem;font-weight:700;padding:.5rem 0}.cpa-calendar button.cpa-calendar-date-button{position:relative;min-width:0;min-height:48px;padding:.35rem .1rem .85rem;border:0;background:transparent;border-radius:var(--cpa-radius,4px);font-size:.875rem}.cpa-calendar button.cpa-calendar-date-button[aria-pressed=true]{background:var(--cpa-navy,#0e3a5a);color:var(--cpa-white,#fff)}.cpa-calendar button.cpa-calendar-date-button[aria-current=date]{box-shadow:inset 0 0 0 2px var(--cpa-teal,#2b5c65);font-weight:700}.cpa-calendar button.cpa-calendar-date-button[aria-current=date]:not([aria-pressed=true]){color:var(--cpa-navy,#0e3a5a)}.cpa-calendar-date-dot{position:absolute;bottom:.05rem;left:0;right:0;text-align:center}.cpa-calendar-selected-day>h3{font-size:1rem;margin:1.25rem 0 .75rem;line-height:1.4}
@media(max-width:700px){.cpa-calendar,.cpa-calendar-shell{padding:1rem}.cpa-calendar-lead{font-size:1rem;margin:.75rem 0}.cpa-calendar-breadcrumb{margin-bottom:.75rem}.cpa-calendar-intro-actions{margin:.5rem 0 1rem;gap:.75rem}.cpa-calendar-controls{gap:.75rem}.cpa-calendar-view button{padding:.6rem .75rem}.cpa-calendar-navigation{gap:.5rem}.cpa-calendar-toolbar{gap:.75rem}.cpa-calendar-filters{margin:.75rem 0;gap:.75rem}.cpa-calendar-help,.cpa-calendar-mobile-note{font-size:.875rem;margin:.5rem 0}.cpa-calendar label{word-break:normal;overflow-wrap:normal}.cpa-calendar [data-status]{margin:.75rem 0}.cpa-calendar-output{overflow-x:visible}}

@media(max-width:700px){.cpa-calendar-toolbar{padding:.5rem}.cpa-calendar-controls{gap:.5rem}.cpa-calendar-navigation{gap:.375rem}.cpa-calendar-navigation button{padding:.55rem .5rem}.cpa-calendar-jump{align-items:flex-end;gap:.5rem}.cpa-calendar-jump label{flex-direction:column;align-items:flex-start;gap:.25rem}.cpa-calendar-jump [data-month]{width:7.5rem}.cpa-calendar-jump [data-year]{width:4.75rem}.cpa-calendar-jump button{padding:.6rem}.cpa-calendar-filters [data-clear]{padding:.4rem 0;min-height:44px}}

.cpa-calendar .cpa-calendar-matching-month{max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:left}

.cpa-calendar [hidden]{display:none!important}.cpa-calendar-search{display:flex;align-items:flex-end;flex-wrap:wrap;gap:.75rem;margin:1.25rem 0 .75rem}.cpa-calendar-search label{flex:1;display:block;min-width:12rem}.cpa-calendar-search input{display:block;width:100%;margin-top:.25rem}.cpa-calendar-search button{white-space:normal}.cpa-calendar-result-month{display:grid;gap:1rem;margin-bottom:2rem}.cpa-calendar-result-month>h3,.cpa-calendar-past-heading{font-size:1.35rem;line-height:1.3;margin:1rem 0 .25rem}.cpa-calendar-past-toggle{margin:.75rem 0;min-height:44px}.cpa-calendar-past-toggle input{min-height:0;width:1.2rem;height:1.2rem}.cpa-calendar-output>.cpa-calendar-matching-month{margin:0 .75rem 1rem 0}

/* Native page intro owns the outer shell; the runtime keeps its own controls. */
.cpa-calendar-shell .cpa-calendar{max-width:none;margin:0;padding:0}
