/* Shared dropdown and calendar treatment for dialog forms. */
.modal-select-field,.modal-date-field{position:relative;min-width:0;width:100%}
.modal-content select.modal-native-select{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;opacity:0;pointer-events:none;border:0!important}
.modal-content .modal-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:50px;padding:11px 15px;border:1px solid var(--dialog-field-border);border-radius:10px;background:var(--dialog-field-bg);color:var(--text-primary);font:inherit;font-size:15px;text-align:left;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}
.modal-content .modal-select-trigger::after{content:'';flex:0 0 8px;width:8px;height:8px;margin:-5px 2px 0 0;border-right:2px solid var(--text-secondary);border-bottom:2px solid var(--text-secondary);transform:rotate(45deg);transition:transform .15s}
.modal-content .modal-select-trigger[aria-expanded="true"]::after{transform:translateY(4px) rotate(225deg)}
.modal-content .modal-select-trigger:hover,.modal-content .modal-date-trigger:hover{border-color:var(--border-hover);background:var(--hover-bg)}
.modal-content .modal-select-trigger[aria-expanded="true"],.modal-content .modal-select-trigger:focus-visible,.modal-content .modal-date-trigger:focus-visible{outline:0;border-color:var(--primary-color);box-shadow:0 0 0 3px var(--dialog-ring)}
.modal-content .modal-select-trigger.is-placeholder{color:var(--text-secondary)}
.modal-content .modal-select-trigger[aria-invalid="true"]{border-color:var(--danger-color)}
.modal-content .modal-select-trigger:disabled,.modal-content .modal-date-trigger:disabled{opacity:.55;cursor:not-allowed}
.modal-content .modal-date-field input[type="date"]{width:100%;padding-right:54px;color-scheme:light}
[data-theme="dark"] .modal-content .modal-date-field input[type="date"]{color-scheme:dark}
.modal-content .modal-date-field input[type="date"]::-webkit-calendar-picker-indicator{opacity:0;width:0;margin:0;pointer-events:none}
.modal-content .modal-date-trigger{position:absolute;right:5px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid transparent;border-radius:8px;background:var(--accent-soft);color:var(--primary-color);cursor:pointer}
.modal-content .modal-date-trigger svg{width:19px;height:19px}
.modal-control-popup{position:fixed;z-index:15000;max-height:min(360px,calc(100dvh - 20px));padding:7px;border:1px solid var(--border-color);border-radius:13px;background:var(--bg-primary);color:var(--text-primary);box-shadow:0 20px 50px rgba(8,39,34,.24);overflow:hidden}
.modal-options-popup{display:flex;flex-direction:column}
.modal-options-search{flex:0 0 auto;width:100%;min-height:43px;margin:0 0 5px;padding:9px 11px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font:inherit;font-size:14px}
.modal-options-list{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.modal-option{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;min-height:44px;padding:10px 12px;border:0;border-radius:8px;background:transparent;color:var(--text-primary);font:inherit;font-size:14px;text-align:left;cursor:pointer}
.modal-option:hover,.modal-option:focus-visible{outline:0;background:var(--hover-bg)}
.modal-option[aria-selected="true"]{background:var(--accent-soft);color:var(--primary-color);font-weight:650}
.modal-option[aria-selected="true"]::after{content:'✓';font-size:15px}
.modal-option:disabled{opacity:.45;cursor:not-allowed}
.modal-options-empty{margin:0;padding:18px 12px;color:var(--text-secondary);font-size:13px;text-align:center}
.modal-calendar{padding:13px;max-height:min(410px,calc(100dvh - 20px));overflow-y:auto}
.modal-calendar-header{display:grid;grid-template-columns:35px 1fr 35px;align-items:center;gap:4px;margin-bottom:12px}
.modal-calendar-header strong{text-align:center;text-transform:capitalize;font-size:15px;font-weight:700}
.modal-calendar-header button{width:35px;height:35px;border:0;border-radius:8px;background:transparent;color:var(--text-primary);font-size:26px;line-height:1;cursor:pointer}
.modal-calendar-header button:hover,.modal-calendar-header button:focus-visible{background:var(--hover-bg);outline:0}
.modal-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.modal-calendar-grid>span{display:grid;place-items:center;min-height:30px;color:var(--text-secondary);font-size:11px;font-weight:700}
.modal-calendar-day{display:grid;place-items:center;width:100%;min-height:35px;padding:0;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text-primary);font:inherit;font-size:13px;cursor:pointer}
.modal-calendar-day:hover,.modal-calendar-day:focus-visible{outline:0;background:var(--hover-bg);border-color:var(--border-hover)}
.modal-calendar-day.is-today{border-color:var(--primary-color);font-weight:700}
.modal-calendar-day[aria-current="date"]{background:var(--primary-color);border-color:var(--primary-color);color:#fff;font-weight:700}
.modal-calendar-day:disabled{opacity:.3;cursor:not-allowed}
.modal-calendar-footer{display:flex;justify-content:space-between;gap:10px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border-color)}
.modal-calendar-footer button{min-height:34px;padding:6px 10px;border:0;border-radius:7px;background:var(--accent-soft);color:var(--primary-color);font:inherit;font-size:12px;font-weight:650;cursor:pointer}
.modal-calendar-footer button:hover,.modal-calendar-footer button:focus-visible{outline:0;background:var(--hover-bg)}
@media(max-width:600px){.modal-content .modal-select-trigger{min-height:50px;font-size:16px}.modal-option{min-height:48px;font-size:15px}.modal-calendar-day{min-height:39px;font-size:14px}}
@media(prefers-reduced-motion:reduce){.modal-content .modal-select-trigger,.modal-content .modal-select-trigger::after{transition:none}}
