.bst-snow {
    --bst-bg: var(--ski-module-bg, #fff);
    --bst-panel: var(--ski-module-panel, #f1f7fc);
    --bst-stripe: #e8f2f9;
    --bst-text: var(--ski-module-text, #172f46);
    --bst-muted: #4a6379;
    --bst-border: var(--ski-module-border, #d4e3ef);
    --bst-link: #245477;
    --bst-header: #30638d;
    width: 100%; min-width: 0; padding: 1rem; border: 0; border-radius: 0;
    font-variant-numeric: tabular-nums;
    scrollbar-color: #698ba5 var(--bst-panel);
}
.bst-snow.bst-dark {
    --bst-bg: #17283b; --bst-panel: #21394e; --bst-stripe: #294a63;
    --bst-text: #f2f6fa; --bst-muted: #bdcfdf; --bst-border: #49647b; --bst-link: #7dceff;
}
.bst-snow::selection, .bst-snow ::selection { background: #d3eafd; color: #172f46; }
.bst-snow h3 { background: none; color: var(--bst-text); padding: 0; }
.bst-snow .bst-cards { grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, 1.5fr); gap: 0; background: var(--bst-panel); border-bottom: 1px solid var(--bst-border); }
.bst-reading { padding: .65rem 1rem; min-width: 0; }
.bst-reading + .bst-reading { border-left: 1px solid var(--bst-border); }
.bst-reading h4 { display: flex; align-items: center; gap: .5rem; margin: 0 0 .25rem; font-size: .95rem; }
.bst-reading h4::before { content: ""; width: .65rem; height: .65rem; border-radius: 50%; background: var(--bst-upper); flex: none; }
.bst-reading.bst-key-1 h4::before { background: var(--bst-lift); }
.bst-reading.bst-key-2 h4::before { background: var(--bst-lower); }
.bst-reading dl { display: flex; align-items: center; flex-wrap: wrap; gap: .25rem 1rem; margin: 0; }
.bst-reading dl > div { min-width: 0; }
.bst-reading dt { color: var(--bst-muted); font-size: .75rem; font-weight: 400; }
.bst-reading dt[data-bs-toggle] { text-decoration: underline dotted; text-underline-offset: .2em; cursor: help; }
.bst-reading dd { margin: 0; font-size: 1rem; font-weight: 600; }
.bst-reading .bst-temperature { font-size: clamp(1.3rem, 2.5vw, 2rem); line-height: 1.25; white-space: nowrap; }
.bst-reading .bst-temperature[data-bs-toggle] { text-decoration: underline dotted 1px; text-underline-offset: .15em; cursor: help; }
.bst-status, .bst-wet { display: inline-block; font-size: .75rem; line-height: 1.4; margin: .15rem .25rem .15rem 0; }
.bst-status { padding: .1rem .35rem; background: var(--bst-stripe); color: var(--bst-text); border: 1px solid var(--bst-border); border-radius: .25rem; }
.bst-warning { background: #fff3cd; color: #594400; border-color: #e9d491; }
.bst-wet { display: block; color: var(--bst-muted); }
.bst-prediction h4::before { display: none; }
.bst-prediction h4 { flex-wrap: wrap; gap: .15rem; }
.bst-prediction p { margin: .25rem 0 0; font-size: .75rem; line-height: 1.4; }
.bst-prediction .bst-snow-state { display: inline-block; padding: .2rem .45rem; font-size: 1rem; font-weight: 600; }
.bst-prediction-source { color: var(--bst-muted); }
.bst-snow .bst-snow-good, .bst-snow .bst-forecast-table tbody tr > td.bst-snow-good { color: #185833; background: #e3f3e8; }
.bst-snow .bst-snow-marginal, .bst-snow .bst-forecast-table tbody tr > td.bst-snow-marginal { color: #754100; background: #fff1da; }
.bst-snow .bst-snow-bad, .bst-snow .bst-forecast-table tbody tr > td.bst-snow-bad { color: #872e25; background: #fff0ed; }
.bst-snow .bst-snow-unknown, .bst-snow .bst-forecast-table tbody tr > td.bst-snow-unknown { color: #374e60; background: #e5eef5; }
.bst-snow .bst-forecast-table { white-space: nowrap; }
.bst-snow .bst-forecast-table th { background: var(--bst-panel); }
.bst-forecast-table thead th { position: sticky; top: 0; z-index: 1; }
.bst-forecast-table th:first-child { position: sticky; left: 0; z-index: 2; }
.bst-forecast-table thead th:first-child { z-index: 3; }
.bst-snow .bst-forecast-table tbody tr > td[class*="bst-snow-"] { box-shadow: none; }
.bst-forecast-info { margin-top: .5rem; }
.bst-snow .bst-help { display: inline-flex; align-items: center; justify-content: center; padding: .2rem .35rem; color: var(--bst-link); vertical-align: middle; min-height: 28px; min-width: 28px; }
.bst-snow .bst-controls { margin: .75rem 0 .4rem; gap: .5rem; }
.bst-snow .bst-controls [role="group"] { gap: 0; flex-wrap: nowrap; }
.bst-snow .bst-controls .btn-group { margin: 0; }
.bst-snow .bst-controls .btn { border-radius: var(--btn-border-radius, .25rem); }
.bst-snow .bst-controls button[aria-pressed] { box-shadow: none; border-color: var(--bs-btn-border-color, #30638d); }
.bst-snow .bst-controls button[aria-pressed="false"] { background: var(--bst-bg); color: var(--bst-link); }
.bst-snow .bst-controls button[aria-pressed="true"] { background: var(--bst-header); color: #fff; }
.bst-snow .bst-controls .form-select { width: auto; min-width: 0; }
.bst-snow .bst-controls > .bst-help { margin-left: auto; }
.bst-snow .bst-legend { margin: .4rem 0; gap: .25rem 1rem; }
.bst-snow .bst-chart { margin: .25rem 0 .5rem; height: clamp(400px, 50dvh, 760px); }
.bst-snow .bst-svg { width: 100%; height: 100%; }
.bst-snow .bst-svg text { font-size: 12px; }
.bst-snow .bst-svg .bst-day-label { font-size: 12px; }
.bst-snow .bst-table-wrap { max-height: 22rem; margin: 0; }
.bst-snow .bst-table { margin-bottom: 0; }
.bst-snow .bst-table > :not(caption) > * > * { padding: .4rem .6rem; }
.bst-snow .bst-table tbody tr:nth-child(even) > * { background: var(--bst-bg); }
.bst-snow .bst-table tbody tr:hover > * { box-shadow: inset 0 0 0 999px #30638d12; }
.bst-disclosure { border-top: 1px solid var(--bst-border); }
.bst-disclosure summary { min-height: 44px; padding: .65rem .5rem; color: var(--bst-link); font-size: .875rem; font-weight: 600; cursor: pointer; background: var(--bst-panel); }
.bst-disclosure summary:hover { background: var(--bst-stripe); }
.bst-disclosure-body { padding: .75rem .5rem; font-size: .875rem; }
.bst-disclosure-body p { margin: 0 0 .5rem; }
.bst-snow .bst-footer { margin: 0; padding: .5rem; border-top: 1px solid var(--bst-border); }
.bongovo-screen-active .bst-snow .bst-chart { height: max(400px, calc(100dvh - 350px)); }
.bst-snow .bst-chart.bst-outlook-chart { height: 260px; }
.bst-snow .bst-snow-threshold { stroke: #287c4d; stroke-width: 1.5; fill: none; }
.bst-snow .bst-key-threshold::before { border-color: #287c4d; }
@media (max-width: 600px) {
    .bst-snow { padding: .5rem; }
    .bst-snow .bst-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .bst-reading { padding: .5rem .35rem; }
    .bst-reading h4 { font-size: .8rem; gap: .25rem; min-height: 2rem; }
    .bst-reading dl { display: block; }
    .bst-reading .bst-temperature { font-size: 1.3rem; }
    .bst-reading dl > div + div { display: flex; align-items: baseline; flex-wrap: wrap; gap: .15rem .3rem; margin-top: .2rem; }
    .bst-prediction { grid-column: 1 / -1; border-top: 1px solid var(--bst-border); }
    .bst-reading.bst-prediction { border-left: 0; }
    .bst-prediction h4 { min-height: 0; }
    .bst-snow .bst-controls { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 32px; }
    .bst-snow .bst-controls .btn-group { grid-column: 1 / -1; justify-self: start; }
    .bst-snow .bst-controls .form-select { width: 100%; font-size: .875rem; }
    .bst-snow .bst-controls .btn { min-height: 44px; }
    .bst-snow .bst-controls > .bst-help { min-height: 44px; margin: 0; }
    .bst-snow .bst-legend { font-size: .75rem; gap: .25rem .65rem; }
    .bst-snow .bst-chart { height: clamp(340px, 48dvh, 600px); }
    .bongovo-screen-active .bst-snow .bst-chart { height: max(340px, calc(100dvh - 420px)); }
    .bst-snow .bst-chart.bst-outlook-chart { height: 260px; }
}
