/* FerryRoutes Booking Router — Ferrymap-owned route detail integration */
.frbr-route-name{color:inherit;text-decoration:none;cursor:default}
.frbr-neutral-operator{color:inherit!important;text-decoration:none!important;cursor:default}
.frbr-external-arrow{display:inline-block;margin-left:3px;font-size:.72em;line-height:1;opacity:.45;text-decoration:none!important;vertical-align:1px}
.frbr-link-arrow-cluster{display:inline-flex;align-items:center;white-space:nowrap;max-width:100%;vertical-align:baseline}
.frbr-link-arrow-cluster>a{min-width:0}

/* ----- Shared provider hover guidance ----- */
.frbr-provider-tip{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;vertical-align:middle;outline:none}
.frbr-provider-tip>img{display:block;width:var(--frbr-provider-icon,13px)!important;height:var(--frbr-provider-icon,13px)!important;max-width:var(--frbr-provider-icon,13px)!important;object-fit:contain;margin:0!important;border:0!important;border-radius:3px!important;box-shadow:none!important}
.frbr-floating-tip{position:fixed;z-index:2147483000;width:var(--frbr-tooltip-width,280px);max-width:calc(100vw - 16px);padding:9px 11px;border-radius:9px;background:#173b4a;color:#fff;font-size:10.5px;font-weight:500;line-height:1.38;letter-spacing:0;white-space:normal;text-align:left;box-shadow:0 10px 28px rgba(18,48,61,.28);pointer-events:none}
.frbr-floating-tip[hidden]{display:none!important}
.frbr-floating-tip-arrow{position:absolute;bottom:-5px;width:10px;height:10px;margin-left:-5px;background:#173b4a;transform:rotate(45deg)}
.frbr-floating-tip-below .frbr-floating-tip-arrow{top:-5px;bottom:auto}
.frbr-floating-tip-copy{position:relative;z-index:2}

/* ----- Port popup: one natural line, no separate booking pill ----- */
.popup-operator-row{position:relative}
.frbr-popup-operator-logo{display:inline-flex!important;align-items:center;justify-content:center;text-decoration:none!important;cursor:pointer!important}
.frbr-popup-booking-name-line{display:inline-flex;align-items:center;min-width:0}
a.frbr-popup-booking-name,a.frbr-operator-primary-link{color:inherit!important;text-decoration:none!important;font:inherit!important;font-size:inherit!important;font-style:inherit!important;font-weight:inherit!important;line-height:inherit!important;letter-spacing:inherit!important}
a.frbr-popup-booking-name:hover,a.frbr-operator-primary-link:hover{text-decoration:none!important;color:inherit!important}
a.frbr-popup-booking-name>.frbr-provider-tip{margin-right:5px}
a.frbr-popup-booking-name .frbr-provider-tip>img,.frbr-operator-primary-link .frbr-provider-tip>img{width:var(--frbr-provider-icon,13px)!important;height:var(--frbr-provider-icon,13px)!important;max-width:var(--frbr-provider-icon,13px)!important}
.popup-operator-routes{display:inline-block;margin-right:6px}
.popup-operator-routes.frbr-popup-meta-row{display:flex!important;align-items:center;justify-content:flex-start;gap:4px;width:100%!important;margin-top:3px;margin-right:0;white-space:nowrap}
.frbr-check-operator-wrap{display:inline-flex;align-items:center;justify-content:flex-start;white-space:nowrap;font-size:9px;line-height:1.15;margin-left:0}
a.frbr-check-operator{color:#647782!important;text-decoration:none!important;font-weight:500}
a.frbr-check-operator:hover{color:#244d5d!important;text-decoration:none!important}
.frbr-check-operator-wrap .frbr-external-arrow{font-size:8px;margin-left:2px}
.frbr-meta-separator{display:inline-block;margin:0 1px;color:#8b989f;font-size:9px;line-height:1}
.frbr-popup-booking{display:none!important}

/* ----- Selected Port overview: monetization belongs to the operator logo ----- */
.route-operators{display:flex!important;justify-content:flex-end;align-items:center;gap:4px;flex-wrap:nowrap;min-width:0;overflow:visible!important}
.frbr-route-provider-stack{display:none!important}
.frbr-route-operator-icon{display:inline-flex;align-items:center;justify-content:center;position:relative;z-index:10;text-decoration:none!important;overflow:visible}
a.frbr-route-operator-icon{cursor:pointer}
span.frbr-route-operator-icon{cursor:default}
.frbr-route-operator-icon>img{display:block!important;width:var(--frbr-operator-logo,20px)!important;height:var(--frbr-operator-logo,20px)!important;max-width:var(--frbr-operator-logo,20px)!important;object-fit:contain;margin:0!important;border-radius:50%!important;background:#fff;border:1.5px solid #fff!important;box-shadow:0 0 0 1px rgba(32,66,80,.08)!important}
.frbr-provider-badge{position:absolute!important;right:-3px;bottom:-3px;z-index:5;width:10px;height:10px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px rgba(33,66,79,.14),0 1px 2px rgba(33,66,79,.16);display:flex!important;align-items:center;justify-content:center}
.frbr-provider-badge>img{width:8px!important;height:8px!important;max-width:8px!important;border:0!important;border-radius:2px!important;background:transparent!important;box-shadow:none!important;margin:0!important}
.route-operators.frbr-logo-stack{gap:0!important;padding-left:5px}
.route-operators.frbr-logo-stack .frbr-route-operator-icon+ .frbr-route-operator-icon{margin-left:calc(-1 * var(--frbr-logo-overlap,8px))}
.route-operators.frbr-logo-stack .frbr-route-operator-icon{position:relative}

/* Remove the v0.6.0/0.6.1 booking bar completely. */
.frbr-route-booking,.frbr-route-booking-toggle,.frbr-route-booking-panel,.frbr-route-booking-row,.frbr-route-booking-actions{display:none!important}

/* Ferrymap owns the Info button and route-detail drawer. Booking Router
   renders only an additional section inside that existing drawer. */
.route-detail>.frbr-route-operator-info{display:block;width:100%;box-sizing:border-box;margin:8px 0 0;padding:8px 0 0;border-top:1px solid #e7edef;background:transparent;border-radius:0}
.frbr-route-operator-info[hidden]{display:none!important}
.frbr-route-operator-info-label{display:block;margin-bottom:4px;color:#788790;font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.frbr-route-operator-info-line{display:flex;align-items:center;min-height:22px;font-size:10.5px;line-height:1.2}
.frbr-route-operator-info-line a{color:#294d5c!important;text-decoration:none!important;font-weight:650}
.frbr-route-operator-info-line a:hover{text-decoration:underline!important;text-underline-offset:2px}
.frbr-route-operator-info-line .frbr-external-arrow{font-size:8px}

/* Operator-only map view follows the same compact convention. */
.frbr-operator-booking-inline{clear:both;display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:7px 0 5px;padding:6px 0;border-top:1px solid #e5eaed}
.frbr-operator-booking-inline .frbr-check-operator-wrap{font-size:10px}
.frbr-inline-disclosure,.frbr-operator-booking-disclosure,.frbr-disclosure{display:none!important}

@media(max-width:600px){
  .frbr-floating-tip{width:240px}
  .route-operators.frbr-logo-stack .frbr-route-operator-icon+ .frbr-route-operator-icon{margin-left:calc(-1 * var(--frbr-logo-overlap,8px))}
  .frbr-route-operator-icon>img{width:calc(var(--frbr-operator-logo,20px) - 1px)!important;height:calc(var(--frbr-operator-logo,20px) - 1px)!important;max-width:calc(var(--frbr-operator-logo,20px) - 1px)!important}
}

/* v0.6.7 final UK polish */
.popup-operator-routes.frbr-popup-meta-row{white-space:nowrap!important}
.popup-operator-row .frbr-link-arrow-cluster{white-space:nowrap!important}
.frbr-route-operator-info-line .frbr-link-arrow-cluster{white-space:nowrap!important}


/* v0.6.8: provider badges must always remain badges, including narrow/mobile maps. */
.frbr-route-operator-icon>.frbr-provider-badge{width:10px!important;height:10px!important;min-width:10px!important;min-height:10px!important;max-width:10px!important;max-height:10px!important;overflow:hidden!important}
.frbr-route-operator-icon>.frbr-provider-badge>img{width:8px!important;height:8px!important;min-width:8px!important;min-height:8px!important;max-width:8px!important;max-height:8px!important;margin:0!important;border:0!important;box-shadow:none!important;object-fit:contain!important}

/* v0.7.0 — comparison belongs in the info dropdown, never on operator logos. */
.frbr-route-operator-icon>.frbr-provider-badge{display:none!important}
.frbr-route-comparison-section{margin-bottom:7px;padding-bottom:7px;border-bottom:1px solid #e7edef}
.frbr-route-comparison-line{display:flex;align-items:center;min-height:25px;font-size:10.5px;line-height:1.2}
a.frbr-route-comparison-link{display:inline-flex;align-items:center;gap:6px;color:#244d5d!important;text-decoration:none!important;font-weight:700}
a.frbr-route-comparison-link:hover{text-decoration:none!important;color:#153946!important}
a.frbr-route-comparison-link>img{display:block;width:14px!important;height:14px!important;max-width:14px!important;object-fit:contain;margin:0!important;border:0!important;border-radius:3px!important;box-shadow:none!important}
.frbr-route-operators-section{display:block}
.frbr-route-operator-info-label{margin-top:0}

/* v0.7.2 — two-layer UI: operator identity is static; outbound actions are explicit. */
.frbr-popup-provider-link{display:inline-flex!important;align-items:center;justify-content:flex-start;gap:5px;margin-right:0;text-decoration:none!important;vertical-align:middle;white-space:nowrap!important}
.frbr-popup-provider-link:hover{text-decoration:none!important}
.frbr-popup-provider-link .frbr-provider-tip{margin:0!important;flex:0 0 auto}
.frbr-popup-provider-link .popup-operator-name{display:inline!important;white-space:nowrap!important}
a.frbr-popup-operator-primary{display:flex!important;align-items:center;gap:5px;width:max-content;max-width:100%;color:var(--fm-ink,#173746)!important;text-decoration:none!important;white-space:nowrap!important;cursor:pointer!important}
a.frbr-popup-operator-primary:hover{color:var(--fm-marine-deep,#1f6077)!important;text-decoration:none!important}
a.frbr-popup-operator-primary .frbr-provider-tip{margin:0!important;flex:0 0 auto;cursor:pointer!important}
a.frbr-popup-operator-primary .frbr-provider-tip>img{cursor:pointer!important}
.popup-operator-name.frbr-neutral-operator,.frbr-neutral-operator.popup-operator-name{font:inherit!important;font-size:inherit!important;font-weight:inherit!important;line-height:inherit!important;color:inherit!important}
.frbr-route-operator-info-line{justify-content:space-between;gap:8px}
.frbr-route-operator-info-name{min-width:0;color:#263f4d;font-weight:650}
a.frbr-route-operator-check{flex:0 0 auto;color:#647782!important;text-decoration:none!important;font-size:9.5px;font-weight:500;white-space:nowrap}
a.frbr-route-operator-check:hover{color:#244d5d!important;text-decoration:none!important}
.frbr-route-operator-info-line a:hover{text-decoration:none!important}
.frbr-operator-comparison-link{display:inline-flex!important;align-items:center;gap:5px;color:#244d5d!important;text-decoration:none!important;font-size:10px;font-weight:650}
