:root{--color-bg: #0f1419;--color-surface: #1a2028;--color-surface-raised: #232d38;--color-border: #2e3a46;--color-text-primary: #e8edf2;--color-text-secondary: #8b9bab;--color-text-muted: #5c6f80;--color-accent: #3b82f6;--color-accent-hover: #2563eb;--color-error: #ef4444;--color-warning: #f59e0b;--color-success: #10b981;--color-band-outer: rgba(59, 130, 246, .1);--color-band-inner: rgba(59, 130, 246, .25);--color-median-line: #3b82f6;--color-hrrr-line: #f59e0b;--color-obs-marker: #10b981;--color-aqi-good: #00e400;--color-aqi-moderate: #ffff00;--color-aqi-usg: #ff7e00;--color-aqi-unhealthy: #ff0000;--color-aqi-very-unhealthy: #8f3f97;--color-aqi-hazardous: #7e0023;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--font-xs: .75rem;--font-sm: .875rem;--font-base: 1rem;--font-lg: 1.125rem;--font-xl: 1.25rem;--font-2xl: 1.5rem;--font-3xl: 2rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .4);--tap-target-min: 44px;--transition-fast: .15s ease;--transition-normal: .25s ease}*,*:before,*:after{box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:var(--font-base);line-height:1.5;color:var(--color-text-primary);background-color:var(--color-bg);min-height:100vh}h1,h2,h3,h4,h5,h6{margin:0;font-weight:var(--font-weight-semibold);line-height:1.2}p{margin:0}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-hover)}button,[role=button],input[type=button],input[type=submit]{min-width:var(--tap-target-min);min-height:var(--tap-target-min);cursor:pointer;font-family:inherit;font-size:var(--font-sm)}input,select,textarea{min-height:var(--tap-target-min);font-family:inherit;font-size:var(--font-base)}@media(pointer:coarse){button,[role=button],a,input,select,textarea,label[for]{min-width:var(--tap-target-min);min-height:var(--tap-target-min)}}.app{display:flex;flex-direction:column;min-height:100vh}.header{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background-color:var(--color-surface);border-bottom:1px solid var(--color-border);min-height:var(--tap-target-min)}.header__location-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;min-width:auto;min-height:32px;border:1px solid var(--color-border);border-radius:16px;background-color:var(--color-surface-raised);color:var(--color-text-primary);font-size:var(--font-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:border-color var(--transition-fast),background-color var(--transition-fast);white-space:nowrap;max-width:200px;overflow:hidden}.header__location-btn:hover{border-color:var(--color-accent);background-color:var(--color-surface)}.header__location-name{overflow:hidden;text-overflow:ellipsis}.header__location-icon{font-size:12px;flex-shrink:0}.main{display:flex;flex-direction:column;flex:1;overflow:hidden}.side-nav{display:flex;flex-direction:row;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);overflow-x:auto;background-color:var(--color-surface);border-bottom:1px solid var(--color-border)}.side-nav__item{display:flex;align-items:center;justify-content:center;min-width:var(--tap-target-min);min-height:var(--tap-target-min);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);white-space:nowrap;font-size:var(--font-sm);color:var(--color-text-secondary);background:none;border:none;transition:background-color var(--transition-fast),color var(--transition-fast)}.side-nav__item:hover{background-color:var(--color-surface-raised);color:var(--color-text-primary)}.side-nav__item--active{color:var(--color-accent);background-color:var(--color-surface-raised)}.content{flex:1;padding:var(--space-md);overflow-y:auto}.panels{display:flex;flex-direction:column;gap:var(--space-md)}@media(min-width:768px){.main{flex-direction:row}.side-nav{flex-direction:column;width:200px;min-width:200px;overflow-x:visible;overflow-y:auto;border-bottom:none;border-right:1px solid var(--color-border);padding:var(--space-md) var(--space-sm)}.side-nav__item{justify-content:flex-start;width:100%}.content{padding:var(--space-lg)}}@media(min-width:1280px){.content{padding:var(--space-xl) var(--space-2xl)}.side-nav{width:220px;min-width:220px}}@media(max-width:767px){.header{flex-wrap:wrap;padding:var(--space-xs) var(--space-sm)}.header__controls{display:flex;gap:var(--space-xs);width:100%;overflow-x:auto;padding:var(--space-xs) 0}}.toggle-bar{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap}.toggle-bar__button{display:inline-flex;align-items:center;justify-content:center;min-width:var(--tap-target-min);min-height:var(--tap-target-min);padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface);color:var(--color-text-secondary);font-size:var(--font-sm);transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.toggle-bar__button:hover{border-color:var(--color-accent);color:var(--color-text-primary)}.toggle-bar__button--active{background-color:var(--color-accent);border-color:var(--color-accent);color:#fff}.toggle-bar__button:disabled{opacity:.4;cursor:not-allowed}.toggle-bar__capsule{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;min-width:auto;min-height:28px;border:1px solid;border-radius:14px;font-size:var(--font-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),opacity var(--transition-fast)}.toggle-bar__capsule:hover{opacity:.85!important}.toggle-bar__info-btn{display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:28px;padding:0;border:none;border-radius:50%;background:none;color:var(--color-text-secondary);font-size:var(--font-sm);cursor:pointer}.toggle-bar__info-btn:hover{color:var(--color-text-primary)}.panel{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm)}.panel__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border);gap:var(--space-sm);flex-wrap:wrap}.panel__title{font-size:var(--font-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.panel__legend{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.panel__legend-item{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-xs);color:var(--color-text-secondary)}.panel__legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.panel__hud-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);border-bottom:1px solid var(--color-border);flex-wrap:wrap;font-size:var(--font-xs)}.panel__hud-chip{display:inline-flex;align-items:center;gap:2px}.panel__hud-chip-label{color:var(--color-text-muted);font-size:9px}.panel__hud-chip-range{color:var(--color-text-secondary);font-size:9px;margin-left:2px}.panel__hud-chip--obs{color:#facc15}.panel__hud-chip--hrrr{color:#fb923cb3}.panel__hud-chip--hrrr-wind{color:#4ade80b3}.panel__hud-chip--ens-temp{color:#fb923c}.panel__hud-chip--ens-wind{color:#4ade80}.panel__actions{display:flex;align-items:center;gap:var(--space-xs)}.panel__action-btn{display:inline-flex;align-items:center;justify-content:center;min-width:var(--tap-target-min);min-height:var(--tap-target-min);padding:var(--space-xs);border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);transition:background-color var(--transition-fast),color var(--transition-fast)}.panel__action-btn:hover{background-color:var(--color-surface-raised);color:var(--color-text-primary)}.panel__body{padding:var(--space-md)}.panel__chart{width:100%;min-height:180px}.panel__wind-arrows{display:flex;align-items:center;gap:2px;padding:var(--space-xs) 0;font-size:var(--font-xs);color:var(--color-text-primary);overflow-x:auto}.panel__wind-arrow{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:11px}.hud-panel{background:#ffffff08;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);display:flex;flex-direction:column;gap:2px}.hud-panel__row{display:flex;align-items:center;gap:var(--space-sm);min-height:22px}.hud-panel__row-label{font-size:10px;font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);min-width:36px;text-transform:uppercase}.hud-panel__chips{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.hud-chip{display:inline-flex;align-items:center;gap:2px;font-size:var(--font-xs);font-weight:var(--font-weight-medium)}.hud-chip__label{font-size:9px;color:var(--color-text-secondary)}.hud-chip__value{font-size:var(--font-xs);font-weight:var(--font-weight-medium)}.hud-chip__range{font-size:9px;color:var(--color-text-secondary);margin-left:2px}.hud-chip--obs,.hud-chip--obs .hud-chip__value{color:#facc15}.hud-chip--hrrr-temp,.hud-chip--hrrr-temp .hud-chip__value{color:#fb923cb3}.hud-chip--ens-temp,.hud-chip--ens-temp .hud-chip__value{color:#fb923c}.hud-chip--hrrr-wind,.hud-chip--hrrr-wind .hud-chip__value{color:#4ade80b3}.hud-chip--ens-wind,.hud-chip--ens-wind .hud-chip__value{color:#4ade80}.hud-chip--hrrr-precip,.hud-chip--hrrr-precip .hud-chip__value{color:#4ade80b3}.hud-chip--ens-precip,.hud-chip--ens-precip .hud-chip__value{color:#4ade80}.hud-chip--cloud,.hud-chip--cloud .hud-chip__value{color:#9ca3af}.hud-chip--uv,.hud-chip--uv .hud-chip__value{color:#a855f7}.hud-chip--uv-clear,.hud-chip--uv-clear .hud-chip__value{color:#a855f799}.hud-chip--tide,.hud-chip--tide .hud-chip__value{color:#2dd4bf}.hud-chip--tide-next{color:var(--color-text-secondary)}.hud-chip--tide-next .hud-chip__value{color:var(--color-text-secondary);font-size:10px}.model-info-list{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-lg)}.model-info-item{display:flex;align-items:center;gap:var(--space-sm)}.model-info-item__dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.model-info-item__text{display:flex;flex-direction:column}.model-info-item__name{font-size:var(--font-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.model-info-item__members{font-size:var(--font-xs);color:var(--color-text-secondary)}.model-info-item__desc{font-size:var(--font-xs);color:var(--color-text-muted);line-height:1.3}.overlay-toggle-container{display:flex;flex-direction:column;gap:2px}.overlay-toggle__attribution{font-size:10px;color:var(--color-text-secondary);padding-left:var(--space-xs)}.panel__status{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--font-xs);color:var(--color-text-muted)}.panel__status-dot{width:8px;height:8px;border-radius:50%;background-color:var(--color-text-muted)}.panel__status-dot--fresh{background-color:var(--color-success)}.panel__status-dot--stale{background-color:var(--color-warning)}.panel__status-dot--error{background-color:var(--color-error)}.panel__uv-scale{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-xs) 0}.panel__empty-state{display:flex;align-items:center;justify-content:center;min-height:80px;color:var(--color-text-muted);font-size:var(--font-sm)}.panel__water-temp{font-size:var(--font-sm);color:var(--color-text-secondary);padding:var(--space-sm) 0}.panel--loading .panel__body{display:flex;align-items:center;justify-content:center;min-height:180px;color:var(--color-text-muted)}.panel--error .panel__body{display:flex;align-items:center;justify-content:center;min-height:100px;color:var(--color-error);font-size:var(--font-sm)}.data-table{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table table{width:100%;border-collapse:collapse;font-size:var(--font-sm)}.data-table th,.data-table td{padding:var(--space-sm) var(--space-md);text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap}.data-table th{position:sticky;left:0;background-color:var(--color-surface);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);z-index:1}.data-table td{color:var(--color-text-primary)}.data-table__section-header{background-color:var(--color-surface-raised);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background-color:#0009;z-index:1000;padding:var(--space-md)}.modal-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-lg);width:100%;max-width:400px}.modal-card__title{font-size:var(--font-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-sm)}.modal-card__description{font-size:var(--font-sm);color:var(--color-text-secondary);margin-bottom:var(--space-lg)}.modal-card__form{display:flex;flex-direction:column;gap:var(--space-md)}.modal-card__input{width:100%;padding:var(--space-sm) var(--space-md);min-height:var(--tap-target-min);background-color:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--font-base);outline:none;transition:border-color var(--transition-fast)}.modal-card__input:focus{border-color:var(--color-accent)}.modal-card__input::placeholder{color:var(--color-text-muted)}.modal-card__actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.modal-card__btn{display:inline-flex;align-items:center;justify-content:center;min-width:var(--tap-target-min);min-height:var(--tap-target-min);padding:var(--space-sm) var(--space-md);border:none;border-radius:var(--radius-sm);font-size:var(--font-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.modal-card__btn--primary{background-color:var(--color-accent);color:#fff}.modal-card__btn--primary:hover:not(:disabled){background-color:var(--color-accent-hover)}.modal-card__btn--primary:disabled{opacity:.5;cursor:not-allowed}.modal-card__btn--secondary{background-color:var(--color-surface-raised);color:var(--color-text-secondary)}.modal-card__btn--secondary:hover{background-color:var(--color-border);color:var(--color-text-primary)}.loc-manager{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:480px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden}.loc-manager__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border)}.loc-manager__title{font-size:var(--font-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.loc-manager__close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;min-width:32px;min-height:32px;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);font-size:var(--font-lg);cursor:pointer}.loc-manager__close:hover{background-color:var(--color-surface-raised);color:var(--color-text-primary)}.loc-manager__tabs{display:flex;border-bottom:1px solid var(--color-border)}.loc-manager__tab{flex:1;display:flex;align-items:center;justify-content:center;gap:4px;padding:var(--space-sm) var(--space-md);min-height:40px;min-width:auto;border:none;border-bottom:2px solid transparent;background:none;color:var(--color-text-secondary);font-size:var(--font-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast)}.loc-manager__tab:hover:not(:disabled){color:var(--color-text-primary)}.loc-manager__tab--active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.loc-manager__tab:disabled{opacity:.4;cursor:not-allowed}.loc-manager__body{flex:1;overflow-y:auto;padding:var(--space-md)}.loc-tab{display:flex;flex-direction:column;gap:var(--space-md)}.loc-tab__section{display:flex;flex-direction:column;gap:var(--space-xs)}.loc-tab__section-label{font-size:10px;font-weight:var(--font-weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.loc-tab__current{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm);background-color:var(--color-surface-raised);border-radius:var(--radius-sm)}.loc-tab__current-info{display:flex;flex-direction:column;gap:2px}.loc-tab__current-name{font-size:var(--font-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.loc-tab__current-coords{font-size:var(--font-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.loc-tab__save-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;min-width:auto;min-height:28px;border:1px solid var(--color-accent);border-radius:14px;background:none;color:var(--color-accent);font-size:var(--font-xs);cursor:pointer}.loc-tab__save-btn:hover{background-color:var(--color-accent);color:#fff}.loc-tab__clear-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;min-width:auto;min-height:28px;border:1px solid var(--color-error);border-radius:14px;background:none;color:var(--color-error);font-size:var(--font-xs);cursor:pointer}.loc-tab__clear-btn:hover{background-color:var(--color-error);color:#fff}.loc-tab__save-form{display:flex;align-items:center;gap:var(--space-xs);padding-top:var(--space-xs)}.loc-tab__save-input{flex:1;padding:4px 8px;min-height:32px;background-color:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--font-sm);outline:none}.loc-tab__save-input:focus{border-color:var(--color-accent)}.loc-tab__save-confirm{padding:4px 10px;min-width:auto;min-height:32px;border:none;border-radius:var(--radius-sm);background-color:var(--color-accent);color:#fff;font-size:var(--font-xs);font-weight:var(--font-weight-medium);cursor:pointer}.loc-tab__save-confirm:disabled{opacity:.5;cursor:not-allowed}.loc-tab__save-cancel{padding:4px 10px;min-width:auto;min-height:32px;border:none;border-radius:var(--radius-sm);background-color:var(--color-surface-raised);color:var(--color-text-secondary);font-size:var(--font-xs);cursor:pointer}.loc-tab__search-input{width:100%;padding:var(--space-sm);min-height:36px;background-color:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--font-sm);outline:none}.loc-tab__search-input:focus{border-color:var(--color-accent)}.loc-tab__search-input::placeholder{color:var(--color-text-muted)}.loc-tab__searching{font-size:var(--font-xs);color:var(--color-text-muted);padding:var(--space-xs) 0}.loc-tab__empty{font-size:var(--font-sm);color:var(--color-text-muted);padding:var(--space-sm) 0}.loc-tab__pin-form{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xs)}.loc-tab__geolocation-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-xs);width:100%;padding:var(--space-sm) var(--space-md);min-height:var(--tap-target-min);border:1px solid var(--color-accent);border-radius:var(--radius-sm);background:none;color:var(--color-accent);font-size:var(--font-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.loc-tab__geolocation-btn:hover:not(:disabled){background-color:var(--color-accent);color:#fff}.loc-tab__geolocation-btn:disabled{opacity:.6;cursor:not-allowed}.loc-tab__geo-error{font-size:var(--font-xs);color:var(--color-error);padding:var(--space-xs) 0}.map-picker{display:flex;flex-direction:column;gap:var(--space-xs)}.map-picker__map{border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;z-index:0}.map-picker__actions{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-xs) 0}.map-picker__coords{font-size:var(--font-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.map-picker__loading{display:flex;align-items:center;justify-content:center;height:250px;color:var(--color-text-muted);font-size:var(--font-sm)}.loc-tab__pin-input{padding:4px 8px;min-height:32px;min-width:auto;background-color:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--font-sm);outline:none}.loc-tab__pin-input:focus{border-color:var(--color-accent)}.loc-tab__pin-input--name{grid-column:1 / -1}.loc-tab__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.loc-tab__item{display:flex;align-items:center;gap:4px}.loc-tab__item-btn{flex:1;display:flex;flex-direction:column;gap:2px;padding:var(--space-sm);min-height:40px;min-width:auto;border:1px solid transparent;border-radius:var(--radius-sm);background-color:var(--color-surface-raised);color:var(--color-text-primary);font-size:var(--font-sm);text-align:left;cursor:pointer;transition:border-color var(--transition-fast),background-color var(--transition-fast)}.loc-tab__item-btn:hover{border-color:var(--color-accent)}.loc-tab__item-btn--active{border-color:var(--color-accent);background-color:#3b82f61a}.loc-tab__item-name{font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.loc-tab__item-coords{font-size:var(--font-xs);color:var(--color-text-muted)}.loc-tab__item-delete{display:flex;align-items:center;justify-content:center;width:28px;height:28px;min-width:28px;min-height:28px;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-muted);font-size:var(--font-xs);cursor:pointer}.loc-tab__item-delete:hover{background-color:#ef44441a;color:var(--color-error)}.sources-info{display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.sources-info__toggle{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;min-width:auto;min-height:28px;border:none;background-color:var(--color-surface-raised);color:var(--color-text-secondary);font-size:var(--font-xs);cursor:pointer;transition:background-color var(--transition-fast)}.sources-info__toggle:hover{background-color:var(--color-surface)}.sources-info__summary{display:flex;align-items:center;gap:4px}.sources-info__loading{color:var(--color-text-muted);font-style:italic}.sources-info__dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.sources-info__dot--fresh{background-color:var(--color-success)}.sources-info__dot--stale{background-color:var(--color-warning)}.sources-info__age{color:var(--color-text-muted)}.sources-info__chevron{font-size:10px;color:var(--color-text-muted)}.sources-info__detail{padding:var(--space-xs) var(--space-sm);border-top:1px solid var(--color-border);background-color:var(--color-surface)}.sources-info__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.sources-info__item{display:flex;align-items:center;gap:var(--space-xs);padding:2px 0;font-size:var(--font-xs)}.sources-info__source-name{flex:1;color:var(--color-text-primary)}.sources-info__source-status{color:var(--color-text-muted);font-variant-numeric:tabular-nums}.sources-info__error{color:var(--color-error)}.sources-info__refresh-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;min-width:22px;min-height:22px;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-muted);font-size:var(--font-sm);cursor:pointer}.sources-info__refresh-btn:hover{background-color:var(--color-surface-raised);color:var(--color-accent)}.sources-info__refresh-all{display:flex;align-items:center;justify-content:center;width:100%;min-height:32px;min-width:auto;margin-top:var(--space-xs);padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);font-size:var(--font-xs);cursor:pointer}.sources-info__refresh-all:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.sources-info__refresh-all:disabled{opacity:.5;cursor:not-allowed}.settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background-color:#0009;z-index:1000;padding:var(--space-md)}.settings-panel{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:400px;max-height:80vh;overflow-y:auto}.settings-panel__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border)}.settings-panel__title{font-size:var(--font-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.settings-panel__close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;min-width:32px;min-height:32px;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);font-size:var(--font-lg);cursor:pointer}.settings-panel__close:hover{background-color:var(--color-surface-raised);color:var(--color-text-primary)}.settings-panel__body{padding:var(--space-md) var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md)}.settings-panel__group{border:none;padding:0;margin:0}.settings-panel__group-label{font-size:var(--font-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-xs)}.settings-panel__options{display:flex;gap:var(--space-xs);flex-wrap:wrap}.settings-panel__option{display:inline-flex;align-items:center;justify-content:center;padding:4px 12px;min-height:32px;border:1px solid var(--color-border);border-radius:16px;background:none;color:var(--color-text-secondary);font-size:var(--font-sm);cursor:pointer;transition:border-color var(--transition-fast),background-color var(--transition-fast),color var(--transition-fast)}.settings-panel__option:hover{border-color:var(--color-accent)}.settings-panel__option--selected{background-color:var(--color-accent);border-color:var(--color-accent);color:#fff}.settings-panel__radio{position:absolute;opacity:0;width:0;height:0}.settings-panel__option-label{pointer-events:none}.loading-indicator{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md)}.loading-indicator__spinner{width:18px;height:18px;border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}.loading-indicator__message{font-size:var(--font-sm);color:var(--color-text-secondary)}@keyframes spin{to{transform:rotate(360deg)}}.chart-crosshair-tooltip{position:absolute;pointer-events:none;display:none;flex-direction:column;gap:2px;background-color:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-sm);font-size:var(--font-xs);line-height:1.4;box-shadow:0 2px 8px #0000004d;z-index:100;white-space:nowrap}.chart-crosshair-tooltip__time{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);padding-bottom:2px;border-bottom:1px solid var(--color-border);margin-bottom:2px}.chart-crosshair-tooltip__row{display:flex;align-items:center;gap:4px}.chart-crosshair-tooltip__dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.chart-crosshair-tooltip__label{color:var(--color-text-secondary)}.chart-crosshair-tooltip__value{font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums}.chart-crosshair-tooltip__range{font-size:10px;opacity:.7;margin-left:2px}.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;-webkit-user-select:none;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}
