/* HC Portal native sidebar cards: compact weather and FX tables. */
.side-card.weather-card,.side-card.market-card{min-width:0}
.weather-location{color:var(--text,#172744);font-weight:650;font-size:.88rem;margin:.35rem 0 .1rem}
.weather-primary{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;padding:.25rem 0 .45rem}
.weather-primary strong{font-size:2rem;letter-spacing:-.065em;line-height:1;font-variant-numeric:tabular-nums}
.weather-symbol{font-size:1.85rem;line-height:1}
.weather-condition{font-size:.82rem;color:var(--muted,#62738c);max-width:11ch}
.weather-details{display:flex;gap:.2rem .85rem;flex-wrap:wrap;font-size:.76rem;color:var(--muted,#63728b);border-top:1px solid var(--border,#e4ebf5);padding-top:.55rem}
.weather-details b{font-weight:650;color:var(--text,#172744)}
.side-credit{display:block;font-size:.68rem;line-height:1.5;color:var(--muted,#65758d);margin-top:.65rem;overflow-wrap:anywhere}
.side-credit a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.market-table{width:100%;font-size:.78rem;font-variant-numeric:tabular-nums}
.market-labels,.market-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr);gap:.38rem;align-items:center;padding:.45rem 0}
.market-labels{font-size:.69rem;color:var(--muted,#64748b);padding-bottom:.2rem}
.market-row{border-top:1px solid var(--border,#e6ecf5)}
.market-row strong{font-weight:650;white-space:nowrap}
.market-row span,.market-labels span:not(:first-child){text-align:right;white-space:nowrap}
@media(max-width:480px){.weather-primary strong{font-size:1.75rem}.market-table{font-size:.76rem}}

/* City selector lives inside the existing compact weather card. */
.weather-heading{display:flex;align-items:center;justify-content:space-between;gap:.4rem}
.weather-heading h3{margin:0;min-width:0}
.weather-credit{font-size:.62rem;color:var(--muted,#68778a);white-space:nowrap;text-decoration:none;opacity:.85}
.weather-credit:hover{text-decoration:underline}
.weather-controls{display:flex;align-items:center;gap:.35rem;margin:.35rem 0 .15rem}
.weather-controls select{display:block;flex:1;min-width:0;padding:.33rem .45rem;font-size:.82rem;line-height:1.25;border:1px solid var(--border,#dbe4f0);border-radius:7px;background:var(--surface,#fff);color:var(--text,#172744)}
.weather-locate{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;min-width:2rem;padding:0;font-size:1.35rem;line-height:1;border:1px solid var(--border,#dbe4f0);border-radius:7px;background:var(--surface,#fff);color:var(--primary,#2563eb);cursor:pointer}
.weather-locate:hover,.weather-locate:focus-visible{border-color:var(--primary,#2563eb);outline-offset:2px}
.weather-locate:disabled{opacity:.5;cursor:wait}
.weather-picker-msg{font-size:.7rem;margin:.35rem 0 0;color:var(--muted,#63728b)}
.weather-picker-msg:empty{display:none}
.weather-stale{font-size:.66rem;color:var(--muted,#64748b)}
.weather-primary{gap:.38rem}
.weather-condition{max-width:16ch}
.weather-card .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Weather selection 1.0.2: native select, deliberate submit, no instant refresh. */
.weather-card .weather-controls{display:flex;align-items:center;gap:.28rem;flex-wrap:nowrap;min-width:0;margin:.4rem 0 .2rem}
.weather-card .weather-controls select{flex:1 1 0;min-width:0;width:auto;margin:0;padding:.35rem .3rem;min-height:34px;font-size:.79rem;cursor:pointer;position:relative;z-index:1}
.weather-card .weather-controls input[type="hidden"]{display:none!important}
.weather-card .weather-controls .weather-apply{flex:0 0 auto;min-width:0;height:34px;padding:.35rem .52rem;font-size:.73rem;line-height:1;border-radius:7px;cursor:pointer}
.weather-card .weather-controls .weather-locate{flex:0 0 34px;width:34px;min-width:34px;height:34px;margin:0}
@media(max-width:370px){.weather-card .weather-controls .weather-apply{padding:.35rem .36rem}.weather-card .weather-controls{gap:.2rem}}
