﻿:root {
    --seawayborder: #fff;
}

.weather-container [class^="col-"],
.weather-container [class*=" col-"] {
    padding: 2px;
}

.tab-content-weather .flex-column {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.tab-content-weather {
    overflow: hidden;
}

.flex-end {
    align-items: flex-end;
}

.seaway-value-style {
    display: flex;
    flex-direction: column;
    align-content: center;
    justify-content: center;
    width: fit-content;
}

#seaWayContainer {
    container-type: inline-size;
    container-name: seaway;
    max-width: 100%;
    overflow: hidden;
}

#lower-wind-values {
    grid-column-start: 1;
    grid-column-end: 4;
    display: grid;
    grid-template-columns: 50% 50%;
    justify-items: center;
    align-items: center;
}

#lower-wind-values .seaway-value-style {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
}

#lower-wind-values .value,
#lower-wind-values .label {
    text-align: center;
}

.half-width {
    width: 50%;
}

.big-digit {
    /* scale with root font-size and viewport for comfortable reading on all sizes */
    font-size: clamp(1.5rem, 5vw, 2.5rem);
    font-weight: 800;
    line-height: 1.2;
}

#temperature {
    grid-row-start: 1;
    grid-row-end: 3;
    grid-column: 1;
    border-bottom: 0;
    border-right: 0;
}

#wind-direction .value {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
}

.weather-container .value, 
#latest-weather-time, 
.station-container span {
    font-weight: 800;
}

#lowest-temp {
    grid-row: 1;
    grid-column: 2;
    border-bottom: 0;
}

#highest-temp {
    grid-row: 1;
    grid-column: 3;
    border-bottom: 0;
    border-left: 0;
}

.stretch-in-row {
    grid-column-start: 1;
    grid-column-end: 4;
}

#rainfall {
    grid-row: 2;
    grid-column-start: 2;
    grid-column-end: 4;
    border-bottom: 0;
}

#latest-weather-time {
    grid-row: 3;
    padding: 10px;
    border-bottom: 0;
    font-size: clamp(0.85rem, 1.2vw, 1rem);
}

.weather-container {
    grid-row: 4;
    display: grid !important;
    grid-template-columns: 33% 33% 33%;
    grid-template-rows: 50% 50%;
    justify-items: center;
}

.weather-container .label {
    color: #4D4D4D;
    font-weight: 700;
    font-size: clamp(0.75rem, 1vw, 0.95rem);
    text-align: center;
}

.station-container {
    max-width: 100%;
    overflow-wrap: break-word;
    word-wrap: break-word;
    font-size: clamp(0.85rem, 1.1vw, 1rem);
}

.seaway-data-container {
    display: grid;
    justify-content: center;
    width: 100%;
    max-width: 100%;
    min-height: 400px;
    grid-template-columns: 33% 33% 33%;
    font-size: clamp(0.95rem, 1.2vw, 1.05rem);
    grid-template-rows: 20% 15% 15% 50%;
    box-sizing: border-box;
}

.seaway-bgcolor {
    background-color: #ddeded;
}

.seaway-border {
    border-width: 3px;
    border-style: solid;
    border-color: var(--seawayborder);
    box-sizing: border-box;
}

#station-name {
    text-decoration: underline;
    word-break: break-word;
}

.seaway-line {
    width: 80%;
    text-align: center;
}

.windarrow {
    /* explicit rem so it follows root font sizing */
    font-size: 1rem;
    color: #4D4D4D;
    font-weight: 700;
}

.temp-label {
    font-size: clamp(0.8rem, 0.9vw, 1rem);
}

.temp-value {
    font-size: clamp(1rem, 2vw, 1.25rem);
}

.rain-label {
    font-size: clamp(0.72rem, 0.9vw, 0.9rem);
    line-height: 1.6;
}

.rain-value {
    font-size: clamp(0.95rem, 1.1vw, 1.1rem);
}

.wind-speed-knots, 
.gust-speed-knots {
    font-style: italic;
    font-size: clamp(0.85rem, 1vw, 0.95rem);
}

#humidity {
    grid-row: 1;
    grid-column: 1;
}

#wind-direction {
    grid-row: 1;
    grid-column: 3;
}

#pressure {
    grid-row: 1;
    grid-column: 2;
}

#wind-speed {
    grid-row: 2;
    grid-column: 1;
}

#highest-gust {
    grid-row: 2;
    grid-column: 2;
}

.weather-obs-bottom {
    padding: 0 10px;
    align-items: center;
    margin-bottom: 20px;
}

.seaway-data-container .flex-column,
.seaway-data-container .flex-row {
    padding: .65rem;
}

@container seaway (max-width: 767px) {
    .seaway-data-container {
        min-height: unset;
        padding-bottom: 10px;
        grid-template-rows: 15% 15% 15% 55%;
    }

    #wind-speed .flex-row,
    #highest-gust .flex-row {
        flex-direction: row !important;
    }

    .station-container {
        margin-top: 15px;
    }

    .big-digit {
        font-size: clamp(1.25rem, 5vw, 2rem);
    }

    .weather-container .label {
        font-size: clamp(0.7rem, 1.1vw, 0.9rem);
    }
}

