.bio-meteo {
	--bio-meteo-background: var(--bio-meteo-light-background, #fff);
	--bio-meteo-border: var(--bio-meteo-light-border, #d8dee5);
	--bio-meteo-text: var(--bio-meteo-light-text, #1f2933);
	--bio-meteo-title-color: var(--bio-meteo-light-title, #17212b);
	--bio-meteo-secondary: var(--bio-meteo-light-secondary, #52606d);
	--bio-meteo-card-background: var(--bio-meteo-light-card-background, #fff);
	--bio-meteo-card-border: var(--bio-meteo-light-card-border, #d8dee5);
	--bio-meteo-card-title: var(--bio-meteo-light-card-title, #1f2933);
	--bio-meteo-control-background: var(--bio-meteo-light-control-background, #fff);
	--bio-meteo-control-border: var(--bio-meteo-light-control-border, #aeb8c2);
	--bio-meteo-control-text: var(--bio-meteo-light-control-text, #17212b);
	--bio-meteo-table-header: var(--bio-meteo-light-table-header, #f1f4f6);
	--bio-meteo-row-border: var(--bio-meteo-light-row-border, #d8dee5);
	box-sizing: border-box;
	color: var(--bio-meteo-text);
	background: var(--bio-meteo-background);
	border: 1px solid var(--bio-meteo-border);
	border-radius: var(--bio-meteo-border-radius, 10px);
	padding: var(--bio-meteo-padding-top, 20px) var(--bio-meteo-padding-right, 20px) var(--bio-meteo-padding-bottom, 20px) var(--bio-meteo-padding-left, 20px);
	line-height: 1.5;
}

.bio-meteo * { box-sizing: border-box; }
.bio-meteo__title { margin: 0 0 1rem; color: var(--bio-meteo-title-color); font-size: clamp(1.35rem, 3vw, 2rem); }
.bio-meteo__location-controls { display: flex; align-items: center; gap: .65rem; flex-wrap: wrap; margin-bottom: 1rem; }
.bio-meteo__location-label { font-weight: 600; }
.bio-meteo__location-select,
.bio-meteo__geolocation-button,
.bio-meteo__clear-button {
	min-height: 42px;
	border: 1px solid var(--bio-meteo-control-border);
	border-radius: 6px;
	background: var(--bio-meteo-control-background);
	color: var(--bio-meteo-control-text);
	padding: .55rem .75rem;
	font: inherit;
}
.bio-meteo__geolocation-button,
.bio-meteo__clear-button { cursor: pointer; }
.bio-meteo__geolocation-button:hover,
.bio-meteo__clear-button:hover { background: var(--bio-meteo-table-header); }
.bio-meteo__notice:not(:empty),
.bio-meteo__error { margin: .75rem 0; padding: .75rem; border-radius: 6px; background: #fff4e5; color: #713f12; }

.bio-meteo__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bio-meteo-layout-gap, 16px); }
.bio-meteo__card { border: 1px solid var(--bio-meteo-card-border); border-radius: var(--bio-meteo-border-radius, 10px); padding: var(--bio-meteo-card-padding, 16px); background: var(--bio-meteo-card-background); }
.bio-meteo__card-title { color: var(--bio-meteo-card-title); font-size: 1rem; font-weight: 700; margin: 0 0 .75rem; }
.bio-meteo__periods { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .75rem; }
.bio-meteo__period-title { color: var(--bio-meteo-secondary); font-size: 1rem; font-weight: 700; margin: 0 0 .4rem; }

.bio-meteo__status { display: inline-block; border-left: 5px solid #7b8794; border-radius: 4px; padding: .3rem .55rem; background: var(--bio-meteo-table-header); color: var(--bio-meteo-text); font-weight: 700; }
.bio-meteo__status--low { border-color: var(--bio-meteo-low, #2e9f53); }
.bio-meteo__status--medium { border-color: var(--bio-meteo-medium, #e59b20); }
.bio-meteo__status--high { border-color: var(--bio-meteo-high, #c83d3d); }
.bio-meteo__scale { display: inline-flex; gap: 3px; margin-inline-start: .5rem; vertical-align: middle; }
.bio-meteo__scale-segment { width: 1.05rem; height: .42rem; border-radius: 2px; background: var(--bio-meteo-row-border, #d8dee5); }
.bio-meteo__status--low + .bio-meteo__scale .bio-meteo__scale-segment--active { background: var(--bio-meteo-low); }
.bio-meteo__status--medium + .bio-meteo__scale .bio-meteo__scale-segment--active { background: var(--bio-meteo-medium); }
.bio-meteo__status--high + .bio-meteo__scale .bio-meteo__scale-segment--active { background: var(--bio-meteo-high); }
.bio-meteo__description { font-size: .92rem; margin: .55rem 0 0; }

.bio-meteo__table-wrap,
.bio-meteo__compact-wrap { overflow-x: auto; }
.bio-meteo__table,
.bio-meteo__compact-table { width: 100%; border-collapse: collapse; color: var(--bio-meteo-text); }
.bio-meteo__table-heading,
.bio-meteo__table-label,
.bio-meteo__table-value { text-align: left; vertical-align: top; border-bottom: 1px solid var(--bio-meteo-row-border); padding: .75rem; }
.bio-meteo__table-heading { background: var(--bio-meteo-table-header); }
.bio-meteo__table-label { min-width: 180px; font-size: 1rem; font-weight: 700; }
.bio-meteo__daily-tables { display: grid; gap: var(--bio-meteo-layout-gap, 16px); }
.bio-meteo__daily-table-wrap { overflow-x: auto; }
.bio-meteo__daily-table .bio-meteo__table-heading:last-child { width: 65%; }

.bio-meteo__compact-table { table-layout: fixed; }
.bio-meteo__compact-table--days-1 { min-width: 460px; }
.bio-meteo__compact-table--days-2 { min-width: 680px; }
.bio-meteo__compact-table--days-3 { min-width: 900px; }
.bio-meteo__compact-heading,
.bio-meteo__compact-label,
.bio-meteo__compact-impact { border-bottom: 1px solid var(--bio-meteo-row-border); padding: var(--bio-meteo-compact-padding-vertical, 10px) var(--bio-meteo-compact-padding-horizontal, 12px); }
.bio-meteo__compact-heading { background: var(--bio-meteo-table-header); font-weight: 700; }
.bio-meteo__compact-heading--issue,
.bio-meteo__compact-label { text-align: left; }
.bio-meteo__compact-heading--impact,
.bio-meteo__compact-impact { width: 13rem; text-align: right; white-space: nowrap; overflow: hidden; }
.bio-meteo__compact-impact .bio-meteo__status { min-width: 5.25rem; padding-inline: .4rem; text-align: center; }
.bio-meteo__compact-impact .bio-meteo__scale { margin-inline-start: .35rem; }

.bio-meteo__meta { display: flex; gap: .5rem 1rem; flex-wrap: wrap; margin-top: 1rem; color: var(--bio-meteo-secondary); font-size: .82rem; }
.bio-meteo__stale { font-weight: 600; }
.bio-meteo__disclaimer { margin: 1rem 0 0; color: var(--bio-meteo-secondary); font-size: .82rem; }

.bio-meteo--theme-dark {
	--bio-meteo-background: var(--bio-meteo-dark-background, #17212b);
	--bio-meteo-border: var(--bio-meteo-dark-border, #45525e);
	--bio-meteo-text: var(--bio-meteo-dark-text, #f4f7f9);
	--bio-meteo-title-color: var(--bio-meteo-dark-title, #fff);
	--bio-meteo-secondary: var(--bio-meteo-dark-secondary, #c4ccd3);
	--bio-meteo-card-background: var(--bio-meteo-dark-card-background, #202d39);
	--bio-meteo-card-border: var(--bio-meteo-dark-card-border, #45525e);
	--bio-meteo-card-title: var(--bio-meteo-dark-card-title, #f4f7f9);
	--bio-meteo-control-background: var(--bio-meteo-dark-control-background, #202d39);
	--bio-meteo-control-border: var(--bio-meteo-dark-control-border, #6b7785);
	--bio-meteo-control-text: var(--bio-meteo-dark-control-text, #f4f7f9);
	--bio-meteo-table-header: var(--bio-meteo-dark-table-header, #202d39);
	--bio-meteo-row-border: var(--bio-meteo-dark-row-border, #45525e);
}
.bio-meteo--theme-transparent { background: transparent; }

.bio-meteo-block-editor-preview { min-height: 120px; }
.bio-meteo-block-editor-preview .bio-meteo { margin: 0; }
.bio-meteo__official { display: grid; gap: 4px; margin-top: 14px; padding: 12px; border: 1px solid var(--bio-meteo-card-border); border-radius: calc(var(--bio-meteo-border-radius) * .7); background: var(--bio-meteo-card-background); color: var(--bio-meteo-text); }
.bio-meteo__official strong { color: var(--bio-meteo-card-title); }

.bio-meteo-value {
	--bio-meteo-text: var(--bio-meteo-light-text, #1f2933);
	--bio-meteo-table-header: var(--bio-meteo-light-table-header, #f1f4f6);
	--bio-meteo-row-border: var(--bio-meteo-light-row-border, #d8dee5);
	display: inline-flex; align-items: center; gap: .5rem; flex-wrap: wrap;
}
.bio-meteo-value__label,
.bio-meteo-value__description { background: none; border: 0; padding: 0; color: inherit; font: inherit; }
.bio-meteo-value__description { flex-basis: 100%; }
.bio-meteo-value--low .bio-meteo__scale-segment--active { background: var(--bio-meteo-low, #2e9f53); }
.bio-meteo-value--medium .bio-meteo__scale-segment--active { background: var(--bio-meteo-medium, #e59b20); }
.bio-meteo-value--high .bio-meteo__scale-segment--active { background: var(--bio-meteo-high, #c83d3d); }
.bio-meteo-country__status { margin: 0; }
.bio-meteo-country__description { margin: .35rem 0 0; }
.bio-meteo-country__period + .bio-meteo-country__period { margin-top: 1rem; }
.bio-meteo-country__period-title { margin: 0 0 .4rem; font-size: 1rem; font-weight: 700; }
.bio-meteo-country__note { margin: .35rem 0 0; font-size: .82rem; opacity: .75; }

.bio-meteo-search { position: relative; z-index: 2; box-sizing: border-box; padding: var(--bio-search-padding-top, 16px) var(--bio-search-padding-right, 16px) var(--bio-search-padding-bottom, 16px) var(--bio-search-padding-left, 16px); border: 1px solid var(--bio-search-border, #d8dee5); border-radius: var(--bio-search-radius, 10px); background: var(--bio-search-bg, #fff); color: var(--bio-search-text, #1f2933); }
.wp-block-cover.bio-meteo-cover--dropdown-visible { overflow: visible; }
.bio-meteo-search * { box-sizing: border-box; }
.bio-meteo-search__controls { display: flex; gap: .6rem; align-items: stretch; }
.bio-meteo-search__combobox { position: relative; flex: 1 1 240px; min-width: 0; }
.bio-meteo-search__input,
.bio-meteo-search__button { min-height: 44px; border-radius: calc(var(--bio-search-radius, 10px) * .65); padding: .6rem .8rem; font: inherit; }
.bio-meteo-search .bio-meteo-search__input { width: 100%; border: 1px solid var(--bio-search-field-border, #aeb8c2); background: var(--bio-search-field-bg, #fff); color: var(--bio-search-field-text, #17212b); box-shadow: none; }
.bio-meteo-search .bio-meteo-search__input:focus,
.bio-meteo-search .bio-meteo-search__input:focus-visible { border-color: var(--bio-search-field-border, #aeb8c2); outline: 2px solid var(--bio-search-field-border, #aeb8c2); outline-offset: 1px; box-shadow: none; }
.bio-meteo-search__button { border: 1px solid transparent; background: var(--bio-search-button-bg, #17212b); color: var(--bio-search-button-text, #fff); cursor: pointer; font-weight: 700; }
.bio-meteo-search__button:hover,
.bio-meteo-search__button:focus-visible { background: var(--bio-search-button-hover, #2e3f50); }
.bio-meteo-search__list { position: absolute; z-index: 30; top: calc(100% + 3px); left: 0; right: 0; max-height: 260px; overflow-y: auto; border: 1px solid var(--bio-search-field-border, #aeb8c2); border-radius: calc(var(--bio-search-radius, 10px) * .5); background: var(--bio-search-field-bg, #fff); box-shadow: 0 8px 20px rgba(0,0,0,.12); }
.bio-meteo-search__option { display: block; width: 100%; border: 0; border-bottom: 1px solid var(--bio-search-field-border, #aeb8c2); padding: .65rem .8rem; background: transparent; color: var(--bio-search-field-text, #17212b); text-align: left; cursor: pointer; font: inherit; }
.bio-meteo-search__option:last-child { border-bottom: 0; }
.bio-meteo-search__option:hover,
.bio-meteo-search__option:focus { background: color-mix(in srgb, var(--bio-search-button-bg, #17212b) 10%, var(--bio-search-field-bg, #fff)); outline: none; }
.bio-meteo-search__empty { display: block; padding: .65rem .8rem; color: var(--bio-search-field-text, #17212b); }
.bio-meteo-search__message { margin: .4rem 0 0; font-size: .9rem; }
.bio-meteo-search__message:empty { display: none; }

@media (prefers-color-scheme: dark) {
	.bio-meteo--theme-auto {
		--bio-meteo-background: var(--bio-meteo-dark-background, #17212b);
		--bio-meteo-border: var(--bio-meteo-dark-border, #45525e);
		--bio-meteo-text: var(--bio-meteo-dark-text, #f4f7f9);
		--bio-meteo-title-color: var(--bio-meteo-dark-title, #fff);
		--bio-meteo-secondary: var(--bio-meteo-dark-secondary, #c4ccd3);
		--bio-meteo-card-background: var(--bio-meteo-dark-card-background, #202d39);
		--bio-meteo-card-border: var(--bio-meteo-dark-card-border, #45525e);
		--bio-meteo-card-title: var(--bio-meteo-dark-card-title, #f4f7f9);
		--bio-meteo-control-background: var(--bio-meteo-dark-control-background, #202d39);
		--bio-meteo-control-border: var(--bio-meteo-dark-control-border, #6b7785);
		--bio-meteo-control-text: var(--bio-meteo-dark-control-text, #f4f7f9);
		--bio-meteo-table-header: var(--bio-meteo-dark-table-header, #202d39);
		--bio-meteo-row-border: var(--bio-meteo-dark-row-border, #45525e);
	}
}

@media (max-width: 700px) {
	.bio-meteo__grid { grid-template-columns: 1fr; }
}
@media (max-width: 430px) {
	.bio-meteo__periods { grid-template-columns: 1fr; }
	.bio-meteo__location-select,
	.bio-meteo__geolocation-button,
	.bio-meteo__clear-button { width: 100%; }
	.bio-meteo-search__controls { flex-direction: column; }
	.bio-meteo-search__button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.bio-meteo * { scroll-behavior: auto !important; transition: none !important; }
}
.bio-meteo-shortcode-link {
	color: inherit;
	text-decoration: none;
}
