* {
    box-sizing: border-box;
}

.row::after {
    content: "";
    clear: both;
    display: table;
}

[class*="col-"] {
    float: left;
}

html {
    font-family: "Lucida Sans", sans-serif;
}

@media only screen and (orientation: landscape) {
    [class*="col-"] {
        width: 49.5%;
        padding-left: 1vw;
    }
}

@media only screen and (orientation: portrait) {
    [class*="col-"] {
        width: 100%;
    }
}

.topspacer {
    height: 1vmin;
}

.centeredth {
    width: 25%;
    text-align: center;
}

.location {
    text-align: center;
    width: 50%;
}

.imglogo {
    width: 4vmax;
    text-align: center;
}

.title {
    text-align: center;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 3vw;
    letter-spacing: 0.5vw;
}

.date {
    text-align: center;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 2vw;
    letter-spacing: 0.125vw;
}

.pmcell {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 3vmin;
    border: solid black 2px;
    padding: 2vmin 1vw;
}

.headtable {
    width: 100%;
}

.temp {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 3vmin;
}

.faceicon {
    max-width: 11vmin;
}

.smfaceicon {
    max-width: 12vmin;
}

.toptable {
    width: 100%;
    border-collapse: collapse;
    border: solid black 2px;
}

.conditionstable {
    width: 100%;
    border-collapse: collapse;
    border: solid black 2px;
}

.currenttext {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 3vmin;
}

/* Weather data cells (temp, feels like, humidity) — white background, unchanged by AQ color */
.weather {
    background-color: white;
    font-size: 3vmin;
    text-align: center;
    border: solid black 2px;
    padding-top: 1vmin;
    padding-bottom: 1vmin;
}

.chartcell {
    vertical-align: top;
    background-color: aliceblue;
    border: solid black 2px;
    max-width: 32vw;
}

.gradecell {
    background-color: lightgrey;
    font-size: 3vmin;
    text-align: center;
    border: solid black 2px;
    padding: 0.5vmin 1vw;
}

.graphimg {
    width: 90%;
}

/* Policy/grade-level cells — background color is overridden by JS based on AQ level */
.current {
    background-color: lightgrey;
    font-size: 3vmin;
    text-align: center;
    border: solid black 2px;
    padding-top: 1vmin;
    padding-bottom: 1vmin;
}

.currenthead {
    background-color: lightgrey;
    max-width: 25%;
    text-align: center;
    border: solid black 2px;
}

.legendcell {
    background-color: lightgrey;
    padding-top: 0.05vh;
    padding-bottom: 0.05vh;
    text-align: center;
}

.legend {
    background-color: lightgrey;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 1.5vw;
    letter-spacing: 0.125vw;
    padding-top: 0.15vh;
    padding-bottom: 0.15vh;
}

.policy {
    background-color: lightgrey;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 1.5vw;
    letter-spacing: 0.125vw;
    padding-top: 0.5vh;
    padding-bottom: 0.5vh;
}

/* Legend color swatches */
.good {
    background-color: skyblue;
    max-width: 25vw;
    font-size: 1.75vmin;
    padding: 2vmin 0;
    border: solid black 2px;
    text-align: center;
}

.moderate {
    background-color: lightgreen;
    max-width: 25vw;
    font-size: 1.75vmin;
    padding: 2vmin 0;
    border: solid black 2px;
    text-align: center;
}

.unhealthy {
    background-color: gold;
    max-width: 25vw;
    font-size: 1.75vmin;
    padding: 2vmin 0;
    border: solid black 2px;
    text-align: center;
}

.veryunhealthy {
    background-color: indianred;
    max-width: 25vw;
    font-size: 1.75vmin;
    padding: 2vmin 0;
    border: solid black 2px;
    text-align: center;
}

/* Hidden last-update debug text — visible only when selected */
.lastupdate {
    clear: both;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 2vmin;
    color: white;
    line-height: 1;
}
