/* Weather is deliberately feature-scoped so its dense forecast UI does not
   disturb the rest of Bearing's established application surfaces. */
.sr-only{
  position:absolute!important;width:1px!important;height:1px!important;padding:0!important;
  margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;border:0!important
}

.tb-wx{
  min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:.32rem;
  padding:.32rem .7rem;border:1px solid var(--navy-3);border-radius:999px;
  background:rgba(74,144,194,.11);color:var(--ink);cursor:pointer;font-family:var(--mono);
  font-size:.7rem;font-weight:700;line-height:1;white-space:nowrap
}
.tb-wx:hover{border-color:var(--sky);background:rgba(74,144,194,.2)}
.tb-wx:focus-visible,.wx-rail-card:focus-visible,.wx-calendar button:focus-visible,
.wx-screen button:focus-visible,.wx-screen input:focus-visible,.wx-hourly-region:focus-visible{
  outline:3px solid var(--brass-2);outline-offset:3px
}
.wx-top-icon{font-size:1rem}.wx-top-stale{color:var(--brass-2);font-size:.54rem;text-transform:uppercase}

#railWx{margin:0 0 .55rem}
.wx-rail-card{
  width:100%;min-height:86px;display:flex;flex-direction:column;align-items:stretch;gap:.42rem;
  padding:.7rem .72rem;border:1px solid rgba(74,144,194,.5);border-radius:12px;
  background:linear-gradient(145deg,rgba(74,144,194,.16),rgba(16,36,75,.35));
  color:var(--ink);cursor:pointer;text-align:left
}
.wx-rail-card:hover{border-color:var(--sky);background:linear-gradient(145deg,rgba(74,144,194,.23),rgba(16,36,75,.52))}
.wx-rail-card.is-empty{border-style:dashed}
.wx-rail-kicker{font-family:var(--mono);font-size:.56rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wx-rail-main{display:flex;align-items:center;gap:.62rem;min-width:0}
.wx-rail-main>span:last-child{display:flex;flex-direction:column;min-width:0}
.wx-rail-main b{font-family:var(--display);font-size:.82rem;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wx-rail-main small{color:var(--ink-3);font-size:.62rem;line-height:1.35;margin-top:.08rem}
.wx-rail-icon{font-size:1.8rem;line-height:1}.wx-spin{color:var(--sky);font-size:1.25rem}

.wx-calendar{
  margin:1rem 0 1.15rem;padding:.85rem;border:1px solid var(--navy-3);border-radius:14px;
  background:linear-gradient(150deg,rgba(74,144,194,.1),rgba(16,36,75,.28))
}
.wx-calendar-head,.wx-section-head,.wx-location-editor-head{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.7rem
}
.wx-calendar h2,.wx-section-head h2,.wx-section-head h3,.wx-location-editor h2{
  margin:.1rem 0 0;font-family:var(--display);font-size:1rem;line-height:1.25;color:var(--ink)
}
.wx-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(72px,1fr));gap:.38rem;overflow-x:auto;padding:.14rem .1rem .35rem;scroll-snap-type:x proximity}
.wx-calendar-day{
  min-width:72px;min-height:112px;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:.08rem;padding:.45rem .3rem;border:1px solid var(--navy-3);border-radius:10px;
  background:var(--navy-1);color:var(--ink);cursor:pointer;scroll-snap-align:start
}
.wx-calendar-day:hover{border-color:var(--sky);background:var(--navy-2)}
.wx-calendar-day>span:first-child{font-family:var(--mono);font-size:.58rem;text-transform:uppercase;color:var(--ink-3)}
.wx-calendar-day>span:nth-child(2){font-size:1.22rem;line-height:1.25}
.wx-calendar-day b{font-size:.8rem}.wx-calendar-day small{font-size:.66rem;color:var(--ink-3)}
.wx-calendar-day em{font-size:.56rem;font-style:normal;color:#7cc0ff}
.wx-calendar-loading,.wx-calendar-empty{
  width:100%;min-height:58px;display:flex;align-items:center;justify-content:center;padding:.7rem;
  border:1px dashed var(--navy-3);border-radius:9px;background:transparent;color:var(--ink-2);font-size:.78rem
}
.wx-calendar-empty{cursor:pointer}.wx-calendar-empty:hover{border-color:var(--sky);color:var(--ink)}

.wx-screen{width:100%}.wx-shell{position:relative;overflow:hidden}
.wx-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.15rem}
.wx-header .lede{max-width:720px}
.wx-meta{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem .85rem;
  border:1px solid var(--navy-3);border-radius:12px;background:var(--navy-1);margin-bottom:.55rem
}
.wx-meta>div:first-child{display:flex;align-items:center;gap:.58rem;min-width:0}
.wx-meta>div:first-child>span:last-child{display:flex;flex-direction:column;min-width:0}
.wx-meta b{font-size:.88rem;color:var(--ink)}
.wx-meta small{font-family:var(--mono);font-size:.58rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}
.wx-location-dot{display:grid;place-items:center;width:34px;height:34px;flex:0 0 auto;border-radius:50%;background:rgba(74,144,194,.16);color:#7cc0ff;font-size:1.15rem}
.wx-meta-actions{display:flex;align-items:center;justify-content:flex-end;gap:.45rem;flex-wrap:wrap}
.wx-badge{display:inline-flex;align-items:center;min-height:28px;padding:.2rem .6rem;border-radius:999px;font-family:var(--mono);font-size:.56rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;border:1px solid currentColor}
.wx-badge.is-live{color:var(--sage);background:rgba(59,167,118,.1)}
.wx-badge.is-stale{color:var(--brass-2);background:rgba(201,162,39,.1)}
.wx-badge.is-refreshing{color:#7cc0ff;background:rgba(74,144,194,.12)}
.wx-provenance{display:flex;gap:.5rem 1.2rem;flex-wrap:wrap;margin:0 0 1rem;padding:0 .2rem;color:var(--ink-3);font-family:var(--mono);font-size:.6rem}
.wx-provenance b{color:var(--ink-2);font-weight:600}

.wx-state{
  min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:1rem;
  margin:0 0 .85rem;padding:.72rem .85rem;border:1px solid rgba(74,144,194,.5);
  border-radius:11px;background:rgba(74,144,194,.1);color:var(--ink-2)
}
.wx-state>div{display:flex;flex-direction:column;gap:.08rem}.wx-state b{color:var(--ink);font-size:.82rem}.wx-state span{font-size:.74rem}
.wx-state.is-loading{justify-content:flex-start}.wx-state.is-warning{border-color:rgba(224,162,60,.65);background:rgba(224,162,60,.09)}
.wx-spinner{width:22px;height:22px;flex:0 0 auto;border:2px solid var(--navy-3);border-top-color:#7cc0ff;border-radius:50%;animation:wx-spin .8s linear infinite}
@keyframes wx-spin{to{transform:rotate(360deg)}}
.wx-partial{display:flex;gap:.25rem 1rem;align-items:baseline;flex-wrap:wrap;margin:0 0 .85rem;padding:.55rem .75rem;border-left:3px solid var(--brass);background:rgba(201,162,39,.08);font-size:.7rem}
.wx-partial span{color:var(--ink-3)}

.wx-empty{
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  min-height:300px;padding:2rem;border:1px dashed var(--navy-3);border-radius:14px;background:var(--navy-1)
}
.wx-empty-icon{font-size:2.4rem;color:#7cc0ff;margin-bottom:.65rem}.wx-empty h2{font-family:var(--display);font-size:1.2rem}.wx-empty p{max-width:520px;margin:.35rem 0 1rem;color:var(--ink-2);font-size:.86rem}
.wx-empty .callout{max-width:520px}
.wx-empty-actions{display:flex;align-items:center;justify-content:center;gap:.55rem;flex-wrap:wrap}

.wx-current{
  display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.8fr);gap:1rem;
  padding:1rem;margin-bottom:1.25rem;border:1px solid rgba(74,144,194,.6);border-radius:16px;
  background:radial-gradient(circle at 14% 20%,rgba(74,144,194,.2),transparent 38%),var(--navy-1)
}
.wx-current-main{display:flex;align-items:center;gap:.85rem;padding:.55rem}
.wx-current-icon{font-size:3.8rem;line-height:1;filter:drop-shadow(0 8px 16px rgba(0,0,0,.25))}
.wx-current-main h2{font-family:var(--display);font-size:2.8rem;line-height:1;margin:.12rem 0;color:var(--ink)}
.wx-current-main p{color:var(--ink-2);font-size:.78rem}
.wx-current-metrics,.wx-day-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
.wx-metric{display:flex;flex-direction:column;justify-content:center;min-height:78px;padding:.68rem .75rem;border:1px solid var(--navy-3);border-radius:10px;background:rgba(7,15,34,.28)}
.wx-metric>span{font-family:var(--mono);font-size:.56rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}
.wx-metric>b{margin:.12rem 0;font-size:.86rem;color:var(--ink)}.wx-metric>small{font-size:.64rem;color:var(--ink-3)}

.wx-alerts{margin-bottom:1.25rem}
.wx-source{font-family:var(--mono);font-size:.56rem;color:var(--ink-3);text-align:right}
.wx-alert-clear,.wx-alert-check{display:flex;align-items:center;gap:.62rem;padding:.7rem .82rem;border:1px solid var(--navy-3);border-radius:10px;background:var(--navy-1)}
.wx-alert-clear>span:first-child{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:rgba(59,167,118,.14);color:var(--sage);font-weight:800}
.wx-alert-clear>span:last-child,.wx-alert-check{flex-direction:column;align-items:flex-start}.wx-alert-clear b,.wx-alert-check b{font-size:.8rem}.wx-alert-clear small,.wx-alert-check span{display:block;color:var(--ink-3);font-size:.67rem}
.wx-alert-check{border-color:rgba(224,162,60,.5);background:rgba(224,162,60,.07)}
.wx-alert{margin:.5rem 0;padding:.85rem;border:1px solid var(--rust);border-left-width:4px;border-radius:10px;background:rgba(198,106,74,.09)}
.wx-alert-head{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}.wx-alert-head span{font-family:var(--mono);font-size:.56rem;font-weight:800;text-transform:uppercase;color:#ed9174}.wx-alert-head b{font-size:.96rem}
.wx-alert>p{margin:.35rem 0;color:var(--ink-2);font-size:.78rem}.wx-alert dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-top:.6rem}
.wx-alert dl div{min-width:0}.wx-alert dt{font-family:var(--mono);font-size:.54rem;text-transform:uppercase;color:var(--ink-3)}.wx-alert dd{font-size:.72rem;color:var(--ink);overflow-wrap:anywhere}.wx-alert-instruction{padding:.55rem;border-radius:8px;background:rgba(198,106,74,.1);color:var(--ink)!important}

.wx-forecast{margin-top:.5rem}.wx-day-tabs{display:grid;grid-template-columns:repeat(7,minmax(100px,1fr));gap:.5rem;overflow-x:auto;padding:.2rem .12rem .55rem;scroll-snap-type:x proximity}
.wx-day-tab{
  position:relative;min-width:100px;min-height:142px;display:flex;flex-direction:column;align-items:flex-start;
  gap:.08rem;padding:.65rem;border:1px solid var(--navy-3);border-radius:12px;background:var(--navy-1);
  color:var(--ink);cursor:pointer;text-align:left;scroll-snap-align:start;transition:border-color .15s,background .15s,transform .15s
}
.wx-day-tab:hover{border-color:var(--sky);transform:translateY(-1px)}
.wx-day-tab.is-selected{border:2px solid var(--brass);padding:calc(.65rem - 1px);background:linear-gradient(155deg,rgba(201,162,39,.15),var(--navy-1));box-shadow:inset 0 0 0 2px rgba(201,162,39,.08)}
.wx-day-tab>span{font-family:var(--mono);font-size:.55rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}
.wx-day-tab>strong{font-size:.68rem;color:var(--ink-2);font-weight:600}.wx-day-tab>i{font-size:1.55rem;font-style:normal;margin:.18rem 0}.wx-day-tab>b{font-size:.82rem}.wx-day-tab>small{font-size:.6rem;color:#7cc0ff}
.wx-day-tab.is-selected:after{content:'Selected';position:absolute;right:.42rem;top:.4rem;font-family:var(--mono);font-size:.48rem;text-transform:uppercase;color:var(--brass-2)}

.wx-day-detail{margin-top:.85rem;padding:1rem;border:1px solid var(--navy-3);border-radius:14px;background:rgba(7,15,34,.2)}
.wx-day-detail:focus-visible{outline:3px solid var(--brass-2);outline-offset:3px}.wx-day-title{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.8rem}
.wx-day-title h2{font-family:var(--display);font-size:1.25rem;line-height:1.25}.wx-day-title p{color:var(--ink-2);font-size:.78rem;margin-top:.15rem}
.wx-day-range{display:flex;align-items:baseline;gap:.35rem}.wx-day-range b{font-family:var(--display);font-size:2rem}.wx-day-range span{font-family:var(--display);font-size:1.15rem;color:var(--ink-3)}
.wx-day-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:1.25rem}
.wx-daypart-heading,.wx-hourly-heading{margin-top:.25rem;padding-top:.85rem;border-top:1px solid var(--navy-3)}
.wx-periods{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;margin-bottom:1.2rem}
.wx-period{min-width:0;padding:.75rem;border:1px solid var(--navy-3);border-radius:11px;background:var(--navy-1)}
.wx-period-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.55rem}.wx-period-head>div{display:flex;flex-direction:column}.wx-period-head span{font-family:var(--mono);font-size:.55rem;text-transform:uppercase;color:var(--ink-3)}.wx-period-head b{font-size:.78rem}.wx-period-head i{font-size:1.35rem;font-style:normal}
.wx-period dl{display:flex;flex-direction:column;gap:.32rem}.wx-period dl div{display:flex;justify-content:space-between;gap:.5rem;padding-top:.3rem;border-top:1px solid rgba(34,60,106,.55)}.wx-period dt{font-size:.59rem;color:var(--ink-3)}.wx-period dd{text-align:right;font-size:.59rem;color:var(--ink);overflow-wrap:anywhere}

.wx-hourly-region{max-width:100%;overflow:auto;border:1px solid var(--navy-3);border-radius:11px;background:var(--navy-1)}
.wx-hourly{width:100%;min-width:1240px;border-collapse:collapse;font-size:.68rem;color:var(--ink-2)}
.wx-hourly caption{padding:.7rem .8rem;text-align:left;font-family:var(--display);font-size:.82rem;font-weight:700;color:var(--ink)}
.wx-hourly th,.wx-hourly td{padding:.55rem .62rem;text-align:left;border-top:1px solid var(--navy-3);white-space:nowrap}
.wx-hourly thead th{position:sticky;top:0;background:var(--navy-2);font-family:var(--mono);font-size:.54rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);z-index:1}
.wx-hourly tbody th{color:var(--ink);font-weight:700}.wx-hourly tbody tr:hover{background:rgba(74,144,194,.08)}
.wx-scroll-note{margin:.38rem 0 0;color:var(--ink-3);font-family:var(--mono);font-size:.56rem}

.wx-location-editor{margin-top:1rem;padding:1rem;border:1px solid var(--brass);border-radius:14px;background:linear-gradient(155deg,rgba(201,162,39,.08),var(--navy-1))}
.wx-location-editor>.note{margin:-.2rem 0 .9rem}.wx-location-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;align-items:end}
.wx-location-search .f{margin:0}
.wx-location-search .btn{min-width:96px}.wx-location-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-top:.75rem}
.wx-location-result{display:flex;flex-direction:column;align-items:flex-start;min-height:64px;padding:.65rem .75rem;border:1px solid var(--navy-3);border-radius:9px;background:var(--navy-2);color:var(--ink);cursor:pointer;text-align:left}
.wx-location-result:hover{border-color:var(--brass)}.wx-location-result b{font-size:.78rem}.wx-location-result span{font-size:.62rem;color:var(--ink-3);margin-top:.12rem}