@container seaway (max-width: 575px) {
    .seaway-data-container {
        grid-template-rows: auto auto auto auto auto auto;
        padding-bottom: 15px;
    }

    .weather-container {
        min-height: auto;
        padding-bottom: 10px;
    }

    .station-container {
        margin-top: 20px;
        font-size: clamp(0.82rem, 1.2vw, 0.95rem);
    }

    .big-digit {
        font-size: clamp(1.25rem, 6vw, 1.875rem);
    }

    .weather-container .label {
        font-size: clamp(0.75rem, 1vw, 0.9rem);
    }

    .temp-label, .rain-label {
        font-size: clamp(0.8rem, 0.9vw, 0.9rem);
    }

    .temp-value {
        font-size: clamp(1rem, 1.5vw, 1.1rem);
    }

    .rain-value {
        font-size: clamp(0.87rem, 1vw, 0.95rem);
    }

    #latest-weather-time {
        font-size: clamp(0.78rem, 1vw, 0. Ninerem); /* slight scaling for small viewports */
        padding: 8px;
    }

    .wind-speed-knots, .gust-speed-knots {
        font-size: clamp(0.78rem, 1vw, 0.9rem);
    }
}

@container seaway (max-width: 390px) {
    .seaway-data-container {
        padding-bottom: 20px;
    }

    #temperature {
        grid-row: 1;
        grid-column: 1 / 4;
        border-right: 3px solid var(--seawayborder);
    }

    #lowest-temp {
        grid-row: 2;
        grid-column: 1 / 4;
    }

    #highest-temp {
        grid-row: 3;
        grid-column: 1 / 4;
        border-left: 3px solid var(--seawayborder);
    }

    #rainfall {
        grid-row: 4;
        grid-column: 1 / 4;
    }

    #latest-weather-time {
        grid-row: 5;
        font-size: clamp(0.72rem, 1vw, 0.82rem);
        padding: 6px;
    }

    .weather-container {
        grid-row: 6;
        padding-bottom: 15px;
    }

    .station-container {
        margin-top: 25px;
        font-size: clamp(0.78rem, 1.1vw, 0.85rem);
    }

    .big-digit {
        font-size: clamp(1.125rem, 6vw, 1.75rem);
    }

    .seaway-border {
        border-width: 2px;
    }

    #temperature.seaway-border,
    #highest-temp.seaway-border {
        border-width: 2px;
    }

    .weather-container .label {
        font-size: clamp(0.8rem, 1vw, 0.9rem);
    }

    .temp-label, .rain-label {
        font-size: clamp(0.8rem, 0.9vw, 0.9rem);
    }

    .temp-value {
        font-size: clamp(0.9rem, 1.2vw, 1.05rem);
    }

    .rain-value {
        font-size: clamp(0.8rem, 1vw, 0.9rem);
    }

    .wind-speed-knots, .gust-speed-knots {
        font-size: clamp(0.75rem, 0.9vw, 0.85rem);
    }
}

@container seaway (max-width: 340px) {
    .weather-container {
        display: flex !important;
        flex-direction: column;
        align-items: stretch;
    }

    .weather-container > div {
        width: 100%;
    }

    #lower-wind-values {
        display: flex !important;
        flex-direction: column;
    }
}

@container seaway (max-width: 280px) {
    .seaway-data-container {
        padding: 5px;
    }

    .big-digit {
        font-size: clamp(1rem, 6vw, 1.5rem);
    }

    .weather-container .label {
        font-size: clamp(0.65rem, 1vw, 0.8rem);
    }

    .station-container {
        font-size: clamp(0.7rem, 1vw, 0.78rem);
    }

    .seaway-border {
        border-width: 1px;
    }

    #temperature.seaway-border,
    #highest-temp.seaway-border {
        border-width: 1px;
    }

    #latest-weather-time {
        padding: 5px;
        font-size: clamp(0.68rem, 1vw, 0.75rem);
    }

    .temp-label, .rain-label {
        font-size: clamp(0.7rem, 0.9vw, 0.8rem);
    }

    .temp-value {
        font-size: clamp(0.85rem, 1.1vw, 0.95rem);
    }

    .rain-value {
        font-size: clamp(0.75rem, 1vw, 0.82rem);
    }

    .wind-speed-knots, .gust-speed-knots {
        font-size: clamp(0.7rem, 0.9vw, 0.78rem);
    }
}

@media (max-width: 767px) {
    .seaway-data-container {
        min-height: 350px;
    }
}

@media (max-width: 575px) {
    .seaway-data-container {
        min-height: 300px;
    }

    .weather-obs-bottom {
        font-size: clamp(0.8rem, 1.2vw, 0. Ninerem);
    }
}