/* Hidrogarant localized datepicker */
.dp-wrap { position: relative; display: inline-block; vertical-align: middle; max-width: 100%; }
.dp-wrap.dp-block { display: block; width: 100%; }
.dp-wrap > .dp-input { width: 100%; padding-right: 38px !important; margin: 0 !important; }
.dp-wrap > .dp-btn { position: absolute; top: 50%; right: 6px; transform: translateY(-50%); width: 28px; height: 28px; border: 0; border-radius: 8px; background: transparent; color: #6b7280; display: grid; place-items: center; cursor: pointer; padding: 0; }
.dp-wrap > .dp-btn:hover { background: rgba(0,0,0,.06); color: #111827; }
.dp-wrap > .dp-btn[disabled] { opacity: .4; cursor: default; }
.dp-input.dp-invalid { border-color: #dc2626 !important; box-shadow: 0 0 0 3px rgba(220,38,38,.12) !important; }
.dp-pop { position: fixed; z-index: 5000; width: 296px; padding: 12px; border-radius: 18px; font-family: inherit; font-size: 14px; color: #111827;
    background: rgba(255,255,255,.96); -webkit-backdrop-filter: blur(20px) saturate(180%); backdrop-filter: blur(20px) saturate(180%);
    border: 1px solid rgba(0,0,0,.08); box-shadow: 0 18px 44px rgba(0,0,0,.2); opacity: 0; transform: translateY(-4px); transition: opacity .12s, transform .12s; }
.dp-pop.is-open { opacity: 1; transform: none; }
.dp-head { display: flex; align-items: center; gap: 6px; margin-bottom: 8px; }
.dp-ym { flex: 1; display: flex; gap: 6px; min-width: 0; }
.dp-ym select { flex: 1; min-width: 0; height: 32px; border: 1px solid #e5e7eb; border-radius: 10px; background: #fff; font: inherit; font-weight: 700; padding: 0 6px; color: inherit; cursor: pointer; }
.dp-ym select.dp-y { flex: 0 0 76px; }
.dp-nav { width: 32px; height: 32px; flex-shrink: 0; border: 0; border-radius: 10px; background: rgba(0,0,0,.05); font-size: 22px; line-height: 1; cursor: pointer; color: inherit; }
.dp-nav:hover { background: rgba(0,0,0,.1); } .dp-nav[disabled] { opacity: .3; cursor: default; }
.dp-wd, .dp-row { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.dp-wd span { text-align: center; font-size: 11px; font-weight: 700; color: #6b7280; text-transform: capitalize; padding: 4px 0; }
.dp-grid { outline: none; display: grid; gap: 2px; }
.dp-day { height: 36px; border: 0; border-radius: 10px; background: transparent; font: inherit; font-weight: 600; color: inherit; cursor: pointer; padding: 0; }
.dp-day:hover { background: rgba(252,128,6,.12); }
.dp-day.is-out { color: #9ca3af; font-weight: 500; }
.dp-day.is-today { box-shadow: inset 0 0 0 1.5px #fc8006; }
.dp-day.is-sel { background: #fc8006; color: #fff; }
.dp-day.is-cur:focus-visible, .dp-day:focus-visible { outline: 2px solid #111827; outline-offset: 1px; }
.dp-day.is-dis { color: #d1d5db; cursor: not-allowed; text-decoration: line-through; background: transparent; }
.dp-time { display: flex; align-items: center; gap: 6px; margin-top: 10px; padding-top: 10px; border-top: 1px solid #f3f4f6; font-weight: 700; }
.dp-time span { flex: 1; color: #6b7280; font-size: 12px; text-transform: uppercase; letter-spacing: .03em; }
.dp-time select { height: 32px; border: 1px solid #e5e7eb; border-radius: 10px; background: #fff; font: inherit; padding: 0 6px; }
.dp-foot { display: flex; gap: 4px; margin-top: 10px; padding-top: 8px; border-top: 1px solid #f3f4f6; }
.dp-link { border: 0; background: transparent; font: inherit; font-weight: 700; font-size: 13px; color: #c25f00; padding: 6px 8px; border-radius: 8px; cursor: pointer; }
.dp-link:hover { background: rgba(252,128,6,.1); }
.dp-link.dp-close { margin-left: auto; color: #374151; }
.dp-back { position: fixed; inset: 0; z-index: 4999; background: rgba(15,23,42,.38); opacity: 0; transition: opacity .15s; }
.dp-back.is-open { opacity: 1; }
.dp-pop.dp-sheet { left: 0 !important; right: 0; bottom: 0; top: auto !important; width: auto; border-radius: 22px 22px 0 0; padding: 16px 16px calc(16px + env(safe-area-inset-bottom)); transform: translateY(20px); }
.dp-pop.dp-sheet.is-open { transform: none; }
.dp-pop.dp-sheet .dp-day { height: 44px; font-size: 16px; }
@media (prefers-reduced-motion: reduce) { .dp-pop, .dp-back { transition: none; } }
