/* Custom presentation; original names and values remain the form's data source. */
.control-source { display: none !important; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.custom-control { position:relative; width:100%; min-width:0; }
.custom-control > button { margin:0; }
.select-trigger { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:48px; padding:11px 12px; border:1px solid #82948a; border-radius:8px; background:var(--white); text-align:left; font-size:16px; font-weight:400; line-height:1.5; }
.select-trigger:hover:not(:disabled), .control-toggle:hover:not(:disabled) { background:var(--pale); }
.select-trigger[aria-expanded=true] { border-color:var(--green); }
.select-trigger svg, .control-toggle svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
.select-trigger[aria-expanded=true] svg { transform:rotate(180deg); }
.control-value { overflow-wrap:anywhere; }
.control-toggle { position:absolute; top:1px; right:1px; width:44px; height:46px; display:grid; place-items:center; border:0; border-radius:0 7px 7px 0; background:transparent; color:var(--green); }
.field .date-text, .field .suggestion-input, .search-question .suggestion-input { padding-right:48px !important; }
.select-trigger[aria-invalid=true], .date-text[aria-invalid=true] { border:2px solid var(--error) !important; }
.control-popup { position:fixed; inset:auto; margin:0; padding:8px; box-sizing:border-box; border:1px solid #b2c2b7; border-radius:12px; background:var(--white); color:var(--ink); box-shadow:0 8px 28px #163c3426; z-index:1000; overflow:auto; overscroll-behavior:contain; font-size:16px; }
.control-popup:not(:popover-open) { display:block; }
.option-list { max-height:280px; overflow-y:auto; overscroll-behavior:contain; }
.select-option { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:46px; padding:10px 12px; border-radius:6px; cursor:pointer; overflow-wrap:anywhere; }
.select-option.highlighted { background:var(--pale); outline:2px solid var(--green); outline-offset:-2px; }
.select-option[aria-selected=true] { color:var(--green); font-weight:650; }
.select-option[aria-selected=true]::after { content:''; width:8px; height:4px; border-left:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(-45deg); flex-shrink:0; margin-right:4px; }
.control-popup .option-search { width:100%; min-height:46px; padding:10px 12px; margin-bottom:8px; border:1px solid #82948a; border-radius:6px; font-size:16px; background:white; }
.option-empty { padding:12px; }
.calendar-popup { padding:12px; }
.calendar-header { display:flex; align-items:center; justify-content:space-between; gap:4px; margin-bottom:10px; }
.calendar-header>button { width:44px; min-width:44px; height:44px; border:0; background:transparent; border-radius:6px; font-size:26px; }
.calendar-heading { display:flex; justify-content:center; flex-wrap:wrap; }
.calendar-heading button { min-height:44px; border:0; background:transparent; border-radius:6px; padding:8px; font-size:16px; font-weight:650; text-decoration:underline; text-underline-offset:4px; }
.calendar-grid { display:grid; gap:2px; }
.calendar-grid.days { grid-template-columns:repeat(7,minmax(0,1fr)); }
.calendar-grid.months, .calendar-grid.years { grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.calendar-weekday { text-align:center; font-size:12px; color:var(--muted); padding:7px 0; }
.calendar-grid button { padding:4px; min-width:0; min-height:44px; border:1px solid transparent; border-radius:6px; color:var(--ink); background:transparent; font-size:15px; font-variant-numeric:tabular-nums; }
.calendar-grid.months button, .calendar-grid.years button { min-height:48px; font-size:14px; }
.calendar-grid button.outside-month { color:var(--muted); }
.calendar-grid button[aria-current=date] { border-color:var(--green); }
.calendar-grid button.selected { background:var(--green); color:white; font-weight:600; }
.calendar-grid button:disabled { color:#69766d; opacity:.45; }
.calendar-grid button:not(.selected):not(:disabled):hover, .calendar-header button:not(:disabled):hover { background:var(--pale); }
.calendar-grid button:focus-visible { outline-offset:-3px; }
.calendar-grid button.selected:focus-visible { outline-color:#d8eb98; }
.calendar-footer { display:flex; justify-content:space-between; border-top:1px solid var(--line); margin-top:10px; }
.calendar-footer button { min-height:44px; padding-inline:8px; }
@media (prefers-reduced-motion:reduce) { .control-popup *, .select-trigger svg { transition:none; } }
@media print { .control-popup, .control-toggle { display:none !important; } }
