/* Isolated public booking wizard; no admin styles */
.nvis-public-booking{max-width:1050px!important;width:100%;margin:0 auto;overflow:hidden;box-sizing:border-box}
.nvis-public-booking *, .nvis-public-booking *:before,.nvis-public-booking *:after{box-sizing:border-box}
.nvis-public-booking .nvis-wizard-progress{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 28px}
.nvis-public-booking .nvis-wizard-progress>span{padding:13px 10px;border-radius:13px;background:#edf4f8;color:#476579;font-weight:800;text-align:center;font-size:15px}
.nvis-public-booking .nvis-wizard-progress>span.is-active{background:#087db6;color:white}
.nvis-public-booking .nvis-wizard-progress>span.is-done{background:#e2f6ee;color:#137554}
.nvis-public-booking .nvis-wizard-progress small{font-size:12px;font-weight:600;display:block;margin-top:3px}
.nvis-public-booking .nvis-wizard-step[hidden],.nvis-public-booking [hidden]{display:none!important}
.nvis-public-booking .nvis-wizard-step h3{font-size:22px;margin:0 0 18px;color:#173c53}
.nvis-public-booking .nvis-public-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:19px!important}
.nvis-public-booking .nvis-public-grid>label{min-width:0!important;width:100%!important;display:flex;flex-direction:column;gap:9px}
.nvis-public-booking .nvis-public-grid input,.nvis-public-booking .nvis-public-grid select,.nvis-public-booking .nvis-public-grid textarea{display:block;width:100%!important;min-width:0;max-width:100%;min-height:52px;padding:12px 15px;border:1px solid #cbdce8;border-radius:12px;background:#fff;color:#223c4f;font-size:16px;box-shadow:none}
.nvis-public-booking .nvis-public-grid textarea{min-height:115px;resize:vertical}
.nvis-public-booking .nvis-public-grid .nvis-public-wide{grid-column:1/-1}
.nvis-public-booking .nvis-public-consent{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:12px;margin:22px 0;max-width:100%;line-height:1.5}
.nvis-public-booking .nvis-public-consent input{flex:0 0 20px;width:20px!important;height:20px;margin:2px 0 0;accent-color:#087db6}
.nvis-public-booking .nvis-wizard-actions{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:22px}
.nvis-public-booking .nvis-wizard-primary,.nvis-public-booking .nvis-wizard-secondary{appearance:none;display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:13px 25px;border-radius:12px;font-weight:750;font-size:16px;line-height:1.25;cursor:pointer;opacity:1;visibility:visible;text-shadow:none}
.nvis-public-booking .nvis-wizard-primary{background:#087db6!important;color:#fff!important;border:2px solid #087db6!important;margin-left:auto}
.nvis-public-booking .nvis-wizard-secondary{background:#fff!important;color:#075e8e!important;border:2px solid #b8d5e6!important}
.nvis-public-booking .nvis-wizard-primary:hover{background:#05648f!important}
.nvis-public-booking .nvis-wizard-primary:disabled{opacity:.55;cursor:wait}
.nvis-public-booking .nvis-wizard-note{color:#547083;line-height:1.6}
.nvis-public-booking .nvis-wizard-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.nvis-public-booking .nvis-wizard-summary>div{padding:12px;background:#f1f7fb;border-radius:10px;overflow-wrap:anywhere}
.nvis-public-booking .nvis-wizard-summary strong{display:block;font-size:12px;color:#587487;margin-bottom:4px}
.nvis-public-booking :is(input,select,textarea,button):focus-visible{outline:3px solid #5bbbe8;outline-offset:2px}
@media(max-width:650px){.nvis-public-booking .nvis-public-booking__head{padding:28px 22px}.nvis-public-booking form{padding:22px 16px!important}.nvis-public-booking .nvis-public-grid{grid-template-columns:minmax(0,1fr)!important;gap:16px!important}.nvis-public-booking .nvis-wizard-progress{gap:5px}.nvis-public-booking .nvis-wizard-progress>span{padding:10px 4px;font-size:14px}.nvis-public-booking .nvis-wizard-progress small{font-size:10px}.nvis-public-booking .nvis-wizard-summary{grid-template-columns:1fr}.nvis-public-booking .nvis-wizard-actions button{flex:1 1 135px;padding:12px}}

/* Calendario jornadas: panel de elementos adicionales y autobús SVG */
.nvis-calendar-event--visit strong svg,.nvis-cal-expanded-row svg{display:inline-block!important;vertical-align:-3px!important;flex:none!important;width:15px!important;height:15px!important;margin-right:4px!important;visibility:visible!important;opacity:1!important}.nvis-cal-expanded{position:relative;z-index:4;background:#fff;border:1px solid #c9dce9;border-radius:12px;padding:10px;margin-top:8px;box-shadow:0 6px 20px #12365718}.nvis-cal-expanded-head{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:8px;color:#123657}.nvis-cal-expanded-head button{border:0;background:#e9f4fa;border-radius:6px;padding:4px 9px;cursor:pointer}.nvis-cal-expanded-row{border-top:1px solid #e8eef3;padding:8px 0;display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px}.nvis-cal-expanded-row span{font-weight:700;overflow-wrap:anywhere}.nvis-cal-expanded-row small{color:#a55c0a}.nvis-cal-expanded-row>button{border:1px solid #e5b775;color:#965008;background:#fff8ed;border-radius:6px;cursor:pointer;padding:5px 8px}.nvis-cal-expanded .nvis-cal-visit-editor{width:100%;flex-basis:100%}

/* INVIS calendario v5: panel flotante fuera de las celdas */
[data-journey-calendar]{position:relative!important}
[data-journey-calendar]>.nvis-cal-expanded{position:absolute!important;z-index:999!important;top:95px!important;right:18px!important;width:min(440px,calc(100% - 36px))!important;max-height:70vh!important;overflow:auto!important;padding:18px!important;background:#fff!important;border:1px solid #d5e5ef!important;border-radius:16px!important;box-shadow:0 20px 60px rgba(10,39,68,.24)!important;box-sizing:border-box!important}
[data-journey-calendar]>.nvis-cal-expanded .nvis-cal-expanded-head{font-size:15px!important;padding-bottom:12px!important;border-bottom:1px solid #e6edf3!important}
[data-journey-calendar]>.nvis-cal-expanded .nvis-cal-expanded-row{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:8px!important;padding:13px!important;margin:10px 0!important;border:1px solid #e1ebf2!important;border-radius:11px!important;background:#f8fbfd!important;line-height:1.5!important}
[data-journey-calendar]>.nvis-cal-expanded .nvis-cal-expanded-row span{font-size:13px!important;color:#173b5c!important;white-space:normal!important}
[data-journey-calendar]>.nvis-cal-expanded .nvis-cal-expanded-row>button{align-self:flex-start!important;font-size:12px!important;font-weight:700!important;padding:8px 12px!important}
[data-journey-calendar]>.nvis-cal-expanded .nvis-cal-expanded-head button{min-width:32px!important;min-height:32px!important}
@media(max-width:600px){[data-journey-calendar]>.nvis-cal-expanded{top:65px!important;right:8px!important;width:calc(100% - 16px)!important}}

/* v6: panel anclado a ventana; no altera altura ni anchura del calendario */
body > .nvis-cal-expanded{position:fixed!important;top:min(120px,12vh)!important;right:24px!important;left:auto!important;width:min(440px,calc(100vw - 48px))!important;max-height:min(75vh,680px)!important;overflow-y:auto!important;overflow-x:hidden!important;z-index:2147483000!important;box-sizing:border-box!important;background:#fff!important;border:1px solid #d5e5ef!important;border-radius:16px!important;padding:18px!important;box-shadow:0 20px 60px rgba(10,39,68,.24)!important;color:#173b5c!important}
body > .nvis-cal-expanded .nvis-cal-expanded-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;padding-bottom:12px!important;border-bottom:1px solid #e6edf3!important}
body > .nvis-cal-expanded .nvis-cal-expanded-row{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:8px!important;padding:13px!important;margin:10px 0!important;border:1px solid #e1ebf2!important;border-radius:11px!important;background:#f8fbfd!important;overflow-wrap:anywhere!important}
body > .nvis-cal-expanded .nvis-cal-expanded-row>button{border:1px solid #e5b775!important;color:#965008!important;background:#fff8ed!important;border-radius:8px!important;padding:8px 12px!important;cursor:pointer!important}
@media(max-width:600px){body > .nvis-cal-expanded{top:75px!important;right:8px!important;width:calc(100vw - 16px)!important;max-height:75vh!important}}
