/* CSS file v5 */
body {
	color: black;
	background-color: #041004;
	font-family: system-ui, sans-serif;
}
#background {
	background-color: #041004;
	min-height: 1000px;
}
#page {
	margin: 0px auto;
	max-width: 1440px;
}

/******************Header***************************/
#header {
	color: #EFEFFB;
	width: 100%;
	background-color:#0B6121;
}
#banner {
	width: 100%;
	height: 150px;
	display: flex;
	justify-content: space-between;
}
#banner-main {
	background-image: url('/static-images/banner_site.jpg');
	background-repeat: no-repeat;
	color: #d3f4d0;
	width: 70%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	cursor: pointer;
	padding-bottom: 2rem;
}
#banner-left {
	background-image: url('/static-images/box_site.jpg');
	background-repeat: no-repeat;
	width: 16%;
}
#banner-right {
	background-image: url('/static-images/anem_site.jpg');
	width: 15%;
}
#banner-nw3 {
	font-size: 5rem;
	margin-left: 3rem;
	margin-right: 1rem;
	display: flex;
}

#banner-location {
	font-size: 2rem;
	margin-right: 3rem;
	line-height: 2.5rem;
}
#banner-location-comma {
	display: none;
}
#banner-nw3 .nw3 {
	font-weight: 600;
	color: #a9ffa3;
}

#sub-header {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	background-color: #0a2801;
	font-size: 1.2rem;
	color: white;
}
#sub-header > div {
	margin: 0;
	padding: 6px;
	display: inline-block;
}

@media only screen and (max-width: 1024px) {
	#banner-nw3 {
		font-size: 4rem;
		margin-left: 1rem;
		margin-right: 0.5rem;
	}
	#banner-location {
		font-size: 2rem;
		margin-right: 0.5rem;
		line-height: 2rem;
	}
	#banner-main {
	}
	#banner-left {
		width: 18%;
	}
	#banner-right {
		width: 12%;
	}
}
@media only screen and (max-width: 834px) {
	#banner-nw3 {
		font-size: 3.5rem;
		margin-left: 0.5rem;
		margin-right: 0.5rem;
	}
	#banner-location {
		font-size: 1.8rem;
		margin-right: 0.5rem;
		line-height: 2rem;
		margin-top: 1.4rem;
	}
	#banner-location > div {
		display: inline-block;
	}
	#banner-main {
		flex-wrap: wrap;
		width: 75%;
	}
	#banner-left {
		width: 25%;
	}
	#banner-right {
		width: 0%;
	}
}
@media only screen and (max-width: 486px) {
	#banner-left {
		width: 0%;
	}
	#banner-main {
		width: 100%;
	}
	#banner-location {
		font-size: 1.6rem;
	}
}

/****************** Nav bar ***************************/
#nav-wrapper {
	display: flex;
}
#nav {
	width: 190px;
	background-color: #E3F7E1;
	font-size: 1.1rem;
}
#main {
	flex: 1 1 auto;
	min-width: 0;
	overflow-x: auto;
	padding: 0.5rem 1rem;
	background-color:#F2FAFD;
}

#nav > a {
	color: rgb(64,64,64);
	background-color: transparent;
	text-decoration: none;
	display: block;
	padding: 0.5rem 0 0.5rem 0.6rem;
}
#nav > p.subhead {
	padding: 0.5rem 0 0 0.6rem;
	margin: 0;
	font-weight: 600;
}
#nav > a.subhead-item {
	padding: 0.5rem 0 0.5rem 1.2rem;
}

#nav > a:hover {
	color: #357C23;
	background-color: rgba(169,197,204,0.5);
}

#nav .nav-heading {
	margin: 1rem 0 0.2rem 0.7rem;
	padding: 0;
	font-weight: bold;
	font-size: 1.2rem;
	color: #0B614B;
}

#nav .curr {
	background-color: rgba(19,197,10,0.11);
	font-weight: bold;
	padding: 0.6rem;
}

#nav-settings {
	margin-top: 2rem;
}
#nav-settings > p {
	font-weight: bold;
	margin: 0;
	padding: 0.4rem 0.6rem;
	border-top: 1px solid;
}
#nav-settings label {
	padding: 0.3rem;
	display: block;
}

