/* Shared choice controls. Colors and typography come from common.css. */
.ui-select-field { position:relative; display:inline-flex; width:100%; min-width:0; vertical-align:middle; }
.ui-select-field[hidden] { display:none !important; }
.ui-select-native { position:absolute !important; inset:0 auto auto 0 !important; width:1px !important; min-width:0 !important; max-width:1px !important; height:1px !important; min-height:0 !important; padding:0 !important; border:0 !important; opacity:0; pointer-events:none; }
.ui-select-trigger { display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%; min-width:0; min-height:40px; padding:8px 12px; border:1px solid var(--border-light); border-radius:12px; color:var(--text-primary); background:var(--bg-card); font:var(--font-weight-body) 14px/1.4 var(--font-sans); text-align:left; cursor:pointer; }
.ui-select-value { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ui-select-chevron { flex:none; color:var(--text-muted); transition:transform .18s ease; }
.ui-select-trigger[aria-expanded="true"] { border-color:var(--primary-blue); box-shadow:0 0 0 2px var(--ring-focus); }
.ui-select-trigger[aria-expanded="true"] .ui-select-chevron { transform:rotate(180deg); }
.ui-select-trigger:disabled { opacity:.55; cursor:not-allowed; }
.ui-select-trigger.is-invalid { border-color:var(--status-danger-text); }
.ui-select-popup,.ui-calendar,.ui-action-menu { position:fixed; z-index:12000; padding:4px; border:1px solid var(--border-subtle); border-radius:16px; background:var(--bg-card); box-shadow:var(--shadow-popover); overflow:auto; overscroll-behavior:contain; animation:ui-popover-in .15s ease-out; font:var(--font-weight-body) 14px/1.5 var(--font-sans); color:var(--text-primary); }
.ui-action-menu[hidden] { display:none; }
.ui-action-menu-item { display:flex; align-items:center; gap:10px; width:100%; min-height:40px; padding:9px 12px; border:0; border-radius:var(--radius-sm); background:transparent; color:var(--text-primary); font:inherit; text-align:left; cursor:pointer; }
.ui-action-menu-item i { width:16px; flex-shrink:0; text-align:center; }
.ui-action-menu-item:hover,.ui-action-menu-item:focus-visible { background:var(--button-hover); }
.ui-action-menu-item.is-destructive { margin-top:4px; border-top:1px solid var(--border-light); border-radius:0 0 var(--radius-sm) var(--radius-sm); color:var(--status-danger-text); }
.ui-action-menu-item.is-destructive:hover,.ui-action-menu-item.is-destructive:focus-visible { background:var(--status-danger-bg); }
.ui-action-menu-item:disabled { opacity:.5; cursor:not-allowed; }
.ui-filter-toggle { display:none; }
.ui-filter-mobile-header { display:none; }
.ui-filter-count { color:var(--primary-blue-hover); font-size:13px; font-weight:var(--font-weight-body); white-space:nowrap; }
.ui-filter-count[hidden] { display:none; }
@media (max-width:767px) {
    .ui-filter-toggle { display:inline-flex; }
    .ui-filter-mobile-header { display:flex; flex-wrap:wrap; align-items:center; gap:8px; justify-content:space-between; }
    .ui-filter-mobile-header .ui-filter-toggle { margin-left:auto; }
    [data-ui-filter-panel][data-ui-filters-expanded="false"] .ui-filter-advanced { display:none !important; }
    .maint-log-filters[data-ui-filters-expanded="false"] .maint-log-range-row { margin-top:0 !important; padding-top:0 !important; border-top:0 !important; }
    .ui-action-menu-item { min-height:44px; }
}
.ui-select-popup { display:flex; flex-direction:column; }
.ui-select-options { min-height:0; overflow:auto; overscroll-behavior:contain; max-height:304px; }
.ui-option { display:flex; align-items:center; gap:12px; width:100%; min-height:40px; border:0; border-radius:12px; padding:8px 12px; font:inherit; text-align:left; background:transparent; color:inherit; cursor:pointer; overflow-wrap:anywhere; }
.ui-option[aria-selected="true"] { font-weight:var(--font-weight-body); }
.ui-option[aria-selected="true"]::after { content:'✓'; margin-left:auto; flex:none; }
.ui-option:hover,.ui-option:focus-visible { background:var(--bg-secondary); outline:none !important; }
.ui-option:disabled { color:var(--text-muted); opacity:.5; cursor:not-allowed; }
.ui-select-search { flex:none; width:100%; min-width:0; min-height:40px; border:0; border-bottom:1px solid var(--border-subtle); border-radius:12px 12px 0 0; padding:8px 12px; color:var(--text-primary); background:var(--bg-card); font:inherit; }
.ui-no-options { margin:0; padding:20px 12px; color:var(--text-muted); text-align:center; }
.ui-calendar { padding:12px; }
.ui-calendar-header { display:grid; grid-template-columns:36px minmax(0,1fr) 36px; align-items:center; gap:4px; margin-bottom:8px; }
.ui-calendar-heading,.ui-calendar-nav,.ui-calendar-day,.ui-calendar-period { border:0; border-radius:8px; min-height:36px; background:transparent; color:var(--text-primary); cursor:pointer; font:inherit; padding:6px; }
.ui-calendar-heading { font-weight:var(--font-weight-body); }
.ui-calendar-nav:hover,.ui-calendar-heading:hover,.ui-calendar-period:hover,.ui-calendar-day:hover { background:var(--bg-secondary); }
.ui-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px 0; }
.ui-calendar-stage { position:relative; }
.ui-calendar-periods { position:absolute; inset:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.ui-calendar-weekday { text-align:center; font-size:12px; color:var(--text-muted); padding:4px 0; }
.ui-calendar-day { position:relative; font-variant-numeric:tabular-nums; }
.ui-calendar-day.is-outside { color:var(--text-muted); }
.ui-calendar-day[aria-current="date"] { font-weight:var(--font-weight-body); }
.ui-calendar-day[aria-current="date"]::after { content:''; position:absolute; bottom:3px; left:calc(50% - 2px); width:4px; height:4px; border-radius:50%; background:currentColor; }
.ui-calendar-day[aria-pressed="true"] { background:var(--primary-blue); color:white; }
.ui-calendar-day[aria-pressed="true"]:hover { background:var(--primary-blue-hover); }
.ui-calendar-day:disabled,.ui-calendar-nav:disabled { opacity:.4; cursor:not-allowed; background:transparent; }
.ui-calendar-footer { display:flex; justify-content:space-between; border-top:1px solid var(--border-subtle); padding-top:8px; margin-top:8px; }
@keyframes ui-popover-in { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:translateY(0); } }

