*{box-sizing:border-box;margin:0;padding:0}html{width:100%;height:100%}body{-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;color:#1e293b;background-image:url(/fortune_bg.jpg);background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed;width:100%;min-height:100%;margin:0;padding:0;font-family:Kanit,sans-serif}#root{flex-direction:column;min-height:100vh;display:flex}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f5f9}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.app-container{flex-direction:column;min-height:100vh;display:flex}.navbar{z-index:100;background:#fff;border-bottom:1px solid #e2e8f0;position:sticky;top:0;box-shadow:0 2px 8px #0000000a}.nav-content{justify-content:space-between;align-items:center;max-width:1720px;margin:0 auto;padding:12px 28px;display:flex}.brand{color:#1e293b;align-items:center;gap:12px;font-size:1.25rem;font-weight:700;text-decoration:none;display:flex}.brand-logo{object-fit:contain;width:auto;max-width:180px;height:36px;transition:transform .2s;display:block}.brand:hover .brand-logo{transform:scale(1.04)}.brand-icon{color:#fff;background:linear-gradient(135deg,#2563eb,#3b82f6);border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;display:flex;box-shadow:0 4px 10px #2563eb4d}.nav-links{align-items:center;gap:12px;display:flex}.nav-btn{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:8px;padding:8px 16px;font-family:inherit;font-size:.95rem;font-weight:500;transition:all .2s;display:inline-flex}.nav-btn.active{color:#2563eb;background:#eff6ff;font-weight:600}.nav-btn.secondary{color:#475569;background:#f8fafc;border:1px solid #e2e8f0}.nav-btn.secondary:hover{color:#1e293b;background:#f1f5f9}.nav-btn.primary{color:#fff;background:#2563eb}.nav-btn.primary:hover{background:#1d4ed8}.nav-btn.sync{color:#fff;background:#10b981}.nav-btn.sync:hover{background:#059669}.nav-btn.logout{color:#b91c1c;background:#fee2e2}.nav-btn.logout:hover{background:#fecaca}.user-badge{color:#334155;background:#f1f5f9;border-radius:20px;align-items:center;gap:6px;padding:6px 14px;font-size:.9rem;font-weight:500;display:inline-flex}.dashboard-main{flex:1;width:100%;max-width:1720px;margin:0 auto;padding:20px 28px}.dashboard-header{-webkit-backdrop-filter:blur(14px);background:#fffffff5;border:1px solid #ffffffe6;border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;padding:18px 26px;display:flex;box-shadow:0 8px 30px #00000014}.header-title h1{color:#0f172a;font-size:1.6rem;font-weight:700}.header-title p{color:#475569;margin-top:4px;font-size:.92rem;font-weight:500}.highlight-time{color:#2563eb;background:#eff6ff;border-radius:6px;padding:2px 8px;font-weight:700}.tank-view-controls{background:#f1f5f9;border:1px solid #cbd5e1;border-radius:12px;align-items:center;gap:8px;padding:4px;display:flex}.tank-view-btn{color:#334155;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 16px;font-family:inherit;font-size:.88rem;font-weight:700;transition:all .2s}.tank-view-btn:hover{color:#0f172a;background:#e2e8f0}.tank-view-btn.active{color:#fff;background:#0284c7;box-shadow:0 2px 8px #0284c759}.quick-compare-bar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffffa;border:1px solid #e2e8f0f2;border-radius:14px;flex-wrap:wrap;justify-content:space-around;align-items:center;gap:14px;margin-bottom:22px;padding:12px 22px;display:flex;box-shadow:0 3px 14px #0000000d}.compare-item{align-items:center;gap:8px;font-size:.95rem;display:flex}.compare-dot{border-radius:50%;flex-shrink:0;width:12px;height:12px}.compare-dot.device-1{background:#2563eb;box-shadow:0 0 8px #2563eb}.compare-dot.device-2{background:#db2777;box-shadow:0 0 8px #db2777}.compare-label{color:#1e293b;font-weight:600}.compare-val{color:#0f172a;font-weight:800}.compare-pct{color:#475569;font-size:.88rem;font-weight:600}.compare-delta-badge{color:#166534;background:#ecfdf5;border:1px solid #86efac;border-radius:20px;padding:5px 16px;font-size:.9rem;font-weight:700}.tanks-comparison-grid{grid-template-columns:repeat(2,1fr);align-items:stretch;gap:22px;margin-bottom:24px;display:grid}.tank-single-container{margin-bottom:24px}.tank-dashboard-card{-webkit-backdrop-filter:blur(16px);background:#fffffffa;border:1px solid #e2e8f0f2;border-radius:20px;flex-direction:column;justify-content:space-between;height:100%;padding:22px;display:flex;box-shadow:0 10px 30px #00000014}.tank-dashboard-card:hover{box-shadow:0 14px 38px #0000001f}.tank-card-header{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:flex-start;gap:12px;min-height:52px;margin-bottom:16px;padding-bottom:14px;display:flex}.tank-header-left{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.tank-device-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.device-id-tag{color:#fff;letter-spacing:.5px;background:#0f172a;border-radius:6px;flex-shrink:0;padding:3px 8px;font-size:.75rem;font-weight:800}.tank-title-text{color:#0f172a;white-space:nowrap;margin:0;font-size:1.2rem;font-weight:800}.tank-update-time{color:#475569;font-size:.8rem;font-weight:600}.tank-header-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.status-pill{border-radius:20px;align-items:center;gap:5px;padding:4px 12px;font-size:.82rem;font-weight:700;display:inline-flex}.status-pill.status-normal{color:#047857;background:#ecfdf5;border:1px solid #6ee7b7}.status-pill.status-warning{color:#b45309;background:#fffbeb;border:1px solid #fcd34d}.status-pill.status-danger{color:#b91c1c;background:#fef2f2;border:1px solid #fca5a5}.status-pill.status-offline{color:#475569;background:#f1f5f9;border:1px solid #cbd5e1}.connection-pill{border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-size:.8rem;font-weight:700;display:inline-flex}.connection-pill.online{color:#15803d;background:#dcfce7;border:1px solid #86efac}.connection-pill.offline{color:#b91c1c;background:#fee2e2;border:1px solid #fca5a5}.tank-content-grid{flex:1;grid-template-columns:minmax(130px,1fr) auto minmax(130px,1fr);justify-content:center;align-items:center;gap:16px;margin-bottom:14px;display:grid}.comparison-mode .tank-content-grid{grid-template-columns:minmax(140px,1fr) clamp(160px,28%,220px) minmax(140px,1fr);gap:16px}.single-mode .tank-content-grid{grid-template-columns:280px 1fr 280px;gap:28px}.tank-metric-column{flex-direction:column;gap:10px;display:flex}.metric-column-title{color:#0f172a;text-align:center;margin-bottom:2px;font-size:1.1rem;font-weight:800}.tank-submetric-card{box-sizing:border-box;background:#fff;border:1px solid #cbd5e1;border-radius:12px;align-items:center;gap:10px;height:72px;min-height:72px;padding:10px 14px;transition:all .2s;display:flex;box-shadow:0 2px 6px #00000008}.comparison-mode .tank-submetric-card{gap:10px;height:72px;min-height:72px;padding:10px 12px}.tank-submetric-card:hover{border-color:#94a3b8;transform:translateY(-1px);box-shadow:0 4px 10px #0000000f}.metric-icon-box{flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.metric-text-box{flex-direction:column;flex:1;justify-content:center;min-width:0;display:flex;overflow:hidden}.metric-label{color:#1e293b;white-space:nowrap;letter-spacing:-.2px;font-size:.84rem;font-weight:700;line-height:1.25}.metric-value-row{white-space:nowrap;flex-wrap:nowrap;align-items:baseline;gap:4px;margin:1px 0;display:flex}.metric-main-val{color:#0f172a;font-feature-settings:"tnum";font-size:1.22rem;font-weight:800;line-height:1.15}.metric-unit{color:#334155;white-space:nowrap;font-size:.8rem;font-weight:700}.metric-alt-unit{color:#64748b;white-space:nowrap;font-size:.74rem;font-weight:600}.comparison-mode .metric-alt-unit{display:none}.metric-sublabel{color:#2563eb;white-space:nowrap;font-size:.73rem;font-weight:600;line-height:1.2}.metric-sublabel.pending{color:#64748b;font-weight:500}.tank-graphic-column{justify-content:center;align-items:center;width:100%;display:flex}.tank-illustration-wrapper.vertical-wrapper{justify-content:center;align-items:center;width:100%;max-width:240px;display:flex}.comparison-mode .tank-illustration-wrapper.vertical-wrapper{max-width:220px}.single-mode .tank-illustration-wrapper.vertical-wrapper{max-width:260px}.vertical-water-tank-svg{filter:drop-shadow(0 6px 16px #00000014);width:100%;height:auto;max-height:330px;display:block}@keyframes wave-slide-front{0%{transform:translate(0)}to{transform:translate(-280px)}}@keyframes wave-slide-back{0%{transform:translate(-140px)}to{transform:translate(140px)}}.animated-wave.wave-front{animation:6s linear infinite wave-slide-front}.animated-wave.wave-back{animation:9s linear infinite alternate wave-slide-back}@keyframes bubble-rise{0%{opacity:.2;transform:translateY(0)scale(.8)}50%{opacity:.8}to{opacity:0;transform:translateY(-90px)scale(1.2)}}.bubble{animation:3.2s ease-in infinite bubble-rise}.bubble-1{animation-duration:3s;animation-delay:.2s}.bubble-2{animation-duration:3.8s;animation-delay:1s}.bubble-3{animation-duration:2.7s;animation-delay:2.1s}.bubble-4{animation-duration:3.5s;animation-delay:.6s}.bubble-5{animation-duration:4.1s;animation-delay:1.6s}.bubble-6{animation-duration:2.9s;animation-delay:2.6s}.tank-card-footer{color:#334155;border-top:1px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;padding-top:12px;font-size:.84rem;font-weight:600;display:flex}.tank-footer-left{flex-direction:column;gap:6px;display:flex}.tank-limits-info{align-items:center;gap:6px;display:flex}.limit-title-tag{color:#0f172a;font-weight:700}.limit-pill{border-radius:6px;padding:2px 8px;font-weight:700}.limit-pill.low{color:#b45309;background:#fef3c7;border:1px solid #fde68a}.limit-pill.high{color:#1e293b;background:#f1f5f9;border:1px solid #cbd5e1}.limit-divider{color:#94a3b8}.tank-formula-note{color:#64748b;align-items:center;gap:6px;font-size:.77rem;font-weight:500;line-height:1.4;display:flex}.formula-note-tag{color:#475569;font-weight:700}.formula-note-text{color:#64748b}.formula-note-text strong{color:#0f172a;font-weight:600}.tank-device-key code{color:#1e293b;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:4px;padding:2px 6px;font-size:.76rem;font-weight:600}.charts-toggle-section{justify-content:center;margin:16px 0 24px;display:flex}.chart-toggle-btn{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#334155;cursor:pointer;background:#ffffffe6;border:1px solid #cbd5e1;border-radius:30px;align-items:center;gap:8px;padding:10px 22px;font-family:inherit;font-size:.92rem;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:0 4px 14px #0000000d}.chart-toggle-btn:hover{color:#2563eb;background:#fff;border-color:#93c5fd;transform:translateY(-1px);box-shadow:0 6px 18px #2563eb1f}.chart-box-large{background:#fff;border:1px solid #e2e8f0;border-radius:16px;margin-bottom:24px;padding:24px;box-shadow:0 4px 16px #0000000a}.charts-grid{grid-template-columns:repeat(auto-fit,minmax(480px,1fr));gap:20px;margin-bottom:24px;display:grid}@media (width<=768px){.charts-grid{grid-template-columns:1fr}}.chart-box{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:20px;box-shadow:0 4px 16px #0000000a}.chart-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.chart-title{color:#1e293b;flex-wrap:wrap;align-items:center;gap:10px;font-size:1.08rem;font-weight:600;display:flex}.chart-range-active-badge{color:#2563eb;white-space:nowrap;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;padding:2px 8px;font-size:.76rem;font-weight:600}.chart-header-actions{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.chart-range-picker{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;align-items:center;gap:4px;padding:3px;display:inline-flex}.chart-range-label{color:#64748b;align-items:center;gap:5px;padding:0 4px 0 8px;font-size:.78rem;font-weight:600;display:inline-flex}.chart-range-buttons{background:#edf2f7;border-radius:8px;align-items:center;gap:3px;padding:2px;display:flex}.chart-range-btn{color:#64748b;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;align-items:center;gap:5px;padding:4px 10px;font-family:inherit;font-size:.8rem;font-weight:600;transition:all .18s;display:inline-flex}.chart-range-btn:hover{color:#1e293b;background:#ffffffb3}.chart-range-btn.active{color:#2563eb;background:#fff;font-weight:700;box-shadow:0 1px 4px #00000014}.chart-range-btn .btn-badge{color:#64748b;background:#0000000f;border-radius:4px;padding:1px 5px;font-size:.68rem;font-weight:500}.chart-range-btn.active .btn-badge{color:#1d4ed8;background:#dbeafe;font-weight:700}.chart-time{color:#64748b;white-space:nowrap;font-size:.82rem;font-weight:500}@media (width<=768px){.chart-header{flex-direction:column;align-items:flex-start}.chart-header-actions{justify-content:space-between;width:100%}.chart-range-picker{width:100%;overflow-x:auto}.chart-range-btn .btn-badge{display:none}}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0f172aa6;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:16px;width:100%;max-width:650px;animation:.2s ease-out modalIn;overflow:hidden;box-shadow:0 20px 40px #0003}@keyframes modalIn{0%{opacity:0;transform:scale(.95)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.modal-header h3{align-items:center;gap:8px;font-size:1.25rem;font-weight:600;display:flex}.modal-close-btn{color:#fff;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;display:flex}.modal-close-btn:hover{background:#fff3}.modal-body{padding:24px}.form-group{margin-bottom:18px}.form-group label{color:#334155;margin-bottom:8px;font-size:.95rem;font-weight:600;display:block}.form-control{color:#1e293b;border:1px solid #cbd5e1;border-radius:8px;outline:none;width:100%;padding:10px 14px;font-family:inherit;font-size:.95rem;transition:border-color .2s}.form-control:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.sensor-checkboxes-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;max-height:180px;padding:14px;overflow-y:auto}.checkbox-item{cursor:pointer;-webkit-user-select:none;user-select:none;color:#334155;align-items:center;gap:10px;padding:6px 0;font-size:.95rem;display:flex}.checkbox-item input[type=checkbox]{cursor:pointer;width:18px;height:18px}.checkbox-divider{background:#e2e8f0;height:1px;margin:8px 0}.modal-footer{background:#f8fafc;border-top:1px solid #e2e8f0;justify-content:flex-end;align-items:center;gap:12px;padding:16px 24px;display:flex}.login-wrapper{background-image:linear-gradient(#0f172a73,#0f172aa6),url(/fortune_bg.jpg);background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{-webkit-backdrop-filter:blur(16px);text-align:center;background:#fffffff5;border:1px solid #ffffffe6;border-radius:20px;width:100%;max-width:440px;padding:40px;box-shadow:0 25px 60px -15px #00000073}.login-logo{object-fit:contain;filter:drop-shadow(0 4px 10px #00000014);width:auto;max-width:250px;height:48px;margin-bottom:20px;display:inline-block}.login-icon{color:#fff;background:linear-gradient(135deg,#2563eb,#3b82f6);border-radius:18px;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:20px;display:inline-flex;box-shadow:0 10px 20px #2563eb4d}.login-card h2{color:#0f172a;margin-bottom:8px;font-size:1.6rem;font-weight:700}.login-card p{color:#64748b;margin-bottom:24px;font-size:.95rem}.password-input-wrapper{align-items:center;display:flex;position:relative}.password-input-wrapper .password-input{padding-right:44px}.password-toggle-btn{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:6px;transition:all .2s;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.password-toggle-btn:hover{color:#2563eb;background:#eff6ff}.login-remember-row{text-align:left;justify-content:flex-start;align-items:center;margin:12px 0 16px;display:flex}.remember-checkbox-label{color:#334155;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:.9rem;font-weight:500;transition:color .15s;display:inline-flex}.remember-checkbox-label:hover{color:#0f172a}.remember-checkbox-label input[type=checkbox]{accent-color:#2563eb;cursor:pointer;border-radius:4px;width:17px;height:17px}.login-btn{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:10px;width:100%;margin-top:4px;padding:12px;font-family:inherit;font-size:1rem;font-weight:600;transition:background .2s}.login-btn:hover{background:#1d4ed8}.login-btn:disabled{cursor:not-allowed;background:#94a3b8}.login-tip{color:#64748b;margin-top:18px;font-size:.85rem}.app-footer{text-align:center;color:#64748b;background:#fff;border-top:1px solid #e2e8f0;padding:16px 24px;font-size:.9rem}@media (width<=1200px){.tanks-comparison-grid{grid-template-columns:1fr}}@media (width<=900px){.tank-content-grid,.comparison-mode .tank-content-grid{grid-template-columns:1fr 1fr;gap:14px}.tank-graphic-column{order:1;grid-column:1/-1;margin-bottom:12px}.left-metrics{order:2}.right-metrics{order:3}.tank-view-controls{justify-content:flex-start;width:100%;overflow-x:auto}.tank-view-btn{white-space:nowrap}}@media (width<=640px){.dashboard-main{padding:12px 10px}.dashboard-header{flex-direction:column;align-items:flex-start;gap:12px;padding:14px 16px}.header-title h1{font-size:1.3rem}.header-title p{font-size:.82rem}.tank-view-controls{background:0 0;border:none;flex-direction:column;gap:6px;width:100%;padding:0;display:flex}.tank-view-btn{text-align:center;background:#ffffffe6;border:1px solid #cbd5e1;border-radius:8px;width:100%;padding:8px 12px;font-size:.85rem}.tank-view-btn.active{color:#fff;background:#0284c7;border-color:#0284c7}.quick-compare-bar{text-align:center;flex-direction:column;align-items:stretch;gap:8px;padding:12px 14px}.compare-item{justify-content:center}.compare-delta-badge{text-align:center}.tank-dashboard-card{border-radius:16px;padding:14px}.tank-card-header{flex-direction:column;align-items:flex-start;gap:8px}.tank-header-right{justify-content:space-between;width:100%}.tank-content-grid,.comparison-mode .tank-content-grid{grid-template-columns:1fr;gap:10px}.left-metrics{order:2}.right-metrics{order:3}.tank-submetric-card{padding:8px 10px}.metric-main-val{font-size:1.15rem}.navbar{position:static}.nav-content{flex-direction:column;align-items:flex-start;gap:10px;padding:10px 14px}.nav-links{justify-content:space-between;gap:6px;width:100%}.nav-btn{gap:4px;padding:6px 10px;font-size:.8rem}.user-badge{padding:4px 8px;font-size:.78rem}.brand span{font-size:.95rem}.brand-logo{height:34px}.chart-box-large,.chart-box{border-radius:14px;padding:14px}}