/******************Info boxes***************************/
.statusBox {
	font-size: 105%;
	width: 90%;
	margin: 2px 4px 3px 4px;
	padding: 0.4em;
	text-align: center;
}

.warning {
	color: #310;
	background-color:#f4afb1;
	border: 2px solid #d58;
}

.info {
	color: #031;
	background-color:#aff4b1;
	border: 1px solid #7ca;
}

/******************Main***************************/
#main a {
	color: #0B610B;
	background-color: transparent;
	text-decoration: underline;
}

#main form {
	display: inline;
}

#main h1 {
	color: #15866A;
	font-size: 1.8rem;
	font-weight: 600;
	margin: 0.5em 0.3em 0.3em 0.3em;
	padding: 0.2em 0.2em 0.2em 0.2em;
	border-top: 1px solid rgb(60,210,40);
}

#main h2 {
	color: #168843;
	font-size: 1.5rem;
	font-weight: 600;
	margin: 0.8rem 0 0.4rem 0.6rem;
}

#main h3 {
	color: #05664A;
	background-color: transparent;
	font-size: 1.2rem;
	font-weight: 600;
	margin-left: 0.5em;
}

#main a:hover {
	text-decoration: none;
}
#main a.arrow {
	text-decoration: none;
	color: #b87;
	font-size: 130%;
}
#main a.arrow:hover {
	color: #f33;
}
#main a.hidden-link {
	text-decoration: none;
	color: inherit;
	padding: 0.3em;
}

img, video {
	max-width: 100%;
	height: auto;
}
.center {
	display: flex;
	align-items: center;
	flex-direction: column;
}
abbr {
	border-bottom: 1px dotted;
}
p {
	margin: 1rem 0;
	padding: 0;
}
dt {
	font-size: 110%;
}
dl {
	margin: 0.7em;
}
li {
	margin: 0.2em 0;
}
button {
	margin: 0.6em;
	display: block;
	padding: 0.3em;
}
select {
	 padding: 0.3rem;
}


/************* KV table ************/
.kv-table {
	display: grid;
	grid-template-columns: 1fr 1.4fr;
	margin: 0.5rem 0 2rem 0;
	max-width: 650px;
}
.kv-table > div {
	display: contents;
}
.kv-table > div > div {
	padding: 0.6rem 0.5rem;
}
.kv-table > div > div:nth-of-type(1) {
	font-weight: 600;
}
.rowdark > div {
	background: #e8f0ea
}
.empty > div {
	padding: 0.3rem;
}

@media screen and (max-width: 900px) {
    table .hide-small {
        display: none;
    }
}

/****************** Charts ***************************/
div.charts {
	display: flex;
	flex-wrap: wrap;
	margin: 0.5em;
}
div.charts-with-title {
	display: flex;
	flex-wrap: wrap;
	margin: 0.5em;
}
div.charts > img {
	margin: 0.5em;
}
div.charts-with-title > img {
	margin: 0.5em;
}

