/* Basic layout only */
.gfl-wrap {
    max-width: 720px;
    margin: 0 auto;
}

/* Status badges – only background colours remain */
.gfl-status-badge {
    display: inline-block;
    border-radius: 999px;
    padding: 0.4rem 1.2rem;
    font-weight: 700;
}

.gfl-status-yes    { background: #c0392b; color: #fff; }
.gfl-status-no     { background: #27ae60; color: #fff; }
.gfl-status-warning{ background: #e67e22; color: #fff; }
.gfl-status-maybe,
.gfl-status-unknown{ background: #f39c12; color: #fff; }
.gfl-status-clearing { background:#2980b9; color:#fff; }

/* Data blocks – layout only */
.gfl-data-block,
.gfl-risks {
    background: #f7f9fb;
    border-radius: 8px;
    padding: 1rem;
    margin-bottom: 1rem;
}

/* Chart wrapper */
.gfl-chart-wrapper {
    width: 100%;
    min-height: 260px;
    position: relative;
}

#gfl-river-chart {
    width: 100% !important;
    height: 240px !important;
}

/* Disclaimer */
.gfl-disclaimer {
    opacity: 0.7;
}

/* Mobile padding only */
@media (max-width: 600px) {
    .gfl-wrap {
        padding: 1rem;
    }
}

/* Leaflet map containers */
#passable-basin-map.passable-basin-map,
#passable-location-map.passable-location-map,
#passable-homepage-map {
    width: 100%;
    height: 800px;
}

@media (max-width: 1024px) {
    #passable-basin-map.passable-basin-map,
    #passable-location-map.passable-location-map,
    #passable-homepage-map {
        height: 450px;
    }
}

@media (max-width: 767px) {
    #passable-basin-map.passable-basin-map,
    #passable-location-map.passable-location-map,
    #passable-homepage-map {
        height: 320px;
    }
}

.passable-pin-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.passable-status-pill {
    margin-top: 5px;
    background: #fff;
    color: #1a1f2e;
    border-radius: 999px;
    padding: 3px 8px;
    font-size: 14px;
    font-weight: 500;
    font-family: 'Poppins', sans-serif;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 5px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.25);
}

.passable-status-pill-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
    display: inline-block;
}

.passable-homepage-marker {
    overflow: visible !important;
}

.passable-homepage-chip {
    background: #fff;
    color: #1a1f2e;
    border-radius: 999px;
    padding: 6px 14px;
    font-size: 14px;
    font-weight: 500;
    font-family: 'Poppins', sans-serif;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 7px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.18);
    pointer-events: none;
}

.passable-homepage-chip-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
    display: inline-block;
    animation: passable-dot-pulse 2s ease-in-out infinite;
}

.leaflet-div-icon {
    background: none !important;
    border: none !important;
}

/* Report card hider */
body:not(.elementor-editor-active).gfl-no-reports #report-card {
    display: none;
}

/* Report sidebar */
.report-sidebar {
  position: fixed !important;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  height: 100%;
  background: #fff;
  z-index: 9999;
  transform: translateX(100%);
  transition: transform 0.3s ease;
  display: flex;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
}

body.report-open {
  overflow: hidden !important;
}

.report-sidebar > * {
  flex: 0 0 auto !important;
  width: 100% !important;
}
.report-sidebar.is-open {
  transform: translateX(0);
}

/* Thank you state — hidden by default, revealed by JS after successful submit */
.report-thanks {
  display: none !important;
}
.report-thanks.is-visible {
  display: block !important;
}

/* Form state — hidden by JS after successful submit */
.report-form-content.is-hidden {
  display: none;
}

/* Live pulsing dot */
.live-dot {
    width: 12px;
    height: 12px;
    background: #22c55e;
    border-radius: 50%;
    display: inline-block;
    animation: pulse 2s ease-in-out infinite;
}

@keyframes pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.45); }
    50%       { box-shadow: 0 0 0 4px rgba(34, 197, 94, 0); }
}

.passable-live-dot {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    animation: passable-dot-pulse 2s ease-in-out infinite;
    vertical-align: middle;
    position: relative;
    top: -1px;
}

@keyframes passable-dot-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.45); }
    50%       { box-shadow: 0 0 0 4px rgba(34, 197, 94, 0); }
}

/* Location status card link override */
.location-status-card *,
.location-status-card *:hover {
    color: inherit !important;
}

/* Frosted blur */
.blur-dark {
    background: rgba(15, 20, 35, 0.55);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: #ffffff;
}

.blur-light {
    background: rgba(255, 255, 255, 0.55);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: #1a1f2e;
}

