.tide-chart-container{box-shadow:0 4px 6px #eceff50d;display:flex;flex-direction:column;gap:24px;padding:20px}.tide-chart-stats{grid-gap:16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));padding:20px}.tide-stat-card{background:#fff;box-shadow:0 1px 3px #408cee1a;gap:12px;padding:16px;transition:transform .2s ease}.tide-stat-card,.tide-stat-icon{align-items:center;border-radius:8px;display:flex}.tide-stat-icon{background:#eff6ff;font-size:24px;height:40px;justify-content:center;width:40px}.tide-stat-content{flex:1 1}.tide-stat-value{color:#1f2937;font-size:20px;font-weight:700;line-height:1;margin-bottom:4px}.tide-stat-label{color:#6b7280;font-size:12px;font-weight:500}.tide-chart-stats-detailed{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:flex;flex-direction:column;gap:16px;padding:20px}.tide-stat-section{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:16px}.stat-section h4{color:#1f2937;font-size:14px;font-weight:600;margin:0 0 12px}.tide-stat-details{display:flex;flex-wrap:wrap;gap:16px}.stat-details span{background:#f3f4f6;border-radius:4px;color:#6b7280;font-size:13px;font-weight:500;padding:4px 8px}.tide-chart-wrapper{background:#fff;height:400px;padding:20px;position:relative}.tide-chart-info,.tide-chart-wrapper{border:1px solid #e5e7eb;border-radius:8px}.tide-chart-info{grid-gap:16px;background:#f9fafb;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));padding:16px}.tide-info-item{align-items:center;display:flex;justify-content:space-between;padding:8px 0}.tide-info-label{color:#374151;font-size:14px;font-weight:500}.tide-info-value{color:#1f2937;font-size:14px;font-weight:600}.tide-chart-empty{align-items:center;background:#fff;border:2px dashed #d1d5db;border-radius:12px;color:#6b7280;display:flex;flex-direction:column;height:300px;justify-content:center;padding:40px;text-align:center}.tide-empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.tide-chart-empty h3{color:#374151;font-size:18px;font-weight:600;margin:0 0 8px}.tide-chart-empty p{color:#6b7280;font-size:14px;margin:0}@media (max-width:768px){.tide-chart-container{gap:16px;padding:16px}.chart-stats{grid-template-columns:repeat(2,1fr);padding:16px}.tide-stat-card{padding:12px}.tide-stat-icon{font-size:20px;height:32px;width:32px}.tide-stat-value{font-size:16px}.tide-stat-label{font-size:11px}.chart-wrapper{height:300px;padding:16px}.chart-info{grid-template-columns:1fr;padding:12px}.tide-info-item{align-items:flex-start;flex-direction:column;gap:4px}.info-label,.tide-info-value{font-size:13px}}@media (max-width:480px){.chart-stats{grid-template-columns:1fr}.chart-wrapper{height:250px}}canvas{max-height:100%;max-width:100%}.chart-loading{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:8px;display:flex;height:400px;justify-content:center}.chart-loading-spinner{animation:spin 1s linear infinite;border:4px solid #f3f4f6;border-radius:50%;border-top-color:#3b82f6;height:40px;width:40px}.chart-error{align-items:center;background:#fff;border:1px solid #fecaca;border-radius:12px;color:#dc2626;display:flex;flex-direction:column;height:300px;justify-content:center;padding:40px;text-align:center}.chart-error-icon{font-size:48px;margin-bottom:16px}.chart-error h3{color:#dc2626;margin:0 0 8px}.chart-error p{color:#6b7280;margin:0 0 24px}.chart-retry-btn{background:#dc2626;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:12px 24px;transition:background-color .2s ease}.chart-retry-btn:hover{background:#b91c1c}.tide-data-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#000000bf;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.tide-data-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;height:800px;max-height:90vh;max-width:90vw;overflow:hidden;padding:0;position:relative;width:1200px}.tide-modal-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:1px solid #e5e7eb;color:#fff;display:flex;justify-content:space-between;padding:24px 32px}.tide-modal-title h2{font-size:24px;font-weight:600;margin:0 0 8px}.tide-modal-subtitle{font-size:14px;margin:0;opacity:.9}.tide-modal-close-btn{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:18px;height:40px;justify-content:center;transition:all .2s ease;width:40px}.modal-close-btn:hover{background:#ffffff4d;transform:scale(1.1)}.tide-modal-content{flex:1 1;margin:-25px;overflow-y:auto;padding:12px}.tide-loading-container{align-items:center;color:#6b7280;display:flex;flex-direction:column;height:300px;justify-content:center}.tide-loading-spinner{animation:spin 1s linear infinite;border:4px solid #f3f4f6;border-radius:50%;border-top-color:#3b82f6;height:40px;margin-bottom:16px;width:40px}.tide-error-container{align-items:center;color:#dc2626;display:flex;flex-direction:column;height:300px;justify-content:center;text-align:center}.tide-error-icon{font-size:48px;margin-bottom:16px}.error-container h3{margin:0 0 8px}.tide-retry-btn{background:#dc2626;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:12px 24px;transition:background-color .2s ease}.data-stats{grid-gap:16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:32px;padding:20px}.stat-item{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:12px 16px}.stat-label{color:#374151}.stat-value{font-size:18px}.tide-chart-container{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 4px 6px #0000000d;margin-bottom:32px;padding:24px}.tide-additional-info{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:60px;margin-top:24px;padding:0 8px}.tide-info-card{background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 6px #0000000d,0 1px 3px #0000001a;margin:0 30px;overflow:hidden;padding:24px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.tide-info-card:before{background:linear-gradient(90deg,#3b82f6,#8b5cf6,#06b6d4);border-radius:16px 16px 0 0;content:"";height:3px;left:0;position:absolute;right:0;top:0}.tide-info-card:hover{border-color:#3b82f6;box-shadow:0 10px 25px #0000001a,0 4px 10px #0000000d;transform:translateY(-4px)}.tide-info-card h4{align-items:center;color:#1f2937;display:flex;font-size:16px;font-weight:600;gap:8px;margin:0 0 16px}.tide-info-card p{color:#4b5563;font-size:14px;font-weight:500;line-height:1.6;margin:0}.tide-no-data-container{align-items:center;color:#6b7280;display:flex;flex-direction:column;height:300px;justify-content:center;text-align:center}.tide-no-data-icon{font-size:48px;margin-bottom:16px}.no-data-container h3{margin:0 0 8px}.no-data-container p{color:#6b7280}.tide-modal-footer{background:#f9fafb;border-top:1px solid #e5e7eb;display:flex;gap:12px;justify-content:flex-end;padding:24px 32px}.tide-btn{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;padding:12px 24px;transition:all .2s ease}.tide-btn-primary{background:#3b82f6;color:#fff}.btn-primary:hover:not(:disabled){background:#2563eb;transform:translateY(-1px)}.btn-primary:disabled{background:#9ca3af;cursor:not-allowed;opacity:.6}.tide-loading-spinner-small{animation:spin 1s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;display:inline-block;height:16px;margin-right:8px;vertical-align:middle;width:16px}.tide-btn-secondary{background:#6b7280;color:#fff}.btn-secondary:hover{background:#4b5563;transform:translateY(-1px)}@media (max-width:768px){.tide-data-modal{height:90vh;margin:20px;width:95vw}.modal-header{padding:16px 20px}.tide-modal-content{padding:20px}.data-stats,.tide-additional-info{grid-template-columns:1fr}.tide-additional-info{gap:16px;margin-top:16px;padding:0 4px}.tide-info-card{border-radius:12px;padding:20px}.tide-info-card h4{font-size:15px;margin-bottom:12px}.tide-info-card p{font-size:13px;line-height:1.5}.tide-modal-footer{flex-direction:column;padding:16px 20px}.tide-btn{width:100%}}.modal-content::-webkit-scrollbar{width:8px}.modal-content::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.modal-content::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.modal-content::-webkit-scrollbar-thumb:hover{background:#94a3b8}.hodautieng-chart-container{background:linear-gradient(145deg,#f8fafc,#f1f5f9);display:flex;flex-direction:column;height:100%;overflow-y:auto;padding:0;width:100%}.chart-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#ffffffe6,#f8fafccc);border-radius:0 0 24px 24px;margin-bottom:32px;padding:24px 32px 20px;position:relative;text-align:center}.chart-header:before{background:linear-gradient(90deg,#3b82f6,#10b981,#f59e0b);border-radius:2px;bottom:0;content:"";height:3px;left:50%;position:absolute;transform:translateX(-50%);width:60px}.chart-header h3{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#1e293b,#475569);-webkit-background-clip:text;background-clip:text;font-size:28px;font-weight:800;letter-spacing:-.5px;margin:0 0 16px}.data-summary{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin-top:8px}.data-summary span{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(145deg,#ffffffe6,#f1f5f9cc);border:1px solid #ffffff4d;border-radius:24px;box-shadow:0 2px 8px #0000000f,inset 0 1px 0 #fffc;color:#475569;font-size:13px;font-weight:600;padding:8px 16px;transition:all .3s ease}.data-summary span:hover{box-shadow:0 4px 16px #0000001a,inset 0 1px 0 #fff;transform:translateY(-2px)}.charts-grid{display:flex;flex-direction:column;gap:32px;padding:0 32px 32px}.chart-section{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:linear-gradient(145deg,#fffffff2,#f8fafce6);border:1px solid #fff3;border-radius:24px;box-shadow:0 8px 32px #0000000f,0 1px 0 #fffc,inset 0 1px 0 #ffffffe6;overflow:hidden;padding:32px;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.chart-section:before{background:linear-gradient(90deg,#0000,#3b82f64d,#0000);content:"";height:2px;left:0;position:absolute;right:0;top:0}.chart-section:hover{box-shadow:0 16px 48px #0000001a,0 1px 0 #ffffffe6,inset 0 1px 0 #fff;transform:translateY(-4px)}.chart-wrapper{background:linear-gradient(145deg,#ffffff80,#f8fafc4d);border:1px solid #ffffff4d;border-radius:16px;box-shadow:inset 0 2px 8px #00000005;height:500px;padding:16px;position:relative;width:100%}.no-data-message{color:#64748b;flex-direction:column;height:200px}.no-data-icon{font-size:48px}.no-data-message h3{color:#475569;font-size:18px;font-weight:600;margin:0 0 8px}.no-data-message p{color:#64748b;font-size:14px}@media (max-width:768px){.hodautieng-chart-container{padding:15px}.data-summary{align-items:center;flex-direction:column;gap:10px}.chart-wrapper{height:250px}.chart-section{padding:15px}}.hodautieng-modal-overlay{align-items:center;animation:overlayFadeIn .3s ease-out;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:linear-gradient(135deg,#0006,#000000b3);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.hodautieng-modal{animation:modalSlideIn .5s cubic-bezier(.34,1.56,.64,1);background:linear-gradient(145deg,#fff,#f8fafc);border-radius:24px;box-shadow:0 32px 64px #0003,0 0 0 1px #ffffff1a,inset 0 1px 0 #fffc;display:flex;flex-direction:column;height:900px;max-height:95vh;max-width:95vw;overflow:hidden;padding:0;position:relative;width:1400px}.hodautieng-modal:before{background:linear-gradient(90deg,#0000,#10b98199,#0000);content:"";height:2px;left:0;position:absolute;right:0;top:0;z-index:1}.modal-header{align-items:center;background:linear-gradient(135deg,#0ea5e9,#0284c7 50%,#0369a1);border-bottom:none;color:#fff;display:flex;justify-content:space-between;overflow:hidden;padding:32px 40px;position:relative}.modal-header:before{animation:shimmer 3s infinite;background:linear-gradient(90deg,#0000,#ffffff1a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;width:100%}.modal-title h2{font-size:32px;font-weight:800;letter-spacing:-.5px;margin:0 0 8px;position:relative;text-shadow:0 2px 4px #0000001a;z-index:1}.modal-title p{font-size:16px;font-weight:400;margin:0;opacity:.95;position:relative;text-shadow:0 1px 2px #0000001a;z-index:1}.modal-close-btn{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border:1px solid #fff3;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:20px;height:44px;justify-content:center;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);width:44px;z-index:2}.modal-close-btn:hover{background:#ffffff40;border-color:#fff6;box-shadow:0 4px 12px #00000026;transform:scale(1.1) rotate(90deg)}.modal-content{flex:1 1;overflow-y:auto;padding:32px}.loading-container{color:#6b7280;height:300px}.loading-spinner{border:4px solid #f3f4f6;border-top-color:#10b981}.loading-container p{font-size:16px;font-weight:500}.error-icon{font-size:48px;margin-bottom:16px}.error-container h3{font-size:20px;margin:0 0 16px}.error-container p,.retry-btn{font-size:14px}.retry-btn{background:#dc2626;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:12px 24px;transition:all .2s ease}.retry-btn:hover{background:#b91c1c;transform:translateY(-1px)}.data-overview{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));margin-bottom:40px}.overview-card{align-items:center;background:linear-gradient(145deg,#fff,#fafbfc);border:1px solid #fff3;border-radius:20px;box-shadow:0 8px 32px #0000000f,0 1px 0 #fffc,inset 0 1px 0 #ffffffe6;display:flex;gap:24px;overflow:hidden;padding:28px;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.overview-card:before{background:linear-gradient(90deg,#0000,#fffc,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.overview-card:hover{box-shadow:0 20px 40px #0000001a,0 1px 0 #ffffffe6,inset 0 1px 0 #fff;transform:translateY(-6px) scale(1.02)}.tide-card{border-left:5px solid #3b82f6;position:relative}.tide-card:after{background:linear-gradient(135deg,#3b82f6,#1d4ed8);bottom:0;content:"";left:0;position:absolute;top:0;transition:width .3s ease;width:0}.tide-card:hover{background:linear-gradient(145deg,#eff6ff,#dbeafe);border-left-color:#1d4ed8}.tide-card:hover:after{width:5px}.qden-card{border-left:5px solid #10b981;position:relative}.qden-card:after{background:linear-gradient(135deg,#10b981,#047857);bottom:0;content:"";left:0;position:absolute;top:0;transition:width .3s ease;width:0}.qden-card:hover{background:linear-gradient(145deg,#f0fdf4,#dcfce7);border-left-color:#047857}.qden-card:hover:after{width:5px}.luuluongxa-card{border-left:5px solid #f59e0b;position:relative}.luuluongxa-card:after{background:linear-gradient(135deg,#f59e0b,#d97706);bottom:0;content:"";left:0;position:absolute;top:0;transition:width .3s ease;width:0}.luuluongxa-card:hover{background:linear-gradient(145deg,#fffbeb,#fef3c7);border-left-color:#d97706}.luuluongxa-card:hover:after{width:5px}.card-icon{align-items:center;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:linear-gradient(145deg,#ffffffe6,#ffffffb3);border:1px solid #ffffff4d;border-radius:16px;box-shadow:0 4px 16px #0000000f,inset 0 1px 0 #fff;display:flex;flex-shrink:0;font-size:40px;height:68px;justify-content:center;transition:all .3s ease;width:68px}.overview-card:hover .card-icon{box-shadow:0 8px 24px #0000001a,inset 0 1px 0 #fff;transform:scale(1.1) rotate(5deg)}.card-content{flex:1 1}.card-content h4{color:#1f2937;font-size:18px;font-weight:600;margin:0 0 8px}.card-stats{display:flex;flex-direction:column;gap:4px}.card-stats .count{color:#374151;font-size:20px;font-weight:700}.card-stats .range{color:#6b7280;font-size:14px;font-weight:500}.chart-container{background:linear-gradient(145deg,#fff,#f8fafc);border:1px solid #fff3;border-radius:20px;box-shadow:0 8px 32px #0000000a,inset 0 1px 0 #ffffffe6;margin-bottom:40px;min-height:400px;overflow:hidden;padding:32px;position:relative}.chart-container:before{background:linear-gradient(90deg,#0000,#3b82f633,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.quick-info{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:12px;display:flex;gap:40px;justify-content:center;margin-top:24px;padding:20px}.info-item{color:#475569;font-size:14px;font-weight:500;gap:12px}.info-icon{color:#10b981;font-size:18px}.info-text{color:#334155}.no-data-container{color:#6b7280;padding:60px 20px;text-align:center}.no-data-icon{font-size:64px;margin-bottom:16px;opacity:.5}.no-data-container h3{color:#374151;font-size:20px;font-weight:600;margin:0 0 16px}.no-data-container p{font-size:14px;line-height:1.5;margin:0}.modal-footer{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(145deg,#f8fafc,#f1f5f9);border-top:1px solid #fff3;display:flex;gap:16px;justify-content:flex-end;padding:28px 40px;position:relative}.modal-footer:before{background:linear-gradient(90deg,#0000,#fffc,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.btn{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;display:flex;font-size:15px;font-weight:600;gap:10px;overflow:hidden;padding:14px 28px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.btn:hover:before{left:100%}.btn:disabled{cursor:not-allowed;opacity:.5;transform:none!important}.btn-secondary{background:linear-gradient(145deg,#f8fafc,#e2e8f0);border:1px solid #ffffff4d;box-shadow:0 4px 16px #0000000a,inset 0 1px 0 #fffc;color:#475569}.btn-secondary:hover:not(:disabled){background:linear-gradient(145deg,#e2e8f0,#cbd5e1);box-shadow:0 8px 24px #0000001a,inset 0 1px 0 #ffffffe6;transform:translateY(-2px)}.btn-primary{background:linear-gradient(135deg,#0ea5e9,#0284c7);border:1px solid #fff3;box-shadow:0 4px 16px #0ea5e94d,inset 0 1px 0 #fff3}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#0284c7,#0369a1);box-shadow:0 8px 24px #0ea5e966,inset 0 1px 0 #ffffff4d;transform:translateY(-2px)}@media (max-width:768px){.hodautieng-modal{height:95vh;max-height:none;max-width:none;width:95vw}.modal-header{padding:16px 20px}.modal-title h2{font-size:24px}.modal-title p{font-size:14px}.modal-content{padding:20px}.data-overview{gap:16px;grid-template-columns:1fr}.overview-card{gap:16px;padding:20px}.card-icon{font-size:32px;height:50px;width:50px}.card-stats .count{font-size:18px}.quick-info{flex-direction:column;gap:16px;text-align:center}.chart-container{min-height:300px;padding:16px}.modal-footer{flex-direction:column;padding:16px 20px}.btn{justify-content:center;width:100%}}@media (max-width:480px){.data-overview{grid-template-columns:1fr}.overview-card{flex-direction:column;gap:12px;text-align:center}.modal-title h2{font-size:20px}.modal-title p{font-size:13px}.quick-info{gap:12px}.info-item{justify-content:center}}.mekong-chart-container{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;height:400px;margin:16px 0;padding:16px;position:relative;width:100%}.mekong-chart{height:100%!important;width:100%!important}.no-data-message{align-items:center;color:#6b7280;display:flex;font-size:16px;height:100%;justify-content:center;text-align:center}.no-data-message p{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;margin:0;padding:20px}@media (max-width:768px){.mekong-chart-container{height:300px;margin:12px 0;padding:12px}}@media (max-width:480px){.mekong-chart-container{height:250px;margin:8px 0;padding:8px}}.mekong-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.mekong-modal{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-height:90vh;max-width:1200px;overflow-y:auto;padding:24px;position:relative;width:95%}.mekong-modal-header{align-items:center;background:linear-gradient(135deg,#3b82f6,#60a5fa);border-bottom:1px solid #e5e7eb;border-radius:12px 12px 0 0;color:#fff;display:flex;justify-content:space-between;padding:16px 24px}.mekong-modal-header h2{font-size:20px;font-weight:700;margin:0;text-shadow:0 1px 2px #0000001a}.close-button{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:24px;font-weight:700;height:40px;justify-content:center;transition:all .2s ease;width:40px}.close-button:hover{background:#ffffff4d;transform:scale(1.1)}.mekong-modal-content{background:#fafafa;padding:24px 0}.station-selector{align-items:center;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;gap:12px;margin-bottom:24px;padding:12px 16px}.station-selector label{color:#1e293b;font-size:14px;font-weight:600;min-width:80px;text-transform:uppercase}.station-selector select{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:14px;padding:8px 12px;transition:border-color .2s ease}.station-selector select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.data-stats{align-items:center;background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0cc;border-radius:16px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;display:flex;flex-direction:column;margin:24px 0;padding:24px}.data-stats h3{border-bottom:2px solid #e2e8f0;color:#0f172a;font-size:20px;font-weight:800;margin:0 0 24px;padding-bottom:16px;text-align:center}.stats-grid{grid-gap:24px;gap:24px;grid-template-columns:repeat(3,1fr);margin:0;max-width:900px;width:100%}.stat-card{background:#fff;box-shadow:0 4px 6px -1px #32a0e91a,0 2px 4px -1px #0000000f;flex-direction:column;justify-content:space-between;min-height:160px;padding:16px;transition:all .3s cubic-bezier(.4,0,.2,1)}.stat-card:before{background:linear-gradient(90deg,var(--card-color),var(--card-color-light));content:"";height:5px;left:0;position:absolute;right:0;top:0}.stat-card.overall{--card-color:#3b82f6;--card-color-light:#60a5fa}.stat-card.historical{--card-color:#10b981;--card-color-light:#34d399}.stat-card.forecast{--card-color:#f59e0b;--card-color-light:#fbbf24}.stat-card:hover{box-shadow:0 25px 50px -12px #00000040;transform:translateY(-8px)}.stat-card h4{color:var(--card-color);font-size:16px;font-weight:700;gap:8px;margin:0 0 12px}.stat-card h4,.stat-item{align-items:center;display:flex}.stat-item{justify-content:space-between;margin:8px 0;padding:8px}.stat-label{color:#64748b;font-size:14px}.stat-value{background:rgba(var(--card-color-rgb),.1);border-radius:4px;color:var(--card-color);font-size:16px;font-weight:600;padding:4px 8px}.stat-card.overall{--card-color-rgb:59,130,246}.stat-card.historical{--card-color-rgb:16,185,129}.stat-card.forecast{--card-color-rgb:245,158,11}.loading-container{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:40px;text-align:center}.loading-spinner{border:4px solid #e5e7eb;height:40px;margin-bottom:16px;width:40px}.error-container{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;margin:16px 0;padding:40px;text-align:center}.retry-button{background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;margin-top:12px;padding:8px 16px;transition:background-color .2s ease}.retry-button:hover{background:#2563eb}.chart-container{box-shadow:0 1px 3px #0000001a}.chart-container,.no-data{background:#fff;border-radius:8px;margin:24px 0}.no-data{border:2px dashed #d1d5db;padding:40px}.no-data p{font-size:16px;margin:0 0 16px}.modal-actions{border-top:1px solid #e5e7eb;display:flex;gap:12px;justify-content:center;margin-top:24px;padding:24px 0 16px}.export-button,.refresh-button{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:12px 24px;transition:all .2s ease}.refresh-button{background:#6b7280;color:#fff}.refresh-button:hover:not(:disabled){background:#4b5563;transform:translateY(-1px)}.export-button{background:#059669;color:#fff}.export-button:hover:not(:disabled){background:#047857;transform:translateY(-1px)}.export-button:disabled,.refresh-button:disabled{cursor:not-allowed;opacity:.5;transform:none}.station-info{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-top:16px;padding:16px}.station-info h4{color:#1e293b;font-size:16px;font-weight:600;margin:0 0 12px}.station-info p{color:#475569;font-size:14px;margin:4px 0}.station-info strong{color:#1e293b}@media (max-width:1024px){.stats-grid{gap:16px;grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.stats-grid{gap:16px;grid-template-columns:1fr}.stat-card{padding:12px}.mekong-modal{margin:10px;max-height:95vh;width:98%}.mekong-modal-header{padding:16px 20px 12px}.mekong-modal-header h2{font-size:20px}.mekong-modal-content{padding:16px 20px 24px}.station-selector{align-items:flex-start;flex-direction:column;gap:8px;padding:12px}.station-selector label{min-width:auto}.modal-actions{align-items:center;flex-direction:column;gap:8px}.export-button,.refresh-button{justify-content:center;max-width:200px;width:100%}}@media (max-width:480px){.mekong-modal-header h2{font-size:18px}.close-button{font-size:20px;height:32px;width:32px}}.map-component{background:#f8fafc;display:flex;flex-direction:column;height:100vh}.map-header{align-items:center;animation:gradientShift 8s ease infinite;background:linear-gradient(135deg,#667eea,#764ba2);background-size:400% 400%;border-bottom:1px solid #ffffff1a;box-shadow:0 4px 20px #0000001a;display:flex;justify-content:center;overflow:hidden;padding:24px 32px;position:relative}.map-header:before{animation:shimmer 3s ease-in-out infinite;background:linear-gradient(45deg,#0000 30%,#ffffff1a 50%,#0000 70%);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.header-container{align-items:center;display:flex;flex-direction:column;gap:20px;max-width:800px;width:100%}.header-content{gap:20px;text-align:center}.header-icon{align-items:center;animation:iconFloat 3s ease-in-out infinite;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:2px solid #ffffff4d;border-radius:50%;display:flex;height:80px;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none;width:80px}.header-icon:hover{background:#ffffff4d;border-color:#ffffff80;box-shadow:0 8px 32px #fff3;transform:scale(1.1) rotate(5deg)}.header-icon:active{background:#fff6;transform:scale(1.05) rotate(2deg)}.header-icon-img{animation:iconPulse 2s ease-in-out infinite;filter:brightness(0) invert(1);height:50px;object-fit:contain;pointer-events:none;transition:all .3s ease;width:50px}.header-icon:hover .header-icon-img{filter:brightness(0) invert(1) drop-shadow(0 0 10px rgba(255,255,255,.8));transform:scale(1.1)}.header-text{display:flex;flex-direction:column;gap:8px}.header-title{color:#fff;font-size:32px;font-weight:800;letter-spacing:-.5px;margin:0;text-shadow:0 2px 4px #0000004d}.title-gradient{-webkit-text-fill-color:#0000;animation:textShimmer 4s ease-in-out infinite;background:linear-gradient(45deg,#fff,#e0e7ff,#fff);-webkit-background-clip:text;background-clip:text;background-size:200% 200%}.header-subtitle{color:#ffffffe6;font-size:18px;font-weight:400;margin:0;text-shadow:0 1px 2px #0003}@keyframes gradientShift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}@keyframes shimmer{0%,to{transform:translateX(-100%)}50%{transform:translateX(100%)}}@keyframes iconFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes iconPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes textShimmer{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.status-item{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border:1px solid #fff3;border-radius:25px;box-shadow:0 2px 10px #0000001a;color:#fff;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 18px;transition:all .3s ease}.status-item:hover{box-shadow:0 4px 15px #0003;transform:translateY(-2px)}.status-item.loading{background:#3b82f633;border-color:#3b82f666;color:#93c5fd}.status-item.error{background:#dc262633;border-color:#dc262666;color:#fca5a5}.status-item.success{background:#16a34a33;border-color:#16a34a66;color:#86efac}.status-item.info{background:#0284c733;border-color:#0284c766;color:#7dd3fc}.status-spinner{animation:spin 1s linear infinite;border:2px solid #dbeafe;border-radius:50%;border-top-color:#3b82f6;height:16px;width:16px}.main-content{display:flex;gap:20px;height:600px}.map-container{background:#e5e7eb;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 8px 32px #0000001f;flex:1 1;height:100%;overflow:hidden;position:relative;transition:all .3s ease}.map-container.with-chart{flex:0 0 60%}.map{height:100%;width:100%}.gm-layer-selector{font-family:Google Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;position:absolute;right:20px;top:20px;z-index:1000}.gm-toggle-btn{align-items:center;background:#fff;border:1px solid #dadce0;border-radius:4px;box-shadow:0 1px 1px #00000014;color:#202124;cursor:pointer;display:flex;font-size:12px;font-weight:500;gap:6px;line-height:1;min-width:100px;padding:6px 10px;transition:all .1s ease;-webkit-user-select:none;user-select:none}.gm-toggle-btn:hover{background:#f8f9fa;box-shadow:0 1px 2px #0000001f}.gm-toggle-btn:active{background:#f1f3f4;box-shadow:0 1px 1px #00000014;transform:translateY(1px)}.gm-layer-icon{align-items:center;background:#f1f3f4;border-radius:2px;color:#5f6368;display:flex;flex-shrink:0;height:18px;justify-content:center;transition:all .1s ease;width:18px}.gm-layer-icon.active{background:#1a73e8;color:#fff}.gm-layer-icon svg{height:14px;width:14px}.gm-toggle-text{color:#202124;flex:1 1;font-size:12px;font-weight:500;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.gm-toggle-arrow{align-items:center;color:#5f6368;display:flex;flex-shrink:0;height:12px;justify-content:center;transition:transform .1s ease;width:12px}.gm-toggle-arrow.open{transform:rotate(180deg)}.gm-options{animation:gmSlideDown .1s ease;background:#fff;border:1px solid #dadce0;border-radius:4px;box-shadow:0 1px 4px #0000001f;margin-top:1px;min-width:140px;overflow:hidden;position:absolute;right:0;top:100%}.gm-option{align-items:center;background:#fff;border:none;color:#202124;cursor:pointer;display:flex;font-size:12px;gap:6px;line-height:1;padding:6px 10px;position:relative;text-align:left;transition:background-color .1s ease;width:100%}.gm-option:hover{background:#f8f9fa}.gm-option.active{background:#e8f0fe;color:#1a73e8}.gm-option.active .gm-layer-icon{background:#1a73e8;color:#fff}.gm-option-text{flex:1 1;font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gm-option-check{align-items:center;color:#1a73e8;display:flex;flex-shrink:0;height:12px;justify-content:center;width:12px}@keyframes gmSlideDown{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.info-panel{background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 6px #0000001a;max-width:320px;min-width:280px;position:absolute;right:20px;top:20px;z-index:1000}.info-panel-header{background:#f8fafc;border-bottom:1px solid #e5e7eb;border-radius:8px 8px 0 0;padding:16px}.info-panel-header h3{color:#1f2937;font-size:16px;font-weight:600;margin:0}.info-panel-content{padding:16px}.info-item{align-items:center;border-bottom:1px solid #f3f4f6;justify-content:space-between;margin-bottom:12px;padding:8px 0}.info-item:last-child{border-bottom:none;margin-bottom:0}.info-label{font-size:14px;font-weight:500}.info-value{background:#3b82f6;border-radius:4px;font-size:14px;font-weight:600;min-width:60px;padding:4px 8px}.custom-icon{filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));transition:all .3s ease}.custom-icon.active{filter:drop-shadow(0 4px 8px rgba(0,0,0,.3));transform:scale(1.2)}.lake-icon{filter:drop-shadow(0 2px 4px rgba(0,0,0,.2)) hue-rotate(180deg);transition:all .3s ease}.lake-icon.active{filter:drop-shadow(0 4px 8px rgba(0,0,0,.4)) hue-rotate(180deg);transform:scale(1.3)}.mekong-icon{filter:drop-shadow(0 2px 4px rgba(0,0,0,.2)) hue-rotate(60deg) saturate(1.2);transition:all .3s ease}.mekong-icon.active{filter:drop-shadow(0 4px 8px rgba(0,0,0,.4)) hue-rotate(60deg) saturate(1.2);transform:scale(1.3)}.station-popup{min-width:200px;text-align:center}.station-popup h3{color:#1f2937;font-size:16px;font-weight:600;margin:0 0 8px}.station-popup p{color:#6b7280;font-size:14px;line-height:1.4;margin:0 0 16px}.current-tide-info{background:#f8fafc;border:1px solid #e5e7eb;border-radius:6px;margin:12px 0;padding:12px}.tide-time,.tide-value{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.tide-time:last-child,.tide-value:last-child{margin-bottom:0}.tide-time .label,.tide-value .label{color:#6b7280;font-size:12px;font-weight:500}.tide-value .value{background:#3b82f6;border-radius:4px;color:#1f2937;color:#fff;font-size:14px;font-weight:600;padding:2px 8px}.tide-time .value{color:#374151;font-size:12px;font-weight:500}.tide-value .tide-type{background:#f3f4f6;border-radius:4px;color:#6b7280;font-size:10px;font-weight:500;margin-left:8px;padding:2px 6px}.lake-info{background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;margin:12px 0;padding:12px}.lake-data,.lake-status{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.lake-data:last-child,.lake-status:last-child{margin-bottom:0}.lake-data .label,.lake-status .label{color:#0369a1;font-size:12px;font-weight:500}.lake-data .value,.lake-status .value{background:#0ea5e9;border-radius:4px;color:#0c4a6e;color:#fff;font-size:14px;font-weight:600;padding:2px 8px}.popup-actions{display:flex;justify-content:center}.popup-btn{background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:12px;font-weight:500;padding:8px 16px;transition:all .2s ease}.popup-btn:hover{background:#2563eb;transform:translateY(-1px)}.popup-btn:disabled{background-color:#9ca3af;cursor:not-allowed;opacity:.7}.popup-btn:disabled:hover{background-color:#9ca3af;transform:none}.map-legend{background:#fff;border:1px solid #e5e7eb;border-radius:8px;bottom:20px;box-shadow:0 4px 6px #0000001a;left:20px;padding:16px;position:absolute;z-index:1000}.legend-item{margin-bottom:8px}.legend-item:last-child{margin-bottom:0}.legend-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}.legend-icon img{height:20px;object-fit:contain;width:20px}.legend-icon.active img{filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));transform:scale(1.2)}.legend-icon.lake-icon img{filter:hue-rotate(180deg);transform:scale(1.1)}.legend-item span{color:#374151;font-size:12px;font-weight:500}.lake-info-modal{height:100%;left:0;position:fixed;top:0;width:100%;z-index:1000}.lake-modal-overlay{align-items:center;background:#00000080;display:flex;height:100%;justify-content:center;left:0;padding:20px;position:absolute;top:0;width:100%}.lake-modal-content{animation:modalSlideIn .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-height:80vh;max-width:500px;overflow-y:auto;width:100%}.lake-modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:24px 24px 16px}.lake-modal-header h2{color:#1f2937;font-size:24px;font-weight:700;margin:0}.lake-modal-close{background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;font-size:28px;padding:4px;transition:all .2s ease}.lake-modal-close:hover{background:#f3f4f6;color:#374151}.lake-modal-body{padding:24px}.lake-data-section,.lake-info-section{margin-bottom:24px}.lake-data-section h3,.lake-info-section h3{color:#1f2937;font-size:18px;font-weight:600;margin:0 0 16px}.lake-info-section p{color:#374151;font-size:14px;line-height:1.5;margin:0 0 8px}.lake-info-section strong{color:#1f2937;font-weight:600}.lake-data-section ul{color:#374151;font-size:14px;line-height:1.6;margin:0;padding-left:20px}.lake-data-section li{margin-bottom:8px}.lake-actions{display:flex;flex-direction:column;gap:12px}.lake-action-btn{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;padding:12px 20px;text-align:center;transition:all .2s ease}.lake-action-btn.primary{background:#3b82f6;color:#fff}.lake-action-btn.primary:hover{background:#2563eb;box-shadow:0 4px 12px #3b82f64d;transform:translateY(-1px)}.lake-action-btn.secondary{background:#f3f4f6;border:1px solid #d1d5db;color:#374151}.lake-action-btn.secondary:hover{background:#e5e7eb;border-color:#9ca3af}@media (max-width:1200px){.main-content{flex-direction:column;gap:16px;height:auto}.map-container{height:400px}.map-container.with-chart{flex:none}.chart-panel{flex:none;height:500px}}@media (max-width:768px){.map-header{padding:20px 16px}.header-container{gap:16px}.header-content{flex-direction:column;gap:16px}.header-icon{height:60px;width:60px}.header-icon-img{height:35px;width:35px}.header-title{font-size:24px}.header-subtitle{font-size:16px}.status-item{font-size:12px;padding:8px 14px}.main-content{gap:12px}.map-container{border-radius:8px;height:300px}.chart-panel{border-radius:8px;height:400px}.chart-header{padding:12px 16px}.chart-header h3{font-size:16px}.chart-content{padding:16px}.map-legend{bottom:10px;left:10px;padding:12px;right:10px}.legend-item{font-size:11px}.gm-layer-selector{right:8px;top:8px}.gm-toggle-btn{font-size:11px;gap:4px;min-width:90px;padding:5px 8px}.gm-layer-icon{width:16px}.lake-modal-content{margin:10px;max-width:90vw}.lake-modal-header{padding:16px 16px 12px}.lake-modal-header h2{font-size:20px}.lake-modal-body{padding:16px}.lake-actions{gap:8px}.lake-action-btn{font-size:13px;padding:10px 16px}.gm-layer-icon svg{height:12px;width:12px}.gm-options{min-width:120px}.gm-option{font-size:11px;gap:4px;padding:5px 8px}}@media (max-width:480px){.header-title{font-size:20px}.header-subtitle{font-size:14px}.status-item{font-size:11px;padding:6px 12px}}.leaflet-popup-content-wrapper{border-radius:8px;box-shadow:0 4px 6px #0000001a}.leaflet-popup-content{margin:0;padding:0}.chart-panel{animation:slideInRight .3s ease-out;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 8px 32px #0000001f;display:flex;flex:0 0 40%;flex-direction:column;overflow:hidden}@keyframes slideInRight{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}.chart-header{align-items:center;background:linear-gradient(135deg,#10b981,#059669);border-bottom:1px solid #e5e7eb;color:#fff;display:flex;justify-content:space-between;padding:16px 20px}.chart-header h3{font-size:18px;font-weight:600;margin:0}.close-chart-btn{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:20px;height:32px;justify-content:center;transition:all .2s ease;width:32px}.close-chart-btn:hover{background:#ffffff4d;transform:scale(1.1)}.chart-content{flex:1 1;overflow-y:auto;padding:20px}.leaflet-popup-tip{background:#fff}.map-loading-overlay{align-items:center;background:#fffc;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:1000}.map-loading-content{color:#6b7280;text-align:center}.map-loading-spinner{animation:spin 1s linear infinite;border:4px solid #f3f4f6;border-radius:50%;border-top-color:#3b82f6;height:40px;margin:0 auto 16px;width:40px}.map-error-overlay{align-items:center;background:#ffffffe6;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:1000}.map-error-content{color:#dc2626;padding:32px;text-align:center}.map-error-icon{font-size:48px;margin-bottom:16px}.map-error-content h3{color:#dc2626;margin:0 0 8px}.map-error-content p{color:#6b7280;margin:0 0 24px}.map-retry-btn{background:#dc2626;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:12px 24px;transition:background-color .2s ease}.map-retry-btn:hover{background:#b91c1c}.custom-marker{align-items:center;background:#0ea5e9;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 8px #00000059;color:#fff;cursor:pointer;display:flex;font-size:12px;font-weight:800;height:32px;justify-content:center;-webkit-user-select:none;user-select:none;width:32px}.custom-marker:hover{transform:scale(1.06)}.trian-modal-overlay{align-items:center;background:#0f172a8c;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.trian-modal{background:linear-gradient(145deg,#fff,#f8fafc);border:1px solid #0000000f;border-radius:16px;box-shadow:0 10px 28px #00000040;display:flex;flex-direction:column;max-height:88vh;overflow:hidden;width:min(1080px,92vw)}.trian-modal-header{align-items:center;border-bottom:1px solid #0000000f;display:flex;justify-content:space-between;padding:12px 16px}.trian-modal-title{color:#0f172a;font-weight:800}.trian-modal-close{background:#0000;border:none;color:#334155;cursor:pointer;font-size:22px;line-height:1}.trian-modal-body{background:linear-gradient(145deg,#f8fafc,#fff);overflow:auto;padding:14px}.nos-pin{position:relative}.nos-pin__img{display:block;height:40px;width:28px}.nos-pin:before{animation:nos-pulse 2s ease-out infinite;background:radial-gradient(circle,#03aa438c 0,#3805c540 45%,#03f3f70d 70%,#0000 80%);border-radius:50%;box-shadow:0 0 10px #47e1e3b3,0 0 20px #47e1e366;content:"";height:28px;left:50%;pointer-events:none;position:absolute;top:10px;transform:translate(-50%,-50%);width:28px}@keyframes nos-pulse{0%{opacity:.9;transform:translate(-50%,-50%) scale(.6)}60%{opacity:.15;transform:translate(-50%,-50%) scale(2.1)}to{opacity:0;transform:translate(-50%,-50%) scale(2.3)}}.nos-pin__img{height:30px;width:30px}.leaflet-image-layer,.leaflet-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane,.leaflet-pane>canvas,.leaflet-pane>svg,.leaflet-tile,.leaflet-tile-container,.leaflet-zoom-box{left:0;position:absolute;top:0}.leaflet-container{overflow:hidden}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.leaflet-tile::selection{background:#0000}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{height:1600px;-webkit-transform-origin:0 0;width:1600px}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-height:none!important;max-width:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer{max-height:none!important;max-width:none!important;padding:0;width:auto}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{box-sizing:border-box;height:0;width:0;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{height:1px;width:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{pointer-events:visiblePainted;pointer-events:auto;position:relative;z-index:800}.leaflet-bottom,.leaflet-top{pointer-events:none;position:absolute;z-index:1000}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{clear:both;float:left}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-pan-anim .leaflet-tile,.leaflet-zoom-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-control,.leaflet-popup-pane{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:grabbing}.leaflet-image-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-image-layer.leaflet-interactive,.leaflet-marker-icon.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{background:#ffffff80;border:2px dotted #38f}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{border-radius:4px;box-shadow:0 1px 5px #000000a6}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;color:#000;display:block;height:26px;line-height:26px;text-align:center;text-decoration:none;width:26px}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:focus,.leaflet-bar a:hover{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom:none;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.leaflet-bar a.leaflet-disabled{background-color:#f4f4f4;color:#bbb;cursor:default}.leaflet-touch .leaflet-bar a{height:30px;line-height:30px;width:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{background:#fff;border-radius:5px;box-shadow:0 1px 5px #0006}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);height:36px;width:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{height:44px;width:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{background:#fff;color:#333;padding:6px 10px 6px 6px}.leaflet-control-layers-scrollbar{overflow-x:hidden;overflow-y:scroll;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{border-top:1px solid #ddd;height:0;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{color:#333;line-height:1.4;padding:0 5px}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:focus,.leaflet-control-attribution a:hover{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;height:.6669em;vertical-align:initial!important;width:1em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{background:#fffc;border:2px solid #777;border-top:none;box-sizing:border-box;line-height:1.1;padding:2px 5px 1px;text-shadow:1px 1px #fff;white-space:nowrap}.leaflet-control-scale-line:not(:first-child){border-bottom:none;border-top:2px solid #777;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers{box-shadow:none}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-layers{background-clip:padding-box;border:2px solid #0003}.leaflet-popup{margin-bottom:20px;position:absolute;text-align:center}.leaflet-popup-content-wrapper{border-radius:12px;padding:1px;text-align:left}.leaflet-popup-content{font-size:13px;font-size:1.08333em;line-height:1.3;margin:13px 24px 13px 20px;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{height:20px;left:50%;margin-left:-20px;margin-top:-1px;overflow:hidden;pointer-events:none;position:absolute;width:40px}.leaflet-popup-tip{height:17px;margin:-10px auto 0;padding:1px;pointer-events:auto;transform:rotate(45deg);width:17px}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;box-shadow:0 3px 14px #0006;color:#333}.leaflet-container a.leaflet-popup-close-button{background:#0000;border:none;color:#757575;font:16px/24px Tahoma,Verdana,sans-serif;height:24px;position:absolute;right:0;text-align:center;text-decoration:none;top:0;width:24px}.leaflet-container a.leaflet-popup-close-button:focus,.leaflet-container a.leaflet-popup-close-button:hover{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678,M12=0.70710678,M21=-0.70710678,M22=0.70710678);margin:0 auto;width:24px}.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{background-color:#fff;border:1px solid #fff;border-radius:3px;box-shadow:0 1px 3px #0006;color:#222;padding:6px;pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none;white-space:nowrap}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before,.leaflet-tooltip-top:before{background:#0000;border:6px solid #0000;content:"";pointer-events:none;position:absolute}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{border-top-color:#fff;bottom:0;margin-bottom:-12px}.leaflet-tooltip-bottom:before{border-bottom-color:#fff;margin-left:-6px;margin-top:-12px;top:0}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{margin-top:-6px;top:50%}.leaflet-tooltip-left:before{border-left-color:#fff;margin-right:-12px;right:0}.leaflet-tooltip-right:before{border-right-color:#fff;left:0;margin-left:-12px}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.binhduong-chart-container{background:#fff;border-radius:.5rem;box-shadow:0 1px 3px 0 #0000001a,0 1px 2px 0 #0000000f;margin-bottom:1rem;width:100%}.binhduong-section{padding:1rem}.binhduong-canvas-wrap{height:420px;position:relative;width:100%}.chart-groups-container{gap:25px;padding:.75rem}.chart-group{height:100%;padding:15px}.chart-group-title{margin-bottom:10px;padding-bottom:6px}.chart-wrapper{padding:10px}.no-data{background:#f9fafb;border:1px dashed #d1d5db;border-radius:.375rem;font-size:.875rem;height:100%;min-height:200px;text-align:center;width:100%}.no-data,.overlay{align-items:center;display:flex;justify-content:center}.overlay{background:#00000080;bottom:0;left:0;position:fixed;right:0;top:0;z-index:1000}.modal{background:#fff;border-radius:12px;box-shadow:0 8px 32px #00000026;margin:auto;max-height:95vh;max-width:1400px;overflow-y:auto;padding:20px;position:relative;width:98%}.modal-content h2{color:#2c3e50;font-size:1.5rem;font-weight:600;margin-top:0}.modal-content p{color:#7f8c8d;margin:10px 0}.param-table{border-collapse:collapse;margin-top:15px;width:100%}.param-table td,.param-table th{border:1px solid #ecf0f1;font-size:.95rem;padding:10px;text-align:left}.param-table th{background-color:#f8f9fa;color:#34495e;font-weight:500}.param-table td{color:#2c3e50}.exceeded{color:#e74c3c;font-weight:700}.good{color:#2ecc71}.modal-content button{background-color:#3498db;border:none;border-radius:4px;color:#fff;cursor:pointer;display:block;font-size:1rem;margin-top:20px;padding:8px 16px}.modal-content button:hover{background-color:#2980b9}.chart-groups-container{display:flex;flex-direction:column;gap:30px;margin-top:20px}.chart-group{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:20px}.chart-group-title{border-bottom:2px solid #3498db;color:#2c3e50;font-size:1.1rem;font-weight:600;margin-bottom:15px;padding-bottom:8px}.chart-wrapper{background:#fff;border-radius:6px;box-shadow:0 2px 4px #0000000d;padding:15px}.trian-chart-container{padding:8px 12px 16px;width:100%}.trian-section+.trian-section{margin-top:18px}.trian-section-title{align-items:center;color:#1f2937;display:flex;font-size:16px;font-weight:700;gap:8px;margin:0 0 8px}.trian-canvas-wrap{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a;height:420px;padding:8px 8px 4px;width:100%}.no-data{color:#6b7280;display:grid;font-style:italic;height:420px;place-items:center}.swmm-node-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.swmm-node-modal-container{animation:modalSlideIn .3s ease-out;background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 20px 60px #0000004d,0 4px 10px #0000001a;display:flex;flex-direction:column;max-height:90vh;overflow:hidden;width:min(1200px,95vw)}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.swmm-node-modal-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:1px solid #0000000f;color:#fff;display:flex;justify-content:space-between;padding:24px 32px}.modal-title{gap:16px}.modal-title,.title-icon{align-items:center;display:flex}.title-icon{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border-radius:12px;color:#fff;font-size:32px;height:48px;justify-content:center;width:48px}.title-content h2{color:#fff;font-size:20px;font-weight:700;margin:0 0 4px}.title-content p{color:#fffc;font-size:14px;margin:0}.modal-close{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:20px;height:32px;justify-content:center;transition:all .3s ease;width:32px}.modal-close:hover{background:#ffffff4d;color:#fff;transform:scale(1.1)}.swmm-node-modal-controls{align-items:center;background:linear-gradient(145deg,#f1f5f9,#e2e8f0);border-bottom:1px solid #0000000f;display:flex;justify-content:space-between;padding:16px 24px}.time-range-selector{align-items:center;display:flex;gap:12px}.time-range-selector label{color:#374151;font-size:14px;font-weight:600}.time-range-selector select{background:#fff;border:1px solid #d1d5db;border-radius:8px;color:#374151;cursor:pointer;font-size:14px;padding:8px 12px;transition:all .2s ease}.time-range-selector select:hover{border-color:#3b82f6}.time-range-selector select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.refresh-btn,.refresh-button{align-items:center;display:flex}.refresh-btn{background:linear-gradient(145deg,#3b82f6,#1d4ed8);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;gap:8px;padding:8px 16px;transition:all .2s ease}.refresh-btn:hover:not(:disabled){box-shadow:0 4px 8px #3b82f64d;transform:translateY(-1px)}.refresh-btn:disabled{cursor:not-allowed;opacity:.6}.swmm-node-modal-content{background:#fff;flex:1 1;overflow-y:auto;padding:32px}.node-info-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 4px #0000000d;margin-bottom:24px;padding:24px}.node-info-section h3{align-items:center;color:#1f2937;display:flex;font-size:18px;font-weight:600;gap:8px;margin:0 0 16px}.node-info-section h3:before{content:"ℹ️";font-size:16px}.node-info-grid{grid-gap:20px;background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 6px #0000000d,0 1px 3px #0000001a;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));overflow:hidden;padding:24px;position:relative}.node-info-grid:before{background:linear-gradient(90deg,#3b82f6,#8b5cf6,#06b6d4);border-radius:16px 16px 0 0;content:"";height:3px;left:0;position:absolute;right:0;top:0}.info-item{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffb3;border:1px solid #e2e8f080;border-radius:12px;display:flex;flex-direction:column;gap:8px;padding:16px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.info-item:hover{background:#ffffffe6;border-color:#3b82f6;box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.info-label{align-items:center;color:#6b7280;display:flex;font-size:13px;font-weight:600;gap:6px;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.info-label:before{color:#3b82f6;content:"•";font-size:16px;font-weight:700}.info-value{background:linear-gradient(135deg,#3b82f6,#2563eb);border:1px solid #fff3;border-radius:25px;box-shadow:0 2px 4px #3b82f64d;color:#1f2937;color:#fff;display:inline-block;font-size:15px;font-weight:700;padding:8px 16px;text-align:center;transition:all .3s ease;width:fit-content}.info-value:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 4px 8px #3b82f666;transform:translateY(-1px)}.flood-risk-section{margin-bottom:24px}.flood-risk-section h3{align-items:center;color:#1f2937;display:flex;font-size:18px;font-weight:600;gap:8px;margin:0 0 16px}.flood-risk-section h3:before{content:"⚠️";font-size:16px}.risk-assessment{background:linear-gradient(145deg,#fef2f2,#fef7f7);border:1px solid #ef444433;border-radius:12px;display:flex;flex-wrap:wrap;gap:32px;padding:20px}.risk-level,.risk-probability{display:flex;flex-direction:column;gap:8px}.probability-label,.risk-label{color:#6b7280;font-size:12px;font-weight:500}.probability-label,.risk-label,.risk-value{letter-spacing:.5px;text-transform:uppercase}.probability-value,.risk-value{font-size:20px;font-weight:700}.probability-value{color:#1f2937}.chart-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 4px #0000000d;margin-bottom:35px;padding:4px}.chart-section h3{align-items:center;color:#1f2937;display:flex;font-size:18px;font-weight:600;gap:8px;margin:0 0 16px}.chart-section h3:before{content:"📊";font-size:22px}.swmm-chart-container{border:1px solid #e2e8f0;height:500px;padding:20px;position:relative}.swmm-chart-container,.swmm-chart-loading{background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000000d}.swmm-chart-loading{align-items:center;border:1px solid #e2e8f0;color:#6b7280;display:flex;flex-direction:column;height:200px;justify-content:center}.swmm-loading-spinner{border:3px solid #e2e8f0;height:32px;margin-bottom:12px;width:32px}.swmm-chart-error{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 4px #0000000d;color:#dc2626;display:flex;flex-direction:column;height:200px;justify-content:center}.swmm-error-icon{font-size:32px;margin-bottom:12px}.swmm-chart-empty{align-items:center;background:#fff;border:2px dashed #d1d5db;border-radius:12px;box-shadow:0 2px 4px #0000000d;color:#6b7280;display:flex;flex-direction:column;height:200px;justify-content:center}.swmm-empty-icon{font-size:32px;margin-bottom:12px;opacity:.6}.statistics-section{margin-bottom:24px}.statistics-section h3{align-items:center;color:#1f2937;display:flex;font-size:18px;font-weight:600;gap:8px;margin:0 0 16px}.statistics-section h3:before{content:"📈";font-size:16px}.stats-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stat-card{box-shadow:0 2px 4px #0000000a;gap:16px;padding:20px}.stat-icon{background:linear-gradient(145deg,#3b82f6,#1d4ed8);border-radius:12px;color:#fff;height:48px;width:48px}.stat-value{font-size:20px}@media (max-width:768px){.swmm-node-modal-container{max-height:95vh;width:95vw}.swmm-node-modal-header{padding:16px 20px}.modal-title{gap:12px}.title-icon{font-size:24px;height:40px;width:40px}.title-content h2{font-size:18px}.swmm-node-modal-controls{align-items:flex-start;flex-direction:column;gap:12px}.time-range-selector{width:100%}.swmm-node-modal-content{padding:20px}.node-info-grid{border-radius:12px;gap:16px;grid-template-columns:1fr;padding:20px}.info-item{border-radius:10px;padding:12px}.info-label{font-size:12px;margin-bottom:6px}.info-value{border-radius:20px;font-size:14px;padding:6px 12px}.risk-assessment{flex-direction:column;gap:16px}.stats-grid{grid-template-columns:1fr}.swmm-chart-container{height:600px;padding:16px}}@media (max-width:480px){.swmm-node-modal-overlay{padding:10px}.swmm-node-modal-container{border-radius:12px;max-height:100vh;width:100%}.swmm-node-modal-header{padding:12px 16px}.swmm-node-modal-content{padding:16px}.swmm-chart-container{height:350px;padding:12px}}.chart-section,.flood-risk-section,.node-info-section,.statistics-section{animation:fadeIn .3s ease-out}.node-info-section{animation-delay:.1s}.flood-risk-section{animation-delay:.2s}.chart-section{animation-delay:.3s}.statistics-section{animation-delay:.4s}.swmm-results-page{background:linear-gradient(135deg,#667eea,#764ba2);display:flex;flex-direction:column;font-family:Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;height:100vh;overflow:hidden;position:relative}.swmm-results-page:before{background:linear-gradient(135deg,#667eea1a,#764ba21a);bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:0}.swmm-page-header{background:linear-gradient(135deg,#fff,#f8fafc);border-bottom:1px solid #0000000f;border-radius:0 0 16px 16px;box-shadow:0 4px 6px #0000000d,0 1px 3px #0000001a;margin:16px 16px 0;position:relative;z-index:100}.header-content{align-items:center;display:flex;justify-content:space-between;padding:20px 24px}.header-title h1{align-items:center;color:#1f2937;display:flex;font-size:28px;font-weight:700;gap:12px;margin:0 0 4px}.header-title p{color:#6b7280;font-size:14px;margin:0}.layer-selector{align-items:center;display:flex;gap:12px}.layer-toggle{background:linear-gradient(145deg,#3b82f6,#1d4ed8);border:none;border-radius:8px;box-shadow:0 2px 4px #3b82f64d;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 16px;transition:all .2s ease}.layer-toggle:hover{box-shadow:0 4px 8px #3b82f666;transform:translateY(-1px)}.swmm-statistics{display:flex;gap:16px;overflow-x:auto;padding:0 24px 20px}.stat-card{align-items:center;background:linear-gradient(145deg,#fff,#f1f5f9);border:1px solid #0000000f;border-radius:12px;box-shadow:0 2px 4px #4c49e90a;display:flex;gap:12px;padding:10px;transition:all .2s ease}.stat-card:hover{box-shadow:0 4px 8px #00000014;transform:translateY(-2px)}.stat-card.critical{border-left:4px solid #dc2626}.stat-card.high{border-left:4px solid #ea580c}.stat-card.medium{border-left:4px solid #d97706}.stat-card.low{border-left:4px solid #16a34a}.stat-card.total{border-left:4px solid #3b82f6}.stat-icon{align-items:center;background:linear-gradient(145deg,#f8fafc,#e2e8f0);border-radius:8px;display:flex;font-size:24px;height:40px;justify-content:center;width:40px}.stat-content{flex:1 1}.stat-value{color:#1f2937;font-size:24px;font-weight:700;line-height:1;margin-bottom:4px}.stat-label{color:#6b7280;font-size:12px;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.swmm-map-container{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 10px 25px #0000001a,0 4px 10px #0000000d;flex:1 1;margin:16px;min-height:500px;overflow:hidden;position:relative;z-index:1}.swmm-node-popup{background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 4px 6px #0000000d,0 1px 3px #0000001a;font-family:Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;min-width:280px;padding:16px}.swmm-node-popup h4{color:#1f2937;font-size:16px;font-weight:600;margin:0 0 8px}.swmm-node-popup p{color:#4b5563;font-size:13px;line-height:1.4;margin:4px 0}.risk-critical{color:#dc2626;font-weight:600}.risk-high{color:#ea580c;font-weight:600}.risk-medium{color:#d97706;font-weight:600}.risk-low{color:#16a34a;font-weight:600}.view-chart-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:10px;box-shadow:0 2px 4px #3b82f64d;color:#fff;cursor:pointer;font-size:14px;font-weight:600;margin-top:12px;padding:12px 20px;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%}.view-chart-btn:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 4px 12px #3b82f666;transform:translateY(-2px)}.swmm-legend{align-items:center;background:linear-gradient(135deg,#fff,#f8fafc);border-radius:16px 16px 0 0;border-top:1px solid #0000000f;box-shadow:0 -4px 6px #0000000d,0 -1px 3px #0000001a;display:flex;flex-wrap:wrap;gap:24px;margin:0 16px 16px;padding:20px 32px;position:relative;z-index:10}.swmm-legend h4{color:#374151;font-size:14px;font-weight:600;margin:0}.legend-items{display:flex;flex-wrap:wrap;gap:20px}.legend-item{align-items:center;color:#4b5563;display:flex;font-size:13px;gap:8px}.legend-color{border:2px solid #fff;border-radius:50%;box-shadow:0 1px 3px #0003;height:12px;width:12px}.legend-color.critical{background:#dc2626}.legend-color.high{background:#ea580c}.legend-color.medium{background:#d97706}.legend-color.low{background:#16a34a}.swmm-page-loading{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;flex-direction:column;height:100vh;justify-content:center;overflow:hidden;position:relative}.swmm-page-loading:before{background:linear-gradient(135deg,#667eea1a,#764ba21a);bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:0}.swmm-loading-container{align-items:center;animation:fadeIn .5s ease-out;background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 10px 25px #0000001a,0 4px 10px #0000000d;display:flex;flex-direction:column;padding:40px;text-align:center;z-index:1}.swmm-loading-spinner{animation:spin 1s linear infinite;border:4px solid #e2e8f0;border-radius:50%;border-top-color:#3b82f6;height:48px;margin-bottom:20px;width:48px}.loading-container h3{color:#1f2937;font-size:20px;font-weight:600;margin:0 0 8px}.loading-container p{color:#6b7280;font-size:14px;margin:0}.swmm-page-error{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;flex-direction:column;height:100vh;justify-content:center;overflow:hidden;position:relative;text-align:center}.swmm-page-error:before{background:linear-gradient(135deg,#667eea1a,#764ba21a);bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:0}.swmm-error-container{align-items:center;animation:fadeIn .5s ease-out;background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 10px 25px #0000001a,0 4px 10px #0000000d;display:flex;flex-direction:column;max-width:400px;padding:40px;z-index:1}.swmm-error-icon{animation:bounce 2s infinite;font-size:64px;margin-bottom:20px}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}.error-container h3{color:#dc2626;font-size:24px;font-weight:600;margin:0 0 12px}.error-container p{color:#6b7280;font-size:16px;line-height:1.5;margin:0 0 24px}.swmm-error-actions{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin-top:24px}.retry-btn,.swmm-back-btn{align-items:center;border:none;border-radius:10px;box-shadow:0 2px 4px #0000001a;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;min-width:120px;padding:12px 24px;transition:all .3s cubic-bezier(.4,0,.2,1)}.swmm-retry-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.retry-btn:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 4px 12px #3b82f666;transform:translateY(-2px)}.swmm-back-btn{background:linear-gradient(135deg,#6b7280,#4b5563);color:#fff}.back-btn:hover{background:linear-gradient(135deg,#4b5563,#374151);box-shadow:0 4px 12px #6b728066;transform:translateY(-2px)}@media (max-width:768px){.header-content{align-items:flex-start;flex-direction:column;gap:16px}.header-title h1{font-size:24px}.swmm-statistics{gap:12px;padding:0 16px 16px}.stat-value{font-size:20px}.swmm-legend{align-items:flex-start;flex-direction:column;gap:12px;padding:12px 16px}.legend-items{gap:16px}}@media (max-width:480px){.legend-items,.swmm-statistics{flex-direction:column;gap:8px}.swmm-error-actions{flex-direction:column;width:100%}.retry-btn,.swmm-back-btn{justify-content:center;width:100%}.loading-container h3{font-size:18px}.error-container h3{font-size:20px}}.stat-card,.swmm-results-page{animation:fadeIn .3s ease-out}.stat-card:first-child{animation-delay:.1s}.stat-card:nth-child(2){animation-delay:.2s}.stat-card:nth-child(3){animation-delay:.3s}.stat-card:nth-child(4){animation-delay:.4s}.stat-card:nth-child(5){animation-delay:.5s}@media (prefers-color-scheme:dark){.swmm-results-page{background:linear-gradient(145deg,#1f2937,#111827)}.swmm-page-header{background:linear-gradient(145deg,#374151,#1f2937);border-color:#ffffff1a}.header-title h1{color:#f9fafb}.header-title p{color:#9ca3af}.stat-card{background:linear-gradient(145deg,#415bcc,#2c62ad);border-color:#ffffff1a}.stat-value{color:#f9fafb}.stat-label{color:#9ca3af}.swmm-legend{background:linear-gradient(145deg,#374151,#1f2937);border-color:#ffffff1a}.swmm-legend h4{color:#f9fafb}.legend-item{color:#d1d5db}}.swmm-input-page{background:#f8fafc;height:auto;margin:0 auto;max-width:1400px;min-height:calc(100vh - 80px);overflow-y:auto;padding:20px}.swmm-input-page::-webkit-scrollbar{width:12px}.swmm-input-page::-webkit-scrollbar-track{background:#f1f5f9;border-radius:6px}.swmm-input-page::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#3b82f6,#1d4ed8);border:2px solid #f1f5f9;border-radius:6px}.swmm-input-page::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#2563eb,#1e40af)}.page-header{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 4px 15px #0000001a;color:#fff;margin-bottom:30px;padding:20px;text-align:center}.page-header h1{font-size:2.5rem;font-weight:700;margin:0 0 10px}.page-header p{font-size:1.1rem;margin:0;opacity:.9}.config-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 10px #00000014;margin-bottom:30px;padding:25px}.config-section h2{color:#2d3748;font-size:1.5rem;font-weight:600;margin:0 0 20px}.config-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.config-item{display:flex;flex-direction:column}.config-item label{color:#4a5568;font-size:.9rem;font-weight:600;margin-bottom:8px}.config-item input,.config-item select{background:#fff;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;padding:12px;transition:all .2s ease}.config-item input:focus,.config-item select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.config-item input:disabled,.config-item select:disabled{background:#f7fafc;color:#a0aec0;cursor:not-allowed}.timeseries-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 10px #00000014;margin-bottom:30px;padding:25px}.timeseries-section h2{color:#2d3748;font-size:1.5rem;font-weight:600;margin:0 0 25px}.data-section{border:1px solid #e2e8f0;border-radius:8px;margin-bottom:40px;overflow:hidden}.section-header{align-items:center;background:#f7fafc;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:15px 20px}.section-header h3{color:#2d3748;font-size:1.2rem;font-weight:600;margin:0}.section-actions{display:flex;gap:10px}.btn-add,.btn-generate{border:none;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;padding:8px 16px;transition:all .2s ease}.btn-add{background:#48bb78;color:#fff}.btn-add:hover:not(:disabled){background:#38a169}.btn-generate{background:#4299e1;color:#fff}.btn-generate:hover:not(:disabled){background:#3182ce}.btn-add:disabled,.btn-generate:disabled{background:#a0aec0;cursor:not-allowed}.data-table-container{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;max-height:500px;overflow-x:auto;overflow-y:auto}.data-table{border-collapse:collapse;width:100%}.data-table th{background:#f7fafc;border-bottom:2px solid #e2e8f0;color:#4a5568;font-size:.9rem;font-weight:600;padding:12px 15px;position:sticky;text-align:left;top:0;z-index:10}.data-table td{border-bottom:1px solid #e2e8f0;padding:12px 15px}.data-table tr:hover{background:#f7fafc}.data-table input{border:1px solid #e2e8f0;border-radius:6px;font-size:.9rem;padding:8px 12px;transition:all .2s ease;width:100%}.data-table input:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea1a;outline:none}.data-table input:disabled{background:#f7fafc;color:#a0aec0;cursor:not-allowed}.btn-remove{background:#f56565;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.8rem;padding:6px 12px;transition:all .2s ease}.btn-remove:hover:not(:disabled){background:#e53e3e}.btn-remove:disabled{background:#a0aec0;cursor:not-allowed}.simulation-controls{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 10px #00000014;margin-bottom:30px;padding:30px;text-align:center}.btn-run-simulation{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;box-shadow:0 4px 15px #667eea4d;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;padding:15px 40px;transition:all .3s ease}.btn-run-simulation:hover:not(:disabled){box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.btn-run-simulation:disabled{background:#a0aec0;box-shadow:none;cursor:not-allowed;transform:none}.loading-indicator{align-items:center;color:#4a5568;display:flex;gap:10px;justify-content:center;margin-top:20px}.spinner{animation:spin 1s linear infinite;border:2px solid #e2e8f0;border-radius:50%;border-top-color:#667eea;height:20px;width:20px}.alert{align-items:flex-start;display:flex;font-size:1rem;gap:15px;margin-bottom:20px;padding:20px}.alert-icon{flex-shrink:0;font-size:1.5rem}.alert-content{flex:1 1}.alert-error{background:#fed7d7;border:1px solid #feb2b2;color:#c53030}.alert-success{background:#c6f6d5;border:1px solid #9ae6b4;color:#2f855a}.alert-content strong{font-weight:600}@media (max-width:768px){.swmm-input-page{height:auto;min-height:calc(100vh - 60px);padding:10px}.page-header{margin-bottom:20px;padding:15px}.page-header h1{font-size:2rem}.config-grid{gap:15px;grid-template-columns:1fr}.config-section,.timeseries-section{margin-bottom:20px;padding:15px}.section-header{align-items:flex-start;flex-direction:column;gap:15px;padding:12px 15px}.section-actions{flex-wrap:wrap;gap:8px;justify-content:flex-start;width:100%}.data-table-container{border-radius:6px;max-height:400px;overflow-x:auto}.data-table{min-width:600px}.data-table td,.data-table th{font-size:.9rem;padding:8px 10px}.simulation-controls{padding:20px 15px}.btn-run-simulation{font-size:1rem;padding:12px 30px;width:100%}}@media (max-width:480px){.page-header h1{font-size:1.5rem}.btn-run-simulation{font-size:1rem;padding:12px 30px}.data-table td,.data-table th{padding:8px 10px}}:root{--toastify-color-light:#fff;--toastify-color-dark:#121212;--toastify-color-info:#3498db;--toastify-color-success:#07bc0c;--toastify-color-warning:#f1c40f;--toastify-color-error:#e74d3c;--toastify-color-transparent:#ffffffb3;--toastify-icon-color-info:var(--toastify-color-info);--toastify-icon-color-success:var(--toastify-color-success);--toastify-icon-color-warning:var(--toastify-color-warning);--toastify-icon-color-error:var(--toastify-color-error);--toastify-container-width:fit-content;--toastify-toast-width:320px;--toastify-toast-offset:16px;--toastify-toast-top:max(var(--toastify-toast-offset),env(safe-area-inset-top));--toastify-toast-right:max(var(--toastify-toast-offset),env(safe-area-inset-right));--toastify-toast-left:max(var(--toastify-toast-offset),env(safe-area-inset-left));--toastify-toast-bottom:max(var(--toastify-toast-offset),env(safe-area-inset-bottom));--toastify-toast-background:#fff;--toastify-toast-padding:14px;--toastify-toast-min-height:64px;--toastify-toast-max-height:800px;--toastify-toast-bd-radius:6px;--toastify-toast-shadow:0px 4px 12px #0000001a;--toastify-font-family:sans-serif;--toastify-z-index:9999;--toastify-text-color-light:#757575;--toastify-text-color-dark:#fff;--toastify-text-color-info:#fff;--toastify-text-color-success:#fff;--toastify-text-color-warning:#fff;--toastify-text-color-error:#fff;--toastify-spinner-color:#616161;--toastify-spinner-color-empty-area:#e0e0e0;--toastify-color-progress-light:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);--toastify-color-progress-dark:#bb86fc;--toastify-color-progress-info:var(--toastify-color-info);--toastify-color-progress-success:var(--toastify-color-success);--toastify-color-progress-warning:var(--toastify-color-warning);--toastify-color-progress-error:var(--toastify-color-error);--toastify-color-progress-bgo:0.2}.Toastify__toast-container{box-sizing:border-box;color:#fff;display:flex;flex-direction:column;position:fixed;-webkit-transform:translateZ(9999);-webkit-transform:translateZ(var(--toastify-z-index));width:fit-content;width:var(--toastify-container-width);z-index:9999;z-index:var(--toastify-z-index)}.Toastify__toast-container--top-left{left:max(16px,env(safe-area-inset-left));left:var(--toastify-toast-left);top:max(16px,env(safe-area-inset-top));top:var(--toastify-toast-top)}.Toastify__toast-container--top-center{align-items:center;left:50%;top:max(16px,env(safe-area-inset-top));top:var(--toastify-toast-top);transform:translateX(-50%)}.Toastify__toast-container--top-right{align-items:end;right:max(16px,env(safe-area-inset-right));right:var(--toastify-toast-right);top:max(16px,env(safe-area-inset-top));top:var(--toastify-toast-top)}.Toastify__toast-container--bottom-left{bottom:max(16px,env(safe-area-inset-bottom));bottom:var(--toastify-toast-bottom);left:max(16px,env(safe-area-inset-left));left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{align-items:center;bottom:max(16px,env(safe-area-inset-bottom));bottom:var(--toastify-toast-bottom);left:50%;transform:translateX(-50%)}.Toastify__toast-container--bottom-right{align-items:end;bottom:max(16px,env(safe-area-inset-bottom));bottom:var(--toastify-toast-bottom);right:max(16px,env(safe-area-inset-right));right:var(--toastify-toast-right)}.Toastify__toast{--y:0;align-items:center;border-radius:6px;border-radius:var(--toastify-toast-bd-radius);box-shadow:0 4px 12px #0000001a;box-shadow:var(--toastify-toast-shadow);box-sizing:border-box;display:flex;flex:1 1 auto;font-family:sans-serif;font-family:var(--toastify-font-family);margin-bottom:1rem;max-height:800px;max-height:var(--toastify-toast-max-height);min-height:64px;min-height:var(--toastify-toast-min-height);padding:14px;padding:var(--toastify-toast-padding);position:relative;touch-action:none;width:320px;width:var(--toastify-toast-width);word-break:break-word;z-index:0}@media only screen and (max-width:480px){.Toastify__toast-container{left:env(safe-area-inset-left);margin:0;width:100vw}.Toastify__toast-container--top-center,.Toastify__toast-container--top-left,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translateX(0)}.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translateX(0)}.Toastify__toast-container--rtl{left:auto;right:env(safe-area-inset-right)}.Toastify__toast{--toastify-toast-width:100%;border-radius:0;margin-bottom:0}}.Toastify__toast-container[data-stacked=true]{width:320px;width:var(--toastify-toast-width)}.Toastify__toast--stacked{position:absolute;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s;width:100%}.Toastify__toast--stacked[data-collapsed] .Toastify__close-button,.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{bottom:100%;content:"";height:calc(var(--g)*1px);left:0;position:absolute;right:0}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{bottom:0;content:"";height:100%;left:0;position:absolute;right:0;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-icon{display:flex;flex-shrink:0;margin-inline-end:10px;width:22px}.Toastify--animate{animation-duration:.5s;animation-fill-mode:both}.Toastify--animate-icon{animation-duration:.3s;animation-fill-mode:both}.Toastify__toast-theme--dark{background:#121212;background:var(--toastify-color-dark);color:#fff;color:var(--toastify-text-color-dark)}.Toastify__toast-theme--colored.Toastify__toast--default,.Toastify__toast-theme--light{background:#fff;background:var(--toastify-color-light);color:#757575;color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{background:#3498db;background:var(--toastify-color-info);color:#fff;color:var(--toastify-text-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{background:#07bc0c;background:var(--toastify-color-success);color:#fff;color:var(--toastify-text-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{background:#f1c40f;background:var(--toastify-color-warning);color:#fff;color:var(--toastify-text-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{background:#e74d3c;background:var(--toastify-color-error);color:#fff;color:var(--toastify-text-color-error)}.Toastify__progress-bar-theme--light{background:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:#bb86fc;background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:#3498db;background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:#07bc0c;background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:#f1c40f;background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:#e74d3c;background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning{background:#ffffffb3;background:var(--toastify-color-transparent)}.Toastify__close-button{background:#0000;border:none;color:#fff;cursor:pointer;opacity:.7;outline:none;padding:0;position:absolute;right:6px;top:6px;transition:.3s ease;z-index:1}.Toastify__toast--rtl .Toastify__close-button{left:6px;right:auto}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:focus,.Toastify__close-button:hover{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{bottom:0;height:100%;left:0;opacity:.7;position:absolute;transform-origin:left;width:100%;z-index:1}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{border-bottom-left-radius:0;left:auto;right:0;transform-origin:right}.Toastify__progress-bar--wrp{border-bottom-left-radius:6px;border-bottom-left-radius:var(--toastify-toast-bd-radius);border-bottom-right-radius:6px;border-bottom-right-radius:var(--toastify-toast-bd-radius);bottom:0;height:5px;left:0;overflow:hidden;position:absolute;width:100%}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{height:100%;opacity:.2;opacity:var(--toastify-color-progress-bgo);width:100%}.Toastify__spinner{animation:Toastify__spin .65s linear infinite;border:2px solid #e0e0e0;border-color:var(--toastify-spinner-color-empty-area);border-radius:100%;border-right-color:#616161;border-right-color:var(--toastify-spinner-color);box-sizing:border-box;height:20px;width:20px}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--bottom-left,.Toastify__bounce-enter--top-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--bottom-right,.Toastify__bounce-enter--top-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--bottom-left,.Toastify__bounce-exit--top-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--bottom-right,.Toastify__bounce-exit--top-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{animation-timing-function:ease-in;opacity:0;transform:perspective(400px) rotateX(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px) rotateX(-20deg)}60%{opacity:1;transform:perspective(400px) rotateX(10deg)}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{opacity:1;transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg)}to{opacity:0;transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg)}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(110%,var(--y),0);visibility:hidden}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(-110%,var(--y),0);visibility:hidden}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(0,500px,0);visibility:hidden}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(0,-500px,0);visibility:hidden}}.Toastify__slide-enter--bottom-left,.Toastify__slide-enter--top-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--bottom-right,.Toastify__slide-enter--top-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--bottom-left,.Toastify__slide-exit--top-left{animation-duration:.3s;animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in}.Toastify__slide-exit--bottom-right,.Toastify__slide-exit--top-right{animation-duration:.3s;animation-name:Toastify__slideOutRight;animation-timing-function:ease-in}.Toastify__slide-exit--top-center{animation-duration:.3s;animation-name:Toastify__slideOutUp;animation-timing-function:ease-in}.Toastify__slide-exit--bottom-center{animation-duration:.3s;animation-name:Toastify__slideOutDown;animation-timing-function:ease-in}@keyframes Toastify__spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.App{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;height:100vh;overflow:hidden;width:100vw}.app-navigation{background:linear-gradient(145deg,#fff,#f8fafc);border-bottom:1px solid #0000000f;box-shadow:0 2px 8px #0000001a;position:relative;z-index:1000}.nav-container{background:#8c98e0;justify-content:space-between;margin:0 auto;max-width:100%;padding:12px 24px}.nav-brand h1,.nav-container{align-items:center;display:flex}.nav-brand h1{color:#1f2937;font-size:20px;font-weight:700;gap:8px;margin:0}.nav-item,.nav-menu{display:flex;gap:8px}.nav-item{align-items:center;background:#0000;border:1px solid #0000001a;border-radius:8px;color:#6b7280;cursor:pointer;font-size:14px;font-weight:600;padding:10px 16px;transition:all .2s ease}.nav-item:hover{background:#3b82f60d;border-color:#3b82f633;color:#3b82f6;transform:translateY(-1px)}.nav-item.active{background:linear-gradient(145deg,#3b82f6,#1d4ed8);border-color:#1d4ed8;box-shadow:0 2px 4px #3b82f64d;color:#fff}.nav-item.active:hover{box-shadow:0 4px 8px #3b82f666;transform:translateY(-1px)}.app-main{flex:1 1;overflow-x:hidden;overflow-y:auto;position:relative}body{background:#f8fafc;margin:0;padding:0}button{font-family:inherit}::-webkit-scrollbar-track{border-radius:4px}button:focus,input:focus,select:focus,textarea:focus{outline:2px solid #3b82f6;outline-offset:2px}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease-out}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.hidden{display:none}.visible{display:block}@media (max-width:768px){.App{height:100vh;width:100vw}.nav-container{align-items:flex-start;flex-direction:column;gap:12px;padding:12px 16px}.nav-brand h1{font-size:18px}.nav-menu{width:100%}.nav-item,.nav-menu{justify-content:center}.nav-item{flex:1 1;font-size:13px;padding:12px 16px}}@media (max-width:480px){.nav-container{padding:8px 12px}.nav-brand h1{font-size:16px}.nav-item{font-size:12px;padding:10px 12px}}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8fafc;color:#1e293b;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#f1f5f9}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.leaflet-container{height:100%;width:100%}.modal-overlay{align-items:center;background-color:#5562dd80;bottom:0;display:flex;justify-content:center;left:0;right:0;top:0}.modal-content{background:#fff;border-radius:1px;box-shadow:0 25px 50px -12px #5583d840;overflow:auto}.btn{border:none;border-radius:8px;cursor:pointer;font-size:.875rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s ease}.btn-primary{background-color:#3b82f6;color:#fff}.btn-primary:hover{background-color:#2563eb}.btn-secondary{background-color:#6b7280;color:#fff}.btn-secondary:hover{background-color:#4b5563}.btn-danger{background-color:#ef4444;color:#fff}.btn-danger:hover{background-color:#dc2626}.card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px 0 #0000001a,0 1px 2px 0 #0000000f;padding:1.5rem}.card-header{border-bottom:1px solid #e2e8f0;margin-bottom:1rem;padding-bottom:1rem}.card-title{color:#1e293b;font-size:1.25rem;font-weight:600;margin:0}.loading-spinner{animation:spin 1s linear infinite;border:3px solid #f3f3f3;border-radius:50%;border-top-color:#3b82f6;display:inline-block;height:20px;width:20px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.alert{border-radius:8px;margin-bottom:1rem;padding:1rem}.alert-success{background-color:#d1fae5;border:1px solid #a7f3d0;color:#065f46}.alert-error{background-color:#fee2e2;border:1px solid #fecaca;color:#991b1b}.alert-warning{background-color:#fef3c7;border:1px solid #fde68a;color:#92400e}.alert-info{background-color:#dbeafe;border:1px solid #bfdbfe;color:#1e40af}@media (max-width:768px){.card{padding:1rem}.modal-content{margin:1rem;padding:1rem}.btn{font-size:.8rem;padding:.5rem 1rem}}
/*# sourceMappingURL=main.546237ea.css.map*/