/* Shared, progressively enhanced form controls. */
main input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]),main select,main textarea{min-height:44px;min-width:0;font-size:1rem;border-radius:8px;transition:border-color .15s,box-shadow .15s;background-color:#fffdf8;color:var(--green)}
main select{appearance:none;padding:12px 40px 12px 12px;border:1px solid #a6b0a5;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23173f32' stroke-width='1.6'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;cursor:pointer}
main textarea{padding:12px;resize:vertical;min-height:120px;line-height:1.6}
main input:hover,main select:hover,main textarea:hover{border-color:#587563}
main input:focus-visible,main select:focus-visible,main textarea:focus-visible{outline:2px solid #305b48;outline-offset:2px;box-shadow:0 0 0 5px #305b4812}
input[type=checkbox],input[type=radio]{accent-color:#173f32;width:20px;height:20px;vertical-align:middle;cursor:pointer}
main :disabled{cursor:not-allowed;opacity:.55}
main [aria-invalid=true],main :user-invalid{border-color:#963a25}
main input[type=file]::file-selector-button{border:0;border-radius:5px;background:#e8edde;color:#173f32;padding:10px 14px;margin-right:12px;font:inherit;cursor:pointer}
.search-bar>label:focus-within{border-radius:8px;box-shadow:0 0 0 3px #305b4820}
.search-bar input,.reference-hero .search-bar input{background:transparent;min-height:44px;height:44px}
.date-control{display:block;min-width:0;width:100%}
.mz-date-field{display:flex;align-items:center;position:relative;min-width:0;width:100%;gap:4px}
.mz-date-field input{width:100%;padding-right:42px;cursor:pointer}
.mz-date-field input::-webkit-calendar-picker-indicator{display:none}
.mz-calendar-trigger{position:absolute;right:2px;top:50%;transform:translateY(-50%);width:40px;height:44px;border:0;border-radius:6px;background:transparent;color:#305b48;display:grid;place-items:center;cursor:pointer}
.mz-calendar-trigger svg,.mz-stepper svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.mz-calendar-trigger:hover,.mz-stepper button:hover:not(:disabled){background:#e8edde}
.mz-stepper{display:grid;grid-template-columns:40px minmax(30px,1fr) 40px;align-items:center;min-width:0;border:1px solid #a6b0a5;border-radius:8px;background:#fffdf8;overflow:visible}
.mz-stepper input,.account-page .mz-stepper input{border:0!important;border-radius:0!important;background:transparent!important;text-align:center;padding:6px 0!important;appearance:textfield;width:100%}
.mz-stepper input::-webkit-inner-spin-button,.mz-stepper input::-webkit-outer-spin-button{appearance:none;margin:0}
.mz-stepper button{display:grid;place-items:center;width:40px;min-height:44px;padding:0;border:0;border-radius:7px;background:transparent;color:#173f32;cursor:pointer}
.search-bar .mz-stepper{background:transparent;border:0;grid-template-columns:32px minmax(24px,1fr) 32px}
.search-bar .mz-stepper button{width:32px}
.mz-password-field{display:block;position:relative}
.mz-password-field input{padding-right:74px!important}
.account-page .mz-password-field button{position:absolute;right:4px;top:50%;transform:translateY(-50%);padding:8px 12px;min-height:40px;background:transparent;color:#305b48;border-radius:6px;font-size:.875rem;font-weight:600}
.mz-character-count{display:block;text-align:right;color:#666b64;font-size:.75rem;margin-top:6px;font-variant-numeric:tabular-nums}
.mz-calendar{position:fixed;inset:0;margin:auto;width:min(376px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:24px;border:1px solid #d9ded2;border-radius:20px;background:#fffdf8;color:#173f32;box-shadow:0 24px 90px #091c2540;overflow:auto;font-family:inherit}
.mz-calendar:not([open]){display:none}.mz-calendar[open]{display:block}
.mz-calendar::backdrop{background:#0a252075;backdrop-filter:blur(4px)}
.mz-calendar button{font:inherit;color:inherit;cursor:pointer;border:0;border-radius:8px;background:transparent;min-height:40px;padding:8px}
.mz-calendar button:hover:not(:disabled){background:#e8edde}
.mz-calendar button:disabled{opacity:.3;cursor:not-allowed}
.mz-calendar button:focus-visible{outline:2px solid #305b48;outline-offset:2px}
.mz-calendar-header,.mz-calendar-navigation,.mz-calendar-footer{display:flex;align-items:center;justify-content:space-between;gap:8px}
.mz-calendar-header h2{font-family:inherit;font-size:1.1rem;margin:0;font-weight:600}
.mz-calendar-header button{font-size:1.5rem;width:40px}
.mz-calendar-navigation{margin:16px 0 12px}.mz-calendar-navigation button{width:40px;font-size:1.25rem}.mz-calendar-navigation p{font-size:1rem}
.mz-calendar-weekdays,.mz-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}
.mz-calendar-weekdays{font-size:.7rem;color:#666b64;margin-bottom:8px}
.mz-calendar-days button{font-size:.875rem;padding:4px;min-width:0;font-variant-numeric:tabular-nums}
.mz-calendar-days button[aria-current=date]{box-shadow:inset 0 0 0 1px #a6b0a5}
.mz-calendar-days button[aria-pressed=true]{background:#173f32;color:#fffdf8}
.mz-calendar-days button[aria-pressed=true]:hover{background:#305b48}
.mz-calendar-footer{border-top:1px solid #d9ded2;padding-top:12px;margin-top:16px;font-size:.875rem}
.mz-calendar-hint{font-size:.75rem;line-height:1.5;color:#666b64;margin:12px 0 0}
@media(max-width:620px){.reference-hero .search-bar>label:nth-child(2),.reference-hero .search-bar>label:nth-child(3){grid-column:1/-1;border:0;padding:0}.reference-hero .search-bar>label:nth-child(2){border-bottom:1px solid var(--line);padding-bottom:12px}.reference-hero .search-bar>label:nth-child(3){padding-bottom:4px}.reference-hero .search-bar>label>span{flex:1;min-width:0}.reference-hero .search-bar input{font-size:1rem!important}.reference-hero{min-height:850px}.mz-calendar{padding:16px}.mz-calendar-days{gap:2px}}
@media(prefers-reduced-motion:reduce){main input,main select,main textarea{transition:none}}
.search-bar .date-control input{position:static;opacity:1;padding-right:42px;height:44px}
