*{margin:0;padding:0;box-sizing:border-box}body{font-family:Helvetica Neue,Arial,sans-serif;background-color:#fff;color:#1e1e1e;line-height:1.6}.container{max-width:1280px;margin:0 auto}.main-padding{padding:0 20px}@media (min-width: 768px){.main-padding{padding:0}}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.header{background:#1e1e1e;padding:20px 0;color:#fff}.header__content{display:flex;flex-direction:column;align-items:center;gap:30px}@media (min-width: 768px){.header__content{flex-direction:row;justify-content:space-between}}.header__text{flex:1;animation:textEntrance .8s ease-out}.header__title{font-size:30px;font-weight:700;margin-bottom:10px;animation:slideInDown .8s cubic-bezier(.34,1.56,.64,1);position:relative}.header__title:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:2px;background:linear-gradient(90deg,#2b5f80,#f27c63);animation:titleUnderline 1s ease-out .5s forwards}@media (max-width: 768px){.header__title{font-size:24px}}.header__subtitle{font-size:14px;opacity:.9;animation:slideInUp .8s cubic-bezier(.34,1.56,.64,1) .2s both;position:relative}.header__cards{display:flex;flex-direction:column;gap:12px;width:100%;animation:cardsContainerEntrance 1s ease-out .3s both}@media (min-width: 768px){.header__cards{flex-direction:row;width:fit-content}}.header__cards .card:nth-child(1){animation-delay:.4s}.header__cards .card:nth-child(2){animation-delay:.6s}.header__cards .card:nth-child(3){animation-delay:.8s}@keyframes textEntrance{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes titleUnderline{0%{width:0}to{width:100%}}@keyframes cardsContainerEntrance{0%{transform:translateY(10px) scale(.95)}to{transform:translateY(0) scale(1)}}@media (prefers-reduced-motion: reduce){.header:before{animation:none}.header__title:after{animation:none;width:100%}}.card{background:#e6e6e6;border-radius:8px;padding:20px;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;display:flex;gap:16px;min-width:200px;animation:cardEntrance .8s cubic-bezier(.34,1.56,.64,1);border-top:4px solid transparent;overflow:hidden}.card:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .6s ease-in-out}.card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 12px 24px #00000026}.card:hover:before{left:100%}.card:hover .card__icon{transform:scale(1.1) rotate(5deg);animation:iconPulse .6s ease-in-out}.card:hover .card__value{transform:scale(1.05);animation:valueGlow .6s ease-in-out}.card__icon{transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;animation:iconFloat 3s ease-in-out infinite}.card__icon svg{width:32px;height:32px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.card__content{flex:1;animation:contentSlideIn .6s ease-out .2s both}.card__title{font-size:12px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;margin:0 0 8px;transition:all .3s ease}.card__value{font-size:28px;font-weight:700;color:#1e1e1e;line-height:1.2;transition:all .3s ease;position:relative}.card--primary{border-color:#2b5f80}.card--primary .card__icon svg{color:#2b5f80}.card--success{border-color:#0fb152}.card--success .card__icon svg{color:#0fb152}.card--secondary{border-color:#f27c63}.card--secondary .card__icon svg{color:#f27c63}@keyframes cardEntrance{0%{opacity:0;transform:translateY(30px) scale(.8) rotateX(-10deg)}50%{opacity:.8;transform:translateY(-5px) scale(1.05) rotateX(2deg)}to{opacity:1;transform:translateY(0) scale(1) rotateX(0)}}@keyframes iconFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes iconPulse{0%{transform:scale(1.1) rotate(5deg)}50%{transform:scale(1.15) rotate(8deg)}to{transform:scale(1.1) rotate(5deg)}}@keyframes valueGlow{0%{text-shadow:0 0 5px rgba(0,0,0,.1)}50%{text-shadow:0 0 15px rgba(0,0,0,.2)}to{text-shadow:0 0 5px rgba(0,0,0,.1)}}@keyframes contentSlideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion: reduce){.card{animation:none;transition:none}.card:hover{transform:none}.card__icon{animation:none}}.shimmer-loading{background:linear-gradient(90deg,#dcdcdc1a,#dcdcdc33 20%,#dcdcdc80 60%,#dcdcdc33,#dcdcdc1a);background-size:200% 100%;animation:shimmer 1.5s infinite linear;position:relative;overflow:hidden}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.signal-component{display:inline-flex;align-items:center}.signal-component .signal-svg{display:block}.signal-component .signal-bar{transition:fill .2s ease}.signal-component .signal-bar.active{fill:#0fb152}.signal-component .signal-bar.inactive{fill:#e6e6e6}.signal-component.signal--small .signal-svg{width:16px;height:14px}.signal-component.signal--medium .signal-svg{width:24px;height:20px}.signal-component.signal--large .signal-svg{width:32px;height:26px}.filters{display:flex;flex-direction:column;align-items:stretch;gap:16px}@media (min-width: 768px){.filters{align-items:center;flex-direction:row;flex-wrap:wrap;justify-content:space-between;gap:20px}}.filters__search{width:100%;position:relative}@media (min-width: 768px){.filters__search{width:auto;flex:1}}.filters__search .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#6b7280;font-size:14px;pointer-events:none}.filters__search .clear-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:#6b7280;font-size:14px;cursor:pointer;transition:color .2s ease}.filters__search .clear-icon:hover{color:#2b5f80}.filters__search .search-field{width:100%;padding:12px 35px;border:1px solid #e6e6e6;border-radius:8px;font-size:14px;color:#1e1e1e;transition:all .2s ease}.filters__search .search-field::placeholder{color:#6b7280}.filters__search .search-field::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;display:none}.filters__search .search-field:focus{outline:none;border-color:#2b5f80;box-shadow:0 0 2px 2px #2b5f801a}.filters__dropdowns{display:flex;gap:8px;flex-wrap:wrap}@media (min-width: 768px){.filters__dropdowns{gap:12px}}.filter-select-field{padding:10px 12px;border:1px solid #e6e6e6;border-radius:8px;color:#1e1e1e;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;min-width:100px}.filter-select-field:hover{border-color:#2b5f80;background-color:#2b5f800d}.filter-select-field:focus{outline:none;border-color:#2b5f80;box-shadow:0 0 2px 2px #2b5f801a}.filter-select-field.active{border-color:#2b5f80;background-color:#2b5f800d;color:#2b5f80}@media (min-width: 768px){.filter-select-field{min-width:120px}}.filter-select-field{appearance:base-select;text-transform:capitalize}.filter-select-field::picker(select){appearance:base-select}.filter-select-field::picker-icon{content:"";background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6z'/%3E%3C/svg%3E") no-repeat center;background-size:20px;width:20px;transition:rotate .4s}.filter-select-field:open::picker-icon{rotate:180deg}.filter-select-field::picker(select){border:1px solid #2b5f80;border-radius:8px;margin-top:6px}.filter-select-field option{padding:8px 10px;color:#1e1e1e;text-transform:capitalize}.filter-select-field option:not(:last-child){border-bottom:1px solid #e6e6e6}.filter-select-field option:hover{background-color:#2b5f801a}.filter-select-field option:checked{background-color:#2b5f80e6;color:#fff}.clear-filters-btn{background:none;border:none;color:#6b7280;font-size:14px;font-weight:500;cursor:pointer;text-decoration:underline;text-underline-offset:2px;transition:color .2s ease;padding:0;margin:0}.clear-filters-btn:hover{color:#2b5f80}.clear-filters-btn:focus{outline:none;color:#2b5f80}.towers-table{flex:1}.towers-table__header{text-align:center;margin-bottom:24px}@media (min-width: 768px){.towers-table__header{text-align:left}}.towers-table__title{font-size:24px;font-weight:700;color:#1e1e1e;margin-bottom:8px}.towers-table__subtitle{font-size:14px;color:#6b7280}.towers-table__scroll-hint{display:block;text-align:center;font-size:12px;color:#6b7280;margin-top:16px}@media (min-width: 768px){.towers-table__scroll-hint{display:none}}.towers-table__container{margin-top:12px;overflow-x:auto;-webkit-overflow-scrolling:touch}.towers-table__container::-webkit-scrollbar{height:8px;display:none}.towers-table__table{width:100%;min-width:500px;border-collapse:collapse;box-shadow:0 2px 10px #0000001a}.towers-table__table th,.towers-table__table td{padding:16px 12px;white-space:nowrap}@media (min-width: 768px){.towers-table__table th,.towers-table__table td{padding:16px}}.towers-table__table th{background:#e6e6e6;font-weight:600;color:#1e1e1e;font-size:14px;text-transform:uppercase;letter-spacing:.5px;border:1px solid #e6e6e6;text-align:left}.towers-table__table td{font-size:14px;color:#1e1e1e}.towers-table__table .tower-row{transition:background-color .2s ease}.towers-table__table .tower-row:hover{background:#f9fafb}.towers-table__table .tower-row.active{border-left:2px solid #0fb152}.towers-table__table .tower-row.offline{border-left:2px solid #ff2a2a}.towers-table__table .tower-row:not(:last-child){border-bottom:1px solid #e6e6e6}.tower-name__content{display:flex;align-items:center;gap:10px;font-weight:500}.tower-name__content svg{color:#2b5f80;font-size:20px}.tower-city__content{display:flex;align-items:center;gap:6px;color:#6b7280}.tower-city__content svg{font-size:16px}.network-badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:600;text-transform:uppercase}.network-badge.network-5g{background:#0fb15233;color:#0fb152}.network-badge.network-4g{background:#f39c1233;color:#f39c12}.status-indicator{display:flex;align-items:center;gap:6px}.status-indicator svg{font-size:16px}.status-indicator svg.active{color:#0fb152}.status-indicator svg.offline{color:#ff2a2a}.status-indicator .status-text{font-size:12px;font-weight:500;text-transform:uppercase}.status-indicator .status-text.active{color:#0fb152}.status-indicator .status-text.offline{color:#ff2a2a}.signal-display{display:flex;align-items:center;gap:8px}.signal-value{font-size:14px;color:#1e1e1e;font-weight:500}.highlight{background:#f39c124d;color:#1e1e1e;padding:1px;border-radius:2px}.no-data{text-align:center;color:#1e1e1e}.city-bar-chart svg{display:block;margin:0 auto}.city-bar-chart .bar{transition:opacity .2s ease;cursor:pointer}.city-bar-chart .bar:hover{opacity:.9}.city-bar-chart .bar-label{pointer-events:none}.city-bar-chart .x-axis path,.city-bar-chart .x-axis line,.city-bar-chart .y-axis path,.city-bar-chart .y-axis line{stroke:#e6e6e6}.city-bar-chart .x-axis text,.city-bar-chart .y-axis text{fill:#6b7280}.city-bar-chart .chart-title,.city-bar-chart .x-label,.city-bar-chart .y-label{font-family:inherit}.status-pie-chart svg{display:block;margin:0 auto}.status-pie-chart .slice:hover{cursor:pointer;opacity:.9;transition:opacity .2s ease-in-out}.status-pie-chart .chart-title{font-family:inherit}.status-pie-chart .legend .legend-item{cursor:pointer;transition:opacity .2s ease-in-out}.status-pie-chart .legend .legend-item:hover{opacity:.9}.charts{display:flex;flex-direction:column;gap:40px}.charts__section{text-align:center;animation:slideInUp .6s ease-out}@media (min-width: 1024px){.charts__section{text-align:left}}.charts__section-title{font-size:24px;font-weight:600;color:#1e1e1e;margin-bottom:8px}.charts__section-description{font-size:14px;color:#6b7280;margin-bottom:24px}.home-content{padding-top:20px;padding-bottom:40px;display:flex;flex-direction:column;gap:40px}@media (min-width: 768px){.home-content{flex-direction:row;padding-top:30px}}.error-container{display:flex;justify-content:center;align-items:center;width:100%;min-height:calc(100vh - 200px)}.error-message{text-align:center;max-width:500px}.error-message h3{font-size:35px;color:#ff2a2a;margin-bottom:1rem}.error-message p{margin-bottom:1.5rem;color:#1e1e1e}.retry-button{background-color:#2b5f80;color:#fff;border:none;border-radius:4px;padding:.5rem 1.5rem;font-size:1rem;cursor:pointer;transition:opacity .3s}.retry-button:hover{opacity:.95}.retry-button:focus{outline:none}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:1rem}.mt-2{margin-top:.5rem}.footer{padding:24px 0;background-color:#1e1e1e}.footer__content{text-align:center;font-size:14px;color:#e6e6e6}
