/* Shared date-range control and branded Flatpickr calendar. */
.date-range-control{position:relative;display:block;margin-top:7px}
.date-range-control input{margin:0;padding-right:38px;font-weight:600;cursor:pointer;min-height:48px}
.date-range-control svg{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:18px;height:18px;pointer-events:none}
.vv-date-calendar{font-family:Archivo,system-ui,sans-serif;background:var(--surface);color:var(--ink);border:1px solid var(--control);border-radius:0;box-shadow:none;padding:10px 0 0;z-index:40;max-height:calc(100dvh - 24px);overflow-y:auto}
.vv-date-calendar::before,.vv-date-calendar::after{display:none}
.vv-date-calendar .flatpickr-months{padding-bottom:8px}
.vv-date-calendar .flatpickr-month,.vv-date-calendar .flatpickr-current-month{height:40px;color:var(--ink)}
.vv-date-calendar .flatpickr-current-month{font-size:var(--text-small);padding-top:10px}
.vv-date-calendar .flatpickr-current-month span.cur-month{font-weight:600}
.vv-date-calendar .flatpickr-current-month input.cur-year{font-size:inherit;min-height:0;border:0;cursor:text;padding:0 0 0 4px;font-weight:500}
.vv-date-calendar .flatpickr-months .flatpickr-prev-month,.vv-date-calendar .flatpickr-months .flatpickr-next-month{height:44px;width:36px;top:4px;padding:12px 10px;color:var(--ink)}
.vv-date-calendar .flatpickr-weekday{font-size:var(--text-caption);color:var(--muted);font-weight:500;background:var(--surface)}
.vv-date-calendar .flatpickr-day{font-size:var(--text-small);color:var(--ink);border-radius:0}
.vv-date-calendar .flatpickr-day.prevMonthDay,.vv-date-calendar .flatpickr-day.nextMonthDay{color:var(--muted)}
.vv-date-calendar .flatpickr-day:hover,.vv-date-calendar .flatpickr-day:focus{background:var(--hover);border-color:var(--control)}
.vv-date-calendar .flatpickr-day.inRange{background:#fff0e9;border-color:#fff0e9;box-shadow:-5px 0 0 #fff0e9,5px 0 0 #fff0e9}
.vv-date-calendar .flatpickr-day.selected,.vv-date-calendar .flatpickr-day.startRange,.vv-date-calendar .flatpickr-day.endRange{background:var(--deep);border-color:var(--deep);color:#fff;box-shadow:none;border-radius:0}
.vv-date-calendar .flatpickr-day.today:not(.selected):not(.inRange){border-color:var(--deep)}
.vv-date-calendar .flatpickr-day:focus-visible{outline:2px solid var(--ink);outline-offset:-3px}
.date-range-footer{display:flex;align-items:center;gap:16px;justify-content:space-between;padding:12px 16px;margin-top:8px;border-top:1px solid var(--line)}
.date-range-hint{font-size:var(--text-caption);color:var(--muted);margin:0;max-width:38ch}
.date-range-footer button{font-size:var(--text-small);white-space:nowrap;min-height:40px;padding:8px 10px;border:0;color:var(--deep);text-decoration:underline;text-underline-offset:3px}
@media(max-width:700px){
 .vv-date-calendar{--text-caption:.875rem;width:min(336px,calc(100vw - 24px))!important}
 .vv-date-calendar .flatpickr-days{width:100%!important}
 .vv-date-calendar .dayContainer{width:100%;min-width:0;max-width:none}
 .vv-date-calendar .flatpickr-rContainer{width:100%}
 .vv-date-calendar .flatpickr-day{height:44px;line-height:42px;max-width:none}
 .date-range-footer{align-items:start;gap:10px;padding:10px 12px}
 .date-range-hint{max-width:21ch}
}
.vv-date-calendar .flatpickr-day.startRange.startRange,.vv-date-calendar .flatpickr-day.endRange.endRange{border-radius:0}

.date-range-presets{display:flex;flex-wrap:wrap;gap:4px;padding:10px 12px;border-bottom:1px solid var(--line)}.date-range-presets button{min-height:40px;padding:8px 10px;font-size:var(--text-small);border:0;background:transparent}.date-range-presets button:hover,.date-range-presets button:focus-visible{background:var(--deep);color:white}.chart-time-controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.chart-time-controls label{display:grid;gap:6px;font-size:var(--text-small);min-width:110px}.chart-time-controls select,.chart-time-controls .select-trigger,.chart-time-controls .map-date-shortcut{box-sizing:border-box;height:48px;min-height:48px;padding-block:10px}

/* Keep the day columns and weekday headings on the same grid in either mode. */
.vv-date-calendar[data-months="2"]{width:624px!important}
.vv-date-calendar[data-months="1"]{width:336px!important}
.vv-date-calendar .flatpickr-months{position:relative}
.vv-date-calendar .flatpickr-rContainer,.vv-date-calendar .flatpickr-days{width:100%!important}
.vv-date-calendar .dayContainer{flex:1 1 0;width:0!important;min-width:0;max-width:none}
.vv-date-calendar .flatpickr-day{flex-basis:14.285714%;width:14.285714%;max-width:none}
.vv-date-calendar .date-range-presets{gap:2px;padding:8px}
.vv-date-calendar .date-range-presets button{padding:8px;font-size:14px}
@media(max-width:700px){.vv-date-calendar[data-months]{width:min(336px,calc(100vw - 24px))!important}}
