:root{--primary:#2c3e50;--accent:#3498db;--bg-light:#f8f9fa;--text-dark:#333;--status-normal:#27ae60;--status-warning:#f39c12;--status-critical:#c0392b;--status-high:#c0392b;--status-disabled:#95a5a6;--shadow:0 4px 6px #0000001a}*{box-sizing:border-box;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:0;padding:0}body{background-color:#f8f9fa;background-color:var(--bg-light);color:#333;color:var(--text-dark);display:flex;flex-direction:column;min-height:100vh}#root,.dashboard{display:flex;flex:1 1;flex-direction:column;min-height:100vh}header{align-items:center;background:#fff;box-shadow:0 2px 4px #0000000d;box-sizing:border-box;display:flex!important;flex-shrink:0;flex-wrap:wrap;gap:.5rem;justify-content:space-between;left:0;margin:0;padding:1rem 1.5rem 1rem 2rem;position:fixed;right:0;top:0;width:100%;z-index:1000}.logo{color:#2c3e50;color:var(--primary);flex-wrap:wrap;font-size:1.5rem;font-weight:700}.logo,.logo-group{align-items:center;display:flex;gap:1.25rem}.logo-img{display:block;height:68px;object-fit:contain;width:auto}.logo-img-rmi{height:54.4px}.logo-divider{align-self:center;background:#0000001f;flex-shrink:0;min-height:40px;width:1px}.logo-text{letter-spacing:.02em;line-height:1.2;padding-left:.25rem}.user-info{color:#2c3e50;color:var(--primary);font-size:.9rem;gap:.75rem}.user-badge,.user-info{align-items:center;display:flex}.user-badge{background:#0000;border:1px solid #27ae60;border:1px solid var(--status-normal);border-radius:15px;gap:.5rem;padding:.4rem .8rem;transition:all .2s}.user-badge-clickable{cursor:pointer}.user-badge-clickable:hover{background:#27ae60;background:var(--status-normal);color:#fff}.user-badge-clickable:hover .username{color:#fff}.user-badge-clickable:hover .user-icon{background:#fff;color:#27ae60;color:var(--status-normal)}.user-badge .user-icon{align-items:center;background:#27ae60;background:var(--status-normal);border-radius:50%;color:#fff;display:flex;font-size:.75rem;font-weight:700;height:20px;justify-content:center;transition:all .2s;width:20px}.user-badge .username{color:#2c3e50;color:var(--primary)}.logout-btn,.user-badge .username{font-weight:600;transition:all .2s}.logout-btn{background:#0000;border:1px solid #c0392b;border:1px solid var(--status-critical);border-radius:15px;color:#c0392b;color:var(--status-critical);cursor:pointer;font-size:.8rem;margin-left:.5rem;padding:.4rem .8rem}.logout-btn:hover{background:#c0392b;background:var(--status-critical);color:#fff}.settings-btn{background:#0000;border:1px solid #3498db;border:1px solid var(--accent);border-radius:15px;color:#3498db;color:var(--accent);cursor:pointer;font-size:.8rem;font-weight:600;margin-right:.5rem;padding:.4rem .8rem;transition:all .2s}.settings-btn:hover{background:#3498db;background:var(--accent);color:#fff}.home-btn-header{background:#0000;border:1px solid #27ae60;border-radius:15px;color:#27ae60;cursor:pointer;font-size:.8rem;font-weight:600;margin-right:.5rem;padding:.4rem .8rem;transition:all .2s}.home-btn-header:hover{background:#27ae60;color:#fff}.help-btn-header{background:#0000;border:1px solid #3498db;border:1px solid var(--accent);border-radius:15px;color:#3498db;color:var(--accent);cursor:pointer;font-size:.8rem;font-weight:600;margin-right:.5rem;padding:.4rem .8rem;transition:all .2s}.help-btn-header:hover{background:#3498db;background:var(--accent);color:#fff}.auth-buttons{align-items:center;display:flex;gap:.75rem}.login-btn,.signup-btn{border:none;border-radius:15px;cursor:pointer;font-size:.85rem;font-weight:600;padding:.5rem 1rem;transition:all .2s}.login-btn{background:#0000;border:1px solid #3498db;border:1px solid var(--accent);color:#3498db;color:var(--accent)}.login-btn:hover{background:#3498db;background:var(--accent);color:#fff}.signup-btn{background:linear-gradient(135deg,#3498db,#2980b9);background:linear-gradient(135deg,var(--accent) 0,#2980b9 100%);color:#fff}.signup-btn:hover{background:linear-gradient(135deg,#2980b9,#3498db);background:linear-gradient(135deg,#2980b9 0,var(--accent) 100%);box-shadow:0 4px 8px #3498db4d;transform:translateY(-1px)}.ticker-wrap{background-color:#333;box-sizing:border-box;color:#fff;display:block!important;flex-shrink:0;font-size:.9rem;height:2rem;left:0;line-height:2rem;margin:0;overflow:hidden;padding:0;position:fixed;right:0;top:70px;transition:background-color .5s ease;white-space:nowrap;width:100%;z-index:999}.ticker-content{animation:ticker 35s linear infinite;display:inline-block;padding-left:100%;white-space:nowrap}@keyframes ticker{0%{transform:translateZ(0)}to{transform:translate3d(-100%,0,0)}}.ticker-wrap.warning-mode{background-color:#c0392b;background-color:var(--status-critical)}.breadcrumb-bar{-webkit-overflow-scrolling:touch;background:#e9ecef!important;border-bottom:1px solid #ddd!important;border-top:none!important;box-sizing:border-box!important;color:#666!important;display:block!important;flex-shrink:0;font-size:.9rem;left:0!important;margin:0!important;opacity:1!important;overflow-x:auto;overflow-y:hidden;padding:.5rem 2rem;position:fixed!important;right:0!important;top:102px;visibility:visible!important;white-space:nowrap;width:100%!important;z-index:998!important}.breadcrumb-bar::-webkit-scrollbar{height:3px}.breadcrumb-bar::-webkit-scrollbar-track{background:#0000}.breadcrumb-bar::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}.back-btn{color:#3498db;color:var(--accent);cursor:pointer;margin-right:5px;text-decoration:underline}.current-crumb{color:#2c3e50;color:var(--primary);font-weight:700}main{box-sizing:border-box;flex:1 1;margin:140px auto 0;max-width:1600px;min-height:calc(100vh - 140px);overflow-x:hidden;overflow-y:auto;padding:1rem 2rem 2rem;width:100%}.intro-section{margin:0 auto 2rem;max-width:900px;text-align:center}.intro-section h1{color:#2c3e50;color:var(--primary);margin-bottom:1rem}.intro-section p{color:#555;display:block;font-size:1.1rem;line-height:1.6;width:100%}.city-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(7,1fr);padding:1rem;width:100%}.city-carousel{overflow-x:hidden;padding:0 3rem;position:relative}.city-carousel-inner{backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;gap:1rem;perspective:1000px;-webkit-perspective:1000px;transform:translateZ(0);-webkit-transform:translateZ(0);transition:transform .7s ease;will-change:transform}.city-card{align-items:center;aspect-ratio:1;background-color:#ddd;background-position:50%;background-size:cover;border:none;border-radius:12px;box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow);color:#fff;cursor:pointer;display:flex;font-family:inherit;font-size:1.2rem;font-weight:700;height:200px;justify-content:center;padding:0;text-shadow:0 2px 8px #000000e6;transition:transform .3s ease,box-shadow .3s ease}.city-card:hover{box-shadow:0 12px 20px #00000040;transform:translateY(-5px);z-index:10}.carousel-pagination-wrapper{gap:1rem;margin-bottom:.5rem;margin-top:1rem}.carousel-pagination,.carousel-pagination-wrapper{align-items:center;display:flex;justify-content:center}.carousel-pagination{gap:.5rem}.carousel-nav-arrow{align-items:center;background:#3498db;border:none;border-radius:50%;box-shadow:0 2px 8px #0003;color:#fff;cursor:pointer;display:flex;font-size:1.5rem;height:36px;justify-content:center;line-height:1;outline:none;padding:0;transition:all .3s ease;width:36px}.carousel-nav-arrow:hover:not(:disabled){background:#2980b9;box-shadow:0 4px 12px #0000004d;transform:scale(1.1)}.carousel-nav-arrow:disabled{background:#e9ecef;color:#adb5bd;cursor:not-allowed;opacity:.6}.carousel-dot{background-color:#bdc3c7;border:none;border-radius:5px;cursor:pointer;height:10px;outline:none;padding:0;transition:all .3s ease;width:10px}.carousel-dot:hover{background-color:#95a5a6;transform:scale(1.2)}.carousel-dot.active{background-color:#3498db;width:24px}.carousel-dot:disabled{cursor:not-allowed;opacity:.6}.dashboard-header{border-bottom:2px solid #e9ecef;margin-bottom:1rem;padding-bottom:.75rem;text-align:center}.dashboard-header h2{color:#2c3e50;color:var(--primary);font-weight:700;letter-spacing:-.5px}.summary-layout{grid-gap:2rem;align-items:start;display:grid;gap:2rem;grid-template-columns:400px 1fr}@media (max-width:1024px){.summary-layout{grid-template-columns:1fr}.priority-column{max-height:none!important;position:relative!important}.visualization-container{grid-template-columns:1fr!important;height:auto;min-height:400px}.visualization-container.full-width-map{grid-template-columns:1fr}.trend-container{height:auto;min-height:400px}.map-container{height:400px;min-height:400px}.status-breakdown-container{flex-direction:row}.status-breakdown-container>div{flex:1 1;min-width:0}.indicator-status-grid-inner{grid-template-columns:1fr 1fr!important}}@media (max-width:768px){.severity-charts-grid{grid-template-columns:1fr!important}.severity-chart-container{height:300px!important}.severity-legend{grid-template-columns:auto 1fr!important;padding:.4rem .8rem!important}.severity-legend>div,.severity-legend>span{font-size:.7rem!important}.status-breakdown-container{flex-direction:column!important}.status-breakdown-container>div{flex:1 1 100%!important;min-width:100%}.indicator-status-grid-inner{grid-template-columns:1fr 1fr!important}}@media (min-width:481px) and (max-width:770px){.breadcrumb-bar{background:#e9ecef!important;border-bottom:1px solid #ddd!important;border-top:none!important;box-sizing:border-box!important;color:#666!important;display:block!important;font-size:.85rem!important;height:auto!important;left:0!important;margin:0!important;min-height:2.5rem!important;opacity:1!important;padding:.4rem 1rem!important;position:fixed!important;right:0!important;visibility:visible!important;width:100%!important;z-index:998!important}main{margin-top:calc(70px + 4.25rem)!important;padding-top:1rem!important}}@media (max-width:768px){.severity-charts-grid{grid-template-columns:1fr!important}.severity-chart-container{height:300px!important}.severity-legend{grid-template-columns:auto 1fr!important;padding:.4rem .8rem!important}.severity-legend>div,.severity-legend>span{font-size:.7rem!important}.status-breakdown-container>div{flex:1 1 100%!important;min-width:100%}.indicator-status-grid-inner{grid-template-columns:1fr 1fr!important}.date-range-selector{flex-wrap:wrap}.date-range-selector>div{flex-wrap:wrap;gap:.4rem}.date-range-selector select{min-width:110px!important}header{padding:.75rem 1rem}.logo,header{flex-wrap:wrap}.logo{font-size:1rem;line-height:1.3;margin-bottom:.5rem;width:100%}.logo,.logo-group{gap:1rem}.logo-divider{min-height:32px}.logo-img{height:52px}.logo-img-rmi{height:41.6px}.logo span{display:block;font-size:.85rem;line-height:1.4;margin-top:.25rem}.auth-buttons,.user-info{flex-wrap:wrap;gap:.5rem;justify-content:flex-end;width:100%}.help-btn-header,.home-btn-header,.login-btn,.settings-btn,.signup-btn{font-size:.75rem;padding:.35rem .65rem}.user-badge{font-size:.8rem;padding:.4rem .8rem}.user-badge .username{display:none}header{height:auto;min-height:70px}.ticker-wrap{font-size:.8rem;height:1.75rem;line-height:1.75rem;padding:0!important;z-index:999!important}.breadcrumb-bar,.ticker-wrap{display:block!important;margin:0!important;position:fixed!important}.breadcrumb-bar{-webkit-overflow-scrolling:touch!important;background:#e9ecef!important;border-bottom:1px solid #ddd!important;border-top:none!important;box-sizing:border-box!important;color:#666!important;font-size:.85rem!important;height:auto!important;left:0!important;max-height:none!important;min-height:2.5rem!important;opacity:1!important;overflow-x:auto!important;padding:.4rem 1rem!important;right:0!important;visibility:visible!important;white-space:nowrap!important;width:100%!important;z-index:998!important}.breadcrumb-bar::-webkit-scrollbar{height:2px}main{box-sizing:border-box!important;margin-top:calc(70px + 4.25rem)!important;padding:1rem!important}.intro-section{padding:0 .5rem}.intro-section h1{font-size:1.75rem}.intro-section p{font-size:1rem;text-align:left}.city-carousel{padding:0 2.5rem}.city-card{font-size:1rem;height:150px}.dashboard-header h2{font-size:1.5rem}.indicator-status-grid{gap:.4rem;grid-template-columns:repeat(3,1fr)}.indicator-status-grid-inner{grid-template-columns:1fr!important}.status-breakdown-container{flex-direction:column!important}.indicator-status-item .count{font-size:1.25rem}.indicator-status-item .label{font-size:.65rem}.detail-layout{gap:.25rem}.detail-view-header{padding:.6rem .75rem!important}.detail-view-header h3{font-size:.95rem!important}.indicator-tabs-container,.power-outage-mode-selector{padding:.5rem .75rem}.indicator-tabs-container h4,.power-outage-mode-selector h4{font-size:.85rem;margin-bottom:.4rem}.indicator-tabs,.indicator-tags-grid{gap:.4rem;grid-template-columns:1fr!important}.indicator-tab{font-size:.75rem;padding:8px 10px}.power-mode-tabs{gap:.4rem;grid-template-columns:1fr}.power-mode-tab{font-size:.7rem;padding:.5rem}.visualization-container{gap:.75rem;grid-template-columns:1fr!important;height:auto;min-height:350px}.map-container{height:350px;min-height:350px}.trend-container{height:auto;min-height:350px}.trend-header{flex-wrap:wrap;font-size:.85rem;gap:.5rem;padding:.6rem}.ward-selected{font-size:.7rem}.reset-ward-btn{font-size:.7rem;padding:3px 10px}.weather-info{padding:.6rem}.weather-info-title{font-size:.75rem;margin-bottom:.4rem}.weather-stats-grid{gap:.4rem;grid-template-columns:repeat(3,1fr)}.weather-stat-item{padding:.4rem}.weather-stat-label{font-size:.65rem}.weather-stat-value{font-size:1.1rem}.weather-stat-unit{font-size:.8rem}.recommended-measures-container{padding:.75rem 1rem}.recommended-measures-container h4{font-size:.85rem}.recommended-measures-list li{font-size:.8rem;padding:.5rem .6rem .5rem 1.5rem}.help-btn{bottom:20px;font-size:1.25rem;height:45px;left:20px;width:45px}}@media (max-width:375px){.ticker-wrap{font-size:.7rem!important;height:1.4rem!important;line-height:1.4rem!important;padding:0!important;z-index:999!important}.breadcrumb-bar,.ticker-wrap{display:block!important;left:0!important;margin:0!important;opacity:1!important;position:fixed!important;right:0!important;visibility:visible!important;width:100%!important}.breadcrumb-bar{-webkit-overflow-scrolling:touch!important;background:#e9ecef!important;border-bottom:1px solid #ddd!important;border-top:none!important;box-sizing:border-box!important;color:#666!important;font-size:.75rem!important;height:auto!important;max-height:none!important;min-height:2rem!important;overflow-x:auto!important;padding:.3rem .5rem!important;white-space:nowrap!important;z-index:998!important}.visualization-container{grid-template-columns:1fr!important}main{box-sizing:border-box!important;padding:.5rem!important}}@media (max-width:480px){header{align-items:flex-start;flex-direction:column;padding:.5rem .75rem}.logo{flex-wrap:wrap;font-size:.85rem;line-height:1.2;margin-bottom:.5rem;width:100%}.logo,.logo-group{gap:.75rem}.logo-divider{min-height:25px}.logo-img{height:42px}.logo-img-rmi{height:33.6px}.logo span{display:block;font-size:.7rem;line-height:1.3;margin-top:.2rem}.auth-buttons,.user-info{flex-wrap:wrap;gap:.4rem;justify-content:flex-start;width:100%}.help-btn-header,.home-btn-header,.login-btn,.logout-btn,.settings-btn,.signup-btn{font-size:.7rem;margin-left:0;margin-right:.25rem;min-height:36px;min-width:60px;padding:.4rem .6rem;padding:.3rem .5rem}.user-badge{padding:.3rem .6rem}.user-badge .user-icon{font-size:.7rem;height:18px;width:18px}header{height:auto;min-height:60px}.ticker-wrap{font-size:.75rem;height:1.5rem;line-height:1.5rem;padding:0!important;z-index:999!important}.breadcrumb-bar,.ticker-wrap{display:block!important;left:0!important;margin:0!important;opacity:1!important;position:fixed!important;right:0!important;visibility:visible!important;width:100%!important}.breadcrumb-bar{-webkit-overflow-scrolling:touch!important;background:#e9ecef!important;border-bottom:1px solid #ddd!important;border-top:none!important;box-sizing:border-box!important;color:#666!important;font-size:.8rem!important;height:auto!important;max-height:none!important;min-height:2.2rem!important;overflow-x:auto!important;padding:.35rem .75rem!important;white-space:nowrap!important;z-index:998!important}.breadcrumb-bar::-webkit-scrollbar{height:2px}main{box-sizing:border-box!important;margin-top:calc(60px + 3.7rem)!important;padding:.75rem!important}.intro-section h1{font-size:1.5rem}.intro-section p{font-size:.9rem}.city-carousel{padding:0 2rem}.city-card{font-size:.9rem;height:120px}.dashboard-header h2{font-size:1.25rem}.impact-card{padding:.75rem}.card-title{font-size:.9rem}.indicator-summary{padding:.5rem}.status-breakdown-container>div{flex:1 1 100%!important;min-width:100%}.indicator-status-grid{gap:.3rem;grid-template-columns:repeat(3,1fr)}.indicator-status-grid-inner{grid-template-columns:1fr!important}.status-breakdown-container{flex-direction:column!important}.indicator-status-item{padding:.4rem}.indicator-status-item .count{font-size:1.1rem}.indicator-status-item .label{font-size:.6rem}.detail-view-header{padding:.5rem .6rem!important}.detail-view-header h3{font-size:.9rem!important}.indicator-tabs-container,.power-outage-mode-selector{padding:.4rem .6rem}.indicator-tabs-container h4,.power-outage-mode-selector h4{font-size:.8rem}.indicator-tabs,.indicator-tags-grid{gap:.35rem;grid-template-columns:1fr!important}.indicator-tab{font-size:.7rem;padding:.6rem .8rem}.indicator-tab-badge{font-size:.6rem;padding:2px 6px}.power-mode-tabs{grid-template-columns:1fr}.power-mode-tab{font-size:.65rem;padding:.4rem}.visualization-container{gap:.5rem;grid-template-columns:1fr!important;min-height:300px}.map-container{height:300px}.map-container,.trend-container{min-height:300px}.trend-header{font-size:.8rem;padding:.5rem}.weather-stats-grid{gap:.35rem;grid-template-columns:1fr}.weather-stat-item{padding:.5rem}.weather-stat-value{font-size:1rem}.severity-charts-grid{gap:1rem!important;grid-template-columns:1fr!important}.severity-chart-container{height:280px!important}.severity-legend{gap:.5rem!important;grid-template-columns:auto 1fr!important;padding:.35rem .75rem!important}.severity-legend>div,.severity-legend>span{font-size:.65rem!important}.severity-chart-container .js-plotly-plot{height:280px!important}.recommended-measures-container{padding:.6rem .75rem}.recommended-measures-container h4{font-size:.8rem}.recommended-measures-list li{font-size:.75rem;padding:.45rem .5rem .45rem 1.25rem}.date-range-selector{box-sizing:border-box;max-width:100%;width:100%}.date-range-selector>div{width:100%}.trend-container .date-range-selector,.trend-container>div:last-child{box-sizing:border-box;padding:.4rem .5rem!important;width:100%}.date-range-selector>div,.trend-container>div:last-child>div{flex-wrap:wrap!important;gap:.3rem!important;width:100%}.date-range-selector label,.date-range-selector select{font-size:.65rem!important;width:100%}.date-range-selector select{box-sizing:border-box;min-width:100%!important;padding:.3rem .4rem!important}.date-range-selector button{font-size:.7rem!important;min-height:36px!important;min-width:36px!important;padding:.3rem .4rem!important}.map-date-selector-overlay{margin:0 auto;min-width:-webkit-fit-content;min-width:fit-content}.map-date-selector-overlay .date-range-selector{border-top:none!important;margin-top:0!important;max-width:100%!important;width:100%!important}.map-container .date-range-selector{max-width:100%!important;width:100%!important}.map-container .date-range-selector>div{flex-direction:column!important;width:100%}.map-container .date-range-selector select{min-width:100%!important;width:100%!important}.map-date-selector-overlay{left:.5rem!important;max-width:calc(100% - 1rem)!important;right:.5rem!important;transform:none!important;width:auto!important}.auth-modal-box,.modal-box{max-width:95%;padding:1.5rem}.settings-modal-box{max-width:95%;padding:1rem}.help-btn{bottom:15px;font-size:1.1rem;height:40px;left:15px;width:40px}}@media (max-width:360px){header{padding:.4rem .5rem}.logo{font-size:.8rem}.logo,.logo-group{gap:.5rem}.logo-divider{min-height:22px}.logo-img{height:34px}.logo-img-rmi{height:27.2px}.logo span{font-size:.7rem}.help-btn-header,.home-btn-header,.login-btn,.settings-btn,.signup-btn{font-size:.65rem;padding:.25rem .4rem}.city-card{font-size:.85rem;height:100px}.visualization-container{grid-template-columns:1fr!important}.map-container,.trend-container{min-height:250px}.map-container{height:250px}.status-breakdown-container{flex-direction:column!important}.status-breakdown-container>div{flex:1 1 100%!important;min-width:100%}.indicator-status-grid-inner{grid-template-columns:1fr!important}}@media (max-width:768px) and (orientation:landscape){.map-container{height:300px}.map-container,.trend-container{min-height:300px}.visualization-container{grid-template-columns:1fr!important;min-height:300px}}.summary-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr}.impact-card{background:linear-gradient(135deg,#fff,#f8f9fa);border-left:4px solid #ccc;border-radius:8px;box-shadow:0 2px 8px #00000014;cursor:pointer;display:flex;flex-direction:column;overflow:hidden;padding:.875rem;position:relative;transition:all .3s ease}.impact-card:before{background:radial-gradient(circle,#3498db1a 0,#0000 70%);border-radius:50%;content:"";height:100px;position:absolute;right:0;top:0;transform:translate(30px,-30px);width:100px}.impact-card:hover{box-shadow:0 8px 20px #0000001f;transform:translateY(-4px)}.impact-card.status-normal{border-left-color:#27ae60;border-left-color:var(--status-normal)}.impact-card.status-warning{border-left-color:#f39c12;border-left-color:var(--status-warning)}.impact-card.status-critical,.impact-card.status-high{border-left-color:#c0392b;border-left-color:var(--status-high)}.impact-card.status-disabled{background-color:#f9f9f9;border-left-color:#95a5a6;border-left-color:var(--status-disabled);cursor:not-allowed;opacity:.8}.card-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:.3rem}.card-title{color:#2c3e50;color:var(--primary);font-size:1rem;font-weight:700;letter-spacing:-.3px;line-height:1.3}.indicator-summary{background:#f8f9fa;border-radius:6px;border-top:2px solid #e9ecef;margin-top:.5rem;padding:.6rem;position:relative}.indicator-summary-title{color:#2c3e50;color:var(--primary);font-size:.75rem;font-weight:700;letter-spacing:.3px;margin-bottom:.5rem;text-transform:uppercase}.indicator-status-grid{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(3,1fr);position:relative;z-index:1}.indicator-status-item{background:#fff;border:2px solid #d0d0d0;border-radius:6px;box-shadow:0 1px 3px #0000001a;cursor:pointer;overflow:visible;padding:.5rem;position:relative;text-align:center;transition:all .2s ease}.indicator-status-item:hover{border-color:currentColor;box-shadow:0 2px 6px #0000001a;transform:translateY(-1px)}.indicator-status-item .count{font-family:Courier New,monospace;font-size:1.5rem;font-weight:700;line-height:1;margin-bottom:.25rem}.indicator-status-item .label{color:#666;font-size:.7rem;font-weight:600;letter-spacing:.3px;text-transform:uppercase}.indicator-status-item.normal{background:linear-gradient(135deg,#d4edda,#c3e6cb);border:2px solid #27ae60;color:#27ae60}.indicator-status-item.normal .count,.indicator-status-item.normal .label{color:#000;font-weight:700}.indicator-status-item.warning{background:linear-gradient(135deg,#fff3cd,#ffeaa7);border:2px solid #f39c12;color:#f39c12}.indicator-status-item.warning .count,.indicator-status-item.warning .label{color:#000;font-weight:700}.indicator-status-item.critical,.indicator-status-item.high{background:linear-gradient(135deg,#f8d7da,#f5c6cb);border:2px solid #c0392b;border:2px solid var(--status-high);color:#c0392b;color:var(--status-high)}.indicator-status-item.critical .count,.indicator-status-item.critical .label,.indicator-status-item.high .count,.indicator-status-item.high .label{color:#000;font-weight:700}.detail-layout{display:flex;flex-direction:column;gap:.25rem;min-height:600px}#view-detail{min-height:100%;padding-bottom:1rem}.indicator-tabs-container{background:#fff;border:1px solid #e9ecef;border-radius:8px;box-shadow:0 2px 6px #0000000f;margin-bottom:0;padding:.6rem 1rem}.indicator-tabs-container h4{color:#2c3e50;color:var(--primary);font-size:.9rem;font-weight:700;letter-spacing:-.3px;margin-bottom:.5rem}.visualization-container{grid-gap:1rem;align-items:stretch;box-sizing:border-box;display:grid;gap:1rem;grid-template-columns:1.4fr 1fr;height:500px;max-width:100%;min-height:500px;position:relative;transition:grid-template-columns .3s ease,gap .3s ease;width:100%}.visualization-container.full-width-map,.visualization-container.full-width-table{gap:0;grid-template-columns:1fr}.trend-container.hidden{display:none}.map-container{background:#e0e5ec;border:2px solid #ccc;border-radius:8px;box-sizing:border-box;cursor:pointer;height:100%;isolation:isolate;margin:0!important;max-width:100%;min-height:500px;overflow:hidden;overflow-x:hidden!important;overflow-y:hidden!important;padding:0!important;position:relative;width:100%;z-index:1}.map-container .js-plotly-plot,.map-container .plot-container,.map-container .plotly{box-sizing:border-box!important;height:100%!important;margin:0!important;overflow:hidden!important;padding:0!important;width:100%!important}.map-container .js-plotly-plot .main-svg,.map-container .js-plotly-plot .mapboxgl-canvas,.map-container .js-plotly-plot .mapboxgl-canvas-container{box-sizing:border-box!important;cursor:pointer!important;height:100%!important;margin:0!important;max-width:100%!important;overflow:hidden!important;padding:0!important;width:100%!important}.map-container .js-plotly-plot{max-width:100%!important;min-width:0!important;width:100%!important}.map-container .js-plotly-plot .main-svg{overflow:visible!important}.map-container .js-plotly-plot .main-svg,.map-container .js-plotly-plot .mapboxgl-canvas,.map-container .js-plotly-plot .mapboxgl-canvas-container{max-width:100%!important;width:100%!important}#plotly-map-div{flex:1 1;min-height:400px;width:100%}.trend-container{background:#fff;border:2px solid #ccc;border-radius:8px;box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow);box-sizing:border-box;display:flex;flex-direction:column;height:100%;min-height:500px;overflow-y:auto;position:relative}.trend-container.severity-mode{overflow-y:hidden}.forecast-table-container{background:#fff;border:2px solid #ccc;border-radius:8px;box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow);box-sizing:border-box;display:flex;flex-direction:column;height:100%;max-width:100%;min-height:500px;overflow-y:auto;position:relative;width:100%}.trend-container .js-plotly-plot,.trend-container .plot-container,.trend-container .plotly{flex:1 1;height:100%!important;width:100%!important}#plotly-trend-div{flex-shrink:0;height:320px;overflow:visible;width:100%}.trend-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #ddd;color:#2c3e50;color:var(--primary);display:flex;font-size:.9rem;font-weight:600;justify-content:space-between;padding:.75rem}.trend-subtitle{color:#666;font-size:.8rem;font-weight:400}.ward-selected{color:#3498db;color:var(--accent);font-size:.75rem;font-style:italic;font-weight:400}.reset-ward-btn{background:#f8f9fa;border:1px solid #ddd;border-radius:4px;color:#666;cursor:pointer;font-size:.75rem;padding:4px 12px;transition:all .2s}.reset-ward-btn:hover{background:#e9ecef;border-color:#3498db;border-color:var(--accent);color:#3498db;color:var(--accent)}.weather-info{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-bottom:2px solid #90caf9;margin-bottom:0;padding:.75rem}.weather-info.hidden{display:none}.weather-info-title{color:#2c3e50;color:var(--primary);font-size:.8rem;font-weight:700;letter-spacing:.5px;margin-bottom:.5rem;text-transform:uppercase}.weather-stats-grid{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(3,1fr)}.weather-stat-item{background:#fff;border-radius:6px;box-shadow:0 2px 4px #0000001a;padding:.5rem;text-align:center}.weather-stat-label{color:#666;font-size:.7rem;font-weight:600;letter-spacing:.3px;margin-bottom:.3rem;text-transform:uppercase}.weather-stat-value{color:#2c3e50;color:var(--primary);font-family:Courier New,monospace;font-size:1.3rem;font-weight:700}.weather-stat-unit{color:#999;font-size:.9rem;margin-left:2px}.indicator-tabs{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.indicator-tab{align-items:center;background:#fff;border:2px solid #e0e0e0;border-radius:6px;box-shadow:0 1px 3px #00000014;color:#2c3e50;cursor:pointer;display:flex;font-size:.8rem;font-weight:500;gap:.5rem;justify-content:flex-start;letter-spacing:.2px;line-height:1.3;padding:10px 12px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.indicator-tab:hover:not(.no-data){background:linear-gradient(135deg,#f0f7ff,#e3f2fd);border-color:#3498db;border-color:var(--accent);box-shadow:0 4px 12px #3498db33;color:#3498db;color:var(--accent);transform:translateY(-2px)}.indicator-tab.no-data{cursor:default!important;opacity:.6}.indicator-tab.no-data:hover{background:#fff!important;border-color:#e0e0e0!important;box-shadow:0 1px 3px #00000014!important;color:#2c3e50!important;transform:none!important}.indicator-tab.active{box-shadow:0 4px 12px #00000026;font-weight:600;transform:translateY(-1px)}.indicator-tab.active.status-normal{background:#27ae60!important;border-color:#27ae60!important;box-shadow:0 4px 12px #27ae604d!important;color:#fff!important}.indicator-tab.active.status-warning{background:#f39c12!important;border-color:#f39c12!important;box-shadow:0 4px 12px #f39c124d!important;color:#fff!important}.indicator-tab.active.status-critical,.indicator-tab.active.status-high{background:#c0392b!important;border-color:#c0392b!important;border-width:3px!important;box-shadow:0 4px 12px #c0392b4d!important;color:#fff!important}.indicator-tab.active:not(.status-normal):not(.status-warning):not(.status-critical):not(.status-high){background:linear-gradient(135deg,#3498db,#2980b9)!important;background:linear-gradient(135deg,var(--accent) 0,#2980b9 100%)!important;border-color:#3498db!important;border-color:var(--accent)!important;box-shadow:0 4px 12px #3498db4d;color:#fff}.indicator-tab.status-normal:not(.active):not(.no-data){background:#27ae60!important;border-color:#27ae60!important;color:#fff!important}.indicator-tab.status-warning:not(.active):not(.no-data){background:#f39c12!important;border-color:#f39c12!important;color:#fff!important}.indicator-tab.status-critical:not(.active):not(.no-data),.indicator-tab.status-high:not(.active):not(.no-data){background:#c0392b!important;border-color:#c0392b!important;color:#fff!important}.indicator-tab-text{flex:1 1;font-weight:500;letter-spacing:.3px;min-width:0}.indicator-tab-badge{border-radius:10px;flex-shrink:0;font-size:.65rem;font-weight:700;letter-spacing:.4px;padding:3px 8px;text-transform:uppercase;white-space:nowrap}.indicator-tab-badge.has-data{background:#27ae6026;color:#27ae60;color:var(--status-normal)}.indicator-tab.status-critical:not(.active) .indicator-tab-badge.has-data,.indicator-tab.status-high:not(.active) .indicator-tab-badge.has-data,.indicator-tab.status-normal:not(.active) .indicator-tab-badge.has-data,.indicator-tab.status-warning:not(.active) .indicator-tab-badge.has-data{background:#ffffff40;color:#fff}.indicator-tab-badge.no-data{background:#95a5a626;color:#95a5a6;color:var(--status-disabled)}.indicator-tab.active .indicator-tab-badge.has-data{background:#ffffff40;color:#fff}.indicator-tab.active .indicator-tab-badge.no-data{background:#fff3;color:#fffc}.city-management-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(5,1fr)}@media (max-width:1400px){.city-management-grid{grid-template-columns:repeat(4,1fr)}}@media (max-width:1100px){.city-management-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:768px){.city-management-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.city-management-grid{grid-template-columns:1fr}}.city-management-grid input[type=checkbox]:checked{accent-color:#27ae60;background-color:#27ae60}.city-management-grid input[type=checkbox]{accent-color:#27ae60}.indicator-management-container,.indicator-management-container *{overflow:visible!important}.indicator-management-container::-webkit-scrollbar{display:none}.indicator-management-container{-ms-overflow-style:none;scrollbar-width:none}.indicator-tab.active.status-critical .indicator-tab-badge.has-data,.indicator-tab.active.status-high .indicator-tab-badge.has-data,.indicator-tab.active.status-normal .indicator-tab-badge.has-data,.indicator-tab.active.status-warning .indicator-tab-badge.has-data{background:#ffffff40;color:#fff}.power-outage-mode-selector{background:#fff;border:1px solid #e9ecef;border-radius:8px;box-shadow:0 2px 6px #0000000f;margin-bottom:0;padding:.6rem 1rem}.power-outage-mode-selector h4{color:#2c3e50;color:var(--primary);font-size:.9rem;font-weight:700;letter-spacing:-.3px;margin-bottom:.5rem}.power-outage-mode-selector .viz-mode-title{margin:0 0 .5rem}.power-mode-tabs-row{align-items:center;display:flex;gap:.75rem}.power-mode-tabs{grid-gap:.5rem;display:grid;flex:1 1 auto;gap:.5rem;min-width:0}.power-mode-tab{background:#fff;border:2px solid #e0e0e0;border-radius:5px;color:#555;cursor:pointer;font-size:.72rem;font-weight:600;padding:6px 10px;text-align:center;transition:all .2s ease}.power-mode-tab:hover{background:#f0f7ff;box-shadow:0 4px 8px #3498db26;color:#3498db;color:var(--accent);transform:translateY(-2px)}.power-mode-tab.active,.power-mode-tab:hover{border-color:#3498db;border-color:var(--accent)}.power-mode-tab.active{background:linear-gradient(135deg,#3498db,#2980b9);background:linear-gradient(135deg,var(--accent) 0,#2980b9 100%);box-shadow:0 4px 12px #3498db4d;color:#fff}.recommended-measures-container{background:#fff;border:1px solid #e9ecef;border-radius:8px;box-shadow:0 2px 6px #0000000f;margin-bottom:.75rem;padding:1rem 1.25rem}.recommended-measures-container h4{color:#2c3e50;color:var(--primary);font-size:.9rem;font-weight:700;letter-spacing:-.3px;margin-bottom:.75rem}.recommended-measures-header{align-items:center;display:flex;gap:.5rem;margin-bottom:.75rem;transition:color .2s ease}.recommended-measures-header:hover{color:#3498db;color:var(--accent)}.recommended-measures-arrow{color:#2c3e50;color:var(--primary);display:inline-block;font-size:.7rem;transition:transform .3s ease}.recommended-measures-arrow.expanded{transform:rotate(90deg)}.recommended-measures-container.hidden{display:none}.recommended-measures-list{animation:slideDown .3s ease-out;list-style:none;margin:0;padding:0}@keyframes slideDown{0%{max-height:0;opacity:0;overflow:hidden}to{max-height:1000px;opacity:1}}.recommended-measures-list li{background:linear-gradient(135deg,#f8f9fa,#fff);border-left:3px solid #3498db;border-left:3px solid var(--accent);border-radius:4px;color:#2c3e50;font-size:.85rem;line-height:1.5;margin-bottom:.5rem;padding:.6rem .75rem .6rem 2rem;position:relative;transition:all .2s ease}.recommended-measures-list li:before{color:#3498db;color:var(--accent);content:"✓";font-size:.9rem;font-weight:700;left:.75rem;position:absolute}.recommended-measures-list li:hover{background:linear-gradient(135deg,#e3f2fd,#f0f7ff);box-shadow:0 2px 4px #3498db1a;transform:translateX(2px)}.recommended-measures-list li:last-child{margin-bottom:0}.custom-measures-section{margin-top:.5rem}.remove-measure-btn:hover{background:#c82333!important;transform:scale(1.05)}.remove-measure-btn:active{transform:scale(.95)}.help-btn{align-items:center;background:#2c3e50;background:var(--primary);border-radius:50%;bottom:30px;box-shadow:0 4px 10px #0000004d;color:#fff;cursor:pointer;display:flex;font-size:1.5rem;font-weight:700;height:50px;justify-content:center;left:30px;position:fixed;transition:transform .2s;width:50px;z-index:999}.help-btn:hover{background:#3498db;background:var(--accent);transform:scale(1.1)}.modal-overlay{align-items:center;background:#00000080;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.modal-box{background:#fff;border-radius:12px;box-shadow:0 10px 25px #0003;max-width:500px;padding:2rem;width:90%}.modal-box h3{color:#2c3e50;color:var(--primary);margin-bottom:1rem}.modal-box ul{color:#555;line-height:1.6;padding-left:20px}.modal-close{background:#2c3e50;background:var(--primary);border:none;border-radius:4px;color:#fff;cursor:pointer;margin-top:1.5rem;padding:8px 16px}.auth-modal-box{background:#fff;border-radius:12px;box-shadow:0 10px 25px #0003;max-width:450px;padding:2.5rem;position:relative;width:90%}.auth-tabs{border-bottom:2px solid #e9ecef;display:flex;gap:.5rem;margin-bottom:2rem}.auth-tab{background:#0000;border:none;border-bottom:3px solid #0000;color:#666;cursor:pointer;flex:1 1;font-size:1rem;font-weight:600;padding:.75rem 1rem;transition:all .3s ease}.auth-tab.active{border-bottom-color:#3498db;border-bottom-color:var(--accent)}.auth-tab.active,.auth-tab:hover{color:#3498db;color:var(--accent)}.auth-form{display:none}.auth-form.active{display:block}.form-group{margin-bottom:1.5rem}.form-group label{color:#2c3e50;color:var(--primary);display:block;font-size:.9rem;font-weight:600;margin-bottom:.5rem}.form-group input{border:2px solid #e0e0e0;border-radius:6px;box-sizing:border-box;font-size:1rem;padding:.75rem;transition:border-color .3s ease;width:100%}.form-group input:focus{border-color:#3498db;border-color:var(--accent);outline:none}.auth-btn{background:linear-gradient(135deg,#3498db,#2980b9);background:linear-gradient(135deg,var(--accent) 0,#2980b9 100%);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:.5rem;padding:.75rem;transition:transform .2s,box-shadow .2s;width:100%}.auth-btn:hover{box-shadow:0 4px 12px #3498db4d;transform:translateY(-2px)}.auth-btn:active{transform:translateY(0)}.error-message{color:#c0392b;color:var(--status-critical);display:none;font-size:.85rem;margin-top:.5rem}.error-message.show{display:block}.close-auth-modal{align-items:center;background:#0000;border:none;border-radius:50%;color:#999;cursor:pointer;display:flex;font-size:1.5rem;height:30px;justify-content:center;position:absolute;right:1rem;top:1rem;transition:all .2s;width:30px}.close-auth-modal:hover{background:#f0f0f0;color:#2c3e50;color:var(--primary)}.settings-modal{align-items:center;background:#00000080;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:2000}.settings-modal.hidden{display:none}.settings-modal-box{background:#fff;border-radius:12px;box-shadow:0 10px 25px #0003;display:flex;flex-direction:column;height:85vh;max-height:85vh;max-width:600px;overflow:hidden;padding:1.5rem;position:relative;width:90%}.settings-modal-header{align-items:center;border-bottom:2px solid #e9ecef;display:flex;justify-content:space-between;margin-bottom:1rem;padding-bottom:.75rem}.settings-modal-header h3{color:#2c3e50;color:var(--primary);font-size:1.5rem;margin:0}.close-settings-btn{align-items:center;background:#0000;border:none;border-radius:50%;color:#999;cursor:pointer;display:flex;font-size:1.5rem;height:30px;justify-content:center;transition:all .2s;width:30px}.close-settings-btn:hover{background:#f0f0f0;color:#2c3e50;color:var(--primary)}.priority-section{background:linear-gradient(135deg,#fff,#f8f9fa);border-radius:10px;box-shadow:0 4px 12px #00000014;padding:1rem}.priority-ranking-list{display:flex;flex-direction:column;gap:.5rem}.priority-ranking-list.draggable .priority-impact-item{cursor:move;padding-left:2rem;position:relative}.priority-ranking-list.draggable .priority-impact-item:before{color:#999;content:"☰";cursor:move;font-size:1.2rem;left:.75rem;position:absolute;top:50%;transform:translateY(-50%)}.priority-ranking-list.draggable .priority-impact-item.dragging{border:2px dashed #3498db;border:2px dashed var(--accent);opacity:.5}.priority-ranking-list.draggable .priority-impact-item.drag-over{background-color:#f0f7ff;border-top:3px solid #3498db;border-top:3px solid var(--accent)}.priority-impact-item{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 6px #0000000f;display:flex;gap:1rem;padding:.75rem;transition:all .3s ease}.priority-impact-item:hover{box-shadow:0 4px 12px #0000001f;transform:translateX(4px)}.priority-impact-rank{align-items:center;background:linear-gradient(135deg,#3498db,#2980b9);background:linear-gradient(135deg,var(--accent) 0,#2980b9 100%);border-radius:50%;box-shadow:0 2px 8px #3498db4d;color:#fff;display:flex;flex-shrink:0;font-size:1.1rem;font-weight:700;height:40px;justify-content:center;width:40px}.priority-impact-rank.rank-1{background:#b71c1c;box-shadow:0 2px 8px #b71c1c4d}.priority-impact-rank.rank-2{background:#ef6c00;box-shadow:0 2px 8px #ef6c004d}.priority-impact-rank.rank-3{background:#f9a825;box-shadow:0 2px 8px #f9a8254d}.priority-impact-rank.rank-4{background:#2e7d32;box-shadow:0 2px 8px #2e7d324d}.priority-impact-content{flex:1 1;min-width:0}.priority-impact-title{color:#2c3e50;color:var(--primary);font-size:1rem;font-weight:700;line-height:1.2;margin-bottom:0}.priority-edit-mode{margin-bottom:1rem;padding:.5rem 0}.edit-priority-btn{background:#3498db;background:var(--accent);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;margin-top:.5rem;padding:.5rem 1rem;transition:all .2s}.edit-priority-btn:hover{background:#2980b9;transform:translateY(-1px)}.save-priority-btn{background:#27ae60;background:var(--status-normal);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;margin-right:.5rem;padding:.5rem 1rem;transition:all .2s}.save-priority-btn:hover{background:#229954}.cancel-priority-btn{background:#95a5a6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:.5rem 1rem;transition:all .2s}.cancel-priority-btn:hover{background:#7f8c8d}.hidden{display:none!important}
/*# sourceMappingURL=main.072435cf.css.map*/