:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#233e3b;background:#f7f5ef;line-height:1.6;--ink:#233e3b;--muted:#526560;--accent:#166456;--line:#d9ded5;--paper:#fffefa}
*{box-sizing:border-box}body{margin:0}header,main,footer{max-width:76rem;margin:auto;padding:1.5rem 2.5rem}main{min-height:75vh;padding-top:3rem;padding-bottom:4rem}a{color:#145e51;text-underline-offset:.22em}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{line-height:1.2}h1,h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.035em}h1{font-size:clamp(2.6rem,5vw,4.35rem);margin-bottom:1rem}h2{font-size:2rem}h3{font-size:1.15rem}h4{font-size:1.45rem;letter-spacing:-.025em;margin:.7rem 0 1rem}.site-header{display:flex;align-items:center;gap:2rem;border-bottom:1px solid var(--line);min-height:6rem}.brand{display:inline-flex;align-items:center;gap:.7rem;font-weight:650;text-decoration:none;white-space:nowrap;color:var(--ink)}.brand-mark{width:2.3rem;height:2.3rem;border-radius:.7rem;background:var(--accent);color:white;font-family:Georgia,serif;font-size:1.8rem;line-height:2rem;text-align:center}.brand-mark span{color:#f3bd88}.header-caption{font-size:.85rem;color:var(--muted)}.site-header form{margin:0 0 0 auto}.sign-out{background:transparent;color:var(--ink);border:1px solid var(--line);margin:0;padding:.45rem .9rem}.sign-out:hover{background:#e8ece4}button{font:inherit;font-weight:600;padding:.7rem 1.2rem;color:#fff;background:var(--accent);border:1px solid var(--accent);border-radius:.55rem;cursor:pointer;margin-top:1rem;min-height:2.8rem}button:hover{background:#104e43}button:disabled{opacity:.55;cursor:not-allowed}a:focus-visible,input:focus-visible,button:focus-visible,summary:focus-visible,iframe:focus-visible{outline:3px solid #aa4b1d;outline-offset:4px}.skip{position:absolute;left:-10000px}.skip:focus{left:1rem;top:.5rem;background:white;padding:1rem;z-index:2}label{display:block;margin-top:.7rem;font-size:.9rem;font-weight:600}input:not([type=checkbox]){display:block;width:min(100%,32rem);padding:.65rem .8rem;font:inherit;background:var(--paper);color:var(--ink);border:1px solid #899b90;border-radius:.45rem}fieldset{background:var(--paper);border:1px solid var(--line);padding:1.5rem;border-radius:.8rem;margin:1.5rem 0}form,article{margin-block:1.2rem}.calendar-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin:0 0 2.4rem}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:.72rem;font-weight:750;color:var(--accent);margin-bottom:.8rem}.intro-copy{font-size:1.05rem;color:var(--muted);margin:0}.quiet-link{font-size:.88rem;font-weight:600;white-space:nowrap}.date-filter{display:grid;grid-template-columns:1fr auto auto auto;align-items:end;gap:1rem;background:#e9eee5;border:1px solid #dce2d6;border-radius:1rem;padding:1.5rem 1.7rem;margin:0 0 3rem}.filter-heading .eyebrow{display:block;margin:0 0 .4rem}.filter-heading p{font-size:.85rem;margin:0;color:var(--muted);max-width:18rem}.date-filter label{margin:0 0 .35rem}.date-filter input{width:10.8rem}.date-filter button{margin:0}.agenda-heading{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:1.3rem;margin-bottom:1.5rem}.agenda-heading h2{margin:0}.agenda-heading .eyebrow{margin-bottom:.5rem}.agenda-day{display:grid;grid-template-columns:10rem minmax(0,1fr);gap:2rem;margin:1.8rem 0 2.2rem}.day-label{font:inherit;line-height:1.5;padding-top:1.1rem}.day-label span{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}.day-label time{display:block;font-family:Georgia,serif;font-size:2.05rem;color:var(--ink)}.event-card{margin:0 0 1rem;padding:1.5rem 1.75rem;background:var(--paper);border:1px solid var(--line);border-left:4px solid #598c79;border-radius:.8rem;box-shadow:0 3px 12px #253d3610}.event-topline{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.event-time{margin:0;color:#355f54;font-size:.85rem;font-weight:650;font-variant-numeric:tabular-nums}.event-tag{display:inline-block;font-family:inherit;font-size:.7rem;letter-spacing:.035em;font-weight:650;border-radius:.35rem;padding:.18rem .5rem;background:#e7eee3;color:#365e4d}.event-cancelled{border-left-color:#a45e42}.cancelled-tag{background:#f7e6da;color:#874527}.event-location{font-size:.9rem;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere;margin-bottom:.7rem}.location-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;font-weight:750;color:#5d7167;margin-right:.35rem}.notes{white-space:pre-wrap;overflow-wrap:anywhere}.event-description{font-size:.92rem;color:#42574d}.event-details{margin-top:1.15rem;border-top:1px solid #e7e9e1;padding-top:.9rem}.event-details summary,.sync-details summary{cursor:pointer;font-size:.85rem;font-weight:600;color:#225d50}.event-details summary::marker{color:#6c8e7f}.event-fields dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.07em;font-weight:700;margin-top:1rem;color:var(--muted)}.event-fields dd{margin-left:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:.92rem}.optional-map p{font-size:.85rem;color:var(--muted)}.map-panel iframe{display:block;width:100%;height:22rem;border:1px solid var(--line);border-radius:.5rem;margin-top:1rem}.map-attribution{margin:.5rem 0}.notice,.coverage-note{padding:.8rem 1rem;border-left:3px solid #a96932;background:#f3eadd;font-size:.9rem;border-radius:0 .4rem .4rem 0}.empty-calendar{text-align:center;padding:3rem 2rem;background:var(--paper);border:1px dashed #a5b8a9;border-radius:.9rem}.empty-calendar p{max-width:31rem;margin:auto;color:var(--muted)}.empty-mark{font-family:Georgia,serif;font-size:3rem;color:#6f917e}.sync-section{margin-top:3rem;padding:2rem 0 0;border-top:1px solid var(--line)}.sync-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.sync-heading h2{margin-bottom:1rem}.source-row{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.3rem 0;border-bottom:1px solid var(--line)}.source-row h3{margin:0 0 .35rem}.source-row p{font-size:.85rem;color:var(--muted);margin-bottom:.4rem}.source-row form{margin:0}.secondary-button{background:transparent;color:var(--accent);margin:0}.secondary-button:hover{background:#e5ece1}.calendar-note{font-size:.8rem;color:var(--muted);margin:1.2rem 0 0;max-width:55rem}footer{border-top:1px solid var(--line);font-size:.8rem;color:var(--muted)}.validation-summary-errors,[role=alert]{color:#9c2020}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}[hidden]{display:none!important}
@media(max-width:1000px){.date-filter{grid-template-columns:1fr 1fr auto}.filter-heading{grid-column:1/-1}.date-filter input{width:100%}.agenda-day{grid-template-columns:7rem minmax(0,1fr);gap:1.2rem}}
@media(max-width:640px){header,main,footer{padding-left:1.2rem;padding-right:1.2rem}main{padding-top:2rem}.site-header{gap:1rem;min-height:5rem}.header-caption{display:none}.calendar-intro{display:block}.calendar-intro>.quiet-link{display:inline-block;margin-top:1.2rem}.date-filter{grid-template-columns:1fr 1fr;padding:1.2rem;gap:.8rem}.date-filter button{grid-column:1/-1}.agenda-day{display:block}.day-label{display:flex;align-items:baseline;gap:.6rem;padding:0;margin:0 0 .8rem}.day-label time{font-size:1.6rem}.event-card{padding:1.2rem}.event-card h4{font-size:1.3rem}.sync-heading,.source-row{display:block}.sync-heading .quiet-link{display:inline-block;margin-bottom:1rem}.source-row form{margin-top:1rem}.source-row button{width:100%}.map-panel iframe{height:19rem}}
.date-filter>div{min-width:0}.date-filter input{min-width:0;max-width:100%}
@media(max-width:640px){.date-filter{grid-template-columns:repeat(2,minmax(0,1fr))}.date-filter input{font-size:.88rem;padding:.65rem .45rem}}

.primary-nav{display:flex;gap:.4rem}.primary-nav a{padding:.45rem .75rem;border-radius:.45rem;text-decoration:none;font-size:.9rem;font-weight:600}.primary-nav a[aria-current=page]{background:#e5ece1;color:#104e43}.primary-nav a:hover{text-decoration:underline}@media(max-width:640px){.site-header{flex-wrap:wrap}.primary-nav{order:3;width:100%;border-top:1px solid var(--line);padding-top:.7rem}.site-header form{margin-left:auto}}
@media(max-width:850px){.site-header{flex-wrap:wrap}.primary-nav{order:3;width:100%;flex-wrap:wrap}.site-header form{margin-left:auto}}

@media(max-width:1100px){.site-header{flex-wrap:wrap}.primary-nav{order:3;width:100%;flex-wrap:wrap}.site-header form{margin-left:auto}}
