.vtpl-date{position:relative;display:flex;align-items:stretch;flex-wrap:wrap;width:100%}
.vtpl-date .vtpl-date-orig{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden;clip:rect(0 0 0 0);border:0!important;opacity:0;pointer-events:none}
.vtpl-date .vtpl-date-text{flex:1 1 0;min-width:0;width:auto;padding:11px 12px;border:1.5px solid #d4dde6;border-radius:9px 0 0 9px;border-right:0;background:#fff;color:var(--ink,#0d141c);font-size:16px;font-variant-numeric:tabular-nums;letter-spacing:.3px}
.vtpl-date .vtpl-date-text:focus{outline:none;border-color:var(--accent,#2f6df0);box-shadow:0 0 0 3px rgba(47,109,240,.12)}
.vtpl-date .vtpl-date-text[aria-invalid="true"]{border-color:var(--danger,#d6453d);box-shadow:0 0 0 3px rgba(214,69,61,.12)}
.vtpl-date .vtpl-date-text[readonly],.vtpl-date .vtpl-date-text:disabled{background:#f1f5f9;color:var(--mut,#5b6b7c)}
.vtpl-date-btn{flex:0 0 44px;display:flex;align-items:center;justify-content:center;border:1.5px solid #d4dde6;border-radius:0 9px 9px 0;background:#f4f8ff;color:var(--accent,#2f6df0);padding:0}
.vtpl-date-btn:focus-visible{outline:2px solid var(--accent,#2f6df0);outline-offset:1px}
.vtpl-date-btn:disabled{background:#f1f5f9;color:var(--soft,#aab8c6);cursor:not-allowed}
.vtpl-date-err{flex:1 0 100%;color:var(--danger,#d6453d);font-size:12px;font-weight:600;line-height:1.35}
.vtpl-date-err:not(:empty){margin-top:5px}
.vtpl-cal-scrim{position:fixed;inset:0;background:rgba(13,20,28,.55);z-index:10000;display:flex;align-items:center;justify-content:center;padding:14px}
.vtpl-cal-scrim[hidden]{display:none}
.vtpl-cal{background:#fff;border-radius:14px;padding:14px;width:100%;max-width:340px;box-shadow:0 10px 30px rgba(20,40,80,.25);font-size:14px}
.vtpl-cal-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.vtpl-cal-head h3{font-size:16px;font-weight:800;color:var(--steel,#1b2733);margin:0}
.vtpl-cal-nav{width:40px;height:40px;border:1.5px solid #d4dde6;border-radius:9px;background:#fff;font-size:22px;line-height:1;color:var(--steel,#1b2733)}
.vtpl-cal-nav:disabled{opacity:.4;cursor:not-allowed}
.vtpl-cal-for{margin:4px 0 8px;font-size:12px;color:var(--mut,#5b6b7c);text-align:center}
.vtpl-cal-grid{width:100%;border-collapse:collapse;table-layout:fixed}
.vtpl-cal-grid th{font-size:11px;font-weight:700;color:var(--mut,#5b6b7c);padding:4px 0;text-transform:uppercase}
.vtpl-cal-grid td{padding:2px;text-align:center}
.vtpl-cal-grid button{width:100%;aspect-ratio:1;max-height:42px;border:0;border-radius:8px;background:none;font-weight:600;color:var(--ink,#0d141c);font-size:14px}
.vtpl-cal-grid button:hover:not(:disabled){background:#eaf1ff}
.vtpl-cal-grid button:focus-visible{outline:2px solid var(--accent,#2f6df0);outline-offset:-2px}
.vtpl-cal-grid button.today{box-shadow:inset 0 0 0 1.5px var(--amber,#f5a623)}
.vtpl-cal-grid button.sel{background:var(--accent,#2f6df0);color:#fff}
.vtpl-cal-grid button:disabled{color:#c3cdd7;cursor:not-allowed;text-decoration:line-through}
.vtpl-cal-foot{display:flex;gap:8px;margin-top:10px}
.vtpl-cal-foot button{flex:1;padding:10px;border:1.5px solid #d4dde6;border-radius:9px;background:#fff;font-weight:700;font-size:13px;color:var(--steel,#1b2733)}
.vtpl-cal-foot button[data-act="today"]{background:var(--accent,#2f6df0);border-color:var(--accent,#2f6df0);color:#fff}
.vtpl-cal-foot button:disabled{opacity:.45;cursor:not-allowed}
