/* ESS date picker (datepicker.js). Same look as app.css; day buttons at least 44 px; fits a 390 px phone. */
.dp-wrap { position:relative; }
.dp-wrap input.dp-native { position:absolute; left:0; bottom:0; width:1px; height:1px; min-height:0; padding:0; margin:0; border:0; opacity:0; pointer-events:none; overflow:hidden; }
button.dp-field { display:flex; justify-content:space-between; align-items:center; gap:8px; width:100%; max-width:100%; min-height:44px; padding:10px 12px; font-size:16px; font-weight:400; text-align:left; border-radius:8px; border:1px solid var(--line); background:#0d1117; color:var(--text); cursor:pointer; }
button.dp-field:focus-visible { outline:2px solid var(--accent); outline-offset:1px; }
button.dp-field.dp-empty .dp-text { color:var(--muted); }
button.dp-field.dp-invalid { border-color:var(--err); }
.dp-icon { flex:0 0 18px; width:18px; height:16px; border:2px solid var(--muted); border-top-width:5px; border-radius:3px; }
.dp-pop { position:absolute; z-index:1000; width:336px; max-width:calc(100vw - 16px); padding:10px; background:var(--panel); border:1px solid var(--line); border-radius:10px; box-shadow:0 8px 28px rgba(0,0,0,.5); }
.dp-pop[hidden] { display:none; }
.dp-pop button { min-height:44px; padding:0; font-size:15px; font-weight:400; border-radius:8px; background:transparent; color:var(--text); border:1px solid transparent; }
.dp-pop button:focus-visible { outline:2px solid var(--accent); outline-offset:-2px; }
.dp-pop button:disabled { color:#4b535d; cursor:default; }
.dp-head { display:flex; gap:6px; align-items:center; margin:0 0 6px; }
.dp-head select { flex:1 1 auto; width:auto; min-width:0; min-height:44px; padding:6px 8px; }
.dp-nav { flex:0 0 44px; width:44px; font-size:22px !important; border-color:var(--line) !important; }
.dp-quick { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin:0 0 6px; }
.dp-quick[hidden] { display:none; }
.dp-quick .dp-q { border-color:var(--accent); color:var(--accent); font-size:14px; }
.dp-hint { margin:0 0 6px; font-size:13px; color:var(--muted); }
.dp-hint[hidden] { display:none; }
.dp-grid { width:100%; border-collapse:collapse; table-layout:fixed; }
.dp-grid th { padding:2px 0 4px; border:0; text-align:center; font-size:12px; font-weight:600; color:var(--muted); }
.dp-grid td { padding:1px; border:0; }
.dp-grid tr[hidden] { display:none; }
.dp-day { display:block; width:100%; min-width:44px; }
.dp-day.is-other { color:var(--muted); }
.dp-day.is-today { border-color:var(--accent) !important; font-weight:700; }
.dp-day.in-range { background:rgba(46,230,214,.16); border-radius:0; }
.dp-day.range-start, .dp-day.range-end, .dp-day.is-selected { background:var(--accent); color:#00201d; font-weight:700; }
.dp-day:not(:disabled):hover { border-color:var(--muted); }
.dp-foot { display:flex; gap:6px; margin:6px 0 0; }
.dp-foot .dp-act { flex:1 1 0; border-color:var(--line); font-size:14px; }
@media (max-width: 400px) {
  .dp-pop { padding:8px; }
  .dp-grid td { padding:0; }
}
