.standalone-widget-stack {
	position: fixed;
	bottom: 1rem;
	left: 1rem;
	z-index: 2020;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.75rem;
	max-width: calc(100vw - 2rem);
	pointer-events: none;
}

.standalone-widget-stack > * {
	pointer-events: auto;
}

.weather-popup {
	position: relative;
	width: min(12.5rem, calc(100vw - 2rem));
}

.weather-popup[hidden],
.weather-toggle[hidden] {
	display: none;
}

.weather-toggle {
	display: grid;
	width: 3.5rem;
	height: 3.5rem;
	padding: 0;
	background: #fff;
	border: 1px solid rgb(31 36 33 / 16%);
	border-radius: 50%;
	box-shadow: 0 0.5rem 1.5rem rgb(31 36 33 / 18%);
	cursor: pointer;
	place-items: center;
}

.weather-toggle:hover {
	border-color: rgb(13 124 102 / 45%);
}

.weather-toggle:focus,
.weather-close:focus {
	outline: none;
}

.weather-toggle img {
	display: block;
	width: 3rem;
	height: 3rem;
}

.weather-close {
	position: absolute;
	top: -0.625rem;
	right: -0.625rem;
	z-index: 2;
	display: grid;
	width: 1.5rem;
	height: 1.5rem;
	padding: 0;
	color: #5d675e;
	font: inherit;
	background: #fff;
	border: 1px solid rgb(31 36 33 / 16%);
	border-radius: 999px;
	cursor: pointer;
	place-items: center;
}

.weather-close:hover { color: #1f2421; border-color: rgb(31 36 33 / 35%); }
.weather-close svg { width: 0.875rem; height: 0.875rem; }
.weather-close:focus-visible, .weather-toggle:focus-visible, .weather-link:focus-visible, .ww-location-chip:focus-visible { outline: 2px solid #0d7c66; outline-offset: 0.1875rem; }
.weather-widget-root, .weather-layout { max-width: 12.5rem; margin-inline: auto; }
.ww-toolbar { margin-bottom: 0.25rem; }
.ww-location-switcher { display: flex; gap: 0.25rem; }

.ww-location-chip {
	padding: 3px 0.5rem;
	color: #000;
	font-family: inherit;
	font-size: 0.6875rem;
	line-height: 1.4;
	text-underline-offset: 0.1875rem;
	background: #fff;
	border: 0;
	border-radius: 5px;
	cursor: pointer;
	transition: color 150ms ease, background 150ms ease;
}

.ww-location-chip:hover, .ww-location-chip-active { color: #fff; text-decoration: none; background: #0d7c66; }
.ww-location-chip:focus:not(:focus-visible) { outline: none; }
.weather-link { display: block; color: inherit; text-decoration: none; border-radius: 0.875rem; }
.weather-link:hover { text-decoration: none !important; }
.weather-link:hover .weather-current { border-color: rgb(13 124 102 / 45%); }

.weather-current {
	position: relative;
	min-height: 6.75rem;
	padding: 0.75rem;
	color: #1f2421;
	background: #fff;
	border: 1px solid rgb(31 36 33 / 12%);
	border-radius: 0.875rem;
	overflow: hidden;
	transition: border-color 150ms ease;
}

.weather-icon { position: absolute; top: 0.5rem; right: 0.625rem; width: 3rem; height: 3rem; }
.weather-icon img { display: block; width: 100%; height: 100%; }
.weather-temperature { display: block; margin: 0; font-size: 1.75rem; font-weight: 700; line-height: 1; letter-spacing: -0.04em; }

.weather-summary {
	position: absolute;
	right: 0.75rem;
	bottom: 0.75rem;
	left: 0.75rem;
	margin: 0;
	color: #5d675e;
	font-size: 0.7125rem;
	line-height: 1.2;
	text-align: right;
}

.weather-attribution { margin: 0.25rem 0 0; color: #7a827c; font-size: 0.5rem; line-height: 1.25; text-align: center; }
.weather-attribution a { color: inherit; text-decoration: underline; }
.weather-attribution a:hover { color: #0d7c66; }

.weather-status {
	display: grid;
	min-height: 6.75rem;
	margin: 0;
	padding: 0.75rem;
	color: #5d675e;
	font: 0.75rem/1.3 sans-serif;
	text-align: center;
	background: #fff;
	border: 1px solid rgb(31 36 33 / 12%);
	border-radius: 0.875rem;
	place-items: center;
}