:root[data-theme="light"] .tb-wx{background:#eef6fb}
:root[data-theme="light"] .wx-rail-card{background:linear-gradient(145deg,#eef6fb,#f8fafc)}
:root[data-theme="light"] .wx-current{background:radial-gradient(circle at 14% 20%,rgba(74,144,194,.16),transparent 38%),#f8fafc}
:root[data-theme="light"] .wx-metric,:root[data-theme="light"] .wx-day-detail{background:#f8fafc}
:root[data-theme="light"] .wx-screen .btn.ghost,:root[data-theme="light"] .wx-calendar .btn.ghost{color:#24445d!important;background:#eaf4fa!important;border-color:#6a9dbc!important}
:root[data-theme="light"] .wx-calendar-day em,:root[data-theme="light"] .wx-day-tab>small,
:root[data-theme="light"] .wx-location-dot,:root[data-theme="light"] .wx-badge.is-refreshing{color:#245f87}
:root[data-theme="light"] .wx-badge.is-live,:root[data-theme="light"] .wx-alert-clear>span:first-child{color:#176440}
:root[data-theme="light"] .wx-alert-head span{color:#963820}
:root[data-theme="light"] .wx-badge.is-stale,:root[data-theme="light"] .wx-top-stale{color:#705800}

@media(max-width:900px){
  .wx-day-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .wx-periods{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:820px){
  #railWx{margin-top:.25rem}.wx-current{grid-template-columns:1fr}.wx-current-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:640px){
  .wx-full-forecast{white-space:nowrap}.wx-calendar-days{grid-template-columns:repeat(7,74px)}
  .wx-current-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.wx-day-tabs{grid-template-columns:repeat(7,104px)}
  .wx-alert dl{grid-template-columns:1fr}.wx-location-results{grid-template-columns:1fr}
}
@media(max-width:560px){
  .tb-wx{width:42px;padding:.3rem}.wx-top-label,.wx-top-stale{display:none}
  .wx-meta,.wx-day-title{align-items:flex-start;flex-direction:column}.wx-meta-actions{justify-content:flex-start}
  .wx-provenance{flex-direction:column;gap:.2rem}.wx-current-main{padding:.25rem}.wx-current-icon{font-size:3rem}.wx-current-main h2{font-size:2.25rem}
  .wx-day-detail{padding:.75rem}.wx-day-metrics{grid-template-columns:1fr 1fr}.wx-periods{grid-template-columns:1fr}
  .wx-location-search{grid-template-columns:1fr}.wx-location-search .btn{width:100%}
}
@media(max-width:430px){
  .topbar{padding:.4rem .5rem;gap:.4rem}.tb-left{gap:.4rem}.tb-right{gap:.35rem}.tb-right .today-btn,.tb-right .tb-ver{display:none}.tb-client{padding-left:.35rem}.tb-client .nm{max-width:24vw}
  .wx-calendar{padding:.7rem}.wx-calendar-head{align-items:flex-start}.wx-calendar h2{font-size:.9rem}
  .wx-current{padding:.72rem}.wx-current-metrics,.wx-day-metrics{grid-template-columns:1fr}.wx-metric{min-height:66px}
  .wx-state{align-items:flex-start;flex-direction:column}.wx-state .btn{width:100%}
  .wx-empty-actions{width:100%;flex-direction:column}.wx-empty-actions .btn{width:100%}
}
@media(prefers-reduced-motion:reduce){
  .wx-spinner{animation:none}.wx-day-tab{transition:none}.wx-day-tab:hover{transform:none}
}
