/* Shared date controls, independent of browser and page-specific form styles. */
:root{--calendar-ink:#143254;--calendar-muted:#7890aa;--calendar-accent:#10988f;--calendar-range:#e7f5f2;--calendar-border:#dce3ec}
.impact-date-input{min-width:0;width:100%;display:block}
.impact-date-input .impact-date-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:40px;padding:10px 12px;border:1px solid var(--calendar-border);border-radius:8px;background:white;color:var(--calendar-ink);font:inherit;text-align:left;cursor:pointer;box-sizing:border-box}
.impact-date-trigger:disabled{opacity:.5;cursor:default}.impact-date-trigger svg{flex-shrink:0}
.impact-calendar-backdrop{position:fixed;inset:0;z-index:12000;background:#10253a30}
.impact-calendar{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:12001;width:340px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden;border:1px solid var(--calendar-border);border-radius:14px;background:white;box-shadow:0 16px 48px #142d4a26;color:var(--calendar-ink);font-size:13px}
.impact-calendar header{display:flex!important;align-items:center;justify-content:space-between;gap:12px;padding:16px!important;margin:0!important;border-bottom:1px solid #e6ecf3;background:white!important}.impact-calendar header strong{font-size:17px}
.impact-calendar button{font:inherit;color:inherit;cursor:pointer;background:white;border:1px solid var(--calendar-border);border-radius:8px;padding:7px 12px;line-height:1.4}
.impact-calendar header button{width:28px;height:28px;padding:0;border:0;background:#f4f7fa;border-radius:50%;font-size:18px}
.impact-calendar-body{overflow:auto;padding:16px;min-height:0}.impact-calendar nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:14px}.impact-calendar nav button{width:28px;height:28px;padding:0}.impact-calendar nav strong{font-size:14px}
.impact-weekdays,.impact-day-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}.impact-weekdays{font-size:10px;font-weight:600;color:var(--calendar-muted);margin-bottom:8px}
.impact-calendar .impact-day-grid button{height:36px;border:0;padding:0;border-radius:8px;font-size:12px}.impact-calendar .outside{color:#a2acb9}.impact-calendar button.today{box-shadow:inset 0 0 0 1px #99cec8}.impact-calendar button.selected{background:var(--calendar-accent);color:white;font-weight:700}.impact-calendar button:hover:not(:disabled):not(.selected){background:var(--calendar-range)}
.impact-month-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.impact-calendar-body p{color:#627995;font-size:12px;margin:14px 0 0}
.impact-calendar-jump{display:grid;grid-template-columns:1fr 80px;gap:8px;margin-top:12px}.impact-calendar-jump select,.impact-calendar-jump input{box-sizing:border-box;min-width:0;width:100%;font:inherit;font-size:12px;border:1px solid var(--calendar-border);border-radius:8px;padding:7px;color:var(--calendar-ink);background:white}
.calendar-panel .weekday,.performance-calendar .calendar-day-name{color:var(--calendar-muted);background:#f4f7fa;font-weight:600}
.calendar-panel .day,.performance-calendar .calendar-day{border-color:var(--calendar-border)}
.calendar-panel .toolbar button,.performance-calendar .calendar-nav-button{border-color:var(--calendar-border);border-radius:8px;color:var(--calendar-ink);background:white}
.calendar-grid>.weekday,.calendar>.weekday,.calendar-grid>.calendar-day-name{background:#f4f7fa!important;color:var(--calendar-muted)!important;font-weight:600}
.calendar-grid>.calendar-day,.calendar>.day{border-color:var(--calendar-border)!important;color:var(--calendar-ink)}
.calendar-grid>.calendar-day.today,.calendar>.day.today{box-shadow:inset 0 0 0 1px #99cec8}
.month-controls button,.calendar-header .calendar-nav-button{border-radius:8px!important;border-color:var(--calendar-border)!important;color:var(--calendar-ink)!important}
.impact-calendar footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 16px!important;margin:0!important;border-top:1px solid #e6ecf3;background:white;flex-shrink:0}.impact-calendar footer button:first-child{margin-right:auto}.impact-calendar footer .apply{background:var(--calendar-accent);border-color:var(--calendar-accent);color:white}.impact-calendar button:focus-visible,.impact-date-trigger:focus-visible{outline:2px solid var(--calendar-accent);outline-offset:2px}.impact-calendar button:disabled{opacity:.4;cursor:default}
/* Range selection retains its coverage indicators and shares the same date grid. */
.calendar-popup .date-grid,.analysis-day-calendar-grid{gap:3px!important}
.calendar-popup .date,.analysis-day-calendar-date{height:36px!important;border-radius:8px!important;font-size:12px!important}
.calendar-popup .date.selected,.analysis-day-calendar-date.selected-range{background:var(--calendar-range)!important;color:#008d86!important}
.calendar-popup .date.range-start,.calendar-popup .date.range-end,.analysis-day-calendar-date.range-start,.analysis-day-calendar-date.range-end{background:var(--calendar-accent)!important;color:white!important}
.calendar-popup .weekdays,.analysis-day-calendar-weekdays{color:var(--calendar-muted)!important;font-size:10px!important;font-weight:600}