/* wx3 live dashboard: variable + range toggles, main + multi-var charts */
.wx3-live-bar {
	display: flex;
	align-items: flex-start;
	gap: 0.4rem;
	margin: 0.3rem 0.3rem 0.5rem;
}
.wx3-live-vars {
	display: flex;
	flex-wrap: nowrap;
	gap: 0.2rem;
	flex: 1 1 auto;
	overflow-x: auto;
}
.wx3-live-vars button {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	cursor: pointer;
	margin: 0;
	padding: 0.2rem 0.45rem;
	white-space: nowrap;
	background: #eef5ef;
	color: #15604c;
	border: 1px solid #d6e2d8;
	border-radius: 8px;
	font: inherit;
	font-size: 0.85rem;
}
.wx3-live-vars button img {
	display: block;
	width: 22px;
	height: 22px;
}
.wx3-live-vars button:hover { background: #e0eee3; }
.wx3-live-vars button.active {
	background: #15866A;
	color: #fff;
	border-color: #15866A;
}
.wx3-live-range {
	display: flex;
	gap: 0.1rem;
	flex: 0 0 auto;
}
.wx3-live-range button {
	font: inherit;
	cursor: pointer;
	margin: 0;
	padding: 0.2rem 0.5rem;
	background: #fff;
	color: #15604c;
	border: 1px solid #d6e2d8;
	border-radius: 5px;
}
.wx3-live-range button:hover { background: #eef5ef; }
.wx3-live-range button.active {
	background: #15866A;
	color: #fff;
	border-color: #15866A;
}
.wx3-chart {
	background: #fff;
	border: 1px solid #d6e2d8;
	border-radius: 6px;
	margin: 0.3rem 0.3rem 0.6rem;
	min-width: 0;
}
.wx3-multi {
	display: flex;
	flex-direction: row;
}
.wx3-multi > .wx3-chart {
	flex: 1 1 0;
	width: 50%;
}
@media only screen and (max-width: 900px) {
	.wx3-multi { flex-direction: column; }
	.wx3-multi > .wx3-chart { width: auto; }
}

/* Trend charts need a definite width so Highcharts gets a real plot area */
div.charts > .wxchart {
	flex: 1 1 420px;
	min-width: 300px;
}

/* Selectable trend chart (variable dropdown) - full width */
div.charts > .wxsel-chart {
	flex: 1 1 100%;
	width: 100%;
}
.wxsel-chart .wxchart { width: 100%; }
.wxsel-chart { margin: 0.5em; }
.wxsel-bar {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0 0.3rem 0.3rem;
	font-size: 0.85rem;
}
.wxsel {
	font: inherit;
	padding: 0.15rem 0.3rem;
	color: #15604c;
	background: #fff;
	border: 1px solid #d6e2d8;
	border-radius: 5px;
}

/* Wind roses: equal-sized, larger */
div.charts-with-title > div {
	flex: 1 1 380px;
	min-width: 320px;
}
div.charts-with-title .wxchart {
	width: 100%;
}

/* LEGACY */

.table-top {
	color: black;
	background-color: #DBEBEE;
	text-align: left;
	font-weight: bold;
	font-size: 110%;
}

.table-head {
	background-color: #BDCDF7;
	font-weight: bold;
	font-size: 123%;
}

.table-mainFoot {
	margin: 20px 1px;
	text-align: left;
	background-color: #E4FDE7;
	border: 1px solid #2D851B;
}

.table-mainFoot td {
	border: 1px solid #2D851B;

}


.tblfoot {
	font-weight: bold;
	background-color: #BDB;
}

.rightPad {
	margin-right: 19px;
}

.temp {
	color: #DF7401;
}
.rain {
	color: #3567EF;
}
.sun {
	color: #99910A;
}
.snow {
	color: #68acbd;
}
.wind {
	color: #ff3322;
}

.table-main {
	text-align: left;
}

.tdmain {
	padding: 10px;
}

.rowdark {
	color: black;
	background-color: rgb(233,232,225);
}
.rowdarkmain {
	color: black;
	background-color: rgba(233,233,233,0.4);
}
.rowlight {
	color: black;
	background-color: white;
}
.rowhlite {
	color: black;
	background-color: #CCF5B1;
}

.td12 {
	border: solid 1px rgb(157,172,238);
	text-align: center;
}

.td6 {
	border: solid 1px #9A83B0;
}

.table2 {
    border: solid 1px #2E9D30;
    text-align: left;
    padding: 2px 9px;
}

.table1 {
	border: 2px solid rgb(175,175,175);
	border-spacing: 0px;
	margin: 2px;
}

.td14 {
	border: solid 1px #D8CEF6;
	border-spacing: 1px;
	text-align: center;
}

.td10 {
	border: solid 1px rgb(157,231,157);
	border-spacing: 1px;
	text-align: center;
}

.td13 {
	border: solid 1px rgb(255,151,151);
	border-spacing: 1px;
	text-align: center;
}

.td4 {
	border: solid 1px #CAB99D;
	border-spacing: 2px;
	text-align: center;
}

.td16 {
	border: solid 1px #9F81F7;
	border-spacing: 1px;
	text-align: center;
}

.td18 {
	border: solid 1px #F2F5A9;
	border-spacing: 1px;
	text-align: center;
}

.td19 {
	border: solid 1px #CEF6F5;
	border-spacing: 1px;
	text-align: center;
}

.td20 {
	border: solid 1px #868A08;
	border-spacing: 1px;
	text-align: center;
}

.td4e {
	border-left: solid 2px rgb(143,208,246);
	border-spacing: 4px;
}

.td4C {
	color: #2E0A10;
	text-align: center;
	border: solid 1px #CAB99D;
}

.td10C {
	color: #2D851B;
	text-align: center;
	border: solid 1px #CAB99D;
}

.td14C {
	color: #DF7401;
	text-align: center;
	border: solid 1px #CAB99D;
}

.td12C {
	color: #3567EF;
	text-align: center;
	border: solid 1px #CAB99D;
}

.td13C {
	color: #DA1313;
	text-align: center;
	border: solid 1px #CAB99D;
}

.td16C {
	border: solid 1px #CAB99D;
	color: #7055BF;
	text-align: center;
}

.td18C {
	border: solid 1px #CAB99D;
	color: #69611A;
	text-align: center;
}
.td19C {
	border: solid 1px #CAB99D;
	color: #1B6A75;
	text-align: center;
}
.td20C {
	border: solid 1px #CAB99D;
	color: #626412;
	text-align: center;
}

.td-center {
	text-align: center;
}


.aboutTbl {
	margin: 0.8em;
}

.aboutTbl td {
	text-align: center;
	padding: 0.3em 0.8em;
	border: solid 1px #CAB99D;
	border-spacing: 1px;
}

.aboutTbl tfoot {
	background-color: #A5DF40;
	font-weight: bold;
}

.aboutTbl tbody tr:nth-child(2n) {
	background-color: white;
}
.aboutTbl td:first-child {
	font-weight: bold;
}

/******************Footer***************************/
#footer {
	background-color:#1D4825;
	color: white;
	padding: 1em 0 1em 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-evenly;
	align-items: flex-end;
}

#footer > div {
	margin: 0 1rem;
}

