:root{color-scheme:light;--ink:#172e23;--muted:#4a6053;--line:#dce5db;--paper:#f5f7ef;--green:#205940;--surface:#fff;--orange:#8a4518}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Malgun Gothic","Apple SD Gothic Neo",system-ui,sans-serif;line-height:1.55;word-break:keep-all}
a{color:var(--green);text-underline-offset:3px}
button,input,select{font:inherit;color:inherit}
button,select{cursor:pointer}
button{padding:.5rem .75rem;background:#fff;border:1px solid var(--line);border-radius:.55rem}
button:hover,select:hover{border-color:var(--green)}
button:disabled{opacity:.42;cursor:default}
:focus-visible{outline:3px solid #8a4518;outline-offset:3px}
.wrap{width:min(1200px,calc(100% - 48px));margin-inline:auto}
.top{border-bottom:1px solid var(--line);background:#fcfdf8}
.brand{display:flex;align-items:center;gap:.65rem;min-height:62px;font-size:.95rem;font-weight:800}
.mark{display:grid;place-items:center;background:var(--green);color:#fff;border-radius:9px;width:32px;height:32px;font-size:1.2rem}
.edition{margin-left:auto;color:var(--muted);font-size:.8rem}
.admin-link{flex:none;font-size:.78rem}
.edit-form{display:grid;gap:.65rem;margin-top:1rem;max-width:680px}
.edit-form label{display:grid;gap:.25rem;font-weight:700;font-size:.86rem}
.edit-form :is(input,textarea,select){width:100%;padding:.55rem;border:1px solid var(--line);border-radius:.45rem;background:#fff;font:inherit}
.edit-form textarea{resize:vertical}
.edit-form p{margin:0}
.edit-form button{justify-self:start}
.primary{background:var(--green);color:white;border-color:var(--green)}
.admin-section{margin-top:1rem}
.admin-bar{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-top:1rem}
.inbox-entry{padding:.65rem 0;border-bottom:1px solid var(--line);white-space:pre-wrap;overflow-wrap:anywhere}
.hero{position:relative;isolation:isolate;overflow:hidden;margin:24px 0 14px;border-radius:22px;background:#123f32;color:#f4f8e8}
.intro{position:relative;padding:clamp(26px,5vw,60px);z-index:1}
.hero p{margin:.7rem 0 1.2rem;color:#e0efdc}
.hero .eyebrow{color:#d5eaa2}
.eyebrow{font-size:.72rem;letter-spacing:.1em;font-weight:800;margin:0;color:var(--green)}
h1,h2,h3{margin:0;line-height:1.25;letter-spacing:-.045em}
h1{font-size:clamp(1.9rem,5vw,3.55rem)}
h2{font-size:clamp(1.15rem,2.8vw,1.5rem)}
.landscape{position:absolute;inset:0 0 0 42%;opacity:.8;background:url('./fields.svg') center right/cover no-repeat;mask-image:linear-gradient(90deg,transparent,#000 28%)}
.scope{display:inline-block;padding:.35rem .7rem;border:1px solid #82a38e;border-radius:99px;font-size:.8rem;background:#173e32}
.update,.section-title{display:flex;justify-content:space-between;align-items:center;gap:.75rem}
.update{padding:.85rem 1.05rem;background:#e6efe2;border:1px solid #d3e0d1;border-radius:.8rem}
.update p,.notice{margin:.15rem 0 0;font-size:.82rem;color:var(--muted)}
.update button{flex:none;background:#205940;color:white;border-color:#205940;font-weight:700;font-size:.85rem}
.notice{margin:.55rem 0 1.1rem}
.filters{display:grid;grid-template-columns:2fr 1fr;gap:12px;margin-bottom:14px}
.filters label{font-weight:700;font-size:.85rem}
.filters input,.filters select{width:100%;display:block;margin-top:.35rem;background:#fff;border:1px solid var(--line);border-radius:.6rem;padding:.65rem .75rem;min-height:44px}
.search-field{display:flex;gap:.35rem;align-items:stretch;margin-top:.35rem}
.search-field input{margin-top:0;min-width:0}
.search-field button{display:grid;place-items:center;flex:0 0 44px;padding:0;color:#fff;background:var(--green);border-color:var(--green)}
.search-field button:hover{background:#174631}
.workspace{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start;gap:14px}
.panel,.method{background:var(--surface);border:1px solid var(--line);border-radius:1rem}
.panel{padding:1rem;min-width:0}
.section-title{margin-bottom:1rem}
.section-title .eyebrow{margin-bottom:.4rem}
.nav{display:flex;gap:.3rem}
.nav select{background:#f6f8f2;border:1px solid var(--line);border-radius:.55rem;padding:.35rem}
.nav button{min-width:35px;font-weight:800}
.grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.weekdays{text-align:center;font-size:.75rem;color:var(--muted);margin-bottom:.4rem}
.day{min-height:67px;background:#f7f9f3;border:1px solid #eef2e9;border-radius:.4rem;text-align:left;align-content:start;padding:.28rem;min-width:0;font-size:.79rem}
.day:empty{background:none;border:0}
.day.active{background:#eaf2df;border-color:#c9d9bf}
.day[aria-pressed=true]{outline:2px solid var(--green);outline-offset:-2px}
.dots{display:flex;flex-wrap:wrap;gap:2px;margin-top:.2rem}
.tag{display:inline-block;font-size:.68rem;border-radius:.3rem;padding:.08rem .3rem;font-weight:750}
.starts{background:#d8ebd4;color:#22543a}
.ends{background:#fae5ce;color:var(--orange)}
.legend{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem;margin-top:.85rem;color:var(--muted);font-size:.73rem}
.list-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;font-size:.8rem;border-bottom:1px solid var(--line);padding-bottom:.65rem}
#count{background:#eaf1e2;color:var(--green);border-radius:99px;padding:.22rem .55rem;font-size:.83rem;font-weight:800}
#records{max-height:580px;overflow:auto}
.record{border-bottom:1px solid var(--line);padding:.85rem .35rem .85rem 0}
.record h3{font-size:1rem;margin:.4rem 0}
.record p{font-size:.82rem;margin:.28rem 0}
.record a{font-size:.8rem;font-weight:700}
.record-links{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem .65rem}
.record-links button{font-size:.75rem;padding:.22rem .5rem}
.record-links input{width:100%;font-size:.75rem}
.record-links output{font-size:.75rem;color:var(--muted)}
.meta,.empty{color:var(--muted)}
.status{color:var(--orange);font-weight:700}
.method{padding:1rem;margin-top:14px;font-size:.87rem}
summary{cursor:pointer;font-weight:750}
footer{padding:1.4rem 0;color:var(--muted);font-size:.8rem}
.skip{position:absolute;left:.5rem;top:-5rem;background:white;z-index:5;padding:.5rem}
.skip:focus{top:.5rem}
@media(max-width:820px){.workspace{grid-template-columns:1fr}#records{max-height:initial}}
@media(max-width:490px){.wrap{width:calc(100% - 24px)}.hero{margin-top:12px}.landscape{opacity:.35}.wide{display:none}.filters{grid-template-columns:1fr}.update{align-items:flex-start}.update button{font-size:.73rem}.panel{padding:.75rem}.day{min-height:53px}.day .tag{font-size:.59rem;padding:.05rem .13rem}}

.calendar-page {
  --ink:#392418; --muted:#6c5341; --line:#e8d7c2; --paper:#fffaf2;
  --green:#365b38; --orange:#824319; --peach:#ffdfb7; --surface:#fffdfa;
}
.calendar-page .top{background:#fffdfa}
.calendar-page .brand{min-height:75px;gap:clamp(.5rem,2vw,1.5rem)}
.brand-home{display:flex;align-items:center;gap:.6rem;color:var(--ink);text-decoration:none;white-space:nowrap;font-size:1.1rem}
.brand-home img{width:34px;height:40px;object-fit:contain}
.site-nav{display:flex;flex-wrap:wrap;gap:.25rem;font-size:.82rem}
.site-nav a{padding:.42rem .6rem;text-decoration:none;border-radius:.5rem;color:var(--ink)}
.site-nav a:hover,.site-nav a:focus-visible{background:#f7e4cc}
.calendar-page .edition{white-space:nowrap}
.calendar-page .admin-link{border:1px solid var(--line);padding:.34rem .52rem;border-radius:.5rem;text-decoration:none;color:var(--ink)}
.calendar-page .hero{min-height:270px;margin-top:22px;background:#fae9d5;border:1px solid #f0d5b8;color:#392418}
.calendar-page .landscape{inset:0 0 0 36%;opacity:1;mask-image:linear-gradient(90deg,transparent,#000 27%)}
.calendar-page .intro{padding:clamp(24px,3.2vw,44px)}
.calendar-page .hero h1{font-size:clamp(2.45rem,5.1vw,4.1rem);line-height:1.1;letter-spacing:-.075em}
.calendar-page .hero p{color:#513421}
.calendar-page .hero .eyebrow{color:#6f492f;letter-spacing:.01em;font-size:.78rem;margin:0 0 .95rem}
.independent{display:inline-block;background:#9f4026;color:#fff8f2;border-radius:6px;padding:.2rem .5rem;margin-right:.3rem;font-weight:800}
.calendar-page .hero h1+p{display:table;margin:.85rem 0 .65rem;background:#ffe0a5;padding:.22rem .62rem;border-radius:.3rem;font-size:clamp(.94rem,2vw,1.2rem);font-weight:800}
.calendar-page .scope{background:#fff8e6;border-color:#e9cfa6;color:#68492f}
.calendar-page .update{background:#f5eadb;border-color:var(--line)}
.calendar-page .update button,.calendar-page .search-field button{background:#5d422e;border-color:#5d422e;color:white}
.calendar-page .update button:hover,.calendar-page .search-field button:hover{background:#452d1d}
.calendar-page .workspace{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px}
.calendar-page .panel,.calendar-page .method{border-color:#e5c8a7}
.calendar-page .calendar,.tool-card{padding:0;overflow:hidden}
.calendar-title,.tool-card h2{background:linear-gradient(110deg,#ffe7c7,#ffdbac);color:#462912}
.calendar-title{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.85rem 1rem}
.calendar-title h2,.tool-card h2{font-size:clamp(1rem,2.5vw,1.45rem)}
.calendar-title .nav{align-items:stretch}
.calendar-title .nav button{background:#fff8ed;border-color:#e9c7a0;font-size:1.2rem}
.calendar-title .nav select{background:#fff8ed;border-color:#e9c7a0;font-size:clamp(.92rem,2.3vw,1.35rem);font-weight:850}
.calendar-page .grid{gap:1px;background:#ecdcca}
.calendar-page .weekdays{margin:0;font-size:.83rem;font-weight:750}
.calendar-page .weekdays span{background:#fff6ea;padding:.42rem 0}
.calendar-page .day,.calendar-page .day:empty{min-height:clamp(45px,7vw,68px);background:#fffdfa;border:0;border-radius:0}
.calendar-page .day{padding:.3rem .45rem;font-size:.92rem;font-weight:760}
.calendar-page .day:hover:not(:empty){background:#f9ecd8}
.calendar-page .day.active{background:#eef3df}
.calendar-page .day[aria-pressed=true]{outline-color:#6e4b2d}
.calendar-page .weekdays span:first-child,.calendar-page .day[data-weekday="0"]{color:#ad3b2d}
.calendar-page .weekdays span:last-child,.calendar-page .day[data-weekday="6"]{color:#3f5c99}
.calendar-page .legend{padding:.2rem .85rem .85rem}
.tools-stack{display:grid;gap:12px;min-width:0}
.tool-card h2{padding:.62rem .9rem}
.tool-body{padding:.8rem .9rem}
.tool-body p{margin:.15rem 0 .45rem}
.tool-body label{font-size:.83rem;font-weight:750}
.search-field input{background:#fffdfa;border:1px solid var(--line);border-radius:.55rem;padding:.65rem .75rem;width:100%;min-height:44px}
.today-date{font-size:.77rem;font-weight:750;color:var(--muted)}
.today-notice{display:grid;gap:.12rem;padding:.48rem .65rem;margin:.38rem 0;background:#edf2e2;border:1px solid #dce6cf;border-radius:.48rem;text-decoration:none}
.today-notice:hover{text-decoration:underline}
.today-notice strong{font-size:.9rem}
.today-notice small{color:#475941}
.department-options{display:grid;grid-template-columns:1fr 1.35fr;gap:.4rem}
.department-options label{display:flex;align-items:center;justify-content:center;gap:.38rem;border-radius:.5rem;padding:.55rem .35rem;cursor:pointer}
.department-options label:has(input:checked){outline:2px solid #8b674c;outline-offset:2px}
.department-options input{margin:0;accent-color:#745237}
.dept-all{grid-column:1/-1;background:#f6ead9;color:#4e3321}
.dept-farm{background:#e2edd9;color:#314e2e}
.dept-center{background:#f6dfc5;color:#643712}
.calendar-page .results{grid-column:1/-1}
.calendar-page #records{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;max-height:500px;padding:.45rem .1rem}
.calendar-page .record{border:1px solid var(--line);border-radius:.65rem;padding:.7rem .8rem}
.calendar-page .record h3{overflow-wrap:anywhere}
.calendar-page #count{background:#fae8d0;color:#5a3b26}
@media(max-width:820px){
  .calendar-page .workspace{grid-template-columns:1fr}
  .calendar-page #records{max-height:none}
}
@media(max-width:560px){
  .calendar-page .brand{min-height:58px;flex-wrap:wrap;padding:.45rem 0}
  .brand-home{font-size:.88rem;gap:.35rem}
  .brand-home img{width:26px;height:31px}
  .site-nav{order:1;width:100%;font-size:.76rem}
  .site-nav a{padding:.22rem .4rem}
  .calendar-page .edition,.calendar-page .admin-link{font-size:.7rem}
  .calendar-page .hero{min-height:0;margin-top:12px}
  .calendar-page .landscape{inset:0 0 0 20%;opacity:.45;mask-image:linear-gradient(90deg,transparent,#000 65%)}
  .calendar-title{padding:.62rem .62rem}
  .calendar-title .nav button{min-width:32px;padding:.35rem}
  .calendar-page .day{padding:.23rem;font-size:.81rem}
  .calendar-page #records{grid-template-columns:1fr}
}
.brand-group{display:grid;gap:.16rem;padding:.42rem 0}
.brand-group .brand-home strong{font-size:1.32rem}
.unofficial{margin:0;color:#a22920;font-size:.69rem;font-weight:750;line-height:1.4;max-width:470px}
.calendar-options{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .85rem;padding:.55rem .85rem;font-size:.78rem;background:#fffaf2;border-bottom:1px solid var(--line)}
.calendar-options select,.year-filter select{border:1px solid var(--line);border-radius:.35rem;background:#fffdf8;padding:.26rem}
.year-filter{display:flex;align-items:center;gap:.45rem;margin-top:.55rem}
