/* Shared native-input enhancement: keep form values/validation, theme the popup. */
.nx-date-pickers-ready input:is([type="date"], [type="month"], [type="datetime-local"])::-webkit-calendar-picker-indicator {
    pointer-events: none;
}
.nx-date-pickers-ready input[type="month"] { min-width: 11rem; }
.nx-date-pickers-ready input:is([type="date"], [type="month"], [type="datetime-local"]) { color-scheme: dark; }
[data-mode="light"].nx-date-pickers-ready input:is([type="date"], [type="month"], [type="datetime-local"]) { color-scheme: light; }
.nx-date-picker {
    position: fixed;
    inset: auto;
    margin: 0;
    box-sizing: border-box;
    width: 19rem;
    max-width: calc(100vw - 1rem);
    max-height: calc(100dvh - 1rem);
    overflow: auto;
    padding: 0.75rem;
    border: 1px solid var(--border-color, #3a3a3a);
    border-radius: 8px;
    background: var(--primary-dark, var(--bg-primary, #111111));
    color: var(--text-primary, #ffffff);
    font: 0.875rem/1.3 system-ui, sans-serif;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
}
.nx-date-picker .nx-picker-heading { display: flex; align-items: center; gap: 0.3rem; margin-bottom: 0.65rem; }
.nx-date-picker button, .nx-date-picker input {
    box-sizing: border-box;
    min-width: 0;
    width: auto;
    min-height: 2rem;
    padding: 0.3rem;
    margin: 0;
    border: 1px solid var(--border-color, #3a3a3a);
    border-radius: 5px;
    background: var(--input-bg, var(--secondary-dark, var(--bg-secondary, #1a1a1a)));
    color: var(--text-primary, #ffffff);
    font: inherit;
}
.nx-date-picker button { cursor: pointer; }
.nx-date-picker button:disabled { opacity: 0.4; cursor: default; }
.nx-date-picker button:hover:not(:disabled), .nx-date-picker :focus-visible { outline: 2px solid var(--accent-primary, #38386b); outline-offset: 1px; }
.nx-date-picker button[aria-pressed="true"] { background: var(--accent-primary, #38386b); color: var(--text-on-accent, #ffffff); border-color: var(--accent-primary, #38386b); }
.nx-date-picker .nx-picker-month-title { flex: 1; }
.nx-date-picker .nx-picker-year { width: 4.75rem; text-align: center; }
.nx-date-picker .nx-picker-nav { width: 2rem; flex: 0 0 2rem; }
.nx-date-picker .nx-picker-grid { display: grid; gap: 0.2rem; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.nx-date-picker .nx-picker-grid.nx-picker-months { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nx-date-picker .nx-picker-weekday { color: var(--text-muted, #888888); text-align: center; padding: 0.2rem 0; }
.nx-date-picker .nx-picker-footer { display: flex; align-items: center; justify-content: space-between; gap: 0.4rem; margin-top: 0.65rem; }
.nx-date-picker .nx-picker-time { display: flex; align-items: center; gap: 0.5rem; margin-top: 0.65rem; }
.nx-date-picker .nx-picker-time input { flex: 1; color-scheme: dark; }
[data-mode="light"] .nx-date-picker .nx-picker-time input { color-scheme: light; }
.nx-date-picker .nx-picker-error { color: var(--error, var(--text-primary, #ffffff)); margin-top: 0.5rem; }
@media print { .nx-date-picker { display: none !important; } }
/* Paper forms (Portal Fill and form previews) are white sheets: their date
   inputs follow the paper, not the app's dark scheme. */
.nx-date-pickers-ready .form-renderer-section input:is([type="date"], [type="month"], [type="datetime-local"]) { color-scheme: light; background: #ffffff; color: #111827; }