#footer a {
	text-decoration: none;
	color: white;
}

#footer a:hover {
	color: #c0f0b2;
}

/***************** Tabs **************/
.rank-tab-buttons {
    display: flex;
    justify-content: center;
}

.rank-tab-button {
    background-color: #f2f2f2;
    border: 1px solid #ccc;
    padding: 5px 10px;
    cursor: pointer;
}

.rank-tab-button:hover {
    background-color: #ddd;
}

.rank-tab {
    padding: 2px;
}

.sticky-head {
	position: sticky;
	top: 0;
	background-color: #c4e3ff;
}
.rank-tab.scroll {
	max-height: 75vh;
	overflow-y: auto
}


/****************** Page specific ***************************/
/* wx2 */
#skycam-selector {
	margin: 0.6em;
	display: flex;
	flex-wrap: wrap;
}

#skycam-selector span {
	background-color: #bbb;
	padding: 0.3em 0.6em;
	margin: 0.2em 0.5em;
	border: solid 1px #CAB99D;
	cursor: pointer;
}
#skycam-selector span:hover {
	background-color: #bbf;
}

#skycam-selector span.selected {
	font-weight: bold;
	color: white;
	background-color: #77f;
}

select.timelapse {
	margin-right: 1.5em;
	margin-left: 0.5em;
}

/* wx6 */
#sun-moon {
	background-color: #010401;
	color:#fefdf4;
	margin:1rem 0.6rem;
}
#sun-moon h3 {
	color: #AEDFD1;
	margin: 0.2rem 0 0 0;
}
#sun-moon > div {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-evenly;
	gap: 1rem;
	margin-bottom: 2rem;
}
#sun-moon > div > div {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.3rem;
}
#earthviewer {
	margin: 1rem 0;
	max-width: 1000px;
}

