.vl-booking{--vl-primary:#0b5cad;--vl-text:#1f2933;color:var(--vl-text);max-width:720px;margin:0 auto;padding:24px;border:1px solid #e3e7ec;border-radius:12px;background:#fff;box-shadow:0 2px 12px rgba(0,0,0,.05);font-size:16px;line-height:1.45;box-sizing:border-box}
.vl-booking *{box-sizing:border-box}
.vl-booking .vl-title{margin:0 0 6px;font-size:1.4em;color:var(--vl-text)}
.vl-booking .vl-intro{margin:0 0 16px;opacity:.85}
.vl-booking .vl-row{display:flex;gap:12px;flex-wrap:wrap}
.vl-booking .vl-row>.vl-field{flex:1 1 240px}
.vl-booking .vl-field{display:flex;flex-direction:column;margin:0 0 12px;font-weight:600;font-size:.92em}
.vl-booking .vl-field>span{margin-bottom:4px}
.vl-booking input,.vl-booking select,.vl-booking textarea{width:100%;padding:11px 12px;border:1px solid #c9d1da;border-radius:8px;font:inherit;font-weight:400;background:#fff;color:var(--vl-text);min-height:44px}
.vl-booking input:focus,.vl-booking select:focus,.vl-booking textarea:focus{outline:2px solid var(--vl-primary);outline-offset:1px;border-color:var(--vl-primary)}
.vl-booking [aria-invalid=true]{border-color:#c62828}
.vl-booking .vl-ferr{color:#c62828;font-weight:400;margin-top:4px}
.vl-booking .vl-btn{display:inline-block;width:100%;padding:13px 18px;border:0;border-radius:8px;background:var(--vl-primary);color:#fff;font:inherit;font-weight:700;cursor:pointer;min-height:48px}
.vl-booking .vl-btn:disabled{opacity:.6;cursor:wait}
.vl-booking .vl-label{font-weight:700;margin:18px 0 8px}
.vl-booking .vl-tz{font-weight:400;opacity:.75}
.vl-booking .vl-dates,.vl-booking .vl-windows{display:flex;gap:8px;flex-wrap:wrap}
.vl-booking .vl-dates{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;scroll-snap-type:x mandatory}
.vl-booking .vl-chip{border:1px solid #c9d1da;background:#fff;color:var(--vl-text);border-radius:8px;padding:10px 14px;font:inherit;cursor:pointer;min-height:44px;scroll-snap-align:start}
.vl-booking .vl-date{display:flex;flex-direction:column;align-items:center;min-width:78px;padding:8px 10px}
.vl-booking .vl-date span{font-size:.85em;opacity:.8}
.vl-booking .vl-chip:hover{border-color:var(--vl-primary)}
.vl-booking .vl-chip.vl-sel{background:var(--vl-primary);border-color:var(--vl-primary);color:#fff}
.vl-booking .vl-chip:disabled{opacity:.4;cursor:not-allowed;text-decoration:line-through}
.vl-booking .vl-windows .vl-chip{flex:1 1 150px}
.vl-booking .vl-step-3{margin-top:18px;padding-top:18px;border-top:1px solid #e3e7ec}
.vl-booking .vl-summary{margin:4px 0 12px;padding:10px 12px;background:#f5f7fa;border-radius:8px}
.vl-booking .vl-msg{margin-top:10px}
.vl-booking .vl-msg.vl-err{color:#c62828}
.vl-booking .vl-msg.vl-ok{color:#1b7f4b}
.vl-booking .vl-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.vl-booking .vl-done{text-align:center;padding:12px 0}
.vl-booking .vl-done:focus{outline:none}
.vl-booking .vl-check-icon{width:56px;height:56px;line-height:56px;margin:0 auto 8px;border-radius:50%;background:var(--vl-primary);color:#fff;font-size:30px}
.vl-booking .vl-conf{font-size:1.15em}
.vl-booking .vl-small{font-size:.9em;opacity:.8}
.vl-booking .vl-test{color:#c62828}
.vl-booking [hidden]{display:none!important}
