.ui-badge{border-radius:var(--radius-pill);font-size:var(--font-caption);font-weight:700;line-height:var(--line-height-heading);padding:var(--space-1) var(--space-2);align-items:center;display:inline-flex}.ui-badge.risk-badge{padding:var(--space-2) var(--space-3);font-size:.78rem}.ui-badge--info{background:var(--info-bg);color:var(--info-text)}.ui-badge--neutral{background:var(--surface-raised);color:var(--text-muted)}.ui-soft-chip{border:1px solid color-mix(in srgb, var(--risk-color) 10%, transparent);border-radius:var(--radius-pill);background:color-mix(in srgb, var(--risk-color) 7%, transparent);color:color-mix(in srgb, var(--text-muted) 78%, var(--risk-text));font-size:.72rem;font-weight:500;line-height:var(--line-height-heading);padding:var(--space-1) var(--space-3);align-items:center;display:inline-flex}.ui-button{border:1px solid var(--button-border);background:var(--button-bg);color:var(--text-strong);font:inherit;font-size:var(--font-body-sm);cursor:pointer;transition:border-color var(--motion-fast) var(--motion-ease), background var(--motion-fast) var(--motion-ease), color var(--motion-fast) var(--motion-ease), transform var(--motion-fast) var(--motion-ease);justify-content:center;align-items:center;font-weight:600;display:inline-flex}.ui-button:active:not(:disabled):not(.ui-button--link):not(.ui-button--dot){transform:scale(.98)}.ui-button:disabled{cursor:not-allowed;opacity:var(--opacity-disabled)}.ui-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (hover:hover) and (pointer:fine){.ui-button--secondary:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface)}}.ui-button--secondary:active:not(:disabled){border-color:var(--border-strong);background:var(--surface)}.ui-button--md{border-radius:var(--radius-pill);min-height:36px;padding:0 var(--space-4);gap:var(--space-2)}.ui-button--sm{border-radius:var(--radius-sm);min-height:28px;padding:0 var(--space-3)}.ui-button--icon-only.ui-button--md{width:36px;min-width:36px;padding:0}.ui-button--icon-only.ui-button--sm{width:28px;min-width:28px;padding:0}.ui-button--ghost{color:var(--text-muted);background:0 0;border-color:#0000}@media (hover:hover) and (pointer:fine){.ui-button--ghost:hover:not(:disabled){background:var(--surface)}}.ui-button--ghost:active:not(:disabled){background:var(--surface)}.ui-button--link{color:var(--accent);text-underline-offset:2px;background:0 0;border:0;min-height:auto;padding:0;font-weight:600;text-decoration:underline}@media (hover:hover) and (pointer:fine){.ui-button--link:hover:not(:disabled){background:0 0}}.ui-button.ui-button--dot{border-radius:var(--radius-pill);background:var(--dot-inactive);border:0;min-width:7px;min-height:7px;padding:0}.ui-button.ui-button--dot[aria-selected=true]{background:var(--accent);width:18px;min-width:18px}.ui-dialog{border-radius:var(--radius-lg);background:0 0;border:0;width:min(720px,92vw);max-height:calc(100dvh - 48px);margin:auto;padding:0}.ui-dialog::backdrop{background:var(--overlay-backdrop)}.ui-dialog__panel{border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface);max-height:calc(100dvh - 48px);padding:var(--space-6);margin:0;overflow:auto}.ui-empty-state{place-content:center;gap:var(--space-4);min-height:160px;padding-bottom:var(--space-7);text-align:center;display:grid}.ui-empty-state__icon{border-radius:var(--radius-sm);background:var(--surface-raised);width:48px;height:48px;color:var(--accent);place-items:center;margin:0 auto;display:grid}.ui-search-field{align-items:center;gap:var(--space-1);border:1px solid var(--input-border);border-radius:var(--radius-pill);background:var(--input-bg);min-width:0;min-height:36px;transition:border-color var(--motion-fast) var(--motion-ease), box-shadow var(--motion-base) var(--motion-ease), background var(--motion-fast) var(--motion-ease);flex:1;padding:0 14px;display:flex}.ui-search-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted)}.ui-search-field--clearable{padding-right:6px}.ui-search-field__input{width:100%;min-width:0;color:var(--text-strong);font:inherit;font-size:var(--font-body-sm);background:0 0;border:0;outline:0;font-weight:500}.ui-search-field__input::placeholder{color:var(--text-muted)}.ui-search-field__input::-webkit-search-cancel-button{appearance:none}.ui-search-field__input::-webkit-search-decoration{appearance:none}.ui-search-field__clear{border-radius:var(--radius-pill);width:28px;min-width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;display:inline-flex}.ui-search-field__clear:hover{background:var(--surface);color:var(--text-strong)}.ui-search-field__clear:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.ui-horizontal-scroll{--forecast-strip-gap:var(--strip-gap);grid-auto-columns:var(--strip-card-width);gap:var(--forecast-strip-gap);scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--scroll-track)}.ui-horizontal-scroll--wide{grid-auto-columns:calc(var(--strip-card-width) * 2 + var(--forecast-strip-gap))}.ui-horizontal-scroll::-webkit-scrollbar{height:6px}.ui-horizontal-scroll::-webkit-scrollbar-track{border-radius:var(--radius-pill);background:var(--scroll-track)}.ui-horizontal-scroll::-webkit-scrollbar-thumb{border-radius:var(--radius-pill);background:var(--scroll-thumb)}.ui-horizontal-scroll::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--scroll-thumb) 80%, var(--text-strong))}.ui-horizontal-scroll--hourly{padding:var(--space-1) 0 var(--space-5);scroll-padding-inline:0}.strip-slot{scroll-snap-align:start}@media (pointer:coarse){.ui-horizontal-scroll{scrollbar-width:none}.ui-horizontal-scroll::-webkit-scrollbar{display:none}}.strip-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);flex-direction:column;min-width:0;display:flex;overflow:hidden}.strip-card.hour-card{overflow:visible}.strip-card:focus-visible{border-color:var(--accent);outline:2px solid var(--accent-muted);outline-offset:2px}a.strip-card{color:inherit;transition:border-color var(--motion-fast) var(--motion-ease), background var(--motion-fast) var(--motion-ease);text-decoration:none}a.strip-card:hover{border-color:var(--border-strong)}.ui-popover-panel{top:calc(100% + var(--space-3));z-index:var(--layer-popover);width:min(380px,100dvw - 24px);animation:.16s fade-in;position:absolute;right:0}.ui-popover-panel__surface{border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);padding:var(--space-5)}.ui-section-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-5);display:flex}.ui-section-header h2{margin:0 0 var(--space-2)}.ui-section-header__lead{color:var(--text-muted);margin:0;font-size:.88rem}.ui-panel-header{margin-bottom:var(--space-4);align-items:center;gap:10px;display:flex}.ui-panel-header svg{color:var(--accent);flex-shrink:0}.ui-panel-header__title{font-size:var(--font-title-sm);margin:0;font-weight:700;line-height:1.2}.ui-skeleton{place-content:center;gap:var(--space-4);min-height:160px;padding-bottom:var(--space-7);text-align:center;display:grid}.ui-skeleton__bar{border-radius:var(--radius-pill);background:linear-gradient(90deg, var(--surface-raised), var(--border), var(--surface-raised));background-size:200% 100%;width:min(100%,280px);height:14px;margin:0 auto;animation:1.4s linear infinite shimmer}.ui-weather-display{flex-direction:column;align-items:center;gap:0;display:flex}.ui-weather-display--row{align-items:center;gap:var(--space-3);flex-direction:row}.ui-weather-display--row .ui-weather-display__icon{margin:0}.ui-weather-display__icon{color:var(--sky);place-items:center;display:grid}.ui-weather-display__icon--day{color:var(--sun)}.ui-weather-display__icon--night{color:var(--info-text)}.ui-weather-display--compact .ui-weather-display__icon{min-height:26px;margin:14px 0}.ui-weather-display--hero .ui-weather-display__icon{min-height:38px}.ui-weather-display__temp{color:var(--text-strong);letter-spacing:-.02em;margin:0;font-weight:700;line-height:1;display:inline-block;position:relative}.ui-weather-display--compact .ui-weather-display__temp{font-size:1.75rem}.ui-weather-display--compact .ui-weather-display__unit{margin-left:2px;font-size:.55em;font-weight:700;line-height:1;position:absolute;top:.1em;left:100%}.ui-weather-display--hero .ui-weather-display__temp{letter-spacing:-.03em;font-size:clamp(3.5rem,14vw,5rem);line-height:.9}.ui-weather-display--hero .ui-weather-display__unit{vertical-align:super;font-size:.5em}