/* wx5 */
#widgets {
	display: flex;
	flex-wrap: wrap;
	margin: 0.5rem 0;
}
#widgets > div {
	margin: 0.3rem;
	flex: 1 1 90%;
}
#wx-map {
	width: 1200px;
	margin-top: 2rem;
}
@media only screen and (max-width: 1430px) {
	#wx-map {
		width: 1000px;
	}
}
@media only screen and (max-width: 1230px) {
	#wx-map {
		width: 820px;
	}
}
@media only screen and (max-width: 1030px) {
	#wx-map {
		width: 630px;
	}
}
@media only screen and (max-width: 830px) {
	#wx-map {
		width: 460px;
	}
}
@media only screen and (max-width: 630px) {
	#wx-map {
		width: 320px;
	}
}


/* wx7 */
.galleries {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	gap: 1.5rem;
}
@media only screen and (max-width: 834px) {
	.galleries {
		gap: 0.6rem;
	}
}
.galleries a {
	display: block;
	text-decoration: none;
}
.galleries span {
	display: block;
}

/* detailed data */
.detail-flex {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
	justify-content: space-between;
}
.detail-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.5rem;
}
@media only screen and (max-width: 1230px) {
	.detail-grid {
		grid-template-columns: 1fr;
	}
}

/****************** Home dashboard ***************************/
.home-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
}
.home-head h1 {
	margin-bottom: 0;
}
.home-summary {
	order: -1; /* wide screens: live box on the left, title on the right */
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 1rem;
	background: #eef5ef;
	border: 1px solid #cfe3d2;
	border-radius: 6px;
	padding: 0.6rem 1rem;
	margin: 0.5rem 0.3rem;
	text-align: left;
}
.home-summary .home-report {
	line-height: 1.5;
}
.live-status {
	margin-top: 0.4rem;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 0.4rem;
}
.live-dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #999;
	flex: 0 0 auto;
}
.live-dot-ok {
	background: #2ecc40;
	box-shadow: 0 0 5px rgba(46, 204, 64, 0.8);
}
.live-dot-stale {
	background: #e0242b;
	box-shadow: 0 0 5px rgba(224, 36, 43, 0.8);
}
.live-meta {
	font-size: 0.85rem;
	color: #555;
}
.home-forecast {
	display: flex;
	align-items: center;
	gap: 1.2rem;
	flex-wrap: wrap;
	flex: 0 0 auto;
}
.fcast-day {
	text-align: center;
	min-width: 96px;
}
.fcast-day img {
	width: 60px;
	height: auto;
	background-color: #CCCEEC;
	border-radius: 6px;
}
.fcast-label {
	font-weight: 600;
}
.fcast-desc {
	font-size: 0.85rem;
	color: #444;
}
.fcast-temps {
	margin-top: 0.1rem;
}
.fcast-pop {
	font-size: 0.85rem;
	color: #3567EF;
}
.fcast-more {
	font-size: 0.9rem;
}

.wx-cards {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1rem;
	margin: 0.5rem 0.3rem 1.5rem;
}
@media only screen and (max-width: 1150px) {
	.wx-cards { grid-template-columns: repeat(3, 1fr); }
}
@media only screen and (max-width: 820px) {
	.wx-cards { grid-template-columns: repeat(2, 1fr); }
}
@media only screen and (max-width: 520px) {
	.wx-cards { grid-template-columns: 1fr; }
}
/* Live cards live in their own AJAX-refreshed wrapper but join the parent grid */
.wx-live-cards {
	display: contents;
}
.wx-card {
	background: #fff;
	border: 1px solid #d6e2d8;
	border-top: 4px solid #15866A;
	border-radius: 6px;
	padding: 0.7rem 0.9rem;
	box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}
.wx-card-head {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-weight: 600;
	font-size: 1.1rem;
	color: #15866A;
	margin-bottom: 0.4rem;
}
.wx-card-icon {
	flex: 0 0 auto;
}
.wx-card-head a.hidden-link {
	color: inherit;
	padding: 0;
}
.wx-card-now {
	font-size: 1.9rem;
	font-weight: 600;
	line-height: 1.1;
}
.wx-card-now .wx-rate {
	font-size: 0.85rem;
	font-weight: 400;
	color: #555;
	white-space: nowrap;
}

