/* The original date input remains the form's value and validation source. */
.calendar-native-input,.calendar-sr-only{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.date-picker-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:43px;padding:10px 12px;border:1px solid var(--border);border-radius:7px;background:var(--white);color:var(--ink);font:inherit;font-size:12px;text-align:left;cursor:pointer;transition:border-color .18s,box-shadow .18s}
.date-picker-trigger:hover{border-color:var(--blue)}
.date-picker-trigger[aria-expanded=true]{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}
.date-picker-trigger.is-empty{color:var(--muted)}
.date-picker-trigger[aria-invalid=true]{border-color:#c75b63}
.date-picker-trigger svg{width:19px;height:19px;flex:none;fill:none;stroke:var(--blue);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.date-picker-trigger:focus-visible,.quote-calendar button:focus-visible,.quote-calendar select:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.quote-calendar{position:fixed;inset:auto;margin:0;width:min(350px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;overflow:auto;border:1px solid var(--border);border-radius:18px;background:var(--white);color:var(--ink);box-shadow:0 22px 65px #00143555;font:inherit}
.quote-calendar::backdrop{background:#00143570;backdrop-filter:blur(2px)}
.calendar-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:19px 20px;background:#001e50;color:#fff}
.calendar-eyebrow{display:block;margin-bottom:6px;color:#a1c9ff;font-size:9px;letter-spacing:.13em;font-weight:600}
.calendar-heading h2{margin:0;font-size:19px;line-height:1.3;letter-spacing:-.025em;font-weight:600}
.quote-calendar .calendar-icon{display:grid;place-items:center;flex:none;width:36px;height:36px;padding:0;border:1px solid var(--border);border-radius:50%;background:var(--white);color:var(--ink);font:inherit;font-size:25px;line-height:1;cursor:pointer}
.calendar-heading .calendar-icon{border-color:#ffffff35;background:#ffffff12;color:white;font-size:24px}
.calendar-body{padding:16px}
.calendar-controls{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:12px}
.calendar-period{display:flex;gap:2px;min-width:0;align-items:center}
.quote-calendar .calendar-period select{width:auto;min-width:0;min-height:38px;padding:6px 3px;border:0;border-radius:6px;background:var(--white);color:var(--ink);font:inherit;font-size:13px;font-weight:600;cursor:pointer;box-shadow:none}
.quote-calendar .calendar-grid{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:3px;text-align:center;margin:0}
.quote-calendar .calendar-grid th{height:27px;padding:0;background:none;border:0;font-size:10px;font-weight:600;color:var(--muted);text-align:center;text-transform:none;letter-spacing:0}
.quote-calendar .calendar-grid td{padding:0;border:0}
.quote-calendar .calendar-grid tr:hover{background:none}
.quote-calendar .calendar-day{position:relative;width:100%;height:38px;padding:0;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--ink);font:inherit;font-size:13px;font-weight:400;font-variant-numeric:tabular-nums;cursor:pointer}
.quote-calendar .calendar-day.outside{color:var(--muted);opacity:.55}
.quote-calendar .calendar-day:hover,.quote-calendar .calendar-icon:hover{background:var(--blue-soft);color:var(--ink)}
.quote-calendar .calendar-day.today::after{content:'';position:absolute;width:4px;height:4px;border-radius:50%;bottom:4px;left:calc(50% - 2px);background:var(--blue)}
.quote-calendar .calendar-day.selected{background:var(--blue);color:var(--white);font-weight:600;opacity:1;box-shadow:0 3px 10px #00143525}
.quote-calendar .calendar-day.selected.today::after{background:var(--white)}
.quote-calendar .calendar-day:focus-visible{z-index:1}
.calendar-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.calendar-footer button{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:8px 12px;border:0;border-radius:22px;background:var(--blue-soft);color:var(--ink);font:inherit;font-size:12px;font-weight:600;cursor:pointer}
.calendar-footer #calendar-clear{background:transparent;color:var(--muted)}
.calendar-footer button:hover{box-shadow:inset 0 0 0 1px var(--blue)}
.calendar-today-dot{width:6px;height:6px;border-radius:50%;background:var(--blue)}
.calendar-body #calendar-help{margin:10px 0 0;font-size:9px;color:var(--muted);text-align:center;line-height:1.5}
.quote-calendar button:disabled{opacity:.35;cursor:default;box-shadow:none}
.quote-calendar{color-scheme:light}
:root[data-theme=dark] .quote-calendar{color-scheme:dark}
:root[data-theme=dark] .calendar-heading{background:#0a1d37;border-bottom:1px solid var(--border)}
:root[data-theme=dark] .calendar-heading .calendar-icon{background:var(--blue-soft);border-color:var(--border)}
@media(max-width:480px){.quote-calendar{border-radius:20px}.calendar-body{padding:14px}.quote-calendar .calendar-day{height:40px}.date-picker-trigger{min-height:44px}.calendar-body #calendar-help{display:none}}
@media(prefers-reduced-motion:reduce){.date-picker-trigger{transition:none}}
@media(forced-colors:active){.quote-calendar .calendar-day.today{border-color:Highlight}.quote-calendar .calendar-day.selected{border:2px solid Highlight}.date-picker-trigger,.quote-calendar{border:1px solid ButtonText}}
@media print{.quote-calendar{display:none!important}}
