/* Shared date selection: PRA colors, local typography and native modal focus. */
.pra-date-trigger {
  width:100%; display:flex; align-items:center; gap:11px; min-height:56px;
  padding:10px 13px; border:1px solid var(--line,#dce5ee); border-radius:10px;
  background:var(--surface,#fff); color:var(--ink,#17354d); text-align:left;
  font:inherit; cursor:pointer; transition:border-color .15s,box-shadow .15s;
}
.pra-date-trigger:hover { background:var(--surface,#fff); border-color:#6ca5ce; box-shadow:0 2px 8px #1a57870a; }
.pra-date-trigger:focus-visible { outline:3px solid #76b5df80; outline-offset:3px; }
.pra-date-trigger>svg { width:21px; height:21px; flex:none; color:#3284bb; }
.pra-date-trigger>svg:last-child { width:16px; height:16px; margin-left:auto; color:var(--muted,#6e8293); }
.pra-date-trigger-copy { display:flex; flex-direction:column; gap:3px; min-width:0; }
.pra-date-trigger-label { color:var(--muted,#6e8293); font-size:10px; font-weight:500; line-height:1.4; }
.pra-date-trigger-value { font-size:12px; font-weight:600; line-height:1.6; overflow-wrap:anywhere; }
.pra-date-trigger.is-empty .pra-date-trigger-value { font-weight:400; color:var(--muted,#6e8293); }
.pra-date-trigger:disabled { cursor:not-allowed; opacity:.55; }
.report-filters .report-date-range { flex:1.7; min-width:280px; }
.report-filters .pra-date-trigger { border-color:var(--line); }
.tasks-shell .pra-date-trigger { min-height:44px; padding:7px 10px; }

.pra-date-dialog {
  --date-accent:#1a5787; --date-soft:#eaf3fa; --date-muted:var(--muted,#6b8092);
  width:min(824px,calc(100vw - 48px)); max-width:none; max-height:calc(100dvh - 48px);
  padding:0; border:1px solid var(--line,#dce5ee); border-radius:19px;
  background:var(--surface,#fff); color:var(--ink,#17354d);
  box-shadow:0 28px 100px #071e3a40,0 6px 24px #071e3a14; overflow:auto;
  overscroll-behavior:contain; font-family:Poppins,system-ui,sans-serif; font-size:12px;
}
.pra-date-dialog--single { width:min(548px,calc(100vw - 48px)); }
.pra-date-dialog::backdrop { background:#081c345e; backdrop-filter:blur(4px); }
body:has(.pra-date-dialog[open]) { overflow:hidden; }
.pra-date-dialog * { box-sizing:border-box; }
.pra-date-dialog button,.pra-date-dialog input,.pra-date-dialog select { font-family:inherit; }
.pra-date-dialog button { cursor:pointer; font-weight:500; box-shadow:none; }
.pra-date-dialog button:disabled { cursor:not-allowed; }
.pra-date-dialog button:focus-visible,.pra-date-dialog select:focus-visible,.pra-date-dialog input:focus-visible { outline:3px solid #6caddb8c; outline-offset:2px; }
.pra-date-header { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:23px 25px 20px; border-bottom:1px solid var(--line,#dce5ee); }
.pra-date-eyebrow { color:var(--date-accent); display:block; font-size:8px; font-weight:600; letter-spacing:1.5px; margin-bottom:6px; }
.pra-date-header h2 { color:inherit; font-size:21px; line-height:1.4; font-weight:600; letter-spacing:-.55px; margin:0; }
.pra-date-dialog .pra-date-icon-button { display:grid; place-items:center; flex:none; width:32px; height:32px; padding:7px; border:1px solid var(--line,#dce5ee); border-radius:8px; background:var(--surface,#fff); color:var(--date-muted); }
.pra-date-dialog .pra-date-icon-button:hover:not(:disabled) { background:var(--date-soft); border-color:#b3cce0; color:var(--date-accent); }
.pra-date-icon-button svg { height:17px; width:17px; }
.pra-date-icon-button[data-action="previous"] svg { transform:rotate(180deg); }
.pra-date-icon-button:disabled { opacity:.3; }
.pra-date-body { display:grid; grid-template-columns:180px minmax(0,1fr); }
.pra-date-presets { padding:23px 12px; background:var(--surface-soft,#f6f9fc); border-right:1px solid var(--line,#dce5ee); }
.pra-date-sidebar-title { padding:0 12px 12px; color:var(--date-muted); font-size:10px; font-weight:500; }
.pra-date-dialog .pra-date-preset { display:flex; align-items:center; justify-content:space-between; gap:6px; width:100%; background:transparent; color:var(--date-muted); padding:11px 12px; margin:2px 0; border:1px solid transparent; border-radius:7px; font-size:10px; line-height:1.6; text-align:left; }
.pra-date-preset svg { height:14px; width:14px; flex:none; opacity:0; }
.pra-date-dialog .pra-date-preset:hover:not(:disabled) { background:var(--date-soft); color:var(--date-accent); }
.pra-date-dialog .pra-date-preset[aria-pressed="true"] { background:var(--date-soft); color:var(--date-accent); font-weight:600; }
.pra-date-preset[aria-pressed="true"] svg { opacity:1; }
.pra-date-preset:disabled { opacity:.4; }
.pra-date-dialog .pra-date-custom { border-top:1px solid var(--line,#dce5ee); border-radius:0 0 7px 7px; margin-top:13px; padding-top:15px; }
.pra-date-main { min-width:0; padding:23px 24px 18px; }
.pra-date-fields { display:grid; grid-template-columns:1fr 1fr; gap:13px; margin-bottom:20px; }
.pra-date-dialog--single .pra-date-fields { grid-template-columns:1fr; }
.pra-date-dialog .pra-date-field { display:block; position:relative; margin:0; padding:9px 12px 8px; min-width:0; border:1px solid var(--line,#dce5ee); border-radius:9px; background:var(--surface,#fff); }
.pra-date-field>span { display:block; font-size:9px; color:var(--date-muted); font-weight:500; margin-bottom:3px; }
.pra-date-dialog .pra-date-field.is-active { border-color:#5593c0; box-shadow:0 0 0 2px #1a57870b; }
.pra-date-dialog .pra-date-field input { display:block; width:100%; min-width:0; margin:0; padding:0; border:0; border-radius:2px; height:24px; font-size:12px; font-weight:500; color:inherit; background:transparent; box-shadow:none; }
.pra-date-field:has(.pra-date-field-clear) input { padding-right:18px; }
.pra-date-dialog .pra-date-field-clear { position:absolute; right:7px; bottom:8px; width:23px; height:25px; padding:0; border:0; background:transparent; color:var(--date-muted); font-size:18px; }
.pra-date-field:has(input[aria-invalid="true"]) { border-color:#c5665e; }
.pra-date-calendar-nav { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0 0 13px; }
.pra-date-jump { display:flex; align-items:center; gap:6px; }
.pra-date-dialog .pra-date-jump select { width:auto; height:30px; padding:2px 22px 2px 7px; margin:0; border:0; border-radius:5px; background-color:transparent; color:inherit; font-size:11px; font-weight:600; cursor:pointer; }
.pra-date-dialog .pra-date-jump select option { background:var(--surface,#fff); color:var(--ink,#17354d); }
.pra-date-calendars { display:grid; grid-template-columns:1fr 1fr; gap:27px; }
.pra-date-dialog--single .pra-date-calendars { grid-template-columns:1fr; }
.pra-date-month { min-width:0; }
.pra-date-month h3 { font-size:11px; font-weight:600; text-align:center; margin:4px 0 14px; color:inherit; }
.pra-date-weekdays,.pra-date-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); text-align:center; }
.pra-date-weekdays { gap:0; margin-bottom:5px; }
.pra-date-weekdays span { font-size:8px; line-height:25px; color:var(--date-muted); font-weight:500; }
.pra-date-blank { height:36px; margin:2px 0; }
.pra-date-dialog .pra-date-day { height:36px; min-width:0; padding:0; margin:2px 0; border:0; border-radius:7px; color:inherit; background:transparent; font-size:12px; font-weight:400; position:relative; }
.pra-date-dialog .pra-date-day:hover:not(:disabled) { color:var(--date-accent); background:var(--date-soft); box-shadow:inset 0 0 0 1px #91b9d5; }
.pra-date-dialog .pra-date-day.in-range { background:var(--date-soft); border-radius:0; color:var(--date-accent); }
.pra-date-dialog .pra-date-day.is-selected { background:var(--date-accent); color:#fff; border-radius:7px; font-weight:600; box-shadow:0 2px 5px #0d456220; }
.pra-date-dialog .pra-date-day:disabled { color:var(--date-muted); opacity:.27; }
.pra-date-day.is-today::after { content:''; display:block; position:absolute; bottom:3px; left:calc(50% - 1.5px); width:3px; height:3px; border-radius:50%; background:currentColor; }
.pra-date-hint { font-size:9px; color:var(--date-muted); line-height:1.8; margin:16px 0 0; }
.pra-date-error { color:#ab4239; font-size:10px; line-height:1.6; margin:10px 0 0; }
.pra-date-dialog [hidden] { display:none!important; }
.pra-date-footer { display:flex; justify-content:space-between; align-items:center; gap:15px; padding:17px 24px; border-top:1px solid var(--line,#dce5ee); background:var(--surface,#fff); }
.pra-date-summary { font-size:10px; font-weight:500; color:var(--date-muted); }
.pra-date-actions { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.pra-date-dialog .pra-date-actions button { min-height:38px; border-radius:8px; padding:9px 16px; font-size:11px; line-height:1.6; }
.pra-date-dialog .pra-date-cancel { background:var(--surface,#fff); color:var(--ink,#17354d); border:1px solid var(--line,#dce5ee); }
.pra-date-dialog .pra-date-apply { background:var(--date-accent); color:#fff; border:1px solid var(--date-accent); }
.pra-date-dialog .pra-date-apply:hover:not(:disabled) { filter:brightness(1.12); }
.pra-date-dialog .pra-date-apply:disabled { opacity:.38; }
.pra-date-dialog .pra-date-clear { background:transparent; border:1px solid transparent; color:var(--date-muted); padding-inline:4px!important; }
[data-theme="dark"] .pra-date-dialog { --date-accent:#72b8e6; --date-soft:#1b3448; }
[data-theme="dark"] .pra-date-dialog .pra-date-day.is-selected,[data-theme="dark"] .pra-date-dialog .pra-date-apply { color:#09273d; }
[data-theme="dark"] .pra-date-error { color:#efaaa2; }
[data-theme="dark"] .pra-date-trigger>svg { color:#72b8e6; }
@media(max-width:700px) {
  .pra-date-dialog,.pra-date-dialog--single { width:min(440px,calc(100vw - 24px)); max-height:calc(100dvh - 24px); border-radius:16px; }
  .pra-date-header { padding:18px 18px 15px; }
  .pra-date-header h2 { font-size:19px; }
  .pra-date-eyebrow { font-size:7px; letter-spacing:1.1px; }
  .pra-date-body { display:flex; flex-direction:column; }
  .pra-date-presets { display:flex; flex-wrap:wrap; gap:5px; border-right:0; border-bottom:1px solid var(--line,#dce5ee); padding:12px 16px; }
  .pra-date-sidebar-title { width:100%; padding:0 0 3px; font-size:9px; }
  .pra-date-dialog .pra-date-preset { width:auto; padding:6px 9px; margin:0; border:1px solid var(--line,#dce5ee); background:var(--surface,#fff); font-size:9px; border-radius:6px; }
  .pra-date-preset svg { display:none; }
  .pra-date-dialog .pra-date-preset[aria-pressed="true"] { border-color:#86afca; }
  .pra-date-main { padding:16px 19px; }
  .pra-date-fields { gap:9px; margin-bottom:13px; }
  .pra-date-calendars { grid-template-columns:1fr; }
  .pra-date-month h3 { display:none; }
  .pra-date-dialog .pra-date-day { height:36px; font-size:12px; margin:1px 0; }
  .pra-date-blank { margin:1px 0; }
  .pra-date-weekdays span { font-size:9px; }
  .pra-date-calendar-nav { margin-bottom:8px; }
  .pra-date-hint { margin-top:11px; }
  .pra-date-footer { position:sticky; bottom:0; flex-wrap:wrap; padding:13px 18px; gap:9px; }
  .pra-date-summary { flex:1; min-width:120px; font-size:9px; }
  .pra-date-actions { margin-left:auto; }
  .pra-date-dialog .pra-date-actions button { min-height:40px; padding:9px 12px; font-size:10px; }
  .report-filters .report-date-range { min-width:0; flex-basis:100%; }
}
@media(max-width:360px) {
  .pra-date-dialog { width:calc(100vw - 12px); max-height:calc(100dvh - 12px); }
  .pra-date-main { padding:13px 13px 10px; }
  .pra-date-header { padding:14px; }
  .pra-date-presets { padding:9px 12px; gap:4px; }
  .pra-date-dialog .pra-date-preset { font-size:8px; padding:5px 7px; }
  .pra-date-footer { padding:11px 13px; }
  .pra-date-summary { flex-basis:100%; }
  .pra-date-actions { width:100%; justify-content:flex-end; }
  .pra-date-field>span { font-size:8px; }
  .pra-date-dialog .pra-date-field input { font-size:11px; }
}
@media(prefers-reduced-motion:reduce) { .pra-date-trigger { transition:none; } }
