.modal-overlay{position:fixed;display:flex;justify-content:center;align-items:center;top:0;left:0;right:0;bottom:0;width:100%;height:100%;background-color:#00000080;z-index:99999}.loader{position:absolute;left:50%;top:50%;z-index:100;width:120px;height:120px;margin:-76px 0 0 -76px;border:16px solid #f3f3f3;border-radius:50%;border-top:16px solid #3498db;-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tableFixHead{border-collapse:collapse;width:100%;margin-bottom:0}.tableFixHead thead th{position:sticky;top:0;background-color:#fff;z-index:2;box-shadow:0 1px 2px #00000014;padding:6px 4px;vertical-align:middle;text-align:center;border-top:none}.tableFixHead tbody td,.tableFixHead tbody th{padding:5px 4px;text-align:center;vertical-align:middle}.table-sticky-container{max-height:60vh;overflow-y:auto;overflow-x:auto;width:100%;background-color:#fff}.table-sticky-container table{width:100%;border-collapse:collapse}.table-sticky-container thead th{position:sticky;top:0;background-color:#f8f9fa;z-index:2;box-shadow:0 1px 2px #0000001a;text-align:center;vertical-align:middle}.table-sticky-container tbody td,.table-sticky-container tbody th{text-align:center;vertical-align:middle}.table-sticky-container tbody tr:hover{background-color:#f1f5f9}.custom-scrollbar-view{height:100%;width:100%}.custom-scrollbar-js,.custom-scrollbar-css{height:60vh}.custom-scrollbar-view,.custom-scrollbar-css{overflow-y:scroll;overflow-x:hidden}.custom-scrollbar-view::-webkit-scrollbar,.custom-scrollbar-css::-webkit-scrollbar{width:5px}.custom-scrollbar-view::-webkit-scrollbar-track,.custom-scrollbar-css::-webkit-scrollbar-track{background:#eee}.custom-scrollbar-view::-webkit-scrollbar-thumb,.custom-scrollbar-css::-webkit-scrollbar-thumb{border-radius:1rem;background-color:#00d2ff;background-image:linear-gradient(to top,#00d2ff,#3a7bd5)}body{padding-top:56px;background-color:#f1f5f9;font-family:Sarabun,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:#1e293b;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6,.navbar-brand,.btn,thead th{font-family:Prompt,Sarabun,sans-serif}.modern-table{width:100%;border-collapse:separate;border-spacing:0;background-color:#fff;color:#1e293b}.modern-table thead th{position:sticky;top:0;background-color:#f8fafc;color:#475569;font-weight:600;font-size:.76rem;letter-spacing:.3px;text-transform:uppercase;padding:8px 6px;vertical-align:middle;border-top:none;border-left:none;border-right:none;border-bottom:2px solid #e2e8f0;z-index:5;box-shadow:0 1px 3px #0000000a}.modern-table tbody tr{transition:background-color .15s ease}.modern-table tbody td,.modern-table tbody th{padding:7px 6px;font-size:.82rem;vertical-align:middle;border-top:none;border-left:none;border-right:none;border-bottom:1px solid #f1f5f9}.modern-table tbody tr:hover{background-color:#f8fafc}.modern-table tbody tr.row-selected{background-color:#eff6ff!important;box-shadow:inset 3px 0 #2563eb}.tabular-nums{font-variant-numeric:tabular-nums}.modern-input{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;color:#1e293b;font-size:.82rem;padding:4px 8px;transition:all .2s ease;width:100%}.modern-input:focus{background-color:#fff;border-color:#3b82f6;outline:none;box-shadow:0 0 0 3px #3b82f626}.modern-input:disabled{background-color:#f1f5f9;color:#94a3b8;border-color:#e2e8f0;cursor:not-allowed}.badge-soft-primary{background-color:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.badge-soft-success{background-color:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}.badge-soft-info{background-color:#f0f9ff;color:#0369a1;border:1px solid #bae6fd}.badge-soft-warning{background-color:#fffbeb;color:#b45309;border:1px solid #fde68a}.badge-soft-danger{background-color:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.badge-soft-secondary{background-color:#f8fafc;color:#64748b;border:1px solid #e2e8f0}.dropdown-menu{max-height:360px;overflow-y:auto}.dashboard-container{padding-left:12px;padding-right:12px}.dashboard-row{margin-top:8px;margin-bottom:8px}@media (min-width: 1200px){body{overflow-x:hidden}.dashboard-row{height:calc(100vh - 72px);min-height:520px}.dashboard-card{height:100%!important}}@media (max-width: 1199.98px){.dashboard-card{min-height:480px!important;height:60vh!important;margin-bottom:12px}}.dashboard-card{border:1px solid #dee2e6;border-radius:8px;box-shadow:0 2px 8px #00000014}.gm-style .gm-style-iw-c{padding:8px 10px 8px 12px!important;border-radius:8px!important;box-shadow:0 3px 12px #00000029!important;max-width:290px!important}.gm-style .gm-style-iw-d{padding:0!important;margin:0!important;overflow:hidden!important;max-height:none!important}.gm-style .gm-style-iw-ch,.gm-style .gm-style-iw-chr,.gm-style .gm-style-iw-header{height:0!important;min-height:0!important;padding:0!important;margin:0!important;border:0!important}.gm-style button.gm-ui-hover-effect{position:absolute!important;top:4px!important;right:4px!important;width:24px!important;height:24px!important;padding:0!important;margin:0!important;display:flex!important;align-items:center!important;justify-content:center!important;opacity:.65!important;z-index:10!important}.gm-style button.gm-ui-hover-effect:hover{opacity:1!important}.gm-style button.gm-ui-hover-effect>span{margin:0!important}.telemetry-chart-modal .modal-content{background-color:transparent!important;border:none!important;box-shadow:none!important}._marker_3xdh7_3{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:50%;box-shadow:0 2px 8px #0f172a4d;border:2px solid var(--marker-color, #10b981);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;position:relative;z-index:100}._marker_3xdh7_3:hover{transform:scale(1.15);box-shadow:0 4px 16px #0f172a66}._markerSelected_3xdh7_24{transform:scale(1.25);z-index:1000000;box-shadow:0 0 0 2px #fff,0 4px 20px #2563eb80;border-color:#2563eb}._markerRaining_3xdh7_31{animation:_pulseRing_3xdh7_55 2s ease-out infinite}._markerDelayed_3xdh7_35{opacity:.6;filter:grayscale(.5);border-color:#94a3b8}._markerInner_3xdh7_42{width:16px;height:16px;border-radius:50%;background:var(--marker-color, #10b981);box-shadow:inset 0 -2px 4px #0000001a;transition:transform .15s ease}._marker_3xdh7_3:hover ._markerInner_3xdh7_42{transform:scale(1.1)}._pulseRing_3xdh7_55{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;border:2px solid #2563eb;animation:_pulse_3xdh7_55 1.5s ease-out infinite;pointer-events:none}@keyframes _pulse_3xdh7_55{0%{transform:scale(1);opacity:.6}to{transform:scale(2.2);opacity:0}}@keyframes _pulseRing_3xdh7_55{0%{box-shadow:0 0 #10b98166}70%{box-shadow:0 0 0 8px #10b98100}to{box-shadow:0 0 #10b98100}}._clusterMarker_3xdh7_88{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1e3a8a,#1d4ed8);border-radius:50%;box-shadow:0 3px 12px #1e3a8a66;border:3px solid #ffffff;color:#fff;font-weight:700;font-size:13px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}._clusterMarker_3xdh7_88:hover{transform:scale(1.1);box-shadow:0 4px 20px #1e3a8a80}._clusterMarkerSmall_3xdh7_110{width:32px;height:32px;font-size:11px}._infoBoxCard_3xdh7_117{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%) translateY(-4px);width:260px;background:#fff;border-radius:12px;padding:10px 12px;box-shadow:0 10px 25px -5px #0f172a38,0 8px 10px -6px #0f172a1f,0 0 0 1px #e2e8f0e6;opacity:0;visibility:hidden;transition:opacity .15s ease,visibility .15s ease,transform .15s ease;pointer-events:none;z-index:1000002;font-family:Sarabun,sans-serif;text-align:left;cursor:default}._infoBoxCard_3xdh7_117:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:7px solid transparent;border-top-color:#fff;filter:drop-shadow(0 2px 2px rgba(15,23,42,.1))}._marker_3xdh7_3:hover ._infoBoxCard_3xdh7_117,._marker_3xdh7_3:focus ._infoBoxCard_3xdh7_117,._markerSelected_3xdh7_24 ._infoBoxCard_3xdh7_117{opacity:1;visibility:visible;transform:translate(-50%) translateY(0);pointer-events:auto}._stationBadge_3xdh7_158{background-color:#eff6ff;color:#1d4ed8;font-size:11px;font-weight:700;padding:2px 7px;border-radius:5px;border:1px solid #bfdbfe}._statusBadge_3xdh7_168{font-size:10.5px;font-weight:600;padding:2px 7px;border-radius:12px}._stationName_3xdh7_175{color:#0f172a;font-weight:700;font-size:13.5px;line-height:1.3;margin-top:4px;font-family:Prompt,sans-serif}._stationAddress_3xdh7_184{color:#64748b;font-size:11px;margin-top:2px;line-height:1.35;white-space:normal}._rainBox_3xdh7_192{margin-top:6px;padding:6px 8px;border-radius:8px;border:1px solid #e2e8f0}._rainLabel_3xdh7_199{font-size:11px;color:#475569;font-weight:600}._rainValue_3xdh7_205{font-size:13px;font-weight:700}._rainSubRow_3xdh7_210{display:flex;justify-content:space-between;align-items:center;font-size:9.5px;color:#64748b;margin-top:3px;padding-top:3px;border-top:1px dashed rgba(203,213,225,.7)}._sensorRow_3xdh7_221{display:flex;justify-content:space-between;align-items:center;margin-top:6px;padding:3px 6px;background-color:#f8fafc;border-radius:6px;font-size:9.5px;color:#334155;font-weight:500}._actionRow_3xdh7_234{display:flex;align-items:center;gap:6px;margin-top:8px}._marker_3xdh7_3:hover{z-index:1000001}._marker_3xdh7_3:focus-visible{outline:2px solid #2563eb;outline-offset:2px}