/* Environment Cards */
.passable-ec-grid {
	--ec-grid-gap: 24px;
	--ec-grid-margin: 0;
	--ec-card-padding: 24px;
	--ec-card-radius: 24px;
	--ec-card-border-color: rgba(5, 152, 208, 0.3);
	--ec-card-background: rgba(255, 255, 255, 1);
	--ec-card-content-gap: 16px;
	--ec-card-header-gap: 6px;
	--ec-chart-height: 110px;
	--ec-chart-label-gap: 0;
	--ec-chart-label-offset: 0;
	--ec-chart-block-gap: 0;
	--ec-chart-label-size: 0.75rem;
	--ec-chart-label-color: var(--color-text-tertiary);
	--ec-rows-gap: 8px;
	--ec-rows-padding-top: 12px;
	--ec-row-divider-color: var(--ec-card-border-color);
	--ec-title-weight: 300;
	--ec-title-size: 0.8rem;
	--ec-title-line-height: 1.6rem;
	--ec-title-letter-spacing: 0.15rem;
	--ec-verdict-weight: 500;
	--ec-verdict-size: 1.2rem;
	--ec-verdict-line-height: 1.6rem;
	--ec-verdict-color: #000000;
	--ec-row-font-size: 1rem;
	--ec-row-label-color: var(--color-text-secondary, #6b7280);
	--ec-chart-color: rgb(5, 152, 208);
	--ec-chart-fill-opacity: 0.08;
	--ec-threshold-color: rgba(0,0,0,0.2);
	--ec-forecast-color: rgba(5, 152, 208);
	--ec-zero-rain-color: rgba(5, 152, 208, 0.5);
	--ec-tide-dot-size: 5;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--ec-grid-gap);
	margin: var(--ec-grid-margin);
}

.passable-ec-card {
	display: flex;
	flex-direction: column;
	gap: var(--ec-card-content-gap);
	padding: var(--ec-card-padding);
	border: 1px solid var(--ec-card-border-color);
	border-radius: var(--ec-card-radius);
	background: var(--ec-card-background);
	min-width: 0;
	box-sizing: border-box;
}

.passable-ec-card-header {
	display: flex;
	flex-direction: column;
	gap: var(--ec-card-header-gap);
}

.passable-ec-title {
	margin: 0;
	font-weight: var(--ec-title-weight);
	font-size: var(--ec-title-size);
	line-height: var(--ec-title-line-height);
	letter-spacing: var(--ec-title-letter-spacing);
	text-transform: uppercase;
}

.passable-ec-verdict {
	margin: 0;
	font-weight: var(--ec-verdict-weight);
	font-size: var(--ec-verdict-size);
	line-height: var(--ec-verdict-line-height);
	color: var(--ec-verdict-color);
}

.passable-ec-chart-shell {
	display: flex;
	flex-direction: column;
	width: 100%;
	height: var(--ec-chart-height);
	box-sizing: border-box;
}

.passable-ec-chart-block {
	display: flex;
	flex-direction: column;
	gap: var(--ec-chart-block-gap);
}

.passable-ec-chart {
	display: block;
	width: 100%;
	height: var(--ec-chart-height) !important;
	max-width: none;
	margin: 0;
	box-sizing: border-box;
}

.passable-ec-chart-labels {
	display: grid;
	gap: var(--ec-chart-label-gap);
	margin-top: var(--ec-chart-label-offset);
	font-size: var(--ec-chart-label-size);
	color: var(--ec-chart-label-color);
}

.passable-ec-chart-labels-river {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.passable-ec-chart-labels-river span:last-child {
	text-align: right;
}

.passable-ec-chart-labels-rain {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.passable-ec-chart-labels-rain span {
	font-size: var(--ec-chart-label-size);
	color: var(--ec-chart-label-color);
	white-space: nowrap;
}

.passable-ec-chart-labels-rain span:last-child {
	text-align: right;
}

.passable-ec-chart-labels-tide {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.passable-ec-chart-labels-tide span:last-child {
	text-align: right;
}

.passable-ec-chart-labels-forecast {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.passable-ec-chart-labels-forecast span:last-child {
	text-align: right;
}

.passable-ec-rows {
	display: grid;
	gap: var(--ec-rows-gap);
	padding-top: var(--ec-rows-padding-top);
	border-top: 1px solid var(--ec-row-divider-color);
}

.passable-ec-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	font-size: var(--ec-row-font-size);
}

.passable-ec-row-label {
	color: var(--ec-row-label-color);
}

.passable-ec-row-value {
	text-align: right;
}

@media (max-width: 639px) {
	.passable-ec-grid {
		grid-template-columns: 1fr;
	}
}
