/* Shared date and reporting-period pickers. Native fields remain the form source. */
.tt-calendar-source { position:absolute !important; width:1px !important; height:1px !important; min-width:0 !important; min-height:0 !important; padding:0 !important; overflow:hidden !important; clip-path:inset(50%) !important; }
.tt-period-ready [data-period-source], .tt-period-ready .tt-period-fallback { display:none !important; }
html body .tt-calendar-trigger, html body .tt-calendar button {
  font:inherit; text-transform:none; letter-spacing:normal; cursor:pointer;
  color:var(--tc-ink, #202427) !important; -webkit-text-fill-color:currentColor !important;
  border:0 !important; box-shadow:none; margin:0; box-sizing:border-box;
}
html body .tt-calendar-trigger {
  display:inline-flex; align-items:center; justify-content:flex-start; gap:9px;
  min-height:44px; max-width:100%; padding:9px 12px; border-radius:0 !important;
  background:var(--tc-soft, #eceef0) !important; color:var(--ink, #202427) !important;
  font-size:15px !important; line-height:1.35; font-weight:550; vertical-align:middle;
}
.tt-calendar-trigger span { overflow:hidden; text-overflow:ellipsis; }
.tt-calendar-trigger svg { width:19px; height:19px; flex:none; stroke:currentColor; fill:none; stroke-width:1.65; }
.tt-calendar {
  --tc-ink:#202427; --tc-muted:#63696d; --tc-surface:#f9f9fa; --tc-soft:#eaebed; --tc-hover:#e3e5e7; --tc-selected:#dfe2e4;
  position:fixed; inset:auto; z-index:2147480000; box-sizing:border-box;
  width:340px; max-width:calc(100vw - 24px); max-height:calc(100dvh - 24px);
  padding:12px; margin:0; overflow:auto; overscroll-behavior:contain;
  background:var(--tc-surface); color:var(--tc-ink); border:0; border-radius:0 !important;
  box-shadow:0 8px 28px rgba(20,27,31,.12), 0 2px 6px rgba(20,27,31,.06);
  font-size:16px; line-height:1.4; font-family:inherit; color-scheme:light;
}
.tt-calendar[hidden] { display:none !important; }
html[data-theme="dark"] .tt-calendar {
  --tc-ink:#edf0f2; --tc-muted:#adb4ba; --tc-surface:#1b1e22; --tc-soft:#282c31; --tc-hover:#33383e; --tc-selected:#3d434a;
  color-scheme:dark; box-shadow:0 16px 48px rgba(0,0,0,.4);
}
html[data-theme="dark"] .tt-calendar-trigger { --tc-soft:#282c31; }
.tt-calendar-head { display:grid; grid-template-columns:44px minmax(0,1fr) 44px; align-items:center; gap:8px; margin-bottom:10px; }
html body .tt-calendar .tt-calendar-arrow { display:grid; place-items:center; width:44px; min-width:44px; height:44px; min-height:44px; padding:0; border-radius:0 !important; background:var(--tc-soft) !important; }
.tt-calendar svg { width:20px !important; height:20px !important; flex:none; fill:none; stroke:currentColor; stroke-width:1.8; }
html body .tt-calendar .tt-calendar-heading { min-height:44px; padding:7px 2px; border-radius:0 !important; background:transparent !important; font-size:19px !important; font-weight:650; text-align:center; }
.tt-calendar-months { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:4px; margin-bottom:10px; }
html body .tt-calendar .tt-calendar-month { min-width:0; min-height:48px; padding:10px 4px; background:transparent !important; border-radius:0 !important; font-size:16px !important; font-weight:450 !important; }
html body .tt-calendar button[aria-pressed="true"] { background:var(--tc-selected) !important; font-weight:700 !important; }
html body .tt-calendar button:hover:not(:disabled), html body .tt-calendar-trigger:hover { background:var(--tc-hover, #e3e5e7) !important; }
html body .tt-calendar button:disabled { opacity:.32; cursor:default; }
html body .tt-calendar .tt-calendar-row { display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; min-height:44px; padding:11px 14px; margin-top:6px; border-radius:0 !important; background:var(--tc-soft) !important; font-size:15px !important; font-weight:450 !important; text-align:left; }
html body .tt-calendar .tt-calendar-year { justify-content:center; font-weight:650 !important; }
.tt-calendar-weekdays, .tt-calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:2px; }
.tt-calendar-weekdays span { text-align:center; padding:6px 0; font-size:.74rem; color:var(--tc-muted); }
html body .tt-calendar .tt-calendar-day { min-height:44px; min-width:0; padding:6px 0; border-radius:0 !important; background:transparent !important; font-size:15px !important; }
.tt-calendar-day[aria-current="date"] { text-decoration:underline; text-underline-offset:4px; }
.tt-calendar-custom { display:grid; gap:8px; }
.tt-calendar-custom label { display:grid; gap:6px; color:var(--tc-muted); font-size:.85rem; }
.tt-calendar-error { margin:8px 2px 0; color:#b13a31; font-size:.85rem; }
html[data-theme="dark"] .tt-calendar-error { color:#ffaaa1; }
.tt-calendar-time { width:100%; min-height:44px; padding:8px; box-sizing:border-box; border:0; border-radius:0; color:var(--tc-ink); background:var(--tc-soft); font:inherit; }
.tt-calendar-time-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.tt-calendar-time-fields label { display:grid; gap:6px; min-width:0; color:var(--tc-muted); font-size:.85rem; }
html body .tt-calendar select.tt-calendar-time { min-width:0; width:100%; height:44px !important; min-height:44px !important; padding:8px !important; font-size:16px !important; color:var(--tc-ink); background:var(--tc-soft); border:0 !important; border-radius:0 !important; }
html body .tt-calendar .tt-calendar-arrow[hidden] { display:none !important; }
.tt-calendar-head:is([data-calendar-view="time"],[data-calendar-view="custom"]) .tt-calendar-heading { grid-column:1 / -1; }
html body .tt-calendar select:focus-visible { outline:2px solid #176f9d !important; outline-offset:2px; }
html[data-theme="dark"] body .tt-calendar select:focus-visible { outline-color:#70bff0 !important; }
html body :is(.tt-calendar-trigger,.tt-calendar button):focus-visible { outline:2px solid #176f9d !important; outline-offset:2px; }
html[data-theme="dark"] body :is(.tt-calendar-trigger,.tt-calendar button):focus-visible { outline-color:#70bff0 !important; }
/* Override older page-local form button rules without changing those pages. */
html body[data-app-shell="1"] .tt-calendar button { color:var(--tc-ink) !important; -webkit-text-fill-color:currentColor !important; }
html body[data-app-shell="1"] .tt-calendar .tt-calendar-month,
html body[data-app-shell="1"] .tt-calendar .tt-calendar-day,
html body[data-app-shell="1"] .tt-calendar .tt-calendar-heading { background:transparent !important; }
html body[data-app-shell="1"] .tt-calendar .tt-calendar-arrow,
html body[data-app-shell="1"] .tt-calendar .tt-calendar-row { background:var(--tc-soft) !important; }
html body[data-app-shell="1"] .tt-calendar button[aria-pressed="true"] { background:var(--tc-selected) !important; }
html body[data-app-shell="1"] .tt-calendar button:hover:not(:disabled) { background:var(--tc-hover) !important; }
.he-month-bar .tt-calendar-trigger { justify-content:center; font-weight:650; }
@media (max-width:380px) { .tt-calendar { padding:10px; } }