/* Live trend arrows */
.wx-arrow {
	font-size: 0.8rem;
	font-weight: 700;
	line-height: 1;
	vertical-align: 0.08em;
}
.wx-arrow-up { color: #1f9d3b; }
.wx-arrow-down { color: #d23030; }
.wx-arrow-steady { color: #999; font-weight: 400; }

/* Flash a live value green (rose) or red (fell) when it changes on refresh */
.wx-card-now span[id^="var"] {
	border-radius: 4px;
	padding: 0 0.1em;
}
@keyframes wxFlashUp {
	from { background-color: rgba(31, 157, 59, 0.45); }
	to { background-color: transparent; }
}
@keyframes wxFlashDown {
	from { background-color: rgba(210, 48, 48, 0.40); }
	to { background-color: transparent; }
}
.wx-flash-up { animation: wxFlashUp 1.6s ease-out; }
.wx-flash-down { animation: wxFlashDown 1.6s ease-out; }
.wx-card-sub {
	color: #444;
	margin: 0.2rem 0 0.5rem;
}
.wx-card-rows {
	margin-top: 0.4rem;
	border-top: 1px dashed #dde8df;
}
.wx-card-rows > div {
	display: flex;
	flex-wrap: nowrap;
	justify-content: space-between;
	gap: 0.5rem;
	padding: 0.28rem 0;
	border-bottom: 1px dashed #eef3ef;
	white-space: nowrap;
}
.wx-card-rows > div:last-child {
	border-bottom: none;
}
.wx-card-rows .k {
	color: #567;
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
}
.wx-card-rows .v {
	text-align: right;
	flex: 0 0 auto;
}
.wx-card-rows .wx-when {
	color: #889;
	font-weight: 400;
	font-size: 0.85em;
}
.wx-card-foot {
	margin-top: 0.5rem;
	font-size: 0.9rem;
}

/* Per-variable accent colours */
.wx-card-temp { border-top-color: #DF7401; }
.wx-card-temp .wx-card-head { color: #DF7401; }
.wx-card-humi { border-top-color: #2E9D30; }
.wx-card-humi .wx-card-head { color: #2E9D30; }
.wx-card-pres { border-top-color: #7055BF; }
.wx-card-pres .wx-card-head { color: #7055BF; }
.wx-card-wind { border-top-color: #DA1313; }
.wx-card-wind .wx-card-head { color: #DA1313; }
.wx-card-rain { border-top-color: #3567EF; }
.wx-card-rain .wx-card-head { color: #3567EF; }
.wx-card-sun { border-top-color: #B8860B; }
.wx-card-sun .wx-card-head { color: #B8860B; }
.wx-card-pm25 { border-top-color: #5B8A72; }
.wx-card-pm25 .wx-card-head { color: #5B8A72; }
.wx-card-pm25 .wx-card-now { font-size: 1.5rem; }
.wx-card-head .wx-card-label { color: inherit; }

/* Air-quality DAQI status: small green/yellow/red indicator dot + label */
.daqi-status {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 1.4rem;
	line-height: 1.25;
	color: #1a1a1a;
}
.daqi-dot {
	display: inline-block;
	width: 0.75em;
	height: 0.75em;
	border-radius: 50%;
	background: #d9d9d9;
	flex: 0 0 auto;
}
.daqi-low .daqi-dot { background: #33a532; }
.daqi-mod .daqi-dot { background: #f2c500; }
.daqi-high .daqi-dot { background: #e02b1d; }
.daqi-vhigh .daqi-dot { background: #e02b1d; }
.daqi-unknown { color: #555; font-size: 1.1rem; }

/* Lower home row: interactive chart panel beside the webcam, half each */
.home-lower {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.8rem;
	align-items: start;
	margin: 0.3rem 0.3rem 1.5rem;
}
@media only screen and (max-width: 900px) {
	.home-lower { grid-template-columns: 1fr; }
}
.home-chart-panel { min-width: 0; }
.home-chart-more { margin: 0 0.3rem; }

/* Webcam: fills the right half, capped at natural size */
.home-cam { min-width: 0; }
.home-cam-link {
	display: block;
}
.home-cam-link img {
	width: 100%;
	max-width: 700px;
	height: auto;
	display: block;
	border: 1px solid #d6e2d8;
	border-radius: 6px;
}

/* wx2: responsive 24hr thumbnail grid (max 6 per row) */
.cam-grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 6px;
	margin: 0.5rem 0 0.8rem;
}
.cam-grid figure {
	margin: 0;
	text-align: center;
	font-size: 0.8rem;
}
.cam-grid img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 4px;
	border: 1px solid #d6e2d8;
}
.cam-grid figcaption {
	color: #444;
	padding-top: 2px;
}
.cam-grid-missing {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 3 / 2;
	background: #eef3ee;
	border: 1px dashed #cdd8ce;
	border-radius: 4px;
	color: #888;
	font-size: 0.75rem;
}
@media only screen and (max-width: 900px) {
	.cam-grid { grid-template-columns: repeat(4, 1fr); }
}
@media only screen and (max-width: 560px) {
	.cam-grid { grid-template-columns: repeat(3, 1fr); }
}

/* Interactive home-page chart */
.home-chart {
	background: #fff;
	border: 1px solid #d6e2d8;
	border-radius: 6px;
	margin: 0.3rem 0.3rem 0.6rem;
	height: 340px;
	min-width: 0;
}
@media only screen and (max-width: 600px) {
	.home-chart { height: 280px; }
}

/* Controls bar: variable tabs on the left, range toggle pushed right */
.home-chart-bar {
	display: flex;
	align-items: flex-start;
	gap: 0.3rem;
	margin: 0.3rem 0.3rem 0.5rem;
}

/* Variable tabs (icon-only) */
.home-chart-vars {
	display: flex;
	flex-wrap: wrap;
	gap: 0.05rem;
	flex: 1 1 auto;
}
.home-chart-vars button {
	display: inline-flex;
	align-items: center;
	cursor: pointer;
	margin: 0;
	padding: 0.1rem;
	background: #eef5ef;
	color: #15604c;
	border: 1px solid #d6e2d8;
	border-radius: 8px;
	line-height: 0;
}
.home-chart-vars button img {
	display: block;
	width: 30px;
	height: 30px;
}
.home-chart-vars button:hover { background: #e0eee3; }
.home-chart-vars button.active {
	background: #15866A;
	border-color: #15866A;
}

/* Time-range toggle */
.home-graph-controls {
	display: flex;
	gap: 0.1rem;
	flex: 0 0 auto;
}
.home-graph-controls button {
	font: inherit;
	cursor: pointer;
	margin: 0.2rem;
	padding: 0.2rem 0.45rem;
	background: #fff;
	color: #15604c;
	border: 1px solid #d6e2d8;
	border-radius: 5px;
}
.home-graph-controls button:hover { background: #eef5ef; }
.home-graph-controls button.active {
	background: #15866A;
	color: #fff;
	border-color: #15866A;
}

/* About-the-station info box */
.home-about {
	margin: 1rem 0.3rem;
	padding: 0.2rem 1rem;
	background: #eef5ef;
	border-left: 4px solid #15866A;
	border-radius: 4px;
}

.home-links {
	margin: 0.5rem 0.3rem 1rem;
	padding: 0.6rem 0.9rem;
	background: #eef5ef;
	border-radius: 6px;
	line-height: 2;
}
.home-links a {
	margin: 0 0.4rem;
	white-space: nowrap;
}

/****************** Responsive layout ***************************/
@media only screen and (max-width: 760px) {
	#nav-wrapper {
		flex-direction: column;
	}
	#nav {
		width: auto;
	}
	#main {
		padding: 0.5rem 0.6rem;
	}
	#main h1 {
		font-size: 1.5rem;
	}
	.detail-flex {
		gap: 0.8rem;
	}
	.home-head {
		flex-direction: column;
		align-items: stretch;
	}
	.home-summary {
		order: 0; /* stacked: title stays on top, live box drops below it */
		flex-direction: column;
		align-items: flex-start;
	}
}
