.date-range-fallback { grid-column:1/-1;display:none; }
.discovery-form:has(#when option[value=range]:checked) .date-range-fallback { display:flex;gap:8px;align-items:center;flex-wrap:wrap; }
.calendar-ready #when,.calendar-ready .date-range-fallback { display:none!important; }
.calendar-trigger { width:100%;height:30px;min-height:0;border:0;background:transparent;padding:0;text-align:left;justify-content:flex-start;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:400 14px var(--gg-font-body); }
@media(hover:hover) and (pointer:fine) {
 .calendar-trigger:hover { background:transparent;color:white; }
}

.date-dialog { width:680px;height:430px;max-width:calc(100vw - 52px);max-height:calc(100dvh - 40px);padding:0;border:1px solid var(--gg-border);border-radius:var(--gg-radius);background:var(--gg-bg-hero);color:var(--gg-text);box-shadow:var(--gg-shadow-pop);overflow:hidden; }
.date-dialog[open] { display:flex;flex-direction:column; }
.date-dialog::backdrop { background:#0009; }
.date-dialog-heading { display:flex;align-items:center;justify-content:space-between;padding:5px 16px;flex:none; }
.date-dialog-heading h2 { font-size:18px;margin:0; }
.date-dialog-heading button { width:36px;height:36px;padding:0; }
.date-dialog-body { display:grid;grid-template-columns:176px minmax(0,1fr);flex:1;min-height:0; }
.date-presets { display:flex;flex-direction:column;gap:4px;padding:8px;border-right:1px solid var(--gg-border);overflow:auto; }
.date-presets button { min-height:36px;text-align:left;justify-content:flex-start;font-size:13px;background:transparent;border:0; }
.date-presets [aria-pressed=true] { background:var(--gg-text-1);color:var(--gg-on-light); }
.date-calendars { min-width:0;padding:0 12px;overflow:auto; }
.date-month-nav { display:flex;align-items:center;justify-content:space-between;min-height:32px; }
.date-month-nav>span { position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%); }
.date-month-nav button { min-height:28px;width:32px;padding:0; }
.date-months { display:grid;grid-template-columns:1fr 1fr;gap:12px; }
.date-months h3 { font:600 13px var(--gg-font-display);margin:0 0 6px;text-align:center; }
.date-grid { display:grid;grid-template-columns:repeat(7,minmax(0,1fr)); }
.date-week,.date-cell { display:contents; }
.date-range-option { display:flex;align-items:center;gap:8px;min-height:44px;font-size:13px;cursor:pointer; }
.date-range-option input { width:18px;height:18px;min-height:0;flex:none;accent-color:var(--gg-text-1); }
.date-keyboard-help { position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%); }
.date-grid .weekday { text-align:center;color:var(--gg-text-3);font-size:11px;height:20px; }
.date-grid button { min-height:38px;height:38px;min-width:0;padding:0;border:0;background:transparent;font-size:12px;border-radius:var(--gg-radius-xs); }
@media(hover:hover) and (pointer:fine) {
 .date-grid button:where(:not(:disabled):not([aria-disabled=true])):hover:not(:disabled) { background:var(--gg-surface-3); }
}

.date-grid .outside-month { visibility:hidden; }
.date-grid .today { box-shadow:inset 0 0 0 1px var(--gg-success); }
.date-grid .in-range { background:var(--gg-border);border-radius:0; }
.date-grid [aria-pressed=true] { background:white!important;color:var(--gg-on-light); }
.date-grid button:disabled { color:var(--gg-text-disabled);cursor:default; }
.date-dialog-footer { display:flex;align-items:center;gap:8px;border-top:1px solid var(--gg-border);padding:12px 16px;flex:none; }
.date-dialog-footer>div { flex:1;min-width:0; }
.date-dialog-footer strong,.date-dialog-footer span { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.date-dialog-footer strong { font-size:13px; }.date-dialog-footer span { font-size:11px;color:var(--gg-text-3); }
.date-apply { min-width:140px;background:white;color:var(--gg-on-light); }
body:has(#date-dialog[open]) .mobile-nav { display:none; }
@media(max-width:999px) { .date-dialog { height:570px; }.date-months { grid-template-columns:1fr; }.date-months [data-month="1"] { display:none; }.date-grid button { height:44px;min-height:44px; }.date-dialog button:not(.calendar-trigger) { min-height:44px; }.date-dialog-heading button,.date-month-nav button { width:44px; } }
@media(max-width:759px) {
 .date-dialog { position:fixed;inset:0;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;border-radius:0; }
 .date-dialog-body { display:flex;flex-direction:column; }
 .date-presets { flex-direction:row;flex:none;overflow-x:auto;border-right:0;border-bottom:1px solid var(--gg-border);padding:8px 16px; }
 .date-presets button { flex:none; }
 .date-calendars { padding:12px 16px;flex:1; }
 .date-months { grid-template-columns:1fr; }.date-months [data-month="1"] { display:none; }
 .date-grid button { height:44px; }
 .date-dialog-footer { flex-wrap:wrap;padding-bottom:calc(12px + env(safe-area-inset-bottom)); }
 .date-dialog-footer>div { flex-basis:100%; }.date-dialog-footer button { flex:1;min-height:48px; }
}

@media(min-width:1000px) {
 .date-field { anchor-name:--discovery-date; }
 .date-dialog { position:fixed;position-anchor:--discovery-date;top:anchor(bottom);right:anchor(right);bottom:auto;left:auto;margin:6px 0 0;position-try-fallbacks:flip-block; }
 .date-dialog::backdrop { background:transparent; }
}

.date-presets button { display:flex;align-items:center;justify-content:space-between;gap:8px; }
.date-preset-count { flex:none;font-size:11px;opacity:.75; }
.date-grid button { position:relative; }.date-grid .has-events:after { content:'';position:absolute;bottom:3px;left:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:var(--gg-success); }.date-grid [aria-pressed=true].has-events:after { background:var(--gg-on-light); }
