/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */
:root{--primary-color:#0073e6;--success-color:#346739;--warning-color:#fb6c00;--warning-text-color:#fb6c00;--danger-color:#ff0000;--info-color:#6faf4f;--info-text-color:#6faf4f;--uv-moderate-color:#a16207;--uv-extreme-color:#8e44ad;--card-shadow:0 2px 4px rgba(0,0,0,0.1);--card-radius:8px;}html,body{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;}.water-dashboard-page{min-height:100vh;background:#f5f7fa;}.dashboard-header-modern{position:sticky;top:var(--drupal-displace-offset-top,0px);z-index:1000;color:#fff;background:linear-gradient(135deg,#044f99 0%,#478cdd 50%,#0b6bbf 100%);box-shadow:0 4px 20px rgba(0,73,145,0.3);}.header-container{display:flex;align-items:center;justify-content:space-between;max-width:1400px;margin:0 auto;padding:15px 30px;gap:20px;}.header-brand,.header-status,.header-actions,.user-menu,.status-item{display:flex;align-items:center;}.header-brand{flex-shrink:0;gap:15px;}.brand-icon,.brand-icon img,.brand-icon svg{width:50px;height:50px;}.brand-icon{display:flex;align-items:center;justify-content:center;}.brand-icon img,.brand-icon svg{object-fit:contain;transition:transform 0.2s ease;}.brand-icon:hover img,.brand-icon:hover svg{transform:scale(1.05);}.brand-text{display:flex;flex-direction:column;color:#fff;}.brand-title{margin:0;color:#fff;font-size:1.2rem;font-weight:700;line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,0.2);}.brand-subtitle{font-size:0.85rem;font-weight:400;letter-spacing:0.5px;text-transform:uppercase;opacity:0.9;}.header-navigation{flex:1;max-width:600px;}.nav-menu{display:flex;gap:5px;margin:0;padding:0;list-style:none;}.nav-item{position:relative;}.nav-link{display:flex;align-items:center;gap:8px;padding:12px 20px;color:rgba(255,255,255,0.94);font-weight:600;text-decoration:none;background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.18);border-radius:8px;transition:background-color 0.2s ease,color 0.2s ease,transform 0.2s ease,box-shadow 0.2s ease;}.nav-link:hover,.nav-link:focus-visible,.nav-item.active .nav-link{color:#fff;background:rgba(255,255,255,0.25);box-shadow:0 2px 10px rgba(0,0,0,0.24);}.nav-link:hover{transform:translateY(-2px);}.nav-icon{font-size:1.1rem;}.nav-text{font-size:0.9rem;white-space:nowrap;}.header-status{flex-shrink:0;gap:20px;}.status-item{gap:8px;padding:8px 12px;color:#fff;font-size:0.85rem;background:rgba(255,255,255,0.14);border-radius:20px;}.status-icon{font-size:1rem;}.status-text{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}.header-actions{flex-shrink:0;gap:15px;}.user-menu{gap:10px;padding:8px 15px;background:rgba(255,255,255,0.14);border-radius:25px;}.user-name{color:#fff;font-size:0.9rem;font-weight:600;}.logout-btn,.login-btn{padding:8px 16px;color:#fff;font-size:0.85rem;font-weight:600;text-decoration:none;background:rgba(255,255,255,0.2);border:1px solid rgba(255,255,255,0.35);border-radius:20px;transition:background-color 0.2s ease;}.logout-btn:hover,.login-btn:hover{color:#fff;background:rgba(255,255,255,0.32);}.dashboard-main{min-height:calc(100vh - 80px);background:#f5f7fa;}.water-dashboard-body{min-height:100vh;margin:0;padding:0;background:#f5f7fa;}.water-dashboard-body .region-primary-menu,.water-dashboard-body .block-system-branding-block,.water-dashboard-body .breadcrumb,.water-dashboard-body .page-title{display:none;}.water-dashboard-body .messages{margin:20px;border-radius:8px;}.visually-hidden{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}.visually-hidden.focusable:focus,.visually-hidden.focusable:focus-visible{position:fixed !important;z-index:10000;top:calc(var(--drupal-displace-offset-top,0px) + 0.75rem);left:0.75rem;width:auto;height:auto;padding:0.75rem 1rem;margin:0;overflow:visible;clip:auto;color:#fff;background:#346739;}[hidden]{display:none !important;}:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #0b63ce;outline-offset:3px;}.sidebar-overlay{border:0;}.chart-data-alternative{margin-top:1rem;overflow-x:auto;}.chart-data-alternative table{width:100%;border-collapse:collapse;}.chart-data-alternative th,.chart-data-alternative td{padding:0.5rem;text-align:left;border-bottom:1px solid #d7dde5;}@media (max-width:1200px){.header-container{padding:12px 20px;gap:15px;}.nav-text{display:none;}.nav-link{padding:10px 15px;}}@media (max-width:768px){.header-container{flex-wrap:wrap;padding:10px 15px;}.header-brand{gap:10px;}.brand-subtitle{font-size:0.75rem;}.nav-menu{gap:2px;}.nav-link{padding:8px 12px;}.status-item{padding:6px 10px;font-size:0.8rem;}}@media (max-width:480px){.header-container{flex-direction:column;gap:10px;text-align:center;}.header-navigation{order:3;}.header-status{order:2;justify-content:center;}.header-actions{order:4;}.nav-menu{flex-wrap:wrap;justify-content:center;}}@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto !important;animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;}}
:root{--primary-color:#0073e6;--success-color:#346739;--warning-color:#fb6c00;--warning-text-color:#fb6c00;--danger-color:#ff0000;--info-color:#6faf4f;--info-text-color:#6faf4f;--uv-moderate-color:#f1c40f;--uv-extreme-color:#8e44ad;--card-shadow:0 2px 4px rgba(0,0,0,0.1);--card-radius:8px;}html,body{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;}.volume-value,.stat-value,.status-text{font-variant-numeric:tabular-nums;}.water-dashboard-page{background-color:#f5f7fa;min-height:100vh;}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;padding:20px;max-width:1400px;margin:0 auto;}.water-container-dashboard .dashboard-grid{grid-template-columns:1.3fr 1.3fr 1.4fr;}.water-container-dashboard .evolution-card{grid-column:span 2;}@media (max-width:768px){.water-container-dashboard .evolution-card{grid-column:span 1;}}.dashboard-card{background:white;border-radius:var(--card-radius);box-shadow:var(--card-shadow);padding:20px;transition:transform 0.2s,box-shadow 0.2s;}.dashboard-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,0.15);}.dashboard-card :is(h2,h3){margin:0 0 20px 0;color:#333;font-size:1rem;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;}.fill-percentage-card{grid-column:span 1;text-align:center;}.fill-percentage-card :is(h2,h3){text-align:left;}.gauge-container{width:280px;height:220px;margin:0 auto;}.status-label{display:inline-block;padding:8px 16px;border-radius:20px;font-weight:600;margin-top:15px;}.status-label.full{background-color:#fff;color:var(--success-color);}.status-label.medium{background-color:#fff;color:var(--warning-color);}.status-label.low{background-color:#fff;color:var(--warning-color);}.status-label.critical{background-color:#fff;color:var(--danger-color);}.status-label.warning{background-color:#fff;color:var(--warning-color);}.status-label.good{background-color:#fff;color:var(--info-color);}.volume-card{text-align:center;border:2px solid var(--tank-status-accent,var(--primary-color));}.volume-card :is(h2,h3){text-align:left;}.volume-display{margin:20px 0;}.volume-value{font-size:3.2rem;font-weight:700;color:var(--primary-color);}.volume-unit{font-size:1.2rem;color:#666;margin-left:10px;}.volume-total{color:#666;font-size:1rem;}.evolution-card{grid-column:span 2;}.chart-container{width:100%;height:300px;}.location-card{grid-column:span 2;}.map-container{width:100%;height:400px;border-radius:4px;overflow:hidden;margin-bottom:15px;}.station-details{padding-top:15px;border-top:1px solid #eee;}.station-details p{margin:5px 0;color:#666;}.system-info{list-style:none;padding:0;margin:0;}.system-info li{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #eee;}.system-info li:last-child{border-bottom:none;}.info-label{color:#666;font-weight:500;}.info-value{color:#333;font-weight:600;}.timeline-card{grid-column:span 3;}.timeline-container{position:relative;padding:20px 0;}@media (max-width:768px){.dashboard-grid{grid-template-columns:1fr;gap:15px;padding:15px;}.evolution-card,.location-card,.timeline-card{grid-column:span 1;}.volume-value{font-size:2.5rem;}}@keyframes pulse{0%{transform:scale(1);}50%{transform:scale(1.05);}100%{transform:scale(1);}}.tank-status-critical .volume-value{animation:pulse 2s infinite;color:var(--danger-color);}.tank-status-medium .volume-value,.tank-status-low .volume-value,.tank-status-warning .volume-value{color:var(--warning-text-color);}.tank-status-good .volume-value{color:var(--info-text-color);}.tank-status-full .volume-value{color:var(--success-color);}.tank-status-critical .volume-percentage{color:var(--danger-color);background:#fef2f2;}.tank-status-medium .volume-percentage,.tank-status-low .volume-percentage,.tank-status-warning .volume-percentage{color:var(--warning-text-color);background:#fffbeb;}.tank-status-good .volume-percentage{color:var(--info-text-color);background:#eafce9;}.tank-status-full .volume-percentage{color:var(--success-color);background:#e0f0e0;}:is(.water-container-dashboard,.water-single-container-dashboard){--tank-status-accent:var(--primary-color);}:is(.water-container-dashboard,.water-single-container-dashboard).tank-status-critical{--tank-status-accent:var(--danger-color);}:is(.water-container-dashboard,.water-single-container-dashboard):is(.tank-status-low,.tank-status-medium,.tank-status-warning){--tank-status-accent:var(--warning-color);}:is(.water-container-dashboard,.water-single-container-dashboard).tank-status-good{--tank-status-accent:var(--info-color);}:is(.water-container-dashboard,.water-single-container-dashboard).tank-status-full{--tank-status-accent:var(--success-color);}.water-container-dashboard.tank-status-critical{border-top:4px solid var(--danger-color);}.water-container-dashboard.tank-status-low{border-top:4px solid var(--warning-color);}.water-container-dashboard.tank-status-medium{border-top:4px solid var(--warning-color);}.water-container-dashboard.tank-status-full{border-top:4px solid var(--success-color);}.water-container-dashboard.tank-status-warning{border-top:4px solid var(--warning-color);}.water-container-dashboard.tank-status-good{border-top:4px solid var(--info-color);}.water-dashboard-body{margin:0 !important;padding:0 !important;min-height:100vh;background:#f5f7fa;}.dashboard-header{background:white;padding:20px;box-shadow:0 2px 4px rgba(0,0,0,0.1);display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;}.dashboard-title{margin:0;color:#333;font-size:1.6rem;}.dashboard-actions{display:flex;align-items:center;gap:20px;}.btn-refresh{background:var(--primary-color);color:white;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:8px;transition:background 0.2s;}.btn-refresh:hover{background:#0056b3;}.btn-refresh.has-updates{background:linear-gradient(135deg,#fbbf24 0%,var(--warning-color) 100%);animation:pulse-update 1.5s ease-in-out infinite;box-shadow:0 0 15px rgba(251,108,0,0.45);}.btn-refresh.has-updates::after{content:" • Nouvelles données";font-size:0.85em;font-weight:500;}@keyframes pulse-update{0%,100%{transform:scale(1);box-shadow:0 0 10px rgba(251,108,0,0.35);}50%{transform:scale(1.02);box-shadow:0 0 20px rgba(251,108,0,0.55);}}.icon-refresh::before{content:"↻";font-size:1.2rem;}.last-update{color:#666;font-size:0.9rem;}.dashboard-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;padding:0 20px 20px;max-width:1400px;margin:0 auto;}.summary-card{background:white;padding:20px;border-radius:var(--card-radius);box-shadow:var(--card-shadow);text-align:center;}.summary-card h3{margin:0 0 10px 0;color:#666;font-size:0.9rem;font-weight:normal;text-transform:uppercase;letter-spacing:0.5px;}.summary-value{font-size:2rem;font-weight:700;color:var(--primary-color);}.alert-summary.has-alerts .summary-value{color:var(--danger-color);}.view-filters{background:white;padding:20px;margin:0 20px 20px;border-radius:var(--card-radius);box-shadow:var(--card-shadow);max-width:1400px;margin-left:auto;margin-right:auto;}.view-filters h3{margin:0 0 15px 0;color:#333;font-size:1.1rem;}.view-filters .form-item{display:inline-block;margin-right:20px;margin-bottom:10px;}.water-containers-grid{padding:0 20px;max-width:1440px;margin:0 auto;}.view-empty{text-align:center;padding:60px 20px;color:#666;}.view-empty p{font-size:1.2rem;margin-bottom:20px;}.dashboard-card.animated{animation:fadeInUp 0.6s ease-out;}@keyframes fadeInUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}.water-container-dashboard{position:relative;margin-bottom:20px;border-radius:var(--card-radius);overflow:hidden;}.water-container-dashboard::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;}.water-container-dashboard.tank-status-critical::before{background:var(--danger-color);}.water-container-dashboard.tank-status-low::before{background:var(--warning-color);}.water-container-dashboard.tank-status-medium::before{background:var(--warning-color);}.water-container-dashboard.tank-status-full::before{background:var(--success-color);}.water-container-dashboard.tank-status-warning::before{background:var(--warning-color);}.water-container-dashboard.tank-status-good::before{background:var(--info-color);}.pager{text-align:center;padding:20px;}.pager__items{display:inline-flex;gap:5px;list-style:none;padding:0;}.pager__item a,.pager__item.is-active{display:block;padding:8px 12px;background:white;border:1px solid #ddd;text-decoration:none;color:#333;border-radius:4px;}.pager__item.is-active{background:var(--primary-color);color:white;border-color:var(--primary-color);}.pager__item a:hover{background:#f5f5f5;}.overview-card{background:linear-gradient(145deg,#ffffff 0%,#f7faff 100%);border:1px solid #e8eef7;}.overview-card .overview-card-head{margin-bottom:8px;}.overview-card .overview-kicker{display:inline-block;font-size:0.72rem;text-transform:uppercase;letter-spacing:0.08em;font-weight:700;color:#5a6a85;background:#eef3fb;border-radius:999px;padding:4px 10px;margin-bottom:8px;}.overview-card :is(h2,h3){margin:0;}.overview-card .overview-stats{display:flex;flex-direction:column;gap:12px;margin-top:4px;}.overview-card .stat-item--status{border-left:0;border:1px solid #e6edf7;background:#ffffff;min-height:auto;padding:10px 14px;border-radius:12px;}.overview-card .stat-item--status .stat-label{margin-bottom:6px;}.overview-card .stat-item--status .stat-value.status-indicator{padding:6px 10px;margin:0 auto 4px auto;min-width:72px;font-size:0.82rem !important;}.overview-card .overview-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}.overview-card .overview-meta-item{background:#f8fbff;border:1px solid #e6edf7;border-radius:10px;padding:10px 12px;text-align:left;}.overview-card .overview-meta-item--density-status{border-left:0;border:1px solid #e6edf7;background:#ffffff;min-height:auto;padding:10px 14px;border-radius:12px;text-align:center;grid-column:1 / -1;}.overview-card .overview-meta-item--density-status .stat-label{margin-bottom:6px;}.overview-card .overview-meta-item--density-status .overview-meta-value{display:block;margin:0 auto 8px auto;}.overview-card .overview-meta-item--density-status .stat-value.status-indicator{margin:0 auto 4px auto;min-width:72px;font-size:0.82rem !important;}.stat-value.status-indicator.density-diesel-ok{background:#fff;color:#6faf4f;}.stat-value.status-indicator.density-suspicion{background:#fff;color:#fb6c00;}.stat-value.status-indicator.density-eau-significative{background:#fff;color:#ff0000;}.stat-value.status-indicator.density-eau-dominante{background:#5DADE2;color:white;}.stat-value.status-indicator.density-unknown{background:#6c757d;color:white;}.overview-card .overview-meta-label{display:block;font-size:0.74rem;color:#64748b;text-transform:uppercase;letter-spacing:0.06em;margin-bottom:4px;}.overview-card .overview-meta-value{font-size:1rem;color:#1f2937;font-weight:700;}.stat-item{text-align:center;padding:12px 16px;background:#f8f9fa;border-radius:8px;border-left:4px solid var(--primary-color);display:flex;flex-direction:column;min-height:60px;justify-content:center;box-sizing:border-box;}.stat-value{display:flex;font-size:1.1rem;font-weight:700;color:var(--primary-color);margin-bottom:5px;word-wrap:break-word;line-height:1.2;min-height:30px;align-items:center;justify-content:center;}.stat-value.status-indicator{font-size:0.9rem !important;font-weight:700 !important;padding:8px 12px;border-radius:25px;margin:0 auto 8px auto;display:inline-flex !important;align-items:center;justify-content:center;width:auto;max-width:100%;min-width:80px;white-space:nowrap;text-transform:uppercase;letter-spacing:0.5px;box-shadow:0 2px 4px rgba(0,0,0,0.1);transition:box-shadow 0.3s ease,transform 0.3s ease;animation:none !important;}.stat-value.status-indicator:hover{transform:translateY(-1px);box-shadow:0 4px 8px rgba(0,0,0,0.15);}.stat-value.status-indicator.critical{background:#fff;color:var(--danger-color);}.stat-value.status-indicator.low{background:#fff;color:#fb6c00;}.stat-value.status-indicator.medium{background:#fff;color:#fb6c00;}.stat-value.status-indicator.full{background:#fff;color:#346739;box-shadow:0 2px 4px rgba(52,103,57,0.3);}.stat-value.status-indicator.warning{background:#fff;color:#fb6c00;}.stat-value.status-indicator.good{background:#fff;color:#6faf4f;}.stat-label{font-size:0.8rem;color:#666;text-transform:uppercase;letter-spacing:0.5px;font-weight:600;margin-top:2px;}@keyframes pulse-danger{0%,100%{transform:scale(1);box-shadow:0 2px 4px rgba(255,0,0,0.3);}50%{transform:scale(1.05);box-shadow:0 4px 8px rgba(255,0,0,0.5);}}.overview-card .overview-stats .stat-item:nth-child(3){border-left-color:var(--success-color);background:linear-gradient(135deg,rgba(52,103,57,0.05),rgba(52,103,57,0.02));}.overview-card .overview-stats .stat-item:nth-child(1){border-left-color:var(--primary-color);}.overview-card .overview-stats .stat-item:nth-child(2){border-left-color:var(--info-color);}.status-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:20px;}.summary-item{text-align:center;padding:10px;border-radius:6px;border:2px solid transparent;}.summary-item.critical{background:rgba(223,83,83,0.1);border-color:var(--danger-color);}.summary-item.low{background:rgba(221,223,13,0.1);border-color:var(--warning-color);}.summary-item.medium{background:rgba(23,162,184,0.1);border-color:var(--info-color);}.summary-item.full{background:rgba(85,191,59,0.1);border-color:var(--success-color);}.summary-item.warning{background:rgba(221,223,13,0.1);border-color:var(--warning-color);}.summary-item.good{background:rgba(23,162,184,0.1);border-color:var(--info-color);}.summary-value{display:block;font-size:1.5rem;font-weight:700;margin-bottom:5px;}.summary-label{font-size:0.8rem;font-weight:500;text-transform:uppercase;}.volume-percentage{margin-top:35px;padding:8px;background:#f0f8ff;border-radius:4px;color:var(--primary-color);font-weight:600;text-align:center;}.status-chart-card .chart-container{height:250px;}.map-legend{display:flex;justify-content:space-around;margin-top:15px;padding:10px;background:#f8f9fa;border-radius:4px;}.legend-item{display:flex;align-items:center;gap:8px;}.legend-dot{width:12px;height:12px;border-radius:50%;border:2px solid white;box-shadow:0 1px 3px rgba(0,0,0,0.3);}.legend-item.critical .legend-dot{background-color:var(--danger-color);}.legend-item.low .legend-dot{background-color:var(--warning-color);}.legend-item.medium .legend-dot{background-color:var(--info-color);}.legend-item.full .legend-dot{background-color:var(--success-color);}.legend-label{font-size:0.85rem;color:#666;font-weight:500;}.containers-summary{margin:40px 20px 20px;max-width:1400px;margin-left:auto;margin-right:auto;}.containers-summary h2{color:#333;margin-bottom:20px;padding-bottom:10px;border-bottom:2px solid #eee;}.containers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;}.container-summary-card{background:white;border-radius:var(--card-radius);box-shadow:var(--card-shadow);overflow:hidden;transition:transform 0.2s;}.container-summary-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,0.15);}.container-summary-card.status-critical{border-top:4px solid var(--danger-color);}.container-summary-card.status-low{border-top:4px solid var(--warning-color);}.container-summary-card.status-medium{border-top:4px solid var(--warning-color);}.container-summary-card.status-full{border-top:4px solid var(--success-color);}.container-summary-card.status-warning{border-top:4px solid var(--warning-color);}.container-summary-card.status-good{border-top:4px solid var(--info-color);}.container-header{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;background:#f8f9fa;border-bottom:1px solid #eee;}.container-header h4{margin:0;color:#333;font-size:1.1rem;}.container-status{padding:4px 12px;border-radius:12px;font-size:0.8rem;font-weight:600;text-transform:uppercase;}.container-status.critical{background:#fff;color:var(--danger-color);}.container-status.low{background:#fff;color:var(--warning-color);}.container-status.medium{background:#fff;color:var(--warning-color);}.container-status.full{background:#fff;color:var(--success-color);}.container-status.warning{background:#fff;color:var(--warning-color);}.container-status.good{background:#fff;color:var(--info-color);}.container-details{padding:15px 20px;}.detail-item{display:flex;justify-content:space-between;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid #f0f0f0;}.detail-item:last-child{border-bottom:none;margin-bottom:0;}.detail-label{color:#666;font-weight:500;}.detail-value{color:#333;font-weight:600;}.container-popup h4{margin:0 0 10px 0;color:var(--primary-color);font-size:1.1rem;}.popup-content p{margin:5px 0;font-size:0.9rem;}.popup-content .status-critical{color:var(--danger-color);font-weight:600;}.popup-content .status-low{color:var(--warning-text-color);font-weight:600;}.popup-content .status-medium{color:var(--info-text-color);font-weight:600;}.popup-content .status-full{color:var(--success-color);font-weight:600;}.popup-content .status-warning{color:var(--warning-text-color);font-weight:600;}.popup-content .status-good{color:var(--info-text-color);font-weight:600;}@media (max-width:768px){.overview-stats{}.overview-card .overview-meta{grid-template-columns:1fr;}.status-summary{grid-template-columns:1fr !important;}.map-legend{flex-direction:column;gap:8px;}.containers-grid{grid-template-columns:1fr;}.container-header{flex-direction:column;gap:10px;text-align:center;}}.status-indicator{padding:4px 12px;border-radius:12px;font-size:0.8rem !important;font-weight:600;text-transform:uppercase;}.status-indicator.critical{background:#fff;color:var(--danger-color);}.status-indicator.low{background:#fff;color:#fb6c00;}.status-indicator.medium{background:#fff;color:#fb6c00;}.status-indicator.full{background:#fff;color:#346739;}.status-indicator.warning{background:#fff;color:#fb6c00;}.status-indicator.good{background:#fff;color:#6faf4f;}.fill-details{margin-top:15px;}.fill-percentage{font-size:1.5rem;font-weight:700;color:var(--primary-color);}.volume-evolution-card{grid-column:span 2;}.density-evolution-card{grid-column:span 2;}.density-current{text-align:center;margin-bottom:20px;padding:15px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:8px;}.density-value{display:block;font-size:3rem;font-weight:700;color:white;line-height:1;}.density-unit{display:block;margin-top:8px;font-size:1rem;color:rgba(255,255,255,0.9);font-weight:600;text-transform:uppercase;letter-spacing:1px;}.location-details{padding-top:15px;border-top:1px solid #eee;}.location-details p{margin:5px 0;color:#666;}.battery-level.critical{color:#ff0000;font-weight:700;animation:pulse 2s infinite;}.battery-level.medium{color:#ff0000;font-weight:700;}.battery-level.good{color:#346739;font-weight:600;}.battery-level.excellent{color:#346739;font-weight:700;}.battery-level.low{color:var(--danger-color);font-weight:700;animation:pulse 2s infinite;}.battery-level.normal{color:var(--success-color);font-weight:600;}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin-top:15px;}.stats-card .stat-item{padding:12px;background:#f8f9fa;border-radius:6px;border-left:3px solid var(--primary-color);}.stats-card .stat-value{font-size:1.3rem;margin-bottom:3px;}.stats-card .stat-label{font-size:0.8rem;}.water-single-container-dashboard{position:relative;}.water-single-container-dashboard .dashboard-grid{display:grid;grid-template-columns:1.4fr 1.3fr 1.3fr;grid-template-areas:"overview gauge volume"
    "fill-evolution fill-evolution volume-evolution"
    "location location location"
    "info stats stats";gap:20px;padding:20px;max-width:1400px;margin:0 auto;}.water-single-container-dashboard .overview-card{grid-area:overview;}.water-single-container-dashboard .fill-percentage-card{grid-area:gauge;}.water-single-container-dashboard .volume-card{grid-area:volume;}.water-single-container-dashboard .evolution-card{grid-area:fill-evolution;}.water-single-container-dashboard .density-evolution-card{grid-area:volume-evolution;}.water-single-container-dashboard .location-card{grid-area:location;}.water-single-container-dashboard .info-card{grid-area:info;}.water-single-container-dashboard .stats-card{grid-area:stats;}.water-single-container-dashboard::before{content:"";position:absolute;top:-20px;left:20px;right:20px;height:4px;border-radius:2px;}.water-single-container-dashboard.tank-status-critical::before{background:var(--danger-color);}.water-single-container-dashboard.tank-status-low::before{background:var(--warning-color);}.water-single-container-dashboard.tank-status-medium::before{background:var(--warning-color);}.water-single-container-dashboard.tank-status-full::before{background:var(--success-color);}.water-single-container-dashboard.tank-status-warning::before{background:var(--warning-color);}.water-single-container-dashboard.tank-status-good::before{background:var(--info-color);}@media (max-width:768px){.water-single-container-dashboard .dashboard-grid{grid-template-columns:1fr;grid-template-areas:"overview"
      "gauge"
      "volume"
      "fill-evolution"
      "volume-evolution"
      "location"
      "info"
      "stats";}.stats-grid{grid-template-columns:1fr;}.density-evolution-card{grid-column:span 1;}.water-single-container-dashboard::before{left:15px;right:15px;}}@media (max-width:1024px) and (min-width:769px){.water-single-container-dashboard .dashboard-grid{grid-template-columns:1fr 1fr;grid-template-areas:"overview overview"
      "gauge volume"
      "fill-evolution fill-evolution"
      "volume-evolution volume-evolution"
      "location location"
      "info info"
      "stats stats";}}.trend-up{color:var(--success-color);}.trend-down{color:var(--danger-color);}.trend-stable{color:var(--info-text-color);}.alert-blink{animation:blink 1s infinite;}@keyframes blink{0%,50%{opacity:1;}51%,100%{opacity:0.5;}}.stats-card .stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin-bottom:20px;}.stats-card .stat-item{padding:15px;background:#f8f9fa;border-radius:8px;border-left:4px solid var(--primary-color);transition:box-shadow 0.3s ease,transform 0.3s ease;}.stats-card .stat-item:hover{transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,0.1);}.stat-item.consumption{border-left-color:var(--info-color);}.stat-item.prediction{border-left-color:var(--warning-color);}.stat-item.efficiency{border-left-color:var(--success-color);}.stat-item.alerts{border-left-color:var(--danger-color);}.stat-item.stability,.stat-item.uptime,.stat-item.data-quality,.stat-item.alerts{background:#f5f5f5;border-left-color:#9e9e9e;}.stat-item.high-alerts{background:rgba(255,0,0,0.15);border-left-color:var(--danger-color);animation:pulse-red 2s infinite;}.stat-item.some-alerts{background:rgba(255,193,7,0.1);border-left-color:var(--warning-color);}@keyframes pulse-red{0%,100%{background:rgba(255,0,0,0.15);}50%{background:rgba(255,0,0,0.25);}}.stats-details{border-top:1px solid #eee;padding-top:15px;}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #f0f0f0;}.detail-row:last-child{border-bottom:none;}.detail-label{color:#666;font-size:0.9rem;font-weight:500;}.detail-value{color:#333;font-weight:600;font-size:0.9rem;}.detail-value[id="daily-variation"]{padding:2px 8px;border-radius:12px;font-size:0.8rem;}.variation-positive{background:rgba(52,103,57,0.1);color:var(--success-color);}.variation-negative{background:rgba(255,0,0,0.1);color:var(--danger-color);}.variation-stable{background:rgba(23,162,184,0.1);color:var(--info-text-color);}@media (max-width:480px){.stats-card .stats-grid{grid-template-columns:1fr;}.detail-row{flex-direction:column;gap:5px;text-align:center;}}.battery-excellent{color:var(--success-color);font-weight:700;}.battery-good{color:var(--info-text-color);font-weight:600;}.battery-medium,.battery-low{color:var(--warning-text-color);font-weight:700;}.battery-critical{color:var(--danger-color);font-weight:700;animation:pulse 2s infinite;}.stats-details .detail-value.status-indicator{padding:4px 12px;border-radius:15px;font-size:0.8rem;font-weight:600;text-transform:uppercase;letter-spacing:0.3px;display:inline-block !important;width:auto !important;max-width:fit-content !important;min-width:auto !important;white-space:nowrap;line-height:1.4;vertical-align:middle;text-align:center !important;flex-grow:0 !important;flex-shrink:0 !important;margin-left:auto;}.stats-details .detail-value.status-indicator.critical{background:rgba(255,0,0,0.15);color:var(--danger-color);border:1px solid rgba(255,0,0,0.3);}.stats-details .detail-value.status-indicator.low{background:#fff;color:#fb6c00;border:1px solid rgba(255,193,7,0.3);}.stats-details .detail-value.status-indicator.medium{background:#fff;color:#fb6c00;border:1px solid rgba(23,162,184,0.3);}.stats-details .detail-value.status-indicator.full{background:#fff;color:#346739;border:1px solid rgba(52,103,57,0.3);}.stats-details .detail-value.status-indicator.warning{background:#fff;color:#fb6c00;border:1px solid rgba(251,108,0,0.3);}.stats-details .detail-value.status-indicator.good{background:#fff;color:#6faf4f;border:1px solid rgba(52,103,57,0.3);}.stats-details .detail-row{padding:12px 0;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;align-items:center;min-height:40px;gap:15px;}.stats-details .detail-row:hover{background:rgba(0,115,230,0.02);border-radius:4px;margin:0 -8px;padding:12px 8px;}.stats-details .detail-row:last-child{border-bottom:none;}.stats-details .detail-label{color:#666;font-size:0.9rem;font-weight:500;flex-shrink:0;flex-grow:0;width:auto;margin-right:0;}.stats-details .detail-value{color:#333;font-weight:600;font-size:0.9rem;text-align:right;flex-grow:0;flex-shrink:0;width:auto;min-width:0;margin-left:auto;}.stats-details .detail-value:not(.status-indicator){display:inline !important;padding:0 !important;border-radius:0 !important;background:transparent !important;border:none !important;text-transform:none !important;letter-spacing:normal !important;white-space:normal !important;min-width:auto !important;line-height:inherit !important;width:auto !important;max-width:none !important;flex-grow:0 !important;flex-shrink:0 !important;}.stats-details .detail-value#battery-status.battery-critical{color:var(--danger-color);font-weight:700;animation:pulse 2s infinite;}.stats-details .detail-value#battery-status.battery-low{color:var(--warning-text-color);font-weight:700;}.stats-details .detail-value#battery-status.battery-good{color:var(--info-text-color);font-weight:600;}.stats-details .detail-value#battery-status.battery-excellent{color:var(--success-color);font-weight:700;}.stat-item.stability .stat-value,.stat-item.uptime .stat-value,.stat-item.data-quality .stat-value,.stat-item.alerts .stat-value{color:#333;}.dashboard-header-modern{background:linear-gradient(135deg,#044f99 0%,#478cdd 50%,#0b6bbf 100%);box-shadow:0 4px 20px rgba(0,115,230,0.3);position:sticky;top:var(--drupal-displace-offset-top,0px);z-index:1000;}.header-container{display:flex;align-items:center;justify-content:space-between;padding:15px 30px;max-width:1400px;margin:0 auto;gap:20px;}.header-brand{display:flex;align-items:center;gap:15px;flex-shrink:0;}.brand-icon{width:50px;height:50px;display:flex;align-items:center;justify-content:center;}.brand-icon img,.brand-icon svg{width:50px;height:50px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,0.2));transition:transform 0.3s ease;}.brand-icon:hover img,.brand-icon:hover svg{transform:scale(1.05);}.brand-text{display:flex;flex-direction:column;color:white;}.brand-subtitle{font-size:0.85rem;opacity:0.9;font-weight:400;text-transform:uppercase;letter-spacing:0.5px;}.header-navigation{flex:1;max-width:600px;}.nav-menu{display:flex;list-style:none;margin:0;padding:0;gap:5px;}.nav-item{position:relative;}.nav-link{display:flex;align-items:center;gap:8px;padding:12px 20px;color:rgba(255,255,255,0.9);text-decoration:none;border-radius:8px;font-weight:500;transition:background-color 0.3s ease,color 0.3s ease,transform 0.3s ease,box-shadow 0.3s ease;background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.1);}.nav-link:hover{background:rgba(255,255,255,0.2);color:white;transform:translateY(-2px);box-shadow:0 4px 15px rgba(0,0,0,0.2);}.nav-item.active .nav-link{background:rgba(255,255,255,0.25);color:white;box-shadow:0 2px 10px rgba(0,0,0,0.3);}.nav-icon{font-size:1.1rem;}.nav-text{font-size:0.9rem;white-space:nowrap;}.header-status{display:flex;align-items:center;gap:20px;flex-shrink:0;}.status-item{display:flex;align-items:center;gap:8px;color:white;font-size:0.85rem;background:rgba(255,255,255,0.1);padding:8px 12px;border-radius:20px;}.header-status .status-indicator-dot{width:8px;height:8px;border-radius:50%;background:var(--success-color);animation:pulse-green 2s infinite;}@keyframes pulse-green{0%,100%{opacity:1;}50%{opacity:0.6;}}.status-icon{font-size:1rem;}.status-text{font-weight:500;white-space:nowrap;}.header-actions{display:flex;align-items:center;gap:15px;flex-shrink:0;}.user-menu{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,0.1);padding:8px 15px;border-radius:25px;}.user-name{color:white;font-weight:500;font-size:0.9rem;}.logout-btn,.login-btn{color:white;text-decoration:none;background:rgba(255,255,255,0.2);padding:8px 16px;border-radius:20px;font-size:0.85rem;font-weight:500;transition:background-color 0.3s ease,box-shadow 0.3s ease,transform 0.3s ease;border:1px solid rgba(255,255,255,0.3);}.logout-btn:hover,.login-btn:hover{background:rgba(255,255,255,0.3);transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,0.2);}.dashboard-main{min-height:calc(100vh - 80px);background:#f5f7fa;}@media (max-width:1200px){.header-container{padding:12px 20px;gap:15px;}.nav-text{display:none;}.nav-link{padding:10px 15px;}.brand-title{font-size:1.3rem;}}@media (max-width:768px){.header-container{flex-wrap:wrap;padding:10px 15px;}.header-brand{gap:10px;}.brand-title{font-size:1.2rem;}.brand-subtitle{font-size:0.75rem;}.nav-menu{gap:2px;}.nav-link{padding:8px 12px;}.header-status{gap:10px;}.status-item{padding:6px 10px;font-size:0.8rem;}.user-menu{padding:6px 12px;}}@media (max-width:480px){.header-container{flex-direction:column;gap:10px;text-align:center;}.header-navigation{order:3;}.header-status{order:2;justify-content:center;}.header-actions{order:4;}.nav-menu{justify-content:center;flex-wrap:wrap;}.dashboard-header{flex-direction:column;align-items:center;padding:15px 10px;gap:10px;}.dashboard-title{display:block;font-size:0.8rem;line-height:1.4;text-align:center;padding:5px 10px;word-wrap:break-word;order:1;}.dashboard-subtitle,#current-sensor-name{display:block;font-size:0.75rem;margin-top:5px;color:var(--primary-color);font-weight:600;}.dashboard-actions{flex-direction:column;gap:8px;order:2;width:100%;}.dashboard-actions .last-update{font-size:0.75rem;text-align:center;}}@keyframes slideInDown{from{opacity:0;transform:translateY(-20px);}to{opacity:1;transform:translateY(0);}}.dashboard-header-modern{animation:slideInDown 0.6s ease-out;}.nav-item::after{content:'';position:absolute;bottom:-2px;left:50%;width:0;height:2px;background:white;transition:width 0.3s ease;transform:translateX(-50%);}.nav-item.active::after,.nav-item:hover::after{width:80%;}.water-dashboard-body .region-primary-menu,.water-dashboard-body .block-system-branding-block{display:none !important;}.water-dashboard-body .breadcrumb{display:none;}.water-dashboard-body .page-title{display:none;}.dashboard-main .view-water-dashboard{padding:0;margin:0;}.water-dashboard-body .layout-content{padding:0;margin:0;}.water-dashboard-body{margin:0 !important;padding:0 !important;min-height:100vh;background:#f5f7fa;}.water-dashboard-body .messages{margin:20px;border-radius:8px;}.header-brand .brand-icon img,.header-brand .brand-icon svg{animation:float 3s ease-in-out infinite;}@keyframes float{0%,100%{transform:translateY(0px);}50%{transform:translateY(-3px);}}.brand-title{color:white !important;font-size:1.2rem;font-weight:700;margin:0;line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,0.2);}.status-indicator.online{box-shadow:0 0 10px rgba(52,103,57,0.5);}
.dashboard-main-content.is-navigating{opacity:0.55;pointer-events:none;transition:opacity 120ms ease-out;}:root{--dashboard-site-header-height:80px;--dashboard-header-offset:calc(var(--dashboard-site-header-height) + var(--drupal-displace-offset-top,0px));}.mobile-menu-toggle{display:none;position:fixed;top:calc(var(--dashboard-header-offset) + 10px);left:15px;z-index:9999;background:#495057;color:white;border:none;padding:10px;border-radius:8px;box-shadow:0 4px 15px rgba(73,80,87,0.3);cursor:pointer;transition:background-color 0.3s ease,box-shadow 0.3s ease,transform 0.3s ease;width:48px;height:48px;align-items:center;justify-content:center;}.mobile-menu-toggle:hover{background:#343a40;box-shadow:0 6px 20px rgba(73,80,87,0.4);transform:translateY(-1px);}.water-dashboard-multi-sensors{display:grid;grid-template-columns:280px minmax(0,1fr);align-items:start;min-height:calc(100dvh - var(--dashboard-header-offset));background:#f5f7fa;}.sensors-sidebar{width:100%;background:white;box-shadow:2px 0 10px rgba(0,0,0,0.05);position:sticky;top:var(--dashboard-header-offset);height:calc(100dvh - var(--dashboard-header-offset));overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;z-index:100;display:flex;flex-direction:column;}.sidebar-header{padding:25px 20px;color:#2c3e50;text-align:center;border-bottom:1px solid #e9ecef;}.sidebar-title{font-size:1.3rem;font-weight:700;margin:0 0 5px 0;letter-spacing:0.5px;}.sidebar-subtitle{font-size:0.9rem;opacity:0.9;margin:0;text-transform:uppercase;letter-spacing:1px;}.station-collapse-actions{margin-top:14px;display:flex;gap:6px;justify-content:center;}.station-collapse-btn{appearance:none;display:inline-flex;align-items:center;gap:5px;border:2px solid var(--primary-color,#0073e6);background:var(--primary-color,#0073e6);color:#ffffff;border-radius:8px;padding:7px 14px;font-size:0.78rem;font-weight:700;letter-spacing:0.3px;text-transform:uppercase;cursor:pointer;line-height:1.2;transition:background-color 0.2s ease,color 0.2s ease,box-shadow 0.2s ease,transform 0.2s ease;}.station-collapse-btn[data-action="collapse-all"]{background:transparent;color:var(--primary-color,#0073e6);}.station-collapse-btn:hover{transform:translateY(-1px);box-shadow:0 3px 8px rgba(0,115,230,0.3);}.station-collapse-btn[data-action="collapse-all"]:hover{background:var(--primary-color,#0073e6);color:#ffffff;}.station-collapse-summary{margin:8px 0 0 0;font-size:0.72rem;font-weight:600;letter-spacing:0.3px;text-transform:uppercase;color:#6c757d;}.sensors-nav{flex:1;padding:20px 15px;}.sensors-list{list-style:none;padding:0;margin:0;}.station-group{list-style:none;margin-bottom:16px;}.station-group-title{font-size:0.78rem;letter-spacing:0.8px;text-transform:uppercase;color:#6c757d;margin:0 0 10px 4px;font-weight:700;}.station-group-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;border:0;background:transparent;padding:4px 0;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;font-weight:inherit;cursor:pointer;text-align:left;}.station-group-toggle:hover{color:#495057;}.station-group-toggle-icon{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:7px solid #adb5bd;transform:rotate(0deg);transform-origin:center;transition:transform 0.25s ease;}.station-group.is-collapsed .station-group-toggle-icon{transform:rotate(-90deg);}.station-sensors-list{list-style:none;padding:0;margin:0;overflow:visible;max-height:none;opacity:1;}.station-group.is-collapsed .station-sensors-list{max-height:0;opacity:0;}.sensor-item{margin-bottom:12px;cursor:pointer;transition:opacity 0.3s ease;}.sensor-card-link{text-decoration:none;color:inherit;display:block;}.sensor-card{display:flex;align-items:center;padding:15px;background:#f8f9fa;border-radius:12px;border:2px solid transparent;position:relative;transition:background-color 0.3s ease,border-color 0.3s ease,box-shadow 0.3s ease,transform 0.3s ease;cursor:pointer;}.sensor-item:hover .sensor-card{background:#e9ecef;transform:translateX(5px);}.sensor-item.active .sensor-card{background:linear-gradient(135deg,rgba(0,115,230,0.1) 0%,rgba(0,86,179,0.05) 100%);border-color:var(--primary-color);box-shadow:0 4px 15px rgba(0,115,230,0.15);}.sensor-icon{width:40px;height:40px;background:white;border-radius:10px;display:flex;align-items:center;justify-content:center;margin-right:15px;box-shadow:0 2px 8px rgba(0,0,0,0.08);}.sensor-icon--diesel{color:#d97706;}.sensor-icon--gasoline{color:#059669;}.sensor-icon--gas{color:#dc5b26;}.sensor-icon--kerosene{color:#7c3aed;}.sensor-icon--oil{color:#64748b;}.sensor-item.active .sensor-icon{background:var(--primary-color);color:white;}.sensor-icon svg{width:20px;height:20px;fill:currentColor;}.sensor-info{flex:1;}.sensor-name{font-size:0.85rem;font-weight:600;color:#2c3e50;margin:0 0 4px 0;}.sensor-status{font-size:0.8rem;color:#475467;margin:0;}.sensor-item.active .sensor-name{color:var(--primary-color);}.sensor-indicator{width:8px;height:8px;border-radius:50%;background:#6c757d;position:absolute;right:15px;top:50%;transform:translateY(-50%);}.sensor-indicator.active{background:var(--success-color);box-shadow:0 0 10px rgba(52,103,57,0.5);animation:pulse-green 2s infinite;}.sensor-item.no-sensors .sensor-card{padding:25px 15px;background:#fff;border:2px dashed #dee2e6;text-align:center;cursor:default;}.sensor-item.no-sensors:hover .sensor-card{transform:none;background:#fff;}.no-sensors-message{color:#6c757d;font-size:0.9rem;line-height:1.6;margin:0;}.no-sensors-message a{color:var(--primary-color);text-decoration:none;font-weight:500;}.no-sensors-message a:hover{text-decoration:underline;}.sidebar-footer{padding:20px 15px;border-top:1px solid #e9ecef;}.btn-add-sensor{width:100%;padding:12px;background:#f8f9fa;border:2px dashed #dee2e6;border-radius:8px;color:#6c757d;font-weight:500;font-size:0.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:background-color 0.3s ease,border-color 0.3s ease,color 0.3s ease;text-decoration:none;}.btn-add-sensor:hover{background:white;border-color:var(--primary-color);color:var(--primary-color);}.dashboard-main-content{min-width:0;min-height:calc(100dvh - var(--dashboard-header-offset));margin-left:0;background:#f5f7fa;}.sensor-dashboard-content{display:none;}.sensor-dashboard-content.active{display:block;animation:fadeIn 0.5s ease;}@keyframes fadeIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}.water-dashboard-multi-sensors .dashboard-stale-notice{display:flex;align-items:flex-start;gap:12px;background:#fff8e1;border-left:4px solid #fb6c00;color:#78350f;padding:12px 18px;margin:0 0 14px 0;border-radius:6px;font-size:0.9rem;box-shadow:0 1px 4px rgba(0,0,0,0.04);}.water-dashboard-multi-sensors .dashboard-stale-notice-icon{font-size:1.2rem;flex-shrink:0;}.water-dashboard-multi-sensors .dashboard-stale-notice-body strong{display:block;color:#fb6c00;font-weight:700;margin-bottom:2px;}.water-dashboard-multi-sensors .dashboard-stale-notice-body em{font-style:normal;font-weight:600;color:#fb6c00;}.water-dashboard-multi-sensors .dashboard-header{background:white;padding:20px 30px;box-shadow:0 2px 10px rgba(0,0,0,0.05);margin-bottom:20px;position:sticky;top:var(--dashboard-header-offset);z-index:50;}.water-dashboard-multi-sensors .dashboard-title{font-size:1.1rem;color:#2c3e50;margin:0;}.dashboard-subtitle{font-size:0.85rem;color:var(--primary-color);font-weight:600;display:block;margin-top:4px;}#current-sensor-name{color:var(--primary-color);font-weight:600;}@media (max-width:1024px){.water-dashboard-multi-sensors{grid-template-columns:240px minmax(0,1fr);}}@media (max-width:900px){.water-dashboard-multi-sensors{display:block;}.water-dashboard-multi-sensors .dashboard-stale-notice{min-height:64px;padding-left:72px;}.water-dashboard-multi-sensors .dashboard-stale-notice-icon{display:none;}.sensors-sidebar{position:fixed;left:0;top:var(--dashboard-header-offset);width:min(86vw,320px);height:calc(100dvh - var(--dashboard-header-offset));overflow-y:auto;transform:translateX(-100%);transition:transform 0.3s ease;z-index:1000;box-shadow:2px 0 10px rgba(0,0,0,0.1);}.sensors-sidebar.mobile-open{transform:translateX(0);}.dashboard-main-content{margin-left:0;padding-bottom:84px;}.dashboard-actions .btn-refresh{display:inline-flex;position:fixed;right:14px;bottom:calc(16px + env(safe-area-inset-bottom,0px));width:52px;height:52px;border-radius:999px;padding:0;margin:0;align-items:center;justify-content:center;gap:0;z-index:1003;box-shadow:0 6px 18px rgba(0,65,196,0.35);}.dashboard-actions .btn-refresh .btn-text{display:none;}.dashboard-actions .btn-refresh .icon-refresh::before{font-size:1.5rem;line-height:1;}.dashboard-actions .btn-refresh.has-updates::after{content:"";position:absolute;top:7px;right:8px;width:9px;height:9px;border-radius:50%;background:#ffcc00;box-shadow:0 0 0 2px rgba(255,255,255,0.85);}.water-dashboard-multi-sensors .dashboard-header{padding:15px 15px 15px 72px;}.dashboard-title{font-size:1.1rem;}}@media screen and (max-width:900px){.mobile-menu-toggle{display:block !important;position:fixed;top:calc(var(--dashboard-header-offset) + 10px);left:10px;z-index:1001;background:var(--primary-color);color:white;border:none;border-radius:50%;width:50px;height:50px;box-shadow:0 4px 12px rgba(0,115,230,0.4);cursor:pointer;transition:background-color 0.3s ease,box-shadow 0.3s ease,transform 0.3s ease;}.mobile-menu-toggle:hover{background:#0056b3;transform:scale(1.05);}.mobile-menu-toggle svg{width:24px;height:24px;}}.water-dashboard-multi-sensors .dashboard-card{background:white;border-radius:16px;box-shadow:0 4px 20px rgba(0,0,0,0.05);border:1px solid rgba(0,0,0,0.05);transition:box-shadow 0.3s ease,transform 0.3s ease;}.water-dashboard-multi-sensors .volume-card{border:2px solid var(--tank-status-accent,var(--primary-color));}.water-dashboard-multi-sensors .dashboard-card:hover{transform:translateY(-4px);box-shadow:0 8px 30px rgba(0,0,0,0.08);}.chart-container.loading{position:relative;min-height:300px;}.chart-container.loading::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;}@keyframes spin{0%{transform:translate(-50%,-50%) rotate(0deg);}100%{transform:translate(-50%,-50%) rotate(360deg);}}.sidebar-overlay{display:none;position:fixed;top:var(--dashboard-header-offset);left:0;right:0;bottom:0;background:rgba(0,0,0,0.5);z-index:999;transition:opacity 0.3s ease;opacity:0;pointer-events:none;}.sidebar-overlay.active{opacity:1;}@media (max-width:900px){body.sidebar-is-open{overflow:hidden;}.sidebar-overlay.active{display:block;pointer-events:auto;}}.weather-station-dashboard{background-color:#f8f9fa;min-height:100vh;}.weather-station-dashboard .dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;padding:20px;max-width:1600px;margin:0 auto;}.weather-card{background:linear-gradient(135deg,#ffffff 0%,#f8f9fa 100%);border-radius:12px;box-shadow:0 4px 6px rgba(0,0,0,0.1);padding:20px;transition:transform 0.3s ease,box-shadow 0.3s ease;}.weather-card:hover{transform:translateY(-4px);box-shadow:0 8px 20px rgba(0,0,0,0.15);}.weather-card h3{margin:0 0 15px 0;font-size:1rem;font-weight:600;color:#333;display:flex;align-items:center;gap:8px;}.weather-display{display:flex;align-items:baseline;justify-content:center;margin:15px 0;}.weather-value{font-size:2.5rem;font-weight:700;color:#2c3e50;line-height:1;}.weather-unit{font-size:1.2rem;font-weight:400;color:#7f8c8d;margin-left:5px;}.weather-label{font-size:0.9rem;color:#7f8c8d;font-weight:500;}.temperature-card .weather-value{color:var(--danger-color);}.humidity-card .weather-value{color:#3498db;}.pressure-card .weather-value{color:#9b59b6;}.wind-card{min-height:200px;}.wind-info{display:flex;justify-content:space-around;align-items:center;margin:15px 0;}.wind-speed{text-align:center;}.wind-speed .weather-value{color:#1abc9c;font-size:2rem;}.wind-direction{display:flex;flex-direction:column;align-items:center;}.direction-arrow{font-size:2.5rem;color:#34495e;transition:transform 0.3s ease;}.direction-value{font-size:0.9rem;color:#7f8c8d;margin-top:5px;}.rainfall-card .weather-value{color:#2980b9;}.uv-card{min-height:180px;}.uv-light-info{display:flex;flex-direction:column;gap:15px;margin:15px 0;}.uv-index,.light-intensity{display:flex;justify-content:space-between;align-items:center;padding:10px 15px;background:#f8f9fa;border-radius:8px;}.uv-index .weather-value{font-size:1.5rem;font-weight:700;}.uv-level-0,.uv-level-1,.uv-level-2{color:var(--success-color);}.uv-level-3,.uv-level-4,.uv-level-5{color:var(--uv-moderate-color);}.uv-level-6,.uv-level-7{color:var(--warning-text-color);}.uv-level-8,.uv-level-9,.uv-level-10{color:var(--danger-color);}.uv-level-11{color:var(--uv-extreme-color);}.weather-card .chart-container{height:120px;margin-top:10px;}.weather-status-good .status-indicator,.status-indicator.good{color:#6faf4f;background:#fff;}.weather-status-medium .status-indicator,.status-indicator.medium{color:#fb6c00;background:#fff;}.weather-status-critical .status-indicator,.status-indicator.critical{color:var(--danger-color);background-color:rgba(255,0,0,0.1);}@media (max-width:768px){.weather-station-dashboard .dashboard-grid{grid-template-columns:1fr;padding:10px;}.weather-value{font-size:2rem;}.wind-info{flex-direction:column;gap:15px;}.uv-light-info{gap:10px;}}@media (min-width:992px){.weather-station-dashboard .dashboard-grid{grid-template-columns:repeat(3,1fr);}.weather-station-dashboard .location-card{grid-column:span 2;}.weather-station-dashboard .stats-card{grid-column:span 2;}}@media (min-width:1200px){.weather-station-dashboard .dashboard-grid{grid-template-columns:repeat(4,1fr);}}.alarm-indicator{margin-left:10px;color:#ff0000;font-size:0.9rem;}.alarm-active{color:#ff0000;font-weight:bold;}.stats-link-container{text-align:center;padding:30px 20px;margin-top:40px;border-top:2px solid #e8ecf1;}.btn-view-stats{display:inline-flex;align-items:center;gap:10px;padding:15px 30px;background:linear-gradient(135deg,var(--primary-color) 0%,#005bb5 100%);color:white;text-decoration:none;border-radius:8px;font-size:1rem;font-weight:600;box-shadow:0 4px 12px rgba(0,115,230,0.3);transition:box-shadow 0.3s ease,transform 0.3s ease;}.btn-view-stats:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,115,230,0.4);text-decoration:none;color:white;}.btn-view-stats .stats-icon{font-size:1.2rem;}.btn-view-stats .stats-period{font-size:0.85rem;font-weight:400;opacity:0.9;}@media (max-width:768px){.stats-link-container{padding:20px 15px;margin-top:30px;}.btn-view-stats{padding:12px 20px;font-size:0.9rem;flex-direction:column;gap:5px;}.btn-view-stats .stats-period{font-size:0.75rem;}}@media (max-width:768px){.dashboard-main-content{padding-bottom:84px;}.dashboard-header{gap:8px;}.water-dashboard-multi-sensors .dashboard-title{font-size:0.95rem;line-height:1.35;padding:4px 8px;}.dashboard-actions .last-update{background:rgba(255,255,255,0.75);border-radius:8px;padding:4px 8px;}.water-dashboard-multi-sensors .dashboard-card{border-radius:14px;padding:16px;}.water-dashboard-multi-sensors .dashboard-card :is(h2,h3){margin-bottom:12px;font-size:0.9rem;}.chart-container{height:260px;}.map-container{height:280px;}}@media (max-width:480px){.water-dashboard-multi-sensors .dashboard-title{font-size:0.86rem;}.water-dashboard-multi-sensors .dashboard-card{padding:14px;}.chart-container{height:230px;}.map-container{height:240px;}.dashboard-actions .btn-refresh{width:50px;height:50px;right:12px;}}.chart-loading,.chart-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;padding:16px;color:#6c757d;font-size:14px;text-align:center;background:#f8f9fa;border:1px dashed #dee2e6;border-radius:6px;}.chart-error p{margin:0 0 12px;color:#ff0000;}.chart-retry-btn{padding:8px 18px;background:#0073e6;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;}.chart-retry-btn:hover{background:#005bb5;}