/* Native input semantics retain keyboard, form and indeterminate behavior. */
input[type="checkbox"]:not(:where(.toggle-switch input,.option-item input)),input[type="radio"]:not(.option-item input) { appearance:none; display:inline-block; position:relative; flex:none; width:20px; height:20px; min-height:0; padding:0; vertical-align:middle; border:1.5px solid var(--border-light); border-radius:6px; background:var(--bg-card); cursor:pointer; }
input[type="checkbox"]:not(:where(.toggle-switch input,.option-item input)):checked { border-color:var(--primary-blue); background-color:var(--primary-blue); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m4 10 4 4 8-8' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
input[type="checkbox"]:not(:where(.toggle-switch input,.option-item input)):indeterminate { border-color:var(--primary-blue); background-color:var(--primary-blue); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4 10h12' stroke='white' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E"); }
input[type="radio"]:not(.option-item input) { border-radius:50%; }
input[type="radio"]:not(.option-item input):checked { border:6px solid var(--primary-blue); }
input[type="checkbox"]:disabled,input[type="radio"]:disabled { opacity:.5; cursor:not-allowed; }
.checkbox-label .checkbox-custom { display:none; }
.checkbox-label input[type="checkbox"] { display:inline-block; position:relative; top:auto; left:auto; width:20px; height:20px; margin:0; opacity:1; transform:none; border:1.5px solid var(--border-light); }
.checkbox-label { min-height:32px; }
.sidebar-footer .icon-btn[data-action="logout"],#maintenance-logout { background:var(--status-danger-bg); color:var(--status-danger-text); border-color:transparent; }
.sidebar-footer .icon-btn[data-action="logout"]:hover,#maintenance-logout:hover { background:#ffe4e6; color:var(--status-danger-text); }
.toggle-switch { width:44px; min-width:44px; height:24px; }
.toggle-track::before { width:20px; height:20px; left:1px; }
.toggle-switch input:checked + .toggle-track::before { left:21px; }

/* Responsive density and overflow are shared across all portals. */
input.form-input[type="file"] { padding: 6px; }
input.form-input[type="file"]::file-selector-button {
    margin-right: 12px;
    padding: 8px 12px;
    border: 1px solid var(--primary-blue-border);
    border-radius: var(--radius-sm);
    background: var(--primary-blue-light);
    color: var(--primary-blue-hover);
    font: inherit;
    cursor: pointer;
}
input.form-input[type="file"]::file-selector-button:hover { background: var(--button-hover); }
#link-quick-manage-doc-cats {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-height: 32px;
    padding: 4px 8px;
}
@media (max-width: 767px) {
    .stats-grid .stat-card,
    .emp-stats-row .stat-card,
    #section-dashboard .learner-stat,
    .profile-stats-grid .stat-card {
        display: grid !important;
        grid-template-columns: 36px minmax(0, 1fr);
        gap: 4px 12px;
        min-height: 0 !important;
        padding: 14px 16px !important;
    }
    .stats-grid .stat-card > .stat-header,
    .emp-stats-row .stat-card > .stat-header {
        grid-row: 1 / 3;
        align-self: center;
        margin: 0 !important;
    }
    .stats-grid .stat-icon,
    .emp-stats-row .stat-icon { width: 36px !important; height: 36px !important; margin: 0 !important; }
    .emp-stats-row .stat-card > .stat-icon { grid-row: 1; align-self: center; }
    .stats-grid .stat-card > .stat-value,
    .emp-stats-row .stat-card > .stat-value {
        grid-column: 2;
        margin: 0 !important;
        font-size: 24px !important;
    }
    .stats-grid .stat-card > .stat-label,
    .emp-stats-row .stat-card > .stat-label { grid-column: 2; margin: 0 !important; white-space: normal; }
}
@media(max-width:640px) {
    .ui-select-trigger,.ui-select-search,.ui-option { min-height:44px; }
    .ui-select-trigger,.ui-select-search { font-size:16px; }
    .ui-calendar-day { min-height:40px; }
    .checkbox-label { min-height:44px; }
    .btn:not(.btn-sm),.form-input,.form-select,.maint-input,.maint-select { min-height:44px; }
    input.form-input,textarea.form-textarea,.localized-date-field input { font-size:16px; }
    .login-card-floating { padding:24px 20px; }
    .stats-grid .stat-card,.emp-stats-row .stat-card { padding:16px; border-bottom:1px solid var(--border-glass); }
}
@media(prefers-reduced-motion:reduce) { .ui-select-popup,.ui-calendar,.ui-action-menu { animation:none; } .ui-select-chevron { transition:none; } }
