/* The calendar is its own dialog so it stays usable above forms and on phones. */
.calendar-picker{box-sizing:border-box;width:52rem;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);margin:auto;padding:0;border:1px solid #bfd0c0;border-radius:1rem;background:#fff;color:#294333;box-shadow:0 24px 80px #173b293b;overflow:hidden;font:inherit}
.calendar-picker[open]{display:flex;flex-direction:column}
.calendar-picker::backdrop{background:#173b295c;backdrop-filter:blur(3px)}
.calendar-picker [hidden]{display:none!important}
.calendar-picker>*{box-sizing:border-box;min-width:0}
.calendar-picker-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-shrink:0;padding:1rem 1.25rem;border-bottom:1px solid #dde7dc;background:#fff}
.calendar-picker-header>div{min-width:0;flex:1 1 auto}
.calendar-picker-eyebrow{margin:0 0 .375rem;color:#526b59;font-size:.875rem;line-height:1.45;font-weight:600;overflow-wrap:anywhere}
.calendar-picker-header h2{margin:0;color:#294333;font-size:1.375rem;line-height:1.3;font-weight:750;letter-spacing:-.025em;overflow-wrap:anywhere}
.calendar-picker-close{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;min-height:44px;padding:0;border:1px solid #d3dfd1;border-radius:.625rem;background:#f6faf3;color:#435e4c;font:inherit;font-size:1.75rem;line-height:1;cursor:pointer}
.calendar-picker-close:hover{border-color:#8bad92;background:#eaf2e6;color:#195b43}
.calendar-picker-body{flex:1 1 auto;min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:1.125rem 1.25rem}
.calendar-picker-shortcuts{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem;min-width:0}
.calendar-picker-shortcuts .button{min-width:0;min-height:44px;max-width:100%;white-space:normal;line-height:1.35;font-size:.9375rem;padding:.5rem .75rem}
.calendar-picker-shortcuts .button[aria-pressed="true"]{border-color:#195b43;background:#e4efdd;color:#195b43;box-shadow:inset 0 0 0 1px #195b43}
.calendar-picker-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr);gap:1.25rem;min-width:0;align-items:start}
.calendar-picker-date,.calendar-picker-time{min-width:0;max-width:100%}
.calendar-picker-navigation{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:.5rem;align-items:end;margin-bottom:.75rem;min-width:0}
.calendar-picker-nav{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-width:44px;width:44px;height:44px;min-height:44px;padding:.5rem;border:1px solid #c6d5c6;border-radius:.625rem;background:#fff;color:#315c3f;cursor:pointer;font:inherit;font-size:1.25rem;line-height:1}
.calendar-picker-nav:hover:not(:disabled){border-color:#7fa488;background:#edf5e9;color:#195b43}
.calendar-picker-nav svg{width:1.125rem;height:1.125rem;flex-shrink:0}
.calendar-picker-nav:disabled{opacity:1;cursor:not-allowed;color:#849188;border-color:#dce4db;background:#f5f7f3}
.calendar-picker-month-fields{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.9fr);gap:.5rem;min-width:0;align-items:end}
.calendar-picker-month-fields>label,.calendar-picker-month,.calendar-picker-year{display:block;min-width:0;max-width:100%;font-size:.875rem;line-height:1.4;color:#526358}
.calendar-picker-month-fields label>span{display:block;margin-bottom:.25rem;font-weight:600}
.calendar-picker-month-fields .custom-select{width:100%;min-width:0;max-width:100%}
.calendar-picker-month-fields .custom-select-trigger.select{min-height:44px;width:100%;padding:.5rem .375rem;gap:.25rem;font-size:.875rem;line-height:1.35}
.calendar-picker-month-fields .custom-select-chevron{width:1rem;height:1rem;flex-basis:1rem}
.calendar-picker-month-fields .input,.calendar-picker-month-fields select{min-width:0;width:100%;min-height:44px;padding:.5rem .375rem;font-size:.875rem}
.calendar-picker-grid-heading{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}
.calendar-picker-grid{width:100%;max-width:100%;min-width:0;table-layout:fixed;border-collapse:separate;border-spacing:3px 4px;margin:0;padding:0;border:0}
.calendar-picker-grid th{width:14.285%;padding:.25rem 0 .375rem;color:#526a59;text-align:center;font-size:.8125rem;line-height:1.35;font-weight:700;white-space:nowrap}
.calendar-picker-grid th abbr{text-decoration:none;border:0;cursor:default}
.calendar-picker-grid td{width:14.285%;min-width:0;padding:0;border:0;text-align:center;vertical-align:middle}
.calendar-picker-day{position:relative;display:flex;align-items:center;justify-content:center;width:100%;min-width:0;min-height:44px;height:2.875rem;margin:0;padding:.125rem;border:2px solid transparent;border-radius:.625rem;background:#f5f8f2;color:#2f4c38;font:inherit;font-size:1rem;line-height:1.25;font-weight:600;font-variant-numeric:tabular-nums;cursor:pointer}
.calendar-picker-day>span{min-width:0}
.calendar-picker-day:hover:not(:disabled){border-color:#9cbba1;background:#e9f2e3;color:#195b43}
.calendar-picker-day[data-outside]:not([data-outside="false"]){background:#fbfcf9;color:#66776b;font-weight:400}
.calendar-picker-day[data-today]:not([data-today="false"]){border-color:#8bad92;background:#f0f6ec;font-weight:750}
.calendar-picker-day[data-today]:not([data-today="false"])::after{position:absolute;left:calc(50% - 2px);bottom:4px;width:4px;height:4px;border-radius:50%;background:currentColor;content:""}
.calendar-picker-grid td[aria-selected="true"] .calendar-picker-day,.calendar-picker-day[aria-pressed="true"]{border-color:#195b43;background:#195b43;color:#fff;font-weight:750;box-shadow:0 2px 3px #173b2914}
.calendar-picker-grid td[aria-selected="true"] .calendar-picker-day:hover,.calendar-picker-day[aria-pressed="true"]:hover{border-color:#124c36;background:#124c36;color:#fff}
.calendar-picker-day:disabled{border-color:transparent;background:#f3f5f1;color:#8a968d;cursor:not-allowed;font-weight:400;opacity:1}
.calendar-picker-day:focus-visible{z-index:1;outline:3px solid #163e2a;outline-offset:1px}
.calendar-picker-nav:focus-visible,.calendar-picker-close:focus-visible,.calendar-picker button:focus-visible,.calendar-picker input:focus-visible{outline:3px solid #195b43;outline-offset:2px}
.calendar-picker input[aria-invalid="true"]{border-color:#a34538;background:#fff8f5}
.calendar-picker input[aria-invalid="true"]:focus-visible{outline-color:#a34538}
.calendar-picker-day:focus-visible{outline-color:#173b29;outline-offset:1px}
.calendar-picker-selection{margin:.875rem 0 0;padding:.75rem .875rem;border:1px solid #ccddca;border-radius:.625rem;background:#eef6e9;color:#315740;font-size:1rem;line-height:1.5;font-weight:650;overflow-wrap:anywhere}
.calendar-picker-time{padding:1rem;border:1px solid #d3dfd0;border-radius:.75rem;background:#f7faf4}
.calendar-picker-time h3{margin:0 0 .875rem;color:#294b34;font-size:1.0625rem;line-height:1.4;font-weight:750;overflow-wrap:anywhere}
.calendar-picker-time-fields{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.5rem;align-items:end;width:100%;max-width:18rem;min-width:0;margin:0 0 .875rem}
.calendar-picker-time-fields>label{display:block;min-width:0;color:#526358;font-size:.875rem;line-height:1.4;font-weight:600}
.calendar-picker-time-fields label>span{display:block;margin-bottom:.375rem}
.calendar-picker-time-fields input{display:block;width:100%;max-width:100%;min-width:0;min-height:48px;padding:.5rem .375rem;border:1px solid #b7cdbb;border-radius:.625rem;background:#fff;color:#294b34;font:inherit;font-size:1.5rem;font-weight:700;line-height:1.25;text-align:center;font-variant-numeric:tabular-nums}
.calendar-picker-time-fields>span{align-self:end;display:block;padding-bottom:.625rem;color:#3e6049;font-size:1.5rem;line-height:1.25;font-weight:700}
.calendar-picker-time-presets{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;min-width:0}
.calendar-picker-time-presets button{min-width:0;min-height:44px;max-width:100%;padding:.5rem .625rem;border:1px solid #c3d4c1;border-radius:.5rem;background:#fff;color:#315b3e;font:inherit;font-size:.9375rem;line-height:1.35;font-weight:650;cursor:pointer;white-space:normal;font-variant-numeric:tabular-nums}
.calendar-picker-time-presets button:hover{border-color:#87a88d;background:#e9f2e4}
.calendar-picker-time-presets button[aria-pressed="true"]{border-color:#195b43;background:#e4efdd;color:#195b43;box-shadow:inset 0 0 0 1px #195b43}
.calendar-picker-help{margin:.75rem 0 0;color:#526358;font-size:.875rem;line-height:1.5;overflow-wrap:anywhere}
.calendar-picker-error{margin:1rem 0 0;padding:.75rem .875rem;border:1px solid #d7a99f;border-radius:.625rem;background:#fff0ed;color:#923d33;font-size:1rem;line-height:1.5;overflow-wrap:anywhere}
.calendar-picker-error:focus{outline:3px solid #a34538;outline-offset:2px}
.calendar-picker-footer{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.625rem;flex-shrink:0;min-width:0;padding:.875rem 1.25rem;border-top:1px solid #dce6d9;background:#fff}
.calendar-picker-summary{flex:1 1 15rem;min-width:0;max-width:100%;margin:0;color:#315740;font-size:.9375rem;line-height:1.45;font-weight:650;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.calendar-picker-footer .button{min-width:0;min-height:44px;max-width:100%;white-space:normal;overflow-wrap:anywhere;font-size:1rem;line-height:1.35}
.calendar-picker-footer .primary{margin-left:auto;font-weight:750}
.calendar-picker[data-date-only="true"]{width:38rem}
.calendar-picker[data-date-only="true"] .calendar-picker-layout{grid-template-columns:1fr}
.calendar-picker[data-date-only="true"] .calendar-picker-time{display:none}
@media(max-width:900px){
  .calendar-picker{width:40rem}
  .calendar-picker-layout{grid-template-columns:1fr}
  .calendar-picker-time{padding:.875rem}
}
html[data-text-size="extra"] .calendar-picker-layout{grid-template-columns:1fr}
@media(max-width:600px){
  .calendar-picker,.calendar-picker[data-date-only="true"]{width:calc(100vw - 16px);max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:.875rem}
  .calendar-picker-header{padding:12px;gap:.625rem}
  .calendar-picker-header h2{font-size:1.25rem}
  .calendar-picker-body{padding:12px}
  .calendar-picker-shortcuts{gap:.375rem;margin-bottom:.75rem}
  .calendar-picker-shortcuts .button{flex:1 1 auto;padding:.5rem .625rem}
  .calendar-picker-layout{gap:.875rem}
  .calendar-picker-navigation{gap:6px}
  .calendar-picker-month-fields{gap:6px}
  .calendar-picker-month-fields .custom-select-trigger.select{padding:.5rem .25rem;gap:.125rem}
  .calendar-picker-month-fields .custom-select-chevron{width:.875rem;height:.875rem;flex-basis:.875rem}
  .calendar-picker-grid{border-spacing:2px 3px}
  .calendar-picker-grid th{font-size:.75rem}
  .calendar-picker-day{height:2.5rem;min-height:44px;border-radius:.5rem}
  .calendar-picker-selection{padding:.625rem .75rem;font-size:.9375rem}
  .calendar-picker-time{padding:.75rem}
  .calendar-picker-footer{gap:.5rem;padding:12px}
  .calendar-picker-summary{flex:1 1 100%;width:100%;font-size:.875rem}
  .calendar-picker-footer .button{flex:1 1 auto;padding:.625rem .75rem}
  .calendar-picker-footer .primary{flex:1.2 1 auto}
}
@media(max-width:359px){
  .calendar-picker-header,.calendar-picker-body,.calendar-picker-footer{padding:8px}
  .calendar-picker-navigation{grid-template-columns:44px minmax(0,1fr) 44px;gap:4px}
  .calendar-picker-month-fields{gap:4px;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
  .calendar-picker-month-fields .custom-select-trigger.select{padding:.5rem .25rem;gap:.125rem;font-size:.8125rem}
  .calendar-picker-grid{border-spacing:1px 3px}
}
