body{background:#111827;color:#fff;height:100vh;width:100vw;overflow:hidden;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#fff3}.loading-page{height:100vh;width:100vw;background:#111827;display:flex;flex-direction:column;align-items:center;justify-content:center}.loading-page__title{font-size:1.5rem;font-weight:700;margin-bottom:1rem;animation:pulse 2s ease-in-out infinite}.loading-page__subtitle{font-size:.875rem;color:#9ca3af}.loading-page__waiting{font-size:1.25rem}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.error-page{height:100vh;width:100vw;background:#111827;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem}.error-page__title{font-size:1.875rem;font-weight:700;margin-bottom:1rem;color:#dc2626}.error-page__message{font-size:1.125rem;margin-bottom:1.5rem}.btn-primary{padding:.5rem 1.5rem;background:#2563eb;border:none;color:#fff;border-radius:.25rem;font-weight:700;cursor:pointer;transition:background-color .2s}.btn-primary:hover{background:#1d4ed8}.not-found{padding:2rem;text-align:center}.not-found__title{font-size:3.75rem;font-weight:700;color:#dc2626;margin-bottom:1rem}.not-found__subtitle{font-size:1.5rem;font-weight:600;margin-bottom:1.5rem}.not-found__message{margin-bottom:2rem}.not-found__link{display:inline-block;background:#3b82f6;color:#fff;font-weight:700;padding:.5rem 1rem;border-radius:.25rem;text-decoration:none;transition:background-color .2s}.not-found__link:hover{background:#1d4ed8}/*!
 *  Weather Icons 1.3
 *  Updated November 30th, 2014
 *  Weather themed icons for Bootstrap
 *  ------------------------------------------------------------------------------
* Maintained at http://erikflowers.github.io/weather-icons
 *  http://twitter.com/Erik_UX
 *
 *  License
 *  ------------------------------------------------------------------------------
 *  - Fpmt licensed under SIL OFL 1.1 -
 *    http://scripts.sil.org/OFL
 *  - CSS and LESS are licensed under MIT License -
 *    http://opensource.org/licenses/mit-license.html
 *  - Documentation licensed under CC BY 3.0 -
 *    http://creativecommons.org/licenses/by/3.0/
 *  - Inspired by and works great as a companion with Font Awesome
 *    "Font Awesome by Dave Gandy - http://fontawesome.io"
 *
 *  Weather Icons Bootstrap Package Author - Erik Flowers - erik@helloerik.com
 *  ------------------------------------------------------------------------------
 *  Email: erik@helloerik.com
 *  Twitter: http://twitter.com/Erik_UX
 */@font-face{font-family:weathericons;src:url(/assets/weathericons-regular-webfont-WKIYpmHz.eot);src:url(/assets/weathericons-regular-webfont-WKIYpmHz.eot?#iefix) format("embedded-opentype"),url(/assets/weathericons-regular-webfont-B-i0YZwS.woff) format("woff"),url(/assets/weathericons-regular-webfont-dBAeXXmo.ttf) format("truetype"),url(/assets/weathericons-regular-webfont-BhRdsjD7.svg#weathericons-regular-webfontRg) format("svg");font-weight:400;font-style:normal}.wi{display:inline-block;font-family:weathericons;font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wi-day-cloudy-gusts:before{content:""}.wi-day-cloudy-windy:before{content:""}.wi-day-cloudy:before{content:""}.wi-day-fog:before{content:""}.wi-day-hail:before{content:""}.wi-day-lightning:before{content:""}.wi-day-rain-mix:before{content:""}.wi-day-rain-wind:before{content:""}.wi-day-rain:before{content:""}.wi-day-showers:before{content:""}.wi-day-snow:before{content:""}.wi-day-sprinkle:before{content:""}.wi-day-sunny-overcast:before{content:""}.wi-day-sunny:before{content:""}.wi-day-storm-showers:before{content:""}.wi-day-thunderstorm:before{content:""}.wi-cloudy-gusts:before{content:""}.wi-cloudy-windy:before{content:""}.wi-cloudy:before{content:""}.wi-fog:before{content:""}.wi-hail:before{content:""}.wi-rain-mix:before{content:""}.wi-rain-wind:before{content:""}.wi-rain:before{content:""}.wi-showers:before{content:""}.wi-snow:before{content:""}.wi-sprinkle:before{content:""}.wi-storm-showers:before{content:""}.wi-thunderstorm:before{content:""}.wi-windy:before{content:""}.wi-night-alt-cloudy-gusts:before{content:""}.wi-night-alt-cloudy-windy:before{content:""}.wi-night-alt-hail:before{content:""}.wi-night-alt-lightning:before{content:""}.wi-night-alt-rain-mix:before{content:""}.wi-night-alt-rain-wind:before{content:""}.wi-night-alt-rain:before{content:""}.wi-night-alt-showers:before{content:""}.wi-night-alt-snow:before{content:""}.wi-night-alt-sprinkle:before{content:""}.wi-night-alt-storm-showers:before{content:""}.wi-night-alt-thunderstorm:before{content:""}.wi-night-clear:before{content:""}.wi-night-cloudy-gusts:before{content:""}.wi-night-cloudy-windy:before{content:""}.wi-night-cloudy:before{content:""}.wi-night-hail:before{content:""}.wi-night-lightning:before{content:""}.wi-night-rain-mix:before{content:""}.wi-night-rain-wind:before{content:""}.wi-night-rain:before{content:""}.wi-night-showers:before{content:""}.wi-night-snow:before{content:""}.wi-night-sprinkle:before{content:""}.wi-night-storm-showers:before{content:""}.wi-night-thunderstorm:before{content:""}.wi-celsius:before{content:""}.wi-cloud-down:before{content:""}.wi-cloud-refresh:before{content:""}.wi-cloud-up:before{content:""}.wi-cloud:before{content:""}.wi-degrees:before{content:""}.wi-down-left:before{content:""}.wi-down:before{content:""}.wi-fahrenheit:before{content:""}.wi-horizon-alt:before{content:""}.wi-horizon:before{content:""}.wi-left:before{content:""}.wi-lightning:before{content:""}.wi-night-fog:before{content:""}.wi-refresh-alt:before{content:""}.wi-refresh:before{content:""}.wi-right:before{content:""}.wi-sprinkles:before{content:""}.wi-strong-wind:before{content:""}.wi-sunrise:before{content:""}.wi-sunset:before{content:""}.wi-thermometer-exterior:before{content:""}.wi-thermometer-internal:before{content:""}.wi-thermometer:before{content:""}.wi-tornado:before{content:""}.wi-up-right:before{content:""}.wi-up:before{content:""}.wi-wind-west:before{content:""}.wi-wind-south-west:before{content:""}.wi-wind-south-east:before{content:""}.wi-wind-south:before{content:""}.wi-wind-north-west:before{content:""}.wi-wind-north-east:before{content:""}.wi-wind-north:before{content:""}.wi-wind-east:before{content:""}.wi-smoke:before{content:""}.wi-dust:before{content:""}.wi-snow-wind:before{content:""}.wi-day-snow-wind:before{content:""}.wi-night-snow-wind:before{content:""}.wi-night-alt-snow-wind:before{content:""}.wi-day-sleet-storm:before{content:""}.wi-night-sleet-storm:before{content:""}.wi-night-alt-sleet-storm:before{content:""}.wi-day-snow-thunderstorm:before{content:""}.wi-night-snow-thunderstorm:before{content:""}.wi-night-alt-snow-thunderstorm:before{content:""}.wi-solar-eclipse:before{content:""}.wi-lunar-eclipse:before{content:""}.wi-meteor:before{content:""}.wi-hot:before{content:""}.wi-hurricane:before{content:""}.wi-smog:before{content:""}.wi-alien:before{content:""}.wi-snowflake-cold:before{content:""}.wi-stars:before{content:""}.wi-night-partly-cloudy:before{content:""}.wi-umbrella:before{content:""}.wi-day-windy:before{content:""}.wi-night-alt-cloudy:before{content:""}.wi-up-left:before{content:""}.wi-down-right:before{content:""}.wi-time-12:before{content:""}.wi-time-1:before{content:""}.wi-time-2:before{content:""}.wi-time-3:before{content:""}.wi-time-4:before{content:""}.wi-time-5:before{content:""}.wi-time-6:before{content:""}.wi-time-7:before{content:""}.wi-time-8:before{content:""}.wi-time-9:before{content:""}.wi-time-10:before{content:""}.wi-time-11:before{content:""}.wi-day-sleet:before{content:""}.wi-night-sleet:before{content:""}.wi-night-alt-sleet:before{content:""}.wi-sleet:before{content:""}.wi-day-haze:before{content:""}.wi-beafort-0:before{content:""}.wi-beafort-1:before{content:""}.wi-beafort-2:before{content:""}.wi-beafort-3:before{content:""}.wi-beafort-4:before{content:""}.wi-beafort-5:before{content:""}.wi-beafort-6:before{content:""}.wi-beafort-7:before{content:""}.wi-beafort-8:before{content:""}.wi-beafort-9:before{content:""}.wi-beafort-10:before{content:""}.wi-beafort-11:before{content:""}.wi-beafort-12:before{content:""}.wi-wind-default:before{content:""}wi-wind-default._0-deg{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0)}wi-wind-default._15-deg{-webkit-transform:rotate(15deg);-moz-transform:rotate(15deg);-ms-transform:rotate(15deg);-o-transform:rotate(15deg);transform:rotate(15deg)}wi-wind-default._30-deg{-webkit-transform:rotate(30deg);-moz-transform:rotate(30deg);-ms-transform:rotate(30deg);-o-transform:rotate(30deg);transform:rotate(30deg)}wi-wind-default._45-deg{-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}wi-wind-default._60-deg{-webkit-transform:rotate(60deg);-moz-transform:rotate(60deg);-ms-transform:rotate(60deg);-o-transform:rotate(60deg);transform:rotate(60deg)}wi-wind-default._75-deg{-webkit-transform:rotate(75deg);-moz-transform:rotate(75deg);-ms-transform:rotate(75deg);-o-transform:rotate(75deg);transform:rotate(75deg)}wi-wind-default._90-deg{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}wi-wind-default._105-deg{-webkit-transform:rotate(105deg);-moz-transform:rotate(105deg);-ms-transform:rotate(105deg);-o-transform:rotate(105deg);transform:rotate(105deg)}wi-wind-default._120-deg{-webkit-transform:rotate(120deg);-moz-transform:rotate(120deg);-ms-transform:rotate(120deg);-o-transform:rotate(120deg);transform:rotate(120deg)}wi-wind-default._135-deg{-webkit-transform:rotate(135deg);-moz-transform:rotate(135deg);-ms-transform:rotate(135deg);-o-transform:rotate(135deg);transform:rotate(135deg)}wi-wind-default._150-deg{-webkit-transform:rotate(150deg);-moz-transform:rotate(150deg);-ms-transform:rotate(150deg);-o-transform:rotate(150deg);transform:rotate(150deg)}wi-wind-default._165-deg{-webkit-transform:rotate(165deg);-moz-transform:rotate(165deg);-ms-transform:rotate(165deg);-o-transform:rotate(165deg);transform:rotate(165deg)}wi-wind-default._180-deg{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}wi-wind-default._195-deg{-webkit-transform:rotate(195deg);-moz-transform:rotate(195deg);-ms-transform:rotate(195deg);-o-transform:rotate(195deg);transform:rotate(195deg)}wi-wind-default._210-deg{-webkit-transform:rotate(210deg);-moz-transform:rotate(210deg);-ms-transform:rotate(210deg);-o-transform:rotate(210deg);transform:rotate(210deg)}wi-wind-default._225-deg{-webkit-transform:rotate(225deg);-moz-transform:rotate(225deg);-ms-transform:rotate(225deg);-o-transform:rotate(225deg);transform:rotate(225deg)}wi-wind-default._240-deg{-webkit-transform:rotate(240deg);-moz-transform:rotate(240deg);-ms-transform:rotate(240deg);-o-transform:rotate(240deg);transform:rotate(240deg)}wi-wind-default._255-deg{-webkit-transform:rotate(255deg);-moz-transform:rotate(255deg);-ms-transform:rotate(255deg);-o-transform:rotate(255deg);transform:rotate(255deg)}wi-wind-default._270-deg{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}wi-wind-default._285-deg{-webkit-transform:rotate(295deg);-moz-transform:rotate(295deg);-ms-transform:rotate(295deg);-o-transform:rotate(295deg);transform:rotate(295deg)}wi-wind-default._300-deg{-webkit-transform:rotate(300deg);-moz-transform:rotate(300deg);-ms-transform:rotate(300deg);-o-transform:rotate(300deg);transform:rotate(300deg)}wi-wind-default._315-deg{-webkit-transform:rotate(315deg);-moz-transform:rotate(315deg);-ms-transform:rotate(315deg);-o-transform:rotate(315deg);transform:rotate(315deg)}wi-wind-default._330-deg{-webkit-transform:rotate(330deg);-moz-transform:rotate(330deg);-ms-transform:rotate(330deg);-o-transform:rotate(330deg);transform:rotate(330deg)}wi-wind-default._345-deg{-webkit-transform:rotate(345deg);-moz-transform:rotate(345deg);-ms-transform:rotate(345deg);-o-transform:rotate(345deg);transform:rotate(345deg)}.wi-moon-new:before{content:""}.wi-moon-waxing-cresent-1:before{content:""}.wi-moon-waxing-cresent-2:before{content:""}.wi-moon-waxing-cresent-3:before{content:""}.wi-moon-waxing-cresent-4:before{content:""}.wi-moon-waxing-cresent-5:before{content:""}.wi-moon-waxing-cresent-6:before{content:""}.wi-moon-first-quarter:before{content:""}.wi-moon-waxing-gibbous-1:before{content:""}.wi-moon-waxing-gibbous-2:before{content:""}.wi-moon-waxing-gibbous-3:before{content:""}.wi-moon-waxing-gibbous-4:before{content:""}.wi-moon-waxing-gibbous-5:before{content:""}.wi-moon-waxing-gibbous-6:before{content:""}.wi-moon-full:before{content:""}.wi-moon-waning-gibbous-1:before{content:""}.wi-moon-waning-gibbous-2:before{content:""}.wi-moon-waning-gibbous-3:before{content:""}.wi-moon-waning-gibbous-4:before{content:""}.wi-moon-waning-gibbous-5:before{content:""}.wi-moon-waning-gibbous-6:before{content:""}.wi-moon-3rd-quarter:before{content:""}.wi-moon-waning-crescent-1:before{content:""}.wi-moon-waning-crescent-2:before{content:""}.wi-moon-waning-crescent-3:before{content:""}.wi-moon-waning-crescent-4:before{content:""}.wi-moon-waning-crescent-5:before{content:""}.wi-moon-waning-crescent-6:before{content:""}.main-view{position:relative;height:100vh;width:100vw;overflow:hidden}.connection-bar{position:fixed;top:0;left:0;right:0;z-index:100;color:#fff;font-size:10px;font-weight:700;padding:2px 1rem;text-align:center;animation:pulse 2s ease-in-out infinite}.connection-bar--connecting{background:#eab308}.connection-bar--disconnected{background:#ef4444}.panels-container{position:absolute;inset:0;display:flex;flex-direction:column;z-index:10;padding:.5rem;gap:.5rem;pointer-events:none}@media(min-width:640px){.panels-container{flex-direction:row;justify-content:space-between;align-items:flex-start;padding:1rem;gap:0}}.panel{pointer-events:auto;width:100%}@media(min-width:640px){.panel{width:20rem;max-width:45vw}}@media(min-width:768px){.panel{width:24rem}}@media(min-width:1025px){.panel{width:420px}}.panel--selected{margin-top:.5rem}@media(min-width:640px){.panel--selected{margin-top:0}}.overlay{background:#0a0f19bf;border-radius:16px;box-shadow:#26394d 0 20px 30px -10px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.15);color:#fff;height:min-content;transition:all .3s ease}@media(max-width:640px){.overlay{border-radius:12px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}}.overlay.overlay-collapsed{height:auto}.event-panel{padding:.75rem;display:flex;flex-direction:column;max-height:85vh}@media(min-width:640px){.event-panel{padding:1rem}}.event-panel__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.event-panel__title-group{display:flex;align-items:center;gap:.5rem;overflow:hidden}.event-panel__title{font-size:1.125rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(min-width:640px){.event-panel__title{font-size:1.25rem}}.qr-trigger{color:#ffffff80;background:none;border:none;cursor:pointer;flex-shrink:0;transition:color .2s;display:flex;align-items:center;padding:0}.qr-trigger:hover{color:#fff}.qr-trigger__icon{width:1rem;height:1rem}@media(min-width:640px){.qr-trigger__icon{width:1.25rem;height:1.25rem}}.collapse-btn{background:#fff3;border:none;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.7rem;color:#fff;transition:background .2s ease}.collapse-btn:hover{background:#ffffff4d}.event-dates{display:flex;justify-content:space-between;font-size:.75rem;font-weight:600;margin-bottom:.75rem;opacity:.8}@media(min-width:640px){.event-dates{font-size:.875rem}}.search-container{position:relative;margin-bottom:.5rem}.search-input{width:100%;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:.5rem;padding:.375rem .75rem;font-size:.875rem;color:#fff;outline:none;transition:all .2s}.search-input:focus{box-shadow:0 0 0 1px #06b6d4}.search-input::placeholder{color:#fff6}.search-clear{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);color:#fff6;background:none;border:none;cursor:pointer;padding:0;font-size:inherit}.search-clear:hover{color:#fff}.participant-list{flex:1;overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:.25rem;padding-right:.25rem}.participant-row{display:flex;align-items:center;gap:.75rem;cursor:pointer;padding:.5rem;border-radius:.25rem;transition:all .2s}.participant-row:hover{background:#ffffff1a}.participant-row--selected{background:#ffffff4d}.participant-row--offline{opacity:.6}.participant-avatar{width:2rem;height:2rem;border-radius:50%;background:#374151;flex-shrink:0;border:1px solid rgba(255,255,255,.1)}.participant-avatar--offline{filter:grayscale(1)}.participant-info{flex:1;min-width:0}.participant-name{font-size:.875rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.participant-location{font-size:10px;opacity:.6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.participants-empty{text-align:center;padding:1rem 0;font-size:.875rem;opacity:.4;font-style:italic}.panel-collapsed{cursor:pointer;padding:.5rem}.panel-collapsed:hover{background:#0009}@media(min-width:640px){.panel-collapsed{padding:1rem}}.panel-collapsed__content{display:flex;align-items:center;justify-content:space-between}.panel-collapsed__title{font-size:1rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:.5rem}@media(min-width:640px){.panel-collapsed__title{font-size:1.125rem}}.panel-collapsed__hint{font-size:.75rem;opacity:.6;flex-shrink:0}.panel-collapsed__user{display:flex;align-items:center;gap:.75rem}.panel-collapsed__avatar{width:2rem;height:2rem;border-radius:50%;background:#374151;flex-shrink:0}.panel-collapsed__name{font-size:1rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(min-width:640px){.panel-collapsed__name{font-size:1.125rem}}.selected-panel{padding:.75rem;max-height:50vh;display:flex;flex-direction:column}@media(min-width:640px){.selected-panel{padding:1rem;max-height:60vh;height:auto}}.selected-panel__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.selected-panel__user{display:flex;align-items:center;gap:.75rem;overflow:hidden}.selected-panel__avatar{width:2.5rem;height:2.5rem;border-radius:50%;background:#374151;flex-shrink:0}.selected-panel__info{min-width:0}.selected-panel__name{font-size:1.125rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selected-panel__location{font-size:.75rem;opacity:.6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selected-panel__actions{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.focus-map-container{border-radius:.5rem;overflow:hidden;position:relative}#focusMap{position:relative;height:400px;width:100%}@media(max-width:640px){#focusMap{height:200px}}@media(min-width:641px)and (max-width:1024px){#focusMap{height:300px}}@media(min-width:1025px){#focusMap{height:400px}}@media(orientation:portrait)and (min-width:768px)and (max-width:1024px){#focusMap{height:350px}}#map{position:absolute!important;top:0!important;left:0!important;height:100%!important;width:100%!important;z-index:1}.map-controls{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:.5rem;z-index:10;pointer-events:none}@media(min-width:640px){.map-controls{right:1rem}}.map-control-btn{pointer-events:auto;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;font-size:1.125rem;font-weight:700;border-radius:50%;border:none;color:#fff;cursor:pointer;padding:.5rem;transition:all .2s cubic-bezier(.4,0,.2,1)}@media(min-width:640px){.map-control-btn{width:3rem;height:3rem;font-size:1.25rem}}.map-control-btn:hover{transform:scale(1.1);background:#fff3;border-color:#ffffff4d}.map-control-btn:active{transform:scale(.95)}.map-control-btn svg{width:1.25rem;height:1.25rem}@media(min-width:640px){.map-control-btn svg{width:1.5rem;height:1.5rem}}.weather-container{position:absolute;bottom:.5rem;left:.5rem;right:.5rem;z-index:10;pointer-events:none}@media(min-width:640px){.weather-container{bottom:1rem;left:1rem;right:1rem}}.weather-container__inner{pointer-events:auto}.signal{display:flex;flex-direction:column;align-items:center;gap:2px}.signal__icon{width:1rem;height:1rem;flex-shrink:0;display:inline-block}.signal__icon--offline{filter:grayscale(1);opacity:.5}.signal__label{font-size:8px;opacity:.4;line-height:1}.weather-box{width:100%;max-width:900px;margin:0 auto;transition:all .3s ease}.weather-collapsed{cursor:pointer;padding:12px 16px}.weather-collapsed:hover{background:#0a0f19e0}.weather-summary{display:flex;align-items:center;justify-content:space-between;gap:12px}.weather-grid-compact{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;flex:1}.weather-card-compact{display:flex;flex-direction:column;align-items:center;padding:8px 4px;background:#ffffff14;border:1px solid rgba(255,255,255,.1);border-radius:8px;min-width:0;transition:background .2s ease}.weather-card-compact:hover{background:#ffffff26}.weather-time-compact{font-size:.7rem;color:#ffffffa6;margin-bottom:4px;line-height:1}.weather-icon-compact{font-size:1.6rem;line-height:1;margin-bottom:2px;color:#e2e8f0}.weather-temp-compact{font-size:1rem;font-weight:700;line-height:1}.expand-hint{font-size:.75rem;color:#ffffff80;flex-shrink:0;padding-left:8px}.weather-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;padding:1rem 1rem 0}.weather-title{font-size:1.125rem;font-weight:700}.weather-header__actions{display:flex;align-items:center;gap:.75rem}.weather-location{font-size:.75rem;opacity:.6}.weather-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;overflow-x:auto;padding:0 1rem 1rem}.weather-card{display:flex;flex-direction:column;align-items:center;padding:12px 8px;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:12px;min-width:120px;transition:background .2s ease}.weather-card:hover{background:#ffffff24}.weather-time{font-size:.85rem;color:#ffffffb3;margin-bottom:8px;font-weight:500}.weather-icon{font-size:2.2rem;margin-bottom:8px;color:#e2e8f0}.weather-wind-icon{font-size:.9em;color:#93c5fd}.weather-temp{font-size:1.25rem;font-weight:700;margin-bottom:4px}.weather-condition{font-size:.75rem;text-align:center;color:#ffffffd9;margin-bottom:8px;line-height:1.2}.weather-details{display:flex;flex-direction:column;gap:3px;font-size:.72rem;color:#ffffffbf;text-align:center}.weather-detail--muted{opacity:.7}.weather-precip{font-size:.75rem;color:#93c5fd;margin-top:4px;font-weight:500}.qr-backdrop{position:fixed;inset:0;background:#000c;display:flex;align-items:flex-end;justify-content:center;z-index:50;padding:0}@media(min-width:640px){.qr-backdrop{align-items:center;padding:1rem}}.qr-modal{background:#111827;border-radius:.5rem .5rem 0 0;padding:1rem;max-width:32rem;width:100%;max-height:90vh;overflow-y:auto}@media(min-width:640px){.qr-modal{border-radius:.5rem;padding:1.5rem;margin:0 1rem;max-height:none}}.qr-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}@media(min-width:640px){.qr-header{margin-bottom:1.5rem}}.qr-title{font-size:1.25rem;font-weight:700}@media(min-width:640px){.qr-title{font-size:1.5rem}}.qr-close{color:#ffffff80;background:none;border:none;cursor:pointer;transition:color .2s;padding:0}.qr-close:hover{color:#fff}.qr-close svg{width:1.5rem;height:1.5rem}.qr-tabs{display:flex;border-bottom:1px solid #374151;margin-bottom:1rem;overflow-x:auto}@media(min-width:640px){.qr-tabs{margin-bottom:1.5rem}}.qr-tab{padding:.5rem .75rem;font-size:.875rem;font-weight:500;background:none;border:none;border-bottom:2px solid transparent;color:#9ca3af;cursor:pointer;transition:color .2s;white-space:nowrap}@media(min-width:640px){.qr-tab{font-size:1rem}}.qr-tab:hover{color:#fff}.qr-tab--active{color:#22d3ee;border-bottom-color:#22d3ee}.qr-content{background:#fff;border-radius:.5rem;padding:.75rem}@media(min-width:640px){.qr-content{padding:1.5rem}}.qr-image-section{text-align:center}.qr-image-title{color:#111827;font-weight:600;margin-bottom:.5rem;font-size:1rem}@media(min-width:640px){.qr-image-title{margin-bottom:1rem;font-size:1.125rem}}.qr-image{width:100%;max-width:200px;margin:0 auto;height:auto;display:block}@media(min-width:640px){.qr-image{max-width:24rem}}.qr-url{color:#4b5563;font-size:.75rem;margin-top:.5rem;word-break:break-all}@media(min-width:640px){.qr-url{font-size:.875rem;margin-top:1rem}}@media(max-width:640px){.weather-grid{grid-template-columns:repeat(3,1fr);gap:6px}.weather-grid-compact{grid-template-columns:repeat(6,1fr);gap:2px}.weather-card{min-width:70px;padding:6px 3px;border-radius:8px}.weather-icon{font-size:1.25rem}.weather-temp{font-size:.875rem}.weather-condition{font-size:.65rem}.weather-icon-compact{font-size:1rem}.weather-temp-compact{font-size:.75rem}.weather-collapsed{padding:6px 8px}.weather-time-compact{font-size:.6rem}.collapse-btn{width:28px;height:28px;font-size:.8rem}.participant-list{-webkit-overflow-scrolling:touch}button,[role=button],.cursor-pointer{min-height:44px;min-width:44px}.overlay,.weather-box,.collapse-btn{user-select:none;-webkit-user-select:none}.panel-container{flex-direction:column!important;gap:8px}}@media(min-width:641px)and (max-width:1024px){.weather-grid,.weather-grid-compact{grid-template-columns:repeat(4,1fr);gap:8px}.weather-card{min-width:100px;padding:10px 6px}.weather-icon{font-size:1.75rem}.weather-temp{font-size:1.1rem}.overlay{max-width:380px}}@media(min-width:1025px){.weather-grid,.weather-grid-compact{grid-template-columns:repeat(6,1fr)}.weather-card{min-width:120px;padding:12px 8px}.weather-icon{font-size:2.2rem}.weather-temp{font-size:1.25rem}}@media(orientation:portrait)and (min-width:768px)and (max-width:1024px){.weather-grid{grid-template-columns:repeat(3,1fr);gap:10px}.weather-grid-compact{grid-template-columns:repeat(6,1fr);gap:6px}.weather-card{min-width:90px;padding:10px 6px}.weather-icon{font-size:1.6rem}.weather-temp{font-size:1.1rem}.overlay{max-width:85vw;width:100%}}.custom-scrollbar::-webkit-scrollbar{width:4px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.custom-scrollbar::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#fff3}
