:root{--bs-body-bg:#f8f9fa;--bs-body-color:#212529;--obs-accent:#198754;--obs-accent-hover:#157347;--obs-sky-blue:#0d6efd;--obs-sunshine:#fd7e14;--obs-rain:#0dcaf0;--obs-cloud:#6c757d;--obs-card-bg:#fff;--obs-gradient-start:#e3f2fd;--obs-gradient-end:#f8f9fa}[data-bs-theme=dark]{--bs-body-bg:#0d1117;--bs-body-color:#e6edf3;--obs-accent:#20c997;--obs-accent-hover:#1aa979;--obs-sky-blue:#58a6ff;--obs-sunshine:#ffa657;--obs-rain:#56d4dd;--obs-cloud:#8b949e;--obs-card-bg:#161b22;--obs-gradient-start:#0d1117;--obs-gradient-end:#161b22}body{background:linear-gradient(180deg,var(--obs-gradient-start)0%,var(--obs-gradient-end)100%);min-height:100vh}[data-bs-theme=dark] .text-muted{color:#8b949e!important}[data-bs-theme=dark] .card{background-color:var(--obs-card-bg);border-color:#30363d;box-shadow:0 1px 3px #0000004d}.card{background-color:var(--obs-card-bg);border:1px solid #0000001a;transition:box-shadow .2s ease-in-out,transform .2s ease-in-out;box-shadow:0 2px 8px #00000014}.card:hover{box-shadow:0 4px 16px #0000001f}.card.weather-card{border-left:4px solid var(--obs-accent)}.card.weather-card.temperature{border-left-color:#dc3545}.card.weather-card.humidity{border-left-color:var(--obs-sky-blue)}.card.weather-card.pressure{border-left-color:var(--obs-cloud)}.card.weather-card.wind{border-left-color:var(--obs-accent)}.card.weather-card.rain{border-left-color:var(--obs-rain)}[data-bs-theme=dark] .form-control,[data-bs-theme=dark] .form-select{color:#e6edf3;background-color:#21262d;border-color:#30363d}[data-bs-theme=dark] .form-control:focus,[data-bs-theme=dark] .form-select:focus{border-color:var(--obs-accent);background-color:#292e36;box-shadow:0 0 0 .25rem #20c99740}[data-bs-theme=dark] .navbar{border-bottom:1px solid #30363d;background-color:#161b22!important}[data-bs-theme=dark] .table{--bs-table-bg:var(--obs-card-bg);--bs-table-striped-bg:#21262d;--bs-table-hover-bg:#292e36}.skip-link{background-color:var(--obs-accent);color:#fff;z-index:9999;padding:8px 16px;text-decoration:none;position:absolute;top:-40px;left:0}.skip-link:focus{top:0}:focus-visible{outline:2px solid var(--obs-accent);outline-offset:2px}.main-content{min-height:calc(100vh - 120px);padding:1rem}@media (min-width:768px){.main-content{padding:2rem}}.map-container{border:1px solid #0000001a;border-radius:.5rem;width:100%;height:300px;overflow:hidden;box-shadow:inset 0 1px 3px #0000001a}[data-bs-theme=dark] .map-container{border-color:#30363d}@media (min-width:768px){.map-container{height:400px}}.chart-container{width:100%;padding:.5rem 0;overflow-x:auto}.chart-container svg{min-width:300px}.spinner-container{justify-content:center;align-items:center;min-height:200px;display:flex}.spinner-border{color:var(--obs-accent)!important}.btn:focus-visible{box-shadow:0 0 0 .25rem rgba(var(--bs-primary-rgb),.5)}[data-bs-theme=dark] a{color:var(--obs-accent)}[data-bs-theme=dark] a:hover{color:var(--obs-accent-hover)}.stat-card{text-align:center;padding:1.5rem}.stat-card .stat-value{font-size:2.5rem;font-weight:700;line-height:1.2}.stat-card .stat-label{color:var(--obs-cloud);text-transform:uppercase;letter-spacing:.05em;font-size:.875rem}.weather-icon{font-size:2rem;line-height:1}.weather-icon.temperature{color:#dc3545}.weather-icon.humidity{color:var(--obs-sky-blue)}.weather-icon.pressure{color:var(--obs-cloud)}.weather-icon.wind{color:var(--obs-accent)}.weather-icon.rain{color:var(--obs-rain)}.hero-section{background:linear-gradient(135deg,var(--obs-gradient-start)0%,var(--bs-body-bg)100%);border-radius:1rem;margin-bottom:2rem;padding:3rem 2rem}[data-bs-theme=dark] .hero-section{background:linear-gradient(135deg,#1a2332 0%,var(--obs-card-bg)100%)}.feature-card{transition:transform .2s ease-in-out}.feature-card:hover{transform:translateY(-4px)}.feature-card .feature-icon{margin-bottom:1rem;font-size:3rem}.badge.data-source{padding:.4em .8em;font-weight:500}.progress{background-color:#0000001a;border-radius:.5rem;height:.75rem}[data-bs-theme=dark] .progress{background-color:#ffffff1a}.sensor-badge{border-radius:2rem;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;display:inline-flex}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.weather-icon-animated{animation:3s ease-in-out infinite float}.page-header{border-bottom:1px solid #0000001a;margin-bottom:2rem;padding-bottom:1rem}[data-bs-theme=dark] .page-header{border-bottom-color:#30363d}.page-header h1{color:var(--bs-body-color);font-weight:600}.alert{border-left-width:4px;border-radius:.5rem}.dropdown-menu{border-radius:.5rem;box-shadow:0 4px 12px #00000026}[data-bs-theme=dark] .dropdown-menu{background-color:var(--obs-card-bg);border-color:#30363d}.modal-content{border-radius:.75rem}[data-bs-theme=dark] .modal-content{background-color:var(--obs-card-bg);border-color:#30363d}.footer{background-color:var(--obs-card-bg);border-top:1px solid #0000001a;margin-top:auto;padding:1.5rem 0}[data-bs-theme=dark] .footer{border-top-color:#30363d}.main-content{animation:.3s ease-in-out fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:576px){.display-4,.stat-card .stat-value{font-size:2rem}}@media print{.navbar,.footer,.btn,.dropdown{display:none!important}.card{box-shadow:none!important;border:1px solid #ddd!important}}
