/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */
:root{--primary-color:#0073e6;--success-color:#004700;--warning-color:#f59e0b;--danger-color:#dc2626;--info-color:#00D100;--uv-moderate-color:#f1c40f;--uv-extreme-color:#8e44ad;--card-shadow:0 2px 4px rgba(0,0,0,0.1);--card-radius:8px;}.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 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 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:var(--success-color);color:white;}.status-label.medium{background-color:var(--warning-color);color:white;}.status-label.low{background-color:var(--warning-color);color:#333;}.status-label.critical{background-color:var(--danger-color);color:white;}.status-label.warning{background-color:var(--warning-color);color:#333;}.status-label.good{background-color:var(--info-color);color:white;}.volume-card{text-align:center;}.volume-card 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{color:var(--warning-color);}.tank-status-good .volume-value{color:var(--info-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{color:var(--warning-color);background:#fffbeb;}.tank-status-good .volume-percentage{color:var(--info-color);background:#eafce9;}.tank-status-full .volume-percentage{color:var(--success-color);background:#e0f0e0;}.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(245,158,11,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(245,158,11,0.35);}50%{transform:scale(1.02);box-shadow:0 0 20px rgba(245,158,11,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 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:#10b981;color:white;}.stat-value.status-indicator.density-suspicion{background:#f59e0b;color:white;}.stat-value.status-indicator.density-eau-significative{background:#dc2626;color:white;}.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:all 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:var(--danger-color);color:white;}.stat-value.status-indicator.low{background:var(--warning-color);color:#333;}.stat-value.status-indicator.medium{background:var(--warning-color);color:#fff;}.stat-value.status-indicator.full{background:var(--success-color);color:white;box-shadow:0 2px 4px rgba(0,71,0,0.3);}.stat-value.status-indicator.warning{background:var(--warning-color);color:#333;}.stat-value.status-indicator.good{background:var(--info-color);color:white;}.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(220,53,69,0.3);}50%{transform:scale(1.05);box-shadow:0 4px 8px rgba(220,53,69,0.5);}}.overview-card .overview-stats .stat-item:nth-child(3){border-left-color:var(--success-color);background:linear-gradient(135deg,rgba(0,71,0,0.05),rgba(0,71,0,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(--info-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:var(--danger-color);color:white;}.container-status.low{background:var(--warning-color);color:#333;}.container-status.medium{background:var(--info-color);color:white;}.container-status.full{background:var(--success-color);color:white;}.container-status.warning{background:var(--warning-color);color:#333;}.container-status.good{background:var(--info-color);color:white;}.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-color);font-weight:600;}.popup-content .status-medium{color:var(--info-color);font-weight:600;}.popup-content .status-full{color:var(--success-color);font-weight:600;}.popup-content .status-warning{color:var(--warning-color);font-weight:600;}.popup-content .status-good{color:var(--info-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:var(--danger-color);color:white;}.status-indicator.low{background:var(--warning-color);color:#333;}.status-indicator.medium{background:var(--warning-color);color:white;}.status-indicator.full{background:var(--success-color);color:white;}.status-indicator.warning{background:var(--warning-color);color:#333;}.status-indicator.good{background:var(--info-color);color:white;}.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:#dc2626;font-weight:700;animation:pulse 2s infinite;}.battery-level.medium{color:#dc2626;font-weight:700;}.battery-level.good{color:#004700;font-weight:600;}.battery-level.excellent{color:#004700;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-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:all 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(220,53,69,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(220,53,69,0.15);}50%{background:rgba(220,53,69,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(0,71,0,0.1);color:var(--success-color);}.variation-negative{background:rgba(220,53,69,0.1);color:var(--danger-color);}.variation-stable{background:rgba(23,162,184,0.1);color:var(--info-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-color);font-weight:600;}.battery-medium,.battery-low{color:var(--warning-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(220,53,69,0.15);color:var(--danger-color);border:1px solid rgba(220,53,69,0.3);}.stats-details .detail-value.status-indicator.low{background:rgba(255,193,7,0.15);color:var(--warning-color);border:1px solid rgba(255,193,7,0.3);}.stats-details .detail-value.status-indicator.medium{background:rgba(23,162,184,0.15);color:var(--info-color);border:1px solid rgba(23,162,184,0.3);}.stats-details .detail-value.status-indicator.full{background:rgba(0,71,0,0.15);color:var(--success-color);border:1px solid rgba(0,71,0,0.3);}.stats-details .detail-value.status-indicator.warning{background:rgba(245,158,11,0.15);color:var(--warning-color);border:1px solid rgba(245,158,11,0.3);}.stats-details .detail-value.status-indicator.good{background:rgba(0,71,0,0.15);color:var(--success-color);border:1px solid rgba(0,71,0,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-color);font-weight:700;}.stats-details .detail-value#battery-status.battery-good{color:var(--info-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:0;z-index:1000;backdrop-filter:blur(2px);}.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:all 0.3s ease;background:rgba(255,255,255,0.1);backdrop-filter:blur(2px);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;backdrop-filter:blur(2px);}.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;backdrop-filter:blur(2px);}.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:all 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:all 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,.water-dashboard-body .toolbar,.water-dashboard-body #toolbar-administration{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;}.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;}.skip-link:focus{position:static;width:auto;height:auto;background:var(--primary-color);color:white;padding:10px;text-decoration:none;z-index:9999;}.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.5rem;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(0,71,0,0.5);}*{transition:all 0.3s ease;}.mobile-menu-toggle{display:none;position:fixed;top:80px;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:all 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:flex;min-height:100vh;background:#f5f7fa;}.sensors-sidebar{width:280px;background:white;box-shadow:2px 0 10px rgba(0,0,0,0.05);position:fixed;top:0;left:0;height:100vh;overflow-y:auto;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:all 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:hidden;max-height:500px;opacity:1;transition:max-height 0.3s ease-out,opacity 0.2s ease-out;}.station-group.is-collapsed .station-sensors-list{max-height:0;opacity:0;}.sensor-item{margin-bottom:12px;cursor:pointer;transition:all 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:all 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:#6c757d;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(0,71,0,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:all 0.3s ease;text-decoration:none;}.btn-add-sensor:hover{background:white;border-color:var(--primary-color);color:var(--primary-color);}.dashboard-main-content{flex:1;margin-left:280px;min-height:100vh;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-header{background:white;padding:20px 30px;box-shadow:0 2px 10px rgba(0,0,0,0.05);margin-bottom:20px;position:sticky;top:0;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){.sensors-sidebar{width:240px;}.dashboard-main-content{margin-left:240px;}}@media (max-width:768px){.sensors-sidebar{position:fixed;left:0;top:80px;height:calc(100vh - 80px);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;}.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);}.dashboard-header{padding:15px 15px 15px 15px;}.dashboard-title{font-size:1.1rem;}}@media screen and (max-width:768px){.mobile-menu-toggle{display:block !important;position:fixed;top:90px;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:all 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:all 0.3s ease;}.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:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.5);z-index:999;transition:opacity 0.3s ease;}.sidebar-overlay.active{display:block;opacity:1;}@media (max-width:768px){.sidebar-overlay.active{display:block;}}.login-page{margin:0 !important;padding:0 !important;min-height:100vh;overflow-x:hidden;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;}.login-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;background:linear-gradient(135deg,#0073e6 0%,#4a90e2 30%,#1e88e5 70%,#0056b3 100%);background-size:400% 400%;animation:gradientShift 15s ease infinite;}@keyframes gradientShift{0%{background-position:0% 50%;}50%{background-position:100% 50%;}100%{background-position:0% 50%;}}.login-background-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.1);backdrop-filter:blur(1px);}.login-background-pattern{position:absolute;top:0;left:0;width:100%;height:100%;background-image:radial-gradient(circle at 20% 50%,rgba(255,255,255,0.1) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(255,255,255,0.1) 0%,transparent 50%),radial-gradient(circle at 40% 80%,rgba(255,255,255,0.08) 0%,transparent 50%);animation:patternFloat 20s ease-in-out infinite;}@keyframes patternFloat{0%,100%{transform:translateY(0px) rotate(0deg);}50%{transform:translateY(-20px) rotate(5deg);}}.login-container{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;gap:30px;}.login-header{text-align:center;margin-bottom:20px;}.login-brand{display:flex;flex-direction:column;align-items:center;gap:15px;}.login-brand .brand-icon{width:60px;height:60px;filter:drop-shadow(0 4px 15px rgba(0,0,0,0.3));animation:logoFloat 4s ease-in-out infinite;}@keyframes logoFloat{0%,100%{transform:translateY(0px) scale(1);}50%{transform:translateY(-5px) scale(1.02);}}.login-brand .brand-text{color:white;text-align:center;}.login-brand .brand-title{font-size:2.2rem;font-weight:700;margin:0;text-shadow:0 2px 10px rgba(0,0,0,0.3);animation:titleGlow 3s ease-in-out infinite alternate;}@keyframes titleGlow{0%{text-shadow:0 2px 10px rgba(0,0,0,0.3);}100%{text-shadow:0 2px 20px rgba(255,255,255,0.3),0 2px 10px rgba(0,0,0,0.3);}}.login-brand .brand-subtitle{font-size:1rem;opacity:0.95;font-weight:400;text-transform:uppercase;letter-spacing:1px;margin-top:5px;}.login-nav{margin-bottom:20px;}.nav-links{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;}.login-nav .nav-link{display:flex;align-items:center;gap:8px;padding:10px 16px;color:rgba(255,255,255,0.9);text-decoration:none;border-radius:25px;font-weight:500;font-size:0.85rem;background:rgba(255,255,255,0.15);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.2);transition:all 0.3s ease;}.login-nav .nav-link:hover{background:rgba(255,255,255,0.25);color:white;transform:translateY(-2px);box-shadow:0 5px 20px rgba(0,0,0,0.2);}.login-nav .nav-icon{font-size:1rem;}.login-form-container{width:100%;max-width:400px;display:flex;flex-direction:column;gap:25px;}.login-card{background:rgba(255,255,255,0.95);border-radius:20px;overflow:hidden;box-shadow:0 20px 40px rgba(0,0,0,0.2),0 10px 25px rgba(0,0,0,0.15),inset 0 1px 0 rgba(255,255,255,0.4);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,0.2);transform:translateY(20px);opacity:0;transition:all 0.6s ease;}.login-card.animate-in{transform:translateY(0);opacity:1;}.login-card-header{text-align:center;padding:30px 30px 20px;background:linear-gradient(145deg,rgba(255,255,255,0.1),rgba(255,255,255,0.05));border-bottom:1px solid rgba(0,0,0,0.05);}.login-title{font-size:1.8rem;font-weight:700;color:#2c3e50;margin:0 0 8px 0;text-shadow:0 1px 2px rgba(0,0,0,0.1);}.login-subtitle{font-size:0.95rem;color:#7f8c8d;margin:0;font-weight:400;}.login-card-body{padding:30px;}.login-card-body .form-item{margin-bottom:20px;}.login-card-body .form-item label{display:block;font-weight:600;color:#2c3e50;margin-bottom:8px;font-size:0.9rem;text-transform:uppercase;letter-spacing:0.5px;}.login-card-body .form-text,.login-card-body .form-email,.login-card-body .form-tel,.login-card-body .form-password,.login-card-body input[type="text"],.login-card-body input[type="email"],.login-card-body input[type="password"]{width:100%;padding:15px 18px;border:2px solid #e1e8ed;border-radius:12px;font-size:1rem;background:white;transition:all 0.3s ease;box-shadow:0 2px 4px rgba(0,0,0,0.05);}.login-card-body .form-text:focus,.login-card-body .form-email:focus,.login-card-body .form-password:focus,.login-card-body input[type="text"]:focus,.login-card-body input[type="email"]:focus,.login-card-body input[type="password"]:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(0,115,230,0.1),0 4px 12px rgba(0,115,230,0.15);transform:translateY(-1px);}.login-card-body .form-submit,.login-card-body button[type="submit"],.login-card-body input[type="submit"]{width:100%;padding:15px 20px;background:linear-gradient(135deg,var(--primary-color) 0%,#1e88e5 100%);color:white;border:none;border-radius:12px;font-size:1rem;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;cursor:pointer;transition:all 0.3s ease;box-shadow:0 4px 15px rgba(0,115,230,0.3);margin-top:10px;}.login-card-body .form-submit:hover,.login-card-body button[type="submit"]:hover,.login-card-body input[type="submit"]:hover{background:linear-gradient(135deg,#0056b3 0%,#1565c0 100%);transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,115,230,0.4);}.login-card-body .form-submit:active,.login-card-body button[type="submit"]:active,.login-card-body input[type="submit"]:active{transform:translateY(0);box-shadow:0 2px 10px rgba(0,115,230,0.3);}.login-card-footer{padding:20px 30px;background:rgba(248,249,250,0.8);border-top:1px solid rgba(0,0,0,0.05);text-align:center;}.login-info{margin:0;font-size:0.85rem;color:#6c757d;display:flex;align-items:center;justify-content:center;gap:8px;}.info-icon{font-size:1rem;}.system-status{background:rgba(255,255,255,0.1);border-radius:15px;padding:20px;backdrop-filter:blur(15px);border:1px solid rgba(255,255,255,0.2);box-shadow:0 8px 25px rgba(0,0,0,0.15);}.status-indicators{display:flex;flex-direction:column;gap:12px;align-items:center;}.system-status .status-item{display:flex;align-items:center;gap:10px;color:white;font-size:0.9rem;font-weight:500;}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--success-color);box-shadow:0 0 10px rgba(0,71,0,0.8);animation:statusPulse 2s ease-in-out infinite;}@keyframes statusPulse{0%,100%{transform:scale(1);box-shadow:0 0 10px rgba(0,71,0,0.8);}50%{transform:scale(1.1);box-shadow:0 0 15px rgba(0,71,0,1);}}.status-dot.offline{background:var(--danger-color);box-shadow:0 0 10px rgba(220,53,69,0.8);}.status-time{font-family:'Courier New',monospace;font-weight:600;color:rgba(255,255,255,0.95);text-shadow:0 1px 2px rgba(0,0,0,0.3);}.login-card-body .messages{margin-bottom:20px;padding:15px;border-radius:10px;font-size:0.9rem;}.login-card-body .messages--error{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb;}.login-card-body .messages--warning{background:#fff3cd;color:#856404;border:1px solid #ffeaa7;}.login-card-body .messages--status{background:#d4edda;color:#155724;border:1px solid #c3e6cb;}.login-card-body .help{margin-bottom:20px;padding:15px;background:#f8f9fa;border-left:4px solid var(--primary-color);border-radius:5px;font-size:0.9rem;color:#495057;}@media (max-width:768px){.login-container{padding:15px;gap:20px;}.login-brand .brand-title{font-size:1.8rem;}.login-brand .brand-subtitle{font-size:0.9rem;}.login-form-container{max-width:350px;}.login-card-header,.login-card-body,.login-card-footer{padding:25px 20px;}.nav-links{flex-direction:column;align-items:center;}.login-nav .nav-link{width:100%;max-width:200px;justify-content:center;}}@media (max-width:480px){.login-container{padding:10px;}.login-form-container{max-width:320px;}.login-brand .brand-title{font-size:1.6rem;}.login-card-header,.login-card-body,.login-card-footer{padding:20px 15px;}.system-status{padding:15px;}.status-indicators{gap:8px;}}@keyframes loginPageFadeIn{from{opacity:0;transform:scale(0.95);}to{opacity:1;transform:scale(1);}}.login-page{animation:loginPageFadeIn 0.8s ease-out;}.login-page .toolbar,.login-page #toolbar-administration,.login-page .region-primary-menu,.login-page .breadcrumb{display:none !important;}.login-card-body .form-item{position:relative;}.login-card-body .form-required:after{content:" *";color:var(--danger-color);font-weight:bold;}.login-card-body a{color:var(--primary-color);text-decoration:none;font-weight:500;transition:color 0.3s ease;}.login-card-body a:hover{color:#0056b3;text-decoration:underline;}.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-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:var(--success-color);background-color:rgba(0,71,0,0.1);}.weather-status-medium .status-indicator,.status-indicator.medium{color:var(--warning-color);background-color:rgba(245,158,11,0.1);}.weather-status-critical .status-indicator,.status-indicator.critical{color:var(--danger-color);background-color:rgba(220,38,38,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:#dc2626;font-size:0.9rem;}.alarm-active{color:#dc2626;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:all 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 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;}}
.color-success{color:#325e1c;background-color:#f3faef;}.color-warning{color:#734c00;background-color:#fdf8ed;}.color-error{color:#a51b00;background-color:#fcf4f2;}
